nidapeng
2024-03-28 e8158d16a13c2ea1f2d8566578137db4394ab610
h5/pages/userinfo/userinfo.vue
@@ -27,14 +27,14 @@
            </view>
         </view>
         <view class="cell">
            <view class="title">公司</view>
            <view class="title">公司<b>*</b></view>
            <view class="content">
               <input class="input" maxlength="50" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="请输入您的公司名称" />
            </view>
         </view>
         <view class="cell">
            <view class="title1">
               <text class="title1_a">人脸照片<b>*</b></text>
               <text class="title1_a">人脸照片<b style="color: red;">*</b></text>
               <text class="title1_b">1、请提供五官清晰,人脸居中的正面人脸免冠照片;</text>
               <text class="title1_b">2、照片无逆光、无PS、无过度美颜处理</text>
            </view>
@@ -63,36 +63,75 @@
      <view class="footer-box">
         <view class="submit-button" @click="submit">下一步</view>
      </view>
      <u-picker keyName="name" :show="show" :columns="columns" @confirm="confirm" @cancel="show = false"></u-picker>
      <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
      <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
      <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="30" @crop="uploadImg"></qf-image-cropper>
   </view>
</template>
<script>
   import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
   import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
   import { mapState } from 'vuex'
   export default {
      data() {
         return {
            photoSrc: "",
            show: false,
            visit: '',
            type: '',
            columns: [[{name: '身份证', id: 0}, {name: '港澳证件', id: 1},{name: '护照', id: 2}]],
            fileList: [],
            visitorData: {
               userAnswerId: '',
               name: '',
               phone: '',
               idcardType: '',
               idcardTypeName: '',
               idcardType: '0',
               idcardTypeName: '身份证',
               idcardNo: '',
               faceImg: '',
               faceImgUrl: '',
               imgurl: '',
               imgurlUrl: ''
               imgurlUrl: '',
               companyName: ''
            }
         }
      },
      
      computed: {
         ...mapState(['member'])
      },
      components: { tlyPictureCut, QfImageCropper },
      onLoad(option) {
         if (this.member) {
            this.visitorData.name = this.member.name
            this.visitorData.phone = this.member.phone
            this.visitorData.idcardNo = this.member.idcardDecode
            this.visitorData.companyName = this.member.visitCompanyName
            this.visitorData.faceImg = this.member.faceImg
            if (this.member.faceImg) {
               this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
            }
            this.visitorData.imgurl = this.member.imgurl
            if (this.member.imgurl) {
               this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
            }
            this.visitorData.idcardType = this.member.idcardType
            if (this.member.idcardType === 0) {
               this.visitorData.idcardTypeName = '身份证'
            } else if (this.member.idcardType === 1) {
               this.visitorData.idcardTypeName = '港澳证件'
            } else if (this.member.idcardType === 2) {
               this.visitorData.idcardTypeName = '护照'
            }
         }
         this.visitorData.userAnswerId = option.userAnswerId
         this.getVisit()
         // uni.$on('update', (data) => {
         //    this.uploadImg(data.tempFilePath)
         // })
      },
      methods: {
@@ -125,6 +164,10 @@
                  icon: 'none'
               })
            }
            if (!this.visitorData.companyName) return uni.showToast({
               title: '公司不能为空',
               icon: 'none'
            })
            if (!this.visitorData.faceImg) return uni.showToast({
               title: '人脸照片不能为空',
               icon: 'none'
@@ -150,40 +193,67 @@
               }
            })
         },
         uploadImg(file) {
            var that = this
            that.$refs.cropper.close()
            uni.showLoading({ title: '上传中', mask: true });
            uni.uploadFile({
               url: `${this.$baseUrl}public/api/uploadFtp.do`,
               filePath: file.tempFilePath,
               name: 'file',
               formData: {
                  folderCode: 'MEMBER_IMG'
               },
               success: (uploadFileRes) => {
                  let res = JSON.parse(uploadFileRes.data)
                  this.visitorData.faceImg = res.data.halfPath
                  this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
               },
               fail(err) {
                  alert('失败')
               },
               complete() {
                  uni.hideLoading();
               }
            });
         },
         upload(type) {
            var that = this
            that.type = type
            if (type === 'faceImg') {
               that.$refs.cropper.chooseImage()
               return
            }
            uni.chooseImage({
               count: 1,
               success: (chooseImageRes) => {
                  // console.log(chooseImageRes.tempFilePaths[0])
                  uni.navigateTo({
                     url: `/pages/cropping/cropping?item=${JSON.stringify({ tempFilePath: chooseImageRes.tempFilePaths[0] })}`
                  })
                  return
                  uni.showLoading({ title: '上传中', mask: true });
                  for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
                  // if (type === 'faceImg') {
                  //    that.photoSrc = chooseImageRes.tempFilePaths[0];
                  //    that.$refs.tlyPictureCut.showPop();
                  // }
                  if (type === 'imgurl') {
                     uni.showLoading({ title: '上传中', mask: true });
                     uni.uploadFile({
                        url: `${this.$baseUrl}public/api/uploadFtp.do`,
                        filePath: chooseImageRes.tempFilePaths[i],
                        url: `${that.$baseUrl}public/api/uploadFtp.do`,
                        filePath: chooseImageRes.tempFilePaths[0],
                        name: 'file',
                        formData: {
                           folderCode: 'MEMBER_IMG'
                        },
                        timeout: 60000,
                        success: (uploadFileRes) => {
                           let res = JSON.parse(uploadFileRes.data)
                           if (type === 'faceImg') {
                              this.visitorData.faceImg = res.data.halfPath
                              this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
                           } else {
                              this.visitorData.imgurl = res.data.halfPath
                              this.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
                           }
                           that.visitorData.imgurl = res.data.halfPath
                           that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
                        },
                        complete() {
                           if (i === chooseImageRes.tempFilePaths.length - 1) {
                              uni.hideLoading();
                           }
                           uni.hideLoading();
                        }
                     });
                  }
               },
               fail(err) {
                  alert('api报错')
               }
            });
         },
@@ -196,7 +266,7 @@
   }
</script>
<style>
<style lang="scss">
   page {
      background-color: #F7F7F7 !important;
   }
@@ -233,7 +303,7 @@
      display: flex;
      flex-direction: column;
      .title1_a {
         font-size: 30rpx;
         font-size: 30rpx !important;
         font-weight: 400;
         color: #222222;
         display: flex;
@@ -245,7 +315,7 @@
         }
      }
      .title1_b {
         font-size: 24rpx;
         font-size: 24rpx !important;
         font-weight: 400;
         color: #999999;
      }