<template>
|
<basic-container>
|
<avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
|
@search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
|
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
|
@selection-change="selectionTransferTask">
|
<template #menu-left>
|
|
<el-button type="primary" :disabled="this.transferTaskSelection.length==0" v-if="permission.auto_dispatch" plain @click="reassign(2)">自动派工
|
</el-button>
|
<el-button type="primary" :disabled="this.transferTaskSelection.length==0" v-if="permission.manual_dispatch" plain @click="reassign(1)">手动派工
|
</el-button>
|
<el-button type="primary" :disabled="this.transferTaskSelection.length==0" plain @click="reassign(0)">转派</el-button>
|
<el-button type="primary" :disabled="this.transferTaskSelection.length==0" v-if="permission.batch_approve" plain @click="reassign(3)">批量审批
|
</el-button>
|
</template>
|
<template #menu="scope">
|
<el-button type="primary" text size="default" @click.stop="handleAction(scope.row, scope.index)">
|
{{approveButtonText(scope.row.taskDefinitionKey)}}
|
</el-button>
|
</template>
|
</avue-crud>
|
<el-dialog title=" " append-to-body v-model="reassignBox" width="30%">
|
<avue-form ref="reassginform" :option="reassignOption" v-model="reassignForm" @submit="toPerson"></avue-form>
|
</el-dialog>
|
<el-drawer title="审批" append-to-body v-model="approveBox" size="100%" v-if="approveBox">
|
<div class="approve-box">
|
<div class="left">
|
<TodolistLeft ref="todolistLeft" :row="row" @selection-change="selectionChange" />
|
</div>
|
<div class="right">
|
<TodolistRightTop :row="row" />
|
<el-tabs
|
type="card"
|
class="demo-tabs"
|
v-model="activeName"
|
>
|
<el-tab-pane label="审批" name="approve">
|
<avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" >
|
|
</avue-form>
|
</el-tab-pane>
|
<el-tab-pane label="流程轨迹" name="log">
|
<processTrace :item="row" v-if="activeName==='log'"></processTrace>
|
</el-tab-pane>
|
</el-tabs>
|
|
</div>
|
</div>
|
</el-drawer>
|
</basic-container>
|
</template>
|
<script>
|
import { getList, approve, getAssignee,getAssigneeTree,reassgin,manualDispatch,autoDispatch,todoChangeNotify,batchApprove } from '@/api/flow/todolist';
|
import { mapGetters } from 'vuex';
|
import dayjs from 'dayjs';
|
import TodolistLeft from './components/TodolistLeft.vue';
|
import TodolistRightTop from './components/TodolistRightTop.vue';
|
import processTrace from './components/process-trace.vue';
|
|
export default {
|
components: {
|
TodolistLeft,
|
TodolistRightTop,
|
processTrace
|
},
|
data() {
|
return {
|
activeName: 'approve',
|
applist: [],
|
assigneeData: [],
|
allAssigneeData: [],
|
managerAssigneeData: [],//数控管理员角色的审批用户
|
|
assignee2Data:[],
|
|
row: {},
|
approveBox: false,
|
formApprove: {
|
comment: '',
|
approve: '',
|
assignee: '',
|
},
|
|
|
optionApprove: {
|
labelWidth: 100,
|
column: [
|
|
{
|
label: '审批结果',
|
prop: 'approve',
|
type: 'radio',
|
span: 24,
|
dicData: [
|
{ label: '通过', value: 'Y' },
|
{ label: '驳回', value: 'N' },
|
],
|
rules: [{ required: true, message: '请选择审批结果', trigger: 'blur' }],
|
},
|
{
|
label: '发送给',
|
prop: 'assignee',
|
component: 'elTreeSelect',
|
params: {
|
props:{
|
label: 'name',
|
value:'id',
|
disabled: (data) => data.nodeType==='dept',
|
isLeaf: (data) => data.children==null || data.children.length==0,
|
},
|
},
|
display: true,
|
filterable: true,
|
span: 24,
|
disabled: false,
|
},
|
{
|
label: '备注',
|
span: 24,
|
prop: 'comment',
|
type: 'textarea',
|
rules: [
|
{
|
validator: (rule, value, callback) => {
|
console.log('-------',this.formApprove)
|
if (value === '' && this.formApprove.approve !== 'Y') {
|
callback(new Error('请输入备注'));
|
} else {
|
callback();
|
}
|
},
|
trigger: 'blur'
|
}
|
]
|
},
|
|
],
|
},
|
page: {
|
pageSize: 10,
|
currentPage: 1,
|
total: 0,
|
},
|
form: {},
|
query: {},
|
loading: true,
|
option: {
|
rowKey: "taskId",
|
addBtn: false,
|
editBtn: false,
|
delBtn: false,
|
columnBtn: false,
|
tip: false,
|
searchEnter:true,
|
searchShow: true,
|
searchMenuSpan: 6,
|
dialogWidth: '60%',
|
border: true,
|
index: true,
|
selection: true,
|
// viewBtn: true,
|
menuWidth: 100,
|
dialogClickModal: false,
|
column: [
|
{
|
label: '关键字',
|
prop: 'keyword',
|
width: 300,
|
search: true,
|
searchType: 'input',
|
hide: true,
|
dicData: [
|
{
|
label: '涉密网程序',
|
value: 1,
|
},
|
{
|
label: '工控网车床程序',
|
value: 2,
|
},
|
],
|
},
|
{
|
label: '标题',
|
prop: '',
|
width: 200,
|
render: ({ row }) => {
|
return h('p',
|
{
|
attrs: {},
|
class: {},
|
style: {},
|
}, row?.variables?.title)
|
}
|
},
|
{
|
label: '流程名称',
|
prop: '',
|
width: 110,
|
render: ({ row }) => {
|
return h('p',
|
{
|
attrs: {},
|
class: {},
|
style: {},
|
}, row?.variables?.myProcessName)
|
}
|
},
|
{
|
label: '编制',
|
width: 100,
|
render: ({ row }) => {
|
return h('p',
|
{
|
attrs: {},
|
class: {},
|
style: {},
|
}, row?.variables?.programmerName)
|
}
|
},
|
{
|
label: '机床',
|
width: 100,
|
prop: '',
|
showOverflowTooltip:true,
|
formatter: (val, value, label) => {
|
return `${val?.variables?.machineCode}`;
|
},
|
},
|
{
|
label: '创建人',
|
width: 70,
|
overHidden:true,
|
prop: 'startUserName',
|
},
|
{
|
label: '创建时间',
|
width: 100,
|
prop: 'processCreateTime',
|
type: 'datetime',
|
format: 'YYYY-MM-DD HH:mm:ss',
|
valueFormat: 'YYYY-MM-DD HH:mm:ss',
|
search: true,
|
searchRange: true,
|
searchSpan: 8,
|
showOverflowTooltip:true,
|
// hide: true,
|
},
|
{
|
label: '上一步用户',
|
width: 100,
|
prop: '',
|
formatter: (val, value, label) => {
|
return `${val?.variables?.approveUserNickName || ''}`;
|
},
|
},
|
{
|
label: '当前节点',
|
width: 120,
|
showOverflowTooltip:true,
|
prop: 'taskName',
|
},
|
{
|
label: '文件',
|
width: 200,
|
prop: 'file',
|
showOverflowTooltip:true,
|
},
|
{
|
label: '到达时间',
|
width: 120,
|
prop: 'createTime',
|
showOverflowTooltip:true,
|
|
|
},
|
{
|
label: '到达描述',
|
width: 200,
|
prop: 'comment',
|
},
|
|
],
|
},
|
data: [],
|
transferTaskSelection: [],
|
reassignBox: false,
|
reassignType: 0, // 0:重新指派,1:自动派工 2: 自动派工
|
reassignOption: {
|
submitBtn: true,
|
emptyBtn: false,
|
column: [
|
{
|
label: '审批结果',
|
prop: 'approve',
|
type: 'radio',
|
span: 24,
|
display: false,
|
dicData: [
|
{ label: '通过', value: 'Y' },
|
{ label: '驳回', value: 'N' },
|
],
|
rules: [{ required: true, message: '请选择审批结果', trigger: 'blur' }],
|
},
|
{
|
label: '发送给',
|
prop: 'newAssigneeId',
|
component: 'elTreeSelect',
|
params: {
|
props:{
|
label: 'name',
|
value:'id',
|
disabled: (data) => data.nodeType==='dept',
|
isLeaf: (data) => data.children==null || data.children.length==0,
|
},
|
},
|
display: true,
|
filterable: true,
|
span: 24,
|
disabled: false,
|
rules: [{ required: true, message: '请输入选择', trigger: 'blur' }],
|
},
|
/*
|
{
|
label: '发送给',
|
prop: 'newAssigneeId',
|
filterable:true,
|
type: 'select',
|
props: {
|
label: 'name',
|
value: 'id',
|
},
|
span: 24,
|
disabled: false,
|
display: true,
|
dicData: [
|
|
],
|
rules: [{ required: true, message: '请输入选择', trigger: 'blur' }],
|
},*/
|
{
|
label: '备注',
|
span: 24,
|
prop: 'comment',
|
type: 'textarea',
|
},
|
],
|
},
|
reassignForm: {}
|
};
|
},
|
watch: {
|
|
'formApprove.approve'(val) {
|
this.setAssignee(this.row, val);
|
|
},
|
'reassignForm.approve'(val) {
|
if(this.reassignType ===3) {
|
if(val === 'Y') {
|
this.reassignOption.column[1].disabled = true;
|
this.reassignOption.column[1].display = false;
|
this.reassignForm.newAssigneeId = '';
|
} else {
|
this.reassignOption.column[1].display = false;
|
this.reassignOption.column[1].disabled = false;
|
this.reassignForm.newAssigneeId = '';
|
}
|
}
|
|
}
|
},
|
computed: {
|
...mapGetters(['userInfo', 'permission']),
|
permissionList() {
|
return {
|
manual_dispatch: this.validData(this.permission.manual_dispatch, false),
|
auto_dispatch: this.validData(this.permission.auto_dispatch, false),
|
batch_approve: this.validData(this.permission.batch_approve, true),
|
};
|
},
|
},
|
mounted() {
|
//this.setApproveBtn(row)
|
/*
|
getAssignee({
|
taskId: 0,
|
}).then(res => {
|
//if(row.taskDefinitionKey === '')
|
this.assigneeData = res.data.data;
|
this.reassignOption.column[1].dicData = this.assigneeData;
|
});
|
*/
|
getAssigneeTree({
|
taskId: 0,
|
}).then(res => {
|
this.assigneeData = res.data.data;
|
//初始化数控管理员的数组
|
for(var i=0;i<this.assigneeData.length;i++){
|
for(var j=0;j<this.assigneeData[i].children.length;j++){
|
if(this.assigneeData[i].children[j].nodeType=='manager'){
|
this.managerAssigneeData[this.managerAssigneeData.length] = this.assigneeData[i].children[j];
|
}
|
}
|
}
|
|
this.optionApprove.column[1].data = this.assigneeData;
|
this.reassignOption.column[1].data = this.assigneeData;
|
});
|
},
|
methods: {
|
approveButtonText(taskDefinitionKey){
|
let lower = taskDefinitionKey.toLowerCase();
|
if(taskDefinitionKey === 'teamLeaderTask') {
|
return '派工'
|
}else if(taskDefinitionKey == 'unlockProgramConfirm') {
|
//解锁,编制复核
|
return '复核'
|
}else if(taskDefinitionKey == 'programMgrConfirm') {
|
//固化,程序管理员确认
|
return '确认'
|
}else if(lower.indexOf('program')>-1) {
|
return '编制'
|
}else if(lower.indexOf('check')>-1) {
|
return '校对'
|
}else if(lower.indexOf('useable')>-1) {
|
return '检查'
|
}else{
|
return '审批'
|
}
|
},
|
setApproveBtn (row) { // 设置审批结果的状态
|
// 1.审批界面radio文本修改,普通节点的2个radio文本 通过(approve=Y),不通过(现在的驳回)(approve=N)
|
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '不通过', value: 'N' },
|
];
|
switch (this.row.taskDefinitionKey) {
|
case 'teamLeaderTask': // 任务派工
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '结束', value: 'N' },
|
];
|
break;
|
case 'appendProgrammingTask': // 补充流程的 编程节点
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '结束', value: 'E' },
|
];
|
break;
|
case 'cureProgramTask': // 固化编制,可以通过(给校对);不通过N(给程序管理员)
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '不通过', value: 'N' },//给程序管理员
|
|
];
|
break;
|
case 'confirmIsUseableTask': // 检查程序是否可用,驳回是给
|
this.optionApprove.column[0].dicData = [
|
{ label: '可用', value: 'Y' }, //给校对
|
{ label: '不可用', value: 'N' },//给编制
|
{ label: '驳回', value: 'R' },//给驳回组长
|
];
|
break;
|
case 'programmingTask': //试切 编制节点
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '不通过', value: 'N' },//给组长
|
{ label: '结束', value: 'E' },//结束流程
|
];
|
break;
|
case 'programMgrConfirm'://固化流程 程序管理员,只能结束
|
this.optionApprove.column[0].dicData = [
|
{ label: '结束', value: 'E' },
|
];
|
break;
|
case 'seniorApproveTask': // 高师审核
|
case 'approveTask': // 高师审核
|
default:
|
this.optionApprove.column[0].dicData = [
|
{ label: '通过', value: 'Y' },
|
{ label: '不通过', value: 'N' },
|
];
|
break;
|
}
|
},
|
setAssignee (row, approve) {
|
|
if (["cureProgramTask"].includes(row.taskDefinitionKey)) {
|
if(approve === 'N'){
|
this.optionApprove.column[1].data = this.managerAssigneeData;
|
}else{
|
//this.optionApprove.column[1].dicData = this.allAssigneeData;
|
this.optionApprove.column[1].data = this.assigneeData;
|
}
|
}
|
if (approve === 'Y') {//审批通过的情况
|
|
this.optionApprove.column[1].disabled = false;
|
if (["check", 'cureCheckTask','repalceCheckTask','appendCheckTask'].includes(row.taskDefinitionKey)) {// 校对节点
|
this.formApprove.assignee = row.variables.senior;
|
} else if (["programmingTask",'cureProgramTask','replaceProgrammingTask','appendProgrammingTask'].includes(row.taskDefinitionKey)) {// 编制节点
|
this.formApprove.assignee = row.variables.checker;
|
} else if (row.taskDefinitionKey == "teamLeaderTask") {// 任务派工(组长)
|
this.optionApprove.column[1].disabled = false;
|
this.formApprove.assignee = row.variables.programmer
|
} else if (row.taskDefinitionKey == "confirmIsUseableTask") {//判断程序是否可用节点,都是发送给校对
|
this.formApprove.assignee = row.variables.checker
|
} else if (["approveTask", 'seniorApproveTask','replaceApprove','unlockApproveTask','appendApproveTask'].includes(row.taskDefinitionKey)) {// 高师审核
|
this.optionApprove.column[1].disabled = true;//最后一个节点"发送给" 禁用
|
this.formApprove.assignee = ''; // 如果是通过流程直接结束
|
}else if('unlockProgramConfirm'==row.taskDefinitionKey){
|
//解锁流程,编程复核,默认给高师
|
this.formApprove.assignee = row.variables.senior;
|
}
|
} else if(approve === 'N'){
|
//不通过的情况
|
//根据在线文档34行,'发送给'是禁用,但有默认选项
|
this.optionApprove.column[1].disabled = true;
|
|
if (["approveTask", 'seniorApproveTask','replaceApprove','appendApproveTask'].includes(row.taskDefinitionKey)) {
|
//审批节点,不通过给编制:编制是责任人,给实际编程员
|
if(row.variables.actProgrammer){
|
this.formApprove.assignee = row.variables.actProgrammer;//给实际编程员
|
}else{
|
this.formApprove.assignee = row.variables.programmer;//无编程员给主管工艺
|
}
|
}else if(['unlockApproveTask'].includes(row.taskDefinitionKey)){
|
//解锁高师审批节点,上一步是编程
|
this.formApprove.assignee = row.variables.programmer;//给主管工艺
|
} else if(["check", 'cureCheckTask','repalceCheckTask','appendCheckTask'].includes(row.taskDefinitionKey)){
|
//校对节点,上一步是编程
|
//this.formApprove.assignee = row.variables.programmer;
|
this.formApprove.assignee = row.variables.actProgrammer;//给实际编程员
|
}else if (["programmingTask"].includes(row.taskDefinitionKey)) {
|
// 试切编制节点,上一步是组长
|
this.formApprove.assignee = row.variables.teamLeader;
|
}else if(["cureProgramTask"].includes(row.taskDefinitionKey)) {
|
//固化编制节点,不通过给数控管理员
|
//TODO 按找角色定位给其中一个数控管理员
|
this.optionApprove.column[1].disabled = false;
|
|
if(this.managerAssigneeData.length>0){
|
this.formApprove.assignee = this.managerAssigneeData[0].id;
|
}
|
}else if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) {
|
//判断是否可用节点,不可用,给编制
|
this.formApprove.assignee = row.variables.programmer;
|
}if(['teamLeaderTask','replaceProgrammingTask','unlockProgramConfirm'].includes(row.taskDefinitionKey)){
|
//初始节点不通过就是结束流程,处理人为空
|
this.formApprove.assignee = '';
|
}
|
|
}else if(approve === 'R'){
|
//驳回,目前只有检查程序是否可用节点
|
if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) {
|
//判断程序是否可用节点,驳回,给组长
|
this.formApprove.assignee = row.variables.teamLeader;
|
}
|
}else if(approve === 'E'){//END 结束流程,不可选处理人
|
//驳回,目前只有检查程序是否可用节点
|
this.optionApprove.column[1].disabled = true;//处理人选项禁用
|
this.formApprove.assignee = ''
|
}
|
|
},
|
selectionTransferTask(list) {
|
this.transferTaskSelection = list;
|
},
|
reassign(val) {// 重新指派
|
//var 0:批量转派;1:手动派工;2:自动派工;3:批量审批
|
this.reassignType = val;
|
if (this.transferTaskSelection.length === 0) {
|
this.$message.warning('请选择需要操作的任务');
|
return;
|
}
|
if (this.transferTaskSelection.length > 1 && this.reassignType === 0) {
|
this.$message.warning('请选择一条');
|
return;
|
}
|
if(val === 2) {
|
this.$confirm('请确认是否进行批量自动派工?', '', {
|
confirmButtonText: this.$t('submitText'),
|
cancelButtonText: this.$t('cancelText'),
|
type: 'warning',
|
}).then(() => {
|
autoDispatch({
|
taskIds: this.transferTaskSelection.map(v => v.taskId),
|
processInstanceIds: this.transferTaskSelection.map(v => v.processInstanceId),
|
}).then(res => {
|
if(res.data.code !== 200) {
|
this.$message.error(res.data.msg);
|
return;
|
}
|
this.$message.success('操作成功');
|
this.onLoad(this.page, this.query);
|
todoChangeNotify();
|
}).catch(err => {
|
this.$message.success('操作失败');
|
})
|
}).catch(() => {
|
// this.$message.info('已取消操作');
|
});
|
} else {
|
//0重新指派 3批量审批 ,1手动派工
|
this.reassignBox = true;
|
|
if(val === 3) {//批量审批时 显示通过驳回
|
this.reassignOption.column[0].display = true;
|
this.reassignOption.column[0].dicData[1].label = '不通过';
|
this.reassignForm.approve = 'Y';
|
this.reassignForm.newAssigneeId = '';
|
this.reassignOption.column[1].disabled = true;
|
this.reassignOption.column[1].display = true;
|
} else {
|
//0
|
this.reassignOption.column[0].display = false;
|
this.reassignForm.approve = '';
|
|
if(val === 0 || val === 1) {//0重新指派 1手动派工 ,需要显示处理人
|
this.reassignOption.column[1].disabled = false;
|
this.reassignOption.column[1].display = true;
|
}
|
}
|
if(val ===1) {
|
this.reassignForm.newAssigneeId = this.transferTaskSelection[0].variables.programmer;
|
}
|
}
|
|
|
},
|
toPerson(form, done) {
|
let tip = ''
|
this.reassignType === 1 ? tip = '请确认是否手动派工' : this.reassignType === 2 ? tip = '请确认是否自动派工' : tip = '请确认是否重新指派';
|
if (this.reassignType === 0) {
|
this.$confirm(tip, '', {
|
confirmButtonText: this.$t('submitText'),
|
cancelButtonText: this.$t('cancelText'),
|
type: 'warning',
|
}).then((res) => {
|
console.log(res,'>>>>>>')
|
reassgin({
|
...form,
|
taskId: this.transferTaskSelection[0].taskId,
|
processInstanceId: this.transferTaskSelection[0].processInstanceId,
|
}).then(res => {
|
if(res.data.code !== 200) {
|
this.$message.error(res.data.msg);
|
return;
|
}
|
this.$message.success('操作成功');
|
this.reassignBox = false;
|
this.$refs?.reassginform?.resetForm();
|
this.onLoad(this.page, this.query);
|
|
todoChangeNotify();
|
done()
|
|
}).catch(err => {
|
this.$message.error('操作失败');
|
done()
|
})
|
}).catch(() => {
|
console.log('>>>>>>')
|
// this.$message.info('已取消操作');
|
done();
|
});
|
|
} else if (this.reassignType === 1) {
|
this.$confirm(tip, '', {
|
confirmButtonText: this.$t('submitText'),
|
cancelButtonText: this.$t('cancelText'),
|
type: 'warning',
|
}).then(() => {
|
manualDispatch({
|
assignee: form.newAssigneeId,
|
comment: form.comment,
|
taskIds: this.transferTaskSelection.map(v => v.taskId),
|
processInstanceIds: this.transferTaskSelection.map(v => v.processInstanceId),
|
}).then(res => {
|
if(res.data.code !== 200) {
|
this.$message.error(res.data.msg);
|
return;
|
}
|
this.$message.success('操作成功');
|
this.reassignBox = false;
|
this.$refs?.reassginform?.resetForm();
|
this.onLoad(this.page, this.query);
|
|
todoChangeNotify();
|
done()
|
|
}).catch(err => {
|
console.error(err);
|
done()
|
})
|
}).catch(() => {
|
console.log('>>>>>>')
|
// this.$message.info('已取消操作');
|
done();
|
});
|
} else if (this.reassignType === 3) {
|
this.$confirm('确认要进行批量审批吗?', '', {
|
confirmButtonText: this.$t('submitText'),
|
cancelButtonText: this.$t('cancelText'),
|
type: 'warning',
|
}).then(() => {
|
batchApprove({
|
assignee: form.newAssigneeId,
|
comment: form.comment,
|
approve: form.approve,
|
taskIds: this.transferTaskSelection.map(v => v.taskId),
|
processInstanceIds: this.transferTaskSelection.map(v => v.processInstanceId),
|
}).then(res => {
|
if(res.data.code !== 200) {
|
this.$message.error(res.data.msg);
|
return;
|
}
|
this.$message.success('操作成功');
|
this.reassignBox = false;
|
this.$refs?.reassginform?.resetForm();
|
this.onLoad(this.page, this.query);
|
|
todoChangeNotify();
|
done()
|
|
}).catch(err => {
|
console.error(err);
|
done()
|
})
|
}).catch(() => {
|
console.log('>>>>>>')
|
// this.$message.info('已取消操作');
|
done();
|
});
|
}
|
},
|
handleAction(row, index) {
|
getAssigneeTree({
|
taskId: row.taskId,
|
}).then(res => {
|
|
this.assigneeData = res.data.data;
|
this.allAssigneeData = res.data.data;
|
|
this.managerAssigneeData=[];
|
//初始化数控管理员的数组
|
for(var i=0;i<this.assigneeData.length;i++){
|
for(var j=0;j<this.assigneeData[i].children.length;j++){
|
if(this.assigneeData[i].children[j].nodeType=='manager'){
|
this.managerAssigneeData[this.managerAssigneeData.length] = this.assigneeData[i].children[j];
|
}
|
}
|
}
|
this.optionApprove.column[1].data = this.assigneeData;
|
this.reassignOption.column[1].data = this.assigneeData;
|
})
|
this.formApprove = {
|
comment: '',
|
approve: 'Y', // 默认同
|
}
|
this.approveBox = true;
|
this.row = row
|
|
this.setAssignee(row, this.formApprove.approve);
|
this.setApproveBtn(row);
|
//console.log('handleAction', row, index);
|
},
|
handleSubmit(form, done) {
|
|
|
//this.$alert(this.$refs.todolistLeft.programOnMachine)
|
//done();
|
//return;
|
let programOnMachine = 'N'
|
if(this.row.taskDefinitionKey==='programmingTask'){
|
programOnMachine = this.$refs.todolistLeft.programOnMachine?'Y':'N';
|
}
|
approve({
|
...this.formApprove,
|
taskId: this.row.taskId,
|
processInstanceId: this.row.processInstanceId,
|
programOnMachine: programOnMachine
|
}).then(res => {
|
if(res.data.code !== 200) {
|
this.$message.error(res.data.msg);
|
done();
|
return;
|
}
|
this.$message.success('审批成功');
|
this.approveBox = false;
|
this.onLoad(this.page, this.query);
|
|
todoChangeNotify();//顶部待办数量刷新
|
done();
|
}).catch(err => {
|
done();
|
console.error(err);
|
});
|
},
|
searchChange(params, done) {
|
let data = {}
|
this.query = params;
|
this.page.currentPage = 1;
|
console.log('searchChange', params);
|
params.createTimeBegin = params?.processCreateTime?.[0] || '';
|
params.createTimeEnd = params?.processCreateTime?.[1] || '';
|
data = {
|
createTimeBegin: params.createTimeBegin,
|
createTimeEnd: params.createTimeEnd,
|
keyword: params.keyword || ''
|
}
|
this.query = data
|
this.onLoad(this.page, data);
|
done();
|
},
|
searchReset() {
|
this.query = {};
|
this.onLoad(this.page);
|
},
|
currentChange(currentPage) {
|
this.page.currentPage = currentPage;
|
},
|
sizeChange(pageSize) {
|
this.page.pageSize = pageSize;
|
},
|
refreshChange() {
|
this.onLoad(this.page, this.query);
|
},
|
|
onLoad(page, params = {}) {
|
const query = {
|
...this.query,
|
// category: params.category ? flowCategory(params.category) : null,
|
mode: this.mode,
|
};
|
try {
|
delete query.processCreateTime; // 删除不必要的查询条件
|
} catch (error) {
|
console.error('日期格式化错误', error);
|
}
|
|
this.loading = true;
|
getList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => {
|
const data = res.data.data;
|
this.page.total = data.total;
|
this.data = data.records;
|
this.loading = false;
|
});
|
},
|
selectionChange(applist) {
|
this.applist = applist
|
},
|
},
|
};
|
</script>
|
|
<style scoped="scoped" lang="scss">
|
.approve-box {
|
display: flex;
|
|
&>div {
|
border: 1px solid #ccc;
|
}
|
|
.left {
|
width: 40%;
|
}
|
|
.right {
|
flex: 1;
|
padding: 0 10px;
|
}
|
}
|
</style>
|