el-plus-crud 0.1.66 → 0.1.67

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 (79) hide show
  1. package/.eslintignore +18 -18
  2. package/.eslintrc.js +78 -78
  3. package/.lintstagedrc +3 -3
  4. package/.prettierrc.js +39 -39
  5. package/CHANGELOG.md +359 -345
  6. package/LICENSE +21 -21
  7. package/README.md +19 -19
  8. package/build.js +31 -31
  9. package/dist/el-plus-crud.mjs +3751 -3077
  10. package/docs/skills/el-plus-crud/SKILL.md +220 -0
  11. package/docs/skills/el-plus-crud-config/SKILL.md +324 -0
  12. package/docs/skills/el-plus-crud-dialog/SKILL.md +355 -0
  13. package/docs/skills/el-plus-crud-form/SKILL.md +466 -0
  14. package/docs/skills/el-plus-crud-form-group/SKILL.md +272 -0
  15. package/docs/skills/el-plus-crud-patterns/SKILL.md +347 -0
  16. package/docs/skills/el-plus-crud-table/SKILL.md +425 -0
  17. package/docs/skills/el-plus-crud-validation/SKILL.md +239 -0
  18. package/docs/superpowers/specs/2026-06-05-el-plus-form-dialog-group-design.md +166 -0
  19. package/example/App.vue +252 -252
  20. package/example/main.js +18 -18
  21. package/example/style.css +4 -4
  22. package/index.html +13 -13
  23. package/lib/components/el-plus-form/ElPlusForm.vue +9 -4
  24. package/lib/components/el-plus-form/ElPlusFormDialog.vue +167 -112
  25. package/lib/components/el-plus-form/components/ElPlusFormArea.vue +61 -61
  26. package/lib/components/el-plus-form/components/ElPlusFormBtn.vue +188 -119
  27. package/lib/components/el-plus-form/components/ElPlusFormBtns.vue +162 -157
  28. package/lib/components/el-plus-form/components/ElPlusFormCascader.vue +64 -64
  29. package/lib/components/el-plus-form/components/ElPlusFormCascaderPanel.vue +71 -71
  30. package/lib/components/el-plus-form/components/ElPlusFormCheckbox.vue +89 -89
  31. package/lib/components/el-plus-form/components/ElPlusFormCheckboxButton.vue +45 -45
  32. package/lib/components/el-plus-form/components/ElPlusFormColor.vue +38 -38
  33. package/lib/components/el-plus-form/components/ElPlusFormDate.vue +40 -40
  34. package/lib/components/el-plus-form/components/ElPlusFormDaterange.vue +47 -47
  35. package/lib/components/el-plus-form/components/ElPlusFormDatetime.vue +41 -41
  36. package/lib/components/el-plus-form/components/ElPlusFormDatetimerange.vue +47 -47
  37. package/lib/components/el-plus-form/components/ElPlusFormFile.vue +48 -48
  38. package/lib/components/el-plus-form/components/ElPlusFormFormula.vue +442 -442
  39. package/lib/components/el-plus-form/components/ElPlusFormLkuser.vue +523 -523
  40. package/lib/components/el-plus-form/components/ElPlusFormPassword.vue +45 -45
  41. package/lib/components/el-plus-form/components/ElPlusFormPercentinput.vue +181 -177
  42. package/lib/components/el-plus-form/components/ElPlusFormQuickInput.vue +97 -97
  43. package/lib/components/el-plus-form/components/ElPlusFormRate.vue +54 -54
  44. package/lib/components/el-plus-form/components/ElPlusFormStatus.vue +101 -101
  45. package/lib/components/el-plus-form/components/ElPlusFormSwitch.vue +71 -71
  46. package/lib/components/el-plus-form/components/ElPlusFormText.vue +112 -112
  47. package/lib/components/el-plus-form/components/ElPlusFormTree.vue +663 -136
  48. package/lib/components/el-plus-form/components/ElPlusFormTreeSelect.vue +61 -61
  49. package/lib/components/el-plus-form/components/ElPlusFormUpbtn.vue +151 -151
  50. package/lib/components/el-plus-form/components/ElPlusFormUpload.vue +1 -1
  51. package/lib/components/el-plus-form/components/components/file-icons/FileIcons.vue +7 -1
  52. package/lib/components/el-plus-form/components/components/file-icons/data/index.ts +27 -27
  53. package/lib/components/el-plus-form/components/components/file-icons/images/doc.svg +12 -12
  54. package/lib/components/el-plus-form/components/components/file-icons/images/file.svg +18 -18
  55. package/lib/components/el-plus-form/components/components/file-icons/images/jpg.svg +13 -13
  56. package/lib/components/el-plus-form/components/components/file-icons/images/pdf.svg +12 -12
  57. package/lib/components/el-plus-form/components/components/file-icons/images/png.svg +12 -12
  58. package/lib/components/el-plus-form/components/components/file-icons/images/ppt.svg +12 -12
  59. package/lib/components/el-plus-form/components/components/file-icons/images/xls.svg +12 -12
  60. package/lib/components/el-plus-form/components/components/tree/CustomTreeNode.vue +130 -0
  61. package/lib/components/el-plus-form/components/index.ts +17 -17
  62. package/lib/components/el-plus-form/data/file.ts +74 -74
  63. package/lib/components/el-plus-form/mixins/index.ts +127 -127
  64. package/lib/components/el-plus-form/util/validate.ts +348 -348
  65. package/lib/components/el-plus-table/ElPlusTable.vue +67 -12
  66. package/lib/components/el-plus-table/ElPlusTableColumn.vue +49 -48
  67. package/lib/components/el-plus-table/components/columnItem.vue +220 -220
  68. package/lib/components/el-plus-table/components/header.vue +47 -6
  69. package/lib/components/el-plus-table/components/settingColumn.vue +2 -1
  70. package/lib/components/el-plus-table/components/statisticInfo.vue +47 -47
  71. package/lib/index.d.ts +4 -4
  72. package/lib/index.ts +56 -56
  73. package/package.json +74 -71
  74. package/pnpm-lock.yaml +6204 -0
  75. package/pnpm-workspace.yaml +4 -0
  76. package/tsconfig.json +78 -78
  77. package/types/global.d.ts +13 -13
  78. package/types/index.d.ts +4 -0
  79. package/vite.config.ts +78 -78
package/.eslintignore CHANGED
@@ -1,19 +1,19 @@
1
-
2
- *.sh
3
- node_modules
4
- lib
5
- *.md
6
- *.scss
7
- *.woff
8
- *.ttf
9
- .vscode
10
- .idea
11
- dist
12
- docs
13
- mock
14
- public
15
- bin
16
- build
17
- config
18
- index.html
1
+
2
+ *.sh
3
+ node_modules
4
+ lib
5
+ *.md
6
+ *.scss
7
+ *.woff
8
+ *.ttf
9
+ .vscode
10
+ .idea
11
+ dist
12
+ docs
13
+ mock
14
+ public
15
+ bin
16
+ build
17
+ config
18
+ index.html
19
19
  src/assets
package/.eslintrc.js CHANGED
@@ -1,78 +1,78 @@
1
- module.exports = {
2
- root: true,
3
- env: {
4
- browser: true,
5
- es2021: true,
6
- node: true
7
- },
8
- parser: 'vue-eslint-parser',
9
- parserOptions: {
10
- ecmaVersion: 12,
11
- parser: '@typescript-eslint/parser',
12
- sourceType: 'module'
13
- },
14
- extends: ['plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'],
15
- plugins: ['vue', '@typescript-eslint'],
16
- overrides: [
17
- {
18
- files: ['*.ts', '*.tsx', '*.vue'],
19
- rules: {
20
- 'no-undef': 'off'
21
- }
22
- }
23
- ],
24
- rules: {
25
- // http://eslint.cn/docs/rules/
26
- // https://eslint.vuejs.org/rules/
27
- // https://typescript-eslint.io/rules/no-unused-vars/
28
- '@typescript-eslint/ban-ts-ignore': 'off',
29
- '@typescript-eslint/explicit-function-return-type': 'off',
30
- '@typescript-eslint/no-explicit-any': 'off',
31
- '@typescript-eslint/no-var-requires': 'off',
32
- '@typescript-eslint/no-empty-function': 'off',
33
- '@typescript-eslint/no-use-before-define': 'off',
34
- '@typescript-eslint/ban-ts-comment': 'off',
35
- '@typescript-eslint/ban-types': 'off',
36
- '@typescript-eslint/no-non-null-assertion': 'off',
37
- '@typescript-eslint/explicit-module-boundary-types': 'off',
38
- '@typescript-eslint/no-redeclare': 'error',
39
- '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
40
- '@typescript-eslint/no-unused-vars': [2],
41
- 'vue/custom-event-name-casing': 'off',
42
- 'vue/attributes-order': 'off',
43
- 'vue/one-component-per-file': 'off',
44
- 'vue/html-closing-bracket-newline': 'off',
45
- 'vue/max-attributes-per-line': 'off',
46
- 'vue/multiline-html-element-content-newline': 'off',
47
- 'vue/singleline-html-element-content-newline': 'off',
48
- 'vue/attribute-hyphenation': 'off',
49
- 'vue/html-self-closing': 'off',
50
- 'vue/no-multiple-template-root': 'off',
51
- 'vue/require-default-prop': 'off',
52
- 'vue/no-v-model-argument': 'off',
53
- 'vue/no-arrow-functions-in-watch': 'off',
54
- 'vue/no-template-key': 'off',
55
- 'vue/no-v-html': 'off',
56
- 'vue/comment-directive': 'off',
57
- 'vue/no-parsing-error': 'off',
58
- 'vue/no-deprecated-v-on-native-modifier': 'off',
59
- 'vue/no-mutating-props': 'off',
60
- 'vue/no-v-for-template-key': 'off',
61
- 'vue/multi-word-component-names': 'off',
62
- 'no-useless-escape': 'off',
63
- 'no-sparse-arrays': 'off',
64
- 'no-prototype-builtins': 'off',
65
- 'no-constant-condition': 'off',
66
- 'no-use-before-define': 'off',
67
- 'no-restricted-globals': 'off',
68
- 'no-restricted-syntax': 'off',
69
- 'generator-star-spacing': 'off',
70
- 'no-unreachable': 'off',
71
- 'no-multiple-template-root': 'off',
72
- 'no-unused-vars': 'error',
73
- 'no-v-model-argument': 'off',
74
- 'no-case-declarations': 'off',
75
- 'no-console': 'error',
76
- 'no-redeclare': 'off'
77
- }
78
- }
1
+ module.exports = {
2
+ root: true,
3
+ env: {
4
+ browser: true,
5
+ es2021: true,
6
+ node: true
7
+ },
8
+ parser: 'vue-eslint-parser',
9
+ parserOptions: {
10
+ ecmaVersion: 12,
11
+ parser: '@typescript-eslint/parser',
12
+ sourceType: 'module'
13
+ },
14
+ extends: ['plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'],
15
+ plugins: ['vue', '@typescript-eslint'],
16
+ overrides: [
17
+ {
18
+ files: ['*.ts', '*.tsx', '*.vue'],
19
+ rules: {
20
+ 'no-undef': 'off'
21
+ }
22
+ }
23
+ ],
24
+ rules: {
25
+ // http://eslint.cn/docs/rules/
26
+ // https://eslint.vuejs.org/rules/
27
+ // https://typescript-eslint.io/rules/no-unused-vars/
28
+ '@typescript-eslint/ban-ts-ignore': 'off',
29
+ '@typescript-eslint/explicit-function-return-type': 'off',
30
+ '@typescript-eslint/no-explicit-any': 'off',
31
+ '@typescript-eslint/no-var-requires': 'off',
32
+ '@typescript-eslint/no-empty-function': 'off',
33
+ '@typescript-eslint/no-use-before-define': 'off',
34
+ '@typescript-eslint/ban-ts-comment': 'off',
35
+ '@typescript-eslint/ban-types': 'off',
36
+ '@typescript-eslint/no-non-null-assertion': 'off',
37
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
38
+ '@typescript-eslint/no-redeclare': 'error',
39
+ '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
40
+ '@typescript-eslint/no-unused-vars': [2],
41
+ 'vue/custom-event-name-casing': 'off',
42
+ 'vue/attributes-order': 'off',
43
+ 'vue/one-component-per-file': 'off',
44
+ 'vue/html-closing-bracket-newline': 'off',
45
+ 'vue/max-attributes-per-line': 'off',
46
+ 'vue/multiline-html-element-content-newline': 'off',
47
+ 'vue/singleline-html-element-content-newline': 'off',
48
+ 'vue/attribute-hyphenation': 'off',
49
+ 'vue/html-self-closing': 'off',
50
+ 'vue/no-multiple-template-root': 'off',
51
+ 'vue/require-default-prop': 'off',
52
+ 'vue/no-v-model-argument': 'off',
53
+ 'vue/no-arrow-functions-in-watch': 'off',
54
+ 'vue/no-template-key': 'off',
55
+ 'vue/no-v-html': 'off',
56
+ 'vue/comment-directive': 'off',
57
+ 'vue/no-parsing-error': 'off',
58
+ 'vue/no-deprecated-v-on-native-modifier': 'off',
59
+ 'vue/no-mutating-props': 'off',
60
+ 'vue/no-v-for-template-key': 'off',
61
+ 'vue/multi-word-component-names': 'off',
62
+ 'no-useless-escape': 'off',
63
+ 'no-sparse-arrays': 'off',
64
+ 'no-prototype-builtins': 'off',
65
+ 'no-constant-condition': 'off',
66
+ 'no-use-before-define': 'off',
67
+ 'no-restricted-globals': 'off',
68
+ 'no-restricted-syntax': 'off',
69
+ 'generator-star-spacing': 'off',
70
+ 'no-unreachable': 'off',
71
+ 'no-multiple-template-root': 'off',
72
+ 'no-unused-vars': 'error',
73
+ 'no-v-model-argument': 'off',
74
+ 'no-case-declarations': 'off',
75
+ 'no-console': 'error',
76
+ 'no-redeclare': 'off'
77
+ }
78
+ }
package/.lintstagedrc CHANGED
@@ -1,3 +1,3 @@
1
- {
2
- "*.{js,jsx,ts,tsx,vue,html}": ["prettier --write", "eslint"]
3
- }
1
+ {
2
+ "*.{js,jsx,ts,tsx,vue,html}": ["prettier --write", "eslint"]
3
+ }
package/.prettierrc.js CHANGED
@@ -1,39 +1,39 @@
1
- module.exports = {
2
- // 一行最多多少个字符
3
- printWidth: 500,
4
- // 指定每个缩进级别的空格数
5
- tabWidth: 2,
6
- // 使用制表符而不是空格缩进行
7
- useTabs: false,
8
- // 在语句末尾打印分号
9
- semi: false,
10
- // 使用单引号而不是双引号
11
- singleQuote: true,
12
- // 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"
13
- quoteProps: 'as-needed',
14
- // 在JSX中使用单引号而不是双引号
15
- jsxSingleQuote: false,
16
- // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>",默认none
17
- trailingComma: 'none',
18
- // 在对象文字中的括号之间打印空格
19
- bracketSpacing: true,
20
- // jsx 标签的反尖括号需要换行
21
- jsxBracketSameLine: false,
22
- // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x
23
- arrowParens: 'always',
24
- // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
25
- rangeStart: 0,
26
- rangeEnd: Infinity,
27
- // 指定要使用的解析器,不需要写文件开头的 @prettier
28
- requirePragma: false,
29
- // 不需要自动在文件开头插入 @prettier
30
- insertPragma: false,
31
- // 使用默认的折行标准 always\never\preserve
32
- proseWrap: 'preserve',
33
- // 指定HTML文件的全局空格敏感度 css\strict\ignore
34
- htmlWhitespaceSensitivity: 'css',
35
- // Vue文件脚本和样式标签缩进
36
- vueIndentScriptAndStyle: false,
37
- // 换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr>"
38
- endOfLine: 'lf'
39
- }
1
+ module.exports = {
2
+ // 一行最多多少个字符
3
+ printWidth: 500,
4
+ // 指定每个缩进级别的空格数
5
+ tabWidth: 2,
6
+ // 使用制表符而不是空格缩进行
7
+ useTabs: false,
8
+ // 在语句末尾打印分号
9
+ semi: false,
10
+ // 使用单引号而不是双引号
11
+ singleQuote: true,
12
+ // 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"
13
+ quoteProps: 'as-needed',
14
+ // 在JSX中使用单引号而不是双引号
15
+ jsxSingleQuote: false,
16
+ // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>",默认none
17
+ trailingComma: 'none',
18
+ // 在对象文字中的括号之间打印空格
19
+ bracketSpacing: true,
20
+ // jsx 标签的反尖括号需要换行
21
+ jsxBracketSameLine: false,
22
+ // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x
23
+ arrowParens: 'always',
24
+ // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
25
+ rangeStart: 0,
26
+ rangeEnd: Infinity,
27
+ // 指定要使用的解析器,不需要写文件开头的 @prettier
28
+ requirePragma: false,
29
+ // 不需要自动在文件开头插入 @prettier
30
+ insertPragma: false,
31
+ // 使用默认的折行标准 always\never\preserve
32
+ proseWrap: 'preserve',
33
+ // 指定HTML文件的全局空格敏感度 css\strict\ignore
34
+ htmlWhitespaceSensitivity: 'css',
35
+ // Vue文件脚本和样式标签缩进
36
+ vueIndentScriptAndStyle: false,
37
+ // 换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr>"
38
+ endOfLine: 'lf'
39
+ }