br-dionysus 0.9.6 → 0.9.8

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 (63) hide show
  1. package/.eslintrc.cjs +347 -0
  2. package/README.md +256 -191
  3. package/build/base.config.ts +2 -0
  4. package/build/doc.config.ts +5 -5
  5. package/build/lib.config.ts +1 -1
  6. package/createMd.js +1 -1
  7. package/dist/br-dionysus.es.js +1671 -1594
  8. package/dist/br-dionysus.umd.js +3 -3
  9. package/dist/index.css +1 -1
  10. package/dist/packages/Foo/index.d.ts +1 -1
  11. package/dist/packages/Hook/useZIndex/useGlobalZIndex.d.ts +13 -0
  12. package/dist/packages/MInputNumber/src/MInputNumber.vue.d.ts +18 -0
  13. package/dist/packages/MNewSelectTable/src/MNewSelectTable.vue.d.ts +29 -9
  14. package/dist/packages/MSelectTable/src/MSelectTable.vue.d.ts +2 -2
  15. package/dist/packages/MSelectV2/src/MSelectV2.vue.d.ts +16 -8
  16. package/dist/packages/SkinConfig/src/useSkin.d.ts +2 -0
  17. package/package.json +11 -1
  18. package/packages/Button/docs/demo.vue +1 -1
  19. package/packages/Button/index.ts +3 -3
  20. package/packages/Button/src/index.vue +5 -2
  21. package/packages/Foo/docs/demo.vue +1 -1
  22. package/packages/Foo/index.ts +8 -8
  23. package/packages/Foo/src/index.vue +2 -2
  24. package/packages/Hook/useTableConfig/useTableConfig.ts +2 -2
  25. package/packages/Hook/useZIndex/README.md +6 -0
  26. package/packages/Hook/useZIndex/useGlobalZIndex.ts +30 -0
  27. package/packages/MInline/index.ts +3 -3
  28. package/packages/MInputNumber/index.ts +3 -3
  29. package/packages/MInputNumber/src/MInputNumber.vue +9 -0
  30. package/packages/MNewSelectTable/docs/README.md +55 -26
  31. package/packages/MNewSelectTable/docs/demo.vue +112 -124
  32. package/packages/MNewSelectTable/index.ts +3 -3
  33. package/packages/MNewSelectTable/src/MNewSelectTable.vue +212 -168
  34. package/packages/MSelect/docs/demo.vue +1 -1
  35. package/packages/MSelect/index.ts +5 -5
  36. package/packages/MSelect/src/MSelect.vue +8 -2
  37. package/packages/MSelectTable/index.ts +3 -3
  38. package/packages/MSelectTable/src/MSelectTable.vue +63 -64
  39. package/packages/MSelectV2/docs/demo.vue +2 -2
  40. package/packages/MSelectV2/index.ts +3 -3
  41. package/packages/MSelectV2/src/MSelectV2.vue +8 -4
  42. package/packages/MTable/index.ts +2 -2
  43. package/packages/MTable/src/MTable.vue +14 -11
  44. package/packages/MTableColumn/docs/demo.vue +31 -28
  45. package/packages/MTableColumn/index.ts +2 -2
  46. package/packages/MTableColumnSet/docs/demo.vue +9 -6
  47. package/packages/MTableColumnSet/index.ts +2 -2
  48. package/packages/SkinConfig/docs/demo.vue +32 -4
  49. package/packages/SkinConfig/index.ts +3 -3
  50. package/packages/SkinConfig/src/SkinConfig.vue +31 -17
  51. package/packages/SkinConfig/src/useSkin.ts +6 -0
  52. package/packages/TabPage/docs/demo.vue +3 -1
  53. package/packages/TabPage/index.ts +7 -7
  54. package/packages/TabPage/src/TabPage.vue +2 -2
  55. package/packages/index.ts +1 -1
  56. package/script/copyDir.js +4 -4
  57. package/script/genNewComp/index.js +1 -1
  58. package/script/genNewComp/infoCollector.js +5 -5
  59. package/script/genNewComp/tplReplacer.js +2 -2
  60. package/src/App.vue +2 -2
  61. package/src/components/Preview.vue +33 -25
  62. package/src/env.d.ts +7 -7
  63. package/src/router.ts +11 -12
package/.eslintrc.cjs ADDED
@@ -0,0 +1,347 @@
1
+ /* eslint-env node */
2
+ require('@rushstack/eslint-patch/modern-module-resolution')
3
+
4
+ module.exports = {
5
+ root: true,
6
+ ignorePatterns: ['node_modules/', 'build/', 'dist/'],
7
+ extends: [
8
+ 'plugin:vue/vue3-essential',
9
+ 'eslint:recommended',
10
+ '@vue/eslint-config-typescript',
11
+ '@vue/eslint-config-standard',
12
+ 'standard'
13
+ ],
14
+ overrides: [
15
+ {
16
+ files: [
17
+ 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}'
18
+ ],
19
+ extends: [
20
+ 'plugin:cypress/recommended'
21
+ ],
22
+ env: {
23
+ mocha: true
24
+ }
25
+ }
26
+ ],
27
+ parserOptions: {
28
+ ecmaVersion: 'latest'
29
+ },
30
+ rules: {
31
+ // TYPE_A
32
+ // 要求组件名称始终为多词(组件库中不要求)
33
+ 'vue/multi-word-component-names': ['error', {
34
+ ignores: ['Main', 'Head', 'Navigate', 'Index', 'Home', '404', '500', 'Login', 'Preview', 'demo', 'Minline']
35
+ }],
36
+ // 禁止使用箭头函数定义观察者
37
+ // 'vue/no-arrow-functions-in-watch': 'error',
38
+ // 禁止在计算属性中执行异步操作
39
+ 'vue/no-async-in-computed-properties': 'error',
40
+ 'vue/no-child-content': 'error',
41
+ // 禁止访问data
42
+ 'vue/no-computed-properties-in-data': 'error',
43
+ // 禁止同一作用域下出现重复字段名
44
+ 'vue/no-dupe-keys': 'error',
45
+ // 禁止v-if/v-else-if链中的重复条件
46
+ 'vue/no-dupe-v-else-if': 'error',
47
+ // 禁止组件上出现重复属性
48
+ 'vue/no-duplicate-attributes': 'error',
49
+ 'vue/no-export-in-script-setup': 'error',
50
+ // 禁止改变prop属性值
51
+ 'vue/no-mutating-props': 'error',
52
+ 'vue/no-ref-as-operand': 'error',
53
+ // 禁止覆盖保留字段
54
+ 'vue/no-reserved-keys': 'error',
55
+ // 禁止覆盖props中的保留字段
56
+ 'vue/no-reserved-props': 'error',
57
+ // 强制data必须为返回兑现的函数
58
+ 'vue/no-shared-component-data': 'error',
59
+ // 禁止计算属性中出现副作用
60
+ 'vue/no-side-effects-in-computed-properties': 'error',
61
+ // 禁止template中使用属性
62
+ 'vue/no-template-key': 'error',
63
+ // 强制textarea必须通过v-model绑定内容
64
+ 'vue/no-textarea-mustache': 'error',
65
+ // 禁止存在未调用的组件引用
66
+ 'vue/no-unused-components': 'error',
67
+ // 禁止v-for中使用未定义的属性
68
+ 'vue/no-unused-vars': 'error',
69
+ 'vue/no-use-computed-property-like-method': 'error',
70
+ // 禁止在与 v-for 相同的元素上使用 v-if
71
+ 'vue/no-use-v-if-with-v-for': 'error',
72
+ // 禁止template上出现无用的属性
73
+ 'vue/no-useless-template-attributes': 'error',
74
+ 'vue/no-v-text-v-html-on-component': 'error',
75
+ // component标签必须有is属性
76
+ 'vue/require-component-is': 'error',
77
+ // 要求 prop 类型是构造函数
78
+ 'vue/require-prop-type-constructor': 'error',
79
+ // 要求render必须任何情况下都有返回值
80
+ 'vue/require-render-return': 'error',
81
+ // v-for循环必须有key属性
82
+ 'vue/require-v-for-key': 'error',
83
+ // prop的默认值必须与类型一直
84
+ 'vue/require-valid-default-prop': 'error',
85
+ // 要求计算属性必须任何情况下都有返回值
86
+ 'vue/return-in-computed-property': 'error',
87
+ // 强制v-on使用exact修饰符
88
+ 'vue/use-v-on-exact': 'error',
89
+ // 强制执行有效的nextTick函数调用
90
+ 'vue/valid-next-tick': 'error',
91
+ 'vue/valid-attribute-name': 'error',
92
+ 'vue/return-in-emits-validator': 'warn',
93
+ // template必须有内容
94
+ 'vue/valid-template-root': 'error',
95
+ // 强制正确使用v-bind
96
+ 'vue/valid-v-bind': 'error',
97
+ 'vue/valid-v-cloak': 'error',
98
+ 'vue/valid-v-else-if': 'error',
99
+ 'vue/valid-v-else': 'error',
100
+ 'vue/valid-v-for': 'error',
101
+ 'vue/valid-v-html': 'error',
102
+ 'vue/valid-v-if': 'error',
103
+ 'vue/valid-v-model': 'error',
104
+ 'vue/valid-v-on': 'error',
105
+ 'vue/valid-v-once': 'error',
106
+ 'vue/valid-v-pre': 'error',
107
+ 'vue/valid-v-show': 'error',
108
+ 'vue/valid-v-slot': 'error',
109
+ 'vue/valid-v-text': 'error',
110
+ 'vue/no-parsing-error': [
111
+ 2, {
112
+ 'x-invalid-end-tag': false
113
+ }
114
+ ],
115
+
116
+ // TYPE_A VUE3
117
+ // 禁止在数据上使用不推荐使用的对象声明
118
+ 'vue/no-deprecated-data-object-declaration': 'error',
119
+ // 禁止使用已弃用destroyed和beforeDestroy生命周期挂钩
120
+ 'vue/no-deprecated-destroyed-lifecycle': 'error',
121
+ // 禁止使用已弃用api $listeners
122
+ 'vue/no-deprecated-dollar-listeners-api': 'error',
123
+ // 禁止使用已弃用api $scopedSlots
124
+ 'vue/no-deprecated-dollar-scopedslots-api': 'error',
125
+ // 禁止使用已弃用的事件api
126
+ 'vue/no-deprecated-events-api': 'error',
127
+ // 禁止使用已弃用的'|'语法
128
+ 'vue/no-deprecated-filter': 'error',
129
+ // 禁止使用已弃用的functional template
130
+ 'vue/no-deprecated-functional-template': 'error',
131
+ // 禁止在 HTML 元素上使用已弃用的is属性
132
+ 'vue/no-deprecated-html-element-is': 'error',
133
+ // 禁止使用已弃用inline-template的属性
134
+ 'vue/no-deprecated-inline-template': 'error',
135
+ // 禁止this在 props 默认函数中弃用访问
136
+ 'vue/no-deprecated-props-default-this': 'error',
137
+ // 禁止使用已弃用的tag属性RouterLink
138
+ 'vue/no-deprecated-router-link-tag-prop': 'error',
139
+ // 禁止使用已弃用的scope属性
140
+ 'vue/no-deprecated-scope-attribute': 'error',
141
+ // 禁止使用已弃用的slot属性
142
+ 'vue/no-deprecated-slot-attribute': 'error',
143
+ // 禁止使用已弃用的slot-scope属性
144
+ 'vue/no-deprecated-slot-scope-attribute': 'error',
145
+ // 禁止在.sync指令上使用 deprecated 修饰符v-bind
146
+ // 'vue/no-deprecated-v-bind-sync': 'error',
147
+ // 禁止使用已弃用的v-is指令
148
+ 'vue/no-deprecated-v-is': 'error',
149
+ // 禁止使用已弃用的.native的修饰符
150
+ 'vue/no-deprecated-v-on-native-modifier': 'error',
151
+ // 禁止使用不推荐使用的数字(键码)修饰符
152
+ 'vue/no-deprecated-v-on-number-modifiers': 'error',
153
+ // 禁止使用已弃用的Vue.config.keyCodes
154
+ 'vue/no-deprecated-vue-config-keycodes': 'error',
155
+ // 禁止异步注册expose
156
+ 'vue/no-expose-after-await': 'error',
157
+ // 禁止异步注册的生命周期钩子
158
+ 'vue/no-lifecycle-after-await': 'error',
159
+ // 禁止v-key放置在v-for的子元素上
160
+ 'vue/no-v-for-template-key-on-child': 'error',
161
+ // 禁止异步注册watch
162
+ 'vue/no-watch-after-await': 'error',
163
+ // 强制从'vue'导入,而不是从'@vue/*'导入
164
+ 'vue/prefer-import-from-vue': 'error',
165
+ // 强制将$slots的属性用作函数
166
+ 'vue/require-slots-as-functions': 'error',
167
+ // 要求控制里面内容的显示<transition>
168
+ 'vue/require-toggle-inside-transition': 'error',
169
+ // 执行有效的v-is指令
170
+ 'vue/valid-v-is': 'error',
171
+ // 执行有效的v-memo指令
172
+ 'vue/valid-v-memo': 'error',
173
+ 'vue/no-custom-modifiers-on-v-model': 'error',
174
+ 'vue/no-multiple-template-root': 'error',
175
+ // 'vue/no-v-for-template-key': 'error', // 这是vue2的,所以vue3项目中关闭
176
+ // 'vue/no-v-model-argument': 'error',
177
+ // 'vue/valid-v-bind-sync': 'error',
178
+
179
+ // TYPE_B
180
+ // 强制自定义组件属性命名样式(always中横线)
181
+ 'vue/attribute-hyphenation': ['error', 'never', {
182
+ ignore: []
183
+ }],
184
+ // 要求组件名称的连接格式kebab-case(中横线),PascalCase(大驼峰)
185
+ 'vue/component-definition-name-casing': ['error', 'PascalCase'],
186
+ // 属性换行规则(单属性换行)
187
+ 'vue/first-attribute-linebreak': ['error', {
188
+ singleline: 'beside',
189
+ multiline: 'below'
190
+ }],
191
+ // 在标签的右括号前要求或禁止换行
192
+ 'vue/html-closing-bracket-newline': ['error', {
193
+ singleline: 'never',
194
+ multiline: 'always'
195
+ }],
196
+ // 在标签的右括号前要求或不允许有空格
197
+ 'vue/html-closing-bracket-spacing': 'warn',
198
+ // 标签必须有结束符号
199
+ 'vue/html-end-tags': 'error',
200
+ // 强制使用一致的缩进
201
+ 'vue/html-indent': 'error',
202
+ // html强制使用双引号
203
+ 'vue/html-quotes': 'error',
204
+ // 强制没有内容的html使用自关闭
205
+ // 'vue/html-self-closing': 'error',
206
+ // 强制每行的最大属性数
207
+ 'vue/max-attributes-per-line': ['error', {
208
+ singleline: {
209
+ max: 1
210
+ },
211
+ multiline: {
212
+ max: 1
213
+ }
214
+ }],
215
+ // 需要在多行元素的内容前后换行
216
+ 'vue/multiline-html-element-content-newline': ['error', {
217
+ ignoreWhenEmpty: true,
218
+ ignores: ['pre', 'textarea'],
219
+ allowEmptyLines: false
220
+ }],
221
+ // 在{{}}插值中强制统一间距(默认带前后空格)
222
+ 'vue/mustache-interpolation-spacing': 'error',
223
+ // 禁止多个空格
224
+ 'vue/no-multi-spaces': 'error',
225
+ // 不允许在属性中的等号周围有空格
226
+ 'vue/no-spaces-around-equal-signs-in-attribute': 'error',
227
+ // 禁止子作用域覆盖父作用域的变量
228
+ 'vue/no-template-shadow': 'error',
229
+ // 强制每个组件都是个独立的文件
230
+ 'vue/one-component-per-file': 'error',
231
+ // 为 Vue 组件中的 Prop 名称强制执行特定大小写
232
+ 'vue/prop-name-casing': 'error',
233
+ // prop属性必须有默认值
234
+ 'vue/require-default-prop': 'error',
235
+ // prop属性必须有类型
236
+ 'vue/require-prop-types': 'error',
237
+ // 需要在单行元素的内容前后换行(换)
238
+ // 'vue/singleline-html-element-content-newline': ['error', {
239
+ // ignoreWhenNoAttributes: true,
240
+ // ignoreWhenEmpty: true,
241
+ // ignores: []
242
+ // }],
243
+ // v-bind强制简写
244
+ 'vue/v-bind-style': 'warn',
245
+ // v-on强制简写
246
+ 'vue/v-on-style': 'warn',
247
+ // v-slot强制简写
248
+ 'vue/v-slot-style': 'error',
249
+
250
+ // TYPE_B VUE3
251
+ // emits必须是有效的
252
+ 'vue/require-explicit-emits': 'error',
253
+ // 对模板中的自定义组件强制执行 v-on 事件命名样式 标记小驼峰
254
+ 'vue/v-on-event-hyphenation': ['error', 'never'],
255
+
256
+ // TYPE_C
257
+ // 强制执行属性顺序
258
+ // 'vue/attributes-order': 'error',
259
+ // 强制vue文件属性顺序
260
+ // 'vue/component-tags-order': ['error', {
261
+ // order: [['script', 'template'], 'style']
262
+ // }],
263
+ // 禁用无效template
264
+ 'vue/no-lone-template': 'warn',
265
+ // 不允许将多个参数传递给作用域插槽
266
+ // 'vue/no-multiple-slot-args': 'error',
267
+ // 禁止使用v-html
268
+ // 'vue/no-v-html': 'warn',
269
+ // 强制组件中的属性顺序
270
+ // 'vue/order-in-components': 'error',
271
+ // 禁止模板中使用this
272
+ 'vue/this-in-template': 'error',
273
+
274
+ // TYPE_D
275
+ 'vue/component-name-in-template-casing': ['error', 'PascalCase', {
276
+ registeredComponentsOnly: true,
277
+ ignores: []
278
+ }],
279
+ // 强制使用统一的html注释规则
280
+ // 'vue/html-comment-content-newline': ['error', 'always', {
281
+ // exceptions: []
282
+ // }],
283
+ // 强制使用统一的html注释间隔规则
284
+ // 'vue/html-comment-content-spacing': ['error', 'never', {
285
+ // exceptions: []
286
+ // }],
287
+ // 强制使用一致的html注释缩进
288
+ 'vue/html-comment-indent': ['error', 'tab'],
289
+ // 强制prop中布尔类型的属性默认值为false(暂时标记)
290
+ // 'vue/no-boolean-default': ['warn', 'default-false'],
291
+ // 'vue/no-duplicate-attr-inheritance': 'error',
292
+ // 不允许将多个对象传递到数组到类
293
+ 'vue/no-multiple-objects-in-class': 'error',
294
+ // 禁止在组件的根属性中出现潜在的拼写错误
295
+ 'vue/no-potential-component-option-typo': ['error', {
296
+ presets: ['all'],
297
+ custom: ['test']
298
+ }],
299
+ // 禁止组件名为vue保留字段
300
+ 'vue/no-reserved-component-names': ['error', {
301
+ disallowVueBuiltInComponents: false,
302
+ disallowVue3BuiltInComponents: false
303
+ }],
304
+ // 禁止html中出现非必要的行内样式
305
+ 'vue/no-static-inline-styles': ['error', {
306
+ allowBinding: false
307
+ }],
308
+ // 禁止使用非当前版本vue的api
309
+ 'vue/no-unsupported-features': ['error', {
310
+ version: '^3.2.0',
311
+ ignores: []
312
+ }],
313
+ // 禁止使用未在components注册的组件
314
+ // 'vue/no-unregistered-components': ['error', {
315
+ // ignorePatterns: ['router-view']
316
+ // }],
317
+ // 根节点需要添加空行
318
+ 'vue/padding-line-between-blocks': ['error', 'always'],
319
+
320
+ // TYPE_F
321
+ // 禁止非标准空格和制表符
322
+ 'vue/no-irregular-whitespace': ['error', {
323
+ skipStrings: true,
324
+ skipComments: false,
325
+ skipRegExps: false,
326
+ skipTemplates: false,
327
+ skipHTMLAttributeValues: false,
328
+ skipHTMLTextContents: false
329
+ }],
330
+ // 符号间距
331
+ 'vue/arrow-spacing': 'error',
332
+
333
+ // 统一缩进
334
+ indent: ['error', 2],
335
+
336
+ // TYPE 其他
337
+ 'no-unused-vars': 'off',
338
+ 'no-undef': 'off',
339
+ '@typescript-eslint/no-unused-vars': 'error',
340
+ 'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'],
341
+
342
+ // 变量统一小驼峰(标记,后端类型不支持)
343
+ camelcase: 'off',
344
+ // 禁止变量在未定义前使用(标记,为后端模型而放开)
345
+ 'no-use-before-define': 'off'
346
+ }
347
+ }