[update] 处理流程中人员信息

This commit is contained in:
lideqin
2023-11-08 15:37:19 +08:00
parent ea6aac0329
commit 7cee81d2b5
17 changed files with 385 additions and 255 deletions
+41 -12
View File
@@ -10,28 +10,28 @@
</div>
</template>
<!-- 流程节点标题-->
<template #title>
<a-tooltip>
<template #title>{{ step.nodeName }}</template>
<div class="step-title">{{ step.nodeName }}</div>
</a-tooltip>
</template>
<!--<template #title>-->
<!-- <a-tooltip>-->
<!-- <template #title>{{ step.nodeName }}</template>-->
<!-- <div class="step-title">{{ step.nodeName }}</div>-->
<!-- </a-tooltip>-->
<!--</template>-->
<!-- 流程节点选人内容-->
<template #description>
<div class="personnel-container">
<div class="personnel-container-title" :class="{'personnel-container-select-title': index === 0}">
<a-tooltip>
<template #title>{{ step.nodeRoleName }}</template>
<div class="personnel-container-title-text">{{ step.nodeRoleName }}</div>
<template #title>{{ step.nodeName }}</template>
<div class="personnel-container-title-text">{{ step.nodeName }}</div>
</a-tooltip>
</div>
<div class="personnel-container-content">
<div class="personnel-container-content-text">
<template v-if="step.canChoose && index >= currentNodeIndex">
<!-- TODO 数据库设计确定后处理数据抛出格式-->
<user-select-by-work-group v-if="step.chooseSource === 'workGroup'" v-model="step.user" :type="step.chooseType" :name-str="step.user_dictText" input-type="textarea"/>
<user-select-by-contact v-else-if="step.chooseSource === 'contactManage'" v-model="step.user" :type="step.chooseType" :name-str="step.user_dictText" input-type="textarea"/>
<user-selection v-else-if="!['contactManage', 'workGroup'].includes(step.chooseSource)" :type="step.chooseType" v-model="step.user" :name-str="step.user_dictText" input-type="textarea" />
<user-select-by-work-group v-if="step.chooseSource === 'workGroup'" v-model="step.linkUserIds" :type="step.chooseType" :name-str="step.linkUserIds_dictText" input-type="textarea"/>
<user-select-by-contact v-else-if="step.chooseSource === 'contactManage'" v-model="step.linkUserIds" :type="step.chooseType" :name-str="step.linkUserIds_dictText" input-type="textarea"/>
<user-selection v-else-if="step.chooseSource === 'user'" :type="step.chooseType" v-model="step.linkUserIds" :name-str="step.linkUserIds_dictText" input-type="textarea" />
</template>
<div class="personnel-container-content-echo-text" v-else>{{ step.userList }}</div>
</div>
@@ -88,6 +88,34 @@ export default {
deep: true,
immediate: true
}
},
methods: {
// 获取人员对象,无校验
getDataObj () {
const personnelObj = {}
for (const item of this.stepsData) {
// 该属性还没有人就给他赋值
if ((item.canChoose || item.sort === 1) && !personnelObj[item.variableName]) {
personnelObj[item.variableName] = item.linkUserIds
}
}
return personnelObj
},
// 有校验的获取人员对象
getDataObjVerify () {
let personnelObj = {}
for (const item of this.stepsData) {
// 该属性还没有人就给他赋值
if ((item.canChoose || item.sort === 1) && !personnelObj[item.variableName]) {
personnelObj[item.variableName] = item.linkUserIds
}
}
if (!Object.values(personnelObj).every(v => !!v)) {
this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
personnelObj = false
}
return personnelObj
}
}
}
</script>
@@ -106,7 +134,8 @@ export default {
}
/deep/ .ant-steps-item-content {
padding: 0 12px;
padding: 0 12px 30px 12px;
}
.step-title {