|
@@ -1,12 +1,15 @@
|
|
import {
|
|
import {
|
|
useCurrencySelectRule,
|
|
useCurrencySelectRule,
|
|
|
|
+ useDeptSelectRule,
|
|
useDictSelectRule,
|
|
useDictSelectRule,
|
|
useEditorRule,
|
|
useEditorRule,
|
|
useUploadFileRule,
|
|
useUploadFileRule,
|
|
useUploadImgRule,
|
|
useUploadImgRule,
|
|
- useUploadImgsRule
|
|
|
|
|
|
+ useUploadImgsRule,
|
|
|
|
+ useUserSelectRule
|
|
} from './config'
|
|
} from './config'
|
|
import { Ref } from 'vue'
|
|
import { Ref } from 'vue'
|
|
|
|
+import { Menu } from '@/components/FormCreate/src/type'
|
|
|
|
|
|
/**
|
|
/**
|
|
* 表单设计器增强 hook
|
|
* 表单设计器增强 hook
|
|
@@ -26,7 +29,10 @@ export const useFormCreateDesigner = (designer: Ref) => {
|
|
const dictSelectRule = useDictSelectRule()
|
|
const dictSelectRule = useDictSelectRule()
|
|
const currencySelectRule = useCurrencySelectRule()
|
|
const currencySelectRule = useCurrencySelectRule()
|
|
|
|
|
|
- onMounted(() => {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 构建表单组件
|
|
|
|
+ */
|
|
|
|
+ const buildFormComponents = () => {
|
|
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
|
|
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
|
|
designer.value?.removeMenuItem('upload')
|
|
designer.value?.removeMenuItem('upload')
|
|
// 移除自带的富文本组件规则,使用 editorRule 替代
|
|
// 移除自带的富文本组件规则,使用 editorRule 替代
|
|
@@ -51,5 +57,35 @@ export const useFormCreateDesigner = (designer: Ref) => {
|
|
label: component.label
|
|
label: component.label
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const userSelectRule = useUserSelectRule()
|
|
|
|
+ const deptSelectRule = useDeptSelectRule()
|
|
|
|
+ /**
|
|
|
|
+ * 构建系统字段菜单
|
|
|
|
+ */
|
|
|
|
+ const buildSystemMenu = () => {
|
|
|
|
+ const components = [userSelectRule, deptSelectRule]
|
|
|
|
+ const menu: Menu = {
|
|
|
|
+ name: 'system',
|
|
|
|
+ title: '系统字段',
|
|
|
|
+ list: components.map((component) => {
|
|
|
|
+ // 插入组件规则
|
|
|
|
+ designer.value?.addComponent(component)
|
|
|
|
+ // 插入拖拽按钮到 `system` 分类下
|
|
|
|
+ return {
|
|
|
|
+ icon: component.icon,
|
|
|
|
+ name: component.name,
|
|
|
|
+ label: component.label
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ designer.value?.addMenu(menu)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ onMounted(async () => {
|
|
|
|
+ await nextTick()
|
|
|
|
+ buildFormComponents()
|
|
|
|
+ buildSystemMenu()
|
|
})
|
|
})
|
|
}
|
|
}
|