wkw 7 сар өмнө
parent
commit
ef59e815a2

+ 6 - 1
pages/index/game/gameList.vue

@@ -449,7 +449,7 @@ export default {
 			tmp.name=item.ruleClassifyName
 			tmp.name=item.ruleClassifyName
 			tmp.label=item.ruleClassifyName
 			tmp.label=item.ruleClassifyName
 			classRule.push(tmp)
 			classRule.push(tmp)
-			var indus=item.industry.split('/')
+			var indus=!item.industry?[]:item.industry.split('/')
 			indus.forEach(function(ind){
 			indus.forEach(function(ind){
 				var tm={}
 				var tm={}
 				tm.name=ind
 				tm.name=ind
@@ -460,6 +460,7 @@ export default {
 		})
 		})
 			this.typeList = classRule
 			this.typeList = classRule
 			this.directionList=industry
 			this.directionList=industry
+			console.log(44444)
 			that.getJobList();
 			that.getJobList();
 			// console.log(this.typeList, '1111')
 			// console.log(this.typeList, '1111')
 		}
 		}
@@ -476,6 +477,7 @@ export default {
               value: item.code,
               value: item.code,
             }));
             }));
             // 获取到tabs数据后调用职位列表
             // 获取到tabs数据后调用职位列表
+			console.log(3333333)
             this.getJobList();
             this.getJobList();
           }
           }
         });
         });
@@ -516,6 +518,7 @@ export default {
           that.getSelectCity(res.longitude,res.latitude)
           that.getSelectCity(res.longitude,res.latitude)
         },
         },
         fail: function () {
         fail: function () {
+			console.log('1111')
           that.getJobList();
           that.getJobList();
         },
         },
       });
       });
@@ -527,6 +530,7 @@ export default {
 				// console.log(res, '获取地址信息')
 				// console.log(res, '获取地址信息')
 				this.city = res.data.city ? res.data.city : '区域'
 				this.city = res.data.city ? res.data.city : '区域'
 				uni.setStorageSync('city', res.data.city)
 				uni.setStorageSync('city', res.data.city)
+				console.log('2222')
 				that.getJobList();
 				that.getJobList();
 			}
 			}
 		});
 		});
@@ -589,6 +593,7 @@ export default {
     // 刷新职位列表
     // 刷新职位列表
     refreshJobList() {
     refreshJobList() {
       this.page = 1;
       this.page = 1;
+	  console.log(55555)
       this.getJobList();
       this.getJobList();
     },
     },
     // 获取求职列表
     // 获取求职列表

+ 12 - 12
pages/msg/im.vue

@@ -562,11 +562,11 @@
 			<view class="more-layer" :class="{hidden:hideMore}">
 			<view class="more-layer" :class="{hidden:hideMore}">
 				<view class="list" style="color: #000000;">
 				<view class="list" style="color: #000000;">
 					<!-- 上传图片 -->
 					<!-- 上传图片 -->
-					<view style="margin-bottom: 20rpx;">
+					<view style="margin-bottom: 30rpx;">
 						<view class="box" @click="chooseImage(['album'])">
 						<view class="box" @click="chooseImage(['album'])">
 							<image src="../../static/im/tupian.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
 							<image src="../../static/im/tupian.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">上传图片</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">上传图片</view>
 					</view>
 					</view>
 					<!-- #ifdef H5 || APP -->
 					<!-- #ifdef H5 || APP -->
 					<!-- 语音 -->
 					<!-- 语音 -->
@@ -576,7 +576,7 @@
 								style="width: 48rpx;height: 48rpx;">
 								style="width: 48rpx;height: 48rpx;">
 							</image>
 							</image>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">语音</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">语音</view>
 					</view>
 					</view>
 					<!-- 视频 -->
 					<!-- 视频 -->
 					<view style="margin-bottom: 20rpx;">
 					<view style="margin-bottom: 20rpx;">
@@ -585,36 +585,36 @@
 								style="width: 48rpx;height: 48rpx;">
 								style="width: 48rpx;height: 48rpx;">
 							</image>
 							</image>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">视频</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">语音通话</view>
 					</view>
 					</view>
 					<!-- #endif -->
 					<!-- #endif -->
 					<!-- 常用语 -->
 					<!-- 常用语 -->
 					<view style="margin-bottom: 20rpx;">
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="showChangYongSelect">
 						<view class="box" @tap="showChangYongSelect">
-							<view class="icon jianpan"></view>
+							<view class="icon jianpan" style="font-size: 44rpx;"></view>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">常用语句</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">常用语句</view>
 					</view>
 					</view>
 					<!-- 添加常用语或自动回复内容 -->
 					<!-- 添加常用语或自动回复内容 -->
 					<view style="margin-bottom: 20rpx;">
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="goAdd">
 						<view class="box" @tap="goAdd">
-							<view class="icon add"></view>
+							<view class="icon add" style="font-size: 44rpx;"></view>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">添加语句</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">添加语句</view>
 					</view>
 					</view>
 					<view style="margin-bottom: 20rpx;">
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="goMapss">
 						<view class="box" @tap="goMapss">
-							<image src="../../static/images/weizhi.png" mode="" style="width: 76rpx;height: 76rpx;">
+							<image src="../../static/images/weizhi.png" mode="" style="width: 48rpx;height: 48rpx;">
 							</image>
 							</image>
 						</view>
 						</view>
-						<view style="width: 100%;text-align: center;">发送位置</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">发送位置</view>
 					</view>
 					</view>
-					<view>
+					<!-- <view>
 						<view class="box" @tap="goHistory">
 						<view class="box" @tap="goHistory">
 							<view class="icon chehui"></view>
 							<view class="icon chehui"></view>
 						</view>
 						</view>
 						<view style="width: 100%;text-align: center;">聊天记录</view>
 						<view style="width: 100%;text-align: center;">聊天记录</view>
-					</view>
+					</view> -->
 				</view>
 				</view>
 			</view>
 			</view>
 		</view>
 		</view>

+ 1 - 1
pages/my/educationExperience.vue

@@ -20,7 +20,7 @@
 					<view class="form-label">学校名称</view>
 					<view class="form-label">学校名称</view>
 					<input 
 					<input 
 						v-model="formData.companyName" 
 						v-model="formData.companyName" 
-						placeholder="请填写公司名称" 
+						placeholder="请填写学校名称" 
 						class="form-input"
 						class="form-input"
 					/>
 					/>
 				</view>
 				</view>

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

@@ -171,6 +171,7 @@
             <view class="job-title">
             <view class="job-title">
               <view class="job-title-txt">教育经历</view>
               <view class="job-title-txt">教育经历</view>
               <image
               <image
+			   @click="goEducationalBackground"
                 class="job-image"
                 class="job-image"
                 src="@/static/images/jobApplicant/edit.svg"
                 src="@/static/images/jobApplicant/edit.svg"
                 mode="scaleToFill"
                 mode="scaleToFill"
@@ -215,11 +216,11 @@
           <view class="form-item required">
           <view class="form-item required">
             <view class="job-title">
             <view class="job-title">
               <view class="job-title-txt">个人优势</view>
               <view class="job-title-txt">个人优势</view>
-              <image
+              <!-- <image
                 class="job-image"
                 class="job-image"
                 src="@/static/images/jobApplicant/edit.svg"
                 src="@/static/images/jobApplicant/edit.svg"
                 mode="scaleToFill"
                 mode="scaleToFill"
-              />
+              /> -->
             </view>
             </view>
           </view>
           </view>
         </view>
         </view>
@@ -398,6 +399,9 @@ export default {
     goWorkProgress(){
     goWorkProgress(){
       uni.navigateTo({ url: '/pages/my/workExperience' })
       uni.navigateTo({ url: '/pages/my/workExperience' })
     },
     },
+	goEducationalBackground(){
+		uni.navigateTo({ url: '/pages/my/educationExperience' })
+	},
     // 选择头像
     // 选择头像
     chooseAvatar() {
     chooseAvatar() {
 		var that=this
 		var that=this

+ 62 - 29
pages/my/onlineResume.vue

@@ -115,7 +115,7 @@
 				</view>
 				</view>
 				
 				
 				<view class="experience-list">
 				<view class="experience-list">
-					<view class="experience-item" @longpress="commonDelete(item.workExpId,'workExps')" @click.stop="goToWorkExperience(item.workExpId)" v-for="item in detail.workExps">
+					<view class="experience-item" @click.stop="goToWorkExperience(item.workExpId)" v-for="item in detail.workExps">
 						<view class="company-logo">
 						<view class="company-logo">
 							<image src="../../static/images/index/changsha.svg" class="logo-img" mode="aspectFit"></image>
 							<image src="../../static/images/index/changsha.svg" class="logo-img" mode="aspectFit"></image>
 						</view>
 						</view>
@@ -137,6 +137,9 @@
 								</view>
 								</view>
 							</view>
 							</view>
 						</view>
 						</view>
+						<view @click.stop="commonDelete(item.workExpId,'workExps')">
+							<image src="../../static/images/index/delete.svg" class="delete-icon" />
+						</view>
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
@@ -153,7 +156,7 @@
 				</view>
 				</view>
 				
 				
 				<view class="education-list">
 				<view class="education-list">
-					<view  class="education-item" @longpress="commonDelete(item.eduId,'eduList')" @click.stop="goToEducationExperience(item.eduId)" v-for="(item,index) in detail.eduList">
+					<view  class="education-item" @click.stop="goToEducationExperience(item.eduId)" v-for="(item,index) in detail.eduList">
 						<view class="school-logo">
 						<view class="school-logo">
 							<image src="../../static/images/index/wuhan.svg" class="logo-img" mode="aspectFit"></image>
 							<image src="../../static/images/index/wuhan.svg" class="logo-img" mode="aspectFit"></image>
 						</view>
 						</view>
@@ -164,6 +167,9 @@
 								{{item.detail}}
 								{{item.detail}}
 							</view>
 							</view>
 						</view>
 						</view>
+						<view @click.stop="commonDelete(item.eduId,'eduList')">
+							<image src="../../static/images/index/delete.svg" class="delete-icon" />
+						</view>
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
@@ -258,20 +264,39 @@
 					  that.hasEcommerceExperience=res.data.resumeList.ifExp?true:false
 					  that.hasEcommerceExperience=res.data.resumeList.ifExp?true:false
 					  that.detail.degree=that.$queue.getHighestEducation(res.data.eduList)
 					  that.detail.degree=that.$queue.getHighestEducation(res.data.eduList)
 					  
 					  
-					  res.data.workExps.forEach(function(item){
-					  	item.type=JSON.parse(item.type)
-						item.workExpDetails=[]
-						res.data.workExpList.forEach(function(it){
-							it.skills=JSON.parse(it.skills)
-							it.startTime=it.startTime.slice(0, 7);
-							if(that.$queue.isCurrentMonth(new Date(it.endTime)))
-								it.endTime='至今'
-							else
-								it.endTime=	it.endTime.slice(0, 7);
-							if(it.workExpId==item.workExpId)
-								item.workExpDetails.push(it)
-						})
-					  })
+					  res.data.workExps.forEach(function(item) {
+					    console.log(item.type);
+					    try {
+					      if (typeof item.type === 'string' && (item.type.startsWith('[') || item.type.startsWith('{'))) {
+					        item.type = JSON.parse(item.type);
+					      }
+					    } catch (e) {
+					      console.warn('item.type JSON解析失败:', item.type);
+					    }
+					    item.workExpDetails = [];
+					    res.data.workExpList.forEach(function(it) {
+					      console.log(it.skills);
+					      try {
+					        if (typeof it.skills === 'string' && (it.skills.startsWith('[') || it.skills.startsWith('{'))) {
+					          it.skills = JSON.parse(it.skills);
+					        }
+					      } catch (e) {
+					        console.warn('it.skills JSON解析失败:', it.skills);
+					      }
+					  
+					      it.startTime = it.startTime.slice(0, 7);
+					      if (that.$queue.isCurrentMonth(new Date(it.endTime)))
+					        it.endTime = '至今';
+					      else
+					        it.endTime = it.endTime.slice(0, 7);
+					  
+					      if (it.workExpId == item.workExpId)
+					        item.workExpDetails.push(it);
+					    });
+					  });
+
+					  console.log('最终数据')
+					  console.log(res.data.workExps);
 					  that.detail.workExps=res.data.workExps
 					  that.detail.workExps=res.data.workExps
 				  } else {
 				  } else {
 				    uni.showToast({
 				    uni.showToast({
@@ -314,8 +339,6 @@
 				})
 				})
 			},
 			},
 			goToBasicInfo() {
 			goToBasicInfo() {
-				console.log('1111111');
-				
 				uni.navigateTo({
 				uni.navigateTo({
 					url: '/package/jobIntention/basicInfo?resumesStatus='+this.detail.resumeList.resumesStatus+'&birthday='+this.detail.resumeList.birthday+'&ifExp='+this.detail.resumeList.ifExp+'&resumesPhone='+this.detail.resumeList.resumesPhone
 					url: '/package/jobIntention/basicInfo?resumesStatus='+this.detail.resumeList.resumesStatus+'&birthday='+this.detail.resumeList.birthday+'&ifExp='+this.detail.resumeList.ifExp+'&resumesPhone='+this.detail.resumeList.resumesPhone
 				})
 				})
@@ -411,11 +434,11 @@
 						return;
 						return;
 					that.$Request.postJson("/app/"+action, params).then((res) => {
 					that.$Request.postJson("/app/"+action, params).then((res) => {
 					  if (res.code == 0) {
 					  if (res.code == 0) {
-					      // 实际开发中可以在这里添加跳转逻辑
-											var info = that.detail[modules].filter(function (item) {
-											  return item[modules=='workExps'?'workExpId':(modules=='intentions'?'intentionId':'eduId')] != id;
-											});
-											that.detail[modules]=info
+					    // 实际开发中可以在这里添加跳转逻辑
+						var info = that.detail[modules].filter(function (item) {
+						  return item[modules=='workExps'?'workExpId':(modules=='intentions'?'intentionId':'eduId')] != id;
+						});
+						that.detail[modules]=info
 					  } else {
 					  } else {
 					    uni.showToast({
 					    uni.showToast({
 					      title: res.msg,
 					      title: res.msg,
@@ -437,6 +460,10 @@
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
+	.delete-icon{
+		width: 40rpx;
+		height: 40rpx;
+	}
 	.online-resume {
 	.online-resume {
 		// background-color: #F2F6FC;
 		// background-color: #F2F6FC;
 		min-height: 100vh;
 		min-height: 100vh;
@@ -912,10 +939,13 @@
 						flex-shrink: 0;
 						flex-shrink: 0;
                         border-radius: 8px;
                         border-radius: 8px;
                         background: rgba(246, 246, 246, 1);
                         background: rgba(246, 246, 246, 1);
-						
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
 						.logo-img {
 						.logo-img {
-							width: 100%;
-							height: 100%;
+							width: 50rpx;
+							height: 50rpx;
 							border-radius: 8rpx;
 							border-radius: 8rpx;
 							
 							
 						}
 						}
@@ -1058,10 +1088,13 @@
 						flex-shrink: 0;
 						flex-shrink: 0;
 						border-radius: 8px;
 						border-radius: 8px;
 						background: rgba(246, 246, 246, 1);
 						background: rgba(246, 246, 246, 1);
-						
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
 						.logo-img {
 						.logo-img {
-							width: 100%;
-							height: 100%;
+							width: 54rpx;
+							height: 50rpx;
 							border-radius: 8rpx;
 							border-radius: 8rpx;
 						}
 						}
 					}
 					}

+ 17 - 7
pages/my/workExperience.vue

@@ -429,20 +429,30 @@ export default {
 		    uni.showToast({ title: "请至少填写一份履历", icon: "none" });
 		    uni.showToast({ title: "请至少填写一份履历", icon: "none" });
 		    return;
 		    return;
 		  }
 		  }
-		  this.formData.resumes.forEach(function(item){
-		  	item.skills=JSON.stringify(item.skills)
-			item.startTime=item.employmentTime[0]?item.employmentTime[0]:'';
-			item.endTime=item.employmentTime[1]?item.employmentTime[1]:'';
-			delete item.employmentTime; 
-			delete item.departmentIndex; 
+		  let postData = this.formData.resumes.map(({ employmentTime, departmentIndex, ...rest }) => {
+		    return {
+		      ...rest,
+		      skills: JSON.stringify(rest.skills),
+		      startTime: employmentTime?.[0] || '',
+		      endTime: employmentTime?.[1] || ''
+		    }
 		  })
 		  })
+		 //  this.formData.resumes.forEach(function(item){
+			//   console.log(item.skills)
+		 //  	item.skills=JSON.stringify(item.skills);
+			// console.log(item.skills)
+			// item.startTime=item.employmentTime[0]?item.employmentTime[0]:'';
+			// item.endTime=item.employmentTime[1]?item.employmentTime[1]:'';
+			// delete item.employmentTime; 
+			// delete item.departmentIndex; 
+		 //  })
 			let data={
 			let data={
 				workExp:{
 				workExp:{
 					workExpId:id,
 					workExpId:id,
 					companyName:this.formData.companyName,
 					companyName:this.formData.companyName,
 					type:JSON.stringify(this.formData.businessTypes),
 					type:JSON.stringify(this.formData.businessTypes),
 				},
 				},
-				workExpDetails:this.formData.resumes
+				workExpDetails:postData
 			}
 			}
 		  uni.showLoading({ title: "提交中..." });
 		  uni.showLoading({ title: "提交中..." });
 		  this.$Request.postJson("/app/userFirst/addWorkExp", data).then((res) => {
 		  this.$Request.postJson("/app/userFirst/addWorkExp", data).then((res) => {

+ 295 - 207
pages/public/forgetPwd.vue

@@ -1,215 +1,303 @@
 <template>
 <template>
-  <view class="container">
-    <navBar title="忘记密码" color="#000" />
-    <view class="wrapper">
-      <view class="input-content">
-        <view
-          class="cu-form-group"
-          style="border: 2rpx 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: 2rpx 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="cu-form-group"
-          style="border: 2rpx 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>
-      <button class="confirm-btn" @click="toLogin">立即找回</button>
-    </view>
-  </view>
+	<view class="container">
+		<navBar title="忘记密码" color="#000" />
+		<view class="wrapper">
+			<view class="input-content">
+				<view class="item-label" v-show="steps == 0">手机号码</view>
+				<view class="cu-form-group" v-show="steps == 0">
+					<input type="number" :value="phone" placeholder="请输入手机号" maxlength="11" data-key="phone"
+						@input="inputChange" />
+				</view>
+
+				<view class="item-label" v-show="steps == 0">验证码</view>
+				<view class="cu-form-group" v-show="steps == 0">
+					<input type="number" :value="code" placeholder="请输入验证码" maxlength="6" data-key="code"
+						@input="inputChange" @confirm="toLogin" />
+					<text class="send-msg" @click="sendMsg" :disabled="sending">
+						{{ sendTime }}
+					</text>
+				</view>
+
+				<view class="item-label">密码</view>
+				<view class="cu-form-group">
+					<input :value="password" :password="showPassword" placeholder="请输入新密码" placeholder-class="input-empty"
+						maxlength="20" minlength="8" data-key="password" @input="inputChange" @confirm="toLogin" />
+					<u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }"
+						name="eye-fill"></u-icon>
+				</view>
+				<view>
+					<u-line-progress class="line-progress" :show-percent="false" :active-color="progressColor"
+						:percent="passwordStrength * 33.3"></u-line-progress>
+					<u-checkbox-group :wrap="true" @change="preventChange">
+						<u-checkbox shape="circle" v-for="(item, index) in list" :key="index" :name="item.name"
+							v-model="item.checked" :readonly="true">
+							{{item.label}}
+						</u-checkbox>
+					</u-checkbox-group>
+				</view>
+			</view>
+			<button class="confirm-btn" @click="toLogin">立即找回</button>
+		</view>
+	</view>
 </template>
 </template>
 
 
 <script>
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      code: "",
-      phone: "",
-      password: "",
-      sending: false,
-      sendTime: "获取验证码",
-      count: 60,
-      logining: false,
-    };
-  },
-  components: {
-    navBar,
-  },
-  methods: {
-    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 + "/forget").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();
-    },
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				code: "",
+				phone: "",
+				password: "",
+				sending: false,
+				sendTime: "获取验证码",
+				count: 60,
+				logining: false,
+				showPassword:true,
+				steps: 0,
+				passwordStrength: 0, // 当前满足的条件数
+				list: [{
+						name: 'length',
+						label: '最少8位数',
+						checked: false,
+					},
+					{
+						name: 'number',
+						label: '至少包含1个数字',
+						checked: false,
+					},
+					{
+						name: 'upper',
+						label: '只要包含一个大写字母',
+						checked: false,
+					}
+				],
+				valueBackup: [],
+			};
+		},
+		components: {
+			navBar,
+		},
+		computed: {
+		    progressColor() {
+				switch (this.passwordStrength) {
+					case 1:
+						return 'rgba(214, 44, 1, 1)';
+					case 2:
+						return 'rgba(250, 174, 22, 1)';
+					case 3:
+						return 'rgba(1, 107, 246, 1)';
+					default:
+						return 'rgba(237, 236, 239, 1)';
+				}
+		    },
+		},
+		methods: {
+			changePassword(){
+				this.showPassword = !this.showPassword;
+			},
+			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 + "/forget").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;
+				if(key == 'password'){
+					this.checkPasswordStrength(this.password);
+				}
+			},
+			checkPasswordStrength(pwd) {
+			  let strength = 0;
+			  this.list.forEach(item => {
+			    if (item.name === 'length') {
+			      item.checked = pwd.length >= 8;
+			      if (item.checked) strength++;
+			    } else if (item.name === 'number') {
+			      item.checked = /[0-9]/.test(pwd) && pwd.length >= 8;
+			      if (item.checked) strength++;
+			    } else if (item.name === 'upper') {
+			      item.checked = /[A-Z]/.test(pwd) && pwd.length >= 8;
+			      if (item.checked) strength++;
+			    }
+			  });
+			  this.passwordStrength = strength;
+			  this.valueBackup = this.list.map(i => i.checked);
+			},
+			preventChange() {
+				this.list.forEach((item, index) => {
+					item.checked = this.valueBackup[index];
+				});
+			},
+			navBack() {
+				uni.navigateBack();
+			},
 
 
-    navTo(url) {
-      uni.navigateTo({
-        url,
-      });
-    },
-    toLogin() {
-      const { phone, password, code } = this;
-      if (!phone) {
-        this.$queue.showToast("请输入手机号");
-      } else if (!password) {
-        this.$queue.showToast("请设置密码");
-      } else if (password.length < 6) {
-        this.$queue.showToast("密码位数必须大于六位");
-      } else {
-        this.logining = true;
-        this.$queue.showLoading("正在修改密码中...");
-        this.$Request
-          .post("/app/Login/forgetPwd", {
-            pwd: password,
-            phone: phone,
-            msg: code,
-          })
-          .then((res) => {
-            uni.hideLoading();
-            if (res.code === 0) {
-              uni.navigateTo({
-                url: "/pages/public/loginphone",
-              });
-            } else {
-              uni.showModal({
-                showCancel: false,
-                title: "密码找回失败",
-                content: res.msg,
-              });
-            }
-          });
-      }
-    },
-  },
-};
+			navTo(url) {
+				uni.navigateTo({
+					url,
+				});
+			},
+			toLogin() {
+				const {phone,password,code} = this;
+				if (!phone) {
+					this.$queue.showToast("请输入手机号");
+				} else if (!code) {
+					this.$queue.showToast("请输入验证码");
+				}else if (!password) {
+					this.$queue.showToast("请设置密码");
+				} else if (password.length < 8) {
+					this.$queue.showToast("密码位数必须大于八位");
+				} else if (!/(?=.*[A-Z])(?=.*\d)/.test(password)) {
+					this.$queue.showToast("密码必须包含至少一个大写字母和一个数字");
+				} else {
+					this.logining = true;
+					this.$queue.showLoading("正在修改密码中...");
+					this.$Request
+						.post("/app/Login/forgetPwd", {
+							pwd: password,
+							phone: phone,
+							msg: code,
+						})
+						.then((res) => {
+							uni.hideLoading();
+							if (res.code === 0) {
+								uni.navigateTo({
+									url: "/pages/public/loginphone?type=1",
+								});
+							} else {
+								uni.showModal({
+									showCancel: false,
+									title: "密码找回失败",
+									content: res.msg,
+								});
+							}
+						});
+				}
+			},
+		},
+	};
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
-page {
-  background: #ffffff !important;
-}
-
-.send-msg {
-  border-radius: 30px;
-  color: white;
-  height: 30px;
-  font-size: 14px;
-  line-height: 30px;
-  background: #016bf6;
-}
-
-.container {
-  padding-top: 32rpx;
-  position: relative;
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
-  background: #ffffff;
-}
-
-.wrapper {
-  position: relative;
-  z-index: 90;
-  background: #ffffff;
-  padding-bottom: 20px;
-}
-
-.input-content {
-  padding: 40rpx;
-}
-
-.confirm-btn {
-  width: 600rpx;
-  height: 80rpx;
-  line-height: 80rpx;
-  border-radius: 60rpx;
-  margin-top: 32rpx;
-  background: #016bf6;
-  color: #fff;
-  font-size: 32rpx;
-
-  &:after {
-    border-radius: 60px;
-  }
-}
-</style>
+	page {
+		background: #ffffff !important;
+	}
+	::v-deep .input-placeholder,.uni-input-placeholder {
+		color: #9ea1a8;
+		font-family: DM Sans;
+		font-size: 28rpx;
+		font-weight: 400;
+		text-align: left;
+	}
+	::v-deep .u-checkbox__label{
+		margin-left: 20rpx;
+		color: rgba(76, 74, 83, 1);
+		font-family: Roboto;
+		font-size: 32rpx;
+		font-weight: 400;
+	}
+	.container {
+		padding-top: 32rpx;
+		position: relative;
+		width: 100%;
+		height: 100%;
+		overflow: hidden;
+		background: #ffffff;
+	}
+	.wrapper {
+		position: relative;
+		z-index: 90;
+		background: #ffffff;
+		padding-bottom: 20px;
+	}
+	.input-content {
+		padding: 32rpx;
+		box-sizing: border-box;
+	}
+	.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: 8rpx;
+		margin-top: 32rpx;
+	}
+	.cu-form-group {
+		position: relative;
+		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;
+		height: 96rpx;
+	}
+	.send-msg {
+		color: rgba(1, 107, 246, 1);
+		font-size: 28rpx;
+		font-weight: 400;
+	}
+	.eye{
+		position: absolute;
+		top: 50%;
+		right: 24rpx;
+		font-size: 48rpx;
+		transform: translateY(-50%);
+	}
+	.eye-active{
+		color: #016bf6;
+	}
+	.line-progress{
+		margin: 32rpx 0;
+	}
+	.confirm-btn {
+		height: 80rpx;
+		line-height: 80rpx;
+		border-radius: 60rpx;
+		margin: 0 32rpx;
+		background: #016bf6;
+		color: #fff;
+		font-size: 32rpx;
+		font-weight: 400;
+		&:after {
+			border-radius: 60px;
+		}
+	}
+</style>

+ 33 - 11
pages/public/login.vue

@@ -59,14 +59,29 @@
       <view class="logo-box">
       <view class="logo-box">
         <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
         <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
       </view>
       </view>
-      <!-- <button class="confirm-btn" style="margin-top: 100rpx" @click="register">
+     <!-- <button class="confirm-btn" style="margin-top: 100rpx" @click="register">
         手机号登录
         手机号登录
       </button> -->
       </button> -->
-      <view class="login-btn wechat" @click="register"
+	  <view class="login-btn wechat" :class="{ disabled: !checked }"
+		:disabled="checked"
+	    ><image
+	      src="@/static/images/jobApplicant/wx.svg"
+	      mode="scaleToFill"
+	    />微信登录</view
+	  >
+	  <view class="login-btn password" :class="{ disabled: !checked }"
+		:disabled="checked" @click="register(1)"
+	    ><image
+	      src="@/static/images/jobApplicant/account.svg"
+	      mode="scaleToFill"
+	    />账号密码登录</view
+	  >
+      <view class="login-btn wechat" :class="{ disabled: !checked }"
+		:disabled="checked" @click="register(2)"
         ><image
         ><image
           src="@/static/images/jobApplicant/phone.svg"
           src="@/static/images/jobApplicant/phone.svg"
           mode="scaleToFill"
           mode="scaleToFill"
-        />手机账号密码登录</view
+        />手机验证码登录</view
       >
       >
       <view
       <view
         class=""
         class=""
@@ -547,7 +562,7 @@ export default {
         url: "/pages/public/pwd",
         url: "/pages/public/pwd",
       });
       });
     },
     },
-    register() {
+    register(type) {
       if (!this.checked) {
       if (!this.checked) {
         uni.showToast({
         uni.showToast({
           title: "请阅读并同意《隐私协议》和《用户服务协议》",
           title: "请阅读并同意《隐私协议》和《用户服务协议》",
@@ -555,7 +570,7 @@ export default {
         });
         });
       } else {
       } else {
         uni.navigateTo({
         uni.navigateTo({
-          url: "/pages/public/loginphone",
+          url: `/pages/public/loginphone?type=${type}`,
         });
         });
       }
       }
     },
     },
@@ -711,18 +726,19 @@ page {
 // 	display: flex;
 // 	display: flex;
 // }
 // }
 .login-btn {
 .login-btn {
-  padding: 20rpx;
+  padding: 0 32rpx;
   box-sizing: border-box;
   box-sizing: border-box;
-  border-radius: 100rpx;
-  color: rgba(255, 255, 255, 1);
+  border-radius: 252rpx;
+  color: rgba(255, 255, 255, 1) !important;
   font-family: DM Sans;
   font-family: DM Sans;
   font-size: 32rpx;
   font-size: 32rpx;
   font-weight: 400;
   font-weight: 400;
-  line-height: 44rpx;
+  line-height: 90rpx;
   display: flex;
   display: flex;
   justify-content: center;
   justify-content: center;
   align-items: center;
   align-items: center;
   margin-bottom: 16rpx;
   margin-bottom: 16rpx;
+  width: 100%;
   image {
   image {
     width: 28rpx;
     width: 28rpx;
     height: 28rpx;
     height: 28rpx;
@@ -730,14 +746,20 @@ page {
   }
   }
 }
 }
 .wechat {
 .wechat {
-  background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+  background: linear-gradient(90.00deg, rgba(13, 39, 247, 1),rgba(19, 193, 234, 1) 100%);
 }
 }
 .password {
 .password {
   background: rgba(1, 107, 246, 1);
   background: rgba(1, 107, 246, 1);
 }
 }
-.phone {
+.disabled{
   background: #99c4fa;
   background: #99c4fa;
 }
 }
+uni-button[disabled]:not([type]){
+	background-color: rgba(1, 107, 246, 1);
+}
+uni-button:after{
+	border:none;
+}
 page {
 page {
   background: #fff;
   background: #fff;
 }
 }

+ 97 - 20
pages/public/loginphone.vue

@@ -14,29 +14,44 @@
             <input
             <input
               type="number"
               type="number"
               :value="phone"
               :value="phone"
-              placeholder="请输入手机号"
+              placeholder="请输入登录的手机号"
               maxlength="11"
               maxlength="11"
               data-key="phone"
               data-key="phone"
               @input="inputChange"
               @input="inputChange"
             />
             />
           </view>
           </view>
         </view>
         </view>
-        <view class="item-label">登录密码</view>
-        <view class="cu-form-group">
+        <view class="item-label">{{type == 1?'登录密码':'验证码'}}</view>
+        <view class="cu-form-group" v-if="type == 1">
           <view class="input-box">
           <view class="input-box">
             <input
             <input
-              type="password"
               placeholder="请输入密码"
               placeholder="请输入密码"
               maxlength="20"
               maxlength="20"
-              :value="password"
+			  :value="password"
+              :password="showPassword"
               data-key="password"
               data-key="password"
               @input="inputChange"
               @input="inputChange"
               @confirm="toLogin"
               @confirm="toLogin"
             />
             />
+			<u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }" name="eye-fill"></u-icon>
           </view>
           </view>
         </view>
         </view>
+		<view class="cu-form-group" v-if="type == 2">
+		  <input
+		    type="number"
+		    :value="code"
+		    placeholder="请输入验证码"
+		    maxlength="6"
+		    data-key="code"
+		    @input="inputChange"
+		    @confirm="toLogin"
+		  />
+		  <text class="send-msg" @click="sendMsg" :disabled="sending">
+		    {{ sendTime }}
+		  </text>
+		</view>
 
 
-        <view class="forgot-password">
+        <view class="forgot-password" v-if="type ==1">
           <view @click="forget">忘记密码</view>
           <view @click="forget">忘记密码</view>
         </view>
         </view>
         <button class="confirm-btn" @click="toLogin">登录</button>
         <button class="confirm-btn" @click="toLogin">登录</button>
@@ -56,20 +71,26 @@ import navBar from "@/components/nav-bar/index.vue";
 export default {
 export default {
   data() {
   data() {
     return {
     return {
+		code: "",
       phone: "",
       phone: "",
       password: "",
       password: "",
+	  showPassword:true,
       banners: [],
       banners: [],
       invitation: "",
       invitation: "",
       loginName: "",
       loginName: "",
       sending: false,
       sending: false,
       sendTime: "获取验证码",
       sendTime: "获取验证码",
       count: 60,
       count: 60,
+	  type:0
     };
     };
   },
   },
   components: {
   components: {
     navBar,
     navBar,
   },
   },
-  onLoad() {},
+  onLoad(options) {
+	  console.log(options);
+	  this.type = options.type;
+  },
   methods: {
   methods: {
     forget() {
     forget() {
       uni.navigateTo({
       uni.navigateTo({
@@ -88,25 +109,70 @@ export default {
     navBack() {
     navBack() {
       uni.navigateBack();
       uni.navigateBack();
     },
     },
-
+	changePassword(){
+		this.showPassword = !this.showPassword;
+	},
+	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 + "/forget").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 : "请一分钟后再获取验证码",
+	        });
+	      }
+	    });
+	  }
+	},
     toLogin() {
     toLogin() {
       this.$queue.loginClear();
       this.$queue.loginClear();
       let openid = this.$queue.getData("openid");
       let openid = this.$queue.getData("openid");
-      const { phone, password } = this;
+      const { phone, password,code } = this;
+	  if(!password && this.type == 1){
+		  this.$queue.showToast("请输入密码");
+		  return;
+	  }
+	  if(!code && this.type == 2){
+	  		this.$queue.showToast("请输入验证码");
+	  		return;
+	  }
       if (!phone) {
       if (!phone) {
         this.$queue.showToast("请输入手机号");
         this.$queue.showToast("请输入手机号");
       } else if (phone.length != 11) {
       } else if (phone.length != 11) {
         this.$queue.showToast("请输入正确的手机号");
         this.$queue.showToast("请输入正确的手机号");
-      } else if (!password) {
-        this.$queue.showToast("请输入密码");
-      } else {
+      }else {
         this.$queue.showLoading("正在登录中...");
         this.$queue.showLoading("正在登录中...");
+		let params = {
+			phone: phone,
+			openId: this.$queue.getData("openid"),
+		}
+		if(this.type == 1){
+			params = {
+				...params,
+				password: password,
+			}
+		}
+		if(this.type == 2){
+			params = {
+				...params,
+				msg: code
+			}
+		}
         this.$Request
         this.$Request
-          .post("/app/Login/loginApp", {
-            password: password,
-            phone: phone,
-            openId: this.$queue.getData("openid"),
-          })
+          .post("/app/Login/loginApp",params)
           .then((res) => {
           .then((res) => {
             if (res.code == 0) {
             if (res.code == 0) {
               this.$queue.setData("userId", res.user.userId);
               this.$queue.setData("userId", res.user.userId);
@@ -248,15 +314,27 @@ page {
   line-height: 51.2rpx;
   line-height: 51.2rpx;
   letter-spacing: 0px;
   letter-spacing: 0px;
   text-align: left;
   text-align: left;
-  padding-bottom: 6rpx;
+  padding-bottom: 8rpx;
   margin-top: 32rpx;
   margin-top: 32rpx;
 }
 }
 .cu-form-group {
 .cu-form-group {
+	position: relative;
   box-sizing: border-box;
   box-sizing: border-box;
   border: 2rpx solid rgba(158, 161, 168, 1);
   border: 2rpx solid rgba(158, 161, 168, 1);
   border-radius: 24rpx;
   border-radius: 24rpx;
   background: rgba(255, 255, 255, 1);
   background: rgba(255, 255, 255, 1);
   padding: 8rpx 24rpx !important;
   padding: 8rpx 24rpx !important;
+  height: 96rpx;
+}
+.eye{
+	position: absolute;
+	top: 50%;
+	right: 24rpx;
+	font-size: 48rpx;
+	transform: translateY(-50%);
+}
+.eye-active{
+	color: #016bf6;
 }
 }
 .bg {
 .bg {
   background-color: #ffffff;
   background-color: #ffffff;
@@ -294,8 +372,7 @@ page {
 }
 }
 
 
 .confirm-btn {
 .confirm-btn {
-  width: 100%;
-  border-radius: 100rpx;
+   border-radius: 60rpx;
   margin-top: 32rpx;
   margin-top: 32rpx;
   background: #016bf6;
   background: #016bf6;
   color: rgba(255, 255, 255, 1);
   color: rgba(255, 255, 255, 1);

+ 212 - 95
pages/public/register.vue

@@ -1,9 +1,13 @@
 <template>
 <template>
   <view class="container">
   <view class="container">
-    <nav-bar title="注册" color="#000"></nav-bar>
+    <nav-bar :title="steps == 0?'注册1/2':'创建账号密码2/2'" color="#000"></nav-bar>
+	<view class="line-box">
+		<view class="line line-bg" @click="steps = 0"></view>
+		<view class="line" :class="[ steps == 1?'line-bg':'' ]" @click="steps = 1"></view>
+	</view>
     <view class="wrapper">
     <view class="wrapper">
       <view class="input-content">
       <view class="input-content">
-        <view class="item-label">用户名</view>
+        <!-- <view class="item-label">用户名</view>
         <view class="cu-form-group">
         <view class="cu-form-group">
           <input
           <input
             :value="userName"
             :value="userName"
@@ -11,20 +15,20 @@
             data-key="userName"
             data-key="userName"
             @input="inputChange"
             @input="inputChange"
           />
           />
-        </view>
-        <view class="item-label">手机号</view>
-        <view class="cu-form-group">
+        </view> -->
+        <view class="item-label" v-show="steps == 0">手机号</view>
+        <view class="cu-form-group" v-show="steps == 0">
           <input
           <input
             type="number"
             type="number"
             :value="phone"
             :value="phone"
-            placeholder="请输入手机号"
+            placeholder="请输入登录的手机号"
             maxlength="11"
             maxlength="11"
             data-key="phone"
             data-key="phone"
             @input="inputChange"
             @input="inputChange"
           />
           />
         </view>
         </view>
-        <view class="item-label">验证码</view>
-        <view class="cu-form-group padding-right-xs">
+        <view class="item-label" v-show="steps == 0">验证码</view>
+        <view class="cu-form-group padding-right-xs" v-show="steps == 0">
           <input
           <input
             type="number"
             type="number"
             :value="code"
             :value="code"
@@ -34,26 +38,40 @@
             @input="inputChange"
             @input="inputChange"
             @confirm="toLogin"
             @confirm="toLogin"
           />
           />
-          <button class="send-msg" @click="sendMsg" :disabled="sending">
+          <text class="send-msg" @click="sendMsg" :disabled="sending">
             {{ sendTime }}
             {{ sendTime }}
-          </button>
+          </text>
         </view>
         </view>
 
 
-        <view class="item-label">设置密码</view>
-        <view class="cu-form-group">
+        <view class="item-label" v-show="steps == 1">密码</view>
+        <view class="cu-form-group" v-show="steps == 1">
           <input
           <input
-            type="password"
             :value="password"
             :value="password"
-            placeholder="请设置密码"
+            :password="showPassword"
+            placeholder="输入密码"
             placeholder-class="input-empty"
             placeholder-class="input-empty"
             maxlength="20"
             maxlength="20"
-            minlength="6"
+            minlength="8"
             data-key="password"
             data-key="password"
             @input="inputChange"
             @input="inputChange"
             @confirm="toLogin"
             @confirm="toLogin"
           />
           />
+		  <u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }" name="eye-fill"></u-icon>
         </view>
         </view>
-        <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '是'">
+		<view v-show="steps == 1">
+			<u-line-progress class="line-progress" :show-percent="false" :active-color="progressColor" :percent="passwordStrength * 33.3"></u-line-progress>
+			<u-checkbox-group :wrap="true" @change="preventChange">
+				<u-checkbox shape="circle"
+					v-for="(item, index) in list" :key="index" 
+					:name="item.name"
+					v-model="item.checked"
+					:readonly="true"
+				>
+					{{item.label}}
+				</u-checkbox>
+			</u-checkbox-group>
+		</view>
+        <!-- <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '是'">
           <view class="item-label-code">邀请码</view>
           <view class="item-label-code">邀请码</view>
           <input
           <input
             type=""
             type=""
@@ -64,8 +82,8 @@
             @input="inputChange"
             @input="inputChange"
             @confirm="toLogin"
             @confirm="toLogin"
           />
           />
-        </view>
-        <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '否'">
+        </view> -->
+        <!-- <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '否'">
           <view class="item-label-code">邀请码</view>
           <view class="item-label-code">邀请码</view>
           <input
           <input
             type=""
             type=""
@@ -76,23 +94,23 @@
             @input="inputChange"
             @input="inputChange"
             @confirm="toLogin"
             @confirm="toLogin"
           />
           />
-        </view>
+        </view> -->
       </view>
       </view>
-      <button class="confirm-btn" @click="toLogin">立即注册</button>
-      <view class="footer">
+      <button class="confirm-btn" @click="nextStep" v-if="steps == 0">下一步</button>
+	  <button class="confirm-btn" @click="toLogin" v-if="steps == 1">继续</button>
+      <!-- <view class="footer">
         <text
         <text
           @tap="isShowAgree"
           @tap="isShowAgree"
           class="cuIcon"
           class="cuIcon"
           :class="showAgree ? 'cuIcon-radiobox' : 'cuIcon-round'"
           :class="showAgree ? 'cuIcon-radiobox' : 'cuIcon-round'"
           >同意</text
           >同意</text
         >
         >
-        <!-- 协议地址 -->
         <navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
         <navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
         <navigator url="/my/setting/xieyi" open-type="navigate"
         <navigator url="/my/setting/xieyi" open-type="navigate"
           >《用户服务协议》</navigator
           >《用户服务协议》</navigator
         >
         >
-      </view>
+      </view> -->
     </view>
     </view>
   </view>
   </view>
 </template>
 </template>
@@ -107,6 +125,7 @@ export default {
       code: "",
       code: "",
       phone: "",
       phone: "",
       password: "",
       password: "",
+	  showPassword:true,
       required: "否",
       required: "否",
       sending: false,
       sending: false,
       sendTime: "获取验证码",
       sendTime: "获取验证码",
@@ -115,7 +134,15 @@ export default {
       state: "",
       state: "",
       invitation: "",
       invitation: "",
       platform: "",
       platform: "",
-    };
+	  steps:0,
+	  passwordStrength: 0, // 当前满足的条件数
+	  list: [
+		{ name: 'length', label: '最少8位数',checked: false, },
+		{ name: 'number', label: '至少包含1个数字',checked: false, },
+		{ name: 'upper', label: '只要包含一个大写字母',checked: false, }
+	  ],
+	  valueBackup: [],
+	};
   },
   },
   components: {
   components: {
     navBar,
     navBar,
@@ -132,6 +159,20 @@ export default {
     this.platform = "H5";
     this.platform = "H5";
     // #endif
     // #endif
   },
   },
+  computed: {
+      progressColor() {
+        switch (this.passwordStrength) {
+          case 1:
+            return 'rgba(214, 44, 1, 1)';
+          case 2:
+            return 'rgba(250, 174, 22, 1)';
+          case 3:
+            return 'rgba(1, 107, 246, 1)';
+          default:
+            return 'rgba(237, 236, 239, 1)';
+        }
+      },
+    },
   methods: {
   methods: {
     showMa() {
     showMa() {
       //查询官方邀请码
       //查询官方邀请码
@@ -202,7 +243,32 @@ export default {
     inputChange(e) {
     inputChange(e) {
       const key = e.currentTarget.dataset.key;
       const key = e.currentTarget.dataset.key;
       this[key] = e.detail.value;
       this[key] = e.detail.value;
+	  if(key == 'password'){
+		this.checkPasswordStrength(this.password);
+	  }
     },
     },
+	checkPasswordStrength(pwd) {
+	  let strength = 0;
+	  this.list.forEach(item => {
+	    if (item.name === 'length') {
+	      item.checked = pwd.length >= 8;
+	      if (item.checked) strength++;
+	    } else if (item.name === 'number') {
+	      item.checked = /[0-9]/.test(pwd) && pwd.length >= 8;
+	      if (item.checked) strength++;
+	    } else if (item.name === 'upper') {
+	      item.checked = /[A-Z]/.test(pwd) && pwd.length >= 8;
+	      if (item.checked) strength++;
+	    }
+	  });
+	  this.passwordStrength = strength;
+	  this.valueBackup = this.list.map(i => i.checked);
+	},
+	preventChange() {
+		this.list.forEach((item, index) => {
+			item.checked = this.valueBackup[index];
+		});
+	},
     navBack() {
     navBack() {
       uni.navigateBack();
       uni.navigateBack();
     },
     },
@@ -212,33 +278,44 @@ export default {
         url,
         url,
       });
       });
     },
     },
+	// 下一步
+	nextStep(){
+		const { phone,code } = this;
+		if (!phone) {
+		  this.$queue.showToast("请输入手机号");
+		} else if (!code) {
+		  this.$queue.showToast("请输入验证码");
+		}else{
+			this.steps = 1;
+		}
+	},
+	changePassword(){
+		this.showPassword = !this.showPassword;
+	},
+	// 注册
     toLogin() {
     toLogin() {
       const { userName, phone, password, code, showAgree, invitation } = this;
       const { userName, phone, password, code, showAgree, invitation } = this;
-      if (!userName) {
-        this.$queue.showToast("请输入用户名");
-      } else if (!phone) {
+      if (!phone) {
         this.$queue.showToast("请输入手机号");
         this.$queue.showToast("请输入手机号");
       } else if (!code) {
       } else if (!code) {
         this.$queue.showToast("请输入验证码");
         this.$queue.showToast("请输入验证码");
       } else if (!password) {
       } else if (!password) {
         this.$queue.showToast("请设置密码");
         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 = "";
+      } else if (password.length < 8) {
+        this.$queue.showToast("密码位数必须大于八位");
+      } else if (!/(?=.*[A-Z])(?=.*\d)/.test(password)) {
+		this.$queue.showToast("密码必须包含至少一个大写字母和一个数字");
+	  }else {
+        // this.invitation = "";
         this.logining = true;
         this.logining = true;
         this.$queue.showLoading("注册中...");
         this.$queue.showLoading("注册中...");
         this.$Request
         this.$Request
           .post(`/app/Login/registApp`, {
           .post(`/app/Login/registApp`, {
-            userName: userName,
+            userName: phone,
             password: password,
             password: password,
             phone: phone,
             phone: phone,
             openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
             openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
-            invitation: this.invitation,
+            // invitation: this.invitation,
             platform: this.platform,
             platform: this.platform,
             msg: code,
             msg: code,
           })
           })
@@ -277,46 +354,47 @@ export default {
               });
               });
             }
             }
           });
           });
-      } 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();
-          });
-      }
+      } 
+	  // 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() {
     getUserInfo() {
@@ -356,6 +434,13 @@ export default {
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
+::v-deep .input-placeholder,.uni-input-placeholder {
+  color: #9ea1a8;
+  font-family: DM Sans;
+  font-size: 28rpx;
+  font-weight: 400;
+  text-align: left;
+}
 page {
 page {
   height: 100%;
   height: 100%;
   background: #ffffff !important;
   background: #ffffff !important;
@@ -368,41 +453,75 @@ page {
   line-height: 51.2rpx;
   line-height: 51.2rpx;
   letter-spacing: 0px;
   letter-spacing: 0px;
   text-align: left;
   text-align: left;
-  padding-bottom: 6rpx;
+  padding-bottom: 8rpx;
   margin-top: 32rpx;
   margin-top: 32rpx;
 }
 }
 .cu-form-group {
 .cu-form-group {
+	position: relative;
   box-sizing: border-box;
   box-sizing: border-box;
   border: 2rpx solid rgba(158, 161, 168, 1);
   border: 2rpx solid rgba(158, 161, 168, 1);
   border-radius: 24rpx;
   border-radius: 24rpx;
   background: rgba(255, 255, 255, 1);
   background: rgba(255, 255, 255, 1);
   padding: 8rpx 24rpx !important;
   padding: 8rpx 24rpx !important;
+  height: 96rpx;
+}
+.eye{
+	position: absolute;
+	top: 50%;
+	right: 24rpx;
+	font-size: 48rpx;
+	transform: translateY(-50%);
+}
+.eye-active{
+	color: #016bf6;
+}
+.line-progress{
+	margin: 32rpx 0;
 }
 }
 .footer {
 .footer {
-  padding-left: 140upx;
-  margin-top: 32upx;
+  padding-left: 140rpx;
+  margin-top: 32rpx;
   text-align: center;
   text-align: center;
   display: flex;
   display: flex;
   // color: #FFFFFF;
   // color: #FFFFFF;
 }
 }
 
 
 .send-msg {
 .send-msg {
-  border-radius: 30px;
-  color: white;
-  height: 30px;
-  font-size: 10px;
-  line-height: 30px;
-  background: #016bf6;
+  color: rgba(1, 107, 246, 1);
+  font-size: 28rpx;
+  font-weight: 400;
 }
 }
 
 
 .container {
 .container {
-  padding-top: 32upx;
+  padding-top: 32rpx;
   position: relative;
   position: relative;
   width: 100%;
   width: 100%;
   height: 100%;
   height: 100%;
   overflow: hidden;
   overflow: hidden;
   background: #ffffff !important;
   background: #ffffff !important;
 }
 }
+.line-box{
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	gap: 10rpx;
+}
+.line{
+	width: 20px;
+	height: 4px;
+	border-radius: 20px;
+	background-color: rgba(153, 196, 250, 1);
+}
+.line-bg{
+	background-color: #016BF6;
+}
+::v-deep .u-checkbox__label{
+	margin-left: 20rpx;
+	color: rgba(76, 74, 83, 1);
+	font-family: Roboto;
+	font-size: 32rpx;
+	font-weight: 400;
+}
 
 
 .wrapper {
 .wrapper {
   position: relative;
   position: relative;
@@ -412,21 +531,19 @@ page {
 }
 }
 
 
 .input-content {
 .input-content {
-  //   padding: 32upx 80upx;
   padding: 32rpx;
   padding: 32rpx;
   box-sizing: border-box;
   box-sizing: border-box;
 }
 }
 
 
 .confirm-btn {
 .confirm-btn {
-  width: 600upx;
-  height: 80upx;
-  line-height: 80upx;
-  border-radius: 60upx;
-  margin-top: 32upx;
+	margin: 0 32rpx;
+  height: 80rpx;
+  line-height: 80rpx;
+  border-radius: 60rpx;
   background: #016bf6;
   background: #016bf6;
-
   color: #fff;
   color: #fff;
-  font-size: 32upx;
+  font-size: 32rpx;
+  font-weight: 400;
 
 
   &:after {
   &:after {
     border-radius: 60px;
     border-radius: 60px;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 2
static/images/index/changsha.svg


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
static/images/index/delete.svg


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 31
static/images/index/wuhan.svg


+ 3 - 0
static/images/jobApplicant/account.svg

@@ -0,0 +1,3 @@
+<svg viewBox="0 0 13.1182 13.1179" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="13.118164" height="13.117920" fill="none" customFrame="#000000">
+	<path id="矢量 32" d="M6.559 0C2.933 0 0 2.94 0 6.559C0 10.178 2.933 13.118 6.559 13.118C10.178 13.118 13.118 10.185 13.118 6.559C13.111 2.94 10.178 1.56462e-07 6.559 1.56462e-07L6.559 0ZM9.1 8.89C9.1 9.114 8.911 9.303 8.673 9.303L4.438 9.303C4.207 9.303 4.018 9.121 4.018 8.89L4.018 6.153C4.018 5.929 4.207 5.74 4.438 5.74L4.529 5.74C4.522 5.719 4.522 5.705 4.522 5.684L4.522 5.32C4.522 4.424 5.488 3.57 6.461 3.535C7.434 3.5 8.281 4.039 8.414 4.872C8.435 5.012 8.337 5.138 8.197 5.159C8.064 5.18 7.931 5.089 7.91 4.949C7.826 4.403 7.217 4.018 6.475 4.046C5.761 4.067 5.026 4.718 5.026 5.32L5.026 5.684C5.026 5.705 5.026 5.719 5.019 5.74L8.666 5.74C8.897 5.74 9.093 5.922 9.093 6.153L9.093 8.89L9.1 8.89Z" fill="rgb(255,255,255)" fill-rule="nonzero" />
+</svg>

+ 4 - 0
static/images/jobApplicant/wx.svg

@@ -0,0 +1,4 @@
+<svg viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14.000000" height="14.000000" fill="none">
+	<rect id="svg 30" width="14.000000" height="14.000000" x="0.000000" y="0.000000" />
+	<path id="矢量 31" d="M9.47625 4.74773C9.63725 4.74773 9.79562 4.75998 9.95487 4.77748C9.52612 2.78073 7.392 1.29761 4.95512 1.29761C2.23125 1.29761 0 3.15348 0 5.51161C0 6.87223 0.742 7.98961 1.98275 8.85761L1.4875 10.3477L3.22 9.47973C3.8395 9.60136 4.3365 9.72736 4.95512 9.72736C5.11087 9.72736 5.26487 9.72036 5.41712 9.70898C5.32087 9.37736 5.264 9.03086 5.264 8.66948C5.26488 6.50473 7.12337 4.74773 9.47625 4.74773ZM6.81275 3.40461C7.18725 3.40461 7.43313 3.65048 7.43313 4.02323C7.43313 4.39423 7.18725 4.64273 6.81275 4.64273C6.44263 4.64273 6.06987 4.39423 6.06987 4.02323C6.06987 3.64961 6.44175 3.40461 6.81275 3.40461ZM3.34512 4.64273C2.97325 4.64273 2.59875 4.39423 2.59875 4.02323C2.59875 3.65048 2.97325 3.40461 3.34512 3.40461C3.717 3.40461 3.96375 3.64961 3.96375 4.02323C3.96375 4.39423 3.717 4.64273 3.34512 4.64273ZM14 8.60998C14 6.62898 12.0173 5.01461 9.79037 5.01461C7.43225 5.01461 5.57638 6.62986 5.57638 8.60998C5.57638 10.5962 7.43312 12.2054 9.79037 12.2054C10.2839 12.2054 10.7818 12.082 11.277 11.9577L12.6359 12.7032L12.2631 11.4642C13.258 10.717 14 9.72736 14 8.60998ZM8.42362 7.98961C8.17775 7.98961 7.92837 7.74461 7.92837 7.49436C7.92837 7.24761 8.17775 6.99911 8.42362 6.99911C8.79988 6.99911 9.044 7.24761 9.044 7.49436C9.044 7.74461 8.79988 7.98961 8.42362 7.98961ZM11.1493 7.98961C10.9051 7.98961 10.6566 7.74461 10.6566 7.49436C10.6566 7.24761 10.9043 6.99911 11.1493 6.99911C11.522 6.99911 11.7696 7.24761 11.7696 7.49436C11.7696 7.74461 11.522 7.98961 11.1493 7.98961Z" fill="rgb(255,255,255)" fill-rule="nonzero" />
+</svg>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно