auth.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <view class="padding-20">
  3. <view class="auth">
  4. <text class="cuIcon-titles text-blue padding-right-10"></text>
  5. <text>个人信息认证</text>
  6. <view class="card">
  7. <u-form :model="model" ref="uForm" >
  8. <u-form-item :label-width="labelWidth" label="姓名" >
  9. <u-input placeholder="请输入姓名" v-model="model.name" type="text"></u-input>
  10. </u-form-item>
  11. <u-form-item :label-width="labelWidth" label="性别" >
  12. <u-input type="select" :select-open="sexSelectShow" v-model="model.sex" placeholder="请选择性别" @click="sexSelectShow = true"></u-input>
  13. </u-form-item>
  14. <u-form-item label="身份证号" :label-width="labelWidth">
  15. <u-input placeholder="请输入身份证号" v-model="model.idcard" type="idcard"></u-input>
  16. </u-form-item>
  17. <u-form-item label="手机号码" :label-width="labelWidth">
  18. <u-input placeholder="请输入手机号" v-model="model.phone" type="number"></u-input>
  19. </u-form-item>
  20. <u-form-item :border-bottom="false" label="面部信息采集" :label-width="labelWidth"></u-form-item>
  21. </u-form>
  22. <view @click="faceSelectShow=true" class="flex justify-center padding-bottom-50">
  23. <view class=" ">
  24. <upload-img
  25. :width="$isEmpty(face_url)?350:560"
  26. :height="$isEmpty(face_url)?350:420"
  27. :currentImage="face_url"
  28. bgsrc="http://139.9.103.171:1888/miniofile/xlyq/face1.png"
  29. >
  30. </upload-img>
  31. <view class="text-center padding-top-20" style="color: #59a5f0;">
  32. <text class="cuIcon-camera padding-right-sm" style="font-size: 30rpx;"></text>
  33. <text v-if="$isEmpty(face_url)">点击上传人脸</text>
  34. <text style="margin-top: 40rpx;display: inline-block;" v-else>点击重新上传</text>
  35. </view>
  36. </view>
  37. </view>
  38. </view>
  39. </view>
  40. <view class="auth">
  41. <text class="cuIcon-titles text-blue padding-right-10"></text>
  42. <text>企业信息认证</text>
  43. <view class="card">
  44. <u-form :model="model" ref="uForm" >
  45. <u-form-item :label-width="labelWidth" label="公司园区" >
  46. <u-input type="select" :select-open="ganderSelectShow" v-model="model.gander" placeholder="请选择工作园区" @click="ganderSelectShow = true"></u-input>
  47. </u-form-item>
  48. <u-form-item :label-width="labelWidth" label="所属企业" >
  49. <u-input type="select" :select-open="companySelectShow" v-model="model.company" placeholder="请选择所属企业" @click="companySelectShow = true"></u-input>
  50. </u-form-item>
  51. </u-form>
  52. </view>
  53. </view>
  54. <view class="auth">
  55. <text class="cuIcon-titles text-blue padding-right-10"></text>
  56. <text>其他信息</text>
  57. <view class="card">
  58. <u-form :model="model" ref="uForm" >
  59. <u-form-item :border-bottom="false" :label-width="labelWidth" label="备注(可选)" ></u-form-item>
  60. <textarea value="" v-model="model.remark" placeholder="填写备注信息" />
  61. </u-form>
  62. </view>
  63. </view>
  64. <view class="cu-btn bg-blue round flex" style="padding: 40rpx 0;margin-top: 40rpx;">
  65. 提交
  66. </view>
  67. <u-action-sheet :list="sexSelectList" v-model="sexSelectShow" @click="sexSelectCallback"></u-action-sheet>
  68. <u-action-sheet :list="ganderSelectList" v-model="ganderSelectShow" @click="ganderSelectCallback"></u-action-sheet>
  69. <u-action-sheet :list="companySelectList" v-model="companySelectShow" @click="companySelectCallback"></u-action-sheet>
  70. <u-action-sheet @click="faceSelectCallback" z-index="999999" :list="faceSelectList" v-model="faceSelectShow"></u-action-sheet>
  71. </view>
  72. </template>
  73. <script>
  74. import uploadImg from '@/components/uploadimg/uploadImg.vue'
  75. let that = this;
  76. export default {
  77. components:{
  78. uploadImg
  79. },
  80. data() {
  81. return {
  82. labelWidth:'200',
  83. model: {
  84. name: '',
  85. sex: '',
  86. phone: '',
  87. idcard:'',
  88. gander:'',
  89. company:'',
  90. face_image:''
  91. },
  92. //图片回显
  93. face_url:'',
  94. //性别
  95. sexSelectList: [{text: '男'},{text: '女'}],
  96. sexSelectShow: false,
  97. //园区
  98. ganderSelectList: [],
  99. ganderSelectShow: false,
  100. //企业
  101. companySelectList: [],
  102. companySelectShow: false,
  103. //上传人脸的方式
  104. faceSelectList: [{
  105. text: '相册上传',
  106. }, {
  107. text: '拍照上传'
  108. }],
  109. faceSelectShow:false,
  110. //验证码
  111. codeTips: '',
  112. }
  113. },
  114. onLoad() {
  115. this.fetchStaticData()
  116. this.initData()
  117. },
  118. methods: {
  119. initData(){
  120. if (!this.$isEmpty(this.$cache.get('phone'))) {
  121. this.model.phone=this.$cache.get('phone')
  122. }
  123. },
  124. //性别
  125. sexSelectCallback(index) {
  126. uni.hideKeyboard();
  127. this.model.sex = this.sexSelectList[index].text;
  128. },
  129. //园区
  130. ganderSelectCallback(index) {
  131. uni.hideKeyboard();
  132. this.model.gander = this.ganderSelectList[index].text;
  133. },
  134. //公司
  135. companySelectCallback(index) {
  136. uni.hideKeyboard();
  137. this.model.company = this.companySelectList[index].text;
  138. },
  139. faceSelectCallback(index){
  140. if (index==0) {
  141. //图片上传
  142. this.chooseImage()
  143. } else if(index==1){
  144. //拍照上传
  145. uni.navigateTo({
  146. url:'/pages/my-camera/my-camera'
  147. })
  148. }
  149. },
  150. //点击上传图片事件
  151. chooseImage: function () {
  152. uni.chooseImage({
  153. count: 1,
  154. //最多可以选择的图片张数,默认9
  155. sourceType: ['album', 'camera'],
  156. sizeType: ['compressed'],
  157. //可选择原图或压缩后的图片
  158. success: res => {
  159. that.handelImg(res.tempFilePaths[0])
  160. }
  161. });
  162. },
  163. //处理照片,拍照上传和相册上传的共同处理方法
  164. handelImg(imgUrl){
  165. that.face_url=imgUrl
  166. uni.getFileSystemManager().readFile({
  167. filePath: imgUrl,
  168. //选择图片返回的相对路径
  169. encoding: 'base64',
  170. //编码格式
  171. success: res => {
  172. //图片的base64字符串
  173. that.face_image='data:image/jpeg;base64,' + res.data
  174. }
  175. });
  176. },
  177. fetchStaticData(){
  178. this.ganderSelectList=[
  179. {
  180. text: '新邻园区1'
  181. },
  182. {
  183. text: '新邻园区2'
  184. }
  185. ]
  186. this.companySelectList=[
  187. {
  188. text: '新邻企业1'
  189. },
  190. {
  191. text: '新邻企业2'
  192. }
  193. ]
  194. }
  195. }
  196. }
  197. </script>
  198. <style lang="scss">
  199. page{
  200. background-color: #FFFFFF;
  201. }
  202. .auth{
  203. padding: 40rpx 10rpx;
  204. .card{
  205. margin-top: 20rpx;
  206. padding: 0 30rpx;
  207. box-sizing: border-box;
  208. border-radius: 12rpx;
  209. box-shadow: 0 -10rpx rgba(248, 248, 248,.9) ,0 10rpx rgba(248, 248, 248,.9) , -10rpx 0rpx rgba(248, 248, 248,.9) ,10rpx 0rpx rgba(248, 248, 248,.9);
  210. .item{
  211. padding:30rpx 0;
  212. display: flex;
  213. justify-content: space-between;
  214. }
  215. }
  216. }
  217. </style>