From 6cc0ab0effad7d563b2175719639ea6f8ccce4e9 Mon Sep 17 00:00:00 2001 From: 刘淇 <290219706@qq.com> Date: Tue, 18 Aug 2026 09:25:54 +0800 Subject: [PATCH] 养护任务 --- common/config/env.js | 4 ++-- pages-sub/daily/quick-order/add-order.vue | 2 ++ pages-sub/problem/regional-order-manage/add-patrol-order.vue | 118 ++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------ pages-sub/problem/regional-order-manage/distribution-order.vue | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------- pages-sub/problem/work-order-manage/add-order.vue | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------- pages/index/index.vue | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------- 6 files changed, 202 insertions(+), 420 deletions(-) diff --git a/common/config/env.js b/common/config/env.js index 999e2b2..95bbb62 100644 --- a/common/config/env.js +++ b/common/config/env.js @@ -2,10 +2,10 @@ const env = { // 开发环境 development: { - baseUrl: 'https://test.jichengshanshui.com.cn:28302', + // baseUrl: 'https://test.jichengshanshui.com.cn:28302', // https://test.jichengshanshui.com.cn:28302 - // baseUrl: 'http://192.168.1.186:48081', + baseUrl: 'http://192.168.1.111:48081', uploadUrl: 'https://test.jichengshanshui.com.cn:28302', // baseApi:'admin-api', diff --git a/pages-sub/daily/quick-order/add-order.vue b/pages-sub/daily/quick-order/add-order.vue index 98bae81..66fc1b4 100644 --- a/pages-sub/daily/quick-order/add-order.vue +++ b/pages-sub/daily/quick-order/add-order.vue @@ -191,11 +191,13 @@ export default { 'wy': '物业', 'zx': '秩序管理', 'hj': '环境卫生', + 'yw': '常规运维', '园林': 'yl', '市政': 'sz', '物业': 'wy', '秩序管理': 'zx', '环境卫生': 'hj', + '常规运维' : 'yw' }, busiLineOptions: [], // 业务线选项列表 // 问题照片列表 diff --git a/pages-sub/problem/regional-order-manage/add-patrol-order.vue b/pages-sub/problem/regional-order-manage/add-patrol-order.vue index 1451e51..4ea38e0 100644 --- a/pages-sub/problem/regional-order-manage/add-patrol-order.vue +++ b/pages-sub/problem/regional-order-manage/add-patrol-order.vue @@ -1,78 +1,36 @@ @@ -103,7 +53,7 @@ import { ref, reactive } from 'vue' import { onReady, onShow, onLoad, onBackPress } from '@dcloudio/uni-app'; import { useUploadImgs } from '@/common/utils/useUploadImgs' -import { qyUniversalApproval, qyWorkorderCreate } from '@/api/regional-order-manage/regional-order-manage' +import { qyUniversalApproval, qyWorkorderCreate } from '@/api/regional-order-manage/regional-order-manage' import { timeFormat } from '@/uni_modules/uview-plus' import { nextStepMap } from '@/common/utils/common' import { useUserStore } from '@/pinia/user'; @@ -114,16 +64,18 @@ const userStore = useUserStore(); // ========== 业务线相关状态 ========== // 业务线映射表 const busiLineMap = ref({ - 'yl': '园林', - 'sz': '市政', - 'wy': '物业', - 'zx': '秩序管理', - 'hj': '环境卫生', - '园林': 'yl', - '市政': 'sz', - '物业': 'wy', - '秩序管理': 'zx', - '环境卫生': 'hj', + 'yl': '园林', + 'sz': '市政', + 'wy': '物业', + 'zx': '秩序管理', + 'hj': '环境卫生', + 'yw': '常规运维', + '园林': 'yl', + '市政': 'sz', + '物业': 'wy', + '秩序管理': 'zx', + '环境卫生': 'hj', + '常规运维': 'yw' }); // 业务线选项列表 @@ -360,7 +312,7 @@ const submitWorkOrder = async () => { taskId: renewOrderData.value.taskId, operateType: nextStepMap[renewOrderData.value.taskKey]?.operateTypeRenew || '', agree: 0, - reason: workOrderForm.problemDesc.trim(), + reason: workOrderForm.problemDesc.trim(), ...commonSubmitData } if (userStore.userInfo?.roles.includes('patrol_global')) { // 全域巡查员 @@ -407,6 +359,4 @@ const submitWorkOrder = async () => { .work-order-form-content { background: #fff; } - - \ No newline at end of file diff --git a/pages-sub/problem/regional-order-manage/distribution-order.vue b/pages-sub/problem/regional-order-manage/distribution-order.vue index 41f9088..f502c87 100644 --- a/pages-sub/problem/regional-order-manage/distribution-order.vue +++ b/pages-sub/problem/regional-order-manage/distribution-order.vue @@ -1,73 +1,28 @@ @@ -197,7 +92,7 @@ import { ref, reactive } from 'vue' import { onReady, onShow, onLoad, onBackPress } from '@dcloudio/uni-app'; import { useUploadImgs } from '@/common/utils/useUploadImgs' import { getRoadListByLatLng } from '@/api/common' -import { daquUniversalApproval, daquWorkorderCreate, qyUniversalApproval } from '@/api/regional-order-manage/regional-order-manage' +import { daquUniversalApproval, daquWorkorderCreate, qyUniversalApproval } from '@/api/regional-order-manage/regional-order-manage' import { timeFormat } from '@/uni_modules/uview-plus' import { nextStepMap } from '@/common/utils/common' import { useUserStore } from '@/pinia/user'; @@ -209,15 +104,17 @@ const userStore = useUserStore(); // 业务线映射表 const busiLineMap = ref({ 'yl': '园林', - 'sz': '市政', - 'wy': '物业', - 'zx': '秩序管理', - 'hj': '环境卫生', - '园林': 'yl', - '市政': 'sz', - '物业': 'wy', - '秩序管理': 'zx', - '环境卫生': 'hj', + 'sz': '市政', + 'wy': '物业', + 'zx': '秩序管理', + 'hj': '环境卫生', + 'yw': '常规运维', + '园林': 'yl', + '市政': 'sz', + '物业': 'wy', + '秩序管理': 'zx', + '环境卫生': 'hj', + '常规运维': 'yw' }); // 业务线选项列表 @@ -386,7 +283,7 @@ const echoOrderData = (orderItem) => { workOrderForm.problemDesc = orderItem.remark || ''; workOrderForm.lat = orderItem.lat || 0; workOrderForm.lon = orderItem.lon || 0; - workOrderForm.expectedFinishDate = orderItem.expectedFinishDate? timeFormat(orderItem.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss'):'' ; + workOrderForm.expectedFinishDate = orderItem.expectedFinishDate ? timeFormat(orderItem.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss') : ''; // 回显图片【核心:问题照片赋值】 if (orderItem.problemsImgs && Array.isArray(orderItem.problemsImgs) && orderItem.problemsImgs.length > 0) { @@ -518,12 +415,12 @@ const navigateBack = () => { } // 清除希望完成时间 -const clearExpectedFinishDate = ()=> { +const clearExpectedFinishDate = () => { workOrderForm.expectedFinishDate = '' } // 【注释无用方法:原选择工单位置方法,因为禁止修改,不需要点击触发】 -const chooseWorkLocation = () => {} +const chooseWorkLocation = () => { } // 完成时间确认 const expectedFinishDateConfirm = (e) => { @@ -558,7 +455,7 @@ const submitWorkOrder = async () => { lonLatAddress: workOrderForm.workLocation, pressingType: workOrderForm.pressingType, orderName: workOrderForm.orderName, - expectedFinishDate: workOrderForm.expectedFinishDate==""?"":new Date(workOrderForm.expectedFinishDate).getTime(), + expectedFinishDate: workOrderForm.expectedFinishDate == "" ? "" : new Date(workOrderForm.expectedFinishDate).getTime(), sourceId: 1, sourceName: workOrderForm.busiLineCn, busiLine: busiLineEn, @@ -568,7 +465,7 @@ const submitWorkOrder = async () => { taskId: renewOrderData.value.taskId, operateType: nextStepMap[renewOrderData.value.taskKey]?.operateTypePass || '', agree: 0, - reason: workOrderForm.problemDesc.trim(), + reason: workOrderForm.problemDesc.trim(), } uni.showLoading({ title: '提交中...' }) @@ -581,7 +478,7 @@ const submitWorkOrder = async () => { taskId: renewOrderData.value.taskId, operateType: nextStepMap[renewOrderData.value.taskKey]?.operateTypeRenew || '', agree: 0, - reason: workOrderForm.problemDesc.trim(), + reason: workOrderForm.problemDesc.trim(), ...commonSubmitData } res = await qyUniversalApproval(renewSubmitData) @@ -637,7 +534,7 @@ const submitWorkOrder = async () => { .dispatch-title { font-size: 32rpx; font-weight: 600; - color:$u-primary; + color: $u-primary; margin-bottom: 20rpx; padding-left: 10rpx; } diff --git a/pages-sub/problem/work-order-manage/add-order.vue b/pages-sub/problem/work-order-manage/add-order.vue index 4a3db84..0e6fb1a 100644 --- a/pages-sub/problem/work-order-manage/add-order.vue +++ b/pages-sub/problem/work-order-manage/add-order.vue @@ -1,163 +1,73 @@ @@ -212,15 +108,17 @@ const userStore = useUserStore(); // 业务线映射表(键:英文标识,值:中文名称;新增反向映射:中文->英文) const busiLineMap = ref({ 'yl': '园林', - 'sz': '市政', - 'wy': '物业', - 'zx': '秩序管理', - 'hj': '环境卫生', - '园林': 'yl', - '市政': 'sz', - '物业': 'wy', - '秩序管理': 'zx', - '环境卫生': 'hj', + 'sz': '市政', + 'wy': '物业', + 'zx': '秩序管理', + 'hj': '环境卫生', + 'yw': '常规运维', + '园林': 'yl', + '市政': 'sz', + '物业': 'wy', + '秩序管理': 'zx', + '环境卫生': 'hj', + '常规运维': 'yw' }); // 业务线选项列表(仅保留name字段=中文名称,适配单选框配置) @@ -405,7 +303,7 @@ const echoOrderData = (orderItem) => { workOrderForm.problemDesc = orderItem.remark || ''; workOrderForm.lat = orderItem.lat || 0; workOrderForm.lon = orderItem.lon || 0; - workOrderForm.expectedFinishDate = orderItem.expectedFinishDate?timeFormat(orderItem.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss') :''; + workOrderForm.expectedFinishDate = orderItem.expectedFinishDate ? timeFormat(orderItem.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss') : ''; // 3. 上传图片回显(兼容useUploadImgs格式) if (orderItem.problemsImgs && Array.isArray(orderItem.problemsImgs) && orderItem.problemsImgs.length > 0) { @@ -566,7 +464,7 @@ const navigateBack = () => { } // 新增:清除希望完成时间的方法 -const clearExpectedFinishDate = ()=> { +const clearExpectedFinishDate = () => { workOrderForm.expectedFinishDate = '' // 清除后触发一次字段校验,确保校验状态更新 // this.$refs.inspectFormRef.validateField('expectedFinishDate') @@ -629,7 +527,7 @@ const submitWorkOrder = async () => { uni.showToast({ title: '业务线选择异常,请重新选择', icon: 'none' }); return; } - console.log('完成时间:'+workOrderForm.expectedFinishDate) + console.log('完成时间:' + workOrderForm.expectedFinishDate) // 构建公共提交数据 const commonSubmitData = { roadId: workOrderForm.roadId, @@ -642,13 +540,13 @@ const submitWorkOrder = async () => { lonLatAddress: workOrderForm.workLocation, pressingType: workOrderForm.pressingType, orderName: workOrderForm.orderName, - expectedFinishDate:workOrderForm.expectedFinishDate=="" ?"": new Date(workOrderForm.expectedFinishDate).getTime(), + expectedFinishDate: workOrderForm.expectedFinishDate == "" ? "" : new Date(workOrderForm.expectedFinishDate).getTime(), sourceId: 1, sourceName: workOrderForm.busiLineCn, // 从form字段获取业务线中文名称 busiLine: busiLineEn // 传递英文标识(yl/sz/wy),接口正常使用 } console.log('工单数据') - console.log('完成时间:'+workOrderForm.expectedFinishDate) + console.log('完成时间:' + workOrderForm.expectedFinishDate) console.log(commonSubmitData) // 显示加载中 uni.showLoading({ title: '提交中...' }) @@ -717,5 +615,4 @@ const submitWorkOrder = async () => { .work-order-form-content { background: #fff; } - \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue index f54192b..6034a70 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -56,9 +56,9 @@ - + @@ -97,7 +97,7 @@ @@ -124,28 +124,58 @@ import { const userStore = useUserStore(); const deptId = computed(() => String(userStore.userInfo?.user?.deptId ?? '')); -// ====================== 只需要在这里统一维护分组配置 ====================== +// ====================== 分组配置(多部门归属同一组) ====================== type GroupItem = { - deptId: string; + deptIds: string[]; // 多个部门ID数组 label: string; showTipHeader: boolean; // 是否展示顶部进度条 useWalkText: boolean; // 是否展示步行距离文案 }; const groupConfig: GroupItem[] = [ - { deptId: '364', label: '[组2 A1B2 纯效率·有提醒]', showTipHeader: true, useWalkText: true }, - { deptId: '337', label: '[组3 A2B1 个性化·无提醒]', showTipHeader: false, useWalkText: false }, - { deptId: '338', label: '[组4 A2B2 个性化·有提醒]', showTipHeader: true, useWalkText: false }, + // 组2 A1B2 纯效率·有提醒 + { + deptIds: ['361', '363', '279', '277', '270'], + label: '[组2 A1B2 纯效率·有提醒]', + showTipHeader: true, + useWalkText: true + }, + // 组3 A2B1 个性化·无提醒 + { + deptIds: ['252', '273', '274', '337', '359', '360'], + label: '[组3 A2B1 个性化·无提醒]', + showTipHeader: false, + useWalkText: false + }, + // 组4 A2B2 个性化·有提醒 + { + deptIds: ['281', '272', '271', '338', '280'], + label: '[组4 A2B2 个性化·有提醒]', + showTipHeader: true, + useWalkText: false + }, ]; -// 默认组1配置 -const defaultGroup: GroupItem = { deptId: '', label: '[组1 A1B1 纯效率·无提醒]', showTipHeader: false, useWalkText: true }; +// 默认组1:未匹配到的所有部门 +const defaultGroup: GroupItem = { + deptIds: [], + label: '[组1 A1B1 纯效率·无提醒]', + showTipHeader: false, + useWalkText: true +}; -// 获取当前部门配置对象 +// 获取当前部门所属分组 const currentGroup = computed(() => { - const target = groupConfig.find(item => item.deptId === deptId.value); - return target ?? defaultGroup; + const targetDept = deptId.value; + // 遍历匹配部门ID + for (const group of groupConfig) { + if (group.deptIds.includes(targetDept)) { + return group; + } + } + // 无匹配返回默认组1 + return defaultGroup; }); -// 下面全部自动读取配置,无需写if/switch +// 自动读取分组配置,无需修改其他业务代码 const tipText = computed(() => currentGroup.value.label); const showTipHeader = computed(() => currentGroup.value.showTipHeader); const isWalkTextMode = computed(() => currentGroup.value.useWalkText); @@ -308,6 +338,8 @@ const getCurrentLocation = (): Promise<{ lon: string; lat: string }> => { uni.getLocation({ type: 'gcj02', success: (loc) => { + console.log(loc.longitude) + console.log(loc.latitude) resolve({ lon: loc.longitude.toFixed(6), lat: loc.latitude.toFixed(6) @@ -337,6 +369,8 @@ const getCurrentLocation = (): Promise<{ lon: string; lat: string }> => { uni.getLocation({ type: 'gcj02', success: (loc) => { + console.log(loc.longitude) + console.log(loc.latitude) resolve({ lon: loc.longitude.toFixed(6), lat: loc.latitude.toFixed(6) @@ -694,14 +728,16 @@ $border-color: #e5e5e5; .task-item__name { width: 60px; } - .task-name-text { - flex: 1; - font-size: 14px; - color: $text-color; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } + .task-name-text { + flex: 1; + font-size: 14px; + color: $text-color; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; +} &__name { font-size: 15px; color: $text-color; -- libgit2 0.21.4