-
zhangwei
2024-08-22 d5eb1ecff5d0236359c744b334cf30fcfdad1132
src/pages/mine/apply.vue
@@ -2,58 +2,59 @@
   <view class="full-page">
      <view class="content">
         <up-form labelPosition="left" :model="userInfo" :rules="rules" ref="form1" labelWidth='90'>
            <up-form-item label="身份证正面" prop="userInfo.sex" required borderBottom @click="uploadIdCard('FRONT')"
               ref="item1">
            <up-form-item label="身份证正面" prop="userInfo.idCardFace" required borderBottom>
               <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=FRONT`" ref="uploadF"
                  max='1' background='#fff' @success="success" @error="error" @complete="complete" width="300"
                  height="150">
                  <image src="/static/positive.png" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image>
                  max='1' background='#fff' @success="success('FRONT',$event)" @error="error" @complete="complete"
                  width="300" height="150">
                  <image :src="userInfo.idCardFace?userInfo.idCardFace:'/static/positive.png'" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image>
               </fui-upload>
               <!-- <template #right>
                  <up-icon name="arrow-right"></up-icon>
               </template> -->
            </up-form-item>
            <up-form-item label="身份证反面" prop="userInfo.sex" required borderBottom ref="item1">
            <up-form-item label="身份证反面" prop="userInfo.idCardBack" required borderBottom>
               <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=Back`" ref="uploadB"
                  max='1' background='#fff' @success="success" @error="error" @complete="complete" width="300"
                  height="150">
                  <image src="/static/negative.png" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image>
                  max='1' background='#fff' @success="success('Back',$event)" @error="error" @complete="complete"
                  width="300" height="150">
                  <image :src="userInfo.idCardBack?userInfo.idCardBack:'/static/negative.png'" mode="widthFix" style="width: 300rpx;height: 150rpx;"></image>
               </fui-upload>
            </up-form-item>
            <up-form-item label="姓名" required prop="userInfo.name" borderBottom ref="item1">
               <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入姓名"></up-input>
               <up-input v-model="userInfo.name" border="none" placeholder="请输入姓名" readonly></up-input>
            </up-form-item>
            <up-form-item label="性别" required prop="Gender" borderBottom ref="item2">
            <up-form-item label="联系电话" required prop="userInfo.phone" borderBottom ref="item1">
               <up-input v-model="userInfo.phone" border="none" placeholder="请输入联系电话" ></up-input>
            </up-form-item>
            <up-form-item label="身份证号" required prop="userInfo.idCode" borderBottom ref="item1">
               <up-input v-model="userInfo.idCode" border="none" placeholder="请输入身份证号" readonly></up-input>
            </up-form-item>
            <up-form-item label="联系地址" required prop="userInfo.address" borderBottom ref="item1">
               <up-input v-model="userInfo.address" border="none" placeholder="请输入联系地址" ></up-input>
            </up-form-item>
            <up-form-item label="简历描述" required prop="userInfo.resume" borderBottom ref="item1">
               <up-textarea v-model="userInfo.resume" placeholder="请输入简历描述"></up-textarea>
            </up-form-item>
            <!-- <up-form-item label="性别" required prop="Gender" borderBottom ref="item2">
               <up-radio-group v-model="userInfo.Gender">
                  <up-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in radiolist1" :key="index"
                     :label="item.name" :name="item.name">
                  </up-radio>
               </up-radio-group>
            </up-form-item>
            <up-form-item label="联系电话" required prop="userInfo.name" borderBottom ref="item1">
               <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入联系电话"></up-input>
            </up-form-item>
            <up-form-item label="身份证号" required prop="userInfo.name" borderBottom ref="item1">
               <up-input v-model="state.model1.userInfo.name" border="none" placeholder="请输入身份证号"></up-input>
            </up-form-item>
            <up-form-item label="简历描述" required prop="userInfo.name" borderBottom ref="item1">
               <up-textarea v-model="state.model1.userInfo.name" placeholder="请输入简历描述"></up-textarea>
            </up-form-item>
            <cameraBufferJpg/>
            <view class="text-area">
            </up-form-item> -->
            <!-- <view class="text-area">
               <camera device-position="front" style="width: 100%; height: 600rpx;"></camera>
            </view>
            <view class="tabbtns">
            </view> -->
            <!-- <view class="tabbtns">
               <up-button color='#fece01' class="text-69" text="人脸识别" @click='IaiAddPerso'></up-button>
            </view>
            </view> -->
            <!-- <up-popup :show="show" @close="close" @open="open"> -->
            <!-- <tem-session/> -->
            <!-- </up-popup> -->
            <!-- <view class="tabbtns">
               <up-button color='#fece01' class="text-69" text="保存"></up-button>
            </view> -->
            <view class="tabbtns">
               <up-button color='#fece01' class="text-69" text="保存" @click='saveUserWorker'></up-button>
            </view>
         </up-form>
      </view>
@@ -74,27 +75,43 @@
   } from 'vue'
   const {
      $upload,
      $api
      $api,
      $util,
      $db
   } = getCurrentInstance().appContext.config.globalProperties
   import {
      ref,
      reactive
   } from 'vue';
   let webgl = ref()
   // let webgl = ref()
   onLoad(() => {
      let cameraEngine = wx.createCameraContext()
      // 3、获取 Camera 实时帧数据
      const listener = cameraEngine.onCameraFrame((frame) => {
         // console.log(frame)
         if (!status.value) {
            return
         }
         jiance(frame)
      })
      // 5、开始监听帧数据
      listener.start()
      let data = JSON.parse($db.get('userInfo'))
      if (data) {
         userInfo.idCardFace = data.userWorker.idCardFace //身份证正面路径
         userInfo.idCardBack = data.userWorker.idCardBack //身份证反面路径
         userInfo.name = data.userWorker.name //姓名
         userInfo.phone = data.userWorker.phone //电话号码
         userInfo.idCode = data.userWorker.idCode //身份证号
         userInfo.address = data.userWorker.address //联系地址
         userInfo.resume = data.userWorker.resume //简历描述
         userInfo.id = data.userWorker.id
      }
      // let cameraEngine = wx.createCameraContext()
      // // 3、获取 Camera 实时帧数据
      // const listener = cameraEngine.onCameraFrame((frame) => {
      //    // console.log(frame)
      //    if (!status.value) {
      //       return
      //    }
      //    jiance(frame)
      // })
      // // 5、开始监听帧数据
      // listener.start()
   })
   let status = ref(false)
   let form1 = ref()
   let radiolist1 = [{
         name: '男',
      },
@@ -103,9 +120,14 @@
      }
   ]
   const userInfo = reactive({
      CordId: '430621198204264616',
      Name: '邹大志',
      Gender: 1
      idCardFace: '', //身份证正面路径
      idCardBack: '', //身份证反面路径
      name: '', //姓名
      phone: '', //电话号码
      idCode: '', //身份证号
      address: '', //联系地址
      resume: '', //简历描述
      id:0
   })
   // 使用 reactive 创建响应式状态  
   const state = reactive({
@@ -137,67 +159,20 @@
   const IaiAddPerso = (e) => {
      status.value = !status.value
      // wx.startFacialRecognitionVerify()
      // const session = wx.createVKSession({
      //    track: {
      //       face: {
      //          mode: 1
      //       } // mode: 1 - 使用摄像头;2 - 手动传入图像
      //    },
      // })
      // // 静态图片检测模式下,每调一次 detectFace 接口就会触发一次 updateAnchors 事件
      // session.on('updateAnchors', anchors => {
      //    anchors.forEach(anchor => {
      //       console.log('anchor.points', anchor.points)
      //       console.log('anchor.origin', anchor.origin)
      //       console.log('anchor.size', anchor.size)
      //       console.log('anchor.angle', anchor.angle)
      //    })
      // })
      // // 需要调用一次 start 以启动
      // session.start(errno => {
      //    if (errno) {
      //       console.log(errno)
      //       // 如果失败,将返回 errno
      //    } else {
      //       // 否则,返回null,表示成功
      //       session.detectFace({
      //          frameBuffer, // 图片 ArrayBuffer 数据。人脸图像像素点数据,每四项表示一个像素点的 RGBA
      //          width, // 图像宽度
      //          height, // 图像高度
      //          scoreThreshold: 0.5, // 评分阈值
      //          sourceType: 1,
      //          modelMode: 1,
      //       })
      //    }
      // })
      // wx.chooseMedia({
      //    count:1,
      //    sourceType: ['camera'],
      //    mediaType: ['image'],
      //    maxDuration: 60,
      //    camera: 'front',
      //    success(res) {
      //       for (let i = 0; i < res.tempFiles.length; i++) {
      //          console.log("===111===" + res.tempFiles[i].tempFilePath)
      //          console.log("===222===" + res.tempFiles[i].size)
      //       }
      //    }
      // })
      // $api.IaiAddPerso({}, userInfo).then(res => {
      //    console.log(res, '人脸识别');
      // })
   }
   // 定义方法
   function sexSelect(e) {
      state.model1.userInfo.sex = e.name;
      if (formRef.value) {
         formRef.value.validateField('userInfo.sex');
      }
   }
   const saveUserWorker = (e) => {
      $api.saveUserWorker(userInfo).then(res => {
         if (res.code == 1) {
            $util.showToast({
               title: "保存成功!",
               icon: "success"
            })
         }
      })
      console.log(userInfo, form1);
   }
   //上传图片Base64
   const uploadFilesFByBase64s = (el) => {
      $api.UpdateFileBase64({
@@ -244,20 +219,16 @@
   }
   //上传成功时触发
   const success = (e) => {
      console.log(e)
   const success = (text, e) => {
      //e.res 为服务器返回数据
      //上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】
      let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}")
      if (res.data.url) {
         userInfo.CordId = res.data.info.idNum
         userInfo.name = res.data.info.name
         userInfo.Gender = res.data.info.sex
         //处理结果返回给组件
         //res.data.url为上传成功后返回的图片地址
         //e.index为图片索引值
         // this.$refs.upload.result(res.data.url, e.index)
      if (res.data.url && text == 'FRONT') {
         userInfo.idCardFace = res.data.url, //身份证正面路径
            userInfo.idCode = res.data.info.idNum, //身份证号
            userInfo.name = res.data.info.name
      } else {
         userInfo.idCardBack = res.data.url //身份证反面路径
      }
   }
   //上传失败时触发
@@ -266,6 +237,7 @@
   const complete = (e) => {
      if (e.action == 'delete') {
         // 删除处理
      }
      console.log(e, '删除')
@@ -282,13 +254,13 @@
      })
      const onFrame = timestamp => {
         console.log(webgl,'webgl');
         console.log(webgl, 'webgl');
         const frame = session.getVKFrame(webgl.width, webgl.height)
         if (frame) {
            console.log(frame);
            // renderFrame(frame)
         }
         session.requestAnimationFrame(onFrame)
      }
      session.start(errno => {
@@ -305,7 +277,7 @@
               modelMode: 0,
            })
         }
         session.requestAnimationFrame(onFrame)
      })