diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/package.json b/zdxt-web-client/zdxt-efcode-enforcement-app/package.json index 7ef9e968..1d7bdd7b 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/package.json +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/package.json @@ -6,7 +6,7 @@ "scripts": { "vite": "vite --mode enforcement-dev", "vite-server-app:enforcement-dev": "vite --mode enforcement-dev", - "vite-server-app:enforcement-test": "vite --mode enforcement-test", + "vite-test": "vite --mode enforcement-test", "build-app:enforcement-dev": "vite build --mode enforcement-dev --outDir dist/enforcement-dev", "build-app:enforcement-test": "vite build --mode enforcement-test --outDir dist/enforcement-test", "build-app:enforcement-prod": "vite build --mode enforcement-prod --outDir dist/enforcement-prod" diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js index 297b95bd..bba08826 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js @@ -46,6 +46,9 @@ export const queryXzqzList = (enterpriseNumber, success, error) => _get(baseUrl export const queryEnfRegistrationList = (params, success, error) => _get(baseUrl + "/enfRegistration/queryList", params, success, error); +// 历史活动列表 +export const queryNonRegistrationList = (params, success, error) => _get(baseUrl + "/nonRegistration/queryList", params, success, error); + export const queryEnforcementNoticeList = (params, success, error) => _post(baseUrl + "/enforcement/queryList", params, success, error); export const queryUsersByPage = (params, success, error) => _post(baseUrl + "/system/queryUsersByPage", params, success, error); diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/NonEnforcementInfoSection.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/NonEnforcementInfoSection.vue new file mode 100644 index 00000000..8681ecae --- /dev/null +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/NonEnforcementInfoSection.vue @@ -0,0 +1,342 @@ + + + + + \ No newline at end of file diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/EnforcementRecordList.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/EnforcementRecordList.vue index 985e3f2c..9003c222 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/EnforcementRecordList.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/EnforcementRecordList.vue @@ -100,7 +100,6 @@ const fetchEnfRegistrationList = (isLoadMore = false) => { if (hasMore.value) { pageNum.value++; } - console.log('执法记录数据加载成功:', cityRecords.value); } else { console.error('获取执法记录失败:', res.msg); } diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityList.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityList.vue new file mode 100644 index 00000000..4c2e45de --- /dev/null +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityList.vue @@ -0,0 +1,369 @@ + + + + + \ No newline at end of file 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 cd80006b..f518bf42 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 @@ -15,8 +15,9 @@ @open-picker="showPopups.enterprise = true" /> - + + + +
- 保存 + 保存 提交
@@ -63,6 +80,7 @@ import { showConfirmDialog, showSuccessToast, showToast } from 'vant'; import { loadDict } from '@/util/dictUtil'; import EnterpriseInfoSection from '@/components/enforcement/register/EnterpriseInfoSection.vue'; import EnforcementInfoSection from '@/components/enforcement/register/EnforcementInfoSection.vue'; +import NonEnforcementInfoSection from '@/components/enforcement/register/NonEnforcementInfoSection.vue'; import RegisterPopups from '@/components/enforcement/register/RegisterPopups.vue'; const router = useRouter(); @@ -73,6 +91,9 @@ const route = useRoute(); // 补录模式 const isSignMode = ref(false); +// 是否为非行政执法模式 +const isNonEnforcement = ref(false); + // 企业数据 const enterpriseData = ref({ enterpriseName: '', @@ -92,6 +113,7 @@ const formData = reactive({ jointEnforcement: 0, entrustedEnforcement: 0, fileList: [], + attachments: [], }); // 执法人员 @@ -197,6 +219,23 @@ const handleRemoveBasis = (index) => { } }; +// 添加附件 +const handleAddAttachment = () => { + // 模拟选择图片,实际项目中应调用相机或相册 + const mockImage = { + url: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=document%20attachment%20icon&image_size=square', + name: '附件' + (formData.attachments.length + 1) + }; + if (formData.attachments.length < 8) { + formData.attachments.push(mockImage); + } +}; + +// 删除附件 +const handleRemoveAttachment = (index) => { + formData.attachments.splice(index, 1); +}; + // 选择执法依据 const handleSelectBasis = (basis) => { const index = currentEditIndex.value; @@ -306,6 +345,10 @@ onMounted(() => { const reason = route.query.reason; isSignMode.value = reason === '补录'; + // 判断是否为非行政执法模式 + const enforceType = route.query.type; + isNonEnforcement.value = enforceType === 'non-enforcement'; + // 默认从缓存获取企业信息 if (!isSignMode.value) { const cached = sessionStorage.getItem('enterpriseScanData'); diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enterpriseScanPreview.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enterpriseScanPreview.vue index 438a25dc..ff01d4da 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enterpriseScanPreview.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enterpriseScanPreview.vue @@ -9,7 +9,7 @@
企业画像
-
执法记录
+
{{ isNonEnforcement ? '历史活动' : '执法记录' }}
@@ -88,20 +88,21 @@ - -
- + +
+ +
+ + +
+
- - + @@ -117,6 +118,7 @@ import { showFailToast } from 'vant'; import { getEnterpriseInformation, queryXzjcList, queryXzcfList, queryXzqzList } from '@/api/enforcement/index'; import EnterpriseRecordCard from './components/EnterpriseRecordCard.vue'; import EnforcementRecordList from './components/EnforcementRecordList.vue'; +import HistoryActivityList from './components/HistoryActivityList.vue'; const router = useRouter(); const route = useRoute(); @@ -131,6 +133,9 @@ const enterpriseData = ref(null); const enterpriseNumber = ref(''); const qrCodeValid = ref(false); +// 是否为非行政执法模式 +const isNonEnforcement = ref(false); + // 是否需要显示展开按钮 const showAddressExpand = ref(false); const showScopeExpand = ref(false); @@ -182,6 +187,10 @@ const checkTextOverflow = () => { // ========== 初始化加载 ========== onMounted(() => { + // 判断是否为非行政执法模式 + const enforceType = route.query.type; + isNonEnforcement.value = enforceType === 'non-enforcement'; + // 从路由参数获取企业编号 const entNumber = route.query.enterpriseNumber; if (entNumber) { @@ -272,6 +281,7 @@ const toSign = () => { sessionStorage.setItem('enterpriseScanData', JSON.stringify(enterpriseScanData)); router.push({ path: '/enforcement/enforcementRegister', + query: { type: isNonEnforcement.value ? 'non-enforcement' : undefined } }); }; diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue index f23177a1..b5b042ee 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue @@ -92,13 +92,17 @@