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 | 343 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 292 insertions(+), 51 deletions(-) diff --git a/src/pages/mine/apply.vue b/src/pages/mine/apply.vue index 84abc6d..56ff7ee 100644 --- a/src/pages/mine/apply.vue +++ b/src/pages/mine/apply.vue @@ -1,33 +1,61 @@ <template> - <view class="full-page"> + <view class="full-page-fff"> <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()" - ref="item1"> - <tem-upload src="/static/positive.png" /> + <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 @click="showSex = true; hideKeyboard()" - ref="item1"> - <tem-upload src="/static/negative.png"/> - + <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="userInfo.name" borderBottom ref="item1"> - <up-input v-model="state.model1.userInfo.name" border="none" placeholder="璇疯緭鍏ヨ仈绯荤數璇�"></up-input> + <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.name" borderBottom ref="item1"> - <up-input v-model="state.model1.userInfo.name" border="none" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"></up-input> + <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.name" borderBottom ref="item1"> - <up-textarea v-model="state.model1.userInfo.name" placeholder="璇疯緭鍏ョ畝鍘嗘弿杩�" ></up-textarea> + <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> --> + <!-- <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> + <up-button color='#fece01' text="淇濆瓨" :loading='isLoading' loadingText="淇濆瓨涓�" + @click='saveUserWorker'></up-button> </view> </up-form> </view> @@ -37,49 +65,262 @@ <script setup> import { + onLoad, + onShow, + onReady + } from "@dcloudio/uni-app"; + import { + apiBaseUrl + } from '@/common/setting/constVarsHelper.js'; + import { + onMounted, + getCurrentInstance, + computed + } from 'vue' + import { + useStore + } from 'vuex' + const store = useStore() + const { + $upload, + $api, + $util, + $db + } = getCurrentInstance().appContext.config.globalProperties + import { ref, reactive } from 'vue'; - // 浣跨敤 reactive 鍒涘缓鍝嶅簲寮忕姸鎬� - const state = reactive({ - showSex: false, - model1: { - userInfo: { - name: '', - sex: '', - }, - }, - actions: [{ - name: '鐢�' - }, - { - name: '濂�' - }, - { - name: '淇濆瘑' - }, - ], - - radio: '', - switchVal: false, - }); - - // 浣跨敤 ref 鍒涘缓鍝嶅簲寮忓紩鐢� - const formRef = ref(null); - - // 瀹氫箟鏂规硶 - function sexSelect(e) { - state.model1.userInfo.sex = e.name; - if (formRef.value) { - formRef.value.validateField('userInfo.sex'); + // let webgl = ref() + onLoad(() => { + 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) + 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: '', //濮撳悕 + phone: '', //鐢佃瘽鍙风爜 + idCode: '', //韬唤璇佸彿 + address: '', //鑱旂郴鍦板潃 + resume: '', //绠�鍘嗘弿杩� + id: 0 + }) + const getUserInfo = () => { + store.dispatch('getUserInfo') + } + const saveUserWorkerApi = () => { + $api.saveUserWorker(userInfo).then(res => { + if (res.code == 1) { + getUserInfo() + uni.navigateBack() + $util.showToast({ + title: "淇濆瓨鎴愬姛锛�", + icon: "success" + }) + } + isLoading.value = false + }) + } + 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 = (text, e) => { + //e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁 + //涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐�� + let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") + 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, '鍒犻櫎') } </script> <style> - .content{ + .content { background-color: #fff; padding: 0 20rpx; } + + .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