Эх сурвалжийг харах

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

your_username 2 долоо хоног өмнө
parent
commit
15f88d53e4

+ 6 - 0
pages/my/jobApplicant/workProgress.vue

@@ -20,6 +20,7 @@
           >
           <u-button
             type="primary"
+            @click="goWorkRecord"
             :customStyle="{
               marginTop: '134rpx',
               height: '90rpx',
@@ -38,6 +39,11 @@ export default {
   data() {
     return {};
   },
+  methods: {
+    goWorkRecord(){
+        uni.navigateTo({ url: '/pages/my/jobApplicant/workRecord' })
+    }
+  },
 };
 </script>
 <style scoped lang="scss">

+ 715 - 0
pages/my/jobApplicant/workRecord.vue

@@ -0,0 +1,715 @@
+<template>
+  <view class="resume-container">
+    <!-- 导航栏 -->
+    <view class="nav-bar">
+      <view class="nav-title">近期工作经验</view>
+    </view>
+
+    <view class="resume-content">
+      <!-- 头像上传区域 -->
+      <view class="form-label">头像</view>
+      <view class="avatar-section">
+        <view class="avatar-upload" @click="chooseAvatar">
+          <view class="avatar-preview">
+            <image
+              v-if="formData.avatar"
+              :src="formData.avatar"
+              class="avatar-image"
+              mode="aspectFill"
+            ></image>
+            <image
+              src="@/static/images/jobApplicant/touxiang.svg"
+              mode="scaleToFill"
+              class="user-img"
+            />
+          </view>
+          <view class="upload-view">上传头像</view>
+        </view>
+      </view>
+
+      <!-- 基本信息表单 -->
+      <view class="form-section">
+        <!-- 姓名 -->
+        <view class="form-item required">
+          <view class="form-label">姓名</view>
+          <u-input
+            placeholder="请输入姓名"
+            v-model="formData.name"
+            :border="false"
+            class="form-input"
+          ></u-input>
+        </view>
+
+        <!-- 性别 -->
+        <view class="form-item required">
+          <view class="form-label">性别</view>
+          <view class="gender-select">
+            <view class="gender-option" @click="formData.gender = 'male'">
+              <image
+                v-if="formData.gender === 'male'"
+                src="/static/images/jobApplicant/radio-check.svg"
+                mode="scaleToFill"
+              />
+              <image
+                v-else
+                src="/static/images/jobApplicant/radio.svg"
+                mode="scaleToFill"
+              />
+              男</view
+            >
+            <view class="gender-option" @click="formData.gender = 'female'">
+              <image
+                v-if="formData.gender === 'female'"
+                src="/static/images/jobApplicant/radio-check.svg"
+                mode="scaleToFill"
+              />
+              <image
+                v-else
+                src="/static/images/jobApplicant/radio.svg"
+                mode="scaleToFill"
+              />
+              女</view
+            >
+          </view>
+        </view>
+
+        <!-- 联系方式 -->
+        <view class="form-item required">
+          <view class="form-label">联系方式</view>
+          <view class="phone-view">188******39</view>
+        </view>
+
+        <!-- 出生年月 -->
+        <view class="form-item required">
+          <view class="form-label">出生年月</view>
+          <view @click="pickerShow" class="form-input-time">
+            <text>{{
+              formData.birthDate ? formData.birthDate : "请选择出生年月日"
+            }}</text>
+            <image src="@/static/images/jobApplicant/rili.svg" mode="scaleToFill" />
+          </view>
+        </view>
+
+        <!-- 求职状态 -->
+        <view class="form-item required">
+          <view class="form-label">求职状态</view>
+          <view @click.stop="showJobStatus" class="form-input-time">
+            <text>{{ formData.advantages?formData.advantages:'请选择求职状态' }}</text>
+            <image src="@/static/images/jobApplicant/icon-next.svg" mode="scaleToFill" />
+          </view>
+        </view>
+      </view>
+
+      <!-- 工作经历 -->
+      <view class="section">
+        <view class="section-header">
+          <view class="form-item required">
+            <view class="job-title">
+              <view class="job-title-txt"
+                >工作经历 <text class="job-txt">请填写专属聘用行业的工作经验</text></view
+              >
+              <image
+                class="job-image"
+                src="@/static/images/jobApplicant/edit.svg"
+                mode="scaleToFill"
+              />
+            </view>
+          </view>
+        </view>
+
+        <view
+          class="experience-item"
+          v-for="(exp, index) in workExperiences"
+          :key="index"
+        >
+          <view class="job-content">
+            <view class="job-icon">
+              <image src="/static/images/jobApplicant/xuexiao.svg" mode="scaleToFill" />
+            </view>
+            <view class="job-content-txt">
+              <view class="exp-header">
+                <view class="exp-position">
+                  <view class="position">{{ exp.position }}</view>
+                  <view class="department">{{ exp.department }}</view>
+                </view>
+                <!-- <u-icon
+                  name="close"
+                  size="18"
+                  color="#999"
+                  @click="removeWorkExperience(index)"
+                ></u-icon> -->
+              </view>
+              <view class="exp-company">
+                <view class="company">{{ exp.company }}</view>
+                <view class="yuan">·</view>
+                <view class="duration">{{ exp.duration }}</view>
+              </view>
+              <view class="exp-content">
+                <view class="content-label">请填写您的工作内容</view>
+              </view>
+              <view class="exp-content">
+                <view class="content-label tag-box">请填写您的技能标签</view>
+              </view>
+            </view>
+          </view>
+        </view>
+      </view>
+
+      <!-- 教育经历 -->
+      <view class="section">
+        <view class="section-header">
+          <view class="form-item required">
+            <view class="job-title">
+              <view class="job-title-txt">教育经历</view>
+              <image
+                class="job-image"
+                src="@/static/images/jobApplicant/edit.svg"
+                mode="scaleToFill"
+              />
+            </view>
+          </view>
+        </view>
+
+        <view
+          class="experience-item"
+          v-for="(exp, index) in workExperiences"
+          :key="index"
+        >
+          <view class="job-content">
+            <view class="job-icon">
+              <image src="/static/images/jobApplicant/bumen.svg" mode="scaleToFill" />
+            </view>
+            <view class="job-content-txt">
+              <view class="exp-header">
+                <view class="exp-position">
+                  <view class="position">学校名称</view>
+                </view>
+              </view>
+              <view class="exp-company">
+                <view class="company">学历</view>
+                <view class="yuan">·</view>
+                <view class="duration">专业</view>
+                <view class="yuan">·</view>
+                <view class="duration">在校时间</view>
+              </view>
+              <view class="exp-content">
+                <view class="content-label">请填写您的教育经历</view>
+              </view>
+            </view>
+          </view>
+        </view>
+      </view>
+
+      <!-- 个人优势 -->
+      <view class="section">
+        <view class="section-header">
+          <view class="form-item required">
+            <view class="job-title">
+              <view class="job-title-txt">个人优势</view>
+              <image
+                class="job-image"
+                src="@/static/images/jobApplicant/edit.svg"
+                mode="scaleToFill"
+              />
+            </view>
+          </view>
+        </view>
+        <view class="advantage-content">
+          <view type="textarea" class="advantage-textarea">
+            这是个人编辑的个人优势区域还是个人编辑的个人优势区域还是个人编辑的个人优势区域还是个人编辑的个人优势区域。展示三行
+          </view>
+        </view>
+      </view>
+
+      <!-- 底部按钮 -->
+      <view class="footer">
+        <u-button
+          type="primary"
+          @click="submitResume"
+          :customStyle="{
+            height: '90rpx',
+            fontSize: '32rpx',
+            borderRadius: '45rpx',
+            margin: '40rpx 0',
+          }"
+          >开启求职之旅</u-button
+        >
+      </view>
+    </view>
+    <u-picker
+      v-model="showBirthDatePicker"
+      :columns="dateColumns"
+      keyName="label"
+      @confirm="confirmBirthDate"
+      @cancel="showBirthDatePicker = false"
+    ></u-picker>
+    <u-action-sheet :list="statusList" v-model="showStatus" @click="confirmStatus"></u-action-sheet>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    // 生成日期选择器数据
+    const currentYear = new Date().getFullYear();
+    const years = [];
+    const months = [];
+    const days = [];
+
+    for (let i = currentYear - 50; i <= currentYear; i++) {
+      years.push({ label: i + "年", value: i });
+    }
+
+    for (let i = 1; i <= 12; i++) {
+      months.push({ label: i + "月", value: i });
+    }
+
+    for (let i = 1; i <= 31; i++) {
+      days.push({ label: i + "日", value: i });
+    }
+
+    return {
+      show: false,
+      avatarUrl: "",
+      showBirthDatePicker: false,
+      dateColumns: [years, months, days],
+      statusList: [{ text: "兼职" }, { text: "在职" }, { text: "离职&随时到岗" }],
+      showStatus: false,
+      formData: {
+        name: "",
+        gender: "male",
+        birthDate: "",
+        advantages: "",
+      },
+      workExperiences: [
+        {
+          position: "职位",
+          department: "部门",
+          company: "公司名称",
+          duration: "就职时间",
+          content: "请填写简历工作内容",
+          skills: "请填写面试技能要求",
+        },
+      ],
+    };
+  },
+  methods: {
+    showJobStatus() {
+      this.showStatus = true;
+    },
+    pickerShow() {
+      this.showBirthDatePicker = true;
+    },
+    confirmStatus(e) {
+      this.showStatus = false;
+      this.formData.advantages=this.statusList[e].text
+    },
+    // 选择头像
+    chooseAvatar() {
+      uni.chooseImage({
+        count: 1,
+        sizeType: ["compressed"],
+        sourceType: ["album", "camera"],
+        success: (res) => {
+          this.avatarUrl = res.tempFilePaths[0];
+        },
+      });
+    },
+
+    // 确认出生日期
+    confirmBirthDate(e) {
+      const { year, month, day } = e;
+      this.formData.birthDate = `${year}-${month}-${day}`;
+      this.showBirthDatePicker = false;
+    },
+
+    // 添加工作经历
+    addWorkExperience() {
+      this.workExperiences.push({
+        position: "职位",
+        department: "部门",
+        company: "公司名称",
+        duration: "就职时间",
+        content: "请填写简历工作内容",
+        skills: "请填写面试技能要求",
+      });
+    },
+
+    // 删除工作经历
+    removeWorkExperience(index) {
+      if (this.workExperiences.length > 1) {
+        this.workExperiences.splice(index, 1);
+      } else {
+        uni.showToast({
+          title: "至少保留一条工作经历",
+          icon: "none",
+        });
+      }
+    },
+
+    // 提交简历
+    submitResume() {
+      if (!this.formData.name) {
+        uni.showToast({ title: "请输入姓名", icon: "none" });
+        return;
+      }
+      if (!this.formData.gender) {
+        uni.showToast({ title: "请选择性别", icon: "none" });
+        return;
+      }
+      if (!this.formData.birthDate) {
+        uni.showToast({ title: "请输入出生年月", icon: "none" });
+        return;
+      }
+
+      uni.showLoading({ title: "提交中..." });
+      setTimeout(() => {
+        uni.hideLoading();
+        uni.showToast({ title: "提交成功", icon: "success" });
+        // 实际开发中可以在这里添加跳转逻辑
+        uni.switchTab({ url: '/pages/index/index' })
+      }, 1500);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.resume-container {
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+}
+.job-title {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.job-image {
+  width: 48rpx;
+  height: 48rpx;
+}
+.nav-bar {
+  height: 88rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background: #fff;
+}
+
+.nav-title {
+  font-size: 36rpx;
+  font-weight: bold;
+  color: #000;
+}
+
+.resume-content {
+  padding: 32rpx;
+}
+
+/* 头像区域 */
+.avatar-section {
+  display: flex;
+}
+
+.avatar-upload {
+  display: flex;
+  align-items: center;
+}
+
+.avatar-preview {
+  width: 48rpx;
+  height: 48rpx;
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-right: 20rpx;
+}
+
+.avatar-image {
+  width: 100%;
+  height: 100%;
+  border-radius: 50%;
+}
+
+.upload-view {
+  color: #016bf6;
+  font-family: DM Sans;
+  font-size: 20rpx;
+  font-weight: 500;
+  line-height: 48rpx;
+}
+
+.form-item {
+  padding-bottom: 24rpx;
+  box-sizing: border-box;
+  .job-txt {
+    color: #016bf6;
+    font-family: DM Sans;
+    font-size: 20rpx;
+    margin-left: 16rpx;
+  }
+}
+
+.form-item:last-child {
+  border-bottom: none;
+}
+
+.form-label {
+  color: #1f2c37;
+  font-family: DM Sans;
+  font-size: 28rpx;
+  font-weight: 500;
+  line-height: 44rpx;
+  padding-top: 30rpx;
+  padding-bottom: 27rpx;
+  box-sizing: border-box;
+}
+
+.form-input {
+  flex: 1;
+  box-sizing: border-box;
+  border: 2rpx solid #9ea1a8;
+  border-radius: 100rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 0rpx 24rpx !important;
+}
+.form-input-time {
+  flex: 1;
+  box-sizing: border-box;
+  border: 2rpx solid #e3e7ec;
+  border-radius: 100rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 10rpx 24rpx;
+  color: rgba(153, 153, 153, 1);
+  font-family: DM Sans;
+  font-size: 24rpx;
+  font-weight: 500;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  image {
+    width: 48rpx;
+    height: 48rpx;
+  }
+}
+::v-deep .input-placeholder {
+  color: rgba(153, 153, 153, 1) !important;
+  font-family: DM Sans;
+  font-size: 24rpx !important;
+  font-weight: 500;
+}
+.user-img {
+  width: 48rpx;
+  height: 48rpx;
+}
+.required .form-label::before {
+  content: "*";
+  color: #fa3534;
+  margin-right: 8rpx;
+}
+
+/* 性别选择 */
+.gender-select {
+  display: flex;
+  flex: 1;
+  gap: 40rpx;
+}
+
+.gender-option {
+  display: flex;
+  align-items: center;
+  color: #171725;
+  font-family: DM Sans;
+  font-size: 24rpx;
+  font-weight: 400;
+  line-height: 48rpx;
+  text-align: left;
+
+  image {
+    width: 32rpx;
+    height: 32rpx;
+    margin-right: 8rpx;
+  }
+}
+
+.phone-view,
+.job-status {
+  flex: 1;
+  font-size: 32rpx;
+  color: #333;
+}
+.section {
+  box-sizing: border-box;
+  border: 2rpx solid #016bf6;
+  border-radius: 24rpx;
+  background: #fff;
+  padding: 32rpx;
+  box-sizing: border-box;
+  margin-bottom: 30rpx;
+}
+.section-header {
+  margin-bottom: 24rpx;
+}
+
+/* 经历项目 */
+.experience-item {
+  border-radius: 12rpx;
+  padding: 24rpx;
+  box-sizing: border-box;
+}
+.job-content {
+  display: flex;
+  gap: 42rpx;
+  .job-icon {
+    width: 96rpx;
+    height: 96rpx;
+    border-radius: 16rpx;
+    background: rgba(246, 246, 246, 1);
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    image {
+      width: 64rpx;
+      height: 64rpx;
+    }
+  }
+  .job-content-txt {
+  }
+}
+.exp-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 16rpx;
+}
+
+.exp-position {
+  display: flex;
+  align-items: center;
+}
+
+.position {
+  color: #171725;
+  font-family: DM Sans;
+  font-size: 28rpx;
+  font-weight: 400;
+  line-height: 44rpx;
+  text-align: left;
+}
+
+.department {
+  font-size: 24rpx;
+  color: #999;
+  margin-left: 16rpx;
+}
+
+.exp-company {
+  display: flex;
+  align-items: center;
+  margin-bottom: 16rpx;
+  color: #78828a;
+  font-family: DM Sans;
+  font-size: 16rpx;
+  font-weight: 400;
+  line-height: 40rpx;
+  text-align: left;
+  .yuan {
+    padding: 0 16rpx;
+    box-sizing: border-box;
+    font-size: 40rpx;
+  }
+}
+.exp-content {
+  margin-bottom: 12rpx;
+}
+
+.exp-content:last-child {
+  margin-bottom: 0;
+}
+
+.content-label {
+  color: rgba(120, 130, 138, 1);
+  font-family: DM Sans;
+  font-size: 16rpx;
+  font-weight: 400;
+  line-height: 20rpx;
+  text-align: left;
+  margin-bottom: 10rpx;
+}
+.tag-box {
+  border-radius: 8rpx;
+  background: rgba(153, 153, 153, 0.1);
+  padding: 8rpx;
+  box-sizing: border-box;
+}
+.content-view {
+  font-size: 28rpx;
+  color: #333;
+  line-height: 1.5;
+}
+
+/* 教育经历 */
+.education-item {
+  background: #f8f9fa;
+  border-radius: 12rpx;
+  padding: 24rpx;
+  margin-bottom: 24rpx;
+}
+
+.edu-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 16rpx;
+}
+
+.edu-school {
+  font-size: 32rpx;
+  color: #333;
+  font-weight: 500;
+}
+
+.edu-info {
+  display: flex;
+  align-items: center;
+  margin-bottom: 12rpx;
+}
+
+.edu-degree,
+.edu-major,
+.edu-duration {
+  font-size: 28rpx;
+  color: #666;
+  margin-right: 20rpx;
+}
+
+.edu-content {
+  margin-top: 12rpx;
+}
+.add-view {
+  font-size: 28rpx;
+  margin-left: 12rpx;
+}
+
+.advantage-textarea {
+  color: rgba(120, 130, 138, 1);
+  font-family: DM Sans;
+  font-size: 24rpx;
+  font-weight: 400;
+  line-height: 32rpx;
+  padding: 32rpx;
+  padding-top: 0;
+  box-sizing: border-box;
+}
+
+.footer {
+  padding-bottom: 40rpx;
+}
+::v-deep .u-input {
+  text-align: left !important;
+}
+</style>

+ 822 - 710
pages/public/login.vue

@@ -1,715 +1,827 @@
 <template>
-	<view class="container">
-		<!-- <image @click="navBack" src="../../static/images/index/close.png" style="width: 32upx;height: 32upx;margin-left: 46upx;"></image> -->
-		<!-- 小程序状态下登录 -->
-		<!-- #ifdef MP-WEIXIN -->
-		<view class="mp_wxBox">
-			<view>
-				<view class="headers">
-					<image src="../../static/logo.png" style="border-radius: 50%;"></image>
-				</view>
-				<view class="content">
-					<view>申请获取以下权限</view>
-					<text>获得你的公开信息(昵称,头像、地区等)</text>
-				</view>
-				<!-- <button v-show="weixinPhone" style="background: #00B88F;color: #FFFFFF;" class="bottom"
-					open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
-					授权手机号
-				</button>
-				<button v-show="!weixinPhone" style="background: #00B88F;color: #FFFFFF;" class='bottom'
-					bindtap="getUserProfile" @tap="wxGetUserInfo">
-					授权登录
-				</button> -->
-				<button v-if="weixinPhone == true || weixinPhone == 'true'" style="background: #00B88F;color: #FFFFFF;"
-					class="bottom" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
-					授权手机号
-				</button>
-				<button v-else style="background: #00B88F;color: #FFFFFF;" class='bottom' bindtap="getUserProfile"
-					@tap="login()">
-					授权登录
-				</button>
-			</view>
-		</view>
-		<view style="text-align: center;">
-			<view class="footer">
-				<u-checkbox shape="circle" v-model="checked">
-				</u-checkbox>
-				<text>同意</text>
-				<!-- 协议地址 -->
-				<navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
-				和
-				<navigator url="/my/setting/xieyi" open-type="navigate">《用户协议》</navigator>
-				<!-- <checkbox @click="checked=!checked" style="transform:scale(0.6)"/> -->
-
-			</view>
-		</view>
-		<!-- #endif -->
-		<!-- #ifndef MP-WEIXIN -->
-		<view style="text-align: center;">
-			<image style="width: 120upx;height: 120upx;margin-top: 140upx;border-radius:20upx"
-				src="../../static/logo.png"></image>
-			<button class='confirm-btn' style="margin-top: 100rpx;" @click="register">手机号登录</button>
-			<view class="" v-if="isopen" @click="weixinLo" style="width: 100%;padding-top: 100rpx;">
-				<view class="">
-					<u-icon name="weixin-circle-fill" color="#5fcd73" size="100"></u-icon>
-				</view>
-				<view class="" style="width: 100%;color: #666666;padding-top: 10rpx;">
-					公众号快捷登录
-				</view>
-			</view>
-
-			<!-- 底部信息 -->
-			<view class="footer">
-				<u-checkbox shape="circle" v-model="checked">
-				</u-checkbox>
-				<text>同意</text>
-				<!-- 协议地址 -->
-				<navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
-				和
-				<navigator url="/my/setting/xieyi" open-type="navigate">《用户协议》</navigator>
-			</view>
-		</view>
-		<!-- #endif -->
-
-	</view>
+  <view class="container">
+    <!-- <image @click="navBack" src="../../static/images/index/close.png" style="width: 32upx;height: 32upx;margin-left: 46upx;"></image> -->
+    <!-- 小程序状态下登录 -->
+    <!-- #ifdef MP-WEIXIN -->
+    <view class="login-box">
+      <view class="mp_wxBox">
+        <view>
+          <view class="logo-box">
+            <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
+          </view>
+          <view class="content">
+            <view>申请获取以下权限</view>
+            <text>获得你的公开信息(昵称,头像、地区等)</text>
+          </view>
+          <view
+            v-if="weixinPhone == true || weixinPhone == 'true'"
+            class="login-btn wechat"
+            open-type="getPhoneNumber"
+            @getphonenumber="getPhoneNumber"
+          >
+            <image src="@/static/images/jobApplicant/phone.svg" mode="scaleToFill" />
+            授权手机号
+          </view>
+          <button
+            v-else
+            style="background: rgba(13, 39, 247, 1); color: #ffffff"
+            class="bottom"
+            bindtap="getUserProfile"
+            @tap="login()"
+          >
+            授权登录
+          </button>
+        </view>
+      </view>
+      <view style="text-align: center">
+        <view class="footer">
+          <view class="check-box" @click="checked = !checked">
+            <image
+              src="@/static/images/jobApplicant/check.svg"
+              v-if="checked"
+              mode="scaleToFill"
+            />
+            <image
+              src="@/static/images/jobApplicant/border.svg"
+              v-else
+              mode="scaleToFill"
+            />
+          </view>
+          已阅读并同意<navigator url="/my/setting/xieyi">《亿职赞用户协议》</navigator>
+          和<navigator url="/my/setting/mimi">《隐私协议》</navigator
+          >,允许亿职赞统一管理本人账号信息
+        </view>
+      </view>
+    </view>
+    <!-- #endif -->
+    <!-- #ifndef MP-WEIXIN -->
+    <view style="text-align: center" class="login-box">
+      <view class="logo-box">
+        <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
+      </view>
+      <!-- <button class="confirm-btn" style="margin-top: 100rpx" @click="register">
+        手机号登录
+      </button> -->
+      <view class="login-btn wechat" @click="register"
+        ><image
+          src="@/static/images/jobApplicant/phone.svg"
+          mode="scaleToFill"
+        />手机验证码登录</view
+      >
+      <view
+        class=""
+        v-if="isopen"
+        @click="weixinLo"
+        style="width: 100%; padding-top: 100rpx"
+      >
+        <view class="">
+          <u-icon name="weixin-circle-fill" color="#5fcd73" size="100"></u-icon>
+        </view>
+        <view class="login-btn wechat"> 公众号快捷登录 </view>
+      </view>
+
+      <!-- 底部信息 -->
+      <view class="footer">
+        <view class="check-box" @click="checked = !checked">
+          <image
+            src="@/static/images/jobApplicant/check.svg"
+            v-if="checked"
+            mode="scaleToFill"
+          />
+          <image
+            src="@/static/images/jobApplicant/border.svg"
+            v-else
+            mode="scaleToFill"
+          />
+        </view>
+        已阅读并同意<navigator url="/my/setting/xieyi">《亿职赞用户协议》</navigator>
+        和<navigator url="/my/setting/mimi">《隐私协议》</navigator
+        >,允许亿职赞统一管理本人账号信息
+      </view>
+      <!-- <view class="footer">
+        <u-checkbox shape="circle" v-model="checked"> </u-checkbox>
+        <text>同意</text>
+        协议地址
+        <navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
+        和
+        <navigator url="/my/setting/xieyi" open-type="navigate">《用户协议》</navigator>
+      </view> -->
+    </view>
+    <!-- #endif -->
+  </view>
 </template>
 <script>
-	export default {
-		data() {
-			return {
-				checked: false,
-				mobile: '',
-				code: '',
-				weixinLogin: false,
-				sending: false,
-				sendTime: '获取验证码',
-				count: 60,
-				weixinPhone: false,
-				sendDataList: {},
-				sessionkey: '',
-				phoneNum: false,
-				isopen: false,
-			};
-		},
-		onLoad(e) {
-			if (e.inviterCode) {
-				this.$queue.setData('inviterCode', e.inviterCode);
-			}
-			this.sessionkey = uni.getStorageSync('sessionkey')
-			this.weixinPhone = uni.getStorageSync('weixinPhone')
-			console.log(this.weixinPhone)
-			if (uni.getStorageSync('sendDataList')) {
-				this.sendDataList = uni.getStorageSync('sendDataList')
-			}
-			// //微信登录开启
-			// this.$Request.getT('/app/common/type/53').then(res => {
-			// 	if (res.code == 0) {
-			// 		if (res.data && res.data.value && res.data.value == '是') {
-			// 			// this.weixinLogin = true;
-			// 		}
-			// 	}
-			// });
-			this.$Request.getT('/app/common/type/188').then(res => {
-				if (res.code == 0) {
-					if (res.data && res.data.value && res.data.value == '是') {
-						this.phoneNum = true;
-					}
-				}
-			});
-			// #ifdef H5
-			let ua = navigator.userAgent.toLowerCase();
-			if (ua.indexOf('micromessenger') !== -1) {
-				//公众号是否自动登录  108
-				this.$Request.getT('/app/common/type/108').then(res => {
-					if (res.code == 0) {
-						if (res.data && res.data.value && res.data.value == '是') {
-							this.isopen = true;
-						} else {
-							this.isopen = false;
-						}
-					}
-				});
-			} else {
-				this.isopen = false;
-			}
-			this.selbindwx()
-			// #endif
-		},
-		methods: {
-			selbindwx() {
-				let ua = navigator.userAgent.toLowerCase();
-				if (ua.indexOf('micromessenger') !== -1) {
-					let openid = uni.getStorageSync('openid');
-					let userId = uni.getStorageSync('userId');
-					// let that = this;
-					if (window.location.href.indexOf('?code=') !== -1 || window.location.href.indexOf('&code=') !==
-						-1) {
-						let code;
-						if (window.location.href.indexOf('?code=') !== -1) {
-							code = window.location.href.split('?code=')[1].split('&')[0];
-						} else {
-							code = window.location.href.split('&code=')[1].split('&')[0];
-						}
-						let data = {
-							code: code
-						}
-						this.$Request.getT('/app/Login/getOpenId', data).then(ret => {
-							if (ret.code == 0) {
-								uni.setStorageSync('openid', ret.data)
-								this.$Request.getT('/app/Login/openid/login', {
-									openId: ret.data
-								}).then(res => {
-									if (res.code == 0) {
-										uni.setStorageSync('token', res.token)
-										uni.setStorageSync('userName', res.user.userName)
-										uni.setStorageSync('avatar', res.user.avatar)
-										uni.setStorageSync('phone', res.user.phone)
-										uni.setStorageSync('invitationCode', res.user.invitationCode)
-										this.$queue.setData("inviterCode", res.user.inviterCode);
-										uni.setStorageSync('sex', res.user.sex)
-										uni.setStorageSync('userId', res.user.userId)
-										uni.setStorageSync('openId', res.user.openId)
-										uni.setStorageSync('userType', res.user.userType)
-										this.$Request.get("/app/UserVip/isUserVip").then(res => {
-											if (res.code == 0 && res.data && res.data.isVip == 2) {
-												uni.setStorageSync('isVIP', true)
-											} else {
-												uni.setStorageSync('isVIP', false)
-											}
-										});
-										//判断是否开启身份选择 是/否
-										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 {
-													uni.navigateBack();
-												}
-											} else {
-												uni.navigateBack();
-											}
-										});
-									} else {
-										uni.navigateTo({
-											url: '/pages/public/bind'
-										});
-									}
-								})
-							}
-						})
-					}
-				}
-			},
-			//微信公众号登录
-			weixinLo() {
-				if (this.checked == false) {
-					uni.showToast({
-						title: '请先同意《隐私政策》和《用户服务协议》',
-						icon: 'none'
-					})
-					return
-				}
-				let ua = navigator.userAgent.toLowerCase();
-				if (ua.indexOf('micromessenger') !== -1) {
-					let openid = uni.getStorageSync('openid');
-					let userId = uni.getStorageSync('userId');
-
-					if (!openid) {
-						if (window.location.href.indexOf('?code=') !== -1 || window.location.href.indexOf('&code=') !==
-							-1) {
-							let code;
-							if (window.location.href.indexOf('?code=') !== -1) {
-								code = window.location.href.split('?code=')[1].split('&')[0];
-							} else {
-								code = window.location.href.split('&code=')[1].split('&')[0];
-							}
-							let data = {
-								code: code
-							}
-							this.$Request.getT('/app/Login/getOpenId', data).then(res => {
-								if (ret.code == 0) {
-									uni.setStorageSync('openid', ret.data)
-									let datas = {
-										openId: ret.data
-									}
-									this.$Request.getT('/app/Login/openid/login', datas).then(res => {
-										if (res.code == 0) {
-											uni.setStorageSync('token', res.token)
-											uni.setStorageSync('userName', res.user.userName)
-											uni.setStorageSync('avatar', res.user.avatar)
-											uni.setStorageSync('phone', res.user.phone)
-											uni.setStorageSync('invitationCode', res.user.invitationCode)
-											this.$queue.setData("inviterCode", res.user.inviterCode);
-											uni.setStorageSync('sex', res.user.sex)
-											uni.setStorageSync('userId', res.user.userId)
-											uni.setStorageSync('openId', res.user.openId)
-											uni.setStorageSync('userType', res.user.userType)
-											this.$Request.get("/app/UserVip/isUserVip").then(res => {
-												if (res.code == 0 && res.data && res.data.isVip ==
-													2) {
-													uni.setStorageSync('isVIP', true)
-												} else {
-													uni.setStorageSync('isVIP', false)
-												}
-											});
-											//判断是否开启身份选择 是/否
-											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 {
-														uni.navigateBack();
-													}
-												} else {
-													uni.navigateBack();
-												}
-											});
-										} else {
-											uni.navigateTo({
-												url: '/pages/public/bind'
-											});
-										}
-									})
-								}
-							})
-
-						} else {
-							let that = this;
-							window.location.href =
-								'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
-								that.$queue.getWxAppid() +
-								'&redirect_uri=' +
-								window.location.href.split('#')[0] +
-								'&response_type=code&scope=snsapi_userinfo#wechat_redirect';
-						}
-					} else {
-						this.$Request.getT('/app/Login/openid/login', {
-							openId: openid
-						}).then(res => {
-							if (res.code == 0) {
-								uni.setStorageSync('token', res.token)
-								uni.setStorageSync('userName', res.user.userName)
-								uni.setStorageSync('avatar', res.user.avatar)
-								uni.setStorageSync('phone', res.user.phone)
-								uni.setStorageSync('invitationCode', res.user.invitationCode)
-								this.$queue.setData("inviterCode", res.user.inviterCode);
-								uni.setStorageSync('sex', res.user.sex)
-								uni.setStorageSync('userId', res.user.userId)
-								uni.setStorageSync('openId', res.user.openId)
-								uni.setStorageSync('userType', res.user.userType)
-								this.$Request.get("/app/UserVip/isUserVip").then(res => {
-									if (res.code == 0 && res.data && res.data.isVip == 2) {
-										uni.setStorageSync('isVIP', true)
-									} else {
-										uni.setStorageSync('isVIP', false)
-									}
-								});
-								//判断是否开启身份选择 是/否
-								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 {
-											uni.navigateBack();
-										}
-									} else {
-										uni.navigateBack();
-									}
-								});
-							} else {
-								uni.navigateTo({
-									url: '/pages/public/bind'
-								});
-							}
-						})
-
-					}
-				}
-			},
-			wxGetUserInfo(e) {
-				if (this.checked) {
-					wx.getUserProfile({
-						desc: '业务需要',
-						success: infoRes => {
-							console.log("infoRes.encryptedData__________:" + JSON.stringify(infoRes.userInfo))
-							let nickName = infoRes.userInfo.nickName; //昵称
-							let avatarUrl = infoRes.userInfo.avatarUrl; //头像
-							let sex = infoRes.userInfo.gender; //头像
-							try {
-								this.$queue.showLoading('正在登录中...');
-								this.login(nickName, avatarUrl, sex);
-							} catch (e) {}
-						}
-					})
-				} else {
-					uni.showToast({
-						title: '请阅读并同意《隐私协议》和《用户服务协议》',
-						icon: 'none'
-					})
-				}
-
-			},
-			//登录
-			login(nickName, avatarUrl, sex) {
-				if (!this.checked) {
-					uni.showToast({
-						title: '请阅读并同意《隐私协议》和《用户服务协议》',
-						icon: 'none'
-					})
-					return
-				}
-				let that = this;
-				// 1.wx获取登录用户code
-				uni.login({
-					provider: 'weixin',
-					success: function(loginRes) {
-						console.log(loginRes, '************')
-						let data = {
-							code: loginRes.code,
-						}
-						that.$Request.get('/app/Login/wxLogin', data).then(res => {
-							if (res.code == 0) {
-								uni.hideLoading()
-								uni.setStorageSync('openId', res.data.open_id)
-								uni.setStorageSync('unionId', res.data.unionId)
-								that.sessionkey = res.data.session_key;
-								let sendData = {
-									openId: uni.getStorageSync('openId'),
-									unionId: uni.getStorageSync('unionId'),
-									userName: '游客',
-									avatar: '',
-									sex: '1', //性别
-									inviterCode: that.$queue.getData('inviterCode') //别人登录进来携带你的邀请码
-								};
-								that.sendDataList = sendData;
-								that.flag = res.data.flag;
-								// 第一次登录获取手机号
-								// console.log(that.phoneNum,'**********************1')
-								// console.log(that.flag,'**********************2')
-								if (that.flag == '2' && that.phoneNum) {
-									that.weixinPhone = true;
-								} else {
-									that.getWeixinInfo(sendData);
-								}
-							} else {
-								uni.showToast({
-									icon: 'none',
-									title: res.msg,
-									duration: 2000
-								});
-								console.log(res, '失败')
-							}
-						})
-
-					}
-				});
-			},
-			//小程序微信登录后获取手机号
-			getPhoneNumber: function(e) {
-				if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
-					console.log('用户拒绝提供手机号');
-				} else {
-					console.log('用户同意提供手机号');
-					console.log(e)
-					this.setPhoneByInsert(e.detail.encryptedData, e.detail.iv);
-				}
-			},
-			//小程序微信登录后获取手机号
-			setPhoneByInsert(decryptData, iv) {
-				let data = {
-					decryptData: decryptData,
-					key: this.sessionkey,
-					iv: iv
-				};
-
-				this.$Request.postJson('/app/Login/selectPhone', data).then(res => {
-					if (res.code == 0) {
-						this.phone = res.data.phoneNumber;
-						this.getWeixinInfo(this.sendDataList);
-					} else {
-						uni.showToast({
-							title: res.msg,
-							icon: 'none',
-							duration: 2000
-						});
-					}
-				})
-			},
-			//获取个人信息
-			getWeixinInfo(sendData) {
-				let that = this;
-				uni.showLoading({
-					title: '登录中...'
-				});
-				let postData = {
-					openId: sendData.openId, //小程序openId
-					unionId: sendData.unionId, //unionId
-					userName: sendData.userName, //微信名称
-					avatar: sendData.avatar, //头像
-					sex: sendData.sex, //性别
-					phone: that.phone,
-					inviterCode: sendData.inviterCode
-				};
-				that.$Request.postJson('/app/Login/insertWxUser', postData).then(res => {
-					uni.hideLoading();
-					if (res.code == 0) {
-						uni.setStorageSync('token', res.token)
-						uni.setStorageSync('userName', res.user.userName)
-						uni.setStorageSync('avatar', res.user.avatar)
-						uni.setStorageSync('phone', res.user.phone)
-						uni.setStorageSync('invitationCode', res.user.invitationCode)
-						this.$queue.setData("inviterCode", res.user.inviterCode);
-						uni.setStorageSync('sex', res.user.sex)
-						uni.setStorageSync('userId', res.user.userId)
-						uni.setStorageSync('openId', res.user.openId)
-						uni.setStorageSync('userType', res.user.userType)
-						this.$Request.get("/app/UserVip/isUserVip").then(res => {
-							if (res.code == 0 && res.data && res.data.isVip == 2) {
-								uni.setStorageSync('isVIP', true)
-							} else {
-								uni.setStorageSync('isVIP', false)
-							}
-						});
-						//判断是否开启身份选择 是/否
-						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 {
-									uni.navigateBack();
-								}
-							} else {
-								uni.navigateBack();
-							}
-						});
-
-
-					} else {
-						uni.showModal({
-							showCancel: false,
-							title: '登录失败',
-							content: res.msg,
-						});
-					}
-				})
-			},
-
-			forget() {
-				uni.navigateTo({
-					url: '/pages/public/pwd'
-				});
-			},
-			register() {
-				if (!this.checked) {
-					uni.showToast({
-						title: '请阅读并同意《隐私协议》和《用户服务协议》',
-						icon: 'none'
-					})
-				} else {
-					uni.navigateTo({
-						url: '/pages/public/loginphone'
-					});
-				}
-
-			},
-			inputChange(e) {
-				const key = e.currentTarget.dataset.key;
-				this[key] = e.detail.value;
-			},
-			navBack() {
-				uni.navigateBack();
-			},
-		}
-	};
+export default {
+  data() {
+    return {
+      checked: false,
+      mobile: "",
+      code: "",
+      weixinLogin: false,
+      sending: false,
+      sendTime: "获取验证码",
+      count: 60,
+      weixinPhone: false,
+      sendDataList: {},
+      sessionkey: "",
+      phoneNum: false,
+      isopen: false,
+    };
+  },
+  onLoad(e) {
+    if (e.inviterCode) {
+      this.$queue.setData("inviterCode", e.inviterCode);
+    }
+    this.sessionkey = uni.getStorageSync("sessionkey");
+    this.weixinPhone = uni.getStorageSync("weixinPhone");
+    console.log(this.weixinPhone);
+    if (uni.getStorageSync("sendDataList")) {
+      this.sendDataList = uni.getStorageSync("sendDataList");
+    }
+    // //微信登录开启
+    // this.$Request.getT('/app/common/type/53').then(res => {
+    // 	if (res.code == 0) {
+    // 		if (res.data && res.data.value && res.data.value == '是') {
+    // 			// this.weixinLogin = true;
+    // 		}
+    // 	}
+    // });
+    this.$Request.getT("/app/common/type/188").then((res) => {
+      if (res.code == 0) {
+        if (res.data && res.data.value && res.data.value == "是") {
+          this.phoneNum = true;
+        }
+      }
+    });
+    // #ifdef H5
+    let ua = navigator.userAgent.toLowerCase();
+    if (ua.indexOf("micromessenger") !== -1) {
+      //公众号是否自动登录  108
+      this.$Request.getT("/app/common/type/108").then((res) => {
+        if (res.code == 0) {
+          if (res.data && res.data.value && res.data.value == "是") {
+            this.isopen = true;
+          } else {
+            this.isopen = false;
+          }
+        }
+      });
+    } else {
+      this.isopen = false;
+    }
+    this.selbindwx();
+    // #endif
+  },
+  methods: {
+    selbindwx() {
+      let ua = navigator.userAgent.toLowerCase();
+      if (ua.indexOf("micromessenger") !== -1) {
+        let openid = uni.getStorageSync("openid");
+        let userId = uni.getStorageSync("userId");
+        // let that = this;
+        if (
+          window.location.href.indexOf("?code=") !== -1 ||
+          window.location.href.indexOf("&code=") !== -1
+        ) {
+          let code;
+          if (window.location.href.indexOf("?code=") !== -1) {
+            code = window.location.href.split("?code=")[1].split("&")[0];
+          } else {
+            code = window.location.href.split("&code=")[1].split("&")[0];
+          }
+          let data = {
+            code: code,
+          };
+          this.$Request.getT("/app/Login/getOpenId", data).then((ret) => {
+            if (ret.code == 0) {
+              uni.setStorageSync("openid", ret.data);
+              this.$Request
+                .getT("/app/Login/openid/login", {
+                  openId: ret.data,
+                })
+                .then((res) => {
+                  if (res.code == 0) {
+                    uni.setStorageSync("token", res.token);
+                    uni.setStorageSync("userName", res.user.userName);
+                    uni.setStorageSync("avatar", res.user.avatar);
+                    uni.setStorageSync("phone", res.user.phone);
+                    uni.setStorageSync("invitationCode", res.user.invitationCode);
+                    this.$queue.setData("inviterCode", res.user.inviterCode);
+                    uni.setStorageSync("sex", res.user.sex);
+                    uni.setStorageSync("userId", res.user.userId);
+                    uni.setStorageSync("openId", res.user.openId);
+                    uni.setStorageSync("userType", res.user.userType);
+                    this.$Request.get("/app/UserVip/isUserVip").then((res) => {
+                      if (res.code == 0 && res.data && res.data.isVip == 2) {
+                        uni.setStorageSync("isVIP", true);
+                      } else {
+                        uni.setStorageSync("isVIP", false);
+                      }
+                    });
+                    //判断是否开启身份选择 是/否
+                    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 {
+                          uni.navigateBack();
+                        }
+                      } else {
+                        uni.navigateBack();
+                      }
+                    });
+                  } else {
+                    uni.navigateTo({
+                      url: "/pages/public/bind",
+                    });
+                  }
+                });
+            }
+          });
+        }
+      }
+    },
+    //微信公众号登录
+    weixinLo() {
+      if (this.checked == false) {
+        uni.showToast({
+          title: "请先同意《隐私政策》和《用户服务协议》",
+          icon: "none",
+        });
+        return;
+      }
+      let ua = navigator.userAgent.toLowerCase();
+      if (ua.indexOf("micromessenger") !== -1) {
+        let openid = uni.getStorageSync("openid");
+        let userId = uni.getStorageSync("userId");
+
+        if (!openid) {
+          if (
+            window.location.href.indexOf("?code=") !== -1 ||
+            window.location.href.indexOf("&code=") !== -1
+          ) {
+            let code;
+            if (window.location.href.indexOf("?code=") !== -1) {
+              code = window.location.href.split("?code=")[1].split("&")[0];
+            } else {
+              code = window.location.href.split("&code=")[1].split("&")[0];
+            }
+            let data = {
+              code: code,
+            };
+            this.$Request.getT("/app/Login/getOpenId", data).then((res) => {
+              if (ret.code == 0) {
+                uni.setStorageSync("openid", ret.data);
+                let datas = {
+                  openId: ret.data,
+                };
+                this.$Request.getT("/app/Login/openid/login", datas).then((res) => {
+                  if (res.code == 0) {
+                    uni.setStorageSync("token", res.token);
+                    uni.setStorageSync("userName", res.user.userName);
+                    uni.setStorageSync("avatar", res.user.avatar);
+                    uni.setStorageSync("phone", res.user.phone);
+                    uni.setStorageSync("invitationCode", res.user.invitationCode);
+                    this.$queue.setData("inviterCode", res.user.inviterCode);
+                    uni.setStorageSync("sex", res.user.sex);
+                    uni.setStorageSync("userId", res.user.userId);
+                    uni.setStorageSync("openId", res.user.openId);
+                    uni.setStorageSync("userType", res.user.userType);
+                    this.$Request.get("/app/UserVip/isUserVip").then((res) => {
+                      if (res.code == 0 && res.data && res.data.isVip == 2) {
+                        uni.setStorageSync("isVIP", true);
+                      } else {
+                        uni.setStorageSync("isVIP", false);
+                      }
+                    });
+                    //判断是否开启身份选择 是/否
+                    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 {
+                          uni.navigateBack();
+                        }
+                      } else {
+                        uni.navigateBack();
+                      }
+                    });
+                  } else {
+                    uni.navigateTo({
+                      url: "/pages/public/bind",
+                    });
+                  }
+                });
+              }
+            });
+          } else {
+            let that = this;
+            window.location.href =
+              "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
+              that.$queue.getWxAppid() +
+              "&redirect_uri=" +
+              window.location.href.split("#")[0] +
+              "&response_type=code&scope=snsapi_userinfo#wechat_redirect";
+          }
+        } else {
+          this.$Request
+            .getT("/app/Login/openid/login", {
+              openId: openid,
+            })
+            .then((res) => {
+              if (res.code == 0) {
+                uni.setStorageSync("token", res.token);
+                uni.setStorageSync("userName", res.user.userName);
+                uni.setStorageSync("avatar", res.user.avatar);
+                uni.setStorageSync("phone", res.user.phone);
+                uni.setStorageSync("invitationCode", res.user.invitationCode);
+                this.$queue.setData("inviterCode", res.user.inviterCode);
+                uni.setStorageSync("sex", res.user.sex);
+                uni.setStorageSync("userId", res.user.userId);
+                uni.setStorageSync("openId", res.user.openId);
+                uni.setStorageSync("userType", res.user.userType);
+                this.$Request.get("/app/UserVip/isUserVip").then((res) => {
+                  if (res.code == 0 && res.data && res.data.isVip == 2) {
+                    uni.setStorageSync("isVIP", true);
+                  } else {
+                    uni.setStorageSync("isVIP", false);
+                  }
+                });
+                //判断是否开启身份选择 是/否
+                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 {
+                      uni.navigateBack();
+                    }
+                  } else {
+                    uni.navigateBack();
+                  }
+                });
+              } else {
+                uni.navigateTo({
+                  url: "/pages/public/bind",
+                });
+              }
+            });
+        }
+      }
+    },
+    wxGetUserInfo(e) {
+      if (this.checked) {
+        wx.getUserProfile({
+          desc: "业务需要",
+          success: (infoRes) => {
+            console.log(
+              "infoRes.encryptedData__________:" + JSON.stringify(infoRes.userInfo)
+            );
+            let nickName = infoRes.userInfo.nickName; //昵称
+            let avatarUrl = infoRes.userInfo.avatarUrl; //头像
+            let sex = infoRes.userInfo.gender; //头像
+            try {
+              this.$queue.showLoading("正在登录中...");
+              this.login(nickName, avatarUrl, sex);
+            } catch (e) {}
+          },
+        });
+      } else {
+        uni.showToast({
+          title: "请阅读并同意《隐私协议》和《用户服务协议》",
+          icon: "none",
+        });
+      }
+    },
+    //登录
+    login(nickName, avatarUrl, sex) {
+      if (!this.checked) {
+        uni.showToast({
+          title: "请阅读并同意《隐私协议》和《用户服务协议》",
+          icon: "none",
+        });
+        return;
+      }
+      let that = this;
+      // 1.wx获取登录用户code
+      uni.login({
+        provider: "weixin",
+        success: function (loginRes) {
+          console.log(loginRes, "************");
+          let data = {
+            code: loginRes.code,
+          };
+          that.$Request.get("/app/Login/wxLogin", data).then((res) => {
+            if (res.code == 0) {
+              uni.hideLoading();
+              uni.setStorageSync("openId", res.data.open_id);
+              uni.setStorageSync("unionId", res.data.unionId);
+              that.sessionkey = res.data.session_key;
+              let sendData = {
+                openId: uni.getStorageSync("openId"),
+                unionId: uni.getStorageSync("unionId"),
+                userName: "游客",
+                avatar: "",
+                sex: "1", //性别
+                inviterCode: that.$queue.getData("inviterCode"), //别人登录进来携带你的邀请码
+              };
+              that.sendDataList = sendData;
+              that.flag = res.data.flag;
+              // 第一次登录获取手机号
+              // console.log(that.phoneNum,'**********************1')
+              // console.log(that.flag,'**********************2')
+              if (that.flag == "2" && that.phoneNum) {
+                that.weixinPhone = true;
+              } else {
+                that.getWeixinInfo(sendData);
+              }
+            } else {
+              uni.showToast({
+                icon: "none",
+                title: res.msg,
+                duration: 2000,
+              });
+              console.log(res, "失败");
+            }
+          });
+        },
+      });
+    },
+    //小程序微信登录后获取手机号
+    getPhoneNumber: function (e) {
+      if (e.detail.errMsg == "getPhoneNumber:fail user deny") {
+        console.log("用户拒绝提供手机号");
+      } else {
+        console.log("用户同意提供手机号");
+        console.log(e);
+        this.setPhoneByInsert(e.detail.encryptedData, e.detail.iv);
+      }
+    },
+    //小程序微信登录后获取手机号
+    setPhoneByInsert(decryptData, iv) {
+      let data = {
+        decryptData: decryptData,
+        key: this.sessionkey,
+        iv: iv,
+      };
+
+      this.$Request.postJson("/app/Login/selectPhone", data).then((res) => {
+        if (res.code == 0) {
+          this.phone = res.data.phoneNumber;
+          this.getWeixinInfo(this.sendDataList);
+        } else {
+          uni.showToast({
+            title: res.msg,
+            icon: "none",
+            duration: 2000,
+          });
+        }
+      });
+    },
+    //获取个人信息
+    getWeixinInfo(sendData) {
+      let that = this;
+      uni.showLoading({
+        title: "登录中...",
+      });
+      let postData = {
+        openId: sendData.openId, //小程序openId
+        unionId: sendData.unionId, //unionId
+        userName: sendData.userName, //微信名称
+        avatar: sendData.avatar, //头像
+        sex: sendData.sex, //性别
+        phone: that.phone,
+        inviterCode: sendData.inviterCode,
+      };
+      that.$Request.postJson("/app/Login/insertWxUser", postData).then((res) => {
+        uni.hideLoading();
+        if (res.code == 0) {
+          uni.setStorageSync("token", res.token);
+          uni.setStorageSync("userName", res.user.userName);
+          uni.setStorageSync("avatar", res.user.avatar);
+          uni.setStorageSync("phone", res.user.phone);
+          uni.setStorageSync("invitationCode", res.user.invitationCode);
+          this.$queue.setData("inviterCode", res.user.inviterCode);
+          uni.setStorageSync("sex", res.user.sex);
+          uni.setStorageSync("userId", res.user.userId);
+          uni.setStorageSync("openId", res.user.openId);
+          uni.setStorageSync("userType", res.user.userType);
+          this.$Request.get("/app/UserVip/isUserVip").then((res) => {
+            if (res.code == 0 && res.data && res.data.isVip == 2) {
+              uni.setStorageSync("isVIP", true);
+            } else {
+              uni.setStorageSync("isVIP", false);
+            }
+          });
+          //判断是否开启身份选择 是/否
+          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 {
+                uni.navigateBack();
+              }
+            } else {
+              uni.navigateBack();
+            }
+          });
+        } else {
+          uni.showModal({
+            showCancel: false,
+            title: "登录失败",
+            content: res.msg,
+          });
+        }
+      });
+    },
+
+    forget() {
+      uni.navigateTo({
+        url: "/pages/public/pwd",
+      });
+    },
+    register() {
+      if (!this.checked) {
+        uni.showToast({
+          title: "请阅读并同意《隐私协议》和《用户服务协议》",
+          icon: "none",
+        });
+      } else {
+        uni.navigateTo({
+          url: "/pages/public/loginphone",
+        });
+      }
+    },
+    inputChange(e) {
+      const key = e.currentTarget.dataset.key;
+      this[key] = e.detail.value;
+    },
+    navBack() {
+      uni.navigateBack();
+    },
+  },
+};
 </script>
 
-<style lang="scss">
-	page {
-		height: 100%;
-		background: #FFFFFF !important;
-	}
-
-	/deep/.u-checkbox__label {
-		margin-right: 0rpx !important;
-	}
-
-	/deep/.u-checkbox {
-		padding: 0 !important;
-	}
-
-	.footer {
-		// padding-left: 140upx;
-		margin-top: 32upx;
-		font-size: 24upx;
-		color: #666666;
-		// text-align: center;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-
-
-	.container {
-		top: 0;
-		padding-top: 50px;
-		position: relative;
-		width: 100%;
-		height: 100%;
-		overflow: hidden;
-		background: #FFFFFF !important;
-		color: #FFF;
-	}
-
-
-
-	.confirm-btn-weixin {
-		width: 200px;
-		height: 42px;
-		line-height: 42px;
-		border-radius: 30px;
-		margin-top: 40upx;
-		background: -moz-linear-gradient(left, #f15b6c, #e10a07 100%);
-		background: -webkit-gradient(linear, left top, left right, color-stop(0, #f15b6c), color-stop(100%, #e10a07));
-		background: -webkit-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
-		color: #fff;
-		font-size: 32upx;
-
-		&:after {
-			border-radius: 60px;
-		}
-	}
-
-	.confirm-btn {
-		width: 200px;
-		height: 42px;
-		line-height: 42px;
-		border-radius: 30px;
-		margin-top: 300upx;
-		background: -moz-linear-gradient(left, #f15b6c, #e10a07 100%);
-		background: -webkit-gradient(linear, left top, left right, color-stop(0, #f15b6c), color-stop(100%, #e10a07));
-		background: -webkit-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
-		background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
-		color: #fff;
-		font-size: 32upx;
-
-		&:after {
-			border-radius: 60px;
-		}
-	}
-
-	.headers {
-		text-align: center;
-	}
-
-	.headers>image {
-		width: 400upx;
-		height: 400upx;
-	}
-
-	// .footer {
-	// 	padding-left: 100upx;
-	// 	margin-top: 32upx;
-	// 	font-size: 24upx;
-	// 	color: #666666;
-	// 	text-align: center;
-	// 	display: flex;
-	// }
-
-	page {
-		background: #fff;
-	}
-
-	.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;
-		color: #FFF;
-
-		.mp_wxBox {
-			.headers {
-				margin: 35% auto 50rpx;
-				text-align: center;
-				border-radius: 60rpx;
-				width: 650rpx;
-				height: 300rpx;
-				line-height: 450rpx;
-
-				image {
-					width: 300rpx;
-					height: 300rpx;
-				}
-			}
-
-			.content {
-				text-align: center;
-			}
-
-			text {
-				display: block;
-				color: #9d9d9d;
-				margin-top: 40rpx;
-			}
-
-			.bottom {
-				line-height: 80upx;
-				border-radius: 80upx;
-				margin: 70rpx 50rpx;
-				height: 80upx;
-				font-size: 35rpx;
-			}
-		}
-	}
-
-	.wrapper {
-		position: relative;
-		z-index: 90;
-		background: #fff;
-		padding-bottom: 20px;
-	}
-
-	.input-content {
-		padding: 0 20px;
-	}
-
-	.confirm-btn {
-		width: 300px;
-		height: 42px;
-		line-height: 42px;
-		border-radius: 30px;
-		margin-top: 40px;
-		background: #00B88F;
-		color: #fff;
-		// font-size: $font-lg;
-
-		&:after {
-			border-radius: 60px;
-		}
-	}
-</style>
+<style lang="scss" scoped>
+.login-box {
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  padding: 0 32rpx;
+  padding-bottom: 180rpx;
+  box-sizing: border-box;
+}
+.logo-box {
+  flex: 1;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  image {
+    width: 160rpx;
+    height: 160rpx;
+  }
+}
+page {
+  height: 100%;
+  background: #ffffff !important;
+}
+
+/deep/.u-checkbox__label {
+  margin-right: 0rpx !important;
+}
+
+/deep/.u-checkbox {
+  padding: 0 !important;
+}
+
+.footer {
+  font-family: DM Sans;
+  font-size: 16rpx;
+  font-weight: 400;
+  letter-spacing: 0%;
+  text-align: left;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #605d67;
+  margin-top: 16rpx;
+  navigator {
+    color: #016bf6;
+  }
+  .check-box {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin-right: 16rpx;
+    image {
+      width: 24rpx;
+      height: 24rpx;
+    }
+  }
+}
+
+.container {
+  top: 0;
+  padding: 50rpx 32rpx;
+  box-sizing: border-box;
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  background: #ffffff !important;
+  color: #fff;
+}
+
+.confirm-btn-weixin {
+  width: 200px;
+  height: 42px;
+  line-height: 42px;
+  border-radius: 30px;
+  margin-top: 40upx;
+  background: -moz-linear-gradient(left, #f15b6c, #e10a07 100%);
+  background: -webkit-gradient(
+    linear,
+    left top,
+    left right,
+    color-stop(0, #f15b6c),
+    color-stop(100%, #e10a07)
+  );
+  background: -webkit-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
+  color: #fff;
+  font-size: 32upx;
+
+  &:after {
+    border-radius: 60px;
+  }
+}
+
+.confirm-btn {
+  width: 200px;
+  height: 42px;
+  line-height: 42px;
+  border-radius: 30px;
+  margin-top: 300upx;
+  background: -moz-linear-gradient(left, #f15b6c, #e10a07 100%);
+  background: -webkit-gradient(
+    linear,
+    left top,
+    left right,
+    color-stop(0, #f15b6c),
+    color-stop(100%, #e10a07)
+  );
+  background: -webkit-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
+  background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
+  color: #fff;
+  font-size: 32upx;
+
+  &:after {
+    border-radius: 60px;
+  }
+}
+
+.headers {
+  text-align: center;
+}
+
+.headers > image {
+  width: 400upx;
+  height: 400upx;
+}
+
+// .footer {
+// 	padding-left: 100upx;
+// 	margin-top: 32upx;
+// 	font-size: 24upx;
+// 	color: #666666;
+// 	text-align: center;
+// 	display: flex;
+// }
+.login-btn {
+  padding: 20rpx;
+  box-sizing: border-box;
+  border-radius: 100rpx;
+  color: rgba(255, 255, 255, 1);
+  font-family: DM Sans;
+  font-size: 32rpx;
+  font-weight: 400;
+  line-height: 44rpx;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  margin-bottom: 16rpx;
+  image {
+    width: 28rpx;
+    height: 28rpx;
+    margin-right: 20rpx;
+  }
+}
+.wechat {
+  background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+}
+.password {
+  background: rgba(1, 107, 246, 1);
+}
+.phone {
+  background: #99c4fa;
+}
+page {
+  background: #fff;
+}
+
+.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;
+  color: #fff;
+
+  .mp_wxBox {
+    .headers {
+      margin: 35% auto 50rpx;
+      text-align: center;
+      border-radius: 60rpx;
+      width: 650rpx;
+      height: 300rpx;
+      line-height: 450rpx;
+
+      image {
+        width: 300rpx;
+        height: 300rpx;
+      }
+    }
+
+    .content {
+      text-align: center;
+    }
+
+    text {
+      display: block;
+      color: #9d9d9d;
+      margin-top: 40rpx;
+    }
+
+    .bottom {
+      line-height: 80upx;
+      border-radius: 80upx;
+      margin: 70rpx 50rpx;
+      height: 80upx;
+      font-size: 35rpx;
+    }
+  }
+}
+
+.wrapper {
+  position: relative;
+  z-index: 90;
+  background: #fff;
+  padding-bottom: 20px;
+}
+
+.input-content {
+  padding: 0 20px;
+}
+
+.confirm-btn {
+  width: 300px;
+  height: 42px;
+  line-height: 42px;
+  border-radius: 30px;
+  margin-top: 40px;
+  background: #00b88f;
+  color: #fff;
+  // font-size: $font-lg;
+
+  &:after {
+    border-radius: 60px;
+  }
+}
+</style>

+ 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>

+ 4 - 0
static/images/jobApplicant/icon-next.svg

@@ -0,0 +1,4 @@
+<svg viewBox="0 0 24.0166 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24.016602" height="24.000000" opacity="0.5" fill="none">
+	<rect id="Icon - Next" width="24.000000" height="24.016939" x="0.000000" y="0.000000" fill="rgb(255,255,255)" fill-opacity="0" transform="matrix(0,1,-1,0,24.0166,0)" />
+	<path id="Vector" d="M1.06602 0.000242275C0.858221 -0.00433146 0.654156 0.0559506 0.4822 0.1728C0.310245 0.28965 0.178943 0.457292 0.10655 0.652269C0.0341566 0.847246 0.0242696 1.05992 0.0782628 1.26078C0.132256 1.46164 0.247446 1.6406 0.40782 1.77292L6.52697 7.01879L0.40782 12.2628C0.296882 12.3444 0.203973 12.448 0.134914 12.5672C0.0658542 12.6864 0.0221309 12.8186 0.00648163 12.9555C-0.00916767 13.0924 0.00359449 13.231 0.0439687 13.3627C0.084343 13.4944 0.151459 13.6164 0.241115 13.721C0.330771 13.8255 0.441035 13.9103 0.565001 13.9703C0.688968 14.0302 0.823967 14.0639 0.961543 14.0692C1.09912 14.0745 1.23631 14.0514 1.36452 14.0012C1.49274 13.951 1.60921 13.8749 1.70665 13.7775L8.71252 7.77909C8.82254 7.68513 8.91088 7.56852 8.97146 7.43709C9.03204 7.30566 9.06341 7.16261 9.06341 7.01787C9.06341 6.87313 9.03204 6.73008 8.97146 6.59865C8.91088 6.46722 8.82254 6.35049 8.71252 6.25654L1.70665 0.252327C1.52967 0.0950184 1.30267 0.00558464 1.06602 1.14283e-05L1.06602 0.000242275Z" fill="rgb(23,23,37)" fill-rule="evenodd" transform="matrix(0,1,-1,0,19.043,7.46826)" />
+</svg>

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


+ 14 - 0
static/images/jobApplicant/radio.svg

@@ -0,0 +1,14 @@
+<svg viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.000000" height="15.000000" fill="none" customFrame="#000000">
+	<defs>
+		<clipPath id="clipPath_0">
+			<rect width="8.750000" height="8.750000" x="3.125000" y="3.125000" fill="rgb(255,255,255)" />
+		</clipPath>
+	</defs>
+	<rect id="check" width="15.000000" height="15.000000" x="0.000000" y="0.000000" />
+	<circle id="bg" cx="7.5" cy="7.5" r="7.5" fill="rgb(255,255,255)" />
+	<circle id="bg" cx="7.5" cy="7.5" r="7" stroke="rgb(0,0,0)" stroke-opacity="0.100000001" stroke-width="1" />
+	<g id="check" opacity="0" clip-path="url(#clipPath_0)" customFrame="url(#clipPath_0)">
+		<rect id="check" width="8.750000" height="8.750000" x="3.125000" y="3.125000" opacity="0" />
+		<path id="Vector" d="M4.94824 7.50016L6.77116 9.32308L10.417 5.67725" fill-rule="evenodd" stroke="rgb(255,255,255)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" />
+	</g>
+</svg>

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