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.
- package/README.md +31 -31
- package/dist/index.full.js +11 -11
- package/dist/index.full.min.js +3 -3
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +5 -5
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +11 -11
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/es/component.mjs.map +1 -1
- package/es/index.mjs +3 -3
- package/es/make-installer.mjs.map +1 -1
- package/es/packages/components/barcode/index.mjs.map +1 -1
- package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
- package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
- package/es/packages/components/config-provider/src/config-provider-props.mjs.map +1 -1
- package/es/packages/components/config-provider/src/hooks/use-global-config.mjs.map +1 -1
- package/es/packages/components/crud/index.mjs.map +1 -1
- package/es/packages/components/crud/src/crud2.mjs +8 -8
- package/es/packages/components/crud/src/crud2.mjs.map +1 -1
- package/es/packages/components/dialog/index.mjs.map +1 -1
- package/es/packages/components/form/src/form.mjs.map +1 -1
- package/es/packages/components/form/src/form2.mjs.map +1 -1
- package/es/packages/components/index.mjs +3 -3
- package/es/packages/components/pagination/index.mjs +2 -2
- package/es/packages/components/pagination/index.mjs.map +1 -1
- package/es/packages/components/pagination/src/pagination.mjs +38 -41
- package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
- package/es/packages/components/pagination/src/pagination2.mjs +41 -38
- package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
- package/es/packages/components/picture/index.mjs +2 -2
- package/es/packages/components/picture/index.mjs.map +1 -1
- package/es/packages/components/picture/src/picture.mjs +26 -19
- package/es/packages/components/picture/src/picture.mjs.map +1 -1
- package/es/packages/components/picture/src/picture2.mjs +19 -26
- package/es/packages/components/picture/src/picture2.mjs.map +1 -1
- package/es/packages/components/qrcode/index.mjs +2 -2
- package/es/packages/components/qrcode/index.mjs.map +1 -1
- package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
- package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
- package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
- package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
- package/es/packages/components/search/src/search.mjs.map +1 -1
- package/es/packages/components/search/src/search2.mjs +1 -1
- package/es/packages/components/search/src/search2.mjs.map +1 -1
- package/es/packages/components/table/index.mjs.map +1 -1
- package/es/packages/components/table/src/table.mjs.map +1 -1
- package/es/packages/components/table/src/table2.mjs.map +1 -1
- package/es/packages/hooks/use-size/index.mjs.map +1 -1
- package/es/packages/utils/browser.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/global.d.ts +17 -17
- package/lib/component.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/make-installer.js.map +1 -1
- package/lib/packages/components/barcode/index.js.map +1 -1
- package/lib/packages/components/barcode/src/barcode.js.map +1 -1
- package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
- package/lib/packages/components/config-provider/src/config-provider-props.js.map +1 -1
- package/lib/packages/components/config-provider/src/hooks/use-global-config.js.map +1 -1
- package/lib/packages/components/crud/index.js.map +1 -1
- package/lib/packages/components/crud/src/crud2.js +8 -8
- package/lib/packages/components/crud/src/crud2.js.map +1 -1
- package/lib/packages/components/dialog/index.js.map +1 -1
- package/lib/packages/components/form/src/form.js.map +1 -1
- package/lib/packages/components/form/src/form2.js.map +1 -1
- package/lib/packages/components/index.js +3 -3
- package/lib/packages/components/pagination/index.js +2 -2
- package/lib/packages/components/pagination/index.js.map +1 -1
- package/lib/packages/components/pagination/src/pagination.js +38 -42
- package/lib/packages/components/pagination/src/pagination.js.map +1 -1
- package/lib/packages/components/pagination/src/pagination2.js +42 -38
- package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
- package/lib/packages/components/picture/index.js +2 -2
- package/lib/packages/components/picture/index.js.map +1 -1
- package/lib/packages/components/picture/src/picture.js +26 -20
- package/lib/packages/components/picture/src/picture.js.map +1 -1
- package/lib/packages/components/picture/src/picture2.js +20 -26
- package/lib/packages/components/picture/src/picture2.js.map +1 -1
- package/lib/packages/components/qrcode/index.js +2 -2
- package/lib/packages/components/qrcode/index.js.map +1 -1
- package/lib/packages/components/qrcode/src/qrcode.js +66 -23
- package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
- package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
- package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
- package/lib/packages/components/search/src/search.js.map +1 -1
- package/lib/packages/components/search/src/search2.js +1 -1
- package/lib/packages/components/search/src/search2.js.map +1 -1
- package/lib/packages/components/table/index.js.map +1 -1
- package/lib/packages/components/table/src/table.js.map +1 -1
- package/lib/packages/components/table/src/table2.js.map +1 -1
- package/lib/packages/hooks/use-size/index.js.map +1 -1
- package/lib/packages/utils/browser.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +103 -103
- package/theme-chalk/src/index.scss +8 -8
- package/theme-chalk/src/qrcode.scss +8 -8
- 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 {}
|
package/lib/component.js.map
CHANGED
|
@@ -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/
|
|
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/
|
|
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/
|
|
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":";;;;;;;;;;;;;;
|
|
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":"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"}
|
|
@@ -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.
|
|
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:
|
|
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:
|
|
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;;;;;"}
|