@tmagic/form 1.0.2 → 1.0.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/dist/style.css +3 -0
- package/dist/tmagic-form.es.js +219 -225
- package/dist/tmagic-form.es.js.map +1 -1
- package/dist/tmagic-form.umd.js +221 -227
- package/dist/tmagic-form.umd.js.map +1 -1
- package/dist/types/src/containers/Fieldset.vue.d.ts +54 -31
- package/dist/types/src/containers/Tabs.vue.d.ts +2 -0
- package/dist/types/src/fields/SelectOptionGroups.vue.d.ts +13 -0
- package/dist/types/src/fields/SelectOptions.vue.d.ts +21 -0
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/schema.d.ts +10 -1
- package/package.json +8 -9
- package/src/containers/Fieldset.vue +45 -73
- package/src/containers/Tabs.vue +11 -2
- package/src/fields/Cascader.vue +2 -1
- package/src/fields/DateTime.vue +1 -1
- package/src/fields/Daterange.vue +1 -1
- package/src/fields/Select.vue +10 -23
- package/src/fields/SelectOptionGroups.vue +20 -0
- package/src/fields/SelectOptions.vue +18 -0
- package/src/index.ts +1 -1
- package/src/schema.ts +10 -1
- package/src/theme/fieldset.scss +4 -0
- package/src/utils/form.ts +3 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmagic-form.umd.js","sources":["../src/utils/form.ts","../plugin-vue:export-helper","../src/containers/Container.vue","../src/containers/Fieldset.vue","../src/containers/GroupListItem.vue","../src/containers/GroupList.vue","../src/containers/Panel.vue","../src/containers/Col.vue","../src/containers/Row.vue","../src/containers/Step.vue","../src/containers/Table.vue","../src/containers/Tabs.vue","../src/utils/config.ts","../src/utils/fieldProps.ts","../src/utils/useAddField.ts","../src/fields/Cascader.vue","../src/fields/Checkbox.vue","../src/fields/CheckboxGroup.vue","../src/fields/ColorPicker.vue","../src/fields/Date.vue","../src/fields/Daterange.vue","../src/fields/DateTime.vue","../src/fields/Display.vue","../src/fields/DynamicField.vue","../src/fields/Hidden.vue","../src/fields/Link.vue","../src/fields/Number.vue","../src/fields/RadioGroup.vue","../src/fields/Select.vue","../src/fields/Switch.vue","../src/fields/Text.vue","../src/fields/Textarea.vue","../src/fields/Time.vue","../src/Form.vue","../src/FormDialog.vue","../src/index.ts"],"sourcesContent":["/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable no-param-reassign */\nimport { toRaw } from 'vue';\nimport { cloneDeep } from 'lodash-es';\n\nimport {\n ChildConfig,\n ContainerCommonConfig,\n DaterangeConfig,\n FormConfig,\n FormState,\n FormValue,\n HtmlField,\n Rule,\n TabPaneConfig,\n TypeFunction,\n} from '../schema';\n\ninterface DefaultItem {\n defaultValue: any;\n type: string;\n filter: string;\n multiple: boolean;\n}\n\nconst isTableSelect = (type?: string | TypeFunction) =>\n typeof type === 'string' && ['table-select', 'tableSelect'].includes(type);\n\nconst asyncLoadConfig = (value: FormValue, initValue: FormValue, { asyncLoad, name, type }: HtmlField) => {\n // 富文本配置了异步加载\n if (type === 'html' && typeof asyncLoad === 'object' && typeof name !== 'undefined') {\n asyncLoad.name = name;\n value.asyncLoad = typeof initValue.asyncLoad === 'object' ? initValue.asyncLoad : asyncLoad;\n }\n};\n\nconst isMultipleValue = (type?: string | TypeFunction) =>\n typeof type === 'string' &&\n [\n 'checkbox-group',\n 'checkboxGroup',\n 'table',\n 'cascader',\n 'group-list',\n 'groupList',\n 'dynamic-tab',\n 'dynamicTab',\n ].includes(type);\n\nconst initItemsValue = (\n mForm: FormState | undefined,\n value: FormValue,\n initValue: FormValue,\n { items, name, extensible }: any,\n) => {\n if (Array.isArray(initValue[name])) {\n value[name] = initValue[name].map((v: any, index: number) => init(mForm, items, v, value[name]?.[index]));\n } else {\n value[name] = init(mForm, items, initValue[name], value[name]);\n if (extensible) {\n value[name] = Object.assign({}, initValue[name], value[name]);\n }\n }\n};\n\nconst setValue = (mForm: FormState | undefined, value: FormValue, initValue: FormValue, item: any) => {\n const { items, name, type, checkbox } = item;\n // 值是数组, 有可能也有items配置,所以不能放到getDefaultValue里赋值\n if (isMultipleValue(type)) {\n value[name] = initValue[name] || [];\n }\n\n // 有子项继续递归,没有的话有初始值用初始值,没有初始值用默认值\n if (items) {\n initItemsValue(mForm, value, initValue, item);\n } else {\n value[name] = getDefaultValue(mForm, item as DefaultItem);\n }\n\n // 如果fieldset配置checkbox,checkbox的值保存在value中\n if (type === 'fieldset' && checkbox) {\n if (typeof value[name] === 'object') {\n value[name].value = typeof initValue[name] === 'object' ? initValue[name].value || 0 : 0;\n }\n }\n};\n\nconst initValueItem = function (\n mForm: FormState | undefined,\n item: ChildConfig | TabPaneConfig,\n initValue: FormValue,\n value: FormValue,\n) {\n const { items } = item as ContainerCommonConfig;\n const { names } = item as DaterangeConfig;\n const { type, name } = item as ChildConfig;\n\n if (isTableSelect(type) && name) {\n value[name] = initValue[name] || '';\n return value;\n }\n\n asyncLoadConfig(value, initValue, item as HtmlField);\n\n // 这种情况比较多,提前结束\n if (name && !items && typeof initValue[name] !== 'undefined') {\n if (typeof value[name] === 'undefined') {\n if (type === 'number') {\n value[name] = Number(initValue[name]);\n } else {\n value[name] = typeof initValue[name] === 'object' ? cloneDeep(initValue[name]) : initValue[name];\n }\n }\n\n return value;\n }\n\n if (names) {\n return names.forEach((n: string) => (value[n] = initValue[n] || ''));\n }\n\n if (!name) {\n // 没有配置name,直接跳过\n return init(mForm, items, initValue, value);\n }\n\n setValue(mForm, value, initValue, item);\n\n return value;\n};\n\nconst init = function (\n mForm: FormState | undefined,\n config: FormConfig | TabPaneConfig[] = [],\n initValue: FormValue = {},\n value: FormValue = {},\n) {\n if (Array.isArray(config)) {\n config.forEach((item: ChildConfig | TabPaneConfig) => {\n initValueItem(mForm, item, initValue, value);\n });\n }\n\n return value;\n};\n\nconst getDefaultValue = function (mForm: FormState | undefined, { defaultValue, type, filter, multiple }: DefaultItem) {\n if (typeof defaultValue === 'function') {\n return defaultValue(mForm);\n }\n\n // 如果直接设置为undefined,在解析成js对象时会丢失这个配置,所以用'undefined'代替\n if (defaultValue === 'undefined') {\n return undefined;\n }\n\n if (typeof defaultValue !== 'undefined') {\n return defaultValue;\n }\n\n if (type === 'number' || filter === 'number') {\n return 0;\n }\n\n if (['switch', 'checkbox'].includes(type)) {\n return false;\n }\n\n if (multiple) {\n return [];\n }\n\n return '';\n};\n\nexport const filterFunction = (mForm: FormState | undefined, config: any, props: any) => {\n if (typeof config !== 'function') {\n return config;\n }\n\n return config(mForm, {\n values: mForm?.initValues || {},\n model: props.model,\n parent: mForm?.parentValues || {},\n formValue: mForm?.values || props.model,\n prop: props.prop,\n config: props.config,\n });\n};\n\nexport const display = function (mForm: FormState | undefined, config: any, props: any) {\n if (typeof config === 'function') {\n return filterFunction(mForm, config, props);\n }\n\n if (config === false) {\n return false;\n }\n\n return true;\n};\n\nexport const getRules = function (mForm: FormState | undefined, rules: Rule[] | Rule = [], props: any) {\n rules = cloneDeep(rules);\n\n if (typeof rules === 'object' && !Array.isArray(rules)) {\n rules = [rules];\n }\n\n return rules.map((item) => {\n if (typeof item.validator === 'function') {\n const fnc = item.validator;\n\n (item as any).validator = (rule: any, value: any, callback: Function, source: any, options: any) =>\n fnc(\n {\n rule,\n value,\n callback,\n source,\n options,\n },\n {\n values: mForm?.initValues || {},\n model: props.model,\n parent: mForm?.parentValues || {},\n formValue: mForm?.values || props.model,\n prop: props.prop,\n config: props.config,\n },\n mForm,\n );\n }\n return item;\n });\n};\n\nexport const initValue = async (\n mForm: FormState | undefined,\n { initValues, config }: { initValues: FormValue; config: FormConfig },\n) => {\n if (!Array.isArray(config)) throw new Error('config应该为数组');\n\n let valuesTmp = init(mForm, config, toRaw(initValues), {});\n\n const [firstForm] = config as [ContainerCommonConfig];\n if (firstForm && typeof firstForm.onInitValue === 'function') {\n valuesTmp = await firstForm.onInitValue(mForm, {\n formValue: valuesTmp,\n initValue: initValues,\n });\n }\n\n return valuesTmp || {};\n};\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<template>\n <div\n v-if=\"config\"\n :style=\"config.tip ? 'display: flex;align-items: baseline;' : ''\"\n :class=\"config.className\"\n class=\"m-form-container\"\n >\n <m-fields-hidden\n v-if=\"type === 'hidden'\"\n :model=\"model\"\n :config=\"config\"\n :name=\"config.name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n ></m-fields-hidden>\n\n <component\n v-else-if=\"items && !config.text && type && display\"\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :prop=\"itemProp\"\n :step-active=\"stepActive\"\n :expand-more=\"expand\"\n :label-width=\"itemLabelWidth\"\n @change=\"onChangeHandler\"\n ></component>\n\n <template v-else-if=\"type && display\">\n <el-form-item\n :style=\"config.tip ? 'flex: 1' : ''\"\n :class=\"{ hidden: `${itemLabelWidth}` === '0' || !config.text }\"\n :prop=\"itemProp\"\n :label-width=\"itemLabelWidth\"\n :rules=\"rule\"\n >\n <template #label><span v-html=\"type === 'checkbox' ? '' : config.text\"></span></template>\n <el-tooltip v-if=\"tooltip\">\n <component\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></component>\n <template #content>\n <div v-html=\"tooltip\"></div>\n </template>\n </el-tooltip>\n\n <component\n v-else\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></component>\n\n <div v-if=\"extra\" v-html=\"extra\" class=\"m-form-tip\"></div>\n </el-form-item>\n\n <el-tooltip v-if=\"config.tip\" placement=\"left\">\n <el-icon style=\"line-height: 40px; margin-left: 5px\"><warning-filled /></el-icon>\n <template #content>\n <div v-html=\"config.tip\"></div>\n </template>\n </el-tooltip>\n </template>\n\n <template v-else-if=\"items && display\">\n <template v-if=\"name || name === 0 ? model[name] : model\">\n <m-form-container\n v-for=\"item in items\"\n :key=\"key(item)\"\n :model=\"name || name === 0 ? model[name] : model\"\n :config=\"item\"\n :size=\"size\"\n :step-active=\"stepActive\"\n :expand-more=\"expand\"\n :label-width=\"itemLabelWidth\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></m-form-container>\n </template>\n </template>\n\n <div style=\"text-align: center\" v-if=\"config.expand && type !== 'fieldset'\">\n <el-button text @click=\"expandHandler\">{{ expand ? '收起配置' : '展开更多配置' }}</el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref, resolveComponent, watchEffect } from 'vue';\nimport { WarningFilled } from '@element-plus/icons';\n\nimport { ChildConfig, ContainerCommonConfig, FormState, FormValue } from '../schema';\nimport { display as displayFunction, filterFunction, getRules } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-container',\n\n components: { WarningFilled },\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: [Object, Array] as PropType<FormValue>,\n required: true,\n },\n\n config: {\n type: Object as PropType<ChildConfig>,\n required: true,\n },\n\n prop: {\n type: String,\n default: () => '',\n },\n\n stepActive: {\n type: [String, Number],\n },\n\n size: {\n type: String,\n default: 'small',\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const expand = ref(false);\n\n const name = computed(() => props.config.name || '');\n\n const items = computed(() => (props.config as ContainerCommonConfig).items);\n\n const itemProp = computed(() => {\n let n: string | number = '';\n const { names } = props.config as any;\n if (names?.[0]) {\n [n] = names;\n } else if (name.value) {\n n = name.value;\n } else {\n return props.prop;\n }\n return `${props.prop}${props.prop ? '.' : ''}${n}`;\n });\n\n const tagName = computed(() => {\n const component = resolveComponent(`m-${items.value ? 'form' : 'fields'}-${type.value}`);\n if (typeof component !== 'string') return component;\n return 'm-fields-text';\n });\n\n const disabled = computed(() => filterFunction(mForm, props.config.disabled, props));\n\n const tooltip = computed(() => filterFunction(mForm, props.config.tooltip, props));\n\n const extra = computed(() => filterFunction(mForm, props.config.extra, props));\n\n const rule = computed(() => getRules(mForm, props.config.rules, props));\n\n const type = computed((): string => {\n let { type } = props.config;\n if (typeof type === 'function') {\n type = type(mForm, {\n model: props.model,\n });\n }\n if (type === 'form') return '';\n return type?.replace(/([A-Z])/g, '-$1').toLowerCase() || (items.value ? '' : 'text');\n });\n\n const display = computed((): boolean => {\n if (props.config.display === 'expand') {\n return expand.value;\n }\n\n return displayFunction(mForm, props.config.display, props);\n });\n\n const itemLabelWidth = computed(() => props.config.labelWidth || props.labelWidth);\n\n watchEffect(() => {\n expand.value = props.expandMore;\n });\n\n const expandHandler = () => (expand.value = !expand.value);\n\n const key = (config: any) => config[mForm?.keyProps];\n\n const filterHandler = (filter: any, value: FormValue | number | string) => {\n if (typeof filter === 'function') {\n return filter(mForm, value, {\n model: props.model,\n values: mForm?.initValues,\n formValue: mForm?.values,\n prop: itemProp.value,\n config: props.config,\n });\n }\n\n if (filter === 'number') {\n return +value;\n }\n\n return value;\n };\n\n const changeHandler = (onChange: any, value: FormValue | number | string) => {\n if (typeof onChange === 'function') {\n return onChange(mForm, value, {\n model: props.model,\n values: mForm?.initValues,\n formValue: mForm?.values,\n prop: itemProp.value,\n config: props.config,\n });\n }\n };\n\n const trimHandler = (trim: any, value: FormValue | number | string) => {\n if (typeof value === 'string' && trim) {\n return value.replace(/^\\s*/, '').replace(/\\s*$/, '');\n }\n };\n\n const onChangeHandler = async function (v: FormValue, key?: string) {\n const { filter, onChange, trim, name, dynamicKey } = props.config as any;\n let value: FormValue | number | string = v;\n\n try {\n value = filterHandler(filter, v);\n value = (await changeHandler(onChange, value)) ?? value;\n value = trimHandler(trim, value) ?? value;\n } catch (e) {\n console.error(e);\n }\n\n // field内容下包含field-link时,model===value, 这里避免循环引用\n if ((name || name === 0) && props.model !== value && (v !== value || props.model[name] !== value)) {\n // eslint-disable-next-line vue/no-mutating-props\n props.model[name] = value;\n }\n // 动态表单类型,根据value和key参数,直接修改model\n if (key !== undefined && dynamicKey) {\n // eslint-disable-next-line vue/no-mutating-props\n props.model[key] = value;\n }\n emit('change', props.model);\n };\n\n return {\n expand,\n name,\n type,\n disabled,\n itemProp,\n items,\n display,\n itemLabelWidth,\n tagName,\n rule,\n tooltip,\n extra,\n key,\n onChangeHandler,\n expandHandler,\n };\n },\n});\n</script>\n","<template>\n <fieldset\n v-if=\"name ? model[name] : model\"\n class=\"m-fieldset\"\n :style=\"show ? 'padding: 15px 15px 0 5px;' : 'border: 0'\"\n >\n <el-checkbox\n v-if=\"!show && name\"\n v-model=\"model[name].value\"\n :prop=\"`${prop}${prop ? '.' : ''}${config.name}.value`\"\n :true-label=\"1\"\n :false-label=\"0\"\n @change=\"change\"\n ><span v-html=\"config.legend\"></span><span v-if=\"config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span\n ></el-checkbox>\n <legend v-else-if=\"config.checkbox && name\">\n <el-checkbox\n v-model=\"model[name].value\"\n :prop=\"`${prop}${prop ? '.' : ''}${config.name}.value`\"\n :true-label=\"1\"\n :false-label=\"0\"\n @change=\"change\"\n ><span v-html=\"config.legend\"></span><span v-if=\"config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span\n ></el-checkbox>\n </legend>\n <legend v-else>\n <span v-html=\"config.legend\"></span>\n <span v-if=\"config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span>\n </legend>\n\n <div v-if=\"config.schematic && show\" style=\"display: flex\">\n <div style=\"flex: 1\">\n <m-form-container\n v-for=\"(item, index) in config.items\"\n :key=\"key(item, index)\"\n :model=\"name ? model[name] : model\"\n :rules=\"name ? rules[name] : []\"\n :config=\"item\"\n :prop=\"prop\"\n :labelWidth=\"lWidth\"\n :size=\"size\"\n @change=\"change\"\n ></m-form-container>\n </div>\n\n <img class=\"m-form-schematic\" :src=\"config.schematic\" />\n </div>\n\n <template v-else-if=\"show\">\n <m-form-container\n v-for=\"(item, index) in config.items\"\n :key=\"key(item, index)\"\n :model=\"name ? model[name] : model\"\n :rules=\"name ? rules[name] : []\"\n :config=\"item\"\n :prop=\"prop\"\n :labelWidth=\"lWidth\"\n :size=\"size\"\n @change=\"change\"\n ></m-form-container>\n </template>\n </fieldset>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { FieldsetConfig, FormState } from '../schema';\n\nexport default defineComponent({\n name: 'm-form-fieldset',\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<FieldsetConfig>,\n default: () => ({}),\n },\n\n rules: {\n type: Object,\n default: () => ({}),\n },\n\n prop: {\n type: String,\n default: () => '',\n },\n\n size: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const name = computed(() => props.config.name || '');\n\n const show = computed(() => {\n if (props.config.expand && name.value) {\n return props.model[name.value]?.value;\n }\n return true;\n });\n\n const lWidth = computed(() => {\n if (props.config.items) {\n return props.config.labelWidth || props.labelWidth;\n }\n return props.config.labelWidth || props.labelWidth || (props.config.text ? null : '0');\n });\n\n const change = () => {\n emit('change', props.model);\n };\n\n const key = (item: any, index: number) => item[mForm?.keyProp || '__key'] ?? index;\n\n return {\n show,\n name,\n mForm,\n lWidth,\n key,\n change,\n };\n },\n});\n</script>\n\n<style lang=\"scss\"></style>\n","<template>\n <div class=\"m-fields-group-list-item\">\n <div>\n <el-icon style=\"margin-right: 7px\" @click=\"expandHandler\"\n ><caret-bottom v-if=\"expand\" /><caret-right v-else\n /></el-icon>\n\n <el-button text @click=\"expandHandler\">{{ title }}</el-button>\n\n <el-button\n v-show=\"showDelete(parseInt(String(index)))\"\n text\n :icon=\"Delete\"\n style=\"color: #f56c6c\"\n @click=\"removeHandler\"\n ></el-button>\n\n <template v-if=\"movable()\">\n <el-button v-show=\"index !== 0\" text size=\"small\" @click=\"changeOrder(-1)\"\n >上移<el-icon><CaretRight /></el-icon\n ></el-button>\n <el-button v-show=\"index !== length - 1\" text size=\"small\" @click=\"changeOrder(1)\"\n >下移<el-icon><CaretBottom /></el-icon\n ></el-button>\n </template>\n\n <span v-if=\"itemExtra\" v-html=\"itemExtra\" class=\"m-form-tip\"></span>\n </div>\n\n <m-form-container\n v-if=\"expand\"\n :config=\"rowConfig\"\n :model=\"model\"\n :labelWidth=\"labelWidth\"\n :prop=\"`${prop}${prop ? '.' : ''}${String(index)}`\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref, watchEffect } from 'vue';\nimport { CaretBottom, CaretRight, Delete } from '@element-plus/icons';\n\nimport { FormState, GroupListConfig } from '../schema';\nimport { filterFunction } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-group-list-item',\n\n components: { CaretRight, CaretBottom },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<GroupListConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n\n index: {\n type: [Number, String, Symbol],\n default: 0,\n },\n\n groupModel: {\n type: Array,\n default: () => [],\n },\n },\n\n emits: ['swap-item', 'remove-item', 'change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const expand = ref(false);\n\n watchEffect(() => {\n expand.value = !props.index;\n });\n\n const rowConfig = computed(() => ({\n type: 'row',\n span: props.config.span || 24,\n items: props.config.items,\n labelWidth: props.config.labelWidth,\n [mForm?.keyProp || '__key']: `${props.config[mForm?.keyProp || '__key']}${String(props.index)}`,\n }));\n\n const title = computed(() => {\n if (props.config.titleKey && props.model[props.config.titleKey]) {\n return props.model[props.config.titleKey];\n }\n\n return `组 ${String(props.index)}`;\n });\n\n const length = computed(() => props.groupModel?.length || 0);\n\n const itemExtra = computed(() => filterFunction(mForm, props.config.itemExtra, props));\n\n const removeHandler = () => emit('remove-item', props.index);\n\n const changeHandler = () => emit('change');\n\n const expandHandler = () => {\n expand.value = !expand.value;\n };\n\n // 希望支持单行可控制是否显示删除按钮,不会影响现有逻辑\n const showDelete = (index: number) => {\n const deleteFunc = props.config.delete;\n if (deleteFunc && typeof deleteFunc === 'function') {\n return deleteFunc(props.model, index, mForm?.values);\n }\n return true;\n };\n\n // 调换顺序\n const changeOrder = (offset = 0) => emit('swap-item', props.index, `${String(props.index)}${offset}`);\n\n const movable = () => {\n const { movable } = props.config;\n\n // 没有设置时,默认可移动\n if (movable === undefined) return true;\n if (typeof movable === 'function') {\n return movable(mForm, props.index || 0, props.model, props.groupModel);\n }\n return movable;\n };\n\n return {\n expand,\n expandHandler,\n title,\n showDelete,\n removeHandler,\n movable,\n changeOrder,\n itemExtra,\n rowConfig,\n changeHandler,\n length,\n Delete,\n };\n },\n});\n</script>\n","<template>\n <div class=\"m-fields-group-list\">\n <div v-if=\"config.extra\" v-html=\"config.extra\" style=\"color: rgba(0, 0, 0, 0.45)\"></div>\n <div v-if=\"!model[name] || !model[name].length\" class=\"el-table__empty-block\">\n <span class=\"el-table__empty-text\">暂无数据</span>\n </div>\n\n <m-fields-group-list-item\n v-else\n v-for=\"(item, index) in model[name]\"\n :key=\"index\"\n :model=\"item\"\n :config=\"config\"\n :prop=\"prop\"\n :index=\"index\"\n :label-width=\"labelWidth\"\n :size=\"size\"\n :group-model=\"model[name]\"\n @remove-item=\"removeHandler\"\n @swap-item=\"swapHandler\"\n @change=\"changeHandler\"\n ></m-fields-group-list-item>\n\n <el-button @click=\"addHandler\" size=\"small\" v-if=\"addable\">添加组</el-button>\n\n <el-button icon=\"el-icon-s-grid\" size=\"small\" @click=\"toggleMode\" v-if=\"config.enableToggleMode\"\n >切换为表格</el-button\n >\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, GroupListConfig } from '../schema';\nimport { initValue } from '../utils/form';\n\nimport MFieldsGroupListItem from './GroupListItem.vue';\n\nexport default defineComponent({\n name: 'm-form-group-list',\n\n components: { MFieldsGroupListItem },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<GroupListConfig>,\n default: () => ({}),\n },\n\n prop: {\n type: String,\n default: '',\n },\n\n size: String,\n\n name: {\n type: String,\n default: '',\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const addable = computed(() => {\n if (!props.name) return false;\n\n if (typeof props.config.addable === 'function') {\n return props.config.addable(mForm, {\n model: props.model[props.name],\n formValue: mForm?.values,\n prop: props.prop,\n config: props.config,\n });\n }\n\n return typeof props.config.addable === 'undefined' ? true : props.config.addable;\n });\n\n const changeHandler = () => {\n if (!props.name) return false;\n\n emit('change', props.model[props.name]);\n };\n\n const addHandler = async () => {\n if (!props.name) return false;\n\n let initValues = {};\n\n if (typeof props.config.defaultAdd === 'function') {\n initValues = await props.config.defaultAdd(mForm, {\n model: props.model[props.name],\n formValue: mForm?.values,\n prop: props.prop,\n config: props.config,\n });\n } else if (props.config.defaultAdd) {\n initValues = props.config.defaultAdd;\n }\n\n const groupValue = await initValue(mForm, {\n config: props.config.items,\n initValues,\n });\n\n props.model[props.name].push(groupValue);\n };\n\n const removeHandler = (index: number) => {\n if (!props.name) return false;\n\n props.model[props.name].splice(index, 1);\n changeHandler();\n };\n\n const swapHandler = (idx1: number, idx2: number) => {\n if (!props.name) return false;\n\n const [currRow] = props.model[props.name].splice(idx1, 1);\n props.model[props.name].splice(idx2, 0, currRow);\n changeHandler();\n };\n\n const toggleMode = () => {\n props.config.type = 'table';\n props.config.groupItems = props.config.items;\n props.config.items = (props.config.tableItems ||\n props.config.items.map((item: any) => ({\n ...item,\n label: item.label || item.text,\n text: null,\n }))) as any;\n };\n return {\n addable,\n toggleMode,\n removeHandler,\n swapHandler,\n changeHandler,\n addHandler,\n };\n },\n});\n</script>\n","<template>\n <el-card\n v-if=\"items && items.length\"\n class=\"box-card m-form-panel\"\n :body-style=\"{ display: expand ? 'block' : 'none' }\"\n >\n <template #header>\n <div class=\"clearfix\">\n <a href=\"javascript:\" style=\"width: 100%; display: block\" @click=\"expand = !expand\">\n <el-icon><caret-bottom v-if=\"expand\" /><caret-right v-else /></el-icon> {{ filter(config.title) }}\n <span v-if=\"config && config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span>\n </a>\n </div>\n </template>\n\n <div>\n <slot></slot>\n\n <div v-if=\"config.schematic\" style=\"display: flex\">\n <div style=\"flex: 1\">\n <m-form-container\n v-for=\"(item, index) in items\"\n :key=\"item[mForm?.keyProp || '__key'] ?? index\"\n :config=\"item\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </div>\n\n <img class=\"m-form-schematic\" :src=\"config.schematic\" />\n </div>\n\n <template v-else>\n <m-form-container\n v-for=\"(item, index) in items\"\n :key=\"item[mForm?.keyProp || '__key'] ?? index\"\n :config=\"item\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </div>\n </el-card>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref } from 'vue';\nimport { CaretBottom, CaretRight } from '@element-plus/icons';\n\nimport { FormState, PanelConfig } from '../schema';\nimport { filterFunction } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-panel',\n\n components: { CaretBottom, CaretRight },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<PanelConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n\n name: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const expand = ref(props.config.expand !== false);\n\n const items = computed(() => props.config.items);\n\n const filter = (config: any) => filterFunction(mForm, config, props);\n\n const changeHandler = () => emit('change', props.model);\n\n return {\n mForm,\n expand,\n items,\n filter,\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <el-col v-show=\"display && config.type !== 'hidden'\" :span=\"span\">\n <m-form-container\n :model=\"model\"\n :config=\"config\"\n :prop=\"prop\"\n :label-width=\"config.labelWidth || labelWidth\"\n :expand-more=\"expandMore\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </el-col>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { ChildConfig, FormState } from '../schema';\nimport { display as displayFunction } from '../utils/form';\n\nexport default defineComponent({\n props: {\n labelWidth: String,\n expandMore: Boolean,\n span: Number,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<ChildConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const changeHandler = () => emit('change', props.model);\n\n return {\n mForm,\n display: computed(() => displayFunction(mForm, props.config.display, props)),\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <el-row :gutter=\"10\">\n <Col\n v-for=\"(col, index) in config.items\"\n :key=\"col[mForm?.keyProp || '__key'] ?? index\"\n :span=\"col.span || config.span || 24 / config.items.length\"\n :config=\"col\"\n :labelWidth=\"config.labelWidth || labelWidth\"\n :expandMore=\"expandMore\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n @change=\"changeHandler\"\n />\n </el-row>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, RowConfig } from '../schema';\n\nimport Col from './Col.vue';\n\nexport default defineComponent({\n name: 'm-form-row',\n\n components: { Col },\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<RowConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n name: String,\n\n size: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const changeHandler = () => emit('change', props.name ? props.model[props.name] : props.model);\n\n return {\n mForm,\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-steps :active=\"active\" align-center :space=\"config.space\">\n <el-step\n v-for=\"(item, index) in config.items\"\n :key=\"item.__key\"\n :title=\"item.title\"\n :active=\"active\"\n @click=\"stepClick(index)\"\n ></el-step>\n </el-steps>\n\n <template v-for=\"(step, index) in config.items\">\n <template v-for=\"item in step.items\">\n <m-form-container\n v-if=\"item\"\n v-show=\"active - 1 === index\"\n :key=\"item[mForm?.keyProp || '__key']\"\n :config=\"item\"\n :model=\"step.name ? model[step.name] : model\"\n :prop=\"step.name\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType, ref, watchEffect } from 'vue';\n\nimport { FormState, StepConfig } from '../schema';\n\nexport default defineComponent({\n name: 'm-form-step',\n\n props: {\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<StepConfig>,\n default: () => ({}),\n },\n\n stepActive: {\n type: Number,\n default: () => 1,\n },\n\n size: String,\n\n labelWidth: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const active = ref(1);\n\n watchEffect(() => {\n active.value = props.stepActive;\n });\n\n const stepClick = (index: number) => {\n active.value = index + 1;\n mForm?.$emit('update:stepActive', active.value);\n };\n\n const changeHandler = () => {\n emit('change', props.model);\n };\n\n return { mForm, active, stepClick, changeHandler };\n },\n});\n</script>\n","<template>\n <div ref=\"mTable\" class=\"m-fields-table\" :class=\"{ 'm-fields-table-item-extra': config.itemExtra }\">\n <span v-if=\"config.extra\" style=\"color: rgba(0, 0, 0, 0.45)\" v-html=\"config.extra\"></span>\n <div class=\"el-form-item__content\">\n <el-tooltip content=\"拖拽可排序\" placement=\"left-start\" :disabled=\"config.dropSort !== true\">\n <el-table\n v-if=\"model[modelName]\"\n ref=\"elTable\"\n style=\"width: 100%\"\n :data=\"model[modelName]\"\n :border=\"config.border\"\n :max-height=\"config.maxHeight\"\n :default-expand-all=\"true\"\n :key=\"updateKey\"\n @select=\"selectHandle\"\n @sort-change=\"sortChange\"\n >\n <el-table-column v-if=\"config.itemExtra\" :fixed=\"'left'\" width=\"30\" type=\"expand\">\n <template v-slot=\"scope\">\n <span v-html=\"itemExtra(config.itemExtra, scope.$index)\" class=\"m-form-tip\"></span>\n </template>\n </el-table-column>\n\n <el-table-column label=\"操作\" width=\"60\" :fixed=\"config.fixed === false ? undefined : 'left'\">\n <template v-slot=\"scope\">\n <el-button\n v-show=\"showDelete(scope.$index + 1 + pagecontext * pagesize - 1)\"\n type=\"danger\"\n text\n :icon=\"Delete\"\n @click=\"removeHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </template>\n </el-table-column>\n\n <el-table-column v-if=\"sort && model[modelName] && model[modelName].length > 1\" label=\"排序\" width=\"60\">\n <template v-slot=\"scope\">\n <el-tooltip\n content=\"点击上移,双击置顶\"\n placement=\"top\"\n v-if=\"scope.$index + 1 + pagecontext * pagesize - 1 !== 0\"\n >\n <el-button\n plain\n size=\"small\"\n type=\"primary\"\n :icon=\"ArrowUp\"\n text\n @click=\"upHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n @dblclick=\"topHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </el-tooltip>\n <el-tooltip\n content=\"点击下移,双击置底\"\n placement=\"top\"\n v-if=\"scope.$index + 1 + pagecontext * pagesize - 1 !== model[modelName].length - 1\"\n >\n <el-button\n plain\n size=\"small\"\n type=\"primary\"\n :icon=\"ArrowDown\"\n text\n @click=\"downHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n @dblclick=\"bottomHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </el-tooltip>\n </template>\n </el-table-column>\n\n <el-table-column\n v-if=\"selection\"\n align=\"center\"\n header-align=\"center\"\n type=\"selection\"\n width=\"45\"\n ></el-table-column>\n\n <el-table-column width=\"60\" label=\"序号\">\n <template v-slot=\"scope\">{{ scope.$index + 1 + pagecontext * pagesize }}</template>\n </el-table-column>\n\n <template v-for=\"(column, index) in config.items\">\n <el-table-column\n v-if=\"column.type !== 'hidden' && display(column.display)\"\n :prop=\"column.name\"\n :width=\"column.width\"\n :label=\"column.label\"\n :sortable=\"column.sortable\"\n :sort-orders=\"['ascending', 'descending']\"\n :key=\"column[mForm?.keyProp || '__key'] ?? index\"\n :class-name=\"config.dropSort === true ? 'el-table__column--dropable' : ''\"\n >\n <template #default=\"scope\">\n <m-form-container\n v-if=\"scope.$index > -1\"\n labelWidth=\"0\"\n :prop=\"getProp(scope.$index)\"\n :rules=\"column.rules\"\n :config=\"makeConfig(column)\"\n :model=\"scope.row\"\n :size=\"size\"\n @change=\"$emit('change', model[modelName])\"\n ></m-form-container>\n </template>\n </el-table-column>\n </template>\n </el-table>\n </el-tooltip>\n <slot></slot>\n <el-button v-if=\"addable\" size=\"small\" type=\"primary\" plain @click=\"newHandler()\">添加</el-button> \n <el-button :icon=\"Grid\" size=\"small\" type=\"primary\" @click=\"toggleMode\" v-if=\"enableToggleMode && !isFullscreen\"\n >展开配置</el-button\n >\n <el-button\n :icon=\"FullScreen\"\n size=\"small\"\n type=\"primary\"\n @click=\"toggleFullscreen\"\n v-if=\"config.enableFullscreen !== false\"\n >\n {{ isFullscreen ? '退出全屏' : '全屏编辑' }}\n </el-button>\n <el-upload\n v-if=\"importable\"\n ref=\"excelBtn\"\n action=\"/noop\"\n :on-change=\"excelHandler\"\n :auto-upload=\"false\"\n style=\"display: inline-block\"\n >\n <el-button size=\"small\" type=\"success\" plain>导入EXCEL</el-button> </el-upload\n > \n <el-button v-if=\"importable\" size=\"small\" type=\"warning\" plain @click=\"clearHandler()\">清空</el-button>\n </div>\n\n <div class=\"bottom\" style=\"text-align: right\">\n <el-pagination\n layout=\"total, sizes, prev, pager, next, jumper\"\n :hide-on-single-page=\"model[modelName].length < pagesize\"\n :current-page=\"pagecontext + 1\"\n :page-sizes=\"[pagesize, 60, 120, 300]\"\n :page-size=\"pagesize\"\n :total=\"model[modelName].length\"\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n >\n </el-pagination>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-param-reassign */\nimport { computed, defineComponent, inject, onMounted, PropType, ref, toRefs } from 'vue';\nimport { ArrowDown, ArrowUp, Delete, FullScreen, Grid } from '@element-plus/icons';\nimport { ElMessage, ElTable, UploadFile } from 'element-plus';\nimport { cloneDeep } from 'lodash-es';\nimport Sortable, { SortableEvent } from 'sortablejs';\n\nimport { asyncLoadJs, sleep } from '@tmagic/utils';\n\nimport { ColumnConfig, FormState, SortProp, TableConfig } from '../schema';\nimport { display, initValue } from '../utils/form';\n\nlet loadedAMapJS = false; // 是否加载完js\nlet firstLoadingAMapJS = true; // 否是第一次请求\n\nexport default defineComponent({\n name: 'm-form-table',\n\n props: {\n name: {\n type: String,\n required: true,\n },\n\n model: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<TableConfig>,\n required: true,\n default: () => ({}),\n },\n\n prop: {\n type: String,\n },\n\n labelWidth: {\n type: String,\n },\n\n sort: {\n type: Boolean,\n default: false,\n },\n\n sortKey: {\n type: String,\n default: '',\n },\n\n text: {\n type: String,\n },\n\n size: String,\n\n enableToggleMode: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: ['change', 'select'],\n\n setup(props, { emit }) {\n let timer: NodeJS.Timeout | null = null;\n const mForm = inject<FormState | undefined>('mForm');\n\n const elTable = ref<InstanceType<typeof ElTable>>();\n const excelBtn = ref<any>();\n const mTable = ref<HTMLDivElement>();\n\n const pagesize = ref(10);\n const pagecontext = ref(0);\n const updateKey = ref(1);\n const isFullscreen = ref(false);\n\n const modelName = computed(() => props.name || props.config.name || '');\n\n const sortChange = ({ prop, order }: SortProp) => {\n if (order === 'ascending') {\n props.model[modelName.value] = props.model[modelName.value].sort((a: any, b: any) => a[prop] - b[prop]);\n } else if (order === 'descending') {\n props.model[modelName.value] = props.model[modelName.value].sort((a: any, b: any) => b[prop] - a[prop]);\n }\n };\n\n const foreUpdate = () => {\n updateKey.value += 1;\n setTimeout(() => rowDrop());\n };\n\n const swapArray = (index1: number, index2: number) => {\n [props.model[modelName.value][index1]] = props.model[modelName.value].splice(\n index2,\n 1,\n props.model[modelName.value][index1],\n );\n if (props.sortKey) {\n for (let i = props.model[modelName.value].length - 1, v = 0; i >= 0; i--, v++) {\n props.model[modelName.value][v][props.sortKey] = i;\n }\n }\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n };\n\n const rowDrop = () => {\n const tableEl = elTable.value?.$el;\n if (tableEl?.querySelectorAll('.el-table__body > tbody')) {\n // eslint-disable-next-line prefer-destructuring\n const el = tableEl.querySelectorAll('.el-table__body > tbody')[0];\n const sortable = Sortable.create(el, {\n onEnd: ({ newIndex, oldIndex }: SortableEvent) => {\n if (typeof newIndex === 'undefined') return;\n if (typeof oldIndex === 'undefined') return;\n swapArray(newIndex, oldIndex);\n emit('change', props.model[modelName.value]);\n foreUpdate();\n sortable.destroy();\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n sleep(1000).then(() => {\n const eltrs = tableEl.querySelectorAll('.el-table__body > tbody > tr');\n if (eltrs?.[newIndex]) {\n eltrs[newIndex].style.backgroundColor = 'rgba(243, 89, 59, 0.2)';\n sleep(1000).then(() => {\n eltrs[newIndex].style.backgroundColor = '';\n });\n }\n });\n },\n });\n }\n };\n\n const newHandler = async (row?: any) => {\n if (props.config.max && props.model[modelName.value].length >= props.config.max) {\n ElMessage.error(`最多新增配置不能超过${props.config.max}条`);\n return;\n }\n\n const columns = props.config.items;\n const enumValues = props.config.enum || [];\n let enumV = [];\n const { length } = props.model[modelName.value];\n const key = props.config.key || 'id';\n let inputs: any = {};\n\n if (enumValues.length) {\n if (length >= enumValues.length) {\n return;\n }\n enumV = enumValues.filter((item) => {\n let i = 0;\n for (; i < length; i++) {\n if (item[key] === props.model[modelName.value][i][key]) {\n break;\n }\n }\n return i === length;\n });\n\n if (enumV.length > 0) {\n // eslint-disable-next-line prefer-destructuring\n inputs = enumV[0];\n }\n } else if (Array.isArray(row)) {\n columns.forEach((column, index) => {\n column.name && (inputs[column.name] = row[index]);\n });\n } else {\n if (typeof props.config.defaultAdd === 'function') {\n inputs = await props.config.defaultAdd(mForm, {\n model: props.model[modelName.value],\n formValue: mForm?.values,\n });\n } else if (props.config.defaultAdd) {\n inputs = props.config.defaultAdd;\n }\n\n inputs = await initValue(mForm, {\n config: columns,\n initValues: inputs,\n });\n }\n\n if (props.sortKey && length) {\n inputs[props.sortKey] = props.model[modelName.value][length - 1][props.sortKey] - 1;\n }\n\n props.model[modelName.value].push(inputs);\n emit('change', props.model[modelName.value]);\n };\n\n if (!loadedAMapJS && firstLoadingAMapJS && !(globalThis as any).XLSX) {\n firstLoadingAMapJS = false; // 马上置为false 只让第一个created组件去请求js\n asyncLoadJs('https://cdn.bootcdn.net/ajax/libs/xlsx/0.17.0/xlsx.full.min.js')\n .then(() => {\n loadedAMapJS = true;\n })\n .catch(() => {\n firstLoadingAMapJS = true; // 出错置为true 下次进来还是能重新请求js\n });\n }\n\n onMounted(() => {\n if (props.config.defautSort) {\n sortChange(props.config.defautSort);\n }\n\n if (props.sort && props.sortKey) {\n props.model[modelName.value].sort((a: any, b: any) => b[props.sortKey] - a[props.sortKey]);\n }\n\n if (props.config.dropSort) {\n rowDrop();\n }\n });\n\n return {\n mForm,\n pagesize,\n pagecontext,\n foreUpdate,\n isFullscreen,\n elTable,\n mTable,\n excelBtn,\n modelName,\n updateKey,\n ArrowDown,\n ArrowUp,\n Delete,\n FullScreen,\n Grid,\n\n data: computed(() =>\n props.model[modelName.value].filter(\n (item: any, index: number) =>\n index >= pagecontext.value * pagesize.value && index + 1 <= (pagecontext.value + 1) * pagesize.value,\n ),\n ),\n addable: computed(() => {\n if (!props.model[modelName.value].length) {\n return true;\n }\n if (typeof props.config.addable === 'function') {\n return props.config.addable(mForm, {\n model: props.model[modelName.value],\n formValue: mForm?.values,\n prop: props.prop,\n });\n }\n return typeof props.config.addable === 'undefined' ? true : props.config.addable;\n }),\n selection: computed(() => {\n if (typeof props.config.selection === 'function') {\n return props.config.selection(mForm, { model: props.model[modelName.value] });\n }\n return props.config.selection;\n }),\n importable: computed(() => {\n if (typeof props.config.importable === 'function') {\n return props.config.importable(mForm, {\n formValue: mForm?.values,\n model: props.model[modelName.value],\n });\n }\n return typeof props.config.importable === 'undefined' ? false : props.config.importable;\n }),\n\n sortChange,\n\n display(fuc: any) {\n return display(mForm, fuc, props);\n },\n\n itemExtra(fuc: any, index: number) {\n if (typeof fuc === 'function') {\n return fuc(mForm, {\n values: mForm?.initValues,\n model: props.model,\n formValue: mForm ? mForm.values : props.model,\n prop: props.prop,\n index,\n });\n }\n\n return fuc;\n },\n\n newHandler,\n\n removeHandler(index: number) {\n props.model[modelName.value].splice(index, 1);\n emit('change', props.model[modelName.value]);\n },\n\n selectHandle(selection: any, row: any) {\n if (typeof props.config.selection === 'string' && props.config.selection === 'single') {\n elTable.value?.clearSelection();\n elTable.value?.toggleRowSelection(row, true);\n }\n emit('select', selection, row);\n if (typeof props.config.onSelect === 'function') {\n props.config.onSelect(mForm, { selection, row, config: props.config });\n }\n },\n\n toggleRowSelection(row: any, selected: boolean) {\n elTable.value?.toggleRowSelection.call(elTable.value, row, selected);\n },\n\n makeConfig(config: ColumnConfig) {\n const newConfig = cloneDeep(config);\n delete newConfig.display;\n return newConfig;\n },\n\n upHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n swapArray(index, index - 1);\n }, 300);\n },\n\n topHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n // 首先判断当前元素需要上移几个位置,置底移动到数组的第一位\n const moveNum = index;\n\n // 循环出需要一个一个上移的次数\n for (let i = 0; i < moveNum; i++) {\n swapArray(index, index - 1);\n index -= 1;\n }\n },\n\n downHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n swapArray(index, index + 1);\n }, 300);\n },\n\n bottomHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n // 首先判断当前元素需要上移几个位置,置底移动到数组的第一位\n const moveNum = props.model[modelName.value].length - 1 - index;\n\n // 循环出需要一个一个上移的次数\n for (let i = 0; i < moveNum; i++) {\n swapArray(index, index + 1);\n index += 1;\n }\n },\n\n // 希望支持单行可控制是否显示删除按钮,不会影响现有逻辑\n showDelete(index: number) {\n const deleteFunc = props.config.delete;\n if (deleteFunc && typeof deleteFunc === 'function') {\n return deleteFunc(props.model[modelName.value], index, mForm?.values);\n }\n return true;\n },\n\n clearHandler() {\n const len = props.model[modelName.value].length;\n props.model[modelName.value].splice(0, len);\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n },\n\n excelHandler(file: UploadFile) {\n if (!file || !file.raw) {\n return false;\n }\n const reader = new FileReader();\n reader.onload = () => {\n const data = reader.result;\n const pdata = (globalThis as any).XLSX.read(data, { type: 'array' });\n pdata.SheetNames.forEach((sheetName: string) => {\n const arr = (globalThis as any).XLSX.utils.sheet_to_json(pdata.Sheets[sheetName], { header: 1 });\n if (arr?.[0]) {\n arr.forEach((row: any) => {\n newHandler(row);\n });\n }\n setTimeout(() => {\n excelBtn.value?.clearFiles();\n }, 300);\n });\n };\n reader.readAsArrayBuffer(file.raw);\n\n return false;\n },\n\n handleSizeChange(val: number) {\n pagesize.value = val;\n },\n\n handleCurrentChange(val: number) {\n pagecontext.value = val - 1;\n },\n\n toggleMode() {\n const calcLabelWidth = (label: string) => {\n if (!label) return '0px';\n const zhLength = label.match(/[^\\x00-\\xff]/g)?.length || 0;\n const chLength = label.length - zhLength;\n return `${Math.max(chLength * 8 + zhLength * 20, 80)}px`;\n };\n\n // 切换为groupList的形式\n props.config.type = 'groupList';\n props.config.enableToggleMode = true;\n props.config.tableItems = props.config.items;\n props.config.items =\n props.config.groupItems ||\n props.config.items.map((item: any) => {\n const text = item.text || item.label;\n const labelWidth = calcLabelWidth(text);\n return {\n ...item,\n text,\n labelWidth,\n span: item.span || 12,\n };\n });\n },\n\n toggleFullscreen() {\n if (isFullscreen.value) {\n mTable.value?.classList.remove('fixed');\n isFullscreen.value = false;\n } else {\n mTable.value?.classList.add('fixed');\n isFullscreen.value = true;\n }\n },\n\n getProp(index: number) {\n const { prop } = toRefs(props);\n return `${prop.value}${prop.value ? '.' : ''}${index + 1 + pagecontext.value * pagesize.value - 1}`;\n },\n };\n },\n});\n</script>\n","<template>\n <el-tabs\n v-model=\"activeTabName\"\n :class=\"config.dynamic ? 'magic-form-dynamic-tab' : 'magic-form-tab'\"\n :type=\"config.tabType\"\n :editable=\"config.editable || false\"\n :tab-position=\"config.tabPosition || 'top'\"\n @tab-click=\"tabClickHandler\"\n @tab-add=\"onTabAdd\"\n @tab-remove=\"onTabRemove\"\n >\n <template v-for=\"(tab, tabIndex) in tabs\">\n <el-tab-pane\n v-if=\"display(tab.display) && tabItems(tab).length\"\n :key=\"tab[mForm?.keyProp || '__key'] ?? tabIndex\"\n :name=\"filter(tab.status) || tabIndex.toString()\"\n :label=\"filter(tab.title)\"\n :lazy=\"tab.lazy || false\"\n >\n <m-form-container\n v-for=\"item in tabItems(tab)\"\n :key=\"item[mForm?.keyProp || '__key']\"\n :config=\"item\"\n :model=\"config.dynamic ? model[config.name || ''][tabIndex] : tab.name ? model[tab.name] : model\"\n :prop=\"config.dynamic ? `${prop}${prop ? '.' : ''}${String(tabIndex)}` : prop\"\n :size=\"size\"\n :label-width=\"tab.labelWidth || labelWidth\"\n :expand-more=\"expandMore\"\n @change=\"changeHandler\"\n ></m-form-container>\n </el-tab-pane>\n </template>\n </el-tabs>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable vue/no-mutating-props */\nimport { computed, defineComponent, inject, PropType, ref, watchEffect } from 'vue';\nimport { cloneDeep } from 'lodash-es';\n\nimport { FormState, FormValue, TabConfig, TabPaneConfig } from '../schema';\nimport { display, filterFunction } from '../utils/form';\n\nconst getActive = (mForm: FormState | undefined, props: any, activeTabName: string) => {\n const { config, model, prop } = props;\n const { active } = config;\n\n if (typeof active === 'function') return active(mForm, { model, formValue: mForm?.values, prop });\n if (+activeTabName >= props.config.items.length) return '0';\n if (typeof active !== 'undefined') return active;\n\n return '0';\n};\n\nconst tabClickHandler = (mForm: FormState | undefined, tab: any, props: any) => {\n const { config, model, prop } = props;\n\n // 兼容vue2的element-ui\n tab.name = tab.paneName;\n\n if (typeof config.onTabClick === 'function') {\n config.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });\n }\n\n const tabConfig = config.items.find((item: TabPaneConfig) => tab.name === item.status);\n if (tabConfig && typeof tabConfig.onTabClick === 'function') {\n tabConfig.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });\n }\n};\n\nconst Tab = defineComponent({\n name: 'm-form-tab',\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<TabConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n },\n\n emits: {\n change(values: FormValue) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const activeTabName = ref(getActive(mForm, props, ''));\n\n const tabs = computed(() => {\n if (props.config.dynamic) {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n return props.model[props.config.name] || [];\n }\n return props.config.items;\n });\n\n const filter = (config: any) => filterFunction(mForm, config, props);\n\n watchEffect(() => {\n if (typeof props.config.activeChange === 'function') {\n props.config.activeChange(mForm, activeTabName.value, {\n model: props.model,\n prop: props.prop,\n });\n }\n });\n\n return {\n mForm,\n\n activeTabName,\n\n tabs,\n\n filter,\n\n tabItems: (tab: TabPaneConfig) => (props.config.dynamic ? props.config.items : tab.items),\n\n tabClickHandler: (tab: any) => tabClickHandler(mForm, tab, props),\n\n onTabAdd: () => {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n\n if (typeof props.config.onTabAdd === 'function') {\n props.config.onTabAdd(mForm, {\n model: props.model,\n prop: props.prop,\n config: props.config,\n });\n } else if (tabs.value.length > 0) {\n const newObj = cloneDeep(tabs.value[0]);\n newObj.title = `标签${tabs.value.length + 1}`;\n props.model[props.config.name].push(newObj);\n }\n emit('change', props.model);\n mForm?.$emit('field-change', props.prop, props.model[props.config.name]);\n },\n\n onTabRemove: (tabName: string) => {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n\n if (typeof props.config.onTabRemove === 'function') {\n props.config.onTabRemove(mForm, tabName, {\n model: props.model,\n prop: props.prop,\n config: props.config,\n });\n } else {\n props.model[props.config.name].splice(+tabName, 1);\n\n // 防止删除后没有选中的问题\n if (tabName < activeTabName.value || activeTabName.value >= props.model[props.config.name].length) {\n activeTabName.value = (+activeTabName.value - 1).toString();\n tabClickHandler(mForm, { name: activeTabName.value }, props);\n }\n }\n emit('change', props.model);\n mForm?.$emit('field-change', props.prop, props.model[props.config.name]);\n },\n\n display: (displayConfig: any) => display(mForm, displayConfig, props),\n\n changeHandler: () => {\n emit('change', props.model);\n if (typeof props.config.onChange === 'function') {\n props.config.onChange(mForm, { model: props.model, prop: props.prop, config: props.config });\n }\n },\n };\n },\n});\n\nexport default Tab;\n</script>\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet $MAGIC_FORM = {} as any;\n\nconst setConfig = (option: any): void => {\n $MAGIC_FORM = option;\n};\n\nconst getConfig = (key: string): unknown => $MAGIC_FORM[key];\n\nexport { getConfig, setConfig };\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PropType } from 'vue';\n\nexport default {\n model: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n name: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n size: String as PropType<'mini' | 'small' | 'medium'>,\n prop: String,\n initValues: Object,\n values: Object,\n};\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentInternalInstance, getCurrentInstance, inject, watch } from 'vue';\n\nimport { FormState } from '../schema';\n\nexport const useAddField = (prop?: string) => {\n if (!prop) return;\n const mForm = inject<FormState | null>('mForm');\n const instance = getCurrentInstance() as ComponentInternalInstance;\n watch(\n () => instance?.proxy,\n (vm) => {\n if (vm) {\n mForm?.setField(prop, vm);\n } else {\n mForm?.deleteField(prop);\n }\n },\n {\n immediate: true,\n },\n );\n};\n","<template>\n <div class=\"m-cascader\" style=\"width: 100%\">\n <el-cascader\n v-model=\"model[name]\"\n ref=\"cascader\"\n style=\"width: 100%\"\n clearable\n filterable\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :options=\"options\"\n :props=\"{ multiple: config.multiple }\"\n @change=\"changeHandler\"\n ></el-cascader>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n ComponentInternalInstance,\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n PropType,\n Ref,\n ref,\n watchEffect,\n} from 'vue';\nimport { ElCascader, ElDialog } from 'element-plus';\n\nimport { CascaderConfig, FormState } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-cascader',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CascaderConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | null>('mForm');\n const vm = getCurrentInstance() as ComponentInternalInstance;\n\n useAddField(props.prop);\n\n const requestFunc = getConfig('request') as Function;\n\n const cascader: Ref<null | typeof ElCascader> = ref(null);\n const dialog: Ref<null | typeof ElDialog> = ref(null);\n\n const options = Array.isArray(props.config.options) ? ref(props.config.options) : ref([]);\n const remoteData: Ref<any> = ref(null);\n\n const setRemoteOptions = async function () {\n const { config } = props;\n const { option } = config;\n if (!option) return;\n let { body } = option;\n\n const postOptions: Record<string, any> = {\n url: option.url,\n cache: option.cache,\n timeout: option.timeout,\n data: {},\n };\n\n if (body && mForm) {\n if (typeof body === 'function' && props.model && mForm) {\n body = body(mForm, {\n model: props.model,\n formValue: null,\n formValues: mForm.values,\n });\n }\n postOptions.data = body;\n }\n\n const res = await requestFunc(postOptions);\n\n remoteData.value = res[option.root];\n if (remoteData.value && typeof option?.item === 'function') {\n options.value = option.item(res[option.root]);\n }\n };\n\n // 初始化\n if (typeof props.config.options === 'function' && props.model && mForm) {\n watchEffect(\n () =>\n (options.value = (props.config.options as Function)(vm, { model: props.model, formValues: mForm.values })),\n );\n } else if (!props.config.options || !props.config.options.length || props.config.remote) {\n Promise.resolve(setRemoteOptions());\n }\n\n const action = computed(() => {\n if (props.config.add?.action.method === 'post') {\n return (options: any) =>\n requestFunc({\n ...props.config?.add?.action.body,\n ...options,\n });\n }\n return null;\n });\n\n return {\n options,\n remoteData,\n addButtonStyle: {\n top: 0,\n left: 0,\n width: 'auto',\n },\n dialogVisible: false,\n cascader,\n dialog,\n action,\n setRemoteOptions,\n changeHandler: (value: any) => {\n if (!cascader.value) return;\n cascader.value.query = '';\n cascader.value.previousQuery = null;\n emit('change', value);\n },\n addHandler: () => {\n if (!dialog.value) return;\n dialog.value.dialogVisible = true;\n },\n editAfterAction: () => {\n setRemoteOptions();\n },\n };\n },\n});\n</script>\n","<template>\n <el-checkbox\n v-model=\"model[name]\"\n :size=\"size\"\n :trueLabel=\"activeValue\"\n :falseLabel=\"inactiveValue\"\n :disabled=\"disabled\"\n :label=\"config.text\"\n @change=\"changeHandler\"\n ></el-checkbox>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { CheckboxConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-checkbox',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CheckboxConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n activeValue: computed(() => {\n if (typeof props.config.activeValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 1;\n }\n } else {\n return props.config.activeValue;\n }\n\n return undefined;\n }),\n\n inactiveValue: computed(() => {\n if (typeof props.config.inactiveValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 0;\n }\n } else {\n return props.config.inactiveValue;\n }\n\n return undefined;\n }),\n\n changeHandler(value: number | boolean) {\n emit('change', value);\n },\n };\n },\n});\n</script>\n","<template>\n <el-checkbox-group v-model=\"model[name]\" :size=\"size\" :disabled=\"disabled\" @change=\"changeHandler\">\n <el-checkbox v-for=\"option in config.options\" :label=\"option.value\" :key=\"option.value\"\n >{{ option.text }}\n </el-checkbox>\n </el-checkbox-group>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { CheckboxGroupConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-checkbox-group',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CheckboxGroupConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n // 初始化选项\n if (props.model && !props.model[props.name]) {\n // eslint-disable-next-line no-param-reassign\n props.model[props.name] = [];\n }\n return {\n changeHandler: (v: Array<string | number | boolean>) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <div v-if=\"model\">\n <el-color-picker\n v-model=\"model[name]\"\n :size=\"size\"\n :disabled=\"disabled\"\n :showAlpha=\"true\"\n @change=\"changeHandler\"\n ></el-color-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { ColorPickConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-color-picker',\n});\n</script>\n\n<script lang=\"ts\" setup>\nconst emit = defineEmits(['change']);\n\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<ColorPickConfig>,\n required: true,\n },\n});\n\nuseAddField(props.prop);\n\nconst changeHandler = (value: string) => emit('change', value);\n</script>\n","<template>\n <div v-if=\"model\">\n <el-date-picker\n v-model=\"model[modelName]\"\n type=\"date\"\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :format=\"config.format\"\n :value-format=\"config.format || 'YYYY-MM-DD HH:mm:ss'\"\n @change=\"changeHandler\"\n ></el-date-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DateConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-date',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DateConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const modelName = computed(() => props.prop || props.config.name || '');\n props.model[modelName.value] = datetimeFormatter(props.model[modelName.value], '');\n return {\n modelName,\n changeHandler(v: string) {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-date-picker\n v-model=\"value\"\n type=\"datetimerange\"\n range-separator=\"-\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n :size=\"size\"\n :unlink-panels=\"true\"\n :disabled=\"disabled\"\n :default-time=\"config.defaultTime || [new Date(2000, 1, 1, 23, 59, 59)]\"\n @change=\"changeHandler\"\n ></el-date-picker>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, ref } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DaterangeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-daterange',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DaterangeConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n // eslint-disable-next-line vue/no-setup-props-destructure\n const { names } = props.config;\n const value = ref<(string | number)[]>([]);\n\n if (props.model !== undefined) {\n if (names?.length) {\n value.value = names.map((item) => datetimeFormatter(props.model?.[item], ''));\n } else if (props.name && props.model[props.name]) {\n value.value = props.model[props.name].map((item: string) => datetimeFormatter(item, ''));\n }\n }\n\n const setValue = (v: Date[] | Date) => {\n if (names?.length && v instanceof Array) {\n names.forEach((item, index) => {\n if (props.model) {\n props.model[item] = datetimeFormatter(v[index].toString(), '');\n }\n });\n } else if (props.model && props.name && v instanceof Date) {\n props.model[props.name] = datetimeFormatter(v.toString(), '');\n } else if (names?.length) {\n names.forEach((item) => {\n if (props.model) {\n props.model[item] = undefined;\n }\n });\n } else if (props.name) {\n props.model[props.name] = undefined;\n }\n };\n\n return {\n value,\n changeHandler(v: Date[]) {\n setValue(v);\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-date-picker\n v-model=\"model[name]\"\n popper-class=\"magic-datetime-picker-popper\"\n type=\"datetime\"\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :format=\"config.format || 'YYYY-MM-DD HH:mm:ss'\"\n :value-format=\"config.valueFormat || 'YYYY-MM-DD HH:mm:ss'\"\n :default-time=\"config.defaultTime || [new Date(2000, 1, 1, 23, 59, 59)]\"\n @change=\"changeHandler\"\n ></el-date-picker>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DateTimeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-datetime',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DateTimeConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const value = props.model?.[props.name].toString();\n if (props.model) {\n if (value === 'Invalid Date') {\n props.model[props.name] = '';\n } else {\n props.model[props.name] = datetimeFormatter(props.model[props.name], '', props.config.valueFormat);\n }\n }\n\n return {\n value,\n changeHandler: (v: Date) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <span v-if=\"model\">{{ model[n] }}</span>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { DisplayConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-display',\n});\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<DisplayConfig>,\n required: true,\n },\n});\n\nconst n = computed(() => props.name || props.config.name || '');\n\nif (props.config.initValue && n.value && props.model) {\n // eslint-disable-next-line no-param-reassign,vue/no-setup-props-destructure\n props.model[n.value] = props.config.initValue;\n}\n\nuseAddField(props.prop);\n</script>\n","<template>\n <div class=\"m-fields-dynamic-field\">\n <el-form size=\"small\">\n <el-form-item v-for=\"key in Object.keys(fieldMap.value)\" :key=\"key\" :label=\"fieldLabelMap.value[key]\">\n <el-input\n v-model=\"fieldMap.value[key]\"\n :placeholder=\"fieldLabelMap.value[key]\"\n @change=\"inputChangeHandler(key)\"\n ></el-input>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script lang=\"ts\">\n/**\n * 动态表单,目前只支持input类型字段\n * inputType: 'dynamic-field',\n * text: '动态表单',\n * dynamicKey: 'keyname', 如果model[dynamicKey]变化,表单字段变化\n * returnFields(config,model,request): 函数,返回字段列表[{name:'',label:'',defaultValue:''}]\n *\n * 特别注意!!!field的上一级必须extensible: true,才能保存未声明的字段\n */\n\nimport { defineComponent, onBeforeUnmount, PropType, reactive, watch } from 'vue';\n\nimport { DynamicFieldConfig } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-dynamic-field',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DynamicFieldConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const request = getConfig('request') as Function;\n const fieldMap = reactive<{ [key: string]: any }>({\n value: {},\n });\n const fieldLabelMap = reactive<{ [key: string]: any }>({\n value: {},\n });\n\n const changeFieldMap = async () => {\n if (typeof props.config.returnFields !== 'function' || !props.model) return;\n const fields = await props.config.returnFields(props.config, props.model, request);\n fieldMap.value = {};\n fieldLabelMap.value = {};\n fields.forEach((v) => {\n if (typeof v !== 'object' || v.name === undefined) return;\n let oldVal = props.model?.[v.name] || '';\n if (!oldVal && v.defaultValue !== undefined) {\n oldVal = v.defaultValue;\n emit('change', oldVal, v.name);\n }\n fieldMap.value[v.name] = oldVal;\n fieldLabelMap.value[v.name] = v.label || '';\n });\n };\n\n const unwatch = watch(\n () => props.model?.[props.config.dynamicKey],\n (val) => {\n if (val !== '') {\n changeFieldMap();\n }\n },\n {\n immediate: true,\n },\n );\n\n onBeforeUnmount(() => {\n if (typeof unwatch === 'function') {\n unwatch();\n }\n });\n\n return {\n request,\n fieldMap,\n fieldLabelMap,\n unwatch,\n\n changeFieldMap,\n inputChangeHandler: (key: string) => {\n emit('change', fieldMap.value[key], key);\n },\n };\n },\n\n methods: {\n init() {},\n },\n});\n</script>\n","<template>\n <input v-if=\"model\" v-model=\"model[n]\" type=\"hidden\" />\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { HiddenConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-hidden',\n});\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<HiddenConfig>,\n required: true,\n },\n});\n\nconst n = computed(() => props.name || props.config.name || '');\n\nuseAddField(props.prop);\n</script>\n","<template>\n <a v-if=\"config.href && !disabled\" target=\"_blank\" :href=\"href\" :style=\"config.css || {}\">{{ displayText }}</a>\n <span v-else-if=\"config.href && disabled\" :style=\"config.disabledCss || {}\">{{ displayText }}</span>\n <div v-else class=\"m-fields-link\">\n <el-button text type=\"primary\" @click=\"editHandler\">点击编辑</el-button>\n <m-form-dialog\n ref=\"editor\"\n :title=\"config.formTitle || '编辑扩展配置'\"\n :width=\"config.formWidth\"\n :values=\"formValue\"\n :config=\"formConfig\"\n :parentValues=\"values\"\n :fullscreen=\"config.fullscreen\"\n @submit=\"action\"\n ></m-form-dialog>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref } from 'vue';\n\nimport FormDialog from '../FormDialog.vue';\nimport { FormState, LinkConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-link',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<LinkConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const formValue = ref({});\n const editor = ref<InstanceType<typeof FormDialog>>();\n const mForm = inject<FormState | undefined>('mForm');\n\n const href = computed(() => {\n if (typeof props.config.href === 'function' && props.model) {\n return props.config.href(props.model);\n }\n return props.config.href || props.model?.[props.name];\n });\n\n const init = () => {\n formValue.value = props.model?.[props.name] || {};\n };\n\n return {\n // ref\n formValue,\n editor,\n\n // computed methods\n href,\n\n formConfig: computed(() => {\n if (typeof props.config.form === 'function') {\n return props.config.form(mForm, {\n model: props.model || {},\n values: props.values || {},\n });\n }\n return props.config.form;\n }),\n\n disable: computed(() => {\n if (typeof props.config.disabled !== 'undefined') {\n return props.config.disabled;\n }\n return !href.value;\n }),\n\n displayText: computed(() => {\n if (typeof props.config.displayText === 'function') {\n return props.config.displayText(mForm, { model: props.model || {} });\n }\n if (props.config.displayText) {\n return props.config.displayText;\n }\n return '跳转';\n }),\n\n // methods\n init,\n\n editHandler: () => {\n init();\n editor.value && (editor.value.dialogVisible = true);\n },\n\n action: (data: any) => {\n if (props.model) {\n props.model[props.name] = data;\n formValue.value = data;\n emit('change', props.model[props.name]);\n }\n editor.value && (editor.value.dialogVisible = false);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input-number\n v-if=\"model\"\n v-model=\"model[name]\"\n clearable\n controls-position=\"right\"\n :size=\"size\"\n :max=\"config.max\"\n :min=\"config.min\"\n :step=\"config.step\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n ></el-input-number>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, NumberConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-number',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<NumberConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const mForm = inject<FormState | null>('mForm');\n return {\n mForm,\n changeHandler: (value: number) => {\n emit('change', value);\n },\n inputHandler: (v: string) => {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-radio-group v-if=\"model\" v-model=\"model[name]\" :size=\"size\" :disabled=\"disabled\" @change=\"changeHandler\">\n <el-radio v-for=\"option in config.options\" :label=\"option.value\" :key=\"option.value\">{{ option.text }}</el-radio>\n </el-radio-group>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-radio-group',\n\n props: {\n ...fieldProps,\n config: {\n type: Object,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n return {\n changeHandler: (v: string | number | boolean) => emit('change', v),\n };\n },\n});\n</script>\n","<template>\n <el-select\n v-if=\"model\"\n v-model=\"model[name]\"\n v-loading=\"loading\"\n class=\"m-select\"\n ref=\"select\"\n clearable\n filterable\n :popper-class=\"`m-select-popper ${popperClass}`\"\n :size=\"size\"\n :remote=\"remote\"\n :placeholder=\"config.placeholder\"\n :multiple=\"config.multiple\"\n :value-key=\"config.valueKey || 'value'\"\n :allow-create=\"config.allowCreate\"\n :disabled=\"disabled\"\n :remote-method=\"config.remote && remoteMethod\"\n @change=\"changeHandler\"\n @visible-change=\"visibleHandler\"\n >\n <template v-if=\"config.group\">\n <el-option-group v-for=\"(group, index) in options\" :key=\"index\" :label=\"group.label\" :disabled=\"group.disabled\">\n <el-option\n v-for=\"(item, index) in group.options\"\n :key=\"index\"\n :label=\"item.label\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n >\n </el-option>\n </el-option-group>\n </template>\n <template v-else>\n <el-option\n v-for=\"option in options\"\n :label=\"option.text\"\n :value=\"option.value\"\n :key=\"config.valueKey ? option.value[config.valueKey] : option.value\"\n :disabled=\"option.disabled\"\n ></el-option>\n </template>\n <div v-loading=\"true\" v-if=\"moreLoadingVisible\"></div>\n </el-select>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onBeforeMount, onMounted, PropType, ref, watch } from 'vue';\nimport { ElSelect } from 'element-plus';\n\nimport { FormState, SelectConfig, SelectGroupOption, SelectOption } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-select',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<SelectConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n if (!props.model) throw new Error('不能没有model');\n useAddField(props.prop);\n\n const select = ref<typeof ElSelect>();\n const mForm = inject<FormState | undefined>('mForm');\n const options = ref<SelectOption[] | SelectGroupOption[]>([]);\n const localOptions = ref<SelectOption[] | SelectGroupOption[]>([]);\n const loading = ref(false);\n const moreLoadingVisible = ref(false);\n const total = ref(0);\n const pgIndex = ref(0);\n const pgSize = ref(20);\n const query = ref('');\n const remoteData = ref<any[]>([]);\n const remote = ref(true);\n\n const equalValue = (value: any, v: any): boolean => {\n if (typeof v === 'object') {\n const key = props.config.valueKey || 'value';\n return v[key] === value[key];\n }\n\n return value === v;\n };\n\n const mapOptions = (data: any[]) => {\n const { option } = props.config;\n const { text } = option;\n const { value } = option;\n\n return data.map((item) => ({\n text: typeof text === 'function' ? text(item) : item[text || 'text'],\n value: typeof value === 'function' ? value(item) : item[value || 'value'],\n }));\n };\n\n const getOptions = async () => {\n if (!props.model) return [];\n\n if (localOptions.value.length) {\n return localOptions.value;\n }\n\n loading.value = true;\n\n let items: SelectOption[] | SelectGroupOption[] = [];\n\n const { config } = props;\n const { option } = config;\n let { body } = option;\n\n let postOptions: Record<string, any> = {\n method: option.method || 'POST',\n url: option.url,\n cache: option.cache,\n timeout: option.timeout,\n mode: option.mode,\n headers: option.headers || {},\n json: option.json || false,\n };\n\n if (body) {\n if (typeof body === 'function') {\n body = body(mForm, {\n model: props.model,\n formValue: mForm?.values,\n formValues: mForm?.values,\n config: props.config,\n }) as Record<string, any>;\n }\n\n body.query = query.value;\n body.pgSize = pgSize.value;\n body.pgIndex = pgIndex.value;\n postOptions.data = body;\n }\n\n const requestFuc = getConfig('request') as Function;\n\n if (typeof option.beforeRequest === 'function') {\n postOptions = option.beforeRequest(mForm, postOptions, {\n model: props.model,\n formValue: mForm?.values,\n });\n }\n\n if (option.method?.toLocaleLowerCase() === 'jsonp') {\n postOptions.jsonpCallback = option.jsonpCallback || 'callback';\n }\n\n let res = await requestFuc(postOptions);\n\n if (typeof option.afterRequest === 'function') {\n res = option.afterRequest(mForm, res, {\n model: props.model,\n formValue: mForm?.values,\n formValues: mForm?.values,\n config: props.config,\n });\n }\n\n const optionsData = res[option.root];\n\n if (res.total > 0) {\n total.value = res.total;\n }\n\n remoteData.value = remoteData.value.concat(optionsData);\n if (optionsData) {\n if (typeof option.item === 'function') {\n items = option.item(optionsData);\n } else if (optionsData.map) {\n items = mapOptions(optionsData);\n }\n }\n\n loading.value = false;\n\n // 多选过滤时会导致已选的选项显示不了,所以要把已选的选项保留不要过滤没了\n const selectedOptions: SelectOption[] | SelectGroupOption[] = [];\n if (props.config.multiple && props.model[props.name]) {\n options.value.forEach((o: any) => {\n const isInclude = props.model?.[props.name].includes(o.value);\n if (isInclude && !(items as any[]).find((op: any) => op.value === o.value)) {\n selectedOptions.push(o);\n }\n });\n }\n\n return pgIndex.value === 0 ? (selectedOptions as any[]).concat(items) : (options.value as any).concat(items);\n };\n\n const getInitLocalOption = async () => {\n if (!props.model) return [];\n\n const value = props.model[props.name];\n const { config } = props;\n localOptions.value = await getOptions();\n\n remote.value = false;\n\n if (config.group) {\n if (config.multiple && value.findIndex) {\n return (localOptions.value as SelectGroupOption[]).filter(\n (group) => group.options.findIndex((item) => value.find((v: any) => equalValue(item.value, v)) > -1) > -1,\n );\n }\n\n return (localOptions.value as SelectGroupOption[]).filter(\n (group) => group.options.findIndex((item) => equalValue(item.value, value)) > -1,\n );\n }\n\n if (config.multiple && value.findIndex) {\n return (localOptions.value as any[]).filter(\n (item) => value.findIndex((v: any) => equalValue(item.value, v)) > -1,\n );\n }\n return (localOptions.value as any[]).filter((item) => equalValue(item.value, value));\n };\n\n const getInitOption = async () => {\n if (!props.model) return [];\n\n const { config } = props;\n const { option } = config;\n\n let options: SelectOption[] | SelectGroupOption[] = [];\n\n let url = option.initUrl;\n if (!url) {\n return getInitLocalOption();\n }\n\n if (typeof url === 'function') {\n url = await url(mForm, { model: props.model, formValue: mForm?.values });\n }\n\n const postOptions: Record<string, any> = {\n method: option.method || 'POST',\n url,\n data: {\n id: props.model[props.name],\n },\n mode: option.mode,\n headers: option.headers || {},\n json: option.json || false,\n };\n if (option.method?.toLocaleLowerCase() === 'jsonp') {\n postOptions.jsonpCallback = option.jsonpCallback || 'callback';\n }\n\n const requestFuc = getConfig('request') as Function;\n const res = await requestFuc(postOptions);\n\n let initData = res[option.root];\n if (initData) {\n if (!Array.isArray(initData)) {\n initData = [initData];\n }\n\n if (typeof option.item === 'function') {\n options = option.item(initData);\n } else if (initData.map) {\n options = mapOptions(initData);\n }\n }\n\n return options;\n };\n\n if (typeof props.config.options === 'function') {\n watch(\n () => mForm?.values,\n () => {\n typeof props.config.options === 'function' &&\n Promise.resolve(\n props.config.options(mForm, {\n model: props.model,\n prop: props.prop,\n formValues: mForm?.values,\n formValue: mForm?.values,\n config: props.config,\n }),\n ).then((data) => {\n options.value = data;\n });\n },\n {\n deep: true,\n immediate: true,\n },\n );\n } else if (Array.isArray(props.config.options)) {\n watch(\n () => props.config.options,\n () => {\n options.value = props.config.options as SelectOption[] | SelectGroupOption[];\n },\n { immediate: true },\n );\n } else if (props.config.option) {\n onBeforeMount(() => {\n if (!props.model) return;\n const v = props.model[props.name];\n if (Array.isArray(v) ? v.length : v) {\n getInitOption().then((data) => {\n options.value = data;\n });\n }\n });\n }\n\n props.config.remote &&\n onMounted(() => {\n select.value?.scrollbar.wrap$.addEventListener('scroll', async (e: Event) => {\n const el = e.currentTarget as HTMLDivElement;\n if (moreLoadingVisible.value) {\n return;\n }\n if (el.scrollHeight - el.clientHeight - el.scrollTop > 1) {\n return;\n }\n if (total.value <= options.value.length) {\n return;\n }\n moreLoadingVisible.value = true;\n pgIndex.value += 1;\n options.value = await getOptions();\n moreLoadingVisible.value = false;\n });\n });\n\n return {\n select,\n loading,\n remote,\n options,\n moreLoadingVisible,\n popperClass: mForm?.popperClass,\n\n getOptions,\n\n getRequestFuc() {\n return getConfig('request');\n },\n\n changeHandler(value: any) {\n emit('change', value);\n },\n\n async visibleHandler(visible: boolean) {\n if (!visible) return;\n\n if (!props.config.remote) return;\n if (query.value && select.value) {\n select.value.query = query.value;\n select.value.previousQuery = query.value;\n select.value.selectedLabel = query.value;\n } else if (options.value.length <= (props.config.multiple ? props.model?.[props.name].length : 1)) {\n options.value = await getOptions();\n }\n },\n\n async remoteMethod(q: string) {\n if (!localOptions.value.length) {\n query.value = q;\n pgIndex.value = 0;\n options.value = await getOptions();\n // 多选时如果过滤选项会导致已选好的标签异常,需要重新刷新一下el-select的状态\n if (props.config.multiple)\n setTimeout(() => {\n select.value?.setSelected();\n }, 0);\n }\n },\n };\n },\n});\n</script>\n","<template>\n <el-switch\n v-if=\"model\"\n v-model=\"model[n]\"\n :size=\"size\"\n :activeValue=\"activeValue\"\n :inactiveValue=\"inactiveValue\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n ></el-switch>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { SwitchConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-switch',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<SwitchConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n n: computed(() => props.name || props.config.name || ''),\n activeValue: computed(() => {\n if (typeof props.config.activeValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 1;\n }\n } else {\n return props.config.activeValue;\n }\n\n return true;\n }),\n inactiveValue: computed(() => {\n if (typeof props.config.inactiveValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 0;\n }\n } else {\n return props.config.inactiveValue;\n }\n\n return false;\n }),\n changeHandler: (v: boolean | number | string) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input\n v-model=\"model[modelName]\"\n clearable\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n @keyup=\"keyUpHandler($event)\"\n >\n <template #append v-if=\"config.append\">\n <span v-if=\"typeof config.append === 'string'\">{{ config.append }}</span>\n <el-button\n v-if=\"typeof config.append === 'object' && config.append.type === 'button'\"\n style=\"color: #409eff\"\n :size=\"size\"\n @click.prevent=\"buttonClickHandler\"\n >\n {{ config.append.text }}\n </el-button>\n </template>\n </el-input>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, TextConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-text',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TextConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n useAddField(props.prop);\n\n const modelName = computed(() => props.name || props.config.name || '');\n return {\n modelName,\n\n changeHandler(v: string | number) {\n emit('change', v);\n },\n\n inputHandler(v: string | number) {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n\n buttonClickHandler() {\n if (typeof props.config.append === 'string') return;\n\n if (props.config.append?.handler) {\n props.config.append.handler(mForm, {\n model: props.model,\n values: mForm?.values,\n });\n }\n },\n\n keyUpHandler($event: KeyboardEvent) {\n if (!props.model) return;\n if (!modelName.value) return;\n\n const arrowUp = $event.key === 'ArrowUp';\n const arrowDown = $event.key === 'ArrowDown';\n\n if (!arrowUp && !arrowDown) {\n return;\n }\n\n const value = props.model[modelName.value];\n let num;\n let unit;\n if (/^([0-9.]+)$/.test(value)) {\n num = +value;\n } else {\n value.replace(/^([0-9.]+)([a-z%]+)$/, ($0: string, $1: string, $2: string) => {\n num = +$1;\n unit = $2;\n });\n }\n\n if (num === undefined) {\n return;\n }\n\n const ctrl = navigator.platform.match('Mac') ? $event.metaKey : $event.ctrlKey;\n const shif = $event.shiftKey;\n const alt = $event.altKey;\n\n if (arrowUp) {\n if (ctrl) {\n num += 100;\n } else if (alt) {\n num = (num * 10000 + 1000) / 10000;\n } else if (shif) {\n num = num + 10;\n } else {\n num += 1;\n }\n } else if (arrowDown) {\n if (ctrl) {\n num -= 100;\n } else if (alt) {\n num = (num * 10000 - 1000) / 10000;\n } else if (shif) {\n num -= 10;\n } else {\n num -= 1;\n }\n }\n\n props.model[modelName.value] = `${num}${unit || ''}`;\n emit('change', props.model[modelName.value]);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input\n v-model=\"model[name]\"\n type=\"textarea\"\n :size=\"size\"\n clearable\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n >\n </el-input>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, TextareaConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-textarea',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TextareaConfig>,\n required: true,\n },\n },\n\n emits: {\n change(values: string | number) {\n return values;\n },\n\n input(values: string | number) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const mForm = inject<FormState | null>('mForm');\n\n return {\n mForm,\n changeHandler: (v: string) => {\n emit('change', v);\n },\n\n inputHandler: (v: string) => {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-time-picker\n v-model=\"model[name]\"\n :size=\"size\"\n value-format=\"HH:mm:ss\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n ></el-time-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { TimeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-time',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TimeConfig>,\n required: true,\n },\n },\n\n emits: {\n change(values: Date) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n changeHandler: (v: Date) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-form\n class=\"m-form\"\n ref=\"elForm\"\n :model=\"values\"\n :label-width=\"labelWidth\"\n :disabled=\"disabled\"\n :style=\"`height: ${height}`\"\n :inline=\"inline\"\n :label-position=\"labelPosition\"\n >\n <template v-if=\"initialized && Array.isArray(config)\">\n <m-form-container\n v-for=\"(item, index) in config\"\n :key=\"item[keyProp] ?? index\"\n :config=\"item\"\n :model=\"values\"\n :label-width=\"item.labelWidth || labelWidth\"\n :step-active=\"stepActive\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </el-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, provide, reactive, ref, toRaw, watch } from 'vue';\nimport { ElForm } from 'element-plus';\nimport { cloneDeep, isEqual } from 'lodash-es';\n\nimport { getConfig } from './utils/config';\nimport { initValue } from './utils/form';\nimport { FormConfig, FormState, FormValue } from './schema';\n\nexport interface ValidateError {\n message: string;\n field: string;\n}\n\nexport interface FieldErrorList {\n [field: string]: ValidateError[];\n}\n\nexport default defineComponent({\n name: 'm-form',\n\n props: {\n // 表单初始化值\n initValues: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n\n parentValues: {\n type: Object,\n default: () => ({}),\n },\n\n // 表单配置\n config: {\n type: Array as PropType<FormConfig>,\n required: true,\n default: () => [],\n },\n\n labelWidth: {\n type: String,\n default: () => '200px',\n },\n\n disabled: {\n type: Boolean,\n default: () => false,\n },\n\n height: {\n type: String,\n default: () => 'auto',\n },\n\n stepActive: {\n type: [String, Number],\n default: () => 1,\n },\n\n size: {\n type: String as PropType<'small' | 'default' | 'large'>,\n },\n\n inline: {\n type: Boolean,\n default: false,\n },\n\n labelPosition: {\n type: String,\n default: 'right',\n },\n\n keyProp: {\n type: String,\n default: '__key',\n },\n\n popperClass: {\n type: String,\n },\n },\n\n emits: ['change', 'field-input', 'field-change'],\n\n setup(props, { emit }) {\n const elForm = ref<InstanceType<typeof ElForm>>();\n const initialized = ref(false);\n const values = ref<FormValue>({});\n const fields = new Map<string, any>();\n\n const requestFuc = getConfig('request') as Function;\n\n const formState: FormState = reactive<FormState>({\n keyProp: props.keyProp,\n popperClass: props.popperClass,\n config: props.config,\n initValues: props.initValues,\n parentValues: props.parentValues,\n values,\n $emit: emit as (event: string, ...args: any[]) => void,\n fields,\n setField: (prop: string, field: any) => fields.set(prop, field),\n getField: (prop: string) => fields.get(prop),\n deleteField: (prop: string) => fields.delete(prop),\n post: (options: any) => {\n if (requestFuc) {\n return requestFuc({\n ...options,\n method: 'POST',\n });\n }\n },\n });\n\n provide('mForm', formState);\n\n watch(\n [() => props.config, () => props.initValues],\n ([config], [preConfig]) => {\n if (!isEqual(toRaw(config), toRaw(preConfig))) {\n initialized.value = false;\n }\n\n initValue(formState, {\n initValues: props.initValues,\n config: props.config,\n }).then((value) => {\n values.value = value;\n initialized.value = true;\n });\n },\n { immediate: true },\n );\n\n return {\n initialized,\n values,\n elForm,\n\n formState,\n\n changeHandler: () => {\n emit('change', values.value);\n },\n\n resetForm: () => elForm.value?.resetFields(),\n\n submitForm: async (native?: boolean): Promise<any> => {\n try {\n await elForm.value?.validate();\n return native ? values.value : cloneDeep(toRaw(values.value));\n } catch (invalidFields: any) {\n const error: string[] = [];\n\n Object.entries(invalidFields).forEach(([, ValidateError]) => {\n (ValidateError as ValidateError[]).forEach(({ field, message }) => {\n if (field && message) error.push(`${field} -> ${message}`);\n if (field && !message) error.push(`${field} -> 出现错误`);\n if (!field && message) error.push(`${message}`);\n });\n });\n throw new Error(error.join('<br>'));\n }\n },\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-dialog\n v-model=\"dialogVisible\"\n custom-class=\"m-form-dialog\"\n top=\"20px\"\n :title=\"title\"\n :appendToBody=\"true\"\n :width=\"width\"\n :fullscreen=\"fullscreen\"\n :close-on-click-modal=\"false\"\n @close=\"closeHandler\"\n >\n <div class=\"m-dialog-body\" :style=\"`max-height: ${bodyHeight}; overflow-y: auto; overflow-x: hidden;`\">\n <m-form\n v-model=\"stepActive\"\n ref=\"form\"\n :size=\"size\"\n :config=\"config\"\n :init-values=\"values\"\n :label-width=\"labelWidth\"\n @change=\"changeHandler\"\n ></m-form>\n <slot></slot>\n </div>\n\n <template #footer>\n <el-row class=\"dialog-footer\">\n <el-col :span=\"12\" style=\"text-align: left\">\n <div style=\"min-height: 1px\">\n <slot name=\"left\"></slot>\n </div>\n </el-col>\n <el-col :span=\"12\">\n <slot name=\"footer\">\n <el-button @click=\"cancel\" size=\"small\">取 消</el-button>\n <el-button v-if=\"hasStep && stepActive > 1\" type=\"info\" size=\"small\" @click=\"preStep\">上一步</el-button>\n <el-button v-if=\"hasStep && stepCount > stepActive\" type=\"info\" size=\"small\" @click=\"nextStep\"\n >下一步</el-button\n >\n <el-button v-else type=\"primary\" size=\"small\" :loading=\"saveFetch\" @click=\"save\">{{\n confirmText\n }}</el-button>\n </slot>\n </el-col>\n </el-row>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, ref } from 'vue';\n\nimport Form from './Form.vue';\nimport { FormConfig, StepConfig } from './schema';\n\nexport default defineComponent({\n name: 'm-form-dialog',\n\n props: {\n values: {\n type: Object,\n default: () => ({}),\n },\n\n width: [Number, String],\n\n fullscreen: Boolean,\n\n title: String,\n\n config: {\n type: Array as PropType<FormConfig>,\n required: true,\n default: () => [],\n },\n\n labelWidth: [Number, String],\n\n size: String as PropType<'small' | 'default' | 'large'>,\n\n confirmText: {\n type: String,\n default: '确定',\n },\n },\n\n emits: ['close', 'submit', 'error', 'change'],\n\n setup(props, { emit }) {\n const form = ref<InstanceType<typeof Form>>();\n const dialogVisible = ref(false);\n const saveFetch = ref(false);\n const stepActive = ref(1);\n const bodyHeight = ref(`${document.body.clientHeight - 194}px`);\n\n const stepCount = computed(() => {\n const { length } = props.config;\n for (let index = 0; index < length; index++) {\n if (props.config[index].type === 'step') {\n return (props.config[index] as StepConfig).items.length;\n }\n }\n return 0;\n });\n\n const hasStep = computed(() => {\n const { length } = props.config;\n for (let index = 0; index < length; index++) {\n if (props.config[index].type === 'step') {\n return true;\n }\n }\n\n return false;\n });\n\n const cancel = () => {\n dialogVisible.value = false;\n };\n\n const closeHandler = () => {\n stepActive.value = 1;\n emit('close');\n };\n\n const save = async () => {\n try {\n const values = await form.value?.submitForm();\n emit('submit', values);\n } catch (e) {\n emit('error', e);\n }\n };\n\n const preStep = () => {\n stepActive.value -= 1;\n };\n\n const nextStep = () => {\n stepActive.value += 1;\n };\n\n const changeHandler = (value: any) => {\n emit('change', value);\n };\n\n return {\n form,\n saveFetch,\n stepActive,\n dialogVisible,\n bodyHeight,\n stepCount,\n hasStep,\n cancel,\n closeHandler,\n save,\n preStep,\n nextStep,\n changeHandler,\n };\n },\n});\n</script>\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { App } from 'vue';\n\nimport Container from './containers/Container.vue';\nimport Fieldset from './containers/Fieldset.vue';\nimport GroupList from './containers/GroupList.vue';\nimport Panel from './containers/Panel.vue';\nimport Row from './containers/Row.vue';\nimport MStep from './containers/Step.vue';\nimport Table from './containers/Table.vue';\nimport Tabs from './containers/Tabs.vue';\nimport Cascader from './fields/Cascader.vue';\nimport Checkbox from './fields/Checkbox.vue';\nimport CheckboxGroup from './fields/CheckboxGroup.vue';\nimport ColorPicker from './fields/ColorPicker.vue';\nimport Date from './fields/Date.vue';\nimport Daterange from './fields/Daterange.vue';\nimport DateTime from './fields/DateTime.vue';\nimport Display from './fields/Display.vue';\nimport DynamicField from './fields/DynamicField.vue';\nimport Hidden from './fields/Hidden.vue';\nimport Link from './fields/Link.vue';\nimport Number from './fields/Number.vue';\nimport RadioGroup from './fields/RadioGroup.vue';\nimport Select from './fields/Select.vue';\nimport Switch from './fields/Switch.vue';\nimport Text from './fields/Text.vue';\nimport Textarea from './fields/Textarea.vue';\nimport Time from './fields/Time.vue';\nimport { setConfig } from './utils/config';\nimport Form from './Form.vue';\nimport FormDialog from './FormDialog.vue';\n\nimport './theme/index.scss';\n\nexport * from './schema';\nexport * from './utils/form';\nexport * from './utils/useAddField';\nexport { default as fieldProps } from './utils/fieldProps';\n\nexport { default as MForm } from './Form.vue';\nexport { default as MFormDialog } from './FormDialog.vue';\nexport { default as MContainer } from './containers/Container.vue';\nexport { default as MFieldset } from './containers/Fieldset.vue';\nexport { default as MPanel } from './containers/Panel.vue';\nexport { default as MRow } from './containers/Row.vue';\nexport { default as MTabs } from './containers/Tabs.vue';\nexport { default as MTable } from './containers/Table.vue';\nexport { default as MGroupList } from './containers/GroupList.vue';\nexport { default as MText } from './fields/Text.vue';\nexport { default as MNumber } from './fields/Number.vue';\nexport { default as MTextarea } from './fields/Textarea.vue';\nexport { default as MHidden } from './fields/Hidden.vue';\nexport { default as MDate } from './fields/Date.vue';\nexport { default as MDateTime } from './fields/DateTime.vue';\nexport { default as MTime } from './fields/Time.vue';\nexport { default as MCheckbox } from './fields/Checkbox.vue';\nexport { default as MSwitch } from './fields/Switch.vue';\nexport { default as MDaterange } from './fields/Daterange.vue';\nexport { default as MColorPicker } from './fields/ColorPicker.vue';\nexport { default as MCheckboxGroup } from './fields/CheckboxGroup.vue';\nexport { default as MRadioGroup } from './fields/RadioGroup.vue';\nexport { default as MDisplay } from './fields/Display.vue';\nexport { default as MLink } from './fields/Link.vue';\nexport { default as MSelect } from './fields/Select.vue';\nexport { default as MCascader } from './fields/Cascader.vue';\nexport { default as MDynamicField } from './fields/DynamicField.vue';\n\nconst defaultInstallOpt = {};\n\nconst install = (app: App, opt: any) => {\n const option = Object.assign(defaultInstallOpt, opt);\n\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$MAGIC_FORM = option;\n setConfig(option);\n\n app.component(Form.name, Form);\n app.component(FormDialog.name, FormDialog);\n app.component(Container.name, Container);\n app.component(Fieldset.name, Fieldset);\n app.component(GroupList.name, GroupList);\n app.component(Panel.name, Panel);\n app.component(Row.name, Row);\n app.component(MStep.name, MStep);\n app.component(Table.name, Table);\n app.component(Tabs.name, Tabs);\n app.component(Text.name, Text);\n app.component(Number.name, Number);\n app.component(Textarea.name, Textarea);\n app.component(Hidden.name, Hidden);\n app.component(Date.name, Date);\n app.component(DateTime.name, DateTime);\n app.component(Time.name, Time);\n app.component(Checkbox.name, Checkbox);\n app.component(Switch.name, Switch);\n app.component(Daterange.name, Daterange);\n app.component(ColorPicker.name, ColorPicker);\n app.component(CheckboxGroup.name, CheckboxGroup);\n app.component(RadioGroup.name, RadioGroup);\n app.component(Display.name, Display);\n app.component(Link.name, Link);\n app.component(Select.name, Select);\n app.component(Cascader.name, Cascader);\n app.component(DynamicField.name, DynamicField);\n};\n\nexport default {\n install,\n};\n"],"names":["cloneDeep","toRaw","_sfc_main","defineComponent","WarningFilled","inject","ref","computed","resolveComponent","display","displayFunction","watchEffect","_normalizeStyle","_normalizeClass","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_createVNode","_withCtx","_createElementVNode","_hoisted_2","_renderList","_createCommentVNode","_hoisted_5","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","CaretRight","CaretBottom","Delete","_withDirectives","_vShow","_createTextVNode","_toDisplayString","_renderSlot","Sortable","sleep","ElMessage","asyncLoadJs","onMounted","ArrowDown","ArrowUp","FullScreen","Grid","toRefs","getCurrentInstance","watch","__default__","datetimeFormatter","reactive","onBeforeUnmount","onBeforeMount","_createSlots","_withModifiers","provide","isEqual","Number","Hidden","Date","ColorPicker","Display"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tmagic-form.umd.js","sources":["../src/utils/form.ts","../plugin-vue:export-helper","../src/containers/Container.vue","../src/containers/Fieldset.vue","../src/containers/GroupListItem.vue","../src/containers/GroupList.vue","../src/containers/Panel.vue","../src/containers/Col.vue","../src/containers/Row.vue","../src/containers/Step.vue","../src/containers/Table.vue","../src/containers/Tabs.vue","../src/utils/config.ts","../src/utils/fieldProps.ts","../src/utils/useAddField.ts","../src/fields/Cascader.vue","../src/fields/Checkbox.vue","../src/fields/CheckboxGroup.vue","../src/fields/ColorPicker.vue","../src/fields/Date.vue","../src/fields/Daterange.vue","../src/fields/DateTime.vue","../src/fields/Display.vue","../src/fields/DynamicField.vue","../src/fields/Hidden.vue","../src/fields/Link.vue","../src/fields/Number.vue","../src/fields/RadioGroup.vue","../src/fields/Select.vue","../src/fields/Switch.vue","../src/fields/Text.vue","../src/fields/Textarea.vue","../src/fields/Time.vue","../src/Form.vue","../src/FormDialog.vue","../src/index.ts"],"sourcesContent":["/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable no-param-reassign */\nimport { toRaw } from 'vue';\nimport { cloneDeep } from 'lodash-es';\n\nimport {\n ChildConfig,\n ContainerCommonConfig,\n DaterangeConfig,\n FormConfig,\n FormState,\n FormValue,\n HtmlField,\n Rule,\n TabPaneConfig,\n TypeFunction,\n} from '../schema';\n\ninterface DefaultItem {\n defaultValue: any;\n type: string;\n filter: string;\n multiple: boolean;\n}\n\nconst isTableSelect = (type?: string | TypeFunction) =>\n typeof type === 'string' && ['table-select', 'tableSelect'].includes(type);\n\nconst asyncLoadConfig = (value: FormValue, initValue: FormValue, { asyncLoad, name, type }: HtmlField) => {\n // 富文本配置了异步加载\n if (type === 'html' && typeof asyncLoad === 'object' && typeof name !== 'undefined') {\n asyncLoad.name = name;\n value.asyncLoad = typeof initValue.asyncLoad === 'object' ? initValue.asyncLoad : asyncLoad;\n }\n};\n\nconst isMultipleValue = (type?: string | TypeFunction) =>\n typeof type === 'string' &&\n ['checkbox-group', 'checkboxGroup', 'table', 'cascader', 'group-list', 'groupList'].includes(type);\n\nconst initItemsValue = (\n mForm: FormState | undefined,\n value: FormValue,\n initValue: FormValue,\n { items, name, extensible }: any,\n) => {\n if (Array.isArray(initValue[name])) {\n value[name] = initValue[name].map((v: any, index: number) => init(mForm, items, v, value[name]?.[index]));\n } else {\n value[name] = init(mForm, items, initValue[name], value[name]);\n if (extensible) {\n value[name] = Object.assign({}, initValue[name], value[name]);\n }\n }\n};\n\nconst setValue = (mForm: FormState | undefined, value: FormValue, initValue: FormValue, item: any) => {\n const { items, name, type, checkbox } = item;\n // 值是数组, 有可能也有items配置,所以不能放到getDefaultValue里赋值\n if (isMultipleValue(type) || (type === 'tab' && item.dynamic)) {\n value[name] = initValue[name] || [];\n }\n\n // 有子项继续递归,没有的话有初始值用初始值,没有初始值用默认值\n if (items) {\n initItemsValue(mForm, value, initValue, item);\n } else {\n value[name] = getDefaultValue(mForm, item as DefaultItem);\n }\n\n // 如果fieldset配置checkbox,checkbox的值保存在value中\n if (type === 'fieldset' && checkbox) {\n if (typeof value[name] === 'object') {\n value[name].value = typeof initValue[name] === 'object' ? initValue[name].value || 0 : 0;\n }\n }\n};\n\nconst initValueItem = function (\n mForm: FormState | undefined,\n item: ChildConfig | TabPaneConfig,\n initValue: FormValue,\n value: FormValue,\n) {\n const { items } = item as ContainerCommonConfig;\n const { names } = item as DaterangeConfig;\n const { type, name } = item as ChildConfig;\n\n if (isTableSelect(type) && name) {\n value[name] = initValue[name] || '';\n return value;\n }\n\n asyncLoadConfig(value, initValue, item as HtmlField);\n\n // 这种情况比较多,提前结束\n if (name && !items && typeof initValue[name] !== 'undefined') {\n if (typeof value[name] === 'undefined') {\n if (type === 'number') {\n value[name] = Number(initValue[name]);\n } else {\n value[name] = typeof initValue[name] === 'object' ? cloneDeep(initValue[name]) : initValue[name];\n }\n }\n\n return value;\n }\n\n if (names) {\n return names.forEach((n: string) => (value[n] = initValue[n] || ''));\n }\n\n if (!name) {\n // 没有配置name,直接跳过\n return init(mForm, items, initValue, value);\n }\n\n setValue(mForm, value, initValue, item);\n\n return value;\n};\n\nconst init = function (\n mForm: FormState | undefined,\n config: FormConfig | TabPaneConfig[] = [],\n initValue: FormValue = {},\n value: FormValue = {},\n) {\n if (Array.isArray(config)) {\n config.forEach((item: ChildConfig | TabPaneConfig) => {\n initValueItem(mForm, item, initValue, value);\n });\n }\n\n return value;\n};\n\nconst getDefaultValue = function (mForm: FormState | undefined, { defaultValue, type, filter, multiple }: DefaultItem) {\n if (typeof defaultValue === 'function') {\n return defaultValue(mForm);\n }\n\n // 如果直接设置为undefined,在解析成js对象时会丢失这个配置,所以用'undefined'代替\n if (defaultValue === 'undefined') {\n return undefined;\n }\n\n if (typeof defaultValue !== 'undefined') {\n return defaultValue;\n }\n\n if (type === 'number' || filter === 'number') {\n return 0;\n }\n\n if (['switch', 'checkbox'].includes(type)) {\n return false;\n }\n\n if (multiple) {\n return [];\n }\n\n return '';\n};\n\nexport const filterFunction = (mForm: FormState | undefined, config: any, props: any) => {\n if (typeof config !== 'function') {\n return config;\n }\n\n return config(mForm, {\n values: mForm?.initValues || {},\n model: props.model,\n parent: mForm?.parentValues || {},\n formValue: mForm?.values || props.model,\n prop: props.prop,\n config: props.config,\n });\n};\n\nexport const display = function (mForm: FormState | undefined, config: any, props: any) {\n if (typeof config === 'function') {\n return filterFunction(mForm, config, props);\n }\n\n if (config === false) {\n return false;\n }\n\n return true;\n};\n\nexport const getRules = function (mForm: FormState | undefined, rules: Rule[] | Rule = [], props: any) {\n rules = cloneDeep(rules);\n\n if (typeof rules === 'object' && !Array.isArray(rules)) {\n rules = [rules];\n }\n\n return rules.map((item) => {\n if (typeof item.validator === 'function') {\n const fnc = item.validator;\n\n (item as any).validator = (rule: any, value: any, callback: Function, source: any, options: any) =>\n fnc(\n {\n rule,\n value: props.config.names ? props.model : value,\n callback,\n source,\n options,\n },\n {\n values: mForm?.initValues || {},\n model: props.model,\n parent: mForm?.parentValues || {},\n formValue: mForm?.values || props.model,\n prop: props.prop,\n config: props.config,\n },\n mForm,\n );\n }\n return item;\n });\n};\n\nexport const initValue = async (\n mForm: FormState | undefined,\n { initValues, config }: { initValues: FormValue; config: FormConfig },\n) => {\n if (!Array.isArray(config)) throw new Error('config应该为数组');\n\n let valuesTmp = init(mForm, config, toRaw(initValues), {});\n\n const [firstForm] = config as [ContainerCommonConfig];\n if (firstForm && typeof firstForm.onInitValue === 'function') {\n valuesTmp = await firstForm.onInitValue(mForm, {\n formValue: valuesTmp,\n initValue: initValues,\n });\n }\n\n return valuesTmp || {};\n};\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<template>\n <div\n v-if=\"config\"\n :style=\"config.tip ? 'display: flex;align-items: baseline;' : ''\"\n :class=\"config.className\"\n class=\"m-form-container\"\n >\n <m-fields-hidden\n v-if=\"type === 'hidden'\"\n :model=\"model\"\n :config=\"config\"\n :name=\"config.name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n ></m-fields-hidden>\n\n <component\n v-else-if=\"items && !config.text && type && display\"\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :prop=\"itemProp\"\n :step-active=\"stepActive\"\n :expand-more=\"expand\"\n :label-width=\"itemLabelWidth\"\n @change=\"onChangeHandler\"\n ></component>\n\n <template v-else-if=\"type && display\">\n <el-form-item\n :style=\"config.tip ? 'flex: 1' : ''\"\n :class=\"{ hidden: `${itemLabelWidth}` === '0' || !config.text }\"\n :prop=\"itemProp\"\n :label-width=\"itemLabelWidth\"\n :rules=\"rule\"\n >\n <template #label><span v-html=\"type === 'checkbox' ? '' : config.text\"></span></template>\n <el-tooltip v-if=\"tooltip\">\n <component\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></component>\n <template #content>\n <div v-html=\"tooltip\"></div>\n </template>\n </el-tooltip>\n\n <component\n v-else\n :key=\"key(config)\"\n :size=\"size\"\n :is=\"tagName\"\n :model=\"model\"\n :config=\"config\"\n :name=\"name\"\n :disabled=\"disabled\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></component>\n\n <div v-if=\"extra\" v-html=\"extra\" class=\"m-form-tip\"></div>\n </el-form-item>\n\n <el-tooltip v-if=\"config.tip\" placement=\"left\">\n <el-icon style=\"line-height: 40px; margin-left: 5px\"><warning-filled /></el-icon>\n <template #content>\n <div v-html=\"config.tip\"></div>\n </template>\n </el-tooltip>\n </template>\n\n <template v-else-if=\"items && display\">\n <template v-if=\"name || name === 0 ? model[name] : model\">\n <m-form-container\n v-for=\"item in items\"\n :key=\"key(item)\"\n :model=\"name || name === 0 ? model[name] : model\"\n :config=\"item\"\n :size=\"size\"\n :step-active=\"stepActive\"\n :expand-more=\"expand\"\n :label-width=\"itemLabelWidth\"\n :prop=\"itemProp\"\n @change=\"onChangeHandler\"\n ></m-form-container>\n </template>\n </template>\n\n <div style=\"text-align: center\" v-if=\"config.expand && type !== 'fieldset'\">\n <el-button text @click=\"expandHandler\">{{ expand ? '收起配置' : '展开更多配置' }}</el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref, resolveComponent, watchEffect } from 'vue';\nimport { WarningFilled } from '@element-plus/icons';\n\nimport { ChildConfig, ContainerCommonConfig, FormState, FormValue } from '../schema';\nimport { display as displayFunction, filterFunction, getRules } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-container',\n\n components: { WarningFilled },\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: [Object, Array] as PropType<FormValue>,\n required: true,\n },\n\n config: {\n type: Object as PropType<ChildConfig>,\n required: true,\n },\n\n prop: {\n type: String,\n default: () => '',\n },\n\n stepActive: {\n type: [String, Number],\n },\n\n size: {\n type: String,\n default: 'small',\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const expand = ref(false);\n\n const name = computed(() => props.config.name || '');\n\n const items = computed(() => (props.config as ContainerCommonConfig).items);\n\n const itemProp = computed(() => {\n let n: string | number = '';\n const { names } = props.config as any;\n if (names?.[0]) {\n [n] = names;\n } else if (name.value) {\n n = name.value;\n } else {\n return props.prop;\n }\n return `${props.prop}${props.prop ? '.' : ''}${n}`;\n });\n\n const tagName = computed(() => {\n const component = resolveComponent(`m-${items.value ? 'form' : 'fields'}-${type.value}`);\n if (typeof component !== 'string') return component;\n return 'm-fields-text';\n });\n\n const disabled = computed(() => filterFunction(mForm, props.config.disabled, props));\n\n const tooltip = computed(() => filterFunction(mForm, props.config.tooltip, props));\n\n const extra = computed(() => filterFunction(mForm, props.config.extra, props));\n\n const rule = computed(() => getRules(mForm, props.config.rules, props));\n\n const type = computed((): string => {\n let { type } = props.config;\n if (typeof type === 'function') {\n type = type(mForm, {\n model: props.model,\n });\n }\n if (type === 'form') return '';\n return type?.replace(/([A-Z])/g, '-$1').toLowerCase() || (items.value ? '' : 'text');\n });\n\n const display = computed((): boolean => {\n if (props.config.display === 'expand') {\n return expand.value;\n }\n\n return displayFunction(mForm, props.config.display, props);\n });\n\n const itemLabelWidth = computed(() => props.config.labelWidth || props.labelWidth);\n\n watchEffect(() => {\n expand.value = props.expandMore;\n });\n\n const expandHandler = () => (expand.value = !expand.value);\n\n const key = (config: any) => config[mForm?.keyProps];\n\n const filterHandler = (filter: any, value: FormValue | number | string) => {\n if (typeof filter === 'function') {\n return filter(mForm, value, {\n model: props.model,\n values: mForm?.initValues,\n formValue: mForm?.values,\n prop: itemProp.value,\n config: props.config,\n });\n }\n\n if (filter === 'number') {\n return +value;\n }\n\n return value;\n };\n\n const changeHandler = (onChange: any, value: FormValue | number | string) => {\n if (typeof onChange === 'function') {\n return onChange(mForm, value, {\n model: props.model,\n values: mForm?.initValues,\n formValue: mForm?.values,\n prop: itemProp.value,\n config: props.config,\n });\n }\n };\n\n const trimHandler = (trim: any, value: FormValue | number | string) => {\n if (typeof value === 'string' && trim) {\n return value.replace(/^\\s*/, '').replace(/\\s*$/, '');\n }\n };\n\n const onChangeHandler = async function (v: FormValue, key?: string) {\n const { filter, onChange, trim, name, dynamicKey } = props.config as any;\n let value: FormValue | number | string = v;\n\n try {\n value = filterHandler(filter, v);\n value = (await changeHandler(onChange, value)) ?? value;\n value = trimHandler(trim, value) ?? value;\n } catch (e) {\n console.error(e);\n }\n\n // field内容下包含field-link时,model===value, 这里避免循环引用\n if ((name || name === 0) && props.model !== value && (v !== value || props.model[name] !== value)) {\n // eslint-disable-next-line vue/no-mutating-props\n props.model[name] = value;\n }\n // 动态表单类型,根据value和key参数,直接修改model\n if (key !== undefined && dynamicKey) {\n // eslint-disable-next-line vue/no-mutating-props\n props.model[key] = value;\n }\n emit('change', props.model);\n };\n\n return {\n expand,\n name,\n type,\n disabled,\n itemProp,\n items,\n display,\n itemLabelWidth,\n tagName,\n rule,\n tooltip,\n extra,\n key,\n onChangeHandler,\n expandHandler,\n };\n },\n});\n</script>\n","<template>\n <fieldset\n v-if=\"name ? model[name] : model\"\n class=\"m-fieldset\"\n :style=\"show ? 'padding: 15px 15px 0 5px;' : 'border: 0'\"\n >\n <component v-if=\"name && config.checkbox\" :is=\"!show ? 'div' : 'legend'\">\n <el-checkbox\n v-model=\"model[name].value\"\n :prop=\"`${prop}${prop ? '.' : ''}${config.name}.value`\"\n :true-label=\"1\"\n :false-label=\"0\"\n ><span v-html=\"config.legend\"></span><span v-if=\"config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span\n ></el-checkbox>\n </component>\n <legend v-else>\n <span v-html=\"config.legend\"></span>\n <span v-if=\"config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span>\n </legend>\n\n <div v-if=\"config.schematic && show\" style=\"display: flex\">\n <div style=\"flex: 1\">\n <m-form-container\n v-for=\"(item, index) in config.items\"\n :key=\"key(item, index)\"\n :model=\"name ? model[name] : model\"\n :rules=\"name ? rules[name] : []\"\n :config=\"item\"\n :prop=\"prop\"\n :labelWidth=\"lWidth\"\n :size=\"size\"\n @change=\"change\"\n ></m-form-container>\n </div>\n\n <img class=\"m-form-schematic\" :src=\"config.schematic\" />\n </div>\n\n <template v-else-if=\"show\">\n <m-form-container\n v-for=\"(item, index) in config.items\"\n :key=\"key(item, index)\"\n :model=\"name ? model[name] : model\"\n :rules=\"name ? rules[name] : []\"\n :config=\"item\"\n :prop=\"prop\"\n :labelWidth=\"lWidth\"\n :size=\"size\"\n @change=\"change\"\n ></m-form-container>\n </template>\n </fieldset>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, watch } from 'vue';\n\nimport { FieldsetConfig, FormState } from '../schema';\n\nconst props = withDefaults(\n defineProps<{\n labelWidth?: string;\n prop: string;\n size?: string;\n model: Record<string, any>;\n config: FieldsetConfig;\n rules?: any;\n }>(),\n {\n rules: {},\n prop: '',\n },\n);\n\nconst emit = defineEmits(['change']);\n\nconst mForm = inject<FormState | undefined>('mForm');\n\nconst name = computed(() => props.config.name || '');\n\nconst show = computed(() => {\n if (props.config.expand && name.value) {\n return props.model[name.value]?.value;\n }\n return true;\n});\n\nconst lWidth = computed(() => {\n if (props.config.items) {\n return props.config.labelWidth || props.labelWidth;\n }\n return props.config.labelWidth || props.labelWidth || (props.config.text ? null : '0');\n});\n\nconst change = () => {\n emit('change', props.model);\n};\n\nconst key = (item: any, index: number) => item[mForm?.keyProp || '__key'] ?? index;\n\nif (props.config.checkbox && name.value) {\n watch(\n () => props.model[name.value]?.value,\n () => {\n console.log(props.model);\n emit('change', props.model);\n },\n );\n}\n</script>\n","<template>\n <div class=\"m-fields-group-list-item\">\n <div>\n <el-icon style=\"margin-right: 7px\" @click=\"expandHandler\"\n ><caret-bottom v-if=\"expand\" /><caret-right v-else\n /></el-icon>\n\n <el-button text @click=\"expandHandler\">{{ title }}</el-button>\n\n <el-button\n v-show=\"showDelete(parseInt(String(index)))\"\n text\n :icon=\"Delete\"\n style=\"color: #f56c6c\"\n @click=\"removeHandler\"\n ></el-button>\n\n <template v-if=\"movable()\">\n <el-button v-show=\"index !== 0\" text size=\"small\" @click=\"changeOrder(-1)\"\n >上移<el-icon><CaretRight /></el-icon\n ></el-button>\n <el-button v-show=\"index !== length - 1\" text size=\"small\" @click=\"changeOrder(1)\"\n >下移<el-icon><CaretBottom /></el-icon\n ></el-button>\n </template>\n\n <span v-if=\"itemExtra\" v-html=\"itemExtra\" class=\"m-form-tip\"></span>\n </div>\n\n <m-form-container\n v-if=\"expand\"\n :config=\"rowConfig\"\n :model=\"model\"\n :labelWidth=\"labelWidth\"\n :prop=\"`${prop}${prop ? '.' : ''}${String(index)}`\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref, watchEffect } from 'vue';\nimport { CaretBottom, CaretRight, Delete } from '@element-plus/icons';\n\nimport { FormState, GroupListConfig } from '../schema';\nimport { filterFunction } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-group-list-item',\n\n components: { CaretRight, CaretBottom },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<GroupListConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n\n index: {\n type: [Number, String, Symbol],\n default: 0,\n },\n\n groupModel: {\n type: Array,\n default: () => [],\n },\n },\n\n emits: ['swap-item', 'remove-item', 'change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const expand = ref(false);\n\n watchEffect(() => {\n expand.value = !props.index;\n });\n\n const rowConfig = computed(() => ({\n type: 'row',\n span: props.config.span || 24,\n items: props.config.items,\n labelWidth: props.config.labelWidth,\n [mForm?.keyProp || '__key']: `${props.config[mForm?.keyProp || '__key']}${String(props.index)}`,\n }));\n\n const title = computed(() => {\n if (props.config.titleKey && props.model[props.config.titleKey]) {\n return props.model[props.config.titleKey];\n }\n\n return `组 ${String(props.index)}`;\n });\n\n const length = computed(() => props.groupModel?.length || 0);\n\n const itemExtra = computed(() => filterFunction(mForm, props.config.itemExtra, props));\n\n const removeHandler = () => emit('remove-item', props.index);\n\n const changeHandler = () => emit('change');\n\n const expandHandler = () => {\n expand.value = !expand.value;\n };\n\n // 希望支持单行可控制是否显示删除按钮,不会影响现有逻辑\n const showDelete = (index: number) => {\n const deleteFunc = props.config.delete;\n if (deleteFunc && typeof deleteFunc === 'function') {\n return deleteFunc(props.model, index, mForm?.values);\n }\n return true;\n };\n\n // 调换顺序\n const changeOrder = (offset = 0) => emit('swap-item', props.index, `${String(props.index)}${offset}`);\n\n const movable = () => {\n const { movable } = props.config;\n\n // 没有设置时,默认可移动\n if (movable === undefined) return true;\n if (typeof movable === 'function') {\n return movable(mForm, props.index || 0, props.model, props.groupModel);\n }\n return movable;\n };\n\n return {\n expand,\n expandHandler,\n title,\n showDelete,\n removeHandler,\n movable,\n changeOrder,\n itemExtra,\n rowConfig,\n changeHandler,\n length,\n Delete,\n };\n },\n});\n</script>\n","<template>\n <div class=\"m-fields-group-list\">\n <div v-if=\"config.extra\" v-html=\"config.extra\" style=\"color: rgba(0, 0, 0, 0.45)\"></div>\n <div v-if=\"!model[name] || !model[name].length\" class=\"el-table__empty-block\">\n <span class=\"el-table__empty-text\">暂无数据</span>\n </div>\n\n <m-fields-group-list-item\n v-else\n v-for=\"(item, index) in model[name]\"\n :key=\"index\"\n :model=\"item\"\n :config=\"config\"\n :prop=\"prop\"\n :index=\"index\"\n :label-width=\"labelWidth\"\n :size=\"size\"\n :group-model=\"model[name]\"\n @remove-item=\"removeHandler\"\n @swap-item=\"swapHandler\"\n @change=\"changeHandler\"\n ></m-fields-group-list-item>\n\n <el-button @click=\"addHandler\" size=\"small\" v-if=\"addable\">添加组</el-button>\n\n <el-button icon=\"el-icon-s-grid\" size=\"small\" @click=\"toggleMode\" v-if=\"config.enableToggleMode\"\n >切换为表格</el-button\n >\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, GroupListConfig } from '../schema';\nimport { initValue } from '../utils/form';\n\nimport MFieldsGroupListItem from './GroupListItem.vue';\n\nexport default defineComponent({\n name: 'm-form-group-list',\n\n components: { MFieldsGroupListItem },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<GroupListConfig>,\n default: () => ({}),\n },\n\n prop: {\n type: String,\n default: '',\n },\n\n size: String,\n\n name: {\n type: String,\n default: '',\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const addable = computed(() => {\n if (!props.name) return false;\n\n if (typeof props.config.addable === 'function') {\n return props.config.addable(mForm, {\n model: props.model[props.name],\n formValue: mForm?.values,\n prop: props.prop,\n config: props.config,\n });\n }\n\n return typeof props.config.addable === 'undefined' ? true : props.config.addable;\n });\n\n const changeHandler = () => {\n if (!props.name) return false;\n\n emit('change', props.model[props.name]);\n };\n\n const addHandler = async () => {\n if (!props.name) return false;\n\n let initValues = {};\n\n if (typeof props.config.defaultAdd === 'function') {\n initValues = await props.config.defaultAdd(mForm, {\n model: props.model[props.name],\n formValue: mForm?.values,\n prop: props.prop,\n config: props.config,\n });\n } else if (props.config.defaultAdd) {\n initValues = props.config.defaultAdd;\n }\n\n const groupValue = await initValue(mForm, {\n config: props.config.items,\n initValues,\n });\n\n props.model[props.name].push(groupValue);\n };\n\n const removeHandler = (index: number) => {\n if (!props.name) return false;\n\n props.model[props.name].splice(index, 1);\n changeHandler();\n };\n\n const swapHandler = (idx1: number, idx2: number) => {\n if (!props.name) return false;\n\n const [currRow] = props.model[props.name].splice(idx1, 1);\n props.model[props.name].splice(idx2, 0, currRow);\n changeHandler();\n };\n\n const toggleMode = () => {\n props.config.type = 'table';\n props.config.groupItems = props.config.items;\n props.config.items = (props.config.tableItems ||\n props.config.items.map((item: any) => ({\n ...item,\n label: item.label || item.text,\n text: null,\n }))) as any;\n };\n return {\n addable,\n toggleMode,\n removeHandler,\n swapHandler,\n changeHandler,\n addHandler,\n };\n },\n});\n</script>\n","<template>\n <el-card\n v-if=\"items && items.length\"\n class=\"box-card m-form-panel\"\n :body-style=\"{ display: expand ? 'block' : 'none' }\"\n >\n <template #header>\n <div class=\"clearfix\">\n <a href=\"javascript:\" style=\"width: 100%; display: block\" @click=\"expand = !expand\">\n <el-icon><caret-bottom v-if=\"expand\" /><caret-right v-else /></el-icon> {{ filter(config.title) }}\n <span v-if=\"config && config.extra\" v-html=\"config.extra\" class=\"m-form-tip\"></span>\n </a>\n </div>\n </template>\n\n <div>\n <slot></slot>\n\n <div v-if=\"config.schematic\" style=\"display: flex\">\n <div style=\"flex: 1\">\n <m-form-container\n v-for=\"(item, index) in items\"\n :key=\"item[mForm?.keyProp || '__key'] ?? index\"\n :config=\"item\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </div>\n\n <img class=\"m-form-schematic\" :src=\"config.schematic\" />\n </div>\n\n <template v-else>\n <m-form-container\n v-for=\"(item, index) in items\"\n :key=\"item[mForm?.keyProp || '__key'] ?? index\"\n :config=\"item\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </div>\n </el-card>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref } from 'vue';\nimport { CaretBottom, CaretRight } from '@element-plus/icons';\n\nimport { FormState, PanelConfig } from '../schema';\nimport { filterFunction } from '../utils/form';\n\nexport default defineComponent({\n name: 'm-form-panel',\n\n components: { CaretBottom, CaretRight },\n\n props: {\n labelWidth: String,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<PanelConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n\n name: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const expand = ref(props.config.expand !== false);\n\n const items = computed(() => props.config.items);\n\n const filter = (config: any) => filterFunction(mForm, config, props);\n\n const changeHandler = () => emit('change', props.model);\n\n return {\n mForm,\n expand,\n items,\n filter,\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <el-col v-show=\"display && config.type !== 'hidden'\" :span=\"span\">\n <m-form-container\n :model=\"model\"\n :config=\"config\"\n :prop=\"prop\"\n :label-width=\"config.labelWidth || labelWidth\"\n :expand-more=\"expandMore\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </el-col>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { ChildConfig, FormState } from '../schema';\nimport { display as displayFunction } from '../utils/form';\n\nexport default defineComponent({\n props: {\n labelWidth: String,\n expandMore: Boolean,\n span: Number,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<ChildConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n size: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const changeHandler = () => emit('change', props.model);\n\n return {\n mForm,\n display: computed(() => displayFunction(mForm, props.config.display, props)),\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <el-row :gutter=\"10\">\n <Col\n v-for=\"(col, index) in config.items\"\n :key=\"col[mForm?.keyProp || '__key'] ?? index\"\n :span=\"col.span || config.span || 24 / config.items.length\"\n :config=\"col\"\n :labelWidth=\"config.labelWidth || labelWidth\"\n :expandMore=\"expandMore\"\n :model=\"name ? model[name] : model\"\n :prop=\"prop\"\n :size=\"size\"\n @change=\"changeHandler\"\n />\n </el-row>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, RowConfig } from '../schema';\n\nimport Col from './Col.vue';\n\nexport default defineComponent({\n name: 'm-form-row',\n\n components: { Col },\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<RowConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n name: String,\n\n size: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n const changeHandler = () => emit('change', props.name ? props.model[props.name] : props.model);\n\n return {\n mForm,\n changeHandler,\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-steps :active=\"active\" align-center :space=\"config.space\">\n <el-step\n v-for=\"(item, index) in config.items\"\n :key=\"item.__key\"\n :title=\"item.title\"\n :active=\"active\"\n @click=\"stepClick(index)\"\n ></el-step>\n </el-steps>\n\n <template v-for=\"(step, index) in config.items\">\n <template v-for=\"item in step.items\">\n <m-form-container\n v-if=\"item\"\n v-show=\"active - 1 === index\"\n :key=\"item[mForm?.keyProp || '__key']\"\n :config=\"item\"\n :model=\"step.name ? model[step.name] : model\"\n :prop=\"step.name\"\n :size=\"size\"\n :label-width=\"config.labelWidth || labelWidth\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType, ref, watchEffect } from 'vue';\n\nimport { FormState, StepConfig } from '../schema';\n\nexport default defineComponent({\n name: 'm-form-step',\n\n props: {\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<StepConfig>,\n default: () => ({}),\n },\n\n stepActive: {\n type: Number,\n default: () => 1,\n },\n\n size: String,\n\n labelWidth: String,\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const active = ref(1);\n\n watchEffect(() => {\n active.value = props.stepActive;\n });\n\n const stepClick = (index: number) => {\n active.value = index + 1;\n mForm?.$emit('update:stepActive', active.value);\n };\n\n const changeHandler = () => {\n emit('change', props.model);\n };\n\n return { mForm, active, stepClick, changeHandler };\n },\n});\n</script>\n","<template>\n <div ref=\"mTable\" class=\"m-fields-table\" :class=\"{ 'm-fields-table-item-extra': config.itemExtra }\">\n <span v-if=\"config.extra\" style=\"color: rgba(0, 0, 0, 0.45)\" v-html=\"config.extra\"></span>\n <div class=\"el-form-item__content\">\n <el-tooltip content=\"拖拽可排序\" placement=\"left-start\" :disabled=\"config.dropSort !== true\">\n <el-table\n v-if=\"model[modelName]\"\n ref=\"elTable\"\n style=\"width: 100%\"\n :data=\"model[modelName]\"\n :border=\"config.border\"\n :max-height=\"config.maxHeight\"\n :default-expand-all=\"true\"\n :key=\"updateKey\"\n @select=\"selectHandle\"\n @sort-change=\"sortChange\"\n >\n <el-table-column v-if=\"config.itemExtra\" :fixed=\"'left'\" width=\"30\" type=\"expand\">\n <template v-slot=\"scope\">\n <span v-html=\"itemExtra(config.itemExtra, scope.$index)\" class=\"m-form-tip\"></span>\n </template>\n </el-table-column>\n\n <el-table-column label=\"操作\" width=\"60\" :fixed=\"config.fixed === false ? undefined : 'left'\">\n <template v-slot=\"scope\">\n <el-button\n v-show=\"showDelete(scope.$index + 1 + pagecontext * pagesize - 1)\"\n type=\"danger\"\n text\n :icon=\"Delete\"\n @click=\"removeHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </template>\n </el-table-column>\n\n <el-table-column v-if=\"sort && model[modelName] && model[modelName].length > 1\" label=\"排序\" width=\"60\">\n <template v-slot=\"scope\">\n <el-tooltip\n content=\"点击上移,双击置顶\"\n placement=\"top\"\n v-if=\"scope.$index + 1 + pagecontext * pagesize - 1 !== 0\"\n >\n <el-button\n plain\n size=\"small\"\n type=\"primary\"\n :icon=\"ArrowUp\"\n text\n @click=\"upHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n @dblclick=\"topHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </el-tooltip>\n <el-tooltip\n content=\"点击下移,双击置底\"\n placement=\"top\"\n v-if=\"scope.$index + 1 + pagecontext * pagesize - 1 !== model[modelName].length - 1\"\n >\n <el-button\n plain\n size=\"small\"\n type=\"primary\"\n :icon=\"ArrowDown\"\n text\n @click=\"downHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n @dblclick=\"bottomHandler(scope.$index + 1 + pagecontext * pagesize - 1)\"\n ></el-button>\n </el-tooltip>\n </template>\n </el-table-column>\n\n <el-table-column\n v-if=\"selection\"\n align=\"center\"\n header-align=\"center\"\n type=\"selection\"\n width=\"45\"\n ></el-table-column>\n\n <el-table-column width=\"60\" label=\"序号\">\n <template v-slot=\"scope\">{{ scope.$index + 1 + pagecontext * pagesize }}</template>\n </el-table-column>\n\n <template v-for=\"(column, index) in config.items\">\n <el-table-column\n v-if=\"column.type !== 'hidden' && display(column.display)\"\n :prop=\"column.name\"\n :width=\"column.width\"\n :label=\"column.label\"\n :sortable=\"column.sortable\"\n :sort-orders=\"['ascending', 'descending']\"\n :key=\"column[mForm?.keyProp || '__key'] ?? index\"\n :class-name=\"config.dropSort === true ? 'el-table__column--dropable' : ''\"\n >\n <template #default=\"scope\">\n <m-form-container\n v-if=\"scope.$index > -1\"\n labelWidth=\"0\"\n :prop=\"getProp(scope.$index)\"\n :rules=\"column.rules\"\n :config=\"makeConfig(column)\"\n :model=\"scope.row\"\n :size=\"size\"\n @change=\"$emit('change', model[modelName])\"\n ></m-form-container>\n </template>\n </el-table-column>\n </template>\n </el-table>\n </el-tooltip>\n <slot></slot>\n <el-button v-if=\"addable\" size=\"small\" type=\"primary\" plain @click=\"newHandler()\">添加</el-button> \n <el-button :icon=\"Grid\" size=\"small\" type=\"primary\" @click=\"toggleMode\" v-if=\"enableToggleMode && !isFullscreen\"\n >展开配置</el-button\n >\n <el-button\n :icon=\"FullScreen\"\n size=\"small\"\n type=\"primary\"\n @click=\"toggleFullscreen\"\n v-if=\"config.enableFullscreen !== false\"\n >\n {{ isFullscreen ? '退出全屏' : '全屏编辑' }}\n </el-button>\n <el-upload\n v-if=\"importable\"\n ref=\"excelBtn\"\n action=\"/noop\"\n :on-change=\"excelHandler\"\n :auto-upload=\"false\"\n style=\"display: inline-block\"\n >\n <el-button size=\"small\" type=\"success\" plain>导入EXCEL</el-button> </el-upload\n > \n <el-button v-if=\"importable\" size=\"small\" type=\"warning\" plain @click=\"clearHandler()\">清空</el-button>\n </div>\n\n <div class=\"bottom\" style=\"text-align: right\">\n <el-pagination\n layout=\"total, sizes, prev, pager, next, jumper\"\n :hide-on-single-page=\"model[modelName].length < pagesize\"\n :current-page=\"pagecontext + 1\"\n :page-sizes=\"[pagesize, 60, 120, 300]\"\n :page-size=\"pagesize\"\n :total=\"model[modelName].length\"\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n >\n </el-pagination>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-param-reassign */\nimport { computed, defineComponent, inject, onMounted, PropType, ref, toRefs } from 'vue';\nimport { ArrowDown, ArrowUp, Delete, FullScreen, Grid } from '@element-plus/icons';\nimport { ElMessage, ElTable, UploadFile } from 'element-plus';\nimport { cloneDeep } from 'lodash-es';\nimport Sortable, { SortableEvent } from 'sortablejs';\n\nimport { asyncLoadJs, sleep } from '@tmagic/utils';\n\nimport { ColumnConfig, FormState, SortProp, TableConfig } from '../schema';\nimport { display, initValue } from '../utils/form';\n\nlet loadedAMapJS = false; // 是否加载完js\nlet firstLoadingAMapJS = true; // 否是第一次请求\n\nexport default defineComponent({\n name: 'm-form-table',\n\n props: {\n name: {\n type: String,\n required: true,\n },\n\n model: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<TableConfig>,\n required: true,\n default: () => ({}),\n },\n\n prop: {\n type: String,\n },\n\n labelWidth: {\n type: String,\n },\n\n sort: {\n type: Boolean,\n default: false,\n },\n\n sortKey: {\n type: String,\n default: '',\n },\n\n text: {\n type: String,\n },\n\n size: String,\n\n enableToggleMode: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: ['change', 'select'],\n\n setup(props, { emit }) {\n let timer: NodeJS.Timeout | null = null;\n const mForm = inject<FormState | undefined>('mForm');\n\n const elTable = ref<InstanceType<typeof ElTable>>();\n const excelBtn = ref<any>();\n const mTable = ref<HTMLDivElement>();\n\n const pagesize = ref(10);\n const pagecontext = ref(0);\n const updateKey = ref(1);\n const isFullscreen = ref(false);\n\n const modelName = computed(() => props.name || props.config.name || '');\n\n const sortChange = ({ prop, order }: SortProp) => {\n if (order === 'ascending') {\n props.model[modelName.value] = props.model[modelName.value].sort((a: any, b: any) => a[prop] - b[prop]);\n } else if (order === 'descending') {\n props.model[modelName.value] = props.model[modelName.value].sort((a: any, b: any) => b[prop] - a[prop]);\n }\n };\n\n const foreUpdate = () => {\n updateKey.value += 1;\n setTimeout(() => rowDrop());\n };\n\n const swapArray = (index1: number, index2: number) => {\n [props.model[modelName.value][index1]] = props.model[modelName.value].splice(\n index2,\n 1,\n props.model[modelName.value][index1],\n );\n if (props.sortKey) {\n for (let i = props.model[modelName.value].length - 1, v = 0; i >= 0; i--, v++) {\n props.model[modelName.value][v][props.sortKey] = i;\n }\n }\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n };\n\n const rowDrop = () => {\n const tableEl = elTable.value?.$el;\n if (tableEl?.querySelectorAll('.el-table__body > tbody')) {\n // eslint-disable-next-line prefer-destructuring\n const el = tableEl.querySelectorAll('.el-table__body > tbody')[0];\n const sortable = Sortable.create(el, {\n onEnd: ({ newIndex, oldIndex }: SortableEvent) => {\n if (typeof newIndex === 'undefined') return;\n if (typeof oldIndex === 'undefined') return;\n swapArray(newIndex, oldIndex);\n emit('change', props.model[modelName.value]);\n foreUpdate();\n sortable.destroy();\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n sleep(1000).then(() => {\n const eltrs = tableEl.querySelectorAll('.el-table__body > tbody > tr');\n if (eltrs?.[newIndex]) {\n eltrs[newIndex].style.backgroundColor = 'rgba(243, 89, 59, 0.2)';\n sleep(1000).then(() => {\n eltrs[newIndex].style.backgroundColor = '';\n });\n }\n });\n },\n });\n }\n };\n\n const newHandler = async (row?: any) => {\n if (props.config.max && props.model[modelName.value].length >= props.config.max) {\n ElMessage.error(`最多新增配置不能超过${props.config.max}条`);\n return;\n }\n\n const columns = props.config.items;\n const enumValues = props.config.enum || [];\n let enumV = [];\n const { length } = props.model[modelName.value];\n const key = props.config.key || 'id';\n let inputs: any = {};\n\n if (enumValues.length) {\n if (length >= enumValues.length) {\n return;\n }\n enumV = enumValues.filter((item) => {\n let i = 0;\n for (; i < length; i++) {\n if (item[key] === props.model[modelName.value][i][key]) {\n break;\n }\n }\n return i === length;\n });\n\n if (enumV.length > 0) {\n // eslint-disable-next-line prefer-destructuring\n inputs = enumV[0];\n }\n } else if (Array.isArray(row)) {\n columns.forEach((column, index) => {\n column.name && (inputs[column.name] = row[index]);\n });\n } else {\n if (typeof props.config.defaultAdd === 'function') {\n inputs = await props.config.defaultAdd(mForm, {\n model: props.model[modelName.value],\n formValue: mForm?.values,\n });\n } else if (props.config.defaultAdd) {\n inputs = props.config.defaultAdd;\n }\n\n inputs = await initValue(mForm, {\n config: columns,\n initValues: inputs,\n });\n }\n\n if (props.sortKey && length) {\n inputs[props.sortKey] = props.model[modelName.value][length - 1][props.sortKey] - 1;\n }\n\n props.model[modelName.value].push(inputs);\n emit('change', props.model[modelName.value]);\n };\n\n if (!loadedAMapJS && firstLoadingAMapJS && !(globalThis as any).XLSX) {\n firstLoadingAMapJS = false; // 马上置为false 只让第一个created组件去请求js\n asyncLoadJs('https://cdn.bootcdn.net/ajax/libs/xlsx/0.17.0/xlsx.full.min.js')\n .then(() => {\n loadedAMapJS = true;\n })\n .catch(() => {\n firstLoadingAMapJS = true; // 出错置为true 下次进来还是能重新请求js\n });\n }\n\n onMounted(() => {\n if (props.config.defautSort) {\n sortChange(props.config.defautSort);\n }\n\n if (props.sort && props.sortKey) {\n props.model[modelName.value].sort((a: any, b: any) => b[props.sortKey] - a[props.sortKey]);\n }\n\n if (props.config.dropSort) {\n rowDrop();\n }\n });\n\n return {\n mForm,\n pagesize,\n pagecontext,\n foreUpdate,\n isFullscreen,\n elTable,\n mTable,\n excelBtn,\n modelName,\n updateKey,\n ArrowDown,\n ArrowUp,\n Delete,\n FullScreen,\n Grid,\n\n data: computed(() =>\n props.model[modelName.value].filter(\n (item: any, index: number) =>\n index >= pagecontext.value * pagesize.value && index + 1 <= (pagecontext.value + 1) * pagesize.value,\n ),\n ),\n addable: computed(() => {\n if (!props.model[modelName.value].length) {\n return true;\n }\n if (typeof props.config.addable === 'function') {\n return props.config.addable(mForm, {\n model: props.model[modelName.value],\n formValue: mForm?.values,\n prop: props.prop,\n });\n }\n return typeof props.config.addable === 'undefined' ? true : props.config.addable;\n }),\n selection: computed(() => {\n if (typeof props.config.selection === 'function') {\n return props.config.selection(mForm, { model: props.model[modelName.value] });\n }\n return props.config.selection;\n }),\n importable: computed(() => {\n if (typeof props.config.importable === 'function') {\n return props.config.importable(mForm, {\n formValue: mForm?.values,\n model: props.model[modelName.value],\n });\n }\n return typeof props.config.importable === 'undefined' ? false : props.config.importable;\n }),\n\n sortChange,\n\n display(fuc: any) {\n return display(mForm, fuc, props);\n },\n\n itemExtra(fuc: any, index: number) {\n if (typeof fuc === 'function') {\n return fuc(mForm, {\n values: mForm?.initValues,\n model: props.model,\n formValue: mForm ? mForm.values : props.model,\n prop: props.prop,\n index,\n });\n }\n\n return fuc;\n },\n\n newHandler,\n\n removeHandler(index: number) {\n props.model[modelName.value].splice(index, 1);\n emit('change', props.model[modelName.value]);\n },\n\n selectHandle(selection: any, row: any) {\n if (typeof props.config.selection === 'string' && props.config.selection === 'single') {\n elTable.value?.clearSelection();\n elTable.value?.toggleRowSelection(row, true);\n }\n emit('select', selection, row);\n if (typeof props.config.onSelect === 'function') {\n props.config.onSelect(mForm, { selection, row, config: props.config });\n }\n },\n\n toggleRowSelection(row: any, selected: boolean) {\n elTable.value?.toggleRowSelection.call(elTable.value, row, selected);\n },\n\n makeConfig(config: ColumnConfig) {\n const newConfig = cloneDeep(config);\n delete newConfig.display;\n return newConfig;\n },\n\n upHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n swapArray(index, index - 1);\n }, 300);\n },\n\n topHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n // 首先判断当前元素需要上移几个位置,置底移动到数组的第一位\n const moveNum = index;\n\n // 循环出需要一个一个上移的次数\n for (let i = 0; i < moveNum; i++) {\n swapArray(index, index - 1);\n index -= 1;\n }\n },\n\n downHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n swapArray(index, index + 1);\n }, 300);\n },\n\n bottomHandler(index: number) {\n if (timer) {\n clearTimeout(timer);\n }\n\n // 首先判断当前元素需要上移几个位置,置底移动到数组的第一位\n const moveNum = props.model[modelName.value].length - 1 - index;\n\n // 循环出需要一个一个上移的次数\n for (let i = 0; i < moveNum; i++) {\n swapArray(index, index + 1);\n index += 1;\n }\n },\n\n // 希望支持单行可控制是否显示删除按钮,不会影响现有逻辑\n showDelete(index: number) {\n const deleteFunc = props.config.delete;\n if (deleteFunc && typeof deleteFunc === 'function') {\n return deleteFunc(props.model[modelName.value], index, mForm?.values);\n }\n return true;\n },\n\n clearHandler() {\n const len = props.model[modelName.value].length;\n props.model[modelName.value].splice(0, len);\n mForm?.$emit('field-change', props.prop, props.model[modelName.value]);\n },\n\n excelHandler(file: UploadFile) {\n if (!file || !file.raw) {\n return false;\n }\n const reader = new FileReader();\n reader.onload = () => {\n const data = reader.result;\n const pdata = (globalThis as any).XLSX.read(data, { type: 'array' });\n pdata.SheetNames.forEach((sheetName: string) => {\n const arr = (globalThis as any).XLSX.utils.sheet_to_json(pdata.Sheets[sheetName], { header: 1 });\n if (arr?.[0]) {\n arr.forEach((row: any) => {\n newHandler(row);\n });\n }\n setTimeout(() => {\n excelBtn.value?.clearFiles();\n }, 300);\n });\n };\n reader.readAsArrayBuffer(file.raw);\n\n return false;\n },\n\n handleSizeChange(val: number) {\n pagesize.value = val;\n },\n\n handleCurrentChange(val: number) {\n pagecontext.value = val - 1;\n },\n\n toggleMode() {\n const calcLabelWidth = (label: string) => {\n if (!label) return '0px';\n const zhLength = label.match(/[^\\x00-\\xff]/g)?.length || 0;\n const chLength = label.length - zhLength;\n return `${Math.max(chLength * 8 + zhLength * 20, 80)}px`;\n };\n\n // 切换为groupList的形式\n props.config.type = 'groupList';\n props.config.enableToggleMode = true;\n props.config.tableItems = props.config.items;\n props.config.items =\n props.config.groupItems ||\n props.config.items.map((item: any) => {\n const text = item.text || item.label;\n const labelWidth = calcLabelWidth(text);\n return {\n ...item,\n text,\n labelWidth,\n span: item.span || 12,\n };\n });\n },\n\n toggleFullscreen() {\n if (isFullscreen.value) {\n mTable.value?.classList.remove('fixed');\n isFullscreen.value = false;\n } else {\n mTable.value?.classList.add('fixed');\n isFullscreen.value = true;\n }\n },\n\n getProp(index: number) {\n const { prop } = toRefs(props);\n return `${prop.value}${prop.value ? '.' : ''}${index + 1 + pagecontext.value * pagesize.value - 1}`;\n },\n };\n },\n});\n</script>\n","<template>\n <el-tabs\n v-model=\"activeTabName\"\n :class=\"config.dynamic ? 'magic-form-dynamic-tab' : 'magic-form-tab'\"\n :type=\"config.tabType\"\n :editable=\"config.editable || false\"\n :tab-position=\"config.tabPosition || 'top'\"\n @tab-click=\"tabClickHandler\"\n @tab-add=\"onTabAdd\"\n @tab-remove=\"onTabRemove\"\n >\n <template v-for=\"(tab, tabIndex) in tabs\">\n <el-tab-pane\n v-if=\"display(tab.display) && tabItems(tab).length\"\n :key=\"tab[mForm?.keyProp || '__key'] ?? tabIndex\"\n :name=\"filter(tab.status) || tabIndex.toString()\"\n :label=\"filter(tab.title)\"\n :lazy=\"tab.lazy || false\"\n >\n <m-form-container\n v-for=\"item in tabItems(tab)\"\n :key=\"item[mForm?.keyProp || '__key']\"\n :config=\"item\"\n :model=\"\n config.dynamic\n ? (name ? model[name] : model)[tabIndex]\n : tab.name\n ? (name ? model[name] : model)[tab.name]\n : name\n ? model[name]\n : model\n \"\n :prop=\"config.dynamic ? `${prop}${prop ? '.' : ''}${String(tabIndex)}` : prop\"\n :size=\"size\"\n :label-width=\"tab.labelWidth || labelWidth\"\n :expand-more=\"expandMore\"\n @change=\"changeHandler\"\n ></m-form-container>\n </el-tab-pane>\n </template>\n </el-tabs>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref, watchEffect } from 'vue';\nimport { cloneDeep } from 'lodash-es';\n\nimport { FormState, FormValue, TabConfig, TabPaneConfig } from '../schema';\nimport { display, filterFunction } from '../utils/form';\n\nconst getActive = (mForm: FormState | undefined, props: any, activeTabName: string) => {\n const { config, model, prop } = props;\n const { active } = config;\n\n if (typeof active === 'function') return active(mForm, { model, formValue: mForm?.values, prop });\n if (+activeTabName >= props.config.items.length) return '0';\n if (typeof active !== 'undefined') return active;\n\n return '0';\n};\n\nconst tabClickHandler = (mForm: FormState | undefined, tab: any, props: any) => {\n const { config, model, prop } = props;\n\n // 兼容vue2的element-ui\n tab.name = tab.paneName;\n\n if (typeof config.onTabClick === 'function') {\n config.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });\n }\n\n const tabConfig = config.items.find((item: TabPaneConfig) => tab.name === item.status);\n if (tabConfig && typeof tabConfig.onTabClick === 'function') {\n tabConfig.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });\n }\n};\n\nconst Tab = defineComponent({\n name: 'm-form-tab',\n\n props: {\n labelWidth: String,\n expandMore: Boolean,\n\n model: {\n type: Object,\n default: () => ({}),\n },\n\n config: {\n type: Object as PropType<TabConfig>,\n default: () => ({}),\n },\n\n prop: String,\n\n name: String,\n\n size: String,\n },\n\n emits: {\n change(values: FormValue) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n const activeTabName = ref(getActive(mForm, props, ''));\n\n const tabs = computed(() => {\n if (props.config.dynamic) {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n return props.model[props.config.name] || [];\n }\n return props.config.items;\n });\n\n const filter = (config: any) => filterFunction(mForm, config, props);\n\n watchEffect(() => {\n if (typeof props.config.activeChange === 'function') {\n props.config.activeChange(mForm, activeTabName.value, {\n model: props.model,\n prop: props.prop,\n });\n }\n });\n\n return {\n mForm,\n\n activeTabName,\n\n tabs,\n\n filter,\n\n tabItems: (tab: TabPaneConfig) => (props.config.dynamic ? props.config.items : tab.items),\n\n tabClickHandler: (tab: any) => tabClickHandler(mForm, tab, props),\n\n onTabAdd: () => {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n\n if (typeof props.config.onTabAdd === 'function') {\n props.config.onTabAdd(mForm, {\n model: props.model,\n prop: props.prop,\n config: props.config,\n });\n } else if (tabs.value.length > 0) {\n const newObj = cloneDeep(tabs.value[0]);\n newObj.title = `标签${tabs.value.length + 1}`;\n props.model[props.config.name].push(newObj);\n }\n emit('change', props.model);\n mForm?.$emit('field-change', props.prop, props.model[props.config.name]);\n },\n\n onTabRemove: (tabName: string) => {\n if (!props.config.name) throw new Error('dynamic tab 必须配置name');\n\n if (typeof props.config.onTabRemove === 'function') {\n props.config.onTabRemove(mForm, tabName, {\n model: props.model,\n prop: props.prop,\n config: props.config,\n });\n } else {\n props.model[props.config.name].splice(+tabName, 1);\n\n // 防止删除后没有选中的问题\n if (tabName < activeTabName.value || activeTabName.value >= props.model[props.config.name].length) {\n activeTabName.value = (+activeTabName.value - 1).toString();\n tabClickHandler(mForm, { name: activeTabName.value }, props);\n }\n }\n emit('change', props.model);\n mForm?.$emit('field-change', props.prop, props.model[props.config.name]);\n },\n\n display: (displayConfig: any) => display(mForm, displayConfig, props),\n\n changeHandler: () => {\n emit('change', props.model);\n if (typeof props.config.onChange === 'function') {\n props.config.onChange(mForm, { model: props.model, prop: props.prop, config: props.config });\n }\n },\n };\n },\n});\n\nexport default Tab;\n</script>\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet $MAGIC_FORM = {} as any;\n\nconst setConfig = (option: any): void => {\n $MAGIC_FORM = option;\n};\n\nconst getConfig = (key: string): unknown => $MAGIC_FORM[key];\n\nexport { getConfig, setConfig };\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PropType } from 'vue';\n\nexport default {\n model: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n name: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n size: String as PropType<'mini' | 'small' | 'medium'>,\n prop: String,\n initValues: Object,\n values: Object,\n};\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentInternalInstance, getCurrentInstance, inject, watch } from 'vue';\n\nimport { FormState } from '../schema';\n\nexport const useAddField = (prop?: string) => {\n if (!prop) return;\n const mForm = inject<FormState | null>('mForm');\n const instance = getCurrentInstance() as ComponentInternalInstance;\n watch(\n () => instance?.proxy,\n (vm) => {\n if (vm) {\n mForm?.setField(prop, vm);\n } else {\n mForm?.deleteField(prop);\n }\n },\n {\n immediate: true,\n },\n );\n};\n","<template>\n <div class=\"m-cascader\" style=\"width: 100%\">\n <el-cascader\n v-model=\"model[name]\"\n ref=\"cascader\"\n style=\"width: 100%\"\n clearable\n filterable\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :options=\"options\"\n :props=\"{ multiple: config.multiple }\"\n @change=\"changeHandler\"\n ></el-cascader>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n ComponentInternalInstance,\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n PropType,\n Ref,\n ref,\n watchEffect,\n} from 'vue';\nimport { ElCascader, ElDialog } from 'element-plus';\n\nimport { CascaderConfig, FormState } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-cascader',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CascaderConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | null>('mForm');\n const vm = getCurrentInstance() as ComponentInternalInstance;\n\n useAddField(props.prop);\n\n const requestFunc = getConfig('request') as Function;\n\n const cascader: Ref<null | typeof ElCascader> = ref(null);\n const dialog: Ref<null | typeof ElDialog> = ref(null);\n\n const options = Array.isArray(props.config.options) ? ref(props.config.options) : ref([]);\n const remoteData: Ref<any> = ref(null);\n\n const setRemoteOptions = async function () {\n const { config } = props;\n const { option } = config;\n if (!option) return;\n let { body } = option;\n\n const postOptions: Record<string, any> = {\n url: option.url,\n cache: option.cache,\n timeout: option.timeout,\n data: {},\n };\n\n if (body && mForm) {\n if (typeof body === 'function' && props.model && mForm) {\n body = body(mForm, {\n model: props.model,\n formValue: mForm.values,\n formValues: mForm.values,\n config: props.config,\n });\n }\n postOptions.data = body;\n }\n\n const res = await requestFunc(postOptions);\n\n remoteData.value = res[option.root];\n if (remoteData.value && typeof option?.item === 'function') {\n options.value = option.item(res[option.root]);\n }\n };\n\n // 初始化\n if (typeof props.config.options === 'function' && props.model && mForm) {\n watchEffect(\n () =>\n (options.value = (props.config.options as Function)(vm, { model: props.model, formValues: mForm.values })),\n );\n } else if (!props.config.options || !props.config.options.length || props.config.remote) {\n Promise.resolve(setRemoteOptions());\n }\n\n const action = computed(() => {\n if (props.config.add?.action.method === 'post') {\n return (options: any) =>\n requestFunc({\n ...props.config?.add?.action.body,\n ...options,\n });\n }\n return null;\n });\n\n return {\n options,\n remoteData,\n addButtonStyle: {\n top: 0,\n left: 0,\n width: 'auto',\n },\n dialogVisible: false,\n cascader,\n dialog,\n action,\n setRemoteOptions,\n changeHandler: (value: any) => {\n if (!cascader.value) return;\n cascader.value.query = '';\n cascader.value.previousQuery = null;\n emit('change', value);\n },\n addHandler: () => {\n if (!dialog.value) return;\n dialog.value.dialogVisible = true;\n },\n editAfterAction: () => {\n setRemoteOptions();\n },\n };\n },\n});\n</script>\n","<template>\n <el-checkbox\n v-model=\"model[name]\"\n :size=\"size\"\n :trueLabel=\"activeValue\"\n :falseLabel=\"inactiveValue\"\n :disabled=\"disabled\"\n :label=\"config.text\"\n @change=\"changeHandler\"\n ></el-checkbox>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { CheckboxConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-checkbox',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CheckboxConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n activeValue: computed(() => {\n if (typeof props.config.activeValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 1;\n }\n } else {\n return props.config.activeValue;\n }\n\n return undefined;\n }),\n\n inactiveValue: computed(() => {\n if (typeof props.config.inactiveValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 0;\n }\n } else {\n return props.config.inactiveValue;\n }\n\n return undefined;\n }),\n\n changeHandler(value: number | boolean) {\n emit('change', value);\n },\n };\n },\n});\n</script>\n","<template>\n <el-checkbox-group v-model=\"model[name]\" :size=\"size\" :disabled=\"disabled\" @change=\"changeHandler\">\n <el-checkbox v-for=\"option in config.options\" :label=\"option.value\" :key=\"option.value\"\n >{{ option.text }}\n </el-checkbox>\n </el-checkbox-group>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { CheckboxGroupConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-checkbox-group',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<CheckboxGroupConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n // 初始化选项\n if (props.model && !props.model[props.name]) {\n // eslint-disable-next-line no-param-reassign\n props.model[props.name] = [];\n }\n return {\n changeHandler: (v: Array<string | number | boolean>) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <div v-if=\"model\">\n <el-color-picker\n v-model=\"model[name]\"\n :size=\"size\"\n :disabled=\"disabled\"\n :showAlpha=\"true\"\n @change=\"changeHandler\"\n ></el-color-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { ColorPickConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-color-picker',\n});\n</script>\n\n<script lang=\"ts\" setup>\nconst emit = defineEmits(['change']);\n\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<ColorPickConfig>,\n required: true,\n },\n});\n\nuseAddField(props.prop);\n\nconst changeHandler = (value: string) => emit('change', value);\n</script>\n","<template>\n <div v-if=\"model\">\n <el-date-picker\n v-model=\"model[modelName]\"\n type=\"date\"\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :format=\"config.format\"\n :value-format=\"config.format || 'YYYY-MM-DD HH:mm:ss'\"\n @change=\"changeHandler\"\n ></el-date-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DateConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-date',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DateConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const modelName = computed(() => props.prop || props.config.name || '');\n props.model[modelName.value] = datetimeFormatter(props.model[modelName.value], '');\n return {\n modelName,\n changeHandler(v: string) {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-date-picker\n v-model=\"value\"\n type=\"datetimerange\"\n range-separator=\"-\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n :size=\"size\"\n :unlink-panels=\"true\"\n :disabled=\"disabled\"\n :default-time=\"config.defaultTime\"\n @change=\"changeHandler\"\n ></el-date-picker>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, ref } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DaterangeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-daterange',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DaterangeConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n // eslint-disable-next-line vue/no-setup-props-destructure\n const { names } = props.config;\n const value = ref<(string | number)[]>([]);\n\n if (props.model !== undefined) {\n if (names?.length) {\n value.value = names.map((item) => datetimeFormatter(props.model?.[item], ''));\n } else if (props.name && props.model[props.name]) {\n value.value = props.model[props.name].map((item: string) => datetimeFormatter(item, ''));\n }\n }\n\n const setValue = (v: Date[] | Date) => {\n if (names?.length && v instanceof Array) {\n names.forEach((item, index) => {\n if (props.model) {\n props.model[item] = datetimeFormatter(v[index].toString(), '');\n }\n });\n } else if (props.model && props.name && v instanceof Date) {\n props.model[props.name] = datetimeFormatter(v.toString(), '');\n } else if (names?.length) {\n names.forEach((item) => {\n if (props.model) {\n props.model[item] = undefined;\n }\n });\n } else if (props.name) {\n props.model[props.name] = undefined;\n }\n };\n\n return {\n value,\n changeHandler(v: Date[]) {\n setValue(v);\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-date-picker\n v-model=\"model[name]\"\n popper-class=\"magic-datetime-picker-popper\"\n type=\"datetime\"\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n :format=\"config.format || 'YYYY-MM-DD HH:mm:ss'\"\n :value-format=\"config.valueFormat || 'YYYY-MM-DD HH:mm:ss'\"\n :default-time=\"config.defaultTime\"\n @change=\"changeHandler\"\n ></el-date-picker>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { datetimeFormatter } from '@tmagic/utils';\n\nimport { DateTimeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-datetime',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DateTimeConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const value = props.model?.[props.name].toString();\n if (props.model) {\n if (value === 'Invalid Date') {\n props.model[props.name] = '';\n } else {\n props.model[props.name] = datetimeFormatter(props.model[props.name], '', props.config.valueFormat);\n }\n }\n\n return {\n value,\n changeHandler: (v: Date) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <span v-if=\"model\">{{ model[n] }}</span>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { DisplayConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-display',\n});\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<DisplayConfig>,\n required: true,\n },\n});\n\nconst n = computed(() => props.name || props.config.name || '');\n\nif (props.config.initValue && n.value && props.model) {\n // eslint-disable-next-line no-param-reassign,vue/no-setup-props-destructure\n props.model[n.value] = props.config.initValue;\n}\n\nuseAddField(props.prop);\n</script>\n","<template>\n <div class=\"m-fields-dynamic-field\">\n <el-form size=\"small\">\n <el-form-item v-for=\"key in Object.keys(fieldMap.value)\" :key=\"key\" :label=\"fieldLabelMap.value[key]\">\n <el-input\n v-model=\"fieldMap.value[key]\"\n :placeholder=\"fieldLabelMap.value[key]\"\n @change=\"inputChangeHandler(key)\"\n ></el-input>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script lang=\"ts\">\n/**\n * 动态表单,目前只支持input类型字段\n * inputType: 'dynamic-field',\n * text: '动态表单',\n * dynamicKey: 'keyname', 如果model[dynamicKey]变化,表单字段变化\n * returnFields(config,model,request): 函数,返回字段列表[{name:'',label:'',defaultValue:''}]\n *\n * 特别注意!!!field的上一级必须extensible: true,才能保存未声明的字段\n */\n\nimport { defineComponent, onBeforeUnmount, PropType, reactive, watch } from 'vue';\n\nimport { DynamicFieldConfig } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-dynamic-field',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<DynamicFieldConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const request = getConfig('request') as Function;\n const fieldMap = reactive<{ [key: string]: any }>({\n value: {},\n });\n const fieldLabelMap = reactive<{ [key: string]: any }>({\n value: {},\n });\n\n const changeFieldMap = async () => {\n if (typeof props.config.returnFields !== 'function' || !props.model) return;\n const fields = await props.config.returnFields(props.config, props.model, request);\n fieldMap.value = {};\n fieldLabelMap.value = {};\n fields.forEach((v) => {\n if (typeof v !== 'object' || v.name === undefined) return;\n let oldVal = props.model?.[v.name] || '';\n if (!oldVal && v.defaultValue !== undefined) {\n oldVal = v.defaultValue;\n emit('change', oldVal, v.name);\n }\n fieldMap.value[v.name] = oldVal;\n fieldLabelMap.value[v.name] = v.label || '';\n });\n };\n\n const unwatch = watch(\n () => props.model?.[props.config.dynamicKey],\n (val) => {\n if (val !== '') {\n changeFieldMap();\n }\n },\n {\n immediate: true,\n },\n );\n\n onBeforeUnmount(() => {\n if (typeof unwatch === 'function') {\n unwatch();\n }\n });\n\n return {\n request,\n fieldMap,\n fieldLabelMap,\n unwatch,\n\n changeFieldMap,\n inputChangeHandler: (key: string) => {\n emit('change', fieldMap.value[key], key);\n },\n };\n },\n\n methods: {\n init() {},\n },\n});\n</script>\n","<template>\n <input v-if=\"model\" v-model=\"model[n]\" type=\"hidden\" />\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { HiddenConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-hidden',\n});\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps({\n ...fieldProps,\n config: {\n type: Object as PropType<HiddenConfig>,\n required: true,\n },\n});\n\nconst n = computed(() => props.name || props.config.name || '');\n\nuseAddField(props.prop);\n</script>\n","<template>\n <a v-if=\"config.href && !disabled\" target=\"_blank\" :href=\"href\" :style=\"config.css || {}\">{{ displayText }}</a>\n <span v-else-if=\"config.href && disabled\" :style=\"config.disabledCss || {}\">{{ displayText }}</span>\n <div v-else class=\"m-fields-link\">\n <el-button text type=\"primary\" @click=\"editHandler\">点击编辑</el-button>\n <m-form-dialog\n ref=\"editor\"\n :title=\"config.formTitle || '编辑扩展配置'\"\n :width=\"config.formWidth\"\n :values=\"formValue\"\n :config=\"formConfig\"\n :parentValues=\"values\"\n :fullscreen=\"config.fullscreen\"\n @submit=\"action\"\n ></m-form-dialog>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType, ref } from 'vue';\n\nimport FormDialog from '../FormDialog.vue';\nimport { FormState, LinkConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-link',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<LinkConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const formValue = ref({});\n const editor = ref<InstanceType<typeof FormDialog>>();\n const mForm = inject<FormState | undefined>('mForm');\n\n const href = computed(() => {\n if (typeof props.config.href === 'function' && props.model) {\n return props.config.href(props.model);\n }\n return props.config.href || props.model?.[props.name];\n });\n\n const init = () => {\n formValue.value = props.model?.[props.name] || {};\n };\n\n return {\n // ref\n formValue,\n editor,\n\n // computed methods\n href,\n\n formConfig: computed(() => {\n if (typeof props.config.form === 'function') {\n return props.config.form(mForm, {\n model: props.model || {},\n values: props.values || {},\n });\n }\n return props.config.form;\n }),\n\n disable: computed(() => {\n if (typeof props.config.disabled !== 'undefined') {\n return props.config.disabled;\n }\n return !href.value;\n }),\n\n displayText: computed(() => {\n if (typeof props.config.displayText === 'function') {\n return props.config.displayText(mForm, { model: props.model || {} });\n }\n if (props.config.displayText) {\n return props.config.displayText;\n }\n return '跳转';\n }),\n\n // methods\n init,\n\n editHandler: () => {\n init();\n editor.value && (editor.value.dialogVisible = true);\n },\n\n action: (data: any) => {\n if (props.model) {\n props.model[props.name] = data;\n formValue.value = data;\n emit('change', props.model[props.name]);\n }\n editor.value && (editor.value.dialogVisible = false);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input-number\n v-if=\"model\"\n v-model=\"model[name]\"\n clearable\n controls-position=\"right\"\n :size=\"size\"\n :max=\"config.max\"\n :min=\"config.min\"\n :step=\"config.step\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n ></el-input-number>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, NumberConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-number',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<NumberConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const mForm = inject<FormState | null>('mForm');\n return {\n mForm,\n changeHandler: (value: number) => {\n emit('change', value);\n },\n inputHandler: (v: string) => {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-radio-group v-if=\"model\" v-model=\"model[name]\" :size=\"size\" :disabled=\"disabled\" @change=\"changeHandler\">\n <el-radio v-for=\"option in config.options\" :label=\"option.value\" :key=\"option.value\">{{ option.text }}</el-radio>\n </el-radio-group>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-radio-group',\n\n props: {\n ...fieldProps,\n config: {\n type: Object,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n return {\n changeHandler: (v: string | number | boolean) => emit('change', v),\n };\n },\n});\n</script>\n","<template>\n <el-select\n v-if=\"model\"\n v-model=\"model[name]\"\n v-loading=\"loading\"\n class=\"m-select\"\n ref=\"select\"\n clearable\n filterable\n :popper-class=\"`m-select-popper ${popperClass}`\"\n :size=\"size\"\n :remote=\"remote\"\n :placeholder=\"config.placeholder\"\n :multiple=\"config.multiple\"\n :value-key=\"config.valueKey || 'value'\"\n :allow-create=\"config.allowCreate\"\n :disabled=\"disabled\"\n :remote-method=\"config.remote && remoteMethod\"\n @change=\"changeHandler\"\n @visible-change=\"visibleHandler\"\n >\n <template v-if=\"config.group\"><select-option-groups :options=\"groupOptions\"></select-option-groups></template>\n <template v-else><select-options :options=\"options\"></select-options></template>\n <div v-loading=\"true\" v-if=\"moreLoadingVisible\"></div>\n </el-select>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onBeforeMount, onMounted, PropType, Ref, ref, watch } from 'vue';\nimport { ElSelect } from 'element-plus';\n\nimport { FormState, SelectConfig, SelectGroupOption, SelectOption } from '../schema';\nimport { getConfig } from '../utils/config';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nimport SelectOptionGroups from './SelectOptionGroups.vue';\nimport SelectOptions from './SelectOptions.vue';\n\nexport default defineComponent({\n name: 'm-fields-select',\n\n components: { SelectOptions, SelectOptionGroups },\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<SelectConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n if (!props.model) throw new Error('不能没有model');\n useAddField(props.prop);\n\n const select = ref<typeof ElSelect>();\n const mForm = inject<FormState | undefined>('mForm');\n const options = ref<SelectOption[] | SelectGroupOption[]>([]);\n const localOptions = ref<SelectOption[] | SelectGroupOption[]>([]);\n const loading = ref(false);\n const moreLoadingVisible = ref(false);\n const total = ref(0);\n const pgIndex = ref(0);\n const pgSize = ref(20);\n const query = ref('');\n const remoteData = ref<any[]>([]);\n const remote = ref(true);\n\n const equalValue = (value: any, v: any): boolean => {\n if (typeof v === 'object') {\n const key = props.config.valueKey || 'value';\n return v[key] === value[key];\n }\n\n return value === v;\n };\n\n const mapOptions = (data: any[]) => {\n const { option } = props.config;\n const { text } = option;\n const { value } = option;\n\n return data.map((item) => ({\n text: typeof text === 'function' ? text(item) : item[text || 'text'],\n value: typeof value === 'function' ? value(item) : item[value || 'value'],\n }));\n };\n\n const getOptions = async () => {\n if (!props.model) return [];\n\n if (localOptions.value.length) {\n return localOptions.value;\n }\n\n loading.value = true;\n\n let items: SelectOption[] | SelectGroupOption[] = [];\n\n const { config } = props;\n const { option } = config;\n let { body } = option;\n\n let postOptions: Record<string, any> = {\n method: option.method || 'POST',\n url: option.url,\n cache: option.cache,\n timeout: option.timeout,\n mode: option.mode,\n headers: option.headers || {},\n json: option.json || false,\n };\n\n if (body) {\n if (typeof body === 'function') {\n body = body(mForm, {\n model: props.model,\n formValue: mForm?.values,\n formValues: mForm?.values,\n config: props.config,\n }) as Record<string, any>;\n }\n\n body.query = query.value;\n body.pgSize = pgSize.value;\n body.pgIndex = pgIndex.value;\n postOptions.data = body;\n }\n\n const requestFuc = getConfig('request') as Function;\n\n if (typeof option.beforeRequest === 'function') {\n postOptions = option.beforeRequest(mForm, postOptions, {\n model: props.model,\n formValue: mForm?.values,\n });\n }\n\n if (option.method?.toLocaleLowerCase() === 'jsonp') {\n postOptions.jsonpCallback = option.jsonpCallback || 'callback';\n }\n\n let res = await requestFuc(postOptions);\n\n if (typeof option.afterRequest === 'function') {\n res = option.afterRequest(mForm, res, {\n model: props.model,\n formValue: mForm?.values,\n formValues: mForm?.values,\n config: props.config,\n });\n }\n\n const optionsData = res[option.root];\n\n if (res.total > 0) {\n total.value = res.total;\n }\n\n remoteData.value = remoteData.value.concat(optionsData);\n if (optionsData) {\n if (typeof option.item === 'function') {\n items = option.item(optionsData);\n } else if (optionsData.map) {\n items = mapOptions(optionsData);\n }\n }\n\n loading.value = false;\n\n // 多选过滤时会导致已选的选项显示不了,所以要把已选的选项保留不要过滤没了\n const selectedOptions: SelectOption[] | SelectGroupOption[] = [];\n if (props.config.multiple && props.model[props.name]) {\n options.value.forEach((o: any) => {\n const isInclude = props.model?.[props.name].includes(o.value);\n if (isInclude && !(items as any[]).find((op: any) => op.value === o.value)) {\n selectedOptions.push(o);\n }\n });\n }\n\n return pgIndex.value === 0 ? (selectedOptions as any[]).concat(items) : (options.value as any).concat(items);\n };\n\n const getInitLocalOption = async () => {\n if (!props.model) return [];\n\n const value = props.model[props.name];\n const { config } = props;\n localOptions.value = await getOptions();\n\n remote.value = false;\n\n if (config.group) {\n if (config.multiple && value.findIndex) {\n return (localOptions.value as SelectGroupOption[]).filter(\n (group) => group.options.findIndex((item) => value.find((v: any) => equalValue(item.value, v)) > -1) > -1,\n );\n }\n\n return (localOptions.value as SelectGroupOption[]).filter(\n (group) => group.options.findIndex((item) => equalValue(item.value, value)) > -1,\n );\n }\n\n if (config.multiple && value.findIndex) {\n return (localOptions.value as any[]).filter(\n (item) => value.findIndex((v: any) => equalValue(item.value, v)) > -1,\n );\n }\n return (localOptions.value as any[]).filter((item) => equalValue(item.value, value));\n };\n\n const getInitOption = async () => {\n if (!props.model) return [];\n\n const { config } = props;\n const { option } = config;\n\n let options: SelectOption[] | SelectGroupOption[] = [];\n\n let url = option.initUrl;\n if (!url) {\n return getInitLocalOption();\n }\n\n if (typeof url === 'function') {\n url = await url(mForm, { model: props.model, formValue: mForm?.values });\n }\n\n const postOptions: Record<string, any> = {\n method: option.method || 'POST',\n url,\n data: {\n id: props.model[props.name],\n },\n mode: option.mode,\n headers: option.headers || {},\n json: option.json || false,\n };\n if (option.method?.toLocaleLowerCase() === 'jsonp') {\n postOptions.jsonpCallback = option.jsonpCallback || 'callback';\n }\n\n const requestFuc = getConfig('request') as Function;\n const res = await requestFuc(postOptions);\n\n let initData = res[option.root];\n if (initData) {\n if (!Array.isArray(initData)) {\n initData = [initData];\n }\n\n if (typeof option.item === 'function') {\n options = option.item(initData);\n } else if (initData.map) {\n options = mapOptions(initData);\n }\n }\n\n return options;\n };\n\n if (typeof props.config.options === 'function') {\n watch(\n () => mForm?.values,\n () => {\n typeof props.config.options === 'function' &&\n Promise.resolve(\n props.config.options(mForm, {\n model: props.model,\n prop: props.prop,\n formValues: mForm?.values,\n formValue: mForm?.values,\n config: props.config,\n }),\n ).then((data) => {\n options.value = data;\n });\n },\n {\n deep: true,\n immediate: true,\n },\n );\n } else if (Array.isArray(props.config.options)) {\n watch(\n () => props.config.options,\n () => {\n options.value = props.config.options as SelectOption[] | SelectGroupOption[];\n },\n { immediate: true },\n );\n } else if (props.config.option) {\n onBeforeMount(() => {\n if (!props.model) return;\n const v = props.model[props.name];\n if (Array.isArray(v) ? v.length : v) {\n getInitOption().then((data) => {\n options.value = data;\n });\n }\n });\n }\n\n props.config.remote &&\n onMounted(() => {\n select.value?.scrollbar.wrap$.addEventListener('scroll', async (e: Event) => {\n const el = e.currentTarget as HTMLDivElement;\n if (moreLoadingVisible.value) {\n return;\n }\n if (el.scrollHeight - el.clientHeight - el.scrollTop > 1) {\n return;\n }\n if (total.value <= options.value.length) {\n return;\n }\n moreLoadingVisible.value = true;\n pgIndex.value += 1;\n options.value = await getOptions();\n moreLoadingVisible.value = false;\n });\n });\n\n return {\n select,\n loading,\n remote,\n options: options as Ref<SelectOption[]>,\n groupOptions: options as Ref<SelectGroupOption[]>,\n moreLoadingVisible,\n popperClass: mForm?.popperClass,\n\n getOptions,\n\n getRequestFuc() {\n return getConfig('request');\n },\n\n changeHandler(value: any) {\n emit('change', value);\n },\n\n async visibleHandler(visible: boolean) {\n if (!visible) return;\n\n if (!props.config.remote) return;\n if (query.value && select.value) {\n select.value.query = query.value;\n select.value.previousQuery = query.value;\n select.value.selectedLabel = query.value;\n } else if (options.value.length <= (props.config.multiple ? props.model?.[props.name].length : 1)) {\n options.value = await getOptions();\n }\n },\n\n async remoteMethod(q: string) {\n if (!localOptions.value.length) {\n query.value = q;\n pgIndex.value = 0;\n options.value = await getOptions();\n // 多选时如果过滤选项会导致已选好的标签异常,需要重新刷新一下el-select的状态\n if (props.config.multiple)\n setTimeout(() => {\n select.value?.setSelected();\n }, 0);\n }\n },\n };\n },\n});\n</script>\n","<template>\n <el-switch\n v-if=\"model\"\n v-model=\"model[n]\"\n :size=\"size\"\n :activeValue=\"activeValue\"\n :inactiveValue=\"inactiveValue\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n ></el-switch>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType } from 'vue';\n\nimport { SwitchConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-switch',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<SwitchConfig>,\n required: true,\n },\n },\n\n emits: ['change'],\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n n: computed(() => props.name || props.config.name || ''),\n activeValue: computed(() => {\n if (typeof props.config.activeValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 1;\n }\n } else {\n return props.config.activeValue;\n }\n\n return true;\n }),\n inactiveValue: computed(() => {\n if (typeof props.config.inactiveValue === 'undefined') {\n if (props.config.filter === 'number') {\n return 0;\n }\n } else {\n return props.config.inactiveValue;\n }\n\n return false;\n }),\n changeHandler: (v: boolean | number | string) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input\n v-model=\"model[modelName]\"\n clearable\n :size=\"size\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n @keyup=\"keyUpHandler($event)\"\n >\n <template #append v-if=\"config.append\">\n <span v-if=\"typeof config.append === 'string'\">{{ config.append }}</span>\n <el-button\n v-if=\"typeof config.append === 'object' && config.append.type === 'button'\"\n style=\"color: #409eff\"\n :size=\"size\"\n @click.prevent=\"buttonClickHandler\"\n >\n {{ config.append.text }}\n </el-button>\n </template>\n </el-input>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, TextConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-text',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TextConfig>,\n required: true,\n },\n },\n\n emits: ['change', 'input'],\n\n setup(props, { emit }) {\n const mForm = inject<FormState | undefined>('mForm');\n\n useAddField(props.prop);\n\n const modelName = computed(() => props.name || props.config.name || '');\n return {\n modelName,\n\n changeHandler(v: string | number) {\n emit('change', v);\n },\n\n inputHandler(v: string | number) {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n\n buttonClickHandler() {\n if (typeof props.config.append === 'string') return;\n\n if (props.config.append?.handler) {\n props.config.append.handler(mForm, {\n model: props.model,\n values: mForm?.values,\n });\n }\n },\n\n keyUpHandler($event: KeyboardEvent) {\n if (!props.model) return;\n if (!modelName.value) return;\n\n const arrowUp = $event.key === 'ArrowUp';\n const arrowDown = $event.key === 'ArrowDown';\n\n if (!arrowUp && !arrowDown) {\n return;\n }\n\n const value = props.model[modelName.value];\n let num;\n let unit;\n if (/^([0-9.]+)$/.test(value)) {\n num = +value;\n } else {\n value.replace(/^([0-9.]+)([a-z%]+)$/, ($0: string, $1: string, $2: string) => {\n num = +$1;\n unit = $2;\n });\n }\n\n if (num === undefined) {\n return;\n }\n\n const ctrl = navigator.platform.match('Mac') ? $event.metaKey : $event.ctrlKey;\n const shif = $event.shiftKey;\n const alt = $event.altKey;\n\n if (arrowUp) {\n if (ctrl) {\n num += 100;\n } else if (alt) {\n num = (num * 10000 + 1000) / 10000;\n } else if (shif) {\n num = num + 10;\n } else {\n num += 1;\n }\n } else if (arrowDown) {\n if (ctrl) {\n num -= 100;\n } else if (alt) {\n num = (num * 10000 - 1000) / 10000;\n } else if (shif) {\n num -= 10;\n } else {\n num -= 1;\n }\n }\n\n props.model[modelName.value] = `${num}${unit || ''}`;\n emit('change', props.model[modelName.value]);\n },\n };\n },\n});\n</script>\n","<template>\n <el-input\n v-model=\"model[name]\"\n type=\"textarea\"\n :size=\"size\"\n clearable\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n @input=\"inputHandler\"\n >\n </el-input>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, PropType } from 'vue';\n\nimport { FormState, TextareaConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\nexport default defineComponent({\n name: 'm-fields-textarea',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TextareaConfig>,\n required: true,\n },\n },\n\n emits: {\n change(values: string | number) {\n return values;\n },\n\n input(values: string | number) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n const mForm = inject<FormState | null>('mForm');\n\n return {\n mForm,\n changeHandler: (v: string) => {\n emit('change', v);\n },\n\n inputHandler: (v: string) => {\n emit('input', v);\n mForm?.$emit('field-input', props.prop, v);\n },\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-time-picker\n v-model=\"model[name]\"\n :size=\"size\"\n value-format=\"HH:mm:ss\"\n :placeholder=\"config.placeholder\"\n :disabled=\"disabled\"\n @change=\"changeHandler\"\n ></el-time-picker>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue';\n\nimport { TimeConfig } from '../schema';\nimport fieldProps from '../utils/fieldProps';\nimport { useAddField } from '../utils/useAddField';\n\nexport default defineComponent({\n name: 'm-fields-time',\n\n props: {\n ...fieldProps,\n config: {\n type: Object as PropType<TimeConfig>,\n required: true,\n },\n },\n\n emits: {\n change(values: Date) {\n return values;\n },\n },\n\n setup(props, { emit }) {\n useAddField(props.prop);\n\n return {\n changeHandler: (v: Date) => {\n emit('change', v);\n },\n };\n },\n});\n</script>\n","<template>\n <el-form\n class=\"m-form\"\n ref=\"elForm\"\n :model=\"values\"\n :label-width=\"labelWidth\"\n :disabled=\"disabled\"\n :style=\"`height: ${height}`\"\n :inline=\"inline\"\n :label-position=\"labelPosition\"\n >\n <template v-if=\"initialized && Array.isArray(config)\">\n <m-form-container\n v-for=\"(item, index) in config\"\n :key=\"item[keyProp] ?? index\"\n :config=\"item\"\n :model=\"values\"\n :label-width=\"item.labelWidth || labelWidth\"\n :step-active=\"stepActive\"\n :size=\"size\"\n @change=\"changeHandler\"\n ></m-form-container>\n </template>\n </el-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType, provide, reactive, ref, toRaw, watch } from 'vue';\nimport { ElForm } from 'element-plus';\nimport { cloneDeep, isEqual } from 'lodash-es';\n\nimport { getConfig } from './utils/config';\nimport { initValue } from './utils/form';\nimport { FormConfig, FormState, FormValue } from './schema';\n\nexport interface ValidateError {\n message: string;\n field: string;\n}\n\nexport interface FieldErrorList {\n [field: string]: ValidateError[];\n}\n\nexport default defineComponent({\n name: 'm-form',\n\n props: {\n // 表单初始化值\n initValues: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n\n parentValues: {\n type: Object,\n default: () => ({}),\n },\n\n // 表单配置\n config: {\n type: Array as PropType<FormConfig>,\n required: true,\n default: () => [],\n },\n\n labelWidth: {\n type: String,\n default: () => '200px',\n },\n\n disabled: {\n type: Boolean,\n default: () => false,\n },\n\n height: {\n type: String,\n default: () => 'auto',\n },\n\n stepActive: {\n type: [String, Number],\n default: () => 1,\n },\n\n size: {\n type: String as PropType<'small' | 'default' | 'large'>,\n },\n\n inline: {\n type: Boolean,\n default: false,\n },\n\n labelPosition: {\n type: String,\n default: 'right',\n },\n\n keyProp: {\n type: String,\n default: '__key',\n },\n\n popperClass: {\n type: String,\n },\n },\n\n emits: ['change', 'field-input', 'field-change'],\n\n setup(props, { emit }) {\n const elForm = ref<InstanceType<typeof ElForm>>();\n const initialized = ref(false);\n const values = ref<FormValue>({});\n const fields = new Map<string, any>();\n\n const requestFuc = getConfig('request') as Function;\n\n const formState: FormState = reactive<FormState>({\n keyProp: props.keyProp,\n popperClass: props.popperClass,\n config: props.config,\n initValues: props.initValues,\n parentValues: props.parentValues,\n values,\n $emit: emit as (event: string, ...args: any[]) => void,\n fields,\n setField: (prop: string, field: any) => fields.set(prop, field),\n getField: (prop: string) => fields.get(prop),\n deleteField: (prop: string) => fields.delete(prop),\n post: (options: any) => {\n if (requestFuc) {\n return requestFuc({\n ...options,\n method: 'POST',\n });\n }\n },\n });\n\n provide('mForm', formState);\n\n watch(\n [() => props.config, () => props.initValues],\n ([config], [preConfig]) => {\n if (!isEqual(toRaw(config), toRaw(preConfig))) {\n initialized.value = false;\n }\n\n initValue(formState, {\n initValues: props.initValues,\n config: props.config,\n }).then((value) => {\n values.value = value;\n initialized.value = true;\n });\n },\n { immediate: true },\n );\n\n return {\n initialized,\n values,\n elForm,\n\n formState,\n\n changeHandler: () => {\n emit('change', values.value);\n },\n\n resetForm: () => elForm.value?.resetFields(),\n\n submitForm: async (native?: boolean): Promise<any> => {\n try {\n await elForm.value?.validate();\n return native ? values.value : cloneDeep(toRaw(values.value));\n } catch (invalidFields: any) {\n const error: string[] = [];\n\n Object.entries(invalidFields).forEach(([, ValidateError]) => {\n (ValidateError as ValidateError[]).forEach(({ field, message }) => {\n if (field && message) error.push(`${field} -> ${message}`);\n if (field && !message) error.push(`${field} -> 出现错误`);\n if (!field && message) error.push(`${message}`);\n });\n });\n throw new Error(error.join('<br>'));\n }\n },\n };\n },\n});\n</script>\n","<template>\n <div>\n <el-dialog\n v-model=\"dialogVisible\"\n custom-class=\"m-form-dialog\"\n top=\"20px\"\n :title=\"title\"\n :appendToBody=\"true\"\n :width=\"width\"\n :fullscreen=\"fullscreen\"\n :close-on-click-modal=\"false\"\n @close=\"closeHandler\"\n >\n <div class=\"m-dialog-body\" :style=\"`max-height: ${bodyHeight}; overflow-y: auto; overflow-x: hidden;`\">\n <m-form\n v-model=\"stepActive\"\n ref=\"form\"\n :size=\"size\"\n :config=\"config\"\n :init-values=\"values\"\n :label-width=\"labelWidth\"\n @change=\"changeHandler\"\n ></m-form>\n <slot></slot>\n </div>\n\n <template #footer>\n <el-row class=\"dialog-footer\">\n <el-col :span=\"12\" style=\"text-align: left\">\n <div style=\"min-height: 1px\">\n <slot name=\"left\"></slot>\n </div>\n </el-col>\n <el-col :span=\"12\">\n <slot name=\"footer\">\n <el-button @click=\"cancel\" size=\"small\">取 消</el-button>\n <el-button v-if=\"hasStep && stepActive > 1\" type=\"info\" size=\"small\" @click=\"preStep\">上一步</el-button>\n <el-button v-if=\"hasStep && stepCount > stepActive\" type=\"info\" size=\"small\" @click=\"nextStep\"\n >下一步</el-button\n >\n <el-button v-else type=\"primary\" size=\"small\" :loading=\"saveFetch\" @click=\"save\">{{\n confirmText\n }}</el-button>\n </slot>\n </el-col>\n </el-row>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, ref } from 'vue';\n\nimport Form from './Form.vue';\nimport { FormConfig, StepConfig } from './schema';\n\nexport default defineComponent({\n name: 'm-form-dialog',\n\n props: {\n values: {\n type: Object,\n default: () => ({}),\n },\n\n width: [Number, String],\n\n fullscreen: Boolean,\n\n title: String,\n\n config: {\n type: Array as PropType<FormConfig>,\n required: true,\n default: () => [],\n },\n\n labelWidth: [Number, String],\n\n size: String as PropType<'small' | 'default' | 'large'>,\n\n confirmText: {\n type: String,\n default: '确定',\n },\n },\n\n emits: ['close', 'submit', 'error', 'change'],\n\n setup(props, { emit }) {\n const form = ref<InstanceType<typeof Form>>();\n const dialogVisible = ref(false);\n const saveFetch = ref(false);\n const stepActive = ref(1);\n const bodyHeight = ref(`${document.body.clientHeight - 194}px`);\n\n const stepCount = computed(() => {\n const { length } = props.config;\n for (let index = 0; index < length; index++) {\n if (props.config[index].type === 'step') {\n return (props.config[index] as StepConfig).items.length;\n }\n }\n return 0;\n });\n\n const hasStep = computed(() => {\n const { length } = props.config;\n for (let index = 0; index < length; index++) {\n if (props.config[index].type === 'step') {\n return true;\n }\n }\n\n return false;\n });\n\n const cancel = () => {\n dialogVisible.value = false;\n };\n\n const closeHandler = () => {\n stepActive.value = 1;\n emit('close');\n };\n\n const save = async () => {\n try {\n const values = await form.value?.submitForm();\n emit('submit', values);\n } catch (e) {\n emit('error', e);\n }\n };\n\n const preStep = () => {\n stepActive.value -= 1;\n };\n\n const nextStep = () => {\n stepActive.value += 1;\n };\n\n const changeHandler = (value: any) => {\n emit('change', value);\n };\n\n return {\n form,\n saveFetch,\n stepActive,\n dialogVisible,\n bodyHeight,\n stepCount,\n hasStep,\n cancel,\n closeHandler,\n save,\n preStep,\n nextStep,\n changeHandler,\n };\n },\n});\n</script>\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { App } from 'vue';\n\nimport Container from './containers/Container.vue';\nimport Fieldset from './containers/Fieldset.vue';\nimport GroupList from './containers/GroupList.vue';\nimport Panel from './containers/Panel.vue';\nimport Row from './containers/Row.vue';\nimport MStep from './containers/Step.vue';\nimport Table from './containers/Table.vue';\nimport Tabs from './containers/Tabs.vue';\nimport Cascader from './fields/Cascader.vue';\nimport Checkbox from './fields/Checkbox.vue';\nimport CheckboxGroup from './fields/CheckboxGroup.vue';\nimport ColorPicker from './fields/ColorPicker.vue';\nimport Date from './fields/Date.vue';\nimport Daterange from './fields/Daterange.vue';\nimport DateTime from './fields/DateTime.vue';\nimport Display from './fields/Display.vue';\nimport DynamicField from './fields/DynamicField.vue';\nimport Hidden from './fields/Hidden.vue';\nimport Link from './fields/Link.vue';\nimport Number from './fields/Number.vue';\nimport RadioGroup from './fields/RadioGroup.vue';\nimport Select from './fields/Select.vue';\nimport Switch from './fields/Switch.vue';\nimport Text from './fields/Text.vue';\nimport Textarea from './fields/Textarea.vue';\nimport Time from './fields/Time.vue';\nimport { setConfig } from './utils/config';\nimport Form from './Form.vue';\nimport FormDialog from './FormDialog.vue';\n\nimport './theme/index.scss';\n\nexport * from './schema';\nexport * from './utils/form';\nexport * from './utils/useAddField';\nexport { default as fieldProps } from './utils/fieldProps';\n\nexport { default as MForm } from './Form.vue';\nexport { default as MFormDialog } from './FormDialog.vue';\nexport { default as MContainer } from './containers/Container.vue';\nexport { default as MFieldset } from './containers/Fieldset.vue';\nexport { default as MPanel } from './containers/Panel.vue';\nexport { default as MRow } from './containers/Row.vue';\nexport { default as MTabs } from './containers/Tabs.vue';\nexport { default as MTable } from './containers/Table.vue';\nexport { default as MGroupList } from './containers/GroupList.vue';\nexport { default as MText } from './fields/Text.vue';\nexport { default as MNumber } from './fields/Number.vue';\nexport { default as MTextarea } from './fields/Textarea.vue';\nexport { default as MHidden } from './fields/Hidden.vue';\nexport { default as MDate } from './fields/Date.vue';\nexport { default as MDateTime } from './fields/DateTime.vue';\nexport { default as MTime } from './fields/Time.vue';\nexport { default as MCheckbox } from './fields/Checkbox.vue';\nexport { default as MSwitch } from './fields/Switch.vue';\nexport { default as MDaterange } from './fields/Daterange.vue';\nexport { default as MColorPicker } from './fields/ColorPicker.vue';\nexport { default as MCheckboxGroup } from './fields/CheckboxGroup.vue';\nexport { default as MRadioGroup } from './fields/RadioGroup.vue';\nexport { default as MDisplay } from './fields/Display.vue';\nexport { default as MLink } from './fields/Link.vue';\nexport { default as MSelect } from './fields/Select.vue';\nexport { default as MCascader } from './fields/Cascader.vue';\nexport { default as MDynamicField } from './fields/DynamicField.vue';\n\nconst defaultInstallOpt = {};\n\nconst install = (app: App, opt: any) => {\n const option = Object.assign(defaultInstallOpt, opt);\n\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$MAGIC_FORM = option;\n setConfig(option);\n\n app.component(Form.name, Form);\n app.component(FormDialog.name, FormDialog);\n app.component(Container.name, Container);\n app.component('m-form-fieldset', Fieldset);\n app.component(GroupList.name, GroupList);\n app.component(Panel.name, Panel);\n app.component(Row.name, Row);\n app.component(MStep.name, MStep);\n app.component(Table.name, Table);\n app.component(Tabs.name, Tabs);\n app.component(Text.name, Text);\n app.component(Number.name, Number);\n app.component(Textarea.name, Textarea);\n app.component(Hidden.name, Hidden);\n app.component(Date.name, Date);\n app.component(DateTime.name, DateTime);\n app.component(Time.name, Time);\n app.component(Checkbox.name, Checkbox);\n app.component(Switch.name, Switch);\n app.component(Daterange.name, Daterange);\n app.component(ColorPicker.name, ColorPicker);\n app.component(CheckboxGroup.name, CheckboxGroup);\n app.component(RadioGroup.name, RadioGroup);\n app.component(Display.name, Display);\n app.component(Link.name, Link);\n app.component(Select.name, Select);\n app.component(Cascader.name, Cascader);\n app.component(DynamicField.name, DynamicField);\n};\n\nexport default {\n install,\n};\n"],"names":["cloneDeep","toRaw","_sfc_main","defineComponent","WarningFilled","inject","ref","computed","resolveComponent","display","displayFunction","watchEffect","_openBlock","_createElementBlock","_normalizeStyle","_normalizeClass","_createBlock","_resolveDynamicComponent","_Fragment","_createVNode","_withCtx","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_createCommentVNode","_hoisted_4","_renderList","_hoisted_5","_createTextVNode","_toDisplayString","watch","CaretRight","CaretBottom","Delete","_withDirectives","_vShow","_hoisted_6","_hoisted_7","_renderSlot","Sortable","sleep","ElMessage","asyncLoadJs","onMounted","ArrowDown","ArrowUp","FullScreen","Grid","toRefs","getCurrentInstance","__default__","datetimeFormatter","reactive","onBeforeUnmount","SelectOptions","SelectOptionGroups","onBeforeMount","_createSlots","_withModifiers","provide","isEqual","Fieldset","Number","Hidden","Date","ColorPicker","Display"],"mappings":"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"}
|