From e420aeee174639745ba998e6d6ed01bd83bbbc75 Mon Sep 17 00:00:00 2001 From: wangmingyong Date: Wed, 13 May 2026 20:53:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(enterprise):=20=E8=AF=84=E4=BB=B7=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=8F=90=E4=BA=A4=E6=8E=A5=E5=8F=A3=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E3=80=81=E5=B7=B2=E8=AF=84=E4=BB=B7=E6=95=B0=E6=8D=AE=E5=9B=9E?= =?UTF-8?q?=E5=A1=AB=E3=80=81=E5=8F=AA=E8=AF=BB=E6=80=81=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E3=80=81satisfaction=E6=95=B0=E5=80=BC=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/enterprise/index.js | 21 ++ .../src/components/complaint/BureauPicker.vue | 67 +++- .../complaint/ComplaintItemPicker.vue | 33 +- .../complaint/ComplaintTypePicker.vue | 9 +- .../src/config/env.js | 2 + .../src/util/dictUtil.js | 97 ++++++ .../src/views/demo/TestEnfDemoList.vue | 2 +- .../enforcement/enforcementCaseInfo.vue | 13 +- .../enforcement/enforcementEvaluate.vue | 227 +++++++------- .../enforcement/enforcementEvaluateDetail.vue | 291 ++++++++++++------ .../enforcement/enforcementNoticeList.vue | 2 +- .../enforcementRegistrationList.vue | 14 +- .../enforcement/registrationDetail.vue | 194 ++++++++---- .../enterprise/home/enterpriseHomeV2.vue | 53 ++-- .../views/enterprise/law/lawServiceList.vue | 2 +- .../src/views/enterprise/my/complaintList.vue | 13 +- .../enterprise/my/complaintSuggestion.vue | 261 ++++++++++++++-- .../src/views/enterprise/my/myPage.vue | 4 +- .../vite-env/.env.enterprise-dev | 2 + 19 files changed, 959 insertions(+), 348 deletions(-) create mode 100644 zdxt-web-client/zdxt-efcode-enterprise-app/src/util/dictUtil.js diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/index.js b/zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/index.js index f8f3a1ce..b30210b0 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/index.js +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/index.js @@ -30,6 +30,15 @@ export const getLawDetail = (params, success, error) => _get(enterpriseAppBaseUr //执法案件信息详情 export const getLawCaseDetail = (params, success, error) => _get(enterpriseAppBaseUrl+"/lawEnforcementCase/lawCasedetail",params,success,error) +//评价详情 +export const getEvaluateDetail = (params, success, error) => _get("/app/enterprise/evaluate", params, success, error) + +//提交评价 +export const submitEvaluate = (params, success, error) => _post("/app/enterprise/evaluate", params, success, error) + +//企业消息 / 执法消息详情 +export const getEnforcementRegistrationDetailById = (params, success, error) => _get(enterpriseAppBaseUrl + "/enforcement_registration/queryDetailById", params, success, error) + //普法服务列表 export const getEducationServicesList = (params, success, error) => _get("/app/enterprise/todoitem/list",params,success,error) @@ -42,6 +51,18 @@ export const getComplaintList = (params, success, error) => _get(enterpriseAppBa //投诉建议-详情 export const getComplaintDetail = (params, success, error) => _get(enterpriseAppBaseUrl+"/complaint/detail",params,success,error) +//投诉建议-提交 +export const addComplaint = (params, success, error) => _post(enterpriseAppBaseUrl+"/complaint/add",params,success,error) + +//查询字典数据(公共) +export const queryDict = (params, success, error) => _get("/common/dict/queryDict",params,success,error) + +//执法单位(部门)列表 +export const getDeptList = (params, success, error) => _get("/enforcementcode/virtualUnit/list",params,success,error) + +//投诉事项列表 +export const getComplaintItemList = (params, success, error) => _get(enterpriseAppBaseUrl +"/complaint/listNotComplaint",params,success,error) + //深i企登录-暂时没有环境调通 export const getSiqLoginAuth = (params, success, error) => _post(enterpriseAppBaseUrl +"/thirdLogin/siqLogin",params,success,error); diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue index d719c3f5..827c3ba8 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue @@ -17,17 +17,19 @@
- - - - - - - - +
+ 加载中... +
+
@@ -38,17 +40,19 @@ import { computed } from 'vue'; const props = defineProps({ show: { type: Boolean, default: false }, - list: { type: Array, default: () => [] } + list: { type: Array, default: () => [] }, + loading: { type: Boolean, default: false } }); const emit = defineEmits(['update:show', 'confirm']); const searchKey = ref(''); -const selected = ref(''); +const selected = ref(null); const filteredList = computed(() => { + if (!searchKey.value) return props.list; - return props.list.filter(item => item.includes(searchKey.value)); + return props.list.filter(item => (item.virName || '').includes(searchKey.value)); }); const onUpdateShow = (val) => { @@ -67,7 +71,7 @@ const onCancel = () => { watch(() => props.show, (val) => { if (val) { searchKey.value = ''; - selected.value = ''; + selected.value = null; } }); @@ -132,4 +136,37 @@ watch(() => props.show, (val) => { color: #333; } } + +.bureau-row { + display: flex; + align-items: center; + padding: 0.25rem 0.3rem; + background: #fff; + border-bottom: 1px solid #f5f5f5; + cursor: pointer; + + .bureau-radio { + margin-right: 0.2rem; + flex-shrink: 0; + } + + .bureau-name { + flex: 1; + font-size: 0.32rem; + color: #333; + word-break: break-all; + } +} + +.loading-wrap { + display: flex; + align-items: center; + justify-content: center; + padding: 1rem 0; + + :deep(.van-loading__text) { + font-size: 0.3rem; + color: #999; + } +} diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue index 4660287e..532259b5 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue @@ -32,11 +32,12 @@
-
执法时间:{{ item.time }}
+
执法时间:{{ item.time }}
{{ item.title }}
-
执法单位:{{ item.unit }}
-
执法人员:{{ item.personnel.join('、') }}
-
执法类别:{{ item.category }}
+
{{ item.subName }}
+
执法单位:{{ item.unit }}
+
执法人员:{{ item.personnel.join('、') }}
+
执法类别:{{ item.category }}
没有更多了
@@ -86,18 +87,23 @@ const getDatePart = (datetime) => datetime.split(' ')[0]; const doFilter = () => { let result = props.list; if (startDate.value) { - result = result.filter(item => getDatePart(item.time) >= startDate.value); + result = result.filter(item => item.time && getDatePart(item.time) >= startDate.value); } if (endDate.value) { - result = result.filter(item => getDatePart(item.time) <= endDate.value); + result = result.filter(item => item.time && getDatePart(item.time) <= endDate.value); } if (searchKey.value) { const key = searchKey.value; - result = result.filter(item => - item.title.includes(key) || - item.unit.includes(key) || - item.personnel.some(p => p.includes(key)) - ); + result = result.filter(item => { + const title = item.title || ''; + const subName = item.subName || ''; + const unit = item.unit || ''; + const personnel = Array.isArray(item.personnel) ? item.personnel : []; + return title.includes(key) + || subName.includes(key) + || unit.includes(key) + || personnel.some(p => p.includes(key)); + }); } filteredList.value = result; }; @@ -165,6 +171,11 @@ watch(() => props.show, (val) => { filteredList.value = [...props.list]; } }); + +// 列表数据延迟返回时(弹窗已打开、接口随后才返回),同步更新过滤结果 +watch(() => props.list, () => { + doFilter(); +}, { deep: false }); diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementNoticeList.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementNoticeList.vue index 89c5edf4..78b09a3f 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementNoticeList.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementNoticeList.vue @@ -19,7 +19,7 @@ diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementRegistrationList.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementRegistrationList.vue index fce23a5c..d5fbfe95 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementRegistrationList.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementRegistrationList.vue @@ -36,7 +36,7 @@
- @@ -133,7 +133,7 @@ const fetchList = () => { const params = { pageNum: pageNum.value, pageSize: pageSize.value, - enterpriseNumber: useCommon.enterpriseNumber, + // enterpriseNumber: useCommon.enterpriseNumber, }; // 关键字搜索 if (searchText.value) { @@ -251,10 +251,10 @@ const onDateConfirm = (value) => { onSearch(); }; -// ========== 跳转详情 ========== +// ========== 跳转详情(与评价详情页保持一致)========== const toDetailView = (id) => { router.push({ - path: '/enterprise/registrationDetail', + path: '/enterprise/enforcementEvaluateDetail', query: { id } }); }; @@ -292,7 +292,7 @@ const toEvaluate = (id, checkItem) => { flex-direction: row; padding: 0.2rem 0.27rem 0; gap: 0.15rem; - + margin-bottom: 8px; .search-btn { flex: 1; height: 0.7rem; @@ -323,7 +323,7 @@ const toEvaluate = (id, checkItem) => { .card-item { background: #fff; border-radius: 0.2rem; - margin-top: 0.27rem; + margin-bottom: 0.27rem; padding: 0.2rem 0.3rem; position: relative; } @@ -342,7 +342,7 @@ const toEvaluate = (id, checkItem) => { color: #fff; font-size: 0.32rem; background: #1367fe; - padding: 10px; + padding: 6px; border-radius: 5px; } } diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue index 252fbce2..35870910 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue @@ -8,41 +8,46 @@
执法信息
执法单位 - {{ detail.bureauDeptName }} + {{ lawDetail.bureauDeptName }}
执法人员
-
{{ p }}
+
{{ lawDetail.lawEnforcer }},{{ lawDetail.lawEnforcerId }}
+
{{ lawDetail.lawEnforcerTwo }},{{ lawDetail.lawEnforcerIdTwo }}
执法类别 - {{ detail.lawEnforceCategoryText }} + {{ lawDetail.lawEnforceCategoryText }}
任务来源 - {{ detail.taskSource }} + {{ getDictText('check_category', lawDetail.checkCategory) }}
执法事项 - {{ detail.lawEnforcementItem }} + {{ lawDetail.lawEnforcementItem }}
执法时间 - {{ detail.enforcementTime }} + {{ lawDetail.enforcementTime }}
受委托执法 - {{ detail.entrusted }} + {{ lawDetail.hasAuto === '1' ? '是' : '否' }}
委托行政机关 - {{ detail.entrustingOrgan }} + {{ lawDetail.entrustDeptName }}
附件 - {{ detail.attachment }} +
+ + - +
@@ -51,47 +56,47 @@
案件信息
案件名称 - {{ detail.caseName }} + {{ caseDetail.caseName }}
- 行政相对人类型 - {{ detail.counterpartType }} + 行政当事人类型 + {{ getDictText('partyType', caseDetail.counterpartType) }}
行政检查决定书名称 - {{ detail.decisionName }} + {{ caseDetail.decisionDocumentName }}
行政检查决定书文号 - {{ detail.decisionNumber }} + {{ caseDetail.decisionDocumentNumber }}
行政检查类型 - {{ detail.checkType }} + {{ caseDetail.checkType }}
检查结果日期 - {{ detail.resultDate }} + {{ caseDetail.resultDate }}
行政检查内容 - {{ detail.checkContent }} + {{ caseDetail.checkContent }}
行政检查结果 - {{ detail.checkResult }} + {{ caseDetail.checkResult }}
行政检查决定 - {{ detail.checkDecision }} + {{ caseDetail.decisionDate }}
执法主体名称 - {{ detail.enforcementSubject }} + {{ caseDetail.lawEnforcementSubjectName }}
备注 - {{ detail.remark }} + {{ caseDetail.remark }}
@@ -100,47 +105,67 @@
案件信息
案件名称 - {{ detail.caseName }} + {{ caseDetail.caseName }}
- 行政相对人类型 - {{ detail.counterpartType }} + 行政当事人类型 + {{ getDictText('partyType', caseDetail.partyType) }}
-
- {{ category === '2' ? '行政处罚类型' : '行政强制措施类型' }} - {{ detail.measureType }} +
+ 行政强制类型 + {{ caseDetail.penaltyCategory }}
决定文书名称 - {{ detail.decisionDocName }} + {{ caseDetail.decisionDocumentName }}
决定文书号 - {{ detail.decisionDocNumber }} + {{ caseDetail.decisionDocumentNumber }}
- {{ category === '2' ? '行政处罚理由' : '行政强制措施理由' }} - {{ detail.measureReason }} + {{ category === '2' ? '违法事实' : '行政强制措施理由' }} + {{ caseDetail.fact }}
- {{ category === '2' ? '行政处罚依据' : '行政强制措施依据' }} - {{ detail.measureBasis }} + {{ category === '2' ? '处罚依据' : '行政强制措施依据' }} + {{ caseDetail.penaltyBasis }}
-
- {{ category === '2' ? '处罚内容' : '强制所行内容' }} - {{ detail.measureContent }} + + +
+ 强制所示内容 + {{ caseDetail.penaltyBasis }}
-
- 执法主体名称 - {{ detail.enforcementSubject }} + +
+ 处罚类型 + {{ getMultiDictText('law_enforce_category', caseDetail.penaltyCategory) }} +
+
+ 处罚内容 + {{ caseDetail.content }} +
+
+ 罚款金额(万元) + {{ caseDetail.penaltyAmount }} +
+
+ 没收违法所得、没收非法财物的金额(万元) + {{ caseDetail.collectionAmount }}
{{ category === '2' ? '处罚决定日期' : '强制措施决定日期' }} - {{ detail.decisionDate }} + {{ caseDetail.decisionDate }}
+
+ 执法主体名称 + {{ caseDetail.lawEnforcementSubjectName }} +
+
备注 - {{ detail.remark }} + {{ caseDetail.remark }}
@@ -149,37 +174,81 @@