@@ -90,6 +90,55 @@ export function useFormFieldsPermission(defaultPermission: FieldPermissionType)
90
90
getNodeConfigFormFields
91
91
}
92
92
}
93
+ /**
94
+ * @description 获取表单的字段
95
+ */
96
+ export function useFormFields ( ) {
97
+ // 解析后的表单字段
98
+ const formFields = inject < Ref < string [ ] > > ( 'formFields' ) // 流程表单字段
99
+ const parseFormFields = ( ) => {
100
+ const parsedFormFields : Array < Record < string , string > > = [ ]
101
+ if ( formFields ) {
102
+ formFields . value . forEach ( ( fieldStr : string ) => {
103
+ parseField ( JSON . parse ( fieldStr ) , parsedFormFields )
104
+ } )
105
+ }
106
+ return parsedFormFields
107
+ }
108
+ // 解析字段。
109
+ const parseField = (
110
+ rule : Record < string , any > ,
111
+ parsedFormFields : Array < Record < string , string > > ,
112
+ parentTitle : string = ''
113
+ ) => {
114
+ const { field, title : tempTitle , children, type } = rule
115
+ if ( field && tempTitle ) {
116
+ let title = tempTitle
117
+ if ( parentTitle ) {
118
+ title = `${ parentTitle } .${ tempTitle } `
119
+ }
120
+ parsedFormFields . push ( {
121
+ field,
122
+ title,
123
+ type
124
+ } )
125
+ // TODO 子表单 需要处理子表单字段
126
+ // if (type === 'group' && rule.props?.rule && Array.isArray(rule.props.rule)) {
127
+ // // 解析子表单的字段
128
+ // rule.props.rule.forEach((item) => {
129
+ // parseFieldsSetDefaultPermission(item, fieldsPermission, title)
130
+ // })
131
+ // }
132
+ }
133
+ if ( children && Array . isArray ( children ) ) {
134
+ children . forEach ( ( rule ) => {
135
+ parseField ( rule , parsedFormFields )
136
+ } )
137
+ }
138
+ }
139
+
140
+ return parseFormFields ( )
141
+ }
93
142
94
143
export type UserTaskFormType = {
95
144
//candidateParamArray: any[]
@@ -408,3 +457,22 @@ export function useNodeName(nodeType: NodeType) {
408
457
blurEvent
409
458
}
410
459
}
460
+
461
+ export function useNodeName2 ( node : Ref < SimpleFlowNode > , nodeType : NodeType ) {
462
+ // 显示节点名称输入框
463
+ const showInput = ref ( false )
464
+ // 节点名称输入框失去焦点
465
+ const blurEvent = ( ) => {
466
+ showInput . value = false
467
+ node . value . name = node . value . name || ( NODE_DEFAULT_NAME . get ( nodeType ) as string )
468
+ }
469
+ // 点击节点标题进行输入
470
+ const clickTitle = ( ) => {
471
+ showInput . value = true
472
+ }
473
+ return {
474
+ showInput,
475
+ clickTitle,
476
+ blurEvent
477
+ }
478
+ }
0 commit comments