@kp-ui/lowcode 1.0.52 → 1.0.54
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.
- package/_virtual/virtual_svg-icons-register.js +2 -2
- package/_virtual/virtual_svg-icons-register.js.map +1 -1
- package/package.json +1 -1
- package/render.js +4 -1
- package/render.js.map +1 -1
- package/src/components/CustomRender/components/RenderBodyCell.js +1 -1
- package/src/components/CustomRender/components/RenderBodyCell.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +6 -4
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +15 -15
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/line-height-editor.vue.js +32 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/line-height-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/index.js +2 -1
- package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
- package/src/components/form-designer/setting-panel/propertyRegister.js +1 -0
- package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/data-table.js +1 -0
- package/src/components/form-designer/widget-panel/containers/data-table.js.map +1 -1
- package/src/components/form-render/SubmitButtonRender.vue.js +2 -2
- package/src/components/form-render/SubmitButtonRender.vue.js.map +1 -1
- package/src/components/form-render/container-item/data-table-item.vue.js +5 -6
- package/src/components/form-render/container-item/data-table-item.vue.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +10 -2
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/components/public/ActionButtonListDialog.vue.js +1 -1
- package/src/components/public/ActionButtonListDialog.vue.js.map +1 -1
- package/src/components/public/ActionButtonListDialog.vue2.js +1 -1
- package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue.js +1 -1
- package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
- package/src/mixins/useDataTableMixin.js +16 -9
- package/src/mixins/useDataTableMixin.js.map +1 -1
- package/styles/style.css +1 -1
- package/types/src/components/form-designer/setting-panel/index.d.ts +1 -0
- package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts.map +1 -1
- package/types/src/components/form-render/SubmitButtonRender.d.ts +3 -3
- package/types/src/components/form-render/SubmitButtonRender.d.ts.map +1 -1
- package/types/src/components/form-render/dynamic-dialog.d.ts.map +1 -1
- package/types/src/components/form-render/index.d.ts +1 -0
- package/types/src/components/form-render/index.d.ts.map +1 -1
package/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../src/components/form-render/index.vue"],"sourcesContent":["<template>\n <a-config-provider :component-size=\"size\" :input=\"{ autocomplete: 'off' }\">\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 @submit.prevent\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 >\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 </a-config-provider>\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\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 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 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 dialogCon = getContainerWidgetByName(topFormRef.widgetList, dialogName);\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.ctx.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\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":["FieldComponents","_createBlock","_createVNode","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","index","_resolveDynamicComponent","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;AAoFI,MAAK,YAAU;AAAA,EACX,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ,CAAC,SAAS,IAAI;AAAA,EACtB,YAAY;AAAA,IACR,GAAGA;AAAAA,EACN;AAAA,EACD,OAAO;AAAA,IACH,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,OAAO,CAAE;AAAA,IACrB;AAAA,IACD,UAAU;AAAA;AAAA,MAEN,MAAM;AAAA,MACN,SAAS,MAAM,qBAAoB;AAAA,IACtC;AAAA,IACD,UAAU;AAAA;AAAA,MAEN,MAAM;AAAA,MACN,SAAS,OAAO,CAAE;AAAA,IACrB;AAAA,IACD,YAAY;AAAA;AAAA,MAER,MAAM;AAAA,MACN,SAAS,OAAO,CAAE;AAAA,IACrB;AAAA,IACD,cAAc;AAAA;AAAA,MAEV,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA,IACD,cAAc;AAAA;AAAA,MAEV,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA,IACD,cAAc;AAAA;AAAA,MAEV,MAAM;AAAA,MACN,SAAS,MAAM;AACX,eAAO;AAAA,UACH,cAAc;AAAA;AAAA,QACjB;AAAA,MACL;AAAA,IACH;AAAA,IACD,WAAW;AAAA;AAAA,MAEP,MAAM;AAAA,MACN,SAAS,OAAO,CAAE;AAAA,IACrB;AAAA,IACD,YAAY;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA;AAAA,MAEb,MAAM;AAAA,MACN,SAAS;AAAA,IACb;AAAA,EACH;AAAA,EACD,UAAU;AACN,WAAO;AAAA,MACH,SAAS,KAAK;AAAA,MACd,WAAW,KAAK;AAAA;AAAA,MAChB,eAAe,MACX,KAAK,YACA;AAAA,MACT,cAAc,MAAM,KAAK;AAAA;AAAA,MACzB,kBAAkB,KAAK;AAAA,MACvB,eAAe,MACX,KAAK;AAAA,MACT,aAAa;AAAA,QACT,WAAW,KAAK;AAAA,MACnB;AAAA,MACD,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK;AAAA,MACxB,qBAAqB,MAAM;AAAA,MAC3B,gBAAgB,MAAM;AAAA,MACtB,kBAAkB,MAAM,KAAK;AAAA,IAChC;AAAA,EACJ;AAAA,EACD,OAAO;AACH,WAAO;AAAA,MACH,WAAW;AAAA;AAAA,MACX,cAAc;AAAA;AAAA,MACd,aAAa,KAAK;AAAA,MAElB,eAAe;AAAA;AAAA,MAEd;AAAA,MACD,WAAW;AAAA;AAAA,MACX,eAAe,CAAE;AAAA,MACjB,gBAAgB,CAAE;AAAA,MAClB,QAAQ;AAAA;AAAA,MAER,oBAAoB,CAAE;AAAA;AAAA,MACtB,cAAc;AAAA;AAAA,MACd,mBAAmB;AAAA;AAAA,MACnB,cAAc;AAAA;AAAA,MAEd,eAAe,CAAC;AAAA;AAAA,IACnB;AAAA,EACJ;AAAA,EACD,UAAU;AAAA,IACN,aAAa;AACT,aAAO,KAAK,YAAY;AAAA,IAC3B;AAAA,IACD,iBAAiB;AACb,aAAO,KAAK,WAAW,qBAAqB,KAAK,MAAM,sBAAsB;AAAA,IAChF;AAAA,IAED,aAAa;AACT,aAAO,KAAK,WAAW,iBAAiB,KAAK,MAAM,uBAAuB;AAAA,IAC7E;AAAA,IAED,aAAa;AACT,aAAO,KAAK,YAAY;AAAA,IAC3B;AAAA,IAED,gBAAgB;AACZ,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,eAAe;AACtD,eAAO,KAAK,WAAW;AAAA,MAC3B;AAEA,aAAO;AAAA,IACV;AAAA,IAED,aAAa;AACT,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,YAAY;AACnD,eAAO,KAAK,WAAW,aAAa;AAAA,MACxC;AAEA,aAAO;AAAA,IACV;AAAA,IAED,OAAO;AACH,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,MAAM;AAC7C,eAAO,KAAK,WAAW;AAAA,MAC3B;AAEA,aAAO;AAAA,IACV;AAAA,IAED,cAAc;AACV,aAAO,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,cACxC,KAAK,WAAW,cAChB;AAAA,IACV;AAAA,EACH;AAAA,EACD,OAAO;AAAA;AAAA,EAEN;AAAA,EACD,UAAU;AACN,SAAK,YAAY;AACjB,SAAK,eAAe,CAAC,KAAK,cAAc,OAAO,KAAK,YAAY,UAAU;AAC1E,SAAK,eAAgB;AAAA,EACxB;AAAA,EACD,UAAU;AACN,SAAK,WAAY;AACjB,SAAK,mBAAoB;AAAA,EAE5B;AAAA,EACD,SAAS;AAAA,IACL,WAAW,MAAM;AACb,WAAK,YAAY;AAAA,IACpB;AAAA,IAED,oBAAoB;AAChB,UAAI,KAAK,UAAW;AACpB,UAAI,CAAC,KAAK,oBAAqB;AAC/B,UAAI;AACA,aAAK,YAAY;AACjB,YAAI,CAAC,CAAC,KAAK,WAAW,qBAAqB;AACvC,gBAAM,WAAW,IAAI,SAAS,KAAK,WAAW,mBAAmB;AACjE,gBAAM,cAAc,SAAS,KAAK,IAAI;AACtC,cAAI,gBAAgB,OAAO;AACvB;AAAA,UACJ;AAAA,QACJ;AAEA,aAAK,gBAAgB;AACrB,mBAAW,KAAK,mBAAmB,GAAG;AAAA,MACxC,SAAO,OAAO;AACZ,gBAAQ,IAAI,WAAW,KAAK;AAAA,MAChC,UAAU;AACN,aAAK,YAAY;AAAA,MACrB;AAAA,IACH;AAAA,IAED,MAAM,gBAAgB;AAClB,UAAI,KAAK,aAAc;AAEvB,UAAI;AACA,aAAK,eAAe;AACpB,YAAI,CAAC,CAAC,KAAK,WAAW,iBAAiB;AACnC,gBAAM,WAAW,IAAI,SAAS,KAAK,WAAW,eAAe;AAC7D,gBAAM,cAAc,MAAM,SAAS,KAAK,IAAI;AAC5C,cAAI,gBAAgB,OAAO;AACvB;AAAA,UACJ;AAAA,QACJ;AACA,aAAK,gBAAgB;AACrB,mBAAW,KAAK,mBAAmB,GAAG;AAAA,MACxC,SAAO,OAAO;AACZ,gBAAQ,IAAI,WAAW,KAAK;AAAA,MAChC,UAAU;AACN,aAAK,YAAY;AAAA,MACrB;AAAA,IACH;AAAA,IAED,MAAM,eAAe;;AACjB,YAAM,YAAY,KAAK,WAAW;AAClC,WAAI,eAAU,YAAY,SAAtB,mBAA4B,KAAK;AACjC,cAAM,MAAM,MAAM,cAAc,KAAK,MAAM,UAAU,aAAa;AAAA,UAC9D,OAAO,KAAK;AAAA,QAChB,CAAC;AACD,gBAAQ,IAAI,SAAS,GAAG;AACxB,eAAO;AAAA,MACX;AAAA,IACH;AAAA,IACD,MAAM,eAAe;;AACjB,YAAM,YAAY,MAAM,KAAK,YAAa;AAC1C,YAAM,YAAY,KAAK,WAAW;AAClC,WAAI,eAAU,YAAY,SAAtB,mBAA4B,KAAK;AACjC,cAAM,MAAM,MAAM,cAAc,KAAK,MAAM,UAAU,aAAa;AAAA,UAC9D,MAAM;AAAA,UACN,OAAO,KAAK;AAAA,QAChB,CAAC;AACD,gBAAQ,IAAI,SAAS,GAAG;AACxB,eAAO;AAAA,MACX;AAAA,IACH;AAAA,IAED,eAAe,qBAAqB,MAAM;AACtC,WAAK,SAAS,aAAa,WAAY;AACvC,UAAI,CAAC,CAAC,sBAAsB,CAAC,KAAK,iBAAiB;AAE/C,aAAK,+BAAgC;AAAA,MACzC;AACA,WAAK,2BAA4B;AACjC,WAAK,6BAA8B;AACnC,WAAK,sBAAuB;AAC5B,WAAK,gBAAiB;AAEtB,UAAI,KAAK,cAAc;AAEnB,aAAK,UAAU,MAAM;AACjB,eAAK,YAAa;AAAA,QACtB,CAAC;AAAA,MACL;AAAA,IACH;AAAA,IAED,uBAAuB,QAAQ;AAC3B,UAAI,OAAO,SAAS,QAAQ;AAExB,eAAO;AAAA,MACX;AAEA,aAAO,OAAO,OAAO;AAAA,IACxB;AAAA,IAED,cAAc,QAAQ;AAClB,aAAO,OAAO,OAAO;AAAA,IACxB;AAAA,IAED,aAAa;AACT,YAAM,YAAY,aAAa,QAAQ,eAAe,KAAK;AAC3D,WAAK,eAAe,SAAS;AAAA,IAChC;AAAA,IAED,iCAAiC;AAC7B,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,SAAS;AAChD;AAAA,UACI,KAAK,WAAW;AAAA,UAChB,CAAC,CAAC,KAAK,eAAe,KAAK,KAAK;AAAA,QACnC;AAAA,MACL;AAEA,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,WAAW;AAClD;AAAA,UACI,KAAK,WAAW;AAAA,UAChB,CAAC,CAAC,KAAK,eAAe,KAAK,KAAK;AAAA,QACnC;AAAA,MACL;AAAA,IACH;AAAA,IAED,eAAe,YAAY;AACvB,UAAI,CAAC,CAAC,cAAc,WAAW,SAAS,GAAG;AACvC,mBAAW,QAAQ,WAAS;AACxB,eAAK,oBAAoB,KAAK;AAAA,QAClC,CAAC;AAAA,MACL;AAAA,IACH;AAAA,IAED,oBAAoB,OAAO;AACvB,UAAI,MAAM,aAAa,aAAa;AAChC,YAAI,MAAM,SAAS,cAAc;AAC7B,gBAAM,EAAE,SAAS,MAAM;AACvB,eAAK,cAAc,IAAI,IAAI,UAAU,MAAM,QAAQ,UAAU;AAC7D;AAAA,QACJ;AACA,YAAI,MAAM,SAAS,eAAe,MAAM,SAAS,YAAa;AAAA,iBAEnD,MAAM,SAAS,QAAQ;AAC9B,cAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,KAAK,SAAS,GAAG;AACvC,kBAAM,KAAK,QAAQ,eAAa;AAC5B,mBAAK,oBAAoB,SAAS;AAAA,YACtC,CAAC;AAAA,UACL;AAAA,mBACO,MAAM,SAAS,SAAS;AAC/B,cAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,KAAK,SAAS,GAAG;AACvC,kBAAM,KAAK,QAAQ,aAAW;AAC1B,kBAAI,CAAC,CAAC,QAAQ,QAAQ,QAAQ,KAAK,SAAS,GAAG;AAC3C,wBAAQ,KAAK,QAAQ,aAAW;AAC5B,uBAAK,oBAAoB,OAAO;AAAA,gBACpC,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,mBACO,MAAM,SAAS,OAAO;AAC7B,cAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,KAAK,SAAS,GAAG;AACvC,kBAAM,KAAK,QAAQ,aAAW;AAC1B,kBAAI,CAAC,CAAC,QAAQ,cAAc,QAAQ,WAAW,SAAS,GAAG;AACvD,wBAAQ,WAAW,QAAQ,eAAa;AACpC,uBAAK,oBAAoB,SAAS;AAAA,gBACtC,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,WAAW,MAAM,SAAS,YAAY;AAClC,gBAAM,cAAc,MAAM,QAAQ;AAClC,cAAI,CAAC,KAAK,SAAS,eAAe,WAAW,GAAG;AAC5C,kBAAM,iBAAiB,CAAE;AACzB,gBAAI,MAAM,QAAQ,cAAc;AAC5B,oBAAM,WAAW,QAAQ,iBAAe;AACpC,oBAAI,CAAC,CAAC,YAAY,cAAc;AAC5B,iCAAe,YAAY,QAAQ,IAAI,IACnC,YAAY,QAAQ;AAAA,gBAC5B;AAAA,cACJ,CAAC;AAED,mBAAK,cAAc,WAAW,IAAI,CAAC,cAAc;AAAA,mBAC9C;AACH,mBAAK,cAAc,WAAW,IAAI,CAAE;AAAA,YACxC;AAAA,iBACG;AACH,kBAAM,eAAe,KAAK,SAAS,WAAW;AAC9C,iBAAK,cAAc,WAAW,IAAI,UAAU,YAAY;AAAA,UAC5D;AAAA,QACJ,WAAW,MAAM,SAAS,iBAAiB;AACvC,gBAAM,kBAAkB,MAAM,QAAQ;AACtC,cAAI,CAAC,KAAK,SAAS,eAAe,eAAe,GAAG;AAChD,kBAAM,YAAY,CAAE;AACpB,kBAAM,cAAc,QAAM;AACtB,wBAAU,KAAK,EAAE;AAAA,YACpB;AACD,4CAAgC,OAAO,WAAW;AAElD,kBAAM,qBAAqB,CAAE;AAC7B,gBAAI,MAAM,QAAQ,cAAc;AAC5B,wBAAU,QAAQ,qBAAmB;AACjC,mCAAmB,gBAAgB,QAAQ,IAAI,IAC3C,gBAAgB,QAAQ;AAAA,cAChC,CAAC;AACD,mBAAK,cAAc,eAAe,IAAI,CAAC,kBAAkB;AAAA,mBACtD;AACH,mBAAK,cAAc,eAAe,IAAI,CAAE;AAAA,YAC5C;AAAA,iBACG;AACH,kBAAM,eAAe,KAAK,SAAS,eAAe;AAClD,iBAAK,cAAc,eAAe,IAAI,UAAU,YAAY;AAAA,UAChE;AAAA,mBACO,MAAM,SAAS,cAAc,MAAM,SAAS,cAAc;AACjE,cAAI,CAAC,CAAC,MAAM,cAAc,MAAM,WAAW,SAAS,GAAG;AACnD,kBAAM,WAAW,QAAQ,eAAa;AAClC,mBAAK,oBAAoB,SAAS;AAAA,YACtC,CAAC;AAAA,UACL;AAAA,eACG;AAEH,cAAI,CAAC,CAAC,MAAM,cAAc,MAAM,WAAW,SAAS,GAAG;AACnD,kBAAM,WAAW,QAAQ,eAAa;AAClC,mBAAK,oBAAoB,SAAS;AAAA,YACtC,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,iBACO,CAAC,CAAC,MAAM,cAAc;AAC7B,YAAI,CAAC,KAAK,SAAS,eAAe,MAAM,QAAQ,IAAI,GAAG;AACnD,eAAK,cAAc,MAAM,QAAQ,IAAI,IAAI,MAAM,QAAQ;AAAA,eACpD;AACH,gBAAM,eAAe,KAAK,SAAS,MAAM,QAAQ,IAAI;AACrD,eAAK,cAAc,MAAM,QAAQ,IAAI,IAAI,UAAU,YAAY;AAAA,QACnE;AAAA,MACJ;AAAA,IACH;AAAA,IAED,6BAA6B;AACzB,WAAK,KAAK,aAAa;AACvB,WAAK;AAAA,QACD;AAAA,QACA,CAAC,WAAW,UAAU,UAAU,aAAa,oBAAoB;AAC7D,eAAK;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACH;AACD,eAAK;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,KAAK;AAAA,YACL;AAAA,YACA;AAAA,UACH;AAAA,QACL;AAAA,MACH;AAAA,IACJ;AAAA,IAED,+BAA+B;AAC3B,WAAK,KAAK,iBAAiB;AAC3B,WAAK,IAAI,mBAAmB,eAAa;AACrC,YAAI,CAAC,CAAC,KAAK,MAAM,YAAY;AACzB,eAAK,MAAM,WAAW,eAAe,SAAS;AAAA,QAClD;AAAA,MACJ,CAAC;AAAA,IACJ;AAAA,IAED,wBAAwB;AACpB,WAAK,cAAc,YAAY,IAAI;AAAA,IACtC;AAAA,IAED,sBAAsB,WAAW,UAAU,UAAU,aAAa,iBAAiB;AAC/E,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,kBAAkB;AACzD,cAAM,aAAa,IAAI;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,KAAK,WAAW;AAAA,QACnB;AACD,mBAAW;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,KAAK;AAAA,UACL;AAAA,UACA;AAAA,QACH;AAAA,MACL;AAAA,IACH;AAAA,IAED,kBAAkB;AACd,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,eAAe;AACtD,cAAM,aAAa,IAAI,SAAS,KAAK,WAAW,aAAa;AAC7D,mBAAW,KAAK,IAAI;AAAA,MACxB;AAAA,IACH;AAAA,IAED,iBAAiB;AACb,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,gBAAgB;AACvD,cAAM,aAAa,IAAI,SAAS,KAAK,WAAW,cAAc;AAC9D,mBAAW,KAAK,IAAI;AAAA,MACxB;AAAA,IACH;AAAA,IAED,kBAAkB;AACd,UAAI,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,WAAW,eAAe;AACtD,cAAM,aAAa,IAAI,SAAS,KAAK,WAAW,aAAa;AAC7D,mBAAW,KAAK,IAAI;AAAA,MACxB;AAAA,IACH;AAAA,IAED,yBAAyB,YAAY,cAAc;AAC/C,YAAM,SAAS,KAAK,aAAa,UAAU;AAC3C,UAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa;AAClC,eAAO,YAAY,YAAY;AAAA,aAC5B;AAEH,aAAK,kCAAkC,YAAY,YAAY;AAAA,MACnE;AAAA,IACH;AAAA,IAED,kCAAkC,YAAY,cAAc;AACxD,YAAM,eAAe;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,MACH;AACD,UACI,CAAC,CAAC,gBACF,CAAC,CAAC,aAAa,WACf,aAAa,QAAQ,eAAe,UAAU,GAChD;AACE,qBAAa,QAAQ,WAAW;AAAA,MACpC;AAEA,WAAK,wBAAwB,UAAU,EAAE,QAAQ,QAAM;AACnD,cAAM,KAAK,KAAK,aAAa,EAAE;AAC/B,YAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa;AAC1B,aAAG,YAAY,YAAY;AAAA,QAC/B;AAAA,MACJ,CAAC;AAAA,IACJ;AAAA,IAED,uBAAuB,YAAY,YAAY;AAC3C,YAAM,SAAS,KAAK,aAAa,UAAU;AAC3C,UAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa;AAClC,eAAO,UAAU,UAAU;AAAA,aACxB;AAEH,aAAK,gCAAgC,YAAY,UAAU;AAAA,MAC/D;AAAA,IACH;AAAA,IAED,gCAAgC,YAAY,YAAY;AACpD,YAAM,eAAe;AAAA,QACjB,KAAK,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,MACH;AACD,UACI,CAAC,CAAC,gBACF,CAAC,CAAC,aAAa,WACf,aAAa,QAAQ,eAAe,QAAQ,GAC9C;AACE,qBAAa,QAAQ,SAAS;AAAA,MAClC;AAEA,WAAK,wBAAwB,UAAU,EAAE,QAAQ,QAAM;AACnD,cAAM,KAAK,KAAK,aAAa,EAAE;AAC/B,YAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa;AAC1B,aAAG,UAAU,UAAU;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACJ;AAAA,IAED,wBAAwB,YAAY;AAChC,YAAM,SAAS,CAAE;AACjB,UAAI,cAAc;AAClB,YAAM,YAAY,CAAC,OAAO,WAAW;AACjC,YAAI,CAAC,CAAC,MAAM,WAAW,MAAM,QAAQ,SAAS,YAAY;AACtD,wBAAc,OAAO,QAAQ;AAAA,QACjC;AAAA,MACH;AACD,2BAAqB,KAAK,YAAY,SAAS;AAE/C,UAAI,CAAC,CAAC,aAAa;AACf,cAAM,aAAa,KAAK,aAAa,WAAW;AAChD,YAAI,CAAC,CAAC,YAAY;AACd,gBAAM,SAAS,WAAW,aAAc;AACxC,cAAI,CAAC,CAAC,UAAU,OAAO,SAAS,GAAG;AAC/B,mBAAO,QAAQ,SAAO;AAClB,qBAAO,KAAK,aAAa,SAAS,GAAG;AAAA,YACzC,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,IACV;AAAA,IAED,qBAAqB;AACjB,YAAM,YAAY,oBAAI,IAAK;AAC3B,WAAK,gBAAe,EAAG,QAAQ,QAAM;AACjC,YACI,CAAC,CAAC,GAAG,MAAM,QAAQ,aACnB,CAAC,CAAC,GAAG,MAAM,QAAQ,UACnB,CAAC,CAAC,GAAG,MAAM,QAAQ,aACrB;AACE,oBAAU,IAAI,GAAG,MAAM,QAAQ,MAAM;AAAA,QACzC;AAAA,MACJ,CAAC;AAED,UAAI,UAAU,OAAO,GAAG;AACpB,kBAAU,QAAQ,OAAM,WAAU;AAC9B,gBAAM,QAAQ,YAAY,KAAK,YAAY,MAAM;AACjD,cAAI,CAAC,CAAC,OAAO;AACT,kBAAM,WAAW,IAAI,OAAO,EAAE;AAC9B,yBAAa,UAAU,KAAK,aAAa,CAAA,CAAE;AAC3C,gBAAI,WAAW;AACf,gBAAI;AACA,yBAAW,MAAM;AAAA,gBACb;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,KAAK;AAAA,cACR;AACD,mBAAK,cAAc,MAAM,IAAI;AAC7B,mBAAK,UAAU,eAAe,8BAA8B,MAAM;AAAA,YACpE,SAAO,KAAK;AACV,mBAAK,SAAS,MAAM,IAAI,OAAO;AAAA,YACnC;AAAA,UACJ;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACH;AAAA;AAAA;AAAA,IAKD,eAAe,UAAU;AACrB,mBAAa,QAAQ;AAAA,IACxB;AAAA,IAED,kBAAkB;AACd,aAAO,aAAa,QAAQ,eAAe,KAAK;AAAA,IACnD;AAAA,IAED,gBAAgB;AAEZ,aAAO,KAAK,MAAM,YAAY;AAAA,IACjC;AAAA,IAED,aAAa;AACT,aAAO;AAAA,IACV;AAAA,IAED,aAAa,YAAY,YAAY,OAAO;AACxC,YAAM,WAAW,KAAK,cAAc,UAAU;AAC9C,UAAI,CAAC,YAAY,CAAC,CAAC,WAAW;AAC1B,aAAK,SAAS,MAAM,KAAK,MAAM,yBAAyB,IAAI,UAAU;AAAA,MAC1E;AACA,aAAO;AAAA,IACV;AAAA,IAED,qBAAqB;AACjB,iBAAW,QAAQ,KAAK,eAAe;AACnC,eAAO,KAAK,cAAc,IAAI;AAAA,MAClC;AAAA,IACH;AAAA,IAED,cAAc;AACV,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY,aAAa;AACrB,UAAI,CAAC,CAAC,aAAa;AACf,YAAI,OAAO,gBAAgB,YAAY,YAAY,gBAAgB,QAAQ;AACvE,cAAI,iBAAiB;AACrB,cAAI,OAAO,gBAAgB,UAAU;AACjC,6BAAiB,KAAK,MAAM,WAAW;AAAA,iBACpC;AACH,6BAAiB;AAAA,UACrB;AAEA,cAAI,CAAC,eAAe,cAAc,CAAC,eAAe,YAAY;AAC1D,iBAAK,SAAS,MAAM,8BAA8B;AAClD;AAAA,UACJ;AAIA,eAAK,mBAAkB;AACvB,eAAK,eAAe,eAAe,UAAU;AAC7C,gBAAM,oBAAoB,UAAU,sBAAsB;AAE1D,uBAAa,mBAAmB,eAAe,UAAU;AAEzD,eAAK,YAAY,YAAY,IAAI;AACjC,eAAK,YAAY,YAAY,IAAI,eAAe;AAEhD,eAAK,+BAA8B;AACnC,eAAK,UAAU,MAAM;AACjB,iBAAK,eAAe,KAAK;AACzB,iBAAK,mBAAoB;AACzB,iBAAK,gBAAiB;AAAA,UAC1B,CAAC;AAAA,eACE;AACH,eAAK,SAAS,MAAM,uBAAuB;AAAA,QAC/C;AAAA,MACJ;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB,aAAa;AAC1B,UAAI,cAAc,CAAE;AACpB,UAAI,CAAC,CAAC,eAAe,OAAO,gBAAgB,UAAU;AAClD,sBAAc,CAAC,WAAW;AAAA,iBACnB,CAAC,CAAC,eAAe,MAAM,QAAQ,WAAW,GAAG;AACpD,sBAAc,CAAC,GAAG,WAAW;AAAA,MACjC;AACA,WAAK,UAAU,eAAe,qBAAqB,WAAW;AAAA,IACjE;AAAA,IAED,YAAY,iBAAiB,MAAM;AAC/B,UAAI,CAAC,gBAAgB;AACjB,eAAO,KAAK;AAAA,MAChB;AAEA,UAAI,WAAW,SAAS,WAAW;AAAA,MAAE;AACrC,YAAM,UAAU,IAAI,OAAO,QAAQ,SAAU,SAAS,QAAQ;AAC1D,mBAAW,SAAU,UAAU,OAAO;AAClC,WAAC,QAAQ,QAAQ,QAAQ,IAAI,OAAO,KAAK;AAAA,QAC5C;AAAA,MACL,CAAC;AAED,cAAQ,IAAI,KAAK,aAAa;AAC9B,WAAK,MAAM,YAAY,EAClB,SAAQ,EACR,KAAK,SAAO;AACT,gBAAQ,IAAI,KAAK,aAAa;AAC9B,iBAAS,KAAK,aAAa;AAAA,MAC9B,CAAA,EACA,MAAM,MAAM;AACT,iBAAS,KAAK,eAAe,KAAK,MAAM,8BAA8B,CAAC;AAAA,MAC3E,CAAC;AACL,aAAO;AAAA,IACV;AAAA,IAED,YAAY,UAAU;AAClB,cAAQ,IAAI,iBAAiB,QAAQ;AAErC,aAAO,KAAK,KAAK,aAAa,EAAE,QAAQ,cAAY;AAChD,YAAI,CAAC,CAAC,YAAY,SAAS,eAAe,QAAQ,GAAG;AACjD,eAAK,cAAc,QAAQ,IAAI,UAAU,SAAS,QAAQ,CAAC;AAAA,QAC/D;AAAA,MACJ,CAAC;AAGD,WAAK,UAAU,iBAAiB,eAAe,KAAK,aAAa;AAEjE,WAAK,UAAU,eAAe,eAAe,KAAK,aAAa;AAAA,IAClE;AAAA,IAED,cAAc,WAAW;AAErB,YAAM,WAAW,KAAK,aAAa,SAAS;AAC5C,UAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU;AACnC,eAAO,SAAS,SAAU;AAAA,MAC9B;AAEA,UAAI,CAAC,UAAU;AAEX,cAAM,SAAS,CAAE;AACjB,aAAK,wBAAwB,SAAS,EAAE,QAAQ,QAAM;AAClD,gBAAM,KAAK,KAAK,aAAa,EAAE;AAC/B,cAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU;AACvB,mBAAO,KAAK,GAAG,UAAU;AAAA,UAC7B;AAAA,QACJ,CAAC;AAED,eAAO;AAAA,MACX;AAAA,IACH;AAAA,IACD,qBAAqB,MAAM,OAAO,OAAO;AACrC,YAAM;AAAA,QACF;AAAA,QACA,QAAQ,EAAE,UAAU;AAAA,MACxB,IAAI;AACJ,WAAK,cAAc,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,IAAI;AAAA,IAC1D;AAAA,IACD,cAAc,WAAW,YAAY,qBAAqB,OAAO;AAE7D,YAAM,WAAW,KAAK,aAAa,SAAS;AAC5C,UAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,UAAU;AACnC,iBAAS,SAAS,YAAY,kBAAkB;AAAA,MACpD;AAEA,UAAI,CAAC,UAAU;AAEX,aAAK,wBAAwB,SAAS,EAAE,QAAQ,QAAM;AAClD,gBAAM,KAAK,KAAK,aAAa,EAAE;AAC/B,cAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU;AACvB,eAAG,SAAS,YAAY,kBAAkB;AAAA,UAC9C;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACH;AAAA,IAED,iBAAiB,aAAa,iBAAiB,MAAM;AACjD,YAAM,aAAa,KAAK,eAAe,WAAW;AAIlD,aAAO,WAAW,iBAAiB,cAAc;AAAA,IACpD;AAAA,IAED,cAAc;AACV,YAAM,YAAY,OAAO,KAAK,KAAK,aAAa;AAChD,gBAAU,QAAQ,WAAS;AACvB,cAAM,SAAS,KAAK,aAAa,KAAK;AACtC,YAAI,CAAC,CAAC,QAAQ;AACV,cAAI,CAAC,CAAC,OAAO,UAAU,OAAO,OAAO,SAAS,YAAY;AACtD,mBAAO,eAAgB;AAAA,UAC3B,WAAW,CAAC,CAAC,OAAO,UAAU,OAAO,OAAO,SAAS,iBAAiB;AAClE,mBAAO,mBAAoB;AAAA,iBACxB;AACH,aAAC,CAAC,OAAO,eAAe,OAAO,YAAY,IAAI;AAAA,UACnD;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACJ;AAAA,IAED,aAAa;AACT,YAAM,YAAY,OAAO,KAAK,KAAK,aAAa;AAChD,gBAAU,QAAQ,WAAS;AACvB,cAAM,SAAS,KAAK,aAAa,KAAK;AACtC,YAAI,CAAC,CAAC,QAAQ;AACV,cAAI,CAAC,CAAC,OAAO,UAAU,OAAO,OAAO,SAAS,YAAY;AACtD,mBAAO,cAAe;AAAA,UAC1B,WAAW,CAAC,CAAC,OAAO,UAAU,OAAO,OAAO,SAAS,iBAAiB;AAClE,mBAAO,kBAAmB;AAAA,iBACvB;AACH,aAAC,CAAC,OAAO,eAAe,OAAO,YAAY,KAAK;AAAA,UACpD;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACJ;AAAA,IAED,YAAY;AAER,YAAM,eAAe,OAAO,KAAK,KAAK,cAAc;AACpD,mBAAa,QAAQ,YAAU;AAC3B,YAAI,CAAC,CAAC,KAAK,eAAe,MAAM,EAAE,cAAc;AAC5C,eAAK,eAAe,MAAM,EAAE,aAAc;AAAA,QAC9C;AAAA,MACJ,CAAC;AAED,YAAM,YAAY,OAAO,KAAK,KAAK,aAAa;AAChD,gBAAU,QAAQ,WAAS;AACvB,cAAM,SAAS,KAAK,aAAa,KAAK;AACtC,YAAI,CAAC,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,OAAO,YAAY;AAE5D,iBAAO,WAAY;AAAA,QACvB;AAAA,MACJ,CAAC;AAED,WAAK,UAAU,MAAM;AACjB,aAAK,cAAa;AAAA,MACtB,CAAC;AAAA,IACJ;AAAA,IAED,cAAc,OAAO;AACjB,WAAK,MAAM,WAAW,cAAc,KAAK;AAAA,IAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,aAAa,UAAU;AACnB,WAAK,MAAM,YAAY,EAAE,SAAS,WAAS;AACvC,iBAAS,KAAK;AAAA,MAClB,CAAC;AAAA,IACJ;AAAA,IAED,iBAAiB;AAAA,IAEhB;AAAA,IAED,eAAe,aAAa;AACxB,UAAI,CAAC,CAAC,aAAa;AACf,YAAI,OAAO,gBAAgB,UAAU;AACjC,eAAK,yBAAyB,aAAa,IAAI;AAAA,QACnD,WAAW,MAAM,QAAQ,WAAW,GAAG;AACnC,sBAAY,QAAQ,QAAM;AACtB,iBAAK,yBAAyB,IAAI,IAAI;AAAA,UAC1C,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACH;AAAA,IAED,cAAc,aAAa;AACvB,UAAI,CAAC,CAAC,aAAa;AACf,YAAI,OAAO,gBAAgB,UAAU;AACjC,eAAK,yBAAyB,aAAa,KAAK;AAAA,QACpD,WAAW,MAAM,QAAQ,WAAW,GAAG;AACnC,sBAAY,QAAQ,QAAM;AACtB,iBAAK,yBAAyB,IAAI,KAAK;AAAA,UAC3C,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACH;AAAA,IAED,YAAY,aAAa;AACrB,UAAI,CAAC,CAAC,aAAa;AACf,YAAI,OAAO,gBAAgB,UAAU;AACjC,eAAK,uBAAuB,aAAa,IAAI;AAAA,QACjD,WAAW,MAAM,QAAQ,WAAW,GAAG;AACnC,sBAAY,QAAQ,QAAM;AACtB,iBAAK,uBAAuB,IAAI,IAAI;AAAA,UACxC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACH;AAAA,IAED,YAAY,aAAa;AACrB,UAAI,CAAC,CAAC,aAAa;AACf,YAAI,OAAO,gBAAgB,UAAU;AACjC,eAAK,uBAAuB,aAAa,KAAK;AAAA,QAClD,WAAW,MAAM,QAAQ,WAAW,GAAG;AACnC,sBAAY,QAAQ,QAAM;AACtB,iBAAK,uBAAuB,IAAI,KAAK;AAAA,UACzC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,gBAAgB,wBAAwB,OAAO;AAC3C,aAAO,mBAAmB,KAAK,YAAY,YAAY,qBAAqB;AAAA,IAC/E;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,sBAAsB;AAClB,aAAO,uBAAuB,KAAK,YAAY,UAAU;AAAA,IAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM,eAAe,mBAAmB;AACpC,WAAK,mBAAmB,aAAa,IAAI;AAAA,IAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM,eAAe;AACjB,aAAO,KAAK,mBAAmB,eAAe,aAAa;AAAA,IAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM,eAAe;AACjB,aAAO,KAAK,mBAAmB,aAAa;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY,eAAe,MAAM;AAC7B,WAAK,eAAe;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,cAAc;AACV,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,eAAe;AACX,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM,kBAAkB,QAAQ,UAAU;AACtC,YAAM,KAAK,YAAY,KAAK,YAAY,YAAY,MAAM;AAC1D,YAAM,SAAS,IAAI,OAAO,EAAE;AAC5B,mBAAa,QAAQ,KAAK,SAAS;AACnC,mBAAa,QAAQ,QAAQ;AAC7B,aAAO,MAAM,qBAAqB,IAAI,QAAQ,MAAM,OAAO,KAAK,QAAQ;AAAA,IAC3E;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,mBAAmB;AACf,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,gBAAgB;AACZ,UAAI,CAAC,KAAK,YAAY;AAClB,eAAO;AAAA,MACX;AAEA,UAAI,aAAa,KAAK;AACtB,aAAO,WAAW,YAAY;AAC1B,qBAAa,WAAW;AAAA,MAC5B;AAEA,aAAO;AAAA,IACV;AAAA,IACD,gBAAgB,cAAc;AAC1B,WAAK,eAAe;AAAA,IACvB;AAAA,IAED,kBAAkB;AACd,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,oBAAoB;AAChB,aAAO,KAAK;AAAA,IACf;AAAA,IAED,qBAAqB,OAAO;AACxB,WAAK,oBAAoB;AAAA,IAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,uBAAuB;AACnB,aAAO,KAAK;AAAA,IACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,WAAW,YAAY,WAAW,CAAA,GAAI,YAAY,CAAA,GAAI;AAClD,YAAM,aAAa,KAAK,cAAe;AACvC,YAAM,YAAY,yBAAyB,WAAW,YAAY,UAAU;AAC5E,UAAI,CAAC,cAAc,UAAU,SAAS,aAAa;AAC/C,aAAK,SAAS,MAAM,KAAK,MAAM,yBAAyB,IAAI,UAAU;AACtE;AAAA,MACJ;AACA,YAAM,YAAY;AAAA,QACd,YAAY,UAAU,UAAU,UAAU;AAAA,QAC1C,YAAY,mCAAmC,WAAW,UAAU;AAAA,MACvE;AAED,YAAM,eAAe,WAAU,IAAK;AACpC,YAAM,iBAAiB,EAAE,eAAe;AAAA,QACpC,SAAS,UAAU;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,EAAE,GAAG,SAAU;AAAA,QACzB,YAAY,WAAW;AAAA,QACvB,WAAW,WAAW;AAAA,QACtB,eAAe;AAAA,QACf;AAAA,QACA,WAAW;AAAA,QACX,OAAO,EAAE,GAAG,SAAS;AAAA,MACzB,CAAC;AACD,qBAAe,aAAa,KAAK,MAAM,EAAE;AAEzC,YAAM,aAAa,SAAS,cAAc,KAAK;AAC/C,iBAAW,KAAK,8BAA8B;AAC9C,eAAS,KAAK,YAAY,UAAU;AACpC,aAAO,gBAAgB,UAAU;AACjC,eAAS,KAAK,YAAY,eAAe,EAAE;AAC3C,qBAAe,UAAU,IAAI,KAAM;AAAA,IACtC;AAAA,IAED,WAAW,YAAY,WAAW,CAAA,GAAI,YAAY,CAAA,GAAI;AAClD,YAAM,aAAa,KAAK,cAAe;AACvC,YAAM,YAAY,yBAAyB,WAAW,YAAY,UAAU;AAC5E,UAAI,CAAC,aAAa,UAAU,SAAS,aAAa;AAC9C,aAAK,SAAS,MAAM,KAAK,MAAM,yBAAyB,IAAI,UAAU;AACtE;AAAA,MACJ;AACA,YAAM,YAAY;AAAA,QACd,YAAY,UAAU,UAAU,UAAU;AAAA,QAC1C,YAAY,mCAAmC,WAAW,UAAU;AAAA,MACvE;AAED,YAAM,eAAe,WAAU,IAAK;AACpC,YAAM,iBAAiB,YAAY,eAAe;AAAA,QAC9C,SAAS,UAAU;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,YAAY,CAAE;AAAA,QACxB,YAAY,WAAW;AAAA,QACvB,WAAW,WAAW;AAAA,QACtB,eAAe;AAAA,QACf;AAAA,QACA,WAAW;AAAA,MACf,CAAC;AACD,qBAAe,aAAa,KAAK,MAAM,EAAE;AAEzC,YAAM,aAAa,SAAS,cAAc,KAAK;AAC/C,iBAAW,KAAK,8BAA8B;AAC9C,eAAS,KAAK,YAAY,UAAU;AACpC,aAAO,gBAAgB,UAAU;AACjC,eAAS,KAAK,YAAY,eAAe,EAAE;AAC3C,qBAAe,UAAU,IAAI,KAAM;AAAA,IACtC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB;AACb,aAAO,KAAK;AAAA,IAChB;AAAA;AAAA,EAGJ;AACH;;;;;sBA5rCDC,YAmDoB,8BAAA;AAAA,IAnDA,kBAAgB,SAAI;AAAA,IAAG,OAAO,EAAuB,cAAA,MAAA;AAAA;qBACrE,MAiDS;AAAA,MAjDTC,YAiDS,mBAAA,EAjDA,UAAU,MAAS,UAAA,GAAA;AAAA,yBACxB,MA+CM;AAAA,UA/CNC,mBA+CM,OAAA;AAAA,YA/CA,sBAAO,MAAS,YAAA,sBAAA,EAAA;AAAA;YAClBD,YA6CS,mBAAA;AAAA,cA5CJ,QAAQ,SAAa;AAAA,cACrB,OAAQE,eAAA,CAAA,CAAA,SAAA,aAAa,MAAA,2CAChB,sBAAsB,CAAA;AAAA,cAC3B,eAAa,SAAU;AAAA,cACvB,2BAAyB;AAAA,cACzB,OAAO,MAAa;AAAA,cACrB,KAAI;AAAA,cACH,kDAAD,MAAe;AAAA,cAAA,GAAA,CAAA,SAAA,CAAA;AAAA;+BAEL,MAAqC;AAAA,iBAA/CC,UAAA,IAAA,GAAAC,mBAkCWC,UAlCyB,MAAAC,WAAA,SAAA,YAAlB,CAAA,QAAQC,WAAK;;oBACK,gBAAA,OAAO,yBACnCR,YAaYS,wBAZH,SAAsB,uBAAC,MAAM,CAAA,GAAA;AAAA,sBACjC;AAAA,sBACA,KAAK,OAAO;AAAA,sBACZ,MAAM,MAAa,cAAC,OAAO,QAAQ,IAAI;AAAA,sBACvC,eAAa,SAAU;AAAA,sBACvB,wBAAsBD;AAAA,sBACtB,iBAAe;AAAA;sBAGSD,WAAA,OAAO,KAAK,KAAA,MAAM,IAA1B,SAAI;;gCAAgC;AAAA,0BACjD,IAAAG,QAAA,CADyD,UAAK;AAAA,4BAC9DC,WAAyC,KAAA,QAA5B,MAAIC,eAAAC,mBAAU,KAAK,CAAA,GAAA,QAAA,IAAA;AAAA;;;0GAKxCb,YAcYS,wBAbH,SAAa,cAAC,MAAM,CAAA,GAAA;AAAA,sBACxB,OAAO;AAAA,sBACP,cAAY,MAAa;AAAA,sBACzB,UAAU;AAAA,sBACV,KAAK,OAAO;AAAA,sBACZ,eAAa,SAAU;AAAA,sBACvB,wBAAsBD;AAAA,sBACtB,iBAAe;AAAA;sBAGSD,WAAA,OAAO,KAAK,KAAA,MAAM,IAA1B,SAAI;;gCAAgC;AAAA,0BACjD,IAAAG,QAAA,CADyD,UAAK;AAAA,4BAC9DC,WAAyC,KAAA,QAA5B,MAAIC,eAAAC,mBAAU,KAAK,CAAA,GAAA,QAAA,IAAA;AAAA;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../src/components/form-render/index.vue"],"sourcesContent":["<template>\n <a-config-provider :component-size=\"size\" :input=\"{ autocomplete: 'off' }\">\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 @submit.prevent\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 >\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 </a-config-provider>\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\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 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 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 dialogCon = getContainerWidgetByName(topFormRef.widgetList, dialogName);\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.ctx.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\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":["FieldComponents","_createBlock","_createVNode","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","index","_resolveDynamicComponent","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderBodyCell.js","sources":["../../../../../src/components/CustomRender/components/RenderBodyCell.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'RenderBodyCell',\n props: {\n scope: {\n type: Object,\n default: () => ({})\n },\n bodyCell: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { column } = props.scope;\n\n const { dataIndex } = column;\n return () => {\n const renderBodyCell = props.bodyCell[dataIndex];\n return renderBodyCell(props.scope);\n };\n }\n});\n"],"names":["defineComponent","name","props","scope","type","Object","default","bodyCell","setup","column","dataIndex","renderBodyCell"],"mappings":";AAEA,MAAeA,iDAAgB;AAAA,EAC3BC,MAAM;AAAA,EACNC,OAAO;AAAA,IACHC,OAAO;AAAA,MACHC,MAAMC;AAAAA,MACNC,SAASA,OAAO,CAAE;AAAA,IACrB;AAAA,IACDC,UAAU;AAAA,MACNH,MAAMC;AAAAA,MACNC,SAASA,OAAO,CAAE;AAAA,IACtB;AAAA,EACH;AAAA,EACDE,MAAMN,OAAO;AACT,UAAM;AAAA,MAAEO;AAAAA,IAAQ,IAAGP,MAAMC;AAEzB,UAAM;AAAA,MAAEO;AAAAA,IAAU,IAAID;AACtB,WAAO,MAAM;AACT,YAAME,iBAAiBT,MAAMK,SAASG,SAAS;AAC/C,aAAOC,eAAeT,MAAMC,KAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"RenderBodyCell.js","sources":["../../../../../src/components/CustomRender/components/RenderBodyCell.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'RenderBodyCell',\n props: {\n scope: {\n type: Object,\n default: () => ({})\n },\n bodyCell: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { column } = props.scope;\n\n const { dataIndex } = column;\n return () => {\n const renderBodyCell = props.bodyCell[dataIndex];\n return renderBodyCell && renderBodyCell(props.scope);\n };\n }\n});\n"],"names":["defineComponent","name","props","scope","type","Object","default","bodyCell","setup","column","dataIndex","renderBodyCell"],"mappings":";AAEA,MAAeA,iDAAgB;AAAA,EAC3BC,MAAM;AAAA,EACNC,OAAO;AAAA,IACHC,OAAO;AAAA,MACHC,MAAMC;AAAAA,MACNC,SAASA,OAAO,CAAE;AAAA,IACrB;AAAA,IACDC,UAAU;AAAA,MACNH,MAAMC;AAAAA,MACNC,SAASA,OAAO,CAAE;AAAA,IACtB;AAAA,EACH;AAAA,EACDE,MAAMN,OAAO;AACT,UAAM;AAAA,MAAEO;AAAAA,IAAQ,IAAGP,MAAMC;AAEzB,UAAM;AAAA,MAAEO;AAAAA,IAAU,IAAID;AACtB,WAAO,MAAM;AACT,YAAME,iBAAiBT,MAAMK,SAASG,SAAS;AAC/C,aAAOC,kBAAkBA,eAAeT,MAAMC,KAAK;AAAA,IACtD;AAAA,EACL;AACJ,CAAC;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _sfc_main from "./data-table-widget.vue2.js";
|
|
2
|
-
import { resolveComponent, createBlock, openBlock, normalizeStyle, withCtx, createElementBlock, withModifiers, normalizeClass, createVNode, createCommentVNode } from "vue";
|
|
2
|
+
import { resolveComponent, createBlock, openBlock, normalizeStyle, withCtx, createElementBlock, withModifiers, normalizeClass, createTextVNode, createVNode, toDisplayString, createCommentVNode } from "vue";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
5
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -21,6 +21,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
21
21
|
class: normalizeClass(["collapse-container data-table-container", { selected: $options.selected }]),
|
|
22
22
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $options.selectWidget($props.widget), ["stop"]))
|
|
23
23
|
}, [
|
|
24
|
+
createTextVNode(toDisplayString(_ctx.lineHeight) + " ", 1),
|
|
24
25
|
createVNode(_component_s_table, {
|
|
25
26
|
class: normalizeClass(["tpf-surely-table", [_ctx.customClass]]),
|
|
26
27
|
ref: "dataTable2",
|
|
@@ -38,7 +39,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
38
39
|
rowClassName: _ctx.rowClassName,
|
|
39
40
|
onChange: _ctx.handleTablePageChange,
|
|
40
41
|
onResizeColumn: _ctx.handleResizeColumn,
|
|
41
|
-
loading: _ctx.loading
|
|
42
|
+
loading: _ctx.loading,
|
|
43
|
+
"row-height": _ctx.lineHeight
|
|
42
44
|
}, {
|
|
43
45
|
emptyText: withCtx(() => [
|
|
44
46
|
createVNode(_component_a_empty)
|
|
@@ -51,13 +53,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
51
53
|
}, null, 8, ["bodyCell", "scope"])) : createCommentVNode("", true)
|
|
52
54
|
]),
|
|
53
55
|
_: 1
|
|
54
|
-
}, 8, ["columns", "class", "size", "dataSource", "rowKey", "scroll", "bordered", "style", "row-class-name", "rowSelection", "pagination", "customRow", "rowClassName", "onChange", "onResizeColumn", "loading"])
|
|
56
|
+
}, 8, ["columns", "class", "size", "dataSource", "rowKey", "scroll", "bordered", "style", "row-class-name", "rowSelection", "pagination", "customRow", "rowClassName", "onChange", "onResizeColumn", "loading", "row-height"])
|
|
55
57
|
], 2))
|
|
56
58
|
]),
|
|
57
59
|
_: 1
|
|
58
60
|
}, 8, ["designer", "widget", "parent-widget", "parent-list", "index-of-parent-list", "style"]);
|
|
59
61
|
}
|
|
60
|
-
const dataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
62
|
+
const dataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-db8cc0e4"]]);
|
|
61
63
|
export {
|
|
62
64
|
dataTableWidget as default
|
|
63
65
|
};
|
package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-widget.vue.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/data-table-widget.vue"],"sourcesContent":["<template>\n <container-wrapper\n :designer=\"designer\"\n :widget=\"widget\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :style=\"{ display: 'flex', height: parseFloat(tableHeight || 0) + 'px' }\"\n >\n <div\n :key=\"widget.id\"\n class=\"collapse-container data-table-container\"\n :class=\"{ selected: selected }\"\n @click.stop=\"selectWidget(widget)\"\n >\n <s-table\n class=\"tpf-surely-table\"\n ref=\"dataTable2\"\n :columns=\"columns.columns\"\n :class=\"[customClass]\"\n :size=\"widgetSize\"\n :dataSource=\"data\"\n :rowKey=\"record => record[widget.options.rowKey]\"\n :scroll=\"{ y: parseFloat(tableHeight || 0), x: 300 }\"\n :bordered=\"widget.options.border\"\n :style=\"{ width: widget.options.tableWidth }\"\n :row-class-name=\"rowClassName\"\n :rowSelection=\"handleRowSelection()\"\n :pagination=\"fmtPagination\"\n :customRow=\"handleCustomRow\"\n :rowClassName=\"rowClassName\"\n @change=\"handleTablePageChange\"\n @resizeColumn=\"handleResizeColumn\"\n :loading=\"loading\"\n >\n <template #emptyText>\n <a-empty />\n </template>\n <template #bodyCell=\"scope\">\n <template v-if=\"isShowBodyCell(scope.column.dataIndex)\">\n <RenderBodyCell :bodyCell=\"columns.bodyCell\" :scope=\"scope\" />\n </template>\n </template>\n </s-table>\n </div>\n </container-wrapper>\n</template>\n\n<script lang=\"jsx\">\n import ContainerWrapper from '@/components/form-designer/form-widget/container-widget/container-wrapper';\n import emitter from '@/utils/emitter';\n import i18n from '@/utils/i18n';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import containerMixin from '@/components/form-designer/form-widget/container-widget/containerMixin';\n import refMixinDesign from '@/components/form-designer/refMixinDesign';\n import useDataTableMixin from '@/mixins/useDataTableMixin';\n export default {\n name: 'DataTableWidget',\n componentName: 'DataTableWidget',\n mixins: [i18n, containerMixin, refMixinDesign, emitter, useDataTableMixin],\n inject: ['refList'],\n components: {\n ContainerWrapper,\n ...FieldComponents\n },\n data() {\n return {\n // selectAllFlag: false\n };\n },\n props: {\n widget: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n subFormRowIndex: {\n /* 子表单组件行索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormColIndex: {\n /* 子表单组件列索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormRowId: {\n /* 子表单组件行Id,唯一id且不可变 */ type: String,\n default: ''\n }\n },\n created() {\n this.initRefList();\n },\n mounted() {\n this.loadDataTableDataSource();\n },\n beforeUnmount() {\n //\n },\n computed: {\n data() {\n return this.widget.options.dataSource;\n },\n selected() {\n return this.widget.id === this.designer.selectedId;\n }\n },\n methods: {\n selectWidget(widget) {\n this.designer.setSelected(widget);\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .collapse-container {\n display: flex;\n margin: 2px;\n height: 100%;\n width: 100%;\n flex: 1 0 0;\n\n .form-widget-list {\n min-height: 28px;\n :deep(.tpf-surely-table) {\n min-height: 280px;\n }\n }\n }\n\n .collapse-container.selected {\n outline: 2px solid $--color-primary !important;\n }\n\n :deep(.ant-table) .table-striped td {\n background-color: #fafafa;\n }\n</style>\n"],"names":["_createBlock","_normalizeStyle","_createElementBlock","_normalizeClass","_withModifiers","_createVNode","_withCtx"],"mappings":";;;;;;;;;sBACIA,
|
|
1
|
+
{"version":3,"file":"data-table-widget.vue.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/data-table-widget.vue"],"sourcesContent":["<template>\n <container-wrapper\n :designer=\"designer\"\n :widget=\"widget\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :style=\"{ display: 'flex', height: parseFloat(tableHeight || 0) + 'px' }\"\n >\n <div\n :key=\"widget.id\"\n class=\"collapse-container data-table-container\"\n :class=\"{ selected: selected }\"\n @click.stop=\"selectWidget(widget)\"\n >\n {{ lineHeight }}\n <s-table\n class=\"tpf-surely-table\"\n ref=\"dataTable2\"\n :columns=\"columns.columns\"\n :class=\"[customClass]\"\n :size=\"widgetSize\"\n :dataSource=\"data\"\n :rowKey=\"record => record[widget.options.rowKey]\"\n :scroll=\"{ y: parseFloat(tableHeight || 0), x: 300 }\"\n :bordered=\"widget.options.border\"\n :style=\"{ width: widget.options.tableWidth }\"\n :row-class-name=\"rowClassName\"\n :rowSelection=\"handleRowSelection()\"\n :pagination=\"fmtPagination\"\n :customRow=\"handleCustomRow\"\n :rowClassName=\"rowClassName\"\n @change=\"handleTablePageChange\"\n @resizeColumn=\"handleResizeColumn\"\n :loading=\"loading\"\n :row-height=\"lineHeight\"\n >\n <template #emptyText>\n <a-empty />\n </template>\n <template #bodyCell=\"scope\">\n <template v-if=\"isShowBodyCell(scope.column.dataIndex)\">\n <RenderBodyCell :bodyCell=\"columns.bodyCell\" :scope=\"scope\" />\n </template>\n </template>\n </s-table>\n </div>\n </container-wrapper>\n</template>\n\n<script lang=\"jsx\">\n import ContainerWrapper from '@/components/form-designer/form-widget/container-widget/container-wrapper';\n import emitter from '@/utils/emitter';\n import i18n from '@/utils/i18n';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import containerMixin from '@/components/form-designer/form-widget/container-widget/containerMixin';\n import refMixinDesign from '@/components/form-designer/refMixinDesign';\n import useDataTableMixin from '@/mixins/useDataTableMixin';\n export default {\n name: 'DataTableWidget',\n componentName: 'DataTableWidget',\n mixins: [i18n, containerMixin, refMixinDesign, emitter, useDataTableMixin],\n inject: ['refList'],\n components: {\n ContainerWrapper,\n ...FieldComponents\n },\n data() {\n return {\n // selectAllFlag: false\n };\n },\n props: {\n widget: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n subFormRowIndex: {\n /* 子表单组件行索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormColIndex: {\n /* 子表单组件列索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormRowId: {\n /* 子表单组件行Id,唯一id且不可变 */ type: String,\n default: ''\n }\n },\n created() {\n this.initRefList();\n },\n mounted() {\n this.loadDataTableDataSource();\n },\n beforeUnmount() {\n //\n },\n computed: {\n data() {\n return this.widget.options.dataSource;\n },\n selected() {\n return this.widget.id === this.designer.selectedId;\n }\n },\n methods: {\n selectWidget(widget) {\n this.designer.setSelected(widget);\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .collapse-container {\n display: flex;\n margin: 2px;\n height: 100%;\n width: 100%;\n flex: 1 0 0;\n\n .form-widget-list {\n min-height: 28px;\n :deep(.tpf-surely-table) {\n min-height: 280px;\n }\n }\n }\n\n .collapse-container.selected {\n outline: 2px solid $--color-primary !important;\n }\n\n :deep(.ant-table) .table-striped td {\n background-color: #fafafa;\n }\n</style>\n"],"names":["_createBlock","_normalizeStyle","_createElementBlock","_normalizeClass","_withModifiers","_createTextVNode","_toDisplayString","_createVNode","_withCtx"],"mappings":";;;;;;;;;sBACIA,YA8CoB,8BAAA;AAAA,IA7Cf,UAAU,OAAQ;AAAA,IAClB,QAAQ,OAAM;AAAA,IACd,iBAAe,OAAY;AAAA,IAC3B,eAAa,OAAU;AAAA,IACvB,wBAAsB,OAAiB;AAAA,IACvC,OAAKC,eAAA,EAAA,SAAA,QAAA,QAA6B,WAAW,KAAW,eAAA,CAAA,IAAA,KAAA,CAAA;AAAA;qBAEzD,MAqCM;AAAA,oBArCNC,mBAqCM,OAAA;AAAA,QApCD,KAAK,OAAM,OAAC;AAAA,QACb,OAAKC,eAAA,CAAC,2CAAyC,EAAA,UAC3B,SAAQ,SAAA,CAAA,CAAA;AAAA,QAC3B,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAC,cAAA,YAAO,SAAY,aAAC,OAAM,MAAA,GAAA,CAAA,MAAA,CAAA;AAAA;QAE7BC,gBAAAC,gBAAA,KAAA,UAAU,IAAG,KAChB,CAAA;AAAA,QAAAC,YA6BU,oBAAA;AAAA,UA5BN,OAAKJ,eAAA,CAAC,oBAAkB,CAGf,KAAW,WAAA,CAAA,CAAA;AAAA,UAFpB,KAAI;AAAA,UACH,SAAS,KAAO,QAAC;AAAA,UAEjB,MAAM,KAAU;AAAA,UAChB,YAAY,SAAI;AAAA,UAChB,QAAQ,YAAU,OAAO,OAAM,OAAC,QAAQ,MAAM;AAAA,UAC9C,QAAM,EAAA,GAAO,WAAW,KAAW,eAAA,CAAA,GAAA,GAAA,IAAA;AAAA,UACnC,UAAU,OAAA,OAAO,QAAQ;AAAA,UACzB,OAAgBF,eAAA,EAAA,OAAA,OAAA,OAAO,QAAQ,YAAU;AAAA,UACzC,kBAAgB,KAAY;AAAA,UAC5B,cAAc,KAAkB,mBAAA;AAAA,UAChC,YAAY,KAAa;AAAA,UACzB,WAAW,KAAe;AAAA,UAC1B,cAAc,KAAY;AAAA,UAC1B,UAAQ,KAAqB;AAAA,UAC7B,gBAAc,KAAkB;AAAA,UAChC,SAAS,KAAO;AAAA,UAChB,cAAY,KAAU;AAAA;UAEZ,mBACP,MAAW;AAAA,YAAXM,YAAW,kBAAA;AAAA;UAEJ,UAAQC,QACf,CAEW,UAHW;AAAA,YACN,KAAA,eAAe,MAAM,OAAO,SAAS,kBACjDR,YAA8D,2BAAA;AAAA;cAA7C,UAAU,KAAO,QAAC;AAAA,cAAW;AAAA;;;;;;;;;;"}
|
package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-widget.vue2.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/data-table-widget.vue"],"sourcesContent":["<template>\n <container-wrapper\n :designer=\"designer\"\n :widget=\"widget\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :style=\"{ display: 'flex', height: parseFloat(tableHeight || 0) + 'px' }\"\n >\n <div\n :key=\"widget.id\"\n class=\"collapse-container data-table-container\"\n :class=\"{ selected: selected }\"\n @click.stop=\"selectWidget(widget)\"\n >\n <s-table\n class=\"tpf-surely-table\"\n ref=\"dataTable2\"\n :columns=\"columns.columns\"\n :class=\"[customClass]\"\n :size=\"widgetSize\"\n :dataSource=\"data\"\n :rowKey=\"record => record[widget.options.rowKey]\"\n :scroll=\"{ y: parseFloat(tableHeight || 0), x: 300 }\"\n :bordered=\"widget.options.border\"\n :style=\"{ width: widget.options.tableWidth }\"\n :row-class-name=\"rowClassName\"\n :rowSelection=\"handleRowSelection()\"\n :pagination=\"fmtPagination\"\n :customRow=\"handleCustomRow\"\n :rowClassName=\"rowClassName\"\n @change=\"handleTablePageChange\"\n @resizeColumn=\"handleResizeColumn\"\n :loading=\"loading\"\n >\n <template #emptyText>\n <a-empty />\n </template>\n <template #bodyCell=\"scope\">\n <template v-if=\"isShowBodyCell(scope.column.dataIndex)\">\n <RenderBodyCell :bodyCell=\"columns.bodyCell\" :scope=\"scope\" />\n </template>\n </template>\n </s-table>\n </div>\n </container-wrapper>\n</template>\n\n<script lang=\"jsx\">\n import ContainerWrapper from '@/components/form-designer/form-widget/container-widget/container-wrapper';\n import emitter from '@/utils/emitter';\n import i18n from '@/utils/i18n';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import containerMixin from '@/components/form-designer/form-widget/container-widget/containerMixin';\n import refMixinDesign from '@/components/form-designer/refMixinDesign';\n import useDataTableMixin from '@/mixins/useDataTableMixin';\n export default {\n name: 'DataTableWidget',\n componentName: 'DataTableWidget',\n mixins: [i18n, containerMixin, refMixinDesign, emitter, useDataTableMixin],\n inject: ['refList'],\n components: {\n ContainerWrapper,\n ...FieldComponents\n },\n data() {\n return {\n // selectAllFlag: false\n };\n },\n props: {\n widget: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n subFormRowIndex: {\n /* 子表单组件行索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormColIndex: {\n /* 子表单组件列索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormRowId: {\n /* 子表单组件行Id,唯一id且不可变 */ type: String,\n default: ''\n }\n },\n created() {\n this.initRefList();\n },\n mounted() {\n this.loadDataTableDataSource();\n },\n beforeUnmount() {\n //\n },\n computed: {\n data() {\n return this.widget.options.dataSource;\n },\n selected() {\n return this.widget.id === this.designer.selectedId;\n }\n },\n methods: {\n selectWidget(widget) {\n this.designer.setSelected(widget);\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .collapse-container {\n display: flex;\n margin: 2px;\n height: 100%;\n width: 100%;\n flex: 1 0 0;\n\n .form-widget-list {\n min-height: 28px;\n :deep(.tpf-surely-table) {\n min-height: 280px;\n }\n }\n }\n\n .collapse-container.selected {\n outline: 2px solid $--color-primary !important;\n }\n\n :deep(.ant-table) .table-striped td {\n background-color: #fafafa;\n }\n</style>\n"],"names":["name","componentName","mixins","i18n","containerMixin","refMixinDesign","emitter","useDataTableMixin","inject","components","ContainerWrapper","FieldComponents","data","props","widget","Object","parentWidget","parentList","Array","indexOfParentList","Number","designer","subFormRowIndex","type","default","subFormColIndex","subFormRowId","String","created","initRefList","mounted","loadDataTableDataSource","beforeUnmount","computed","options","dataSource","selected","id","selectedId","methods","selectWidget","setSelected"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"data-table-widget.vue2.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/data-table-widget.vue"],"sourcesContent":["<template>\n <container-wrapper\n :designer=\"designer\"\n :widget=\"widget\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :style=\"{ display: 'flex', height: parseFloat(tableHeight || 0) + 'px' }\"\n >\n <div\n :key=\"widget.id\"\n class=\"collapse-container data-table-container\"\n :class=\"{ selected: selected }\"\n @click.stop=\"selectWidget(widget)\"\n >\n {{ lineHeight }}\n <s-table\n class=\"tpf-surely-table\"\n ref=\"dataTable2\"\n :columns=\"columns.columns\"\n :class=\"[customClass]\"\n :size=\"widgetSize\"\n :dataSource=\"data\"\n :rowKey=\"record => record[widget.options.rowKey]\"\n :scroll=\"{ y: parseFloat(tableHeight || 0), x: 300 }\"\n :bordered=\"widget.options.border\"\n :style=\"{ width: widget.options.tableWidth }\"\n :row-class-name=\"rowClassName\"\n :rowSelection=\"handleRowSelection()\"\n :pagination=\"fmtPagination\"\n :customRow=\"handleCustomRow\"\n :rowClassName=\"rowClassName\"\n @change=\"handleTablePageChange\"\n @resizeColumn=\"handleResizeColumn\"\n :loading=\"loading\"\n :row-height=\"lineHeight\"\n >\n <template #emptyText>\n <a-empty />\n </template>\n <template #bodyCell=\"scope\">\n <template v-if=\"isShowBodyCell(scope.column.dataIndex)\">\n <RenderBodyCell :bodyCell=\"columns.bodyCell\" :scope=\"scope\" />\n </template>\n </template>\n </s-table>\n </div>\n </container-wrapper>\n</template>\n\n<script lang=\"jsx\">\n import ContainerWrapper from '@/components/form-designer/form-widget/container-widget/container-wrapper';\n import emitter from '@/utils/emitter';\n import i18n from '@/utils/i18n';\n import FieldComponents from '@/components/form-designer/form-widget/field-widget/index';\n import containerMixin from '@/components/form-designer/form-widget/container-widget/containerMixin';\n import refMixinDesign from '@/components/form-designer/refMixinDesign';\n import useDataTableMixin from '@/mixins/useDataTableMixin';\n export default {\n name: 'DataTableWidget',\n componentName: 'DataTableWidget',\n mixins: [i18n, containerMixin, refMixinDesign, emitter, useDataTableMixin],\n inject: ['refList'],\n components: {\n ContainerWrapper,\n ...FieldComponents\n },\n data() {\n return {\n // selectAllFlag: false\n };\n },\n props: {\n widget: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n subFormRowIndex: {\n /* 子表单组件行索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormColIndex: {\n /* 子表单组件列索引,从0开始计数 */ type: Number,\n default: -1\n },\n subFormRowId: {\n /* 子表单组件行Id,唯一id且不可变 */ type: String,\n default: ''\n }\n },\n created() {\n this.initRefList();\n },\n mounted() {\n this.loadDataTableDataSource();\n },\n beforeUnmount() {\n //\n },\n computed: {\n data() {\n return this.widget.options.dataSource;\n },\n selected() {\n return this.widget.id === this.designer.selectedId;\n }\n },\n methods: {\n selectWidget(widget) {\n this.designer.setSelected(widget);\n }\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .collapse-container {\n display: flex;\n margin: 2px;\n height: 100%;\n width: 100%;\n flex: 1 0 0;\n\n .form-widget-list {\n min-height: 28px;\n :deep(.tpf-surely-table) {\n min-height: 280px;\n }\n }\n }\n\n .collapse-container.selected {\n outline: 2px solid $--color-primary !important;\n }\n\n :deep(.ant-table) .table-striped td {\n background-color: #fafafa;\n }\n</style>\n"],"names":["name","componentName","mixins","i18n","containerMixin","refMixinDesign","emitter","useDataTableMixin","inject","components","ContainerWrapper","FieldComponents","data","props","widget","Object","parentWidget","parentList","Array","indexOfParentList","Number","designer","subFormRowIndex","type","default","subFormColIndex","subFormRowId","String","created","initRefList","mounted","loadDataTableDataSource","beforeUnmount","computed","options","dataSource","selected","id","selectedId","methods","selectWidget","setSelected"],"mappings":";;;;;;;AA0DI,MAAe,YAAA;AAAA,EACXA,MAAM;AAAA,EACNC,eAAe;AAAA,EACfC,QAAQ,CAACC,MAAMC,gBAAgBC,gBAAgBC,SAASC,iBAAiB;AAAA,EACzEC,QAAQ,CAAC,SAAS;AAAA,EAClBC,YAAY;AAAA,IACRC;AAAAA,IACA,GAAGC;AAAAA,EACN;AAAA,EACDC,OAAO;AACH,WAAO;AAAA;AAAA,IAEN;AAAA,EACJ;AAAA,EACDC,OAAO;AAAA,IACHC,QAAQC;AAAAA,IACRC,cAAcD;AAAAA,IACdE,YAAYC;AAAAA,IACZC,mBAAmBC;AAAAA,IACnBC,UAAUN;AAAAA,IAEVO,iBAAiB;AAAA;AAAA,MACSC,MAAMH;AAAAA,MAC5BI,SAAS;AAAA,IACZ;AAAA,IACDC,iBAAiB;AAAA;AAAA,MACSF,MAAMH;AAAAA,MAC5BI,SAAS;AAAA,IACZ;AAAA,IACDE,cAAc;AAAA;AAAA,MACcH,MAAMI;AAAAA,MAC9BH,SAAS;AAAA,IACb;AAAA,EACH;AAAA,EACDI,UAAU;AACN,SAAKC,YAAa;AAAA,EACrB;AAAA,EACDC,UAAU;AACN,SAAKC,wBAAyB;AAAA,EACjC;AAAA,EACDC,gBAAgB;AAAA,EAEf;AAAA,EACDC,UAAU;AAAA,IACNrB,OAAO;AACH,aAAO,KAAKE,OAAOoB,QAAQC;AAAAA,IAC9B;AAAA,IACDC,WAAW;AACP,aAAO,KAAKtB,OAAOuB,OAAO,KAAKhB,SAASiB;AAAAA,IAC5C;AAAA,EACH;AAAA,EACDC,SAAS;AAAA,IACLC,aAAa1B,QAAQ;AACjB,WAAKO,SAASoB,YAAY3B,MAAM;AAAA,IACpC;AAAA,EACJ;AACJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import i18n from "../../../../../utils/i18n.js";
|
|
2
2
|
import CodeModalEditor from "../../../../code-editor/code-modal-editor.vue.js";
|
|
3
|
-
import { resolveComponent, createElementBlock, openBlock, Fragment, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, createBlock, createCommentVNode } from "vue";
|
|
3
|
+
import { resolveComponent, createElementBlock, openBlock, Fragment, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, createBlock, createCommentVNode, normalizeClass } from "vue";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
6
6
|
const _sfc_main = {
|
|
@@ -125,7 +125,7 @@ const _sfc_main = {
|
|
|
125
125
|
this.optionModel.tableColumns.push(newRow);
|
|
126
126
|
this.designer.emitHistoryChange();
|
|
127
127
|
},
|
|
128
|
-
handleDelete(index
|
|
128
|
+
handleDelete(index) {
|
|
129
129
|
if (this.optionModel.tableColumns.length === 1) {
|
|
130
130
|
this.$message.warning(
|
|
131
131
|
this.i18nt("designer.setting.onlyOneColumnCannotBeDeleted")
|
|
@@ -178,7 +178,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
178
178
|
createVNode(_component_a_modal, {
|
|
179
179
|
title: _ctx.i18nt("designer.setting.tableColEdit"),
|
|
180
180
|
visible: $data.dialogVisible,
|
|
181
|
-
"onUpdate:visible": _cache[
|
|
181
|
+
"onUpdate:visible": _cache[2] || (_cache[2] = ($event) => $data.dialogVisible = $event),
|
|
182
182
|
"show-close": true,
|
|
183
183
|
"close-on-click-modal": false,
|
|
184
184
|
"close-on-press-escape": false,
|
|
@@ -191,7 +191,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
191
191
|
createElementVNode("div", _hoisted_3, [
|
|
192
192
|
createVNode(_component_a_button, {
|
|
193
193
|
size: "default",
|
|
194
|
-
onClick: _cache[
|
|
194
|
+
onClick: _cache[1] || (_cache[1] = ($event) => $data.dialogVisible = false)
|
|
195
195
|
}, {
|
|
196
196
|
default: withCtx(() => [
|
|
197
197
|
createTextVNode(toDisplayString(_ctx.i18nt("designer.hint.cancel")), 1)
|
|
@@ -227,7 +227,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
227
227
|
"row-key": (record) => record.columnId,
|
|
228
228
|
columns: $data.columns
|
|
229
229
|
}, {
|
|
230
|
-
bodyCell: withCtx(({ column, record, recordIndexs }) => [
|
|
230
|
+
bodyCell: withCtx(({ column, record, index, recordIndexs }) => [
|
|
231
231
|
column.dataIndex === "dataIndex" ? (openBlock(), createBlock(_component_a_input, {
|
|
232
232
|
key: 0,
|
|
233
233
|
value: $props.optionModel.tableColumns[recordIndexs[0]].dataIndex,
|
|
@@ -296,6 +296,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
296
296
|
column.dataIndex === "customRender" ? (openBlock(), createBlock(_component_a_button, {
|
|
297
297
|
key: 9,
|
|
298
298
|
onClick: ($event) => $options.showRenderDialog(recordIndexs[0], record, _ctx.dataIndex),
|
|
299
|
+
class: normalizeClass([{ "button-text-highlight": !!record.customRender }]),
|
|
299
300
|
size: "small",
|
|
300
301
|
shape: "round"
|
|
301
302
|
}, {
|
|
@@ -303,24 +304,23 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
303
304
|
createTextVNode(" edit ")
|
|
304
305
|
]),
|
|
305
306
|
_: 2
|
|
306
|
-
}, 1032, ["onClick"])) : createCommentVNode("", true),
|
|
307
|
+
}, 1032, ["onClick", "class"])) : createCommentVNode("", true),
|
|
307
308
|
column.dataIndex === "action" ? (openBlock(), createBlock(_component_a_space, { key: 10 }, {
|
|
308
309
|
default: withCtx(() => [
|
|
309
|
-
|
|
310
|
-
key: 0,
|
|
310
|
+
createVNode(_component_a_button, {
|
|
311
311
|
title: _ctx.i18nt("designer.setting.deleteTableColumn"),
|
|
312
312
|
size: "small",
|
|
313
|
-
onClick:
|
|
313
|
+
onClick: ($event) => $options.handleDelete(index),
|
|
314
314
|
type: "text"
|
|
315
315
|
}, {
|
|
316
316
|
default: withCtx(() => [
|
|
317
317
|
createTextVNode(" 删除 ")
|
|
318
318
|
]),
|
|
319
|
-
_:
|
|
320
|
-
},
|
|
319
|
+
_: 2
|
|
320
|
+
}, 1032, ["title", "onClick"])
|
|
321
321
|
]),
|
|
322
|
-
_:
|
|
323
|
-
})) : createCommentVNode("", true)
|
|
322
|
+
_: 2
|
|
323
|
+
}, 1024)) : createCommentVNode("", true)
|
|
324
324
|
]),
|
|
325
325
|
_: 1
|
|
326
326
|
}, 8, ["dataSource", "row-key", "columns"]),
|
|
@@ -329,7 +329,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
329
329
|
title: _ctx.i18nt("designer.setting.addTableColumn"),
|
|
330
330
|
type: "primary",
|
|
331
331
|
size: "medium",
|
|
332
|
-
onClick: _cache[
|
|
332
|
+
onClick: _cache[0] || (_cache[0] = ($event) => $options.addCol())
|
|
333
333
|
}, {
|
|
334
334
|
default: withCtx(() => [
|
|
335
335
|
createTextVNode(toDisplayString(_ctx.i18nt("designer.setting.addTableColumn")), 1)
|
|
@@ -349,7 +349,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
349
349
|
}, null, 8, ["onSave", "title", "event-header"])
|
|
350
350
|
], 64);
|
|
351
351
|
}
|
|
352
|
-
const dataTableTableColumnsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
352
|
+
const dataTableTableColumnsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e8537175"]]);
|
|
353
353
|
export {
|
|
354
354
|
dataTableTableColumnsEditor as default
|
|
355
355
|
};
|