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/work/OrgTreeShow.vue b/src/components/org/OrgTreeShow.vue index 08feba1..b2be779 100644 --- a/src/components/work/OrgTreeShow.vue +++ b/src/components/org/OrgTreeShow.vue @@ -1,14 +1,7 @@ @@ -36,7 +29,7 @@ export default { } const response = await listOrgTree(params) if (response.code === 0) { - this.orgs = response.data + this.orgs = [response.data] } else { this.$message.error(response.msg || this.$t('common.requestFailed')) } diff --git a/src/components/work/SelectStaff.vue b/src/components/staff/SelectStaff.vue index 878a8d8..a02d69c 100644 --- a/src/components/work/SelectStaff.vue +++ b/src/components/staff/SelectStaff.vue @@ -1,10 +1,5 @@ \ 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 @@