From 2d43a1df3f5ba42710e6d21c27d1e13bdb8dfd56 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 24 三月 2025 09:23:08 +0800 Subject: [PATCH] - --- src/pages/mine/apply.vue | 383 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 199 insertions(+), 184 deletions(-) diff --git a/src/pages/mine/apply.vue b/src/pages/mine/apply.vue index 045224c..56ff7ee 100644 --- a/src/pages/mine/apply.vue +++ b/src/pages/mine/apply.vue @@ -1,41 +1,40 @@ <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.idCardFace" required> - <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=FRONT`" ref="uploadF" - 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> + <up-form labelPosition="left" :model="userInfo" :rules="rules" ref="formRef" labelWidth='80'> + <up-form-item label="韬唤璇佹闈�" prop="idCardFace" required> + <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UploadIdCord?PageName=FRONT`" ref="uploadF" + max='1' background='#fff' @success="success('FRONT',$event)" @error="errorFront" + @complete="completeFront" 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.idCardBack" required> - <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UploadIdCord?PageName=Back`" ref="uploadB" + <up-form-item label="韬唤璇佸弽闈�" prop="idCardBack" required> + <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UploadIdCord?PageName=Back`" ref="uploadB" 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> + <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" ref="item1"> + <up-form-item label="濮撳悕" required prop="name" ref="item1"> <up-input v-model="userInfo.name" border="none" placeholder="璇疯緭鍏ュ鍚�" readonly></up-input> </up-form-item> - <up-form-item label="鑱旂郴鐢佃瘽" required prop="userInfo.phone" ref="item1"> + <up-form-item label="鑱旂郴鐢佃瘽" required prop="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-form-item label="韬唤璇佸彿" required prop="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-form-item label="鑱旂郴鍦板潃" required prop="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-textarea v-model="userInfo.resume" placeholder="璇疯緭鍏ョ畝鍘嗘弿杩�"></up-textarea> + <up-form-item label="绠�鍘嗘弿杩�" required prop="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" @@ -55,7 +54,8 @@ <!-- <tem-session/> --> <!-- </up-popup> --> <view class="tabbtns"> - <up-button color='#fece01' class="text-69" text="淇濆瓨" @click='saveUserWorker'></up-button> + <up-button color='#fece01' text="淇濆瓨" :loading='isLoading' loadingText="淇濆瓨涓�" + @click='saveUserWorker'></up-button> </view> </up-form> </view> @@ -66,15 +66,21 @@ <script setup> import { onLoad, - onShow + onShow, + onReady } from "@dcloudio/uni-app"; - import { apiBaseUrl } from '@/common/setting/constVarsHelper.js'; import { - getCurrentInstance + onMounted, + getCurrentInstance, + computed } from 'vue' + import { + useStore + } from 'vuex' + const store = useStore() const { $upload, $api, @@ -88,40 +94,111 @@ // let webgl = ref() onLoad(() => { - let data = JSON.parse($db.get('userInfo')) - if (data) { - userInfo.idCardFace = data.userWorker.idCardFace //韬唤璇佹闈㈣矾寰� - userInfo.idCardBack = data.userWorker.idCardBack //韬唤璇佸弽闈㈣矾寰� + const userToken = $db.get("userToken"); + if (!userToken) { + uni.showToast({ + title: '璇峰厛鐧诲綍锛�', + icon: 'none', + duration: 1000, + complete: function() { + setTimeout(function() { + uni.hideToast(); + uni.navigateTo({ + url: '/pages/login/index' + }); + }, + 1000); + } + }); + } + let data = $db.get('userInfo') || null + if (data && data.userWorker) { + userInfo.idCardFace = data.userWorker ? data.userWorker.idCardFace : '' //韬唤璇佹闈㈣矾寰� + userInfo.idCardBack = data.userWorker ? 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: '鐢�', - }, - { - name: '濂�', } - ] - const userInfo = reactive({ + console.log(userInfo, data && data.userWorker, 'data && data.userWorker'); + }) + let uploadF = ref() + let uploadB = ref() + let isLoading = ref(false) + let rules = { + idCardFace: { + required: true, + message: '璇蜂笂浼犺韩浠借瘉姝i潰', + trigger: ['blur', 'change'] + }, //钀ヤ笟鎵х収璺緞 + idCardBack: { + required: true, + message: '璇蜂笂浼犺韩浠借瘉鍙嶉潰', + trigger: ['blur', 'change'] + }, //浼佷笟鍚嶇О + name: { + required: true, + message: '濮撳悕涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + }, //娉ㄥ唽鏃堕棿 + idCode: { + required: true, + message: '韬唤璇佸彿涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + }, //鑱旂郴鍦板潃 + address: { + required: true, + message: '鑱旂郴鍦板潃涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + }, //浼佷笟娉ㄥ唽鍙� + resume: { + required: true, + message: '绠�鍘嗘弿杩颁笉鑳戒负绌�', + trigger: ['blur', 'change'] + }, //鍏徃绠�浠� + phone: [{ + required: true, + message: '鑱旂郴鐢佃瘽涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + } + // , + // { + // // 鑷畾涔夐獙璇佸嚱鏁帮紝瑙佷笂璇存槑 + // validator: (rule, value, callback) => { + // // 涓婇潰鏈夎锛岃繑鍥瀟rue琛ㄧず鏍¢獙閫氳繃锛岃繑鍥瀎alse琛ㄧず涓嶉�氳繃 + // // uni.$u.test.mobile()灏辨槸杩斿洖true鎴栬�協alse鐨� + // return uni.$u.test.mobile(value); + // }, + // message: '鑱旂郴鐢佃瘽涓嶆纭�', + // // 瑙﹀彂鍣ㄥ彲浠ュ悓鏃剁敤blur鍜宑hange + // trigger: ['change','blur'], + // }, + ] + } + let status = ref(false) + const formRef = ref() + onReady(() => { + formRef.value.setRules(rules); + if (userInfo.idCardBack) { + uploadB.value.urls = [userInfo.idCardBack] + uploadB.value.status = ['success'] + } + if (userInfo.idCardFace) { + uploadF.value.urls = [userInfo.idCardFace] + uploadF.value.status = ['success'] + } + + }) + onMounted(() => { + formRef.value.setRules(rules); + console.log(formRef.value, 'formRef'); // 璁块棶瀛愮粍浠禗emo涓殑灞炴�� + }); + let gender = ref() + let idCardFaceBase64 = ref('') + let userInfo = reactive({ idCardFace: '', //韬唤璇佹闈㈣矾寰� idCardBack: '', //韬唤璇佸弽闈㈣矾寰� name: '', //濮撳悕 @@ -131,171 +208,106 @@ resume: '', //绠�鍘嗘弿杩� id: 0 }) - // 浣跨敤 reactive 鍒涘缓鍝嶅簲寮忕姸鎬� - const state = reactive({ - showSex: false, - model1: { - userInfo: { - name: '', - sex: '', - }, - }, - actions: [{ - name: '鐢�' - }, - { - name: '濂�' - }, - { - name: '淇濆瘑' - }, - ], - - radio: '', - switchVal: false, - }); - - // 浣跨敤 ref 鍒涘缓鍝嶅簲寮忓紩鐢� - const formRef = ref(null); - - - - const IaiAddPerso = (e) => { - + const getUserInfo = () => { + store.dispatch('getUserInfo') } - - const saveUserWorker = (e) => { + const saveUserWorkerApi = () => { $api.saveUserWorker(userInfo).then(res => { if (res.code == 1) { + getUserInfo() + uni.navigateBack() $util.showToast({ title: "淇濆瓨鎴愬姛锛�", icon: "success" }) } + isLoading.value = false }) - console.log(userInfo, form1); } - //涓婁紶鍥剧墖Base64 - const uploadFilesFByBase64s = (el) => { - $api.UpdateFileBase64({ - fileBase64: el - }).then(res => { + const saveUserWorker = (e) => { + formRef.value.validate().then(res => { + isLoading.value = true + console.log(idCardFaceBase64.value, 'idCardFaceBase64.value鈥�'); + if (idCardFaceBase64.value) { + let obj = { + imgBase64: idCardFaceBase64.value, + cordId: userInfo.idCode, //韬唤璇佸彿鐮� + name: userInfo.name, //濮撳悕 + gender: gender.value == '鐢�' ? 1 : 2 //鎬у埆 + } + $api.IaiAddPersoBase64(obj).then(res => { + if (res.data && res.data.isOK == true) { + saveUserWorkerApi() + } else { + $util.showToast({ + title: res.error + }) + isLoading.value = false + } + }) + } else { + saveUserWorkerApi() + } - // 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); + }).catch(errors => { + console.log(errors) + uni.$u.toast(errors[0].message) }) - 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 = (text, e) => { //e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁 //涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐�� let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") - if (res.data.url && text == 'FRONT') { - userInfo.idCardFace = res.data.url //韬唤璇佹闈㈣矾寰� - userInfo.idCode = res.data.info.idNum //韬唤璇佸彿 - userInfo.name = res.data.info.name + if (res.code == 1) { + if (res.data.url && text == 'FRONT') { + userInfo.idCardFace = res.data.url //韬唤璇佹闈㈣矾寰� + userInfo.idCode = res.data.info.idNum //韬唤璇佸彿 + userInfo.name = res.data.info.name + userInfo.address = res.data.info.address + gender.value = res.data.info.sex + } else { + userInfo.idCardBack = res.data.url //韬唤璇佸弽闈㈣矾寰� + } } else { - userInfo.idCardBack = res.data.url //韬唤璇佸弽闈㈣矾寰� + uni.$u.toast(res.error) + if (text == 'FRONT') { + uploadF.value.deleteImage() + } else { + uploadB.value.deleteImage() + } } + } //涓婁紶澶辫触鏃惰Е鍙� const error = (e) => {} + const errorFront = (e) => { + console.log(e, '--------------'); + } //閫夋嫨鍥剧墖鎴栦笂浼犲畬鎴愭椂瑙﹀彂 + const completeFront = (e) => { + if (e.action == 'delete') { + // 鍒犻櫎澶勭悊 + userInfo.idCardFace = '' //韬唤璇佹闈㈣矾寰� + userInfo.idCode = '' //韬唤璇佸彿 + userInfo.name = '' + userInfo.address = '' + gender.value = '' + return + } + console.log(e, '鍒犻櫎') + $util.pathToBase64(e.urls[0]).then(res => { + idCardFaceBase64.value = res + console.log(idCardFaceBase64, idCardFaceBase64.value); + }) + } const complete = (e) => { if (e.action == 'delete') { // 鍒犻櫎澶勭悊 - + userInfo.idCardBack = '' } 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> @@ -308,4 +320,7 @@ .fui-upload__item { margin-top: 20rpx !important; } + .u-form-item__body { + padding: 5px 0 !important; + } </style> \ No newline at end of file -- Gitblit v1.9.1