学员端小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
7.6 KiB

1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
9 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
11 months ago
11 months ago
9 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
  1. <template>
  2. <view class="pageBgImg">
  3. <topNavbar :title="title"></topNavbar>
  4. <view class="pad">
  5. <view class="card">
  6. <view class="row">
  7. <view class="lab">证件类型</view>
  8. <view class="rightCon">
  9. <view class="val" @click="showType=true">
  10. <input v-model="form.typeName" placeholder="请选择" class="input1" style="pointer-events: none;" disabled/></input>
  11. </view>
  12. <view class="icon">
  13. <u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  14. </view>
  15. </view>
  16. </view>
  17. <view class="" v-if="form.value!=1">
  18. <!-- <view class="row" v-if="form.value==7">
  19. <view class="lab">国籍</view>
  20. <view class="rightCon">
  21. <view class="val">
  22. <input v-model="form.nationality" placeholder="请选择" @click="showType=true" disabled/></input>
  23. </view>
  24. <view class="icon">
  25. <u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  26. </view>
  27. </view>
  28. </view> -->
  29. <view class="row">
  30. <view class="lab">证件号码</view>
  31. <view class="rightCon">
  32. <view class="val">
  33. <input v-model="form.idcard" placeholder="请输入" /></input>
  34. </view>
  35. </view>
  36. </view>
  37. <view class="row">
  38. <view class="lab">真实姓名</view>
  39. <view class="rightCon">
  40. <view class="val">
  41. <input v-model="form.name" placeholder="请输入" /></input>
  42. </view>
  43. </view>
  44. </view>
  45. <view class="row">
  46. <view class="lab">性别</view>
  47. <view class="rightCon">
  48. <u-radio-group v-model="form.sex">
  49. <u-radio shape="circle" label="男" name="1"></u-radio>
  50. <u-radio shape="circle" label="女" name="2" style="margin-left: 54rpx;"></u-radio>
  51. </u-radio-group>
  52. </view>
  53. </view>
  54. <view class="row">
  55. <view class="lab">户籍地址</view>
  56. <view class="rightCon">
  57. <view class="val">
  58. <input v-model="form.address" placeholder="请输入" /></input>
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. </view>
  64. <view class="card">
  65. <view class="row">
  66. <view class="lab">实名认证</view>
  67. <view class="rightCon">
  68. <view class="val" v-if="vuex_userInfo.applyStep>1" style="color: #1989FA;">已认证</view>
  69. <view class="val" v-else>待认证</view>
  70. </view>
  71. </view>
  72. </view>
  73. <view class="btnBg" @click="goNext">下一步</view>
  74. </view>
  75. <u-picker :show="showType" :columns="typeArr" keyName="label" @confirm="confirmType" @cancel="showType=false"></u-picker>
  76. </view>
  77. </template>
  78. <script>
  79. import { getpersonface, GetDetectInfoEnhanced, getCardType } from '@/config/api.js'
  80. import { website } from '@/config/site.config.js'
  81. export default {
  82. data() {
  83. return {
  84. form: {
  85. value: 1,
  86. nationality: '中国',
  87. idcard: '',
  88. name: '',
  89. sex: '1',
  90. address: '',
  91. typeName: '身份证',
  92. },
  93. formToast: {
  94. idcard: '请输入证件号码',
  95. name: '请输入真实姓名',
  96. sex: '请选择性别',
  97. address: '请输入户籍地址',
  98. },
  99. showType: false,
  100. typeArr: [],
  101. title: '学员报名'
  102. }
  103. // 报名进度(0:待报名,1:已选驾校,2:已实名制,3:已填写报名信息,4:已签署合同,5:待支付,6:已支付)
  104. },
  105. onLoad(options) {
  106. if(options.tit) {
  107. this.title = options.tit
  108. }
  109. // this.GetDetectInfoEnhancedFn()
  110. this.getCardTypeFn()
  111. },
  112. methods: {
  113. // 获取证件类型
  114. async getCardTypeFn() {
  115. const {data: res} = await getCardType()
  116. this.typeArr = [res]
  117. await this.$store.dispatch('getUserInfo')
  118. if(this.vuex_userInfo.applyStep>1) {
  119. res.forEach(item=>{
  120. if(item.value==this.vuex_userInfo.cardType ){
  121. this.form.typeName = item.label
  122. }
  123. })
  124. }
  125. console.log(res)
  126. },
  127. confirmType(val) {
  128. let item = val.value[0]
  129. console.log(item)
  130. this.form.value = item.value
  131. this.form.typeName = item.label
  132. this.showType = false
  133. },
  134. async getpersonfaceFn() {
  135. const {data: res} = await getpersonface({ ruleId: 2, RedirectUrl: website + '/pages/indexEntry/enroll/realName/realName?userId='+this.userId+'&test=123' ,userId: this.userId})
  136. let obj = JSON.parse(res)
  137. this.link = obj.Url
  138. this.$store.commit('updateBizToken', obj.BizToken)
  139. // #ifdef H5
  140. window.open(this.link, '_blank')
  141. // #endif
  142. // var regex = /\[.*?\]/;
  143. // alert(obj.BizToken)
  144. // this.GetDetectInfoEnhancedFn(obj.BizToken)
  145. // #ifdef MP-WEIXIN
  146. this.$store.commit('updateWebVeiwUrl', this.link)
  147. uni.navigateTo({
  148. url: '/pages/indexEntry/enroll/realName/webView'
  149. })
  150. // #endif
  151. console.log(obj)
  152. },
  153. async GetDetectInfoEnhancedFn(bizToken) {
  154. let obj = {
  155. ruleId: 2,
  156. redirectUrl: website + '/pages/indexEntry/enroll/registInfo/registInfo',
  157. bizToken: 'C9C2BC8E-8336-4071-84B3-8170E283E6CA',
  158. userId: this.userId
  159. }
  160. const {data: res} = await GetDetectInfoEnhanced(obj)
  161. let obj2 = JSON.parse(res)
  162. console.log(obj2)
  163. console.log('请求结果来了')
  164. console.log(obj2.Text.ErrMsg=='成功')
  165. // uni.setStorageSync(obj2)
  166. },
  167. goNext() {
  168. // return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
  169. // if(!this.form.value) return this.$u.toast('请选择证件类型')
  170. // this.$goPage('/pages/indexEntry/enroll/signContract/signContract?schoolId='+this.vuex_userInfo.schoolId)
  171. // return
  172. // 去签约
  173. if(this.vuex_userInfo.applyStep==3) {
  174. return this.$goPage('/pages/indexEntry/enroll/signContract/signContract')
  175. }
  176. // 去填表
  177. if(this.vuex_userInfo.applyStep==2) {
  178. if(this.title=='学员信息') {
  179. // 非平台学员
  180. return this.$goPage('/pages/indexEntry/NonPlatformStudentInfo/NonPlatformStudentInfo')
  181. }
  182. return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
  183. }
  184. // 去支付
  185. if(this.vuex_userInfo.applyStep==4||this.vuex_userInfo.applyStep==5) {
  186. return this.$goPage('/pages/indexEntry/enroll/payment/payment')
  187. }
  188. // 不是身份证
  189. if(this.form.value!==1) {
  190. for(let key in this.formToast) {
  191. if(!this.form[key]) {
  192. return this.$u.toast(this.formToast[key])
  193. }
  194. }
  195. this.vuex_userInfo.address = this.form.address
  196. this.vuex_userInfo.name = this.form.name
  197. this.vuex_userInfo.sex = this.form.sex
  198. this.vuex_userInfo.idcard = this.form.idcard
  199. this.vuex_userInfo.nationality = (this.form.value==7||this.form.value==2)?'外国':'中国'
  200. this.vuex_userInfo.cardType = this.form.value
  201. return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
  202. }
  203. // 去实名
  204. if(!this.vuex_userInfo.applyStep||this.vuex_userInfo.applyStep<2) {
  205. this.getpersonfaceFn()
  206. }
  207. // this.$goPage('/pages/indexEntry/enroll/signContract/signContract')
  208. // this.$goPage('/pages/indexEntry/enroll/uploadAvatar/uploadAvatar')
  209. }
  210. }
  211. }
  212. </script>
  213. <style>
  214. .input1::placeholder {
  215. color: red !important;
  216. }
  217. </style>
  218. <style lang="scss" scoped>
  219. .card {
  220. padding: 10rpx 46rpx 10rpx 32rpx;
  221. margin-bottom: 20rpx;
  222. .row {
  223. height: 100rpx;
  224. display: flex;
  225. align-items: center;
  226. .lab {
  227. width: 152rpx;
  228. }
  229. .rightCon {
  230. flex: 1;
  231. width: 0;
  232. display: flex;
  233. .val {
  234. flex: 1;
  235. width: 0;
  236. input {
  237. font-size: 28rpx;
  238. }
  239. }
  240. .icon {
  241. width: 30rpx;
  242. height: 30rpx;
  243. u-icon {
  244. color: #fff;
  245. }
  246. }
  247. }
  248. }
  249. }
  250. .btnBg {
  251. width: 396rpx;
  252. margin: 100rpx auto 0 auto;
  253. }
  254. </style>