From a2ddd3bec584b6eb91ab8845353fdb40c9b37ebe Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 02 九月 2024 17:22:17 +0800 Subject: [PATCH] 初步完成 --- src/pages/mine/apply.vue | 243 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 163 insertions(+), 80 deletions(-) diff --git a/src/pages/mine/apply.vue b/src/pages/mine/apply.vue index 90e5180..a4378db 100644 --- a/src/pages/mine/apply.vue +++ b/src/pages/mine/apply.vue @@ -1,51 +1,63 @@ <template> - <view class="full-page"> + <view class="full-page-fff"> <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 labelPosition="left" :model="userInfo" :rules="rules" ref="form1" labelWidth='80'> + <up-form-item label="韬唤璇佹闈�" prop="userInfo.idCardFace" required> <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> <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-form-item label="濮撳悕" required prop="userInfo.name" ref="item1"> + <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" ref="item1"> + <up-input v-model="userInfo.phone" border="none" placeholder="璇疯緭鍏ヨ仈绯荤數璇�"></up-input> + </up-form-item> + <up-form-item label="韬唤璇佸彿" required prop="userInfo.idCode" 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" ref="item1"> + <up-input v-model="userInfo.address" border="none" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�"></up-input> + </up-form-item> + <up-form-item label="绠�鍘嗘弿杩�" required prop="userInfo.resume" ref="item1"> + + </up-form-item> + <up-textarea v-model="userInfo.resume" placeholder="璇疯緭鍏ョ畝鍘嗘弿杩�"></up-textarea> + <!-- <up-form-item label="鎬у埆" required prop="Gender" 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> - - <view class="tabbtns"> - <up-button color='#fece01' class="text-69" text="浜鸿劯璇嗗埆" @click='IaiAddPerso'></up-button> - </view> - <!-- <view class="tabbtns"> - <up-button color='#fece01' class="text-69" text="淇濆瓨"></up-button> + </up-form-item> --> + <!-- <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="淇濆瓨" @click='saveUserWorker'></up-button> + </view> </up-form> </view> @@ -54,6 +66,11 @@ <script setup> import { + onLoad, + onShow + } from "@dcloudio/uni-app"; + + import { apiBaseUrl } from '@/common/setting/constVarsHelper.js'; import { @@ -61,12 +78,43 @@ } from 'vue' const { $upload, - $api + $api, + $util, + $db } = getCurrentInstance().appContext.config.globalProperties import { ref, reactive } from 'vue'; + + // let webgl = ref() + onLoad(() => { + 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: '鐢�', }, @@ -75,9 +123,14 @@ } ] const userInfo = reactive({ - CordId: '430621198204264616', - Name: '閭瑰ぇ蹇�', - Gender: 1 + idCardFace: '', //韬唤璇佹闈㈣矾寰� + idCardBack: '', //韬唤璇佸弽闈㈣矾寰� + name: '', //濮撳悕 + phone: '', //鐢佃瘽鍙风爜 + idCode: '', //韬唤璇佸彿 + address: '', //鑱旂郴鍦板潃 + resume: '', //绠�鍘嗘弿杩� + id: 0 }) // 浣跨敤 reactive 鍒涘缓鍝嶅簲寮忕姸鎬� const state = reactive({ @@ -105,45 +158,24 @@ // 浣跨敤 ref 鍒涘缓鍝嶅簲寮忓紩鐢� const formRef = ref(null); - const session = wx.createVKSession({ - track: { - face: {mode: 2} - }, - version: 'v1', - }) - // 閫愬抚鍒嗘瀽 - const onFrame = timestamp => { - // 寮�鍙戣�呭彲浠ヨ嚜宸辨帶鍒跺抚鐜� - const frame = session.getVKFrame(canvasWidth, canvasHeight) - if (frame) { - // 鍒嗘瀽瀹屾瘯锛屽彲浠ユ嬁鍒板抚瀵硅薄 - doRender(frame) - } - - session.requestAnimationFrame(onFrame) - } - session.start(err => { - if (!err) session.requestAnimationFrame(onFrame) - }) - - // 娓叉煋鍑芥暟 - const doRender = frame => { - // ... - } + + + const IaiAddPerso = (e) => { - onFrame() - // $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({ @@ -190,20 +222,17 @@ } //涓婁紶鎴愬姛鏃惰Е鍙� - 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 + if (res.data.url && text == 'FRONT') { + userInfo.idCardFace = res.data.url //韬唤璇佹闈㈣矾寰� + userInfo.idCode = 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) + userInfo.address = res.data.info.address + } else { + userInfo.idCardBack = res.data.url //韬唤璇佸弽闈㈣矾寰� } } //涓婁紶澶辫触鏃惰Е鍙� @@ -212,10 +241,64 @@ 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> -- Gitblit v1.9.1