Ver código fonte

工单管理权限整合

zengy 1 semana atrás
pai
commit
8697f24a89

+ 1 - 0
memory/index.md

@@ -66,6 +66,7 @@ npm run dev       # 默认 http://localhost:80
 
 ## 会话记录
 
+- [2026-10-13:移动端工单管理、待办、详情与操作接入](sessions/2026-10-13.md)
 - [2026-10-12:工单派单增加核验人](sessions/2026-10-12.md)
 - [2026-10-10:报警内容固化到 alarm_data](sessions/2026-10-10.md)
 - [2026-09-29:预警流程、督办、附件和清单关联联调](sessions/2026-09-29.md)

+ 5 - 0
memory/long-term.md

@@ -40,6 +40,11 @@
 
 ## 用户已确认决策
 
+- 移动端真实接口列表统一采用“首次进入加载 + 用户下拉刷新”,适合分页的业务列表再增加触底上拉分页;不因页面再次显示自动请求,不使用定时轮询。通讯录是明确的全量加载例外,不分页(2026-10-13)。
+- 移动端通讯录不限制部门范围,一次性返回全部状态正常、未删除的用户,并排除当前登录用户和超级管理员;移动端基于全量结果进行本地搜索(2026-10-13,取代部门范围及服务端分页方案)。
+- 移动端工单权限不依赖 PC 的 `ops:workOrder:query`:我的工单按创建人、责任人、核验人以及有派单权的待派单池取数,并叠加用户部门自身/祖先 101、102、103 对应设备父类型 1/2/3(共同包含 4)的公司范围;`device_id` 为空时创建人可见,派单后责任人和核验人按明确指派可见,其他派单人不可见。待办进一步按当前角色与状态收窄。流程权限统一为 `ops:workOrder:process`(接单/处置/提交验收/申请延期)和 `ops:workOrder:audit`(验收/延期审核),派单仍为 `ops:workOrder:dispatch`;派单候选责任人/核验人必须分别具有 process/audit 权限(2026-10-13)。
+- `work_order.dept_id` 已废弃,工单归属和可见性不得再依赖该字段;PC `/api/ops/workOrder` 列表及状态统计对普通用户统一按 `create_by=当前用户 OR receive_user=当前用户 OR verify_user=当前用户` 过滤,超级管理员不受限制(2026-10-13)。
+
 - 报警清单顶部展示蓝色“报警总数”、红色“监测异常”、绿色“监测已恢复”三张卡片;仅增加统计区,保留原查询、表格和分页。统计按当前查询范围的全部事件计数,监测恢复不等同于工单处置完成(2026-09-24)。
 
 - 报警审核、清单、提醒三个页面及其 `utils`、`styles` 统一放在 `src/views/subSystem/alarm/common`;详情、历史等共享组件继续保留在 `alarm` 根目录。后端菜单组件白名单、初装及增量 SQL 同步新路径,路由 path 与 query 不变(2026-09-24)。

+ 5 - 5
src/views/subSystem/pipeNetwork/ops/workOrder/dispose.vue

@@ -226,12 +226,12 @@
           <div class="abar">
             <el-button
               v-if="canOperate.delay(selectedOrder)"
-              v-hasPermi="['ops:workOrder:delay']"
+              v-hasPermi="['ops:workOrder:process']"
               @click="openDelay(selectedOrder)"
             >申请延期</el-button>
             <el-button
               v-if="canOperate.delayAudit(selectedOrder)"
-              v-hasPermi="['ops:workOrder:delayAudit']"
+              v-hasPermi="['ops:workOrder:audit']"
               @click="openDelayAudit(selectedOrder)"
             >延期审核</el-button>
             <el-button
@@ -254,7 +254,7 @@
             >派单</el-button>
             <el-button
               v-if="canOperate.accept(selectedOrder)"
-              v-hasPermi="['ops:workOrder:accept']"
+              v-hasPermi="['ops:workOrder:process']"
               type="primary"
               @click="openAction(selectedOrder, 'accept')"
             >核查接单</el-button>
@@ -266,13 +266,13 @@
             >开始处理</el-button>
             <el-button
               v-if="canOperate.submitVerify(selectedOrder)"
-              v-hasPermi="['ops:workOrder:submitVerify']"
+              v-hasPermi="['ops:workOrder:process']"
               type="primary"
               @click="openAction(selectedOrder, 'submitVerify')"
             >提交验收</el-button>
             <el-button
               v-if="canOperate.verify(selectedOrder)"
-              v-hasPermi="['ops:workOrder:verify']"
+              v-hasPermi="['ops:workOrder:audit']"
               type="primary"
               @click="openVerify(selectedOrder)"
             >验收审核</el-button>

+ 4 - 4
src/views/subSystem/waterSupply/monitorAlarm/workOrder.vue

@@ -155,7 +155,7 @@
                   <div class="action-buttons">
                     <el-button
                       v-if="canAccept()"
-                      v-hasPermi="['ops:workOrder:accept']"
+                      v-hasPermi="['ops:workOrder:process']"
                       type="primary"
                       @click="handleAccept"
                     >接单</el-button>
@@ -174,7 +174,7 @@
                     >下派任务</el-button>
                     <el-button
                       v-if="canVerify()"
-                      v-hasPermi="['ops:workOrder:accept']"
+                      v-hasPermi="['ops:workOrder:process']"
                       type="warning"
                       icon="Check"
                       @click="handleVerify"
@@ -188,14 +188,14 @@
                     >处理</el-button>
                     <el-button
                       v-if="canComplete()"
-                      v-hasPermi="['ops:workOrder:submitVerify']"
+                      v-hasPermi="['ops:workOrder:process']"
                       type="danger"
                       icon="Checked"
                       @click="handleComplete"
                     >提交验收</el-button>
                     <el-button
                       v-if="canClose()"
-                      v-hasPermi="['ops:workOrder:verify']"
+                      v-hasPermi="['ops:workOrder:audit']"
                       type="success"
                       icon="CircleCheck"
                       @click="handleClose"