diff --git a/src/api/model/wf.js b/src/api/model/wf.js index 64264196..6b479b2b 100644 --- a/src/api/model/wf.js +++ b/src/api/model/wf.js @@ -188,6 +188,12 @@ export default { return await http.get( `${config.API_URL}/wf/ticket/${id}/transitions/`); } }, + ticketAvailableActions: { + name: "获取当前用户可执行的工单操作", + req: async function(id){ + return await http.get(`${config.API_URL}/wf/ticket/${id}/available_actions/`); + } + }, dutyAgg: { url: `${config.API_URL}/wf/ticket/duty_agg/`, name: "待办审批聚合", diff --git a/src/views/wf/ticketd_b.vue b/src/views/wf/ticketd_b.vue index 54f3eaed..80e96d4c 100644 --- a/src/views/wf/ticketd_b.vue +++ b/src/views/wf/ticketd_b.vue @@ -1,4 +1,12 @@ \ No newline at end of file + diff --git a/src/views/wf/ticketdetail.vue b/src/views/wf/ticketdetail.vue index 740bb269..bc1e7b3e 100644 --- a/src/views/wf/ticketdetail.vue +++ b/src/views/wf/ticketdetail.vue @@ -316,6 +316,14 @@
+ 接单 { that.mainLoading = false; that.ticketDetail = res; @@ -791,11 +802,11 @@ export default { if (this.ticketDetail.create_by == this.userId) { this.isOwn = true; } - let participant = this.ticketDetail.participant; - if ( - participant == this.userId || - participant.indexOf(this.userId) > -1 - ) { + const participant = this.ticketDetail.participant; + const participants = Array.isArray(participant) + ? participant + : [participant]; + if (participants.map(String).includes(String(this.userId))) { this.isDuty = true; } }).catch((e) => { @@ -806,21 +817,37 @@ export default { getBtns() { let that = this; that.audit_imgs_show = false; - that.$API.wf.ticket.ticketTransitions.req(that.ticketId).then((res) => { - that.operationBtn = res; + that.audit_work_show = false; + that.needAccept = false; + that.$API.wf.ticket.ticketAvailableActions.req(that.ticketId).then((res) => { + that.operationBtn = res.transitions; + that.needAccept = res.need_accept; + if (res.permission || res.need_accept) { + that.isDuty = true; + } console.log("operationBtn", that.operationBtn); - if(res.length>0){ - for (let i = 0; i < res.length; i++) { - if(res[i].on_submit_func=="apps.opm.services.check_opl_audit_imgs"){ + if(that.operationBtn.length>0){ + for (let i = 0; i < that.operationBtn.length; i++) { + if(that.operationBtn[i].on_submit_func=="apps.opm.services.check_opl_audit_imgs"){ that.audit_imgs_show = true; } - if(res[i].on_submit_func=="apps.opm.services.check_opl_work_imgs"){ + if(that.operationBtn[i].on_submit_func=="apps.opm.services.check_opl_work_imgs"){ that.audit_work_show = true; } } } }); }, + handleAccept() { + this.acceptLoading = true; + this.$API.wf.ticket.ticketAccept.req(this.ticketId, {}).then(() => { + this.$message.success("接单成功"); + this.getticketItem(); + this.getBtns(); + }).finally(() => { + this.acceptLoading = false; + }); + }, //访客详情 getVisit() { this.$API.vm.visit.read.req(this.projectId).then((res) => {