Преглед на файлове

Merge branch 'master' of https://git.nanodreamtech.com/Boss/yizhizan-h5

fuchaoyong преди 2 седмици
родител
ревизия
f752337e12

+ 1 - 1
package/jobIntention/addExpectation.vue

@@ -161,7 +161,7 @@ export default {
 		},
 		selectCity() {
 			uni.navigateTo({
-				url: '/package/jobIntention/city'
+				url: '/pages/index/citySelect'
 			})
 		},
 		selectIndustry() {

+ 616 - 85
package/search/search.vue

@@ -1,17 +1,28 @@
 <template>
 	<view>
+		<!-- 自定义导航栏 -->
+		<view class="custom-navbar">
+			<view class="navbar-content">
+				<view class="nav-left" @click="goBack">
+					<u-icon name="arrow-leftward" color="#333" size="38"></u-icon>
+				</view>
+				<view class="nav-title">职位搜索</view>
+				<view class="nav-right"></view>
+			</view>
+		</view>
 		<!-- 搜索 -->
 		<view class="search flex align-center justify-center">
 			<view class="search-box">
-				<u-search placeholder="搜索岗位" shape="square" @clear="clear" v-model="keyword" @custom="custom"
-					@search="custom"></u-search>
+				<u-search placeholder="搜索职位或公司" shape="round" searchIconSize = 40 searchIconColor="rgba(153, 153, 153, 1)" bgColor="rgba(241, 241, 241, 1)" borderColor="rgba(227, 231, 236, 1)" @clear="clear" v-model="keyword" @custom="custom" @search="custom"></u-search>
 			</view>
 		</view>
 		<block v-if="show">
+			<!-- 历史搜索 -->
 			<view class="searchJl flex justify-center">
 				<view class="searchJl-box">
-					<view class="searchJl-box-title">
-						热门搜索
+					<view class="searchJl-box-header">
+						<text class="searchJl-box-title">历史搜索</text>
+						<image src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHistory"></image>
 					</view>
 					<view class="searchJl-box-label flex align-center flex-wrap">
 						<view class="searchJl-box-item" @click="goSearch(item.keyWord)"
@@ -21,12 +32,35 @@
 					</view>
 				</view>
 			</view>
+			
+			<!-- 近期热招 -->
+			<view class="hot-jobs-container flex justify-center">
+				<view class="hot-jobs-section">
+					<view class="section-header">
+						<text class="section-title">近期热招</text>
+						<image src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHotJobs"></image>
+					</view>
+					<view class="hot-jobs-grid">
+						<view 
+							class="hot-job-item" 
+							v-for="(job, index) in hotJobsList" 
+							:key="index"
+							@click="selectHotJob(job)"
+						>
+							<text class="job-name">{{ job.name }}</text>
+							<view class="hot-tag" v-if="job.isHot">
+								<text class="hot-tag-text">Hot</text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
 		</block>
 		<block v-else>
 			<!-- 筛选 -->
 			<view class="screen flex justify-center align-center">
 				<view class="screen-box">
-					<view class="topbg-sx-box flex justify-between align-center">
+					<view class="topbg-sx-box">
 						<view class="topbg-sx-box-l flex align-center">
 							<view class="topbg-sx-box-l-i" :class="currentSx==index?'active3':''"
 								@click="currentSx = index" v-for="(item,index) in sxTypeList" :key="index">
@@ -34,17 +68,20 @@
 							</view>
 						</view>
 						<view class="topbg-sx-box-r flex align-center">
-							<text style="color: #00B78F;font-size: 28rpx;font-weight: 500;margin-right: 10rpx;"
-								@click="goNav('/package/screen/city?city='+city+'&county='+county)">{{county?county:city}}</text>
-							<u-icon name="arrow-down-fill" color="#00B78F" size="20"
-								@click="goNav('/package/screen/city?city='+city+'&county='+county)"></u-icon>
-
-							<text style="color: #CCCCCC;margin-left: 30rpx;margin-right: 30rpx;">|</text>
+							<view class="city-container" @click="goNav('/package/screen/city?city='+city+'&county='+county)">
+								<text class="city-text" style="margin-right: 10rpx;">{{county?county:city}}</text>
+								<u-icon name="arrow-down" color="#999999" size="20"></u-icon>
+							</view>
 
-							<text style="color: #999999;font-size: 28rpx;font-weight: 500;margin-right: 10rpx;"
-								@click="goNav('/package/screen/screen')">筛选</text>
-							<u-icon name="arrow-down-fill" color="#CCCCCC" size="20"
-								@click="goNav('/package/screen/screen')"></u-icon>
+							<view class="sort-container" @click="showSortModal">
+								<text class="sort-text" style="margin-right: 10rpx;">综合排序</text>
+								<u-icon name="arrow-down" color="rgba(1, 107, 246, 1)" size="20"></u-icon>
+							</view>
+								
+							<view class="filter-container" @click="goNav('/package/screen/screen')">
+								<text class="filter-text" style="margin-right: 10rpx;">筛选</text>
+								<u-icon name="arrow-down" color="#999999" size="20"></u-icon>
+							</view>
 						</view>
 					</view>
 				</view>
@@ -56,40 +93,52 @@
 						<view class="gwList-box-item flex justify-center" @click="gotoInfo(item.postPushId)"
 							v-for="(item,index) in dataList" :key="index">
 							<view class="gwList-box-item-box">
+								<!-- 标题-薪资 -->
 								<view class="gwList-box-item-box-title flex justify-between align-center">
-									<view class=""
-										style="max-width: 450rpx;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;">
-										<block v-if="isSameName(item.ruleClassifyName,item.stationName)">
-											{{item.ruleClassifyName}}-
-										</block>
-										<block>
-											{{item.stationName}}
-										</block>
+									<view class="title-left flex align-center">
+										<view class="job-title-text"
+											style="max-width: 450rpx;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;">
+											<block v-if="isSameName(item.ruleClassifyName,item.stationName)">
+												{{item.ruleClassifyName}}-
+											</block>
+											<block>
+												{{item.stationName}}
+											</block>
+										</view>
+										<view class="salary-text-box">
+											<image src="../../static/images/index/jipinIcom.svg" class="jipin-icon" />
+											<text class="jipin-text">急聘</text>
+										</view>
 									</view>
-									<text>{{item.salaryRange}}</text>
+									<text class="salary-text">{{item.salaryRange}}</text>
 								</view>
-								<view class="gwList-box-item-box-label flex align-center flex-wrap">
-									<text
-										style="color: #666666;font-size: 26rpx;padding: 10rpx 25rpx 10rpx 25rpx;background-color: #F6F6F6;border-radius: 8rpx;margin-right: 20rpx;margin-bottom: 20rpx;"
-										v-for="(ite,ind) in item.positionWelfare" :key="ind">{{ite}}</text>
+								<!-- 公司名称-公司人数 -->
+								<view class="gwList-box-item-box-name flex align-center">
+									<text class="company-name" style="margin-right: 8rpx;">{{item.company?item.company.companyName:''}}</text>
+									<text class="company-people"
+										v-if="item.company">{{item.company?item.company.companyPeople:'0人'}}</text>
 								</view>
-								<view class="gwList-box-item-box-name flex justify-between align-center">
-									<text>{{item.company?item.company.companyName:''}}</text>
-									<text v-if="item.company">{{item.company?item.company.companyPeople:''}}</text>
+								<!-- 职位标签 -->
+								<view class="gwList-box-item-box-label flex align-center flex-wrap">
+									<text class="job-tag">{{item.education}}</text>
+									<text class="job-tag">{{item.experience}}</text>
+									<text class="job-tag" v-for="(ite,ind) in item.positionWelfare" :key="ind">{{ite}}</text>
 								</view>
-								<view class="gwList-box-item-box-line"></view>
+								<!-- <view class="gwList-box-item-box-line"></view> -->
+								<!-- 公司简介-位置 -->
 								<view class="gwList-box-item-box-info flex justify-between align-center">
 									<view class="gwList-box-item-box-info-l flex align-center">
-										<image :src="item.company?item.company.companyLogo:'../../static/logo.png'"
+										<image
+											:src="item.company?item.company.companyLogo:'../../static/logo.png'"
 											style="width: 58rpx;height: 58rpx;border-radius: 50%;margin-right: 20rpx;"
 											mode=""></image>
-										<text
-											v-if="item.company">{{item.company?item.company.companyLegalPerson:'未知'}}·创始人</text>
+										<view class="company-info-text" v-if="item.company">
+											{{item.company.companyLegalPerson?item.company.companyLegalPerson:'未知'}}·人事总监
+										</view>
+										<view class="reply-time">10分钟前回复</view>
 									</view>
-									<view class="gwList-box-item-box-info-r">
-										{{item.county}}
-										{{item.address}}
-
+									<view class="location-text">
+										{{item.county}} {{item.address}}
 									</view>
 								</view>
 							</view>
@@ -102,6 +151,33 @@
 				<empty />
 			</view>
 		</block>
+		
+		<!-- 排序弹窗 -->
+		<view class="sort-modal" v-if="showSortModalFlag" @click="hideSortModal">
+			<view class="sort-modal-content" @click.stop>
+				<!-- 拖拽条 -->
+				<view class="sort-modal-handle"></view>
+				
+				<!-- 标题 -->
+				<view class="sort-modal-title">排序</view>
+				
+				<!-- 排序选项 -->
+				<view class="sort-options">
+					<view 
+						class="sort-option" 
+						:class="selectedSort === index ? 'active' : ''"
+						@click="selectSort(index)"
+						v-for="(option, index) in sortOptions" 
+						:key="index"
+					>
+						<view class="sort-option-icon">
+							<view class="check-icon" v-if="selectedSort === index">✓</view>
+						</view>
+						<text class="sort-option-text">{{ option }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -140,6 +216,19 @@
 				latitude: '',
 				dataList: [],
 				searchList: [],
+				hotJobsList: [
+					{ name: '美国亚马逊运营', isHot: false },
+					{ name: '采购经理', isHot: false },
+					{ name: 'Tik Tok运营助理', isHot: true },
+					{ name: 'Temu运营专员', isHot: false },
+					{ name: '跨境电商运营助理', isHot: false },
+					{ name: '产品开发经理', isHot: false },
+					{ name: '海外仓管理经理', isHot: false },
+					{ name: '人事经理', isHot: false }
+				],
+				showSortModalFlag: false,
+				selectedSort: 0,
+				sortOptions: ['综合排序', '最新优先', '距离优先']
 			};
 		},
 		watch: {
@@ -230,6 +319,13 @@
 			}
 		},
 		methods: {
+			/**
+			 * 返回上一页
+			 */
+			goBack() {
+				uni.navigateBack()
+			},
+			
 			//判断岗位名称与职位名称是否相同(不区分大小写)
 			isSameName(className, name) {
 				let str1 = className.trim();
@@ -366,46 +462,146 @@
 					}
 				})
 			},
+			
+			// 选择热门职位
+			selectHotJob(job) {
+				this.keyword = job.name
+				this.custom()
+			},
+			
+			// 显示排序弹窗
+			showSortModal() {
+				this.showSortModalFlag = true
+			},
+			
+			// 隐藏排序弹窗
+			hideSortModal() {
+				this.showSortModalFlag = false
+			},
+			
+			// 选择排序选项
+			selectSort(index) {
+				this.selectedSort = index
+				uni.showToast({
+					title: `已选择: ${this.sortOptions[index]}`,
+					icon: 'none'
+				})
+				this.hideSortModal()
+				// 这里可以添加排序逻辑
+			},
+			
+			// 判断分类名称和职位名称是否相同
+			isSameName(className, name) {
+				let str1 = className.trim();
+				let str2 = name.trim();
+				if (str1.length !== str2.length) {
+					return true;
+				}
+				return str1.toLowerCase() !== str2.toLowerCase();
+			},
 		},
 	}
 </script>
 
 <style lang="scss">
-	page {
-		background: #F2F2F7;
-	}
+	// page {
+	// 	background: #F2F2F7;
+	// }
 
 	.active3 {
-		color: #1A1A1A !important;
-		font-size: 28rpx !important;
-		font-weight: 800 !important;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		padding: 12rpx;
+		border-radius: 12rpx;
+		background: #FFFFFF !important;
+		margin-right: 12rpx;
+		border: 0.5px solid rgba(1, 107, 246, 1);
+
+		color: rgba(1, 107, 246, 1) !important;
+		font-family: DM Sans;
+		font-size: 22rpx;
+		font-weight: 400;
+		line-height: 20rpx;
+		letter-spacing: 0px;
+		text-align: left;
+	}
+
+	.custom-navbar {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 100%;
+		padding-top: 80rpx;
+		height: 160rpx;
+		background-color: #ffffff;
+		z-index: 10000;
+		
+		.navbar-content {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			height: 100%;
+			padding: 0 32rpx;
+			
+			.nav-left, .nav-right {
+				width: 60rpx;
+				height: 60rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+			
+			.nav-title {
+				color: rgba(51, 51, 51, 1);
+				font-family: DM Sans;
+				font-size: 30rpx;
+				font-weight: 700;
+				line-height: 26px;
+				letter-spacing: 0px;
+				text-align: center;
+			}
+		}
 	}
 
 	.search {
 		width: 100%;
+		padding-top: 20rpx;
 		height: 88rpx;
 		background-color: #ffffff;
 		position: fixed;
-		top: 0;
+		top: 160rpx;
 		z-index: 9999;
 
 		.search-box {
 			width: 686rpx;
 			height: 60rpx;
 		}
+
+		/deep/ .u-action {
+				color: rgba(1, 107, 246, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 500;
+				line-height: 48rpx;
+				letter-spacing: 0px;
+				text-align: center;
+			}
 	}
 
 	.screen {
 		width: 100%;
-		height: 100rpx;
+		height: 160rpx;
 		background-color: #ffffff;
 		position: fixed;
-		top: 88rpx;
+		top: 246rpx;
 		z-index: 9999;
 
 		.screen-box {
+			padding-top: 20rpx;
 			width: 686rpx;
-			height: 80rpx;
+			height: 160rpx;
 
 			.topbg-sx-box {
 				width: 686rpx;
@@ -413,94 +609,429 @@
 				margin-top: 30rpx;
 
 				.topbg-sx-box-l-i {
-					color: #999999;
-					font-size: 28rpx;
-					font-weight: 500;
-					margin-right: 38rpx;
+					flex-direction: row;
+					justify-content: center;
+					align-items: center;
+					padding: 12rpx;
+					border-radius: 12rpx;
+					background: rgba(153, 153, 153, 0.1);
+					margin-right: 12rpx;
+
+					color: rgba(102, 102, 102, 1);
+					font-family: DM Sans;
+					font-size: 22rpx;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: 0px;
+					text-align: left;
+					margin-bottom: 20rpx;
 				}
 			}
 		}
 	}
+	
+	// 筛选栏右侧容器样式
+	.city-container {
+		color: rgba(153, 153, 153, 1);
+		font-family: DM Sans;
+		font-size: 22rpx;
+		font-weight: 400;
+		line-height: 20rpx;
+		letter-spacing: 0px;
+		text-align: left;
+		margin-right: 10rpx;
+		padding: 8rpx 12rpx;
+		border-radius: 12rpx;
+		background: rgba(198, 198, 198, 0.1);
+	}
+	
+	.sort-container {
+		color: rgba(1, 107, 246, 1);
+		font-family: DM Sans;
+		font-size: 22rpx;
+		font-weight: 400;
+		line-height: 20rpx;
+		letter-spacing: 0px;
+		text-align: left;
+		margin-right: 10rpx;
+		padding: 8rpx 12rpx;
+		border-radius: 12rpx;
+		border: 0.5px solid rgba(1, 107, 246, 1);
+	}
+	
+	.filter-container {
+		color: rgba(153, 153, 153, 1);
+		font-family: DM Sans;
+		font-size: 22rpx;
+		font-weight: 400;
+		line-height: 20rpx;
+		letter-spacing: 0px;
+		text-align: left;
+		margin-right: 10rpx;
+		padding: 8rpx 12rpx;
+		border-radius: 12rpx;
+		background: rgba(198, 198, 198, 0.1);
+	}
 
 	.searchJl {
 		width: 100%;
 		background-color: #ffffff;
 		position: fixed;
-		top: 80rpx;
+		top: 240rpx;
 		height: calc(100vh - 80rpx);
 
 		.searchJl-box {
 			width: 686rpx;
 			height: 100%;
+			padding-top: 48rpx;
+
+			.searchJl-box-header {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				margin-bottom: 20rpx;
+			}
 
 			.searchJl-box-title {
-				color: #333333;
-				font-size: 28rpx;
-				font-weight: bold;
-				margin-top: 40rpx;
+				color: rgba(34, 37, 42, 1);
+				font-family: DM Sans;
+				font-size: 26rpx;
+				font-weight: 400;
+				line-height: 48rpx;
+				letter-spacing: 0px;
+				text-align: left;
 			}
 
 			.searchJl-box-label {
 				width: 100%;
-				margin-top: 20rpx;
+				gap: 8rpx;
 
 				.searchJl-box-item {
-					padding: 20rpx;
+					padding: 12rpx;
 					border-radius: 8rpx;
-					background-color: #F5F5F5;
-					color: #333333;
-					font-size: 24rpx;
-					font-weight: 500;
-					margin-right: 20rpx;
+					background: rgba(153, 153, 153, 0.1);
+					color: rgba(102, 102, 102, 1);
+					font-family: DM Sans;
+					font-size: 20rpx;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: 0px;
+					text-align: left;
 					margin-top: 20rpx;
 				}
 			}
 		}
 	}
 
+	// 近期热招容器样式
+	.hot-jobs-container {
+		width: 100%;
+		background-color: #ffffff;
+		position: fixed;
+		top: 420rpx; // 调整位置,在历史搜索下方
+		height: calc(100vh - 400rpx);
+		z-index: 9999;
+		
+		.hot-jobs-section {
+			width: 686rpx;
+			padding-top: 28rpx;
+		}
+	}
+
+	// 近期热招样式
+	.hot-jobs-section {
+		margin-bottom: 32rpx;
+		
+		.section-header {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			margin-bottom: 20rpx;
+			
+			.section-title {
+				color: rgba(34, 37, 42, 1);
+				font-family: DM Sans;
+				font-size: 26rpx;
+				font-weight: 400;
+				line-height: 48rpx;
+				letter-spacing: 0px;
+				text-align: left;
+			}
+		}
+	}
+
+	.hot-jobs-grid {
+		display: flex;
+		flex-wrap: wrap;
+		gap: 8rpx;
+		
+		.hot-job-item {
+			width: calc(50% - 4rpx);
+			padding: 8rpx;
+			background: #ffffff;
+			border-radius: 12rpx;
+			position: relative;
+			
+			.job-name {
+				color: rgba(102, 102, 102, 1);
+				font-family: DM Sans;
+				font-size: 20rpx;
+				font-weight: 400;
+				line-height: 44rpx;
+				letter-spacing: 0px;
+				text-align: left;
+			}
+			
+			.hot-tag {
+				position: absolute;
+				top: 8rpx;
+				right: 10rpx;
+				border-radius: 12rpx;
+				background: rgba(237, 66, 69, 1);
+				padding: 4rpx 12rpx;
+				
+				.hot-tag-text {
+					color: rgba(255, 255, 255, 1);
+					font-family: DM Sans;
+					font-size: 16rpx;
+					font-weight: 400;
+					text-align: center;
+				}
+			}
+		}
+	}
+
+	// 排序弹窗样式
+	.sort-modal {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: rgba(0, 0, 0, 0.5);
+		z-index: 10001;
+		display: flex;
+		align-items: flex-end;
+		
+		.sort-modal-content {
+			width: 100%;
+			background: #ffffff;
+			border-radius: 24rpx 24rpx 0 0;
+			padding: 20rpx 40rpx 40rpx 40rpx;
+			max-height: 60vh;
+			
+			.sort-modal-handle {
+				width: 80rpx;
+				height: 8rpx;
+				background: #E5E5E5;
+				border-radius: 4rpx;
+				margin: 0 auto 30rpx auto;
+			}
+			
+			.sort-modal-title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+				text-align: center;
+				padding-bottom: 30rpx;
+				margin-bottom: 30rpx;
+				border-bottom: 1px solid rgba(153, 153, 153, 0.25);
+			}
+			
+			.sort-options {
+				.sort-option {
+					display: flex;
+					align-items: center;
+					padding: 24rpx 32rpx;
+					margin-bottom: 16rpx;
+					// background: #F8F8F8;
+					border-radius: 42rpx;
+					border: 2rpx solid rgba(227, 231, 236, 1);
+					
+					&.active {
+						background: #F0F8FF;
+						border-color: #007AFF;
+						
+						.sort-option-icon {
+							background: #007AFF;
+							border-color: #007AFF;
+							
+							.check-icon {
+								color: #ffffff;
+							}
+						}
+						
+						.sort-option-text {
+							color: #007AFF;
+							font-weight: 500;
+						}
+					}
+					
+					.sort-option-icon {
+						width: 40rpx;
+						height: 40rpx;
+						border-radius: 50%;
+						border: 2rpx solid #E5E5E5;
+						background: #ffffff;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						margin-right: 24rpx;
+						
+						.check-icon {
+							font-size: 24rpx;
+							color: #ffffff;
+							font-weight: bold;
+						}
+					}
+					
+					.sort-option-text {
+						font-size: 28rpx;
+						color: #333333;
+						flex: 1;
+					}
+				}
+			}
+		}
+	}
+
+	.title-left {
+		display: flex;
+		align-items: center;
+		gap: 8rpx;
+	}
+	
+	.job-title-text {
+		color: rgba(23, 23, 37, 1);
+		font-family: DM Sans;
+		font-size: 38rpx;
+		font-weight: 700;
+		line-height: 48rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+	}
+	
+	.salary-text-box {
+		border-radius: 24rpx;
+		background: #FEE2E3;
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+		padding: 6rpx 24rpx;
+		
+		.jipin-icon {
+			width: 20rpx;
+			height: 20rpx;
+			margin-right: 4rpx;
+		}
+		
+		.jipin-text {
+			color: rgba(237, 66, 69, 1);
+			font-family: DM Sans;
+			font-size: 18rpx;
+			font-weight: 400;
+			line-height: 20px;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	}
+
+	.salary-text {
+		color: rgba(1, 107, 246, 1);
+		font-family: DM Sans;
+		font-size: 28rpx;
+		font-weight: 700;
+		line-height: 40rpx;
+		letter-spacing: 0.5%;
+		text-align: right;
+	}
+	
+	.company-name,
+	.company-people {
+		color: rgba(156, 164, 171, 1);
+		font-family: DM Sans;
+		font-size: 24rpx;
+		font-weight: 400;
+		line-height: 40rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+	}
+	
+	.job-tag {
+		height: 42rpx;
+		display: flex;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		padding: 8rpx;
+		border-radius: 8rpx;
+		background: rgba(198, 198, 198, 0.1);
+		margin-right: 16rpx;
+		margin-bottom: 16rpx;
+		color: rgba(153, 153, 153, 1);
+		font-size: 24rpx;
+	}
+	
+	.company-info-text,
+	.location-text {
+		color: rgba(156, 164, 171, 1);
+		font-family: DM Sans;
+		font-size: 20rpx;
+		font-weight: 400;
+		line-height: 40rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+	}
+	
+	.reply-time {
+		display: flex;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		padding: 8rpx;
+		font-family: DM Sans;
+		font-size: 20rpx;
+		font-weight: 400;
+		line-height: 40rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+		border-radius: 12rpx;
+		background: #ECE1FD;
+		color: #8858C5;
+	}
+
 	.gwList {
 		width: 100%;
-		margin-top: 200rpx;
+		margin-top: 410rpx;
 
 		.gwList-box {
-			width: 686rpx;
+			width: 710rpx;
 			height: 100%;
 
 			.gwList-box-item {
 				width: 100%;
 				// height: 329rpx;
 				background-color: #ffffff;
-				border-radius: 24rpx;
+				border-radius: 12rpx;
 				margin-bottom: 20rpx;
-				padding-bottom: 20rpx;
+				padding: 36rpx;
+				background: rgba(253, 253, 253, 1);
+				border: 0.5px solid rgba(227, 231, 236, 1);
 			}
 
 			.gwList-box-item-box {
-				width: 623rpx;
+				width: 686rpx;
 				height: 100%;
 
 				.gwList-box-item-box-title {
-					margin-top: 30rpx;
-
-					view:nth-of-type(1) {
-						color: #1F1F1F;
-						font-size: 38rpx;
-						font-weight: 800;
-					}
-
-					text:nth-of-type(1) {
-						color: #00B88F;
-						font-size: 38rpx;
-						font-weight: bold;
-					}
 				}
 
 				.gwList-box-item-box-label {
-					margin-top: 30rpx;
+					margin-top: 14rpx;
 				}
 
 				.gwList-box-item-box-name {
-					margin-top: 24rpx;
+					margin-top: 14rpx;
 					color: #999999;
 					font-size: 28rpx;
 					font-weight: 500;

+ 115 - 2
pages.json

@@ -30,6 +30,106 @@
 				// #endif 
 			}
 		},
+		{
+			"path": "pages/my/jobApplicant/loginInput",
+			"style": {
+				"navigationBarTitleText": "登录"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/guidePage",
+			"style": {
+				"navigationBarTitleText": "启动页"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/register",
+			"style": {
+				"navigationBarTitleText": "注册"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/registerSuccess",
+			"style": {
+				"navigationBarTitleText": "注册成功"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/password",
+			"style": {
+				"navigationBarTitleText": "创建账号密码"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/login",
+			"style": {
+				"navigationBarTitleText": "登录"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/startPage",
+			"style": {
+				"navigationBarTitleText": "开始页面"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/welcomePage",
+			"style": {
+				"navigationBarTitleText": "指导页"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/workProgress",
+			"style": {
+				"navigationBarTitleText": "工作经历"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
+		{
+			"path": "pages/my/jobApplicant/workRecord",
+			"style": {
+				"navigationBarTitleText": "工作经历"
+				// #ifdef H5
+				,
+				"navigationStyle": "custom"
+				// #endif 
+			}
+		},
 		{
 			"path": "pages/index/game/gameList",
 			"style": {
@@ -68,6 +168,20 @@
 				// #endif 
 			}
 		},
+		{
+			"path": "pages/index/citySelect",
+			"style": {
+				"navigationBarTitleText": "城市选择",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/index/jobSearch",
+			"style": {
+				"navigationBarTitleText": "职位搜索",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/index/webView",
 			"style": {
@@ -141,7 +255,6 @@
 			"style": {
 				"navigationBarTitleText": "工作经历",
 				"navigationStyle": "custom"
-
 			}
 		},
 		{
@@ -188,7 +301,7 @@
 				// #endif 
 			}
 		},
-				{
+		{
 			"path": "pages/my/ruleCenter",
 			"style": {
 				"navigationBarTitleText": "规则中心"

+ 1 - 1
pages/index/index.vue

@@ -217,7 +217,7 @@
 					<block v-if="current != typeList.length - 1">
 						<view class="gwList flex justify-center" v-if="dataList.length>0">
 							<view class="gwList-box">
-								<scroll-view scroll-y="true" style="width: 100%;height: 100%;">
+								<scroll-view scroll-y="true" style="width: 100%;height: 60vh;">
 									<view class="gwList-box-item flex justify-center" @click="gotoInfo(item.postPushId)"
 										v-for="(item,index) in dataList" :key="index">
 										<view class="gwList-box-item-box">

+ 314 - 0
pages/index/jobSearch.vue

@@ -0,0 +1,314 @@
+<template>
+	<view class="job-search-page">
+		<!-- 自定义导航栏 -->
+		<view class="custom-navbar">
+			<view class="navbar-content">
+				<view class="nav-left" @click="goBack">
+					<u-icon name="arrow-leftward" color="#333" size="42"></u-icon>
+				</view>
+				<view class="nav-title">职位搜索</view>
+				<view class="nav-right"></view>
+			</view>
+		</view>
+		
+		<!-- 主要内容 -->
+		<view class="main-content">
+			<!-- 搜索框区域 -->
+			<view class="search-section">
+				<view class="search-container">
+					<view class="search-input-container">
+						<u-icon name="search" color="#999" size="36" class="search-icon"></u-icon>
+						<input 
+							class="search-input" 
+							placeholder="搜索职位或公司" 
+							v-model="searchKeyword"
+						/>
+					</view>
+					<view class="search-btn" @click="handleSearch">
+						<text class="search-btn-text">搜索</text>
+					</view>
+				</view>
+			</view>
+			
+			<!-- 历史搜索 -->
+			<view class="history-section">
+				<view class="section-header">
+					<text class="section-title">历史搜索</text>
+					<image src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHistory"></image>
+				</view>
+				<view class="history-tags">
+					<view 
+						class="history-tag" 
+						v-for="(item, index) in historyList" 
+						:key="index"
+						@click="selectHistory(item)"
+					>
+						{{ item }}
+					</view>
+				</view>
+			</view>
+			
+			<!-- 近期热招 -->
+			<view class="hot-jobs-section">
+				<view class="section-header">
+					<text class="section-title">近期热招</text>
+					<image src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHotJobs"></image>
+				</view>
+				<view class="hot-jobs-grid">
+					<view 
+						class="hot-job-item" 
+						v-for="(job, index) in hotJobsList" 
+						:key="index"
+						@click="selectHotJob(job)"
+					>
+						<text class="job-name">{{ job.name }}</text>
+						<view class="hot-tag" v-if="job.isHot">
+							<text class="hot-tag-text">Hot</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			searchKeyword: '',
+			historyList: ['四海芯舟', '汉睿国际', '璀璨城邦'],
+			hotJobsList: [
+				{ name: '美国亚马逊运营', isHot: false },
+				{ name: '采购经理', isHot: false },
+				{ name: 'Tik Tok运营助理', isHot: true },
+				{ name: 'Temu运营专员', isHot: false },
+				{ name: '跨境电商运营助理', isHot: false },
+				{ name: '产品开发经理', isHot: false },
+				{ name: '海外仓管理经理', isHot: false },
+				{ name: '人事经理', isHot: false }
+			]
+		}
+	},
+	methods: {
+		goBack() {
+			uni.navigateBack()
+		},
+		
+		handleSearch() {
+			if (this.searchKeyword.trim()) {
+				console.log('搜索关键词:', this.searchKeyword)
+				// 这里可以添加搜索逻辑
+				uni.showToast({
+					title: '搜索功能待实现',
+					icon: 'none'
+				})
+			}
+		},
+		
+		selectHistory(item) {
+			this.searchKeyword = item
+			this.handleSearch()
+		},
+		
+		selectHotJob(job) {
+			this.searchKeyword = job.name
+			this.handleSearch()
+		},
+		
+		clearHistory() {
+			this.historyList = []
+			uni.showToast({
+				title: '历史搜索已清空',
+				icon: 'success'
+			})
+		},
+		
+		clearHotJobs() {
+			this.hotJobsList = []
+			uni.showToast({
+				title: '热招职位已清空',
+				icon: 'success'
+			})
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.job-search-page {
+	min-height: 100vh;
+	background-color: #ffffff;
+}
+
+.custom-navbar {
+	padding-top: 80rpx;
+	background-color: #ffffff;
+	z-index: 9999;
+	
+	.navbar-content {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 100%;
+		padding: 0 40rpx;
+		
+		.nav-left, .nav-right {
+			width: 60rpx;
+			height: 60rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+		
+		.nav-title {
+			color: rgba(51, 51, 51, 1);
+			font-family: DM Sans;
+			font-size: 36rpx;
+			font-weight: 700;
+			line-height: 26px;
+			letter-spacing: 0px;
+			text-align: center;
+		}
+	}
+}
+
+.main-content {
+	padding: 40rpx 40rpx 0 40rpx;
+}
+
+.search-section {
+	margin-bottom: 60rpx;
+	
+	.search-container {
+		display: flex;
+		align-items: center;
+		gap: 20rpx;
+		
+		.search-input-container {
+			flex: 1;
+			height: 70rpx;
+			background: #F5F5F5;
+			border-radius: 40rpx;
+			display: flex;
+			align-items: center;
+			padding: 0 30rpx;
+			
+			.search-icon {
+				margin-right: 20rpx;
+			}
+			
+			.search-input {
+                color: rgba(153, 153, 153, 1);
+                font-family: DM Sans;
+                font-size: 24rpx;
+                font-weight: 500;
+                line-height: 48rpx;
+                text-align: left;
+				
+				&::placeholder {
+					color: #999;
+				}
+			}
+		}
+		
+		.search-btn {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			
+			.search-btn-text {
+                color: rgba(1, 107, 246, 1);
+                font-family: DM Sans;
+                font-size: 26rpx;
+                font-weight: 500;
+                line-height: 48rpx;
+                letter-spacing: undefined;
+                text-align: center;
+			}
+		}
+	}
+}
+
+.history-section, .hot-jobs-section {
+	margin-bottom: 60rpx;
+	
+	.section-header {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 30rpx;
+		
+		.section-title {
+            color: rgba(34, 37, 42, 1);
+            font-family: DM Sans;
+            font-size: 28rpx;
+            font-weight: 400;
+            line-height: 48rpx;
+            letter-spacing: 0px;
+            text-align: left;
+		}
+	}
+}
+
+.history-tags {
+	display: flex;
+	flex-wrap: wrap;
+	gap: 8rpx;
+	
+	.history-tag {
+		padding: 8rpx;
+		border-radius: 8rpx;
+		background: rgba(153, 153, 153, 0.1);
+		color: rgba(102, 102, 102, 1);
+		font-family: DM Sans;
+		font-size: 20rpx;
+		font-weight: 400;
+		line-height: 20rpx;
+		text-align: left;
+	}
+}
+
+.hot-jobs-grid {
+	display: flex;
+	flex-wrap: wrap;
+	gap: 8rpx;
+	
+	.hot-job-item {
+		width: calc(50% - 4rpx);
+		padding: 8rpx;
+		background: #ffffff;
+		border-radius: 12rpx;
+		position: relative;
+		
+		.job-name {
+			color: rgba(102, 102, 102, 1);
+			font-family: DM Sans;
+			font-size: 20rpx;
+			font-weight: 400;
+			line-height: 44rpx;
+			letter-spacing: 0px;
+			text-align: left;
+		}
+		
+		.hot-tag {
+			position: absolute;
+			top: 8rpx;
+			right: 10rpx;
+			border-radius: 12rpx;
+			background: rgba(237, 66, 69, 1);
+			padding: 4rpx 12rpx;
+			
+			.hot-tag-text {
+				color: rgba(255, 255, 255, 1);
+				font-family: DM Sans;
+				font-size: 16rpx;
+				font-weight: 400;
+				line-height: 32rpx;
+				letter-spacing: 0.5%;
+				text-align: center;
+			}
+		}
+	}
+}
+</style>

+ 3 - 1
pages/my/index.vue

@@ -313,8 +313,10 @@
               <view
                 class="flex justify-center flex-wrap"
                 style="width: 112rpx"
-                @click="goNavNoLogin('/my/setting/about')"
+                @click="goNavNoLogin('/pages/my/jobApplicant/startPage')"
               >
+              <!-- goNavNoLogin('/my/setting/about') -->
+              <!-- pages/my/jobApplicant/startPage -->
                 <image
                   src="../../static/images/my/icon/utils/utils7.png"
                   style="width: 54rpx; height: 54rpx"

+ 6 - 3
pages/my/jobApplicant/login.vue

@@ -4,17 +4,17 @@
       <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
     </view>
     <view class="login-btn-box">
-      <view class="login-btn wechat"
+      <view class="login-btn wechat" @click="goLogin"
         ><image src="@/static/images/jobApplicant/wechat.svg" mode="scaleToFill" />
         微信登录</view
       >
-      <view class="login-btn password"
+      <view class="login-btn password" @click="goLogin"
         ><image
           src="@/static/images/jobApplicant/password.svg"
           mode="scaleToFill"
         />账号密码登录</view
       >
-      <view class="login-btn phone"
+      <view class="login-btn phone" @click="goLogin"
         ><image
           src="@/static/images/jobApplicant/phone.svg"
           mode="scaleToFill"
@@ -53,6 +53,9 @@ export default {
     isArgee() {
       this.argee = !this.argee;
     },
+    goLogin() {
+      uni.navigateTo({ url: "/pages/my/jobApplicant/loginInput" });
+    },
   },
 };
 </script>

+ 6 - 2
pages/my/jobApplicant/startPage.vue

@@ -43,7 +43,7 @@
         ></view>
       </view>
     </view>
-    <view class="start-btn">开启探索之旅</view>
+    <view class="start-btn" @click="goLogin">开启探索之旅</view>
   </view>
 </template>
 <script>
@@ -72,7 +72,11 @@ export default {
         });
       }
     },
-
+    goLogin() {
+      uni.navigateTo({
+        url: "/pages/my/jobApplicant/login",
+      });
+    },
     // 暂停自动播放
     pauseAutoplay() {
       this.autoplay = false;

+ 4 - 4
pages/my/personalCenter.vue

@@ -60,19 +60,19 @@
 		<!-- 快速功能区域 -->
 		<view class="quick-functions">
 			<view class="function-item">
-				<image src="../../static/images/index/icon_32_全屋智能.svg" class="function-icon"></image>
+				<image src="../../static/images/index/qwzn.svg" class="function-icon"></image>
 				<text class="function-text">在线简历</text>
 			</view>
 			<view class="function-item">
-				<image src="../../static/images/index/icon_32_产品百科.svg" class="function-icon"></image>
+				<image src="../../static/images/index/cpbk.svg" class="function-icon"></image>
 				<text class="function-text">附件简历</text>
 			</view>
 			<view class="function-item">
-				<image src="../../static/images/index/icon_32_服务中心.svg" class="function-icon"></image>
+				<image src="../../static/images/index/fwzx.svg" class="function-icon"></image>
 				<text class="function-text">求职意向</text>
 			</view>
 			<view class="function-item">
-				<image src="../../static/images/index/icon_32_热门活动.svg" class="function-icon"></image>
+				<image src="../../static/images/index/rmhd.svg" class="function-icon"></image>
 				<text class="function-text">项目中心</text>
 			</view>
 		</view>

+ 252 - 199
pages/public/loginphone.vue

@@ -1,218 +1,271 @@
 <template>
-	<view class="container">
-		<view class="wrapper">
-			<!-- <view style="text-align: center;">
+  <view class="container">
+    <view class="wrapper">
+      <!-- <view style="text-align: center;">
 				<image src="../../static/logo.png" style="border-radius: 64upx;"></image>
 			</view>
  -->
-			<view class="input-content">
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
-					<view class="title text-black">账号</view>
-					<input type="number" :value="phone" placeholder="请输入手机号" maxlength="11" data-key="phone"
-						@input="inputChange" />
-				</view>
-				<view class="cu-form-group" style="border: 2upx solid whitesmoke;border-radius: 30px">
-					<view class="title text-black">密码</view>
-					<input type="password" placeholder="请输入密码" maxlength="20" :value="password" data-key="password"
-						@input="inputChange" @confirm="toLogin" />
-					<text class="send-msg" @click="forget">忘记密码</text>
-				</view>
-			</view>
-			<button class="confirm-btn" @click="toLogin">登录</button>
+      <view class="input-content">
+        <view class="item-label">手机号码</view>
+        <view class="cu-form-group">
+          <view class="input-box">
+            <input
+              type="number"
+              :value="phone"
+              placeholder="请输入手机号"
+              maxlength="11"
+              data-key="phone"
+              @input="inputChange"
+            />
+          </view>
+        </view>
+        <view class="item-label">登录密码</view>
+        <view class="cu-form-group">
+          <view class="input-box">
+            <input
+              type="password"
+              placeholder="请输入密码"
+              maxlength="20"
+              :value="password"
+              data-key="password"
+              @input="inputChange"
+              @confirm="toLogin"
+            />
+          </view>
+        </view>
 
-			<view style="margin-top: 32px;text-align: center">
-				<view><text style="font-size: 28upx;">没有账号?</text>
-					<text style="color: #00B88F" @click="register()">立即注册</text>
-				</view>
-			</view>
-		</view>
-	</view>
+        <view class="forgot-password">
+          <view @click="forget">忘记密码</view>
+        </view>
+        <button class="confirm-btn" @click="toLogin">登录</button>
+
+        <view style="margin-top: 32rpx; text-align: center">
+          <view>
+            <text class="register-section" @click="register()">注册</text>
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				phone: '',
-				password: '',
-				banners: [],
-				invitation: '',
-				loginName: '',
-				sending: false,
-				sendTime: '获取验证码',
-				count: 60,
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-
-			forget() {
-				uni.navigateTo({
-					url: '/pages/public/forgetPwd'
-				});
-			},
-			register() {
-				uni.navigateTo({
-					url: '/pages/public/register'
-				});
-			},
-			inputChange(e) {
-				const key = e.currentTarget.dataset.key;
-				this[key] = e.detail.value;
-			},
-			navBack() {
-				uni.navigateBack();
-			},
+export default {
+  data() {
+    return {
+      phone: "",
+      password: "",
+      banners: [],
+      invitation: "",
+      loginName: "",
+      sending: false,
+      sendTime: "获取验证码",
+      count: 60,
+    };
+  },
+  onLoad() {},
+  methods: {
+    forget() {
+      uni.navigateTo({
+        url: "/pages/public/forgetPwd",
+      });
+    },
+    register() {
+      uni.navigateTo({
+        url: "/pages/public/register",
+      });
+    },
+    inputChange(e) {
+      const key = e.currentTarget.dataset.key;
+      this[key] = e.detail.value;
+    },
+    navBack() {
+      uni.navigateBack();
+    },
 
-			toLogin() {
-				this.$queue.loginClear();
-				let openid = this.$queue.getData("openid");
-				const {
-					phone,
-					password
-				} = this;
-				if (!phone) {
-					this.$queue.showToast("请输入手机号");
-				} else if (phone.length != 11) {
-					this.$queue.showToast("请输入正确的手机号");
-				} else if (!password) {
-					this.$queue.showToast("请输入密码");
-				} else {
-					this.$queue.showLoading("正在登录中...");
-					this.$Request.post("/app/Login/loginApp", {
-						password: password,
-						phone: phone,
-						openId: this.$queue.getData('openid')
-					}).then(res => {
-						if (res.code == 0) {
-							this.$queue.setData("userId", res.user.userId);
-							this.$queue.setData("token", res.token);
-							this.$queue.setData("phone", res.user.phone);
-							this.$queue.setData("userName", res.user.userName);
-							this.$queue.setData("avatar", res.user.avatar);
-							this.$queue.setData("invitationCode", res.user.invitationCode);
-							this.$queue.setData("inviterCode", res.user.inviterCode);
-							this.getIsVip()
-							uni.hideLoading();
-							this.$queue.setData("userType", res.user.userType);
-							//判断是否开启身份选择 是/否
-							this.$Request.get('/app/common/type/339').then(rest => {
-								if (rest.code == 0) {
-									if(rest.data.value=='是'){
-										uni.reLaunch({
-											url:'/pages/public/selectIdentity/selectIdentity'
-										})
-									}else{
-										if(res.user.userType==2){
-											uni.reLaunch({
-												url:'/pages/my/index'
-											})
-										}else{
-											uni.reLaunch({
-												url:'/pages/my/index'
-											})
-										}
-									}
-								}else{
-									if(res.user.userType==2){
-										uni.reLaunch({
-											url:'/pages/my/index'
-										})
-									}else{
-										uni.reLaunch({
-											url:'/pages/my/index'
-										})
-									}
-								}
-							});
-							
-							
-							
-							
-							// uni.switchTab({
-							// 	url: '/pages/my/index'
-							// })
-						} else {
-							uni.hideLoading();
-							this.$queue.showToast(res.msg);
-						}
-					});
-				}
-			},
-			getIsVip() {
-				this.$Request.get("/app/UserVip/isUserVip").then(res => {
-					if (res.code == 0) {
-						// this.isVip = res.data
-						console.log(res.data)
-						this.$queue.setData("isVip", res.data);
-					}
-				});
-			}
-		},
+    toLogin() {
+      this.$queue.loginClear();
+      let openid = this.$queue.getData("openid");
+      const { phone, password } = this;
+      if (!phone) {
+        this.$queue.showToast("请输入手机号");
+      } else if (phone.length != 11) {
+        this.$queue.showToast("请输入正确的手机号");
+      } else if (!password) {
+        this.$queue.showToast("请输入密码");
+      } else {
+        this.$queue.showLoading("正在登录中...");
+        this.$Request
+          .post("/app/Login/loginApp", {
+            password: password,
+            phone: phone,
+            openId: this.$queue.getData("openid"),
+          })
+          .then((res) => {
+            if (res.code == 0) {
+              this.$queue.setData("userId", res.user.userId);
+              this.$queue.setData("token", res.token);
+              this.$queue.setData("phone", res.user.phone);
+              this.$queue.setData("userName", res.user.userName);
+              this.$queue.setData("avatar", res.user.avatar);
+              this.$queue.setData("invitationCode", res.user.invitationCode);
+              this.$queue.setData("inviterCode", res.user.inviterCode);
+              this.getIsVip();
+              uni.hideLoading();
+              this.$queue.setData("userType", res.user.userType);
+              //判断是否开启身份选择 是/否
+              this.$Request.get("/app/common/type/339").then((rest) => {
+                if (rest.code == 0) {
+                  if (rest.data.value == "是") {
+                    uni.reLaunch({
+                      url: "/pages/public/selectIdentity/selectIdentity",
+                    });
+                  } else {
+                    if (res.user.userType == 2) {
+                      uni.reLaunch({
+                        url: "/pages/my/index",
+                      });
+                    } else {
+                      uni.reLaunch({
+                        url: "/pages/my/index",
+                      });
+                    }
+                  }
+                } else {
+                  if (res.user.userType == 2) {
+                    uni.reLaunch({
+                      url: "/pages/my/index",
+                    });
+                  } else {
+                    uni.reLaunch({
+                      url: "/pages/my/index",
+                    });
+                  }
+                }
+              });
 
-	}
+              // uni.switchTab({
+              // 	url: '/pages/my/index'
+              // })
+            } else {
+              uni.hideLoading();
+              this.$queue.showToast(res.msg);
+            }
+          });
+      }
+    },
+    getIsVip() {
+      this.$Request.get("/app/UserVip/isUserVip").then((res) => {
+        if (res.code == 0) {
+          // this.isVip = res.data
+          console.log(res.data);
+          this.$queue.setData("isVip", res.data);
+        }
+      });
+    },
+  },
+};
 </script>
 
-<style lang='scss'>
-	page {
-		height: 100%;
-		background: #F5F5F5 !important;
-	}
-
-	.bg {
-		background-color: #FFFFFF;
-	}
-
-	.send-msg {
-		border-radius: 30px;
-		color: black;
-		background: white;
-		height: 30px;
-		font-size: 14px;
-		line-height: 30px;
-	}
-
-	.container {
-		top: 0;
-		padding-top: 32upx;
-		position: relative;
-		width: 100%;
-		height: 100%;
-		overflow: hidden;
-		background: #FFFFFF !important;
-	}
-
-	.wrapper {
-		position: relative;
-		z-index: 90;
-		background: #FFFFFF;
-		padding-bottom: 32upx;
-	}
+<style lang="scss" scoped>
+::v-deep .input-placeholder {
+  color: #9ea1a8;
+  font-family: DM Sans;
+  font-size: 28rpx;
+  font-weight: 400;
+  text-align: left;
+}
+page {
+  height: 100%;
+  background: #fff;
+}
+.forgot-password {
+  text-align: left;
+  margin-top: 8rpx;
+  color: rgba(102, 112, 133, 1);
+  font-family: Inter;
+  font-size: 24rpx;
+  font-weight: 400;
+  line-height: 40rpx;
+}
+.item-label {
+  color: rgba(18, 26, 44, 1);
+  font-family: Roboto;
+  font-size: 32rpx;
+  font-weight: 400;
+  line-height: 51.2rpx;
+  letter-spacing: 0px;
+  text-align: left;
+  padding-bottom: 6rpx;
+  margin-top: 32rpx;
+}
+.cu-form-group {
+  box-sizing: border-box;
+  border: 2rpx solid rgba(158, 161, 168, 1);
+  border-radius: 24rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 8rpx 24rpx !important;
+}
+.bg {
+  background-color: #ffffff;
+}
 
+.send-msg {
+  border-radius: 30px;
+  color: black;
+  background: white;
+  height: 30px;
+  font-size: 14px;
+  line-height: 30px;
+}
 
-	.input-content {
-		/* margin-top: 300upx; */
-		/* padding-top: 300upx; */
-		padding: 32upx 80upx;
+.container {
+  top: 0;
+  padding-top: 32upx;
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  background: #ffffff !important;
+}
 
-	}
+.wrapper {
+  position: relative;
+  z-index: 90;
+  background: #ffffff;
+  padding-bottom: 32upx;
+}
 
+.input-content {
+  padding: 32rpx;
+  box-sizing: border-box;
+}
 
-	.confirm-btn {
-		width: 600upx;
-		height: 80upx;
-		line-height: 80upx;
-		border-radius: 60upx;
-		margin-top: 32upx;
-		background: #00B88F;
-		color: #fff;
-		font-size: 32upx;
+.confirm-btn {
+  width: 100%;
+  border-radius: 100rpx;
+  margin-top: 32rpx;
+  background: #016bf6;
+  color: rgba(255, 255, 255, 1);
+  font-family: DM Sans;
+  font-size: 32rpx;
+  font-weight: 400;
 
-		&:after {
-			border-radius: 60px;
-		}
-	}
+  &:after {
+    border-radius: 60px;
+  }
+}
+.register-section {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #016bf6;
+  font-family: Inter;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 20px;
+  letter-spacing: 0%;
+  text-align: right;
+  text-decoration-line: underline;
+}
 </style>

+ 404 - 344
pages/public/register.vue

@@ -1,362 +1,422 @@
 <template>
-	<view class="container">
-		<view class="wrapper">
-			<view class="input-content">
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
-					<view class="title text-black">用户名</view>
-					<input :value="userName" placeholder="请输入用户名" data-key="userName" @input="inputChange" />
-				</view>
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
-					<view class="title text-black">手机号</view>
-					<input type="number" :value="phone" placeholder="请输入手机号" maxlength="11" data-key="phone"
-						@input="inputChange" />
-				</view>
-				<view class="cu-form-group padding-right-xs"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
-					<text class="title text-black">验证码</text>
-					<input type="number" :value="code" placeholder="请输入验证码" maxlength="6" data-key="code"
-						@input="inputChange" @confirm="toLogin" />
-					<button class="send-msg" @click="sendMsg" :disabled="sending">{{ sendTime }}</button>
-				</view>
+  <view class="container">
+    <view class="wrapper">
+      <view class="input-content">
+        <view class="item-label">用户名</view>
+        <view class="cu-form-group">
+          <input
+            :value="userName"
+            placeholder="请输入用户名"
+            data-key="userName"
+            @input="inputChange"
+          />
+        </view>
+        <view class="item-label">手机号</view>
+        <view class="cu-form-group">
+          <input
+            type="number"
+            :value="phone"
+            placeholder="请输入手机号"
+            maxlength="11"
+            data-key="phone"
+            @input="inputChange"
+          />
+        </view>
+        <view class="item-label">验证码</view>
+        <view class="cu-form-group padding-right-xs">
+          <input
+            type="number"
+            :value="code"
+            placeholder="请输入验证码"
+            maxlength="6"
+            data-key="code"
+            @input="inputChange"
+            @confirm="toLogin"
+          />
+          <button class="send-msg" @click="sendMsg" :disabled="sending">
+            {{ sendTime }}
+          </button>
+        </view>
 
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px">
-					<text class="title text-black">设置密码</text>
-					<input type="password" :value="password" placeholder="请设置密码" placeholder-class="input-empty"
-						maxlength="20" minlength="6" data-key="password" @input="inputChange" @confirm="toLogin" />
-				</view>
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px"
-					v-if="required == '是'">
-					<text class="title text-black">邀请码</text>
-					<input type="" maxlength="6" :value="invitation" placeholder="请填写邀请码(必填)"
-						data-key="invitation" @input="inputChange" @confirm="toLogin" />
-				</view>
-				<view class="cu-form-group"
-					style="border: 2upx solid whitesmoke;margin-bottom: 20px;border-radius: 30px"
-					v-if="required == '否'">
-					<text class="title text-black">邀请码</text>
-					<input type="" maxlength="6" :value="invitation" placeholder="请填写邀请码(选填)"
-						data-key="invitation" @input="inputChange" @confirm="toLogin" />
-				</view>
-			</view>
-			<button class="confirm-btn" @click="toLogin">立即注册</button>
-			<view class="footer">
-				<text @tap="isShowAgree" class="cuIcon"
-					:class="showAgree ? 'cuIcon-radiobox' : 'cuIcon-round'">同意</text>
-				<!-- 协议地址 -->
-				<navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
-				和
-				<navigator url="/my/setting/xieyi" open-type="navigate">《用户服务协议》</navigator>
-			</view>
-		</view>
-	</view>
+        <view class="item-label">设置密码</view>
+        <view class="cu-form-group">
+          <input
+            type="password"
+            :value="password"
+            placeholder="请设置密码"
+            placeholder-class="input-empty"
+            maxlength="20"
+            minlength="6"
+            data-key="password"
+            @input="inputChange"
+            @confirm="toLogin"
+          />
+        </view>
+        <view class="cu-form-group" style="margin-top: 32rpx;" v-if="required == '是'">
+        <view class="item-label-code">邀请码</view>
+          <input
+            type=""
+            maxlength="6"
+            :value="invitation"
+            placeholder="请填写邀请码(必填)"
+            data-key="invitation"
+            @input="inputChange"
+            @confirm="toLogin"
+          />
+        </view>
+        <view class="cu-form-group"  style="margin-top: 32rpx;" v-if="required == '否'">
+        <view class="item-label-code">邀请码</view>
+          <input
+            type=""
+            maxlength="6"
+            :value="invitation"
+            placeholder="请填写邀请码(选填)"
+            data-key="invitation"
+            @input="inputChange"
+            @confirm="toLogin"
+          />
+        </view>
+      </view>
+      <button class="confirm-btn" @click="toLogin">立即注册</button>
+      <view class="footer">
+        <text
+          @tap="isShowAgree"
+          class="cuIcon"
+          :class="showAgree ? 'cuIcon-radiobox' : 'cuIcon-round'"
+          >同意</text
+        >
+        <!-- 协议地址 -->
+        <navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
+        和
+        <navigator url="/my/setting/xieyi" open-type="navigate"
+          >《用户服务协议》</navigator
+        >
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				userName: '',
-				showAgree: false,
-				code: '',
-				phone: '',
-				password: '',
-				required: '否',
-				sending: false,
-				sendTime: '获取验证码',
-				count: 60,
-				relation: "",
-				state: '',
-				invitation: '',
-				platform: ''
-			};
-		},
-		onLoad() {
-			// this.invitation = this.$queue.getData('inviterCode') ? this.$queue.getData('inviterCode') : '';
-			this.invitation = this.$queue.getData('invitation') ? this.$queue.getData('invitation') : '';
-			// #ifdef APP-PLUS
-			this.platform = 'app'
-			//#endif
-			//#ifdef H5
-			this.platform = 'H5'
-			// #endif 
-		},
-		methods: {
-			showMa() {
-				//查询官方邀请码
-				this.$Request.getT('/app/common/type/4').then(res => {
-					if (res.code == 0) {
-						this.invitationCode = res.data.value;
+export default {
+  data() {
+    return {
+      userName: "",
+      showAgree: false,
+      code: "",
+      phone: "",
+      password: "",
+      required: "否",
+      sending: false,
+      sendTime: "获取验证码",
+      count: 60,
+      relation: "",
+      state: "",
+      invitation: "",
+      platform: "",
+    };
+  },
+  onLoad() {
+    // this.invitation = this.$queue.getData('inviterCode') ? this.$queue.getData('inviterCode') : '';
+    this.invitation = this.$queue.getData("invitation")
+      ? this.$queue.getData("invitation")
+      : "";
+    // #ifdef APP-PLUS
+    this.platform = "app";
+    //#endif
+    //#ifdef H5
+    this.platform = "H5";
+    // #endif
+  },
+  methods: {
+    showMa() {
+      //查询官方邀请码
+      this.$Request.getT("/app/common/type/4").then((res) => {
+        if (res.code == 0) {
+          this.invitationCode = res.data.value;
+        }
+      });
+    },
+    // 注册邀请码必填
+    invitationMa() {
+      this.$Request.getT("/app/common/type/3").then((res) => {
+        if (res.code == 0) {
+          this.required = res.data.value;
+        }
+      });
+    },
+    // 获取新用户优惠券数量
+    newMa() {
+      this.$Request.getT("/app/common/type/119").then((res) => {
+        if (res.code == 0) {
+          this.amount = res.data.value;
+        }
+      });
+    },
+    isShowAgree() {
+      //是否选择协议
+      this.showAgree = !this.showAgree;
+    },
+    sendMsg() {
+      const { phone } = this;
+      if (!phone) {
+        this.$queue.showToast("请输入手机号");
+      } else if (phone.length !== 11) {
+        this.$queue.showToast("请输入正确的手机号");
+      } else {
+        this.$queue.showLoading("正在发送验证码...");
+        this.$Request.getT("/app/Login/sendMsg/" + phone + "/1").then((res) => {
+          if (res.code === 0) {
+            this.sending = true;
+            this.$queue.showToast("验证码发送成功请注意查收");
+            this.countDown();
+            uni.hideLoading();
+          } else {
+            uni.hideLoading();
+            uni.showModal({
+              showCancel: false,
+              title: "短信发送失败",
+              content: res.msg ? res.msg : "请一分钟后再获取验证码",
+            });
+          }
+        });
+      }
+    },
+    countDown() {
+      const { count } = this;
+      if (count === 1) {
+        this.count = 60;
+        this.sending = false;
+        this.sendTime = "获取验证码";
+      } else {
+        this.count = count - 1;
+        this.sending = true;
+        this.sendTime = count - 1 + "秒后重新获取";
+        setTimeout(this.countDown.bind(this), 1000);
+      }
+    },
+    inputChange(e) {
+      const key = e.currentTarget.dataset.key;
+      this[key] = e.detail.value;
+    },
+    navBack() {
+      uni.navigateBack();
+    },
 
-					}
-				});
-			},
-			// 注册邀请码必填
-			invitationMa() {
-				this.$Request.getT('/app/common/type/3').then(res => {
-					if (res.code == 0) {
-						this.required = res.data.value;
+    navTo(url) {
+      uni.navigateTo({
+        url,
+      });
+    },
+    toLogin() {
+      const { userName, phone, password, code, showAgree, invitation } = this;
+      if (!userName) {
+        this.$queue.showToast("请输入用户名");
+      } else if (!phone) {
+        this.$queue.showToast("请输入手机号");
+      } else if (!code) {
+        this.$queue.showToast("请输入验证码");
+      } else if (!password) {
+        this.$queue.showToast("请设置密码");
+      } else if (password.length < 6) {
+        this.$queue.showToast("密码位数必须大于六位");
+      } else if (!showAgree) {
+        this.$queue.showToast("请先同意《协议》");
+      } else if (!invitation && this.required == "是") {
+        this.$queue.showToast("请填写邀请码");
+      } else if (!invitation && this.required == "否") {
+        this.invitation = "";
+        this.logining = true;
+        this.$queue.showLoading("注册中...");
+        this.$Request
+          .post(`/app/Login/registApp`, {
+            userName: userName,
+            password: password,
+            phone: phone,
+            openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
+            invitation: this.invitation,
+            platform: this.platform,
+            msg: code,
+          })
+          .then((res) => {
+            if (res.code === 0) {
+              this.$queue.showToast("注册成功");
 
-					}
-				});
-			},
-			// 获取新用户优惠券数量
-			newMa() {
-				this.$Request.getT('/app/common/type/119').then(res => {
-					if (res.code == 0) {
-						this.amount = res.data.value;
-					}
-				});
-			},
-			isShowAgree() {
-				//是否选择协议
-				this.showAgree = !this.showAgree;
-			},
-			sendMsg() {
-				const {
-					phone
-				} = this;
-				if (!phone) {
-					this.$queue.showToast('请输入手机号');
-				} else if (phone.length !== 11) {
-					this.$queue.showToast('请输入正确的手机号');
-				} else {
-					this.$queue.showLoading('正在发送验证码...');
-					this.$Request.getT('/app/Login/sendMsg/' + phone + '/1' ).then(res => {
-						if (res.code === 0) {
-							this.sending = true;
-							this.$queue.showToast('验证码发送成功请注意查收');
-							this.countDown();
-							uni.hideLoading();
-						} else {
-							uni.hideLoading();
-							uni.showModal({
-								showCancel: false,
-								title: '短信发送失败',
-								content: res.msg ? res.msg : '请一分钟后再获取验证码'
-							});
-						}
-					});
-				}
-			},
-			countDown() {
-				const {
-					count
-				} = this;
-				if (count === 1) {
-					this.count = 60;
-					this.sending = false;
-					this.sendTime = '获取验证码';
-				} else {
-					this.count = count - 1;
-					this.sending = true;
-					this.sendTime = count - 1 + '秒后重新获取';
-					setTimeout(this.countDown.bind(this), 1000);
-				}
-			},
-			inputChange(e) {
-				const key = e.currentTarget.dataset.key;
-				this[key] = e.detail.value;
-			},
-			navBack() {
-				uni.navigateBack();
-			},
+              this.$queue.setData("token", res.token);
+              this.$queue.setData("userId", res.user.userId);
+              this.$queue.setData("userName", res.user.userName);
+              this.$queue.setData("phone", res.user.phone);
+              this.$queue.setData(
+                "avatar",
+                res.user.avatar ? res.user.avatar : "../../static/logo.png"
+              );
+              this.getUserInfo();
+              setTimeout(function () {
+                uni.switchTab({
+                  url: "/pages/index/index",
+                });
+              }, 1000);
+            } else {
+              uni.hideLoading();
+              uni.showModal({
+                showCancel: false,
+                title: "注册失败",
+                content: res.msg,
+              });
+            }
+          });
+      } else {
+        this.logining = true;
+        this.$queue.showLoading("注册中...");
+        this.$Request
+          .post(`/app/Login/registApp?msg=${code}`, {
+            userName: userName,
+            password: password,
+            phone: phone,
+            openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
+            invitation: this.invitation,
+            platform: this.platform,
+          })
+          .then((res) => {
+            if (res.code === 0) {
+              this.$queue.setData("token", res.token);
+              this.$queue.setData("userId", res.user.userId);
+              this.$queue.setData("userName", res.user.userName);
+              this.$queue.setData("phone", res.user.phone);
+              this.$queue.setData(
+                "avatar",
+                res.user.avatar ? res.user.avatar : "../../static/logo.png"
+              );
+              this.$queue.setData("invitationCode", res.user.invitationCode);
+              this.$queue.setData("inviterCode", res.user.inviterCode);
+              this.getUserInfo();
+              setTimeout(function () {
+                uni.switchTab({
+                  url: "/pages/index/index",
+                });
+              }, 1000);
+            } else {
+              uni.showModal({
+                showCancel: false,
+                title: "注册失败",
+                content: res.msg,
+              });
+            }
+            uni.hideLoading();
+          });
+      }
+    },
+    //获取用户信息
+    getUserInfo() {
+      this.$Request.get("/app/user/selectUserById").then((res) => {
+        if (res.code == 0) {
+          uni.hideLoading();
+          this.$queue.setData(
+            "avatar",
+            res.data.avatar ? res.data.avatar : "../../static/logo.png"
+          );
+          this.$queue.setData("userId", res.data.userId);
+          this.$queue.setData("userName", res.data.userName);
+          this.$queue.setData("phone", res.data.phone);
+          this.$queue.setData("invitationCode", res.user.invitationCode);
+          this.$queue.setData("inviterCode", res.user.inviterCode);
 
-			navTo(url) {
-				uni.navigateTo({
-					url
-				});
-			},
-			toLogin() {
-				const {
-					userName,
-					phone,
-					password,
-					code,
-					showAgree,
-					invitation,
-				} = this;
-				if (!userName) {
-					this.$queue.showToast('请输入用户名');
-				} else if (!phone) {
-					this.$queue.showToast('请输入手机号');
-				} else if (!code) {
-					this.$queue.showToast('请输入验证码');
-				} else if (!password) {
-					this.$queue.showToast('请设置密码');
-				} else if (password.length < 6) {
-					this.$queue.showToast('密码位数必须大于六位');
-				} else if (!showAgree) {
-					this.$queue.showToast('请先同意《协议》');
-				} else if (!invitation && this.required == '是') {
-					this.$queue.showToast('请填写邀请码');
-				} else if (!invitation && this.required == '否') {
-					this.invitation = '';
-					this.logining = true;
-					this.$queue.showLoading('注册中...');
-					this.$Request.post(`/app/Login/registApp`, {
-						userName: userName,
-						password: password,
-						phone: phone,
-						openId: this.$queue.getData('openid') ? this.$queue.getData('openid') : '',
-						invitation: this.invitation,
-						platform: this.platform,
-						msg: code
-					}).then(res => {
-						if (res.code === 0) {
-							this.$queue.showToast('注册成功');
-							
-							this.$queue.setData("token", res.token);
-							this.$queue.setData('userId', res.user.userId);
-							this.$queue.setData('userName', res.user.userName);
-							this.$queue.setData('phone', res.user.phone);
-							this.$queue.setData('avatar', res.user.avatar?res.user.avatar: '../../static/logo.png');
-							this.getUserInfo()
-							setTimeout(function() {
-								uni.switchTab({
-									url:'/pages/index/index'
-								})
-							},1000)
-						} else {
-							uni.hideLoading();
-							uni.showModal({
-								showCancel: false,
-								title: '注册失败',
-								content: res.msg
-							});
-						}
-					});
-				} else {
-					this.logining = true;
-					this.$queue.showLoading('注册中...');
-					this.$Request.post(`/app/Login/registApp?msg=${code}`, {
-						userName: userName,
-						password: password,
-						phone: phone,
-						openId: this.$queue.getData('openid') ? this.$queue.getData('openid') : '',
-						invitation: this.invitation,
-						platform: this.platform
-					}).then(res => {
-						if (res.code === 0) {
-							this.$queue.setData("token", res.token);
-							this.$queue.setData('userId', res.user.userId);
-							this.$queue.setData('userName', res.user.userName);
-							this.$queue.setData('phone', res.user.phone);
-							this.$queue.setData('avatar', res.user.avatar?res.user.avatar: '../../static/logo.png');
-							this.$queue.setData("invitationCode", res.user.invitationCode);
-							this.$queue.setData("inviterCode", res.user.inviterCode);
-							this.getUserInfo()
-							setTimeout(function() {
-								uni.switchTab({
-									url:'/pages/index/index'
-								})
-							},1000)
-						} else {
-							uni.showModal({
-								showCancel: false,
-								title: '注册失败',
-								content: res.msg
-							});
-						}
-						uni.hideLoading();
-					});
-				}
-			},
-			//获取用户信息
-			getUserInfo() {
-				this.$Request.get("/app/user/selectUserById").then(res => {
-					if (res.code == 0) {
-						uni.hideLoading()
-						this.$queue.setData('avatar', res.data.avatar?res.data.avatar:'../../static/logo.png');
-						this.$queue.setData('userId', res.data.userId);
-						this.$queue.setData('userName', res.data.userName);
-						this.$queue.setData('phone', res.data.phone);
-						this.$queue.setData("invitationCode", res.user.invitationCode);
-						this.$queue.setData("inviterCode", res.user.inviterCode);
-						
-						this.userName = res.data.userName
-						this.invitationCode = res.data.invitationCode
-						uni.setStorageSync('invitationCode', res.data.invitationCode)
-						setTimeout(function() {
-							uni.switchTab({
-								url:'/pages/index/index'
-							})
-						},1000)
-					} else {
-						uni.showModal({
-							showCancel: false,
-							title: '登录失败',
-							content: res.msg
-						});
-						this.$queue.logout();
-					}
-				});
-			}
-		}
-	};
+          this.userName = res.data.userName;
+          this.invitationCode = res.data.invitationCode;
+          uni.setStorageSync("invitationCode", res.data.invitationCode);
+          setTimeout(function () {
+            uni.switchTab({
+              url: "/pages/index/index",
+            });
+          }, 1000);
+        } else {
+          uni.showModal({
+            showCancel: false,
+            title: "登录失败",
+            content: res.msg,
+          });
+          this.$queue.logout();
+        }
+      });
+    },
+  },
+};
 </script>
 
-<style lang="scss">
-	page {
-		height: 100%;
-		background: #FFFFFF !important;
-	}
-	.footer {
-		padding-left: 140upx;
-		margin-top: 32upx;
-		text-align: center;
-		display: flex;
-		// color: #FFFFFF;
-	}
+<style lang="scss" scoped>
+page {
+  height: 100%;
+  background: #ffffff !important;
+}
+.item-label {
+  color: rgba(18, 26, 44, 1);
+  font-family: Roboto;
+  font-size: 32rpx;
+  font-weight: 400;
+  line-height: 51.2rpx;
+  letter-spacing: 0px;
+  text-align: left;
+  padding-bottom: 6rpx;
+  margin-top: 32rpx;
+}
+.cu-form-group {
+  box-sizing: border-box;
+  border: 2rpx solid rgba(158, 161, 168, 1);
+  border-radius: 24rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 8rpx 24rpx !important;
+}
+.footer {
+  padding-left: 140upx;
+  margin-top: 32upx;
+  text-align: center;
+  display: flex;
+  // color: #FFFFFF;
+}
 
-	.send-msg {
-		border-radius: 30px;
-		color: white;
-		height: 30px;
-		font-size: 10px;
-		line-height: 30px;
-		background: #00B88F;
-	}
+.send-msg {
+  border-radius: 30px;
+  color: white;
+  height: 30px;
+  font-size: 10px;
+  line-height: 30px;
+  background: #016BF6;
+}
 
+.container {
+  padding-top: 32upx;
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  background: #ffffff !important;
+}
 
-	.container {
-		padding-top: 32upx;
-		position: relative;
-		width: 100%;
-		height: 100%;
-		overflow: hidden;
-		background: #ffffff!important;
-	}
+.wrapper {
+  position: relative;
+  z-index: 90;
+  background: #ffffff;
+  padding-bottom: 20px;
+}
 
-	.wrapper {
-		position: relative;
-		z-index: 90;
-		background: #ffffff;
-		padding-bottom: 20px;
-	}
+.input-content {
+  //   padding: 32upx 80upx;
+  padding: 32rpx;
+  box-sizing: border-box;
+}
 
+.confirm-btn {
+  width: 600upx;
+  height: 80upx;
+  line-height: 80upx;
+  border-radius: 60upx;
+  margin-top: 32upx;
+  background: #016BF6;
 
-	.input-content {
-		padding: 32upx 80upx;
-	}
+  color: #fff;
+  font-size: 32upx;
 
-
-	.confirm-btn {
-		width: 600upx;
-		height: 80upx;
-		line-height: 80upx;
-		border-radius: 60upx;
-		margin-top: 32upx;
-		background: #00B88F;
-
-		color: #fff;
-		font-size: 32upx;
-
-		&:after {
-			border-radius: 60px;
-		}
-	}
+  &:after {
+    border-radius: 60px;
+  }
+}
 </style>

Файловите разлики са ограничени, защото са твърде много
+ 2 - 0
static/images/shanchu22.svg


Някои файлове не бяха показани, защото твърде много файлове са промени