From 4927ce371c725f55015c7996bcb781f1d79c5a60 Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Thu, 12 Jun 2025 00:14:07 +0800 Subject: [PATCH] 开发完成报修功能 --- src/api/work/myRepairDispatchManageApi.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/ownerRepairManageApi.js | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairDetailApi.js | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairDispatchManageApi.js | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairForceFinishManageApi.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairPoolManageApi.js | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairReturnVisitApi.js | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/work/repairTypeUserApi.js | 6 +++--- src/components/org/OrgTreeShow.vue | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/staff/SelectStaff.vue | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/AppraiseRepair.vue | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/DeleteRepairTypeUser.vue | 2 +- src/components/work/EditRepairTypeUser.vue | 18 ++++++++---------- src/components/work/OrgTreeShow.vue | 59 ----------------------------------------------------------- src/components/work/SelectStaff.vue | 148 ---------------------------------------------------------------------------------------------------------------------------------------------------- src/components/work/StartRepair.vue | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/StopRepair.vue | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/addOwnerRepair.vue | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/chooseSingleResource.vue | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/closeOrder.vue | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/deleteOwnerRepair.vue | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/dispatchRepair.vue | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/editOwnerRepair.vue | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/endRepair.vue | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/forceFinishRepair.vue | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/repairDetailEvent.vue | 38 ++++++++++++++++++++++++++++++++++++++ src/components/work/repairDetailPhotos.vue | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/repairDetailResource.vue | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/repairDetailUser.vue | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/work/visitOwnerRepair.vue | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/commonLang.js | 6 ++++-- src/i18n/index.js | 24 ++++++++++++++++++++++++ src/router/index.js | 41 ++++++++++++++++++++++++++++++++++++++--- src/views/work/myRepairDispatchManageLang.js | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/myRepairDispatchManageList.vue | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/ownerRepairManageLang.js | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/ownerRepairManageList.vue | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairDetailLang.js | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairDetailList.vue | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairDispatchManageLang.js | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairDispatchManageList.vue | 297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairForceFinishManageLang.js | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairForceFinishManageList.vue | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairPoolManageLang.js | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairPoolManageList.vue | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairReturnVisitLang.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairReturnVisitList.vue | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/work/repairSettingList.vue | 9 ++------- src/views/work/repairTypeUserList.vue | 13 ++++++------- 49 files changed, 5675 insertions(+), 240 deletions(-) create mode 100644 src/api/work/myRepairDispatchManageApi.js create mode 100644 src/api/work/ownerRepairManageApi.js create mode 100644 src/api/work/repairDetailApi.js create mode 100644 src/api/work/repairDispatchManageApi.js create mode 100644 src/api/work/repairForceFinishManageApi.js create mode 100644 src/api/work/repairPoolManageApi.js create mode 100644 src/api/work/repairReturnVisitApi.js create mode 100644 src/components/org/OrgTreeShow.vue create mode 100644 src/components/staff/SelectStaff.vue create mode 100644 src/components/work/AppraiseRepair.vue delete mode 100644 src/components/work/OrgTreeShow.vue delete mode 100644 src/components/work/SelectStaff.vue create mode 100644 src/components/work/StartRepair.vue create mode 100644 src/components/work/StopRepair.vue create mode 100644 src/components/work/addOwnerRepair.vue create mode 100644 src/components/work/chooseSingleResource.vue create mode 100644 src/components/work/closeOrder.vue create mode 100644 src/components/work/deleteOwnerRepair.vue create mode 100644 src/components/work/dispatchRepair.vue create mode 100644 src/components/work/editOwnerRepair.vue create mode 100644 src/components/work/endRepair.vue create mode 100644 src/components/work/forceFinishRepair.vue create mode 100644 src/components/work/repairDetailEvent.vue create mode 100644 src/components/work/repairDetailPhotos.vue create mode 100644 src/components/work/repairDetailResource.vue create mode 100644 src/components/work/repairDetailUser.vue create mode 100644 src/components/work/visitOwnerRepair.vue create mode 100644 src/views/work/myRepairDispatchManageLang.js create mode 100644 src/views/work/myRepairDispatchManageList.vue create mode 100644 src/views/work/ownerRepairManageLang.js create mode 100644 src/views/work/ownerRepairManageList.vue create mode 100644 src/views/work/repairDetailLang.js create mode 100644 src/views/work/repairDetailList.vue create mode 100644 src/views/work/repairDispatchManageLang.js create mode 100644 src/views/work/repairDispatchManageList.vue create mode 100644 src/views/work/repairForceFinishManageLang.js create mode 100644 src/views/work/repairForceFinishManageList.vue create mode 100644 src/views/work/repairPoolManageLang.js create mode 100644 src/views/work/repairPoolManageList.vue create mode 100644 src/views/work/repairReturnVisitLang.js create mode 100644 src/views/work/repairReturnVisitList.vue diff --git a/src/api/work/myRepairDispatchManageApi.js b/src/api/work/myRepairDispatchManageApi.js new file mode 100644 index 0000000..4bc375b --- /dev/null +++ b/src/api/work/myRepairDispatchManageApi.js @@ -0,0 +1,61 @@ +import request from '@/utils/request' + +// 获取维修已办列表 +export function listStaffFinishRepairs(params) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.listStaffFinishRepairs', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取维修已办列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取报修类型列表 +export function listRepairSettings(params) { + return new Promise((resolve, reject) => { + request({ + url: 'repair.listRepairSettings', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取报修类型失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 结单操作 +export function closeRepairDispatch(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.closeRepairDispatch', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '结单操作失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/ownerRepairManageApi.js b/src/api/work/ownerRepairManageApi.js new file mode 100644 index 0000000..d7e7ce3 --- /dev/null +++ b/src/api/work/ownerRepairManageApi.js @@ -0,0 +1,161 @@ +import request from '@/utils/request' + +// 查询业主报修列表 +export function listOwnerRepairs(params) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.listOwnerRepairs', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取业主报修列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 添加业主报修 +export function saveOwnerRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.saveOwnerRepair', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '添加业主报修失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 更新业主报修 +export function updateOwnerRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.updateOwnerRepair', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '更新业主报修失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 删除业主报修 +export function deleteOwnerRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.deleteOwnerRepair', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '删除业主报修失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 查询报修类型列表 +export function listRepairSettings(params) { + return new Promise((resolve, reject) => { + request({ + url: '/repair.listRepairSettings', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取报修类型列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 查询楼栋列表 +export function queryFloors(params) { + return new Promise((resolve, reject) => { + request({ + url: '/floor.queryFloors', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取楼栋列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 查询单元列表 +export function queryUnits(params) { + return new Promise((resolve, reject) => { + request({ + url: '/unit.queryUnits', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取单元列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 查询房屋列表 +export function queryRooms(params) { + return new Promise((resolve, reject) => { + request({ + url: '/room.queryRooms', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取房屋列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairDetailApi.js b/src/api/work/repairDetailApi.js new file mode 100644 index 0000000..2b77940 --- /dev/null +++ b/src/api/work/repairDetailApi.js @@ -0,0 +1,166 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取工单详情 +export function getRepairDetail(repairId) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/ownerRepair.listOwnerRepairs', + method: 'get', + params: { + page: 1, + row: 1, + communityId, + repairId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res.data[0]) + } else { + reject(new Error(res.msg || '获取工单详情失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工单图片 +export function getRepairPhotos(repairId) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/ownerRepair.listOwnerRepairs', + method: 'get', + params: { + page: 1, + row: 1, + communityId, + repairId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + photos: res.data[0].repairPhotos || [], + beforePhotos: res.data[0].beforePhotos || [], + afterPhotos: res.data[0].afterPhotos || [] + }) + } else { + reject(new Error(res.msg || '获取工单图片失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取维修物品 +export function getRepairResources(repairId) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/resourceStore.listResourceStoreUseRecords', + method: 'get', + params: { + page: 1, + row: 100, + communityId, + repairId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + const resources = res.data.map(item => { + if (item.resId === '666666') { + return { ...item, rstName: '自定义', specName: '自定义' } + } + return item + }) + resolve(resources) + } else { + reject(new Error(res.msg || '获取维修物品失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工单流转 +export function getRepairFlow(repairId) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/ownerRepair.listRepairStaffs', + method: 'get', + params: { + page: 1, + row: 100, + communityId, + repairId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取工单流转失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工单事件 +export function getRepairEvents(repairId) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/repair.listRepairEvent', + method: 'get', + params: { + page: 1, + row: 100, + communityId, + repairId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取工单事件失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 回复评价 +export function replyAppraise(data) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/repair.replyRepairAppraise', + method: 'post', + data: { + ...data, + communityId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve() + } else { + reject(new Error(res.msg || '回复评价失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairDispatchManageApi.js b/src/api/work/repairDispatchManageApi.js new file mode 100644 index 0000000..d875a01 --- /dev/null +++ b/src/api/work/repairDispatchManageApi.js @@ -0,0 +1,163 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取报修单列表 +export function listStaffRepairs(params) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.listStaffRepairs', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取报修单列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取报修类型 +export function listRepairSettings(params) { + return new Promise((resolve, reject) => { + request({ + url: '/repair.listRepairSettings', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取报修类型失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取维修师傅列表 +export function listRepairTypeUsers(params) { + return new Promise((resolve, reject) => { + request({ + url: '/repair.listRepairTypeUsers', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取维修师傅列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 报修派单 +export function repairDispatch(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairDispatch', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '报修派单失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 回访工单 +export function appraiseRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.appraiseRepair', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '回访工单失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 暂停报修 +export function repairStop(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairStop', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '暂停报修失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 启动报修 +export function repairStart(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairStart', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '启动报修失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairForceFinishManageApi.js b/src/api/work/repairForceFinishManageApi.js new file mode 100644 index 0000000..2e140a9 --- /dev/null +++ b/src/api/work/repairForceFinishManageApi.js @@ -0,0 +1,154 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取报修设置列表 +export function listRepairSettings() { + return new Promise((resolve, reject) => { + request({ + url: '/repair.listRepairSettings', + method: 'get', + params: { + page: 1, + row: 50, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取报修设置失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取报修池列表 +export function listOwnerRepairs(params) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.listOwnerRepairs', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve({ + data: res.data, + total: res.total, + records: res.records + }) + } else { + reject(new Error(res.msg || '获取报修列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取资源物品类型 +export function listResourceStoreTypes(parentId = '0') { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStoreType.listResourceStoreTypes', + method: 'get', + params: { + page: 1, + row: 100, + communityId: getCommunityId(), + parentId, + giveType: 1 + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取资源物品类型失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取用户仓库物品 +export function listUserStorehouses(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listUserStorehouses', + method: 'get', + params: { + ...params, + communityId: getCommunityId(), + chooseType: "repair", + flag: 1, + sign: 1, + giveType: 1 + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取仓库物品失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 强制回单 +export function repairForceFinish(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairForceFinish', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res) + } else { + reject(new Error(res.msg || '强制回单失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取字典数据 +export function getDict(dictType, statusCd) { + return new Promise((resolve, reject) => { + request({ + url: '/dict.listDict', + method: 'get', + params: { + dictType, + statusCd, + page: 1, + row: 100 + } + }).then(response => { + const res = response.data + if (res.code == 0) { + resolve(res.data) + } else { + reject(new Error(res.msg || '获取字典失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairPoolManageApi.js b/src/api/work/repairPoolManageApi.js new file mode 100644 index 0000000..761abdc --- /dev/null +++ b/src/api/work/repairPoolManageApi.js @@ -0,0 +1,150 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 查询报修工单池 +export function listRepairPools(params) { + return new Promise((resolve, reject) => { + const baseParams = { + communityId: getCommunityId(), + page: params.page || 1, + row: params.row || 10 + } + + const queryParams = { ...baseParams, ...params } + + if (queryParams.state === 'TIMEOUT') { + queryParams.state = '' + queryParams.timeoutFlag = 'Y' + } + + request({ + url: '/ownerRepair.listOwnerRepairs', + method: 'get', + params: queryParams + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Failed to fetch repair pools')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 派单 +export function dispatchRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairDispatch', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Dispatch failed')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 结束工单 +export function endRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.repairEnd', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'End repair failed')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 更新业主报修 +export function updateOwnerRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.updateOwnerRepair', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Update failed')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 删除业主报修 +export function deleteOwnerRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.deleteOwnerRepair', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Delete failed')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 抢单 +export function grabbingRepair(data) { + return new Promise((resolve, reject) => { + request({ + url: '/ownerRepair.grabbingRepair', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Grab order failed')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairReturnVisitApi.js b/src/api/work/repairReturnVisitApi.js new file mode 100644 index 0000000..09519df --- /dev/null +++ b/src/api/work/repairReturnVisitApi.js @@ -0,0 +1,66 @@ +import request from '@/utils/request' + +// 查询报修回访列表 +export function getRepairReturnVisitList(params) { + return new Promise((resolve, reject) => { + request({ + url: '/repair/queryRepairReturnVisit', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || '查询报修回访列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 保存报修回访记录 +export function saveRepairReturnVisit(data) { + return new Promise((resolve, reject) => { + request({ + url: '/repair/saveRepairReturnVisit', + method: 'post', + data + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '保存回访记录失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 查询报修类型设置 +export function listRepairSettings(params) { + return new Promise((resolve, reject) => { + request({ + url: '/repair.listRepairSettings', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data + }) + } else { + reject(new Error(res.msg || '查询报修类型设置失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/work/repairTypeUserApi.js b/src/api/work/repairTypeUserApi.js index 10648cc..b010b8c 100644 --- a/src/api/work/repairTypeUserApi.js +++ b/src/api/work/repairTypeUserApi.js @@ -38,7 +38,7 @@ export function updateRepairTypeUser(data) { return new Promise((resolve, reject) => { request({ - url: '/repair/updateRepairTypeUser', + url: '/repair.updateRepairTypeUser', method: 'post', data }).then(response => { @@ -55,7 +55,7 @@ export function deleteRepairTypeUser(data) { return new Promise((resolve, reject) => { request({ - url: '/repair/deleteRepairTypeUser', + url: '/repair.deleteRepairTypeUser', method: 'post', data }).then(response => { @@ -71,7 +71,7 @@ export function listOrgTree(params) { return new Promise((resolve, reject) => { request({ - url: '/org/listOrgTree', + url: '/org.listOrgTree', method: 'get', params }).then(response => { diff --git a/src/components/org/OrgTreeShow.vue b/src/components/org/OrgTreeShow.vue new file mode 100644 index 0000000..b2be779 --- /dev/null +++ b/src/components/org/OrgTreeShow.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/components/staff/SelectStaff.vue b/src/components/staff/SelectStaff.vue new file mode 100644 index 0000000..a02d69c --- /dev/null +++ b/src/components/staff/SelectStaff.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/src/components/work/AppraiseRepair.vue b/src/components/work/AppraiseRepair.vue new file mode 100644 index 0000000..4163d6e --- /dev/null +++ b/src/components/work/AppraiseRepair.vue @@ -0,0 +1,94 @@ + + + \ No newline at end of file diff --git a/src/components/work/DeleteRepairTypeUser.vue b/src/components/work/DeleteRepairTypeUser.vue index 4b37dca..991e926 100644 --- a/src/components/work/DeleteRepairTypeUser.vue +++ b/src/components/work/DeleteRepairTypeUser.vue @@ -10,7 +10,7 @@ diff --git a/src/components/work/EditRepairTypeUser.vue b/src/components/work/EditRepairTypeUser.vue index 3768283..329ac9c 100644 --- a/src/components/work/EditRepairTypeUser.vue +++ b/src/components/work/EditRepairTypeUser.vue @@ -1,10 +1,5 @@