diff --git a/src/router/index.ts b/src/router/index.ts index 5afaac0..e07892d 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -366,6 +366,180 @@ const routes: RouteRecordRaw[] = [ title: '施工问题上报', }, }, + // ── 防汛管理模块 ── + { + path: '/groupsClockList/:id?/:detail?', + name: 'GroupsClockList', + component: () => import('@/views/fxgl/groupsClockList.vue'), + meta: { + title: '打卡记录', + }, + }, + { + path: '/teamList/:id?', + name: 'TeamList', + component: () => import('@/views/fxgl/teamList.vue'), + meta: { + title: '选择成员', + }, + }, + { + path: '/instructionList', + name: 'InstructionList', + component: () => import('@/views/fxgl/instructionList.vue'), + meta: { + title: '防汛指令', + }, + }, + { + path: '/instructionReceive', + name: 'InstructionReceive', + component: () => import('@/views/fxgl/instructionReceive.vue'), + meta: { + title: '指令详情', + }, + }, + { + path: '/materialList', + name: 'MaterialList', + component: () => import('@/views/fxgl/materialList.vue'), + meta: { + title: '物资管理', + }, + }, + { + path: '/managementInventory/:id?', + name: 'ManagementInventory', + component: () => import('@/views/fxgl/managementInventory.vue'), + meta: { + title: '出入库', + }, + }, + // ── 工程管理模块 ── + { + path: '/constructionTracking', + name: 'ConstructionTracking', + component: () => import('@/views/xjgl/constructionList.vue'), + meta: { + title: '工程项目', + }, + }, + { + path: '/constructionDetail/:id?', + name: 'ConstructionDetail', + component: () => import('@/views/xjgl/constructionDetail.vue'), + meta: { + title: '项目详情', + }, + }, + // ── 排水户管理模块 ── + { + path: '/pshList', + name: 'PshList', + component: () => import('@/views/pshgl/pshList.vue'), + meta: { + title: '排水户管理', + }, + }, + { + path: '/pshglDetail/:detail?', + name: 'PshglDetail', + component: () => import('@/views/pshgl/pshglDetail.vue'), + meta: { + title: '排水户详情', + }, + }, + { + path: '/pshProblemList/:id?', + name: 'PshProblemList', + component: () => import('@/views/pshgl/pshProblemList.vue'), + meta: { + title: '问题列表', + }, + }, + { + path: '/pshProblemDetail/:detail?/:obj?', + name: 'PshProblemDetail', + component: () => import('@/views/pshgl/pshProblemDetail.vue'), + meta: { + title: '问题详情', + }, + }, + { + path: '/pshTaskList/:detail?/:obj?', + name: 'PshTaskList', + component: () => import('@/views/pshgl/pshTaskList.vue'), + meta: { + title: '任务管理', + }, + }, + { + path: '/checkList', + name: 'CheckList', + component: () => import('@/views/pshgl/checkList.vue'), + meta: { + title: '检查记录', + }, + }, + { + path: '/pshCheckList/:id?/:obj?', + name: 'PshCheckList', + component: () => import('@/views/pshgl/pshCheckList.vue'), + meta: { + title: '选择排水户', + }, + }, + { + path: '/pshCheck/:id?/:detail?', + name: 'PshCheck', + component: () => import('@/views/pshgl/pshCheck.vue'), + meta: { + title: '检查报告', + }, + }, + // ── 地图模块 ── + { + path: '/map', + name: 'Map', + component: () => import('@/views/map/index.vue'), + meta: { + title: '地图', + }, + }, + // ── 项目管理模块 ── + { + path: '/projectManagement', + name: 'ProjectManagement', + component: () => import('@/views/projectManagement/index.vue'), + meta: { + title: '项目管理', + }, + }, + { + path: '/projectManagementDetail/:detail?', + name: 'ProjectManagementDetail', + component: () => import('@/views/projectManagement/detail.vue'), + meta: { + title: '项目详情', + }, + }, + // ── 扫码入口模块 ── + { + path: '/pshDetail/:id?', + name: 'PshDetail', + component: () => import('@/views/clientQR/pshDetail.vue'), + meta: { + title: '排水户详情', + }, + }, + { + path: '/deviceDetails/:id?', + name: 'DeviceDetails', + component: () => import('@/views/clientQR/deviceDetails.vue'), + meta: { + title: '设备详情', + }, + }, // 404 兜底 { path: '/:pathMatch(.*)*', diff --git a/src/views/clientQR/deviceDetails.vue b/src/views/clientQR/deviceDetails.vue new file mode 100644 index 0000000..1378bf4 --- /dev/null +++ b/src/views/clientQR/deviceDetails.vue @@ -0,0 +1,136 @@ + + + + + + + + + + + {{ statusMap[device.status] }} + + + + + + + + + + + + + + + + + + + + + + + + 查看养护记录 + + + + + + diff --git a/src/views/clientQR/pshDetail.vue b/src/views/clientQR/pshDetail.vue new file mode 100644 index 0000000..41147d0 --- /dev/null +++ b/src/views/clientQR/pshDetail.vue @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 扫码查看排水户信息 + + + + + + + + diff --git a/src/views/fxgl/groupsClockList.vue b/src/views/fxgl/groupsClockList.vue new file mode 100644 index 0000000..3e89f3a --- /dev/null +++ b/src/views/fxgl/groupsClockList.vue @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + {{ statusMap[item.status] }} + + + + + 打卡时间: {{ item.time }} + {{ item.team }} + + + + + + + + diff --git a/src/views/fxgl/instructionList.vue b/src/views/fxgl/instructionList.vue new file mode 100644 index 0000000..86ca2ec --- /dev/null +++ b/src/views/fxgl/instructionList.vue @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + {{ levelMap[item.level] }} + + + {{ statusMap[item.status] }} + + + + + {{ item.time }} + + + + + + + + diff --git a/src/views/fxgl/instructionReceive.vue b/src/views/fxgl/instructionReceive.vue new file mode 100644 index 0000000..74bf391 --- /dev/null +++ b/src/views/fxgl/instructionReceive.vue @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + {{ instruction.content }} + + + + + + + + + 接收指令 + + + 确认完成 + + + 退回 + + + + + + diff --git a/src/views/fxgl/managementInventory.vue b/src/views/fxgl/managementInventory.vue new file mode 100644 index 0000000..47d308c --- /dev/null +++ b/src/views/fxgl/managementInventory.vue @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + 入库 + 出库 + + + + + + {{ material.unit }} + + + + + + + + + + 确认{{ opType === 'in' ? '入库' : '出库' }} + + + + + + + diff --git a/src/views/fxgl/materialList.vue b/src/views/fxgl/materialList.vue new file mode 100644 index 0000000..4456ff2 --- /dev/null +++ b/src/views/fxgl/materialList.vue @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + {{ typeMap[item.type] }} + + + {{ stockStatusMap[item.status].label }} + + + + + 库存: {{ item.stock }} {{ item.unit }} + 最低库存: {{ item.minStock }} {{ item.unit }} + + + + + + + + diff --git a/src/views/fxgl/teamList.vue b/src/views/fxgl/teamList.vue new file mode 100644 index 0000000..e96fc71 --- /dev/null +++ b/src/views/fxgl/teamList.vue @@ -0,0 +1,129 @@ + + + + + + + + {{ checkedIds.length === filteredList.length && filteredList.length > 0 ? '取消全选' : '全选' }} + + + + + + + + + { + const idx = checkedIds.indexOf(item.id) + if (idx >= 0) checkedIds.splice(idx, 1) + else checkedIds.push(item.id) + }" + > + + + {{ item.role }} + + + + + + + + + + + + + + + + diff --git a/src/views/map/index.vue b/src/views/map/index.vue new file mode 100644 index 0000000..c7b0930 --- /dev/null +++ b/src/views/map/index.vue @@ -0,0 +1,135 @@ + + + + + + + + + + + 智慧水务地图 + MapLibre 地图将在此处加载 + + + + + + + + {{ tool.label }} + + + + + + + + + + diff --git a/src/views/map/tckzPop.vue b/src/views/map/tckzPop.vue new file mode 100644 index 0000000..fe7a409 --- /dev/null +++ b/src/views/map/tckzPop.vue @@ -0,0 +1,119 @@ + + + + + + + 台账信息 + + + + + + + + + {{ item.name }} + {{ item.type }} · {{ item.length }} + + + + + + + + + diff --git a/src/views/map/ybPop.vue b/src/views/map/ybPop.vue new file mode 100644 index 0000000..72df603 --- /dev/null +++ b/src/views/map/ybPop.vue @@ -0,0 +1,137 @@ + + + + + + + 实时仪表 + + + + + + + {{ gauge.name }} + + {{ gauge.value }} + {{ gauge.unit }} + + + + + + + + + diff --git a/src/views/projectManagement/detail.vue b/src/views/projectManagement/detail.vue new file mode 100644 index 0000000..b22b452 --- /dev/null +++ b/src/views/projectManagement/detail.vue @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + {{ project.startDate }} ~ {{ project.endDate }} + + + + + {{ statusMap[project.status] }} + + + + + + + + {{ project.description }} + + + + + + + + + + + + + + + + + + + + + + {{ step.text }} + {{ step.time }} + + + + + + + + diff --git a/src/views/projectManagement/index.vue b/src/views/projectManagement/index.vue new file mode 100644 index 0000000..1a6384a --- /dev/null +++ b/src/views/projectManagement/index.vue @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + {{ statusMap[item.status] }} + + + + + + + + {{ item.no }} + 负责人: {{ item.manager }} + + + + + + + + diff --git a/src/views/pshgl/checkList.vue b/src/views/pshgl/checkList.vue new file mode 100644 index 0000000..88fbb33 --- /dev/null +++ b/src/views/pshgl/checkList.vue @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + {{ resultMap[item.result] }} + + + {{ item.score }} 分 + + + + + 检查员: {{ item.inspector }} + {{ item.checkDate }} + + + + + + + + diff --git a/src/views/pshgl/pshCheck.vue b/src/views/pshgl/pshCheck.vue new file mode 100644 index 0000000..3cd1c69 --- /dev/null +++ b/src/views/pshgl/pshCheck.vue @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + onConfirmScore('drainPipeScore', v)" + @cancel="showDrainPipeScore = false" + /> + + + + + + + onConfirmScore('preTreatmentScore', v)" + @cancel="showPreTreatmentScore = false" + /> + + + + + + + onConfirmScore('oilSeparatorScore', v)" + @cancel="showOilSeparatorScore = false" + /> + + + + + + + onConfirmScore('rainSewageScore', v)" + @cancel="showRainSewageScore = false" + /> + + + + + + + + + + + + onConfirmScore('overallScore', v)" + @cancel="showOverallScore = false" + /> + + + + + + + + + + + + + 提交检查报告 + + + + + + + diff --git a/src/views/pshgl/pshCheckList.vue b/src/views/pshgl/pshCheckList.vue new file mode 100644 index 0000000..94e6a05 --- /dev/null +++ b/src/views/pshgl/pshCheckList.vue @@ -0,0 +1,234 @@ + + + + + + + + + + 全选 + 已选 {{ checkedIds.length }} 户 + + + + + + + + + {{ item.name }} + + {{ typeMap[item.type] }} + + + {{ statusMap[item.status] }} + + + {{ item.address }} + 上次检查: {{ item.lastCheck }} + + + + + + + 开始检查 ({{ checkedIds.length }}) + + + + + + diff --git a/src/views/pshgl/pshList.vue b/src/views/pshgl/pshList.vue new file mode 100644 index 0000000..fe9d8e9 --- /dev/null +++ b/src/views/pshgl/pshList.vue @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + {{ typeMap[item.type] }} + + + {{ statusMap[item.status] }} + + + + + 联系人: {{ item.contact }} + {{ item.drainNo }} + + + + + + + + diff --git a/src/views/pshgl/pshProblemDetail.vue b/src/views/pshgl/pshProblemDetail.vue new file mode 100644 index 0000000..86ddc10 --- /dev/null +++ b/src/views/pshgl/pshProblemDetail.vue @@ -0,0 +1,167 @@ + + + + + + + + + + {{ statusMap[problem.status] }} + + + 严重程度: {{ severityMap[problem.severity] }} + + + + + + + + + + + + + + + + + + {{ problem.description }} + + + + + + + + + + + + 接单处理 + 转派他人 + 标记已解决 + + + + + diff --git a/src/views/pshgl/pshProblemList.vue b/src/views/pshgl/pshProblemList.vue new file mode 100644 index 0000000..958e8a3 --- /dev/null +++ b/src/views/pshgl/pshProblemList.vue @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + {{ statusMap[item.status] }} + + + {{ severityMap[item.severity] }} + + + + + 上报人: {{ item.reporter }} + {{ item.reportTime }} + + + + + + + + diff --git a/src/views/pshgl/pshTaskList.vue b/src/views/pshgl/pshTaskList.vue new file mode 100644 index 0000000..8755932 --- /dev/null +++ b/src/views/pshgl/pshTaskList.vue @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + {{ typeMap[task.type] }} + + + {{ statusMap[task.status] }} + + + + + 负责人: {{ task.assignee }} + + + 截止: {{ task.deadline }} + 创建: {{ task.createTime }} + + + + + + + + diff --git a/src/views/pshgl/pshglDetail.vue b/src/views/pshgl/pshglDetail.vue new file mode 100644 index 0000000..6c44f66 --- /dev/null +++ b/src/views/pshgl/pshglDetail.vue @@ -0,0 +1,131 @@ + + + + + + + + + + {{ drainUser.typeLabel }} + + + {{ drainUser.statusLabel }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ drainUser.remark }} + + + + + + diff --git a/src/views/xjgl/constructionDetail.vue b/src/views/xjgl/constructionDetail.vue new file mode 100644 index 0000000..52f937d --- /dev/null +++ b/src/views/xjgl/constructionDetail.vue @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + {{ statusMap[project.status] }} + + + + + + + + + + + + + + + + + + {{ project.description }} + + + + 现场照片 + + + + + + + + diff --git a/src/views/xjgl/constructionList.vue b/src/views/xjgl/constructionList.vue new file mode 100644 index 0000000..262ce16 --- /dev/null +++ b/src/views/xjgl/constructionList.vue @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + {{ statusMap[item.status] }} + + + + + + + + {{ item.no }} + 负责人: {{ item.manager }} + + + + + + + +
扫码查看排水户信息
智慧水务地图
MapLibre 地图将在此处加载
{{ project.description }}
{{ step.time }}
{{ problem.description }}
{{ drainUser.remark }}