diff --git a/src/api/oa/workDetailApi.js b/src/api/oa/workDetailApi.js new file mode 100644 index 0000000..8a449e9 --- /dev/null +++ b/src/api/oa/workDetailApi.js @@ -0,0 +1,129 @@ +import request from '@/utils/request' + +// 获取工作单详情 +export function getWorkPoolDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/work.listWorkPool', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单任务列表 +export function listWorkTask(params) { + return new Promise((resolve, reject) => { + request({ + url: '/work.listWorkTask', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单任务项列表 +export function listWorkTaskItem(params) { + return new Promise((resolve, reject) => { + request({ + url: '/task.listWorkTaskItem', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单抄送人列表 +export function listWorkCopy(params) { + return new Promise((resolve, reject) => { + request({ + url: '/work.listWorkCopy', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单流转事件列表 +export function listWorkEvent(params) { + return new Promise((resolve, reject) => { + request({ + url: '/workEvent.listWorkEvent', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单流转附件列表 +export function listWorkPoolFile(params) { + return new Promise((resolve, reject) => { + request({ + url: '/work.listWorkPoolFile', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单类型列表 +export function listWorkType(params) { + return new Promise((resolve, reject) => { + request({ + url: '/workType.listWorkType', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取工作单周期列表 +export function listWorkCycle(params) { + return new Promise((resolve, reject) => { + request({ + url: '/workCycle.listWorkCycle', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/oa/WorkDetailCopy.vue b/src/components/oa/WorkDetailCopy.vue new file mode 100644 index 0000000..48b1129 --- /dev/null +++ b/src/components/oa/WorkDetailCopy.vue @@ -0,0 +1,138 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailCycle.vue b/src/components/oa/WorkDetailCycle.vue new file mode 100644 index 0000000..1ccc0c6 --- /dev/null +++ b/src/components/oa/WorkDetailCycle.vue @@ -0,0 +1,135 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailEvent.vue b/src/components/oa/WorkDetailEvent.vue new file mode 100644 index 0000000..1b402a4 --- /dev/null +++ b/src/components/oa/WorkDetailEvent.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailFile.vue b/src/components/oa/WorkDetailFile.vue new file mode 100644 index 0000000..4bb2711 --- /dev/null +++ b/src/components/oa/WorkDetailFile.vue @@ -0,0 +1,223 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailTask.vue b/src/components/oa/WorkDetailTask.vue new file mode 100644 index 0000000..b4f3db7 --- /dev/null +++ b/src/components/oa/WorkDetailTask.vue @@ -0,0 +1,190 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailTaskItem.vue b/src/components/oa/WorkDetailTaskItem.vue new file mode 100644 index 0000000..fdc5819 --- /dev/null +++ b/src/components/oa/WorkDetailTaskItem.vue @@ -0,0 +1,156 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/WorkDetailType.vue b/src/components/oa/WorkDetailType.vue new file mode 100644 index 0000000..2975224 --- /dev/null +++ b/src/components/oa/WorkDetailType.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/src/i18n/oaI18n.js b/src/i18n/oaI18n.js index 75cd158..aa3423b 100644 --- a/src/i18n/oaI18n.js +++ b/src/i18n/oaI18n.js @@ -41,6 +41,7 @@ import { messages as workTypeMessages } from '../views/oa/workTypeLang' import { messages as startWorkMessages } from '../views/oa/startWorkLang' import { messages as addWorkMessages } from '../views/oa/addWorkLang' import { messages as editWorkMessages } from '../views/oa/editWorkLang' +import { messages as workDetailMessages } from '../views/oa/workDetailLang' export const messages ={ en:{ ...activitiesTypeManageMessages.en, @@ -85,6 +86,7 @@ export const messages ={ ...startWorkMessages.en, ...addWorkMessages.en, ...editWorkMessages.en, + ...workDetailMessages.en, }, zh:{ ...activitiesTypeManageMessages.zh, @@ -129,5 +131,6 @@ export const messages ={ ...startWorkMessages.zh, ...addWorkMessages.zh, ...editWorkMessages.zh, + ...workDetailMessages.zh, } } \ No newline at end of file diff --git a/src/router/oaRouter.js b/src/router/oaRouter.js index bce5950..16679a7 100644 --- a/src/router/oaRouter.js +++ b/src/router/oaRouter.js @@ -185,13 +185,18 @@ export default [ component: () => import('@/views/oa/startWorkList.vue') }, { - path:'/views/oa/addWork', - name:'/views/oa/addWork', + path: '/views/oa/addWork', + name: '/views/oa/addWork', component: () => import('@/views/oa/addWorkList.vue') - }, - { - path:'/views/oa/editWork', - name:'/views/oa/editWork', - component: () => import('@/views/oa/editWorkList.vue') - }, + }, + { + path: '/views/oa/editWork', + name: '/views/oa/editWork', + component: () => import('@/views/oa/editWorkList.vue') + }, + { + path: '/views/oa/workDetail', + name: '/views/oa/workDetail', + component: () => import('@/views/oa/workDetailList.vue') + }, ] \ No newline at end of file diff --git a/src/views/oa/startWorkList.vue b/src/views/oa/startWorkList.vue index e8da3a2..81148ad 100644 --- a/src/views/oa/startWorkList.vue +++ b/src/views/oa/startWorkList.vue @@ -201,7 +201,7 @@ export default { this.$router.push(`/views/oa/editWork?workId=${row.workId}`) }, handleDetail(row) { - this.$router.push(`/oa/workDetail?workId=${row.workId}`) + this.$router.push(`/views/oa/workDetail?workId=${row.workId}`) }, handleDelete(row) { this.$refs.deleteWork.open(row) diff --git a/src/views/oa/workDetailLang.js b/src/views/oa/workDetailLang.js new file mode 100644 index 0000000..14e96a4 --- /dev/null +++ b/src/views/oa/workDetailLang.js @@ -0,0 +1,206 @@ +export const messages = { + en: { + workDetail: { + title: 'Work Order Details', + workId: 'Work Order ID', + workName: 'Work Order Name', + typeName: 'Type Name', + workCycle: 'Mark', + once: 'One-time Work Order', + periodic: 'Periodic Work Order', + startTime: 'Start Time', + endTime: 'End Time', + createUserName: 'Initiator', + curStaffName: 'Handler', + curCopyName: 'Copy Person', + stateName: 'Status', + createTime: 'Create Time', + attachment: 'Attachment', + content: 'Content', + handler: 'Handler', + handlerContent: 'Handler Content', + copyPerson: 'Copy Person', + workFlow: 'Work Order Flow', + flowAttachment: 'Flow Attachment', + workType: 'Work Order Type', + workCycleTab: 'Work Order Cycle' + }, + workDetailTask: { + taskId: 'Task ID', + staffName: 'Handler', + startTime: 'Start Time', + endTime: 'End Time', + createTime: 'Create Time', + stateName: 'Status', + operation: 'Operation', + progress: 'Progress', + staffNamePlaceholder: 'Please enter handler', + startTimePlaceholder: 'Start time', + endTimePlaceholder: 'End time' + }, + workDetailTaskItem: { + content: 'Work Content', + finishTime: 'Finish Time', + state: 'Status', + remark: 'Remark', + attachment: 'Attachment', + score: 'Score', + deductionMoney: 'Deduction Amount', + deductionReason: 'Deduction Reason', + deductionPerson: 'Deduction Person', + createTime: 'Create Time', + copyProcessed: 'Copy Person Processed', + handlerProcessed: 'Handler Processed', + pending: 'Pending' + }, + workDetailCopy: { + copyId: 'Task ID', + staffName: 'Copy Person', + createTime: 'Create Time', + stateName: 'Status', + remark: 'Remark', + staffNamePlaceholder: 'Please enter copy person' + }, + workDetailEvent: { + preStaffName: 'Previous Handler', + staffName: 'Handler', + taskValidPeriod: 'Task Valid Period', + remark: 'Remark', + createTime: 'Time', + staffNamePlaceholder: 'Please enter handler', + startTimePlaceholder: 'Start time', + endTimePlaceholder: 'End time' + }, + workDetailFile: { + staffName: 'Handler', + attachment: 'Attachment', + staffNamePlaceholder: 'Please enter handler', + startTimePlaceholder: 'Start time', + endTimePlaceholder: 'End time' + }, + workDetailType: { + typeName: 'Type Name', + notifyWay: 'Notification Method', + createTime: 'Create Time', + remark: 'Remark', + wechat: 'WeChat', + aliSms: 'Ali SMS', + unknown: 'Unknown' + }, + workDetailCycle: { + staffName: 'Handler', + workCycle: 'Mark', + hours: 'Completion Hours', + period: 'Cycle', + month: 'Month', + day: 'Day', + week: 'Week', + once: 'One-time Work Order', + periodic: 'Periodic Work Order', + monthDay: 'Month/Day', + weekly: 'Weekly' + } + }, + zh: { + workDetail: { + title: '工作单详情', + workId: '工单编号', + workName: '工单名称', + typeName: '类型名称', + workCycle: '标识', + once: '一次性工单', + periodic: '周期性工单', + startTime: '开始时间', + endTime: '结束时间', + createUserName: '发起人', + curStaffName: '处理人', + curCopyName: '抄送人', + stateName: '状态', + createTime: '创建时间', + attachment: '附件', + content: '内容', + handler: '处理人', + handlerContent: '处理内容', + copyPerson: '抄送人', + workFlow: '工作单流转', + flowAttachment: '流转附件', + workType: '工作单类型', + workCycleTab: '工作单周期' + }, + workDetailTask: { + taskId: '任务编号', + staffName: '处理人', + startTime: '开始时间', + endTime: '结束时间', + createTime: '创建时间', + stateName: '状态', + operation: '操作', + progress: '进度', + staffNamePlaceholder: '请填写处理人', + startTimePlaceholder: '开始时间', + endTimePlaceholder: '结束时间' + }, + workDetailTaskItem: { + content: '工作内容', + finishTime: '完成时间', + state: '状态', + remark: '说明', + attachment: '附件', + score: '评分', + deductionMoney: '扣款金额', + deductionReason: '扣款原因', + deductionPerson: '扣款人', + createTime: '创建时间', + copyProcessed: '抄送人已办理', + handlerProcessed: '处理人已办理', + pending: '待处理' + }, + workDetailCopy: { + copyId: '任务编号', + staffName: '抄送人', + createTime: '创建时间', + stateName: '状态', + remark: '说明', + staffNamePlaceholder: '请填写抄送人' + }, + workDetailEvent: { + preStaffName: '前处理人', + staffName: '处理人', + taskValidPeriod: '任务有效期', + remark: '说明', + createTime: '时间', + staffNamePlaceholder: '请填写处理人', + startTimePlaceholder: '开始时间', + endTimePlaceholder: '结束时间' + }, + workDetailFile: { + staffName: '处理人', + attachment: '附件', + staffNamePlaceholder: '请填写处理人', + startTimePlaceholder: '开始时间', + endTimePlaceholder: '结束时间' + }, + workDetailType: { + typeName: '类型名称', + notifyWay: '通知方式', + createTime: '创建时间', + remark: '备注', + wechat: '微信', + aliSms: '阿里短信', + unknown: '未知' + }, + workDetailCycle: { + staffName: '处理人', + workCycle: '标识', + hours: '完成小时', + period: '周期', + month: '月', + day: '日', + week: '周', + once: '一次性工单', + periodic: '周期性工单', + monthDay: '月/天', + weekly: '按周' + } + } +} \ No newline at end of file diff --git a/src/views/oa/workDetailList.vue b/src/views/oa/workDetailList.vue new file mode 100644 index 0000000..4a3f39d --- /dev/null +++ b/src/views/oa/workDetailList.vue @@ -0,0 +1,326 @@ + + + + + \ No newline at end of file