From 3c018241935263f2c802ce839ee489488bd4e05b Mon Sep 17 00:00:00 2001 From: "wangmingyong@163.com" Date: Fri, 7 Aug 2026 11:41:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enforcement/register/RegisterPopups.vue | 2 +- .../src/util/util.js | 15 +++- .../enforce/enforcementRegister.vue | 74 ++++++++++++------- 3 files changed, 64 insertions(+), 27 deletions(-) diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue index 3ca0108f..885153ab 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue @@ -283,7 +283,7 @@ const handleSelectPerson = (person) => { // 转换字段名称,将接口返回的 userName 转换为 name,phonenumber 转换为 id emit('selectPerson', { name: person.userName || person.name || '', - id: person.mobileNumber || person.id || '' + id: person.lawCertificateNum || person.mobileNumber || '' }); localPersonPopup.value = false; }; diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js index 27aee9ca..d490124c 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js @@ -182,4 +182,17 @@ const formatEnforcer = (item) => { return enforcers; }; -export { setGoodsNum, isObject, comparisonObject, isElementHidden, formattedTimeYYYYmmdd, formattedTime, getDeviceType, formattedDate, formatEnforcer, formatTime }; +/** + * 电话号码脱敏处理 + * 保留前3位和后4位,中间用 4 个 * 替换 + * @param {string|number} phone 原始电话号码 + * @returns {string} 脱敏后的电话号码,如 138****5678 + */ +const maskPhone = (phone) => { + if (!phone) return ''; + const str = String(phone); + if (str.length < 7) return str; + return str.substring(0, 3) + '****' + str.substring(str.length - 4); +}; + +export { setGoodsNum, isObject, comparisonObject, isElementHidden, formattedTimeYYYYmmdd, formattedTime, getDeviceType, formattedDate, formatEnforcer, formatTime, maskPhone }; diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue index 7f4fb42d..bc268723 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue @@ -7,7 +7,7 @@ --> - + @@ -54,6 +54,7 @@ import { ref, reactive, computed, onMounted } from 'vue'; import { useRouter, useRoute } from 'vue-router'; import { showConfirmDialog, showSuccessToast, showToast } from 'vant'; import { loadDict } from '@/util/dictUtil'; +import { maskPhone } from '@/util/util'; import { saveEnfRegistration, submitEnfRegistration, addNonRegistration, getEnforcementRegistrationDetailById, getSystemConfig } from '@/api/enforcement/index'; import EnterpriseInfoSection from '@/components/enforcement/register/EnterpriseInfoSection.vue'; import EnforcementInfoSection from '@/components/enforcement/register/EnforcementInfoSection.vue'; @@ -156,13 +157,20 @@ const selectedPersonsList = computed(() => { const list = []; // 添加默认执法人员 if (enforcementPersons.value[0]) { - list.push({ id: enforcementPersons.value[0].id, name: enforcementPersons.value[0].name, userId: enforcementPersons.value[0].userId }); + list.push( + { + id: enforcementPersons.value[0].id, + name: enforcementPersons.value[0].name, + userId: enforcementPersons.value[0].userId || '', + phone: maskPhone(enforcementPersons.value[0].phonenumber || ''), + lawCertificateNum: enforcementPersons.value[0].lawCertificateNum || '' + }); } // 添加额外执法人员 additionalPersons.value.forEach(p => { if (p.id || p.name) { - list.push({ id: p.id, name: p.name, userId: p.userId }); - } + list.push({ id: p.id, name: p.name, userId: p.userId || '', lawCertificateNum: p.lawCertificateNum || '' }); + } }); return list; }); @@ -186,6 +194,7 @@ const handleOpenPersonPicker = (index) => { // 选择人员 const handleSelectPerson = (person) => { + console.log(person); if (currentEditIndex.value === -1) { // 新增人员 additionalPersons.value.push({ name: person.name, id: person.id, phonenumber: person.id }); @@ -441,29 +450,41 @@ const getCurrentDateTime = () => { }; // 保存 +const formRef = ref(); const handleSave = () => { - showConfirmDialog({ - title: '确认保存', - message: '确认保存吗?', - width: '80%', - }).then(() => { - const payload = buildSubmitPayload(); - saveEnfRegistration(payload, (res) => { - if (res.code === 200 || res.code === 0) { - showSuccessToast('保存成功'); - sessionStorage.removeItem('enterpriseScanData'); - sessionStorage.removeItem('outOfCityEnterprise'); - sessionStorage.removeItem('scanReason'); - router.replace('/enforcement/enforcementList'); - } else { - showToast(res.msg || '保存失败'); - } - }, (err) => { - console.error('保存接口失败', err); - showToast('保存失败'); + // 验证执法人员数量 + const totalPersons = enforcementPersons.value.length + additionalPersons.value.length; + if (totalPersons < 2) { + showToast('人员至少需要2人'); + return; + } + // 验证表单必填项 + formRef.value?.validate().then(() => { + showConfirmDialog({ + title: '确认保存', + message: '确认保存吗?', + width: '80%', + }).then(() => { + const payload = buildSubmitPayload(); + saveEnfRegistration(payload, (res) => { + if (res.code === 200 || res.code === 0) { + showSuccessToast('保存成功'); + sessionStorage.removeItem('enterpriseScanData'); + sessionStorage.removeItem('outOfCityEnterprise'); + sessionStorage.removeItem('scanReason'); + router.replace('/enforcement/enforcementList'); + } else { + showToast(res.msg || '保存失败'); + } + }, (err) => { + console.error('保存接口失败', err); + showToast('保存失败'); + }); + }).catch(() => { + // 用户取消 }); }).catch(() => { - // 用户取消 + showToast('请完善必填信息'); }); }; @@ -710,8 +731,11 @@ onMounted(() => { let useCommon = JSON.parse(useCommonStr);; const name = useCommon.userName || ''; const phonenumber = useCommon.phonenumber || ''; + const lawCertificateNum = useCommon.lawCertificateNum || ''; if (name || phonenumber) { - enforcementPersons.value = [{ name, phonenumber, userId: useCommon.userId || '' }]; + enforcementPersons.value = [ + { name, phonenumber: maskPhone(phonenumber || ''), userId:useCommon.userId || '',lawCertificateNum } + ]; } formData.enforcementUnit = useCommon.bureauUnitName || '';