Commit c64da17be716df2108e0fdf17834a588273f5828

Authored by 刘淇
1 parent b88fbd00

新的业务线

common/utils/common.js
@@ -247,6 +247,14 @@ export const translateRoles = (roles = []) => { @@ -247,6 +247,14 @@ export const translateRoles = (roles = []) => {
247 'wy_worker': '物业养护员', 247 'wy_worker': '物业养护员',
248 'Inspector_global': '全域督察员', 248 'Inspector_global': '全域督察员',
249 'AI_dispatcher': 'AI工单派发人员', 249 'AI_dispatcher': 'AI工单派发人员',
  250 + 'zxgl_inspector': '秩序管理巡查员',
  251 + 'zxgl_worker': '秩序管理养护员',
  252 + 'team_leader_zxgl': '秩序管理组长',
  253 + 'team_leader_hjws': '环境卫生养护组长',
  254 + 'hjws_worker': '环境卫生养护员',
  255 + 'hjws_inspector': '环境卫生巡查员',
  256 + 'group_approver': '应急抢险集团审批人员',
  257 + 'rescue_person': '抢险上报人员',
250 }; 258 };
251 // 过滤有效角色 + 翻译 + 中文逗号拼接 259 // 过滤有效角色 + 翻译 + 中文逗号拼接
252 return roles 260 return roles
pages-sub/daily/maintain-manage/finish-plan-detail.vue
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 align="middle" 27 align="middle"
28 ></up-cell> 28 ></up-cell>
29 29
30 - <!-- 3. 工单名称 --> 30 +
31 <up-cell 31 <up-cell
32 title="养护周期" 32 title="养护周期"
33 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`" 33 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`"
pages-sub/daily/maintain-manage/record-detail-list.vue
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 align="middle" 31 align="middle"
32 ></up-cell> 32 ></up-cell>
33 33
34 - <!-- 3. 工单名称 --> 34 +
35 <up-cell 35 <up-cell
36 title="养护周期" 36 title="养护周期"
37 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`" 37 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`"
pages-sub/daily/patrol-manage/finish-plan-detail.vue
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 <view class="content-wrap" v-for="(i, index) in orderDetail" :key="index"> 14 <view class="content-wrap" v-for="(i, index) in orderDetail" :key="index">
15 <!-- 工单详情内容 --> 15 <!-- 工单详情内容 -->
16 <up-cell-group :border="false" inset > 16 <up-cell-group :border="false" inset >
17 - <!-- 1. 工单名称 --> 17 +
18 <up-cell 18 <up-cell
19 align="middle" 19 align="middle"
20 > 20 >
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 align="middle" 33 align="middle"
34 ></up-cell> 34 ></up-cell>
35 35
36 - <!-- 3. 工单名称 --> 36 +
37 <up-cell 37 <up-cell
38 title="养护周期" 38 title="养护周期"
39 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`" 39 :value="`${i.rate}${uni.$dict.getDictLabel('cycle_id_type', i.cycleId)}`"
pages-sub/daily/quick-order/add-order.vue
@@ -66,9 +66,9 @@ @@ -66,9 +66,9 @@
66 </template> 66 </template>
67 </up-form-item> 67 </up-form-item>
68 68
69 - <!-- 3. 工单名称(下拉框) --> 69 + <!-- 3. 问题类型(下拉框) -->
70 <up-form-item 70 <up-form-item
71 - label="工单名称" 71 + label="问题类型"
72 prop="orderName" 72 prop="orderName"
73 border-bottom 73 border-bottom
74 required 74 required
@@ -78,7 +78,7 @@ @@ -78,7 +78,7 @@
78 v-model="workOrderForm.orderName" 78 v-model="workOrderForm.orderName"
79 disabled 79 disabled
80 disabled-color="#ffffff" 80 disabled-color="#ffffff"
81 - placeholder="请选择工单名称" 81 + placeholder="请选择问题类型"
82 border="none" 82 border="none"
83 ></up-input> 83 ></up-input>
84 <template #right> 84 <template #right>
@@ -164,11 +164,11 @@ @@ -164,11 +164,11 @@
164 @select="handleRoadNameSelect" 164 @select="handleRoadNameSelect"
165 ></up-action-sheet> 165 ></up-action-sheet>
166 166
167 - <!-- 工单名称下拉弹窗 --> 167 + <!-- 问题类型下拉弹窗 -->
168 <up-action-sheet 168 <up-action-sheet
169 :show="showOrderName" 169 :show="showOrderName"
170 :actions="orderNameList" 170 :actions="orderNameList"
171 - title="请选择工单名称" 171 + title="请选择问题类型"
172 @close="showOrderName = false" 172 @close="showOrderName = false"
173 @select="handleOrderNameSelect" 173 @select="handleOrderNameSelect"
174 ></up-action-sheet> 174 ></up-action-sheet>
@@ -189,9 +189,13 @@ export default { @@ -189,9 +189,13 @@ export default {
189 'yl': '园林', 189 'yl': '园林',
190 'sz': '市政', 190 'sz': '市政',
191 'wy': '物业', 191 'wy': '物业',
  192 + 'zx': '秩序管理',
  193 + 'hj': '环境卫生',
192 '园林': 'yl', 194 '园林': 'yl',
193 '市政': 'sz', 195 '市政': 'sz',
194 - '物业': 'wy' 196 + '物业': 'wy',
  197 + '秩序管理': 'zx',
  198 + '环境卫生': 'hj',
195 }, 199 },
196 busiLineOptions: [], // 业务线选项列表 200 busiLineOptions: [], // 业务线选项列表
197 // 问题照片列表 201 // 问题照片列表
@@ -210,7 +214,7 @@ export default { @@ -210,7 +214,7 @@ export default {
210 roadId: 0, // 道路ID 214 roadId: 0, // 道路ID
211 roadName: '', // 道路名称 215 roadName: '', // 道路名称
212 workLocation: '', // 工单位置 216 workLocation: '', // 工单位置
213 - orderName: '', // 工单名称 217 + orderName: '', // 问题类型
214 problemDesc: '', // 情况描述 218 problemDesc: '', // 情况描述
215 handleResult: '', // 处理结果描述(不必填) 219 handleResult: '', // 处理结果描述(不必填)
216 lat: 0, // 纬度 220 lat: 0, // 纬度
@@ -228,7 +232,7 @@ export default { @@ -228,7 +232,7 @@ export default {
228 { type: 'string', required: true, message: '请选择道路名称', trigger: ['change', 'blur'] } 232 { type: 'string', required: true, message: '请选择道路名称', trigger: ['change', 'blur'] }
229 ], 233 ],
230 orderName: [ 234 orderName: [
231 - { type: 'string', required: true, message: '请选择工单名称', trigger: ['change', 'blur'] } 235 + { type: 'string', required: true, message: '请选择问题类型', trigger: ['change', 'blur'] }
232 ], 236 ],
233 problemDesc: [ 237 problemDesc: [
234 { type: 'string', required: true, message: '请输入情况描述', trigger: ['change', 'blur'] }, 238 { type: 'string', required: true, message: '请输入情况描述', trigger: ['change', 'blur'] },
@@ -275,7 +279,7 @@ export default { @@ -275,7 +279,7 @@ export default {
275 }, 279 },
276 onShow() { 280 onShow() {
277 this.orderNameList = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('work_name')); 281 this.orderNameList = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('work_name'));
278 - console.log('工单名称列表:', this.orderNameList); 282 + console.log('问题类型列表:', this.orderNameList);
279 }, 283 },
280 methods: { 284 methods: {
281 // 初始化业务线选项 285 // 初始化业务线选项
@@ -483,7 +487,7 @@ export default { @@ -483,7 +487,7 @@ export default {
483 this.$refs.workOrderFormRef.validateField('roadName'); 487 this.$refs.workOrderFormRef.validateField('roadName');
484 }, 488 },
485 /** 489 /**
486 - * 选择工单名称 490 + * 选择问题类型
487 */ 491 */
488 handleOrderNameSelect(e) { 492 handleOrderNameSelect(e) {
489 console.log(e); 493 console.log(e);
pages-sub/daily/quick-order/index.vue
@@ -117,7 +117,7 @@ import { ref } from &#39;vue&#39;; @@ -117,7 +117,7 @@ import { ref } from &#39;vue&#39;;
117 import { workorderPage } from "@/api/quick-order/quick-order"; 117 import { workorderPage } from "@/api/quick-order/quick-order";
118 import { timeFormat } from '@/uni_modules/uview-plus'; 118 import { timeFormat } from '@/uni_modules/uview-plus';
119 const selectedSortValue = ref(1); 119 const selectedSortValue = ref(1);
120 -// 1 位置 2 工单名称 3 情况描述 4 工单编号 120 +// 1 位置 2 问题类型 3 情况描述 4 工单编号
121 const sortOptions = ref([ 121 const sortOptions = ref([
122 {name: '位置', id: 1}, 122 {name: '位置', id: 1},
123 {name: '名称', id: 2}, 123 {name: '名称', id: 2},
@@ -136,7 +136,7 @@ const queryList = async (pageNo, pageSize) =&gt; { @@ -136,7 +136,7 @@ const queryList = async (pageNo, pageSize) =&gt; {
136 searchContent: searchValue.value.trim() || '', 136 searchContent: searchValue.value.trim() || '',
137 pageNo: pageNo, 137 pageNo: pageNo,
138 pageSize: pageSize, 138 pageSize: pageSize,
139 - type: selectedSortValue.value // 1 位置 2 工单名称 3 情况描述 4 工单编号 139 + type: selectedSortValue.value // 1 位置 2 问题类型 3 情况描述 4 工单编号
140 }; 140 };
141 console.log('请求参数:', apiParams); 141 console.log('请求参数:', apiParams);
142 const res = await workorderPage(apiParams); 142 const res = await workorderPage(apiParams);
pages-sub/daily/quick-order/order-detail.vue
@@ -53,9 +53,9 @@ @@ -53,9 +53,9 @@
53 53
54 </up-cell> 54 </up-cell>
55 55
56 - <!-- 3. 工单名称 --> 56 + <!-- 3. 问题类型 -->
57 <up-cell 57 <up-cell
58 - title="工单名称" 58 + title="问题类型"
59 :value="orderDetail.orderName || '--'" 59 :value="orderDetail.orderName || '--'"
60 align="middle" 60 align="middle"
61 ></up-cell> 61 ></up-cell>
pages-sub/problem/ai-manage/index.vue
@@ -73,7 +73,7 @@ @@ -73,7 +73,7 @@
73 <view class="u-line-1 u-body-value">{{ item.lonLatAddress || '-' }}</view> 73 <view class="u-line-1 u-body-value">{{ item.lonLatAddress || '-' }}</view>
74 </view> 74 </view>
75 <view class="u-body-item u-flex"> 75 <view class="u-body-item u-flex">
76 - <view class="u-body-item-title">工单名称:</view> 76 + <view class="u-body-item-title">问题类型:</view>
77 <view class="u-line-1 u-body-value">{{ item.orderName || '未填写' }}</view> 77 <view class="u-line-1 u-body-value">{{ item.orderName || '未填写' }}</view>
78 </view> 78 </view>
79 <view class="u-body-item u-flex"> 79 <view class="u-body-item u-flex">
pages-sub/problem/regional-order-manage/add-order.vue
@@ -24,9 +24,9 @@ @@ -24,9 +24,9 @@
24 ></up-input> 24 ></up-input>
25 </up-form-item> 25 </up-form-item>
26 26
27 - <!-- 2. 工单名称(下拉框) --> 27 + <!-- 2. 问题类型(下拉框) -->
28 <up-form-item 28 <up-form-item
29 - label="工单名称" 29 + label="问题类型"
30 prop="orderName" 30 prop="orderName"
31 border-bottom 31 border-bottom
32 required 32 required
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 v-model="workOrderForm.orderName" 36 v-model="workOrderForm.orderName"
37 disabled 37 disabled
38 disabled-color="#ffffff" 38 disabled-color="#ffffff"
39 - placeholder="请选择工单名称" 39 + placeholder="请选择问题类型"
40 border="none" 40 border="none"
41 ></up-input> 41 ></up-input>
42 <template #right> 42 <template #right>
@@ -211,7 +211,9 @@ const CONST = { @@ -211,7 +211,9 @@ const CONST = {
211 // 路由地址 211 // 路由地址
212 PAGE_ORDER_LIST: '/pages-sub/problem/regional-order-manage/index', 212 PAGE_ORDER_LIST: '/pages-sub/problem/regional-order-manage/index',
213 // 业务线映射 213 // 业务线映射
214 - BUSI_LINE_MAP: { yl: '园林', sz: '市政', wy: '物业', '园林': 'yl', '市政': 'sz', '物业': 'wy' }, 214 + BUSI_LINE_MAP: { yl: '园林', sz: '市政', wy: '物业', '园林': 'yl', '市政': 'sz', '物业': 'wy', 'zx': '秩序管理',
  215 + 'hj': '环境卫生', '秩序管理': 'zx',
  216 + '环境卫生': 'hj', },
215 // 角色标识 217 // 角色标识
216 ROLE: { MANAGER: 'regional_manager', INSPECTOR: 'Inspector_global', PATROL: 'patrol_global' } 218 ROLE: { MANAGER: 'regional_manager', INSPECTOR: 'Inspector_global', PATROL: 'patrol_global' }
217 } 219 }
pages-sub/problem/regional-order-manage/add-patrol-order.vue
@@ -24,9 +24,9 @@ @@ -24,9 +24,9 @@
24 ></up-input> 24 ></up-input>
25 </up-form-item> 25 </up-form-item>
26 26
27 - <!-- 2. 工单名称(下拉框) --> 27 + <!-- 2. 问题类型(下拉框) -->
28 <up-form-item 28 <up-form-item
29 - label="工单名称" 29 + label="问题类型"
30 prop="orderName" 30 prop="orderName"
31 border-bottom 31 border-bottom
32 required 32 required
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 v-model="workOrderForm.orderName" 36 v-model="workOrderForm.orderName"
37 disabled 37 disabled
38 disabled-color="#ffffff" 38 disabled-color="#ffffff"
39 - placeholder="请选择工单名称" 39 + placeholder="请选择问题类型"
40 border="none" 40 border="none"
41 ></up-input> 41 ></up-input>
42 <template #right> 42 <template #right>
@@ -114,12 +114,16 @@ const userStore = useUserStore(); @@ -114,12 +114,16 @@ const userStore = useUserStore();
114 // ========== 业务线相关状态 ========== 114 // ========== 业务线相关状态 ==========
115 // 业务线映射表 115 // 业务线映射表
116 const busiLineMap = ref({ 116 const busiLineMap = ref({
117 - 'yl': '园林',  
118 - 'sz': '市政',  
119 - 'wy': '物业',  
120 - '园林': 'yl',  
121 - '市政': 'sz',  
122 - '物业': 'wy' 117 + 'yl': '园林',
  118 + 'sz': '市政',
  119 + 'wy': '物业',
  120 + 'zx': '秩序管理',
  121 + 'hj': '环境卫生',
  122 + '园林': 'yl',
  123 + '市政': 'sz',
  124 + '物业': 'wy',
  125 + '秩序管理': 'zx',
  126 + '环境卫生': 'hj',
123 }); 127 });
124 128
125 // 业务线选项列表 129 // 业务线选项列表
pages-sub/problem/regional-order-manage/distribution-order.vue
@@ -23,9 +23,9 @@ @@ -23,9 +23,9 @@
23 ></up-input> 23 ></up-input>
24 </up-form-item> 24 </up-form-item>
25 25
26 - <!-- 2. 工单名称(下拉框)【赋值回显 + 完全禁止修改】 --> 26 + <!-- 2. 问题类型(下拉框)【赋值回显 + 完全禁止修改】 -->
27 <up-form-item 27 <up-form-item
28 - label="工单名称" 28 + label="问题类型"
29 prop="orderName" 29 prop="orderName"
30 border-bottom 30 border-bottom
31 required 31 required
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 v-model="workOrderForm.orderName" 34 v-model="workOrderForm.orderName"
35 disabled 35 disabled
36 36
37 - placeholder="暂无工单名称" 37 + placeholder="暂无问题类型"
38 border="none" 38 border="none"
39 ></up-input> 39 ></up-input>
40 </up-form-item> 40 </up-form-item>
@@ -209,11 +209,15 @@ const userStore = useUserStore(); @@ -209,11 +209,15 @@ const userStore = useUserStore();
209 // 业务线映射表 209 // 业务线映射表
210 const busiLineMap = ref({ 210 const busiLineMap = ref({
211 'yl': '园林', 211 'yl': '园林',
212 - 'sz': '市政',  
213 - 'wy': '物业',  
214 - '园林': 'yl',  
215 - '市政': 'sz',  
216 - '物业': 'wy' 212 + 'sz': '市政',
  213 + 'wy': '物业',
  214 + 'zx': '秩序管理',
  215 + 'hj': '环境卫生',
  216 + '园林': 'yl',
  217 + '市政': 'sz',
  218 + '物业': 'wy',
  219 + '秩序管理': 'zx',
  220 + '环境卫生': 'hj',
217 }); 221 });
218 222
219 // 业务线选项列表 223 // 业务线选项列表
@@ -372,7 +376,7 @@ const echoOrderData = (orderItem) =&gt; { @@ -372,7 +376,7 @@ const echoOrderData = (orderItem) =&gt; {
372 workOrderForm.busiLineCn = busiLineMap.value[orderItem.busiLine]; 376 workOrderForm.busiLineCn = busiLineMap.value[orderItem.busiLine];
373 } 377 }
374 378
375 - // 回显基础字段【核心:工单位置/工单名称/情况描述 赋值】 379 + // 回显基础字段【核心:工单位置/问题类型/情况描述 赋值】
376 workOrderForm.roadId = orderItem.roadId || 0; 380 workOrderForm.roadId = orderItem.roadId || 0;
377 workOrderForm.roadName = orderItem.roadName || ''; 381 workOrderForm.roadName = orderItem.roadName || '';
378 workOrderForm.workLocation = orderItem.lonLatAddress || orderItem.roadName || ''; 382 workOrderForm.workLocation = orderItem.lonLatAddress || orderItem.roadName || '';
pages-sub/problem/regional-order-manage/index.vue
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 <view class="u-line-1 u-body-value">{{ item.lonLatAddress || '-' }}</view> 79 <view class="u-line-1 u-body-value">{{ item.lonLatAddress || '-' }}</view>
80 </view> 80 </view>
81 <view class="u-body-item u-flex"> 81 <view class="u-body-item u-flex">
82 - <view class="u-body-item-title">工单名称:</view> 82 + <view class="u-body-item-title">问题类型:</view>
83 <view class="u-line-1 u-body-value">{{ item.orderName || '未填写' }}</view> 83 <view class="u-line-1 u-body-value">{{ item.orderName || '未填写' }}</view>
84 </view> 84 </view>
85 <view class="u-body-item u-flex"> 85 <view class="u-body-item u-flex">
pages-sub/problem/regional-order-manage/order-detail.vue
@@ -42,10 +42,10 @@ @@ -42,10 +42,10 @@
42 </template> 42 </template>
43 </up-cell> 43 </up-cell>
44 44
45 - <!-- 工单名称 --> 45 + <!-- 问题类型 -->
46 <up-cell align="middle"> 46 <up-cell align="middle">
47 <template #title> 47 <template #title>
48 - <view style="min-width: 200rpx">工单名称</view> 48 + <view style="min-width: 200rpx">问题类型</view>
49 </template> 49 </template>
50 <template #value> 50 <template #value>
51 <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> 51 <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view>
pages-sub/problem/work-order-manage/add-order.vue
@@ -67,9 +67,9 @@ @@ -67,9 +67,9 @@
67 </template> 67 </template>
68 </up-form-item> 68 </up-form-item>
69 69
70 - <!-- 3. 工单名称(下拉框) --> 70 + <!-- 3. 问题类型(下拉框) -->
71 <up-form-item 71 <up-form-item
72 - label="工单名称" 72 + label="问题类型"
73 prop="orderName" 73 prop="orderName"
74 border-bottom 74 border-bottom
75 required 75 required
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 v-model="workOrderForm.orderName" 79 v-model="workOrderForm.orderName"
80 disabled 80 disabled
81 disabled-color="#ffffff" 81 disabled-color="#ffffff"
82 - placeholder="请选择工单名称" 82 + placeholder="请选择问题类型"
83 border="none" 83 border="none"
84 ></up-input> 84 ></up-input>
85 <template #right> 85 <template #right>
@@ -212,12 +212,15 @@ const userStore = useUserStore(); @@ -212,12 +212,15 @@ const userStore = useUserStore();
212 // 业务线映射表(键:英文标识,值:中文名称;新增反向映射:中文->英文) 212 // 业务线映射表(键:英文标识,值:中文名称;新增反向映射:中文->英文)
213 const busiLineMap = ref({ 213 const busiLineMap = ref({
214 'yl': '园林', 214 'yl': '园林',
215 - 'sz': '市政',  
216 - 'wy': '物业',  
217 - // 反向映射:用于通过中文名称(workOrderForm.busiLineCn)获取对应的英文标识  
218 - '园林': 'yl',  
219 - '市政': 'sz',  
220 - '物业': 'wy' 215 + 'sz': '市政',
  216 + 'wy': '物业',
  217 + 'zx': '秩序管理',
  218 + 'hj': '环境卫生',
  219 + '园林': 'yl',
  220 + '市政': 'sz',
  221 + '物业': 'wy',
  222 + '秩序管理': 'zx',
  223 + '环境卫生': 'hj',
221 }); 224 });
222 225
223 // 业务线选项列表(仅保留name字段=中文名称,适配单选框配置) 226 // 业务线选项列表(仅保留name字段=中文名称,适配单选框配置)
@@ -308,7 +311,7 @@ const workOrderFormRules = reactive({ @@ -308,7 +311,7 @@ const workOrderFormRules = reactive({
308 { type: 'string', required: true, message: '请选择道路名称', trigger: ['change', 'blur'] } 311 { type: 'string', required: true, message: '请选择道路名称', trigger: ['change', 'blur'] }
309 ], 312 ],
310 orderName: [ 313 orderName: [
311 - { type: 'string', required: true, message: '请选择工单名称', trigger: ['change', 'blur'] } 314 + { type: 'string', required: true, message: '请选择问题类型', trigger: ['change', 'blur'] }
312 ], 315 ],
313 pressingTypeName: [ 316 pressingTypeName: [
314 { type: 'string', required: true, message: '请选择紧急程度', trigger: ['change'] } 317 { type: 'string', required: true, message: '请选择紧急程度', trigger: ['change'] }
@@ -376,9 +379,9 @@ onShow(() =&gt; { @@ -376,9 +379,9 @@ onShow(() =&gt; {
376 console.log(uni.$dict.getDictLabel('ai_image_status', 20)) 379 console.log(uni.$dict.getDictLabel('ai_image_status', 20))
377 console.log(uni.$dict.getDictSimpleList('work_name')) 380 console.log(uni.$dict.getDictSimpleList('work_name'))
378 381
379 - // 初始化工单名称列表 382 + // 初始化问题类型列表
380 orderNameList.value = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('work_name')) 383 orderNameList.value = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('work_name'))
381 - console.log('工单名称列表:', orderNameList.value) 384 + console.log('问题类型列表:', orderNameList.value)
382 385
383 // 初始化紧急程度列表 386 // 初始化紧急程度列表
384 pressingTypeList.value = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('workorder_pressing_type')) 387 pressingTypeList.value = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('workorder_pressing_type'))
@@ -496,7 +499,7 @@ const handleActionSheetOpen = (type) =&gt; { @@ -496,7 +499,7 @@ const handleActionSheetOpen = (type) =&gt; {
496 list: roadNameList.value 499 list: roadNameList.value
497 }, 500 },
498 orderName: { 501 orderName: {
499 - title: '请选择工单名称', 502 + title: '请选择问题类型',
500 list: orderNameList.value 503 list: orderNameList.value
501 }, 504 },
502 pressingType: { 505 pressingType: {
pages-sub/problem/work-order-manage/index.vue
@@ -319,7 +319,7 @@ const isInspector = computed(() =&gt; { @@ -319,7 +319,7 @@ const isInspector = computed(() =&gt; {
319 // patrol_global 全域巡查员 319 // patrol_global 全域巡查员
320 // regional_manager 大区经理 320 // regional_manager 大区经理
321 321
322 - return userStore.userInfo?.roles?.includes('yl_inspector') || false; 322 + return ['yl_inspector', 'zxgl_inspector', 'hjws_inspector'].some(role => userStore.userInfo?.roles?.includes(role)) || false;
323 }); 323 });
324 // 回退弹窗相关 324 // 回退弹窗相关
325 const rejectModalShow = ref(false); // 回退modal显示开关 325 const rejectModalShow = ref(false); // 回退modal显示开关
@@ -358,7 +358,7 @@ const queryList = async (pageNo, pageSize) =&gt; { @@ -358,7 +358,7 @@ const queryList = async (pageNo, pageSize) =&gt; {
358 searchContent: searchValue.value.trim() || '', 358 searchContent: searchValue.value.trim() || '',
359 pageNo, 359 pageNo,
360 pageSize, 360 pageSize,
361 - type: selectedSortValue.value // 1-位置 2-工单名称 3-情况描述 4-工单编号 361 + type: selectedSortValue.value // 1-位置 2-问题类型 3-情况描述 4-工单编号
362 }; 362 };
363 let res; 363 let res;
364 // 0-待办 1-已办 2-我发起的任务 364 // 0-待办 1-已办 2-我发起的任务
pages-sub/problem/work-order-manage/order-detail.vue
@@ -42,10 +42,10 @@ @@ -42,10 +42,10 @@
42 </template> 42 </template>
43 </up-cell> 43 </up-cell>
44 44
45 - <!-- 工单名称 --> 45 + <!-- 问题类型-->
46 <up-cell align="middle"> 46 <up-cell align="middle">
47 <template #title> 47 <template #title>
48 - <view style="min-width: 200rpx">工单名称</view> 48 + <view style="min-width: 200rpx">问题类型</view>
49 </template> 49 </template>
50 <template #value> 50 <template #value>
51 <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> 51 <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view>
pages/workbench/index.vue
@@ -9,11 +9,13 @@ @@ -9,11 +9,13 @@
9 ></up-loading-page> 9 ></up-loading-page>
10 10
11 <!-- 蓝色装饰块 --> 11 <!-- 蓝色装饰块 -->
12 - <view class="blue-decor-block" v-show="!loading"> 12 + <view class="blue-decor-block" v-if="!loading">
13 <text class="welcome-text u-line-1">你好{{ userInfo?.user?.nickname || '' }}</text> 13 <text class="welcome-text u-line-1">你好{{ userInfo?.user?.nickname || '' }}</text>
14 <text class="platform-name">蓟城山水全域智能运营管理平台</text> 14 <text class="platform-name">蓟城山水全域智能运营管理平台</text>
15 </view> 15 </view>
16 16
  17 +
  18 +
17 <!-- 内容容器 --> 19 <!-- 内容容器 -->
18 <view class="content-wrap"> 20 <view class="content-wrap">
19 <!-- 空状态:过滤后无数据且非加载中时显示 --> 21 <!-- 空状态:过滤后无数据且非加载中时显示 -->
@@ -22,6 +24,22 @@ @@ -22,6 +24,22 @@
22 mode="permission" 24 mode="permission"
23 ></u-empty> 25 ></u-empty>
24 26
  27 +
  28 + <view class="" v-if="!userInfo?.user?.nickname">
  29 + <text class="welcome-text u-line-1 " style="padding: 20px 0;text-align: center;">本小程序仅限特定服务人群使用,需验证账号后方可登录</text>
  30 +
  31 + <up-button
  32 + class="login-btn"
  33 + type="primary"
  34 + size="large"
  35 +
  36 + @click="ToLoginPage"
  37 + shape="circle"
  38 + >
  39 + 前往登录
  40 + </up-button>
  41 + </view>
  42 +
25 <!-- 菜单卡片列表:仅渲染有子节点的父模块 --> 43 <!-- 菜单卡片列表:仅渲染有子节点的父模块 -->
26 <view class="menu-card-wrap"> 44 <view class="menu-card-wrap">
27 <up-card 45 <up-card
@@ -118,16 +136,16 @@ onShow(async () =&gt; { @@ -118,16 +136,16 @@ onShow(async () =&gt; {
118 136
119 // 未登录处理:跳转登录页,阻止后续逻辑执行 137 // 未登录处理:跳转登录页,阻止后续逻辑执行
120 if (!isLogin()) { 138 if (!isLogin()) {
121 - uni.showToast({title: '请先登录', icon: 'none', duration: 1500});  
122 - setTimeout(() => {  
123 - uni.reLaunch({  
124 - url: '/pages/login/index',  
125 - fail: (err) => {  
126 - console.error('跳转登录页失败:', err);  
127 - uni.showToast({title: '跳转登录页异常', icon: 'none'});  
128 - }  
129 - });  
130 - }, 1500); 139 + // uni.showToast({title: '请先登录', icon: 'none', duration: 1500});
  140 + // setTimeout(() => {
  141 + // uni.reLaunch({
  142 + // url: '/pages/login/index',
  143 + // fail: (err) => {
  144 + // console.error('跳转登录页失败:', err);
  145 + // uni.showToast({title: '跳转登录页异常', icon: 'none'});
  146 + // }
  147 + // });
  148 + // }, 1500);
131 loading.value = false; 149 loading.value = false;
132 return; 150 return;
133 } 151 }
@@ -144,6 +162,16 @@ onShow(async () =&gt; { @@ -144,6 +162,16 @@ onShow(async () =&gt; {
144 } 162 }
145 }); 163 });
146 164
  165 +const ToLoginPage = ()=> {
  166 + uni.reLaunch({
  167 + url: '/pages/login/index',
  168 + fail: (err) => {
  169 + console.error('跳转登录页失败:', err);
  170 + uni.showToast({title: '跳转登录页异常', icon: 'none'});
  171 + }
  172 + });
  173 +}
  174 +
147 const handleMenuClick = (item: MenuItem) => { 175 const handleMenuClick = (item: MenuItem) => {
148 if (!item.jumpUrl) { 176 if (!item.jumpUrl) {
149 uni.showToast({title: '暂无跳转链接', icon: 'none', duration: 2000}); 177 uni.showToast({title: '暂无跳转链接', icon: 'none', duration: 2000});