From 4abaa346a1593d0721bc1aa0989f1007e16d3301 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 21 八月 2024 17:20:38 +0800 Subject: [PATCH] - --- src/pages/mine/apply.vue | 278 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 265 insertions(+), 13 deletions(-) diff --git a/src/pages/mine/apply.vue b/src/pages/mine/apply.vue index 84abc6d..bfa16c2 100644 --- a/src/pages/mine/apply.vue +++ b/src/pages/mine/apply.vue @@ -1,21 +1,34 @@ <template> <view class="full-page"> <view class="content"> - <up-form labelPosition="left" :model="model1" :rules="rules" ref="form1" labelWidth='90'> - <up-form-item label="韬唤璇佹闈�" prop="userInfo.sex" required borderBottom @click="showSex = true; hideKeyboard()" + <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"> - <tem-upload src="/static/positive.png" /> + <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> + </fui-upload> <!-- <template #right> <up-icon name="arrow-right"></up-icon> </template> --> </up-form-item> - <up-form-item label="韬唤璇佸弽闈�" prop="userInfo.sex" required borderBottom @click="showSex = true; hideKeyboard()" - ref="item1"> - <tem-upload src="/static/negative.png"/> - + <up-form-item label="韬唤璇佸弽闈�" prop="userInfo.sex" required borderBottom ref="item1"> + <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> + </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-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> @@ -24,11 +37,23 @@ <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-textarea v-model="state.model1.userInfo.name" placeholder="璇疯緭鍏ョ畝鍘嗘弿杩�"></up-textarea> </up-form-item> - <view class="tabbtns"> - <up-button color='#fece01' class="text-69" text="淇濆瓨"></up-button> + <cameraBufferJpg/> + <view class="text-area"> + <camera device-position="front" style="width: 100%; height: 600rpx;"></camera> </view> + <view class="tabbtns"> + <up-button color='#fece01' class="text-69" text="浜鸿劯璇嗗埆" @click='IaiAddPerso'></up-button> + </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> --> </up-form> </view> @@ -37,10 +62,51 @@ <script setup> import { + onLoad, + onShow + } from "@dcloudio/uni-app"; + + import { + apiBaseUrl + } from '@/common/setting/constVarsHelper.js'; + import { + getCurrentInstance + } from 'vue' + const { + $upload, + $api + } = getCurrentInstance().appContext.config.globalProperties + import { ref, reactive } from 'vue'; - + 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 status = ref(false) + let radiolist1 = [{ + name: '鐢�', + }, + { + name: '濂�', + } + ] + const userInfo = reactive({ + CordId: '430621198204264616', + Name: '閭瑰ぇ蹇�', + Gender: 1 + }) // 浣跨敤 reactive 鍒涘缓鍝嶅簲寮忕姸鎬� const state = reactive({ showSex: false, @@ -60,7 +126,7 @@ name: '淇濆瘑' }, ], - + radio: '', switchVal: false, }); @@ -68,6 +134,62 @@ // 浣跨敤 ref 鍒涘缓鍝嶅簲寮忓紩鐢� const formRef = ref(null); + + + 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 { + // // 鍚﹀垯锛岃繑鍥瀗ull锛岃〃绀烘垚鍔� + // 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; @@ -75,11 +197,141 @@ formRef.value.validateField('userInfo.sex'); } } + + //涓婁紶鍥剧墖Base64 + const uploadFilesFByBase64s = (el) => { + $api.UpdateFileBase64({ + fileBase64: el + }).then(res => { + + // if (res.code == 1) { + + uni.hideLoading(); + console.log(res.data.src); + // } else { + + // } + }); + } + const uploadIdCard = (msg, event) => { + + // getBase64(msg.file.url).then(res => { + // console.log(res); + // // uploadFilesFByBase64s(res) + // }) + // $api.UpdateFileBase64().then(res=>{ + // console.log(res,'UpdateFileBase64'); + // }) + $api.UploadIdCord(msg.file.url, { + PageName: 'Back' + }).then(res => { + console.log(res); + }) + uni.showLoading({ + title: '涓婁紶涓�...' + }); + // uni.getFileSystemManager().readFile({ + // filePath: msg.file.url, // 鏇挎崲涓轰綘鐨勬枃浠惰矾寰� + // encoding: 'base64', + // success: res => { + // uploadFilesFByBase64s(res.data) + // console.log('鏂囦欢鍐呭鐨刡ase64锛�', res.data); + // }, + // fail: err => { + // console.error('璇诲彇鏂囦欢澶辫触锛�', err); + // } + // }); + + } + //涓婁紶鎴愬姛鏃惰Е鍙� + const success = (e) => { + console.log(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) + } + } + //涓婁紶澶辫触鏃惰Е鍙� + const error = (e) => {} + //閫夋嫨鍥剧墖鎴栦笂浼犲畬鎴愭椂瑙﹀彂 + const complete = (e) => { + if (e.action == 'delete') { + // 鍒犻櫎澶勭悊 + } + console.log(e, '鍒犻櫎') + + } + const jiance = (imgbuffer) => { + // var frameBuffer = + const session = wx.createVKSession({ + track: { + face: { + mode: 2 + } // mode: 1 - 浣跨敤鎽勫儚澶达紱2 - 鎵嬪姩浼犲叆鍥惧儚 + }, + version: 'v1' + + }) + const onFrame = timestamp => { + 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 => { + if (errno) { + // 濡傛灉澶辫触锛屽皢杩斿洖 errno + } else { + // 鍚﹀垯锛岃繑鍥瀗ull锛岃〃绀烘垚鍔� + session.detectFace({ + frameBuffer: imgbuffer.data, // 鍥剧墖 ArrayBuffer 鏁版嵁銆備汉鑴稿浘鍍忓儚绱犵偣鏁版嵁锛屾瘡鍥涢」琛ㄧず涓�涓儚绱犵偣鐨� RGBA + width: imgbuffer.width, // 鍥惧儚瀹藉害 + height: imgbuffer.height, + scoreThreshold: 0.8, // 璇勫垎闃堝�� + sourceType: 1, + modelMode: 0, + }) + } + + session.requestAnimationFrame(onFrame) + }) + + session.on('updateAnchors', anchors => { + console.log("妫�娴嬪埌浜鸿劯", 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) + }) + }) + session.on('removeAnchors', () => { + console.log("浜鸿劯娑堝け", "removeAnchors") + }) + } </script> <style> - .content{ + .content { background-color: #fff; padding: 0 20rpx; } + + .fui-upload__item { + margin-top: 20rpx !important; + } </style> \ No newline at end of file -- Gitblit v1.9.1