From 6bce1057ce854466f1603a2e297fc3421b85f04d Mon Sep 17 00:00:00 2001
From: liugongyu <290219706@qq.com>
Date: Sun, 11 Jan 2026 14:46:26 +0800
Subject: [PATCH] ai 大区经理
---
common/utils/common.js | 26 +++++++++++++++++++++++++-
manifest.json | 10 +++++-----
pages-sub/daily/maintain-manage/finish-plan-detail.vue | 87 ++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------
pages-sub/daily/maintain-manage/index.vue | 4 ++++
pages-sub/daily/patrol-manage/pending-plan-detail.vue | 4 +---
pages-sub/daily/quick-order/order-detail.vue | 4 ++--
pages-sub/problem/ai-manage/index.vue | 20 +++++++++++++-------
pages-sub/problem/regional-order-manage/index.vue | 39 ++++++++++++++++++++++++++++++++++-----
pages-sub/problem/regional-order-manage/order-detail.vue | 57 ++++++++++++++++++++++++++++++++++++++++++---------------
pages-sub/problem/work-order-manage/distribution-order.vue | 2 ++
pages-sub/problem/work-order-manage/index.vue | 12 +++++++++++-
pages-sub/problem/work-order-manage/order-detail.vue | 2 +-
pages/index/index.vue | 4 ++--
pages/login/index.vue | 4 +++-
pages/workbench/index.vue | 2 +-
15 files changed, 194 insertions(+), 83 deletions(-)
diff --git a/common/utils/common.js b/common/utils/common.js
index e736120..d8774fd 100644
--- a/common/utils/common.js
+++ b/common/utils/common.js
@@ -25,7 +25,8 @@ export const nextStepMap = {
},
ylInspector: {
name: '巡查员验收',
- btnText: '验收',
+ // btnText: '验收',
+ ysShow:true,
operateTypePass: 140, //巡查员验收通过: 140
operateTypeNoPass: 240, // 巡查员验收不通过:240
backShow: false,
@@ -56,6 +57,27 @@ export const nextStepMap = {
backShow: true,
renewShow: false
},
+
+ aiRegionManager: {
+ name: 'ai单子大区经理分配',
+ btnText: '分配',
+ operateTypePass: 40, // 大区经理分配:40
+ operateTypeNoPass: 50, // 大区经理退回:50
+ backShow: true,
+ renewShow: false
+ },
+
+ ylAiInspectorStart: {
+ name: 'AI工单派发人员',
+ ysShow:false,
+ btnText: '',
+ operateTypePass: 40, // 大区经理分配:40
+ operateTypeNoPass: 50, // 大区经理退回:50
+ backShow: false,
+ renewShow: false
+ },
+
+
}
export const buzStatusMap = {
@@ -74,6 +96,8 @@ export const buzStatusMap = {
'80': '分配',
'70': '退回',
'60': '分配',
+ '50':'退回',
+ '40':'分配',
}
/**
diff --git a/manifest.json b/manifest.json
index 067a549..4a8c964 100644
--- a/manifest.json
+++ b/manifest.json
@@ -48,17 +48,17 @@
},
/* 快应用特有相关 */
"quickapp" : {},
- "uni-app": {
- "vue3": true,
- "compilerOptions": {}
+ "uni-app" : {
+ "vue3" : true,
+ "compilerOptions" : {}
},
/* 小程序特有相关 */
"mp-weixin" : {
- "appid" : "wxcb4cd34066b97d82",
+ "appid" : "wx64368a9b9e799172",
"setting" : {
"urlCheck" : false
},
- "lazyCodeLoading": "requiredComponents",
+ "lazyCodeLoading" : "requiredComponents",
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
diff --git a/pages-sub/daily/maintain-manage/finish-plan-detail.vue b/pages-sub/daily/maintain-manage/finish-plan-detail.vue
index d195d2c..098fc82 100644
--- a/pages-sub/daily/maintain-manage/finish-plan-detail.vue
+++ b/pages-sub/daily/maintain-manage/finish-plan-detail.vue
@@ -45,23 +45,32 @@
-
-
-
-
-
-
- 暂无问题照片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -188,30 +197,30 @@ onLoad((options) => {
// 图片容器样式
.cell-content-wrap {
- padding: 10rpx 0;
-}
-
-// 自定义相册容器
-.album-container {
- display: flex;
- flex-wrap: wrap;
- gap: 10rpx; // 图片间距
+ //padding: 10rpx 0;
}
-// 单张图片样式
-.album-item {
- width: 70px;
- height: 70px;
- border-radius: 4rpx;
- overflow: hidden;
-}
-
-// 图片样式(强制尺寸 + 覆盖)
-.album-image {
- width: 100%;
- height: 100%;
- object-fit: cover; // 保持比例裁剪,避免拉伸
-}
+//// 自定义相册容器
+//.album-container {
+// display: flex;
+// flex-wrap: wrap;
+// gap: 10rpx; // 图片间距
+//}
+//
+//// 单张图片样式
+//.album-item {
+// width: 70px;
+// height: 70px;
+// border-radius: 4rpx;
+// overflow: hidden;
+//}
+//
+//// 图片样式(强制尺寸 + 覆盖)
+//.album-image {
+// width: 70px;
+// height: 70px;
+// object-fit: cover; // 保持比例裁剪,避免拉伸
+//}
// 空文本样式
.empty-text {
diff --git a/pages-sub/daily/maintain-manage/index.vue b/pages-sub/daily/maintain-manage/index.vue
index 3602cf3..cfef69a 100644
--- a/pages-sub/daily/maintain-manage/index.vue
+++ b/pages-sub/daily/maintain-manage/index.vue
@@ -84,6 +84,10 @@
计划明细
+
+
+
+
道路名称:
{{ item.roadName || '-' }}
diff --git a/pages-sub/daily/patrol-manage/pending-plan-detail.vue b/pages-sub/daily/patrol-manage/pending-plan-detail.vue
index e033114..3330b7c 100644
--- a/pages-sub/daily/patrol-manage/pending-plan-detail.vue
+++ b/pages-sub/daily/patrol-manage/pending-plan-detail.vue
@@ -11,9 +11,7 @@
@@ -265,8 +270,8 @@ const USER_ROLES = userStore.userInfo?.roles || [];
// ========== 基础状态 (按模块分组,语义化更强) ==========
// tab切换
-const activeTab = ref(0); // 0-待办 1-我发起的 2-已办
-const tabList = ref([{name: '待办'}, {name: '我发起的'}, {name: '已办'}]);
+const activeTab = ref(0); // 0-待办 1-已办 2-我发起的
+const tabList = ref([{name: '待办'}, {name: '已办'}, {name: '我发起的'}]);
// 排序与搜索
const selectedSortValue = ref(1);
const sortOptions = ref([
@@ -384,7 +389,7 @@ const queryList = async (pageNo, pageSize) => {
const params = getQueryParams(pageNo, pageSize);
let res;
if (activeTab.value === 0) res = await todoBuzSimplePage(params);
- else if (activeTab.value === 1) res = await myBuzSimplePage(params);
+ else if (activeTab.value === 2) res = await myBuzSimplePage(params);
else res = await doneBuzSimplePage(params);
pagingRef.value.complete(res?.list || [], res?.total || 0);
} catch (error) {
@@ -547,7 +552,8 @@ const handleAcceptModalCancel = () => {
// 验收提交
const handleAcceptModalConfirm = async () => {
const reason = acceptReason.value.trim();
- if (!reason) return uni.showToast({title: '请填写验收原因', icon: 'none'});
+ console.log(acceptRadioValue.value)
+ if (!reason&&acceptRadioValue.value==1) return uni.showToast({title: '请填写验收原因', icon: 'none'});
if (reason.length > 200) return uni.showToast({title: '验收原因最多200字', icon: 'none'});
const item = currentAcceptItem.value;
diff --git a/pages-sub/problem/regional-order-manage/index.vue b/pages-sub/problem/regional-order-manage/index.vue
index 9e5de93..299d0a5 100644
--- a/pages-sub/problem/regional-order-manage/index.vue
+++ b/pages-sub/problem/regional-order-manage/index.vue
@@ -218,7 +218,8 @@ import {
doneBuzSimplePage,
qyUniversalApproval,
daquUniversalApproval,
- dcyUniversalApproval
+ dcyUniversalApproval,
+ aiUniversalApproval
} from '@/api/regional-order-manage/regional-order-manage'
import { useUserStore } from '@/pinia/user';
import { nextStepMap, buzStatusMap } from '@/common/utils/common'
@@ -323,11 +324,13 @@ const getQueryParams = (pageNo, pageSize) => {
* 统一调用审批接口
*/
const callApprovalApi = async (params, taskKey) => {
+ if (taskKey === 'aiRegionManager') return await aiUniversalApproval(params);
if (taskKey === 'shRegionManager') return await dcyUniversalApproval(params);
if (taskKey === 'regionManager') return await qyUniversalApproval(params);
if (USER_ROLES.includes('regional_manager')) return await daquUniversalApproval(params);
if (USER_ROLES.includes('Inspector_global')) return await dcyUniversalApproval(params);
if (USER_ROLES.includes('patrol_global')) return await qyUniversalApproval(params);
+ // if (USER_ROLES.includes('AI_dispatcher')) return await aiUniversalApproval(params);
throw new Error('未匹配到对应的审批接口,请检查角色或工单taskKey');
};
@@ -428,11 +431,37 @@ const handleProcess = async (item) => {
}
// 督察员单子大区经理分配
else if (stepName === '督察员单子大区经理分配') {
- const postData = { taskKey: item.taskKey, taskId: item.taskId, operateType:60, workerDataId:item.id, agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName, pressingType:item.pressingType, orderName:item.orderName, expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine };
- await dcyUniversalApproval(postData);
- showToast('分配成功', 'success');
- refreshOrderList();
+ uni.showModal({
+ title: "分配工单",
+ content: "请确定是否分配工单?",
+ success: async (res) => {
+ if (res.confirm) {
+ const postData = { taskKey: item.taskKey, taskId: item.taskId, operateType:60, workerDataId:item.id, agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName, pressingType:item.pressingType, orderName:item.orderName, expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine };
+ await dcyUniversalApproval(postData);
+ showToast('分配成功', 'success');
+ refreshOrderList();
+ }
+ }
+ });
+
}
+ // ai单子大区经理分配
+ else if (stepName === 'ai单子大区经理分配') {
+ uni.showModal({
+ title: "分配工单",
+ content: "请确定是否分配工单?",
+ success: async (res) => {
+ if (res.confirm) {
+ const postData = { taskKey: 'shRegionManager', taskId: item.taskId, operateType:40, workerDataId:item.id, agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName, pressingType:item.pressingType, orderName:item.orderName, expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine };
+ await aiUniversalApproval(postData);
+ showToast('分配成功', 'success');
+ refreshOrderList();
+ }
+ }
+ });
+ }
+
+
// 验收弹窗
else if (['巡查员验收', '养护组长验收'].includes(stepName)) {
currentAcceptItem.value = item;
diff --git a/pages-sub/problem/regional-order-manage/order-detail.vue b/pages-sub/problem/regional-order-manage/order-detail.vue
index d03a378..d853af2 100644
--- a/pages-sub/problem/regional-order-manage/order-detail.vue
+++ b/pages-sub/problem/regional-order-manage/order-detail.vue
@@ -198,7 +198,7 @@
- {{ item.name }}
+ {{ item.name ? item.name.replace('大区经理', '业务调度员') : item.name }}
@@ -420,12 +420,13 @@ const setOrderStorage = (item: any, prefix: string) => {
* 统一调用审批接口 (角色+taskKey匹配)
*/
const callApprovalApi = async (params: any, taskKey: string) => {
+ if (taskKey === 'aiRegionManager') return await aiUniversalApproval(params);
if (taskKey === 'shRegionManager') return await dcyUniversalApproval(params);
if (taskKey === 'regionManager') return await qyUniversalApproval(params);
if (USER_ROLES.includes('regional_manager')) return await daquUniversalApproval(params);
if (USER_ROLES.includes('Inspector_global')) return await dcyUniversalApproval(params);
if (USER_ROLES.includes('patrol_global')) return await qyUniversalApproval(params);
- if (USER_ROLES.includes('AI_dispatcher')) return await aiUniversalApproval(params);
+ // if (USER_ROLES.includes('AI_dispatcher')) return await aiUniversalApproval(params);
throw new Error('未匹配到对应的审批接口,请检查角色或工单taskKey');
};
@@ -595,9 +596,10 @@ const activeTopTabClick = async (item: any) => {
}
const res = await getApprovalDetail(getData)
if (res && res.activityNodes && res.activityNodes.length) {
- const filteredActivityNodes = res.activityNodes.filter(node => {
- return node.name !== '结束';
- });
+ // const filteredActivityNodes = res.activityNodes.filter(node => {
+ // return node.name !== '结束';
+ // });
+ const filteredActivityNodes = res.activityNodes
const formatActivityNodes = filteredActivityNodes.map(node => ({
...node,
title: node.name
@@ -721,16 +723,41 @@ const handleProcess = async (item: any) => {
}
// 督察员单子大区经理分配
else if (stepName === '督察员单子大区经理分配') {
- const postData = {
- taskKey: item.taskKey, taskId: item.taskId, operateType:60, workerDataId:item.id,
- agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName,
- pressingType:item.pressingType, orderName:item.orderName,
- expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine
- };
- await dcyUniversalApproval(postData);
- showToast('分配成功', 'success');
- eventChannel.value.emit('needRefresh');
- uni.navigateBack({ delta: 1 });
+
+ uni.showModal({
+ title: "分配工单",
+ content: "请确定是否分配工单?",
+ success: async (res) => {
+ const postData = {
+ taskKey: item.taskKey, taskId: item.taskId, operateType:60, workerDataId:item.id,
+ agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName,
+ pressingType:item.pressingType, orderName:item.orderName,
+ expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine
+ };
+ await dcyUniversalApproval(postData);
+ showToast('分配成功', 'success');
+ eventChannel.value.emit('needRefresh');
+ uni.navigateBack({ delta: 1 });
+ }
+ });
+
+ }
+
+ // ai单子大区经理分配
+ else if (stepName === 'ai单子大区经理分配') {
+ uni.showModal({
+ title: "分配工单",
+ content: "请确定是否分配工单?",
+ success: async (res) => {
+ if (res.confirm) {
+ const postData = { taskKey: item.taskKey, taskId: item.taskId, operateType:40, workerDataId:item.id, agree:0, reason:item.remark, roadId:item.roadId, roadName:item.roadName, pressingType:item.pressingType, orderName:item.orderName, expectedFinishDate: item.expectedFinishDate, busiLine:item.busiLine };
+ await aiUniversalApproval(postData);
+ showToast('分配成功', 'success');
+ eventChannel.value.emit('needRefresh');
+ uni.navigateBack({ delta: 1 });
+ }
+ }
+ });
}
// 验收弹窗
else if (['养护组长验收', '巡查员验收'].includes(stepName)) {
diff --git a/pages-sub/problem/work-order-manage/distribution-order.vue b/pages-sub/problem/work-order-manage/distribution-order.vue
index 61d32bc..bef458c 100644
--- a/pages-sub/problem/work-order-manage/distribution-order.vue
+++ b/pages-sub/problem/work-order-manage/distribution-order.vue
@@ -254,6 +254,8 @@ const submitWorkOrder = async () => {
icon: 'success',
duration: 1000
})
+ // ========== 核心修改:触发全局刷新事件 ==========
+ uni.$emit('refreshWorkOrderList'); // 触发全局自定义事件
// 7. 提交成功后返回上一页
setTimeout(() => {
uni.navigateTo({
diff --git a/pages-sub/problem/work-order-manage/index.vue b/pages-sub/problem/work-order-manage/index.vue
index 84b1aa0..b47a6cf 100644
--- a/pages-sub/problem/work-order-manage/index.vue
+++ b/pages-sub/problem/work-order-manage/index.vue
@@ -277,7 +277,7 @@
@@ -716,6 +725,7 @@ onLoad(() => {
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
}
.u-body-item-btn-wrap :deep(.u-button--large){
+
height: 28px;
}
diff --git a/pages-sub/problem/work-order-manage/order-detail.vue b/pages-sub/problem/work-order-manage/order-detail.vue
index 11e183d..61f5c24 100644
--- a/pages-sub/problem/work-order-manage/order-detail.vue
+++ b/pages-sub/problem/work-order-manage/order-detail.vue
@@ -197,7 +197,7 @@
- {{ item.name }}
+ {{ item.name ? item.name.replace('大区经理', '业务调度员') : item.name }}
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 48a32b9..bc3b76f 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -5,7 +5,7 @@
你好{{ userName }},欢迎登录
- 全域智能运营管理平台
+ 蓟城山水智慧园林养护平台
@@ -165,7 +165,7 @@ const klineChartData = ref([
color: '#25AF69'
},
{
- name: '待完成总任务数',
+ name: '总任务数',
data: [],
color: '#B34C17'
}
diff --git a/pages/login/index.vue b/pages/login/index.vue
index aa0aa28..2c69a7f 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -3,7 +3,9 @@
你好,欢迎光临
- 全域智能运营管理平台
+
+ 蓟城山水智慧园林养护平台
+
diff --git a/pages/workbench/index.vue b/pages/workbench/index.vue
index 3ab8b51..8d4e5a0 100644
--- a/pages/workbench/index.vue
+++ b/pages/workbench/index.vue
@@ -11,7 +11,7 @@
你好{{ userInfo?.user?.nickname || '' }},欢迎登录
- 全域智能运营管理平台
+ 蓟城山水智慧园林养护平台
--
libgit2 0.21.4