m-eleplus-crud 0.0.11 → 0.0.13

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.
Files changed (90) hide show
  1. package/dist/index.full.js +13 -2
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +6 -6
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +13 -2
  7. package/es/components/crud/src/crud.d.ts +8 -0
  8. package/es/components/form/src/form.d.ts +4 -0
  9. package/es/components/search/src/search.d.ts +4 -0
  10. package/es/index.mjs +6 -6
  11. package/es/packages/components/barcode/index.mjs +2 -2
  12. package/es/packages/components/barcode/src/barcode.mjs +53 -18
  13. package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
  14. package/es/packages/components/barcode/src/barcode2.mjs +18 -53
  15. package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
  16. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  17. package/es/packages/components/crud/src/crud2.mjs +10 -0
  18. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  19. package/es/packages/components/dialog/index.mjs +2 -2
  20. package/es/packages/components/dialog/src/dialog.mjs +116 -75
  21. package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
  22. package/es/packages/components/dialog/src/dialog2.mjs +75 -116
  23. package/es/packages/components/dialog/src/dialog2.mjs.map +1 -1
  24. package/es/packages/components/form/src/form.mjs +1 -1
  25. package/es/packages/components/form/src/form.mjs.map +1 -1
  26. package/es/packages/components/form/src/form2.mjs.map +1 -1
  27. package/es/packages/components/index.mjs +6 -6
  28. package/es/packages/components/pagination/index.mjs +2 -2
  29. package/es/packages/components/pagination/src/pagination.mjs +41 -38
  30. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  31. package/es/packages/components/pagination/src/pagination2.mjs +38 -41
  32. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  33. package/es/packages/components/qrcode/index.mjs +2 -2
  34. package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
  35. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  36. package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
  37. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  38. package/es/packages/components/search/index.mjs +2 -2
  39. package/es/packages/components/search/src/search.mjs +438 -25
  40. package/es/packages/components/search/src/search.mjs.map +1 -1
  41. package/es/packages/components/search/src/search2.mjs +25 -437
  42. package/es/packages/components/search/src/search2.mjs.map +1 -1
  43. package/es/packages/components/table/index.mjs +2 -2
  44. package/es/packages/components/table/src/table.mjs +37 -420
  45. package/es/packages/components/table/src/table.mjs.map +1 -1
  46. package/es/packages/components/table/src/table2.mjs +420 -37
  47. package/es/packages/components/table/src/table2.mjs.map +1 -1
  48. package/lib/components/crud/src/crud.d.ts +8 -0
  49. package/lib/components/form/src/form.d.ts +4 -0
  50. package/lib/components/search/src/search.d.ts +4 -0
  51. package/lib/index.js +6 -6
  52. package/lib/packages/components/barcode/index.js +2 -2
  53. package/lib/packages/components/barcode/src/barcode.js +57 -19
  54. package/lib/packages/components/barcode/src/barcode.js.map +1 -1
  55. package/lib/packages/components/barcode/src/barcode2.js +19 -57
  56. package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
  57. package/lib/packages/components/crud/src/crud.js.map +1 -1
  58. package/lib/packages/components/crud/src/crud2.js +10 -0
  59. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  60. package/lib/packages/components/dialog/index.js +2 -2
  61. package/lib/packages/components/dialog/src/dialog.js +116 -76
  62. package/lib/packages/components/dialog/src/dialog.js.map +1 -1
  63. package/lib/packages/components/dialog/src/dialog2.js +76 -116
  64. package/lib/packages/components/dialog/src/dialog2.js.map +1 -1
  65. package/lib/packages/components/form/src/form.js +1 -1
  66. package/lib/packages/components/form/src/form.js.map +1 -1
  67. package/lib/packages/components/form/src/form2.js.map +1 -1
  68. package/lib/packages/components/index.js +6 -6
  69. package/lib/packages/components/pagination/index.js +2 -2
  70. package/lib/packages/components/pagination/src/pagination.js +42 -38
  71. package/lib/packages/components/pagination/src/pagination.js.map +1 -1
  72. package/lib/packages/components/pagination/src/pagination2.js +38 -42
  73. package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
  74. package/lib/packages/components/qrcode/index.js +2 -2
  75. package/lib/packages/components/qrcode/src/qrcode.js +66 -23
  76. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  77. package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
  78. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  79. package/lib/packages/components/search/index.js +2 -2
  80. package/lib/packages/components/search/src/search.js +438 -26
  81. package/lib/packages/components/search/src/search.js.map +1 -1
  82. package/lib/packages/components/search/src/search2.js +26 -437
  83. package/lib/packages/components/search/src/search2.js.map +1 -1
  84. package/lib/packages/components/table/index.js +2 -2
  85. package/lib/packages/components/table/src/table.js +38 -425
  86. package/lib/packages/components/table/src/table.js.map +1 -1
  87. package/lib/packages/components/table/src/table2.js +425 -38
  88. package/lib/packages/components/table/src/table2.js.map +1 -1
  89. package/package.json +1 -1
  90. package/web-types.json +1 -1
@@ -1,80 +1,121 @@
1
- import { isBoolean } from '../../../utils/types.mjs';
2
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
3
- import { useSizeProp } from '../../../hooks/use-size/index.mjs';
4
- import { isFunction } from '@vue/shared';
1
+ import { defineComponent, useSlots, ref, resolveComponent, openBlock, createElementBlock, createVNode, withCtx, unref, createBlock, createTextVNode, toDisplayString, createCommentVNode, renderSlot } from 'vue';
2
+ import { dialogProps, dialogEmits } from './dialog2.mjs';
3
+ import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
4
+ import { useLocale } from '../../../hooks/use-locale/index.mjs';
5
+ import { useGlobalConfig } from '../../config-provider/src/hooks/use-global-config.mjs';
5
6
 
6
- const dialogProps = buildProps({
7
- size: useSizeProp,
8
- modelValue: {
9
- type: Boolean,
10
- required: true
11
- },
12
- title: {
13
- type: String,
14
- default: ""
15
- },
16
- width: {
17
- type: String,
18
- default: "600px"
19
- },
20
- top: {
21
- type: String,
22
- default: "2vh"
23
- },
24
- appendToBody: {
25
- type: Boolean,
26
- default: true
27
- },
28
- closeOnClickModal: {
29
- type: Boolean,
30
- default: false
31
- },
32
- closeOnnPressEscape: {
33
- type: Boolean,
34
- default: false
35
- },
36
- beforeClose: {
37
- type: Function
38
- },
39
- draggable: {
40
- type: Boolean,
41
- default: true
42
- },
43
- destroyOnClose: {
44
- type: Boolean,
45
- default: true
46
- },
47
- saveBtn: {
48
- type: Boolean,
49
- default: true
50
- },
51
- cancelBtn: {
52
- type: Boolean,
53
- default: true
54
- },
55
- saveBtnText: {
56
- type: String,
57
- default: ""
58
- },
59
- saveBtnIcon: {
60
- type: String,
61
- default: "CircleCheck"
62
- },
63
- cancelBtnIcon: {
64
- type: String,
65
- default: "CircleClose"
66
- },
67
- cancelBtnText: {
68
- type: String,
69
- default: ""
7
+ const COMPONENT_NAME = "MDialog";
8
+ const __default__ = defineComponent({
9
+ name: COMPONENT_NAME
10
+ });
11
+ const _sfc_main = defineComponent({
12
+ ...__default__,
13
+ props: dialogProps,
14
+ emits: dialogEmits,
15
+ setup(__props, { emit: __emit }) {
16
+ const props = __props;
17
+ const emit = __emit;
18
+ const slots = useSlots();
19
+ const { t } = useLocale();
20
+ const globalConfig = useGlobalConfig();
21
+ const dialogLoading = ref(false);
22
+ const closeDialog = () => {
23
+ emit("update:modelValue", false);
24
+ emit("close");
25
+ };
26
+ const enter = () => {
27
+ dialogLoading.value = true;
28
+ const done = () => {
29
+ emit("update:modelValue", false);
30
+ };
31
+ const loading = () => {
32
+ dialogLoading.value = false;
33
+ };
34
+ emit("enter", done, loading);
35
+ };
36
+ const close = () => {
37
+ emit("update:modelValue", false);
38
+ emit("cancel");
39
+ };
40
+ const onBeforeClose = (done) => {
41
+ if (dialogLoading.value) {
42
+ return false;
43
+ }
44
+ if (props.beforeClose) {
45
+ props.beforeClose(done);
46
+ } else {
47
+ done();
48
+ }
49
+ };
50
+ return (_ctx, _cache) => {
51
+ const _component_el_button = resolveComponent("el-button");
52
+ const _component_el_dialog = resolveComponent("el-dialog");
53
+ return openBlock(), createElementBlock("div", { class: "m-dialog" }, [
54
+ createVNode(_component_el_dialog, {
55
+ class: "m-dialog",
56
+ "model-value": _ctx.modelValue,
57
+ title: _ctx.title,
58
+ width: _ctx.width,
59
+ top: _ctx.top,
60
+ "append-to-body": _ctx.appendToBody,
61
+ "close-on-click-modal": _ctx.closeOnClickModal,
62
+ "close-onn-press-escape": _ctx.closeOnnPressEscape,
63
+ "before-close": onBeforeClose,
64
+ draggable: _ctx.draggable,
65
+ "destroy-on-close": _ctx.destroyOnClose,
66
+ onClose: closeDialog
67
+ }, {
68
+ footer: withCtx(() => [
69
+ !unref(slots).btns ? (openBlock(), createElementBlock("div", {
70
+ key: 0,
71
+ class: "dialog-footer"
72
+ }, [
73
+ _ctx.cancelBtn ? (openBlock(), createBlock(_component_el_button, {
74
+ key: 0,
75
+ size: _ctx.size || unref(globalConfig).size,
76
+ icon: _ctx.cancelBtnIcon,
77
+ loading: dialogLoading.value,
78
+ onClick: close
79
+ }, {
80
+ default: withCtx(() => [
81
+ createTextVNode(
82
+ toDisplayString(_ctx.cancelBtnText || unref(t)("m.dialog.cancelText")),
83
+ 1
84
+ )
85
+ ]),
86
+ _: 1
87
+ }, 8, ["size", "icon", "loading"])) : createCommentVNode("v-if", true),
88
+ _ctx.saveBtn ? (openBlock(), createBlock(_component_el_button, {
89
+ key: 1,
90
+ size: _ctx.size || unref(globalConfig).size,
91
+ icon: _ctx.saveBtnIcon,
92
+ loading: dialogLoading.value,
93
+ type: "primary",
94
+ onClick: enter
95
+ }, {
96
+ default: withCtx(() => [
97
+ createTextVNode(
98
+ toDisplayString(_ctx.saveBtnText || unref(t)("m.dialog.confirmText")),
99
+ 1
100
+ )
101
+ ]),
102
+ _: 1
103
+ }, 8, ["size", "icon", "loading"])) : createCommentVNode("v-if", true)
104
+ ])) : renderSlot(_ctx.$slots, "btns", {
105
+ key: 1,
106
+ loading: dialogLoading.value
107
+ })
108
+ ]),
109
+ default: withCtx(() => [
110
+ renderSlot(_ctx.$slots, "default", { loading: dialogLoading.value })
111
+ ]),
112
+ _: 3
113
+ }, 8, ["model-value", "title", "width", "top", "append-to-body", "close-on-click-modal", "close-onn-press-escape", "draggable", "destroy-on-close"])
114
+ ]);
115
+ };
70
116
  }
71
117
  });
72
- const dialogEmits = {
73
- "update:modelValue": (value) => isBoolean(value),
74
- close: () => true,
75
- cancel: () => true,
76
- enter: (done, loading) => isFunction(done) && isFunction(loading)
77
- };
118
+ var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "dialog.vue"]]);
78
119
 
79
- export { dialogEmits, dialogProps };
120
+ export { Dialog as default };
80
121
  //# sourceMappingURL=dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.mjs","sources":["../../../../../../../packages/components/dialog/src/dialog.ts"],"sourcesContent":["import { buildProps, isBoolean, isFunction } from '@m-eleplus-crud/utils'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const dialogProps = buildProps({\r\n /**\r\n * @description 弹窗尺寸\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 弹窗显示状态\r\n */\r\n modelValue: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n /**\r\n * @description 弹窗标题\r\n */\r\n title: {\r\n type: String,\r\n default: '',\r\n },\r\n /**\r\n * @description 弹窗宽度\r\n */\r\n width: {\r\n type: String,\r\n default: '600px',\r\n },\r\n /**\r\n * @description 顶部距离\r\n */\r\n top: {\r\n type: String,\r\n default: '2vh',\r\n },\r\n /**\r\n * @description 插入body\r\n */\r\n appendToBody: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 是否可以通过点击modal关闭Dialog\r\n */\r\n closeOnClickModal: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 是否可以通过按下ESC关闭Dialog\r\n */\r\n closeOnnPressEscape: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 弹窗关闭前回调\r\n */\r\n beforeClose: {\r\n type: Function,\r\n },\r\n /**\r\n * @description 为dialog开启拖拽功能\r\n */\r\n draggable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 当关闭Dialog时,销毁其中的元素\r\n */\r\n destroyOnClose: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 保存按钮是否展示\r\n */\r\n saveBtn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 取消按钮是否展示\r\n */\r\n cancelBtn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 保存按钮文字\r\n */\r\n saveBtnText: {\r\n type: String,\r\n default: '',\r\n },\r\n /**\r\n * @description 保存按钮图标\r\n */\r\n saveBtnIcon: {\r\n type: String,\r\n default: 'CircleCheck',\r\n },\r\n /**\r\n * @description 取消按钮图标\r\n */\r\n cancelBtnIcon: {\r\n type: String,\r\n default: 'CircleClose',\r\n },\r\n /**\r\n * @description 取消按钮文字\r\n */\r\n cancelBtnText: {\r\n type: String,\r\n default: '',\r\n },\r\n} as const)\r\nexport type DialogProps = ExtractPropTypes<typeof dialogProps>\r\n\r\nexport const dialogEmits = {\r\n /**\r\n * @description 更新弹窗状态\r\n * @param value 弹窗显示状态\r\n * @returns\r\n */\r\n 'update:modelValue': (value: boolean) => isBoolean(value),\r\n /**\r\n * @description 弹窗关闭\r\n * @returns\r\n */\r\n close: () => true,\r\n /**\r\n * @description 弹窗取消\r\n * @returns\r\n */\r\n cancel: () => true,\r\n /**\r\n * @description 弹窗确认\r\n * @param done 完成\r\n * @param loading 加载完毕\r\n * @returns\r\n */\r\n enter: (done: () => void, loading: () => void) =>\r\n isFunction(done) && isFunction(loading),\r\n}\r\nexport type DialogEmits = typeof dialogEmits\r\n"],"names":[],"mappings":";;;;;AAKO,MAAM,cAAc,UAAW,CAAA;AAAA,EAIpC,IAAM,EAAA,WAAA;AAAA,EAIN,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EAIA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,iBAAmB,EAAA;AAAA,IACjB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,mBAAqB,EAAA;AAAA,IACnB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,aAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,aAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EAMzB,mBAAqB,EAAA,CAAC,KAAmB,KAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EAKxD,OAAO,MAAM,IAAA;AAAA,EAKb,QAAQ,MAAM,IAAA;AAAA,EAOd,KAAA,EAAO,CAAC,IAAkB,EAAA,OAAA,KACxB,WAAW,IAAI,CAAA,IAAK,WAAW,OAAO,CAAA;AAC1C;;;;"}
1
+ {"version":3,"file":"dialog.mjs","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"],"mappings":";;;;;;;AAoDc,MAAA,cAAAA,eAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAExB,IAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AAG/B,IAAA,MAAA,aAAA,GAAgB,IAAI,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,121 +1,80 @@
1
- import { defineComponent, useSlots, ref, resolveComponent, openBlock, createElementBlock, createVNode, withCtx, unref, createBlock, createTextVNode, toDisplayString, createCommentVNode, renderSlot } from 'vue';
2
- import { dialogProps, dialogEmits } from './dialog.mjs';
3
- import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
4
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
5
- import { useGlobalConfig } from '../../config-provider/src/hooks/use-global-config.mjs';
1
+ import { isBoolean } from '../../../utils/types.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
3
+ import { useSizeProp } from '../../../hooks/use-size/index.mjs';
4
+ import { isFunction } from '@vue/shared';
6
5
 
7
- const COMPONENT_NAME = "MDialog";
8
- const __default__ = defineComponent({
9
- name: COMPONENT_NAME
10
- });
11
- const _sfc_main = defineComponent({
12
- ...__default__,
13
- props: dialogProps,
14
- emits: dialogEmits,
15
- setup(__props, { emit: __emit }) {
16
- const props = __props;
17
- const emit = __emit;
18
- const slots = useSlots();
19
- const { t } = useLocale();
20
- const globalConfig = useGlobalConfig();
21
- const dialogLoading = ref(false);
22
- const closeDialog = () => {
23
- emit("update:modelValue", false);
24
- emit("close");
25
- };
26
- const enter = () => {
27
- dialogLoading.value = true;
28
- const done = () => {
29
- emit("update:modelValue", false);
30
- };
31
- const loading = () => {
32
- dialogLoading.value = false;
33
- };
34
- emit("enter", done, loading);
35
- };
36
- const close = () => {
37
- emit("update:modelValue", false);
38
- emit("cancel");
39
- };
40
- const onBeforeClose = (done) => {
41
- if (dialogLoading.value) {
42
- return false;
43
- }
44
- if (props.beforeClose) {
45
- props.beforeClose(done);
46
- } else {
47
- done();
48
- }
49
- };
50
- return (_ctx, _cache) => {
51
- const _component_el_button = resolveComponent("el-button");
52
- const _component_el_dialog = resolveComponent("el-dialog");
53
- return openBlock(), createElementBlock("div", { class: "m-dialog" }, [
54
- createVNode(_component_el_dialog, {
55
- class: "m-dialog",
56
- "model-value": _ctx.modelValue,
57
- title: _ctx.title,
58
- width: _ctx.width,
59
- top: _ctx.top,
60
- "append-to-body": _ctx.appendToBody,
61
- "close-on-click-modal": _ctx.closeOnClickModal,
62
- "close-onn-press-escape": _ctx.closeOnnPressEscape,
63
- "before-close": onBeforeClose,
64
- draggable: _ctx.draggable,
65
- "destroy-on-close": _ctx.destroyOnClose,
66
- onClose: closeDialog
67
- }, {
68
- footer: withCtx(() => [
69
- !unref(slots).btns ? (openBlock(), createElementBlock("div", {
70
- key: 0,
71
- class: "dialog-footer"
72
- }, [
73
- _ctx.cancelBtn ? (openBlock(), createBlock(_component_el_button, {
74
- key: 0,
75
- size: _ctx.size || unref(globalConfig).size,
76
- icon: _ctx.cancelBtnIcon,
77
- loading: dialogLoading.value,
78
- onClick: close
79
- }, {
80
- default: withCtx(() => [
81
- createTextVNode(
82
- toDisplayString(_ctx.cancelBtnText || unref(t)("m.dialog.cancelText")),
83
- 1
84
- )
85
- ]),
86
- _: 1
87
- }, 8, ["size", "icon", "loading"])) : createCommentVNode("v-if", true),
88
- _ctx.saveBtn ? (openBlock(), createBlock(_component_el_button, {
89
- key: 1,
90
- size: _ctx.size || unref(globalConfig).size,
91
- icon: _ctx.saveBtnIcon,
92
- loading: dialogLoading.value,
93
- type: "primary",
94
- onClick: enter
95
- }, {
96
- default: withCtx(() => [
97
- createTextVNode(
98
- toDisplayString(_ctx.saveBtnText || unref(t)("m.dialog.confirmText")),
99
- 1
100
- )
101
- ]),
102
- _: 1
103
- }, 8, ["size", "icon", "loading"])) : createCommentVNode("v-if", true)
104
- ])) : renderSlot(_ctx.$slots, "btns", {
105
- key: 1,
106
- loading: dialogLoading.value
107
- })
108
- ]),
109
- default: withCtx(() => [
110
- renderSlot(_ctx.$slots, "default", { loading: dialogLoading.value })
111
- ]),
112
- _: 3
113
- }, 8, ["model-value", "title", "width", "top", "append-to-body", "close-on-click-modal", "close-onn-press-escape", "draggable", "destroy-on-close"])
114
- ]);
115
- };
6
+ const dialogProps = buildProps({
7
+ size: useSizeProp,
8
+ modelValue: {
9
+ type: Boolean,
10
+ required: true
11
+ },
12
+ title: {
13
+ type: String,
14
+ default: ""
15
+ },
16
+ width: {
17
+ type: String,
18
+ default: "600px"
19
+ },
20
+ top: {
21
+ type: String,
22
+ default: "2vh"
23
+ },
24
+ appendToBody: {
25
+ type: Boolean,
26
+ default: true
27
+ },
28
+ closeOnClickModal: {
29
+ type: Boolean,
30
+ default: false
31
+ },
32
+ closeOnnPressEscape: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ beforeClose: {
37
+ type: Function
38
+ },
39
+ draggable: {
40
+ type: Boolean,
41
+ default: true
42
+ },
43
+ destroyOnClose: {
44
+ type: Boolean,
45
+ default: true
46
+ },
47
+ saveBtn: {
48
+ type: Boolean,
49
+ default: true
50
+ },
51
+ cancelBtn: {
52
+ type: Boolean,
53
+ default: true
54
+ },
55
+ saveBtnText: {
56
+ type: String,
57
+ default: ""
58
+ },
59
+ saveBtnIcon: {
60
+ type: String,
61
+ default: "CircleCheck"
62
+ },
63
+ cancelBtnIcon: {
64
+ type: String,
65
+ default: "CircleClose"
66
+ },
67
+ cancelBtnText: {
68
+ type: String,
69
+ default: ""
116
70
  }
117
71
  });
118
- var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "dialog.vue"]]);
72
+ const dialogEmits = {
73
+ "update:modelValue": (value) => isBoolean(value),
74
+ close: () => true,
75
+ cancel: () => true,
76
+ enter: (done, loading) => isFunction(done) && isFunction(loading)
77
+ };
119
78
 
120
- export { Dialog as default };
79
+ export { dialogEmits, dialogProps };
121
80
  //# sourceMappingURL=dialog2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog2.mjs","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"],"mappings":";;;;;;;AAoDc,MAAA,cAAAA,eAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAExB,IAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AAG/B,IAAA,MAAA,aAAA,GAAgB,IAAI,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
+ {"version":3,"file":"dialog2.mjs","sources":["../../../../../../../packages/components/dialog/src/dialog.ts"],"sourcesContent":["import { buildProps, isBoolean, isFunction } from '@m-eleplus-crud/utils'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const dialogProps = buildProps({\r\n /**\r\n * @description 弹窗尺寸\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 弹窗显示状态\r\n */\r\n modelValue: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n /**\r\n * @description 弹窗标题\r\n */\r\n title: {\r\n type: String,\r\n default: '',\r\n },\r\n /**\r\n * @description 弹窗宽度\r\n */\r\n width: {\r\n type: String,\r\n default: '600px',\r\n },\r\n /**\r\n * @description 顶部距离\r\n */\r\n top: {\r\n type: String,\r\n default: '2vh',\r\n },\r\n /**\r\n * @description 插入body\r\n */\r\n appendToBody: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 是否可以通过点击modal关闭Dialog\r\n */\r\n closeOnClickModal: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 是否可以通过按下ESC关闭Dialog\r\n */\r\n closeOnnPressEscape: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 弹窗关闭前回调\r\n */\r\n beforeClose: {\r\n type: Function,\r\n },\r\n /**\r\n * @description 为dialog开启拖拽功能\r\n */\r\n draggable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 当关闭Dialog时,销毁其中的元素\r\n */\r\n destroyOnClose: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 保存按钮是否展示\r\n */\r\n saveBtn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 取消按钮是否展示\r\n */\r\n cancelBtn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n /**\r\n * @description 保存按钮文字\r\n */\r\n saveBtnText: {\r\n type: String,\r\n default: '',\r\n },\r\n /**\r\n * @description 保存按钮图标\r\n */\r\n saveBtnIcon: {\r\n type: String,\r\n default: 'CircleCheck',\r\n },\r\n /**\r\n * @description 取消按钮图标\r\n */\r\n cancelBtnIcon: {\r\n type: String,\r\n default: 'CircleClose',\r\n },\r\n /**\r\n * @description 取消按钮文字\r\n */\r\n cancelBtnText: {\r\n type: String,\r\n default: '',\r\n },\r\n} as const)\r\nexport type DialogProps = ExtractPropTypes<typeof dialogProps>\r\n\r\nexport const dialogEmits = {\r\n /**\r\n * @description 更新弹窗状态\r\n * @param value 弹窗显示状态\r\n * @returns\r\n */\r\n 'update:modelValue': (value: boolean) => isBoolean(value),\r\n /**\r\n * @description 弹窗关闭\r\n * @returns\r\n */\r\n close: () => true,\r\n /**\r\n * @description 弹窗取消\r\n * @returns\r\n */\r\n cancel: () => true,\r\n /**\r\n * @description 弹窗确认\r\n * @param done 完成\r\n * @param loading 加载完毕\r\n * @returns\r\n */\r\n enter: (done: () => void, loading: () => void) =>\r\n isFunction(done) && isFunction(loading),\r\n}\r\nexport type DialogEmits = typeof dialogEmits\r\n"],"names":[],"mappings":";;;;;AAKO,MAAM,cAAc,UAAW,CAAA;AAAA,EAIpC,IAAM,EAAA,WAAA;AAAA,EAIN,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EAIA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,iBAAmB,EAAA;AAAA,IACjB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,mBAAqB,EAAA;AAAA,IACnB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,aAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,aAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,WAAc,GAAA;AAAA,EAMzB,mBAAqB,EAAA,CAAC,KAAmB,KAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EAKxD,OAAO,MAAM,IAAA;AAAA,EAKb,QAAQ,MAAM,IAAA;AAAA,EAOd,KAAA,EAAO,CAAC,IAAkB,EAAA,OAAA,KACxB,WAAW,IAAI,CAAA,IAAK,WAAW,OAAO,CAAA;AAC1C;;;;"}
@@ -573,7 +573,7 @@ const _sfc_main = defineComponent({
573
573
  column.type === "picture" ? (openBlock(), createBlock(_component_MPicture, {
574
574
  key: 0,
575
575
  src: getDetailPic(unref(proxys), column)[0],
576
- "preview-src-list": getDetailPic(unref(proxys), column)[0],
576
+ "preview-src-list": getDetailPic(unref(proxys), column),
577
577
  "img-width": "100px",
578
578
  "img-height": "100px"
579
579
  }, null, 8, ["src", "preview-src-list"])) : NEED_DIC_TYPE.includes(column.type || "") ? (openBlock(), createElementBlock(