|
|
@@ -1,81 +1,107 @@
|
|
|
<template>
|
|
|
<view class="join">
|
|
|
<view class="banner">
|
|
|
- <image src="/static/other/banner.png" mode=""></image>
|
|
|
+ <image src="/static/login/banner.png" mode=""></image>
|
|
|
</view>
|
|
|
<view class="top">
|
|
|
+ <view v-if="ShopInfo" class="checkBox" :style="{
|
|
|
+ borderColor: ShopInfo.auditStatus == 1 ? '#F76560' : '#FF7D00',
|
|
|
+ color: ShopInfo.auditStatus === 1 ? '#F53F3F' : '#FF7D00', background: status === 1 ? '#FFF5F5' : '#FFF8EC'
|
|
|
+ }">
|
|
|
+ <view class="checkStatus">审核中</view>
|
|
|
+ <view class="text">入驻审核中,审核结果将会在9个工作日通知您</view>
|
|
|
+ </view>
|
|
|
+ <view class="title">
|
|
|
+ <view class="lineIcon">
|
|
|
+ <image src="/static/login/lineIcon.png" mode=""></image>
|
|
|
+ </view>
|
|
|
+ <view style="position: relative;">申请入驻</view>
|
|
|
+
|
|
|
+ </view>
|
|
|
<view class="content">
|
|
|
- <view class="page-section">
|
|
|
- <view class="name">您的姓名</view>
|
|
|
- <view class="inp">
|
|
|
- <!-- <input class="weui-input" v-model="form.cName" placeholder="请输入姓名,最多四个字" /> -->
|
|
|
- <u-input v-model="form.cName" :type="type" placeholder="输入您的姓名" maxlength='4' />
|
|
|
- </view>
|
|
|
+ <view class="input-box">
|
|
|
+ <u-input v-model="form.teName" border="none" placeholder="输入真实姓名" class="input-item"
|
|
|
+ placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;">
|
|
|
+ <template slot="prefix">
|
|
|
+ <view class="label">
|
|
|
+ <text>姓名</text>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </u-input>
|
|
|
</view>
|
|
|
- <view class="page-section">
|
|
|
- <view class="name">您的性别</view>
|
|
|
- <u-radio-group v-model="form.nSex">
|
|
|
- <u-radio v-for="(item, index) in sex" :key="index"
|
|
|
- :name="item.value" :label="item.label"
|
|
|
- :customStyle="{ margin: '0 12rpx' }"
|
|
|
- />
|
|
|
+ <view class="input-box service">
|
|
|
+ <view class="label">性别</view>
|
|
|
+ <u-radio-group v-model="form.teSex">
|
|
|
+ <u-radio activeColor="#333335" v-for="(item, index) in sex" :key="index" :name="item.value"
|
|
|
+ :label="item.label" :customStyle="{ margin: '0 12rpx' }" />
|
|
|
</u-radio-group>
|
|
|
</view>
|
|
|
- <view class="page-section">
|
|
|
- <view class="name">手机号:</view>
|
|
|
- <view class="inp">
|
|
|
- <!-- <input class="weui-input" v-model="form.cPhone" placeholder="请输入手机号" /> -->
|
|
|
- <u-input v-model="form.cPhone" placeholder="请输入手机号" maxlength='11' />
|
|
|
- </view>
|
|
|
+
|
|
|
+
|
|
|
+ <view class="input-box">
|
|
|
+ <u-input v-model="form.tePhone" border="none" maxlength='11' placeholder="请输入手机号" class="input-item"
|
|
|
+ placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;">
|
|
|
+ <template slot="prefix">
|
|
|
+ <view class="label">
|
|
|
+ <text>手机号</text>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </u-input>
|
|
|
</view>
|
|
|
<view class="input-box">
|
|
|
- <u-input
|
|
|
- v-model="code"
|
|
|
- type="number"
|
|
|
- maxlength="6"
|
|
|
- placeholder="请输入手机验证码"
|
|
|
- placeholder-style="color: #999"
|
|
|
- class="input-item code-input"
|
|
|
- ></u-input>
|
|
|
+ <u-input v-model="form.phoneMsg" type="number" border="none" maxlength="6" placeholder="输入短信验证码"
|
|
|
+ placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;margin-right: 42rpx;"
|
|
|
+ class="input-item code-input">
|
|
|
+ <template slot="prefix">
|
|
|
+ <view class="label">
|
|
|
+ <text>验证码</text>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </u-input>
|
|
|
<view class="code-btn" :class="{ disabled: !canGetCode }" @click="getCode">
|
|
|
- <text v-if="countdown === 60">获取验证码</text>
|
|
|
- <text v-else>{{ countdown }}s 后重新获取</text>
|
|
|
+ <text v-if="!CodeSendNum" @click="getCode">发送验证码</text>
|
|
|
+ <view v-else>
|
|
|
+ <text v-if="startCountdownFlag">{{ countdown }}s</text>
|
|
|
+ <text @click="agginGetCode">重新获取</text>
|
|
|
+ </view>
|
|
|
+ <!-- <text v-if="countdown === 60">发送验证码</text>
|
|
|
+ <text v-else>{{ countdown }}s 后重新获取</text> -->
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="page-section">
|
|
|
- <view class="name">合作意向城市</view>
|
|
|
+
|
|
|
+ <view class="input-box">
|
|
|
+ <view class="label" style="width: 50%;">合作意向城市</view>
|
|
|
<view class="inp select" @click="show = true">
|
|
|
- <text>{{form.city}}</text>
|
|
|
- <img src="/static/identify/down.png" alt="" />
|
|
|
- <!-- <view class="city" @click="selectCity" v-if="form.city == ''">
|
|
|
- 入驻城市
|
|
|
- </view>
|
|
|
- <view class="city" @click="selectCity" v-else>
|
|
|
- {{form.city}}
|
|
|
- </view> -->
|
|
|
- <!-- <view class="city" v-if="form.city == ''">
|
|
|
- 选择所在城市(自动定位)
|
|
|
- </view> -->
|
|
|
- <!-- <view class="city" v-else @click="goCity"> -->
|
|
|
- <!-- <view class="city" v-else>
|
|
|
- {{form.city}}市
|
|
|
- </view> -->
|
|
|
- <!-- <input class="weui-input" v-model="form.cNickName" placeholder="请输入昵称" /> -->
|
|
|
- <!-- <u-input v-model="form.cNickName" :type="type" placeholder="请输入昵称" maxlength = '4'/> -->
|
|
|
+ <view class="text" :style="{ color: form.teAddress ? '#4E5969Z' : '#C9CDD4' }">{{ form.teAddress
|
|
|
+ || '选择城市' }}</view>
|
|
|
+ <img src="/static/login/arrowIcon.png" alt="" />
|
|
|
</view>
|
|
|
- <u-picker :show="show" :columns="[cityList]" keyName="label"
|
|
|
- @cancel="show = false" @confirm="onSelect"
|
|
|
- ></u-picker>
|
|
|
+
|
|
|
+ <u-popup :show="show" mode="bottom" border-radius="16rpx 16rpx 0 0"
|
|
|
+ :style="{ height: '600rpx', zIndex: 9999,}">
|
|
|
+
|
|
|
+ <u-picker :show="show" confirmColor="#fff" title="合作意向城市" :columns="[cityList]" keyName="label"
|
|
|
+ :style="{ zIndex: 0, }" @confirm="onSelect" @cancel="cancel"></u-picker>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
- <view class="page-section">
|
|
|
- <view class="name">开通服务</view>
|
|
|
- <u-radio-group v-model="form.serveType">
|
|
|
- <u-radio v-for="(item, index) in serveArr" :key="index"
|
|
|
- :name="item.value" :label="item.label"
|
|
|
- :customStyle="{ margin: '0 12rpx' }"
|
|
|
- />
|
|
|
+ <view class="input-box service">
|
|
|
+ <view class="label">开通服务</view>
|
|
|
+ <u-radio-group v-model="form.openService">
|
|
|
+ <u-radio activeColor="#333335" v-for="(item, index) in serveArr" :key="index"
|
|
|
+ :name="item.dictValue" :label="item.dictLabel" :customStyle="{ fontSize: '20rpx' }" />
|
|
|
</u-radio-group>
|
|
|
</view>
|
|
|
+
|
|
|
+ <!-- <view class="page-section">
|
|
|
+ <view class="name">合作意向城市</view>
|
|
|
+ <view class="inp select" @click="show = true">
|
|
|
+ <text>{{ form.teAddress }}</text>
|
|
|
+ <img src="/static/identify/down.png" alt="" />
|
|
|
+ </view>
|
|
|
+ <u-picker :show="show" :columns="[cityList]" keyName="label" @cancel="show = false"
|
|
|
+ @confirm="onSelect"></u-picker>
|
|
|
+ </view> -->
|
|
|
+
|
|
|
<!-- <view class="page-section">
|
|
|
<view class="name">您所在的位置:</view>
|
|
|
<view class="weui-cells weui-cells_after-title location" @click="getAddress">
|
|
|
@@ -85,45 +111,88 @@
|
|
|
</view> -->
|
|
|
<view class="updata" style="border:0;">
|
|
|
<view class="name">工作形象照</view>
|
|
|
-
|
|
|
+
|
|
|
<view class="images">
|
|
|
- <Upload
|
|
|
- :maxCount="2"
|
|
|
- @fileList="onUpload($event, 'cImgList')"
|
|
|
- />
|
|
|
+ <Upload :maxImageSize=2097152 :maxCount="2" :width="80" :height="80" :fileList="avatarList"
|
|
|
+ @fileList="onUpload($event)" />
|
|
|
</view>
|
|
|
<view class="title">
|
|
|
- 请上传本人近期照片,图片大小不超过10M (建议清晰正脸照)
|
|
|
+ 请上传本人2张近期照片,图片大小不超过2M(建议清晰正脸照)
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <view class="submits">
|
|
|
-
|
|
|
- <view class="btn" @click="submit">
|
|
|
- 提交
|
|
|
- </view>
|
|
|
- <text>平台不会通过任何渠道泄漏你的个人信息,请放心输入</text>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ <view class="submits">
|
|
|
+
|
|
|
+ <view class="btn" @click="submit">
|
|
|
+ 提交
|
|
|
</view>
|
|
|
+ <text>平台不会通过任何渠道泄漏你的个人信息,请放心输入</text>
|
|
|
</view>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 图形验证码弹窗 -->
|
|
|
+ <u-popup :show="showCaptcha" mode="center" border-radius="12">
|
|
|
+ <view class="captcha-box">
|
|
|
+ <view class="captcha-title">
|
|
|
+ <view>请输入下方图形验证码</view>
|
|
|
+ <u-icon custom-style="position: relative;left:90rpx ;" name="close" color="#C9CDD4" size="20"
|
|
|
+ @click="showCaptcha = false"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view style="padding: 0 48rpx;margin-top: 48rpx;">
|
|
|
+ <view
|
|
|
+ style="display: flex;justify-content: space-between;height: 106rpx;border-bottom: 1rpx solid #E7E7E7;">
|
|
|
+
|
|
|
+ <!-- 验证码输入框,唤起全字符键盘 -->
|
|
|
+ <u-input v-model="imgCode" placeholder="请输入图形验证码" :focus="showCaptcha" type="text" maxlength="4"
|
|
|
+ border="none"
|
|
|
+ placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;"></u-input>
|
|
|
+ <!-- 图形验证码图片,点击刷新 -->
|
|
|
+ <image :src="captchaImg" @click="refreshCaptcha" class="captcha-img"></image>
|
|
|
+ </view>
|
|
|
+ <view class="text">看不清? 换一张</view>
|
|
|
+ <u-button class="submitImgCode" @click="submitImgCode" block>确定</u-button>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+
|
|
|
import {
|
|
|
- getInfo,
|
|
|
- getCityList,
|
|
|
+ getCityList, technicianApply, sendMsg, getServiceCategoryList, getTechnician
|
|
|
} from '@/api/index';
|
|
|
import {
|
|
|
- netStaffAdd,
|
|
|
-} from '@/api/staff';
|
|
|
+ captchaImage
|
|
|
+} from '@/api/newLogin';
|
|
|
+
|
|
|
import Upload from '@/components/upload/index.vue';
|
|
|
export default {
|
|
|
components: {
|
|
|
Upload
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ canGetCode() {
|
|
|
+ return !this.isSendingCode && this.countdown === 60
|
|
|
+ },
|
|
|
+ // canBind() {
|
|
|
+ // return this.phoneMsg && this.phoneMsg.length === 6 && !this.isBinding
|
|
|
+ // }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
+ status: 1,
|
|
|
+ imgCode: '', // 用户填写的图形验证码
|
|
|
+ captchaImg: '', // 图形验证码图片地址
|
|
|
+ captchaKey: '', // 后端返回验证码标识
|
|
|
+ showCaptcha: false,
|
|
|
+ startCountdownFlag: false,
|
|
|
+ timer: null,
|
|
|
+ isSendingCode: false,
|
|
|
countdown: 60,
|
|
|
cityList: [],
|
|
|
show: false,
|
|
|
@@ -141,157 +210,272 @@ export default {
|
|
|
}
|
|
|
],
|
|
|
serveArr: [
|
|
|
- {
|
|
|
- value: 1,
|
|
|
- label: '上门按摩'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 0,
|
|
|
- label: '同城陪玩'
|
|
|
- }
|
|
|
+ // {
|
|
|
+ // value: 1,
|
|
|
+ // label: '上门按摩'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 2,
|
|
|
+ // label: '同城陪玩'
|
|
|
+ // }
|
|
|
],
|
|
|
+ avatarList: [],
|
|
|
+ CodeSendNum: 0,
|
|
|
form: {
|
|
|
- id: '',
|
|
|
- cName: '',
|
|
|
- cNickName: '',
|
|
|
- cPortrait: '',
|
|
|
- cPhone: '',
|
|
|
- cJianjie: '',
|
|
|
- nSex: 0,
|
|
|
- serveType:0,
|
|
|
- cSfzImg: [],
|
|
|
- cImgList: [],
|
|
|
- latitude: '',
|
|
|
- longitude: '',
|
|
|
- name: '0',
|
|
|
- address: '',
|
|
|
- cOpenId: '',
|
|
|
- cBhList: '',
|
|
|
- city: '请选择'
|
|
|
+ teAreaCode: '',
|
|
|
+ cOpenid: uni.getStorageSync('wx_copenid'),
|
|
|
+ teName: '',
|
|
|
+ //cNickName: '',
|
|
|
+ //cPortrait: '',
|
|
|
+ tePhone: '',
|
|
|
+ phoneMsg: '',
|
|
|
+ //cJianjie: '',
|
|
|
+ teSex: null,
|
|
|
+ openService: null,
|
|
|
+ //cSfzImg: [],
|
|
|
+ avatar: '',
|
|
|
+ //latitude: '',
|
|
|
+ //longitude: '',
|
|
|
+ //name: '0',
|
|
|
+ //cOpenId: '',
|
|
|
+ //cBhList: '',
|
|
|
+ teAddress: ''
|
|
|
},
|
|
|
token: '',
|
|
|
+ uuid: '',
|
|
|
+ ShopInfo: {}
|
|
|
}
|
|
|
},
|
|
|
- onLoad() {
|
|
|
+ onLoad(options) {
|
|
|
+ if (options.ShopInfo) this.ShopInfo = JSON.parse(options.ShopInfo)
|
|
|
this.isLogin = !!uni.getStorageSync('access-token');
|
|
|
},
|
|
|
onShow() {
|
|
|
- this.getinfo()
|
|
|
- this.getCity()
|
|
|
+ //this.getServiceCategoryList()
|
|
|
+ //this.getCity()
|
|
|
|
|
|
+ //this.getinfo()
|
|
|
// let city = uni.getStorageSync('selectCity')
|
|
|
// let lastCity = city.charAt(city.length - 1)
|
|
|
// lastCity == '市' ? this.form.city = city.slice(0, -1) : this.form.city = city
|
|
|
// this.form.city = uni.getStorageSync('selectCity')
|
|
|
},
|
|
|
methods: {
|
|
|
- // upload事件
|
|
|
- onUpload(e, t) {
|
|
|
- this.form[t] = e.map(item => item.url);
|
|
|
+ //查询商户信息 auditStatus 审核状态:-1-申请入住,0-待入驻,1-待审核,2-审核通过,3-审核驳回"
|
|
|
+ getTechnicianFun() {
|
|
|
+ let openid = uni.getStorageSync('wx_copenid')
|
|
|
+ getTechnician({ openid: openid }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ if (!res.data.result) return
|
|
|
+ this.ShopInfo = res.data.result
|
|
|
+
|
|
|
+ if (res.data.result.auditStatus == -1) {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/join/staff'
|
|
|
+ })
|
|
|
+ } else if (res.data.result.auditStatus == 0) {
|
|
|
+ let str = uni.$u.queryParams(res.data.result)
|
|
|
+ uni.navigateTo({ url: `/pages/join/staff${str}` })
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
- goCity() {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/identify/city?type=' + 'indent'
|
|
|
+ //图形验证码提交
|
|
|
+ submitImgCode() {
|
|
|
+ if (!this.imgCode) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请输入验证码',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sendMsg33333({ uuid: this.uuid, imgCode: this.imgCode }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.showCaptcha = false
|
|
|
+ this.getCode()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ //查询开通服务接口
|
|
|
+ getServiceCategoryList() {
|
|
|
+ getServiceCategoryList('service_tag').then(res => {
|
|
|
+ this.serveArr = res.data.data
|
|
|
+ console.log(this.serveArr)
|
|
|
})
|
|
|
},
|
|
|
- getAddress() {
|
|
|
- uni.chooseLocation({
|
|
|
- success: res => {
|
|
|
- this.form.name = res.name;
|
|
|
- this.form.latitude = res.latitude;
|
|
|
- this.form.longitude = res.longitude;
|
|
|
- // this.form.address = res.address
|
|
|
+ //重新获取验证码
|
|
|
+ agginGetCode() {
|
|
|
+ if (!this.form.tePhone) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请输入手机号',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请输入正确的手机号',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ captchaImage().then(res => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.uuid = res.data.uuid
|
|
|
}
|
|
|
- });
|
|
|
+ })
|
|
|
+ this.showCaptcha = true
|
|
|
+
|
|
|
},
|
|
|
- getinfo() {
|
|
|
- getInfo().then(res => {
|
|
|
+ //获取验证码
|
|
|
+ getCode() {
|
|
|
+ if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请输入正确的手机号',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.isSendingCode || this.countdown < 60) return
|
|
|
+
|
|
|
+ this.isSendingCode = true
|
|
|
+ sendMsg({ phone: this.form.tePhone }).then(res => {
|
|
|
+ console.log(res)
|
|
|
if (res.data.code == 200) {
|
|
|
- this.isLogin = true
|
|
|
- // this.info = res.data.data,
|
|
|
- // this.dBalance = res.data.data.dBalance.toFixed(2)
|
|
|
- } else if (res.data.code == 401) {
|
|
|
- uni.showModal({
|
|
|
- title: '请先登录!',
|
|
|
- success: (res) => {
|
|
|
- if (res.confirm) {
|
|
|
- uni.switchTab({
|
|
|
- url: '/pages/my/my'
|
|
|
- })
|
|
|
- } else if (res.cancel) {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
+ uni.showToast({
|
|
|
+ title: '验证码已发送',
|
|
|
+ icon: 'none'
|
|
|
})
|
|
|
+ this.CodeSendNum = 1
|
|
|
+
|
|
|
+ this.startCountdown()
|
|
|
+ this.isSendingCode = false
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.msg,
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
})
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ startCountdown() {
|
|
|
+ this.startCountdownFlag = true
|
|
|
+ this.countdown = 60
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ this.countdown--
|
|
|
+ if (this.countdown <= 0) {
|
|
|
+ clearInterval(this.timer)
|
|
|
+ this.startCountdownFlag = false
|
|
|
+ //this.countdown = 60
|
|
|
+ this.timer = null
|
|
|
+ }
|
|
|
+ }, 1000)
|
|
|
+ },
|
|
|
+
|
|
|
+ // upload事件
|
|
|
+ onUpload(e) {
|
|
|
+ this.avatarList = e;
|
|
|
},
|
|
|
//提交
|
|
|
submit() {
|
|
|
+ console.log(this.avatarList, 'avatarList')
|
|
|
+ console.log(this.form)
|
|
|
// var openids = uni.getStorageSync('wx_copenid')
|
|
|
// this.form.cOpenId = openids
|
|
|
// this.form.cAddress =this.form.cAddress
|
|
|
// this.form.cSfzImg = this.idCard
|
|
|
// that.data.form.cBhList = that.data.form.cBhList.join(", ")
|
|
|
- if (this.form.cName == '') {
|
|
|
+ if (this.form.teName == '') {
|
|
|
uni.showToast({
|
|
|
title: '请输入您的姓名',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- if (!/^1[3456789]\d{9}$/.test(this.form.cPhone)) {
|
|
|
+ if (this.form.teSex === null) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请选择您的性别',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
|
|
|
uni.showToast({
|
|
|
title: '请输入正确的手机号',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
- if (this.form.city == '') {
|
|
|
+
|
|
|
+ if (this.form.phoneMsg == '') {
|
|
|
uni.showToast({
|
|
|
- title: '请选择所在城市',
|
|
|
+ title: '请输入验证码',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
return
|
|
|
}
|
|
|
- if (this.form.cImgList.length < 1) {
|
|
|
+ if (this.form.teAddress == '') {
|
|
|
uni.showToast({
|
|
|
- title: '最少上传一张生活照片',
|
|
|
+ title: '请选择城市',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!this.form.openService) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '请选择开通服务',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.avatarList.length) {
|
|
|
+ this.form.avatar = this.avatarList.map(item => item.url).join(',')
|
|
|
+ }
|
|
|
+ if (this.avatarList.length < 1) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '最少上传一张工作形象照',
|
|
|
icon: 'none'
|
|
|
});
|
|
|
return
|
|
|
} else {
|
|
|
- netStaffAdd(this.form).then(res => {
|
|
|
+ technicianApply(this.form).then(res => {
|
|
|
if (res.data.code == 200) {
|
|
|
+ uni.setStorageSync('wx_phone', this.form.tePhone)
|
|
|
uni.showToast({
|
|
|
- title: "申请成功",
|
|
|
- })
|
|
|
- setTimeout(() => {
|
|
|
- uni.navigateBack()
|
|
|
- }, 1000)
|
|
|
- } else if (res.data.code == 401) {
|
|
|
- uni.showModal({
|
|
|
- title: '请先登录!',
|
|
|
- success: (res) => {
|
|
|
- if (res.confirm) {
|
|
|
- uni.switchTab({
|
|
|
- url: '/pages/my/my'
|
|
|
- })
|
|
|
- } else if (res.cancel) {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ title: res.data.message,
|
|
|
+ icon: 'none'
|
|
|
})
|
|
|
+ this.getTechnicianFun()
|
|
|
+
|
|
|
} else {
|
|
|
uni.showToast({
|
|
|
- title: res.data.msg,
|
|
|
+ title: res.msg,
|
|
|
icon: 'none'
|
|
|
- })
|
|
|
+ });
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
+ //获取城市
|
|
|
getCity() {
|
|
|
getCityList().then(res => {
|
|
|
this.cityList = res.data.data.map(({
|
|
|
@@ -306,25 +490,167 @@ export default {
|
|
|
selectCity() {
|
|
|
this.show = true
|
|
|
},
|
|
|
+ cancel() {
|
|
|
+ console.log('cancel')
|
|
|
+ this.show = false
|
|
|
+ },
|
|
|
onSelect(e) {
|
|
|
- this.form.city = e.value[0].label
|
|
|
- this.form.deptId = e.value[0].value
|
|
|
+ console.log(e)
|
|
|
+ if (!e.value[0]) return
|
|
|
+ this.form.teAddress = e.value[0].label
|
|
|
+ this.form.teAreaCode = e.value[0].value
|
|
|
+ //this.form.deptId = e.value[0].value
|
|
|
this.show = false
|
|
|
},
|
|
|
+ // goCity() {
|
|
|
+ // uni.navigateTo({
|
|
|
+ // url: '/pages/identify/city?type=' + 'indent'
|
|
|
+ // })
|
|
|
+ // },
|
|
|
+ // getAddress() {
|
|
|
+ // uni.chooseLocation({
|
|
|
+ // success: res => {
|
|
|
+ // this.form.name = res.name;
|
|
|
+ // this.form.latitude = res.latitude;
|
|
|
+ // this.form.longitude = res.longitude;
|
|
|
+ // // this.form.address = res.address
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+
|
|
|
},
|
|
|
mounted() {
|
|
|
this.token = uni.getStorageSync('access-token'); // 假设token保存在本地缓存中
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ if (this.timer) {
|
|
|
+ clearInterval(this.timer)
|
|
|
+ this.timer = null
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+::v-deep .u-picker {
|
|
|
+ bottom: 136rpx;
|
|
|
+ background-color: #ffffff;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .u-toolbar__cancel__wrapper {
|
|
|
+ width: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+ position: absolute;
|
|
|
+ right: 32rpx;
|
|
|
+ background-image: url('/static/login/closeIcon.png');
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+
|
|
|
+ .u-toolbar__wrapper__cancel {
|
|
|
+ width: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+
|
|
|
+ span {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/* 关键:穿透隐藏原生 toolbar,只留插槽内容 */
|
|
|
+.u-toolbar {
|
|
|
+ z-index: 9999 !important;
|
|
|
+ display: block !important;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .u-toolbar__cancel__wrapper {
|
|
|
+ color: #666;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .u-toolbar__confirm__wrapper {
|
|
|
+ position: fixed;
|
|
|
+ bottom: 0;
|
|
|
+ width: 100%;
|
|
|
+ padding: 24rpx 48rpx;
|
|
|
+
|
|
|
+ .u-toolbar__wrapper__confirm {
|
|
|
+ width: 654rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ background: #333335;
|
|
|
+ border-radius: 60rpx 60rpx 60rpx 60rpx;
|
|
|
+
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.captcha-box {
|
|
|
+ width: 622rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
|
|
|
+
|
|
|
+ .captcha-title {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #333333;
|
|
|
+ text-align: center;
|
|
|
+ padding: 32rpx 0;
|
|
|
+ border-bottom: 1rpx solid #E7E7E7;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .captcha-img {
|
|
|
+ //width: 100%;
|
|
|
+ width: 200rpx;
|
|
|
+ height: 106rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .submitImgCode {
|
|
|
+ width: 526rpx;
|
|
|
+ height: 80rpx;
|
|
|
+ background: linear-gradient(263deg, #45FFD7 0%, #7FFFBD 100%);
|
|
|
+ border-radius: 60rpx 60rpx 60rpx 60rpx;
|
|
|
+ margin-top: 48rpx;
|
|
|
+
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #1D2129;
|
|
|
+ text-align: center;
|
|
|
+ margin-bottom: 48rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #86909C;
|
|
|
+ text-align: right;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .u-input {}
|
|
|
+}
|
|
|
+
|
|
|
.join {
|
|
|
- min-height: 100vh;
|
|
|
+ height: 105vh;
|
|
|
+ overflow: auto;
|
|
|
+
|
|
|
+ background-color: #F7F8FA;
|
|
|
|
|
|
.banner {
|
|
|
width: 100%;
|
|
|
- height: 424rpx;
|
|
|
+ height: 304rpx;
|
|
|
|
|
|
image {
|
|
|
width: 100%;
|
|
|
@@ -333,122 +659,267 @@ export default {
|
|
|
}
|
|
|
|
|
|
.top {
|
|
|
- width: 100%;
|
|
|
- height: 100px;
|
|
|
+ margin: 0 32rpx;
|
|
|
+ position: relative;
|
|
|
padding: 32rpx;
|
|
|
box-sizing: border-box;
|
|
|
- margin-top: 44rpx;
|
|
|
- background-color: #FDFDFD;
|
|
|
+ margin-top: -42rpx;
|
|
|
+ background-color: #FFF;
|
|
|
+ border-radius: 16rpx;
|
|
|
+
|
|
|
+ .checkBox {
|
|
|
+ padding: 24rpx;
|
|
|
+ width: 622rpx;
|
|
|
+ height: 134rpx;
|
|
|
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
|
+ border: 1rpx solid #111111;
|
|
|
+ margin-bottom: 32rpx;
|
|
|
+
|
|
|
+ //color: #FF7D00;
|
|
|
+ .checkStatus {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 30rpx;
|
|
|
+
|
|
|
+ text-align: left;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ margin-top: 8rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 26rpx;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .title {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 36rpx;
|
|
|
+ color: #1D2129;
|
|
|
+ line-height: 36rpx;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .lineIcon {
|
|
|
+ position: absolute;
|
|
|
+ top: 10rpx;
|
|
|
+ width: 130rpx;
|
|
|
+ height: 24rpx;
|
|
|
+
|
|
|
+ image {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
.content {
|
|
|
width: 100%;
|
|
|
height: auto;
|
|
|
- padding: 24rpx 32rpx;
|
|
|
box-sizing: border-box;
|
|
|
- background: #FFFFFF;
|
|
|
box-shadow: 0 4rpx 12rpx 0 rgba(209, 168, 88, 0.1);
|
|
|
border-radius: 24rpx;
|
|
|
|
|
|
- .page-section {
|
|
|
- width: 100%;
|
|
|
- font-size: 28rpx;
|
|
|
- margin-bottom: 32rpx;
|
|
|
+ .input-box {
|
|
|
+ width: 622rpx;
|
|
|
+ height: 110rpx;
|
|
|
+ background: #ffffff00 !important;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ border-bottom: 1rpx solid #E7E7E7;
|
|
|
|
|
|
- .name {
|
|
|
- width: 31%;
|
|
|
- margin-bottom: 20rpx;
|
|
|
+
|
|
|
+ .u-input {
|
|
|
+ background: #ffffff00 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .label {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #1D2129;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input-item {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .captcha-img {
|
|
|
+ width: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
}
|
|
|
|
|
|
+ ::v-deep .uni-input-input {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #4E5969;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .code-input {
|
|
|
+ margin-right: 42rpx;
|
|
|
+ border: 1px solid re;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .code-btn {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #19D29B;
|
|
|
+ text-align: center;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ // .name {
|
|
|
+ // width: 31%;
|
|
|
+ // margin-bottom: 20rpx;
|
|
|
+ // }
|
|
|
+
|
|
|
.inp {
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
- .select{
|
|
|
+ .select {
|
|
|
width: 100%;
|
|
|
- padding: 12rpx 18rpx;
|
|
|
- border-radius: 8rpx;
|
|
|
- border: 2rpx solid #dadbde;
|
|
|
+
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
|
- text {
|
|
|
- width: auto;
|
|
|
- color: #333333;
|
|
|
+ .text {
|
|
|
+ font-weight: 400;
|
|
|
font-size: 30rpx;
|
|
|
+ text-align: right;
|
|
|
}
|
|
|
|
|
|
img {
|
|
|
- width: 24rpx;
|
|
|
- height: 24rpx;
|
|
|
+ width: 22rpx;
|
|
|
+ height: 22rpx;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- }.code-box {
|
|
|
+ }
|
|
|
|
|
|
- .code-btn {
|
|
|
- width: 200rpx;
|
|
|
- text-align: right;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #2DB1A8;
|
|
|
- line-height: 88rpx;
|
|
|
+ .page-section {
|
|
|
+ width: 100%;
|
|
|
+ font-size: 28rpx;
|
|
|
+ height: 106rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
|
|
|
- &.disabled {
|
|
|
- color: #2DB1A8;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .input-box {
|
|
|
- width:100%;
|
|
|
- height: 92rpx;
|
|
|
- background: #FFFFFF;
|
|
|
- border-radius: 24rpx;
|
|
|
- margin: 46rpx auto;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .service {
|
|
|
+ /* 普通中文/英文自动换行 */
|
|
|
+ word-wrap: break-word;
|
|
|
+ word-break: break-all;
|
|
|
+ white-space: normal;
|
|
|
+
|
|
|
+ .u-radio-group--row {
|
|
|
display: flex;
|
|
|
- align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ /* 放不下自动换行 */
|
|
|
+ gap: 10px;
|
|
|
+ /* 间距,可选 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .u-radio {
|
|
|
+ /* 减去3个gap宽度,均分4份 */
|
|
|
+ // width: calc((100% - 2 * 12px) / 3);
|
|
|
+ // box-sizing: border-box;
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep .u-radio__text {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #f10000;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .code-box {
|
|
|
|
|
|
- .input-item {
|
|
|
- width: 100rpx;
|
|
|
+ .code-btn {
|
|
|
+ width: 200rpx;
|
|
|
+ text-align: right;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #2DB1A8;
|
|
|
+ line-height: 88rpx;
|
|
|
+
|
|
|
+ &.disabled {
|
|
|
+ color: #2DB1A8;
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
.updata {
|
|
|
- margin-top: 20rpx;
|
|
|
+ margin-top: 32rpx;
|
|
|
width: 100%;
|
|
|
- font-size: 28rpx;
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #1D2129;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
|
|
|
.images {
|
|
|
- margin-top: 20rpx;
|
|
|
+ border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
|
+ margin-top: 16rpx;
|
|
|
}
|
|
|
- .title{
|
|
|
- font-size: 22rpx;
|
|
|
- color: #999999;
|
|
|
+
|
|
|
+ .title {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #86909C;
|
|
|
+ text-align: justified;
|
|
|
+ overflow: hidden;
|
|
|
+ // text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- .submits {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .submits {
|
|
|
+ padding: 24rpx 48rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ position: fixed;
|
|
|
+ bottom: 0;
|
|
|
+ width: 100%;
|
|
|
+ margin-top: 28rpx;
|
|
|
+
|
|
|
+ text {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 22rpx;
|
|
|
+ color: #86909C;
|
|
|
+
|
|
|
+ display: block;
|
|
|
width: 100%;
|
|
|
- margin-top: 28rpx;
|
|
|
- text{
|
|
|
- display: block;
|
|
|
- width: 100%;
|
|
|
- text-align: center;
|
|
|
- font-size: 22rpx;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
- .btn {
|
|
|
- width: 100%;
|
|
|
- height: 84rpx;
|
|
|
- text-align: center;
|
|
|
- background: linear-gradient(90deg, #BFA061 0%, #BD9961 100%);
|
|
|
- border-radius: 14rpx;
|
|
|
- margin: 16rpx auto;
|
|
|
- line-height: 84rpx;
|
|
|
- color: #ffffff;
|
|
|
- }
|
|
|
+ margin-top: 10rpx;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ width: 654rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ background: #333335;
|
|
|
+ border-radius: 60rpx 60rpx 60rpx 60rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
}
|
|
|
}
|
|
|
}
|