@kp-ui/lowcode-pc 1.0.0-alpha.9 → 1.0.1
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/assets/styles/style.css +189 -51
- package/core/src/components/common/render/Debugger.vue.js +1 -1
- package/core/src/components/common/render/Debugger.vue2.js +1 -1
- package/core/src/components/common/render/Debugger.vue2.js.map +1 -1
- package/core/src/components/common/render/LowcodeRenderProvider.vue.js +10 -1
- package/core/src/components/common/render/LowcodeRenderProvider.vue.js.map +1 -1
- package/core/src/components/common/render/useFormContext.js +3 -2
- package/core/src/components/common/render/useFormContext.js.map +1 -1
- package/core/src/constants/WidgetTypeEnum.js +1 -0
- package/core/src/constants/WidgetTypeEnum.js.map +1 -1
- package/core/src/hooks/useAppRef.js +1 -0
- package/core/src/hooks/useAppRef.js.map +1 -1
- package/core/src/hooks/useDataHttp.js +3 -3
- package/core/src/hooks/useDataHttp.js.map +1 -1
- package/core/src/hooks/useDesigner.js +3 -1
- package/core/src/hooks/useDesigner.js.map +1 -1
- package/core/src/hooks/useField.js +97 -64
- package/core/src/hooks/useField.js.map +1 -1
- package/core/src/hooks/useWebMCP.js +82 -0
- package/core/src/hooks/useWebMCP.js.map +1 -0
- package/core/src/lang/en-US.js +33 -0
- package/core/src/lang/en-US.js.map +1 -1
- package/core/src/lang/zh-CN.js +64 -11
- package/core/src/lang/zh-CN.js.map +1 -1
- package/install.js +1 -1
- package/install.js.map +1 -1
- package/package.json +1 -1
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js +1 -1
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js +17 -3
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js +23 -5
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js +0 -1
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
- package/src/components/desginer/widget-panel/advanced/data-table.js +2 -0
- package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
- package/src/components/desginer/widget-panel/containers/grid-sub-form.js +5 -0
- package/src/components/desginer/widget-panel/containers/grid-sub-form.js.map +1 -1
- package/src/components/desginer/widget-panel/containers/grid.js +1 -3
- package/src/components/desginer/widget-panel/containers/grid.js.map +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue.js +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/button-list-widget.vue.js +1 -1
- package/src/components/field-widget/button-list-widget.vue2.js +1 -2
- package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
- package/src/components/field-widget/code-editor-widget.vue.js +1 -1
- package/src/components/field-widget/code-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/divider-widget.vue2.js +1 -1
- package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
- package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
- package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
- package/src/components/field-widget/dropdown-widget.vue.js +1 -1
- package/src/components/field-widget/dropdown-widget.vue2.js +12 -20
- package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
- package/src/components/field-widget/file-upload-widget.vue.js +1 -1
- package/src/components/field-widget/file-upload-widget.vue2.js +12 -16
- package/src/components/field-widget/file-upload-widget.vue2.js.map +1 -1
- package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/field-widget/number-widget.vue2.js +1 -1
- package/src/components/field-widget/number-widget.vue2.js.map +1 -1
- package/src/components/field-widget/radio-widget.vue.js +1 -1
- package/src/components/field-widget/radio-widget.vue2.js +5 -6
- package/src/components/field-widget/radio-widget.vue2.js.map +1 -1
- package/src/components/field-widget/rich-editor-widget.vue.js +1 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/textarea-widget.vue.js +1 -1
- package/src/components/field-widget/textarea-widget.vue2.js +1 -1
- package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
- package/src/components/field-widget/treeSelect-widget.vue2.js +8 -9
- package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
- package/src/components/field-widget/vue-render-widget.vue2.js +1 -1
- package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue.js +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue2.js +83 -4
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +24 -5
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
- package/src/components/public/DataTableColumnDialog.vue.js +8 -0
- package/src/components/public/DataTableColumnDialog.vue.js.map +1 -0
- package/src/components/public/DataTableColumnDialog.vue2.js +333 -0
- package/src/components/public/DataTableColumnDialog.vue2.js.map +1 -0
- package/src/components/public/DynamicDialog.vue.js +0 -1
- package/src/components/public/DynamicDialog.vue.js.map +1 -1
- package/src/components/render/index.vue2.js +0 -1
- package/src/components/render/index.vue2.js.map +1 -1
- package/stats.html +1 -1
- package/core/src/utils/event-bus.js +0 -8
- package/core/src/utils/event-bus.js.map +0 -1
- package/src/components/field-widget/useField.js +0 -578
- package/src/components/field-widget/useField.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetTypeEnum.js","sources":["../../../../../core/src/constants/WidgetTypeEnum.ts"],"sourcesContent":["export enum WidgetTypeEnum {\n input = 'input-widget',\n textarea = 'textarea-widget',\n number = 'number-widget',\n select = 'select-widget',\n radio = 'radio-widget',\n checkbox = 'checkbox-widget',\n time = 'time-widget',\n timeRange = 'time-range-widget',\n date = 'date-widget',\n dateRange = 'date-range-widget',\n rate = 'rate-widget',\n switch = 'switch-widget',\n slider = 'slider-widget',\n color = 'color-widget',\n htmlText = 'html-text-widget',\n staticText = 'static-text-widget',\n buttonList = 'button-list-widget',\n dropdown = 'dropdown-widget',\n button = 'button-widget',\n divider = 'divider-widget',\n cascader = 'cascader-widget',\n tree = 'tree-widget',\n treeSelect = 'tree-select-widget',\n richEditor = 'rich-editor-widget',\n codeEditor = 'code-editor-widget',\n fileUpload = 'file-upload-widget',\n bpmnEditor = 'bpmn-editor-widget',\n vueRender = 'vue-render-widget',\n diyCompontent = 'diy-compontent-widget',\n cell = 'cell-widget',\n tabs = 'tabs-widget'\n}\n\nexport enum ContainerTypeEnum {\n grid = 'grid-widget',\n GridColWidget = 'grid-col-widget',\n VfCollapseWidget = 'vf-collapse-widget',\n VfBoxWidget = 'vf-box-widget',\n VfDialogWidget = 'vf-dialog-widget',\n Tab = 'tab-widget',\n DataTable = 'data-table-widget',\n GridSubFormWidget = 'grid-sub-form-widget',\n box = 'box-widget'\n}\n\nexport enum BIWidgetTypeEnum {\n echartBar = 'echart-bar-widget',\n echartDIY = 'echart-diy-widget',\n borderWidget = 'border-widget',\n border01 = 'border-01',\n border02 = 'border-02',\n border03 = 'border-03',\n border04 = 'border-04',\n decorative01 = 'decorative-01',\n decorative02 = 'decorative-02',\n decorative03 = 'decorative-03',\n decorative04 = 'decorative-04',\n decorative05 = 'decorative-05'\n}\n\nexport enum ComponentNameEnum {\n VFormRender = 'VFormRender',\n VFormDesigner = 'VFormDesigner',\n ContainerWidget = 'ContainerWidget',\n VfBoxWidget = 'VfBoxWidget',\n VfDialogWidget = 'VfDialogWidget',\n FieldWidget = 'FieldWidget',\n PropertyEditor = 'PropertyEditor',\n OnSubFormRowAddEditor = 'OnSubFormRowAddEditor'\n}\n"],"names":["WidgetTypeEnum","ContainerTypeEnum","ComponentNameEnum"],"mappings":"AAAO,IAAK,mCAAAA,oBAAL;AACHA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,UAAA,IAAW;AACXA,kBAAA,QAAA,IAAS;AACTA,kBAAA,QAAA,IAAS;AACTA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,UAAA,IAAW;AACXA,kBAAA,MAAA,IAAO;AACPA,kBAAA,WAAA,IAAY;AACZA,kBAAA,MAAA,IAAO;AACPA,kBAAA,WAAA,IAAY;AACZA,kBAAA,MAAA,IAAO;AACPA,kBAAA,QAAA,IAAS;AACTA,kBAAA,QAAA,IAAS;AACTA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,UAAA,IAAW;AACXA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,UAAA,IAAW;AACXA,kBAAA,QAAA,IAAS;AACTA,kBAAA,SAAA,IAAU;AACVA,kBAAA,UAAA,IAAW;AACXA,kBAAA,MAAA,IAAO;AACPA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,WAAA,IAAY;AACZA,kBAAA,eAAA,IAAgB;AAChBA,kBAAA,MAAA,IAAO;AACPA,kBAAA,MAAA,IAAO;
|
|
1
|
+
{"version":3,"file":"WidgetTypeEnum.js","sources":["../../../../../core/src/constants/WidgetTypeEnum.ts"],"sourcesContent":["export enum WidgetTypeEnum {\n input = 'input-widget',\n inputField = 'input-field-widget',\n textarea = 'textarea-widget',\n number = 'number-widget',\n select = 'select-widget',\n radio = 'radio-widget',\n checkbox = 'checkbox-widget',\n time = 'time-widget',\n timeRange = 'time-range-widget',\n date = 'date-widget',\n dateRange = 'date-range-widget',\n rate = 'rate-widget',\n switch = 'switch-widget',\n slider = 'slider-widget',\n color = 'color-widget',\n htmlText = 'html-text-widget',\n staticText = 'static-text-widget',\n buttonList = 'button-list-widget',\n dropdown = 'dropdown-widget',\n button = 'button-widget',\n divider = 'divider-widget',\n cascader = 'cascader-widget',\n tree = 'tree-widget',\n treeSelect = 'tree-select-widget',\n richEditor = 'rich-editor-widget',\n codeEditor = 'code-editor-widget',\n fileUpload = 'file-upload-widget',\n bpmnEditor = 'bpmn-editor-widget',\n vueRender = 'vue-render-widget',\n diyCompontent = 'diy-compontent-widget',\n cell = 'cell-widget',\n tabs = 'tabs-widget'\n}\n\nexport enum ContainerTypeEnum {\n grid = 'grid-widget',\n GridColWidget = 'grid-col-widget',\n VfCollapseWidget = 'vf-collapse-widget',\n VfBoxWidget = 'vf-box-widget',\n VfDialogWidget = 'vf-dialog-widget',\n Tab = 'tab-widget',\n DataTable = 'data-table-widget',\n GridSubFormWidget = 'grid-sub-form-widget',\n box = 'box-widget'\n}\n\nexport enum BIWidgetTypeEnum {\n echartBar = 'echart-bar-widget',\n echartDIY = 'echart-diy-widget',\n borderWidget = 'border-widget',\n border01 = 'border-01',\n border02 = 'border-02',\n border03 = 'border-03',\n border04 = 'border-04',\n decorative01 = 'decorative-01',\n decorative02 = 'decorative-02',\n decorative03 = 'decorative-03',\n decorative04 = 'decorative-04',\n decorative05 = 'decorative-05'\n}\n\nexport enum ComponentNameEnum {\n VFormRender = 'VFormRender',\n VFormDesigner = 'VFormDesigner',\n ContainerWidget = 'ContainerWidget',\n VfBoxWidget = 'VfBoxWidget',\n VfDialogWidget = 'VfDialogWidget',\n FieldWidget = 'FieldWidget',\n PropertyEditor = 'PropertyEditor',\n OnSubFormRowAddEditor = 'OnSubFormRowAddEditor'\n}\n"],"names":["WidgetTypeEnum","ContainerTypeEnum","ComponentNameEnum"],"mappings":"AAAO,IAAK,mCAAAA,oBAAL;AACHA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,YAAA,IAAa;AACbA,kBAAA,UAAA,IAAW;AACXA,kBAAA,QAAA,IAAS;AACTA,kBAAA,QAAA,IAAS;AACTA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,UAAA,IAAW;AACXA,kBAAA,MAAA,IAAO;AACPA,kBAAA,WAAA,IAAY;AACZA,kBAAA,MAAA,IAAO;AACPA,kBAAA,WAAA,IAAY;AACZA,kBAAA,MAAA,IAAO;AACPA,kBAAA,QAAA,IAAS;AACTA,kBAAA,QAAA,IAAS;AACTA,kBAAA,OAAA,IAAQ;AACRA,kBAAA,UAAA,IAAW;AACXA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,UAAA,IAAW;AACXA,kBAAA,QAAA,IAAS;AACTA,kBAAA,SAAA,IAAU;AACVA,kBAAA,UAAA,IAAW;AACXA,kBAAA,MAAA,IAAO;AACPA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,YAAA,IAAa;AACbA,kBAAA,WAAA,IAAY;AACZA,kBAAA,eAAA,IAAgB;AAChBA,kBAAA,MAAA,IAAO;AACPA,kBAAA,MAAA,IAAO;AAhCC,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAmCL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,MAAA,IAAO;AACPA,qBAAA,eAAA,IAAgB;AAChBA,qBAAA,kBAAA,IAAmB;AACnBA,qBAAA,aAAA,IAAc;AACdA,qBAAA,gBAAA,IAAiB;AACjBA,qBAAA,KAAA,IAAM;AACNA,qBAAA,WAAA,IAAY;AACZA,qBAAA,mBAAA,IAAoB;AACpBA,qBAAA,KAAA,IAAM;AATE,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AA2BL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,aAAA,IAAc;AACdA,qBAAA,eAAA,IAAgB;AAChBA,qBAAA,iBAAA,IAAkB;AAClBA,qBAAA,aAAA,IAAc;AACdA,qBAAA,gBAAA,IAAiB;AACjBA,qBAAA,aAAA,IAAc;AACdA,qBAAA,gBAAA,IAAiB;AACjBA,qBAAA,uBAAA,IAAwB;AARhB,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;"}
|
|
@@ -25,6 +25,7 @@ function useAppRef(widgetRefList, formWidgetId) {
|
|
|
25
25
|
return foundRef;
|
|
26
26
|
};
|
|
27
27
|
const registerToRefList = (widgetName) => {
|
|
28
|
+
console.log({ widgetName, widgetId: widgetId.value });
|
|
28
29
|
const list = isRoot ? widgetRefList == null ? void 0 : widgetRefList.value : refList.value;
|
|
29
30
|
list.set(widgetName || widgetId.value, {
|
|
30
31
|
instance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppRef.js","sources":["../../../../../core/src/hooks/useAppRef.ts"],"sourcesContent":["import { useI18n } from '@kp-ui/lowcode-core';\nimport { message } from 'ant-design-vue';\nimport { computed, getCurrentInstance, inject, ref, Ref } from 'vue';\n\nexport function useAppRef(widgetRefList?: Ref<Map<string, any>>, formWidgetId?: any) {\n const { i18nt } = useI18n();\n const isRoot = formWidgetId !== undefined;\n\n if (!isRoot) {\n formWidgetId = inject('formWidgetId', '');\n }\n\n const refList = inject<Ref<Map<string, any>>>('refList', widgetRefList || ref(new Map()));\n\n const instance = getCurrentInstance();\n\n const widgetId = computed(() => instance?.exposed?.field?.options?.name as string);\n\n const initRefList = () => {\n registerToRefList();\n };\n\n const getWidgetRef = (widgetName, showError?: boolean) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n const foundRef = list.get(widgetName);\n if (!foundRef && !!showError) {\n message.error(i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n };\n\n /* 该方法用于组件重名检查!! */\n const registerToRefList = (widgetName?: symbol | string) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n list.set(widgetName || widgetId.value, {\n instance,\n proxy: instance?.proxy,\n ...instance?.appContext.config.globalProperties,\n ...instance?.exposed\n });\n };\n\n /**\n * 从引用列表中注销\n */\n const unregisterFromRefList = () => {\n const widgetId = instance?.exposed?.field?.options?.name;\n refList?.value?.delete(widgetId);\n };\n\n const getFormRef = () => {\n return getWidgetRef(formWidgetId);\n };\n\n return {\n refList,\n getFormRef,\n registerToRefList,\n unregisterFromRefList,\n initRefList,\n getWidgetRef\n };\n}\n"],"names":["widgetId"],"mappings":";;;AAIO,SAAS,UAAU,eAAuC,cAAoB;AACjF,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,SAAS,iBAAiB;AAEhC,MAAI,CAAC,QAAQ;AACT,mBAAe,OAAO,gBAAgB,EAAE;AAAA,EAC5C;AAEA,QAAM,UAAU,OAA8B,WAAW,iBAAiB,IAAI,oBAAI,IAAA,CAAK,CAAC;AAExF,QAAM,WAAW,mBAAA;AAEjB,QAAM,WAAW,SAAS,MAAA;;AAAM,kEAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AAAA,GAAc;AAEjF,QAAM,cAAc,MAAM;AACtB,sBAAA;AAAA,EACJ;AAEA,QAAM,eAAe,CAAC,YAAY,cAAwB;AACtD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,UAAM,WAAW,KAAK,IAAI,UAAU;AACpC,QAAI,CAAC,YAAY,CAAC,CAAC,WAAW;AAC1B,cAAQ,MAAM,MAAM,yBAAyB,IAAI,UAAU;AAAA,IAC/D;AACA,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,eAAiC;AACxD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,SAAK,IAAI,cAAc,SAAS,OAAO;AAAA,MACnC;AAAA,MACA,OAAO,qCAAU;AAAA,MACjB,GAAG,qCAAU,WAAW,OAAO;AAAA,MAC/B,GAAG,qCAAU;AAAA,IAAA,CAChB;AAAA,EACL;AAKA,QAAM,wBAAwB,MAAM;;AAChC,UAAMA,aAAW,sDAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AACpD,6CAAS,UAAT,mBAAgB,OAAOA;AAAAA,EAC3B;AAEA,QAAM,aAAa,MAAM;AACrB,WAAO,aAAa,YAAY;AAAA,EACpC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
1
|
+
{"version":3,"file":"useAppRef.js","sources":["../../../../../core/src/hooks/useAppRef.ts"],"sourcesContent":["import { useI18n } from '@kp-ui/lowcode-core';\nimport { message } from 'ant-design-vue';\nimport { computed, getCurrentInstance, inject, ref, Ref } from 'vue';\n\nexport function useAppRef(widgetRefList?: Ref<Map<string, any>>, formWidgetId?: any) {\n const { i18nt } = useI18n();\n const isRoot = formWidgetId !== undefined;\n\n if (!isRoot) {\n formWidgetId = inject('formWidgetId', '');\n }\n\n const refList = inject<Ref<Map<string, any>>>('refList', widgetRefList || ref(new Map()));\n\n const instance = getCurrentInstance();\n\n const widgetId = computed(() => instance?.exposed?.field?.options?.name as string);\n\n const initRefList = () => {\n registerToRefList();\n };\n\n const getWidgetRef = (widgetName, showError?: boolean) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n const foundRef = list.get(widgetName);\n if (!foundRef && !!showError) {\n message.error(i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n };\n\n /* 该方法用于组件重名检查!! */\n const registerToRefList = (widgetName?: symbol | string) => {\n console.log({ widgetName, widgetId: widgetId.value });\n\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n list.set(widgetName || widgetId.value, {\n instance,\n proxy: instance?.proxy,\n ...instance?.appContext.config.globalProperties,\n ...instance?.exposed\n });\n };\n\n /**\n * 从引用列表中注销\n */\n const unregisterFromRefList = () => {\n const widgetId = instance?.exposed?.field?.options?.name;\n refList?.value?.delete(widgetId);\n };\n\n const getFormRef = () => {\n return getWidgetRef(formWidgetId);\n };\n\n return {\n refList,\n getFormRef,\n registerToRefList,\n unregisterFromRefList,\n initRefList,\n getWidgetRef\n };\n}\n"],"names":["widgetId"],"mappings":";;;AAIO,SAAS,UAAU,eAAuC,cAAoB;AACjF,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,SAAS,iBAAiB;AAEhC,MAAI,CAAC,QAAQ;AACT,mBAAe,OAAO,gBAAgB,EAAE;AAAA,EAC5C;AAEA,QAAM,UAAU,OAA8B,WAAW,iBAAiB,IAAI,oBAAI,IAAA,CAAK,CAAC;AAExF,QAAM,WAAW,mBAAA;AAEjB,QAAM,WAAW,SAAS,MAAA;;AAAM,kEAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AAAA,GAAc;AAEjF,QAAM,cAAc,MAAM;AACtB,sBAAA;AAAA,EACJ;AAEA,QAAM,eAAe,CAAC,YAAY,cAAwB;AACtD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,UAAM,WAAW,KAAK,IAAI,UAAU;AACpC,QAAI,CAAC,YAAY,CAAC,CAAC,WAAW;AAC1B,cAAQ,MAAM,MAAM,yBAAyB,IAAI,UAAU;AAAA,IAC/D;AACA,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,eAAiC;AACxD,YAAQ,IAAI,EAAE,YAAY,UAAU,SAAS,OAAO;AAEpD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,SAAK,IAAI,cAAc,SAAS,OAAO;AAAA,MACnC;AAAA,MACA,OAAO,qCAAU;AAAA,MACjB,GAAG,qCAAU,WAAW,OAAO;AAAA,MAC/B,GAAG,qCAAU;AAAA,IAAA,CAChB;AAAA,EACL;AAKA,QAAM,wBAAwB,MAAM;;AAChC,UAAMA,aAAW,sDAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AACpD,6CAAS,UAAT,mBAAgB,OAAOA;AAAAA,EAC3B;AAEA,QAAM,aAAa,MAAM;AACrB,WAAO,aAAa,YAAY;AAAA,EACpC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -38,15 +38,15 @@ function useDataHttp({ props }) {
|
|
|
38
38
|
return pagintion.value;
|
|
39
39
|
};
|
|
40
40
|
const setPagination = (pagination) => {
|
|
41
|
-
if (pagination.current !== void 0) {
|
|
41
|
+
if ((pagination == null ? void 0 : pagination.current) !== void 0) {
|
|
42
42
|
pagintion.value.current = pagination.current;
|
|
43
43
|
props.field.options.pagination.current = pagination.current;
|
|
44
44
|
}
|
|
45
|
-
if (pagination.page !== void 0) {
|
|
45
|
+
if ((pagination == null ? void 0 : pagination.page) !== void 0) {
|
|
46
46
|
pagintion.value.current = pagination.page;
|
|
47
47
|
props.field.options.pagination.current = pagination.page;
|
|
48
48
|
}
|
|
49
|
-
if (pagination.total !== void 0) {
|
|
49
|
+
if ((pagination == null ? void 0 : pagination.total) !== void 0) {
|
|
50
50
|
pagintion.value.total = pagination.total;
|
|
51
51
|
props.field.options.pagination.total = pagination.total;
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataHttp.js","sources":["../../../../../core/src/hooks/useDataHttp.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { PaginationProps } from 'ant-design-vue';\nimport { useI18n, WidgetProps } from '@kp-ui/lowcode-core';\nimport { useExecFunction } from 'tmgc2-share';\n\nexport function useDataHttp({ props }: { props: WidgetProps<any> }) {\n const { http, dataHandlerCode, dataReqHandlerCode } = props.field.options;\n\n const { i18nt } = useI18n();\n const isLoading = ref(false);\n\n const { execHttpFunction } = useExecFunction();\n const pagintion = ref<PaginationProps>({\n ...(props.widget.options.pagination as any),\n onShowSizeChange: (current, pageSize) => {\n props.field.options.pagination.pageSize = pageSize;\n props.field.options.pagination.current = 1;\n pagintion.value.current = 1;\n },\n showTotal: total => i18nt('designer.showTotal', { total })\n });\n\n const loadataSource = async (): Promise<any> => {\n try {\n isLoading.value = true;\n const data = await execHttpFunction(\n {\n http,\n dataHandlerCode,\n dataReqHandlerCode\n },\n {}\n );\n return data;\n } catch (error) {\n console.error(error);\n return {};\n } finally {\n isLoading.value = false;\n }\n };\n\n const getPagination = () => {\n return pagintion.value;\n };\n\n /**\n * 设置表格分页\n * @param pagination\n */\n const setPagination = pagination => {\n if (pagination
|
|
1
|
+
{"version":3,"file":"useDataHttp.js","sources":["../../../../../core/src/hooks/useDataHttp.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { PaginationProps } from 'ant-design-vue';\nimport { useI18n, WidgetProps } from '@kp-ui/lowcode-core';\nimport { useExecFunction } from 'tmgc2-share';\n\nexport function useDataHttp({ props }: { props: WidgetProps<any> }) {\n const { http, dataHandlerCode, dataReqHandlerCode } = props.field.options;\n\n const { i18nt } = useI18n();\n const isLoading = ref(false);\n\n const { execHttpFunction } = useExecFunction();\n const pagintion = ref<PaginationProps>({\n ...(props.widget.options.pagination as any),\n onShowSizeChange: (current, pageSize) => {\n props.field.options.pagination.pageSize = pageSize;\n props.field.options.pagination.current = 1;\n pagintion.value.current = 1;\n },\n showTotal: total => i18nt('designer.showTotal', { total })\n });\n\n const loadataSource = async (): Promise<any> => {\n try {\n isLoading.value = true;\n const data = await execHttpFunction(\n {\n http,\n dataHandlerCode,\n dataReqHandlerCode\n },\n {}\n );\n return data;\n } catch (error) {\n console.error(error);\n return {};\n } finally {\n isLoading.value = false;\n }\n };\n\n const getPagination = () => {\n return pagintion.value;\n };\n\n /**\n * 设置表格分页\n * @param pagination\n */\n const setPagination = pagination => {\n if (pagination?.current !== undefined) {\n pagintion.value.current = pagination.current;\n props.field.options.pagination.current = pagination.current;\n }\n\n if (pagination?.page !== undefined) {\n pagintion.value.current = pagination.page;\n props.field.options.pagination.current = pagination.page;\n }\n\n if (pagination?.total !== undefined) {\n pagintion.value.total = pagination.total;\n props.field.options.pagination.total = pagination.total;\n }\n };\n\n return {\n pagintion,\n setPagination,\n getPagination,\n loadataSource,\n isLoading\n };\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,YAAY,EAAE,SAAsC;AAChE,QAAM,EAAE,MAAM,iBAAiB,mBAAA,IAAuB,MAAM,MAAM;AAElE,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,YAAY,IAAI,KAAK;AAE3B,QAAM,EAAE,iBAAA,IAAqB,gBAAA;AAC7B,QAAM,YAAY,IAAqB;AAAA,IACnC,GAAI,MAAM,OAAO,QAAQ;AAAA,IACzB,kBAAkB,CAAC,SAAS,aAAa;AACrC,YAAM,MAAM,QAAQ,WAAW,WAAW;AAC1C,YAAM,MAAM,QAAQ,WAAW,UAAU;AACzC,gBAAU,MAAM,UAAU;AAAA,IAC9B;AAAA,IACA,WAAW,CAAA,UAAS,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAAA,CAC5D;AAED,QAAM,gBAAgB,YAA0B;AAC5C,QAAI;AACA,gBAAU,QAAQ;AAClB,YAAM,OAAO,MAAM;AAAA,QACf;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEJ,CAAA;AAAA,MAAC;AAEL,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,cAAQ,MAAM,KAAK;AACnB,aAAO,CAAA;AAAA,IACX,UAAA;AACI,gBAAU,QAAQ;AAAA,IACtB;AAAA,EACJ;AAEA,QAAM,gBAAgB,MAAM;AACxB,WAAO,UAAU;AAAA,EACrB;AAMA,QAAM,gBAAgB,CAAA,eAAc;AAChC,SAAI,yCAAY,aAAY,QAAW;AACnC,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,SAAI,yCAAY,UAAS,QAAW;AAChC,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,SAAI,yCAAY,WAAU,QAAW;AACjC,gBAAU,MAAM,QAAQ,WAAW;AACnC,YAAM,MAAM,QAAQ,WAAW,QAAQ,WAAW;AAAA,IACtD;AAAA,EACJ;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -25,7 +25,9 @@ function useDesigner() {
|
|
|
25
25
|
designer.value.emitHistoryChange();
|
|
26
26
|
};
|
|
27
27
|
const selectWidget = (widget) => {
|
|
28
|
-
|
|
28
|
+
if (designState) {
|
|
29
|
+
designer.value.setSelected(widget);
|
|
30
|
+
}
|
|
29
31
|
};
|
|
30
32
|
const selectedWidget = computed(() => designer.value.selectedWidget);
|
|
31
33
|
const selected = (widgetId) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDesigner.js","sources":["../../../../../core/src/hooks/useDesigner.ts"],"sourcesContent":["import { FormConfig, Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport { FormDesigner } from '@kp-ui/lowcode-core/src/types/designer';\nimport { LayoutTypeEnum } from '@kp-ui/lowcode-core';\nimport { computed, inject, nextTick, ref, Ref } from 'vue';\n\nexport function useDesigner() {\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n const designState = inject('designState', false);\n const getWidget = inject('getWidget', (widget: Widget) => {});\n const formConfig = inject<Ref<FormConfig>>('formConfig', ref({} as FormConfig));\n const formData = inject('formData', ref({}));\n\n const layoutType = inject('layoutType', ref(LayoutTypeEnum.PC));\n const isPc = computed(\n () => layoutType.value === LayoutTypeEnum.PC || layoutType.value === LayoutTypeEnum.H5\n );\n const isH5 = computed(() => layoutType.value === LayoutTypeEnum.H5);\n\n const isBI = computed(() => layoutType.value === LayoutTypeEnum.BI);\n\n const onDragAdd = ({ newIndex }, widgetList: Widget[]) => {\n const newWidget = widgetList[newIndex];\n if (newWidget) {\n designer.value.setSelected(newWidget);\n } else {\n designer.value.setSelected(widgetList[newIndex - 1]);\n }\n };\n\n const onDragUpdate = () => {\n designer.value.emitHistoryChange();\n };\n\n /**\n * 选择子组件\n * @param widget 组件配置\n */\n const selectWidget = widget => {\n designer.value.setSelected(widget);\n };\n\n const selectedWidget = computed(() => designer.value.selectedWidget);\n\n const selected = (widgetId: string) => {\n return designer.value.selectedId === widgetId;\n };\n\n const onWidgetClick = (widget: Widget) => {\n designer.value.setSelected(widget);\n };\n\n return {\n selectedWidget,\n getWidget,\n selected,\n isPc,\n isH5,\n isBI,\n designState,\n formData,\n formConfig,\n designer,\n layoutType,\n onWidgetClick,\n selectWidget,\n onDragAdd,\n onDragUpdate\n };\n}\n"],"names":[],"mappings":";;AAKO,SAAS,cAAc;AAC1B,QAAM,WAAW,OAA0B,YAAY,IAAI,CAAA,CAAkB,CAAC;AAC9E,QAAM,cAAc,OAAO,eAAe,KAAK;AAC/C,QAAM,YAAY,OAAO,aAAa,CAAC,WAAmB;AAAA,EAAC,CAAC;AAC5D,QAAM,aAAa,OAAwB,cAAc,IAAI,CAAA,CAAgB,CAAC;AAC9E,QAAM,WAAW,OAAO,YAAY,IAAI,CAAA,CAAE,CAAC;AAE3C,QAAM,aAAa,OAAO,cAAc,IAAI,eAAe,EAAE,CAAC;AAC9D,QAAM,OAAO;AAAA,IACT,MAAM,WAAW,UAAU,eAAe,MAAM,WAAW,UAAU,eAAe;AAAA,EAAA;AAExF,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,YAAY,CAAC,EAAE,SAAA,GAAY,eAAyB;AACtD,UAAM,YAAY,WAAW,QAAQ;AACrC,QAAI,WAAW;AACX,eAAS,MAAM,YAAY,SAAS;AAAA,IACxC,OAAO;AACH,eAAS,MAAM,YAAY,WAAW,WAAW,CAAC,CAAC;AAAA,IACvD;AAAA,EACJ;AAEA,QAAM,eAAe,MAAM;AACvB,aAAS,MAAM,kBAAA;AAAA,EACnB;AAMA,QAAM,eAAe,CAAA,WAAU;AAC3B,
|
|
1
|
+
{"version":3,"file":"useDesigner.js","sources":["../../../../../core/src/hooks/useDesigner.ts"],"sourcesContent":["import { FormConfig, Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport { FormDesigner } from '@kp-ui/lowcode-core/src/types/designer';\nimport { LayoutTypeEnum } from '@kp-ui/lowcode-core';\nimport { computed, inject, nextTick, ref, Ref, watchEffect } from 'vue';\n\nexport function useDesigner() {\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n const designState = inject('designState', false);\n const getWidget = inject('getWidget', (widget: Widget) => {});\n const formConfig = inject<Ref<FormConfig>>('formConfig', ref({} as FormConfig));\n const formData = inject('formData', ref({}));\n\n const layoutType = inject('layoutType', ref(LayoutTypeEnum.PC));\n const isPc = computed(\n () => layoutType.value === LayoutTypeEnum.PC || layoutType.value === LayoutTypeEnum.H5\n );\n const isH5 = computed(() => layoutType.value === LayoutTypeEnum.H5);\n\n const isBI = computed(() => layoutType.value === LayoutTypeEnum.BI);\n\n const onDragAdd = ({ newIndex }, widgetList: Widget[]) => {\n const newWidget = widgetList[newIndex];\n if (newWidget) {\n designer.value.setSelected(newWidget);\n } else {\n designer.value.setSelected(widgetList[newIndex - 1]);\n }\n };\n\n const onDragUpdate = () => {\n designer.value.emitHistoryChange();\n };\n\n /**\n * 选择子组件\n * @param widget 组件配置\n */\n const selectWidget = widget => {\n if (designState) {\n designer.value.setSelected(widget);\n }\n };\n\n const selectedWidget = computed(() => designer.value.selectedWidget);\n\n const selected = (widgetId: string) => {\n return designer.value.selectedId === widgetId;\n };\n\n const onWidgetClick = (widget: Widget) => {\n designer.value.setSelected(widget);\n };\n\n return {\n selectedWidget,\n getWidget,\n selected,\n isPc,\n isH5,\n isBI,\n designState,\n formData,\n formConfig,\n designer,\n layoutType,\n onWidgetClick,\n selectWidget,\n onDragAdd,\n onDragUpdate\n };\n}\n"],"names":[],"mappings":";;AAKO,SAAS,cAAc;AAC1B,QAAM,WAAW,OAA0B,YAAY,IAAI,CAAA,CAAkB,CAAC;AAC9E,QAAM,cAAc,OAAO,eAAe,KAAK;AAC/C,QAAM,YAAY,OAAO,aAAa,CAAC,WAAmB;AAAA,EAAC,CAAC;AAC5D,QAAM,aAAa,OAAwB,cAAc,IAAI,CAAA,CAAgB,CAAC;AAC9E,QAAM,WAAW,OAAO,YAAY,IAAI,CAAA,CAAE,CAAC;AAE3C,QAAM,aAAa,OAAO,cAAc,IAAI,eAAe,EAAE,CAAC;AAC9D,QAAM,OAAO;AAAA,IACT,MAAM,WAAW,UAAU,eAAe,MAAM,WAAW,UAAU,eAAe;AAAA,EAAA;AAExF,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,YAAY,CAAC,EAAE,SAAA,GAAY,eAAyB;AACtD,UAAM,YAAY,WAAW,QAAQ;AACrC,QAAI,WAAW;AACX,eAAS,MAAM,YAAY,SAAS;AAAA,IACxC,OAAO;AACH,eAAS,MAAM,YAAY,WAAW,WAAW,CAAC,CAAC;AAAA,IACvD;AAAA,EACJ;AAEA,QAAM,eAAe,MAAM;AACvB,aAAS,MAAM,kBAAA;AAAA,EACnB;AAMA,QAAM,eAAe,CAAA,WAAU;AAC3B,QAAI,aAAa;AACb,eAAS,MAAM,YAAY,MAAM;AAAA,IACrC;AAAA,EACJ;AAEA,QAAM,iBAAiB,SAAS,MAAM,SAAS,MAAM,cAAc;AAEnE,QAAM,WAAW,CAAC,aAAqB;AACnC,WAAO,SAAS,MAAM,eAAe;AAAA,EACzC;AAEA,QAAM,gBAAgB,CAAC,WAAmB;AACtC,aAAS,MAAM,YAAY,MAAM;AAAA,EACrC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject, ref, getCurrentInstance, computed, toRaw, onMounted, onBeforeUnmount } from "vue";
|
|
2
|
-
import
|
|
3
|
-
import { get, eq, isArray, cloneDeep } from "lodash-es";
|
|
2
|
+
import { get, eq, isArray } from "lodash-es";
|
|
4
3
|
import { useExecFunction } from "tmgc2-share";
|
|
4
|
+
import FormValidators from "../utils/validators.js";
|
|
5
5
|
import { useAppRef } from "./useAppRef.js";
|
|
6
6
|
import { useEmitter } from "../utils/useEmitter.js";
|
|
7
7
|
import { useI18n } from "../utils/i18n.js";
|
|
@@ -16,7 +16,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
16
16
|
const { registerToRefList, getWidgetRef, getFormRef, unregisterFromRefList } = useAppRef();
|
|
17
17
|
const { executeFunction, asyncExecuteFunction } = useExecFunction();
|
|
18
18
|
const { i18nt, i18n2t } = useI18n();
|
|
19
|
-
const field = props
|
|
19
|
+
const { field } = props;
|
|
20
20
|
const fieldEditor = ref(null);
|
|
21
21
|
const oldFieldValue = ref(null);
|
|
22
22
|
const fieldReadonlyFlag = ref(false);
|
|
@@ -28,8 +28,8 @@ function useField(props, isInitModelValue = true) {
|
|
|
28
28
|
const { dispatch } = useEmitter();
|
|
29
29
|
const size = computed(() => {
|
|
30
30
|
var _a;
|
|
31
|
-
if ((_a = options
|
|
32
|
-
return options.
|
|
31
|
+
if ((_a = field == null ? void 0 : field.options) == null ? void 0 : _a.size) {
|
|
32
|
+
return field.options.size;
|
|
33
33
|
}
|
|
34
34
|
return formConfig.value.size || "middle";
|
|
35
35
|
});
|
|
@@ -52,7 +52,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
52
52
|
if (designState) {
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
55
|
-
const { onHidden, hidden } = options
|
|
55
|
+
const { onHidden, hidden } = props.field.options;
|
|
56
56
|
if (hidden) return true;
|
|
57
57
|
if (onHidden) {
|
|
58
58
|
try {
|
|
@@ -71,7 +71,10 @@ function useField(props, isInitModelValue = true) {
|
|
|
71
71
|
return false;
|
|
72
72
|
});
|
|
73
73
|
const handleDisabled = computed(() => {
|
|
74
|
-
|
|
74
|
+
if (designState) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const { onDisabled, disabled } = props.field.options;
|
|
75
78
|
if (disabled) return true;
|
|
76
79
|
if (onDisabled) {
|
|
77
80
|
try {
|
|
@@ -104,18 +107,18 @@ function useField(props, isInitModelValue = true) {
|
|
|
104
107
|
};
|
|
105
108
|
const getPropName = computed(() => {
|
|
106
109
|
if (isSubFormField && !designState) {
|
|
107
|
-
return subFormName.value + "." + props.subFormRowIndex + "." + options.
|
|
110
|
+
return subFormName.value + "." + props.subFormRowIndex + "." + props.field.options.name;
|
|
108
111
|
} else {
|
|
109
|
-
return options.
|
|
112
|
+
return props.field.options.name;
|
|
110
113
|
}
|
|
111
114
|
});
|
|
112
115
|
async function handleOnCreated() {
|
|
113
116
|
if (designState) {
|
|
114
117
|
return;
|
|
115
118
|
}
|
|
116
|
-
if (options.
|
|
119
|
+
if (props.field.options.onCreated) {
|
|
117
120
|
await asyncExecuteFunction({
|
|
118
|
-
functionBody: options.
|
|
121
|
+
functionBody: props.field.options.onCreated
|
|
119
122
|
});
|
|
120
123
|
}
|
|
121
124
|
}
|
|
@@ -123,59 +126,59 @@ function useField(props, isInitModelValue = true) {
|
|
|
123
126
|
if (designState) {
|
|
124
127
|
return;
|
|
125
128
|
}
|
|
126
|
-
if (options.
|
|
129
|
+
if (props.field.options.onMounted) {
|
|
127
130
|
await asyncExecuteFunction({
|
|
128
|
-
functionBody: options.
|
|
131
|
+
functionBody: props.field.options.onMounted
|
|
129
132
|
});
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
const refreshDefaultValue = () => {
|
|
133
|
-
fieldModel.value = options.
|
|
136
|
+
fieldModel.value = props.field.options.defaultValue;
|
|
134
137
|
};
|
|
135
138
|
const clearFieldRules = () => {
|
|
136
|
-
if (!field.formItemFlag) {
|
|
139
|
+
if (!props.field.formItemFlag) {
|
|
137
140
|
return;
|
|
138
141
|
}
|
|
139
142
|
rules.value.splice(0, rules.value.length);
|
|
140
143
|
};
|
|
141
144
|
const buildFieldRules = () => {
|
|
142
|
-
if (!field.formItemFlag || options.
|
|
145
|
+
if (!(props == null ? void 0 : props.field.formItemFlag) || (props == null ? void 0 : props.field.options.hidden)) {
|
|
143
146
|
return;
|
|
144
147
|
}
|
|
145
148
|
rules.value.splice(0, rules.value.length);
|
|
146
|
-
if (options.
|
|
149
|
+
if (props.field.options.required) {
|
|
147
150
|
rules.value.push({
|
|
148
151
|
required: true,
|
|
149
152
|
// trigger: ['blur', 'change'],
|
|
150
153
|
trigger: [
|
|
151
154
|
"blur"
|
|
152
155
|
],
|
|
153
|
-
message: options.
|
|
156
|
+
message: props.field.options.requiredHint || i18nt("render.hint.fieldRequired")
|
|
154
157
|
});
|
|
155
158
|
}
|
|
156
|
-
if (options.
|
|
157
|
-
const vldName = options.
|
|
159
|
+
if (props.field.options.validation) {
|
|
160
|
+
const vldName = props.field.options.validation;
|
|
158
161
|
if (FormValidators[vldName]) {
|
|
159
162
|
rules.value.push({
|
|
160
163
|
validator: FormValidators[vldName],
|
|
161
164
|
trigger: ["blur", "change"],
|
|
162
|
-
label: options.
|
|
163
|
-
errorMsg: options.
|
|
165
|
+
label: props.field.options.label,
|
|
166
|
+
errorMsg: props.field.options.validationHint
|
|
164
167
|
});
|
|
165
168
|
} else {
|
|
166
169
|
rules.value.push({
|
|
167
170
|
validator: FormValidators["regExp"],
|
|
168
171
|
trigger: ["blur", "change"],
|
|
169
172
|
regExp: vldName,
|
|
170
|
-
label: options.
|
|
171
|
-
errorMsg: options.
|
|
173
|
+
label: props.field.options.label,
|
|
174
|
+
errorMsg: props.field.options.validationHint
|
|
172
175
|
});
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
|
-
if (options.
|
|
178
|
+
if (props.field.options.onValidate) {
|
|
176
179
|
const customFn = (rule, value) => {
|
|
177
180
|
return executeFunction({
|
|
178
|
-
functionBody: options.
|
|
181
|
+
functionBody: props.field.options.onValidate,
|
|
179
182
|
params: { rule, value },
|
|
180
183
|
keys: ["rule", "value"]
|
|
181
184
|
});
|
|
@@ -183,7 +186,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
183
186
|
rules.value.push({
|
|
184
187
|
validator: customFn,
|
|
185
188
|
trigger: ["blur"],
|
|
186
|
-
label: options.
|
|
189
|
+
label: props.field.options.label
|
|
187
190
|
});
|
|
188
191
|
}
|
|
189
192
|
};
|
|
@@ -232,7 +235,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
232
235
|
}
|
|
233
236
|
if (!instance) return;
|
|
234
237
|
dispatch("VFormRender", "fieldChange", [
|
|
235
|
-
options.
|
|
238
|
+
props.field.options.name,
|
|
236
239
|
newValue,
|
|
237
240
|
oldValue,
|
|
238
241
|
subFormName.value,
|
|
@@ -262,10 +265,10 @@ function useField(props, isInitModelValue = true) {
|
|
|
262
265
|
if (designState) {
|
|
263
266
|
return;
|
|
264
267
|
}
|
|
265
|
-
oldFieldValue.value =
|
|
266
|
-
if (options.
|
|
268
|
+
oldFieldValue.value = deepClone(fieldModel.value);
|
|
269
|
+
if (props.field.options.onFocus) {
|
|
267
270
|
executeFunction({
|
|
268
|
-
functionBody: options.
|
|
271
|
+
functionBody: props.field.options.onFocus,
|
|
269
272
|
params: { event },
|
|
270
273
|
keys: ["event"]
|
|
271
274
|
});
|
|
@@ -275,9 +278,9 @@ function useField(props, isInitModelValue = true) {
|
|
|
275
278
|
if (designState) {
|
|
276
279
|
return;
|
|
277
280
|
}
|
|
278
|
-
if (options.
|
|
281
|
+
if (props.field.options.onBlur) {
|
|
279
282
|
executeFunction({
|
|
280
|
-
functionBody: options.
|
|
283
|
+
functionBody: props.field.options.onBlur,
|
|
281
284
|
params: { event },
|
|
282
285
|
keys: ["event"]
|
|
283
286
|
});
|
|
@@ -287,13 +290,13 @@ function useField(props, isInitModelValue = true) {
|
|
|
287
290
|
if (designState) {
|
|
288
291
|
return;
|
|
289
292
|
}
|
|
290
|
-
if (options.
|
|
293
|
+
if (props.field.options.onAppendButtonClick) {
|
|
291
294
|
executeFunction({
|
|
292
295
|
functionBody: options.value.onAppendButtonClick
|
|
293
296
|
});
|
|
294
297
|
}
|
|
295
298
|
};
|
|
296
|
-
const executeWidgetEventFunction = async (eventName, params) => {
|
|
299
|
+
const executeWidgetEventFunction = async (eventName, params, keys = ["params"]) => {
|
|
297
300
|
if (designState) {
|
|
298
301
|
return;
|
|
299
302
|
}
|
|
@@ -301,7 +304,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
301
304
|
await asyncExecuteFunction({
|
|
302
305
|
functionBody: options.value[eventName],
|
|
303
306
|
params: { params },
|
|
304
|
-
keys
|
|
307
|
+
keys
|
|
305
308
|
});
|
|
306
309
|
}
|
|
307
310
|
};
|
|
@@ -309,9 +312,9 @@ function useField(props, isInitModelValue = true) {
|
|
|
309
312
|
if (designState) {
|
|
310
313
|
return;
|
|
311
314
|
}
|
|
312
|
-
if (options.
|
|
315
|
+
if (props.field.options.onChange) {
|
|
313
316
|
executeFunction({
|
|
314
|
-
functionBody: options.
|
|
317
|
+
functionBody: props.field.options.onChange,
|
|
315
318
|
params: {
|
|
316
319
|
value: val,
|
|
317
320
|
oldValue: oldVal,
|
|
@@ -322,8 +325,28 @@ function useField(props, isInitModelValue = true) {
|
|
|
322
325
|
});
|
|
323
326
|
}
|
|
324
327
|
};
|
|
328
|
+
const onClick = async () => {
|
|
329
|
+
if (designState) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if (props.field.options.onClick) {
|
|
333
|
+
return await asyncExecuteFunction({
|
|
334
|
+
functionBody: props.field.options.onClick
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
};
|
|
325
338
|
const handleClickIcon = async () => {
|
|
326
|
-
|
|
339
|
+
if (designState) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
if (handleDisabled.value) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (field.options.onClickIcon) {
|
|
346
|
+
await asyncExecuteFunction({
|
|
347
|
+
functionBody: field.options.onClickIcon
|
|
348
|
+
});
|
|
349
|
+
}
|
|
327
350
|
};
|
|
328
351
|
const getFieldEditor = () => {
|
|
329
352
|
return fieldEditor.value;
|
|
@@ -346,9 +369,9 @@ function useField(props, isInitModelValue = true) {
|
|
|
346
369
|
}
|
|
347
370
|
if (eq(fieldModel.value, newValue)) return;
|
|
348
371
|
const oldValue = deepClone(fieldModel.value);
|
|
349
|
-
if (field.type === "file-upload") {
|
|
372
|
+
if (props.field.type === "file-upload") {
|
|
350
373
|
newValue = showFileList(newValue || []);
|
|
351
|
-
} else if (field.type === "code-editor") {
|
|
374
|
+
} else if (props.field.type === "code-editor") {
|
|
352
375
|
const fieldEditor2 = getFieldEditor();
|
|
353
376
|
if (fieldEditor2) {
|
|
354
377
|
fieldEditor2.setValue(newValue);
|
|
@@ -363,26 +386,26 @@ function useField(props, isInitModelValue = true) {
|
|
|
363
386
|
return fieldModel.value;
|
|
364
387
|
};
|
|
365
388
|
const resetField = () => {
|
|
366
|
-
const defaultValue = options.
|
|
389
|
+
const defaultValue = props.field.options.defaultValue;
|
|
367
390
|
setValue(defaultValue);
|
|
368
|
-
if (field.type === "picture-upload" || field.type === "file-upload") {
|
|
391
|
+
if (props.field.type === "picture-upload" || props.field.type === "file-upload") {
|
|
369
392
|
fieldModel.value.splice(0, fieldModel.value.length);
|
|
370
393
|
}
|
|
371
394
|
};
|
|
372
395
|
const setReadonly = (flag) => {
|
|
373
|
-
options.
|
|
396
|
+
props.field.options.readonly = flag;
|
|
374
397
|
};
|
|
375
398
|
const setDisabled = (flag) => {
|
|
376
|
-
options.
|
|
399
|
+
props.field.options.disabled = flag;
|
|
377
400
|
};
|
|
378
401
|
const setAppendButtonVisible = (flag) => {
|
|
379
|
-
options.
|
|
402
|
+
props.field.options.appendButton = flag;
|
|
380
403
|
};
|
|
381
404
|
const setAppendButtonDisabled = (flag) => {
|
|
382
|
-
options.
|
|
405
|
+
props.field.options.appendButtonDisabled = flag;
|
|
383
406
|
};
|
|
384
407
|
const setHidden = (flag) => {
|
|
385
|
-
options.
|
|
408
|
+
props.field.options.hidden = flag;
|
|
386
409
|
if (flag) {
|
|
387
410
|
clearFieldRules();
|
|
388
411
|
} else {
|
|
@@ -390,7 +413,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
390
413
|
}
|
|
391
414
|
};
|
|
392
415
|
const setRequired = (flag) => {
|
|
393
|
-
options.
|
|
416
|
+
props.field.options.required = flag;
|
|
394
417
|
buildFieldRules();
|
|
395
418
|
if (!designState && !flag) {
|
|
396
419
|
clearValidate();
|
|
@@ -403,10 +426,11 @@ function useField(props, isInitModelValue = true) {
|
|
|
403
426
|
getFormRef().clearValidate(getPropName.value);
|
|
404
427
|
};
|
|
405
428
|
const getVfCtx = () => {
|
|
406
|
-
|
|
429
|
+
var _a;
|
|
430
|
+
return ((_a = getFormRef()) == null ? void 0 : _a.vfCtx) || {};
|
|
407
431
|
};
|
|
408
432
|
const setLabel = (newLabel) => {
|
|
409
|
-
options.
|
|
433
|
+
props.field.options.label = newLabel;
|
|
410
434
|
};
|
|
411
435
|
const focus = () => {
|
|
412
436
|
const fieldEditor2 = getFieldEditor();
|
|
@@ -421,25 +445,25 @@ function useField(props, isInitModelValue = true) {
|
|
|
421
445
|
fieldReadonlyFlag.value = readonlyFlag;
|
|
422
446
|
};
|
|
423
447
|
const addCssClass = (className) => {
|
|
424
|
-
if (!options.
|
|
425
|
-
options.
|
|
448
|
+
if (!props.field.options.customClass) {
|
|
449
|
+
props.field.options.customClass = [className];
|
|
426
450
|
} else {
|
|
427
|
-
options.
|
|
451
|
+
props.field.options.customClass.push(className);
|
|
428
452
|
}
|
|
429
453
|
};
|
|
430
|
-
const customClass = computed(() => options.
|
|
454
|
+
const customClass = computed(() => props.field.options.customClass);
|
|
431
455
|
const removeCssClass = (className) => {
|
|
432
|
-
if (!options.
|
|
456
|
+
if (!props.field.options.customClass) {
|
|
433
457
|
return;
|
|
434
458
|
}
|
|
435
459
|
let foundIdx = -1;
|
|
436
|
-
options.
|
|
460
|
+
props.field.options.customClass.map((cc, idx) => {
|
|
437
461
|
if (cc === className) {
|
|
438
462
|
foundIdx = idx;
|
|
439
463
|
}
|
|
440
464
|
});
|
|
441
465
|
if (foundIdx > -1) {
|
|
442
|
-
options.
|
|
466
|
+
props.field.options.customClass.splice(foundIdx, 1);
|
|
443
467
|
}
|
|
444
468
|
};
|
|
445
469
|
const getEl = () => {
|
|
@@ -447,7 +471,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
447
471
|
return (_a = fieldEditor.value) == null ? void 0 : _a.$el;
|
|
448
472
|
};
|
|
449
473
|
const setWidgetOption = (optionName, optionValue) => {
|
|
450
|
-
options
|
|
474
|
+
props.field.options[optionName] = optionValue;
|
|
451
475
|
};
|
|
452
476
|
const options = computed({
|
|
453
477
|
get() {
|
|
@@ -458,7 +482,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
458
482
|
}
|
|
459
483
|
});
|
|
460
484
|
const initFieldModel = () => {
|
|
461
|
-
const defaultValue = typeof options.
|
|
485
|
+
const defaultValue = typeof props.field.options.defaultValue === "undefined" ? "" : props.field.options.defaultValue;
|
|
462
486
|
dispatch("VFormRender", "fieldChange", {
|
|
463
487
|
fieldName: getPropName.value,
|
|
464
488
|
value: defaultValue,
|
|
@@ -479,11 +503,12 @@ function useField(props, isInitModelValue = true) {
|
|
|
479
503
|
unregisterFromRefList();
|
|
480
504
|
});
|
|
481
505
|
const defineExposed = {
|
|
506
|
+
subFormRowIndex: computed(() => props.subFormRowIndex),
|
|
482
507
|
i18nt,
|
|
483
508
|
options,
|
|
484
509
|
proxy: instance == null ? void 0 : instance.proxy,
|
|
485
510
|
field,
|
|
486
|
-
widget:
|
|
511
|
+
widget: field,
|
|
487
512
|
fieldModel,
|
|
488
513
|
fieldEditor,
|
|
489
514
|
isReadMode,
|
|
@@ -505,14 +530,17 @@ function useField(props, isInitModelValue = true) {
|
|
|
505
530
|
removeCssClass,
|
|
506
531
|
setRequired,
|
|
507
532
|
clearValidate,
|
|
508
|
-
focus
|
|
509
|
-
executeWidgetEventFunction
|
|
533
|
+
focus
|
|
510
534
|
};
|
|
511
535
|
return {
|
|
536
|
+
executeWidgetEventFunction,
|
|
512
537
|
asyncExecuteFunction,
|
|
513
538
|
executeFunction,
|
|
539
|
+
options,
|
|
514
540
|
customClass,
|
|
541
|
+
fieldEditor,
|
|
515
542
|
// 状态
|
|
543
|
+
fieldModel,
|
|
516
544
|
oldFieldValue,
|
|
517
545
|
fieldReadonlyFlag,
|
|
518
546
|
loading,
|
|
@@ -520,12 +548,15 @@ function useField(props, isInitModelValue = true) {
|
|
|
520
548
|
uploadData,
|
|
521
549
|
designState,
|
|
522
550
|
customToolbar,
|
|
551
|
+
i18nt,
|
|
523
552
|
i18n2t,
|
|
524
553
|
size,
|
|
554
|
+
field,
|
|
525
555
|
// 计算属性
|
|
526
556
|
formConfig,
|
|
527
557
|
subFormName,
|
|
528
558
|
formModel,
|
|
559
|
+
isReadMode,
|
|
529
560
|
// 方法
|
|
530
561
|
handleHidden,
|
|
531
562
|
handleDisabled,
|
|
@@ -544,13 +575,15 @@ function useField(props, isInitModelValue = true) {
|
|
|
544
575
|
handleBlurCustomEvent,
|
|
545
576
|
emitAppendButtonClick,
|
|
546
577
|
handleOnChange,
|
|
578
|
+
onClick,
|
|
547
579
|
handleClickIcon,
|
|
580
|
+
getFieldEditor,
|
|
548
581
|
showFileList,
|
|
549
582
|
setAppendButtonVisible,
|
|
550
583
|
setAppendButtonDisabled,
|
|
584
|
+
focus,
|
|
551
585
|
setUploadData,
|
|
552
586
|
isSubFormField,
|
|
553
|
-
...defineExposed,
|
|
554
587
|
defineExposed
|
|
555
588
|
};
|
|
556
589
|
}
|