m-eleplus-crud 0.0.5 → 0.0.7

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 (108) hide show
  1. package/README.md +31 -31
  2. package/dist/index.full.js +11 -11
  3. package/dist/index.full.min.js +3 -3
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +5 -5
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +11 -11
  8. package/dist/locale/en.js +1 -1
  9. package/dist/locale/en.min.js +1 -1
  10. package/dist/locale/en.min.mjs +1 -1
  11. package/dist/locale/en.mjs +1 -1
  12. package/dist/locale/zh-cn.js +1 -1
  13. package/dist/locale/zh-cn.min.js +1 -1
  14. package/dist/locale/zh-cn.min.mjs +1 -1
  15. package/dist/locale/zh-cn.mjs +1 -1
  16. package/es/component.mjs.map +1 -1
  17. package/es/index.mjs +3 -3
  18. package/es/make-installer.mjs.map +1 -1
  19. package/es/packages/components/barcode/index.mjs.map +1 -1
  20. package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
  21. package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
  22. package/es/packages/components/config-provider/src/config-provider-props.mjs.map +1 -1
  23. package/es/packages/components/config-provider/src/hooks/use-global-config.mjs.map +1 -1
  24. package/es/packages/components/crud/index.mjs.map +1 -1
  25. package/es/packages/components/crud/src/crud2.mjs +8 -8
  26. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  27. package/es/packages/components/dialog/index.mjs.map +1 -1
  28. package/es/packages/components/form/src/form.mjs.map +1 -1
  29. package/es/packages/components/form/src/form2.mjs.map +1 -1
  30. package/es/packages/components/index.mjs +3 -3
  31. package/es/packages/components/pagination/index.mjs +2 -2
  32. package/es/packages/components/pagination/index.mjs.map +1 -1
  33. package/es/packages/components/pagination/src/pagination.mjs +38 -41
  34. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  35. package/es/packages/components/pagination/src/pagination2.mjs +41 -38
  36. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  37. package/es/packages/components/picture/index.mjs +2 -2
  38. package/es/packages/components/picture/index.mjs.map +1 -1
  39. package/es/packages/components/picture/src/picture.mjs +26 -19
  40. package/es/packages/components/picture/src/picture.mjs.map +1 -1
  41. package/es/packages/components/picture/src/picture2.mjs +19 -26
  42. package/es/packages/components/picture/src/picture2.mjs.map +1 -1
  43. package/es/packages/components/qrcode/index.mjs +2 -2
  44. package/es/packages/components/qrcode/index.mjs.map +1 -1
  45. package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
  46. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  47. package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
  48. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  49. package/es/packages/components/search/src/search.mjs.map +1 -1
  50. package/es/packages/components/search/src/search2.mjs +1 -1
  51. package/es/packages/components/search/src/search2.mjs.map +1 -1
  52. package/es/packages/components/table/index.mjs.map +1 -1
  53. package/es/packages/components/table/src/table.mjs.map +1 -1
  54. package/es/packages/components/table/src/table2.mjs.map +1 -1
  55. package/es/packages/hooks/use-size/index.mjs.map +1 -1
  56. package/es/packages/utils/browser.mjs.map +1 -1
  57. package/es/version.d.ts +1 -1
  58. package/es/version.mjs +1 -1
  59. package/es/version.mjs.map +1 -1
  60. package/global.d.ts +17 -17
  61. package/lib/component.js.map +1 -1
  62. package/lib/index.js +3 -3
  63. package/lib/make-installer.js.map +1 -1
  64. package/lib/packages/components/barcode/index.js.map +1 -1
  65. package/lib/packages/components/barcode/src/barcode.js.map +1 -1
  66. package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
  67. package/lib/packages/components/config-provider/src/config-provider-props.js.map +1 -1
  68. package/lib/packages/components/config-provider/src/hooks/use-global-config.js.map +1 -1
  69. package/lib/packages/components/crud/index.js.map +1 -1
  70. package/lib/packages/components/crud/src/crud2.js +8 -8
  71. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  72. package/lib/packages/components/dialog/index.js.map +1 -1
  73. package/lib/packages/components/form/src/form.js.map +1 -1
  74. package/lib/packages/components/form/src/form2.js.map +1 -1
  75. package/lib/packages/components/index.js +3 -3
  76. package/lib/packages/components/pagination/index.js +2 -2
  77. package/lib/packages/components/pagination/index.js.map +1 -1
  78. package/lib/packages/components/pagination/src/pagination.js +38 -42
  79. package/lib/packages/components/pagination/src/pagination.js.map +1 -1
  80. package/lib/packages/components/pagination/src/pagination2.js +42 -38
  81. package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
  82. package/lib/packages/components/picture/index.js +2 -2
  83. package/lib/packages/components/picture/index.js.map +1 -1
  84. package/lib/packages/components/picture/src/picture.js +26 -20
  85. package/lib/packages/components/picture/src/picture.js.map +1 -1
  86. package/lib/packages/components/picture/src/picture2.js +20 -26
  87. package/lib/packages/components/picture/src/picture2.js.map +1 -1
  88. package/lib/packages/components/qrcode/index.js +2 -2
  89. package/lib/packages/components/qrcode/index.js.map +1 -1
  90. package/lib/packages/components/qrcode/src/qrcode.js +66 -23
  91. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  92. package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
  93. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  94. package/lib/packages/components/search/src/search.js.map +1 -1
  95. package/lib/packages/components/search/src/search2.js +1 -1
  96. package/lib/packages/components/search/src/search2.js.map +1 -1
  97. package/lib/packages/components/table/index.js.map +1 -1
  98. package/lib/packages/components/table/src/table.js.map +1 -1
  99. package/lib/packages/components/table/src/table2.js.map +1 -1
  100. package/lib/packages/hooks/use-size/index.js.map +1 -1
  101. package/lib/packages/utils/browser.js.map +1 -1
  102. package/lib/version.d.ts +1 -1
  103. package/lib/version.js +1 -1
  104. package/lib/version.js.map +1 -1
  105. package/package.json +103 -103
  106. package/theme-chalk/src/index.scss +8 -8
  107. package/theme-chalk/src/qrcode.scss +8 -8
  108. package/web-types.json +1 -1
@@ -1,4 +1,4 @@
1
- /*! M ElePlus Crud v0.0.1 */
1
+ /*! M ElePlus Crud v0.0.5 */
2
2
 
3
3
  import { shallowRef, watchEffect, readonly, getCurrentScope, onScopeDispose, unref, getCurrentInstance, onMounted, nextTick, watch, ref, defineComponent, openBlock, createElementBlock, createElementVNode, warn, inject, computed, isRef, provide, renderSlot, useSlots, resolveComponent, createVNode, withModifiers, withCtx, Fragment, renderList, createBlock, createCommentVNode, mergeProps, withKeys, createTextVNode, toDisplayString, normalizeStyle, toHandlers, toRef, onUnmounted, useAttrs as useAttrs$1, normalizeClass, resolveDynamicComponent, onBeforeUnmount, Text, reactive, h, markRaw, toRefs, Transition, withDirectives, vShow, isVNode, render as render$1, createSlots, normalizeProps, guardReactiveProps, resolveDirective } from 'vue';
4
4
 
@@ -7501,7 +7501,7 @@ var ConfigProvider$1 = ConfigProvider;
7501
7501
 
7502
7502
  const MConfigProvider = withInstall$1(ConfigProvider$1);
7503
7503
 
7504
- const version$1 = "0.0.1";
7504
+ const version$1 = "0.0.5";
7505
7505
 
7506
7506
  const makeInstaller = (components = []) => {
7507
7507
  const install = (app, options) => {
@@ -12190,7 +12190,7 @@ const _sfc_main$e = defineComponent({
12190
12190
  searchOption.value.col ? (openBlock(), createBlock(_component_el_link, {
12191
12191
  key: 0,
12192
12192
  style: { "width": "54px", "margin-left": "12px" },
12193
- underline: false,
12193
+ underline: "never",
12194
12194
  disabled: _ctx.loading,
12195
12195
  type: "default",
12196
12196
  onClick: toggleCol
@@ -17736,7 +17736,7 @@ const _sfc_main$2 = defineComponent({
17736
17736
  class: "m-search-top"
17737
17737
  }, [
17738
17738
  createElementVNode("div", { class: "m-search-left" }, [
17739
- crudOption.value.addBtn && !unref(slots).addBtn ? (openBlock(), createBlock(_component_el_button, {
17739
+ crudOption.value.addBtn && !unref(slots).addBtn && _ctx.permission["add"] !== false ? (openBlock(), createBlock(_component_el_button, {
17740
17740
  key: 0,
17741
17741
  size: _ctx.size || unref(globalConfig).size,
17742
17742
  type: "primary",
@@ -17751,7 +17751,7 @@ const _sfc_main$2 = defineComponent({
17751
17751
  ]),
17752
17752
  _: 1
17753
17753
  }, 8, ["size", "icon", "onClick"])) : createCommentVNode("v-if", true),
17754
- renderSlot(_ctx.$slots, "addBtn", normalizeProps(guardReactiveProps({ size: _ctx.size || unref(globalConfig).size }))),
17754
+ _ctx.permission["add"] !== false ? renderSlot(_ctx.$slots, "addBtn", normalizeProps(mergeProps({ key: 1 }, { size: _ctx.size || unref(globalConfig).size }))) : createCommentVNode("v-if", true),
17755
17755
  renderSlot(_ctx.$slots, "topLeft", normalizeProps(guardReactiveProps({ size: _ctx.size || unref(globalConfig).size })))
17756
17756
  ]),
17757
17757
  createElementVNode("div", { class: "m-search-right" }, [
@@ -17774,12 +17774,12 @@ const _sfc_main$2 = defineComponent({
17774
17774
  "max-height": tableHeight.value
17775
17775
  }, createSlots({
17776
17776
  menu: withCtx((scope) => [
17777
- crudOption.value.editBtn && !unref(slots).editBtn ? (openBlock(), createBlock(_component_el_link, {
17777
+ crudOption.value.editBtn && !unref(slots).editBtn && _ctx.permission["edit"] !== false ? (openBlock(), createBlock(_component_el_link, {
17778
17778
  key: 0,
17779
17779
  class: "m-control-btns",
17780
17780
  type: "primary",
17781
17781
  size: _ctx.size || unref(globalConfig).size,
17782
- underline: false,
17782
+ underline: "never",
17783
17783
  icon: "Edit",
17784
17784
  onClick: ($event) => rowEdit(scope.row, scope.$index)
17785
17785
  }, {
@@ -17791,12 +17791,12 @@ const _sfc_main$2 = defineComponent({
17791
17791
  ]),
17792
17792
  _: 2
17793
17793
  }, 1032, ["size", "onClick"])) : createCommentVNode("v-if", true),
17794
- crudOption.value.editBtn && unref(slots).editBtn ? renderSlot(_ctx.$slots, "editBtn", normalizeProps(mergeProps({ key: 1 }, scope))) : createCommentVNode("v-if", true),
17795
- crudOption.value.delBtn && !unref(slots).delBtn ? (openBlock(), createBlock(_component_el_link, {
17794
+ crudOption.value.editBtn && unref(slots).editBtn && _ctx.permission["edit"] !== false ? renderSlot(_ctx.$slots, "editBtn", normalizeProps(mergeProps({ key: 1 }, scope))) : createCommentVNode("v-if", true),
17795
+ crudOption.value.delBtn && !unref(slots).delBtn && _ctx.permission["del"] !== false ? (openBlock(), createBlock(_component_el_link, {
17796
17796
  key: 2,
17797
17797
  class: "m-control-btns",
17798
17798
  type: "primary",
17799
- underline: false,
17799
+ underline: "never",
17800
17800
  size: _ctx.size || unref(globalConfig).size,
17801
17801
  icon: "Delete",
17802
17802
  onClick: ($event) => rowDel(scope.row, scope.$index)
@@ -17809,7 +17809,7 @@ const _sfc_main$2 = defineComponent({
17809
17809
  ]),
17810
17810
  _: 2
17811
17811
  }, 1032, ["size", "onClick"])) : createCommentVNode("v-if", true),
17812
- crudOption.value.delBtn && unref(slots).delBtn ? renderSlot(_ctx.$slots, "delBtn", normalizeProps(mergeProps({ key: 3 }, scope))) : createCommentVNode("v-if", true),
17812
+ crudOption.value.delBtn && unref(slots).delBtn && _ctx.permission["del"] !== false ? renderSlot(_ctx.$slots, "delBtn", normalizeProps(mergeProps({ key: 3 }, scope))) : createCommentVNode("v-if", true),
17813
17813
  crudOption.value.menu && unref(slots).menu && !(unref(slots).editBtn || unref(slots).delBtn) ? renderSlot(_ctx.$slots, "menu", normalizeProps(mergeProps({ key: 4 }, scope))) : createCommentVNode("v-if", true)
17814
17814
  ]),
17815
17815
  _: 2
package/dist/locale/en.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! M ElePlus Crud v0.0.1 */
1
+ /*! M ElePlus Crud v0.0.5 */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1,2 +1,2 @@
1
- /*! M ElePlus Crud v0.0.1 */(function(e,t){typeof exports=="object"&&typeof module!="undefined"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis!="undefined"?globalThis:e||self,e.MElePlusCrudLocaleEn=t())})(this,function(){"use strict";var e={name:"en",m:{table:{menuTitle:"Action",preview:"Preview"},dialog:{cancelText:"Cancel",confirmText:"Confirm"},search:{searchBtnText:"Search",resetBtnText:"Reset",expandBtn:"Expand",colBtn:"Collapse"},crud:{addBtnText:"Add",editBtnText:"Edit",delBtnText:"Delete",addDialogTitle:"Add",editDialogTitle:"Edit",viewDialogTitle:"View",dialogSaveBtnText:"Save",dialogCancelBtnText:"Cancel"}}};return e});
1
+ /*! M ElePlus Crud v0.0.5 */(function(e,t){typeof exports=="object"&&typeof module!="undefined"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis!="undefined"?globalThis:e||self,e.MElePlusCrudLocaleEn=t())})(this,function(){"use strict";var e={name:"en",m:{table:{menuTitle:"Action",preview:"Preview"},dialog:{cancelText:"Cancel",confirmText:"Confirm"},search:{searchBtnText:"Search",resetBtnText:"Reset",expandBtn:"Expand",colBtn:"Collapse"},crud:{addBtnText:"Add",editBtnText:"Edit",delBtnText:"Delete",addDialogTitle:"Add",editDialogTitle:"Edit",viewDialogTitle:"View",dialogSaveBtnText:"Save",dialogCancelBtnText:"Cancel"}}};return e});
2
2
  //# sourceMappingURL=en.min.js.map
@@ -1,2 +1,2 @@
1
- /*! M ElePlus Crud v0.0.1 */var e={name:"en",m:{table:{menuTitle:"Action",preview:"Preview"},dialog:{cancelText:"Cancel",confirmText:"Confirm"},search:{searchBtnText:"Search",resetBtnText:"Reset",expandBtn:"Expand",colBtn:"Collapse"},crud:{addBtnText:"Add",editBtnText:"Edit",delBtnText:"Delete",addDialogTitle:"Add",editDialogTitle:"Edit",viewDialogTitle:"View",dialogSaveBtnText:"Save",dialogCancelBtnText:"Cancel"}}};export{e as default};
1
+ /*! M ElePlus Crud v0.0.5 */var e={name:"en",m:{table:{menuTitle:"Action",preview:"Preview"},dialog:{cancelText:"Cancel",confirmText:"Confirm"},search:{searchBtnText:"Search",resetBtnText:"Reset",expandBtn:"Expand",colBtn:"Collapse"},crud:{addBtnText:"Add",editBtnText:"Edit",delBtnText:"Delete",addDialogTitle:"Add",editDialogTitle:"Edit",viewDialogTitle:"View",dialogSaveBtnText:"Save",dialogCancelBtnText:"Cancel"}}};export{e as default};
2
2
  //# sourceMappingURL=en.min.mjs.map
@@ -1,4 +1,4 @@
1
- /*! M ElePlus Crud v0.0.1 */
1
+ /*! M ElePlus Crud v0.0.5 */
2
2
 
3
3
  var en = {
4
4
  name: "en",
@@ -1,4 +1,4 @@
1
- /*! M ElePlus Crud v0.0.1 */
1
+ /*! M ElePlus Crud v0.0.5 */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1,2 +1,2 @@
1
- /*! M ElePlus Crud v0.0.1 */(function(e,u){typeof exports=="object"&&typeof module!="undefined"?module.exports=u():typeof define=="function"&&define.amd?define(u):(e=typeof globalThis!="undefined"?globalThis:e||self,e.MElePlusCrudLocaleZhCn=u())})(this,function(){"use strict";var e={name:"zh-cn",m:{table:{menuTitle:"\u64CD\u4F5C",preview:"\u9884\u89C8"},dialog:{cancelText:"\u53D6 \u6D88",confirmText:"\u786E \u8BA4"},search:{searchBtnText:"\u641C \u7D22",resetBtnText:"\u6E05 \u7A7A",expandBtn:"\u5C55 \u5F00",colBtn:"\u6536 \u7F29"},crud:{addBtnText:"\u65B0 \u589E",editBtnText:"\u7F16\u8F91",delBtnText:"\u5220\u9664",addDialogTitle:"\u65B0\u589E",editDialogTitle:"\u7F16\u8F91",viewDialogTitle:"\u67E5\u770B",dialogSaveBtnText:"\u4FDD \u5B58",dialogCancelBtnText:"\u53D6 \u6D88"}}};return e});
1
+ /*! M ElePlus Crud v0.0.5 */(function(e,u){typeof exports=="object"&&typeof module!="undefined"?module.exports=u():typeof define=="function"&&define.amd?define(u):(e=typeof globalThis!="undefined"?globalThis:e||self,e.MElePlusCrudLocaleZhCn=u())})(this,function(){"use strict";var e={name:"zh-cn",m:{table:{menuTitle:"\u64CD\u4F5C",preview:"\u9884\u89C8"},dialog:{cancelText:"\u53D6 \u6D88",confirmText:"\u786E \u8BA4"},search:{searchBtnText:"\u641C \u7D22",resetBtnText:"\u6E05 \u7A7A",expandBtn:"\u5C55 \u5F00",colBtn:"\u6536 \u7F29"},crud:{addBtnText:"\u65B0 \u589E",editBtnText:"\u7F16\u8F91",delBtnText:"\u5220\u9664",addDialogTitle:"\u65B0\u589E",editDialogTitle:"\u7F16\u8F91",viewDialogTitle:"\u67E5\u770B",dialogSaveBtnText:"\u4FDD \u5B58",dialogCancelBtnText:"\u53D6 \u6D88"}}};return e});
2
2
  //# sourceMappingURL=zh-cn.min.js.map
@@ -1,2 +1,2 @@
1
- /*! M ElePlus Crud v0.0.1 */var u={name:"zh-cn",m:{table:{menuTitle:"\u64CD\u4F5C",preview:"\u9884\u89C8"},dialog:{cancelText:"\u53D6 \u6D88",confirmText:"\u786E \u8BA4"},search:{searchBtnText:"\u641C \u7D22",resetBtnText:"\u6E05 \u7A7A",expandBtn:"\u5C55 \u5F00",colBtn:"\u6536 \u7F29"},crud:{addBtnText:"\u65B0 \u589E",editBtnText:"\u7F16\u8F91",delBtnText:"\u5220\u9664",addDialogTitle:"\u65B0\u589E",editDialogTitle:"\u7F16\u8F91",viewDialogTitle:"\u67E5\u770B",dialogSaveBtnText:"\u4FDD \u5B58",dialogCancelBtnText:"\u53D6 \u6D88"}}};export{u as default};
1
+ /*! M ElePlus Crud v0.0.5 */var u={name:"zh-cn",m:{table:{menuTitle:"\u64CD\u4F5C",preview:"\u9884\u89C8"},dialog:{cancelText:"\u53D6 \u6D88",confirmText:"\u786E \u8BA4"},search:{searchBtnText:"\u641C \u7D22",resetBtnText:"\u6E05 \u7A7A",expandBtn:"\u5C55 \u5F00",colBtn:"\u6536 \u7F29"},crud:{addBtnText:"\u65B0 \u589E",editBtnText:"\u7F16\u8F91",delBtnText:"\u5220\u9664",addDialogTitle:"\u65B0\u589E",editDialogTitle:"\u7F16\u8F91",viewDialogTitle:"\u67E5\u770B",dialogSaveBtnText:"\u4FDD \u5B58",dialogCancelBtnText:"\u53D6 \u6D88"}}};export{u as default};
2
2
  //# sourceMappingURL=zh-cn.min.mjs.map
@@ -1,4 +1,4 @@
1
- /*! M ElePlus Crud v0.0.1 */
1
+ /*! M ElePlus Crud v0.0.5 */
2
2
 
3
3
  var zhCn = {
4
4
  name: "zh-cn",
@@ -1 +1 @@
1
- {"version":3,"file":"component.mjs","sources":["../../../packages/m-eleplus-crud/component.ts"],"sourcesContent":["import { MTable } from '@m-eleplus-crud/components/table'\nimport { MConfigProvider } from '@m-eleplus-crud/components/config-provider'\nimport { MSearch } from '@m-eleplus-crud/components/search'\nimport { MPicture } from '@m-eleplus-crud/components/picture'\nimport { MDialog } from '@m-eleplus-crud/components/dialog'\nimport { MQrcode } from '@m-eleplus-crud/components/qrcode'\nimport { MBarcode } from '@m-eleplus-crud/components/barcode'\nimport { MForm } from '@m-eleplus-crud/components/form'\nimport { MCrud } from '@m-eleplus-crud/components/crud'\nimport { MPagination } from '@m-eleplus-crud/components/pagination'\n\nimport type { Plugin } from 'vue'\n\nexport default [\n MTable,\n MConfigProvider,\n MSearch,\n MPicture,\n MDialog,\n MQrcode,\n MBarcode,\n MForm,\n MCrud,\n MPagination,\n] as Plugin[]\n"],"names":[],"mappings":";;;;;;;;;;;AAaA,iBAAe;AAAA,EACb,MAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"component.mjs","sources":["../../../packages/m-eleplus-crud/component.ts"],"sourcesContent":["import { MTable } from '@m-eleplus-crud/components/table'\r\nimport { MConfigProvider } from '@m-eleplus-crud/components/config-provider'\r\nimport { MSearch } from '@m-eleplus-crud/components/search'\r\nimport { MPicture } from '@m-eleplus-crud/components/picture'\r\nimport { MDialog } from '@m-eleplus-crud/components/dialog'\r\nimport { MQrcode } from '@m-eleplus-crud/components/qrcode'\r\nimport { MBarcode } from '@m-eleplus-crud/components/barcode'\r\nimport { MForm } from '@m-eleplus-crud/components/form'\r\nimport { MCrud } from '@m-eleplus-crud/components/crud'\r\nimport { MPagination } from '@m-eleplus-crud/components/pagination'\r\n\r\nimport type { Plugin } from 'vue'\r\n\r\nexport default [\r\n MTable,\r\n MConfigProvider,\r\n MSearch,\r\n MPicture,\r\n MDialog,\r\n MQrcode,\r\n MBarcode,\r\n MForm,\r\n MCrud,\r\n MPagination,\r\n] as Plugin[]\r\n"],"names":[],"mappings":";;;;;;;;;;;AAaA,iBAAe;AAAA,EACb,MAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AACF,CAAA;;;;"}
package/es/index.mjs CHANGED
@@ -9,11 +9,11 @@ export { tableEmits, tableProps } from './packages/components/table/src/table.mj
9
9
  export { MTable } from './packages/components/table/index.mjs';
10
10
  export { searchEmits, searchProps } from './packages/components/search/src/search.mjs';
11
11
  export { MSearch } from './packages/components/search/index.mjs';
12
- export { pictureEmits, pictureProps } from './packages/components/picture/src/picture.mjs';
12
+ export { pictureEmits, pictureProps } from './packages/components/picture/src/picture2.mjs';
13
13
  export { MPicture } from './packages/components/picture/index.mjs';
14
14
  export { dialogEmits, dialogProps } from './packages/components/dialog/src/dialog.mjs';
15
15
  export { MDialog } from './packages/components/dialog/index.mjs';
16
- export { qrcodeEmits, qrcodeProps } from './packages/components/qrcode/src/qrcode.mjs';
16
+ export { qrcodeEmits, qrcodeProps } from './packages/components/qrcode/src/qrcode2.mjs';
17
17
  export { MQrcode } from './packages/components/qrcode/index.mjs';
18
18
  export { barcodeEmits, barcodeProps } from './packages/components/barcode/src/barcode.mjs';
19
19
  export { MBarcode } from './packages/components/barcode/index.mjs';
@@ -21,7 +21,7 @@ export { formEmits, formProps } from './packages/components/form/src/form.mjs';
21
21
  export { MForm } from './packages/components/form/index.mjs';
22
22
  export { crudEmits, crudProps } from './packages/components/crud/src/crud.mjs';
23
23
  export { MCrud } from './packages/components/crud/index.mjs';
24
- export { paginationEmits, paginationProps } from './packages/components/pagination/src/pagination.mjs';
24
+ export { paginationEmits, paginationProps } from './packages/components/pagination/src/pagination2.mjs';
25
25
  export { MPagination } from './packages/components/pagination/index.mjs';
26
26
  export { INSTALLED_KEY } from './packages/constants/key.mjs';
27
27
  export { componentSizeMap, componentSizes } from './packages/constants/size.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.mjs","sources":["../../../packages/m-eleplus-crud/make-installer.ts"],"sourcesContent":["import { INSTALLED_KEY } from '@m-eleplus-crud/constants'\nimport { provideGlobalConfig } from '@m-eleplus-crud/components/config-provider'\nimport { version } from './version'\n\nimport type { App, Plugin } from '@vue/runtime-core'\nimport type { ConfigProviderContext } from '@m-eleplus-crud/components/config-provider'\n\nexport const makeInstaller = (components: Plugin[] = []) => {\n const install = (app: App, options?: ConfigProviderContext) => {\n if (app[INSTALLED_KEY]) return\n\n app[INSTALLED_KEY] = true\n components.forEach((c) => app.use(c))\n\n if (options) provideGlobalConfig(options, app, true)\n }\n\n return {\n version,\n install,\n }\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,aAAgB,GAAA,CAAC,UAAuB,GAAA,EAAO,KAAA;AAC1D,EAAM,MAAA,OAAA,GAAU,CAAC,GAAA,EAAU,OAAoC,KAAA;AAC7D,IAAA,IAAI,GAAI,CAAA,aAAA,CAAA;AAAgB,MAAA,OAAA;AAExB,IAAA,GAAA,CAAI,aAAiB,CAAA,GAAA,IAAA,CAAA;AACrB,IAAA,UAAA,CAAW,QAAQ,CAAC,CAAA,KAAM,GAAI,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAEpC,IAAI,IAAA,OAAA;AAAS,MAAoB,mBAAA,CAAA,OAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,GACrD,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"make-installer.mjs","sources":["../../../packages/m-eleplus-crud/make-installer.ts"],"sourcesContent":["import { INSTALLED_KEY } from '@m-eleplus-crud/constants'\r\nimport { provideGlobalConfig } from '@m-eleplus-crud/components/config-provider'\r\nimport { version } from './version'\r\n\r\nimport type { App, Plugin } from '@vue/runtime-core'\r\nimport type { ConfigProviderContext } from '@m-eleplus-crud/components/config-provider'\r\n\r\nexport const makeInstaller = (components: Plugin[] = []) => {\r\n const install = (app: App, options?: ConfigProviderContext) => {\r\n if (app[INSTALLED_KEY]) return\r\n\r\n app[INSTALLED_KEY] = true\r\n components.forEach((c) => app.use(c))\r\n\r\n if (options) provideGlobalConfig(options, app, true)\r\n }\r\n\r\n return {\r\n version,\r\n install,\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;AAOO,MAAM,aAAgB,GAAA,CAAC,UAAuB,GAAA,EAAO,KAAA;AAC1D,EAAM,MAAA,OAAA,GAAU,CAAC,GAAA,EAAU,OAAoC,KAAA;AAC7D,IAAA,IAAI,GAAI,CAAA,aAAA,CAAA;AAAgB,MAAA,OAAA;AAExB,IAAA,GAAA,CAAI,aAAiB,CAAA,GAAA,IAAA,CAAA;AACrB,IAAA,UAAA,CAAW,QAAQ,CAAC,CAAA,KAAM,GAAI,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAEpC,IAAI,IAAA,OAAA;AAAS,MAAoB,mBAAA,CAAA,OAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,GACrD,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/barcode/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Barcode from './src/barcode.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MBarcode: SFCWithInstall<typeof Barcode> = withInstall(Barcode)\nexport default MBarcode\n\nexport * from './src/barcode'\nexport type { BarcodeInstance } from './src/instance'\n"],"names":[],"mappings":";;;;AAIa,MAAA,QAAA,GAA2C,YAAY,OAAO;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/barcode/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Barcode from './src/barcode.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MBarcode: SFCWithInstall<typeof Barcode> = withInstall(Barcode)\r\nexport default MBarcode\r\n\r\nexport * from './src/barcode'\r\nexport type { BarcodeInstance } from './src/instance'\r\n"],"names":[],"mappings":";;;;AAIa,MAAA,QAAA,GAA2C,YAAY,OAAO;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"barcode.mjs","sources":["../../../../../../../packages/components/barcode/src/barcode.ts"],"sourcesContent":["import { buildProps, isString } from '@m-eleplus-crud/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nexport const barcodeProps = buildProps({\n /**\n * @description 一维码内容\n */\n text: {\n type: String,\n required: true,\n },\n /**\n * @description 宽度\n */\n barcodeWidth: {\n type: Number,\n default: 2,\n },\n /**\n * @description 高度\n */\n barcodeHeight: {\n type: Number,\n default: 50,\n },\n} as const)\nexport type BarcodeProps = ExtractPropTypes<typeof barcodeProps>\n\nexport const barcodeEmits = {\n click: (val: string) => isString(val),\n}\nexport type BarcodeEmits = typeof barcodeEmits\n"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,UAAW,CAAA;AAAA,EAIrC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,YAAe,GAAA;AAAA,EAC1B,KAAO,EAAA,CAAC,GAAgB,KAAA,QAAA,CAAS,GAAG,CAAA;AACtC;;;;"}
1
+ {"version":3,"file":"barcode.mjs","sources":["../../../../../../../packages/components/barcode/src/barcode.ts"],"sourcesContent":["import { buildProps, isString } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const barcodeProps = buildProps({\r\n /**\r\n * @description 一维码内容\r\n */\r\n text: {\r\n type: String,\r\n required: true,\r\n },\r\n /**\r\n * @description 宽度\r\n */\r\n barcodeWidth: {\r\n type: Number,\r\n default: 2,\r\n },\r\n /**\r\n * @description 高度\r\n */\r\n barcodeHeight: {\r\n type: Number,\r\n default: 50,\r\n },\r\n} as const)\r\nexport type BarcodeProps = ExtractPropTypes<typeof barcodeProps>\r\n\r\nexport const barcodeEmits = {\r\n click: (val: string) => isString(val),\r\n}\r\nexport type BarcodeEmits = typeof barcodeEmits\r\n"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,UAAW,CAAA;AAAA,EAIrC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAU,EAAA;AAGH,MAAM,YAAe,GAAA;AAAA,EAC1B,KAAO,EAAA,CAAC,GAAgB,KAAA,QAAA,CAAS,GAAG,CAAA;AACtC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"barcode2.mjs","sources":["../../../../../../../packages/components/barcode/src/barcode.vue"],"sourcesContent":["<template>\n <img ref=\"barcodeRef\" class=\"m-barcode-box\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue'\nimport JsBarcode from 'jsbarcode'\nimport { barcodeEmits, barcodeProps } from './barcode'\n\nconst COMPONENT_NAME = 'MBarcode'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(barcodeProps)\nconst emit = defineEmits(barcodeEmits)\n\nconst barcodeRef = ref<any>()\n\nwatch(\n () => props.text as string,\n (newVal: string) => {\n if (!newVal) return\n setTimeout(() => {\n barcodeRef.value.innerHTML = ''\n JsBarcode(barcodeRef.value, newVal, {\n format: 'CODE128',\n lineColor: '#000',\n width: props.barcodeWidth,\n height: props.barcodeHeight,\n displayValue: false,\n })\n barcodeRef.value.onclick = () => {\n emit('click', newVal)\n }\n }, 0)\n },\n {\n immediate: true,\n }\n)\n</script>\n"],"names":[],"mappings":";;;;;;mCAUc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,aAAa,GAAS,EAAA,CAAA;AAE5B,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAC,MAAmB,KAAA;AAClB,QAAA,IAAI,CAAC,MAAA;AAAQ,UAAA,OAAA;AACb,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,UAAA,CAAW,MAAM,SAAY,GAAA,EAAA,CAAA;AACnB,UAAA,SAAA,CAAA,UAAA,CAAW,OAAO,MAAQ,EAAA;AAAA,YAClC,MAAQ,EAAA,SAAA;AAAA,YACR,SAAW,EAAA,MAAA;AAAA,YACX,OAAO,KAAM,CAAA,YAAA;AAAA,YACb,QAAQ,KAAM,CAAA,aAAA;AAAA,YACd,YAAc,EAAA,KAAA;AAAA,WACf,CAAA,CAAA;AACU,UAAA,UAAA,CAAA,KAAA,CAAM,UAAU,MAAM;AAC/B,YAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,WACtB,CAAA;AAAA,WACC,CAAC,CAAA,CAAA;AAAA,OACN;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"barcode2.mjs","sources":["../../../../../../../packages/components/barcode/src/barcode.vue"],"sourcesContent":["<template>\r\n <img ref=\"barcodeRef\" class=\"m-barcode-box\" />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, watch } from 'vue'\r\nimport JsBarcode from 'jsbarcode'\r\nimport { barcodeEmits, barcodeProps } from './barcode'\r\n\r\nconst COMPONENT_NAME = 'MBarcode'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(barcodeProps)\r\nconst emit = defineEmits(barcodeEmits)\r\n\r\nconst barcodeRef = ref<any>()\r\n\r\nwatch(\r\n () => props.text as string,\r\n (newVal: string) => {\r\n if (!newVal) return\r\n setTimeout(() => {\r\n barcodeRef.value.innerHTML = ''\r\n JsBarcode(barcodeRef.value, newVal, {\r\n format: 'CODE128',\r\n lineColor: '#000',\r\n width: props.barcodeWidth,\r\n height: props.barcodeHeight,\r\n displayValue: false,\r\n })\r\n barcodeRef.value.onclick = () => {\r\n emit('click', newVal)\r\n }\r\n }, 0)\r\n },\r\n {\r\n immediate: true,\r\n }\r\n)\r\n</script>\r\n"],"names":["DO_defineComponent"],"mappings":";;;;;;AAUc,MAAA,cAAAA,eAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,aAAa,GAAS,EAAA,CAAA;AAE5B,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAC,MAAmB,KAAA;AAClB,QAAA,IAAI,CAAC,MAAA;AAAQ,UAAA,OAAA;AACb,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,UAAA,CAAW,MAAM,SAAY,GAAA,EAAA,CAAA;AACnB,UAAA,SAAA,CAAA,UAAA,CAAW,OAAO,MAAQ,EAAA;AAAA,YAClC,MAAQ,EAAA,SAAA;AAAA,YACR,SAAW,EAAA,MAAA;AAAA,YACX,OAAO,KAAM,CAAA,YAAA;AAAA,YACb,QAAQ,KAAM,CAAA,aAAA;AAAA,YACd,YAAc,EAAA,KAAA;AAAA,WACf,CAAA,CAAA;AACU,UAAA,UAAA,CAAA,KAAA,CAAM,UAAU,MAAM;AAC/B,YAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,WACtB,CAAA;AAAA,WACC,CAAC,CAAA,CAAA;AAAA,OACN;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-provider-props.mjs","sources":["../../../../../../../packages/components/config-provider/src/config-provider-props.ts"],"sourcesContent":["import { buildProps, definePropType } from '@m-eleplus-crud/utils'\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\nimport type { ExtractPropTypes } from 'vue'\nimport type { Language } from '@m-eleplus-crud/locale'\n\n/**\n * @description 全局配置属性\n */\nexport const configProviderProps = buildProps({\n /**\n * @description 国际化配置\n */\n locale: {\n type: definePropType<Language>(Object),\n },\n /**\n * @description 组件尺寸\n */\n size: useSizeProp,\n /**\n * @description 表格高度调节(px)\n */\n calcHeight: {\n type: Number,\n required: false,\n },\n /**\n * @description 外部传递的http get请求函数\n */\n httpGet: {\n type: Function,\n required: false,\n },\n} as const)\n\nexport type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>\n"],"names":[],"mappings":";;;AAQO,MAAM,sBAAsB,UAAW,CAAA;AAAA,EAI5C,MAAQ,EAAA;AAAA,IACN,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,GACvC;AAAA,EAIA,IAAM,EAAA,WAAA;AAAA,EAIN,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,QAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU;;;;"}
1
+ {"version":3,"file":"config-provider-props.mjs","sources":["../../../../../../../packages/components/config-provider/src/config-provider-props.ts"],"sourcesContent":["import { buildProps, definePropType } from '@m-eleplus-crud/utils'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type { Language } from '@m-eleplus-crud/locale'\r\n\r\n/**\r\n * @description 全局配置属性\r\n */\r\nexport const configProviderProps = buildProps({\r\n /**\r\n * @description 国际化配置\r\n */\r\n locale: {\r\n type: definePropType<Language>(Object),\r\n },\r\n /**\r\n * @description 组件尺寸\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 表格高度调节(px)\r\n */\r\n calcHeight: {\r\n type: Number,\r\n required: false,\r\n },\r\n /**\r\n * @description 外部传递的http get请求函数\r\n */\r\n httpGet: {\r\n type: Function,\r\n required: false,\r\n },\r\n} as const)\r\n\r\nexport type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>\r\n"],"names":[],"mappings":";;;AAQO,MAAM,sBAAsB,UAAW,CAAA;AAAA,EAI5C,MAAQ,EAAA;AAAA,IACN,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,GACvC;AAAA,EAIA,IAAM,EAAA,WAAA;AAAA,EAIN,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,QAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-global-config.mjs","sources":["../../../../../../../../packages/components/config-provider/src/hooks/use-global-config.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\nimport {\n SIZE_INJECTION_KEY,\n localeContextKey,\n useLocale,\n} from '@m-eleplus-crud/hooks'\nimport { debugWarn, keysOf } from '@m-eleplus-crud/utils'\nimport { configProviderContextKey } from '../constants'\n\nimport type { MaybeRef } from '@vueuse/core'\nimport type { App, Ref } from 'vue'\nimport type { ConfigProviderContext } from '../constants'\n\nconst globalConfig = ref<ConfigProviderContext>()\n\nexport function useGlobalConfig<\n K extends keyof ConfigProviderContext,\n D extends ConfigProviderContext[K]\n>(\n key: K,\n defaultValue?: D\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>\nexport function useGlobalConfig(): Ref<ConfigProviderContext>\nexport function useGlobalConfig(\n key?: keyof ConfigProviderContext,\n defaultValue = undefined\n) {\n const config = getCurrentInstance()\n ? inject(configProviderContextKey, globalConfig)\n : globalConfig\n if (key) {\n return computed(() => config.value?.[key] ?? defaultValue)\n } else {\n return config\n }\n}\n\nexport function useGlobalComponentSettings(\n block: string,\n sizeFallback?: MaybeRef<ConfigProviderContext['size']>\n) {\n const config = useGlobalConfig()\n\n const locale = useLocale(computed(() => config.value?.locale))\n\n const size = computed(() => unref(sizeFallback) || config.value?.size || '')\n provideGlobalConfig(computed(() => unref(config) || {}))\n\n return {\n locale,\n size,\n }\n}\n\nexport const provideGlobalConfig = (\n config: MaybeRef<ConfigProviderContext>,\n app?: App,\n global = false\n) => {\n const inSetup = !!getCurrentInstance()\n const oldConfig = inSetup ? useGlobalConfig() : undefined\n\n const provideFn = app?.provide ?? (inSetup ? provide : undefined)\n if (!provideFn) {\n debugWarn(\n 'provideGlobalConfig',\n 'provideGlobalConfig() can only be used inside setup().'\n )\n return\n }\n\n const context = computed(() => {\n const cfg = unref(config)\n if (!oldConfig?.value) return cfg\n return mergeConfig(oldConfig.value, cfg)\n })\n provideFn(configProviderContextKey, context)\n provideFn(\n localeContextKey,\n computed(() => context.value.locale)\n )\n provideFn(SIZE_INJECTION_KEY, {\n size: computed(() => context.value.size || ''),\n })\n\n if (global || !globalConfig.value) {\n globalConfig.value = context.value\n }\n return context\n}\n\nconst mergeConfig = (\n a: ConfigProviderContext,\n b: ConfigProviderContext\n): ConfigProviderContext => {\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])]\n const obj: Record<string, any> = {}\n for (const key of keys) {\n obj[key] = b[key] !== undefined ? b[key] : a[key]\n }\n return obj\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-global-config.mjs","sources":["../../../../../../../../packages/components/config-provider/src/hooks/use-global-config.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\r\nimport {\r\n SIZE_INJECTION_KEY,\r\n localeContextKey,\r\n useLocale,\r\n} from '@m-eleplus-crud/hooks'\r\nimport { debugWarn, keysOf } from '@m-eleplus-crud/utils'\r\nimport { configProviderContextKey } from '../constants'\r\n\r\nimport type { MaybeRef } from '@vueuse/core'\r\nimport type { App, Ref } from 'vue'\r\nimport type { ConfigProviderContext } from '../constants'\r\n\r\nconst globalConfig = ref<ConfigProviderContext>()\r\n\r\nexport function useGlobalConfig<\r\n K extends keyof ConfigProviderContext,\r\n D extends ConfigProviderContext[K]\r\n>(\r\n key: K,\r\n defaultValue?: D\r\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>\r\nexport function useGlobalConfig(): Ref<ConfigProviderContext>\r\nexport function useGlobalConfig(\r\n key?: keyof ConfigProviderContext,\r\n defaultValue = undefined\r\n) {\r\n const config = getCurrentInstance()\r\n ? inject(configProviderContextKey, globalConfig)\r\n : globalConfig\r\n if (key) {\r\n return computed(() => config.value?.[key] ?? defaultValue)\r\n } else {\r\n return config\r\n }\r\n}\r\n\r\nexport function useGlobalComponentSettings(\r\n block: string,\r\n sizeFallback?: MaybeRef<ConfigProviderContext['size']>\r\n) {\r\n const config = useGlobalConfig()\r\n\r\n const locale = useLocale(computed(() => config.value?.locale))\r\n\r\n const size = computed(() => unref(sizeFallback) || config.value?.size || '')\r\n provideGlobalConfig(computed(() => unref(config) || {}))\r\n\r\n return {\r\n locale,\r\n size,\r\n }\r\n}\r\n\r\nexport const provideGlobalConfig = (\r\n config: MaybeRef<ConfigProviderContext>,\r\n app?: App,\r\n global = false\r\n) => {\r\n const inSetup = !!getCurrentInstance()\r\n const oldConfig = inSetup ? useGlobalConfig() : undefined\r\n\r\n const provideFn = app?.provide ?? (inSetup ? provide : undefined)\r\n if (!provideFn) {\r\n debugWarn(\r\n 'provideGlobalConfig',\r\n 'provideGlobalConfig() can only be used inside setup().'\r\n )\r\n return\r\n }\r\n\r\n const context = computed(() => {\r\n const cfg = unref(config)\r\n if (!oldConfig?.value) return cfg\r\n return mergeConfig(oldConfig.value, cfg)\r\n })\r\n provideFn(configProviderContextKey, context)\r\n provideFn(\r\n localeContextKey,\r\n computed(() => context.value.locale)\r\n )\r\n provideFn(SIZE_INJECTION_KEY, {\r\n size: computed(() => context.value.size || ''),\r\n })\r\n\r\n if (global || !globalConfig.value) {\r\n globalConfig.value = context.value\r\n }\r\n return context\r\n}\r\n\r\nconst mergeConfig = (\r\n a: ConfigProviderContext,\r\n b: ConfigProviderContext\r\n): ConfigProviderContext => {\r\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])]\r\n const obj: Record<string, any> = {}\r\n for (const key of keys) {\r\n obj[key] = b[key] !== undefined ? b[key] : a[key]\r\n }\r\n return obj\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/crud/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Crud from './src/crud.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MCrud: SFCWithInstall<typeof Crud> = withInstall(Crud)\nexport default MCrud\n\nexport * from './src/crud'\nexport type { CrudInstance } from './src/instance'\n"],"names":[],"mappings":";;;;AAIa,MAAA,KAAA,GAAqC,YAAY,IAAI;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/crud/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Crud from './src/crud.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MCrud: SFCWithInstall<typeof Crud> = withInstall(Crud)\r\nexport default MCrud\r\n\r\nexport * from './src/crud'\r\nexport type { CrudInstance } from './src/instance'\r\n"],"names":[],"mappings":";;;;AAIa,MAAA,KAAA,GAAqC,YAAY,IAAI;;;;"}
@@ -421,7 +421,7 @@ const _sfc_main = defineComponent({
421
421
  class: "m-search-top"
422
422
  }, [
423
423
  createElementVNode("div", { class: "m-search-left" }, [
424
- crudOption.value.addBtn && !unref(slots).addBtn ? (openBlock(), createBlock(_component_el_button, {
424
+ crudOption.value.addBtn && !unref(slots).addBtn && _ctx.permission["add"] !== false ? (openBlock(), createBlock(_component_el_button, {
425
425
  key: 0,
426
426
  size: _ctx.size || unref(globalConfig).size,
427
427
  type: "primary",
@@ -436,7 +436,7 @@ const _sfc_main = defineComponent({
436
436
  ]),
437
437
  _: 1
438
438
  }, 8, ["size", "icon", "onClick"])) : createCommentVNode("v-if", true),
439
- renderSlot(_ctx.$slots, "addBtn", normalizeProps(guardReactiveProps({ size: _ctx.size || unref(globalConfig).size }))),
439
+ _ctx.permission["add"] !== false ? renderSlot(_ctx.$slots, "addBtn", normalizeProps(mergeProps({ key: 1 }, { size: _ctx.size || unref(globalConfig).size }))) : createCommentVNode("v-if", true),
440
440
  renderSlot(_ctx.$slots, "topLeft", normalizeProps(guardReactiveProps({ size: _ctx.size || unref(globalConfig).size })))
441
441
  ]),
442
442
  createElementVNode("div", { class: "m-search-right" }, [
@@ -459,12 +459,12 @@ const _sfc_main = defineComponent({
459
459
  "max-height": tableHeight.value
460
460
  }, createSlots({
461
461
  menu: withCtx((scope) => [
462
- crudOption.value.editBtn && !unref(slots).editBtn ? (openBlock(), createBlock(_component_el_link, {
462
+ crudOption.value.editBtn && !unref(slots).editBtn && _ctx.permission["edit"] !== false ? (openBlock(), createBlock(_component_el_link, {
463
463
  key: 0,
464
464
  class: "m-control-btns",
465
465
  type: "primary",
466
466
  size: _ctx.size || unref(globalConfig).size,
467
- underline: false,
467
+ underline: "never",
468
468
  icon: "Edit",
469
469
  onClick: ($event) => rowEdit(scope.row, scope.$index)
470
470
  }, {
@@ -476,12 +476,12 @@ const _sfc_main = defineComponent({
476
476
  ]),
477
477
  _: 2
478
478
  }, 1032, ["size", "onClick"])) : createCommentVNode("v-if", true),
479
- crudOption.value.editBtn && unref(slots).editBtn ? renderSlot(_ctx.$slots, "editBtn", normalizeProps(mergeProps({ key: 1 }, scope))) : createCommentVNode("v-if", true),
480
- crudOption.value.delBtn && !unref(slots).delBtn ? (openBlock(), createBlock(_component_el_link, {
479
+ crudOption.value.editBtn && unref(slots).editBtn && _ctx.permission["edit"] !== false ? renderSlot(_ctx.$slots, "editBtn", normalizeProps(mergeProps({ key: 1 }, scope))) : createCommentVNode("v-if", true),
480
+ crudOption.value.delBtn && !unref(slots).delBtn && _ctx.permission["del"] !== false ? (openBlock(), createBlock(_component_el_link, {
481
481
  key: 2,
482
482
  class: "m-control-btns",
483
483
  type: "primary",
484
- underline: false,
484
+ underline: "never",
485
485
  size: _ctx.size || unref(globalConfig).size,
486
486
  icon: "Delete",
487
487
  onClick: ($event) => rowDel(scope.row, scope.$index)
@@ -494,7 +494,7 @@ const _sfc_main = defineComponent({
494
494
  ]),
495
495
  _: 2
496
496
  }, 1032, ["size", "onClick"])) : createCommentVNode("v-if", true),
497
- crudOption.value.delBtn && unref(slots).delBtn ? renderSlot(_ctx.$slots, "delBtn", normalizeProps(mergeProps({ key: 3 }, scope))) : createCommentVNode("v-if", true),
497
+ crudOption.value.delBtn && unref(slots).delBtn && _ctx.permission["del"] !== false ? renderSlot(_ctx.$slots, "delBtn", normalizeProps(mergeProps({ key: 3 }, scope))) : createCommentVNode("v-if", true),
498
498
  crudOption.value.menu && unref(slots).menu && !(unref(slots).editBtn || unref(slots).delBtn) ? renderSlot(_ctx.$slots, "menu", normalizeProps(mergeProps({ key: 4 }, scope))) : createCommentVNode("v-if", true)
499
499
  ]),
500
500
  _: 2
@@ -1 +1 @@
1
- {"version":3,"file":"crud2.mjs","sources":["../../../../../../../packages/components/crud/src/crud.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, ref, useSlots, watch } from 'vue'\nimport { ElMessageBox } from 'element-plus'\nimport { cloneDeep, get, set } from 'lodash-unified'\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\nimport { useLocale } from '@m-eleplus-crud/hooks'\nimport { crudEmits, crudProps } from './crud'\nimport type { ISearchColumn, ISearchOption, SearchInstance } from '../../search'\nimport type { ITableColumn, ITableOption, TableInstance } from '../../table'\nimport type { ICrudColumn, ICrudOption } from './crud'\nimport type { FormInstance, IFormColumn, IFormOption } from '../../form'\n\nconst COMPONENT_NAME = 'MCrud'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(crudProps)\nconst emit = defineEmits(crudEmits)\n\n// 插槽信息\nconst slots = useSlots() as any\n\n// 全局配置\nconst globalConfig = useGlobalConfig()\n\n// 国际化配置\nconst { t } = useLocale()\n\n// 搜索插槽\nconst searchSlots = computed(() => {\n const keys = Object.keys(slots)\n const result: any = {}\n for (const key of keys) {\n if (key.endsWith('Search')) {\n result[key.replace('Search', '')] = slots[key]\n }\n }\n return result\n})\n\n// 表单插槽\nconst formSlots = computed(() => {\n const keys = Object.keys(slots)\n const result: any = {}\n for (const key of keys) {\n if (key.endsWith('Form')) {\n result[key.replace('Form', '')] = slots[key]\n }\n }\n return result\n})\n\n// 列表插槽\nconst tableSlots = computed(() => {\n const whites = ['topLeft', 'topRight', 'addBtn']\n const keys = Object.keys(slots)\n const result: any = {}\n for (const key of keys) {\n if (\n !whites.includes(key) &&\n !key.endsWith('Search') &&\n !key.endsWith('Form')\n ) {\n result[key] = slots[key]\n }\n }\n return result\n})\n\n/**\n * @description crud配置项\n */\nconst crudOption = ref<ICrudOption>({\n // 默认显示添加按钮\n addBtn: true,\n // 默认显示编辑按钮\n editBtn: true,\n // 默认显示删除按钮\n delBtn: true,\n // 添加按钮文字\n addBtnText: t('m.crud.addBtnText'),\n // 添加按钮图标\n addBtnIcon: 'Plus',\n // 添加对话框标题\n addDialogTitle: t('m.crud.addDialogTitle'),\n // 编辑对话框标题\n editDialogTitle: t('m.crud.editDialogTitle'),\n // 查看对话框标题\n viewDialogTitle: t('m.crud.viewDialogTitle'),\n // 对话框宽度\n dialogWidth: '800px',\n\n column: [],\n})\n\n/**\n * @description 对话框类型\n */\nconst dialogType = ref<'add' | 'edit' | 'view'>('add')\n\n/**\n * @description 搜索ref\n */\nconst searchRef = ref<SearchInstance>()\n\n/**\n * @description 表单ref\n */\nconst formRef = ref<FormInstance>()\n\n/**\n * @description 表格ref\n */\nconst tableRef = ref<TableInstance>()\n\n/**\n * @description 对话框显示状态\n */\nconst dialogVisible = ref(false)\n\n/**\n * @description 表格高度\n */\nconst tableHeight = ref<any>(undefined)\n\n// 备份modelForm\nconst _modelForm = ref<any>()\n\n// 备份列表index\nconst _rowIndex = ref(-1)\n\n/**\n * @description 对话框标题\n */\nconst dialogTitle = computed(() => {\n if (dialogType.value === 'add') {\n return crudOption.value.addDialogTitle\n }\n if (dialogType.value === 'edit') {\n return crudOption.value.editDialogTitle\n }\n return crudOption.value.viewDialogTitle\n})\n\n/**\n * @description 表单数据\n */\nconst modelForm = computed({\n get() {\n return props.modelValue\n },\n set(value: any) {\n emit('update:modelValue', value)\n },\n})\n\n// 备份第一次的modelForm\nconst __firstModelForm = ref<any>({})\n__firstModelForm.value = props.modelValue\n\n/**\n * @description table配置项\n */\nconst tableOption = ref<ITableOption>({\n // 默认显示操作栏\n menu: true,\n\n column: [],\n})\n\n/**\n * @description search配置项\n */\nconst searchOption = ref<ISearchOption>({\n column: [],\n})\n\n/**\n * @description form配置项\n */\nconst formOption = computed<IFormOption>(() => {\n let option: IFormOption = {\n column: [],\n }\n option = transFormOption(\n Object.assign({}, option, copyObjectExcept(crudOption.value, ['column']))\n )\n for (let i = 0; i < crudOption.value.column.length; i++) {\n const item = cloneDeep(crudOption.value.column[i])\n const formColumn: IFormColumn = transFormColumn(item)\n\n if (['index', 'single', 'selection'].includes(item.type || '')) {\n continue\n }\n\n if (dialogType.value === 'add') {\n // 新增模式\n if (!item.addHide) {\n option.column.push(formColumn)\n }\n } else if (dialogType.value === 'edit') {\n // 编辑模式\n if (!item.editHide) {\n option.column.push(formColumn)\n }\n } else {\n // 查看模式\n if (!item.viewHide) {\n option.column.push(formColumn)\n }\n }\n }\n\n return option\n})\n\n/**\n * @description 搜索代理\n */\nconst searchProxys = new Proxy(props.search, {\n get(target, key) {\n return get(target, key)\n },\n set(target, key, value) {\n set(target, key, value)\n return true\n },\n})\n\n/**\n * @description 选择的数据\n */\nconst selectData = computed({\n get() {\n return props.select\n },\n set(value: any) {\n emit('update:select', value)\n },\n})\n\n/**\n * 转换search列\n * @param option 列配置\n */\nconst transSearchColumn = (column: ICrudColumn): ISearchColumn => {\n const result: ISearchColumn = cloneDeep(column) as ISearchColumn\n // 转换排序\n if (column.searchOrder) {\n result.order = column.searchOrder\n } else {\n delete result.order\n }\n // 转换默认值\n if (column.searchValue) {\n result.value = column.searchValue\n } else {\n delete result.value\n }\n // 转换占位符\n if (column.searchPlaceholder) {\n result.placeholder = column.searchPlaceholder\n } else {\n delete result.placeholder\n }\n // 转换表单校验规则\n if (column.searchRules) {\n result.rules = column.searchRules\n } else {\n delete result.rules\n }\n // 转换栅格\n if (column.searchSpan) {\n result.span = column.searchSpan\n } else {\n delete result.span\n }\n // 转换labelWidth\n if (column.searchLabelWidth) {\n result.labelWidth = column.searchLabelWidth\n } else {\n delete result.labelWidth\n }\n\n return result\n}\n\n/**\n * 转换form列\n * @param column 列配置\n * @param type 类型\n */\nconst transFormColumn = (column: ICrudColumn): IFormColumn => {\n const result: IFormColumn = cloneDeep(column) as IFormColumn\n // 转换排序\n if (column.formOrder) {\n result.order = column.formOrder\n } else {\n delete result.order\n }\n // 转换默认值\n if (column.formValue) {\n result.value = column.formValue\n } else {\n delete result.value\n }\n // 转换占位符\n if (column.formPlaceholder) {\n result.placeholder = column.formPlaceholder\n } else {\n delete result.placeholder\n }\n // 转换表单校验规则\n if (column.formRules) {\n result.rules = column.formRules\n } else {\n delete result.rules\n }\n // 转换labelWidth\n if (column.formLabelWidth) {\n result.labelWidth = column.formLabelWidth\n } else {\n delete result.labelWidth\n }\n // 转换栅格\n if (column.formSpan || column.addSpan || column.editSpan || column.viewSpan) {\n if (column.formSpan) {\n result.span = column.formSpan\n }\n if (dialogType.value === 'add' && column.addSpan) {\n result.span = column.addSpan\n } else if (dialogType.value === 'edit' && column.editSpan) {\n result.span = column.editSpan\n } else if (dialogType.value === 'view' && column.viewSpan) {\n result.span = column.viewSpan\n }\n } else {\n delete result.span\n }\n\n return result\n}\n\n/**\n * 转换search option\n * @param option crud option\n */\nconst transSearchOption = (option: ICrudOption): ISearchOption => {\n const result: ISearchOption = cloneDeep(option) as ISearchOption\n // 转换labelWidth\n if (option.searchLabelWidth) {\n result.labelWidth = option.searchLabelWidth\n } else {\n delete result.labelWidth\n }\n\n return result\n}\n\n/**\n * 转换form option\n * @param option crud option\n */\nconst transFormOption = (option: ICrudOption): IFormOption => {\n const result: IFormOption = cloneDeep(option) as IFormOption\n // 转换labelWidth\n if (option.formLabelWidth) {\n result.labelWidth = option.formLabelWidth\n } else {\n delete result.labelWidth\n }\n\n return result\n}\n\n/**\n * @description 当前页发生改变\n */\nconst currentPageChange = (page: number) => {\n searchRef.value?.search(page)\n}\n\n/**\n * @description 页大小发生变化\n */\nconst pageSizeChange = (pageSize: number) => {\n searchProxys.limit = pageSize\n searchRef.value?.search()\n}\n\n/**\n * @description 搜索事件\n * @param form 搜索表单值\n * @param done 完成回调\n */\nconst handleSearch = (form: any) => {\n tableRef.value?.clearSelection()\n emit('search', form)\n}\n\n/**\n * @description 重置搜索\n */\nconst handleReset = () => {\n tableRef.value?.clearSelection()\n emit('reset')\n}\n\n/**\n * @description 获取表格高度\n */\nconst setTableHeight = () => {\n nextTick(() => {\n // 自动高度\n if (crudOption.value.height === 'auto') {\n // 表格style对象\n const tableStyle = tableRef.value?.$el\n // 分页对象\n // const pageStyle: any = document.querySelector('.m-pagination-box')\n // 额外可控制高度参数\n const calcHeight: number =\n crudOption.value.calcHeight || globalConfig.value?.calcHeight || 0\n tableHeight.value =\n document.documentElement.clientHeight -\n (tableStyle?.offsetTop || 0) -\n 72 -\n calcHeight\n } else {\n tableHeight.value = crudOption.value.height\n }\n })\n}\n\n/**\n * 打开新增对话框\n */\nconst rowAdd = () => {\n dialogType.value = 'add'\n dialogVisible.value = true\n}\n\n/**\n * @description 打开编辑修改\n */\nconst rowEdit = (row: any, index: number) => {\n // 备份数据\n _modelForm.value = cloneDeep(row)\n _rowIndex.value = index\n\n // 弹窗类型\n dialogType.value = 'edit'\n modelForm.value = cloneDeep(row)\n // 弹窗状态\n dialogVisible.value = true\n}\n\n/**\n * @description 打开详情\n */\nconst rowView = (row: any, index: number) => {\n // 备份数据\n _modelForm.value = cloneDeep(row)\n _rowIndex.value = index\n\n // 弹窗类型\n dialogType.value = 'view'\n modelForm.value = cloneDeep(row)\n // 弹窗状态\n dialogVisible.value = true\n}\n\n/**\n * @description 打开删除\n */\nconst rowDel = (row: any, index: number) => {\n ElMessageBox.confirm('此操作将删除该数据, 是否继续?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n emit('rowDel', row, index)\n })\n .catch(() => {})\n}\n\n/**\n * 对话框确认事件\n * @param done 完成\n * @param loading 结束加载\n */\nconst dialogEnter = async (done: () => void, loading: () => void) => {\n const valid = await formRef.value!.validForm()\n // 校验不通过\n if (!valid) {\n loading()\n return\n }\n\n // 表单前校验\n if (props.beforeEnter && !(await props.beforeEnter())) {\n loading()\n return\n }\n\n if (dialogType.value === 'add') {\n // 新增\n emit('rowSave', modelForm.value, done, loading)\n } else if (dialogType.value === 'edit') {\n // 修改\n emit('rowEdit', modelForm.value, done, loading)\n }\n}\n\nconst dialogCancel = () => {\n emit('rowCancel', _modelForm.value || {}, _rowIndex.value, dialogType.value)\n}\n\n/**\n * @description 弹窗关闭\n */\nconst dialogClose = () => {\n // 清空备份\n _modelForm.value = null\n _rowIndex.value = -1\n\n if (formRef.value) {\n formRef.value.clear()\n modelForm.value = cloneDeep(__firstModelForm.value)\n } else {\n emit('update:modelValue', cloneDeep(__firstModelForm.value))\n }\n}\n\n/**\n * 复制对象到新对象,排除指定key\n * @param sourceObj 源对象\n * @param excludeKeys 排除的key\n */\nconst copyObjectExcept = (sourceObj: any, excludeKeys: string[] = []) => {\n const result: any = {}\n Object.keys(sourceObj).forEach((key) => {\n if (!excludeKeys.includes(key)) {\n result[key] = sourceObj[key]\n }\n })\n return result\n}\n\nwatch(\n () => props.option as ICrudOption,\n (newVal: ICrudOption) => {\n if (newVal) {\n // crud配置项\n crudOption.value = Object.assign({}, crudOption.value, newVal)\n // table配置项\n tableOption.value = Object.assign(\n {},\n tableOption.value,\n copyObjectExcept(crudOption.value, ['column'])\n )\n // search配置项\n searchOption.value = transSearchOption(\n Object.assign(\n {},\n searchOption.value,\n copyObjectExcept(crudOption.value, ['column'])\n )\n )\n\n const searchColumns: ISearchColumn[] = []\n const tableColumns: ITableColumn[] = []\n if (newVal.column && newVal.column.length) {\n for (let i = 0; i < newVal.column.length; i++) {\n const item = newVal.column[i]\n // 处理搜索列\n if (\n item.search &&\n !['index', 'single', 'selection'].includes(item.type || '')\n ) {\n searchColumns.push(transSearchColumn(item))\n }\n // 列表\n if (!item.hide) {\n tableColumns.push(item)\n }\n }\n searchOption.value.column = searchColumns\n tableOption.value.column = tableColumns\n }\n }\n },\n {\n immediate: true,\n deep: true,\n }\n)\n\nonMounted(() => {\n // 设置表格高度\n if (crudOption.value.height) {\n setTableHeight()\n }\n})\n\ndefineExpose({\n /**\n * @description 新增\n */\n rowAdd,\n /**\n * @description 编辑\n */\n rowEdit,\n /**\n * @description 查看\n */\n rowView,\n /**\n * @description 删除\n */\n rowDel,\n})\n</script>\n\n<template>\n <div class=\"m-crud\">\n <MSearch\n ref=\"searchRef\"\n :model=\"searchProxys\"\n :option=\"searchOption\"\n :size=\"size || globalConfig.size\"\n :permission=\"permission\"\n @search=\"handleSearch\"\n @reset=\"handleReset\"\n >\n <!-- 搜索插槽 -->\n <template\n v-for=\"(slotKey, index) in Object.keys(searchSlots)\"\n :key=\"index\"\n #[slotKey]=\"scope\"\n >\n <slot :name=\"slotKey + 'Search'\" v-bind=\"scope\" />\n </template>\n <!---->\n </MSearch>\n <!--顶部操作区域-->\n <div v-if=\"crudOption.addBtn || slots.topLeft\" class=\"m-search-top\">\n <div class=\"m-search-left\">\n <el-button\n v-if=\"crudOption.addBtn && !slots.addBtn\"\n :size=\"size || globalConfig.size\"\n type=\"primary\"\n :icon=\"crudOption.addBtnIcon\"\n @click=\"rowAdd()\"\n >\n {{ crudOption.addBtnText }}\n </el-button>\n <slot name=\"addBtn\" v-bind=\"{ size: size || globalConfig.size }\" />\n <slot name=\"topLeft\" v-bind=\"{ size: size || globalConfig.size }\" />\n </div>\n <div class=\"m-search-right\">\n <slot name=\"topRight\" v-bind=\"{ size: size || globalConfig.size }\" />\n </div>\n </div>\n <!---->\n <!--表格-->\n <MTable\n ref=\"tableRef\"\n v-model:select=\"selectData\"\n :data=\"data\"\n :size=\"size || globalConfig.size\"\n :loading=\"loading\"\n :permission=\"permission\"\n :option=\"tableOption\"\n :height=\"tableHeight\"\n :max-height=\"tableHeight\"\n >\n <!-- 列表插槽 -->\n <template\n v-for=\"(slotKey, index) in Object.keys(tableSlots)\"\n :key=\"index\"\n #[slotKey]=\"scope\"\n >\n <slot :name=\"slotKey\" v-bind=\"scope\" />\n </template>\n <!---->\n <!--操作栏-->\n <template #menu=\"scope\">\n <el-link\n v-if=\"crudOption.editBtn && !slots.editBtn\"\n class=\"m-control-btns\"\n type=\"primary\"\n :size=\"size || globalConfig.size\"\n :underline=\"false\"\n icon=\"Edit\"\n @click=\"rowEdit(scope.row, scope.$index)\"\n >\n {{ t('m.crud.editBtnText') }}\n </el-link>\n <slot\n v-if=\"crudOption.editBtn && slots.editBtn\"\n name=\"editBtn\"\n v-bind=\"scope\"\n />\n <el-link\n v-if=\"crudOption.delBtn && !slots.delBtn\"\n class=\"m-control-btns\"\n type=\"primary\"\n :underline=\"false\"\n :size=\"size || globalConfig.size\"\n icon=\"Delete\"\n @click=\"rowDel(scope.row, scope.$index)\"\n >\n {{ t('m.crud.delBtnText') }}\n </el-link>\n <slot\n v-if=\"crudOption.delBtn && slots.delBtn\"\n name=\"delBtn\"\n v-bind=\"scope\"\n />\n <slot\n v-if=\"\n crudOption.menu && slots.menu && !(slots.editBtn || slots.delBtn)\n \"\n name=\"menu\"\n v-bind=\"scope\"\n />\n </template>\n <!---->\n </MTable>\n <!---->\n <!--分页区域-->\n <div v-if=\"searchProxys.page && total\" class=\"m-pagination-box\">\n <m-pagination\n :small=\"(size || globalConfig.size) === 'small'\"\n :total=\"total\"\n :current-page=\"searchProxys.page\"\n :page-size=\"searchProxys.limit\"\n :disabled=\"loading\"\n @current-page=\"currentPageChange\"\n @page-size=\"pageSizeChange\"\n />\n </div>\n <!--新增/编辑/查看对话框-->\n <MDialog\n v-model=\"dialogVisible\"\n :size=\"size || globalConfig.size\"\n :title=\"dialogTitle\"\n :width=\"crudOption.dialogWidth\"\n :save-btn=\"dialogType !== 'view'\"\n :cancel-btn=\"dialogType !== 'view'\"\n :save-btn-text=\"t('m.crud.dialogSaveBtnText')\"\n :cancel-btn-text=\"t('m.crud.dialogCancelBtnText')\"\n :save-btn-icon=\"dialogType === 'add' ? 'CirclePlus' : 'CircleCheck'\"\n @enter=\"dialogEnter\"\n @cancel=\"dialogCancel\"\n @close=\"dialogClose\"\n >\n <template #default=\"{ loading }\">\n <!--所有类型顶部-->\n <slot\n name=\"allTop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--新增/编辑类型顶部-->\n <slot\n v-if=\"dialogType !== 'view'\"\n name=\"formTop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--新增类型顶部-->\n <slot\n v-if=\"dialogType === 'add'\"\n name=\"addTop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--编辑类型顶部-->\n <slot\n v-if=\"dialogType === 'edit'\"\n name=\"editTop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--查看类型顶部-->\n <slot\n v-if=\"dialogType === 'view'\"\n name=\"viewTop\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <MForm\n ref=\"formRef\"\n :loading=\"loading\"\n :size=\"size || globalConfig.size\"\n :option=\"formOption\"\n :model=\"modelForm\"\n :readonly=\"dialogType === 'view'\"\n >\n <!-- 表单插槽 -->\n <template\n v-for=\"(slotKey, index) in Object.keys(formSlots)\"\n :key=\"index\"\n #[slotKey]=\"scope\"\n >\n <slot :name=\"slotKey + 'Form'\" v-bind=\"scope\" />\n </template>\n <!---->\n </MForm>\n <!--所有类型底部-->\n <slot\n name=\"allBottom\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--新增/编辑类型底部-->\n <slot\n v-if=\"dialogType !== 'view'\"\n name=\"formBottom\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--新增类型底部-->\n <slot\n v-if=\"dialogType === 'add'\"\n name=\"addBottom\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--编辑类型底部-->\n <slot\n v-if=\"dialogType === 'edit'\"\n name=\"editBottom\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n <!--查看类型底部-->\n <slot\n v-if=\"dialogType === 'view'\"\n name=\"viewBottom\"\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\n />\n <!---->\n </template>\n </MDialog>\n <!---->\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud2.mjs","sources":["../../../../../../../packages/components/crud/src/crud.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { computed, nextTick, onMounted, ref, useSlots, watch } from 'vue'\r\nimport { ElMessageBox } from 'element-plus'\r\nimport { cloneDeep, get, set } from 'lodash-unified'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { crudEmits, crudProps } from './crud'\r\nimport type { ISearchColumn, ISearchOption, SearchInstance } from '../../search'\r\nimport type { ITableColumn, ITableOption, TableInstance } from '../../table'\r\nimport type { ICrudColumn, ICrudOption } from './crud'\r\nimport type { FormInstance, IFormColumn, IFormOption } from '../../form'\r\n\r\nconst COMPONENT_NAME = 'MCrud'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(crudProps)\r\nconst emit = defineEmits(crudEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 国际化配置\r\nconst { t } = useLocale()\r\n\r\n// 搜索插槽\r\nconst searchSlots = computed(() => {\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (key.endsWith('Search')) {\r\n result[key.replace('Search', '')] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n// 表单插槽\r\nconst formSlots = computed(() => {\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (key.endsWith('Form')) {\r\n result[key.replace('Form', '')] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n// 列表插槽\r\nconst tableSlots = computed(() => {\r\n const whites = ['topLeft', 'topRight', 'addBtn']\r\n const keys = Object.keys(slots)\r\n const result: any = {}\r\n for (const key of keys) {\r\n if (\r\n !whites.includes(key) &&\r\n !key.endsWith('Search') &&\r\n !key.endsWith('Form')\r\n ) {\r\n result[key] = slots[key]\r\n }\r\n }\r\n return result\r\n})\r\n\r\n/**\r\n * @description crud配置项\r\n */\r\nconst crudOption = ref<ICrudOption>({\r\n // 默认显示添加按钮\r\n addBtn: true,\r\n // 默认显示编辑按钮\r\n editBtn: true,\r\n // 默认显示删除按钮\r\n delBtn: true,\r\n // 添加按钮文字\r\n addBtnText: t('m.crud.addBtnText'),\r\n // 添加按钮图标\r\n addBtnIcon: 'Plus',\r\n // 添加对话框标题\r\n addDialogTitle: t('m.crud.addDialogTitle'),\r\n // 编辑对话框标题\r\n editDialogTitle: t('m.crud.editDialogTitle'),\r\n // 查看对话框标题\r\n viewDialogTitle: t('m.crud.viewDialogTitle'),\r\n // 对话框宽度\r\n dialogWidth: '800px',\r\n\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description 对话框类型\r\n */\r\nconst dialogType = ref<'add' | 'edit' | 'view'>('add')\r\n\r\n/**\r\n * @description 搜索ref\r\n */\r\nconst searchRef = ref<SearchInstance>()\r\n\r\n/**\r\n * @description 表单ref\r\n */\r\nconst formRef = ref<FormInstance>()\r\n\r\n/**\r\n * @description 表格ref\r\n */\r\nconst tableRef = ref<TableInstance>()\r\n\r\n/**\r\n * @description 对话框显示状态\r\n */\r\nconst dialogVisible = ref(false)\r\n\r\n/**\r\n * @description 表格高度\r\n */\r\nconst tableHeight = ref<any>(undefined)\r\n\r\n// 备份modelForm\r\nconst _modelForm = ref<any>()\r\n\r\n// 备份列表index\r\nconst _rowIndex = ref(-1)\r\n\r\n/**\r\n * @description 对话框标题\r\n */\r\nconst dialogTitle = computed(() => {\r\n if (dialogType.value === 'add') {\r\n return crudOption.value.addDialogTitle\r\n }\r\n if (dialogType.value === 'edit') {\r\n return crudOption.value.editDialogTitle\r\n }\r\n return crudOption.value.viewDialogTitle\r\n})\r\n\r\n/**\r\n * @description 表单数据\r\n */\r\nconst modelForm = computed({\r\n get() {\r\n return props.modelValue\r\n },\r\n set(value: any) {\r\n emit('update:modelValue', value)\r\n },\r\n})\r\n\r\n// 备份第一次的modelForm\r\nconst __firstModelForm = ref<any>({})\r\n__firstModelForm.value = props.modelValue\r\n\r\n/**\r\n * @description table配置项\r\n */\r\nconst tableOption = ref<ITableOption>({\r\n // 默认显示操作栏\r\n menu: true,\r\n\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description search配置项\r\n */\r\nconst searchOption = ref<ISearchOption>({\r\n column: [],\r\n})\r\n\r\n/**\r\n * @description form配置项\r\n */\r\nconst formOption = computed<IFormOption>(() => {\r\n let option: IFormOption = {\r\n column: [],\r\n }\r\n option = transFormOption(\r\n Object.assign({}, option, copyObjectExcept(crudOption.value, ['column']))\r\n )\r\n for (let i = 0; i < crudOption.value.column.length; i++) {\r\n const item = cloneDeep(crudOption.value.column[i])\r\n const formColumn: IFormColumn = transFormColumn(item)\r\n\r\n if (['index', 'single', 'selection'].includes(item.type || '')) {\r\n continue\r\n }\r\n\r\n if (dialogType.value === 'add') {\r\n // 新增模式\r\n if (!item.addHide) {\r\n option.column.push(formColumn)\r\n }\r\n } else if (dialogType.value === 'edit') {\r\n // 编辑模式\r\n if (!item.editHide) {\r\n option.column.push(formColumn)\r\n }\r\n } else {\r\n // 查看模式\r\n if (!item.viewHide) {\r\n option.column.push(formColumn)\r\n }\r\n }\r\n }\r\n\r\n return option\r\n})\r\n\r\n/**\r\n * @description 搜索代理\r\n */\r\nconst searchProxys = new Proxy(props.search, {\r\n get(target, key) {\r\n return get(target, key)\r\n },\r\n set(target, key, value) {\r\n set(target, key, value)\r\n return true\r\n },\r\n})\r\n\r\n/**\r\n * @description 选择的数据\r\n */\r\nconst selectData = computed({\r\n get() {\r\n return props.select\r\n },\r\n set(value: any) {\r\n emit('update:select', value)\r\n },\r\n})\r\n\r\n/**\r\n * 转换search列\r\n * @param option 列配置\r\n */\r\nconst transSearchColumn = (column: ICrudColumn): ISearchColumn => {\r\n const result: ISearchColumn = cloneDeep(column) as ISearchColumn\r\n // 转换排序\r\n if (column.searchOrder) {\r\n result.order = column.searchOrder\r\n } else {\r\n delete result.order\r\n }\r\n // 转换默认值\r\n if (column.searchValue) {\r\n result.value = column.searchValue\r\n } else {\r\n delete result.value\r\n }\r\n // 转换占位符\r\n if (column.searchPlaceholder) {\r\n result.placeholder = column.searchPlaceholder\r\n } else {\r\n delete result.placeholder\r\n }\r\n // 转换表单校验规则\r\n if (column.searchRules) {\r\n result.rules = column.searchRules\r\n } else {\r\n delete result.rules\r\n }\r\n // 转换栅格\r\n if (column.searchSpan) {\r\n result.span = column.searchSpan\r\n } else {\r\n delete result.span\r\n }\r\n // 转换labelWidth\r\n if (column.searchLabelWidth) {\r\n result.labelWidth = column.searchLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换form列\r\n * @param column 列配置\r\n * @param type 类型\r\n */\r\nconst transFormColumn = (column: ICrudColumn): IFormColumn => {\r\n const result: IFormColumn = cloneDeep(column) as IFormColumn\r\n // 转换排序\r\n if (column.formOrder) {\r\n result.order = column.formOrder\r\n } else {\r\n delete result.order\r\n }\r\n // 转换默认值\r\n if (column.formValue) {\r\n result.value = column.formValue\r\n } else {\r\n delete result.value\r\n }\r\n // 转换占位符\r\n if (column.formPlaceholder) {\r\n result.placeholder = column.formPlaceholder\r\n } else {\r\n delete result.placeholder\r\n }\r\n // 转换表单校验规则\r\n if (column.formRules) {\r\n result.rules = column.formRules\r\n } else {\r\n delete result.rules\r\n }\r\n // 转换labelWidth\r\n if (column.formLabelWidth) {\r\n result.labelWidth = column.formLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n // 转换栅格\r\n if (column.formSpan || column.addSpan || column.editSpan || column.viewSpan) {\r\n if (column.formSpan) {\r\n result.span = column.formSpan\r\n }\r\n if (dialogType.value === 'add' && column.addSpan) {\r\n result.span = column.addSpan\r\n } else if (dialogType.value === 'edit' && column.editSpan) {\r\n result.span = column.editSpan\r\n } else if (dialogType.value === 'view' && column.viewSpan) {\r\n result.span = column.viewSpan\r\n }\r\n } else {\r\n delete result.span\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换search option\r\n * @param option crud option\r\n */\r\nconst transSearchOption = (option: ICrudOption): ISearchOption => {\r\n const result: ISearchOption = cloneDeep(option) as ISearchOption\r\n // 转换labelWidth\r\n if (option.searchLabelWidth) {\r\n result.labelWidth = option.searchLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 转换form option\r\n * @param option crud option\r\n */\r\nconst transFormOption = (option: ICrudOption): IFormOption => {\r\n const result: IFormOption = cloneDeep(option) as IFormOption\r\n // 转换labelWidth\r\n if (option.formLabelWidth) {\r\n result.labelWidth = option.formLabelWidth\r\n } else {\r\n delete result.labelWidth\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * @description 当前页发生改变\r\n */\r\nconst currentPageChange = (page: number) => {\r\n searchRef.value?.search(page)\r\n}\r\n\r\n/**\r\n * @description 页大小发生变化\r\n */\r\nconst pageSizeChange = (pageSize: number) => {\r\n searchProxys.limit = pageSize\r\n searchRef.value?.search()\r\n}\r\n\r\n/**\r\n * @description 搜索事件\r\n * @param form 搜索表单值\r\n * @param done 完成回调\r\n */\r\nconst handleSearch = (form: any) => {\r\n tableRef.value?.clearSelection()\r\n emit('search', form)\r\n}\r\n\r\n/**\r\n * @description 重置搜索\r\n */\r\nconst handleReset = () => {\r\n tableRef.value?.clearSelection()\r\n emit('reset')\r\n}\r\n\r\n/**\r\n * @description 获取表格高度\r\n */\r\nconst setTableHeight = () => {\r\n nextTick(() => {\r\n // 自动高度\r\n if (crudOption.value.height === 'auto') {\r\n // 表格style对象\r\n const tableStyle = tableRef.value?.$el\r\n // 分页对象\r\n // const pageStyle: any = document.querySelector('.m-pagination-box')\r\n // 额外可控制高度参数\r\n const calcHeight: number =\r\n crudOption.value.calcHeight || globalConfig.value?.calcHeight || 0\r\n tableHeight.value =\r\n document.documentElement.clientHeight -\r\n (tableStyle?.offsetTop || 0) -\r\n 72 -\r\n calcHeight\r\n } else {\r\n tableHeight.value = crudOption.value.height\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 打开新增对话框\r\n */\r\nconst rowAdd = () => {\r\n dialogType.value = 'add'\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开编辑修改\r\n */\r\nconst rowEdit = (row: any, index: number) => {\r\n // 备份数据\r\n _modelForm.value = cloneDeep(row)\r\n _rowIndex.value = index\r\n\r\n // 弹窗类型\r\n dialogType.value = 'edit'\r\n modelForm.value = cloneDeep(row)\r\n // 弹窗状态\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开详情\r\n */\r\nconst rowView = (row: any, index: number) => {\r\n // 备份数据\r\n _modelForm.value = cloneDeep(row)\r\n _rowIndex.value = index\r\n\r\n // 弹窗类型\r\n dialogType.value = 'view'\r\n modelForm.value = cloneDeep(row)\r\n // 弹窗状态\r\n dialogVisible.value = true\r\n}\r\n\r\n/**\r\n * @description 打开删除\r\n */\r\nconst rowDel = (row: any, index: number) => {\r\n ElMessageBox.confirm('此操作将删除该数据, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n emit('rowDel', row, index)\r\n })\r\n .catch(() => {})\r\n}\r\n\r\n/**\r\n * 对话框确认事件\r\n * @param done 完成\r\n * @param loading 结束加载\r\n */\r\nconst dialogEnter = async (done: () => void, loading: () => void) => {\r\n const valid = await formRef.value!.validForm()\r\n // 校验不通过\r\n if (!valid) {\r\n loading()\r\n return\r\n }\r\n\r\n // 表单前校验\r\n if (props.beforeEnter && !(await props.beforeEnter())) {\r\n loading()\r\n return\r\n }\r\n\r\n if (dialogType.value === 'add') {\r\n // 新增\r\n emit('rowSave', modelForm.value, done, loading)\r\n } else if (dialogType.value === 'edit') {\r\n // 修改\r\n emit('rowEdit', modelForm.value, done, loading)\r\n }\r\n}\r\n\r\nconst dialogCancel = () => {\r\n emit('rowCancel', _modelForm.value || {}, _rowIndex.value, dialogType.value)\r\n}\r\n\r\n/**\r\n * @description 弹窗关闭\r\n */\r\nconst dialogClose = () => {\r\n // 清空备份\r\n _modelForm.value = null\r\n _rowIndex.value = -1\r\n\r\n if (formRef.value) {\r\n formRef.value.clear()\r\n modelForm.value = cloneDeep(__firstModelForm.value)\r\n } else {\r\n emit('update:modelValue', cloneDeep(__firstModelForm.value))\r\n }\r\n}\r\n\r\n/**\r\n * 复制对象到新对象,排除指定key\r\n * @param sourceObj 源对象\r\n * @param excludeKeys 排除的key\r\n */\r\nconst copyObjectExcept = (sourceObj: any, excludeKeys: string[] = []) => {\r\n const result: any = {}\r\n Object.keys(sourceObj).forEach((key) => {\r\n if (!excludeKeys.includes(key)) {\r\n result[key] = sourceObj[key]\r\n }\r\n })\r\n return result\r\n}\r\n\r\nwatch(\r\n () => props.option as ICrudOption,\r\n (newVal: ICrudOption) => {\r\n if (newVal) {\r\n // crud配置项\r\n crudOption.value = Object.assign({}, crudOption.value, newVal)\r\n // table配置项\r\n tableOption.value = Object.assign(\r\n {},\r\n tableOption.value,\r\n copyObjectExcept(crudOption.value, ['column'])\r\n )\r\n // search配置项\r\n searchOption.value = transSearchOption(\r\n Object.assign(\r\n {},\r\n searchOption.value,\r\n copyObjectExcept(crudOption.value, ['column'])\r\n )\r\n )\r\n\r\n const searchColumns: ISearchColumn[] = []\r\n const tableColumns: ITableColumn[] = []\r\n if (newVal.column && newVal.column.length) {\r\n for (let i = 0; i < newVal.column.length; i++) {\r\n const item = newVal.column[i]\r\n // 处理搜索列\r\n if (\r\n item.search &&\r\n !['index', 'single', 'selection'].includes(item.type || '')\r\n ) {\r\n searchColumns.push(transSearchColumn(item))\r\n }\r\n // 列表\r\n if (!item.hide) {\r\n tableColumns.push(item)\r\n }\r\n }\r\n searchOption.value.column = searchColumns\r\n tableOption.value.column = tableColumns\r\n }\r\n }\r\n },\r\n {\r\n immediate: true,\r\n deep: true,\r\n }\r\n)\r\n\r\nonMounted(() => {\r\n // 设置表格高度\r\n if (crudOption.value.height) {\r\n setTableHeight()\r\n }\r\n})\r\n\r\ndefineExpose({\r\n /**\r\n * @description 新增\r\n */\r\n rowAdd,\r\n /**\r\n * @description 编辑\r\n */\r\n rowEdit,\r\n /**\r\n * @description 查看\r\n */\r\n rowView,\r\n /**\r\n * @description 删除\r\n */\r\n rowDel,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"m-crud\">\r\n <MSearch\r\n ref=\"searchRef\"\r\n :model=\"searchProxys\"\r\n :option=\"searchOption\"\r\n :size=\"size || globalConfig.size\"\r\n :permission=\"permission\"\r\n @search=\"handleSearch\"\r\n @reset=\"handleReset\"\r\n >\r\n <!-- 搜索插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(searchSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey + 'Search'\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n </MSearch>\r\n <!--顶部操作区域-->\r\n <div v-if=\"crudOption.addBtn || slots.topLeft\" class=\"m-search-top\">\r\n <div class=\"m-search-left\">\r\n <el-button\r\n v-if=\"crudOption.addBtn && !slots.addBtn && permission['add'] !== false\"\r\n :size=\"size || globalConfig.size\"\r\n type=\"primary\"\r\n :icon=\"crudOption.addBtnIcon\"\r\n @click=\"rowAdd()\"\r\n >\r\n {{ crudOption.addBtnText }}\r\n </el-button>\r\n <slot name=\"addBtn\" v-if=\"permission['add'] !== false\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n <slot name=\"topLeft\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n </div>\r\n <div class=\"m-search-right\">\r\n <slot name=\"topRight\" v-bind=\"{ size: size || globalConfig.size }\" />\r\n </div>\r\n </div>\r\n <!---->\r\n <!--表格-->\r\n <MTable\r\n ref=\"tableRef\"\r\n v-model:select=\"selectData\"\r\n :data=\"data\"\r\n :size=\"size || globalConfig.size\"\r\n :loading=\"loading\"\r\n :permission=\"permission\"\r\n :option=\"tableOption\"\r\n :height=\"tableHeight\"\r\n :max-height=\"tableHeight\"\r\n >\r\n <!-- 列表插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(tableSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n <!--操作栏-->\r\n <template #menu=\"scope\">\r\n <el-link\r\n v-if=\"crudOption.editBtn && !slots.editBtn && permission['edit'] !== false\"\r\n class=\"m-control-btns\"\r\n type=\"primary\"\r\n :size=\"size || globalConfig.size\"\r\n underline=\"never\"\r\n icon=\"Edit\"\r\n @click=\"rowEdit(scope.row, scope.$index)\"\r\n >\r\n {{ t('m.crud.editBtnText') }}\r\n </el-link>\r\n <slot\r\n v-if=\"crudOption.editBtn && slots.editBtn && permission['edit'] !== false\"\r\n name=\"editBtn\"\r\n v-bind=\"scope\"\r\n />\r\n <el-link\r\n v-if=\"crudOption.delBtn && !slots.delBtn && permission['del'] !== false\"\r\n class=\"m-control-btns\"\r\n type=\"primary\"\r\n underline=\"never\"\r\n :size=\"size || globalConfig.size\"\r\n icon=\"Delete\"\r\n @click=\"rowDel(scope.row, scope.$index)\"\r\n >\r\n {{ t('m.crud.delBtnText') }}\r\n </el-link>\r\n <slot\r\n v-if=\"crudOption.delBtn && slots.delBtn && permission['del'] !== false\"\r\n name=\"delBtn\"\r\n v-bind=\"scope\"\r\n />\r\n <slot\r\n v-if=\"\r\n crudOption.menu && slots.menu && !(slots.editBtn || slots.delBtn)\r\n \"\r\n name=\"menu\"\r\n v-bind=\"scope\"\r\n />\r\n </template>\r\n <!---->\r\n </MTable>\r\n <!---->\r\n <!--分页区域-->\r\n <div v-if=\"searchProxys.page && total\" class=\"m-pagination-box\">\r\n <m-pagination\r\n :small=\"(size || globalConfig.size) === 'small'\"\r\n :total=\"total\"\r\n :current-page=\"searchProxys.page\"\r\n :page-size=\"searchProxys.limit\"\r\n :disabled=\"loading\"\r\n @current-page=\"currentPageChange\"\r\n @page-size=\"pageSizeChange\"\r\n />\r\n </div>\r\n <!--新增/编辑/查看对话框-->\r\n <MDialog\r\n v-model=\"dialogVisible\"\r\n :size=\"size || globalConfig.size\"\r\n :title=\"dialogTitle\"\r\n :width=\"crudOption.dialogWidth\"\r\n :save-btn=\"dialogType !== 'view'\"\r\n :cancel-btn=\"dialogType !== 'view'\"\r\n :save-btn-text=\"t('m.crud.dialogSaveBtnText')\"\r\n :cancel-btn-text=\"t('m.crud.dialogCancelBtnText')\"\r\n :save-btn-icon=\"dialogType === 'add' ? 'CirclePlus' : 'CircleCheck'\"\r\n @enter=\"dialogEnter\"\r\n @cancel=\"dialogCancel\"\r\n @close=\"dialogClose\"\r\n >\r\n <template #default=\"{ loading }\">\r\n <!--所有类型顶部-->\r\n <slot\r\n name=\"allTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增/编辑类型顶部-->\r\n <slot\r\n v-if=\"dialogType !== 'view'\"\r\n name=\"formTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'add'\"\r\n name=\"addTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--编辑类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'edit'\"\r\n name=\"editTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--查看类型顶部-->\r\n <slot\r\n v-if=\"dialogType === 'view'\"\r\n name=\"viewTop\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <MForm\r\n ref=\"formRef\"\r\n :loading=\"loading\"\r\n :size=\"size || globalConfig.size\"\r\n :option=\"formOption\"\r\n :model=\"modelForm\"\r\n :readonly=\"dialogType === 'view'\"\r\n >\r\n <!-- 表单插槽 -->\r\n <template\r\n v-for=\"(slotKey, index) in Object.keys(formSlots)\"\r\n :key=\"index\"\r\n #[slotKey]=\"scope\"\r\n >\r\n <slot :name=\"slotKey + 'Form'\" v-bind=\"scope\" />\r\n </template>\r\n <!---->\r\n </MForm>\r\n <!--所有类型底部-->\r\n <slot\r\n name=\"allBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增/编辑类型底部-->\r\n <slot\r\n v-if=\"dialogType !== 'view'\"\r\n name=\"formBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--新增类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'add'\"\r\n name=\"addBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--编辑类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'edit'\"\r\n name=\"editBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n <!--查看类型底部-->\r\n <slot\r\n v-if=\"dialogType === 'view'\"\r\n name=\"viewBottom\"\r\n v-bind=\"{ size: size || globalConfig.size, loading: loading }\"\r\n />\r\n <!---->\r\n </template>\r\n </MDialog>\r\n <!---->\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/dialog/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\nimport Dialog from './src/dialog.vue'\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\n\nexport const MDialog: SFCWithInstall<typeof Dialog> = withInstall(Dialog)\nexport default MDialog\n\nexport * from './src/dialog'\nexport type { DialogInstance } from './src/instance'\n"],"names":[],"mappings":";;;;AAIa,MAAA,OAAA,GAAyC,YAAY,MAAM;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/dialog/index.ts"],"sourcesContent":["import { withInstall } from '@m-eleplus-crud/utils'\r\nimport Dialog from './src/dialog.vue'\r\nimport type { SFCWithInstall } from '@m-eleplus-crud/utils'\r\n\r\nexport const MDialog: SFCWithInstall<typeof Dialog> = withInstall(Dialog)\r\nexport default MDialog\r\n\r\nexport * from './src/dialog'\r\nexport type { DialogInstance } from './src/instance'\r\n"],"names":[],"mappings":";;;;AAIa,MAAA,OAAA,GAAyC,YAAY,MAAM;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","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":[],"mappings":";;;AA+EO,MAAM,YAAY,UAAW,CAAA;AAAA,EAIlC,IAAM,EAAA,WAAA;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,EAAM,eAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;"}
1
+ {"version":3,"file":"form.mjs","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\r\nimport { buildProps, definePropType } from '@m-eleplus-crud/utils'\r\n\r\nimport type { ColumnType, ICommonColumn } from '../../common'\r\nimport type { FormItemRule } from 'element-plus'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\n// 事件处理\r\ntype EventHandlers = {\r\n [K in `event${string}`]?: (...args: any[]) => any\r\n}\r\n\r\n/**\r\n * @description 公开的form column配置\r\n */\r\nexport interface IFormCommonColumn extends EventHandlers {\r\n /**\r\n * 表单校验规则\r\n */\r\n rules?: FormItemRule[]\r\n /**\r\n * @description 单个标签宽度\r\n */\r\n labelWidth?: string\r\n /**\r\n * @description 表单排序\r\n */\r\n order?: number\r\n /**\r\n * @description 栅栏宽度\r\n */\r\n span?: number\r\n /**\r\n * @description 最大长度\r\n */\r\n maxlength?: number\r\n /**\r\n * @description 是否显示字数统计,仅对type为textarea有效\r\n */\r\n showWordLimit?: boolean\r\n /**\r\n * @description 是否显示密码切换按钮,仅对type为password有效\r\n */\r\n showPassword?: boolean\r\n /**\r\n * @description 默认值\r\n */\r\n value?: any\r\n /**\r\n * @description 占位文本\r\n */\r\n placeholder?: string\r\n}\r\n\r\nexport interface IFormColumn extends ICommonColumn, IFormCommonColumn {\r\n /**\r\n * @description 组件类型\r\n */\r\n type?: ColumnType\r\n}\r\n\r\n/**\r\n * @description 公开的form配置\r\n */\r\nexport interface IFormCommonOption {\r\n /**\r\n * @description 标签宽度\r\n */\r\n labelWidth?: string\r\n}\r\n\r\nexport interface IFormOption extends IFormCommonOption {\r\n /**\r\n * @description 表单列\r\n */\r\n column: IFormColumn[]\r\n}\r\n\r\nexport const formProps = buildProps({\r\n /**\r\n * @description 组件大小\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 表单绑定的数据\r\n */\r\n model: {\r\n type: Object,\r\n required: true,\r\n },\r\n /**\r\n * @description 表单加载状态\r\n */\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表单权限配置\r\n */\r\n permission: {\r\n type: Object,\r\n default: {},\r\n },\r\n /**\r\n * @description 是否只读\r\n */\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表单配置\r\n */\r\n option: {\r\n type: definePropType<IFormOption>(Object),\r\n required: false,\r\n },\r\n} as const)\r\nexport type FormProps = ExtractPropTypes<typeof formProps>\r\n\r\nexport const formEmits = {}\r\nexport type FormEmits = typeof formEmits\r\n"],"names":[],"mappings":";;;AA+EO,MAAM,YAAY,UAAW,CAAA;AAAA,EAIlC,IAAM,EAAA,WAAA;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,EAAM,eAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;"}