diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java index 0806174a..ff78a968 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java @@ -130,9 +130,30 @@ public class EfcodeCpReserveVo implements Serializable { /** 执法事项 */ private String enforceContent; - /** 执法单位名称 */ + /** 执法单位名称(发起方) */ private String bureauDeptName; + /** 被约方执法单位名称 */ + private String targetBureauDeptName; + + /** 被约方计划日期 */ + private Date targetPlanDate; + + /** 被约方执行时段 */ + private Long targetPlanTime; + + /** 被约方企业名称 */ + private String targetEnterpriseName; + + /** 被约方执法事项 */ + private String targetEnforceContent; + + /** 被约方执法人员姓名 */ + private String targetEnforceUserNames; + + /** 被约方执法人员电话 */ + private String targetEnforceUserTels; + /** 执法人员姓名 */ private String enforceUserNames; diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml index fce05ba6..24f91264 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml @@ -27,9 +27,17 @@ p.enforce_content, p.bureau_dept_name, p.enforce_user_names, - p.enforce_user_tels + p.enforce_user_tels, + p2.bureau_dept_name AS target_bureau_dept_name, + p2.plan_date AS target_plan_date, + p2.plan_time AS target_plan_time, + p2.enterprise_name AS target_enterprise_name, + p2.enforce_content AS target_enforce_content, + p2.enforce_user_names AS target_enforce_user_names, + p2.enforce_user_tels AS target_enforce_user_tels FROM efcode_cp_reserve r LEFT JOIN efcode_cp_plan p ON r.plan_id = p.id + LEFT JOIN efcode_cp_plan p2 ON r.plan_group_id = p2.id r.sender_id != 'manual_system_sender' diff --git a/zdxt-modules/zdxt-enforcement-nos/src/main/java/com/zdxt/enforcementnos/service/impl/NosLawEnforcementTaskServiceImpl.java b/zdxt-modules/zdxt-enforcement-nos/src/main/java/com/zdxt/enforcementnos/service/impl/NosLawEnforcementTaskServiceImpl.java index c3d854ed..28551891 100644 --- a/zdxt-modules/zdxt-enforcement-nos/src/main/java/com/zdxt/enforcementnos/service/impl/NosLawEnforcementTaskServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-nos/src/main/java/com/zdxt/enforcementnos/service/impl/NosLawEnforcementTaskServiceImpl.java @@ -88,9 +88,9 @@ public class NosLawEnforcementTaskServiceImpl extends ServiceImpl statusConverter; - if (PlatformTypeEnums.ENFORCEMENT.getKey().equals(platformType)) { + if (PlatformTypeEnums.ENFORCEMENT.getKey().equals(platformType.longValue())) { statusConverter = NosLawEnforcementTaskStatusEnum::getDescriptionByCode; - } else if (PlatformTypeEnums.ENTERPRISE.getKey().equals(platformType)) { + } else if (PlatformTypeEnums.ENTERPRISE.getKey().equals(platformType.longValue())) { statusConverter = NosLawEnforcementTaskStatusEnum::getEntDescriptionByCode; } else { statusConverter = NosLawEnforcementTaskStatusEnum::getDescriptionByCode; @@ -135,7 +135,7 @@ public class NosLawEnforcementTaskServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper @@ -257,10 +257,10 @@ public class NosLawEnforcementTaskServiceImpl extends ServiceImpl import("@/views/enforcement/my/notice/cp_notice_detail.vue"), + meta: { + isKeepAlive: false, + }, + }, // 执法端-预告留言 { path: "/enforcement/notice/message", diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_detail.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_detail.vue new file mode 100644 index 00000000..0f672e2f --- /dev/null +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_detail.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_list.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_list.vue index 0bb58b7a..b6147be3 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_list.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_list.vue @@ -30,6 +30,7 @@ @publish="onPublish" @edit="onEdit" @delete="onDelete" + @detail="onDetail" /> @@ -41,6 +42,7 @@ :can-message="true" :can-reinitiate="false" @message="onMessage" + @detail="onDetail" /> @@ -54,12 +56,13 @@ :message-readonly="true" @message="onMessage" @reinitiate="onReinitiate" + @detail="onDetail" /> - -
+ +
@@ -123,6 +126,10 @@ const onReinitiate = (item) => { }); }; +const onDetail = (item) => { + router.push({ path: '/enforcement/notice/detail', query: { id: item.id } }); +}; + const onPublish = (item) => { // 发布前验证必填字段 if (!item.enforceDate) { showToast('该预告缺少执法日期,请编辑后再发布'); return; } diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_tab_content.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_tab_content.vue index 3707007f..9580e47a 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_tab_content.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/notice/cp_notice_tab_content.vue @@ -12,6 +12,7 @@ v-for="item in noticeList" :key="item.id" class="notice-card" + @click="$emit('detail', item)" >
@@ -53,7 +54,7 @@
-
+
关联计划 @@ -153,7 +154,7 @@ const props = defineProps({ messageReadonly: { type: Boolean, default: false }, }); -const emit = defineEmits(['publish', 'edit', 'delete', 'message', 'reinitiate']); +const emit = defineEmits(['publish', 'edit', 'delete', 'message', 'reinitiate', 'detail']); const noticeList = ref([]); const loading = ref(false); @@ -275,6 +276,11 @@ defineExpose({ refresh }); border-radius: 14px; padding: 16px; box-shadow: 0 4px 14px rgba(44, 116, 190, 0.08); + cursor: pointer; + + &:active { + background: #fafcff; + } } .card-header { diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/reserve/cp_reserve_manual.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/reserve/cp_reserve_manual.vue index dc7f57b9..942cedb0 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/reserve/cp_reserve_manual.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/reserve/cp_reserve_manual.vue @@ -37,31 +37,68 @@
-
{{ item.enforceContent || '执法事项' }}
- -
-
企业名称:
-
{{ item.enterpriseName || '-' }}
-
- -
-
计划时间:
-
{{ formatPlanDate(item.planDate) }} {{ getPlanTimeText(item.planTime) }}
-
- -
-
执法人员:
-
{{ item.enforceUserNames || '-' }}
-
- -
-
联系电话:
-
{{ item.enforceUserTels || '-' }}
+ +
+
预约单位
+
+
+
执法单位:
+
{{ item.bureauDeptName || '-' }}
+
+
+
执法人员:
+
{{ item.enforceUserNames || '-' }}
+
+
+
联系电话:
+
{{ item.enforceUserTels || '-' }}
+
+
+
计划时间:
+
{{ formatPlanDate(item.planDate) }} {{ getPlanTimeText(item.planTime) }}
+
+
+
企业名称:
+
{{ item.enterpriseName || '-' }}
+
+
+
执法事项:
+
{{ item.enforceContent || '-' }}
+
+
+
-
-
执法单位:
-
{{ item.bureauDeptName || '-' }}
+ +
+
被约单位
+
+
+
执法单位:
+
{{ item.targetBureauDeptName || '-' }}
+
+
+
执法人员:
+
{{ item.targetEnforceUserNames || '-' }}
+
+
+
联系电话:
+
{{ item.targetEnforceUserTels || '-' }}
+
+
+
计划时间:
+
{{ formatPlanDate(item.targetPlanDate) }} {{ getPlanTimeText(item.targetPlanTime) }}
+
+
+
企业名称:
+
{{ item.targetEnterpriseName || '-' }}
+
+
+
执法事项:
+
{{ item.targetEnforceContent || '-' }}
+
+
+
@@ -362,6 +399,19 @@ const afterOperate = (item, action) => { } } + .unit-section { + border-color: rgba(255, 255, 255, 0.15); + } + + .unit-section-title { + background: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.9); + } + + .info-divider { + border-bottom-color: rgba(255, 255, 255, 0.15); + } + .card-actions { border-top-color: rgba(255, 255, 255, 0.18); } @@ -446,6 +496,31 @@ const afterOperate = (item, action) => { } } +.unit-section { + margin-bottom: 12px; + border: 1px solid #eef2f7; + border-radius: 10px; + overflow: hidden; +} + +.unit-section-title { + font-size: 14px; + font-weight: 600; + color: #1f75c9; + background: #f0f7ff; + padding: 8px 12px; + border-bottom: 1px solid #eef2f7; +} + +.unit-info { + padding: 10px 12px; +} + +.info-divider { + margin-top: 8px; + border-bottom: 1px dashed #c0c4cc; +} + .card-actions { margin-top: 14px; padding-top: 12px;