m-eleplus-crud 0.0.2 → 0.0.4
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/index.full.js +28 -17
- package/dist/index.full.min.js +15 -15
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +16 -16
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +29 -18
- package/es/components/form/src/form.d.ts +5 -1
- package/es/index.mjs +3 -3
- package/es/packages/components/dialog/index.mjs +2 -2
- package/es/packages/components/dialog/src/dialog.mjs +75 -116
- package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog2.mjs +116 -75
- package/es/packages/components/dialog/src/dialog2.mjs.map +1 -1
- package/es/packages/components/form/src/form.mjs.map +1 -1
- package/es/packages/components/form/src/form2.mjs +28 -17
- package/es/packages/components/form/src/form2.mjs.map +1 -1
- package/es/packages/components/index.mjs +3 -3
- package/es/packages/components/picture/index.mjs +2 -2
- package/es/packages/components/picture/src/picture.mjs +19 -26
- package/es/packages/components/picture/src/picture.mjs.map +1 -1
- package/es/packages/components/picture/src/picture2.mjs +26 -19
- package/es/packages/components/picture/src/picture2.mjs.map +1 -1
- package/es/packages/components/search/index.mjs +2 -2
- package/es/packages/components/search/src/search.mjs +423 -25
- package/es/packages/components/search/src/search.mjs.map +1 -1
- package/es/packages/components/search/src/search2.mjs +25 -423
- package/es/packages/components/search/src/search2.mjs.map +1 -1
- package/es/packages/components/table/src/table2.mjs +1 -1
- package/es/packages/components/table/src/table2.mjs.map +1 -1
- package/lib/components/form/src/form.d.ts +5 -1
- package/lib/index.js +3 -3
- package/lib/packages/components/dialog/index.js +2 -2
- package/lib/packages/components/dialog/src/dialog.js +76 -116
- package/lib/packages/components/dialog/src/dialog.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog2.js +116 -76
- package/lib/packages/components/dialog/src/dialog2.js.map +1 -1
- package/lib/packages/components/form/src/form.js.map +1 -1
- package/lib/packages/components/form/src/form2.js +27 -16
- package/lib/packages/components/form/src/form2.js.map +1 -1
- package/lib/packages/components/index.js +3 -3
- package/lib/packages/components/picture/index.js +2 -2
- package/lib/packages/components/picture/src/picture.js +20 -26
- package/lib/packages/components/picture/src/picture.js.map +1 -1
- package/lib/packages/components/picture/src/picture2.js +26 -20
- package/lib/packages/components/picture/src/picture2.js.map +1 -1
- package/lib/packages/components/search/index.js +2 -2
- package/lib/packages/components/search/src/search.js +423 -26
- package/lib/packages/components/search/src/search.js.map +1 -1
- package/lib/packages/components/search/src/search2.js +26 -423
- package/lib/packages/components/search/src/search2.js.map +1 -1
- package/lib/packages/components/table/src/table2.js +1 -1
- package/lib/packages/components/table/src/table2.js.map +1 -1
- package/package.json +1 -1
- package/web-types.json +1 -1
|
@@ -2,84 +2,124 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var dialog = require('./dialog.js');
|
|
7
|
+
var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
|
|
8
|
+
var index = require('../../../hooks/use-locale/index.js');
|
|
9
|
+
var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
|
|
9
10
|
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
11
|
+
const COMPONENT_NAME = "MDialog";
|
|
12
|
+
const __default__ = vue.defineComponent({
|
|
13
|
+
name: COMPONENT_NAME
|
|
14
|
+
});
|
|
15
|
+
const _sfc_main = vue.defineComponent({
|
|
16
|
+
...__default__,
|
|
17
|
+
props: dialog.dialogProps,
|
|
18
|
+
emits: dialog.dialogEmits,
|
|
19
|
+
setup(__props, { emit: __emit }) {
|
|
20
|
+
const props = __props;
|
|
21
|
+
const emit = __emit;
|
|
22
|
+
const slots = vue.useSlots();
|
|
23
|
+
const { t } = index.useLocale();
|
|
24
|
+
const globalConfig = useGlobalConfig.useGlobalConfig();
|
|
25
|
+
const dialogLoading = vue.ref(false);
|
|
26
|
+
const closeDialog = () => {
|
|
27
|
+
emit("update:modelValue", false);
|
|
28
|
+
emit("close");
|
|
29
|
+
};
|
|
30
|
+
const enter = () => {
|
|
31
|
+
dialogLoading.value = true;
|
|
32
|
+
const done = () => {
|
|
33
|
+
emit("update:modelValue", false);
|
|
34
|
+
};
|
|
35
|
+
const loading = () => {
|
|
36
|
+
dialogLoading.value = false;
|
|
37
|
+
};
|
|
38
|
+
emit("enter", done, loading);
|
|
39
|
+
};
|
|
40
|
+
const close = () => {
|
|
41
|
+
emit("update:modelValue", false);
|
|
42
|
+
emit("cancel");
|
|
43
|
+
};
|
|
44
|
+
const onBeforeClose = (done) => {
|
|
45
|
+
if (dialogLoading.value) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (props.beforeClose) {
|
|
49
|
+
props.beforeClose(done);
|
|
50
|
+
} else {
|
|
51
|
+
done();
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
return (_ctx, _cache) => {
|
|
55
|
+
const _component_el_button = vue.resolveComponent("el-button");
|
|
56
|
+
const _component_el_dialog = vue.resolveComponent("el-dialog");
|
|
57
|
+
return vue.openBlock(), vue.createElementBlock("div", { class: "m-dialog" }, [
|
|
58
|
+
vue.createVNode(_component_el_dialog, {
|
|
59
|
+
class: "m-dialog",
|
|
60
|
+
"model-value": _ctx.modelValue,
|
|
61
|
+
title: _ctx.title,
|
|
62
|
+
width: _ctx.width,
|
|
63
|
+
top: _ctx.top,
|
|
64
|
+
"append-to-body": _ctx.appendToBody,
|
|
65
|
+
"close-on-click-modal": _ctx.closeOnClickModal,
|
|
66
|
+
"close-onn-press-escape": _ctx.closeOnnPressEscape,
|
|
67
|
+
"before-close": onBeforeClose,
|
|
68
|
+
draggable: _ctx.draggable,
|
|
69
|
+
"destroy-on-close": _ctx.destroyOnClose,
|
|
70
|
+
onClose: closeDialog
|
|
71
|
+
}, {
|
|
72
|
+
footer: vue.withCtx(() => [
|
|
73
|
+
!vue.unref(slots).btns ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
74
|
+
key: 0,
|
|
75
|
+
class: "dialog-footer"
|
|
76
|
+
}, [
|
|
77
|
+
_ctx.cancelBtn ? (vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
78
|
+
key: 0,
|
|
79
|
+
size: _ctx.size || vue.unref(globalConfig).size,
|
|
80
|
+
icon: _ctx.cancelBtnIcon,
|
|
81
|
+
loading: dialogLoading.value,
|
|
82
|
+
onClick: close
|
|
83
|
+
}, {
|
|
84
|
+
default: vue.withCtx(() => [
|
|
85
|
+
vue.createTextVNode(
|
|
86
|
+
vue.toDisplayString(_ctx.cancelBtnText || vue.unref(t)("m.dialog.cancelText")),
|
|
87
|
+
1
|
|
88
|
+
)
|
|
89
|
+
]),
|
|
90
|
+
_: 1
|
|
91
|
+
}, 8, ["size", "icon", "loading"])) : vue.createCommentVNode("v-if", true),
|
|
92
|
+
_ctx.saveBtn ? (vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
93
|
+
key: 1,
|
|
94
|
+
size: _ctx.size || vue.unref(globalConfig).size,
|
|
95
|
+
icon: _ctx.saveBtnIcon,
|
|
96
|
+
loading: dialogLoading.value,
|
|
97
|
+
type: "primary",
|
|
98
|
+
onClick: enter
|
|
99
|
+
}, {
|
|
100
|
+
default: vue.withCtx(() => [
|
|
101
|
+
vue.createTextVNode(
|
|
102
|
+
vue.toDisplayString(_ctx.saveBtnText || vue.unref(t)("m.dialog.confirmText")),
|
|
103
|
+
1
|
|
104
|
+
)
|
|
105
|
+
]),
|
|
106
|
+
_: 1
|
|
107
|
+
}, 8, ["size", "icon", "loading"])) : vue.createCommentVNode("v-if", true)
|
|
108
|
+
])) : vue.renderSlot(_ctx.$slots, "btns", {
|
|
109
|
+
key: 1,
|
|
110
|
+
loading: dialogLoading.value
|
|
111
|
+
})
|
|
112
|
+
]),
|
|
113
|
+
default: vue.withCtx(() => [
|
|
114
|
+
vue.renderSlot(_ctx.$slots, "default", { loading: dialogLoading.value })
|
|
115
|
+
]),
|
|
116
|
+
_: 3
|
|
117
|
+
}, 8, ["model-value", "title", "width", "top", "append-to-body", "close-on-click-modal", "close-onn-press-escape", "draggable", "destroy-on-close"])
|
|
118
|
+
]);
|
|
119
|
+
};
|
|
74
120
|
}
|
|
75
121
|
});
|
|
76
|
-
|
|
77
|
-
"update:modelValue": (value) => types.isBoolean(value),
|
|
78
|
-
close: () => true,
|
|
79
|
-
cancel: () => true,
|
|
80
|
-
enter: (done, loading) => shared.isFunction(done) && shared.isFunction(loading)
|
|
81
|
-
};
|
|
122
|
+
var Dialog = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "dialog.vue"]]);
|
|
82
123
|
|
|
83
|
-
exports
|
|
84
|
-
exports.dialogProps = dialogProps;
|
|
124
|
+
exports["default"] = Dialog;
|
|
85
125
|
//# sourceMappingURL=dialog2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog2.js","sources":["../../../../../../../packages/components/dialog/src/dialog.
|
|
1
|
+
{"version":3,"file":"dialog2.js","sources":["../../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<template>\r\n <div class=\"m-dialog\">\r\n <el-dialog\r\n class=\"m-dialog\"\r\n :model-value=\"modelValue\"\r\n :title=\"title\"\r\n :width=\"width\"\r\n :top=\"top\"\r\n :append-to-body=\"appendToBody\"\r\n :close-on-click-modal=\"closeOnClickModal\"\r\n :close-onn-press-escape=\"closeOnnPressEscape\"\r\n :before-close=\"onBeforeClose\"\r\n :draggable=\"draggable\"\r\n :destroy-on-close=\"destroyOnClose\"\r\n @close=\"closeDialog\"\r\n >\r\n <slot :loading=\"dialogLoading\" />\r\n <template #footer>\r\n <div v-if=\"!slots.btns\" class=\"dialog-footer\">\r\n <el-button\r\n v-if=\"cancelBtn\"\r\n :size=\"size || globalConfig.size\"\r\n :icon=\"cancelBtnIcon\"\r\n :loading=\"dialogLoading\"\r\n @click=\"close\"\r\n >\r\n {{ cancelBtnText || t('m.dialog.cancelText') }}\r\n </el-button>\r\n <el-button\r\n v-if=\"saveBtn\"\r\n :size=\"size || globalConfig.size\"\r\n :icon=\"saveBtnIcon\"\r\n :loading=\"dialogLoading\"\r\n type=\"primary\"\r\n @click=\"enter\"\r\n >\r\n {{ saveBtnText || t('m.dialog.confirmText') }}\r\n </el-button>\r\n </div>\r\n <slot v-else :loading=\"dialogLoading\" name=\"btns\" />\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { dialogEmits, dialogProps } from './dialog'\r\n\r\nconst COMPONENT_NAME = 'MDialog'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(dialogProps)\r\nconst emit = defineEmits(dialogEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots()\r\n// 国际化\r\nconst { t } = useLocale()\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 弹窗内是否loading\r\nconst dialogLoading = ref(false)\r\n\r\n/**\r\n * @description 弹窗关闭\r\n */\r\nconst closeDialog = () => {\r\n emit('update:modelValue', false)\r\n emit('close')\r\n}\r\n\r\n/**\r\n * 确认\r\n */\r\nconst enter = () => {\r\n // 弹窗开始加载\r\n dialogLoading.value = true\r\n // 关闭表单\r\n const done = () => {\r\n emit('update:modelValue', false)\r\n }\r\n // 关闭加载\r\n const loading = () => {\r\n dialogLoading.value = false\r\n }\r\n\r\n emit('enter', done, loading)\r\n}\r\n\r\n/**\r\n * 关闭\r\n */\r\nconst close = () => {\r\n emit('update:modelValue', false)\r\n emit('cancel')\r\n}\r\n\r\n/**\r\n * 弹窗关闭前\r\n * @param done 完成回调\r\n */\r\nconst onBeforeClose = (done: () => void) => {\r\n if (dialogLoading.value) {\r\n return false\r\n }\r\n if (props.beforeClose) {\r\n props.beforeClose(done)\r\n } else {\r\n done()\r\n }\r\n}\r\n</script>\r\n"],"names":["DO_defineComponent","useSlots","useLocale","useGlobalConfig","ref"],"mappings":";;;;;;;;;;;AAoDc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAE,CAAE,EAAA,GAAIC,eAAU,EAAA,CAAA;AAExB,IAAA,MAAM,eAAeC,+BAAgB,EAAA,CAAA;AAG/B,IAAA,MAAA,aAAA,GAAgBC,QAAI,KAAK,CAAA,CAAA;AAK/B,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAC/B,MAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,KACd,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;AAElB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AAEtB,MAAA,MAAM,OAAO,MAAM;AACjB,QAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAAA,OACjC,CAAA;AAEA,MAAA,MAAM,UAAU,MAAM;AACpB,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,OACxB,CAAA;AAEK,MAAA,IAAA,CAAA,OAAA,EAAS,MAAM,OAAO,CAAA,CAAA;AAAA,KAC7B,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAC/B,MAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,KACf,CAAA;AAMM,IAAA,MAAA,aAAA,GAAgB,CAAC,IAAqB,KAAA;AAC1C,MAAA,IAAI,cAAc,KAAO,EAAA;AAChB,QAAA,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAA,IAAI,MAAM,WAAa,EAAA;AACrB,QAAA,KAAA,CAAM,YAAY,IAAI,CAAA,CAAA;AAAA,OACjB,MAAA;AACA,QAAA,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\nimport { buildProps, definePropType } from '@m-eleplus-crud/utils'\n\nimport type { ColumnType, ICommonColumn } from '../../common'\nimport type { FormItemRule } from 'element-plus'\n\nimport type { ExtractPropTypes } from 'vue'\n\n// 事件处理\ntype EventHandlers = {\n [K in `event${string}`]?: (...args: any[]) => any\n}\n\n/**\n * @description 公开的form column配置\n */\nexport interface IFormCommonColumn extends EventHandlers {\n /**\n * 表单校验规则\n */\n rules?: FormItemRule[]\n /**\n * @description 单个标签宽度\n */\n labelWidth?: string\n /**\n * @description 表单排序\n */\n order?: number\n /**\n * @description 栅栏宽度\n */\n span?: number\n /**\n * @description 最大长度\n */\n maxlength?: number\n /**\n * @description 是否显示字数统计,仅对type为textarea有效\n */\n showWordLimit?: boolean\n /**\n * @description 是否显示密码切换按钮,仅对type为password有效\n */\n showPassword?: boolean\n /**\n * @description 默认值\n */\n value?: any\n /**\n * @description 占位文本\n */\n placeholder?: string\n}\n\nexport interface IFormColumn extends ICommonColumn, IFormCommonColumn {\n /**\n * @description 组件类型\n */\n type?: ColumnType\n}\n\n/**\n * @description 公开的form配置\n */\nexport interface IFormCommonOption {\n /**\n * @description 标签宽度\n */\n labelWidth?: string\n}\n\nexport interface IFormOption extends IFormCommonOption {\n /**\n * @description 表单列\n */\n column: IFormColumn[]\n}\n\nexport const formProps = buildProps({\n /**\n * @description 组件大小\n */\n size: useSizeProp,\n /**\n * @description 表单绑定的数据\n */\n model: {\n type: Object,\n required: true,\n },\n /**\n * @description 表单加载状态\n */\n loading: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单权限配置\n */\n permission: {\n type: Object,\n default: {},\n },\n /**\n * @description 是否只读\n */\n readonly: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单配置\n */\n option: {\n type: definePropType<IFormOption>(Object),\n required: false,\n },\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {}\nexport type FormEmits = typeof formEmits\n"],"names":["buildProps","useSizeProp","definePropType"],"mappings":";;;;;;;AA+EO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;;"}
|
|
@@ -171,6 +171,17 @@ const _sfc_main = vue.defineComponent({
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
|
+
const getFormItemEventBind = (column) => {
|
|
175
|
+
const result = {};
|
|
176
|
+
for (const key in column) {
|
|
177
|
+
if (key.startsWith("event")) {
|
|
178
|
+
let funName = key.replace("event", "");
|
|
179
|
+
funName = funName.charAt(0).toLowerCase() + funName.slice(1);
|
|
180
|
+
result[funName] = column[key];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
};
|
|
174
185
|
const formatDicValue = (row, column) => {
|
|
175
186
|
let dictLabel = "";
|
|
176
187
|
const findLabelByValue = (dicData, value) => {
|
|
@@ -322,7 +333,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
322
333
|
[
|
|
323
334
|
vue.createCommentVNode(""),
|
|
324
335
|
vue.createCommentVNode("\u8F93\u5165\u6846"),
|
|
325
|
-
vue.createVNode(_component_el_input, {
|
|
336
|
+
vue.createVNode(_component_el_input, vue.mergeProps({
|
|
326
337
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
327
338
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
328
339
|
modelModifiers: { trim: true },
|
|
@@ -332,7 +343,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
332
343
|
"show-word-limit": column.showWordLimit,
|
|
333
344
|
"show-password": column.showPassword,
|
|
334
345
|
type: !column.type || column.type === "input" ? "text" : column.type
|
|
335
|
-
}, null,
|
|
346
|
+
}, vue.toHandlers(getFormItemEventBind(column))), null, 16, ["modelValue", "onUpdate:modelValue", "placeholder", "maxlength", "show-word-limit", "show-password", "type"])
|
|
336
347
|
],
|
|
337
348
|
2112
|
|
338
349
|
)) : column.type === "select" ? (vue.openBlock(), vue.createElementBlock(
|
|
@@ -341,7 +352,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
341
352
|
[
|
|
342
353
|
vue.createCommentVNode(""),
|
|
343
354
|
vue.createCommentVNode("\u4E0B\u62C9\u6846"),
|
|
344
|
-
vue.createVNode(_component_el_select, {
|
|
355
|
+
vue.createVNode(_component_el_select, vue.mergeProps({
|
|
345
356
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
346
357
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
347
358
|
modelModifiers: { trim: true },
|
|
@@ -354,7 +365,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
354
365
|
remote: column.remote,
|
|
355
366
|
"remote-method": column.remoteMethod,
|
|
356
367
|
loading: column.loading
|
|
357
|
-
}, {
|
|
368
|
+
}, vue.toHandlers(getFormItemEventBind(column))), {
|
|
358
369
|
default: vue.withCtx(() => [
|
|
359
370
|
(vue.openBlock(true), vue.createElementBlock(
|
|
360
371
|
vue.Fragment,
|
|
@@ -370,7 +381,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
370
381
|
))
|
|
371
382
|
]),
|
|
372
383
|
_: 2
|
|
373
|
-
},
|
|
384
|
+
}, 1040, ["modelValue", "onUpdate:modelValue", "placeholder", "multiple", "clearable", "filterable", "filter-method", "remote", "remote-method", "loading"])
|
|
374
385
|
],
|
|
375
386
|
2112
|
|
376
387
|
)) : column.type === "radio" ? (vue.openBlock(), vue.createElementBlock(
|
|
@@ -379,11 +390,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
379
390
|
[
|
|
380
391
|
vue.createCommentVNode(""),
|
|
381
392
|
vue.createCommentVNode("radio"),
|
|
382
|
-
vue.createVNode(_component_el_radio_group, {
|
|
393
|
+
vue.createVNode(_component_el_radio_group, vue.mergeProps({
|
|
383
394
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
384
395
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
385
396
|
style: { "width": "100%" }
|
|
386
|
-
}, {
|
|
397
|
+
}, vue.toHandlers(getFormItemEventBind(column))), {
|
|
387
398
|
default: vue.withCtx(() => [
|
|
388
399
|
(vue.openBlock(true), vue.createElementBlock(
|
|
389
400
|
vue.Fragment,
|
|
@@ -407,7 +418,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
407
418
|
))
|
|
408
419
|
]),
|
|
409
420
|
_: 2
|
|
410
|
-
},
|
|
421
|
+
}, 1040, ["modelValue", "onUpdate:modelValue"])
|
|
411
422
|
],
|
|
412
423
|
2112
|
|
413
424
|
)) : column.type === "checkbox" ? (vue.openBlock(), vue.createElementBlock(
|
|
@@ -416,11 +427,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
416
427
|
[
|
|
417
428
|
vue.createCommentVNode(""),
|
|
418
429
|
vue.createCommentVNode("checkbox"),
|
|
419
|
-
vue.createVNode(_component_el_checkbox_group, {
|
|
430
|
+
vue.createVNode(_component_el_checkbox_group, vue.mergeProps({
|
|
420
431
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
421
432
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
422
433
|
style: { "width": "100%" }
|
|
423
|
-
}, {
|
|
434
|
+
}, vue.toHandlers(getFormItemEventBind(column))), {
|
|
424
435
|
default: vue.withCtx(() => [
|
|
425
436
|
(vue.openBlock(true), vue.createElementBlock(
|
|
426
437
|
vue.Fragment,
|
|
@@ -436,7 +447,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
436
447
|
))
|
|
437
448
|
]),
|
|
438
449
|
_: 2
|
|
439
|
-
},
|
|
450
|
+
}, 1040, ["modelValue", "onUpdate:modelValue"])
|
|
440
451
|
],
|
|
441
452
|
2112
|
|
442
453
|
)) : column.type === "switch" ? (vue.openBlock(), vue.createElementBlock(
|
|
@@ -452,12 +463,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
452
463
|
vue.Fragment,
|
|
453
464
|
{ key: 1 },
|
|
454
465
|
[
|
|
455
|
-
vue.createVNode(_component_el_switch, {
|
|
466
|
+
vue.createVNode(_component_el_switch, vue.mergeProps({
|
|
456
467
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
457
468
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
458
469
|
"active-value": column.dicData[0].value,
|
|
459
470
|
"inactive-value": column.dicData[1].value
|
|
460
|
-
}, null,
|
|
471
|
+
}, vue.toHandlers(getFormItemEventBind(column))), null, 16, ["modelValue", "onUpdate:modelValue", "active-value", "inactive-value"]),
|
|
461
472
|
vue.createElementVNode(
|
|
462
473
|
"span",
|
|
463
474
|
{ style: { "font-size": "var(--el-font-size-base)", "color": "var(--el-text-color-regular)", "margin-left": "6px" } },
|
|
@@ -475,7 +486,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
475
486
|
[
|
|
476
487
|
vue.createCommentVNode(""),
|
|
477
488
|
vue.createCommentVNode("\u65F6\u95F4"),
|
|
478
|
-
column.type !== "time" && column.type !== "timerange" ? (vue.openBlock(), vue.createBlock(_component_el_date_picker, {
|
|
489
|
+
column.type !== "time" && column.type !== "timerange" ? (vue.openBlock(), vue.createBlock(_component_el_date_picker, vue.mergeProps({
|
|
479
490
|
key: 0,
|
|
480
491
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
481
492
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
@@ -485,7 +496,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
485
496
|
"end-placeholder": column.endPlaceholder,
|
|
486
497
|
format: column.format,
|
|
487
498
|
"value-format": column.valueFormat || getValueFormatByType(column.type)
|
|
488
|
-
}, null,
|
|
499
|
+
}, vue.toHandlers(getFormItemEventBind(column))), null, 16, ["modelValue", "onUpdate:modelValue", "type", "clearable", "start-placeholder", "end-placeholder", "format", "value-format"])) : (vue.openBlock(), vue.createBlock(_component_el_time_picker, vue.mergeProps({
|
|
489
500
|
key: 1,
|
|
490
501
|
modelValue: vue.unref(proxys)[column.prop || ""],
|
|
491
502
|
"onUpdate:modelValue": ($event) => vue.unref(proxys)[column.prop || ""] = $event,
|
|
@@ -494,7 +505,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
494
505
|
"start-placeholder": column.startPlaceholder,
|
|
495
506
|
"end-placeholder": column.endPlaceholder,
|
|
496
507
|
"value-format": column.valueFormat || getValueFormatByType(column.type)
|
|
497
|
-
}, null,
|
|
508
|
+
}, vue.toHandlers(getFormItemEventBind(column))), null, 16, ["modelValue", "onUpdate:modelValue", "is-range", "clearable", "start-placeholder", "end-placeholder", "value-format"]))
|
|
498
509
|
],
|
|
499
510
|
64
|
|
500
511
|
)) : column.type === "picture" ? (vue.openBlock(), vue.createElementBlock(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { computed, ref, useSlots, watch } from 'vue'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { debugWarn } from '@m-eleplus-crud/utils'\r\nimport { formEmits, formProps } from './form'\r\nimport type { IDictValue } from '@m-eleplus-crud/components/common'\r\nimport type { FormInstance } from 'element-plus'\r\nimport type { IFormColumn, IFormOption } from './form'\r\n\r\nconst COMPONENT_NAME = 'MForm'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(formProps)\r\ndefineEmits(formEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 表单实例\r\nconst formRef = ref<FormInstance>()\r\n\r\n// 表单输入类型\r\nconst INPUT_TYPES = [\r\n 'input',\r\n 'textarea',\r\n 'number',\r\n 'password',\r\n 'qrcode',\r\n 'barcode',\r\n]\r\n\r\n// 日期类型\r\nconst DATE_TYPES = [\r\n 'year',\r\n 'month',\r\n 'date',\r\n 'datetime',\r\n 'week',\r\n 'datetimerange',\r\n 'daterange',\r\n 'monthrange',\r\n 'yearrange',\r\n 'time',\r\n 'timerange',\r\n]\r\n\r\n// 需要字典显示处理\r\nconst NEED_DIC_TYPE = ['select', 'checkbox', 'radio', 'switch']\r\n\r\n// 表单配置\r\nconst formOption = ref<IFormOption>({\r\n // 默认标签宽度80px\r\n labelWidth: '80px',\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description 计算详情模式下的表格行\r\n */\r\nconst detailTableRows = computed(() => {\r\n const rows = []\r\n let currentRow = []\r\n let currentTotal = 0\r\n for (const item of formOption.value.column || []) {\r\n const req = item.span || 12\r\n // 若当前行加入该项超过总列数,则开启新行\r\n if (currentTotal + req > 24) {\r\n rows.push(currentRow)\r\n currentRow = []\r\n currentTotal = 0\r\n }\r\n currentRow.push(item)\r\n currentTotal += req\r\n }\r\n if (currentRow.length) rows.push(currentRow)\r\n return rows\r\n})\r\n\r\n// 表单model\r\nconst proxys = new Proxy(props.model as any, {\r\n get(target, property) {\r\n return get(target, property)\r\n },\r\n set(target, property, value) {\r\n set(target, property, value)\r\n return true\r\n },\r\n})\r\n\r\n/**\r\n * @description 初始化表单的值\r\n */\r\nconst initValue = () => {\r\n // 初始化搜索表单的值\r\n if (formOption.value && formOption.value.column) {\r\n for (let i = 0; i < formOption.value.column?.length; i++) {\r\n const column = formOption.value.column[i]\r\n if (column.prop && proxys[column.prop] === undefined) {\r\n if (column.value) {\r\n proxys[column.prop] = column.value\r\n } else {\r\n const ARR_TYPES = [\r\n 'checkbox',\r\n 'datetimerange',\r\n 'daterange',\r\n 'monthrange',\r\n 'yearrange',\r\n 'timerange',\r\n ]\r\n if (\r\n (column.type === 'select' && column.multiple) ||\r\n ARR_TYPES.includes(column.type || '')\r\n ) {\r\n proxys[column.prop] = []\r\n } else {\r\n proxys[column.prop] = ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 根据类型获取默认时间格式\r\n * @param type 类型\r\n */\r\nconst getValueFormatByType = (type: string) => {\r\n let format = ''\r\n switch (type) {\r\n case 'yearrange':\r\n case 'year':\r\n format = 'YYYY'\r\n break\r\n case 'monthrange':\r\n case 'month':\r\n format = 'YYYY-MM'\r\n break\r\n case 'daterange':\r\n case 'week':\r\n case 'date':\r\n format = 'YYYY-MM-DD'\r\n break\r\n case 'datetimerange':\r\n case 'datetime':\r\n format = 'YYYY-MM-DD HH:mm:ss'\r\n break\r\n case 'time':\r\n format = 'HH:mm:ss'\r\n break\r\n }\r\n return format\r\n}\r\n\r\n/**\r\n * 处理需要远程获取字典的配置\r\n */\r\nconst getAllRemoteDics = () => {\r\n const hasDicUrl = formOption.value?.column?.some((column) => column.dicUrl)\r\n if (hasDicUrl && !globalConfig.value?.httpGet) {\r\n debugWarn('MForm', 'global config httpGet is null')\r\n return\r\n }\r\n /**\r\n * 调用接口设置到dicData\r\n * @param column 列配置\r\n */\r\n const updateRemoteDic = (column: IFormColumn) => {\r\n return new Promise((resolve) => {\r\n let isSuccess = false\r\n // @ts-ignore\r\n globalConfig.value\r\n .httpGet(column.dicUrl, column.dicQuery, column.dicHeaders)\r\n .then((e: any) => {\r\n // @ts-ignore\r\n const { list, label, value } = column.dicFormatter(e)\r\n if (list && Array.isArray(list)) {\r\n column['dicData'] = list.map((item) => {\r\n const lastLabel = label.replace(/\\{(\\w+)\\}/g, (match, key) => {\r\n return item[key] || match\r\n })\r\n return {\r\n label: lastLabel,\r\n value: item[value],\r\n }\r\n })\r\n isSuccess = true\r\n }\r\n })\r\n .finally(() => {\r\n if (!isSuccess) {\r\n column['dicData'] = []\r\n }\r\n resolve(null)\r\n })\r\n })\r\n }\r\n for (let i = 0; i < (formOption.value?.column || []).length; i++) {\r\n // @ts-ignore\r\n const column = formOption.value.column[i]\r\n if (column.dicUrl) {\r\n if (!column.dicFormatter) {\r\n debugWarn('MForm', 'dicUrl and dicFormatter must be used together')\r\n continue\r\n }\r\n updateRemoteDic(column)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 解析字典并展示\r\n * @param row 行数据\r\n * @param column 列配置\r\n */\r\nconst formatDicValue = (row: any, column: IFormColumn) => {\r\n // 未拿到字典值的placeholder\r\n let dictLabel: string | undefined = ''\r\n // 查找\r\n const findLabelByValue = (dicData: IDictValue[], value: any) => {\r\n const dictItem = (dicData || []).find((dict) => dict.value === value)\r\n if (dictItem === undefined) {\r\n return dictLabel\r\n }\r\n return dictItem.label\r\n }\r\n if (\r\n (column.type === 'select' && column.multiple) ||\r\n column.type === 'checkbox'\r\n ) {\r\n // select下拉且开启多选/多选模式\r\n let values: any = []\r\n\r\n if (\r\n row[column.prop || ''] != null &&\r\n row[column.prop || ''] != undefined &&\r\n row[column.prop || ''] !== ''\r\n ) {\r\n if (Array.isArray(row[column.prop || ''])) {\r\n // 数据就是数组\r\n values = row[column.prop || '']\r\n } else if (typeof row[column.prop || ''] === 'string') {\r\n // 数据是字符串,启动字符分割,后续需要弄成从配置读取\r\n values = row[column.prop || ''].split(',')\r\n } else {\r\n // 最后情况变成数组\r\n values = [row[column.prop || '']]\r\n }\r\n }\r\n // 结果集合\r\n const result: string[] = []\r\n for (const value of values) {\r\n dictLabel = findLabelByValue(column.dicData || [], value)\r\n if (dictLabel === undefined) {\r\n break\r\n }\r\n result.push(dictLabel)\r\n }\r\n return result.join(',')\r\n }\r\n // 单模式\r\n dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ''])\r\n return dictLabel\r\n}\r\n\r\n/**\r\n * 拿到详情模式下的图片集合\r\n * @param row\r\n * @param column\r\n */\r\nconst getDetailPic = (row: any, column: IFormColumn) => {\r\n if (!row || !row[column.prop || '']) {\r\n return []\r\n }\r\n const pics: string[] = row[column.prop || '']\r\n .split(column.imgSuffix || ';')\r\n .map((pic: string) => (column.imgPrefix || '') + pic)\r\n return pics\r\n}\r\n\r\nconst getValueColspan = (\r\n item: IFormColumn,\r\n rows: IFormColumn[],\r\n index: number\r\n) => {\r\n const getRemaining = (row: IFormColumn[]) => {\r\n const used = row.reduce((acc, item) => acc + (item.span || 12), 0)\r\n return 24 - used\r\n }\r\n if (index === rows.length - 1) {\r\n return (item.span || 12) + getRemaining(rows) - 1\r\n }\r\n return (item.span || 12) - 1\r\n}\r\n\r\n/**\r\n * @description 校验表单\r\n */\r\nconst validForm = (): Promise<boolean> => {\r\n return new Promise((resolve) => {\r\n formRef.value!.validate((valid) => {\r\n resolve(valid)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * @description 清空数据和校验规则\r\n */\r\nconst clear = () => {\r\n // 清空校验规则\r\n formRef.value?.clearValidate()\r\n // 清空表单数据\r\n formRef.value?.resetFields()\r\n}\r\n\r\nwatch(\r\n () => props.option as IFormOption,\r\n (newVal: IFormOption) => {\r\n if (newVal) {\r\n formOption.value = Object.assign({}, formOption.value, newVal)\r\n if (newVal.column) {\r\n formOption.value.column = cloneDeep(\r\n newVal.column\r\n .filter(\r\n (column) => !(props.permission[column.prop || ''] === false)\r\n )\r\n .sort((a, b) => (b.order || 0) - (a.order || 0))\r\n )\r\n // 处理远程字典的配置\r\n getAllRemoteDics()\r\n if (!props.readonly) {\r\n // 初始化表单的值\r\n initValue()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n immediate: true,\r\n deep: true,\r\n }\r\n)\r\n\r\ndefineExpose({\r\n /**\r\n * @description 校验表单\r\n */\r\n validForm,\r\n /**\r\n * @description 清空表单\r\n */\r\n clear,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"m-form\">\r\n <!--编辑模式-->\r\n <el-form\r\n v-if=\"!readonly\"\r\n ref=\"formRef\"\r\n :model=\"proxys\"\r\n :disabled=\"loading\"\r\n :size=\"size || globalConfig.size\"\r\n :label-width=\"formOption.labelWidth\"\r\n style=\"width: 100%\"\r\n @submit.prevent\r\n >\r\n <el-row :gutter=\"0\">\r\n <el-col\r\n v-for=\"(column, columnIndex) in formOption.column\"\r\n :key=\"columnIndex\"\r\n :span=\"column.span || 12\"\r\n >\r\n <el-form-item\r\n style=\"width: 100%\"\r\n :label=\"column.label + ':'\"\r\n :prop=\"column.prop\"\r\n :rules=\"column.rules\"\r\n :label-width=\"column.labelWidth || formOption.labelWidth\"\r\n >\r\n <!--插槽信息-->\r\n <slot\r\n v-if=\"slots[column.prop || '']\"\r\n :name=\"column.prop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--输入框-->\r\n <el-input\r\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :maxlength=\"column.maxlength\"\r\n :show-word-limit=\"column.showWordLimit\"\r\n :show-password=\"column.showPassword\"\r\n :type=\"\r\n !column.type || column.type === 'input' ? 'text' : column.type\r\n \"\r\n />\r\n <!---->\r\n <!--下拉框-->\r\n <el-select\r\n v-else-if=\"column.type === 'select'\"\r\n v-model.trim=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n :placeholder=\"column.placeholder\"\r\n :multiple=\"column.multiple\"\r\n :clearable=\"column.clearable\"\r\n :filterable=\"column.filterable\"\r\n :filter-method=\"column.filterMethod\"\r\n :remote=\"column.remote\"\r\n :remote-method=\"column.remoteMethod\"\r\n :loading=\"column.loading\"\r\n >\r\n <el-option\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-select>\r\n <!---->\r\n <!--radio-->\r\n <el-radio-group\r\n v-else-if=\"column.type === 'radio'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n >\r\n <el-radio\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :value=\"dicItem.value\"\r\n :label=\"dicItem.value\"\r\n >\r\n {{ dicItem.label }}\r\n </el-radio>\r\n </el-radio-group>\r\n <!---->\r\n <!--checkbox-->\r\n <el-checkbox-group\r\n v-else-if=\"column.type === 'checkbox'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n style=\"width: 100%\"\r\n >\r\n <el-checkbox\r\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\r\n :key=\"dicIndex\"\r\n :label=\"dicItem.label\"\r\n :value=\"dicItem.value\"\r\n />\r\n </el-checkbox-group>\r\n <!---->\r\n <!--switch-->\r\n <template v-else-if=\"column.type === 'switch'\">\r\n <span\r\n v-if=\"!column.dicData || column.dicData.length != 2\"\r\n style=\"\r\n color: var(--el-text-color-placeholder);\r\n line-height: 32px;\r\n height: 32px;\r\n \"\r\n >\"dicData/dicUrl的结果\"未设置或长度不等于2</span\r\n >\r\n <template v-else>\r\n <el-switch\r\n v-model=\"proxys[column.prop || '']\"\r\n :active-value=\"column.dicData[0].value\"\r\n :inactive-value=\"column.dicData[1].value\"\r\n />\r\n <span\r\n style=\"\r\n font-size: var(--el-font-size-base);\r\n color: var(--el-text-color-regular);\r\n margin-left: 6px;\r\n \"\r\n >{{\r\n proxys[column.prop || ''] === column.dicData[0].value\r\n ? column.dicData[0].label\r\n : column.dicData[1].label\r\n }}</span\r\n >\r\n </template>\r\n </template>\r\n <!---->\r\n <!--时间-->\r\n <template v-else-if=\"DATE_TYPES.includes(column.type)\">\r\n <el-date-picker\r\n v-if=\"column.type !== 'time' && column.type !== 'timerange'\"\r\n v-model=\"proxys[column.prop || '']\"\r\n :type=\"column.type\"\r\n :clearable=\"column.clearable\"\r\n :start-placeholder=\"column.startPlaceholder\"\r\n :end-placeholder=\"column.endPlaceholder\"\r\n :format=\"column.format\"\r\n :value-format=\"\r\n column.valueFormat || getValueFormatByType(column.type)\r\n \"\r\n />\r\n <el-time-picker\r\n v-else\r\n v-model=\"proxys[column.prop || '']\"\r\n :is-range=\"column.type === 'timerange'\"\r\n :clearable=\"column.clearable\"\r\n :start-placeholder=\"column.startPlaceholder\"\r\n :end-placeholder=\"column.endPlaceholder\"\r\n :value-format=\"\r\n column.valueFormat || getValueFormatByType(column.type)\r\n \"\r\n />\r\n </template>\r\n <!---->\r\n <!--picture-->\r\n <span\r\n v-else-if=\"column.type === 'picture'\"\r\n style=\"\r\n color: var(--el-text-color-regular);\r\n line-height: 32px;\r\n height: 32px;\r\n \"\r\n >\r\n 暂不支持picture,请使用插槽自行实现\r\n </span>\r\n <!---->\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <!---->\r\n <!--详情模式-->\r\n <template v-else>\r\n <table class=\"detail-desc\">\r\n <tbody>\r\n <tr v-for=\"(row, rowIndex) in detailTableRows\" :key=\"rowIndex\">\r\n <template v-for=\"(column, index) in row\" :key=\"index\">\r\n <td\r\n :style=\"{ width: column.labelWidth || formOption.labelWidth }\"\r\n colspan=\"1\"\r\n class=\"label\"\r\n >\r\n {{ column.label }}\r\n </td>\r\n <td :colspan=\"getValueColspan(column, row, index)\">\r\n <template v-if=\"column.type === 'picture'\">\r\n <MPicture\r\n :src=\"getDetailPic(proxys, column)[0]\"\r\n :preview-src-list=\"getDetailPic(proxys, column)[0]\"\r\n img-width=\"100px\"\r\n img-height=\"100px\"\r\n />\r\n </template>\r\n <template v-else-if=\"NEED_DIC_TYPE.includes(column.type || '')\">\r\n {{ formatDicValue(proxys, column) }}\r\n </template>\r\n <template v-else-if=\"column.type === 'qrcode'\">\r\n <MQrcode\r\n v-if=\"proxys[column.prop || '']\"\r\n :text=\"proxys[column.prop || '']\"\r\n align=\"center\"\r\n />\r\n </template>\r\n <template v-else-if=\"column.type === 'barcode'\">\r\n <MBarcode\r\n v-if=\"proxys[column.prop || '']\"\r\n :text=\"proxys[column.prop || '']\"\r\n align=\"center\"\r\n />\r\n </template>\r\n <template v-else>\r\n {{ proxys[column.prop || ''] }}\r\n </template>\r\n </td>\r\n </template>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </template>\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent","useSlots","useGlobalConfig","ref","computed","get","set","debugWarn","item","watch","cloneDeep"],"mappings":";;;;;;;;;;;;AAWc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAId,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAGvB,IAAA,MAAM,eAAeC,+BAAgB,EAAA,CAAA;AAGrC,IAAA,MAAM,UAAUC,OAAkB,EAAA,CAAA;AAGlC,IAAA,MAAM,WAAc,GAAA;AAAA,MAClB,OAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,KACF,CAAA;AAGA,IAAA,MAAM,UAAa,GAAA;AAAA,MACjB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,KACF,CAAA;AAGA,IAAA,MAAM,aAAgB,GAAA,CAAC,QAAU,EAAA,UAAA,EAAY,SAAS,QAAQ,CAAA,CAAA;AAG9D,IAAA,MAAM,aAAaA,OAAiB,CAAA;AAAA,MAElC,UAAY,EAAA,MAAA;AAAA,MACZ,QAAQ,EAAC;AAAA,KACV,CAAA,CAAA;AAKK,IAAA,MAAA,eAAA,GAAkBC,aAAS,MAAM;AACrC,MAAA,MAAM,OAAO,EAAC,CAAA;AACd,MAAA,IAAI,aAAa,EAAC,CAAA;AAClB,MAAA,IAAI,YAAe,GAAA,CAAA,CAAA;AACnB,MAAA,KAAA,MAAW,IAAQ,IAAA,UAAA,CAAW,KAAM,CAAA,MAAA,IAAU,EAAI,EAAA;AAC1C,QAAA,MAAA,GAAA,GAAM,KAAK,IAAQ,IAAA,EAAA,CAAA;AAErB,QAAA,IAAA,YAAA,GAAe,MAAM,EAAI,EAAA;AAC3B,UAAA,IAAA,CAAK,KAAK,UAAU,CAAA,CAAA;AACpB,UAAA,UAAA,GAAa,EAAC,CAAA;AACC,UAAA,YAAA,GAAA,CAAA,CAAA;AAAA,SACjB;AACA,QAAA,UAAA,CAAW,KAAK,IAAI,CAAA,CAAA;AACJ,QAAA,YAAA,IAAA,GAAA,CAAA;AAAA,OAClB;AACA,MAAA,IAAI,UAAW,CAAA,MAAA;AAAa,QAAA,IAAA,CAAA,KAAK,UAAU,CAAA,CAAA;AACpC,MAAA,OAAA,IAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAA,MAAM,MAAS,GAAA,IAAI,KAAM,CAAA,KAAA,CAAM,KAAc,EAAA;AAAA,MAC3C,GAAA,CAAI,QAAQ,QAAU,EAAA;AACb,QAAA,OAAAC,iBAAA,CAAI,QAAQ,QAAQ,CAAA,CAAA;AAAA,OAC7B;AAAA,MACA,GAAA,CAAI,MAAQ,EAAA,QAAA,EAAU,KAAO,EAAA;AACvB,QAAAC,iBAAA,CAAA,MAAA,EAAQ,UAAU,KAAK,CAAA,CAAA;AACpB,QAAA,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAKD,IAAA,MAAM,YAAY,MAAM;;AAEtB,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,UAAW,CAAA,KAAA,CAAM,MAAQ,EAAA;AAC/C,QAAS,KAAA,IAAA,CAAA,GAAI,GAAG,CAAI,IAAA,CAAA,EAAA,GAAA,UAAA,CAAW,MAAM,MAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAyB,SAAQ,CAAK,EAAA,EAAA;AACxD,UAAM,MAAA,MAAA,GAAS,UAAW,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA,CAAA;AACvC,UAAA,IAAI,MAAO,CAAA,IAAA,IAAQ,MAAO,CAAA,MAAA,CAAO,UAAU,KAAW,CAAA,EAAA;AACpD,YAAA,IAAI,OAAO,KAAO,EAAA;AACT,cAAA,MAAA,CAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,KAAA,CAAA;AAAA,aACxB,MAAA;AACL,cAAA,MAAM,SAAY,GAAA;AAAA,gBAChB,UAAA;AAAA,gBACA,eAAA;AAAA,gBACA,WAAA;AAAA,gBACA,YAAA;AAAA,gBACA,WAAA;AAAA,gBACA,WAAA;AAAA,eACF,CAAA;AAEG,cAAA,IAAA,MAAA,CAAO,IAAS,KAAA,QAAA,IAAY,MAAO,CAAA,QAAA,IACpC,UAAU,QAAS,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAE,CACpC,EAAA;AACO,gBAAA,MAAA,CAAA,MAAA,CAAO,QAAQ,EAAC,CAAA;AAAA,eAClB,MAAA;AACE,gBAAA,MAAA,CAAA,OAAO,IAAQ,CAAA,GAAA,EAAA,CAAA;AAAA,eACxB;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAMM,IAAA,MAAA,oBAAA,GAAuB,CAAC,IAAiB,KAAA;AAC7C,MAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AACb,MAAQ,QAAA,IAAA;AAAA,QACD,KAAA,WAAA,CAAA;AAAA,QACA,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,MAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,YAAA,CAAA;AAAA,QACA,KAAA,OAAA;AACM,UAAA,MAAA,GAAA,SAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,WAAA,CAAA;AAAA,QACA,KAAA,MAAA,CAAA;AAAA,QACA,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,YAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,eAAA,CAAA;AAAA,QACA,KAAA,UAAA;AACM,UAAA,MAAA,GAAA,qBAAA,CAAA;AACT,UAAA,MAAA;AAAA,QACG,KAAA,MAAA;AACM,UAAA,MAAA,GAAA,UAAA,CAAA;AACT,UAAA,MAAA;AAAA,OAAA;AAEG,MAAA,OAAA,MAAA,CAAA;AAAA,KACT,CAAA;AAKA,IAAA,MAAM,mBAAmB,MAAM;;AACvB,MAAA,MAAA,SAAA,GAAA,CAAY,sBAAW,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,WAAlB,IAA0B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAC,MAAA,KAAW,MAAO,CAAA,MAAA,CAAA,CAAA;AACpE,MAAA,IAAI,SAAa,IAAA,EAAA,CAAC,EAAa,GAAA,YAAA,CAAA,KAAA,KAAb,mBAAoB,OAAS,CAAA,EAAA;AAC7C,QAAAC,eAAA,CAAU,SAAS,+BAA+B,CAAA,CAAA;AAClD,QAAA,OAAA;AAAA,OACF;AAKM,MAAA,MAAA,eAAA,GAAkB,CAAC,MAAwB,KAAA;AACxC,QAAA,OAAA,IAAI,OAAQ,CAAA,CAAC,OAAY,KAAA;AAC9B,UAAA,IAAI,SAAY,GAAA,KAAA,CAAA;AAEH,UAAA,YAAA,CAAA,KAAA,CACV,OAAQ,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,CAAO,QAAU,EAAA,MAAA,CAAO,UAAU,CAAA,CACzD,IAAK,CAAA,CAAC,CAAW,KAAA;AAEhB,YAAA,MAAM,EAAE,IAAM,EAAA,KAAA,EAAO,OAAU,GAAA,MAAA,CAAO,aAAa,CAAC,CAAA,CAAA;AACpD,YAAA,IAAI,IAAQ,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAG,EAAA;AAC/B,cAAA,MAAA,CAAO,SAAa,CAAA,GAAA,IAAA,CAAK,GAAI,CAAA,CAAC,IAAS,KAAA;AACrC,gBAAA,MAAM,YAAY,KAAM,CAAA,OAAA,CAAQ,YAAc,EAAA,CAAC,OAAO,GAAQ,KAAA;AACrD,kBAAA,OAAA,KAAK,GAAQ,CAAA,IAAA,KAAA,CAAA;AAAA,iBACrB,CAAA,CAAA;AACM,gBAAA,OAAA;AAAA,kBACL,KAAO,EAAA,SAAA;AAAA,kBACP,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,iBACd,CAAA;AAAA,eACD,CAAA,CAAA;AACW,cAAA,SAAA,GAAA,IAAA,CAAA;AAAA,aACd;AAAA,WACD,CACA,CAAA,OAAA,CAAQ,MAAM;AACb,YAAA,IAAI,CAAC,SAAW,EAAA;AACP,cAAA,MAAA,CAAA,aAAa,EAAC,CAAA;AAAA,aACvB;AACA,YAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,WACb,CAAA,CAAA;AAAA,SACJ,CAAA,CAAA;AAAA,OACH,CAAA;AACS,MAAA,KAAA,IAAA,CAAA,GAAI,CAAG,EAAA,CAAA,GAAA,CAAA,CAAA,CAAK,EAAW,GAAA,UAAA,CAAA,KAAA,KAAX,mBAAkB,MAAU,KAAA,EAAI,EAAA,MAAA,EAAQ,CAAK,EAAA,EAAA;AAEhE,QAAM,MAAA,MAAA,GAAS,UAAW,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA,CAAA;AACvC,QAAA,IAAI,OAAO,MAAQ,EAAA;AACb,UAAA,IAAA,CAAC,OAAO,YAAc,EAAA;AACxB,YAAAA,eAAA,CAAU,SAAS,+CAA+C,CAAA,CAAA;AAClE,YAAA,SAAA;AAAA,WACF;AACA,UAAA,eAAA,CAAgB,MAAM,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF,CAAA;AAOM,IAAA,MAAA,cAAA,GAAiB,CAAC,GAAA,EAAU,MAAwB,KAAA;AAExD,MAAA,IAAI,SAAgC,GAAA,EAAA,CAAA;AAE9B,MAAA,MAAA,gBAAA,GAAmB,CAAC,OAAA,EAAuB,KAAe,KAAA;AACxD,QAAA,MAAA,QAAA,GAAA,CAAY,WAAW,EAAC,EAAG,KAAK,CAAC,IAAA,KAAS,IAAK,CAAA,KAAA,KAAU,KAAK,CAAA,CAAA;AACpE,QAAA,IAAI,aAAa,KAAW,CAAA,EAAA;AACnB,UAAA,OAAA,SAAA,CAAA;AAAA,SACT;AACA,QAAA,OAAO,QAAS,CAAA,KAAA,CAAA;AAAA,OAClB,CAAA;AACA,MAAA,IACG,OAAO,IAAS,KAAA,QAAA,IAAY,OAAO,QACpC,IAAA,MAAA,CAAO,SAAS,UAChB,EAAA;AAEA,QAAA,IAAI,SAAc,EAAC,CAAA;AAEnB,QAAA,IACE,GAAI,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAA,CAAA,IAAO,QAC1B,GAAI,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAA,CAAA,IAAO,KAC1B,CAAA,IAAA,GAAA,CAAI,MAAO,CAAA,IAAA,IAAQ,QAAQ,EAC3B,EAAA;AACA,UAAA,IAAI,MAAM,OAAQ,CAAA,GAAA,CAAI,MAAO,CAAA,IAAA,IAAQ,GAAG,CAAG,EAAA;AAEhC,YAAA,MAAA,GAAA,GAAA,CAAI,OAAO,IAAQ,IAAA,EAAA,CAAA,CAAA;AAAA,qBACnB,OAAO,GAAA,CAAI,MAAO,CAAA,IAAA,IAAQ,QAAQ,QAAU,EAAA;AAErD,YAAA,MAAA,GAAS,GAAI,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAA,CAAA,CAAI,MAAM,GAAG,CAAA,CAAA;AAAA,WACpC,MAAA;AAEL,YAAA,MAAA,GAAS,CAAC,GAAA,CAAI,MAAO,CAAA,IAAA,IAAQ,EAAG,CAAA,CAAA,CAAA;AAAA,WAClC;AAAA,SACF;AAEA,QAAA,MAAM,SAAmB,EAAC,CAAA;AAC1B,QAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,UAAA,SAAA,GAAY,gBAAiB,CAAA,MAAA,CAAO,OAAW,IAAA,IAAI,KAAK,CAAA,CAAA;AACxD,UAAA,IAAI,cAAc,KAAW,CAAA,EAAA;AAC3B,YAAA,MAAA;AAAA,WACF;AACA,UAAA,MAAA,CAAO,KAAK,SAAS,CAAA,CAAA;AAAA,SACvB;AACO,QAAA,OAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAA;AAAA,OACxB;AAEY,MAAA,SAAA,GAAA,gBAAA,CAAiB,OAAO,OAAW,IAAA,IAAI,GAAI,CAAA,MAAA,CAAO,QAAQ,EAAG,CAAA,CAAA,CAAA;AAClE,MAAA,OAAA,SAAA,CAAA;AAAA,KACT,CAAA;AAOM,IAAA,MAAA,YAAA,GAAe,CAAC,GAAA,EAAU,MAAwB,KAAA;AACtD,MAAA,IAAI,CAAC,GAAO,IAAA,CAAC,GAAI,CAAA,MAAA,CAAO,QAAQ,EAAK,CAAA,EAAA;AACnC,QAAA,OAAO,EAAC,CAAA;AAAA,OACV;AACA,MAAA,MAAM,OAAiB,GAAI,CAAA,MAAA,CAAO,IAAQ,IAAA,EAAA,CAAA,CACvC,MAAM,MAAO,CAAA,SAAA,IAAa,GAAG,CAAA,CAC7B,IAAI,CAAC,GAAA,KAAA,CAAiB,MAAO,CAAA,SAAA,IAAa,MAAM,GAAG,CAAA,CAAA;AAC/C,MAAA,OAAA,IAAA,CAAA;AAAA,KACT,CAAA;AAEA,IAAA,MAAM,eAAkB,GAAA,CACtB,IACA,EAAA,IAAA,EACA,KACG,KAAA;AACG,MAAA,MAAA,YAAA,GAAe,CAAC,GAAuB,KAAA;AACrC,QAAA,MAAA,IAAA,GAAO,GAAI,CAAA,MAAA,CAAO,CAAC,GAAA,EAAKC,UAAS,GAAOA,IAAAA,KAAAA,CAAK,IAAQ,IAAA,EAAA,CAAA,EAAK,CAAC,CAAA,CAAA;AACjE,QAAA,OAAO,EAAK,GAAA,IAAA,CAAA;AAAA,OACd,CAAA;AACI,MAAA,IAAA,KAAA,KAAU,IAAK,CAAA,MAAA,GAAS,CAAG,EAAA;AAC7B,QAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,IAAQ,EAAM,IAAA,YAAA,CAAa,IAAI,CAAI,GAAA,CAAA,CAAA;AAAA,OAClD;AACQ,MAAA,OAAA,CAAA,IAAA,CAAK,QAAQ,EAAM,IAAA,CAAA,CAAA;AAAA,KAC7B,CAAA;AAKA,IAAA,MAAM,YAAY,MAAwB;AACjC,MAAA,OAAA,IAAI,OAAQ,CAAA,CAAC,OAAY,KAAA;AACtB,QAAA,OAAA,CAAA,KAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACjC,UAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,SACd,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACH,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;;AAElB,MAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA;AAEf,MAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,EAAA,CAAA;AAAA,KACjB,CAAA;AAEA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,CAAC,MAAwB,KAAA;AACvB,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,UAAA,CAAW,QAAQ,MAAO,CAAA,MAAA,CAAO,EAAI,EAAA,UAAA,CAAW,OAAO,MAAM,CAAA,CAAA;AAC7D,UAAA,IAAI,OAAO,MAAQ,EAAA;AACjB,YAAA,UAAA,CAAW,MAAM,MAAS,GAAAC,uBAAA;AAAA,cACxB,OAAO,MACJ,CAAA,MAAA;AAAA,gBACC,CAAC,MAAW,KAAA,EAAE,MAAM,UAAW,CAAA,MAAA,CAAO,QAAQ,EAAQ,CAAA,KAAA,KAAA,CAAA;AAAA,eACxD,CACC,IAAK,CAAA,CAAC,CAAG,EAAA,CAAA,KAAA,CAAO,EAAE,KAAS,IAAA,CAAA,KAAM,CAAE,CAAA,KAAA,IAAS,CAAE,CAAA,CAAA;AAAA,aACnD,CAAA;AAEiB,YAAA,gBAAA,EAAA,CAAA;AACb,YAAA,IAAA,CAAC,MAAM,QAAU,EAAA;AAET,cAAA,SAAA,EAAA,CAAA;AAAA,aACZ;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,QACX,IAAM,EAAA,IAAA;AAAA,OACR;AAAA,KACF,CAAA;AAEa,IAAA,QAAA,CAAA;AAAA,MAIX,SAAA;AAAA,MAIA,KAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"form2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref, useSlots, watch } from 'vue'\nimport { cloneDeep, get, set } from 'lodash-unified'\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\nimport { debugWarn } from '@m-eleplus-crud/utils'\nimport { formEmits, formProps } from './form'\nimport type { IDictValue } from '@m-eleplus-crud/components/common'\nimport type { FormInstance } from 'element-plus'\nimport type { IFormColumn, IFormOption } from './form'\n\nconst COMPONENT_NAME = 'MForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(formProps)\ndefineEmits(formEmits)\n\n// 插槽信息\nconst slots = useSlots() as any\n\n// 全局配置\nconst globalConfig = useGlobalConfig()\n\n// 表单实例\nconst formRef = ref<FormInstance>()\n\n// 表单输入类型\nconst INPUT_TYPES = [\n 'input',\n 'textarea',\n 'number',\n 'password',\n 'qrcode',\n 'barcode',\n]\n\n// 日期类型\nconst DATE_TYPES = [\n 'year',\n 'month',\n 'date',\n 'datetime',\n 'week',\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n 'time',\n 'timerange',\n]\n\n// 需要字典显示处理\nconst NEED_DIC_TYPE = ['select', 'checkbox', 'radio', 'switch']\n\n// 表单配置\nconst formOption = ref<IFormOption>({\n // 默认标签宽度80px\n labelWidth: '80px',\n column: [],\n})\n\n/**\n * @description 计算详情模式下的表格行\n */\nconst detailTableRows = computed(() => {\n const rows = []\n let currentRow = []\n let currentTotal = 0\n for (const item of formOption.value.column || []) {\n const req = item.span || 12\n // 若当前行加入该项超过总列数,则开启新行\n if (currentTotal + req > 24) {\n rows.push(currentRow)\n currentRow = []\n currentTotal = 0\n }\n currentRow.push(item)\n currentTotal += req\n }\n if (currentRow.length) rows.push(currentRow)\n return rows\n})\n\n// 表单model\nconst proxys = new Proxy(props.model as any, {\n get(target, property) {\n return get(target, property)\n },\n set(target, property, value) {\n set(target, property, value)\n return true\n },\n})\n\n/**\n * @description 初始化表单的值\n */\nconst initValue = () => {\n // 初始化搜索表单的值\n if (formOption.value && formOption.value.column) {\n for (let i = 0; i < formOption.value.column?.length; i++) {\n const column = formOption.value.column[i]\n if (column.prop && proxys[column.prop] === undefined) {\n if (column.value) {\n proxys[column.prop] = column.value\n } else {\n const ARR_TYPES = [\n 'checkbox',\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n 'timerange',\n ]\n if (\n (column.type === 'select' && column.multiple) ||\n ARR_TYPES.includes(column.type || '')\n ) {\n proxys[column.prop] = []\n } else {\n proxys[column.prop] = ''\n }\n }\n }\n }\n }\n}\n\n/**\n * 根据类型获取默认时间格式\n * @param type 类型\n */\nconst getValueFormatByType = (type: string) => {\n let format = ''\n switch (type) {\n case 'yearrange':\n case 'year':\n format = 'YYYY'\n break\n case 'monthrange':\n case 'month':\n format = 'YYYY-MM'\n break\n case 'daterange':\n case 'week':\n case 'date':\n format = 'YYYY-MM-DD'\n break\n case 'datetimerange':\n case 'datetime':\n format = 'YYYY-MM-DD HH:mm:ss'\n break\n case 'time':\n format = 'HH:mm:ss'\n break\n }\n return format\n}\n\n/**\n * 处理需要远程获取字典的配置\n */\nconst getAllRemoteDics = () => {\n const hasDicUrl = formOption.value?.column?.some((column) => column.dicUrl)\n if (hasDicUrl && !globalConfig.value?.httpGet) {\n debugWarn('MForm', 'global config httpGet is null')\n return\n }\n /**\n * 调用接口设置到dicData\n * @param column 列配置\n */\n const updateRemoteDic = (column: IFormColumn) => {\n return new Promise((resolve) => {\n let isSuccess = false\n // @ts-ignore\n globalConfig.value\n .httpGet(column.dicUrl, column.dicQuery, column.dicHeaders)\n .then((e: any) => {\n // @ts-ignore\n const { list, label, value } = column.dicFormatter(e)\n if (list && Array.isArray(list)) {\n column['dicData'] = list.map((item) => {\n const lastLabel = label.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return item[key] || match\n })\n return {\n label: lastLabel,\n value: item[value],\n }\n })\n isSuccess = true\n }\n })\n .finally(() => {\n if (!isSuccess) {\n column['dicData'] = []\n }\n resolve(null)\n })\n })\n }\n for (let i = 0; i < (formOption.value?.column || []).length; i++) {\n // @ts-ignore\n const column = formOption.value.column[i]\n if (column.dicUrl) {\n if (!column.dicFormatter) {\n debugWarn('MForm', 'dicUrl and dicFormatter must be used together')\n continue\n }\n updateRemoteDic(column)\n }\n }\n}\n\n/**\n * 根据配置获取表单项的绑定事件\n * @param column\n */\nconst getFormItemEventBind = (column: IFormColumn): object => {\n const result: any = {}\n for (const key in column) {\n if (key.startsWith('event')) {\n let funName = key.replace('event', '')\n funName = funName.charAt(0).toLowerCase() + funName.slice(1)\n // @ts-ignore\n result[funName] = column[key]\n }\n }\n return result\n}\n\n/**\n * 解析字典并展示\n * @param row 行数据\n * @param column 列配置\n */\nconst formatDicValue = (row: any, column: IFormColumn) => {\n // 未拿到字典值的placeholder\n let dictLabel: string | undefined = ''\n // 查找\n const findLabelByValue = (dicData: IDictValue[], value: any) => {\n const dictItem = (dicData || []).find((dict) => dict.value === value)\n if (dictItem === undefined) {\n return dictLabel\n }\n return dictItem.label\n }\n if (\n (column.type === 'select' && column.multiple) ||\n column.type === 'checkbox'\n ) {\n // select下拉且开启多选/多选模式\n let values: any = []\n\n if (\n row[column.prop || ''] != null &&\n row[column.prop || ''] != undefined &&\n row[column.prop || ''] !== ''\n ) {\n if (Array.isArray(row[column.prop || ''])) {\n // 数据就是数组\n values = row[column.prop || '']\n } else if (typeof row[column.prop || ''] === 'string') {\n // 数据是字符串,启动字符分割,后续需要弄成从配置读取\n values = row[column.prop || ''].split(',')\n } else {\n // 最后情况变成数组\n values = [row[column.prop || '']]\n }\n }\n // 结果集合\n const result: string[] = []\n for (const value of values) {\n dictLabel = findLabelByValue(column.dicData || [], value)\n if (dictLabel === undefined) {\n break\n }\n result.push(dictLabel)\n }\n return result.join(',')\n }\n // 单模式\n dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ''])\n return dictLabel\n}\n\n/**\n * 拿到详情模式下的图片集合\n * @param row\n * @param column\n */\nconst getDetailPic = (row: any, column: IFormColumn) => {\n if (!row || !row[column.prop || '']) {\n return []\n }\n const pics: string[] = row[column.prop || '']\n .split(column.imgSuffix || ';')\n .map((pic: string) => (column.imgPrefix || '') + pic)\n return pics\n}\n\nconst getValueColspan = (\n item: IFormColumn,\n rows: IFormColumn[],\n index: number\n) => {\n const getRemaining = (row: IFormColumn[]) => {\n const used = row.reduce((acc, item) => acc + (item.span || 12), 0)\n return 24 - used\n }\n if (index === rows.length - 1) {\n return (item.span || 12) + getRemaining(rows) - 1\n }\n return (item.span || 12) - 1\n}\n\n/**\n * @description 校验表单\n */\nconst validForm = (): Promise<boolean> => {\n return new Promise((resolve) => {\n formRef.value!.validate((valid) => {\n resolve(valid)\n })\n })\n}\n\n/**\n * @description 清空数据和校验规则\n */\nconst clear = () => {\n // 清空校验规则\n formRef.value?.clearValidate()\n // 清空表单数据\n formRef.value?.resetFields()\n}\n\nwatch(\n () => props.option as IFormOption,\n (newVal: IFormOption) => {\n if (newVal) {\n formOption.value = Object.assign({}, formOption.value, newVal)\n if (newVal.column) {\n formOption.value.column = cloneDeep(\n newVal.column\n .filter(\n (column) => !(props.permission[column.prop || ''] === false)\n )\n .sort((a, b) => (b.order || 0) - (a.order || 0))\n )\n // 处理远程字典的配置\n getAllRemoteDics()\n if (!props.readonly) {\n // 初始化表单的值\n initValue()\n }\n }\n }\n },\n {\n immediate: true,\n deep: true,\n }\n)\n\ndefineExpose({\n /**\n * @description 校验表单\n */\n validForm,\n /**\n * @description 清空表单\n */\n clear,\n})\n</script>\n\n<template>\n <div class=\"m-form\">\n <!--编辑模式-->\n <el-form\n v-if=\"!readonly\"\n ref=\"formRef\"\n :model=\"proxys\"\n :disabled=\"loading\"\n :size=\"size || globalConfig.size\"\n :label-width=\"formOption.labelWidth\"\n style=\"width: 100%\"\n @submit.prevent\n >\n <el-row :gutter=\"0\">\n <el-col\n v-for=\"(column, columnIndex) in formOption.column\"\n :key=\"columnIndex\"\n :span=\"column.span || 12\"\n >\n <el-form-item\n style=\"width: 100%\"\n :label=\"column.label + ':'\"\n :prop=\"column.prop\"\n :rules=\"column.rules\"\n :label-width=\"column.labelWidth || formOption.labelWidth\"\n >\n <!--插槽信息-->\n <slot\n v-if=\"slots[column.prop || '']\"\n :name=\"column.prop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--输入框-->\n <el-input\n v-else-if=\"!column.type || INPUT_TYPES.includes(column.type)\"\n v-model.trim=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n :placeholder=\"column.placeholder\"\n :maxlength=\"column.maxlength\"\n :show-word-limit=\"column.showWordLimit\"\n :show-password=\"column.showPassword\"\n :type=\"\n !column.type || column.type === 'input' ? 'text' : column.type\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n <!---->\n <!--下拉框-->\n <el-select\n v-else-if=\"column.type === 'select'\"\n v-model.trim=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n :placeholder=\"column.placeholder\"\n :multiple=\"column.multiple\"\n :clearable=\"column.clearable\"\n :filterable=\"column.filterable\"\n :filter-method=\"column.filterMethod\"\n :remote=\"column.remote\"\n :remote-method=\"column.remoteMethod\"\n :loading=\"column.loading\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-option\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :label=\"dicItem.label\"\n :value=\"dicItem.value\"\n />\n </el-select>\n <!---->\n <!--radio-->\n <el-radio-group\n v-else-if=\"column.type === 'radio'\"\n v-model=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-radio\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :value=\"dicItem.value\"\n :label=\"dicItem.value\"\n >\n {{ dicItem.label }}\n </el-radio>\n </el-radio-group>\n <!---->\n <!--checkbox-->\n <el-checkbox-group\n v-else-if=\"column.type === 'checkbox'\"\n v-model=\"proxys[column.prop || '']\"\n style=\"width: 100%\"\n v-on=\"getFormItemEventBind(column)\"\n >\n <el-checkbox\n v-for=\"(dicItem, dicIndex) in column.dicData || []\"\n :key=\"dicIndex\"\n :label=\"dicItem.label\"\n :value=\"dicItem.value\"\n />\n </el-checkbox-group>\n <!---->\n <!--switch-->\n <template v-else-if=\"column.type === 'switch'\">\n <span\n v-if=\"!column.dicData || column.dicData.length != 2\"\n style=\"\n color: var(--el-text-color-placeholder);\n line-height: 32px;\n height: 32px;\n \"\n >\"dicData/dicUrl的结果\"未设置或长度不等于2</span\n >\n <template v-else>\n <el-switch\n v-model=\"proxys[column.prop || '']\"\n :active-value=\"column.dicData[0].value\"\n :inactive-value=\"column.dicData[1].value\"\n v-on=\"getFormItemEventBind(column)\"\n />\n <span\n style=\"\n font-size: var(--el-font-size-base);\n color: var(--el-text-color-regular);\n margin-left: 6px;\n \"\n >{{\n proxys[column.prop || ''] === column.dicData[0].value\n ? column.dicData[0].label\n : column.dicData[1].label\n }}</span\n >\n </template>\n </template>\n <!---->\n <!--时间-->\n <template v-else-if=\"DATE_TYPES.includes(column.type)\">\n <el-date-picker\n v-if=\"column.type !== 'time' && column.type !== 'timerange'\"\n v-model=\"proxys[column.prop || '']\"\n :type=\"column.type\"\n :clearable=\"column.clearable\"\n :start-placeholder=\"column.startPlaceholder\"\n :end-placeholder=\"column.endPlaceholder\"\n :format=\"column.format\"\n :value-format=\"\n column.valueFormat || getValueFormatByType(column.type)\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n <el-time-picker\n v-else\n v-model=\"proxys[column.prop || '']\"\n :is-range=\"column.type === 'timerange'\"\n :clearable=\"column.clearable\"\n :start-placeholder=\"column.startPlaceholder\"\n :end-placeholder=\"column.endPlaceholder\"\n :value-format=\"\n column.valueFormat || getValueFormatByType(column.type)\n \"\n v-on=\"getFormItemEventBind(column)\"\n />\n </template>\n <!---->\n <!--picture-->\n <span\n v-else-if=\"column.type === 'picture'\"\n style=\"\n color: var(--el-text-color-regular);\n line-height: 32px;\n height: 32px;\n \"\n >\n 暂不支持picture,请使用插槽自行实现\n </span>\n <!---->\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <!---->\n <!--详情模式-->\n <template v-else>\n <table class=\"detail-desc\">\n <tbody>\n <tr v-for=\"(row, rowIndex) in detailTableRows\" :key=\"rowIndex\">\n <template v-for=\"(column, index) in row\" :key=\"index\">\n <td\n :style=\"{ width: column.labelWidth || formOption.labelWidth }\"\n colspan=\"1\"\n class=\"label\"\n >\n {{ column.label }}\n </td>\n <td :colspan=\"getValueColspan(column, row, index)\">\n <template v-if=\"column.type === 'picture'\">\n <MPicture\n :src=\"getDetailPic(proxys, column)[0]\"\n :preview-src-list=\"getDetailPic(proxys, column)[0]\"\n img-width=\"100px\"\n img-height=\"100px\"\n />\n </template>\n <template v-else-if=\"NEED_DIC_TYPE.includes(column.type || '')\">\n {{ formatDicValue(proxys, column) }}\n </template>\n <template v-else-if=\"column.type === 'qrcode'\">\n <MQrcode\n v-if=\"proxys[column.prop || '']\"\n :text=\"proxys[column.prop || '']\"\n align=\"center\"\n />\n </template>\n <template v-else-if=\"column.type === 'barcode'\">\n <MBarcode\n v-if=\"proxys[column.prop || '']\"\n :text=\"proxys[column.prop || '']\"\n align=\"center\"\n />\n </template>\n <template v-else>\n {{ proxys[column.prop || ''] }}\n </template>\n </td>\n </template>\n </tr>\n </tbody>\n </table>\n </template>\n </div>\n</template>\n"],"names":["useSlots","useGlobalConfig","ref","computed","get","set","debugWarn","item","watch","cloneDeep"],"mappings":"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"}
|
|
@@ -16,9 +16,9 @@ var configProviderProps = require('./config-provider/src/config-provider-props.j
|
|
|
16
16
|
var constants = require('./config-provider/src/constants.js');
|
|
17
17
|
var useGlobalConfig = require('./config-provider/src/hooks/use-global-config.js');
|
|
18
18
|
var table = require('./table/src/table.js');
|
|
19
|
-
var search = require('./search/src/
|
|
20
|
-
var picture = require('./picture/src/
|
|
21
|
-
var dialog = require('./dialog/src/
|
|
19
|
+
var search = require('./search/src/search2.js');
|
|
20
|
+
var picture = require('./picture/src/picture.js');
|
|
21
|
+
var dialog = require('./dialog/src/dialog.js');
|
|
22
22
|
var qrcode = require('./qrcode/src/qrcode.js');
|
|
23
23
|
var barcode = require('./barcode/src/barcode.js');
|
|
24
24
|
var form = require('./form/src/form.js');
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var picture$1 = require('./src/
|
|
6
|
-
var picture = require('./src/
|
|
5
|
+
var picture$1 = require('./src/picture2.js');
|
|
6
|
+
var picture = require('./src/picture.js');
|
|
7
7
|
var install = require('../../utils/vue/install.js');
|
|
8
8
|
|
|
9
9
|
const MPicture = install.withInstall(picture$1["default"]);
|