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
package/global.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- declare module 'vue' {
2
- // GlobalComponents for Volar
3
- export interface GlobalComponents {
4
- MTable: typeof import('m-eleplus-crud')['MTable']
5
- MConfigProvider: typeof import('m-eleplus-crud')['MConfigProvider']
6
- MSearch: typeof import('m-eleplus-crud')['MSearch']
7
- MPicture: typeof import('m-eleplus-crud')['MPicture']
8
- MDialog: typeof import('m-eleplus-crud')['MDialog']
9
- MQrcode: typeof import('m-eleplus-crud')['MQrcode']
10
- MBarcode: typeof import('m-eleplus-crud')['MBarcode']
11
- MForm: typeof import('m-eleplus-crud')['MForm']
12
- MCrud: typeof import('m-eleplus-crud')['MCrud']
13
- MPagination: typeof import('m-eleplus-crud')['MPagination']
14
- }
15
- }
16
-
17
- export {}
1
+ declare module 'vue' {
2
+ // GlobalComponents for Volar
3
+ export interface GlobalComponents {
4
+ MTable: typeof import('m-eleplus-crud')['MTable']
5
+ MConfigProvider: typeof import('m-eleplus-crud')['MConfigProvider']
6
+ MSearch: typeof import('m-eleplus-crud')['MSearch']
7
+ MPicture: typeof import('m-eleplus-crud')['MPicture']
8
+ MDialog: typeof import('m-eleplus-crud')['MDialog']
9
+ MQrcode: typeof import('m-eleplus-crud')['MQrcode']
10
+ MBarcode: typeof import('m-eleplus-crud')['MBarcode']
11
+ MForm: typeof import('m-eleplus-crud')['MForm']
12
+ MCrud: typeof import('m-eleplus-crud')['MCrud']
13
+ MPagination: typeof import('m-eleplus-crud')['MPagination']
14
+ }
15
+ }
16
+
17
+ export {}
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","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":["MTable","MConfigProvider","MSearch","MPicture","MDialog","MQrcode","MBarcode","MForm","MCrud","MPagination"],"mappings":";;;;;;;;;;;;;;;AAaA,iBAAe;AAAA,EACbA,YAAA;AAAA,EACAC,uBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,aAAA;AAAA,EACAC,aAAA;AAAA,EACAC,mBAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"component.js","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":["MTable","MConfigProvider","MSearch","MPicture","MDialog","MQrcode","MBarcode","MForm","MCrud","MPagination"],"mappings":";;;;;;;;;;;;;;;AAaA,iBAAe;AAAA,EACbA,YAAA;AAAA,EACAC,uBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,aAAA;AAAA,EACAC,aAAA;AAAA,EACAC,mBAAA;AACF,CAAA;;;;"}
package/lib/index.js CHANGED
@@ -12,11 +12,11 @@ var table = require('./packages/components/table/src/table.js');
12
12
  var index$1 = require('./packages/components/table/index.js');
13
13
  var search = require('./packages/components/search/src/search.js');
14
14
  var index$2 = require('./packages/components/search/index.js');
15
- var picture = require('./packages/components/picture/src/picture.js');
15
+ var picture = require('./packages/components/picture/src/picture2.js');
16
16
  var index$3 = require('./packages/components/picture/index.js');
17
17
  var dialog = require('./packages/components/dialog/src/dialog.js');
18
18
  var index$4 = require('./packages/components/dialog/index.js');
19
- var qrcode = require('./packages/components/qrcode/src/qrcode.js');
19
+ var qrcode = require('./packages/components/qrcode/src/qrcode2.js');
20
20
  var index$5 = require('./packages/components/qrcode/index.js');
21
21
  var barcode = require('./packages/components/barcode/src/barcode.js');
22
22
  var index$6 = require('./packages/components/barcode/index.js');
@@ -24,7 +24,7 @@ var form = require('./packages/components/form/src/form.js');
24
24
  var index$7 = require('./packages/components/form/index.js');
25
25
  var crud = require('./packages/components/crud/src/crud.js');
26
26
  var index$8 = require('./packages/components/crud/index.js');
27
- var pagination = require('./packages/components/pagination/src/pagination.js');
27
+ var pagination = require('./packages/components/pagination/src/pagination2.js');
28
28
  var index$9 = require('./packages/components/pagination/index.js');
29
29
  var key = require('./packages/constants/key.js');
30
30
  var size = require('./packages/constants/size.js');
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.js","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":["INSTALLED_KEY","provideGlobalConfig","version"],"mappings":";;;;;;;;AAOO,MAAM,aAAgB,GAAA,CAAC,UAAuB,GAAA,EAAO,KAAA;AAC1D,EAAM,MAAA,OAAA,GAAU,CAAC,GAAA,EAAU,OAAoC,KAAA;AAC7D,IAAA,IAAI,GAAI,CAAAA,iBAAA,CAAA;AAAgB,MAAA,OAAA;AAExB,IAAA,GAAA,CAAIA,iBAAiB,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,MAAoBC,mCAAA,CAAA,OAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,GACrD,CAAA;AAEA,EAAO,OAAA;AAAA,aACLC,eAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"make-installer.js","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":["INSTALLED_KEY","provideGlobalConfig","version"],"mappings":";;;;;;;;AAOO,MAAM,aAAgB,GAAA,CAAC,UAAuB,GAAA,EAAO,KAAA;AAC1D,EAAM,MAAA,OAAA,GAAU,CAAC,GAAA,EAAU,OAAoC,KAAA;AAC7D,IAAA,IAAI,GAAI,CAAAA,iBAAA,CAAA;AAAgB,MAAA,OAAA;AAExB,IAAA,GAAA,CAAIA,iBAAiB,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,MAAoBC,mCAAA,CAAA,OAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,GACrD,CAAA;AAEA,EAAO,OAAA;AAAA,aACLC,eAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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":["withInstall","Barcode"],"mappings":";;;;;;;;AAIa,MAAA,QAAA,GAA2CA,oBAAYC,oBAAO;;;;;;;"}
1
+ {"version":3,"file":"index.js","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":["withInstall","Barcode"],"mappings":";;;;;;;;AAIa,MAAA,QAAA,GAA2CA,oBAAYC,oBAAO;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"barcode.js","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":["buildProps","isString"],"mappings":";;;;;;;AAIO,MAAM,eAAeA,kBAAW,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,KAAAC,eAAA,CAAS,GAAG,CAAA;AACtC;;;;;"}
1
+ {"version":3,"file":"barcode.js","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":["buildProps","isString"],"mappings":";;;;;;;AAIO,MAAM,eAAeA,kBAAW,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,KAAAC,eAAA,CAAS,GAAG,CAAA;AACtC;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"barcode2.js","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":["ref","watch","JsBarcode"],"mappings":";;;;;;;;;;;;;;uCAUc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,aAAaA,OAAS,EAAA,CAAA;AAE5B,IAAAC,SAAA;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,UAAAC,6BAAA,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.js","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","ref","watch","JsBarcode"],"mappings":";;;;;;;;;;;;;;AAUc,MAAA,cAAAA,mBAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,aAAaC,OAAS,EAAA,CAAA;AAE5B,IAAAC,SAAA;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,UAAAC,6BAAA,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.js","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":["buildProps","definePropType","useSizeProp"],"mappings":";;;;;;;AAQO,MAAM,sBAAsBA,kBAAW,CAAA;AAAA,EAI5C,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAAyB,MAAM,CAAA;AAAA,GACvC;AAAA,EAIA,IAAM,EAAAC,iBAAA;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.js","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":["buildProps","definePropType","useSizeProp"],"mappings":";;;;;;;AAQO,MAAM,sBAAsBA,kBAAW,CAAA;AAAA,EAI5C,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAAyB,MAAM,CAAA;AAAA,GACvC;AAAA,EAIA,IAAM,EAAAC,iBAAA;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.js","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":["ref","getCurrentInstance","inject","configProviderContextKey","computed","useLocale","unref","provide","debugWarn","localeContextKey","SIZE_INJECTION_KEY","keysOf"],"mappings":"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"}
1
+ {"version":3,"file":"use-global-config.js","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":["ref","getCurrentInstance","inject","configProviderContextKey","computed","useLocale","unref","provide","debugWarn","localeContextKey","SIZE_INJECTION_KEY","keysOf"],"mappings":";;;;;;;;;;;AAaA,MAAM,eAAeA,OAA2B,EAAA,CAAA;AAUhC,SAAA,eAAA,CACd,GACA,EAAA,YAAA,GAAe,KACf,CAAA,EAAA;AACA,EAAA,MAAM,SAASC,sBAAmB,EAAA,GAC9BC,UAAO,CAAAC,kCAAA,EAA0B,YAAY,CAC7C,GAAA,YAAA,CAAA;AACJ,EAAA,IAAI,GAAK,EAAA;AACP,IAAA,OAAOC,aAAS,MAAG;AA/BvB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA+B0B,MAAO,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAA,KAAA,KAAP,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAA,KAAf,IAAuB,GAAA,EAAA,GAAA,YAAA,CAAA;AAAA,KAAY,CAAA,CAAA;AAAA,GACpD,MAAA;AACL,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEgB,SAAA,0BAAA,CACd,OACA,YACA,EAAA;AACA,EAAA,MAAM,SAAS,eAAgB,EAAA,CAAA;AAE/B,EAAM,MAAA,MAAA,GAASC,eAAU,CAAAD,YAAA,CAAS,MAAG;AA3CvC,IAAA,IAAA,EAAA,CAAA;AA2C0C,IAAA,OAAA,CAAA,EAAA,GAAA,MAAA,CAAO,UAAP,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA;AAAA,GAAM,CAAC,CAAA,CAAA;AAE7D,EAAM,MAAA,IAAA,GAAOA,aAAS,MAAG;AA7C3B,IAAA,IAAA,EAAA,CAAA;AA6C8B,IAAA,OAAAE,SAAA,CAAM,YAAY,CAAA,KAAA,CAAK,EAAO,GAAA,MAAA,CAAA,KAAA,KAAP,mBAAc,IAAQ,CAAA,IAAA,EAAA,CAAA;AAAA,GAAE,CAAA,CAAA;AAC3E,EAAA,mBAAA,CAAoBF,aAAS,MAAME,SAAA,CAAM,MAAM,CAAK,IAAA,EAAE,CAAC,CAAA,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,IAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEO,MAAM,mBAAsB,GAAA,CACjC,MACA,EAAA,GAAA,EACA,SAAS,KACN,KAAA;AA1DL,EAAA,IAAA,EAAA,CAAA;AA2DE,EAAM,MAAA,OAAA,GAAU,CAAC,CAACL,sBAAmB,EAAA,CAAA;AACrC,EAAM,MAAA,SAAA,GAAY,OAAU,GAAA,eAAA,EAAoB,GAAA,KAAA,CAAA,CAAA;AAEhD,EAAA,MAAM,SAAY,GAAA,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,OAAL,KAAA,IAAA,GAAA,EAAA,GAAiB,UAAUM,WAAU,GAAA,KAAA,CAAA,CAAA;AACvD,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAAC,eAAA;AAAA,MACE,qBAAA;AAAA,MACA,wDAAA;AAAA,KACF,CAAA;AACA,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,OAAA,GAAUJ,aAAS,MAAM;AAC7B,IAAM,MAAA,GAAA,GAAME,UAAM,MAAM,CAAA,CAAA;AACxB,IAAA,IAAI,EAAC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA;AAAO,MAAO,OAAA,GAAA,CAAA;AAC9B,IAAO,OAAA,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,GAAG,CAAA,CAAA;AAAA,GACxC,CAAA,CAAA;AACD,EAAA,SAAA,CAAUH,oCAA0B,OAAO,CAAA,CAAA;AAC3C,EAAA,SAAA;AAAA,IACEM,sBAAA;AAAA,IACAL,YAAS,CAAA,MAAM,OAAQ,CAAA,KAAA,CAAM,MAAM,CAAA;AAAA,GACrC,CAAA;AACA,EAAA,SAAA,CAAUM,0BAAoB,EAAA;AAAA,IAC5B,MAAMN,YAAS,CAAA,MAAM,OAAQ,CAAA,KAAA,CAAM,QAAQ,EAAE,CAAA;AAAA,GAC9C,CAAA,CAAA;AAED,EAAI,IAAA,MAAA,IAAU,CAAC,YAAA,CAAa,KAAO,EAAA;AACjC,IAAA,YAAA,CAAa,QAAQ,OAAQ,CAAA,KAAA,CAAA;AAAA,GAC/B;AACA,EAAO,OAAA,OAAA,CAAA;AACT,EAAA;AAEA,MAAM,WAAA,GAAc,CAClB,CAAA,EACA,CAC0B,KAAA;AAC1B,EAAA,MAAM,IAAO,GAAA,CAAC,mBAAG,IAAI,IAAI,CAAC,GAAGO,cAAO,CAAA,CAAC,GAAG,GAAGA,cAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA;AACtD,EAAA,MAAM,MAA2B,EAAC,CAAA;AAClC,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,GAAA,CAAI,OAAO,CAAE,CAAA,GAAA,CAAA,KAAS,KAAY,CAAA,GAAA,CAAA,CAAE,OAAO,CAAE,CAAA,GAAA,CAAA,CAAA;AAAA,GAC/C;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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":["withInstall","Crud"],"mappings":";;;;;;;;AAIa,MAAA,KAAA,GAAqCA,oBAAYC,iBAAI;;;;;;;"}
1
+ {"version":3,"file":"index.js","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":["withInstall","Crud"],"mappings":";;;;;;;;AAIa,MAAA,KAAA,GAAqCA,oBAAYC,iBAAI;;;;;;;"}
@@ -425,7 +425,7 @@ const _sfc_main = vue.defineComponent({
425
425
  class: "m-search-top"
426
426
  }, [
427
427
  vue.createElementVNode("div", { class: "m-search-left" }, [
428
- crudOption.value.addBtn && !vue.unref(slots).addBtn ? (vue.openBlock(), vue.createBlock(_component_el_button, {
428
+ crudOption.value.addBtn && !vue.unref(slots).addBtn && _ctx.permission["add"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_button, {
429
429
  key: 0,
430
430
  size: _ctx.size || vue.unref(globalConfig).size,
431
431
  type: "primary",
@@ -440,7 +440,7 @@ const _sfc_main = vue.defineComponent({
440
440
  ]),
441
441
  _: 1
442
442
  }, 8, ["size", "icon", "onClick"])) : vue.createCommentVNode("v-if", true),
443
- vue.renderSlot(_ctx.$slots, "addBtn", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size }))),
443
+ _ctx.permission["add"] !== false ? vue.renderSlot(_ctx.$slots, "addBtn", vue.normalizeProps(vue.mergeProps({ key: 1 }, { size: _ctx.size || vue.unref(globalConfig).size }))) : vue.createCommentVNode("v-if", true),
444
444
  vue.renderSlot(_ctx.$slots, "topLeft", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size })))
445
445
  ]),
446
446
  vue.createElementVNode("div", { class: "m-search-right" }, [
@@ -463,12 +463,12 @@ const _sfc_main = vue.defineComponent({
463
463
  "max-height": tableHeight.value
464
464
  }, vue.createSlots({
465
465
  menu: vue.withCtx((scope) => [
466
- crudOption.value.editBtn && !vue.unref(slots).editBtn ? (vue.openBlock(), vue.createBlock(_component_el_link, {
466
+ crudOption.value.editBtn && !vue.unref(slots).editBtn && _ctx.permission["edit"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_link, {
467
467
  key: 0,
468
468
  class: "m-control-btns",
469
469
  type: "primary",
470
470
  size: _ctx.size || vue.unref(globalConfig).size,
471
- underline: false,
471
+ underline: "never",
472
472
  icon: "Edit",
473
473
  onClick: ($event) => rowEdit(scope.row, scope.$index)
474
474
  }, {
@@ -480,12 +480,12 @@ const _sfc_main = vue.defineComponent({
480
480
  ]),
481
481
  _: 2
482
482
  }, 1032, ["size", "onClick"])) : vue.createCommentVNode("v-if", true),
483
- crudOption.value.editBtn && vue.unref(slots).editBtn ? vue.renderSlot(_ctx.$slots, "editBtn", vue.normalizeProps(vue.mergeProps({ key: 1 }, scope))) : vue.createCommentVNode("v-if", true),
484
- crudOption.value.delBtn && !vue.unref(slots).delBtn ? (vue.openBlock(), vue.createBlock(_component_el_link, {
483
+ crudOption.value.editBtn && vue.unref(slots).editBtn && _ctx.permission["edit"] !== false ? vue.renderSlot(_ctx.$slots, "editBtn", vue.normalizeProps(vue.mergeProps({ key: 1 }, scope))) : vue.createCommentVNode("v-if", true),
484
+ crudOption.value.delBtn && !vue.unref(slots).delBtn && _ctx.permission["del"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_link, {
485
485
  key: 2,
486
486
  class: "m-control-btns",
487
487
  type: "primary",
488
- underline: false,
488
+ underline: "never",
489
489
  size: _ctx.size || vue.unref(globalConfig).size,
490
490
  icon: "Delete",
491
491
  onClick: ($event) => rowDel(scope.row, scope.$index)
@@ -498,7 +498,7 @@ const _sfc_main = vue.defineComponent({
498
498
  ]),
499
499
  _: 2
500
500
  }, 1032, ["size", "onClick"])) : vue.createCommentVNode("v-if", true),
501
- crudOption.value.delBtn && vue.unref(slots).delBtn ? vue.renderSlot(_ctx.$slots, "delBtn", vue.normalizeProps(vue.mergeProps({ key: 3 }, scope))) : vue.createCommentVNode("v-if", true),
501
+ crudOption.value.delBtn && vue.unref(slots).delBtn && _ctx.permission["del"] !== false ? vue.renderSlot(_ctx.$slots, "delBtn", vue.normalizeProps(vue.mergeProps({ key: 3 }, scope))) : vue.createCommentVNode("v-if", true),
502
502
  crudOption.value.menu && vue.unref(slots).menu && !(vue.unref(slots).editBtn || vue.unref(slots).delBtn) ? vue.renderSlot(_ctx.$slots, "menu", vue.normalizeProps(vue.mergeProps({ key: 4 }, scope))) : vue.createCommentVNode("v-if", true)
503
503
  ]),
504
504
  _: 2
@@ -1 +1 @@
1
- {"version":3,"file":"crud2.js","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":["useSlots","useGlobalConfig","useLocale","computed","ref","cloneDeep","get","set","nextTick","ElMessageBox","watch","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"crud2.js","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","useSlots","useGlobalConfig","useLocale","computed","ref","cloneDeep","get","set","nextTick","ElMessageBox","watch","onMounted"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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":["withInstall","Dialog"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
1
+ {"version":3,"file":"index.js","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":["withInstall","Dialog"],"mappings":";;;;;;;;AAIa,MAAA,OAAA,GAAyCA,oBAAYC,mBAAM;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { useSizeProp } from '@m-eleplus-crud/hooks'\nimport { buildProps, definePropType } from '@m-eleplus-crud/utils'\n\nimport type { ColumnType, ICommonColumn } from '../../common'\nimport type { FormItemRule } from 'element-plus'\n\nimport type { ExtractPropTypes } from 'vue'\n\n// 事件处理\ntype EventHandlers = {\n [K in `event${string}`]?: (...args: any[]) => any\n}\n\n/**\n * @description 公开的form column配置\n */\nexport interface IFormCommonColumn extends EventHandlers {\n /**\n * 表单校验规则\n */\n rules?: FormItemRule[]\n /**\n * @description 单个标签宽度\n */\n labelWidth?: string\n /**\n * @description 表单排序\n */\n order?: number\n /**\n * @description 栅栏宽度\n */\n span?: number\n /**\n * @description 最大长度\n */\n maxlength?: number\n /**\n * @description 是否显示字数统计,仅对type为textarea有效\n */\n showWordLimit?: boolean\n /**\n * @description 是否显示密码切换按钮,仅对type为password有效\n */\n showPassword?: boolean\n /**\n * @description 默认值\n */\n value?: any\n /**\n * @description 占位文本\n */\n placeholder?: string\n}\n\nexport interface IFormColumn extends ICommonColumn, IFormCommonColumn {\n /**\n * @description 组件类型\n */\n type?: ColumnType\n}\n\n/**\n * @description 公开的form配置\n */\nexport interface IFormCommonOption {\n /**\n * @description 标签宽度\n */\n labelWidth?: string\n}\n\nexport interface IFormOption extends IFormCommonOption {\n /**\n * @description 表单列\n */\n column: IFormColumn[]\n}\n\nexport const formProps = buildProps({\n /**\n * @description 组件大小\n */\n size: useSizeProp,\n /**\n * @description 表单绑定的数据\n */\n model: {\n type: Object,\n required: true,\n },\n /**\n * @description 表单加载状态\n */\n loading: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单权限配置\n */\n permission: {\n type: Object,\n default: {},\n },\n /**\n * @description 是否只读\n */\n readonly: {\n type: Boolean,\n default: false,\n },\n /**\n * @description 表单配置\n */\n option: {\n type: definePropType<IFormOption>(Object),\n required: false,\n },\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {}\nexport type FormEmits = typeof formEmits\n"],"names":["buildProps","useSizeProp","definePropType"],"mappings":";;;;;;;AA+EO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;;"}
1
+ {"version":3,"file":"form.js","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":["buildProps","useSizeProp","definePropType"],"mappings":";;;;;;;AA+EO,MAAM,YAAYA,kBAAW,CAAA;AAAA,EAIlC,IAAM,EAAAC,iBAAA;AAAA,EAIN,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAMC,uBAA4B,MAAM,CAAA;AAAA,IACxC,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAGH,MAAM,YAAY;;;;;"}