diff --git a/src/views/flowDesign/hooks/useNode.ts b/src/views/flowDesign/hooks/useNode.ts index 195364b..943b4ab 100644 --- a/src/views/flowDesign/hooks/useNode.ts +++ b/src/views/flowDesign/hooks/useNode.ts @@ -148,7 +148,17 @@ const useNode = (node: Ref, fields: Ref) => { type: 'cc', name: '抄送人', child: child, - users: [] + users: [], + formProperties: fields.value.map(item => { + return { + id: item.id, + name: item.title, + readable: true, + writeable: false, + hidden: false, + required: false + } as FormProperty + }) } as CcNode if (child) { child.pid = id diff --git a/src/views/flowDesign/nodes/Cc/index.ts b/src/views/flowDesign/nodes/Cc/index.ts index 8ac153e..6472aed 100644 --- a/src/views/flowDesign/nodes/Cc/index.ts +++ b/src/views/flowDesign/nodes/Cc/index.ts @@ -1,4 +1,7 @@ import { FlowNode } from '../Node/index' +import {FormProperty} from "~/views/flowDesign/index"; export interface CcNode extends FlowNode { users: string[] + // 表单字段 + formProperties: FormProperty[] } \ No newline at end of file diff --git a/src/views/flowDesign/penal/ApprovalAttr.vue b/src/views/flowDesign/penal/ApprovalAttr.vue index a40cb21..0cb4d9d 100644 --- a/src/views/flowDesign/penal/ApprovalAttr.vue +++ b/src/views/flowDesign/penal/ApprovalAttr.vue @@ -2,7 +2,7 @@ import Segmented from '~/components/Segmented' import {useVModels} from '@vueuse/core' import {ApprovalNode} from '../nodes/Approval/index' -import {computed, inject, Ref, ref} from "vue"; +import {computed, inject, Ref, ref, watchEffect} from "vue"; import {CircleCheck, CircleClose, Switch, Plus, Minus} from "@element-plus/icons-vue"; import {Field} from "~/components/Render/index"; import {FormProperty} from "~/views/flowDesign/index"; @@ -123,6 +123,26 @@ const changeHidden = (row: FormProperty) => { row.required = false } } +watchEffect(() => { + const formProperties = node.value.formProperties + node.value.formProperties = fields.value.filter(e => e.value !== undefined).map(e => ({ + id: e.id, + name: e.title, + readable: e.props.disabled || false, + writeable: !e.props.disabled || false, + hidden: e.props.hidden || false, + required: (e.props.required && !e.props.disabled) || false + })) + node.value.formProperties.forEach(item => { + const properties = formProperties.find(f => f.id === item.id) + if (properties) { + item.readable = properties.readable + item.writeable = properties.writeable + item.hidden = properties.hidden + item.required = properties.required + } + }) +})