@kp-ui/lowcode 1.0.97 → 1.0.98

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kp-ui/lowcode",
3
- "version": "1.0.97",
3
+ "version": "1.0.98",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,8 +23,7 @@
23
23
  "mitt": "^3.0.0",
24
24
  "query-string": "^9.1.1",
25
25
  "quill": "^2.0.3",
26
- "sortablejs": "1.14.0",
27
- "vue": "3.5.17"
26
+ "sortablejs": "1.14.0"
28
27
  },
29
28
  "main": "index.js",
30
29
  "types": "types/install.d.ts",
@@ -2,7 +2,7 @@ import m from "./form-item-wrapper.vue.js";
2
2
  import s from "../../../../utils/emitter.js";
3
3
  import a from "../../../../utils/i18n.js";
4
4
  import u from "./fieldMixin.js";
5
- import f from "../../../code-editor/index.vue.js";
5
+ import { CodeEditor as f } from "tmgc2-share";
6
6
  import { resolveComponent as n, createBlock as p, createCommentVNode as c, openBlock as b, withCtx as g, createVNode as h } from "vue";
7
7
  /* empty css */
8
8
  import w from "../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -64,7 +64,7 @@ const x = {
64
64
  methods: {}
65
65
  };
66
66
  function C(t, d, e, F, o, _) {
67
- const r = n("code-editor"), i = n("form-item-wrapper");
67
+ const r = n("CodeEditor"), i = n("form-item-wrapper");
68
68
  return t.handleHidden() ? c("", !0) : (b(), p(i, {
69
69
  key: 0,
70
70
  designer: e.designer,
@@ -92,7 +92,7 @@ function C(t, d, e, F, o, _) {
92
92
  _: 1
93
93
  }, 8, ["designer", "field", "rules", "design-state", "parent-widget", "parent-list", "index-of-parent-list", "sub-form-row-index", "sub-form-col-index", "sub-form-row-id"]));
94
94
  }
95
- const N = /* @__PURE__ */ w(x, [["render", C], ["__scopeId", "data-v-b4da61f6"]]);
95
+ const N = /* @__PURE__ */ w(x, [["render", C], ["__scopeId", "data-v-0c845dd6"]]);
96
96
  export {
97
97
  N as default
98
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"code-editor-widget.vue.js","sources":["../../../../../../src/components/form-designer/form-widget/field-widget/code-editor-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper\n :designer=\"designer\"\n :field=\"field\"\n :rules=\"rules\"\n :design-state=\"designState\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :sub-form-row-index=\"subFormRowIndex\"\n :sub-form-col-index=\"subFormColIndex\"\n :sub-form-row-id=\"subFormRowId\"\n v-if=\"!handleHidden()\"\n >\n <code-editor\n :mode=\"field.options.mode\"\n :readonly=\"field.options.readonly || isReadMode\"\n v-model=\"fieldModel\"\n ref=\"fieldEditor\"\n @blur=\"handleBlurCustomEvent\"\n @change=\"handleChangeEvent\"\n />\n </form-item-wrapper>\n</template>\n\n<script>\n import FormItemWrapper from './form-item-wrapper';\n import emitter from '@/utils/emitter';\n import i18n, { translate } from '@/utils/i18n';\n import fieldMixin from '@/components/form-designer/form-widget/field-widget/fieldMixin';\n import CodeEditor from '@/components/code-editor/index.vue';\n\n export default {\n name: 'code-editor-widget',\n componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件\n mixins: [emitter, fieldMixin, i18n],\n props: {\n field: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n designState: {\n type: Boolean,\n default: false\n },\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 components: {\n FormItemWrapper,\n CodeEditor\n },\n data() {\n return {\n oldFieldValue: null, //field组件change之前的值\n fieldModel: null,\n rules: []\n };\n },\n computed: {},\n beforeCreate() {\n /* 这里不能访问方法和属性!! */\n },\n\n created() {\n /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop\n 需要在父组件created中初始化!! */\n this.registerToRefList();\n this.initFieldModel();\n this.initEventHandler();\n this.buildFieldRules();\n\n this.handleOnCreated();\n },\n\n mounted() {\n this.handleOnMounted();\n },\n\n beforeUnmount() {\n this.unregisterFromRefList();\n },\n\n methods: {}\n };\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_sfc_main","emitter","fieldMixin","i18n","FormItemWrapper","CodeEditor","_ctx","_createBlock","_component_form_item_wrapper","$props","$data","_createVNode","_component_code_editor","$event"],"mappings":";;;;;;;;AAgCI,MAAKA,IAAU;AAAA,EACX,MAAM;AAAA,EACN,eAAe;AAAA;AAAA,EACf,QAAQ,CAACC,GAASC,GAAYC,CAAI;AAAA,EAClC,OAAO;AAAA,IACH,OAAO;AAAA,IACP,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,UAAU;AAAA,IAEV,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;IAGb,iBAAiB;AAAA;AAAA,MACS,MAAM;AAAA,MAC5B,SAAS;AAAA;IAEb,iBAAiB;AAAA;AAAA,MACS,MAAM;AAAA,MAC5B,SAAS;AAAA;IAEb,cAAc;AAAA;AAAA,MACc,MAAM;AAAA,MAC9B,SAAS;AAAA,IACb;AAAA;EAEJ,YAAY;AAAA,IACR,iBAAAC;AAAA,IACA,YAAAC;AAAA;EAEJ,OAAO;AACH,WAAO;AAAA,MACH,eAAe;AAAA;AAAA,MACf,YAAY;AAAA,MACZ,OAAO,CAAA;AAAA;EAEf;AAAA,EACA,UAAU,CAAA;AAAA,EACV,eAAe;AAAA,EAEf;AAAA,EAEA,UAAU;AAGN,SAAK,kBAAiB,GACtB,KAAK,eAAc,GACnB,KAAK,iBAAgB,GACrB,KAAK,gBAAe,GAEpB,KAAK,gBAAe;AAAA,EACxB;AAAA,EAEA,UAAU;AACN,SAAK,gBAAe;AAAA,EACxB;AAAA,EAEA,gBAAgB;AACZ,SAAK,sBAAqB;AAAA,EAC9B;AAAA,EAEA,SAAS,CAAA;;;;SApFFC,EAAA,aAAY,sBAXvBC,EAqBoBC,GAAA;AAAA;IApBf,UAAUC,EAAA;AAAA,IACV,OAAOA,EAAA;AAAA,IACP,OAAOC,EAAA;AAAA,IACP,gBAAcD,EAAA;AAAA,IACd,iBAAeA,EAAA;AAAA,IACf,eAAaA,EAAA;AAAA,IACb,wBAAsBA,EAAA;AAAA,IACtB,sBAAoBA,EAAA;AAAA,IACpB,sBAAoBA,EAAA;AAAA,IACpB,mBAAiBA,EAAA;AAAA;eAGlB,MAOE;AAAA,MAPFE,EAOEC,GAAA;AAAA,QANG,MAAMH,EAAA,MAAM,QAAQ;AAAA,QACpB,UAAUA,EAAA,MAAM,QAAQ,YAAYH,EAAA;AAAA,oBAC5BI,EAAA;AAAA,sDAAAA,EAAA,aAAUG;AAAA,QACnB,KAAI;AAAA,QACH,QAAMP,EAAA;AAAA,QACN,UAAQA,EAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"code-editor-widget.vue.js","sources":["../../../../../../src/components/form-designer/form-widget/field-widget/code-editor-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper\n :designer=\"designer\"\n :field=\"field\"\n :rules=\"rules\"\n :design-state=\"designState\"\n :parent-widget=\"parentWidget\"\n :parent-list=\"parentList\"\n :index-of-parent-list=\"indexOfParentList\"\n :sub-form-row-index=\"subFormRowIndex\"\n :sub-form-col-index=\"subFormColIndex\"\n :sub-form-row-id=\"subFormRowId\"\n v-if=\"!handleHidden()\"\n >\n <CodeEditor\n :mode=\"field.options.mode\"\n :readonly=\"field.options.readonly || isReadMode\"\n v-model=\"fieldModel\"\n ref=\"fieldEditor\"\n @blur=\"handleBlurCustomEvent\"\n @change=\"handleChangeEvent\"\n />\n </form-item-wrapper>\n</template>\n\n<script>\n import FormItemWrapper from './form-item-wrapper';\n import emitter from '@/utils/emitter';\n import i18n, { translate } from '@/utils/i18n';\n import fieldMixin from '@/components/form-designer/form-widget/field-widget/fieldMixin';\n // import CodeEditor from '@/components/code-editor/index.vue';\n import { CodeEditor } from 'tmgc2-share';\n\n export default {\n name: 'code-editor-widget',\n componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件\n mixins: [emitter, fieldMixin, i18n],\n props: {\n field: Object,\n parentWidget: Object,\n parentList: Array,\n indexOfParentList: Number,\n designer: Object,\n\n designState: {\n type: Boolean,\n default: false\n },\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 components: {\n FormItemWrapper,\n CodeEditor\n },\n data() {\n return {\n oldFieldValue: null, //field组件change之前的值\n fieldModel: null,\n rules: []\n };\n },\n computed: {},\n beforeCreate() {\n /* 这里不能访问方法和属性!! */\n },\n\n created() {\n /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop\n 需要在父组件created中初始化!! */\n this.registerToRefList();\n this.initFieldModel();\n this.initEventHandler();\n this.buildFieldRules();\n\n this.handleOnCreated();\n },\n\n mounted() {\n this.handleOnMounted();\n },\n\n beforeUnmount() {\n this.unregisterFromRefList();\n },\n\n methods: {}\n };\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_sfc_main","emitter","fieldMixin","i18n","FormItemWrapper","CodeEditor","_ctx","_createBlock","_component_form_item_wrapper","$props","$data","_createVNode","_component_CodeEditor","$event"],"mappings":";;;;;;;;AAiCI,MAAKA,IAAU;AAAA,EACX,MAAM;AAAA,EACN,eAAe;AAAA;AAAA,EACf,QAAQ,CAACC,GAASC,GAAYC,CAAI;AAAA,EAClC,OAAO;AAAA,IACH,OAAO;AAAA,IACP,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,UAAU;AAAA,IAEV,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;IAGb,iBAAiB;AAAA;AAAA,MACS,MAAM;AAAA,MAC5B,SAAS;AAAA;IAEb,iBAAiB;AAAA;AAAA,MACS,MAAM;AAAA,MAC5B,SAAS;AAAA;IAEb,cAAc;AAAA;AAAA,MACc,MAAM;AAAA,MAC9B,SAAS;AAAA,IACb;AAAA;EAEJ,YAAY;AAAA,IACR,iBAAAC;AAAA,IACA,YAAAC;AAAA;EAEJ,OAAO;AACH,WAAO;AAAA,MACH,eAAe;AAAA;AAAA,MACf,YAAY;AAAA,MACZ,OAAO,CAAA;AAAA;EAEf;AAAA,EACA,UAAU,CAAA;AAAA,EACV,eAAe;AAAA,EAEf;AAAA,EAEA,UAAU;AAGN,SAAK,kBAAiB,GACtB,KAAK,eAAc,GACnB,KAAK,iBAAgB,GACrB,KAAK,gBAAe,GAEpB,KAAK,gBAAe;AAAA,EACxB;AAAA,EAEA,UAAU;AACN,SAAK,gBAAe;AAAA,EACxB;AAAA,EAEA,gBAAgB;AACZ,SAAK,sBAAqB;AAAA,EAC9B;AAAA,EAEA,SAAS,CAAA;;;;SArFFC,EAAA,aAAY,sBAXvBC,EAqBoBC,GAAA;AAAA;IApBf,UAAUC,EAAA;AAAA,IACV,OAAOA,EAAA;AAAA,IACP,OAAOC,EAAA;AAAA,IACP,gBAAcD,EAAA;AAAA,IACd,iBAAeA,EAAA;AAAA,IACf,eAAaA,EAAA;AAAA,IACb,wBAAsBA,EAAA;AAAA,IACtB,sBAAoBA,EAAA;AAAA,IACpB,sBAAoBA,EAAA;AAAA,IACpB,mBAAiBA,EAAA;AAAA;eAGlB,MAOE;AAAA,MAPFE,EAOEC,GAAA;AAAA,QANG,MAAMH,EAAA,MAAM,QAAQ;AAAA,QACpB,UAAUA,EAAA,MAAM,QAAQ,YAAYH,EAAA;AAAA,oBAC5BI,EAAA;AAAA,sDAAAA,EAAA,aAAUG;AAAA,QACnB,KAAI;AAAA,QACH,QAAMP,EAAA;AAAA,QACN,UAAQA,EAAA;AAAA;;;;;;"}
@@ -344,12 +344,11 @@ const g = {
344
344
  }
345
345
  },
346
346
  getValue() {
347
- return console.log("fieldModel", this.fieldModel), this.fieldModel;
347
+ return this.fieldModel;
348
348
  },
349
349
  resetField() {
350
350
  const i = this.field.options.defaultValue;
351
- this.setValue(i), this.$nextTick(() => {
352
- }), (this.field.type === "picture-upload" || this.field.type === "file-upload") && (this.fieldModel.splice(0, this.fieldModel.length), this.handleChangeEvent(this.fieldModel));
351
+ this.setValue(i), (this.field.type === "picture-upload" || this.field.type === "file-upload") && (this.fieldModel.splice(0, this.fieldModel.length), this.handleChangeEvent(this.fieldModel));
353
352
  },
354
353
  setWidgetOption(i, t) {
355
354
  this.field.options.hasOwnProperty(i) && (this.field.options[i] = t);
@@ -1 +1 @@
1
- {"version":3,"file":"fieldMixin.js","sources":["../../../../../../src/components/form-designer/form-widget/field-widget/fieldMixin.js"],"sourcesContent":["import { deepClone, translateOptionItems } from '@/utils/util';\nimport FormValidators from '@/utils/validators';\nimport { fmtHttpParams } from '@/utils/request/fmtHttpParams';\nimport { isArray, eq } from 'lodash-es';\n\nexport default {\n inject: [\n 'refList',\n 'getFormConfig',\n 'globalOptionData',\n 'globalModel',\n 'getOptionData',\n 'getGlobalDsv',\n 'getReadMode',\n 'getSubFormFieldFlag',\n 'getSubFormName',\n 'getDSResultCache'\n ],\n data() {\n return {\n fieldReadonlyFlag: false,\n loading: false\n };\n },\n computed: {\n formConfig() {\n return this.getFormConfig();\n },\n\n subFormName() {\n return !!this.getSubFormName ? this.getSubFormName() : '';\n },\n\n subFormItemFlag() {\n return !!this.getSubFormFieldFlag ? this.getSubFormFieldFlag() : false;\n },\n\n formModel: {\n cache: false,\n get() {\n return this.globalModel.formModel;\n }\n },\n\n isReadMode() {\n //return this.getReadMode() || this.fieldReadonlyFlag\n return !!this.getReadMode() ? true : this.fieldReadonlyFlag;\n },\n\n optionLabel() {\n if (this.fieldModel === null) {\n return '';\n } else {\n let resultContent = '';\n\n const { valueKey, labelKey } = this.field.options;\n this.field.options.optionItems.forEach(oItem => {\n if (\n oItem[valueKey] === this.fieldModel ||\n this.findInArray(this.fieldModel, oItem[valueKey]) !== -1\n ) {\n resultContent =\n resultContent === ''\n ? oItem[labelKey]\n : resultContent + ' ' + oItem[labelKey];\n }\n });\n\n return resultContent;\n }\n }\n },\n\n methods: {\n handleHidden() {\n if (this.designState) {\n return false;\n }\n const { onHidden, hidden } = this.field.options;\n if (hidden) return true;\n if (onHidden) {\n const onHiddenFn = new Function(onHidden);\n return onHiddenFn.call(this);\n }\n return false;\n },\n handleDisabled() {\n if (this.designState) {\n return false;\n }\n const { onDisabled, disabled } = this.field.options;\n if (disabled) return true;\n if (onDisabled) {\n try {\n const disabledFn = new Function(onDisabled);\n return disabledFn.call(this);\n } catch (error) {\n console.log({ error });\n }\n }\n return false;\n },\n findInArray(arrayObject, element) {\n if (!Array.isArray(arrayObject)) {\n return -1;\n }\n\n let foundIdx = -1;\n arrayObject.forEach((aItem, aIdx) => {\n if (aItem === element) {\n foundIdx = aIdx;\n }\n });\n\n return foundIdx;\n },\n\n //--------------------- 组件内部方法 begin ------------------//\n getPropName() {\n if (this.subFormItemFlag && !this.designState) {\n return (\n this.subFormName +\n '.' +\n this.subFormRowIndex +\n '.' +\n this.field.options.name +\n ''\n );\n } else {\n return this.field.options.name;\n }\n },\n\n initFieldModel() {\n if (!this.field.formItemFlag) {\n return;\n }\n if (!!this.subFormItemFlag && !this.designState) {\n //SubForm子表单组件需要特殊处理!!\n const subFormData = this.formModel[this.subFormName];\n if (\n (subFormData === undefined ||\n subFormData[this.subFormRowIndex] === undefined ||\n subFormData[this.subFormRowIndex][this.field.options.name] === undefined) &&\n this.field.options.defaultValue !== undefined\n ) {\n this.fieldModel = this.field.options.defaultValue;\n subFormData[this.subFormRowIndex][this.field.options.name] =\n this.field.options.defaultValue;\n } else if (\n subFormData[this.subFormRowIndex][this.field.options.name] === undefined\n ) {\n this.fieldModel = null;\n subFormData[this.subFormRowIndex][this.field.options.name] = null;\n } else {\n this.fieldModel = subFormData[this.subFormRowIndex][this.field.options.name];\n }\n\n /* 主动触发子表单内field-widget的onChange事件!! */\n setTimeout(() => {\n //延时触发onChange事件, 便于更新计算字段!!\n this.handleOnChangeForSubForm(\n this.fieldModel,\n this.oldFieldValue,\n [],\n subFormData,\n this.subFormRowId\n );\n }, 800);\n this.oldFieldValue = deepClone(this.fieldModel);\n\n this.initFileList(); //处理图片上传、文件上传字段\n\n return;\n }\n\n if (\n this.formModel[this.field.options.name] === undefined &&\n this.field.options.defaultValue !== undefined\n ) {\n this.fieldModel = this.field.options.defaultValue;\n } else if (this.formModel[this.field.options.name] === undefined) {\n //如果formModel为空对象,则初始化字段值为null!!\n this.formModel[this.field.options.name] = null;\n } else {\n this.fieldModel = this.formModel[this.field.options.name];\n }\n this.oldFieldValue = deepClone(this.fieldModel);\n this.initFileList(); //处理图片上传、文件上传字段\n },\n\n initFileList() {\n //初始化上传组件的已上传文件列表\n if (\n (this.field.type !== 'picture-upload' && this.field.type !== 'file-upload') ||\n this.designState === true\n ) {\n return;\n }\n\n if (this.fieldModel) {\n if (typeof this.fieldModel === 'string') {\n this.fieldModel = JSON.parse(this.fieldModel);\n }\n }\n },\n\n initEventHandler() {\n this.on$('setFormData', newFormData => {\n //console.log('formModel of globalModel----------', this.globalModel.formModel)\n if (!this.subFormItemFlag) {\n this.setValue(newFormData[this.field.options.name]);\n }\n });\n\n this.on$('field-value-changed', values => {\n if (!!this.subFormItemFlag) {\n const subFormData = this.formModel[this.subFormName];\n this.handleOnChangeForSubForm(\n values[0],\n values[1],\n subFormData,\n this.subFormRowId\n );\n } else {\n this.handleOnChange(values[0], values[1]);\n }\n });\n\n /* 监听从数据集加载选项事件 */\n this.on$('loadOptionItemsFromDataSet', dsName => {\n this.loadOptionItemsFromDataSet(dsName);\n });\n\n this.on$('reloadOptionItems', widgetNames => {\n if (widgetNames.length === 0 || widgetNames.indexOf(this.field.options.name) > -1) {\n this.initOptionItems(true);\n }\n });\n },\n\n handleOnCreated() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onCreated) {\n const customFunc = new Function(this.field.options.onCreated);\n customFunc.call(this);\n }\n },\n\n handleOnMounted() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onMounted) {\n const mountFunc = new Function(this.field.options.onMounted);\n mountFunc.call(this);\n }\n },\n\n registerToRefList(oldRefName) {\n if (this.refList !== null && !!this.field.options.name) {\n if (this.subFormItemFlag && !this.designState) {\n //处理子表单元素(且非设计状态)\n if (!!oldRefName) {\n delete this.refList[oldRefName + '@row' + this.subFormRowId];\n }\n this.refList[this.field.options.name + '@row' + this.subFormRowId] = this;\n } else {\n if (!!oldRefName) {\n delete this.refList[oldRefName];\n }\n this.refList[this.field.options.name] = this;\n }\n }\n },\n\n unregisterFromRefList() {\n //销毁组件时注销组件ref\n if (this.refList !== null && !!this.field.options.name) {\n const oldRefName = this.field.options.name;\n if (this.subFormItemFlag && !this.designState) {\n //处理子表单元素(且非设计状态)\n delete this.refList[oldRefName + '@row' + this.subFormRowId];\n } else {\n delete this.refList[oldRefName];\n }\n }\n },\n clearOptionItems() {\n if (!!this.field.options.dsEnabled) {\n this.field.options.optionItems.splice(0, this.field.options.optionItems.length); // 清空原有选项\n }\n },\n\n async initOptionItems(keepSelected) {\n if (this.designState) {\n return;\n }\n if (this.loading) return;\n this.loading = true;\n if (\n ['radio', 'checkbox', 'select', 'cascader', 'treeSelect'].includes(this.field.type)\n ) {\n /* 首先处理数据源选项加载 */\n if (!!this.field.options.dsEnabled && this.field.options.http?.url) {\n try {\n const dsResult = await fmtHttpParams.call(this, this.field.options, {\n fieldCode: this.field.options.name\n });\n if (isArray(dsResult)) {\n this.loadOptions(dsResult);\n }\n if (isArray(dsResult.list)) {\n if (this.field.options.loadingPage) {\n this.pager.total = dsResult.total || 0;\n this.pager.totalPage = dsResult.totalPage || 0;\n this.loadOptions([...this.getOptionItems(), ...dsResult.list]);\n } else {\n this.loadOptions(dsResult.list);\n }\n }\n } catch (err) {\n console.error('err: ', err);\n }\n }\n\n /* 异步更新option-data之后globalOptionData不能获取到最新值,改用provide的getOptionData()方法 */\n const newOptionItems = this.getOptionData();\n if (!!newOptionItems && newOptionItems.hasOwnProperty(this.field.options.name)) {\n if (!!keepSelected) {\n this.reloadOptions(newOptionItems[this.field.options.name]);\n } else {\n this.loadOptions(newOptionItems[this.field.options.name]);\n }\n }\n this.loading = false;\n }\n },\n\n loadOptionItemsFromDataSet(dsName) {\n if (this.designState) {\n return;\n }\n\n if (\n this.field.type !== 'radio' &&\n this.field.type !== 'checkbox' &&\n this.field.type !== 'select' &&\n this.field.type !== 'cascader'\n ) {\n return;\n }\n\n if (\n !this.field.options.dsEnabled ||\n !this.field.options.dsName ||\n !this.field.options.dataSetName ||\n this.field.options.dsName !== dsName\n ) {\n return;\n }\n\n const dataCache = this.getDSResultCache();\n const dSetName = this.field.options.dataSetName;\n if (!!dataCache && !!dataCache[dsName] && !!dataCache[dsName][dSetName]) {\n this.field.options.optionItems.splice(0, this.field.options.optionItems.length); // 清空原有选项\n this.loadOptions(dataCache[dsName][dSetName]);\n }\n },\n\n refreshDefaultValue() {\n if (this.designState === true && this.field.options.defaultValue !== undefined) {\n this.fieldModel = this.field.options.defaultValue;\n }\n },\n\n clearFieldRules() {\n if (!this.field.formItemFlag) {\n return;\n }\n\n this.rules.splice(0, this.rules.length); //清空已有\n },\n\n buildFieldRules() {\n if (!this.field.formItemFlag || this.field.options.hidden) {\n return;\n }\n\n this.rules.splice(0, this.rules.length); //清空已有\n if (!!this.field.options.required) {\n this.rules.push({\n required: true,\n //trigger: ['blur', 'change'],\n trigger: [\n 'blur'\n ] /* 去掉change事件触发校验,change事件触发时formModel数据尚未更新,导致radio/checkbox必填校验出错!! */,\n message:\n this.field.options.requiredHint || this.i18nt('render.hint.fieldRequired')\n });\n }\n\n if (!!this.field.options.validation) {\n const vldName = this.field.options.validation;\n if (!!FormValidators[vldName]) {\n this.rules.push({\n validator: FormValidators[vldName],\n trigger: ['blur', 'change'],\n label: this.field.options.label,\n errorMsg: this.field.options.validationHint\n });\n } else {\n this.rules.push({\n validator: FormValidators['regExp'],\n trigger: ['blur', 'change'],\n regExp: vldName,\n label: this.field.options.label,\n errorMsg: this.field.options.validationHint\n });\n }\n }\n\n if (!!this.field.options.onValidate) {\n //let customFn = new Function('rule', 'value', 'callback', this.field.options.onValidate)\n const customFn = (rule, value) => {\n const tmpFunc = new Function('rule', 'value', this.field.options.onValidate);\n return tmpFunc.call(this, rule, value);\n };\n this.rules.push({\n validator: customFn,\n trigger: ['blur'],\n label: this.field.options.label\n });\n }\n },\n\n /**\n * 禁用字段值变动触发表单校验\n */\n disableChangeValidate() {\n if (!this.rules) {\n return;\n }\n\n this.rules.forEach(rule => {\n if (!!rule.trigger) {\n rule.trigger.splice(0, rule.trigger.length);\n }\n });\n },\n\n /**\n * 启用字段值变动触发表单校验\n */\n enableChangeValidate() {\n if (!this.rules) {\n return;\n }\n\n this.rules.forEach(rule => {\n if (!!rule.trigger) {\n rule.trigger.push('blur');\n rule.trigger.push('change');\n }\n });\n },\n\n disableOptionOfList(optionList, optionValue) {\n if (!!optionList && optionList.length > 0) {\n optionList.forEach(opt => {\n if (opt.value === optionValue) {\n opt.disabled = true;\n }\n });\n }\n },\n\n enableOptionOfList(optionList, optionValue) {\n if (!!optionList && optionList.length > 0) {\n optionList.forEach(opt => {\n if (opt.value === optionValue) {\n opt.disabled = false;\n }\n });\n }\n },\n\n //--------------------- 组件内部方法 end ------------------//\n\n //--------------------- 事件处理 begin ------------------//\n\n emitFieldDataChange(newValue, oldValue) {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n\n this.emit$('field-value-changed', [newValue, oldValue]);\n\n /* 必须用dispatch向指定父组件派发消息!! */\n this.dispatch('VFormRender', 'fieldChange', [\n this.field.options.name,\n newValue,\n oldValue,\n this.subFormName,\n this.subFormRowIndex\n ]);\n },\n\n syncUpdateFormModel(value) {\n if (!!this.designState) {\n return;\n }\n\n if (!!this.subFormItemFlag) {\n const subFormData = this.formModel[this.subFormName] || [{}];\n const subFormDataRow = subFormData[this.subFormRowIndex];\n if (!!subFormDataRow) {\n // 重置表单后subFormDataRow为undefined,应跳过!!\n subFormDataRow[this.field.options.name] = value;\n }\n } else {\n this.formModel[this.field.options.name] = value;\n }\n },\n\n handleChangeEvent(value) {\n if (value) {\n value = value.target ? value.target.value : value;\n }\n\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.syncUpdateFormModel(value);\n this.emitFieldDataChange(value, this.oldFieldValue);\n\n //number组件一般不会触发focus事件,故此处需要手工赋值oldFieldValue!!\n this.oldFieldValue =\n deepClone(value); /* oldFieldValue需要在initFieldModel()方法中赋初值!! */\n\n /* 主动触发表单的单个字段校验,用于清除字段可能存在的校验错误提示 */\n this.dispatch('VFormRender', 'fieldValidation', [this.getPropName()]);\n },\n\n handleFocusCustomEvent(event) {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.oldFieldValue = deepClone(this.fieldModel); //保存修改change之前的值\n\n if (!!this.field.options.onFocus) {\n const customFn = new Function('event', this.field.options.onFocus);\n customFn.call(this, event);\n }\n if (this.field.options.loadingPage) {\n this.initPager();\n this.initOptionItems();\n }\n },\n\n handleBlurCustomEvent(event) {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onBlur) {\n const customFn = new Function('event', this.field.options.onBlur);\n customFn.call(this, event);\n }\n },\n\n handleInputCustomEvent(value) {\n if (value) {\n value = value.target ? value.target.value : value;\n }\n\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.syncUpdateFormModel(value);\n\n /* 主动触发表单的单个字段校验,用于清除字段可能存在的校验错误提示 */\n this.dispatch('VFormRender', 'fieldValidation', [this.getPropName()]);\n\n if (!!this.field.options.onInput) {\n const customFn = new Function('value', this.field.options.onInput);\n customFn.call(this, value);\n }\n },\n\n emitAppendButtonClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onAppendButtonClick) {\n const customFn = new Function(this.field.options.onAppendButtonClick);\n customFn.call(this);\n } else {\n /* 必须调用mixins中的dispatch方法逐级向父组件发送消息!! */\n this.dispatch('VFormRender', 'appendButtonClick', [this]);\n }\n },\n\n handleOnChange(val, oldVal, ops = []) {\n //自定义onChange事件\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onChange) {\n const changeFn = new Function(\n 'value',\n 'oldValue',\n 'ops',\n this.field.options.onChange\n );\n changeFn.call(this, val, oldVal, ops[0]);\n }\n },\n\n handleOnChangeForSubForm(val, oldVal, ops = [], subFormData, rowId) {\n //子表单自定义onChange事件\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onChange) {\n const changeFn = new Function(\n 'value',\n 'oldValue',\n 'ops',\n 'subFormData',\n 'rowId',\n this.field.options.onChange\n );\n changeFn.call(this, val, oldVal, ops[0], subFormData, rowId);\n }\n },\n onClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onClick) {\n const customFn = new Function(this.field.options.onClick);\n return customFn.call(this);\n } else {\n this.dispatch('VFormRender', 'buttonClick', [this]);\n }\n },\n\n handleButtonWidgetClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onClick) {\n const customFn = new Function(this.field.options.onClick);\n return customFn.call(this);\n } else {\n this.dispatch('VFormRender', 'buttonClick', [this]);\n }\n },\n /**\n * 下拉框右边搜索按钮\n */\n handleClickIcon() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n if (this.handleDisabled()) {\n return;\n }\n if (!!this.field.options.onClickIcon) {\n const onClickIconFn = new Function(this.field.options.onClickIcon);\n onClickIconFn.call(this);\n }\n },\n\n // remoteQuery(keyword) {\n // if (!!this.designState) {\n // //设计状态不触发事件\n // return;\n // }\n\n // if (!!this.field.options.onRemoteQuery) {\n // const remoteFn = new Function('keyword', this.field.options.onRemoteQuery);\n // remoteFn.call(this, keyword);\n // }\n // },\n\n //--------------------- 事件处理 end ------------------//\n\n //--------------------- 以下为组件支持外部调用的API方法 begin ------------------//\n /* 提示:用户可自行扩充这些方法!!! */\n\n getFormRef() {\n /* 获取VFrom引用,必须在VForm组件created之后方可调用 */\n return this.refList['v_form_ref'];\n },\n\n getWidgetRef(widgetName, showError) {\n const foundRef = this.refList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n getFieldEditor() {\n //获取内置的el表单组件\n return this.$refs['fieldEditor'];\n },\n showFileList(list) {\n if (typeof list === 'string') {\n list = JSON.parse(list);\n }\n if (!isArray(list)) return [];\n const res = list.map((item, uid) => ({\n ...item,\n name: item.fileName,\n uid\n }));\n return res;\n },\n\n /*\n 注意:VFormRender的setFormData方法不会触发子表单内field-widget的setValue方法,\n 因为setFormData方法调用后,子表单内所有field-widget组件已被清空,接收不到setFormData事件!!\n */\n setValue(newValue, disableChangeEvent = false) {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n if (eq(this.fieldModel, newValue)) return;\n\n /* if ((this.field.type === 'picture-upload') || (this.field.type === 'file-upload')) {\n this.fileList = newValue\n } else */ if (!!this.field.formItemFlag) {\n const oldValue = deepClone(this.fieldModel);\n if (this.field.type === 'file-upload') {\n newValue = this.showFileList(newValue || []);\n // TODO\n } else if (this.field.type === 'code-editor') {\n this.$refs.fieldEditor.setValue(newValue);\n }\n this.fieldModel = newValue;\n this.initFileList();\n\n this.syncUpdateFormModel(newValue);\n if (!disableChangeEvent) {\n this.emitFieldDataChange(newValue, oldValue);\n }\n }\n },\n\n getValue() {\n console.log('fieldModel', this.fieldModel);\n return this.fieldModel;\n },\n\n resetField() {\n const defaultValue = this.field.options.defaultValue;\n this.setValue(defaultValue);\n this.$nextTick(() => {\n //\n });\n\n //清空上传组件文件列表\n if (this.field.type === 'picture-upload' || this.field.type === 'file-upload') {\n this.fieldModel.splice(0, this.fieldModel.length);\n this.handleChangeEvent(this.fieldModel);\n }\n },\n\n setWidgetOption(optionName, optionValue) {\n //通用组件选项修改API\n if (this.field.options.hasOwnProperty(optionName)) {\n this.field.options[optionName] = optionValue;\n //TODO: 是否重新构建组件??有些属性修改后必须重新构建组件才能生效,比如字段校验规则。\n }\n },\n\n setReadonly(flag) {\n this.field.options.readonly = flag;\n },\n\n setDisabled(flag) {\n this.field.options.disabled = flag;\n },\n\n setAppendButtonVisible(flag) {\n this.field.options.appendButton = flag;\n },\n\n setAppendButtonDisabled(flag) {\n this.field.options.appendButtonDisabled = flag;\n },\n\n setHidden(flag) {\n this.field.options.hidden = flag;\n\n if (!!flag) {\n //清除组件校验规则\n this.clearFieldRules();\n } else {\n //重建组件校验规则\n this.buildFieldRules();\n }\n },\n\n setRequired(flag) {\n this.field.options.required = flag;\n this.buildFieldRules();\n\n if (!this.designState && !flag) {\n //清除必填校验提示\n this.clearValidate();\n }\n },\n\n /**\n * 清除字段校验提示\n */\n clearValidate() {\n if (!!this.designState) {\n return;\n }\n\n this.getFormRef().getNativeForm().clearValidate(this.getPropName());\n },\n getVfCtx() {\n return this.getFormRef().vfCtx;\n },\n\n setLabel(newLabel) {\n this.field.options.label = newLabel;\n },\n\n focus() {\n if (!!this.getFieldEditor() && !!this.getFieldEditor().focus) {\n this.getFieldEditor().focus();\n }\n },\n\n clearSelectedOptions() {\n //清空已选选项\n if (\n this.field.type !== 'checkbox' &&\n this.field.type !== 'radio' &&\n this.field.type !== 'select'\n ) {\n return;\n }\n\n if (\n this.field.type === 'checkbox' ||\n (this.field.type === 'select' && this.field.options.multiple)\n ) {\n this.fieldModel = [];\n } else {\n this.fieldModel = '';\n }\n },\n\n /**\n * 加载选项,并清空字段值\n * @param options\n */\n loadOptions(options) {\n /*\n this.field.options.optionItems = deepClone(options)\n //this.clearSelectedOptions() //清空已选选项\n */\n\n this.field.options.optionItems = translateOptionItems(\n options,\n this.field.type,\n this.field.options.labelKey || 'label',\n this.field.options.valueKey || 'value'\n );\n },\n\n /**\n * 重新加载选项,不清空字段值\n * @param options\n */\n reloadOptions(options) {\n //this.field.options.optionItems = deepClone(options)\n\n this.field.options.optionItems = translateOptionItems(\n options,\n this.field.type,\n this.field.options.labelKey || 'label',\n this.field.options.valueKey || 'value'\n );\n },\n\n disableOption(optionValue) {\n this.disableOptionOfList(this.field.options.optionItems, optionValue);\n },\n\n enableOption(optionValue) {\n this.enableOptionOfList(this.field.options.optionItems, optionValue);\n },\n\n /**\n * 返回选择项\n * @returns {*}\n */\n getOptionItems() {\n return this.field.options.optionItems;\n },\n\n setUploadHeader(name, value) {\n this.uploadHeaders[name] = value;\n },\n\n setUploadData(name, value) {\n this.uploadData[name] = value;\n },\n\n setToolbar(customToolbar) {\n this.customToolbar = customToolbar;\n },\n\n /**\n * 是否子表单内嵌的字段组件\n * @returns {boolean}\n */\n isSubFormItem() {\n return this.subFormItemFlag;\n },\n\n /**\n * 是否子表单内嵌的字段组件\n * @returns {boolean}\n */\n isSubFormField() {\n return this.subFormItemFlag;\n },\n\n /**\n * 设置或取消设置字段只读查看模式\n * @param readonlyFlag\n */\n setReadMode(readonlyFlag = true) {\n this.fieldReadonlyFlag = readonlyFlag;\n },\n\n /**\n * 动态增加自定义css样式\n * @param className\n */\n addCssClass(className) {\n if (!this.field.options.customClass) {\n this.field.options.customClass = [className];\n } else {\n this.field.options.customClass.push(className);\n }\n },\n\n /**\n * 动态移除自定义css样式\n * @param className\n */\n removeCssClass(className) {\n if (!this.field.options.customClass) {\n return;\n }\n\n let foundIdx = -1;\n this.field.options.customClass.map((cc, idx) => {\n if (cc === className) {\n foundIdx = idx;\n }\n });\n if (foundIdx > -1) {\n this.field.options.customClass.splice(foundIdx, 1);\n }\n }\n\n //--------------------- 以上为组件支持外部调用的API方法 end ------------------//\n }\n};\n"],"names":["fieldMixin","resultContent","valueKey","labelKey","oItem","onHidden","hidden","onDisabled","disabled","error","arrayObject","element","foundIdx","aItem","aIdx","subFormData","deepClone","newFormData","values","dsName","widgetNames","oldRefName","keepSelected","_a","dsResult","fmtHttpParams","isArray","err","newOptionItems","dataCache","dSetName","vldName","FormValidators","customFn","rule","value","optionList","optionValue","opt","newValue","oldValue","subFormDataRow","event","val","oldVal","ops","rowId","widgetName","showError","foundRef","list","item","uid","disableChangeEvent","eq","defaultValue","optionName","flag","newLabel","options","translateOptionItems","name","customToolbar","readonlyFlag","className","cc","idx"],"mappings":"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"}
1
+ {"version":3,"file":"fieldMixin.js","sources":["../../../../../../src/components/form-designer/form-widget/field-widget/fieldMixin.js"],"sourcesContent":["import { deepClone, translateOptionItems } from '@/utils/util';\nimport FormValidators from '@/utils/validators';\nimport { fmtHttpParams } from '@/utils/request/fmtHttpParams';\nimport { isArray, eq } from 'lodash-es';\n\nexport default {\n inject: [\n 'refList',\n 'getFormConfig',\n 'globalOptionData',\n 'globalModel',\n 'getOptionData',\n 'getGlobalDsv',\n 'getReadMode',\n 'getSubFormFieldFlag',\n 'getSubFormName',\n 'getDSResultCache'\n ],\n data() {\n return {\n fieldReadonlyFlag: false,\n loading: false\n };\n },\n computed: {\n formConfig() {\n return this.getFormConfig();\n },\n\n subFormName() {\n return !!this.getSubFormName ? this.getSubFormName() : '';\n },\n\n subFormItemFlag() {\n return !!this.getSubFormFieldFlag ? this.getSubFormFieldFlag() : false;\n },\n\n formModel: {\n cache: false,\n get() {\n return this.globalModel.formModel;\n }\n },\n\n isReadMode() {\n //return this.getReadMode() || this.fieldReadonlyFlag\n return !!this.getReadMode() ? true : this.fieldReadonlyFlag;\n },\n\n optionLabel() {\n if (this.fieldModel === null) {\n return '';\n } else {\n let resultContent = '';\n\n const { valueKey, labelKey } = this.field.options;\n this.field.options.optionItems.forEach(oItem => {\n if (\n oItem[valueKey] === this.fieldModel ||\n this.findInArray(this.fieldModel, oItem[valueKey]) !== -1\n ) {\n resultContent =\n resultContent === ''\n ? oItem[labelKey]\n : resultContent + ' ' + oItem[labelKey];\n }\n });\n\n return resultContent;\n }\n }\n },\n\n methods: {\n handleHidden() {\n if (this.designState) {\n return false;\n }\n const { onHidden, hidden } = this.field.options;\n if (hidden) return true;\n if (onHidden) {\n const onHiddenFn = new Function(onHidden);\n return onHiddenFn.call(this);\n }\n return false;\n },\n handleDisabled() {\n if (this.designState) {\n return false;\n }\n const { onDisabled, disabled } = this.field.options;\n if (disabled) return true;\n if (onDisabled) {\n try {\n const disabledFn = new Function(onDisabled);\n return disabledFn.call(this);\n } catch (error) {\n console.log({ error });\n }\n }\n return false;\n },\n findInArray(arrayObject, element) {\n if (!Array.isArray(arrayObject)) {\n return -1;\n }\n\n let foundIdx = -1;\n arrayObject.forEach((aItem, aIdx) => {\n if (aItem === element) {\n foundIdx = aIdx;\n }\n });\n\n return foundIdx;\n },\n\n //--------------------- 组件内部方法 begin ------------------//\n getPropName() {\n if (this.subFormItemFlag && !this.designState) {\n return (\n this.subFormName +\n '.' +\n this.subFormRowIndex +\n '.' +\n this.field.options.name +\n ''\n );\n } else {\n return this.field.options.name;\n }\n },\n\n initFieldModel() {\n if (!this.field.formItemFlag) {\n return;\n }\n if (!!this.subFormItemFlag && !this.designState) {\n //SubForm子表单组件需要特殊处理!!\n const subFormData = this.formModel[this.subFormName];\n if (\n (subFormData === undefined ||\n subFormData[this.subFormRowIndex] === undefined ||\n subFormData[this.subFormRowIndex][this.field.options.name] === undefined) &&\n this.field.options.defaultValue !== undefined\n ) {\n this.fieldModel = this.field.options.defaultValue;\n subFormData[this.subFormRowIndex][this.field.options.name] =\n this.field.options.defaultValue;\n } else if (\n subFormData[this.subFormRowIndex][this.field.options.name] === undefined\n ) {\n this.fieldModel = null;\n subFormData[this.subFormRowIndex][this.field.options.name] = null;\n } else {\n this.fieldModel = subFormData[this.subFormRowIndex][this.field.options.name];\n }\n\n /* 主动触发子表单内field-widget的onChange事件!! */\n setTimeout(() => {\n //延时触发onChange事件, 便于更新计算字段!!\n this.handleOnChangeForSubForm(\n this.fieldModel,\n this.oldFieldValue,\n [],\n subFormData,\n this.subFormRowId\n );\n }, 800);\n this.oldFieldValue = deepClone(this.fieldModel);\n\n this.initFileList(); //处理图片上传、文件上传字段\n\n return;\n }\n\n if (\n this.formModel[this.field.options.name] === undefined &&\n this.field.options.defaultValue !== undefined\n ) {\n this.fieldModel = this.field.options.defaultValue;\n } else if (this.formModel[this.field.options.name] === undefined) {\n //如果formModel为空对象,则初始化字段值为null!!\n this.formModel[this.field.options.name] = null;\n } else {\n this.fieldModel = this.formModel[this.field.options.name];\n }\n this.oldFieldValue = deepClone(this.fieldModel);\n this.initFileList(); //处理图片上传、文件上传字段\n },\n\n initFileList() {\n //初始化上传组件的已上传文件列表\n if (\n (this.field.type !== 'picture-upload' && this.field.type !== 'file-upload') ||\n this.designState === true\n ) {\n return;\n }\n\n if (this.fieldModel) {\n if (typeof this.fieldModel === 'string') {\n this.fieldModel = JSON.parse(this.fieldModel);\n }\n }\n },\n\n initEventHandler() {\n this.on$('setFormData', newFormData => {\n //console.log('formModel of globalModel----------', this.globalModel.formModel)\n if (!this.subFormItemFlag) {\n this.setValue(newFormData[this.field.options.name]);\n }\n });\n\n this.on$('field-value-changed', values => {\n if (!!this.subFormItemFlag) {\n const subFormData = this.formModel[this.subFormName];\n this.handleOnChangeForSubForm(\n values[0],\n values[1],\n subFormData,\n this.subFormRowId\n );\n } else {\n this.handleOnChange(values[0], values[1]);\n }\n });\n\n /* 监听从数据集加载选项事件 */\n this.on$('loadOptionItemsFromDataSet', dsName => {\n this.loadOptionItemsFromDataSet(dsName);\n });\n\n this.on$('reloadOptionItems', widgetNames => {\n if (widgetNames.length === 0 || widgetNames.indexOf(this.field.options.name) > -1) {\n this.initOptionItems(true);\n }\n });\n },\n\n handleOnCreated() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onCreated) {\n const customFunc = new Function(this.field.options.onCreated);\n customFunc.call(this);\n }\n },\n\n handleOnMounted() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onMounted) {\n const mountFunc = new Function(this.field.options.onMounted);\n mountFunc.call(this);\n }\n },\n\n registerToRefList(oldRefName) {\n if (this.refList !== null && !!this.field.options.name) {\n if (this.subFormItemFlag && !this.designState) {\n //处理子表单元素(且非设计状态)\n if (!!oldRefName) {\n delete this.refList[oldRefName + '@row' + this.subFormRowId];\n }\n this.refList[this.field.options.name + '@row' + this.subFormRowId] = this;\n } else {\n if (!!oldRefName) {\n delete this.refList[oldRefName];\n }\n this.refList[this.field.options.name] = this;\n }\n }\n },\n\n unregisterFromRefList() {\n //销毁组件时注销组件ref\n if (this.refList !== null && !!this.field.options.name) {\n const oldRefName = this.field.options.name;\n if (this.subFormItemFlag && !this.designState) {\n //处理子表单元素(且非设计状态)\n delete this.refList[oldRefName + '@row' + this.subFormRowId];\n } else {\n delete this.refList[oldRefName];\n }\n }\n },\n clearOptionItems() {\n if (!!this.field.options.dsEnabled) {\n this.field.options.optionItems.splice(0, this.field.options.optionItems.length); // 清空原有选项\n }\n },\n\n async initOptionItems(keepSelected) {\n if (this.designState) {\n return;\n }\n if (this.loading) return;\n this.loading = true;\n if (\n ['radio', 'checkbox', 'select', 'cascader', 'treeSelect'].includes(this.field.type)\n ) {\n /* 首先处理数据源选项加载 */\n if (!!this.field.options.dsEnabled && this.field.options.http?.url) {\n try {\n const dsResult = await fmtHttpParams.call(this, this.field.options, {\n fieldCode: this.field.options.name\n });\n if (isArray(dsResult)) {\n this.loadOptions(dsResult);\n }\n if (isArray(dsResult.list)) {\n if (this.field.options.loadingPage) {\n this.pager.total = dsResult.total || 0;\n this.pager.totalPage = dsResult.totalPage || 0;\n this.loadOptions([...this.getOptionItems(), ...dsResult.list]);\n } else {\n this.loadOptions(dsResult.list);\n }\n }\n } catch (err) {\n console.error('err: ', err);\n }\n }\n\n /* 异步更新option-data之后globalOptionData不能获取到最新值,改用provide的getOptionData()方法 */\n const newOptionItems = this.getOptionData();\n if (!!newOptionItems && newOptionItems.hasOwnProperty(this.field.options.name)) {\n if (!!keepSelected) {\n this.reloadOptions(newOptionItems[this.field.options.name]);\n } else {\n this.loadOptions(newOptionItems[this.field.options.name]);\n }\n }\n this.loading = false;\n }\n },\n\n loadOptionItemsFromDataSet(dsName) {\n if (this.designState) {\n return;\n }\n\n if (\n this.field.type !== 'radio' &&\n this.field.type !== 'checkbox' &&\n this.field.type !== 'select' &&\n this.field.type !== 'cascader'\n ) {\n return;\n }\n\n if (\n !this.field.options.dsEnabled ||\n !this.field.options.dsName ||\n !this.field.options.dataSetName ||\n this.field.options.dsName !== dsName\n ) {\n return;\n }\n\n const dataCache = this.getDSResultCache();\n const dSetName = this.field.options.dataSetName;\n if (!!dataCache && !!dataCache[dsName] && !!dataCache[dsName][dSetName]) {\n this.field.options.optionItems.splice(0, this.field.options.optionItems.length); // 清空原有选项\n this.loadOptions(dataCache[dsName][dSetName]);\n }\n },\n\n refreshDefaultValue() {\n if (this.designState === true && this.field.options.defaultValue !== undefined) {\n this.fieldModel = this.field.options.defaultValue;\n }\n },\n\n clearFieldRules() {\n if (!this.field.formItemFlag) {\n return;\n }\n\n this.rules.splice(0, this.rules.length); //清空已有\n },\n\n buildFieldRules() {\n if (!this.field.formItemFlag || this.field.options.hidden) {\n return;\n }\n\n this.rules.splice(0, this.rules.length); //清空已有\n if (!!this.field.options.required) {\n this.rules.push({\n required: true,\n //trigger: ['blur', 'change'],\n trigger: [\n 'blur'\n ] /* 去掉change事件触发校验,change事件触发时formModel数据尚未更新,导致radio/checkbox必填校验出错!! */,\n message:\n this.field.options.requiredHint || this.i18nt('render.hint.fieldRequired')\n });\n }\n\n if (!!this.field.options.validation) {\n const vldName = this.field.options.validation;\n if (!!FormValidators[vldName]) {\n this.rules.push({\n validator: FormValidators[vldName],\n trigger: ['blur', 'change'],\n label: this.field.options.label,\n errorMsg: this.field.options.validationHint\n });\n } else {\n this.rules.push({\n validator: FormValidators['regExp'],\n trigger: ['blur', 'change'],\n regExp: vldName,\n label: this.field.options.label,\n errorMsg: this.field.options.validationHint\n });\n }\n }\n\n if (!!this.field.options.onValidate) {\n //let customFn = new Function('rule', 'value', 'callback', this.field.options.onValidate)\n const customFn = (rule, value) => {\n const tmpFunc = new Function('rule', 'value', this.field.options.onValidate);\n return tmpFunc.call(this, rule, value);\n };\n this.rules.push({\n validator: customFn,\n trigger: ['blur'],\n label: this.field.options.label\n });\n }\n },\n\n /**\n * 禁用字段值变动触发表单校验\n */\n disableChangeValidate() {\n if (!this.rules) {\n return;\n }\n\n this.rules.forEach(rule => {\n if (!!rule.trigger) {\n rule.trigger.splice(0, rule.trigger.length);\n }\n });\n },\n\n /**\n * 启用字段值变动触发表单校验\n */\n enableChangeValidate() {\n if (!this.rules) {\n return;\n }\n\n this.rules.forEach(rule => {\n if (!!rule.trigger) {\n rule.trigger.push('blur');\n rule.trigger.push('change');\n }\n });\n },\n\n disableOptionOfList(optionList, optionValue) {\n if (!!optionList && optionList.length > 0) {\n optionList.forEach(opt => {\n if (opt.value === optionValue) {\n opt.disabled = true;\n }\n });\n }\n },\n\n enableOptionOfList(optionList, optionValue) {\n if (!!optionList && optionList.length > 0) {\n optionList.forEach(opt => {\n if (opt.value === optionValue) {\n opt.disabled = false;\n }\n });\n }\n },\n\n //--------------------- 组件内部方法 end ------------------//\n\n //--------------------- 事件处理 begin ------------------//\n\n emitFieldDataChange(newValue, oldValue) {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n\n this.emit$('field-value-changed', [newValue, oldValue]);\n\n /* 必须用dispatch向指定父组件派发消息!! */\n this.dispatch('VFormRender', 'fieldChange', [\n this.field.options.name,\n newValue,\n oldValue,\n this.subFormName,\n this.subFormRowIndex\n ]);\n },\n\n syncUpdateFormModel(value) {\n if (!!this.designState) {\n return;\n }\n\n if (!!this.subFormItemFlag) {\n const subFormData = this.formModel[this.subFormName] || [{}];\n const subFormDataRow = subFormData[this.subFormRowIndex];\n if (!!subFormDataRow) {\n // 重置表单后subFormDataRow为undefined,应跳过!!\n subFormDataRow[this.field.options.name] = value;\n }\n } else {\n this.formModel[this.field.options.name] = value;\n }\n },\n\n handleChangeEvent(value) {\n if (value) {\n value = value.target ? value.target.value : value;\n }\n\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.syncUpdateFormModel(value);\n this.emitFieldDataChange(value, this.oldFieldValue);\n\n //number组件一般不会触发focus事件,故此处需要手工赋值oldFieldValue!!\n this.oldFieldValue =\n deepClone(value); /* oldFieldValue需要在initFieldModel()方法中赋初值!! */\n\n /* 主动触发表单的单个字段校验,用于清除字段可能存在的校验错误提示 */\n this.dispatch('VFormRender', 'fieldValidation', [this.getPropName()]);\n },\n\n handleFocusCustomEvent(event) {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.oldFieldValue = deepClone(this.fieldModel); //保存修改change之前的值\n\n if (!!this.field.options.onFocus) {\n const customFn = new Function('event', this.field.options.onFocus);\n customFn.call(this, event);\n }\n if (this.field.options.loadingPage) {\n this.initPager();\n this.initOptionItems();\n }\n },\n\n handleBlurCustomEvent(event) {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onBlur) {\n const customFn = new Function('event', this.field.options.onBlur);\n customFn.call(this, event);\n }\n },\n\n handleInputCustomEvent(value) {\n if (value) {\n value = value.target ? value.target.value : value;\n }\n\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n this.syncUpdateFormModel(value);\n\n /* 主动触发表单的单个字段校验,用于清除字段可能存在的校验错误提示 */\n this.dispatch('VFormRender', 'fieldValidation', [this.getPropName()]);\n\n if (!!this.field.options.onInput) {\n const customFn = new Function('value', this.field.options.onInput);\n customFn.call(this, value);\n }\n },\n\n emitAppendButtonClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onAppendButtonClick) {\n const customFn = new Function(this.field.options.onAppendButtonClick);\n customFn.call(this);\n } else {\n /* 必须调用mixins中的dispatch方法逐级向父组件发送消息!! */\n this.dispatch('VFormRender', 'appendButtonClick', [this]);\n }\n },\n\n handleOnChange(val, oldVal, ops = []) {\n //自定义onChange事件\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onChange) {\n const changeFn = new Function(\n 'value',\n 'oldValue',\n 'ops',\n this.field.options.onChange\n );\n changeFn.call(this, val, oldVal, ops[0]);\n }\n },\n\n handleOnChangeForSubForm(val, oldVal, ops = [], subFormData, rowId) {\n //子表单自定义onChange事件\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n\n if (!!this.field.options.onChange) {\n const changeFn = new Function(\n 'value',\n 'oldValue',\n 'ops',\n 'subFormData',\n 'rowId',\n this.field.options.onChange\n );\n changeFn.call(this, val, oldVal, ops[0], subFormData, rowId);\n }\n },\n onClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onClick) {\n const customFn = new Function(this.field.options.onClick);\n return customFn.call(this);\n } else {\n this.dispatch('VFormRender', 'buttonClick', [this]);\n }\n },\n\n handleButtonWidgetClick() {\n if (!!this.designState) {\n //设计状态不触发点击事件\n return;\n }\n\n if (!!this.field.options.onClick) {\n const customFn = new Function(this.field.options.onClick);\n return customFn.call(this);\n } else {\n this.dispatch('VFormRender', 'buttonClick', [this]);\n }\n },\n /**\n * 下拉框右边搜索按钮\n */\n handleClickIcon() {\n if (!!this.designState) {\n //设计状态不触发事件\n return;\n }\n if (this.handleDisabled()) {\n return;\n }\n if (!!this.field.options.onClickIcon) {\n const onClickIconFn = new Function(this.field.options.onClickIcon);\n onClickIconFn.call(this);\n }\n },\n\n // remoteQuery(keyword) {\n // if (!!this.designState) {\n // //设计状态不触发事件\n // return;\n // }\n\n // if (!!this.field.options.onRemoteQuery) {\n // const remoteFn = new Function('keyword', this.field.options.onRemoteQuery);\n // remoteFn.call(this, keyword);\n // }\n // },\n\n //--------------------- 事件处理 end ------------------//\n\n //--------------------- 以下为组件支持外部调用的API方法 begin ------------------//\n /* 提示:用户可自行扩充这些方法!!! */\n\n getFormRef() {\n /* 获取VFrom引用,必须在VForm组件created之后方可调用 */\n return this.refList['v_form_ref'];\n },\n\n getWidgetRef(widgetName, showError) {\n const foundRef = this.refList[widgetName];\n if (!foundRef && !!showError) {\n this.$message.error(this.i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n },\n\n getFieldEditor() {\n //获取内置的el表单组件\n return this.$refs['fieldEditor'];\n },\n showFileList(list) {\n if (typeof list === 'string') {\n list = JSON.parse(list);\n }\n if (!isArray(list)) return [];\n const res = list.map((item, uid) => ({\n ...item,\n name: item.fileName,\n uid\n }));\n return res;\n },\n\n /*\n 注意:VFormRender的setFormData方法不会触发子表单内field-widget的setValue方法,\n 因为setFormData方法调用后,子表单内所有field-widget组件已被清空,接收不到setFormData事件!!\n */\n setValue(newValue, disableChangeEvent = false) {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n if (eq(this.fieldModel, newValue)) return;\n\n /* if ((this.field.type === 'picture-upload') || (this.field.type === 'file-upload')) {\n this.fileList = newValue\n } else */ if (!!this.field.formItemFlag) {\n const oldValue = deepClone(this.fieldModel);\n if (this.field.type === 'file-upload') {\n newValue = this.showFileList(newValue || []);\n // TODO\n } else if (this.field.type === 'code-editor') {\n this.$refs.fieldEditor.setValue(newValue);\n }\n this.fieldModel = newValue;\n this.initFileList();\n\n this.syncUpdateFormModel(newValue);\n if (!disableChangeEvent) {\n this.emitFieldDataChange(newValue, oldValue);\n }\n }\n },\n\n getValue() {\n return this.fieldModel;\n },\n\n resetField() {\n const defaultValue = this.field.options.defaultValue;\n this.setValue(defaultValue);\n\n //清空上传组件文件列表\n if (this.field.type === 'picture-upload' || this.field.type === 'file-upload') {\n this.fieldModel.splice(0, this.fieldModel.length);\n this.handleChangeEvent(this.fieldModel);\n }\n },\n\n setWidgetOption(optionName, optionValue) {\n //通用组件选项修改API\n if (this.field.options.hasOwnProperty(optionName)) {\n this.field.options[optionName] = optionValue;\n //TODO: 是否重新构建组件??有些属性修改后必须重新构建组件才能生效,比如字段校验规则。\n }\n },\n\n setReadonly(flag) {\n this.field.options.readonly = flag;\n },\n\n setDisabled(flag) {\n this.field.options.disabled = flag;\n },\n\n setAppendButtonVisible(flag) {\n this.field.options.appendButton = flag;\n },\n\n setAppendButtonDisabled(flag) {\n this.field.options.appendButtonDisabled = flag;\n },\n\n setHidden(flag) {\n this.field.options.hidden = flag;\n\n if (!!flag) {\n //清除组件校验规则\n this.clearFieldRules();\n } else {\n //重建组件校验规则\n this.buildFieldRules();\n }\n },\n\n setRequired(flag) {\n this.field.options.required = flag;\n this.buildFieldRules();\n\n if (!this.designState && !flag) {\n //清除必填校验提示\n this.clearValidate();\n }\n },\n\n /**\n * 清除字段校验提示\n */\n clearValidate() {\n if (!!this.designState) {\n return;\n }\n\n this.getFormRef().getNativeForm().clearValidate(this.getPropName());\n },\n getVfCtx() {\n return this.getFormRef().vfCtx;\n },\n\n setLabel(newLabel) {\n this.field.options.label = newLabel;\n },\n\n focus() {\n if (!!this.getFieldEditor() && !!this.getFieldEditor().focus) {\n this.getFieldEditor().focus();\n }\n },\n\n clearSelectedOptions() {\n //清空已选选项\n if (\n this.field.type !== 'checkbox' &&\n this.field.type !== 'radio' &&\n this.field.type !== 'select'\n ) {\n return;\n }\n\n if (\n this.field.type === 'checkbox' ||\n (this.field.type === 'select' && this.field.options.multiple)\n ) {\n this.fieldModel = [];\n } else {\n this.fieldModel = '';\n }\n },\n\n /**\n * 加载选项,并清空字段值\n * @param options\n */\n loadOptions(options) {\n /*\n this.field.options.optionItems = deepClone(options)\n //this.clearSelectedOptions() //清空已选选项\n */\n\n this.field.options.optionItems = translateOptionItems(\n options,\n this.field.type,\n this.field.options.labelKey || 'label',\n this.field.options.valueKey || 'value'\n );\n },\n\n /**\n * 重新加载选项,不清空字段值\n * @param options\n */\n reloadOptions(options) {\n //this.field.options.optionItems = deepClone(options)\n\n this.field.options.optionItems = translateOptionItems(\n options,\n this.field.type,\n this.field.options.labelKey || 'label',\n this.field.options.valueKey || 'value'\n );\n },\n\n disableOption(optionValue) {\n this.disableOptionOfList(this.field.options.optionItems, optionValue);\n },\n\n enableOption(optionValue) {\n this.enableOptionOfList(this.field.options.optionItems, optionValue);\n },\n\n /**\n * 返回选择项\n * @returns {*}\n */\n getOptionItems() {\n return this.field.options.optionItems;\n },\n\n setUploadHeader(name, value) {\n this.uploadHeaders[name] = value;\n },\n\n setUploadData(name, value) {\n this.uploadData[name] = value;\n },\n\n setToolbar(customToolbar) {\n this.customToolbar = customToolbar;\n },\n\n /**\n * 是否子表单内嵌的字段组件\n * @returns {boolean}\n */\n isSubFormItem() {\n return this.subFormItemFlag;\n },\n\n /**\n * 是否子表单内嵌的字段组件\n * @returns {boolean}\n */\n isSubFormField() {\n return this.subFormItemFlag;\n },\n\n /**\n * 设置或取消设置字段只读查看模式\n * @param readonlyFlag\n */\n setReadMode(readonlyFlag = true) {\n this.fieldReadonlyFlag = readonlyFlag;\n },\n\n /**\n * 动态增加自定义css样式\n * @param className\n */\n addCssClass(className) {\n if (!this.field.options.customClass) {\n this.field.options.customClass = [className];\n } else {\n this.field.options.customClass.push(className);\n }\n },\n\n /**\n * 动态移除自定义css样式\n * @param className\n */\n removeCssClass(className) {\n if (!this.field.options.customClass) {\n return;\n }\n\n let foundIdx = -1;\n this.field.options.customClass.map((cc, idx) => {\n if (cc === className) {\n foundIdx = idx;\n }\n });\n if (foundIdx > -1) {\n this.field.options.customClass.splice(foundIdx, 1);\n }\n }\n\n //--------------------- 以上为组件支持外部调用的API方法 end ------------------//\n }\n};\n"],"names":["fieldMixin","resultContent","valueKey","labelKey","oItem","onHidden","hidden","onDisabled","disabled","error","arrayObject","element","foundIdx","aItem","aIdx","subFormData","deepClone","newFormData","values","dsName","widgetNames","oldRefName","keepSelected","_a","dsResult","fmtHttpParams","isArray","err","newOptionItems","dataCache","dSetName","vldName","FormValidators","customFn","rule","value","optionList","optionValue","opt","newValue","oldValue","subFormDataRow","event","val","oldVal","ops","rowId","widgetName","showError","foundRef","list","item","uid","disableChangeEvent","eq","defaultValue","optionName","flag","newLabel","options","translateOptionItems","name","customToolbar","readonlyFlag","className","cc","idx"],"mappings":"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"}
@@ -1,26 +1,24 @@
1
- import T from "../../code-editor/index.vue.js";
2
- import D from "./property-editor/index.js";
3
- import K from "./form-setting.vue.js";
4
- import O from "./form-crud-setting.vue.js";
5
- import V, { propertyRegistered as j } from "./propertyRegister.js";
6
- import { addWindowResizeHandler as U } from "../../../utils/util.js";
7
- import x from "../../../utils/i18n.js";
8
- import I from "../../../utils/emitter.js";
9
- import z from "../../code-editor/code-modal-editor.vue.js";
10
- import { resolveComponent as m, createBlock as s, openBlock as n, withCtx as g, createVNode as f, createCommentVNode as a, createElementVNode as P, normalizeStyle as w, withModifiers as W, createElementBlock as c, Fragment as u, renderList as p, resolveDynamicComponent as C } from "vue";
1
+ import T from "./property-editor/index.js";
2
+ import D from "./form-setting.vue.js";
3
+ import K from "./form-crud-setting.vue.js";
4
+ import O, { propertyRegistered as V } from "./propertyRegister.js";
5
+ import { addWindowResizeHandler as j } from "../../../utils/util.js";
6
+ import U from "../../../utils/i18n.js";
7
+ import x from "../../../utils/emitter.js";
8
+ import I from "../../code-editor/code-modal-editor.vue.js";
9
+ import { resolveComponent as h, createBlock as s, openBlock as n, withCtx as g, createVNode as f, createCommentVNode as a, createElementVNode as P, normalizeStyle as w, withModifiers as W, createElementBlock as c, Fragment as u, renderList as p, resolveDynamicComponent as C } from "vue";
11
10
  /* empty css */
12
11
  /* empty css */
13
- import B from "../../../../_virtual/_plugin-vue_export-helper.js";
14
- const { COMMON_PROPERTIES: L, ADVANCED_PROPERTIES: q, EVENT_PROPERTIES: G } = V, J = {
12
+ import z from "../../../../_virtual/_plugin-vue_export-helper.js";
13
+ const { COMMON_PROPERTIES: B, ADVANCED_PROPERTIES: L, EVENT_PROPERTIES: q } = O, G = {
15
14
  name: "SettingPanel",
16
15
  componentName: "SettingPanel",
17
- mixins: [x, I],
16
+ mixins: [U, x],
18
17
  components: {
19
- CodeEditor: T,
20
- FormSetting: K,
21
- CodeModalEditor: z,
22
- FormCrudSetting: O,
23
- ...D
18
+ FormSetting: D,
19
+ CodeModalEditor: I,
20
+ FormCrudSetting: K,
21
+ ...T
24
22
  },
25
23
  props: {
26
24
  designer: Object,
@@ -46,9 +44,9 @@ const { COMMON_PROPERTIES: L, ADVANCED_PROPERTIES: q, EVENT_PROPERTIES: G } = V,
46
44
  activeTab: "2",
47
45
  widgetActiveCollapseNames: ["1", "2", "3"],
48
46
  formActiveCollapseNames: ["1", "2"],
49
- commonProps: L,
50
- advProps: q,
51
- eventProps: G,
47
+ commonProps: B,
48
+ advProps: L,
49
+ eventProps: q,
52
50
  showWidgetEventDialogFlag: !1,
53
51
  eventHandlerCode: "",
54
52
  curEventName: "",
@@ -96,7 +94,7 @@ const { COMMON_PROPERTIES: L, ADVANCED_PROPERTIES: q, EVENT_PROPERTIES: G } = V,
96
94
  });
97
95
  },
98
96
  mounted() {
99
- this.designer.selectedWidget ? this.activeTab = "1" : this.activeTab = "2", this.scrollerHeight = window.innerHeight - 56 - 48 + "px", U(() => {
97
+ this.designer.selectedWidget ? this.activeTab = "1" : this.activeTab = "2", this.scrollerHeight = window.innerHeight - 56 - 48 + "px", j(() => {
100
98
  this.$nextTick(() => {
101
99
  this.scrollerHeight = window.innerHeight - 56 - 48 + "px";
102
100
  });
@@ -114,15 +112,15 @@ const { COMMON_PROPERTIES: L, ADVANCED_PROPERTIES: q, EVENT_PROPERTIES: G } = V,
114
112
  return !1;
115
113
  if (e.indexOf("-") <= -1) {
116
114
  const d = this.selectedWidget.type + "-" + e;
117
- if (j(d))
115
+ if (V(d))
118
116
  return !1;
119
117
  }
120
118
  const t = e.replace(this.selectedWidget.type + "-", "");
121
119
  return this.designer.hasConfig(this.selectedWidget, t);
122
120
  },
123
121
  getPropEditor(e, o) {
124
- const t = e.replace(this.selectedWidget.type + "-", ""), h = `${this.selectedWidget.type}-${t}-editor`;
125
- return this.$options.components[h] || this.$root.$.appContext.components[h] ? h : o;
122
+ const t = e.replace(this.selectedWidget.type + "-", ""), m = `${this.selectedWidget.type}-${t}-editor`;
123
+ return this.$options.components[m] || this.$root.$.appContext.components[m] ? m : o;
126
124
  },
127
125
  showCollapse(e) {
128
126
  let o = !1;
@@ -148,22 +146,22 @@ const { COMMON_PROPERTIES: L, ADVANCED_PROPERTIES: q, EVENT_PROPERTIES: G } = V,
148
146
  saveEventHandler(e) {
149
147
  const o = this.$refs.CodeModalEditorRef.codeEditorRef.ecEditor.getEditorAnnotations();
150
148
  let t = !1;
151
- if (o && o.length > 0 && (o.forEach((h) => {
152
- h.type === "error" && (t = !0);
149
+ if (o && o.length > 0 && (o.forEach((m) => {
150
+ m.type === "error" && (t = !0);
153
151
  }), t)) {
154
152
  this.$message.error(this.i18nt("designer.setting.syntaxCheckWarning"));
155
153
  return;
156
154
  }
157
155
  if (this.curEventName.includes(".")) {
158
- const [h, d] = this.curEventName.split(".");
159
- this.selectedWidget.options[h][d] = e;
156
+ const [m, d] = this.curEventName.split(".");
157
+ this.selectedWidget.options[m][d] = e;
160
158
  } else
161
159
  this.selectedWidget.options[this.curEventName] = e;
162
160
  }
163
161
  }
164
162
  };
165
- function Q(e, o, t, h, d, i) {
166
- const v = m("a-collapse-panel"), _ = m("a-collapse"), b = m("a-form"), H = m("a-empty"), E = m("a-tab-pane"), M = m("form-setting"), k = m("FormCrudSetting"), S = m("a-tabs"), F = m("CodeModalEditor"), R = m("a-layout"), A = m("a-config-provider");
163
+ function J(e, o, t, m, d, i) {
164
+ const v = h("a-collapse-panel"), _ = h("a-collapse"), b = h("a-form"), H = h("a-empty"), E = h("a-tab-pane"), M = h("form-setting"), k = h("FormCrudSetting"), S = h("a-tabs"), F = h("CodeModalEditor"), R = h("a-layout"), A = h("a-config-provider");
167
165
  return n(), s(A, { componentSize: "small" }, {
168
166
  default: g(() => [
169
167
  f(R, { class: "panel-container" }, {
@@ -389,8 +387,8 @@ function Q(e, o, t, h, d, i) {
389
387
  _: 1
390
388
  });
391
389
  }
392
- const se = /* @__PURE__ */ B(J, [["render", Q], ["__scopeId", "data-v-dc8cd5e3"]]);
390
+ const re = /* @__PURE__ */ z(G, [["render", J], ["__scopeId", "data-v-e168cf19"]]);
393
391
  export {
394
- se as default
392
+ re as default
395
393
  };
396
394
  //# sourceMappingURL=index.vue.js.map