@kp-ui/lowcode-pc 1.0.0-alpha.2 → 1.0.0-alpha.3
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/CustomerModal.mjs +1 -0
- package/assets/CustomerModal.mjs.map +1 -0
- package/assets/bpmn-editor-widget.mjs +1 -0
- package/assets/bpmn-editor-widget.mjs.map +1 -0
- package/assets/button-list-widget.mjs +1 -0
- package/assets/button-list-widget.mjs.map +1 -0
- package/assets/button-widget.mjs +1 -0
- package/assets/button-widget.mjs.map +1 -0
- package/assets/cascader-widget.mjs +1 -0
- package/assets/cascader-widget.mjs.map +1 -0
- package/assets/checkbox-widget.mjs +1 -0
- package/assets/checkbox-widget.mjs.map +1 -0
- package/assets/code-editor-widget.mjs +1 -0
- package/assets/code-editor-widget.mjs.map +1 -0
- package/assets/color-widget.mjs +1 -0
- package/assets/color-widget.mjs.map +1 -0
- package/assets/data-table-widget.mjs +1 -0
- package/assets/data-table-widget.mjs.map +1 -0
- package/assets/date-range-widget.mjs +1 -0
- package/assets/date-range-widget.mjs.map +1 -0
- package/assets/date-widget.mjs +1 -0
- package/assets/date-widget.mjs.map +1 -0
- package/assets/divider-widget.mjs +1 -0
- package/assets/divider-widget.mjs.map +1 -0
- package/assets/diy-compontent-widget.mjs +1 -0
- package/assets/diy-compontent-widget.mjs.map +1 -0
- package/assets/dropdown-widget.mjs +1 -0
- package/assets/dropdown-widget.mjs.map +1 -0
- package/assets/en-US.mjs +1 -0
- package/assets/en-US.mjs.map +1 -0
- package/assets/en-US_extension.mjs +1 -0
- package/assets/en-US_extension.mjs.map +1 -0
- package/assets/en-US_render.mjs +1 -0
- package/assets/en-US_render.mjs.map +1 -0
- package/assets/file-upload-widget.mjs +1 -0
- package/assets/file-upload-widget.mjs.map +1 -0
- package/assets/form-item-wrapper.mjs +1 -0
- package/assets/form-item-wrapper.mjs.map +1 -0
- package/assets/grid-col-widget.mjs +1 -0
- package/assets/grid-col-widget.mjs.map +1 -0
- package/assets/grid-sub-form-widget.mjs +1 -0
- package/assets/grid-sub-form-widget.mjs.map +1 -0
- package/assets/grid-widget.mjs +1 -0
- package/assets/grid-widget.mjs.map +1 -0
- package/assets/html-text-widget.mjs +1 -0
- package/assets/html-text-widget.mjs.map +1 -0
- package/assets/input-widget.mjs +1 -0
- package/assets/input-widget.mjs.map +1 -0
- package/assets/install.mjs +68 -67
- package/assets/install.mjs.map +1 -0
- package/assets/number-widget.mjs +1 -0
- package/assets/number-widget.mjs.map +1 -0
- package/assets/radio-widget.mjs +1 -0
- package/assets/radio-widget.mjs.map +1 -0
- package/assets/rate-widget.mjs +1 -0
- package/assets/rate-widget.mjs.map +1 -0
- package/assets/rich-editor-widget.mjs +1 -0
- package/assets/rich-editor-widget.mjs.map +1 -0
- package/assets/select-widget.mjs +1 -0
- package/assets/select-widget.mjs.map +1 -0
- package/assets/slider-widget.mjs +1 -0
- package/assets/slider-widget.mjs.map +1 -0
- package/assets/static-text-widget.mjs +1 -0
- package/assets/static-text-widget.mjs.map +1 -0
- package/assets/switch-widget.mjs +1 -0
- package/assets/switch-widget.mjs.map +1 -0
- package/assets/tab-widget.mjs +1 -0
- package/assets/tab-widget.mjs.map +1 -0
- package/assets/textarea-widget.mjs +1 -0
- package/assets/textarea-widget.mjs.map +1 -0
- package/assets/time-range-widget.mjs +1 -0
- package/assets/time-range-widget.mjs.map +1 -0
- package/assets/time-widget.mjs +1 -0
- package/assets/time-widget.mjs.map +1 -0
- package/assets/tree-widget.mjs +1 -0
- package/assets/tree-widget.mjs.map +1 -0
- package/assets/treeSelect-widget.mjs +1 -0
- package/assets/treeSelect-widget.mjs.map +1 -0
- package/assets/useCustomerModal.mjs +1 -0
- package/assets/useCustomerModal.mjs.map +1 -0
- package/assets/useField.mjs +1 -0
- package/assets/useField.mjs.map +1 -0
- package/assets/useSelect.mjs +1 -0
- package/assets/useSelect.mjs.map +1 -0
- package/assets/vf-box-widget.mjs +1 -0
- package/assets/vf-box-widget.mjs.map +1 -0
- package/assets/vf-collapse-widget.mjs +1 -0
- package/assets/vf-collapse-widget.mjs.map +1 -0
- package/assets/vf-dialog-widget.mjs +1 -0
- package/assets/vf-dialog-widget.mjs.map +1 -0
- package/assets/vue-render-widget.mjs +1 -0
- package/assets/vue-render-widget.mjs.map +1 -0
- package/assets/zh-CN.mjs +1 -0
- package/assets/zh-CN.mjs.map +1 -0
- package/assets/zh-CN_extension.mjs +1 -0
- package/assets/zh-CN_extension.mjs.map +1 -0
- package/assets/zh-CN_render.mjs +1 -0
- package/assets/zh-CN_render.mjs.map +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -0
- package/package.json +4 -1
package/assets/number-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-widget.mjs","sources":["../../src/components/field-widget/number-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-input-number\n ref=\"fieldEditor\"\n :size=\"size\"\n v-model:value=\"fieldModel\"\n v-show=\"!isReadMode\"\n class=\"full-width-input\"\n :disabled=\"handleDisabled\"\n :controls-position=\"field.options.controlsPosition\"\n :placeholder=\"field.options.placeholder\"\n :min=\"field.options.min\"\n :max=\"field.options.max\"\n :precision=\"field.options.precision\"\n :step=\"field.options.step\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ fieldModel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.number,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n field,\n fieldModel,\n isReadMode,\n size,\n\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cAnDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAoBoB,iBApBpBC,WAoBoB,EAAA,KAAA,EAAA,GApBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAeE;AAAA,yBAfFI,YAeE,2BAAA;AAAA,YAdE,KAAI;AAAA,YACH,MAAMJ,MAAA,IAAA;AAAA,YACC,OAAOA,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAEzB,OAAM;AAAA,YACL,UAAUA,MAAA,cAAA;AAAA,YACV,qBAAmBA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACjC,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA;qBAVEA,MAAA,UAAA,CAAU;AAAA,UAAA;UAYPA,MAAA,UAAA,kBACZK,mBAAyD,QAAzD,YAAyDC,gBAApBN,MAAA,UAAA,CAAU,GAAA,CAAA;;;;;;;"}
|
package/assets/radio-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-widget.mjs","sources":["../../src/components/field-widget/radio-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-radio-group\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :size=\"size\"\n v-if=\"!isReadMode\"\n :disabled=\"handleDisabled\"\n >\n <a-radio\n v-for=\"(item, index) in field.options.optionItems\"\n :key=\"index\"\n :value=\"item[field.options.valueKey]\"\n :disabled=\"item.disabled\"\n :border=\"field.options.border\"\n :style=\"{ display: field.options.displayStyle }\"\n >\n {{ item[field.options.labelKey] }}\n </a-radio>\n </a-radio-group>\n <template v-else=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ optionLabel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { useSelect } from './hooks/useSelect';\n import { onMounted } from 'vue';\n defineOptions({\n name: WidgetTypeEnum.radio,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n const {\n rules,\n field,\n fieldModel,\n isReadMode,\n designState,\n size,\n handleHidden,\n handleDisabled,\n fieldEditor,\n defineExposed\n } = useField(props);\n\n const { optionLabel, initOptionItems } = useSelect({\n designState,\n fieldModel,\n field: props.field\n });\n onMounted(() => {\n initOptionItems();\n });\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_Fragment","_renderList","_normalizeStyle","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AACd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,aAAa,gBAAA,IAAoB,UAAU;AAAA,MAC/C;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,IAAA,CAChB;AACD,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AACD,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;;cA5DuDA,MAAA,YAAA,KAAxDC,aAAAC,YAsBoB,iBAtBpBC,WAsBoB,EAAA,KAAA,EAAA,GAtBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAiBgB;AAAA,WAbLA,MAAA,UAAA,kBAJXE,YAiBgB,0BAAA;AAAA;qBAhBR;AAAA,YAAJ,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YACxB,MAAMA,MAAA,IAAA;AAAA,YAEN,UAAUA,MAAA,cAAA;AAAA,UAAA;6BAGP,MAAkD;AAAA,gCADtDI,mBASUC,UAAA,MAAAC,WARkBN,aAAM,QAAQ,aAAW,CAAzC,MAAM,UAAK;oCADvBE,YASU,oBAAA;AAAA,kBAPL,KAAK;AAAA,kBACL,OAAO,KAAKF,aAAM,QAAQ,QAAQ;AAAA,kBAClC,UAAU,KAAK;AAAA,kBACf,QAAQA,MAAA,KAAA,EAAM,QAAQ;AAAA,kBACtB,OAAKO,eAAA,EAAA,SAAaP,MAAA,KAAA,EAAM,QAAQ,aAAA,CAAY;AAAA,gBAAA;mCAE7C,MAAkC;AAAA,oBAA/BQ,gBAAAC,gBAAA,KAAKT,MAAA,KAAA,EAAM,QAAQ,QAAQ,CAAA,GAAA,CAAA;AAAA,kBAAA;;;;;;gEAIlCI,mBAA0D,QAA1D,YAA0DK,gBAArBT,MAAA,WAAA,CAAW,GAAA,CAAA;AAAA,QAAA;;;;;;;"}
|
package/assets/rate-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-widget.mjs","sources":["../../src/components/field-widget/rate-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-rate\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :count=\"field.options.count\"\n :allow-half=\"field.options.allowHalf\"\n />\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.rate,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, fieldEditor, field, fieldModel, handleHidden, handleDisabled, defineExposed } =\n useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,aAAa,OAAO,YAAY,cAAc,gBAAgB,cAAA,IACzE,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA5BwCA,MAAA,YAAA,KAAzCC,aAAAC,YASoB,iBATpBC,WASoB,EAAA,KAAA,EAAA,GATO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAOE;AAAA,UAPFI,YAOE,mBAAA;AAAA,qBANM;AAAA,YAAJ,KAAI;AAAA,YACI,OAAOJ,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YACxB,UAAUA,MAAA,cAAA;AAAA,YACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC1B,OAAOA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACrB,cAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,UAAA;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-editor-widget.mjs","sources":["../../src/components/field-widget/rich-editor-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"rich-editor-widget\" v-if=\"!isReadMode\">\n <QuillEditor\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :options=\"editorOption\"\n :disabled=\"handleDisabled || isReadMode\"\n :style=\"\n !!field.options.contentHeight ? `height: ${field.options.contentHeight};` : ''\n \"\n />\n </div>\n <div class=\"readonly-mode-rich-editor\" v-else v-html=\"fieldModel\"> </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { FieldProps, useField } from './useField';\n import { computed, watchEffect } from 'vue';\n import { QuillEditor } from 'tmgc2-share';\n\n defineOptions({\n name: WidgetTypeEnum.richEditor,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n handleHidden,\n handleDisabled,\n defineExposed\n } = useField(props);\n\n const editorOption = computed(() => {\n return {\n placeholder: field.options.placeholder,\n modules: {}\n };\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .rich-editor-widget {\n :deep(.ql-toolbar.ql-snow) {\n border-color: #d9d9d9;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n :deep(.ql-container.ql-snow) {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n border-color: #d9d9d9;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_createVNode","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,eAAe,SAAS,MAAM;AAChC,aAAO;AAAA,QACH,aAAa,MAAM,QAAQ;AAAA,QAC3B,SAAS,CAAA;AAAA,MAAC;AAAA,IAElB,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAjDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAaoB,iBAbpBC,WAaoB,EAAA,KAAA,EAAA,GAbO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAUM;AAAA,WAViCA,MAAA,UAAA,KAAvCC,aAAAG,mBAUM,OAVN,YAUM;AAAA,YATFC,YAQEL,MAAA,WAAA,GAAA;AAAA,uBAPM;AAAA,cAAJ,KAAI;AAAA,cACI,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,SAAS,aAAA;AAAA,cACT,UAAUA,MAAA,cAAA,KAAkBA,MAAA,UAAA;AAAA,cAC5B,OAAKM;AAAAA,kBAAyBN,MAAA,KAAA,EAAM,QAAQ,2BAA2BA,MAAA,KAAA,EAAM,QAAQ,aAAa,MAAA;AAAA,cAAA;AAAA;8BAK3GI,mBAAyE,OAAA;AAAA;YAApE,OAAM;AAAA,YAAmC,WAAQJ,MAAA,UAAA;AAAA,UAAA;;;;;;;;"}
|
package/assets/select-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-widget.mjs","sources":["../../src/components/field-widget/select-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div\n class=\"design-select-box\"\n :class=\"{ useModal: field.options.useModal }\"\n v-show=\"!isReadMode\"\n >\n <a-select\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n v-show=\"!isReadMode\"\n :size=\"size\"\n class=\"full-width-input\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :showArrow=\"true\"\n :dropdownMatchSelectWidth=\"true\"\n :mode=\"field.options.mode\"\n :maxTagCount=\"field.options.maxTagCount\"\n :placeholder=\"field.options.placeholder || i18nt('render.hint.selectPlaceholder')\"\n :onFocus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n :options=\"field.options.optionItems\"\n v-bind=\"selectOps\"\n />\n <div v-if=\"field.options.useModal\" class=\"useModal-svg\" @click=\"handleClickIcon\">\n <svg-icon icon-class=\"icon-sousuo\" />\n </div>\n </div>\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ optionLabel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { SvgIcon } from 'tmgc2-share';\n import { useField, type FieldProps } from './useField';\n import { useSelect } from './hooks/useSelect';\n import { onMounted } from 'vue';\n defineOptions({\n name: 'select-widget'\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n const {\n rules,\n i18nt,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n\n fieldEditor,\n handleHidden,\n handleDisabled,\n handleClickIcon,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n const { selectOps, optionLabel, initOptionItems, selectDefineExpose } = useSelect({\n field,\n designState,\n fieldModel\n });\n\n onMounted(() => {\n initOptionItems();\n });\n\n defineExpose({\n ...selectDefineExpose,\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n\n .design-select-box {\n display: flex;\n width: 100%;\n &.useModal {\n :deep(.ant-select-selector) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .ant-select {\n flex: 1 0 0;\n min-width: 0;\n }\n .useModal-svg {\n border: 1px solid #d9d9d9;\n // padding-left: 12px;\n cursor: pointer;\n width: 40px;\n background: #fafafa;\n line-height: 30px;\n border-left: 0;\n text-align: center;\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_withDirectives","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CI,UAAM,QAAQ;AACd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,WAAW,aAAa,iBAAiB,mBAAA,IAAuB,UAAU;AAAA,MAC9E;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;AAED,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACN;;;cA5EwCA,MAAA,YAAA,KAAzCC,aAAAC,YA+BoB,iBA/BpBC,WA+BoB,EAAA,KAAA,EAAA,GA/BO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MA0BM;AAAA,yBA1BNI,mBA0BM,OAAA;AAAA,YAzBF,uBAAM,qBAAmB,EAAA,UACLJ,aAAM,QAAQ,UAAQ,CAAA;AAAA,UAAA;YAG1CK,eAAAC,YAiBE,qBAjBFH,WAiBE;AAAA,uBAhBM;AAAA,cAAJ,KAAI;AAAA,cACI,OAAOH,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cAExB,MAAMA,MAAA,IAAA;AAAA,cACP,OAAM;AAAA,cACL,UAAUA,MAAA,cAAA;AAAA,cACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,WAAW;AAAA,cACX,0BAA0B;AAAA,cAC1B,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACpB,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC3B,aAAaA,MAAA,KAAA,EAAM,QAAQ,eAAeA,MAAA,KAAA,EAAK,+BAAA;AAAA,cAC/C,SAASA,MAAA,sBAAA;AAAA,cACT,QAAMA,MAAA,qBAAA;AAAA,cACN,SAASA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAAA,GAChBA,MAAA,SAAA,CAAS,GAAA,MAAA,IAAA,CAAA,SAAA,QAAA,YAAA,cAAA,QAAA,eAAA,eAAA,WAAA,UAAA,SAAA,CAAA,GAAA;AAAA,uBAbRA,MAAA,UAAA,CAAU;AAAA,YAAA;YAeZA,MAAA,KAAA,EAAM,QAAQ,yBAAzBO,mBAEM,OAAA;AAAA;cAF6B,OAAM;AAAA,cAAgB,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,2BAAEP,MAAA,eAAA,KAAAA,MAAA,eAAA,EAAA,GAAA,IAAA;AAAA,YAAA;cAC5DM,YAAqCN,MAAA,OAAA,GAAA,EAA3B,cAAW,eAAa;AAAA,YAAA;;qBArB7BA,MAAA,UAAA,CAAU;AAAA,UAAA;UAwBPA,MAAA,UAAA,kBACZO,mBAA0D,QAA1D,YAA0DC,gBAArBR,MAAA,WAAA,CAAW,GAAA,CAAA;;;;;;;;"}
|
package/assets/slider-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-widget.mjs","sources":["../../src/components/field-widget/slider-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-slider\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n v-if=\"!isReadMode\"\n :disabled=\"handleDisabled\"\n :min=\"field.options.min\"\n :max=\"field.options.max\"\n :step=\"field.options.step\"\n :range=\"field.options.range\"\n :vertical=\"field.options.vertical\"\n />\n <template v-else>\n <span class=\"readonly-mode-field\">{{ fieldModel }}</span>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.slider,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n handleHidden,\n handleDisabled,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA4BI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA3CwCA,MAAA,YAAA,KAAzCC,aAAAC,YAeoB,iBAfpBC,WAeoB,EAAA,KAAA,EAAA,GAfO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAUE;AAAA,WAPSA,MAAA,UAAA,kBAHXE,YAUE,qBAAA;AAAA;qBATM;AAAA,YAAJ,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAExB,UAAUA,MAAA,cAAA;AAAA,YACV,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,KAAKA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACnB,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,OAAOA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACrB,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,UAAA,+FAGzBI,mBAAyD,QAAzD,YAAyDC,gBAApBL,MAAA,UAAA,CAAU,GAAA,CAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-text-widget.mjs","sources":["../../src/components/field-widget/static-text-widget.vue"],"sourcesContent":["<template>\n <div ref=\"fieldEditor\" v-if=\"!handleHidden\">{{ field.options.textContent }}</div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.staticText,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, fieldEditor, field, handleHidden, defineExposed } = useField(props);\n\n const displayStyle = computed(() => field.options.bodyStyle || {});\n\n defineExpose({\n ...defineExposed\n });\n</script>\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaI,UAAM,QAAQ;AAEd,UAAM,EAAS,aAAa,OAAO,cAAc,cAAA,IAAkB,SAAS,KAAK;AAE5D,aAAS,MAAM,MAAM,QAAQ,aAAa,CAAA,CAAE;AAEjE,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cApB6BA,MAAA,YAAA,kBAA9BC,mBAAiF,OAAA;AAAA;iBAAxE;AAAA,QAAJ,KAAI;AAAA,MAAA,mBAAsCD,MAAA,KAAA,EAAM,QAAQ,WAAW,GAAA,GAAA;;;;"}
|
package/assets/switch-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-widget.mjs","sources":["../../src/components/field-widget/switch-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <a-switch\n ref=\"fieldEditor\"\n v-model:checked=\"fieldModel\"\n :disabled=\"isReadMode || handleDisabled\"\n :checkedValue=\"field.options.checkedValue\"\n :unCheckedValue=\"field.options.unCheckedValue\"\n :style=\"{ width: field.options.switchWidth + 'px' }\"\n />\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.switch,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n handleHidden,\n handleDisabled,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n\n .readonly-mode-switch {\n display: none;\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createVNode","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cArCwCA,MAAA,YAAA,KAAzCC,aAAAC,YASoB,iBATpBC,WASoB,EAAA,KAAA,EAAA,GATO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAOE;AAAA,UAPFI,YAOE,qBAAA;AAAA,qBANM;AAAA,YAAJ,KAAI;AAAA,YACI,SAASJ,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,YAC1B,UAAUA,MAAA,UAAA,KAAcA,MAAA,cAAA;AAAA,YACxB,cAAcA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC5B,gBAAgBA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC9B,OAAKK,eAAA,EAAA,OAAWL,MAAA,KAAA,EAAM,QAAQ,cAAW,KAAA,CAAA;AAAA,UAAA;;;;;;;;"}
|
package/assets/tab-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-widget.mjs","sources":["../../src/components/desginer/form-widget/container-widget/tab-widget.vue"],"sourcesContent":["<template>\n <div :key=\"widget.id\" class=\"tab-container container-design-widget\">\n <a-tabs\n :type=\"widget.options.type\"\n :tabBarGutter=\"widget.options.tabBarGutter\"\n :tabPosition=\"widget.options.tabPosition\"\n v-model:activeKey=\"widget.options.activeTab\"\n @tab-click=\"onTabClick\"\n >\n <a-tab-pane\n v-for=\"tab in widget.tabs\"\n :tab=\"tab.options.label\"\n :key=\"tab.options.label\"\n >\n <div class=\"tab-content-wrapper\">\n <RenderWidgetList v-model:list=\"tab.widgetList\" :parentWidget=\"widget\" />\n </div>\n </a-tab-pane>\n </a-tabs>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { useAppRef, RenderWidgetList } from '@kp-ui/lowcode-core';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { TabWidget } from '../../widget-panel/containers';\n\n defineOptions({\n name: ContainerTypeEnum.Tab,\n componentName: ComponentNameEnum.ContainerWidget\n });\n\n const props = defineProps<WidgetProps<TabWidget>>();\n const { initRefList } = useAppRef();\n\n const onTabClick = key => {\n props.widget.options.activeTab = key;\n };\n\n initRefList();\n</script>\n\n<style lang=\"scss\" scoped>\n .tab-container {\n .form-widget-list {\n min-height: 28px;\n }\n :deep(.ant-tabs) {\n &.ant-tabs-bottom .ant-tabs-nav-wrap,\n &.ant-tabs-top .ant-tabs-nav-wrap {\n padding-left: 26px;\n }\n }\n }\n</style>\n"],"names":["_createElementBlock","widget","_createVNode","_openBlock","_Fragment","_renderList","_createBlock","_createElementVNode","_unref"],"mappings":";;;;;;;;;;;;;;;;;;AAgCI,UAAM,QAAQ;AACd,UAAM,EAAE,YAAA,IAAgB,UAAA;AAExB,UAAM,aAAa,CAAA,QAAO;AACtB,YAAM,OAAO,QAAQ,YAAY;AAAA,IACrC;AAEA,gBAAA;;;;0BAtCAA,mBAkBM,OAAA;AAAA,QAlBA,KAAKC,KAAAA,OAAO;AAAA,QAAI,OAAM;AAAA,MAAA;QACxBC,YAgBS,mBAAA;AAAA,UAfJ,MAAMD,KAAAA,OAAO,QAAQ;AAAA,UACrB,cAAcA,KAAAA,OAAO,QAAQ;AAAA,UAC7B,aAAaA,KAAAA,OAAO,QAAQ;AAAA,UACrB,WAAWA,KAAAA,OAAO,QAAQ;AAAA,sEAAfA,KAAAA,OAAO,QAAQ,YAAS;AAAA,UAC1C;AAAA,QAAA;2BAGG,MAA0B;AAAA,aAD9BE,UAAA,IAAA,GAAAH,mBAQaI,UAAA,MAAAC,WAPKJ,KAAAA,OAAO,OAAd,QAAG;kCADdK,YAQa,uBAAA;AAAA,gBANR,KAAK,IAAI,QAAQ;AAAA,gBACjB,KAAK,IAAI,QAAQ;AAAA,cAAA;iCAElB,MAEM;AAAA,kBAFNC,mBAEM,OAFN,YAEM;AAAA,oBADFL,YAAyEM,MAAA,gBAAA,GAAA;AAAA,sBAA/C,MAAM,IAAI;AAAA,sBAAJ,iBAAA,CAAA,WAAA,IAAI,aAAU;AAAA,sBAAG,cAAcP,KAAAA;AAAAA,oBAAAA;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea-widget.mjs","sources":["../../src/components/field-widget/textarea-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" :rules=\"rules\" v-if=\"!handleHidden\">\n <a-textarea\n type=\"textarea\"\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n v-if=\"!isReadMode\"\n :size=\"size\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :readonly=\"field.options.readonly\"\n :placeholder=\"field.options.placeholder\"\n :rows=\"field.options.rows\"\n :minlength=\"field.options.minLength\"\n :maxlength=\"field.options.maxLength\"\n :showCount=\"field.options.showCount\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-else=\"isReadMode\">\n <div v-html=\"fieldModel\" class=\"readonly-mode-field\"></div>\n </template>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.textarea,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n field,\n fieldModel,\n isReadMode,\n size,\n\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .readonly-mode-field {\n display: inline-block;\n white-space: pre-wrap;\n line-height: 1.5;\n max-height: 100px;\n overflow-y: auto;\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cAnDuDA,MAAA,YAAA,KAAxDC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAG,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC3C,MAgBE;AAAA,WAZSA,MAAA,UAAA,kBAJXE,YAgBE,uBAAA;AAAA;YAfE,MAAK;AAAA,YACL,KAAI;AAAA,YACI,OAAOF,MAAA,UAAA;AAAA,wFAAA,WAAU,QAAA,SAAA;AAAA,YAExB,MAAMA,MAAA,IAAA;AAAA,YACN,UAAUA,MAAA,cAAA;AAAA,YACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC1B,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACxB,aAAaA,MAAA,KAAA,EAAM,QAAQ;AAAA,YAC3B,MAAMA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACpB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,YACzB,SAAOA,MAAA,sBAAA;AAAA,YACP,QAAMA,MAAA,qBAAA;AAAA,UAAA,yKAGPI,mBAA2D,OAAA;AAAA;YAAtD,WAAQJ,MAAA,UAAA;AAAA,YAAY,OAAM;AAAA,UAAA;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-range-widget.mjs","sources":["../../src/components/field-widget/time-range-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div\n :class=\"[\n !!field.options.autoFullWidth ? 'auto-full-width' : '',\n isReadMode ? 'readonly-mode-time-range' : ''\n ]\"\n >\n <a-time-range-picker\n ref=\"fieldEditor\"\n :size=\"size\"\n v-model:value=\"fieldModel\"\n :class=\"[!!field.options.autoFullWidth ? 'full-width-input' : '']\"\n :disabled=\"handleDisabled\"\n :readonly=\"field.options.readonly\"\n :inputReadOnly=\"field.options.readonly\"\n :allowClear=\"field.options.allowClear\"\n :format=\"field.options.format\"\n value-format=\"HH:mm:ss\"\n :placeholder=\"[\n field.options.startPlaceholder || i18nt('render.hint.startTimePlaceholder'),\n field.options.endPlaceholder || i18nt('render.hint.endTimePlaceholder')\n ]\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ contentForReadMode }}</span>\n </template>\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { computed } from 'vue';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.timeRange,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n const contentForReadMode = computed(() => {\n if (!fieldModel.value) {\n return '--';\n } else {\n return fieldModel.value?.join('-');\n }\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n\n .auto-full-width {\n width: 100%;\n\n :deep(.ant-picker) {\n width: 100% !important;\n }\n }\n\n .readonly-mode-time-range {\n :deep(.ant-picker) {\n display: none;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_normalizeClass","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2CI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,qBAAqB,SAAS,MAAM;;AACtC,UAAI,CAAC,WAAW,OAAO;AACnB,eAAO;AAAA,MACX,OAAO;AACH,gBAAO,gBAAW,UAAX,mBAAkB,KAAK;AAAA,MAClC;AAAA,IACJ,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cArEwCA,MAAA,YAAA,KAAzCC,aAAAC,YA6BoB,iBA7BpBC,WA6BoB,EAAA,KAAA,EAAA,GA7BO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MA2BM;AAAA,UA3BNI,mBA2BM,OAAA;AAAA,YA1BD,OAAKC,eAAA;AAAA,gBAAsBL,MAAA,KAAA,EAAM,QAAQ,gBAAa,oBAAA;AAAA,cAA2CA,MAAA,UAAA,IAAU,6BAAA;AAAA,YAAA;;YAK5GM,YAiBE,gCAAA;AAAA,uBAhBM;AAAA,cAAJ,KAAI;AAAA,cACH,MAAMN,MAAA,IAAA;AAAA,cACC,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,OAAKK,eAAA,CAAA,CAAA,CAAKL,MAAA,KAAA,EAAM,QAAQ,gBAAa,qBAAA,EAAA,CAAA;AAAA,cACrC,UAAUA,MAAA,cAAA;AAAA,cACV,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,eAAeA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC7B,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,QAAQA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACvB,gBAAa;AAAA,cACZ,aAAW;AAAA,gBAAwBA,MAAA,KAAA,EAAM,QAAQ,oBAAoBA,MAAA,KAAA,EAAK,kCAAA;AAAA,gBAA0DA,MAAA,KAAA,EAAM,QAAQ,kBAAkBA,MAAA,KAAA,EAAK,gCAAA;AAAA,cAAA;AAAA,cAIzK,SAAOA,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;YAEKA,MAAA,UAAA,kBACZO,mBAAiE,QAAjE,YAAiEC,gBAA5B,mBAAA,KAAkB,GAAA,CAAA;;;;;;;;;"}
|
package/assets/time-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-widget.mjs","sources":["../../src/components/field-widget/time-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div\n :class=\"[\n !!field.options.autoFullWidth ? 'auto-full-width' : '',\n isReadMode ? 'readonly-mode-time' : ''\n ]\"\n >\n <a-time-picker\n :size=\"size\"\n ref=\"fieldEditor\"\n v-model:value=\"fieldModel\"\n :disabled=\"handleDisabled\"\n :inputReadOnly=\"field.options.readonly\"\n :readonly=\"field.options.readonly\"\n :allowClear=\"field.options.allowClear\"\n :format=\"field.options.format\"\n value-format=\"HH:mm:ss\"\n :placeholder=\"field.options.placeholder || i18nt('render.hint.timePlaceholder')\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ fieldModel }}</span>\n </template>\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n defineOptions({\n name: WidgetTypeEnum.time,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n field,\n fieldModel,\n isReadMode,\n size,\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n<style lang=\"scss\" scoped>\n /* form-item-wrapper已引入,还需要重复引入吗? */\n\n .auto-full-width {\n width: 100%;\n\n :deep(.ant-picker) {\n width: 100% !important;\n }\n }\n\n .readonly-mode-time {\n :deep(.ant-picker) {\n display: none;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_normalizeClass","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cAvDwCA,MAAA,YAAA,KAAzCC,aAAAC,YAyBoB,iBAzBpBC,WAyBoB,EAAA,KAAA,EAAA,GAzBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAuBM;AAAA,UAvBNI,mBAuBM,OAAA;AAAA,YAtBD,OAAKC,eAAA;AAAA,gBAAsBL,MAAA,KAAA,EAAM,QAAQ,gBAAa,oBAAA;AAAA,cAA2CA,MAAA,UAAA,IAAU,uBAAA;AAAA,YAAA;;YAK5GM,YAaE,0BAAA;AAAA,cAZG,MAAMN,MAAA,IAAA;AAAA,cACP,KAAI;AAAA,cACI,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,UAAUA,MAAA,cAAA;AAAA,cACV,eAAeA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC7B,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,QAAQA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACvB,gBAAa;AAAA,cACZ,aAAaA,MAAA,KAAA,EAAM,QAAQ,eAAeA,MAAA,KAAA,EAAK,6BAAA;AAAA,cAC/C,SAAOA,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;YAEKA,MAAA,UAAA,kBACZO,mBAAyD,QAAzD,YAAyDC,gBAApBR,MAAA,UAAA,CAAU,GAAA,CAAA;;;;;;;;;"}
|
package/assets/tree-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-widget.mjs","sources":["../../src/components/field-widget/tree-widget.vue"],"sourcesContent":["<template>\n <FormItemWrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"full-width-input\">\n <Tree\n :size=\"size\"\n :show-line=\"field.options.showLine\"\n :showIcon=\"field.options.showIcon\"\n :treeData=\"treeData || []\"\n :tree-default-expand-all=\"field.options.treeDefaultExpandAll\"\n :checkable=\"field.options.checkable\"\n ref=\"fieldEditor\"\n :fieldNames=\"{ key: valueKey, title: labelKey, children: childrenKey }\"\n :multiple=\"field.options.multiple\"\n :selectable=\"field.options.selectable\"\n @check=\"onCheck\"\n />\n </div>\n </FormItemWrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { Tree } from 'ant-design-vue';\n import { useField, type FieldProps } from './useField';\n import { WidgetTypeEnum, ComponentNameEnum } from '@kp-ui/lowcode-core';\n import { useSelect } from './hooks/useSelect';\n import { ref, watchEffect } from 'vue';\n import { TreeWidget } from '../../widget-panel/advanced/tree';\n defineOptions({\n name: WidgetTypeEnum.cascader,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps<TreeWidget>>(), {});\n\n const {\n rules,\n executeFunction,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n defineExposed\n } = useField(props);\n\n const { labelKey, valueKey, childrenKey } = useSelect({\n field,\n fieldModel,\n designState\n });\n\n const treeData = ref<any[]>([]);\n\n const onCheck = (checkedKeys, e) => {\n if (!field.options.onCheck) {\n return;\n }\n executeFunction({\n functionBody: field.options.onCheck,\n params: { checkedKeys, e },\n keys: ['checkedKeys', 'e'],\n errorCallback: error => {\n console.error('Custom render error:', error);\n }\n });\n };\n\n watchEffect(() => {\n if (props.field.options.dsEnabled) {\n } else {\n treeData.value = props.field.options.treeData || [];\n }\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped>\n :deep(.ant-tree) {\n background: transparent;\n .ant-tree-checkbox {\n margin-block-start: 0;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,UAAU,UAAU,YAAA,IAAgB,UAAU;AAAA,MAClD;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;AAED,UAAM,WAAW,IAAW,EAAE;AAE9B,UAAM,UAAU,CAAC,aAAa,MAAM;AAChC,UAAI,CAAC,MAAM,QAAQ,SAAS;AACxB;AAAA,MACJ;AACA,sBAAgB;AAAA,QACZ,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,aAAa,EAAA;AAAA,QACvB,MAAM,CAAC,eAAe,GAAG;AAAA,QACzB,eAAe,CAAA,UAAS;AACpB,kBAAQ,MAAM,wBAAwB,KAAK;AAAA,QAC/C;AAAA,MAAA,CACH;AAAA,IACL;AAEA,gBAAY,MAAM;AACd,UAAI,MAAM,MAAM,QAAQ,UAAW;AAAA,WAC5B;AACH,iBAAS,QAAQ,MAAM,MAAM,QAAQ,YAAY,CAAA;AAAA,MACrD;AAAA,IACJ,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cA7EsCA,MAAA,YAAA,KAAvCC,aAAAC,YAgBkB,iBAhBlBC,WAgBkB,EAAA,KAAA,EAAA,GAhBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAC9D,MAcM;AAAA,UAdNI,mBAcM,OAdN,YAcM;AAAA,YAbFC,YAYEL,MAAA,IAAA,GAAA;AAAA,cAXG,MAAMA,MAAA,IAAA;AAAA,cACN,aAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACzB,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,UAAU,SAAA,SAAQ,CAAA;AAAA,cAClB,2BAAyBA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACvC,WAAWA,MAAA,KAAA,EAAM,QAAQ;AAAA,uBACtB;AAAA,cAAJ,KAAI;AAAA,cACH,YAAU,EAAA,KAASA,MAAA,QAAA,GAAQ,OAASA,MAAA,QAAA,aAAoBA,MAAA,WAAA,EAAA;AAAA,cACxD,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B;AAAA,YAAA;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeSelect-widget.mjs","sources":["../../src/components/field-widget/treeSelect-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"full-width-input\" :class=\"{ 'readonly-mode-cascader': isReadMode }\">\n <a-tree-select\n v-show=\"!isReadMode\"\n :tree-default-expand-all=\"field.options.treeDefaultExpandAll\"\n ref=\"fieldEditor\"\n :size=\"size\"\n :treeData=\"field.options.optionItems\"\n v-model:value=\"fieldModel\"\n :disabled=\"handleDisabled\"\n :allowClear=\"field.options.allowClear\"\n :placeholder=\"field.options.placeholder || i18nt('render.hint.selectPlaceholder')\"\n :fieldNames=\"{ value: valueKey, label: labelKey, children: childrenKey }\"\n :multiple=\"field.options.multiple\"\n @focus=\"handleFocusCustomEvent\"\n @blur=\"handleBlurCustomEvent\"\n />\n <template v-if=\"isReadMode\">\n <span class=\"readonly-mode-field\">{{ contentForReadMode }}</span>\n </template>\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import FormItemWrapper from './form-item-wrapper.vue';\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import { FieldProps, useField } from './useField';\n import { useSelect } from './hooks/useSelect';\n import { computed, onMounted } from 'vue';\n import { formateCascaderCode } from '@kp-ui/lowcode-core';\n\n defineOptions({\n name: WidgetTypeEnum.treeSelect,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const {\n rules,\n i18nt,\n fieldEditor,\n field,\n fieldModel,\n isReadMode,\n size,\n designState,\n handleHidden,\n handleDisabled,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n defineExposed\n } = useField(props);\n\n const { labelKey, valueKey, childrenKey, initOptionItems } = useSelect({\n field,\n fieldModel,\n designState\n });\n\n onMounted(() => {\n initOptionItems();\n });\n\n const contentForReadMode = computed(() => {\n if (!fieldModel.value) return '';\n return formateCascaderCode(field.options.optionItems, fieldModel.value, {\n label: labelKey.value,\n value: valueKey.value,\n children: childrenKey.value\n });\n });\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_normalizeClass","_createVNode","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCI,UAAM,QAAQ;AAEd,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,SAAS,KAAK;AAElB,UAAM,EAAE,UAAU,UAAU,aAAa,gBAAA,IAAoB,UAAU;AAAA,MACnE;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;AAED,cAAU,MAAM;AACZ,sBAAA;AAAA,IACJ,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACtC,UAAI,CAAC,WAAW,MAAO,QAAO;AAC9B,aAAO,oBAAoB,MAAM,QAAQ,aAAa,WAAW,OAAO;AAAA,QACpE,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,QAChB,UAAU,YAAY;AAAA,MAAA,CACzB;AAAA,IACL,CAAC;AAED,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;;cA3EwCA,MAAA,YAAA,KAAzCC,aAAAC,YAqBoB,iBArBpBC,WAqBoB,EAAA,KAAA,EAAA,GArBO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAmBM;AAAA,UAnBNI,mBAmBM,OAAA;AAAA,YAnBD,OAAKC,eAAA,CAAC,oBAAkB,EAAA,0BAAqCL,MAAA,UAAA,GAAU,CAAA;AAAA,UAAA;2BACxEM,YAcE,0BAAA;AAAA,cAZG,2BAAyBN,MAAA,KAAA,EAAM,QAAQ;AAAA,uBACpC;AAAA,cAAJ,KAAI;AAAA,cACH,MAAMA,MAAA,IAAA;AAAA,cACN,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACjB,OAAOA,MAAA,UAAA;AAAA,0FAAA,WAAU,QAAA,SAAA;AAAA,cACxB,UAAUA,MAAA,cAAA;AAAA,cACV,YAAYA,MAAA,KAAA,EAAM,QAAQ;AAAA,cAC1B,aAAaA,MAAA,KAAA,EAAM,QAAQ,eAAeA,MAAA,KAAA,EAAK,+BAAA;AAAA,cAC/C,YAAU,EAAA,OAAWA,MAAA,QAAA,GAAQ,OAASA,MAAA,QAAA,aAAoBA,MAAA,WAAA,EAAA;AAAA,cAC1D,UAAUA,MAAA,KAAA,EAAM,QAAQ;AAAA,cACxB,SAAOA,MAAA,sBAAA;AAAA,cACP,QAAMA,MAAA,qBAAA;AAAA,YAAA;uBAZEA,MAAA,UAAA,CAAU;AAAA,YAAA;YAcPA,MAAA,UAAA,kBACZO,mBAAiE,QAAjE,YAAiEC,gBAA5B,mBAAA,KAAkB,GAAA,CAAA;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCustomerModal.mjs","sources":["../../src/components/public/CustomerModal/useCustomerModal.tsx"],"sourcesContent":["import { App, createApp, defineAsyncComponent } from 'vue';\n\ntype CustomerModalProps = { type: string; formCode: string; title: string } & Record<string, any>;\n\nexport const openCustomerModal = (ops: CustomerModalProps, app) => {\n const { type, formCode, ...args } = ops;\n\n const div = document.createElement('div');\n document.body.appendChild(div);\n const Com = defineAsyncComponent(() => import('./CustomerModal.vue'));\n\n const hide = (modal: App<Element>) => {\n modal.unmount();\n div.remove();\n };\n\n const onCancel = () => {\n hide(modal);\n };\n\n const modal = createApp(<Com type={type} formCode={formCode} {...{ onCancel }} {...args} />);\n modal._context.components = app._context.components;\n modal._context.config.globalProperties = app._context.config.globalProperties;\n\n modal.mount(div);\n};\n"],"names":["openCustomerModal","ops","app","type","formCode","args","div","document","createElement","body","appendChild","Com","defineAsyncComponent","hide","modal","unmount","remove","onCancel","createApp","_createVNode","_mergeProps","_context","components","config","globalProperties","mount"],"mappings":";MAIaA,oBAAoBA,CAACC,KAAyBC,QAAQ;AAC/D,QAAM;AAAA,IAAEC;AAAAA,IAAMC;AAAAA,IAAU,GAAGC;AAAAA,EAAK,IAAIJ;AAEpC,QAAMK,MAAMC,SAASC,cAAc,KAAK;AACxCD,WAASE,KAAKC,YAAYJ,GAAG;AAC7B,QAAMK,MAAMC,qBAAqB,MAAM,OAAO,qBAAqB,CAAC;AAEpE,QAAMC,OAAQC,CAAAA,WAAwB;AAClCA,IAAAA,OAAMC,QAAO;AACbT,QAAIU,OAAM;AAAA,EACd;AAEA,QAAMC,WAAWA,MAAM;AACnBJ,SAAKC,KAAK;AAAA,EACd;AAEA,QAAMA,QAAQI,UAASC,YAAAR,KAAAS,WAAA;AAAA,IAAA,QAAYjB;AAAAA,IAAI,YAAYC;AAAAA,EAAQ,GAAA;AAAA,IAAQa;AAAAA,KAAgBZ,IAAI,QAAI;AAC3FS,QAAMO,SAASC,aAAapB,IAAImB,SAASC;AACzCR,QAAMO,SAASE,OAAOC,mBAAmBtB,IAAImB,SAASE,OAAOC;AAE7DV,QAAMW,MAAMnB,GAAG;AACnB;"}
|
package/assets/useField.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useField.mjs","sources":["../../src/components/field-widget/useField.ts"],"sourcesContent":["import {\n ref,\n computed,\n inject,\n onMounted,\n onBeforeUnmount,\n getCurrentInstance,\n Ref,\n toRaw\n} from 'vue';\nimport { isArray, eq, get } from 'lodash-es';\nimport { FormConfig, FormValidators, Widget } from '@kp-ui/lowcode-core';\nimport { useEmitter, deepClone, useAppRef, useI18n } from '@kp-ui/lowcode-core';\nimport { useExecFunction } from 'tmgc2-share';\n\nexport type FieldProps<T = Widget> = {\n widget: T;\n field: T;\n designer?: any;\n parentWidget?: Widget | null;\n parentList?: T[] | null;\n indexOfParentList?: number;\n subFormRowIndex?: number;\n subFormRowId?: string;\n subFormColIndex?: number;\n};\n\n/**\n * 表单字段 Hook,提供表单字段的通用功能\n * @returns 表单字段相关的状态和方法\n */\nexport function useField<T extends Widget>(props: FieldProps<T>, isInitModelValue = true) {\n // 注入依赖\n const formConfig = inject<Ref<FormConfig>>('formConfig', ref({} as FormConfig));\n const formModel = inject<Ref<any>>('formData', ref({}));\n const getReadMode = inject('getReadMode', () => false);\n const isSubFormField = inject('isSubFormField', false);\n\n const getSubFormName = inject('getSubFormName', () => '');\n const designState = inject('designState', false);\n\n const { registerToRefList, getWidgetRef, getFormRef, unregisterFromRefList } = useAppRef();\n const { executeFunction, asyncExecuteFunction } = useExecFunction();\n\n const { i18nt, i18n2t } = useI18n();\n const { field } = props;\n\n const fieldEditor = ref<InstanceType<any>>(null);\n // 状态\n const oldFieldValue = ref<any>(null);\n const fieldReadonlyFlag = ref<boolean>(false);\n const loading = ref<boolean>(false);\n const rules = ref<any[]>([]);\n const uploadData = ref<Record<string, any>>({});\n const customToolbar = ref<any>(null);\n const instance = getCurrentInstance();\n const { dispatch } = useEmitter();\n\n const size = computed(() => {\n if (field?.options?.size) {\n return field.options.size;\n }\n return formConfig.value.size || 'middle';\n });\n\n const subFormName = computed(() => {\n return getSubFormName ? getSubFormName() : '';\n });\n\n const fieldModel = computed({\n get() {\n return get(formModel.value, getPropName.value);\n },\n set(value) {\n syncUpdateFormModel(value);\n }\n });\n\n const subFormData = computed(() => formModel.value[subFormName.value]);\n\n const isReadMode = computed(() => {\n return getReadMode() ? true : fieldReadonlyFlag.value;\n });\n\n /**\n * 处理字段隐藏逻辑\n * @returns 是否隐藏\n */\n const handleHidden = computed(() => {\n if (designState) {\n return false;\n }\n const { onHidden, hidden } = props.field.options;\n\n if (hidden) return true;\n if (onHidden) {\n try {\n const result = executeFunction({\n functionBody: onHidden\n });\n if (typeof result === 'boolean') {\n return result;\n } else {\n return false;\n }\n } catch {\n return false;\n }\n }\n return false;\n });\n\n /**\n * 处理字段禁用逻辑\n * @returns 是否禁用\n */\n const handleDisabled = computed(() => {\n if (designState) {\n return false;\n }\n const { onDisabled, disabled } = props.field.options;\n if (disabled) return true;\n if (onDisabled) {\n try {\n const result = executeFunction({\n functionBody: onDisabled\n });\n if (typeof result === 'boolean') {\n return result;\n } else {\n return false;\n }\n } catch (error) {\n console.log({ error });\n return false;\n }\n }\n return false;\n });\n\n /**\n * 在数组中查找元素\n * @param arrayObject 数组对象\n * @param element 要查找的元素\n * @returns 找到的索引,未找到返回-1\n */\n const findInArray = (arrayObject: any[], element: any) => {\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 /**\n * 获取属性名称\n * @returns 属性名称\n */\n const getPropName = computed(() => {\n if (isSubFormField && !designState) {\n return (\n subFormName.value +\n '.' +\n props.subFormRowIndex +\n '.' +\n props.field.options.name +\n ''\n );\n } else {\n return props.field.options.name;\n }\n });\n\n /**\n * 处理组件创建事件\n */\n async function handleOnCreated() {\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n\n if (props.field.options.onCreated) {\n await asyncExecuteFunction({\n functionBody: props.field.options.onCreated\n });\n }\n }\n\n /**\n * 处理组件挂载事件\n */\n async function handleOnMounted() {\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n if (props.field.options.onMounted) {\n await asyncExecuteFunction({\n functionBody: props.field.options.onMounted\n });\n }\n }\n\n /**\n * 刷新默认值\n */\n const refreshDefaultValue = () => {\n fieldModel.value = props.field.options.defaultValue;\n };\n\n /**\n * 清除字段规则\n */\n const clearFieldRules = () => {\n if (!props.field.formItemFlag) {\n return;\n }\n\n rules.value.splice(0, rules.value.length); // 清空已有\n };\n\n /**\n * 构建字段规则\n */\n const buildFieldRules = () => {\n if (!props?.field.formItemFlag || props?.field.options.hidden) {\n return;\n }\n\n rules.value.splice(0, rules.value.length); // 清空已有\n if (props.field.options.required) {\n rules.value.push({\n required: true,\n // trigger: ['blur', 'change'],\n trigger: [\n 'blur'\n ] /* 去掉change事件触发校验,change事件触发时formModel数据尚未更新,导致radio/checkbox必填校验出错!! */,\n message: props.field.options.requiredHint || i18nt('render.hint.fieldRequired')\n });\n }\n\n if (props.field.options.validation) {\n const vldName = props.field.options.validation;\n if (FormValidators[vldName]) {\n rules.value.push({\n validator: FormValidators[vldName],\n trigger: ['blur', 'change'],\n label: props.field.options.label,\n errorMsg: props.field.options.validationHint\n });\n } else {\n rules.value.push({\n validator: FormValidators['regExp'],\n trigger: ['blur', 'change'],\n regExp: vldName,\n label: props.field.options.label,\n errorMsg: props.field.options.validationHint\n });\n }\n }\n\n if (props.field.options.onValidate) {\n const customFn = (rule: any, value: any) => {\n return executeFunction({\n functionBody: props.field.options.onValidate,\n params: { rule, value },\n keys: ['rule', 'value']\n });\n };\n rules.value.push({\n validator: customFn,\n trigger: ['blur'],\n label: props.field.options.label\n });\n }\n };\n\n /**\n * 禁用字段值变动触发表单校验\n */\n const disableChangeValidate = () => {\n if (!rules.value) {\n return;\n }\n\n rules.value.forEach(rule => {\n if (rule.trigger) {\n rule.trigger.splice(0, rule.trigger.length);\n }\n });\n };\n\n /**\n * 启用字段值变动触发表单校验\n */\n const enableChangeValidate = () => {\n if (!rules.value) {\n return;\n }\n\n rules.value.forEach(rule => {\n if (rule.trigger) {\n rule.trigger.push('blur');\n rule.trigger.push('change');\n }\n });\n };\n\n /**\n * 禁用列表中的选项\n * @param optionList 选项列表\n * @param optionValue 选项值\n */\n const disableOptionOfList = (optionList: any[], optionValue: any) => {\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 /**\n * 启用列表中的选项\n * @param optionList 选项列表\n * @param optionValue 选项值\n */\n const enableOptionOfList = (optionList: any[], optionValue: any) => {\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 /**\n * 发送字段数据变更事件\n * @param newValue 新值\n * @param oldValue 旧值\n */\n const emitFieldDataChange = (newValue: any, oldValue: any) => {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n\n if (!instance) return;\n\n /* 必须用dispatch向指定父组件派发消息!! */\n dispatch('VFormRender', 'fieldChange', [\n props.field.options.name,\n newValue,\n oldValue,\n subFormName.value,\n props.subFormRowIndex\n ]);\n };\n\n /**\n * 同步更新表单模型\n * @param value 值\n */\n\n const syncUpdateFormModel = value => {\n if (designState) {\n dispatch('VFormDesigner', 'fieldChange', {\n fieldName: getPropName.value,\n value,\n field: field\n });\n //设计状态不触发事件\n return;\n }\n /* 主动触发表单的单个字段校验,用于清除字段可能存在的校验错误提示 */\n dispatch('VFormRender', 'fieldValidation', [getPropName.value]);\n const oldValue = toRaw(fieldModel.value);\n dispatch('VFormRender', 'fieldChange', {\n fieldName: getPropName.value,\n value,\n oldValue: oldValue,\n field: field\n });\n handleOnChange(value, oldValue);\n };\n\n /**\n * 处理焦点自定义事件\n * @param event 事件对象\n */\n const handleFocusCustomEvent = (event: any) => {\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n\n oldFieldValue.value = deepClone(fieldModel.value); // 保存修改change之前的值\n\n if (props.field.options.onFocus) {\n executeFunction({\n functionBody: props.field.options.onFocus,\n params: { event },\n keys: ['event']\n });\n }\n };\n\n /**\n * 处理失焦自定义事件\n * @param event 事件对象\n */\n const handleBlurCustomEvent = (event: any) => {\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n\n if (props.field.options.onBlur) {\n executeFunction({\n functionBody: props.field.options.onBlur,\n params: { event },\n keys: ['event']\n });\n }\n };\n\n /**\n * 发送附加按钮点击事件\n */\n const emitAppendButtonClick = () => {\n if (designState) {\n // 设计状态不触发点击事件\n return;\n }\n\n if (props.field.options.onAppendButtonClick) {\n executeFunction({\n functionBody: props.field.options.onAppendButtonClick\n });\n }\n };\n\n /**\n * 处理变更事件\n * @param val 新值\n * @param oldVal 旧值\n * @param ops 选项\n */\n const handleOnChange = (val: any, oldVal: any) => {\n // 自定义onChange事件\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n\n if (props.field.options.onChange) {\n executeFunction({\n functionBody: props.field.options.onChange,\n params: {\n value: val,\n oldValue: oldVal,\n subFormData: subFormData.value,\n rowId: props.subFormRowId\n },\n keys: ['value', 'oldValue', 'subFormData', 'rowId']\n });\n }\n };\n\n /**\n * 处理点击事件\n */\n const onClick = async () => {\n if (designState) {\n // 设计状态不触发点击事件\n return;\n }\n\n if (props.field.options.onClick) {\n return await asyncExecuteFunction({\n functionBody: props.field.options.onClick\n });\n }\n };\n\n /**\n * 处理图标点击事件\n */\n const handleClickIcon = async () => {\n if (designState) {\n // 设计状态不触发事件\n return;\n }\n if (handleDisabled.value) {\n return;\n }\n if (field.options.onClickIcon) {\n await asyncExecuteFunction({\n functionBody: field.options.onClickIcon\n });\n }\n };\n\n /**\n * 获取字段编辑器\n * @returns 字段编辑器\n */\n const getFieldEditor = () => {\n // 获取内置的el表单组件\n return fieldEditor.value;\n };\n\n /**\n * 显示文件列表\n * @param list 文件列表\n * @returns 格式化后的文件列表\n */\n const showFileList = (list: any) => {\n if (typeof list === 'string') {\n list = JSON.parse(list);\n }\n if (!isArray(list)) return [];\n const res = list.map((item: any, uid: number) => ({\n ...item,\n name: item.fileName,\n uid\n }));\n return res;\n };\n\n /**\n * 设置值\n * @param newValue 新值\n * @param disableChangeEvent 是否禁用变更事件\n */\n const setValue = (newValue: any, disableChangeEvent = false) => {\n if (newValue) {\n newValue = newValue.target ? newValue.target.value : newValue;\n }\n if (eq(fieldModel.value, newValue)) return;\n\n const oldValue = deepClone(fieldModel.value);\n if (props.field.type === 'file-upload') {\n newValue = showFileList(newValue || []);\n // TODO\n } else if (props.field.type === 'code-editor') {\n const fieldEditor = getFieldEditor();\n if (fieldEditor) {\n fieldEditor.setValue(newValue);\n }\n }\n fieldModel.value = newValue;\n if (!disableChangeEvent) {\n emitFieldDataChange(newValue, oldValue);\n }\n };\n\n /**\n * 获取值\n * @returns 字段值\n */\n const getValue = () => {\n return fieldModel.value;\n };\n\n /**\n * 重置字段\n */\n const resetField = () => {\n const defaultValue = props.field.options.defaultValue;\n setValue(defaultValue);\n\n // 清空上传组件文件列表\n if (props.field.type === 'picture-upload' || props.field.type === 'file-upload') {\n fieldModel.value.splice(0, fieldModel.value.length);\n // handleChangeEvent(fieldModel.value);\n }\n };\n\n /**\n * 设置只读\n * @param flag 是否只读\n */\n const setReadonly = (flag: boolean) => {\n props.field.options.readonly = flag;\n };\n\n /**\n * 设置禁用\n * @param flag 是否禁用\n */\n const setDisabled = (flag: boolean) => {\n props.field.options.disabled = flag;\n };\n\n /**\n * 设置附加按钮可见性\n * @param flag 是否可见\n */\n const setAppendButtonVisible = (flag: boolean) => {\n props.field.options.appendButton = flag;\n };\n\n /**\n * 设置附加按钮禁用状态\n * @param flag 是否禁用\n */\n const setAppendButtonDisabled = (flag: boolean) => {\n props.field.options.appendButtonDisabled = flag;\n };\n\n /**\n * 设置隐藏\n * @param flag 是否隐藏\n */\n const setHidden = (flag: boolean) => {\n props.field.options.hidden = flag;\n\n if (flag) {\n // 清除组件校验规则\n clearFieldRules();\n } else {\n // 重建组件校验规则\n buildFieldRules();\n }\n };\n\n /**\n * 设置必填\n * @param flag 是否必填\n */\n const setRequired = (flag: boolean) => {\n props.field.options.required = flag;\n buildFieldRules();\n\n if (!designState && !flag) {\n // 清除必填校验提示\n clearValidate();\n }\n };\n\n /**\n * 清除字段校验提示\n */\n const clearValidate = () => {\n if (designState) {\n return;\n }\n\n getFormRef().clearValidate(getPropName.value);\n };\n\n /**\n * 获取VForm上下文\n * @returns VForm上下文\n */\n const getVfCtx = () => {\n return getFormRef().vfCtx;\n };\n\n /**\n * 设置标签\n * @param newLabel 新标签\n */\n const setLabel = (newLabel: string) => {\n props.field.options.label = newLabel;\n };\n\n /**\n * 聚焦\n */\n const focus = () => {\n const fieldEditor = getFieldEditor();\n if (fieldEditor && fieldEditor.focus) {\n fieldEditor.focus();\n }\n };\n\n /**\n * 设置上传数据\n * @param name 名称\n * @param value 值\n */\n const setUploadData = (name: string, value: any) => {\n uploadData.value[name] = value;\n };\n\n /**\n * 设置或取消设置字段只读查看模式\n * @param readonlyFlag 只读标志\n */\n const setReadMode = (readonlyFlag = true) => {\n fieldReadonlyFlag.value = readonlyFlag;\n };\n\n /**\n * 动态增加自定义css样式\n * @param className 类名\n */\n const addCssClass = (className: string) => {\n if (!props.field.options.customClass) {\n props.field.options.customClass = [className];\n } else {\n props.field.options.customClass.push(className);\n }\n };\n const customClass = computed(() => props.field.options.customClass);\n\n /**\n * 动态移除自定义css样式\n * @param className 类名\n */\n const removeCssClass = (className: string) => {\n if (!props.field.options.customClass) {\n return;\n }\n\n let foundIdx = -1;\n props.field.options.customClass.map((cc: string, idx: number) => {\n if (cc === className) {\n foundIdx = idx;\n }\n });\n if (foundIdx > -1) {\n props.field.options.customClass.splice(foundIdx, 1);\n }\n };\n\n const getEl = () => {\n return fieldEditor.value?.$el;\n };\n\n /**\n * 设置组件选项\n * @param optionName 选项名称\n * @param optionValue 选项值\n */\n const setWidgetOption = (optionName: string, optionValue: any) => {\n // 通用组件选项修改API\n props.field.options[optionName] = optionValue;\n };\n\n const options = computed({\n get() {\n return props.field.options;\n },\n set(value) {\n props.field.options = value;\n }\n });\n\n const initFieldModel = () => {\n const defaultValue =\n typeof props.field.options.defaultValue === 'undefined'\n ? ''\n : props.field.options.defaultValue;\n dispatch('VFormRender', 'fieldChange', {\n fieldName: getPropName.value,\n value: defaultValue,\n oldValue: toRaw(fieldModel.value),\n field: field\n });\n };\n\n // 生命周期钩子\n onMounted(async () => {\n if (isInitModelValue) {\n initFieldModel();\n }\n await registerToRefList();\n\n await handleOnCreated();\n\n await handleOnMounted();\n buildFieldRules();\n });\n\n onBeforeUnmount(() => {\n unregisterFromRefList();\n });\n\n const defineExposed = {\n i18nt,\n options,\n proxy: instance?.proxy,\n field,\n widget: field,\n fieldModel,\n fieldEditor,\n isReadMode,\n setWidgetOption,\n setReadonly,\n setDisabled,\n getVfCtx,\n setLabel,\n getEl,\n setReadMode,\n resetField,\n setValue,\n getValue,\n getFieldEditor,\n getFormRef,\n getWidgetRef,\n setHidden,\n addCssClass,\n removeCssClass,\n setRequired,\n clearValidate,\n focus\n };\n\n return {\n asyncExecuteFunction,\n executeFunction,\n options,\n customClass,\n fieldEditor,\n // 状态\n fieldModel,\n oldFieldValue,\n fieldReadonlyFlag,\n loading,\n rules,\n uploadData,\n designState,\n customToolbar,\n i18nt,\n i18n2t,\n size,\n field,\n // 计算属性\n formConfig,\n subFormName,\n\n formModel,\n isReadMode,\n\n // 方法\n handleHidden,\n handleDisabled,\n findInArray,\n getPropName,\n refreshDefaultValue,\n clearFieldRules,\n buildFieldRules,\n disableChangeValidate,\n enableChangeValidate,\n disableOptionOfList,\n enableOptionOfList,\n emitFieldDataChange,\n syncUpdateFormModel,\n handleFocusCustomEvent,\n handleBlurCustomEvent,\n emitAppendButtonClick,\n handleOnChange,\n onClick,\n handleClickIcon,\n getFieldEditor,\n showFileList,\n\n setAppendButtonVisible,\n setAppendButtonDisabled,\n\n focus,\n setUploadData,\n\n isSubFormField,\n defineExposed\n };\n}\n"],"names":["fieldEditor"],"mappings":"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"}
|
package/assets/useSelect.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelect.mjs","sources":["../../src/components/field-widget/hooks/useSelect.ts"],"sourcesContent":["import { computed, ref, unref } from 'vue';\nimport { debounce, isArray } from 'lodash-es';\nimport { useExecFunction } from 'tmgc2-share';\nimport { translateOptionItems } from '@kp-ui/lowcode-core';\n\nfunction 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\nexport function useSelect({ field, designState, fieldModel }) {\n const keyword = ref({\n val: ''\n });\n const loading = ref(false);\n const pager = ref({\n page: 1,\n pageSize: 20,\n totalPage: 0,\n total: 0\n });\n\n const { execHttpFunction } = useExecFunction();\n\n const initOptionItems = async () => {\n if (loading.value) return;\n loading.value = true;\n /* 首先处理数据源选项加载 */\n if (!!field.options.dsEnabled && field.options.http?.url) {\n if (pager.value.page === 1) initPager();\n try {\n const { http, dataHandlerCode, dataReqHandlerCode } = field.options;\n const data = field.options.loadingPage\n ? { page: pager.value.page, pageSize: pager.value.pageSize }\n : {};\n const dsResult = await execHttpFunction(\n {\n http,\n dataHandlerCode,\n dataReqHandlerCode\n },\n { data }\n );\n if (!dsResult) {\n loading.value = false;\n return;\n }\n if (isArray(dsResult)) {\n loadOptions(dsResult);\n loading.value = false;\n return;\n }\n\n if (isArray(dsResult.list)) {\n if (field.options.loadingPage) {\n pager.value.total = dsResult.total || 0;\n pager.value.totalPage = dsResult.totalPage || 0;\n loadOptions([...getOptionItems(), ...dsResult.list]);\n } else {\n loadOptions(dsResult.list);\n }\n }\n } catch (err) {\n console.error('err: ', err);\n }\n } else {\n loadOptions([...getOptionItems()]);\n }\n loading.value = false;\n };\n\n const changePager = debounce(function () {\n pager.value.page += 1;\n initOptionItems();\n }, 500);\n\n const onPopupScroll = e => {\n if (!field.options.loadingPage) return;\n\n const { target } = e;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n if (scrollHeight - (scrollTop + clientHeight) <= 30) {\n if (pager.value.totalPage > pager.value.page) {\n if (pager.value.totalPage === pager.value.page) {\n return;\n }\n changePager();\n }\n }\n };\n\n const labelKey = computed(() => {\n return field?.options.labelKey || 'label';\n });\n\n const valueKey = computed(() => {\n return field?.options.valueKey || 'value';\n });\n\n const childrenKey = computed(() => {\n return field?.options.childrenKey || 'children';\n });\n\n const fieldNames = computed(() => {\n return {\n label: field?.options.labelKey || 'label',\n value: field?.options.valueKey || 'value',\n options: 'options'\n };\n });\n\n const filterOption = (inputValue, option) => {\n return option[fieldNames.value.label].toLowerCase().indexOf(inputValue.toLowerCase()) >= 0;\n };\n const initPager = () => {\n pager.value = { page: 1, pageSize: 20, total: 0, totalPage: 0 };\n loadOptions([]);\n };\n\n const remoteQuery = (_keyword: string) => {\n const useServer = field.options.showSearch;\n if (!useServer) return;\n if (designState) {\n //设计状态不触发事件\n return;\n }\n\n // if (!!field.options.onRemoteQuery) {\n initPager();\n keyword.value.val = _keyword;\n initOptionItems();\n };\n // initPager();\n const selectOps = computed(() => {\n const showSearch = true; //field.options.showSearch;\n const useServer = field?.options?.showSearch;\n return {\n loading: loading.value,\n fieldNames: fieldNames.value,\n showSearch,\n onPopupScroll: onPopupScroll,\n onSearch: showSearch ? remoteQuery : void 0,\n filterOption: !useServer && filterOption,\n listHeight: 240\n };\n });\n\n /**\n * 加载选项,并清空字段值\n * @param options\n */\n const loadOptions = async options => {\n field.options.optionItems = translateOptionItems(\n options,\n field.type,\n field.options.labelKey || 'label',\n field.options.valueKey || 'value'\n );\n if (designState) {\n return;\n }\n };\n /**\n * 返回选择项\n * @returns {*}\n */\n const getOptionItems = () => {\n return field.options.optionItems;\n };\n\n /**\n * 获取当前选中的选项\n */\n const getSelectedItem = () => {\n const list = getOptionItems();\n if (isArray(fieldModel.value)) {\n return list.filter(item => findInArray(fieldModel.value, item[valueKey.value]) !== -1);\n }\n return list.find(item => item[valueKey.value] == fieldModel.value);\n };\n\n const optionLabel = computed(() => {\n if (fieldModel.value === null) {\n return '';\n } else {\n let resultContent = '';\n\n const { valueKey, labelKey } = field.options;\n field.options.optionItems.forEach((oItem: any) => {\n if (\n oItem[valueKey] === fieldModel.value ||\n findInArray(fieldModel.value, 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 * 清空选项项\n */\n const clearOptionItems = () => {\n if (field.options.dsEnabled) {\n field.options.optionItems.splice(0, field.options.optionItems.length); // 清空原有选项\n }\n };\n\n /**\n * 禁用列表中的选项\n * @param optionList 选项列表\n * @param optionValue 选项值\n */\n const disableOption = (optionValue: any) => {\n const optionList = field.options.optionItems;\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 /**\n * 启用列表中的选项\n * @param optionList 选项列表\n * @param optionValue 选项值\n */\n const enableOption = (optionValue: any) => {\n const optionList = field.options.optionItems;\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 return {\n selectDefineExpose: {\n loadOptions,\n initOptionItems,\n getSelectedItem,\n disableOption,\n clearOptionItems,\n enableOption,\n getOptionItems,\n keyword: unref(keyword)\n },\n disableOption,\n clearOptionItems,\n childrenKey,\n valueKey,\n labelKey,\n optionLabel,\n loadOptions,\n filterOption,\n keyword,\n pager,\n loading,\n fieldNames,\n selectOps,\n initOptionItems,\n getOptionItems\n };\n}\n"],"names":["valueKey","labelKey"],"mappings":"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"}
|
package/assets/vf-box-widget.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vf-box-widget.mjs","sources":["../../src/components/desginer/form-widget/container-widget/vf-box-widget.vue"],"sourcesContent":["<template>\n <div class=\"box-container\" v-if=\"!handleHidden\" :key=\"widget.id\" :style=\"boxStyle\">\n <RenderWidgetList\n v-model:list=\"widget.widgetList\"\n :parentWidget=\"widget\"\n :parentList=\"widget.widgetList\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, CSSProperties, ref } from 'vue';\n import {\n RenderWidgetList,\n ComponentNameEnum,\n ContainerTypeEnum,\n useField,\n WidgetProps\n } from '@kp-ui/lowcode-core';\n\n defineOptions({\n name: ContainerTypeEnum.VfBoxWidget,\n componentName: ComponentNameEnum.VfBoxWidget\n });\n\n const props = defineProps<WidgetProps>();\n const { handleHidden, defineExposed } = useField(props);\n\n const boxStyle = computed(() => {\n const boxModel = props.widget.options.boxModel || {};\n const style = {} as CSSProperties;\n\n if (props.widget.options.width) {\n style.width = '100%';\n style.height = '100%';\n }\n\n if (boxModel.borderShow) {\n style.borderRadius = `${boxModel.borderRadius}px`;\n style.border = `${boxModel.borderStyle} ${boxModel.borderWidth}px ${boxModel.borderColor}`;\n }\n\n // 设置内边距\n if (\n boxModel.paddingTop !== undefined ||\n boxModel.paddingRight !== undefined ||\n boxModel.paddingBottom !== undefined ||\n boxModel.paddingLeft !== undefined\n ) {\n style.padding = `${boxModel.paddingTop || 0}px ${boxModel.paddingRight || 0}px ${\n boxModel.paddingBottom || 0\n }px ${boxModel.paddingLeft || 0}px`;\n }\n\n // 设置外边距\n if (\n boxModel.marginTop !== undefined ||\n boxModel.marginRight !== undefined ||\n boxModel.marginBottom !== undefined ||\n boxModel.marginLeft !== undefined\n ) {\n style.margin = `${boxModel.marginTop || 0}px ${boxModel.marginRight || 0}px ${\n boxModel.marginBottom || 0\n }px ${boxModel.marginLeft || 0}px`;\n }\n\n // 设置背景颜色\n if (boxModel.backgroundColor) {\n style.backgroundColor = boxModel.backgroundColor;\n }\n\n // 设置阴影\n if (boxModel.shadowShow) {\n style.boxShadow = `${boxModel.shadowOffsetX || 0}px ${boxModel.shadowOffsetY || 0}px ${\n boxModel.shadowBlur || 0\n }px ${boxModel.shadowSpread || 0}px ${boxModel.shadowColor || 'rgba(0,0,0,0.2)'}`;\n }\n\n return style;\n });\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"less\" scoped>\n .box-container {\n width: 100%;\n position: relative;\n padding-bottom: 20px;\n display: flex;\n min-height: 100px;\n :deep(.designer-widget-list) {\n flex: 1;\n }\n }\n</style>\n"],"names":["_unref","_createElementBlock","widget","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;AAyBI,UAAM,QAAQ;AACd,UAAM,EAAE,cAAc,kBAAkB,SAAS,KAAK;AAEtD,UAAM,WAAW,SAAS,MAAM;AAC5B,YAAM,WAAW,MAAM,OAAO,QAAQ,YAAY,CAAA;AAClD,YAAM,QAAQ,CAAA;AAEd,UAAI,MAAM,OAAO,QAAQ,OAAO;AAC5B,cAAM,QAAQ;AACd,cAAM,SAAS;AAAA,MACnB;AAEA,UAAI,SAAS,YAAY;AACrB,cAAM,eAAe,GAAG,SAAS,YAAY;AAC7C,cAAM,SAAS,GAAG,SAAS,WAAW,IAAI,SAAS,WAAW,MAAM,SAAS,WAAW;AAAA,MAC5F;AAGA,UACI,SAAS,eAAe,UACxB,SAAS,iBAAiB,UAC1B,SAAS,kBAAkB,UAC3B,SAAS,gBAAgB,QAC3B;AACE,cAAM,UAAU,GAAG,SAAS,cAAc,CAAC,MAAM,SAAS,gBAAgB,CAAC,MACvE,SAAS,iBAAiB,CAC9B,MAAM,SAAS,eAAe,CAAC;AAAA,MACnC;AAGA,UACI,SAAS,cAAc,UACvB,SAAS,gBAAgB,UACzB,SAAS,iBAAiB,UAC1B,SAAS,eAAe,QAC1B;AACE,cAAM,SAAS,GAAG,SAAS,aAAa,CAAC,MAAM,SAAS,eAAe,CAAC,MACpE,SAAS,gBAAgB,CAC7B,MAAM,SAAS,cAAc,CAAC;AAAA,MAClC;AAGA,UAAI,SAAS,iBAAiB;AAC1B,cAAM,kBAAkB,SAAS;AAAA,MACrC;AAGA,UAAI,SAAS,YAAY;AACrB,cAAM,YAAY,GAAG,SAAS,iBAAiB,CAAC,MAAM,SAAS,iBAAiB,CAAC,MAC7E,SAAS,cAAc,CAC3B,MAAM,SAAS,gBAAgB,CAAC,MAAM,SAAS,eAAe,iBAAiB;AAAA,MACnF;AAEA,aAAO;AAAA,IACX,CAAC;AACD,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAjFiCA,MAAA,YAAA,kBAAlCC,mBAMM,OAAA;AAAA,QAND,OAAM;AAAA,QAAsC,KAAKC,KAAAA,OAAO;AAAA,QAAK,sBAAO,SAAA,KAAQ;AAAA,MAAA;QAC7EC,YAIEH,MAAA,gBAAA,GAAA;AAAA,UAHU,MAAME,KAAAA,OAAO;AAAA,UAAPA,iBAAAA,OAAAA,CAAAA,MAAAA,OAAAA,CAAAA,IAAAA,CAAAA,WAAAA,KAAAA,OAAO,aAAU;AAAA,UAC9B,cAAcA,KAAAA;AAAAA,UACd,YAAYA,KAAAA,OAAO;AAAA,QAAA;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vf-collapse-widget.mjs","sources":["../../src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue"],"sourcesContent":["<template>\n <div class=\"collapse-container\" v-if=\"!handleHidden\">\n <TpfCollapse :title=\"widget.options.title\">\n <template #right>\n <div class=\"collapse-right\">\n <RenderWidgetList\n v-model:list=\"widget.headerRightSlotList\"\n :parentWidget=\"widget\"\n />\n </div>\n </template>\n <div\n class=\"tpf-collapse-content-wrapper\"\n :style=\"{\n height: widget.options.height || 'unset'\n }\"\n v-show=\"!widget.options.isCollapse\"\n >\n <RenderWidgetList v-model:list=\"widget.defaultSlotsList\" :parentWidget=\"widget\" />\n </div>\n </TpfCollapse>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { TpfCollapse } from 'tmgc2-share';\n import { computed } from 'vue';\n import {\n RenderWidgetList,\n ComponentNameEnum,\n ContainerTypeEnum,\n useField,\n WidgetProps\n } from '@kp-ui/lowcode-core';\n import { CollapseWidget } from '../../widget-panel/containers';\n defineOptions({\n name: ContainerTypeEnum.VfCollapseWidget,\n componentName: ComponentNameEnum.ContainerWidget\n });\n\n const props = defineProps<WidgetProps<CollapseWidget>>();\n\n const defaultSlotsList = computed(() => props.widget.defaultSlotsList || []);\n const headerRightSlotList = computed(() => props.widget.headerRightSlotList || []);\n\n const { handleHidden, defineExposed } = useField(props);\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"less\" scoped>\n .collapse-container {\n display: flex;\n margin: 2px;\n height: 100%;\n width: 100%;\n flex: 1 0 0;\n .form-widget-list {\n min-height: 28px;\n }\n :deep(.header-right) {\n background-color: #fff;\n .form-widget-list {\n min-width: 200px;\n }\n }\n }\n</style>\n\n<style lang=\"less\" scoped>\n .tpf-collapse {\n padding: 5px;\n .collapse-right {\n min-width: 200px;\n min-height: 30px;\n border: 1px dashed #666;\n :deep(.designer-widget-list) {\n min-height: 34px;\n .empty-drop-zone {\n height: 30px;\n top: 0;\n }\n }\n }\n :deep(.design-time-bottom-margin) {\n margin-bottom: 0;\n .static-content-item {\n margin-bottom: 0;\n padding: 3px;\n }\n }\n :deep(.tpf-collapse-content-wrapper) {\n overflow: hidden;\n background-color: #fff;\n }\n }\n</style>\n"],"names":["_unref","_openBlock","_createElementBlock","_createVNode","widget","_createElementVNode","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwCI,UAAM,QAAQ;AAEW,aAAS,MAAM,MAAM,OAAO,oBAAoB,CAAA,CAAE;AAC/C,aAAS,MAAM,MAAM,OAAO,uBAAuB,CAAA,CAAE;AAEjF,UAAM,EAAE,cAAc,kBAAkB,SAAS,KAAK;AAEtD,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAhDsCA,MAAA,YAAA,KAAvCC,aAAAC,mBAoBM,OApBN,YAoBM;AAAA,QAnBFC,YAkBcH,MAAA,WAAA,GAAA;AAAA,UAlBA,OAAOI,KAAAA,OAAO,QAAQ;AAAA,QAAA;UACrB,eACP,MAKM;AAAA,YALNC,mBAKM,OALN,YAKM;AAAA,cAJFF,YAGEH,MAAA,gBAAA,GAAA;AAAA,gBAFU,MAAMI,KAAAA,OAAO;AAAA,gBAAPA,iBAAAA,OAAAA,CAAAA,MAAAA,OAAAA,CAAAA,IAAAA,CAAAA,WAAAA,KAAAA,OAAO,sBAAmB;AAAA,gBACvC,cAAcA,KAAAA;AAAAA,cAAAA;;;2BAI3B,MAQM;AAAA,2BARNC,mBAQM,OAAA;AAAA,cAPF,OAAM;AAAA,cACL,OAAKC,eAAA;AAAA,wBAAgCF,KAAAA,OAAO,QAAQ,UAAM;AAAA,cAAA;;cAK3DD,YAAkFH,MAAA,gBAAA,GAAA;AAAA,gBAAxD,MAAMI,KAAAA,OAAO;AAAA,gBAAPA,iBAAAA,OAAAA,CAAAA,MAAAA,OAAAA,CAAAA,IAAAA,CAAAA,WAAAA,KAAAA,OAAO,mBAAgB;AAAA,gBAAG,cAAcA,KAAAA;AAAAA,cAAAA;;uBAF/DA,KAAAA,OAAO,QAAQ,UAAU;AAAA,YAAA;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vf-dialog-widget.mjs","sources":["../../src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue"],"sourcesContent":["<template>\n <div class=\"dialog-container\" :key=\"widget.id\">\n <div class=\"dialog-title\">\n <span class=\"tpf-link\" @click=\"handleClickTitle\">\n {{ widget.options.title }}\n </span>\n </div>\n <div class=\"right-btns\">\n <ActionButtonListRender :buttonList=\"widget.options.buttonList || []\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { useAppRef } from '@kp-ui/lowcode-core';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { ActionButtonListRender } from '@kp-ui/lowcode-pc';\n defineOptions({\n name: ContainerTypeEnum.VfDialogWidget,\n componentName: ComponentNameEnum.VfDialogWidget\n });\n\n const props = defineProps<WidgetProps>();\n\n const { initRefList } = useAppRef();\n\n const handleClickTitle = () => {\n const url = new URL(window.location.href);\n const { title, formCode, formId } = props.widget.options;\n if (formId) {\n url.searchParams.set('formCode', formCode);\n url.searchParams.set('remark', title);\n url.searchParams.set('id', formId);\n window.open(url.href);\n }\n };\n\n initRefList();\n</script>\n\n<style lang=\"scss\" scoped>\n .dialog-container {\n width: 100%;\n min-height: 30px;\n position: relative;\n\n .dialog-title {\n font-size: 14px;\n color: #666;\n line-height: 30px;\n text-align: center;\n }\n .right-btns {\n display: flex;\n align-items: center;\n height: 35px;\n }\n }\n</style>\n"],"names":["_createElementBlock","widget","_createElementVNode","_createVNode","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBI,UAAM,QAAQ;AAEd,UAAM,EAAE,YAAA,IAAgB,UAAA;AAExB,UAAM,mBAAmB,MAAM;AAC3B,YAAM,MAAM,IAAI,IAAI,OAAO,SAAS,IAAI;AACxC,YAAM,EAAE,OAAO,UAAU,OAAA,IAAW,MAAM,OAAO;AACjD,UAAI,QAAQ;AACR,YAAI,aAAa,IAAI,YAAY,QAAQ;AACzC,YAAI,aAAa,IAAI,UAAU,KAAK;AACpC,YAAI,aAAa,IAAI,MAAM,MAAM;AACjC,eAAO,KAAK,IAAI,IAAI;AAAA,MACxB;AAAA,IACJ;AAEA,gBAAA;;0BApCAA,mBASM,OAAA;AAAA,QATD,OAAM;AAAA,QAAoB,KAAKC,KAAAA,OAAO;AAAA,MAAA;QACvCC,mBAIM,OAJN,YAIM;AAAA,UAHFA,mBAEO,QAAA;AAAA,YAFD,OAAM;AAAA,YAAY,SAAO;AAAA,UAAA,mBACxBD,KAAAA,OAAO,QAAQ,KAAK,GAAA,CAAA;AAAA,QAAA;QAG/BC,mBAEM,OAFN,YAEM;AAAA,UADFC,YAAwEC,MAAA,sBAAA,GAAA;AAAA,YAA/C,YAAYH,KAAAA,OAAO,QAAQ,cAAU,CAAA;AAAA,UAAA;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-render-widget.mjs","sources":["../../src/components/field-widget/vue-render-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"slot-wrapper-render\">\n <component ref=\"fieldEditor\" :is=\"renderCompont()\" />\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import FormItemWrapper from './form-item-wrapper.vue';\n import { FieldProps, useField } from './useField';\n import { toRefs } from 'vue';\n\n defineOptions({\n name: WidgetTypeEnum.vueRender,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, fieldEditor, field, fieldModel, handleHidden, defineExposed, executeFunction } =\n useField(props);\n\n const renderCompont = () => {\n if (field.options.template) {\n const sfcString = field.options.template;\n const templateMatch = sfcString.match(/<template>([\\s\\S]*)<\\/template>/);\n const scriptMatch = sfcString.match(/<script.*?>([\\s\\S]*)<\\/script>/);\n const styleMatch = sfcString.match(/<style.*?>([\\s\\S]*)<\\/style>/);\n\n const template = templateMatch ? templateMatch[1] : '';\n let scriptContent = scriptMatch ? scriptMatch[1] : 'export default {}';\n const style = styleMatch ? styleMatch[1] : '';\n\n // Handle style\n if (style) {\n const styleId = `vue-render-style-${field.options.name}`;\n if (!document.getElementById(styleId)) {\n const styleTag = document.createElement('style');\n styleTag.id = styleId;\n styleTag.textContent = style;\n document.head.appendChild(styleTag);\n }\n }\n\n // Handle script\n // Replace export default with return to make it evaluatable\n scriptContent = scriptContent.replace('export default', 'return');\n\n try {\n const getOptions = new Function(scriptContent);\n const componentOptions = getOptions() || {};\n\n return {\n template,\n ...componentOptions,\n props: ['data'], // Ensure data prop is available if not defined\n setup(props, ctx) {\n // Call original setup if it exists\n const originalSetup = componentOptions.setup\n ? componentOptions.setup(props, ctx)\n : {};\n return {\n ...toRefs(props),\n ...originalSetup\n };\n }\n };\n } catch (e) {\n console.error('Failed to parse component script', e);\n return { template: '<div>Error parsing component</div>' };\n }\n }\n // Assuming executeFunction and fieldModel are defined elsewhere or will be added.\n // This part of the code was provided in the instruction, but its dependencies are not in the original snippet.\n const component = executeFunction({\n functionBody: field.options.customRender,\n params: { data: fieldModel.value },\n keys: ['data']\n });\n\n return component ?? null;\n };\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["props","_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,aAAa,OAAO,YAAY,cAAc,eAAe,gBAAA,IACxE,SAAS,KAAK;AAElB,UAAM,gBAAgB,MAAM;AACxB,UAAI,MAAM,QAAQ,UAAU;AACxB,cAAM,YAAY,MAAM,QAAQ;AAChC,cAAM,gBAAgB,UAAU,MAAM,iCAAiC;AACvE,cAAM,cAAc,UAAU,MAAM,gCAAgC;AACpE,cAAM,aAAa,UAAU,MAAM,8BAA8B;AAEjE,cAAM,WAAW,gBAAgB,cAAc,CAAC,IAAI;AACpD,YAAI,gBAAgB,cAAc,YAAY,CAAC,IAAI;AACnD,cAAM,QAAQ,aAAa,WAAW,CAAC,IAAI;AAG3C,YAAI,OAAO;AACP,gBAAM,UAAU,oBAAoB,MAAM,QAAQ,IAAI;AACtD,cAAI,CAAC,SAAS,eAAe,OAAO,GAAG;AACnC,kBAAM,WAAW,SAAS,cAAc,OAAO;AAC/C,qBAAS,KAAK;AACd,qBAAS,cAAc;AACvB,qBAAS,KAAK,YAAY,QAAQ;AAAA,UACtC;AAAA,QACJ;AAIA,wBAAgB,cAAc,QAAQ,kBAAkB,QAAQ;AAEhE,YAAI;AACA,gBAAM,aAAa,IAAI,SAAS,aAAa;AAC7C,gBAAM,mBAAmB,WAAA,KAAgB,CAAA;AAEzC,iBAAO;AAAA,YACH;AAAA,YACA,GAAG;AAAA,YACH,OAAO,CAAC,MAAM;AAAA;AAAA,YACd,MAAMA,QAAO,KAAK;AAEd,oBAAM,gBAAgB,iBAAiB,QACjC,iBAAiB,MAAMA,QAAO,GAAG,IACjC,CAAA;AACN,qBAAO;AAAA,gBACH,GAAG,OAAOA,MAAK;AAAA,gBACf,GAAG;AAAA,cAAA;AAAA,YAEX;AAAA,UAAA;AAAA,QAER,SAAS,GAAG;AACR,kBAAQ,MAAM,oCAAoC,CAAC;AACnD,iBAAO,EAAE,UAAU,qCAAA;AAAA,QACvB;AAAA,MACJ;AAGA,YAAM,YAAY,gBAAgB;AAAA,QAC9B,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,MAAM,WAAW,MAAA;AAAA,QAC3B,MAAM,CAAC,MAAM;AAAA,MAAA,CAChB;AAED,aAAO,aAAa;AAAA,IACxB;AAEA,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cArFwCC,MAAA,YAAA,KAAzCC,aAAAC,YAIoB,iBAJpBC,WAIoB,EAAA,KAAA,EAAA,GAJO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAEM;AAAA,UAFNI,mBAEM,OAFN,YAEM;AAAA,aADFH,aAAAC,YAAqDG,wBAAnB,cAAA,CAAa,GAAA;AAAA,uBAAhC;AAAA,cAAJ,KAAI;AAAA,YAAA;;;;;;;;"}
|
package/assets/zh-CN.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh-CN.mjs","sources":["../../../core/src/lang/zh-CN.ts"],"sourcesContent":["export default {\n application: {\n 'zh-CN': '简体中文',\n 'en-US': 'English',\n productTitle: '表单设计器',\n github: 'GitHub',\n document: '文档'\n },\n\n designer: {\n showTotal: '共 {total} 条',\n outline: '大纲',\n field: '字段',\n componentLib: '组件',\n formLib: '模板',\n containerTitle: '容器',\n dragHandlerHint: '鼠标拖拽容器组件或字段组件并放置于表单中',\n dragAction: '拖动',\n basicFieldTitle: '基础组件',\n advancedFieldTitle: '高级组件',\n customFieldTitle: '自定义扩展字段',\n biComponents: 'BI组件',\n\n noWidgetHint: '请从左侧列表中选择一个组件, 然后用鼠标拖动组件放置于此处.',\n\n widgetLabel: {\n grid: '栅格',\n table: '表格',\n tab: '标签页',\n section: '区块',\n 'sub-form': '单行子表单',\n 'grid-sub-form': '多行子表单',\n 'grid-col': '栅格列',\n 'table-cell': '单元格',\n 'tab-pane': '选项卡页',\n 'data-table': '数据表格',\n 'vf-dialog': '弹出窗口',\n 'vf-collapse': '折叠面板',\n 'vf-drawer': '侧滑抽屉',\n 'vf-box': '盒容器',\n\n input: '单行文本',\n textarea: '多行文本',\n number: '计数器',\n radio: '单选框',\n checkbox: '多选框',\n select: '下拉选项',\n time: '时间',\n 'time-range': '时间范围',\n date: '日期',\n 'date-range': '日期范围',\n switch: '开关',\n rate: '评分',\n color: '颜色选择器',\n slider: '滑块',\n 'static-text': '静态文字',\n 'html-text': 'HTML',\n button: '按钮',\n divider: '分隔线',\n dropdown: '下拉菜单',\n\n 'picture-upload': '图片',\n 'file-upload': '附件',\n 'rich-editor': '富文本',\n cascader: '级联选择',\n treeSelect: '树形选择',\n tree: '树',\n 'diy-compontent': '自定义组件',\n toolbar: '工具栏',\n 'button-list': '按钮组',\n slot: '插槽',\n custom: ' 自定义组件',\n 'code-editor': '代码编辑器',\n 'bpmn-editor': '流程图',\n 'echart-bar': '柱状图',\n 'echart-diy': '自定义图表',\n 'border-01': '边框-01',\n 'border-02': '边框-02',\n 'border-03': '边框-03',\n 'border-04': '边框-04',\n 'border-05': '边框-05',\n 'border-06': '边框-06',\n 'border-07': '边框-07',\n 'border-08': '边框-08',\n 'decorative-01': '装饰-01',\n 'decorative-02': '装饰-02',\n 'decorative-03': '装饰-03',\n 'decorative-04': '装饰-04',\n 'decorative-05': '装饰-05'\n },\n\n hint: {\n selectParentWidget: '选中父组件',\n moveUpWidget: '上移组件',\n moveDownWidget: '下移组件',\n cloneWidget: '复制组件',\n insertRow: '插入新行',\n insertColumn: '插入新列',\n remove: '移除组件',\n lock: '锁定',\n unlock: '解锁',\n layer: '图层',\n bringToFront: '置于顶层',\n sendToBack: '置于底层',\n bringForward: '上移一层',\n sendBackward: '下移一层',\n cellSetting: '单元格操作',\n dragHandler: '拖拽手柄',\n copyField: '复制字段组件',\n onlyFieldWidgetAcceptable: '子表单只能接收字段组件',\n moveUpFirstChildHint: '已经移动到最上面',\n moveDownLastChildHint: '已经移动到最下面',\n\n commonProperties: '通用属性',\n advancedProperties: '高级属性',\n eventProperties: '事件属性',\n\n closePreview: '关闭',\n copyJson: '复制JSON',\n saveFormJson: '保存为文件',\n copyVueCode: '复制Vue代码',\n copyHtmlCode: '复制HTML代码',\n copyJsonSuccess: '复制JSON成功',\n importJsonSuccess: '导入JSON成功',\n invalidJsonFormat: '无效的表单JSON格式',\n jsonVersionMismatch: '表单JSON版本号不匹配',\n copyJsonFail: '复制JSON失败',\n copyVueCodeSuccess: '复制Vue代码成功',\n copyVueCodeFail: '复制Vue代码失败',\n copyHtmlCodeSuccess: '复制HTML代码成功',\n copyHtmlCodeFail: '复制HTML代码失败',\n saveVueCode: '保存Vue文件',\n saveHtmlCode: '保存Html文件',\n getFormData: '获取数据',\n resetForm: '重置表单',\n disableForm: '禁用编辑',\n enableForm: '恢复编辑',\n switchReadMode: '只读查看',\n exportFormData: '表单数据',\n copyFormData: '复制JSON',\n saveFormData: '保存为文件',\n copyVue2SFC: '复制Vue2代码',\n copyVue3SFC: '复制Vue3代码',\n copySFCFail: '复制SFC代码失败',\n copySFCSuccess: '复制SFC代码成功',\n saveVue2SFC: '保存为Vue2组件',\n saveVue3SFC: '保存为Vue3组件',\n fileNameForSave: '文件名:',\n saveFileTitle: '保存为文件',\n fileNameInputPlaceholder: '请输入文件名',\n sampleLoadedSuccess: '表单示例加载成功',\n sampleLoadedFail: '表单示例加载失败',\n loadFormTemplate: '加载此模板',\n loadFormTemplateHint:\n '是否加载这个模板?加载后会覆盖设计器当前表单,你可以使用“撤销”功能恢复。',\n loadFormTemplateSuccess: '表单模板加载成功',\n loadFormTemplateFailed: '表单模板加载失败',\n currentNodeCannotBeSelected: '当前组件节点不可选择',\n noSelectedWidgetHint: '当前没有选中设置的组件',\n\n widgetSetting: '组件设置',\n 表单设置: '表单设置',\n 表单api配置: '表单api配置',\n 表单编辑api: '表单编辑api',\n 表单详情API: '表单详情API',\n\n prompt: '提示',\n confirm: '确定',\n cancel: '取消',\n import: '导入',\n importJsonHint: '导入的JSON内容须符合下述格式,以保证顺利导入.',\n importDSHint: '导入的数据源格式须符合规范,以保证顺利导入.',\n invalidOptionsData: '无效的选项数据:',\n lastPaneCannotBeDeleted: '仅剩一个选项卡页不可删除.',\n duplicateName: '组件名称已存在: ',\n nameRequired: '组件名称不可为空',\n\n numberValidator: '数字',\n letterValidator: '字母',\n letterAndNumberValidator: '数字字母',\n mobilePhoneValidator: '手机号码',\n emailValidator: '邮箱',\n urlValidator: '网址',\n noChineseValidator: '非中文字符',\n chineseValidator: '仅中文字符',\n\n rowspanNotConsistentForMergeEntireRow: '存在行高不一致的单元格, 无法合并整行.',\n colspanNotConsistentForMergeEntireColumn: '存在列宽不一致的单元格, 无法合并整列.',\n rowspanNotConsistentForDeleteEntireRow: '存在行高不一致的单元格, 不可删除整行.',\n colspanNotConsistentForDeleteEntireColumn: '存在列宽不一致的单元格, 不可删除整列.',\n lastColCannotBeDeleted: '最后一列不可删除.',\n lastRowCannotBeDeleted: '最后一行不可删除.'\n },\n\n toolbar: {\n undoHint: '撤销',\n redoHint: '重做',\n pcLayout: 'PC',\n padLayout: 'Pad',\n mobileLayout: 'H5',\n nodeTreeHint: '组件层次结构树',\n nodeTreeTitle: '组件层次结构树',\n clear: '清空',\n preview: '预览',\n save: '保存',\n importJson: '导入JSON',\n exportJson: '导出JSON',\n exportCode: '导出代码',\n generateCode: '生成代码',\n generateSFC: '生成SFC'\n },\n\n setting: {\n // 序号\n seq: '序号',\n containerInputPlaceholder: '请输入要渲染的目标',\n langMode: '语法模式',\n editAPIConfig: '编辑API',\n dataSoureEdit: '数据源编辑',\n lineHeight: '行高(px)',\n mode: '选择模式',\n combobox: '列表模式',\n multiple: '多选模式',\n tags: '标签模式',\n useModal: '使用功能按钮',\n resizableColumn: '可拖动调整宽度',\n ellipsisColumn: '超过宽度将自动省略',\n treeDefaultExpandAll: '默认展开所有树节点',\n shape: '按钮形状',\n danger: '危险按钮',\n ghost: '幽灵按钮',\n buttonConfig: '按钮配置',\n placement: '菜单弹出位置',\n bottomLeft: '下左',\n bottomRight: '下右',\n topLeft: '上左',\n topRight: '上右',\n menuList: '下拉菜单选项设置',\n\n pagination: '分页配置',\n defaultPageSize: '默认的每页条数',\n specifyPageSizeOptions: '指定每页可以显示多少条',\n hideOnSinglePage: '只有一页时是否隐藏分页器',\n showQuickJumper: '是否可以快速跳转至某页',\n showSizeChanger: '是否展示 pageSize 切换器',\n position: '分页器位置',\n\n hasRowSelection: '启用左侧勾选设置',\n fixedLeft: '左',\n fixedRight: '右',\n fixedNull: '中',\n preserveSelectedRowKeys: '当数据被删除时仍然保留选项的 key',\n customColumnWidth: '自定义列表选择框宽度',\n customColumnTitle: '自定义列表选择框标题',\n\n selectRow: '点击行选中',\n loadingPage: '加载分页',\n delete: '删除',\n tabBarGutter: '页签之间的间隙',\n tabPosition: '页签位置',\n tabType: '页签类型',\n rowKey: '列表主键(唯一性)',\n holdHidden: '隐藏时是否占位',\n editFunction: '编辑函数',\n formCode: '关联表单',\n edit: '编辑',\n horizontal: '水平',\n vertical: '垂直',\n 基本属性: '基本属性',\n attributeSetting: '属性设置',\n 常见属性: '常见属性',\n 高级属性: '高级属性',\n 事件属性: '事件属性',\n uniqueName: '唯一名称',\n editNameHelp: '修改名称后需按回车确认',\n label: '标签',\n displayType: '显示类型',\n defaultValue: '默认值',\n placeholder: '占位内容',\n startPlaceholder: '起始占位内容',\n endPlaceholder: '截止占位内容',\n widgetColumnWidth: '组件列宽',\n widgetSize: '组件大小',\n widgetFlex: '对齐方式',\n autoFullWidth: '自动拉伸宽度',\n displayStyle: '显示样式',\n inlineLayout: '行内',\n blockLayout: '块',\n buttonStyle: '显示为按钮',\n border: '带有边框',\n labelWidth: '标签宽度(px)',\n rows: '行数',\n labelHidden: '隐藏字段标签',\n required: '必填字段',\n requiredHint: '必填校验提示',\n validation: '字段校验',\n validationHelp: '支持输入正则表达式',\n validationHint: '校验失败提示',\n readonly: '只读',\n disabled: '禁用',\n hidden: '隐藏',\n textContent: '静态文字',\n htmlContent: 'HTML',\n allowClear: '可清除',\n editable: '可输入',\n format: '显示格式',\n valueFormat: '绑定值格式',\n showPassword: '可显示密码',\n filterable: '可搜索选项',\n allowCreate: '允许创建选项',\n showSearch: '可远程搜索',\n automaticDropdown: '自动弹出选项',\n multipleLimit: '多选数量限制',\n checkStrictly: '任意级节点可选',\n showAllLevels: '显示完整路径',\n contentPosition: '文字位置',\n dividerDirection: '分割线方向',\n plain: '朴素按钮',\n round: '圆角按钮',\n circle: '圆形按钮',\n icon: '图标',\n optionsSetting: '选项设置',\n addOption: '增加选项',\n importOptions: '导入选项',\n resetDefault: '重设选中项',\n uploadSetting: '上传参数设置',\n uploadURL: '上传地址',\n uploadTip: '上传提示内容',\n withCredentials: '发送cookie凭证',\n multipleSelect: '文件可多选',\n uploadListType: '上传列表的内建样式',\n showFileList: '显示文件列表',\n limit: '最大上传数量',\n fileMaxSize: '文件大小限制(MB)',\n fileTypes: '上传文件类型',\n uploadType: '上传类型',\n fileTypesHelp: '支持添加其他文件类型',\n headers: '上传请求头',\n cellWidth: '宽度',\n cellHeight: '高度',\n gridColHeight: '栅格列统一高度(px)',\n gutter: '栅格间隔(px)',\n columnSetting: '栅格属性设置',\n colsOfGrid: '当前栅格列:',\n colSpanTitle: '栅格宽度',\n colOffsetTitle: '左侧间隔格数',\n colPushTitle: '右移栅格数',\n colPullTitle: '左移栅格数',\n addColumn: '增加栅格',\n responsive: '响应式布局',\n customRender: '自定义渲染',\n\n labelBefore: '标签前面',\n labelAfter: '标签后面',\n\n tabPaneSetting: '选项卡设置',\n addTabPane: '增加选项卡页',\n paneActive: '激活',\n\n customLabelIcon: '定制字段标签',\n labelIconClass: '标签Icon样式',\n labelIconTooltip: '标签Icon提示',\n labelIconPosition: '标签Icon位置',\n minValue: '最小值',\n maxValue: '最大值',\n precision: '精度',\n step: '增减步长',\n controlsPosition: '控制按钮位置',\n minLength: '最小长度',\n maxLength: '最大长度',\n showCount: '显示字数统计',\n addonBefore: '头部标签',\n inputButton: '输入框按钮设置',\n appendButton: '添加后置按钮',\n appendButtonDisabled: '后置按钮禁用',\n appendButtonIcon: '后置按钮Icon',\n buttonIcon: '按钮Icon',\n switchWidth: '开关宽度(像素)',\n checkedValue: '开启时对应枚举',\n unCheckedValue: '关闭时对应枚举',\n activeColor: '开启时背景色',\n inactiveColor: '关闭时背景色',\n maxStars: '最大评分值',\n lowThreshold: '低分界限值',\n highThreshold: '高分界限值',\n allowHalf: '允许半选',\n showText: '显示辅助文字',\n showScore: '显示当前分数',\n range: '是否为范围选择',\n showBlankRow: '默认显示新行',\n showRowNumber: '显示行号',\n contentHeight: '内容区高度',\n\n insertColumnToLeft: '插入左侧列',\n insertColumnToRight: '插入右侧列',\n insertRowAbove: '插入上方行',\n insertRowBelow: '插入下方行',\n mergeLeftColumn: '合并左侧单元格',\n mergeRightColumn: '合并右侧单元格',\n mergeEntireRow: '合并整行',\n mergeRowAbove: '合并上方单元格',\n mergeRowBelow: '合并下方单元格',\n mergeEntireColumn: '合并整列',\n undoMergeCol: '撤销列合并',\n undoMergeRow: '撤销行合并',\n deleteEntireCol: '删除整列',\n deleteEntireRow: '删除整行',\n\n widgetName: '组件唯一名称',\n formSize: '全局组件大小',\n labelPosition: '字段标签位置',\n topPosition: '顶部',\n leftPosition: '左边',\n labelAlign: '字段标签对齐',\n buttonList: '按钮组',\n buttonListConfig: '按钮组配置',\n buttonPosition: '按钮组位置',\n leftAlign: '居左',\n centerAlign: '居中',\n rightAlign: '居右',\n formCss: '表单全局CSS',\n addCss: '编写CSS',\n customClass: '自定义CSS样式',\n globalFunctions: '表单全局函数',\n addEventHandler: '编写代码',\n editWidgetEventHandler: '组件事件处理',\n editFormEventHandler: '表单事件处理',\n formSFCSetting: '生成SFC设置',\n formModelName: '数据对象名称',\n formRefName: '引用名称',\n formRulesName: '验证规则名称',\n syntaxCheckWarning: 'JS代码存在语法错误,请仔细检查!',\n\n //dialog & drawer\n title: '标题',\n width: '宽度(px/%)',\n fullscreen: '全屏显示弹窗',\n showModal: '显示遮罩层',\n showClose: '显示关闭按钮',\n closeOnClickModal: '点击遮罩层关闭',\n closeOnPressEscape: '按Esc键关闭',\n center: '头部底部居中',\n readMode: '弹窗表单只读',\n disabledMode: '弹窗表单禁用',\n drawSize: '抽屉大小(px/%)',\n drawDirection: '抽屉滑出方向',\n isEnterSubmit: '回车键提交',\n autoWidth: '自动宽度',\n\n //data-table\n tableWidth: '宽度(px/%)',\n tableHeight: '高度(px/%)',\n // showCheckBox: '是否显示复选框列',\n showIndex: '是否显示行号',\n showPagination: '是否显示分页',\n smallPagination: '小型分页',\n tableColEdit: '表格列编辑',\n tableDataEdit: '数据编辑',\n showSummary: '是否合计',\n stripe: '是否斑马线',\n rowSpacing: '行距(px)',\n editAction: '编辑...',\n columnName: '字段名称',\n columnLabel: '显示名称',\n titleSuffix: '标题后缀',\n showTitleSuffix: '开启标题后缀',\n columnWidth: '列宽(px)',\n visibleColumn: '是否显示',\n sortableColumn: '是否排序',\n fixed: '固定位置',\n fixedColumn: '固定方式',\n autoHeight: '自动高度',\n alignTypeOfColumn: '对齐方式',\n formatOfColumn: '格式化',\n customRenderGroup: '动态渲染',\n renderFunction: '渲染函数',\n actionColumn: '操作',\n addTableColumn: '增加列',\n deleteTableColumn: '删除列',\n addSubsets: '增加子集',\n onlyOneColumnCannotBeDeleted: '表格只有一列时不可删除.',\n treeDataEnabled: '允许加载树形数据',\n rowKeyOfTreeData: '树形数据ID键',\n childrenKeyOfTreeData: '树形数据子节点键',\n showButtonsColumn: '显示操作按钮列',\n buttonsColumnEdit: '操作按钮编辑',\n buttonsColumnTitle: '列标题',\n buttonsColumnWidth: '列宽度(px)',\n operationButtonsSetting: '操作按钮设置',\n operationButtonName: '名称',\n operationButtonLabel: '文字',\n operationButtonType: '类型',\n operationButtonSize: '大小',\n operationButtonGhost: '幽灵按钮',\n operationButtonRound: '圆角',\n operationButtonHidden: '隐藏',\n operationButtonDisabled: '禁用',\n addOperationButton: '增加按钮',\n deleteOperationButtonHint: '确定删除该按钮?',\n operationButtonDuplicatedNameError: '按钮名称不可重复',\n\n //data-source\n dsEnabled: '使用数据源',\n dsName: '指定数据源',\n dataSetName: '指定数据集',\n labelKeyName: '选项标签名',\n valueKeyName: '选项值名',\n childrenKeyName: '子节点属性名称',\n dataSource: '数据源',\n noDataSource: '暂无数据源',\n addDataSource: '新增数据源',\n importDataSource: '导入数据源',\n clearExistingDataSource: '导入后清空原有数据源',\n remainExistingDataSource: '追加到已有数据源之后',\n exportDataSource: '导出数据源',\n selectDataSourceForExport: '选择导出数据源',\n dataSourceChecked: '选中导出',\n previewDataSourceExportResult: '导出结果预览',\n dataSourceSetting: '数据源设置',\n deleteDataSourceHint: '确认删除该数据源?',\n fieldValueRequired: '输入内容不可为空',\n dsUniqueName: '唯一名称',\n dsRequestURL: '请求地址',\n dsRequestURLType: '请求URL类型',\n dsURLStringType: '固定字符串',\n dsURLVariableType: '变量或表达式',\n dsDescription: '描述信息',\n dsRequestMethod: '请求方法',\n dsRequestHeaders: '请求头(headers)',\n addRequestHeader: '新增请求头',\n dsRequestParams: '参数(params)',\n addRequestParam: '新增请求参数',\n dsRequestData: '发送数据(data)',\n addRequestData: '新增发送数据',\n addDataSet: '新增数据集',\n dsRequestValueStringType: '字符串类型',\n dsRequestValueNumberType: '数值类型',\n dsRequestValueBooleanType: '布尔类型',\n dsRequestValueVariableType: '变量或表达式',\n dsRequestNameInputPlaceholder: '名称',\n dsRequestTypeInputPlaceholder: '类型',\n dsRequestValueInputPlaceholder: '值',\n dataSetRemarkInputPlaceholder: '备注说明',\n dsConfigHandlerTitle: '1. 请求配置',\n dsDataHandlerTitle: '2. 数据处理',\n dsErrorHandlerTitle: '3. 错误处理',\n dataSetSettingTitle: '4. 多数据集配置',\n dataSetEnabled: '开启多数据集返回',\n dataSetSetting: '返回数据集管理',\n testDataSource: '测试数据源',\n dsvTitle: 'DSV数据源变量',\n dsRequestResult: '返回数据',\n executeDataSource: '立即执行',\n clearRequestResult: '清空结果',\n dsRequestNumberTypeError: '数据类型值错误',\n dsRequestBooleanTypeError: '布尔类型值错误',\n dsValidationError: '数据源设置存在错误,请修改',\n dsDuplicatedNameError: '数据源名称重复,请修改!',\n slotCompontent: '插槽名',\n diyCompontent: '组件名',\n top: '上',\n right: '右',\n bottom: '下',\n left: '左',\n\n showBorder: '显示边框',\n borderStyle: '边框样式',\n solid: '实线',\n dashed: '虚线',\n dotted: '点线',\n double: '双线',\n borderWidth: '边框宽度',\n colorBlock: '主题颜色',\n borderRadius: '圆角',\n backgroundColor: '背景颜色',\n shadow: '阴影',\n enableShadow: '启用阴影',\n shadowOffsetX: '水平偏移',\n shadowOffsetY: '垂直偏移',\n shadowBlur: '模糊半径',\n shadowSpread: '扩散半径',\n shadowColor: '阴影颜色',\n operationButtonClick: '点击事件',\n operationButtonAction: '操作',\n biProperties: 'BI 属性',\n canvasWidth: '画布宽度',\n canvasHeight: '画布高度',\n scaleMode: '缩放模式',\n scale: '固定缩放比例',\n autoScale: '自适应',\n fixedScale: '固定比例'\n }\n },\n 是否可勾选: '是否可勾选',\n 表格数据变化: '表格数据变化',\n 左固定: '左固定',\n\n 默认折叠: '默认折叠',\n 窗体样式: '窗体样式',\n 头部右插槽样式: '头部右插槽样式',\n 折叠时icon: '折叠时icon',\n 未折叠时icon: '未折叠时icon',\n height: '高度',\n 复制: '复制',\n 编写样式: '编写样式',\n 盒模型配置: '盒模型配置',\n Margin: '外边距',\n Padding: '内边距',\n 参数设置: '参数设置',\n 是否展示连接线: '是否展示连接线',\n 是否可选择: '是否可选择',\n 数据源设置: '数据源设置',\n 数据源: '数据源',\n 当前位置: '当前位置',\n 自定义位置: '自定义位置'\n};\n"],"names":[],"mappings":"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"}
|