bpm 的 OA 请假的列表的接入
parent
ec978c4441
commit
cc9a2199b1
@ -1,212 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="app-container">
|
|
||||||
<el-tabs type="border-card">
|
|
||||||
<el-tab-pane label="任务处理">
|
|
||||||
<el-form ref="form" :model="form" label-width="80px">
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="6"><el-form-item label="申请人" >{{form.userId}}</el-form-item></el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="请假类型" prop="leaveType">
|
|
||||||
{{ getDictDataLabel(DICT_TYPE.OA_LEAVE_TYPE, form.leaveType) }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6"><el-form-item label="原因" prop="reason">{{form.reason}}</el-form-item></el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="6"><el-form-item label="开始时间" >{{ parseTime(form.startTime) }}</el-form-item></el-col>
|
|
||||||
<el-col :span="6"><el-form-item label="结束时间" prop="endTime">{{ parseTime(form.endTime) }}</el-form-item></el-col>
|
|
||||||
<el-form-item label="申请时间" prop="applyTime">{{ parseTime(form.applyTime) }}</el-form-item>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<el-divider></el-divider>
|
|
||||||
<el-form ref="taskForm" :model="leaveApprove" :rules="rules" label-width="80px">
|
|
||||||
<el-form-item label="是否同意" prop="approved">
|
|
||||||
<el-select v-model="leaveApprove.approved" placeholder="是否同意" v-on:change="approveChange">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in approvedData"
|
|
||||||
:key="parseInt(dict.value)"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="parseInt(dict.value)"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处理意见" prop="comment">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-input
|
|
||||||
type="textarea"
|
|
||||||
:rows="3"
|
|
||||||
v-model="leaveApprove.comment">
|
|
||||||
</el-input>
|
|
||||||
</el-col>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</el-tab-pane>
|
|
||||||
<el-tab-pane label="历史跟踪">
|
|
||||||
<el-steps :active="stepActive" simple finish-status="success">
|
|
||||||
<el-step :title="stepTitle(item)" icon="el-icon-edit" v-for="(item) in handleTask.historyTask" ></el-step>
|
|
||||||
</el-steps>
|
|
||||||
<br/>
|
|
||||||
<el-steps direction="vertical" :active="stepActive" space="65px">
|
|
||||||
<el-step :title="stepTitle(item)" :description="stepDes(item)" v-for="(item) in handleTask.historyTask" ></el-step>
|
|
||||||
</el-steps>
|
|
||||||
</el-tab-pane>
|
|
||||||
<el-tab-pane label="流程图">
|
|
||||||
<div v-html="highlightSvgUrl"></div>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { getLeave,getLeaveApplyMembers } from "@/api/oa/leave"
|
|
||||||
import { completeTask,taskSteps, getHighlightImg } from "@/api/oa/todo";
|
|
||||||
import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict'
|
|
||||||
export default {
|
|
||||||
name: "ApproveLeave",
|
|
||||||
components: {
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 表单参数
|
|
||||||
form: {},
|
|
||||||
// 表单校验
|
|
||||||
rules: {
|
|
||||||
comment: [{ required: true, message: "意见不能为空", trigger: "blur" }]
|
|
||||||
},
|
|
||||||
handleTask: {
|
|
||||||
historyTask:[]
|
|
||||||
},
|
|
||||||
leaveApprove: {
|
|
||||||
approved : 1,
|
|
||||||
variables: {
|
|
||||||
hr: "",
|
|
||||||
pm: "",
|
|
||||||
bm: ""
|
|
||||||
},
|
|
||||||
taskId: "",
|
|
||||||
processInstanceId: "",
|
|
||||||
comment: "同意"
|
|
||||||
},
|
|
||||||
approvedData: [
|
|
||||||
{
|
|
||||||
value: 1,
|
|
||||||
label: '同意'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 0,
|
|
||||||
label: '不同意'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
highlightSvgUrl: "",
|
|
||||||
statusFormat(row, column) {
|
|
||||||
return getDictDataLabel(DICT_TYPE.OA_LEAVE_STATUS, row.status)
|
|
||||||
},
|
|
||||||
leaveTypeDictData: getDictDatas(DICT_TYPE.OA_LEAVE_TYPE),
|
|
||||||
leaveStatusData: getDictDatas(DICT_TYPE.OA_LEAVE_STATUS)
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed:{
|
|
||||||
stepActive: function () {
|
|
||||||
let idx = 0;
|
|
||||||
for(let i=0; i<this.handleTask.historyTask.length; i++){
|
|
||||||
if(this.handleTask.historyTask[i].status === 1){
|
|
||||||
idx= idx+1;
|
|
||||||
}else{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return idx;
|
|
||||||
},
|
|
||||||
stepTitle() {
|
|
||||||
return function (item) {
|
|
||||||
let name = item.stepName;
|
|
||||||
if (item.status === 1) {
|
|
||||||
name += '(已完成)'
|
|
||||||
}
|
|
||||||
if (item.status === 0) {
|
|
||||||
name += '(进行中)'
|
|
||||||
}
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
stepDes(){
|
|
||||||
return function (item) {
|
|
||||||
let desc = "";
|
|
||||||
if (item.status === 1) {
|
|
||||||
desc+="审批人:["+ item.assignee +"] 审批意见: [" + item.comment + "] 审批时间: " + this.parseTime(item.endTime);
|
|
||||||
}
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
const businessKey = this.$route.query.businessKey;
|
|
||||||
const taskId = this.$route.query.taskId;
|
|
||||||
this.leaveApprove.taskId = taskId;
|
|
||||||
this.leaveApprove.processInstanceId = this.$route.query.processInstanceId;
|
|
||||||
this.getForm(businessKey);
|
|
||||||
this.getHighlightImg(this.leaveApprove.processInstanceId);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
getHighlightImg(processInstanceId){
|
|
||||||
getHighlightImg(processInstanceId).then(response => {
|
|
||||||
console.log(response)
|
|
||||||
this.highlightSvgUrl = response
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/** 提交按钮 */
|
|
||||||
submitForm() {
|
|
||||||
this.$refs["taskForm"].validate(valid => {
|
|
||||||
if (!valid) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (this.leaveApprove.approved == 1) {
|
|
||||||
this.leaveApprove.variables["approved"] = true;
|
|
||||||
}
|
|
||||||
if (this.leaveApprove.approved == 0) {
|
|
||||||
this.leaveApprove.variables["approved"] = false;
|
|
||||||
}
|
|
||||||
completeTask(this.leaveApprove).then(response => {
|
|
||||||
|
|
||||||
this.msgSuccess("执行任务成功");
|
|
||||||
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
|
|
||||||
//if (this.isActive(this.$route)) {
|
|
||||||
this.$router.push({path: '/oa/todo'})
|
|
||||||
//}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
},
|
|
||||||
getForm(id){
|
|
||||||
getLeave(id).then(response => {
|
|
||||||
this.form = response.data;
|
|
||||||
});
|
|
||||||
const data = {
|
|
||||||
taskId : this.leaveApprove.taskId,
|
|
||||||
businessKey: id,
|
|
||||||
}
|
|
||||||
taskSteps(data).then(response => {
|
|
||||||
this.handleTask = response.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
getLeaveApplyMembers().then(response => {
|
|
||||||
this.leaveApprove.variables.hr = response.data.hr;
|
|
||||||
this.leaveApprove.variables.bm = response.data.bm;
|
|
||||||
this.leaveApprove.variables.pm = response.data.pm;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
approveChange(){
|
|
||||||
if (this.leaveApprove.approved === 1) {
|
|
||||||
this.leaveApprove.comment = "同意"
|
|
||||||
}
|
|
||||||
if(this.leaveApprove.approved === 0){
|
|
||||||
this.leaveApprove.comment = "不同意"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
Loading…
Reference in New Issue