Skip to content

Commit e75f954

Browse files
committed
代码优化, bug 修复
1 parent eb79ee1 commit e75f954

File tree

9 files changed

+318
-270
lines changed

9 files changed

+318
-270
lines changed

src/components/SimpleProcessDesignerV2/src/node.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,55 @@ export function useFormFieldsPermission(defaultPermission: FieldPermissionType)
9090
getNodeConfigFormFields
9191
}
9292
}
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+
}
93142

94143
export type UserTaskFormType = {
95144
//candidateParamArray: any[]
@@ -408,3 +457,22 @@ export function useNodeName(nodeType: NodeType) {
408457
blurEvent
409458
}
410459
}
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

Comments
 (0)