zhangwei
2025-01-16 e3f6581c48b1dfb65c55e8a1a6ce1761a7dc26b4
src/pages/checkin/checkin.vue
@@ -1,28 +1,39 @@
<template>
   <view>
      <view class='chuany-flex camera-fill chuany-justify-center chuany-align-center'>
         <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadE" max='1' @success="success"
            :sizeType='sizeType' :sourceType='sourceType' @error="error" @complete="complete" width="280"
            height="280">
         <tem-upload-fui immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadE" max='1'
            @success="success" cameraType='back' :sizeType='sizeType' :sourceType='sourceType' @error="error"
            @complete="complete" width="280" :mediaType='mediaType' height="280">
            <view class="" v-if="checkPhoto">
               <image :src="checkPhoto" mode="widthFix" style="width: 280rpx;height: 280rpx;">
               <image :src="checkPhoto" mode="aspectFill" style="width: 280rpx;height: 280rpx;">
               </image>
            </view>
            <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else>
               <fui-icon name="camera-fill"></fui-icon>
               <view class="chuany-font20">拍摄环境照片</view>
            </view>
         </fui-upload>
         <fui-upload ref="uploadP" max='1' @error="error" @complete="completePerson" width="280" height="280"
            :sizeType='sizeType' :sourceType='sourceType'>
         </tem-upload-fui>
         <tem-upload-fui ref="uploadP" max='1' @error="error" @complete="completePerson" width="280" height="280"
            :sizeType='sizeType' :sourceType='sourceType' :mediaType='mediaType' :isFace='true'>
            <view class="" v-if="faceImg">
               <image :src="faceImg" mode="widthFix" style="width: 280rpx;height: 280rpx;"></image>
               <image :src="faceImg" mode="aspectFill" style="width: 280rpx;height: 280rpx;"></image>
            </view>
            <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else>
               <fui-icon name="addfriends-fill"></fui-icon>
               <view class="chuany-font20">拍摄人脸照片</view>
            </view>
         </fui-upload>
         </tem-upload-fui>
         <!-- <view class="fui-upload__item fui-upload__noborder"
            style="width:280rpx;height:280rpx;background:#eee;" @tap.stop="openCamera">
            <view class="" v-if="faceImg">
               <image :src="faceImg" mode="aspectFill" style="width: 280rpx;height: 280rpx;"></image>
            </view>
            <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else>
               <fui-icon name="addfriends-fill"></fui-icon>
               <view class="chuany-font20">拍摄人脸照片</view>
            </view>
         </view> -->
      </view>
      <view class="c-m-20 chuany-font24">
         为了保证打卡的正确性,‌建议在公司门口或进入办公室的门口再打卡。‌同时,‌确保照片的清晰、‌明亮,‌面部可见。
@@ -69,6 +80,7 @@
            dakaList: [],
            sourceType: ["camera"],
            sizeType: ['compressed'],
            mediaType: ['image'],
            isLoading: false
         }
      },
@@ -77,6 +89,19 @@
         let id = option.orderid
         this.orderBiddingId = id
         this.getDaka(id)
      },
      onShow(){
         if(this.$db.get('faceImg')){
            let faceImgPath = this.$db.get('faceImg')
            this.$refs.uploadP.urls = [faceImgPath]
            this.$refs.uploadP.status = ['success']
            this.$util.pathToBase64(faceImgPath).then(res => {
               this.faceImg = res
            })
         }
      },
      onUnload(){
         this.$db.del('faceImg')
      },
      methods: {
         getDaka(id) {
@@ -100,18 +125,22 @@
         },
         openCamera() {
            // 拍照和相册
            uni.chooseImage({
               count: 1,
               sizeType: ["original", "compressed"],
               sourceType: ["camera"],
               success: (res) => {
                  const {
                     tempFilePaths
                  } = res;
                  console.log(tempFilePaths);
               },
            });
            // uni.chooseMedia({
            //    count: 1,
            //    mediaType: ['image'],
            //    sizeType: ["compressed"],
            //    sourceType: ["camera"],
            //    camera: 'front',
            //    success: (res) => {
            //       const {
            //          tempFiles
            //       } = res;
            //       this.$util.pathToBase64(tempFiles[0].tempFilePath).then(res => {
            //          this.faceImg = res
            //       })
            //    },
            // });
         },
         success(e) {
@@ -140,6 +169,8 @@
         },
         completePerson(e) {
            if (e.action == 'delete') {
               this.faceImg = ''
               this.$db.del('faceImg')
               // 删除处理
               return
            }
@@ -181,6 +212,7 @@
                  })
                  this.checkPhoto = '' //打卡照片
                  this.faceImg = ''
                  this.$db.del('faceImg')
                  this.$refs.uploadP.deleteImage()
                  this.$refs.uploadE.deleteImage()
                  this.getDaka(this.orderBiddingId)
@@ -197,6 +229,28 @@
</script>
<style lang="scss">
   .fui-upload__item {
      /* #ifndef APP-NVUE */
      display: flex;
      /* #endif */
      align-items: center;
      justify-content: center;
      margin-right: 20rpx;
      margin-bottom: 20rpx;
      /* #ifdef H5 */
      cursor: pointer;
      /* #endif */
      position: relative;
      /* #ifndef APP-NVUE */
      box-sizing: border-box;
      /* #endif */
   }
   .fui-upload__noborder {
      border-width: 0;
   }
   .camera-fill {
      // width: 400rpx;
      // height: 400rpx;