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 | 501 +++++++++++++++++++++++++++----------------------------
1 files changed, 245 insertions(+), 256 deletions(-)
diff --git a/src/pages/mine/apply.vue b/src/pages/mine/apply.vue
index bfa16c2..56ff7ee 100644
--- a/src/pages/mine/apply.vue
+++ b/src/pages/mine/apply.vue
@@ -1,59 +1,62 @@
<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">
- <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">
+ <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.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">
+ <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="/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="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="phone" ref="item1">
+ <up-input v-model="userInfo.phone" border="none" placeholder="璇疯緭鍏ヨ仈绯荤數璇�"></up-input>
+ </up-form-item>
+ <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="address" ref="item1">
+ <up-input v-model="userInfo.address" border="none" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�"></up-input>
+ </up-form-item>
+ <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"
: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' text="淇濆瓨" :loading='isLoading' loadingText="淇濆瓨涓�"
+ @click='saveUserWorker'></up-button>
+ </view>
</up-form>
</view>
@@ -63,265 +66,248 @@
<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
+ $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()
+ 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
+
+ }
+ 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)
- let radiolist1 = [{
- name: '鐢�',
- },
- {
- name: '濂�',
+ const formRef = ref()
+ onReady(() => {
+ formRef.value.setRules(rules);
+ if (userInfo.idCardBack) {
+ uploadB.value.urls = [userInfo.idCardBack]
+ uploadB.value.status = ['success']
}
- ]
- const userInfo = reactive({
- CordId: '430621198204264616',
- Name: '閭瑰ぇ蹇�',
- Gender: 1
+ if (userInfo.idCardFace) {
+ uploadF.value.urls = [userInfo.idCardFace]
+ uploadF.value.status = ['success']
+ }
+
})
- // 浣跨敤 reactive 鍒涘缓鍝嶅簲寮忕姸鎬�
- const state = reactive({
- showSex: false,
- model1: {
- userInfo: {
- name: '',
- sex: '',
- },
- },
- actions: [{
- name: '鐢�'
- },
- {
- name: '濂�'
- },
- {
- name: '淇濆瘑'
- },
- ],
-
- radio: '',
- switchVal: false,
+ onMounted(() => {
+ formRef.value.setRules(rules);
+ console.log(formRef.value, 'formRef'); // 璁块棶瀛愮粍浠禗emo涓殑灞炴��
});
-
- // 浣跨敤 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, '浜鸿劯璇嗗埆');
- // })
+ let gender = ref()
+ let idCardFaceBase64 = ref('')
+ let userInfo = reactive({
+ idCardFace: '', //韬唤璇佹闈㈣矾寰�
+ idCardBack: '', //韬唤璇佸弽闈㈣矾寰�
+ name: '', //濮撳悕
+ phone: '', //鐢佃瘽鍙风爜
+ idCode: '', //韬唤璇佸彿
+ address: '', //鑱旂郴鍦板潃
+ resume: '', //绠�鍘嗘弿杩�
+ id: 0
+ })
+ const getUserInfo = () => {
+ store.dispatch('getUserInfo')
}
- // 瀹氫箟鏂规硶
- function sexSelect(e) {
- state.model1.userInfo.sex = e.name;
- if (formRef.value) {
- 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);
+ const saveUserWorkerApi = () => {
+ $api.saveUserWorker(userInfo).then(res => {
+ if (res.code == 1) {
+ getUserInfo()
+ uni.navigateBack()
+ $util.showToast({
+ title: "淇濆瓨鎴愬姛锛�",
+ icon: "success"
+ })
+ }
+ isLoading.value = false
})
- 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 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()
+ }
+
+ }).catch(errors => {
+ console.log(errors)
+ uni.$u.toast(errors[0].message)
+ })
+ }
+
//涓婁紶鎴愬姛鏃惰Е鍙�
- 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.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 {
+ 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>
@@ -334,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