特易招,招聘小程序
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.

335 lines
6.9 KiB

10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
8 months ago
10 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
10 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
8 months ago
10 months ago
10 months ago
  1. <template>
  2. <!-- 实名认证 -->
  3. <view class="page">
  4. <navbar title="实名认证"
  5. leftClick
  6. @leftClick="$utils.navigateBack"/>
  7. <view class="info-tips">
  8. 完成实名认证<text
  9. @click="$refs.configPopup.open('permission_authentic_person')">您将获得个人实名认证平台特权</text>
  10. </view>
  11. <view style="color: red;" v-if="sub ==2">
  12. 已驳回原因{{form.remark}}
  13. </view>
  14. <view class="form">
  15. <view class="form-item">
  16. <view class="label">
  17. 姓名
  18. </view>
  19. <input type="text" class="form-input"
  20. placeholder="请输入姓名"
  21. v-model="form.name"/>
  22. </view>
  23. <view class="form-item">
  24. <view class="label">
  25. 身份证号码
  26. </view>
  27. <input type="text" class="form-input"
  28. placeholder="请输入身份证号码"
  29. v-model="form.cerNo"/>
  30. </view>
  31. <view class="form-item">
  32. <view class="label">
  33. 联系方式
  34. </view>
  35. <input type="text" class="form-input"
  36. placeholder="请输入联系方式"
  37. v-model="form.phone"/>
  38. </view>
  39. <view class="form-item">
  40. <view class="title">
  41. 请上传身份证人像面照片选填
  42. </view>
  43. <view class="tips">
  44. 信息仅用身份核实上传后可增加曝光机会
  45. </view>
  46. </view>
  47. <view class="form-item">
  48. <uv-upload
  49. :fileList="fileList"
  50. :maxCount="1"
  51. width="690rpx"
  52. height="280rpx"
  53. multiple
  54. name="fileList"
  55. @afterRead="afterRead"
  56. @delete="deleteImage">
  57. <view class="upload">
  58. <image src="../static/auth/cart.png"
  59. mode="aspectFit"
  60. style="width: 390rpx;height: 280rpx;" />
  61. <view class="btn-add">
  62. 点击上传
  63. </view>
  64. </view>
  65. </uv-upload>
  66. </view>
  67. <view class="form-item">
  68. <view class="tips"
  69. style="text-align: center;padding: 20rpx 0;">
  70. (确保文字清晰可辨避免遮挡不全反光)
  71. </view>
  72. </view>
  73. <view class="form-item">
  74. <view class="title">
  75. 授权书选填
  76. </view>
  77. </view>
  78. <view class="form-item">
  79. <uv-upload
  80. :fileList="authFileList"
  81. :maxCount="1"
  82. width="280rpx"
  83. height="280rpx"
  84. multiple
  85. name="authFileList"
  86. @afterRead="afterRead"
  87. @delete="deleteImage">
  88. </uv-upload>
  89. </view>
  90. <view class="form-item">
  91. <view class="title">
  92. 技能证书选填
  93. </view>
  94. </view>
  95. <view class="form-item">
  96. <uv-upload
  97. :fileList="skillBook"
  98. :maxCount="9"
  99. width="280rpx"
  100. height="280rpx"
  101. multiple
  102. name="skillBook"
  103. @afterRead="afterRead"
  104. @delete="deleteImage">
  105. </uv-upload>
  106. </view>
  107. </view>
  108. <view v-if="sub==0" class="uni-color-btn" @click="sumbit">
  109. 认证
  110. </view>
  111. <view v-if="sub==1" class="uni-uncolor-btn" @click="sumbit">
  112. 已审核通过
  113. </view>
  114. <view v-if="sub==2" class="uni-redcolor-btn" @click="sumbit">
  115. 已驳回,请重新提交
  116. </view>
  117. <view class="config">
  118. <uv-checkbox-group
  119. v-model="checkboxValue"
  120. shape="circle">
  121. <view class="content">
  122. <view
  123. style="display: flex;">
  124. <uv-checkbox
  125. size="40rpx"
  126. icon-size="30rpx"
  127. activeColor="#3796F8"
  128. :name="1"
  129. ></uv-checkbox>
  130. 阅读并同意我们的<text @click="$refs.configPopup.open('config_service_authentic')">个人实名认证服务协议</text>
  131. </view>
  132. </view>
  133. </uv-checkbox-group>
  134. </view>
  135. <configPopup ref="configPopup"/>
  136. </view>
  137. </template>
  138. <script>
  139. export default {
  140. data() {
  141. return {
  142. checkboxValue : [],
  143. form : {},
  144. fileList: [],
  145. authFileList : [],
  146. skillBook : [],
  147. sub : 0,
  148. }
  149. },
  150. onLoad() {
  151. this.getAuthenticationPerson();
  152. },
  153. methods: {
  154. //获取个人实名信息
  155. getAuthenticationPerson(){
  156. this.$api('getAuthenticationPerson',{}, res =>{
  157. if(res.code == 200 && res.result){
  158. this.form = res.result || {};
  159. this.sub = this.form.status || 0;
  160. this.fileList = this.form.image ? this.form.image.split(',').map(url => {
  161. return {
  162. url
  163. }
  164. }) : []
  165. this.authFileList = this.form.authorizationBook ? this.form.authorizationBook.split(',').map(url => {
  166. return {
  167. url
  168. }
  169. }) : []
  170. this.skillBook = this.form.skillBook ? this.form.skillBook.split(',').map(url => {
  171. return {
  172. url
  173. }
  174. }) : []
  175. }
  176. })
  177. },
  178. deleteImage(e){
  179. this[e.name].splice(e.index, 1)
  180. },
  181. afterRead(e){
  182. let self = this
  183. e.file.forEach(file => {
  184. self.$Oss.ossUpload(file.url).then(url => {
  185. self[e.name].push({
  186. url
  187. })
  188. })
  189. })
  190. },
  191. //提交实名认证信息 :lzx
  192. sumbit(){
  193. if(!this.checkboxValue.length){
  194. return uni.showToast({
  195. title: '请先同意个人实名认证服务协议',
  196. icon:'none'
  197. })
  198. }
  199. this.form.image = this.fileList.map((item) => item.url).join(",")
  200. this.form.authorizationBook = this.authFileList.map((item) => item.url).join(",")
  201. this.form.skillBook = this.skillBook.map((item) => item.url).join(",")
  202. if(this.$utils.verificationAll(this.form,{
  203. name:'请输入姓名',
  204. cerNo:'请输入身份证号码',
  205. phone:'请输入电话号码',
  206. // image:'身份证照片不能为空',
  207. })) {
  208. return
  209. }
  210. // 清理不需要给后端的字段
  211. delete this.form.createBy
  212. delete this.form.createTime
  213. delete this.form.updateBy
  214. delete this.form.updateTime
  215. delete this.form.userId
  216. delete this.form.validTime
  217. this.$api('addAuthenticationPerson',this.form, res =>{
  218. if(res.code == 200){
  219. uni.showToast({
  220. title:'提交成功!等待审核',
  221. icon: 'none'
  222. })
  223. setTimeout(uni.navigateBack,1000,-1)
  224. }
  225. })
  226. }
  227. }
  228. }
  229. </script>
  230. <style scoped lang="scss">
  231. .page{
  232. background-color: #fff;
  233. min-height: 100vh;
  234. padding-bottom: 100rpx;
  235. .info-tips{
  236. width: 100%;
  237. padding: 30rpx 0;
  238. background-color: #f3f3f3;
  239. text-align: center;
  240. text{
  241. color: $uni-color;
  242. }
  243. }
  244. .form {
  245. padding: 30rpx;
  246. .form-item{
  247. .label{
  248. padding: 20rpx 0;
  249. }
  250. .form-input{
  251. border: 1px solid $uni-color;
  252. background: rgba($uni-color, 0.1);
  253. padding: 10rpx 20rpx;
  254. font-size: 28rpx;
  255. }
  256. .title{
  257. font-weight: 900;
  258. margin-top: 50rpx;
  259. padding: 10rpx 0;
  260. }
  261. .tips{
  262. font-size: 26rpx;
  263. color: #777;
  264. padding-bottom: 20rpx;
  265. }
  266. }
  267. .upload{
  268. display: flex;
  269. justify-content: center;
  270. align-items: center;
  271. width: 690rpx;
  272. background-color: #f3f3f3;
  273. border-radius: 10rpx;
  274. .btn-add{
  275. margin: auto;
  276. padding: 10rpx 20rpx;
  277. background-color: $uni-color;
  278. color: #fff;
  279. border-radius: 10rpx;
  280. }
  281. }
  282. }
  283. .config{
  284. font-size: 26rpx;
  285. line-height: 40rpx;
  286. width: 100%;
  287. display: flex;
  288. justify-content: center;
  289. .content{
  290. width: 100%;
  291. display: flex;
  292. flex-direction: column;
  293. align-items: center;
  294. }
  295. text{
  296. color: $uni-color;
  297. }
  298. }
  299. }
  300. </style>