init
This commit is contained in:
75
src/views/workflow/process/nodes/CcNode.vue
Normal file
75
src/views/workflow/process/nodes/CcNode.vue
Normal file
@@ -0,0 +1,75 @@
|
||||
<template>
|
||||
<node :title="config.name" :show-error="showError" :select-user="selectUser" :mode="mode" :content="content" :node-id="config.id"
|
||||
:error-info="errorInfo" :show-avatar="true" :user-info="config.props.assignedUser"
|
||||
@selected="emit('selected')" @delNode="emit('delNode')" @insertNode="type => emit('insertNode', type)"
|
||||
placeholder="请设置抄送人" :header-bgc="headerBgc" :header-icon="Promotion"/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import Node from './Node.vue'
|
||||
import {defineProps, defineEmits, computed, defineExpose} from "vue";
|
||||
const emit = defineEmits(['insertNode', 'selected', 'delNode'])
|
||||
const props = defineProps({
|
||||
config: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
mode: {
|
||||
type: String,
|
||||
default: 'design'
|
||||
}
|
||||
})
|
||||
const showError = ref(false)
|
||||
const errorInfo = ref('')
|
||||
import {Promotion} from '@element-plus/icons-vue'
|
||||
|
||||
const headerBgc = computed(() => {
|
||||
if (props.mode === 'design' || props.mode === 'view') {
|
||||
return '#3296fa'
|
||||
} else {
|
||||
return props.config.props.headerBgc
|
||||
}
|
||||
})
|
||||
|
||||
const selectUser = computed(() => {
|
||||
return {
|
||||
show: props.config.props.assignedType !== 'ASSIGN_USER' && props.config.props.shouldAdd,
|
||||
multiple: true
|
||||
};
|
||||
})
|
||||
|
||||
const content = computed(() => {
|
||||
if (props.config.props.shouldAdd) {
|
||||
return '由发起人指定'
|
||||
} else if (props.config.props.assignedUser.length > 0) {
|
||||
let texts = []
|
||||
props.config.props.assignedUser.forEach(org => texts.push(org.name))
|
||||
return String(texts).replaceAll(',', '、')
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
})
|
||||
//校验数据配置的合法性
|
||||
const validate = (err) => {
|
||||
showError.value = false
|
||||
if (props.config.props.shouldAdd) {
|
||||
showError.value = false
|
||||
} else if (props.config.props.assignedUser.length === 0) {
|
||||
showError.value = true
|
||||
errorInfo.value = '请选择需要抄送的人员'
|
||||
}
|
||||
if (showError.value) {
|
||||
err.push(`抄送节点 ${props.config.name} 未设置抄送人`)
|
||||
}
|
||||
return !showError.value
|
||||
}
|
||||
defineExpose({
|
||||
validate
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user