el-plus-crud 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +115 -3
  3. package/build.js +31 -9
  4. package/dist/components/el-plus-form/ElPlusForm.vue.d.ts +320 -0
  5. package/dist/components/el-plus-form/ElPlusFormDialog.vue.d.ts +74 -0
  6. package/dist/components/el-plus-form/components/ElPlusFormArea.vue.d.ts +44 -0
  7. package/dist/components/el-plus-form/components/ElPlusFormAutocomplete.vue.d.ts +55 -0
  8. package/dist/components/el-plus-form/components/ElPlusFormBtn.vue.d.ts +44 -0
  9. package/dist/components/el-plus-form/components/ElPlusFormBtns.vue.d.ts +42 -0
  10. package/dist/components/el-plus-form/components/ElPlusFormCascader.vue.d.ts +44 -0
  11. package/dist/components/el-plus-form/components/ElPlusFormCascaderPanel.vue.d.ts +51 -0
  12. package/dist/components/el-plus-form/components/ElPlusFormCheckbox.vue.d.ts +44 -0
  13. package/dist/components/el-plus-form/components/ElPlusFormCheckboxButton.vue.d.ts +44 -0
  14. package/dist/components/el-plus-form/components/ElPlusFormColor.vue.d.ts +44 -0
  15. package/dist/components/el-plus-form/components/ElPlusFormDate.vue.d.ts +44 -0
  16. package/dist/components/el-plus-form/components/ElPlusFormDaterange.vue.d.ts +51 -0
  17. package/dist/components/el-plus-form/components/ElPlusFormDatetime.vue.d.ts +44 -0
  18. package/dist/components/el-plus-form/components/ElPlusFormFile.vue.d.ts +48 -0
  19. package/dist/components/el-plus-form/components/ElPlusFormImage.vue.d.ts +48 -0
  20. package/dist/components/el-plus-form/components/ElPlusFormInput.vue.d.ts +50 -0
  21. package/dist/components/el-plus-form/components/ElPlusFormLink.vue.d.ts +53 -0
  22. package/dist/components/el-plus-form/components/ElPlusFormNbinput.vue.d.ts +61 -0
  23. package/dist/components/el-plus-form/components/ElPlusFormNumber.vue.d.ts +57 -0
  24. package/dist/components/el-plus-form/components/ElPlusFormQuickInput.vue.d.ts +51 -0
  25. package/dist/components/el-plus-form/components/ElPlusFormRadio.vue.d.ts +44 -0
  26. package/dist/components/el-plus-form/components/ElPlusFormRate.vue.d.ts +44 -0
  27. package/dist/components/el-plus-form/components/ElPlusFormSelect.vue.d.ts +56 -0
  28. package/dist/components/el-plus-form/components/ElPlusFormSlider.vue.d.ts +44 -0
  29. package/dist/components/el-plus-form/components/ElPlusFormStatus.vue.d.ts +44 -0
  30. package/dist/components/el-plus-form/components/ElPlusFormSwitch.vue.d.ts +50 -0
  31. package/dist/components/el-plus-form/components/ElPlusFormTag.vue.d.ts +48 -0
  32. package/dist/components/el-plus-form/components/ElPlusFormText.vue.d.ts +48 -0
  33. package/dist/components/el-plus-form/components/ElPlusFormTextarea.vue.d.ts +51 -0
  34. package/dist/components/el-plus-form/components/ElPlusFormTransfer.vue.d.ts +57 -0
  35. package/dist/components/el-plus-form/components/ElPlusFormTree.vue.d.ts +50 -0
  36. package/dist/components/el-plus-form/components/ElPlusFormTreeSelect.vue.d.ts +50 -0
  37. package/dist/components/el-plus-form/components/ElPlusFormUpload.vue.d.ts +51 -0
  38. package/dist/components/el-plus-form/components/components/file-icons/FileIcons.vue.d.ts +42 -0
  39. package/dist/components/el-plus-form/components/components/file-icons/data/index.d.ts +15 -0
  40. package/dist/components/el-plus-form/components/index.d.ts +3 -0
  41. package/dist/components/el-plus-form/data/file.d.ts +63 -0
  42. package/dist/components/el-plus-form/mixins/index.d.ts +28 -0
  43. package/dist/components/el-plus-form/util/index.d.ts +47 -0
  44. package/dist/components/el-plus-form/util/validate.d.ts +253 -0
  45. package/dist/components/el-plus-table/ElPlusTable.vue.d.ts +155 -0
  46. package/dist/components/el-plus-table/components/columnItem.vue.d.ts +42 -0
  47. package/dist/components/el-plus-table/components/header.vue.d.ts +93 -0
  48. package/dist/components/el-plus-table/components/settingColumn.vue.d.ts +28 -0
  49. package/dist/components/el-plus-table/util/index.d.ts +26 -0
  50. package/dist/components-list.d.ts +2 -0
  51. package/dist/config/index.d.ts +2 -0
  52. package/dist/el-plus-crud.mjs +6968 -0
  53. package/dist/el-plus-crud.umd.js +27 -0
  54. package/dist/index.d.ts +11 -0
  55. package/dist/style.css +1 -1
  56. package/lib/components/el-plus-form/ElPlusForm.vue +20 -8
  57. package/lib/components/el-plus-form/components/ElPlusFormArea.vue +59 -0
  58. package/lib/components/el-plus-form/components/ElPlusFormBtn.vue +1 -1
  59. package/lib/components/el-plus-form/components/ElPlusFormCascader.vue +25 -2
  60. package/lib/components/el-plus-form/components/ElPlusFormDate.vue +3 -1
  61. package/lib/components/el-plus-form/components/ElPlusFormFile.vue +1 -1
  62. package/lib/components/el-plus-form/components/ElPlusFormInput.vue +4 -2
  63. package/lib/components/el-plus-form/components/ElPlusFormLink.vue +20 -10
  64. package/lib/components/el-plus-form/components/ElPlusFormNumber.vue +37 -6
  65. package/lib/components/el-plus-form/components/ElPlusFormQuickInput.vue +92 -0
  66. package/lib/components/el-plus-form/components/ElPlusFormSelect.vue +16 -4
  67. package/lib/components/el-plus-form/components/ElPlusFormText.vue +0 -16
  68. package/lib/components/el-plus-form/components/ElPlusFormTextarea.vue +4 -2
  69. package/lib/components/el-plus-form/components/ElPlusFormUpload.vue +364 -0
  70. package/lib/components/el-plus-form/components/components/file-icons/images/doc.svg +12 -12
  71. package/lib/components/el-plus-form/components/components/file-icons/images/file.svg +18 -18
  72. package/lib/components/el-plus-form/components/components/file-icons/images/jpg.svg +13 -13
  73. package/lib/components/el-plus-form/components/components/file-icons/images/pdf.svg +12 -12
  74. package/lib/components/el-plus-form/components/components/file-icons/images/png.svg +12 -12
  75. package/lib/components/el-plus-form/components/components/file-icons/images/ppt.svg +12 -12
  76. package/lib/components/el-plus-form/components/components/file-icons/images/xls.svg +12 -12
  77. package/lib/components/el-plus-form/components/index.js +17 -0
  78. package/lib/components/el-plus-form/components/index.ts +1 -1
  79. package/lib/components/el-plus-form/util/index.ts +0 -9
  80. package/lib/components/el-plus-table/ElPlusTable.vue +28 -14
  81. package/lib/components/el-plus-table/components/columnItem.vue +22 -3
  82. package/lib/components/el-plus-table/components/header.vue +57 -37
  83. package/lib/components/el-plus-table/components/settingColumn.vue +6 -4
  84. package/lib/components/el-plus-table/util/index.ts +24 -0
  85. package/lib/components-list.ts +67 -0
  86. package/lib/config/index.ts +29 -9
  87. package/lib/default.d.ts +4 -4
  88. package/lib/index.ts +9 -84
  89. package/package.json +6 -4
  90. package/types/formList.d.ts +44 -3
  91. package/vite.config.ts +12 -2
  92. package/dist/el-plus-crud.umd.cjs +0 -27
  93. package/lib/components/el-plus-form/components/ElPlusFormPassword.vue +0 -39
  94. package/lib/components/el-plus-form/components/components/IconSelectorList.vue +0 -92
  95. package/lib/config/form.ts +0 -12
  96. package/lib/index.d.ts +0 -3
package/lib/index.ts CHANGED
@@ -1,98 +1,23 @@
1
1
  import { App } from 'vue'
2
+ import components from './components-list'
2
3
  import ElPlusForm from './components/el-plus-form/ElPlusForm.vue'
3
4
  import ElPlusFormDialog from './components/el-plus-form/ElPlusFormDialog.vue'
4
- import { components } from './components/el-plus-form/components/index'
5
5
  import ElPlusTable from './components/el-plus-table/ElPlusTable.vue'
6
-
7
- // import ElPlusFormBtn from './components/el-plus-form/components/ElPlusFormBtn.vue'
8
- // import ElPlusFormBtns from './components/el-plus-form/components/ElPlusFormBtns.vue'
9
- // import ElPlusFormCascader from './components/el-plus-form/components/ElPlusFormCascader.vue'
10
- // import ElPlusFormCascaderPanel from './components/el-plus-form/components/ElPlusFormCascaderPanel.vue'
11
- // import ElPlusFormCheckbox from './components/el-plus-form/components/ElPlusFormCheckbox.vue'
12
- // import ElPlusFormCheckboxButton from './components/el-plus-form/components/ElPlusFormCheckboxButton.vue'
13
- // import ElPlusFormDate from './components/el-plus-form/components/ElPlusFormDate.vue'
14
- // import ElPlusFormDaterange from './components/el-plus-form/components/ElPlusFormDaterange.vue'
15
- // import ElPlusFormFile from './components/el-plus-form/components/ElPlusFormFile.vue'
16
- // import ElPlusFormImage from './components/el-plus-form/components/ElPlusFormImage.vue'
17
- // import ElPlusFormInput from './components/el-plus-form/components/ElPlusFormInput.vue'
18
- // import ElPlusFormLink from './components/el-plus-form/components/ElPlusFormLink.vue'
19
- // import ElPlusFormNbinput from './components/el-plus-form/components/ElPlusFormNbinput.vue'
20
- // import ElPlusFormNumber from './components/el-plus-form/components/ElPlusFormNumber.vue'
21
- // import ElPlusFormPassword from './components/el-plus-form/components/ElPlusFormPassword.vue'
22
- // import ElPlusFormRadio from './components/el-plus-form/components/ElPlusFormRadio.vue'
23
- // import ElPlusFormRate from './components/el-plus-form/components/ElPlusFormRate.vue'
24
- // import ElPlusFormSelect from './components/el-plus-form/components/ElPlusFormSelect.vue'
25
- // import ElPlusFormSlider from './components/el-plus-form/components/ElPlusFormSlider.vue'
26
- // import ElPlusFormStatus from './components/el-plus-form/components/ElPlusFormStatus.vue'
27
- // import ElPlusFormSwitch from './components/el-plus-form/components/ElPlusFormSwitch.vue'
28
- // import ElPlusFormTag from './components/el-plus-form/components/ElPlusFormTag.vue'
29
- // import ElPlusFormText from './components/el-plus-form/components/ElPlusFormText.vue'
30
- // import ElPlusFormTextarea from './components/el-plus-form/components/ElPlusFormTextarea.vue'
31
- // import ElPlusFormTree from './components/el-plus-form/components/ElPlusFormTree.vue'
32
- // import ElPlusFormTreeSelect from './components/el-plus-form/components/ElPlusFormTreeSelect.vue'
6
+ import defaultConf from './config'
33
7
 
34
8
  export default {
35
9
  install: (app: App, config: { [key: string]: any }, format?: { [key: string]: Function }, globalData?: { [key: string]: Function }) => {
36
- console.log('initConfig: ', config)
37
-
38
- console.log('components1: ', components)
39
- if (!components || components.length <= 0) {
40
- const modulesFiles = import.meta.glob('./components/el-plus-form/components/*.vue', { eager: true }) // import.meta.globEager('./*.vue')
41
- console.log('modulesFiles: ', modulesFiles)
42
- // 递归
43
- for (const file in modulesFiles) {
44
- const tempComponent = (modulesFiles[file] as any).default
45
- console.log('file: ', file, tempComponent)
46
- components.push(tempComponent)
47
- }
48
- }
49
-
50
- console.log('components2: ', components)
51
- // const components: any[] = [
52
- // ElPlusFormBtn,
53
- // ElPlusFormBtns,
54
- // ElPlusFormCascader,
55
- // ElPlusFormCascaderPanel,
56
- // ElPlusFormCheckbox,
57
- // ElPlusFormCheckboxButton,
58
- // ElPlusFormDate,
59
- // ElPlusFormDaterange,
60
- // ElPlusFormFile,
61
- // ElPlusFormImage,
62
- // ElPlusFormInput,
63
- // ElPlusFormLink,
64
- // ElPlusFormNbinput,
65
- // ElPlusFormNumber,
66
- // ElPlusFormPassword,
67
- // ElPlusFormRadio,
68
- // ElPlusFormRate,
69
- // ElPlusFormSelect,
70
- // ElPlusFormSlider,
71
- // ElPlusFormStatus,
72
- // ElPlusFormSwitch,
73
- // ElPlusFormTag,
74
- // ElPlusFormText,
75
- // ElPlusFormTextarea,
76
- // ElPlusFormTree,
77
- // ElPlusFormTreeSelect
78
- // ]
79
- // const typeList: String[] = []
80
-
81
- // console.log('modulesFiles*********: ', modulesFiles)
82
-
83
- // // 递归
84
- // for (const file in modulesFiles) {
85
- // const tempComponent = (modulesFiles[file] as any).default
86
- // components.push(tempComponent)
87
- // if (tempComponent.typeName) {
88
- // typeList.push(tempComponent.typeName)
89
- // }
90
- // }
10
+ // 合并配置
11
+ Object.assign(defaultConf, config)
12
+ defaultConf.debug && console.log('initConfig: ', defaultConf)
91
13
 
92
14
  // 这里注入format对象
93
15
  app.provide('format', format)
94
16
  app.provide('globalData', globalData)
95
17
 
18
+ // 这里注入defaultConf
19
+ app.provide('defaultConf', defaultConf)
20
+
96
21
  // 循环注册表单组件
97
22
  components.unshift(ElPlusForm)
98
23
  components.unshift(ElPlusFormDialog)
@@ -100,7 +25,7 @@ export default {
100
25
  // 注册列表组件
101
26
  components.push(ElPlusTable)
102
27
 
103
- console.log('components3: ', components)
28
+ defaultConf.debug && console.log('components: ', components)
104
29
 
105
30
  components.map((component: any) => {
106
31
  app.component(component.name, component)
package/package.json CHANGED
@@ -2,16 +2,15 @@
2
2
  "name": "el-plus-crud",
3
3
  "description": "采用Vue3 + TS,封装的element-plus数据驱动表单、列表组件",
4
4
  "author": "K.D.Jack",
5
- "version": "0.0.11",
5
+ "version": "0.0.13",
6
6
  "license": "MIT",
7
7
  "private": false,
8
- "main": "dist/el-plus-crud.umd.cjs",
8
+ "main": "dist/el-plus-crud.js",
9
9
  "module": "lib/index",
10
10
  "types": "lib/index.d.ts",
11
- "type": "module",
12
11
  "scripts": {
13
12
  "start": "vite",
14
- "build": "vite build",
13
+ "build": "node build.js && vite build",
15
14
  "build-comp": "node ./build.js",
16
15
  "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue lib/",
17
16
  "preview": "vite preview",
@@ -45,6 +44,8 @@
45
44
  "@typescript-eslint/parser": "^5.53.0",
46
45
  "@vitejs/plugin-vue": "^4.1.0",
47
46
  "@vue/eslint-config-standard": "^8.0.1",
47
+ "babel-preset-env": "^1.7.0",
48
+ "babel-register": "^6.26.0",
48
49
  "eslint": "^8.34.0",
49
50
  "eslint-plugin-vue": "^9.9.0",
50
51
  "husky": "^8.0.3",
@@ -54,6 +55,7 @@
54
55
  "standard-version": "^9.5.0",
55
56
  "typescript": "^4.9.5",
56
57
  "vite": "^4.3.9",
58
+ "vite-plugin-dts": "^3.2.0",
57
59
  "vite-plugin-vue-setup-extend": "^0.4.0",
58
60
  "vue-eslint-parser": "^9.1.0"
59
61
  },
@@ -25,6 +25,7 @@ declare interface IFormDescItem {
25
25
  attrs?: { [key: string]: any } | Function
26
26
  options?: Array<IFormDescItemOptionItem> | IFetch<Array<IFormDescItemOptionItem>> | string
27
27
  default?: string | boolean | number
28
+ defaultItem?: { value: string | number; label: string; dataItem?: { [key: string]: any } }
28
29
  rules?: string | Array<any>
29
30
  require?: boolean
30
31
  required?: boolean
@@ -124,7 +125,7 @@ declare interface IFetch<T> {
124
125
  * 表格项
125
126
  */
126
127
  declare interface IColumnItem {
127
- label: string
128
+ label: string | ((data?: any) => string)
128
129
  prop?: string
129
130
  type?: string | Array<string>
130
131
  width?: string
@@ -148,6 +149,8 @@ declare interface IColumnItem {
148
149
  vshow?: boolean | 0 | 1 | Function
149
150
  scShow?: boolean
150
151
  showOverflowTooltip?: boolean
152
+ content?: any
153
+ hstyle?: any
151
154
  }
152
155
 
153
156
  /**
@@ -155,13 +158,17 @@ declare interface IColumnItem {
155
158
  */
156
159
  declare interface IExportConfig {
157
160
  // 导出的URL接口地址
158
- url: string
161
+ url?: string
162
+ // 查询导出URL的fetch
163
+ fetch?: IFetch<string>
159
164
  // 请求夹带的数据
160
165
  data?: Object
161
166
  // 文件名
162
167
  name?: string
163
168
  // 是否增加token权限
164
169
  isAuth?: Boolean
170
+ // 是否需要拼接查询条件
171
+ noQuery?: Boolean
165
172
  }
166
173
 
167
174
  /**
@@ -245,7 +252,10 @@ declare interface ISummaryConf {
245
252
  // 格式化
246
253
  format?: string
247
254
  // 尾行合计的合并方法
248
- sumFn?: (tableData: any[]) => string
255
+ sumFn?: (tableData: any[], allSelectRowList?: any[]) => string
256
+ //尾行合计的样式
257
+ hstyle?: any
258
+ vif?: boolean | ((data?: any) => boolean)
249
259
  }
250
260
 
251
261
  /**
@@ -363,3 +373,34 @@ declare interface IDownFile {
363
373
  // 上传进度
364
374
  percent?: number
365
375
  }
376
+
377
+ declare interface ICRUDConfig {
378
+ debug: boolean
379
+ size?: 'default' | 'small' | 'large'
380
+ storagePrefix?: string
381
+ form?: {
382
+ leng: {
383
+ input: number
384
+ textare: number
385
+ nbinput: {
386
+ min: number
387
+ max: number
388
+ precision: number
389
+ controlsPosition: 'right' | ''
390
+ }
391
+ }
392
+ }
393
+ upload?: {
394
+ type: 'minio' | 'quniu'
395
+ action: string | ((data?: any) => string)
396
+ maxISize: number
397
+ maxFSize: number
398
+ minio?: {
399
+ action: string | ((data?: any) => string)
400
+ getUploadUrl: (fileName?: string) => Promise<any>
401
+ doElUpload: (fileName?: string) => Promise<any>
402
+ getObjectAuthUrl: (fileName?: string) => Promise<any>
403
+ }
404
+ }
405
+ token?: string | ((data?: any) => string)
406
+ }
package/vite.config.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import vue from '@vitejs/plugin-vue'
2
2
  import { resolve } from 'path'
3
3
  import { defineConfig } from 'vite'
4
+ import dts from 'vite-plugin-dts'
4
5
  import vueSetupExtend from 'vite-plugin-vue-setup-extend'
5
6
 
6
7
  const pathResolve = (dir: string) => {
@@ -13,7 +14,16 @@ const alias: Record<string, string> = {
13
14
 
14
15
  const viteConfig = defineConfig(() => {
15
16
  return {
16
- plugins: [vue(), vueSetupExtend()],
17
+ plugins: [
18
+ vue(),
19
+ vueSetupExtend(),
20
+ dts({
21
+ entryRoot: './lib',
22
+ outDir: ['./dist'],
23
+ //指定使用的tsconfig.json为我们整个项目根目录下,如果不配置,你也可以在components下新建tsconfig.json
24
+ tsconfigPath: './tsconfig.json'
25
+ })
26
+ ],
17
27
  root: process.cwd(),
18
28
  resolve: { alias },
19
29
  base: './',
@@ -30,7 +40,7 @@ const viteConfig = defineConfig(() => {
30
40
  lib: {
31
41
  entry: 'lib/index.ts',
32
42
  name: 'el-plus-crud',
33
- formats: ['umd']
43
+ formats: ['umd', 'es']
34
44
  },
35
45
  rollupOptions: {
36
46
  external: ['vue', 'element-plus'],