@kp-ui/lowcode 1.0.103 → 1.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/package.json +1 -1
  2. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +75 -100
  3. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js.map +1 -1
  4. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +4 -4
  5. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
  6. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js +2 -0
  7. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js.map +1 -0
  8. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js +1 -1
  9. package/src/components/form-designer/form-widget/field-widget/code-editor-widget.vue.js.map +1 -1
  10. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js.map +1 -1
  11. package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
  12. package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
  13. package/src/components/form-designer/form-widget/field-widget/tree-widget.vue.js +124 -0
  14. package/src/components/form-designer/form-widget/field-widget/tree-widget.vue.js.map +1 -0
  15. package/src/components/form-designer/index.vue.js +20 -24
  16. package/src/components/form-designer/index.vue.js.map +1 -1
  17. package/src/components/form-designer/setting-panel/index.vue.js +115 -121
  18. package/src/components/form-designer/setting-panel/index.vue.js.map +1 -1
  19. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue.js +17 -17
  20. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue.js.map +1 -1
  21. package/src/components/form-designer/setting-panel/property-editor/event-handler/onCheck-editor.vue.js +50 -0
  22. package/src/components/form-designer/setting-panel/property-editor/event-handler/onCheck-editor.vue.js.map +1 -0
  23. package/src/components/form-designer/setting-panel/property-editor/field-tree/tree-data-editor.vue.js +195 -0
  24. package/src/components/form-designer/setting-panel/property-editor/field-tree/tree-data-editor.vue.js.map +1 -0
  25. package/src/components/form-designer/setting-panel/property-editor/index.js +139 -137
  26. package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
  27. package/src/components/form-designer/setting-panel/propertyRegister.js +2 -0
  28. package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
  29. package/src/components/form-designer/widget-panel/advanced/tree-select.js.map +1 -1
  30. package/src/components/form-designer/widget-panel/advanced/tree.js +44 -0
  31. package/src/components/form-designer/widget-panel/advanced/tree.js.map +1 -0
  32. package/src/components/form-designer/widget-panel/advancedFieldsEnums.js +4 -2
  33. package/src/components/form-designer/widget-panel/advancedFieldsEnums.js.map +1 -1
  34. package/src/components/form-render/container-item/vf-collapse-item.vue.js +2 -2
  35. package/src/components/form-render/container-item/vf-collapse-item.vue.js.map +1 -1
  36. package/src/components/form-render/dynamic-dialog.vue.js +95 -105
  37. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  38. package/src/components/form-render/index.vue.js +60 -60
  39. package/src/components/form-render/index.vue.js.map +1 -1
  40. package/src/components/public/CustomerModal/CustomerModal.vue2.js +16 -15
  41. package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -1
  42. package/src/lang/zh-CN.js +1 -0
  43. package/src/lang/zh-CN.js.map +1 -1
  44. package/src/utils/executeFunction.js +20 -16
  45. package/src/utils/executeFunction.js.map +1 -1
  46. package/stats.html +1 -1
  47. package/styles/style.css +1 -1
  48. package/src/components/TpfCollapse/TpfCollapseTitle.vue.js +0 -8
  49. package/src/components/TpfCollapse/TpfCollapseTitle.vue.js.map +0 -1
  50. package/src/components/TpfCollapse/TpfCollapseTitle.vue2.js +0 -18
  51. package/src/components/TpfCollapse/TpfCollapseTitle.vue2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-render/index.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"isLoading\">\n <div :style=\"isLoading ? 'min-height: 260px' : ''\">\n <a-form\n :layout=\"labelPosition\"\n :class=\"[customClass, readModeFlag ? 'readonly-mode-form' : '']\"\n class=\"render-form tpf-form\"\n :label-width=\"labelWidth\"\n :validate-on-rule-change=\"false\"\n :model=\"formDataModel\"\n ref=\"renderForm\"\n @keydown.enter=\"handleEnterKey\"\n >\n <template v-for=\"(widget, index) in widgetList\">\n <template v-if=\"'container' === widget.category\">\n <component\n :is=\"getContainerWidgetName(widget)\"\n :widget=\"widget\"\n :key=\"widget.id\"\n :data=\"formDataModel[widget.options.name]\"\n :parent-list=\"widgetList\"\n :index-of-parent-list=\"index\"\n :parent-widget=\"null\"\n :model=\"formDataModel\"\n >\n <!-- 递归传递插槽!!! -->\n <template v-for=\"slot in Object.keys($slots)\" v-slot:[slot]=\"scope\">\n <slot :name=\"slot\" v-bind=\"scope\"></slot>\n </template>\n </component>\n </template>\n <template v-else>\n <component\n :is=\"getWidgetName(widget)\"\n :field=\"widget\"\n :form-model=\"formDataModel\"\n :designer=\"null\"\n :key=\"widget.id\"\n :parent-list=\"widgetList\"\n :index-of-parent-list=\"index\"\n :parent-widget=\"null\"\n >\n <!-- 递归传递插槽!!! -->\n <template v-for=\"slot in Object.keys($slots)\" v-slot:[slot]=\"scope\">\n <slot :name=\"slot\" v-bind=\"scope\"></slot>\n </template>\n </component>\n </template>\n </template>\n </a-form>\n </div>\n </a-spin>\n</template>\n\n<script>\n import { createVNode, render, h } from 'vue';\n import emitter from '@/utils/emitter';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import {\n generateId,\n deepClone,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml,\n getAllContainerWidgets,\n getAllFieldWidgets,\n traverseFieldWidgets,\n buildDefaultFormJson,\n getDSByName,\n runDataSourceRequest,\n getFieldWidgetByName,\n overwriteObj,\n getContainerWidgetByName,\n traverseFieldWidgetsOfContainer,\n cloneFormConfigWithoutEventHandler,\n getDefaultFormConfig\n } from '@/utils/util';\n\n import i18n, { changeLocale } from '@/utils/i18n';\n import DynamicDialog from './dynamic-dialog';\n import DynamicDrawer from './dynamic-drawer';\n import { fmtHttpParams } from '@/utils/request/fmtHttpParams';\n\n export default {\n name: 'VFormRender',\n componentName: 'VFormRender',\n mixins: [emitter, i18n],\n components: {\n ...FieldComponents\n },\n props: {\n vfCtx: {\n type: Object,\n default: () => ({})\n },\n formJson: {\n //prop传入的表单JSON配置\n type: Object,\n default: () => buildDefaultFormJson()\n },\n formData: {\n //prop传入的表单数据\n type: Object,\n default: () => ({})\n },\n optionData: {\n //prop传入的选项数据\n type: Object,\n default: () => ({})\n },\n previewState: {\n //是否表单预览状态\n type: Boolean,\n default: false\n },\n disabledMode: {\n //表单禁止编辑模式\n type: Boolean,\n default: false\n },\n renderConfig: {\n //渲染配置对象\n type: Object,\n default: () => {\n return {\n languageName: 'zh-CN' //界面语言,默认显示中文\n };\n }\n },\n globalDsv: {\n // 全局数据源变量\n type: Object,\n default: () => ({})\n },\n parentForm: {\n type: Object,\n default: null\n },\n dynamicCreation: {\n //是否弹窗、抽屉动态创建的VFormRender\n type: Boolean,\n default: false\n }\n },\n provide() {\n return {\n refList: this.widgetRefList,\n sfRefList: this.subFormRefList, //收集SubForm引用\n getFormConfig: () =>\n this.formJsonObj\n .formConfig /* 解决provide传递formConfig属性的响应式更新问题!! */,\n getGlobalDsv: () => this.globalDsv, // 全局数据源变量\n globalOptionData: this.optionData,\n getOptionData: () =>\n this.optionData /* 该方法用于在异步更新option-data之后重新获取到最新值 */,\n globalModel: {\n formModel: this.formDataModel\n },\n previewState: this.previewState,\n getReadMode: () => this.readModeFlag,\n getSubFormFieldFlag: () => false,\n getSubFormName: () => '',\n getDSResultCache: () => this.dsResultCache\n };\n },\n data() {\n return {\n isClosing: false, //是否正在关闭\n isSubmitting: false, //是否正在提交中\n formJsonObj: this.formJson,\n\n formDataModel: {\n //\n },\n isLoading: false, //是否正在加载中\n widgetRefList: {},\n subFormRefList: {},\n formId: null, //表单唯一Id,用于区分页面上的多个v-form-render组件!!\n\n externalComponents: {}, //外部组件实例集合\n readModeFlag: false, //是否只读查看模式\n dialogOrDrawerRef: null, //保存子级VFormRender的包裹弹窗组件或抽屉组件的ref\n childFormRef: null, //保存子级VFormRender组件的ref\n\n dsResultCache: {} //数据源请求结果缓存\n };\n },\n computed: {\n formConfig() {\n return this.formJsonObj.formConfig;\n },\n cancelBtnLabel() {\n return this.formConfig.cancelButtonLabel || this.i18nt('designer.hint.cancel');\n },\n\n okBtnLabel() {\n return this.formConfig.okButtonLabel || this.i18nt('designer.hint.confirm');\n },\n\n widgetList() {\n return this.formJsonObj.widgetList;\n },\n\n labelPosition() {\n if (!!this.formConfig && !!this.formConfig.labelPosition) {\n return this.formConfig.labelPosition;\n }\n\n return 'horizontal';\n },\n\n labelWidth() {\n if (!!this.formConfig && !!this.formConfig.labelWidth) {\n return this.formConfig.labelWidth + 'px';\n }\n\n return '80px';\n },\n\n size() {\n if (!!this.formConfig && !!this.formConfig.size) {\n return this.formConfig.size;\n }\n\n return 'default';\n },\n\n customClass() {\n return !!this.formConfig && !!this.formConfig.customClass\n ? this.formConfig.customClass\n : '';\n }\n },\n watch: {\n //\n },\n created() {\n this.isLoading = false;\n this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList);\n this.initFormObject();\n },\n mounted() {\n this.initLocale();\n this.initDataSetRequest();\n // this.handleOnMounted();\n },\n methods: {\n setLoading(flag) {\n this.isLoading = flag;\n },\n // 处理回车键事件\n handleEnterKey() {\n if (this.formConfig?.isEnterSubmit === 1) {\n this.handleOnSubmit();\n }\n },\n\n handleCancelClick() {\n if (this.isClosing) return; // 防止重复关闭\n if (!this.handleBeforeClose()) return;\n try {\n this.isClosing = true;\n if (!!this.formConfig.onCancelButtonClick) {\n const customFn = new Function(this.formConfig.onCancelButtonClick);\n const clickResult = customFn.call(this);\n if (clickResult === false) {\n return;\n }\n }\n\n this.dialogVisible = false;\n setTimeout(this.deleteWrapperNode, 150);\n } catch (error) {\n console.log('error: ', error);\n } finally {\n this.isClosing = false;\n }\n },\n\n async handleOkClick() {\n if (this.isSubmitting) return; // 防止重复提交\n\n try {\n this.isSubmitting = true;\n if (!!this.formConfig.onOkButtonClick) {\n const customFn = new Function(this.formConfig.onOkButtonClick);\n const clickResult = await customFn.call(this);\n if (clickResult === false) {\n return;\n }\n }\n this.dialogVisible = false;\n setTimeout(this.deleteWrapperNode, 150);\n } catch (error) {\n console.log('error: ', error);\n } finally {\n this.isClosing = false;\n }\n },\n\n async onFormDetail() {\n const serveList = this.formConfig.serveList;\n if (serveList.vformDetail.http?.url) {\n const res = await fmtHttpParams.call(this, serveList.vformDetail, {\n vfCtx: this.vfCtx\n });\n console.log('res: ', res);\n return res;\n }\n },\n async onFormUpdate() {\n const modelForm = await this.getFormData();\n const serveList = this.formConfig.serveList;\n if (serveList.vformDetail.http?.url) {\n const res = await fmtHttpParams.call(this, serveList.vformUpdate, {\n data: modelForm,\n vfCtx: this.vfCtx\n });\n console.log('res: ', res);\n return res;\n }\n },\n\n initFormObject(insertHtmlCodeFlag = true) {\n this.formId = 'vfRender' + generateId();\n if (!!insertHtmlCodeFlag && !this.dynamicCreation) {\n // 弹窗、抽屉动态创建的VFormRender不重新插入全局CSS和全局函数节点!!\n this.insertCustomStyleAndScriptNode();\n }\n this.addFieldChangeEventHandler();\n this.addFieldValidateEventHandler();\n this.registerFormToRefList();\n this.handleOnCreated();\n\n if (this.disabledMode) {\n //禁止表单编辑\n this.$nextTick(() => {\n this.disableForm();\n });\n }\n },\n\n getContainerWidgetName(widget) {\n if (widget.type === 'grid') {\n //grid-item跟VueGridLayout全局注册组件重名,故特殊处理!!\n return 'vf-grid-item';\n }\n\n return widget.type + '-item';\n },\n\n getWidgetName(widget) {\n return widget.type + '-widget';\n },\n\n initLocale() {\n const curLocale = localStorage.getItem('lowcode_local') || 'zh-CN';\n this.changeLanguage(curLocale);\n },\n\n insertCustomStyleAndScriptNode() {\n if (!!this.formConfig && !!this.formConfig.cssCode) {\n insertCustomCssToHead(\n this.formConfig.cssCode,\n !!this.previewState ? '' : this.formId\n );\n }\n\n if (!!this.formConfig && !!this.formConfig.functions) {\n insertGlobalFunctionsToHtml(\n this.formConfig.functions,\n !!this.previewState ? '' : this.formId\n );\n }\n },\n\n buildFormModel(widgetList) {\n if (!!widgetList && widgetList.length > 0) {\n widgetList.forEach(wItem => {\n this.buildDataFromWidget(wItem);\n });\n }\n },\n\n buildDataFromWidget(wItem) {\n if (wItem.category === 'container') {\n if (wItem.type === 'data-table') {\n const { name } = wItem.options;\n this.formDataModel[name] = deepClone(wItem.options.dataSource);\n return;\n }\n if (wItem.type === 'vf-dialog' || wItem.type === 'vf-drawer') {\n // 什么也不做,不处理弹窗、抽屉内部组件!!\n } else if (wItem.type === 'grid') {\n if (!!wItem.cols && wItem.cols.length > 0) {\n wItem.cols.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n } else if (wItem.type === 'table') {\n if (!!wItem.rows && wItem.rows.length > 0) {\n wItem.rows.forEach(rowItem => {\n if (!!rowItem.cols && rowItem.cols.length > 0) {\n rowItem.cols.forEach(colItem => {\n this.buildDataFromWidget(colItem);\n });\n }\n });\n }\n } else if (wItem.type === 'tab') {\n if (!!wItem.tabs && wItem.tabs.length > 0) {\n wItem.tabs.forEach(tabItem => {\n if (!!tabItem.widgetList && tabItem.widgetList.length > 0) {\n tabItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n });\n }\n } else if (wItem.type === 'sub-form') {\n const subFormName = wItem.options.name;\n if (!this.formData.hasOwnProperty(subFormName)) {\n const subFormDataRow = {};\n if (wItem.options.showBlankRow) {\n wItem.widgetList.forEach(subFormItem => {\n if (!!subFormItem.formItemFlag) {\n subFormDataRow[subFormItem.options.name] =\n subFormItem.options.defaultValue;\n }\n });\n\n this.formDataModel[subFormName] = [subFormDataRow];\n } else {\n this.formDataModel[subFormName] = [];\n }\n } else {\n const initialValue = this.formData[subFormName];\n this.formDataModel[subFormName] = deepClone(initialValue);\n }\n } else if (wItem.type === 'grid-sub-form') {\n const gridSubFormName = wItem.options.name;\n if (!this.formData.hasOwnProperty(gridSubFormName)) {\n const gsfFWList = [];\n const fieldListFn = fw => {\n gsfFWList.push(fw);\n };\n traverseFieldWidgetsOfContainer(wItem, fieldListFn);\n\n const gridSubFormDataRow = {};\n if (wItem.options.showBlankRow) {\n gsfFWList.forEach(gridSubFormItem => {\n gridSubFormDataRow[gridSubFormItem.options.name] =\n gridSubFormItem.options.defaultValue;\n });\n this.formDataModel[gridSubFormName] = [gridSubFormDataRow];\n } else {\n this.formDataModel[gridSubFormName] = [];\n }\n } else {\n const initialValue = this.formData[gridSubFormName];\n this.formDataModel[gridSubFormName] = deepClone(initialValue);\n }\n } else if (wItem.type === 'grid-col' || wItem.type === 'table-cell') {\n if (!!wItem.widgetList && wItem.widgetList.length > 0) {\n wItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n } else {\n //自定义容器组件\n if (!!wItem.widgetList && wItem.widgetList.length > 0) {\n wItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n }\n } else if (!!wItem.formItemFlag) {\n if (!this.formData.hasOwnProperty(wItem.options.name)) {\n this.formDataModel[wItem.options.name] = wItem.options.defaultValue;\n } else {\n const initialValue = this.formData[wItem.options.name];\n this.formDataModel[wItem.options.name] = deepClone(initialValue);\n }\n }\n },\n\n addFieldChangeEventHandler() {\n this.off$('fieldChange'); //移除原有事件监听\n this.on$(\n 'fieldChange',\n (fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {\n this.handleFieldDataChange(\n fieldName,\n newValue,\n oldValue,\n subFormName,\n subFormRowIndex\n );\n this.$emit(\n 'formChange',\n fieldName,\n newValue,\n oldValue,\n this.formDataModel,\n subFormName,\n subFormRowIndex\n );\n }\n );\n },\n\n addFieldValidateEventHandler() {\n this.off$('fieldValidation'); //移除原有事件监听\n this.on$('fieldValidation', fieldName => {\n if (!!this.$refs.renderForm) {\n this.$refs.renderForm.validateFields(fieldName);\n }\n });\n },\n\n registerFormToRefList() {\n this.widgetRefList['v_form_ref'] = this;\n },\n\n handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex) {\n if (!!this.formConfig && !!this.formConfig.onFormDataChange) {\n const customFunc = new Function(\n 'fieldName',\n 'newValue',\n 'oldValue',\n 'formModel',\n 'subFormName',\n 'subFormRowIndex',\n this.formConfig.onFormDataChange\n );\n customFunc.call(\n this,\n fieldName,\n newValue,\n oldValue,\n this.formDataModel,\n subFormName,\n subFormRowIndex\n );\n }\n },\n\n handleOnCreated() {\n if (!!this.formConfig && !!this.formConfig.onFormCreated) {\n const customFunc = new Function(this.formConfig.onFormCreated);\n customFunc.call(this);\n }\n },\n\n handleOnSubmit() {\n if (!!this.formConfig && !!this.formConfig.handleOnSubmit) {\n const customFunc = new Function(this.formConfig.handleOnSubmit);\n customFunc.call(this);\n }\n },\n\n handleOnMounted() {\n if (!!this.formConfig && !!this.formConfig.onFormMounted) {\n const customFunc = new Function(this.formConfig.onFormMounted);\n customFunc.call(this);\n }\n },\n\n findWidgetAndSetDisabled(widgetName, disabledFlag) {\n const foundW = this.getWidgetRef(widgetName);\n if (!!foundW && !!foundW.setDisabled) {\n foundW.setDisabled(disabledFlag);\n } else {\n //没找到,可能是子表单中的组件\n this.findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag);\n }\n },\n\n findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag) {\n const widgetSchema = getFieldWidgetByName(\n this.formJsonObj.widgetList,\n widgetName,\n true\n );\n if (\n !!widgetSchema &&\n !!widgetSchema.options &&\n widgetSchema.options.hasOwnProperty('disabled')\n ) {\n widgetSchema.options.disabled = disabledFlag;\n }\n\n this.findWidgetNameInSubForm(widgetName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setDisabled) {\n sw.setDisabled(disabledFlag);\n }\n });\n },\n\n findWidgetAndSetHidden(widgetName, hiddenFlag) {\n const foundW = this.getWidgetRef(widgetName);\n if (!!foundW && !!foundW.setDisabled) {\n foundW.setHidden(hiddenFlag);\n } else {\n //没找到,可能是子表单中的组件\n this.findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag);\n }\n },\n\n findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag) {\n const widgetSchema = getFieldWidgetByName(\n this.formJsonObj.widgetList,\n widgetName,\n true\n );\n if (\n !!widgetSchema &&\n !!widgetSchema.options &&\n widgetSchema.options.hasOwnProperty('hidden')\n ) {\n widgetSchema.options.hidden = hiddenFlag;\n }\n\n this.findWidgetNameInSubForm(widgetName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setDisabled) {\n sw.setHidden(hiddenFlag);\n }\n });\n },\n\n findWidgetNameInSubForm(widgetName) {\n const result = [];\n let subFormName = null;\n const handlerFn = (field, parent) => {\n if (!!field.options && field.options.name === widgetName) {\n subFormName = parent.options.name;\n }\n };\n traverseFieldWidgets(this.widgetList, handlerFn);\n\n if (!!subFormName) {\n const subFormRef = this.getWidgetRef(subFormName);\n if (!!subFormRef) {\n const rowIds = subFormRef.getRowIdData();\n if (!!rowIds && rowIds.length > 0) {\n rowIds.forEach(rid => {\n result.push(widgetName + '@row' + rid);\n });\n }\n }\n }\n\n return result;\n },\n\n initDataSetRequest() {\n const dsNameSet = new Set();\n this.getFieldWidgets().forEach(fw => {\n if (\n !!fw.field.options.dsEnabled &&\n !!fw.field.options.dsName &&\n !!fw.field.options.dataSetName\n ) {\n dsNameSet.add(fw.field.options.dsName);\n }\n });\n\n if (dsNameSet.size > 0) {\n dsNameSet.forEach(async dsName => {\n const curDS = getDSByName(this.formConfig, dsName);\n if (!!curDS) {\n const localDsv = new Object({});\n overwriteObj(localDsv, this.globalDsv || {});\n let dsResult = null;\n try {\n dsResult = await runDataSourceRequest(\n curDS,\n localDsv,\n this,\n false,\n this.$message\n );\n this.dsResultCache[dsName] = dsResult;\n this.broadcast('FieldWidget', 'loadOptionItemsFromDataSet', dsName); //注意:跟Vue2不同,事件参数不需要包含在数组中传递!!\n } catch (err) {\n this.$message.error(err.message);\n }\n }\n });\n }\n },\n\n //--------------------- 以下为组件支持外部调用的API方法 begin ------------------//\n /* 提示:用户可自行扩充这些方法!!! */\n\n changeLanguage(langName) {\n changeLocale(langName);\n },\n\n getLanguageName() {\n return localStorage.getItem('lowcode_local') || 'zh-CN';\n },\n\n getNativeForm() {\n //获取原生form引用\n return this.$refs['renderForm'];\n },\n\n getFormRef() {\n return this;\n },\n\n getWidgetRef(widgetName, showError = false) {\n const foundRef = this.widgetRefList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n clearFormDataModel() {\n for (const pkey in this.formDataModel) {\n delete this.formDataModel[pkey];\n }\n },\n\n getFormJson() {\n return this.formJsonObj;\n },\n\n /**\n * 动态加载表单JSON\n * @param newFormJson\n */\n setFormJson(newFormJson) {\n if (!!newFormJson) {\n if (typeof newFormJson === 'string' || newFormJson.constructor === Object) {\n let newFormJsonObj = null;\n if (typeof newFormJson === 'string') {\n newFormJsonObj = JSON.parse(newFormJson);\n } else {\n newFormJsonObj = newFormJson;\n }\n\n if (!newFormJsonObj.formConfig || !newFormJsonObj.widgetList) {\n this.$message.error('Invalid format of form json.');\n return;\n }\n\n /* formDataModel必须在widgetList赋值完成初始化,因为widgetList赋值意味着子组件开始创建!!! */\n //this.formDataModel = {} //清空表单数据对象(有bug,会导致表单校验失败!!)\n this.clearFormDataModel(); //上行代码有问题,会导致表单校验失败,故保留原对象引用只清空对象属性!!\n this.buildFormModel(newFormJsonObj.widgetList);\n const defaultFormConfig = deepClone(getDefaultFormConfig());\n\n overwriteObj(defaultFormConfig, newFormJsonObj.formConfig); //\n\n this.formJsonObj['formConfig'] = defaultFormConfig; //newFormJsonObj.formConfig;\n this.formJsonObj['widgetList'] = newFormJsonObj.widgetList;\n\n this.insertCustomStyleAndScriptNode(); /* 必须先插入表单全局函数,否则VForm内部引用全局函数会报错!!! */\n this.$nextTick(() => {\n this.initFormObject(false);\n this.initDataSetRequest();\n this.handleOnMounted();\n });\n } else {\n this.$message.error('Set form json failed.');\n }\n }\n },\n\n /**\n * 重新加载选项数据\n * @param widgetNames 指定重新加载的组件名称或组件名数组,不传则重新加载所有选项字段\n */\n reloadOptionData(widgetNames) {\n let eventParams = [];\n if (!!widgetNames && typeof widgetNames === 'string') {\n eventParams = [widgetNames];\n } else if (!!widgetNames && Array.isArray(widgetNames)) {\n eventParams = [...widgetNames];\n }\n this.broadcast('FieldWidget', 'reloadOptionItems', eventParams);\n },\n\n getFormData(needValidation = true) {\n if (!needValidation) {\n return this.formDataModel;\n }\n\n let callback = function nullFunc() {};\n const promise = new window.Promise(function (resolve, reject) {\n callback = function (formData, error) {\n !error ? resolve(formData) : reject(error);\n };\n });\n\n console.log(this.formDataModel);\n this.$refs['renderForm']\n .validate()\n .then(res => {\n console.log(this.formDataModel);\n callback(this.formDataModel);\n })\n .catch(() => {\n callback(this.formDataModel, this.i18nt('render.hint.validationFailed'));\n });\n return promise;\n },\n\n setFormData(formData) {\n console.log('setFormData: ', formData);\n //设置表单数据\n Object.keys(this.formDataModel).forEach(propName => {\n if (!!formData && formData.hasOwnProperty(propName)) {\n this.formDataModel[propName] = deepClone(formData[propName]);\n }\n });\n\n // 通知SubForm组件:表单数据更新事件!!\n this.broadcast('ContainerItem', 'setFormData', this.formDataModel);\n // 通知FieldWidget组件:表单数据更新事件!!\n this.broadcast('FieldWidget', 'setFormData', this.formDataModel);\n },\n\n getFieldValue(fieldName) {\n //单个字段获取值\n const fieldRef = this.getWidgetRef(fieldName);\n if (!!fieldRef && !!fieldRef.getValue) {\n return fieldRef.getValue();\n }\n\n if (!fieldRef) {\n //如果是子表单字段\n const result = [];\n this.findWidgetNameInSubForm(fieldName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.getValue) {\n result.push(sw.getValue());\n }\n });\n\n return result;\n }\n },\n setTableRowDataValue(name, scope, value) {\n const {\n recordIndexs,\n column: { dataIndex }\n } = scope;\n this.formDataModel[name][recordIndexs[0]][dataIndex] = value;\n },\n setTableValue(name, value) {\n this.formDataModel[name] = value;\n },\n /**\n * 插入表格数据\n * @param name\n */\n insertTableValue(name, value) {\n if (this.formDataModel[name]?.length) {\n this.formDataModel[name].push(value);\n } else {\n this.formDataModel[name] = [value];\n }\n },\n getTableValue(name) {\n return this.formDataModel[name];\n },\n setFieldValue(fieldName, fieldValue, disableChangeEvent = false) {\n //单个更新字段值\n const fieldRef = this.getWidgetRef(fieldName);\n if (!!fieldRef && !!fieldRef.setValue) {\n fieldRef.setValue(fieldValue, disableChangeEvent);\n }\n\n if (!fieldRef) {\n //如果是子表单字段\n this.findWidgetNameInSubForm(fieldName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setValue) {\n sw.setValue(fieldValue, disableChangeEvent);\n }\n });\n }\n },\n\n getSubFormValues(subFormName, needValidation = true) {\n const foundSFRef = this.subFormRefList[subFormName];\n // if (!foundSFRef) {\n // return this.formDataModel[subFormName]\n // }\n return foundSFRef.getSubFormValues(needValidation);\n },\n\n disableForm() {\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW) {\n if (!!foundW.widget && foundW.widget.type === 'sub-form') {\n foundW.disableSubForm();\n } else if (!!foundW.widget && foundW.widget.type === 'grid-sub-form') {\n foundW.disableGridSubForm();\n } else {\n !!foundW.setDisabled && foundW.setDisabled(true);\n }\n }\n });\n },\n\n enableForm() {\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW) {\n if (!!foundW.widget && foundW.widget.type === 'sub-form') {\n foundW.enableSubForm();\n } else if (!!foundW.widget && foundW.widget.type === 'grid-sub-form') {\n foundW.enableGridSubForm();\n } else {\n !!foundW.setDisabled && foundW.setDisabled(false);\n }\n }\n });\n },\n\n resetForm() {\n //重置表单\n const subFormNames = Object.keys(this.subFormRefList);\n subFormNames.forEach(sfName => {\n if (!!this.subFormRefList[sfName].resetSubForm) {\n this.subFormRefList[sfName].resetSubForm();\n }\n });\n\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW && !foundW.subFormItemFlag && !!foundW.resetField) {\n // 跳过子表单字段!!\n foundW.resetField();\n }\n });\n\n this.$nextTick(() => {\n this.clearValidate(); /* 清除resetField方法触发的校验错误提示 */\n });\n },\n\n clearValidate(props) {\n this.$refs.renderForm.clearValidate(props);\n },\n\n /**\n * 校验表单\n * @param callback 回调函数\n */\n validateForm(callback) {\n this.$refs['renderForm'].validate(valid => {\n callback(valid);\n });\n },\n\n validateFields() {\n //TODO\n },\n\n disableWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetDisabled(widgetNames, true);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetDisabled(wn, true);\n });\n }\n }\n },\n\n enableWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetDisabled(widgetNames, false);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetDisabled(wn, false);\n });\n }\n }\n },\n\n hideWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetHidden(widgetNames, true);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetHidden(wn, true);\n });\n }\n }\n },\n\n showWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetHidden(widgetNames, false);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetHidden(wn, false);\n });\n }\n }\n },\n\n /**\n * 获取所有字段组件\n * @param staticWidgetsIncluded 是否包含按钮等静态组件,默认不包含\n * @returns {*[]}\n */\n getFieldWidgets(staticWidgetsIncluded = false) {\n return getAllFieldWidgets(this.formJsonObj.widgetList, staticWidgetsIncluded);\n },\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n getContainerWidgets() {\n return getAllContainerWidgets(this.formJsonObj.widgetList);\n },\n\n /**\n * 增加外部组件引用,可通过getEC()方法获取外部组件,以便在VForm内部调用外部组件方法\n * @param componentName 外部组件名称\n * @param externalComponent 外部组件实例\n */\n addEC(componentName, externalComponent) {\n this.externalComponents[componentName] = externalComponent;\n },\n\n /**\n * 判断外部组件是否可获取\n * @param componentName 外部组件名称\n * @returns {boolean}\n */\n hasEC(componentName) {\n return this.externalComponents.hasOwnProperty(componentName);\n },\n\n /**\n * 获取外部组件实例\n * @param componentName\n * @returns {*}\n */\n getEC(componentName) {\n return this.externalComponents[componentName];\n },\n\n /**\n * 设置或取消设置表单为只读查看模式\n * @param readonlyFlag\n */\n setReadMode(readonlyFlag = true) {\n this.readModeFlag = readonlyFlag;\n },\n\n /**\n * 获取表单当前是否只读查看模式\n * @returns {boolean}\n */\n getReadMode() {\n return this.readModeFlag;\n },\n\n /**\n * 获取globalDsv对象\n * @returns {*}\n */\n getGlobalDsv() {\n return this.globalDsv;\n },\n\n /**\n * 执行数据源请求\n * @param dsName\n * @param localDsv\n */\n async executeDataSource(dsName, localDsv) {\n const ds = getDSByName(this.formJsonObj.formConfig, dsName);\n const newDsv = new Object({});\n overwriteObj(newDsv, this.globalDsv);\n overwriteObj(newDsv, localDsv);\n return await runDataSourceRequest(ds, newDsv, this, false, this.$message);\n },\n\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n getParentFormRef() {\n return this.parentForm;\n },\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n getTopFormRef() {\n if (!this.parentForm) {\n return this;\n }\n\n let topFormRef = this.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n },\n setChildFormRef(childFormRef) {\n this.childFormRef = childFormRef;\n },\n\n getChildFormRef() {\n return this.childFormRef;\n },\n\n /**\n * 是否弹窗、抽屉组件动态创建的v-form-render\n * @returns {boolean}\n */\n isDynamicCreation() {\n return this.dynamicCreation;\n },\n\n setDialogOrDrawerRef(ddRef) {\n this.dialogOrDrawerRef = ddRef;\n },\n\n /**\n * 获取子级VFormRender的包裹弹窗组件或抽屉组件实例ref\n * @returns {object}\n */\n getDialogOrDrawerRef() {\n return this.dialogOrDrawerRef;\n },\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n showDialog(dialogName, formData = {}, extraData = {}) {\n console.log('showDialog', dialogName, formData, extraData);\n\n const topFormRef = this.getTopFormRef();\n const formRef = this.getFormRef();\n const dialogCon =\n getContainerWidgetByName(topFormRef.widgetList, dialogName) ||\n getContainerWidgetByName(formRef.widgetList, dialogName);\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n this.$message.error(this.i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: deepClone(dialogCon.widgetList),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)\n };\n\n const wrapperDivId = generateId() + '';\n const dialogInstance = h(DynamicDialog, {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: this,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n });\n dialogInstance.appContext = this.$root.$.appContext; //非常重要, 覆盖应用上下文!!\n\n const wrapperDiv = document.createElement('div');\n wrapperDiv.id = 'vf-dynamic-dialog-wrapper' + wrapperDivId;\n document.body.appendChild(wrapperDiv);\n render(dialogInstance, wrapperDiv);\n document.body.appendChild(dialogInstance.el);\n dialogInstance.component.exposed.show();\n },\n\n showDrawer(drawerName, formData = {}, extraData = {}) {\n const topFormRef = this.getTopFormRef();\n const drawerCon = getContainerWidgetByName(topFormRef.widgetList, drawerName);\n if (!drawerCon || drawerCon.type !== 'vf-drawer') {\n this.$message.error(this.i18nt('render.hint.refNotFound') + drawerName);\n return;\n }\n const dFormJson = {\n widgetList: deepClone(drawerCon.widgetList),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)\n };\n\n const wrapperDivId = generateId() + '';\n const drawerInstance = createVNode(DynamicDrawer, {\n options: drawerCon.options,\n formJson: dFormJson,\n formData: formData || {},\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: this,\n extraData: extraData,\n wrapperId: wrapperDivId\n });\n drawerInstance.appContext = this.$root.$.appContext; //非常重要, 覆盖应用上下文!!\n\n const wrapperDiv = document.createElement('div');\n wrapperDiv.id = 'vf-dynamic-drawer-wrapper' + wrapperDivId;\n document.body.appendChild(wrapperDiv);\n render(drawerInstance, wrapperDiv);\n document.body.appendChild(drawerInstance.el);\n drawerInstance.component.ctx.show();\n },\n\n /**\n * 判断表单是否处于设计器预览状态\n * @return {boolean}\n */\n isPreviewState() {\n return this.previewState;\n },\n getFormModel() {\n return this.formDataModel;\n }\n //--------------------- 以上为组件支持外部调用的API方法 end ------------------//\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .ant-form {\n &.render-form {\n height: 100%;\n // overflow: auto;\n }\n }\n</style>\n"],"names":["_sfc_main","emitter","i18n","FieldComponents","buildDefaultFormJson","flag","_a","error","serveList","res","fmtHttpParams","modelForm","insertHtmlCodeFlag","generateId","widget","curLocale","insertCustomCssToHead","insertGlobalFunctionsToHtml","widgetList","wItem","name","deepClone","childItem","rowItem","colItem","tabItem","subFormName","initialValue","subFormDataRow","subFormItem","gridSubFormName","gsfFWList","traverseFieldWidgetsOfContainer","fw","gridSubFormDataRow","gridSubFormItem","fieldName","newValue","oldValue","subFormRowIndex","widgetName","disabledFlag","foundW","widgetSchema","getFieldWidgetByName","wn","sw","hiddenFlag","result","handlerFn","field","parent","traverseFieldWidgets","subFormRef","rowIds","rid","dsNameSet","dsName","curDS","getDSByName","localDsv","overwriteObj","dsResult","runDataSourceRequest","err","langName","changeLocale","showError","foundRef","pkey","newFormJson","newFormJsonObj","defaultFormConfig","getDefaultFormConfig","widgetNames","eventParams","needValidation","callback","promise","resolve","reject","formData","propName","fieldRef","scope","value","recordIndexs","dataIndex","fieldValue","disableChangeEvent","wName","sfName","props","valid","staticWidgetsIncluded","getAllFieldWidgets","getAllContainerWidgets","componentName","externalComponent","readonlyFlag","ds","newDsv","topFormRef","childFormRef","ddRef","dialogName","extraData","formRef","dialogCon","getContainerWidgetByName","dFormJson","cloneFormConfigWithoutEventHandler","wrapperDivId","dialogInstance","h","DynamicDialog","wrapperDiv","render","drawerName","drawerCon","drawerInstance","createVNode","DynamicDrawer","_createBlock","_component_a_spin","$data","_createElementVNode","_createVNode","_component_a_form","$options","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","index","_resolveDynamicComponent","_ctx","slot","_withCtx","_renderSlot","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-render/index.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"isLoading\">\n <div :style=\"isLoading ? 'min-height: 260px' : ''\">\n <a-form\n :layout=\"labelPosition\"\n :class=\"[customClass, readModeFlag ? 'readonly-mode-form' : '']\"\n class=\"render-form tpf-form\"\n :label-width=\"labelWidth\"\n :validate-on-rule-change=\"false\"\n :model=\"formDataModel\"\n ref=\"renderForm\"\n @keydown.enter=\"handleEnterKey\"\n >\n <template v-for=\"(widget, index) in widgetList\">\n <template v-if=\"'container' === widget.category\">\n <component\n :is=\"getContainerWidgetName(widget)\"\n :widget=\"widget\"\n :key=\"widget.id\"\n :data=\"formDataModel[widget.options.name]\"\n :parent-list=\"widgetList\"\n :index-of-parent-list=\"index\"\n :parent-widget=\"null\"\n :model=\"formDataModel\"\n >\n <!-- 递归传递插槽!!! -->\n <template v-for=\"slot in Object.keys($slots)\" v-slot:[slot]=\"scope\">\n <slot :name=\"slot\" v-bind=\"scope\"></slot>\n </template>\n </component>\n </template>\n <template v-else>\n <component\n :is=\"getWidgetName(widget)\"\n :field=\"widget\"\n :form-model=\"formDataModel\"\n :designer=\"null\"\n :key=\"widget.id\"\n :parent-list=\"widgetList\"\n :index-of-parent-list=\"index\"\n :parent-widget=\"null\"\n >\n <!-- 递归传递插槽!!! -->\n <template v-for=\"slot in Object.keys($slots)\" v-slot:[slot]=\"scope\">\n <slot :name=\"slot\" v-bind=\"scope\"></slot>\n </template>\n </component>\n </template>\n </template>\n </a-form>\n </div>\n\n <DynamicDialog v-bind=\"dialogProps\" ref=\"dynamicDialgRef\" />\n </a-spin>\n</template>\n\n<script>\n import { createVNode, render, h } from 'vue';\n import emitter from '@/utils/emitter';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import {\n generateId,\n deepClone,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml,\n getAllContainerWidgets,\n getAllFieldWidgets,\n traverseFieldWidgets,\n buildDefaultFormJson,\n getDSByName,\n runDataSourceRequest,\n getFieldWidgetByName,\n overwriteObj,\n getContainerWidgetByName,\n traverseFieldWidgetsOfContainer,\n cloneFormConfigWithoutEventHandler,\n getDefaultFormConfig\n } from '@/utils/util';\n\n import i18n, { changeLocale } from '@/utils/i18n';\n import DynamicDialog from './dynamic-dialog';\n import DynamicDrawer from './dynamic-drawer';\n import { fmtHttpParams } from '@/utils/request/fmtHttpParams';\n\n export default {\n name: 'VFormRender',\n componentName: 'VFormRender',\n mixins: [emitter, i18n],\n components: {\n DynamicDialog,\n ...FieldComponents\n },\n props: {\n vfCtx: {\n type: Object,\n default: () => ({})\n },\n formJson: {\n //prop传入的表单JSON配置\n type: Object,\n default: () => buildDefaultFormJson()\n },\n formData: {\n //prop传入的表单数据\n type: Object,\n default: () => ({})\n },\n optionData: {\n //prop传入的选项数据\n type: Object,\n default: () => ({})\n },\n previewState: {\n //是否表单预览状态\n type: Boolean,\n default: false\n },\n disabledMode: {\n //表单禁止编辑模式\n type: Boolean,\n default: false\n },\n renderConfig: {\n //渲染配置对象\n type: Object,\n default: () => {\n return {\n languageName: 'zh-CN' //界面语言,默认显示中文\n };\n }\n },\n globalDsv: {\n // 全局数据源变量\n type: Object,\n default: () => ({})\n },\n parentForm: {\n type: Object,\n default: null\n },\n dynamicCreation: {\n //是否弹窗、抽屉动态创建的VFormRender\n type: Boolean,\n default: false\n }\n },\n provide() {\n return {\n refList: this.widgetRefList,\n sfRefList: this.subFormRefList, //收集SubForm引用\n getFormConfig: () =>\n this.formJsonObj\n .formConfig /* 解决provide传递formConfig属性的响应式更新问题!! */,\n getGlobalDsv: () => this.globalDsv, // 全局数据源变量\n globalOptionData: this.optionData,\n getOptionData: () =>\n this.optionData /* 该方法用于在异步更新option-data之后重新获取到最新值 */,\n globalModel: {\n formModel: this.formDataModel\n },\n previewState: this.previewState,\n getReadMode: () => this.readModeFlag,\n getSubFormFieldFlag: () => false,\n getSubFormName: () => '',\n getDSResultCache: () => this.dsResultCache\n };\n },\n data() {\n return {\n dialogProps: {},\n isClosing: false, //是否正在关闭\n isSubmitting: false, //是否正在提交中\n formJsonObj: this.formJson,\n\n formDataModel: {\n //\n },\n isLoading: false, //是否正在加载中\n widgetRefList: {},\n subFormRefList: {},\n formId: null, //表单唯一Id,用于区分页面上的多个v-form-render组件!!\n\n externalComponents: {}, //外部组件实例集合\n readModeFlag: false, //是否只读查看模式\n dialogOrDrawerRef: null, //保存子级VFormRender的包裹弹窗组件或抽屉组件的ref\n childFormRef: null, //保存子级VFormRender组件的ref\n\n dsResultCache: {} //数据源请求结果缓存\n };\n },\n computed: {\n formConfig() {\n return this.formJsonObj.formConfig;\n },\n cancelBtnLabel() {\n return this.formConfig.cancelButtonLabel || this.i18nt('designer.hint.cancel');\n },\n\n okBtnLabel() {\n return this.formConfig.okButtonLabel || this.i18nt('designer.hint.confirm');\n },\n\n widgetList() {\n return this.formJsonObj.widgetList;\n },\n\n labelPosition() {\n if (!!this.formConfig && !!this.formConfig.labelPosition) {\n return this.formConfig.labelPosition;\n }\n\n return 'horizontal';\n },\n\n labelWidth() {\n if (!!this.formConfig && !!this.formConfig.labelWidth) {\n return this.formConfig.labelWidth + 'px';\n }\n\n return '80px';\n },\n\n size() {\n if (!!this.formConfig && !!this.formConfig.size) {\n return this.formConfig.size;\n }\n\n return 'default';\n },\n\n customClass() {\n return !!this.formConfig && !!this.formConfig.customClass\n ? this.formConfig.customClass\n : '';\n }\n },\n watch: {\n //\n },\n created() {\n this.isLoading = false;\n this.buildFormModel(!this.formJsonObj ? null : this.formJsonObj.widgetList);\n this.initFormObject();\n },\n mounted() {\n this.initLocale();\n this.initDataSetRequest();\n // this.handleOnMounted();\n },\n methods: {\n setLoading(flag) {\n this.isLoading = flag;\n },\n // 处理回车键事件\n handleEnterKey() {\n if (this.formConfig?.isEnterSubmit === 1) {\n this.handleOnSubmit();\n }\n },\n\n handleCancelClick() {\n if (this.isClosing) return; // 防止重复关闭\n if (!this.handleBeforeClose()) return;\n try {\n this.isClosing = true;\n if (!!this.formConfig.onCancelButtonClick) {\n const customFn = new Function(this.formConfig.onCancelButtonClick);\n const clickResult = customFn.call(this);\n if (clickResult === false) {\n return;\n }\n }\n\n this.dialogVisible = false;\n setTimeout(this.deleteWrapperNode, 150);\n } catch (error) {\n console.log('error: ', error);\n } finally {\n this.isClosing = false;\n }\n },\n\n async handleOkClick() {\n if (this.isSubmitting) return; // 防止重复提交\n\n try {\n this.isSubmitting = true;\n if (!!this.formConfig.onOkButtonClick) {\n const customFn = new Function(this.formConfig.onOkButtonClick);\n const clickResult = await customFn.call(this);\n if (clickResult === false) {\n return;\n }\n }\n this.dialogVisible = false;\n setTimeout(this.deleteWrapperNode, 150);\n } catch (error) {\n console.log('error: ', error);\n } finally {\n this.isClosing = false;\n }\n },\n\n async onFormDetail() {\n const serveList = this.formConfig.serveList;\n if (serveList.vformDetail.http?.url) {\n const res = await fmtHttpParams.call(this, serveList.vformDetail, {\n vfCtx: this.vfCtx\n });\n console.log('res: ', res);\n return res;\n }\n },\n async onFormUpdate() {\n const modelForm = await this.getFormData();\n const serveList = this.formConfig.serveList;\n if (serveList.vformDetail.http?.url) {\n const res = await fmtHttpParams.call(this, serveList.vformUpdate, {\n data: modelForm,\n vfCtx: this.vfCtx\n });\n console.log('res: ', res);\n return res;\n }\n },\n\n initFormObject(insertHtmlCodeFlag = true) {\n this.formId = 'vfRender' + generateId();\n if (!!insertHtmlCodeFlag && !this.dynamicCreation) {\n // 弹窗、抽屉动态创建的VFormRender不重新插入全局CSS和全局函数节点!!\n this.insertCustomStyleAndScriptNode();\n }\n this.addFieldChangeEventHandler();\n this.addFieldValidateEventHandler();\n this.registerFormToRefList();\n this.handleOnCreated();\n\n if (this.disabledMode) {\n //禁止表单编辑\n this.$nextTick(() => {\n this.disableForm();\n });\n }\n },\n\n getContainerWidgetName(widget) {\n if (widget.type === 'grid') {\n //grid-item跟VueGridLayout全局注册组件重名,故特殊处理!!\n return 'vf-grid-item';\n }\n\n return widget.type + '-item';\n },\n\n getWidgetName(widget) {\n return widget.type + '-widget';\n },\n\n initLocale() {\n const curLocale = localStorage.getItem('lowcode_local') || 'zh-CN';\n this.changeLanguage(curLocale);\n },\n\n insertCustomStyleAndScriptNode() {\n if (!!this.formConfig && !!this.formConfig.cssCode) {\n insertCustomCssToHead(\n this.formConfig.cssCode,\n !!this.previewState ? '' : this.formId\n );\n }\n\n if (!!this.formConfig && !!this.formConfig.functions) {\n insertGlobalFunctionsToHtml(\n this.formConfig.functions,\n !!this.previewState ? '' : this.formId\n );\n }\n },\n\n buildFormModel(widgetList) {\n if (!!widgetList && widgetList.length > 0) {\n widgetList.forEach(wItem => {\n this.buildDataFromWidget(wItem);\n });\n }\n },\n\n buildDataFromWidget(wItem) {\n if (wItem.category === 'container') {\n if (wItem.type === 'data-table') {\n const { name } = wItem.options;\n this.formDataModel[name] = deepClone(wItem.options.dataSource);\n return;\n }\n if (wItem.type === 'vf-dialog' || wItem.type === 'vf-drawer') {\n // 什么也不做,不处理弹窗、抽屉内部组件!!\n } else if (wItem.type === 'grid') {\n if (!!wItem.cols && wItem.cols.length > 0) {\n wItem.cols.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n } else if (wItem.type === 'table') {\n if (!!wItem.rows && wItem.rows.length > 0) {\n wItem.rows.forEach(rowItem => {\n if (!!rowItem.cols && rowItem.cols.length > 0) {\n rowItem.cols.forEach(colItem => {\n this.buildDataFromWidget(colItem);\n });\n }\n });\n }\n } else if (wItem.type === 'tab') {\n if (!!wItem.tabs && wItem.tabs.length > 0) {\n wItem.tabs.forEach(tabItem => {\n if (!!tabItem.widgetList && tabItem.widgetList.length > 0) {\n tabItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n });\n }\n } else if (wItem.type === 'sub-form') {\n const subFormName = wItem.options.name;\n if (!this.formData.hasOwnProperty(subFormName)) {\n const subFormDataRow = {};\n if (wItem.options.showBlankRow) {\n wItem.widgetList.forEach(subFormItem => {\n if (!!subFormItem.formItemFlag) {\n subFormDataRow[subFormItem.options.name] =\n subFormItem.options.defaultValue;\n }\n });\n\n this.formDataModel[subFormName] = [subFormDataRow];\n } else {\n this.formDataModel[subFormName] = [];\n }\n } else {\n const initialValue = this.formData[subFormName];\n this.formDataModel[subFormName] = deepClone(initialValue);\n }\n } else if (wItem.type === 'grid-sub-form') {\n const gridSubFormName = wItem.options.name;\n if (!this.formData.hasOwnProperty(gridSubFormName)) {\n const gsfFWList = [];\n const fieldListFn = fw => {\n gsfFWList.push(fw);\n };\n traverseFieldWidgetsOfContainer(wItem, fieldListFn);\n\n const gridSubFormDataRow = {};\n if (wItem.options.showBlankRow) {\n gsfFWList.forEach(gridSubFormItem => {\n gridSubFormDataRow[gridSubFormItem.options.name] =\n gridSubFormItem.options.defaultValue;\n });\n this.formDataModel[gridSubFormName] = [gridSubFormDataRow];\n } else {\n this.formDataModel[gridSubFormName] = [];\n }\n } else {\n const initialValue = this.formData[gridSubFormName];\n this.formDataModel[gridSubFormName] = deepClone(initialValue);\n }\n } else if (wItem.type === 'grid-col' || wItem.type === 'table-cell') {\n if (!!wItem.widgetList && wItem.widgetList.length > 0) {\n wItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n } else {\n //自定义容器组件\n if (!!wItem.widgetList && wItem.widgetList.length > 0) {\n wItem.widgetList.forEach(childItem => {\n this.buildDataFromWidget(childItem);\n });\n }\n }\n } else if (!!wItem.formItemFlag) {\n if (!this.formData.hasOwnProperty(wItem.options.name)) {\n this.formDataModel[wItem.options.name] = wItem.options.defaultValue;\n } else {\n const initialValue = this.formData[wItem.options.name];\n this.formDataModel[wItem.options.name] = deepClone(initialValue);\n }\n }\n },\n\n addFieldChangeEventHandler() {\n this.off$('fieldChange'); //移除原有事件监听\n this.on$(\n 'fieldChange',\n (fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {\n this.handleFieldDataChange(\n fieldName,\n newValue,\n oldValue,\n subFormName,\n subFormRowIndex\n );\n this.$emit(\n 'formChange',\n fieldName,\n newValue,\n oldValue,\n this.formDataModel,\n subFormName,\n subFormRowIndex\n );\n }\n );\n },\n\n addFieldValidateEventHandler() {\n this.off$('fieldValidation'); //移除原有事件监听\n this.on$('fieldValidation', fieldName => {\n if (!!this.$refs.renderForm) {\n this.$refs.renderForm.validateFields(fieldName);\n }\n });\n },\n\n registerFormToRefList() {\n this.widgetRefList['v_form_ref'] = this;\n },\n\n handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex) {\n if (!!this.formConfig && !!this.formConfig.onFormDataChange) {\n const customFunc = new Function(\n 'fieldName',\n 'newValue',\n 'oldValue',\n 'formModel',\n 'subFormName',\n 'subFormRowIndex',\n this.formConfig.onFormDataChange\n );\n customFunc.call(\n this,\n fieldName,\n newValue,\n oldValue,\n this.formDataModel,\n subFormName,\n subFormRowIndex\n );\n }\n },\n\n handleOnCreated() {\n if (!!this.formConfig && !!this.formConfig.onFormCreated) {\n const customFunc = new Function(this.formConfig.onFormCreated);\n customFunc.call(this);\n }\n },\n\n handleOnSubmit() {\n if (!!this.formConfig && !!this.formConfig.handleOnSubmit) {\n const customFunc = new Function(this.formConfig.handleOnSubmit);\n customFunc.call(this);\n }\n },\n\n handleOnMounted() {\n if (!!this.formConfig && !!this.formConfig.onFormMounted) {\n const customFunc = new Function(this.formConfig.onFormMounted);\n customFunc.call(this);\n }\n },\n\n findWidgetAndSetDisabled(widgetName, disabledFlag) {\n const foundW = this.getWidgetRef(widgetName);\n if (!!foundW && !!foundW.setDisabled) {\n foundW.setDisabled(disabledFlag);\n } else {\n //没找到,可能是子表单中的组件\n this.findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag);\n }\n },\n\n findWidgetOfSubFormAndSetDisabled(widgetName, disabledFlag) {\n const widgetSchema = getFieldWidgetByName(\n this.formJsonObj.widgetList,\n widgetName,\n true\n );\n if (\n !!widgetSchema &&\n !!widgetSchema.options &&\n widgetSchema.options.hasOwnProperty('disabled')\n ) {\n widgetSchema.options.disabled = disabledFlag;\n }\n\n this.findWidgetNameInSubForm(widgetName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setDisabled) {\n sw.setDisabled(disabledFlag);\n }\n });\n },\n\n findWidgetAndSetHidden(widgetName, hiddenFlag) {\n const foundW = this.getWidgetRef(widgetName);\n if (!!foundW && !!foundW.setDisabled) {\n foundW.setHidden(hiddenFlag);\n } else {\n //没找到,可能是子表单中的组件\n this.findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag);\n }\n },\n\n findWidgetOfSubFormAndSetHidden(widgetName, hiddenFlag) {\n const widgetSchema = getFieldWidgetByName(\n this.formJsonObj.widgetList,\n widgetName,\n true\n );\n if (\n !!widgetSchema &&\n !!widgetSchema.options &&\n widgetSchema.options.hasOwnProperty('hidden')\n ) {\n widgetSchema.options.hidden = hiddenFlag;\n }\n\n this.findWidgetNameInSubForm(widgetName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setDisabled) {\n sw.setHidden(hiddenFlag);\n }\n });\n },\n\n findWidgetNameInSubForm(widgetName) {\n const result = [];\n let subFormName = null;\n const handlerFn = (field, parent) => {\n if (!!field.options && field.options.name === widgetName) {\n subFormName = parent.options.name;\n }\n };\n traverseFieldWidgets(this.widgetList, handlerFn);\n\n if (!!subFormName) {\n const subFormRef = this.getWidgetRef(subFormName);\n if (!!subFormRef) {\n const rowIds = subFormRef.getRowIdData();\n if (!!rowIds && rowIds.length > 0) {\n rowIds.forEach(rid => {\n result.push(widgetName + '@row' + rid);\n });\n }\n }\n }\n\n return result;\n },\n\n initDataSetRequest() {\n const dsNameSet = new Set();\n this.getFieldWidgets().forEach(fw => {\n if (\n !!fw.field.options.dsEnabled &&\n !!fw.field.options.dsName &&\n !!fw.field.options.dataSetName\n ) {\n dsNameSet.add(fw.field.options.dsName);\n }\n });\n\n if (dsNameSet.size > 0) {\n dsNameSet.forEach(async dsName => {\n const curDS = getDSByName(this.formConfig, dsName);\n if (!!curDS) {\n const localDsv = new Object({});\n overwriteObj(localDsv, this.globalDsv || {});\n let dsResult = null;\n try {\n dsResult = await runDataSourceRequest(\n curDS,\n localDsv,\n this,\n false,\n this.$message\n );\n this.dsResultCache[dsName] = dsResult;\n this.broadcast('FieldWidget', 'loadOptionItemsFromDataSet', dsName); //注意:跟Vue2不同,事件参数不需要包含在数组中传递!!\n } catch (err) {\n this.$message.error(err.message);\n }\n }\n });\n }\n },\n\n //--------------------- 以下为组件支持外部调用的API方法 begin ------------------//\n /* 提示:用户可自行扩充这些方法!!! */\n\n changeLanguage(langName) {\n changeLocale(langName);\n },\n\n getLanguageName() {\n return localStorage.getItem('lowcode_local') || 'zh-CN';\n },\n\n getNativeForm() {\n //获取原生form引用\n return this.$refs['renderForm'];\n },\n\n getFormRef() {\n return this;\n },\n\n getWidgetRef(widgetName, showError = false) {\n const foundRef = this.widgetRefList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n clearFormDataModel() {\n for (const pkey in this.formDataModel) {\n delete this.formDataModel[pkey];\n }\n },\n\n getFormJson() {\n return this.formJsonObj;\n },\n\n /**\n * 动态加载表单JSON\n * @param newFormJson\n */\n setFormJson(newFormJson) {\n if (!!newFormJson) {\n if (typeof newFormJson === 'string' || newFormJson.constructor === Object) {\n let newFormJsonObj = null;\n if (typeof newFormJson === 'string') {\n newFormJsonObj = JSON.parse(newFormJson);\n } else {\n newFormJsonObj = newFormJson;\n }\n\n if (!newFormJsonObj.formConfig || !newFormJsonObj.widgetList) {\n this.$message.error('Invalid format of form json.');\n return;\n }\n\n /* formDataModel必须在widgetList赋值完成初始化,因为widgetList赋值意味着子组件开始创建!!! */\n //this.formDataModel = {} //清空表单数据对象(有bug,会导致表单校验失败!!)\n this.clearFormDataModel(); //上行代码有问题,会导致表单校验失败,故保留原对象引用只清空对象属性!!\n this.buildFormModel(newFormJsonObj.widgetList);\n const defaultFormConfig = deepClone(getDefaultFormConfig());\n\n overwriteObj(defaultFormConfig, newFormJsonObj.formConfig); //\n\n this.formJsonObj['formConfig'] = defaultFormConfig; //newFormJsonObj.formConfig;\n this.formJsonObj['widgetList'] = newFormJsonObj.widgetList;\n\n this.insertCustomStyleAndScriptNode(); /* 必须先插入表单全局函数,否则VForm内部引用全局函数会报错!!! */\n this.$nextTick(() => {\n this.initFormObject(false);\n this.initDataSetRequest();\n this.handleOnMounted();\n });\n } else {\n this.$message.error('Set form json failed.');\n }\n }\n },\n\n /**\n * 重新加载选项数据\n * @param widgetNames 指定重新加载的组件名称或组件名数组,不传则重新加载所有选项字段\n */\n reloadOptionData(widgetNames) {\n let eventParams = [];\n if (!!widgetNames && typeof widgetNames === 'string') {\n eventParams = [widgetNames];\n } else if (!!widgetNames && Array.isArray(widgetNames)) {\n eventParams = [...widgetNames];\n }\n this.broadcast('FieldWidget', 'reloadOptionItems', eventParams);\n },\n\n getFormData(needValidation = true) {\n if (!needValidation) {\n return this.formDataModel;\n }\n\n let callback = function nullFunc() {};\n const promise = new window.Promise(function (resolve, reject) {\n callback = function (formData, error) {\n !error ? resolve(formData) : reject(error);\n };\n });\n\n console.log(this.formDataModel);\n this.$refs['renderForm']\n .validate()\n .then(res => {\n console.log(this.formDataModel);\n callback(this.formDataModel);\n })\n .catch(() => {\n callback(this.formDataModel, this.i18nt('render.hint.validationFailed'));\n });\n return promise;\n },\n\n setFormData(formData) {\n console.log('setFormData: ', formData);\n //设置表单数据\n Object.keys(this.formDataModel).forEach(propName => {\n if (!!formData && formData.hasOwnProperty(propName)) {\n this.formDataModel[propName] = deepClone(formData[propName]);\n }\n });\n\n // 通知SubForm组件:表单数据更新事件!!\n this.broadcast('ContainerItem', 'setFormData', this.formDataModel);\n // 通知FieldWidget组件:表单数据更新事件!!\n this.broadcast('FieldWidget', 'setFormData', this.formDataModel);\n },\n\n getFieldValue(fieldName) {\n //单个字段获取值\n const fieldRef = this.getWidgetRef(fieldName);\n if (!!fieldRef && !!fieldRef.getValue) {\n return fieldRef.getValue();\n }\n\n if (!fieldRef) {\n //如果是子表单字段\n const result = [];\n this.findWidgetNameInSubForm(fieldName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.getValue) {\n result.push(sw.getValue());\n }\n });\n\n return result;\n }\n },\n setTableRowDataValue(name, scope, value) {\n const {\n recordIndexs,\n column: { dataIndex }\n } = scope;\n this.formDataModel[name][recordIndexs[0]][dataIndex] = value;\n },\n setTableValue(name, value) {\n this.formDataModel[name] = value;\n },\n /**\n * 插入表格数据\n * @param name\n */\n insertTableValue(name, value) {\n if (this.formDataModel[name]?.length) {\n this.formDataModel[name].push(value);\n } else {\n this.formDataModel[name] = [value];\n }\n },\n getTableValue(name) {\n return this.formDataModel[name];\n },\n setFieldValue(fieldName, fieldValue, disableChangeEvent = false) {\n //单个更新字段值\n const fieldRef = this.getWidgetRef(fieldName);\n if (!!fieldRef && !!fieldRef.setValue) {\n fieldRef.setValue(fieldValue, disableChangeEvent);\n }\n\n if (!fieldRef) {\n //如果是子表单字段\n this.findWidgetNameInSubForm(fieldName).forEach(wn => {\n const sw = this.getWidgetRef(wn);\n if (!!sw && !!sw.setValue) {\n sw.setValue(fieldValue, disableChangeEvent);\n }\n });\n }\n },\n\n getSubFormValues(subFormName, needValidation = true) {\n const foundSFRef = this.subFormRefList[subFormName];\n // if (!foundSFRef) {\n // return this.formDataModel[subFormName]\n // }\n return foundSFRef.getSubFormValues(needValidation);\n },\n\n disableForm() {\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW) {\n if (!!foundW.widget && foundW.widget.type === 'sub-form') {\n foundW.disableSubForm();\n } else if (!!foundW.widget && foundW.widget.type === 'grid-sub-form') {\n foundW.disableGridSubForm();\n } else {\n !!foundW.setDisabled && foundW.setDisabled(true);\n }\n }\n });\n },\n\n enableForm() {\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW) {\n if (!!foundW.widget && foundW.widget.type === 'sub-form') {\n foundW.enableSubForm();\n } else if (!!foundW.widget && foundW.widget.type === 'grid-sub-form') {\n foundW.enableGridSubForm();\n } else {\n !!foundW.setDisabled && foundW.setDisabled(false);\n }\n }\n });\n },\n\n resetForm() {\n //重置表单\n const subFormNames = Object.keys(this.subFormRefList);\n subFormNames.forEach(sfName => {\n if (!!this.subFormRefList[sfName].resetSubForm) {\n this.subFormRefList[sfName].resetSubForm();\n }\n });\n\n const wNameList = Object.keys(this.widgetRefList);\n wNameList.forEach(wName => {\n const foundW = this.getWidgetRef(wName);\n if (!!foundW && !foundW.subFormItemFlag && !!foundW.resetField) {\n // 跳过子表单字段!!\n foundW.resetField();\n }\n });\n\n this.$nextTick(() => {\n this.clearValidate(); /* 清除resetField方法触发的校验错误提示 */\n });\n },\n\n clearValidate(props) {\n this.$refs.renderForm.clearValidate(props);\n },\n\n /**\n * 校验表单\n * @param callback 回调函数\n */\n validateForm(callback) {\n this.$refs['renderForm'].validate(valid => {\n callback(valid);\n });\n },\n\n validateFields() {\n //TODO\n },\n\n disableWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetDisabled(widgetNames, true);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetDisabled(wn, true);\n });\n }\n }\n },\n\n enableWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetDisabled(widgetNames, false);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetDisabled(wn, false);\n });\n }\n }\n },\n\n hideWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetHidden(widgetNames, true);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetHidden(wn, true);\n });\n }\n }\n },\n\n showWidgets(widgetNames) {\n if (!!widgetNames) {\n if (typeof widgetNames === 'string') {\n this.findWidgetAndSetHidden(widgetNames, false);\n } else if (Array.isArray(widgetNames)) {\n widgetNames.forEach(wn => {\n this.findWidgetAndSetHidden(wn, false);\n });\n }\n }\n },\n\n /**\n * 获取所有字段组件\n * @param staticWidgetsIncluded 是否包含按钮等静态组件,默认不包含\n * @returns {*[]}\n */\n getFieldWidgets(staticWidgetsIncluded = false) {\n return getAllFieldWidgets(this.formJsonObj.widgetList, staticWidgetsIncluded);\n },\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n getContainerWidgets() {\n return getAllContainerWidgets(this.formJsonObj.widgetList);\n },\n\n /**\n * 增加外部组件引用,可通过getEC()方法获取外部组件,以便在VForm内部调用外部组件方法\n * @param componentName 外部组件名称\n * @param externalComponent 外部组件实例\n */\n addEC(componentName, externalComponent) {\n this.externalComponents[componentName] = externalComponent;\n },\n\n /**\n * 判断外部组件是否可获取\n * @param componentName 外部组件名称\n * @returns {boolean}\n */\n hasEC(componentName) {\n return this.externalComponents.hasOwnProperty(componentName);\n },\n\n /**\n * 获取外部组件实例\n * @param componentName\n * @returns {*}\n */\n getEC(componentName) {\n return this.externalComponents[componentName];\n },\n\n /**\n * 设置或取消设置表单为只读查看模式\n * @param readonlyFlag\n */\n setReadMode(readonlyFlag = true) {\n this.readModeFlag = readonlyFlag;\n },\n\n /**\n * 获取表单当前是否只读查看模式\n * @returns {boolean}\n */\n getReadMode() {\n return this.readModeFlag;\n },\n\n /**\n * 获取globalDsv对象\n * @returns {*}\n */\n getGlobalDsv() {\n return this.globalDsv;\n },\n\n /**\n * 执行数据源请求\n * @param dsName\n * @param localDsv\n */\n async executeDataSource(dsName, localDsv) {\n const ds = getDSByName(this.formJsonObj.formConfig, dsName);\n const newDsv = new Object({});\n overwriteObj(newDsv, this.globalDsv);\n overwriteObj(newDsv, localDsv);\n return await runDataSourceRequest(ds, newDsv, this, false, this.$message);\n },\n\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n getParentFormRef() {\n return this.parentForm;\n },\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n getTopFormRef() {\n if (!this.parentForm) {\n return this;\n }\n\n let topFormRef = this.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n },\n setChildFormRef(childFormRef) {\n this.childFormRef = childFormRef;\n },\n\n getChildFormRef() {\n return this.childFormRef;\n },\n\n /**\n * 是否弹窗、抽屉组件动态创建的v-form-render\n * @returns {boolean}\n */\n isDynamicCreation() {\n return this.dynamicCreation;\n },\n\n setDialogOrDrawerRef(ddRef) {\n this.dialogOrDrawerRef = ddRef;\n },\n\n /**\n * 获取子级VFormRender的包裹弹窗组件或抽屉组件实例ref\n * @returns {object}\n */\n getDialogOrDrawerRef() {\n return this.dialogOrDrawerRef;\n },\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n showDialog(dialogName, formData = {}, extraData = {}) {\n const topFormRef = this.getTopFormRef();\n const formRef = this.getFormRef();\n const dialogCon =\n getContainerWidgetByName(topFormRef.widgetList, dialogName) ||\n getContainerWidgetByName(formRef.widgetList, dialogName);\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n this.$message.error(this.i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: deepClone(dialogCon.widgetList),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)\n };\n const wrapperDivId = generateId() + '';\n this.dialogProps = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: this,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n this.$refs.dynamicDialgRef.appContext = this.$root.$.appContext;\n this.$refs.dynamicDialgRef.show();\n },\n\n showDrawer(drawerName, formData = {}, extraData = {}) {\n const topFormRef = this.getTopFormRef();\n const drawerCon = getContainerWidgetByName(topFormRef.widgetList, drawerName);\n if (!drawerCon || drawerCon.type !== 'vf-drawer') {\n this.$message.error(this.i18nt('render.hint.refNotFound') + drawerName);\n return;\n }\n const dFormJson = {\n widgetList: deepClone(drawerCon.widgetList),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef.formConfig)\n };\n\n const wrapperDivId = generateId() + '';\n const drawerInstance = createVNode(DynamicDrawer, {\n options: drawerCon.options,\n formJson: dFormJson,\n formData: formData || {},\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: this,\n extraData: extraData,\n wrapperId: wrapperDivId\n });\n drawerInstance.appContext = this.$root.$.appContext; //非常重要, 覆盖应用上下文!!\n\n const wrapperDiv = document.createElement('div');\n wrapperDiv.id = 'vf-dynamic-drawer-wrapper' + wrapperDivId;\n document.body.appendChild(wrapperDiv);\n render(drawerInstance, wrapperDiv);\n document.body.appendChild(drawerInstance.el);\n drawerInstance.component.ctx.show();\n },\n\n /**\n * 判断表单是否处于设计器预览状态\n * @return {boolean}\n */\n isPreviewState() {\n return this.previewState;\n },\n getFormModel() {\n return this.formDataModel;\n }\n //--------------------- 以上为组件支持外部调用的API方法 end ------------------//\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .ant-form {\n &.render-form {\n height: 100%;\n // overflow: auto;\n }\n }\n</style>\n"],"names":["_sfc_main","emitter","i18n","DynamicDialog","FieldComponents","buildDefaultFormJson","flag","_a","error","serveList","res","fmtHttpParams","modelForm","insertHtmlCodeFlag","generateId","widget","curLocale","insertCustomCssToHead","insertGlobalFunctionsToHtml","widgetList","wItem","name","deepClone","childItem","rowItem","colItem","tabItem","subFormName","initialValue","subFormDataRow","subFormItem","gridSubFormName","gsfFWList","traverseFieldWidgetsOfContainer","fw","gridSubFormDataRow","gridSubFormItem","fieldName","newValue","oldValue","subFormRowIndex","widgetName","disabledFlag","foundW","widgetSchema","getFieldWidgetByName","wn","sw","hiddenFlag","result","handlerFn","field","parent","traverseFieldWidgets","subFormRef","rowIds","rid","dsNameSet","dsName","curDS","getDSByName","localDsv","overwriteObj","dsResult","runDataSourceRequest","err","langName","changeLocale","showError","foundRef","pkey","newFormJson","newFormJsonObj","defaultFormConfig","getDefaultFormConfig","widgetNames","eventParams","needValidation","callback","promise","resolve","reject","formData","propName","fieldRef","scope","value","recordIndexs","dataIndex","fieldValue","disableChangeEvent","wName","sfName","props","valid","staticWidgetsIncluded","getAllFieldWidgets","getAllContainerWidgets","componentName","externalComponent","readonlyFlag","ds","newDsv","topFormRef","childFormRef","ddRef","dialogName","extraData","formRef","dialogCon","getContainerWidgetByName","dFormJson","cloneFormConfigWithoutEventHandler","wrapperDivId","drawerName","drawerCon","drawerInstance","createVNode","DynamicDrawer","wrapperDiv","render","_createBlock","_component_a_spin","$data","_createElementVNode","_createVNode","_component_a_form","$options","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","index","_resolveDynamicComponent","_ctx","slot","_withCtx","_renderSlot","_mergeProps","_component_DynamicDialog"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as g, getCurrentInstance as x, useAttrs as _, ref as b, computed as a, onMounted as w, createBlock as V, openBlock as k, unref as i, withCtx as s, createVNode as f, mergeProps as R, nextTick as $ } from "vue";
1
+ import { defineComponent as g, getCurrentInstance as x, useAttrs as _, ref as b, computed as a, onMounted as w, createBlock as V, openBlock as k, unref as n, withCtx as s, createVNode as f, mergeProps as R, nextTick as $ } from "vue";
2
2
  import { useLowcode as M } from "../../../hooks/useLowcode.js";
3
3
  import T from "../../form-render/SubmitButtonRender.vue.js";
4
4
  import B from "../../form-render/index.vue.js";
@@ -6,16 +6,17 @@ import { TpfConfigProvider as P, TpfModal as U } from "tmgc2-share";
6
6
  const N = /* @__PURE__ */ g({
7
7
  __name: "CustomerModal",
8
8
  props: {
9
+ title: {},
9
10
  type: {},
10
11
  formCode: {}
11
12
  },
12
13
  setup(d) {
13
- const u = x(), o = _() || {}, r = b(!1), t = d, m = a(() => {
14
- var n, e;
14
+ const u = x(), o = _() || {}, r = b(!1), e = d, m = a(() => {
15
+ var i, t;
15
16
  return {
16
17
  $router: u.proxy.$router,
17
- _id: ((e = (n = o == null ? void 0 : o.row) == null ? void 0 : n.record) == null ? void 0 : e._id) || null,
18
- type: t.type,
18
+ _id: ((t = (i = o == null ? void 0 : o.row) == null ? void 0 : i.record) == null ? void 0 : t._id) || null,
19
+ type: e.type,
19
20
  instance: u,
20
21
  ...o
21
22
  };
@@ -24,25 +25,25 @@ const N = /* @__PURE__ */ g({
24
25
  formConfig: c,
25
26
  getComponentJson: v
26
27
  } = M({
27
- formCode: t.formCode,
28
- type: t.type
29
- }), C = a(() => t.type === "add" ? "新增" : t.type === "edit" ? "编辑" : t.type === "view" ? "查看" : "新增"), y = async () => {
28
+ formCode: e.formCode,
29
+ type: e.type
30
+ }), C = a(() => e.title ? e.title : e.type === "add" ? "新增" : e.type === "edit" ? "编辑" : e.type === "view" ? "查看" : "新增"), y = async () => {
30
31
  r.value = !0, await $(), await v([]), console.log("attrs", o);
31
32
  };
32
33
  return w(() => {
33
34
  y();
34
- }), (n, e) => (k(), V(i(P), null, {
35
- default: s(() => [f(i(U), R({
35
+ }), (i, t) => (k(), V(n(P), null, {
36
+ default: s(() => [f(n(U), R({
36
37
  visible: r.value,
37
- "onUpdate:visible": e[1] || (e[1] = (l) => r.value = l)
38
- }, n.$attrs, {
38
+ "onUpdate:visible": t[1] || (t[1] = (l) => r.value = l)
39
+ }, i.$attrs, {
39
40
  title: C.value
40
41
  }), {
41
42
  footerRight: s(() => [f(T, {
42
43
  dialogVisible: r.value,
43
- "onUpdate:dialogVisible": e[0] || (e[0] = (l) => r.value = l),
44
- options: i(c),
45
- ctx: i(p)
44
+ "onUpdate:dialogVisible": t[0] || (t[0] = (l) => r.value = l),
45
+ options: n(c),
46
+ ctx: n(p)
46
47
  }, null, 8, ["dialogVisible", "options", "ctx"])]),
47
48
  default: s(() => [f(B, {
48
49
  vfCtx: m.value,
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerModal.vue2.js","sources":["../../../../../src/components/public/CustomerModal/CustomerModal.vue"],"sourcesContent":["<template>\n <TpfConfigProvider>\n <TpfModal v-model:visible=\"visible\" v-bind=\"$attrs\" :title=\"title\">\n <VFormRender :vfCtx=\"vfCtx\" ref=\"vfdRef\" />\n <template #footerRight>\n <SubmitButtonRender\n v-model:dialogVisible=\"visible\"\n :options=\"formConfig\"\n :ctx=\"vfdRef\"\n />\n </template>\n </TpfModal>\n </TpfConfigProvider>\n</template>\n<script setup lang=\"tsx\">\n import { useLowcode } from '@/hooks/useLowcode';\n import { useAttrs, onMounted, nextTick, computed, getCurrentInstance, ref } from 'vue';\n import SubmitButtonRender from '@/components/form-render/SubmitButtonRender.vue';\n import VFormRender from '@/components/form-render/index.vue';\n import { TpfModal, TpfConfigProvider } from 'tmgc2-share';\n\n const instance = getCurrentInstance()!;\n\n const attrs = (useAttrs() || {}) as any;\n const visible = ref(false);\n\n type Props = {\n type: string;\n formCode: string;\n };\n\n const props = withDefaults(defineProps<Props>(), {});\n\n const vfCtx = computed(() => {\n return {\n $router: instance.proxy!.$router,\n _id: attrs?.row?.record?._id || null,\n type: props.type,\n instance,\n ...attrs\n };\n });\n\n const { vfdRef, formConfig, getComponentJson } = useLowcode({\n formCode: props.formCode,\n type: props.type\n });\n\n const title = computed(() => {\n if (props.type === 'add') return '新增';\n if (props.type === 'edit') return '编辑';\n if (props.type === 'view') return '查看';\n return '新增';\n });\n\n const show = async () => {\n visible.value = true;\n await nextTick();\n await getComponentJson([]);\n console.log('attrs', attrs);\n };\n\n onMounted(() => {\n show();\n });\n</script>\n\n<style lang=\"less\" scoped></style>\n"],"names":["instance","getCurrentInstance","attrs","useAttrs","visible","ref","props","__props","vfCtx","computed","$router","proxy","_id","row","record","type","vfdRef","formConfig","getComponentJson","useLowcode","formCode","title","show","value","nextTick","console","log","onMounted","_createBlock","_unref","TpfConfigProvider","_createVNode","_mergeProps","$event","$attrs","footerRight","SubmitButtonRender","dialogVisible","options","ctx","VFormRender"],"mappings":";;;;;;;;;;;;AAqBI,UAAMA,IAAWC,EAAkB,GAE7BC,IAASC,EAAQ,KAAM,CAAA,GACvBC,IAAUC,EAAI,EAAK,GAOnBC,IAAQC,GAERC,IAAQC,EAAS,MAAM;;AACzB,aAAO;AAAA,QACHC,SAASV,EAASW,MAAOD;AAAAA,QACzBE,OAAKV,KAAAA,IAAAA,KAAAA,gBAAAA,EAAOW,QAAPX,gBAAAA,EAAYY,WAAZZ,gBAAAA,EAAoBU,QAAO;AAAA,QAChCG,MAAMT,EAAMS;AAAAA,QACZf,UAAAA;AAAAA,QACA,GAAGE;AAAAA;IAEX,CAAC,GAEK;AAAA,MAAEc,QAAAA;AAAAA,MAAQC,YAAAA;AAAAA,MAAYC,kBAAAA;AAAAA,QAAqBC,EAAW;AAAA,MACxDC,UAAUd,EAAMc;AAAAA,MAChBL,MAAMT,EAAMS;AAAAA,IAChB,CAAC,GAEKM,IAAQZ,EAAS,MACfH,EAAMS,SAAS,QAAc,OAC7BT,EAAMS,SAAS,SAAe,OAC9BT,EAAMS,SAAS,SAAe,OAC3B,IACV,GAEKO,IAAO,YAAY;AACrBlB,MAAAA,EAAQmB,QAAQ,IAChB,MAAMC,EAAQ,GACd,MAAMN,EAAiB,CAAA,CAAE,GACzBO,QAAQC,IAAI,SAASxB,CAAK;AAAA,IAC9B;AAEAyB,WAAAA,EAAU,MAAM;AACZL,MAAAA,EAAI;AAAA,IACR,CAAC,mBA/DDM,EAWoBC,EAAAC,CAAA,GAAA,MAAA;AAAA,iBAVhB,MASW,CATXC,EASWF,MATXG,EASW;AAAA,QATO5B,SAASA,EAAAmB;AAAAA,mDAAAnB,EAAOmB,QAAAU;AAAAA,SAAUC,EAAAA,QAAM;AAAA,QAAGb,OAAOA,EAAAE;AAAAA,MAAK,CAAA,GAAA;AAAA,QAElDY,eACP,MAIE,CAJFJ,EAIEK,GAAA;AAAA,UAHUC,eAAejC,EAAAmB;AAAAA,2DAAAnB,EAAOmB,QAAAU;AAAAA,UAC7BK,SAAST,EAAAZ,CAAA;AAAA,UACTsB,KAAKV,EAAAb,CAAA;AAAA;mBALd,MAA2C,CAA3Ce,EAA2CS,GAAA;AAAA,UAA7BhC,OAAOA,EAAAe;AAAAA,mBAAW;AAAA,UAAJlB,KAAIW;AAAAA;;;;;;;"}
1
+ {"version":3,"file":"CustomerModal.vue2.js","sources":["../../../../../src/components/public/CustomerModal/CustomerModal.vue"],"sourcesContent":["<template>\n <TpfConfigProvider>\n <TpfModal v-model:visible=\"visible\" v-bind=\"$attrs\" :title=\"title\">\n <VFormRender :vfCtx=\"vfCtx\" ref=\"vfdRef\" />\n <template #footerRight>\n <SubmitButtonRender\n v-model:dialogVisible=\"visible\"\n :options=\"formConfig\"\n :ctx=\"vfdRef\"\n />\n </template>\n </TpfModal>\n </TpfConfigProvider>\n</template>\n<script setup lang=\"tsx\">\n import { useLowcode } from '@/hooks/useLowcode';\n import { useAttrs, onMounted, nextTick, computed, getCurrentInstance, ref } from 'vue';\n import SubmitButtonRender from '@/components/form-render/SubmitButtonRender.vue';\n import VFormRender from '@/components/form-render/index.vue';\n import { TpfModal, TpfConfigProvider } from 'tmgc2-share';\n\n const instance = getCurrentInstance()!;\n\n const attrs = (useAttrs() || {}) as any;\n const visible = ref(false);\n\n type Props = {\n title: string;\n type: string;\n formCode: string;\n };\n\n const props = withDefaults(defineProps<Props>(), {});\n\n const vfCtx = computed(() => {\n return {\n $router: instance.proxy!.$router,\n _id: attrs?.row?.record?._id || null,\n type: props.type,\n instance,\n ...attrs\n };\n });\n\n const { vfdRef, formConfig, getComponentJson } = useLowcode({\n formCode: props.formCode,\n type: props.type\n });\n\n const title = computed(() => {\n if (props.title) return props.title;\n if (props.type === 'add') return '新增';\n if (props.type === 'edit') return '编辑';\n if (props.type === 'view') return '查看';\n return '新增';\n });\n\n const show = async () => {\n visible.value = true;\n await nextTick();\n await getComponentJson([]);\n console.log('attrs', attrs);\n };\n\n onMounted(() => {\n show();\n });\n</script>\n\n<style lang=\"less\" scoped></style>\n"],"names":["instance","getCurrentInstance","attrs","useAttrs","visible","ref","props","__props","vfCtx","computed","$router","proxy","_id","row","record","type","vfdRef","formConfig","getComponentJson","useLowcode","formCode","title","show","value","nextTick","console","log","onMounted","_createBlock","_unref","TpfConfigProvider","_createVNode","_mergeProps","$event","$attrs","footerRight","SubmitButtonRender","dialogVisible","options","ctx","VFormRender"],"mappings":";;;;;;;;;;;;;AAqBI,UAAMA,IAAWC,EAAkB,GAE7BC,IAASC,EAAQ,KAAM,CAAA,GACvBC,IAAUC,EAAI,EAAK,GAQnBC,IAAQC,GAERC,IAAQC,EAAS,MAAM;;AACzB,aAAO;AAAA,QACHC,SAASV,EAASW,MAAOD;AAAAA,QACzBE,OAAKV,KAAAA,IAAAA,KAAAA,gBAAAA,EAAOW,QAAPX,gBAAAA,EAAYY,WAAZZ,gBAAAA,EAAoBU,QAAO;AAAA,QAChCG,MAAMT,EAAMS;AAAAA,QACZf,UAAAA;AAAAA,QACA,GAAGE;AAAAA;IAEX,CAAC,GAEK;AAAA,MAAEc,QAAAA;AAAAA,MAAQC,YAAAA;AAAAA,MAAYC,kBAAAA;AAAAA,QAAqBC,EAAW;AAAA,MACxDC,UAAUd,EAAMc;AAAAA,MAChBL,MAAMT,EAAMS;AAAAA,IAChB,CAAC,GAEKM,IAAQZ,EAAS,MACfH,EAAMe,QAAcf,EAAMe,QAC1Bf,EAAMS,SAAS,QAAc,OAC7BT,EAAMS,SAAS,SAAe,OAC9BT,EAAMS,SAAS,SAAe,OAC3B,IACV,GAEKO,IAAO,YAAY;AACrBlB,MAAAA,EAAQmB,QAAQ,IAChB,MAAMC,EAAQ,GACd,MAAMN,EAAiB,CAAA,CAAE,GACzBO,QAAQC,IAAI,SAASxB,CAAK;AAAA,IAC9B;AAEAyB,WAAAA,EAAU,MAAM;AACZL,MAAAA,EAAI;AAAA,IACR,CAAC,mBAjEDM,EAWoBC,EAAAC,CAAA,GAAA,MAAA;AAAA,iBAVhB,MASW,CATXC,EASWF,MATXG,EASW;AAAA,QATO5B,SAASA,EAAAmB;AAAAA,mDAAAnB,EAAOmB,QAAAU;AAAAA,SAAUC,EAAAA,QAAM;AAAA,QAAGb,OAAOA,EAAAE;AAAAA,MAAK,CAAA,GAAA;AAAA,QAElDY,eACP,MAIE,CAJFJ,EAIEK,GAAA;AAAA,UAHUC,eAAejC,EAAAmB;AAAAA,2DAAAnB,EAAOmB,QAAAU;AAAAA,UAC7BK,SAAST,EAAAZ,CAAA;AAAA,UACTsB,KAAKV,EAAAb,CAAA;AAAA;mBALd,MAA2C,CAA3Ce,EAA2CS,GAAA;AAAA,UAA7BhC,OAAOA,EAAAe;AAAAA,mBAAW;AAAA,UAAJlB,KAAIW;AAAAA;;;;;;;"}
package/src/lang/zh-CN.js CHANGED
@@ -59,6 +59,7 @@ const e = {
59
59
  "rich-editor": "富文本",
60
60
  cascader: "级联选择",
61
61
  treeSelect: "树形选择",
62
+ tree: "树",
62
63
  "diy-compontent": "自定义组件",
63
64
  toolbar: "工具栏",
64
65
  "button-list": "按钮组",