|
|
|
@ -77,7 +77,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 { saveEnfRegistration, submitEnfRegistration } from '@/api/enforcement/index'; |
|
|
|
import { saveEnfRegistration, submitEnfRegistration, addNonRegistration } from '@/api/enforcement/index'; |
|
|
|
import EnterpriseInfoSection from '@/components/enforcement/register/EnterpriseInfoSection.vue'; |
|
|
|
import EnforcementInfoSection from '@/components/enforcement/register/EnforcementInfoSection.vue'; |
|
|
|
import NonEnforcementInfoSection from '@/components/enforcement/register/NonEnforcementInfoSection.vue'; |
|
|
|
@ -107,14 +107,36 @@ const formData = reactive({ |
|
|
|
checkCss: '', |
|
|
|
category: '', |
|
|
|
taskSource: '', |
|
|
|
enforcementMatter: '', |
|
|
|
lawEnforcementItemText: '', |
|
|
|
enforcementBases: [''], |
|
|
|
enforcementBasesIds: [''], |
|
|
|
reason: '系统未能有效生成监管码', |
|
|
|
enforcementTime: '', |
|
|
|
jointEnforcement: 0, |
|
|
|
entrustedEnforcement: 0, |
|
|
|
jointEnforcement: '0', |
|
|
|
entrustedEnforcement: '0', |
|
|
|
entrustedAgency: '', |
|
|
|
entrustedAgencyId: '', |
|
|
|
fileList: [], |
|
|
|
attachments: [], |
|
|
|
id: '', |
|
|
|
unionNo: '', |
|
|
|
lawId: '', |
|
|
|
lawText: '', |
|
|
|
uniteCheck: '', |
|
|
|
enforce: '', |
|
|
|
enforceReason: '', |
|
|
|
lawField: '', |
|
|
|
lawFieldText: '', |
|
|
|
deptTexts: '', |
|
|
|
deptObjs: [], |
|
|
|
userObjs: [], |
|
|
|
isUnite: 0, |
|
|
|
reslut: 0, |
|
|
|
remark: '', |
|
|
|
subsidiaryer: '', |
|
|
|
subsidiaryerId: '', |
|
|
|
subsidiaryerText: '', |
|
|
|
fileListObj: [] |
|
|
|
}); |
|
|
|
|
|
|
|
// 执法人员 |
|
|
|
@ -154,14 +176,7 @@ const selectedPersonsList = computed(() => { |
|
|
|
|
|
|
|
// 选项数据(从字典获取) |
|
|
|
const categoryOptions = ref([]); |
|
|
|
|
|
|
|
const taskSourceOptions = [ |
|
|
|
{ text: '年度计划', value: '年度计划' }, |
|
|
|
{ text: '临时任务', value: '临时任务' }, |
|
|
|
{ text: '上级交办', value: '上级交办' }, |
|
|
|
{ text: '群众举报', value: '群众举报' }, |
|
|
|
]; |
|
|
|
|
|
|
|
const checkCategoryOptions = ref([]); |
|
|
|
// ========== 事件处理函数 ========== |
|
|
|
|
|
|
|
// 关闭弹窗(保持 reactive 对象的响应式) |
|
|
|
@ -211,12 +226,14 @@ const handleOpenBasisPicker = (index) => { |
|
|
|
// 添加执法依据 |
|
|
|
const handleAddBasis = () => { |
|
|
|
formData.enforcementBases.push(''); |
|
|
|
formData.enforcementBasesIds.push(''); |
|
|
|
}; |
|
|
|
|
|
|
|
// 删除执法依据 |
|
|
|
const handleRemoveBasis = (index) => { |
|
|
|
if (formData.enforcementBases.length > 1) { |
|
|
|
formData.enforcementBases.splice(index, 1); |
|
|
|
formData.enforcementBasesIds.splice(index, 1); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
@ -242,6 +259,7 @@ const handleSelectBasis = (basis) => { |
|
|
|
const index = currentEditIndex.value; |
|
|
|
if (index >= 0 && index < formData.enforcementBases.length) { |
|
|
|
formData.enforcementBases[index] = basis.name; |
|
|
|
formData.enforcementBasesIds[index] = basis.id || ''; |
|
|
|
} |
|
|
|
showPopups.basis = false; |
|
|
|
}; |
|
|
|
@ -259,6 +277,7 @@ const handleSelectEnterprise = (enterprise) => { |
|
|
|
const handleLinkNotice = (notice) => { |
|
|
|
formData.relatedNotice = `${notice.checkItem}`; |
|
|
|
formData.checkCss = notice.id; |
|
|
|
formData.lawEnforcementItemText = notice.checkItem || ''; |
|
|
|
showPopups.notice = false; |
|
|
|
// showSuccessToast('关联成功'); |
|
|
|
}; |
|
|
|
@ -281,8 +300,9 @@ const handleShowEntrustedAgencyPicker = () => { |
|
|
|
}; |
|
|
|
|
|
|
|
// 选择委托行政机关 |
|
|
|
const handleSelectEntrustedAgency = (agencyName) => { |
|
|
|
formData.entrustedAgency = agencyName; |
|
|
|
const handleSelectEntrustedAgency = ({ name, id }) => { |
|
|
|
formData.entrustedAgency = name; |
|
|
|
formData.entrustedAgencyId = id; |
|
|
|
showPopups.entrustedAgency = false; |
|
|
|
}; |
|
|
|
|
|
|
|
@ -295,55 +315,127 @@ const goBack = () => { |
|
|
|
const buildSubmitPayload = () => { |
|
|
|
const useCommonStr = sessionStorage.getItem('useCommon'); |
|
|
|
const useCommon = JSON.parse(useCommonStr) || {}; |
|
|
|
|
|
|
|
|
|
|
|
// 主执法人员 |
|
|
|
const mainPerson = enforcementPersons.value[0] || {}; |
|
|
|
const lawCertificateNumText = mainPerson.name && mainPerson.phonenumber |
|
|
|
? `${mainPerson.name} ${mainPerson.phonenumber}` |
|
|
|
const lawEnforcer = mainPerson.name || ''; |
|
|
|
const lawEnforcerId = mainPerson.id || ''; |
|
|
|
const lawEnforcerTel = mainPerson.phonenumber || ''; |
|
|
|
const lawCertificateNumText = mainPerson.name && mainPerson.phonenumber |
|
|
|
? `${mainPerson.name} ${mainPerson.phonenumber}` |
|
|
|
: ''; |
|
|
|
|
|
|
|
const lawEnforcerTwo = additionalPersons.value |
|
|
|
.filter(p => p.name) |
|
|
|
.map(p => p.name) |
|
|
|
|
|
|
|
// 额外执法人员(多个,逗号拼接) |
|
|
|
const validAdditionalPersons = additionalPersons.value.filter(p => p.name); |
|
|
|
const lawEnforcerTwo = validAdditionalPersons.map(p => p.name).join(','); |
|
|
|
const lawEnforcerIdTwo = validAdditionalPersons.map(p => p.id).join(','); |
|
|
|
const lawCertificateNumTwoText = validAdditionalPersons |
|
|
|
.filter(p => p.name && p.phonenumber) |
|
|
|
.map(p => `${p.name} ${p.phonenumber}`) |
|
|
|
.join(','); |
|
|
|
|
|
|
|
const lawEnforcerIdTwo = additionalPersons.value |
|
|
|
.filter(p => p.id) |
|
|
|
.map(p => p.id) |
|
|
|
|
|
|
|
// 构建 lawEnforcerOther:姓名,证件号,姓名,证件号,... |
|
|
|
const lawEnforcerOther = validAdditionalPersons |
|
|
|
.filter(p => p.name && p.phonenumber) |
|
|
|
.map(p => `${p.name},${p.phonenumber}`) |
|
|
|
.join(','); |
|
|
|
|
|
|
|
const lawEnforcerIdOther = validAdditionalPersons.map(p => p.id).join(','); |
|
|
|
const lawEnforcerTelOther = validAdditionalPersons.map(p => p.phonenumber || '').join(','); |
|
|
|
|
|
|
|
// 任务来源:数字和中文名称 |
|
|
|
const lawEnforceCategory = categoryOptions.value.find(item => item.text === formData.category)?.value || ''; |
|
|
|
const lawEnforceCategoryText = formData.category || ''; |
|
|
|
|
|
|
|
|
|
|
|
// 执法类型:数字和中文名称 |
|
|
|
const checkCategory = taskSourceOptions.find(item => item.text === formData.taskSource)?.value || ''; |
|
|
|
const checkCategory = checkCategoryOptions.value.find(item => item.text === formData.taskSource)?.value || ''; |
|
|
|
const checkCategoryText = formData.taskSource || ''; |
|
|
|
|
|
|
|
|
|
|
|
// 执法依据ID列表 |
|
|
|
const lawEnforcementBasis = formData.enforcementBasesIds ? formData.enforcementBasesIds.join(',') : ''; |
|
|
|
|
|
|
|
// 非行政执法payload |
|
|
|
if (isNonEnforcement.value) { |
|
|
|
return { |
|
|
|
enterpriseName: enterpriseData.value.enterpriseName || '', |
|
|
|
enterpriseNumber: enterpriseData.value.enterpriseNumber || '', |
|
|
|
enterpriseAddress: enterpriseData.value.enterpriseAddress || '', |
|
|
|
enforcementTime: formData.enforcementTime || '', |
|
|
|
lawEnforcer: lawEnforcer, |
|
|
|
lawEnforcerId: lawEnforcerId, |
|
|
|
lawEnforcerTel: lawEnforcerTel, |
|
|
|
lawEnforcerOther: lawEnforcerOther, |
|
|
|
lawEnforcerIdOther: lawEnforcerIdOther, |
|
|
|
lawEnforcerTelOther: lawEnforcerTelOther, |
|
|
|
bureauDeptId: useCommon.bureauUnitId || '', |
|
|
|
bureauDeptName: useCommon.bureauUnitName || '', |
|
|
|
creditcode: '', |
|
|
|
lawEnforcementType: checkCategory, |
|
|
|
lawEnforcementTypeText: checkCategoryText, |
|
|
|
lawEnforcementItem: '', |
|
|
|
lawEnforcementItemText: formData.lawEnforcementItemText || '', |
|
|
|
lawEnforcementBasis: lawEnforcementBasis, |
|
|
|
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '', |
|
|
|
fileList: buildFileList(), |
|
|
|
userId: useCommon.userId || '', |
|
|
|
reason: formData.reason || '', |
|
|
|
checkCss: formData.checkCss || '0' |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
// 行政执法payload |
|
|
|
return { |
|
|
|
enterpriseName: enterpriseData.value.enterpriseName || '', |
|
|
|
enterpriseNumber: enterpriseData.value.enterpriseNumber || '', |
|
|
|
oureauDeptName: formData.enforcementUnit || '', |
|
|
|
checkCss: formData.checkCss || '', |
|
|
|
id: formData.id || '', |
|
|
|
lawEnforcement: useCommon.deptName || '', |
|
|
|
lawEnforcementId: useCommon.deptId || '', |
|
|
|
bureauDeptId: useCommon.bureauUnitId || '', |
|
|
|
bureauDeptName: useCommon.bureauUnitName || '', |
|
|
|
lawEnforcer: lawEnforcer, |
|
|
|
lawEnforcerId: lawEnforcerId, |
|
|
|
lawCertificateNumText: lawCertificateNumText, |
|
|
|
lawEnforcerTwo: lawEnforcerTwo, |
|
|
|
lawEnforcerIdTwo: lawEnforcerIdTwo, |
|
|
|
lawEnforceCategory: lawEnforceCategory, |
|
|
|
lawEnforceCategoryText: lawEnforceCategoryText, |
|
|
|
lawCertificateNumTwoText: lawCertificateNumTwoText, |
|
|
|
subsidiaryer: formData.subsidiaryer || '', |
|
|
|
subsidiaryerId: formData.subsidiaryerId || '', |
|
|
|
subsidiaryerText: formData.subsidiaryerText || '', |
|
|
|
lawEnforcementItem: '', |
|
|
|
lawEnforcementItemText: formData.lawEnforcementItemText || '', |
|
|
|
lawEnforcementBasis: lawEnforcementBasis, |
|
|
|
reslut: formData.reslut || 0, |
|
|
|
remark: formData.remark || '', |
|
|
|
enterpriseName: enterpriseData.value.enterpriseName || '', |
|
|
|
enterpriseNumber: enterpriseData.value.enterpriseNumber || '', |
|
|
|
enterpriseAddress: enterpriseData.value.enterpriseAddress || '', |
|
|
|
enforcementTime: formData.enforcementTime || '', |
|
|
|
updateTimeFlag: 0, |
|
|
|
fileList: buildFileList(), |
|
|
|
fileListObj: formData.fileListObj || [], |
|
|
|
isSubmit: 0, |
|
|
|
unionNo: formData.unionNo || '', |
|
|
|
hasUnion: formData.jointEnforcement === '1' ? 1 : 0, |
|
|
|
hasAuto: formData.entrustedEnforcement === '1' ? 1 : 0, |
|
|
|
lawId: formData.lawId || '', |
|
|
|
lawText: formData.lawText || '', |
|
|
|
uniteCheck: formData.uniteCheck || '', |
|
|
|
enforce: formData.enforce || '', |
|
|
|
checkCss: formData.checkCss || '', |
|
|
|
enforceReason: formData.enforceReason || '', |
|
|
|
lawField: formData.lawField || '', |
|
|
|
lawFieldText: formData.lawFieldText || '', |
|
|
|
checkCategory: checkCategory, |
|
|
|
checkCategoryText: checkCategoryText, |
|
|
|
hasUnion: formData.jointEnforcement || 0, |
|
|
|
hasAuto: formData.entrustedEnforcement || 0, |
|
|
|
lawEnforcement: useCommon.deptName || '', |
|
|
|
lawEnforcementId: useCommon.deptId || '', |
|
|
|
oureauDeptId: useCommon.bureauUnitId || '', |
|
|
|
isRealUnion: formData.jointEnforcement === 1 ? 1 : 0, |
|
|
|
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '', |
|
|
|
fileList: buildFileList(), |
|
|
|
enforcementTime: formData.enforcementTime || '', |
|
|
|
enforcementMatter: formData.enforcementMatter || '', |
|
|
|
lawEnforceCategory: lawEnforceCategory, |
|
|
|
lawEnforceCategoryText: lawEnforceCategoryText, |
|
|
|
userId: useCommon.userId || '', |
|
|
|
deptTexts: formData.deptTexts || '', |
|
|
|
deptObjs: formData.deptObjs || [], |
|
|
|
userObjs: formData.userObjs || [], |
|
|
|
isUnite: formData.isUnite || 0, |
|
|
|
entrustDeptName: formData.entrustedAgency || '', |
|
|
|
entrustDeptId: formData.entrustedAgencyId || '', |
|
|
|
reason: formData.reason || '', |
|
|
|
result: formData.result || '', |
|
|
|
remark: formData.remark || '' |
|
|
|
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '', |
|
|
|
oureauDeptName: formData.enforcementUnit || '' |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
@ -376,28 +468,21 @@ const buildFileList = () => { |
|
|
|
return (formData.fileList || []) |
|
|
|
.filter(img => img && (img.url || img.content)) |
|
|
|
.map(img => { |
|
|
|
return img.url || ''; |
|
|
|
return img.url || (img.content || ''); |
|
|
|
}) |
|
|
|
.filter(Boolean); |
|
|
|
}; |
|
|
|
|
|
|
|
// 提交表单 |
|
|
|
const onSubmit = () => { |
|
|
|
// 有未上传完的附件则拦截 |
|
|
|
const uploadingFile = (formData.fileList || []).find(img => img && img.status === 'uploading'); |
|
|
|
if (uploadingFile) { |
|
|
|
showToast('附件上传中,请稍后'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
showConfirmDialog({ |
|
|
|
title: '确认提交', |
|
|
|
message: '确认提交吗?提交后将无法修改。', |
|
|
|
width: '80%', |
|
|
|
}).then(() => { |
|
|
|
const payload = buildSubmitPayload(); |
|
|
|
console.log('提交数据:', payload); |
|
|
|
submitEnfRegistration(payload, (res) => { |
|
|
|
const submitApi = isNonEnforcement.value ? addNonRegistration : submitEnfRegistration; |
|
|
|
submitApi(payload, (res) => { |
|
|
|
if (res.code === 200 || res.code === 0) { |
|
|
|
showSuccessToast('提交成功'); |
|
|
|
router.push('/enforcement/enforcementList'); |
|
|
|
@ -468,6 +553,9 @@ onMounted(() => { |
|
|
|
categoryOptions.value = columns; |
|
|
|
}); |
|
|
|
|
|
|
|
loadDict('check_category', (columns) => { |
|
|
|
checkCategoryOptions.value = columns; |
|
|
|
}); |
|
|
|
// 设置当前时间 |
|
|
|
const now = new Date(); |
|
|
|
formData.enforcementTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}`; |
|
|
|
|