|
|
@ -3,18 +3,18 @@ |
|
|
|
<div class="setting-dialog"> |
|
|
|
<el-form ref="form" class="process-form" inline :model="form" :rules="rules" size="small" label-width="80px"> |
|
|
|
<div class="process-template"> |
|
|
|
<el-form-item label="流程模板" prop="modelId"> |
|
|
|
<el-form-item label="流程模板" prop="model"> |
|
|
|
<el-select |
|
|
|
v-model="form.modelId" |
|
|
|
v-model="form.model" |
|
|
|
placeholder="请选择" |
|
|
|
style="width: 580px;" |
|
|
|
:value-key="'label'" |
|
|
|
value-key="modelId" |
|
|
|
@change="selectModel" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in modelOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:key="item.modelId" |
|
|
|
:label="item.deployName" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
@ -29,7 +29,7 @@ |
|
|
|
<div v-for="(task,index) in taskList" :key="index" class="task-item"> |
|
|
|
<p>任务{{ index+1 }} :{{ task.nodeName }}</p> |
|
|
|
<el-form-item label="执行岗位" :prop="`task${index+1}`" :rules="dynamicRules(index)"> |
|
|
|
<el-select v-model="form[`task${index+1}`]" @change="selectJob($event,index)"> |
|
|
|
<el-select v-model="form[`task${index+1}`]" value-key="id" @change="selectJob($event,index)"> |
|
|
|
<el-option v-for="item in jobOptions" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
@ -56,14 +56,30 @@ |
|
|
|
<script> |
|
|
|
import { FetchInitFlowAll, FetchFindFolwImgByModelId, FetchUserTaskAllByDeployId } from '@/api/system/flowable' |
|
|
|
import { FetchPostAll, FetchFindUserByPost } from '@/api/system/job' |
|
|
|
import { FetchFlowbinding } from '@/api/system/category/process' |
|
|
|
|
|
|
|
export default { |
|
|
|
props: { |
|
|
|
selectedCategory: { |
|
|
|
type: Object, |
|
|
|
default: function() { |
|
|
|
return {} |
|
|
|
} |
|
|
|
}, |
|
|
|
editInfoFlow: { |
|
|
|
type: Object, |
|
|
|
default: function() { |
|
|
|
return {} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
cuDialogVisible: false, |
|
|
|
loading: false, |
|
|
|
loadingImg: false, |
|
|
|
form: { |
|
|
|
modelId: null |
|
|
|
model: null |
|
|
|
}, |
|
|
|
modelOptions: [], |
|
|
|
srcImg: '', |
|
|
@ -75,12 +91,14 @@ export default { |
|
|
|
} |
|
|
|
], |
|
|
|
rules: { |
|
|
|
modelId: [ |
|
|
|
model: [ |
|
|
|
{ required: true, message: '流程模板不可为空', trigger: 'change' } |
|
|
|
] |
|
|
|
}, |
|
|
|
userTableData: [], |
|
|
|
taskList: [] |
|
|
|
taskList: [], |
|
|
|
selectFlowVal: null, |
|
|
|
setPocessCurrent: null |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
@ -94,26 +112,43 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
editInfoFlow: function(n, oldValue) { |
|
|
|
if (n) { |
|
|
|
const findItem = this.findIdByModelId(n.flowId) |
|
|
|
this.form.model = findItem |
|
|
|
this.selectModel(findItem) |
|
|
|
n.categoryFlowDetails.forEach((item, index) => { |
|
|
|
this.$set(this.form, `task${index + 1}`, item.postId) |
|
|
|
this.$nextTick(() => { |
|
|
|
this.selectJob(item.postId, index) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.getAllFlowable() |
|
|
|
this.getAllJob() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
findIdByModelId(modelId) { |
|
|
|
const item = this.modelOptions.find(data => data.modelId === modelId) |
|
|
|
if (item) { |
|
|
|
return item |
|
|
|
} else { |
|
|
|
return null |
|
|
|
} |
|
|
|
}, |
|
|
|
getAllFlowable() { |
|
|
|
FetchInitFlowAll().then((res) => { |
|
|
|
this.modelOptions = res.map(item => { |
|
|
|
const json = {} |
|
|
|
json.procdefId = item.procdefId |
|
|
|
json.deployId = item.deployId |
|
|
|
json.value = item.modelKey |
|
|
|
json.label = item.deployName |
|
|
|
return json |
|
|
|
}) |
|
|
|
this.modelOptions = res |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
}, |
|
|
|
selectModel(val) { |
|
|
|
this.selectFlowVal = val |
|
|
|
this.loadingImg = true |
|
|
|
FetchFindFolwImgByModelId({ 'processDefinitionId': val.procdefId }).then((res) => { |
|
|
|
this.srcImg = 'data:image/jpeg;base64,' + res |
|
|
@ -121,16 +156,15 @@ export default { |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
console.log(val) |
|
|
|
FetchUserTaskAllByDeployId({ 'deployId': val.deployId }).then((res) => { |
|
|
|
this.taskList = res.map(item => { |
|
|
|
return { |
|
|
|
...item, |
|
|
|
isExpend: false, |
|
|
|
userTableData: [] |
|
|
|
userTableData: [], |
|
|
|
postId: null |
|
|
|
} |
|
|
|
}) |
|
|
|
console.log(this.taskList) |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
@ -148,20 +182,51 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
selectJob(val, index) { |
|
|
|
this.$forceUpdate() |
|
|
|
FetchFindUserByPost({ 'postId': val }).then((res) => { |
|
|
|
this.taskList.forEach((item, i) => { |
|
|
|
if (index === i) { item.userTableData = res } |
|
|
|
if (index === i) { |
|
|
|
item.postId = val |
|
|
|
item.userTableData = res |
|
|
|
} |
|
|
|
}) |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
}, |
|
|
|
save() { |
|
|
|
// this.loading = true |
|
|
|
this.loading = true |
|
|
|
this.$refs['form'].validate((valid) => { |
|
|
|
console.log(this.form) |
|
|
|
if (valid) { |
|
|
|
// this.loading = false |
|
|
|
const detailsDTOs = this.taskList.map((item, index) => { |
|
|
|
const json = {} |
|
|
|
json.id = this.editInfoFlow && this.editInfoFlow.categoryFlowDetails.length !== 0 ? this.editInfoFlow.categoryFlowDetails[index].id : null |
|
|
|
json.postId = item.postId |
|
|
|
json.taskId = item.nodeId |
|
|
|
return json |
|
|
|
}) |
|
|
|
const params = { |
|
|
|
'categoryId': this.selectedCategory.id, |
|
|
|
'detailsDTOs': detailsDTOs, |
|
|
|
'flowId': this.selectFlowVal.modelId, |
|
|
|
'flowName': this.selectFlowVal.deployName, |
|
|
|
'flowKey': this.selectFlowVal.modelKey, |
|
|
|
'flowManageId': this.setPocessCurrent.id, |
|
|
|
'id': this.editInfoFlow && this.editInfoFlow.id, |
|
|
|
'status': this.editInfoFlow && this.editInfoFlow.status |
|
|
|
} |
|
|
|
FetchFlowbinding(params).then((res) => { |
|
|
|
if (res === 'SUCCESS') { |
|
|
|
this.$message({ message: '操作成功', type: 'success', offset: 8 }) |
|
|
|
} else { |
|
|
|
this.$message({ message: '操作失败', type: 'error', offset: 8 }) |
|
|
|
} |
|
|
|
this.handleCloseDialog() |
|
|
|
this.$emit('refresh') |
|
|
|
this.loading = false |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else { |
|
|
|
return false |
|
|
|
} |
|
|
@ -172,6 +237,7 @@ export default { |
|
|
|
this.$refs.form.resetFields() |
|
|
|
this.srcImg = '' |
|
|
|
this.taskList = [] |
|
|
|
this.form = {} |
|
|
|
this.cuDialogVisible = false |
|
|
|
} |
|
|
|
} |
|
|
|