🐞 fix:初始化 form-create 配置,修复“字段 ID”不可修改问题。
parent
fe21db3704
commit
2ff9904f63
|
@ -1,14 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentWrap>
|
<ContentWrap :body-style="{ padding: '0px' }" class="!mb-0">
|
||||||
<!-- 表单设计器 -->
|
<!-- 表单设计器 -->
|
||||||
<FcDesigner ref="designer" height="780px">
|
<div
|
||||||
<template #handle>
|
class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-content-padding)-var(--app-content-padding)-2px)]"
|
||||||
<el-button round size="small" type="primary" @click="handleSave">
|
>
|
||||||
<Icon class="mr-5px" icon="ep:plus" />
|
<fc-designer class="my-designer" ref="designer" :config="designerConfig">
|
||||||
保存
|
<template #handle>
|
||||||
</el-button>
|
<el-button size="small" type="success" plain @click="handleSave">
|
||||||
</template>
|
<Icon class="mr-5px" icon="ep:plus" />
|
||||||
</FcDesigner>
|
保存
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</fc-designer>
|
||||||
|
</div>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 表单保存的弹窗 -->
|
<!-- 表单保存的弹窗 -->
|
||||||
|
@ -55,6 +59,31 @@ const { push, currentRoute } = useRouter() // 路由
|
||||||
const { query } = useRoute() // 路由信息
|
const { query } = useRoute() // 路由信息
|
||||||
const { delView } = useTagsViewStore() // 视图操作
|
const { delView } = useTagsViewStore() // 视图操作
|
||||||
|
|
||||||
|
// 表单设计器配置
|
||||||
|
const designerConfig = ref({
|
||||||
|
switchType: [], // 是否可以切换组件类型,或者可以相互切换的字段
|
||||||
|
autoActive: true, // 是否自动选中拖入的组件
|
||||||
|
useTemplate: false, // 是否生成vue2语法的模板组件
|
||||||
|
formOptions: {}, // 定义表单配置默认值
|
||||||
|
fieldReadonly: false, // 配置field是否可以编辑
|
||||||
|
hiddenDragMenu: false, // 隐藏拖拽操作按钮
|
||||||
|
hiddenDragBtn: false, // 隐藏拖拽按钮
|
||||||
|
hiddenMenu: [], // 隐藏部分菜单
|
||||||
|
hiddenItem: [], // 隐藏部分组件
|
||||||
|
hiddenItemConfig: {}, // 隐藏组件的部分配置项
|
||||||
|
disabledItemConfig: {}, // 禁用组件的部分配置项
|
||||||
|
showSaveBtn: false, // 是否显示保存按钮
|
||||||
|
showConfig: true, // 是否显示右侧的配置界面
|
||||||
|
showBaseForm: true, // 是否显示组件的基础配置表单
|
||||||
|
showControl: true, // 是否显示组件联动
|
||||||
|
showPropsForm: true, // 是否显示组件的属性配置表单
|
||||||
|
showEventForm: true, // 是否显示组件的事件配置表单
|
||||||
|
showValidateForm: true, // 是否显示组件的验证配置表单
|
||||||
|
showFormConfig: true, // 是否显示表单配置
|
||||||
|
showInputData: true, // 是否显示录入按钮
|
||||||
|
showDevice: true, // 是否显示多端适配选项
|
||||||
|
appendConfigData: [] // 定义渲染规则所需的formData
|
||||||
|
})
|
||||||
const designer = ref() // 表单设计器
|
const designer = ref() // 表单设计器
|
||||||
useFormCreateDesigner(designer) // 表单设计器增强
|
useFormCreateDesigner(designer) // 表单设计器增强
|
||||||
const dialogVisible = ref(false) // 弹窗是否展示
|
const dialogVisible = ref(false) // 弹窗是否展示
|
||||||
|
@ -119,3 +148,13 @@ onMounted(async () => {
|
||||||
setConfAndFields(designer, data.conf, data.fields)
|
setConfAndFields(designer, data.conf, data.fields)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.my-designer {
|
||||||
|
._fc-l,
|
||||||
|
._fc-m,
|
||||||
|
._fc-r {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentWrap>
|
<ContentWrap :body-style="{ padding: '0px' }" class="!mb-0">
|
||||||
<el-row>
|
|
||||||
<el-col>
|
|
||||||
<div class="float-right mb-2">
|
|
||||||
<el-button size="small" type="primary" @click="showJson">生成 JSON</el-button>
|
|
||||||
<el-button size="small" type="success" @click="showOption">生成 Options</el-button>
|
|
||||||
<el-button size="small" type="danger" @click="showTemplate">生成组件</el-button>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<!-- 表单设计器 -->
|
<!-- 表单设计器 -->
|
||||||
<FcDesigner ref="designer" height="780px" />
|
<div
|
||||||
|
class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-content-padding)-var(--app-content-padding)-2px)]"
|
||||||
|
>
|
||||||
|
<fc-designer class="my-designer" ref="designer" :config="designerConfig">
|
||||||
|
<template #handle>
|
||||||
|
<el-button size="small" type="primary" plain @click="showJson">生成JSON</el-button>
|
||||||
|
<el-button size="small" type="success" plain @click="showOption">生成Options</el-button>
|
||||||
|
<el-button size="small" type="danger" plain @click="showTemplate">生成组件</el-button>
|
||||||
|
</template>
|
||||||
|
</fc-designer>
|
||||||
|
</div>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 弹窗:表单预览 -->
|
<!-- 弹窗:表单预览 -->
|
||||||
|
@ -43,6 +44,31 @@ defineOptions({ name: 'InfraBuild' })
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息
|
const message = useMessage() // 消息
|
||||||
|
|
||||||
|
// 表单设计器配置
|
||||||
|
const designerConfig = ref({
|
||||||
|
switchType: [], // 是否可以切换组件类型,或者可以相互切换的字段
|
||||||
|
autoActive: true, // 是否自动选中拖入的组件
|
||||||
|
useTemplate: false, // 是否生成vue2语法的模板组件
|
||||||
|
formOptions: {}, // 定义表单配置默认值
|
||||||
|
fieldReadonly: false, // 配置field是否可以编辑
|
||||||
|
hiddenDragMenu: false, // 隐藏拖拽操作按钮
|
||||||
|
hiddenDragBtn: false, // 隐藏拖拽按钮
|
||||||
|
hiddenMenu: [], // 隐藏部分菜单
|
||||||
|
hiddenItem: [], // 隐藏部分组件
|
||||||
|
hiddenItemConfig: {}, // 隐藏组件的部分配置项
|
||||||
|
disabledItemConfig: {}, // 禁用组件的部分配置项
|
||||||
|
showSaveBtn: false, // 是否显示保存按钮
|
||||||
|
showConfig: true, // 是否显示右侧的配置界面
|
||||||
|
showBaseForm: true, // 是否显示组件的基础配置表单
|
||||||
|
showControl: true, // 是否显示组件联动
|
||||||
|
showPropsForm: true, // 是否显示组件的属性配置表单
|
||||||
|
showEventForm: true, // 是否显示组件的事件配置表单
|
||||||
|
showValidateForm: true, // 是否显示组件的验证配置表单
|
||||||
|
showFormConfig: true, // 是否显示表单配置
|
||||||
|
showInputData: true, // 是否显示录入按钮
|
||||||
|
showDevice: true, // 是否显示多端适配选项
|
||||||
|
appendConfigData: [] // 定义渲染规则所需的formData
|
||||||
|
})
|
||||||
const designer = ref() // 表单设计器
|
const designer = ref() // 表单设计器
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
@ -140,3 +166,13 @@ onMounted(async () => {
|
||||||
hljs.registerLanguage('json', json)
|
hljs.registerLanguage('json', json)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.my-designer {
|
||||||
|
._fc-l,
|
||||||
|
._fc-m,
|
||||||
|
._fc-r {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue