adtec-core-package 0.4.0 → 0.4.2

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 (207) hide show
  1. package/.editorconfig +6 -6
  2. package/.prettierrc.json +7 -7
  3. package/.vscode/extensions.json +8 -8
  4. package/README.en.md +36 -36
  5. package/README.md +39 -39
  6. package/env.d.ts +1 -1
  7. package/eslint.config.js +56 -56
  8. package/index.html +13 -13
  9. package/package.json +59 -59
  10. package/src/App.vue +9 -9
  11. package/src/api/BasicApi.ts +17 -17
  12. package/src/api/DocumentApi.ts +27 -27
  13. package/src/api/SysDictCacheApi.ts +26 -26
  14. package/src/api/SysUserApi.ts +35 -35
  15. package/src/api/framework.ts +12 -12
  16. package/src/assets/base.css +86 -86
  17. package/src/assets/logo.svg +1 -1
  18. package/src/assets/main.css +35 -35
  19. package/src/assets/style/ant.scss +19 -19
  20. package/src/assets/style/index.less +180 -180
  21. package/src/assets/style/transition.scss +49 -49
  22. package/src/components/ElFlex/ElFlex.vue +297 -297
  23. package/src/components/OperationAuth/operationAuth.vue +26 -26
  24. package/src/components/Search/ElIconSearch.vue +260 -239
  25. package/src/components/Search/ElSearch.vue +154 -154
  26. package/src/components/Table/ElTableColumnEdit.vue +218 -218
  27. package/src/components/Title/ElTitle.vue +49 -49
  28. package/src/components/autoToolTip/ElAutoToolTip.vue +61 -61
  29. package/src/components/baseEcharts/index.vue +48 -48
  30. package/src/components/business/userSelect.vue +412 -412
  31. package/src/components/icon/ElIconBtn.vue +182 -182
  32. package/src/components/icon/ElIcons.vue +38 -38
  33. package/src/components/upload/ElUploads.vue +286 -279
  34. package/src/components/upload/FileView.vue +158 -158
  35. package/src/components/upload/FileViewComponents.vue +57 -57
  36. package/src/config/ElementPlusConfig.ts +95 -95
  37. package/src/css/elementUI/affix.scss +7 -7
  38. package/src/css/elementUI/alert.scss +115 -115
  39. package/src/css/elementUI/anchor-link.scss +41 -41
  40. package/src/css/elementUI/anchor.scss +88 -88
  41. package/src/css/elementUI/aside.scss +8 -8
  42. package/src/css/elementUI/autocomplete.scss +89 -89
  43. package/src/css/elementUI/avatar.scss +55 -55
  44. package/src/css/elementUI/backtop.scss +29 -29
  45. package/src/css/elementUI/badge.scss +58 -58
  46. package/src/css/elementUI/base.scss +3 -3
  47. package/src/css/elementUI/breadcrumb.scss +62 -62
  48. package/src/css/elementUI/button-group.scss +80 -80
  49. package/src/css/elementUI/button.scss +304 -304
  50. package/src/css/elementUI/calendar.scss +80 -80
  51. package/src/css/elementUI/card.scss +45 -45
  52. package/src/css/elementUI/carousel-item.scss +58 -58
  53. package/src/css/elementUI/carousel.scss +188 -188
  54. package/src/css/elementUI/cascader-panel.scss +138 -138
  55. package/src/css/elementUI/cascader.scss +230 -230
  56. package/src/css/elementUI/check-tag.scss +60 -60
  57. package/src/css/elementUI/checkbox-button.scss +140 -140
  58. package/src/css/elementUI/checkbox-group.scss +7 -7
  59. package/src/css/elementUI/checkbox.scss +298 -298
  60. package/src/css/elementUI/col.scss +48 -48
  61. package/src/css/elementUI/collapse.scss +70 -70
  62. package/src/css/elementUI/color/index.scss +20 -20
  63. package/src/css/elementUI/color-picker.scss +392 -392
  64. package/src/css/elementUI/common/popup.scss +47 -47
  65. package/src/css/elementUI/common/transition.scss +122 -122
  66. package/src/css/elementUI/common/var.scss +1549 -1549
  67. package/src/css/elementUI/container.scss +14 -14
  68. package/src/css/elementUI/dark/css-vars.scss +39 -39
  69. package/src/css/elementUI/dark/var.scss +222 -222
  70. package/src/css/elementUI/date-picker/date-picker.scss +110 -110
  71. package/src/css/elementUI/date-picker/date-range-picker.scss +113 -113
  72. package/src/css/elementUI/date-picker/date-table.scss +158 -158
  73. package/src/css/elementUI/date-picker/month-table.scss +112 -112
  74. package/src/css/elementUI/date-picker/picker-panel.scss +131 -131
  75. package/src/css/elementUI/date-picker/picker.scss +219 -219
  76. package/src/css/elementUI/date-picker/time-picker.scss +90 -90
  77. package/src/css/elementUI/date-picker/time-range-picker.scss +33 -33
  78. package/src/css/elementUI/date-picker/time-spinner.scss +111 -111
  79. package/src/css/elementUI/date-picker/year-table.scss +108 -108
  80. package/src/css/elementUI/date-picker.scss +9 -9
  81. package/src/css/elementUI/descriptions-item.scss +73 -73
  82. package/src/css/elementUI/descriptions.scss +152 -152
  83. package/src/css/elementUI/dialog.scss +199 -199
  84. package/src/css/elementUI/display.scss +12 -12
  85. package/src/css/elementUI/divider.scss +48 -48
  86. package/src/css/elementUI/drawer.scss +164 -164
  87. package/src/css/elementUI/dropdown.scss +208 -208
  88. package/src/css/elementUI/empty.scss +49 -49
  89. package/src/css/elementUI/footer.scss +12 -12
  90. package/src/css/elementUI/form.scss +243 -243
  91. package/src/css/elementUI/header.scss +12 -12
  92. package/src/css/elementUI/icon.scss +45 -45
  93. package/src/css/elementUI/image-viewer.scss +139 -139
  94. package/src/css/elementUI/image.scss +49 -49
  95. package/src/css/elementUI/index.scss +110 -110
  96. package/src/css/elementUI/input-number.scss +178 -178
  97. package/src/css/elementUI/input.scss +478 -478
  98. package/src/css/elementUI/link.scss +90 -90
  99. package/src/css/elementUI/loading.scss +104 -104
  100. package/src/css/elementUI/main.scss +14 -14
  101. package/src/css/elementUI/mention.scss +88 -88
  102. package/src/css/elementUI/menu.scss +339 -339
  103. package/src/css/elementUI/message-box.scss +213 -213
  104. package/src/css/elementUI/message.scss +98 -98
  105. package/src/css/elementUI/mixins/_button.scss +165 -165
  106. package/src/css/elementUI/mixins/_col.scss +33 -33
  107. package/src/css/elementUI/mixins/_var.scss +67 -67
  108. package/src/css/elementUI/mixins/config.scss +5 -5
  109. package/src/css/elementUI/mixins/function.scss +88 -88
  110. package/src/css/elementUI/mixins/mixins.scss +237 -237
  111. package/src/css/elementUI/mixins/utils.scss +39 -39
  112. package/src/css/elementUI/notification.scss +104 -104
  113. package/src/css/elementUI/option-group.scss +33 -33
  114. package/src/css/elementUI/option.scss +71 -71
  115. package/src/css/elementUI/overlay.scss +17 -17
  116. package/src/css/elementUI/page-header.scss +60 -60
  117. package/src/css/elementUI/pagination.scss +238 -238
  118. package/src/css/elementUI/popconfirm.scss +16 -16
  119. package/src/css/elementUI/popover.scss +61 -61
  120. package/src/css/elementUI/popper.scss +106 -106
  121. package/src/css/elementUI/progress.scss +179 -179
  122. package/src/css/elementUI/radio-button.scss +169 -169
  123. package/src/css/elementUI/radio-group.scss +9 -9
  124. package/src/css/elementUI/radio.scss +215 -215
  125. package/src/css/elementUI/rate.scss +108 -108
  126. package/src/css/elementUI/reset.scss +98 -98
  127. package/src/css/elementUI/result.scss +57 -57
  128. package/src/css/elementUI/row.scss +35 -35
  129. package/src/css/elementUI/scrollbar.scss +97 -97
  130. package/src/css/elementUI/segmented.scss +183 -183
  131. package/src/css/elementUI/select-dropdown-v2.scss +1 -1
  132. package/src/css/elementUI/select-dropdown.scss +57 -57
  133. package/src/css/elementUI/select-v2.scss +4 -4
  134. package/src/css/elementUI/select.scss +253 -253
  135. package/src/css/elementUI/skeleton-item.scss +83 -83
  136. package/src/css/elementUI/skeleton.scss +44 -44
  137. package/src/css/elementUI/slider.scss +212 -212
  138. package/src/css/elementUI/space.scss +20 -20
  139. package/src/css/elementUI/spinner.scss +43 -43
  140. package/src/css/elementUI/statistic.scss +35 -35
  141. package/src/css/elementUI/step.scss +316 -316
  142. package/src/css/elementUI/steps.scss +21 -21
  143. package/src/css/elementUI/switch.scss +300 -300
  144. package/src/css/elementUI/table-column.scss +98 -98
  145. package/src/css/elementUI/table-v2.scss +236 -236
  146. package/src/css/elementUI/table.scss +694 -694
  147. package/src/css/elementUI/tabs.scss +659 -659
  148. package/src/css/elementUI/tag.scss +181 -181
  149. package/src/css/elementUI/text.scss +51 -51
  150. package/src/css/elementUI/time-picker.scss +5 -5
  151. package/src/css/elementUI/time-select.scss +37 -37
  152. package/src/css/elementUI/timeline-item.scss +84 -84
  153. package/src/css/elementUI/timeline.scss +46 -46
  154. package/src/css/elementUI/tooltip-v2.scss +95 -95
  155. package/src/css/elementUI/tour.scss +187 -187
  156. package/src/css/elementUI/transfer.scss +203 -203
  157. package/src/css/elementUI/tree-select.scss +41 -41
  158. package/src/css/elementUI/tree.scss +134 -134
  159. package/src/css/elementUI/upload.scss +654 -654
  160. package/src/css/elementUI/var.scss +87 -87
  161. package/src/css/elementUI/virtual-list.scss +40 -40
  162. package/src/directives/vKeydown.ts +93 -93
  163. package/src/hooks/useDictHooks.ts +79 -76
  164. package/src/hooks/useEcharts.ts +58 -58
  165. package/src/hooks/useFileView.ts +34 -34
  166. package/src/hooks/useMessageHooks.ts +132 -132
  167. package/src/hooks/useResetRefHooks.ts +18 -18
  168. package/src/interface/BaseEntity.ts +28 -28
  169. package/src/interface/IMdmDept.ts +82 -82
  170. package/src/interface/IOrgDeptInfo.ts +12 -12
  171. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  172. package/src/interface/ISysDictType.ts +37 -37
  173. package/src/interface/ISysMenuDataVo.ts +22 -22
  174. package/src/interface/ISysMenuInfoVo.ts +83 -83
  175. package/src/interface/ISysMenuOperationVo.ts +21 -21
  176. package/src/interface/ISysUploadFiles.ts +16 -16
  177. package/src/interface/ISysUserInfo.ts +70 -70
  178. package/src/interface/IUserPermissionVo.ts +34 -34
  179. package/src/interface/Message.ts +69 -69
  180. package/src/interface/PageData.ts +17 -17
  181. package/src/interface/ResponseData.ts +16 -16
  182. package/src/interface/dictMapType.ts +11 -11
  183. package/src/interface/enum/FlexEnum.ts +85 -85
  184. package/src/interface/enum/MessageEnum.ts +41 -41
  185. package/src/main.ts +14 -14
  186. package/src/mixin/globalMixin.ts +37 -37
  187. package/src/packages/index.ts +18 -18
  188. package/src/packages/text.vue +13 -13
  189. package/src/plugins/echartsConfig.ts +73 -73
  190. package/src/plugins/plugins.ts +12 -12
  191. package/src/router/index.ts +23 -23
  192. package/src/stores/dictStore.ts +27 -20
  193. package/src/stores/messageStore.ts +49 -49
  194. package/src/stores/permissionStore.ts +108 -108
  195. package/src/stores/storeConfig.ts +23 -23
  196. package/src/stores/userInfoStore.ts +31 -31
  197. package/src/utils/AxiosConfig.ts +216 -216
  198. package/src/utils/encrypt.ts +10 -10
  199. package/src/utils/request.ts +55 -55
  200. package/tsconfig.app.json +12 -12
  201. package/tsconfig.json +11 -11
  202. package/tsconfig.node.json +18 -18
  203. package/vite.config.ts +38 -38
  204. package/adtec-core-package/adtec-core-package.css +0 -1
  205. package/adtec-core-package/adtec-core-package.js +0 -41364
  206. package/adtec-core-package/adtec-core-package.umd.cjs +0 -79
  207. package/adtec-core-package/favicon.ico +0 -0
@@ -1,87 +1,87 @@
1
- // CSS3 var
2
- @use 'common/var' as *;
3
- @use 'mixins/var' as *;
4
- @use 'mixins/mixins' as *;
5
-
6
- // for better performance do not dynamically change the root variable if you really
7
- // do not need that, since this could introduce recalculation overhead for rendering.
8
- // https://lisilinhart.info/posts/css-variables-performance/
9
-
10
- // common
11
- :root {
12
- @include set-css-var-value('color-white', $color-white);
13
- @include set-css-var-value('color-black', $color-black);
14
-
15
- // get rgb
16
- @each $type in (primary, success, warning, danger, error, info) {
17
- @include set-css-color-rgb($type);
18
- }
19
-
20
- // Typography
21
- @include set-component-css-var('font-size', $font-size);
22
- @include set-component-css-var('font-family', $font-family);
23
-
24
- @include set-css-var-value('font-weight-primary', 500);
25
- @include set-css-var-value('font-line-height-primary', 24px);
26
-
27
- // z-index --el-index-#{$type}
28
- @include set-component-css-var('index', $z-index);
29
-
30
- // --el-border-radius-#{$type}
31
- @include set-component-css-var('border-radius', $border-radius);
32
-
33
- // Transition
34
- // refer to this website to get the bezier motion function detail
35
- // https://cubic-bezier.com/#p1,p2,p3,p4 (change px as your function parameter)
36
- @include set-component-css-var('transition-duration', $transition-duration);
37
-
38
- @include set-component-css-var('transition-function', $transition-function);
39
- @include set-component-css-var('transition', $transition);
40
-
41
- // common component size
42
- @include set-component-css-var('component-size', $common-component-size);
43
- }
44
-
45
- // for light
46
- :root {
47
- color-scheme: light;
48
-
49
- // --el-color-#{$type}
50
- // --el-color-#{$type}-light-{$i}
51
- @each $type in (primary, success, warning, danger, error, info) {
52
- @include set-css-color-type($colors, $type);
53
- }
54
-
55
- // color-scheme
56
- // Background --el-bg-color-#{$type}
57
- @include set-component-css-var('bg-color', $bg-color);
58
- // --el-text-color-#{$type}
59
- @include set-component-css-var('text-color', $text-color);
60
- // --el-border-color-#{$type}
61
- @include set-component-css-var('border-color', $border-color);
62
- // Fill --el-fill-color-#{$type}
63
- @include set-component-css-var('fill-color', $fill-color);
64
-
65
- // Box-shadow
66
- // --el-box-shadow-#{$type}
67
- @include set-component-css-var('box-shadow', $box-shadow);
68
- // Disable base
69
- @include set-component-css-var('disabled', $disabled);
70
-
71
- // overlay & mask
72
- @include set-component-css-var('overlay-color', $overlay-color);
73
- @include set-component-css-var('mask-color', $mask-color);
74
-
75
- // Border
76
- @include set-css-var-value('border-width', $border-width);
77
- @include set-css-var-value('border-style', $border-style);
78
- @include set-css-var-value('border-color-hover', $border-color-hover);
79
- @include set-css-var-value(
80
- 'border',
81
- getCssVar('border-width') getCssVar('border-style')
82
- getCssVar('border-color')
83
- );
84
-
85
- // Svg
86
- @include css-var-from-global('svg-monochrome-grey', 'border-color');
87
- }
1
+ // CSS3 var
2
+ @use 'common/var' as *;
3
+ @use 'mixins/var' as *;
4
+ @use 'mixins/mixins' as *;
5
+
6
+ // for better performance do not dynamically change the root variable if you really
7
+ // do not need that, since this could introduce recalculation overhead for rendering.
8
+ // https://lisilinhart.info/posts/css-variables-performance/
9
+
10
+ // common
11
+ :root {
12
+ @include set-css-var-value('color-white', $color-white);
13
+ @include set-css-var-value('color-black', $color-black);
14
+
15
+ // get rgb
16
+ @each $type in (primary, success, warning, danger, error, info) {
17
+ @include set-css-color-rgb($type);
18
+ }
19
+
20
+ // Typography
21
+ @include set-component-css-var('font-size', $font-size);
22
+ @include set-component-css-var('font-family', $font-family);
23
+
24
+ @include set-css-var-value('font-weight-primary', 500);
25
+ @include set-css-var-value('font-line-height-primary', 24px);
26
+
27
+ // z-index --el-index-#{$type}
28
+ @include set-component-css-var('index', $z-index);
29
+
30
+ // --el-border-radius-#{$type}
31
+ @include set-component-css-var('border-radius', $border-radius);
32
+
33
+ // Transition
34
+ // refer to this website to get the bezier motion function detail
35
+ // https://cubic-bezier.com/#p1,p2,p3,p4 (change px as your function parameter)
36
+ @include set-component-css-var('transition-duration', $transition-duration);
37
+
38
+ @include set-component-css-var('transition-function', $transition-function);
39
+ @include set-component-css-var('transition', $transition);
40
+
41
+ // common component size
42
+ @include set-component-css-var('component-size', $common-component-size);
43
+ }
44
+
45
+ // for light
46
+ :root {
47
+ color-scheme: light;
48
+
49
+ // --el-color-#{$type}
50
+ // --el-color-#{$type}-light-{$i}
51
+ @each $type in (primary, success, warning, danger, error, info) {
52
+ @include set-css-color-type($colors, $type);
53
+ }
54
+
55
+ // color-scheme
56
+ // Background --el-bg-color-#{$type}
57
+ @include set-component-css-var('bg-color', $bg-color);
58
+ // --el-text-color-#{$type}
59
+ @include set-component-css-var('text-color', $text-color);
60
+ // --el-border-color-#{$type}
61
+ @include set-component-css-var('border-color', $border-color);
62
+ // Fill --el-fill-color-#{$type}
63
+ @include set-component-css-var('fill-color', $fill-color);
64
+
65
+ // Box-shadow
66
+ // --el-box-shadow-#{$type}
67
+ @include set-component-css-var('box-shadow', $box-shadow);
68
+ // Disable base
69
+ @include set-component-css-var('disabled', $disabled);
70
+
71
+ // overlay & mask
72
+ @include set-component-css-var('overlay-color', $overlay-color);
73
+ @include set-component-css-var('mask-color', $mask-color);
74
+
75
+ // Border
76
+ @include set-css-var-value('border-width', $border-width);
77
+ @include set-css-var-value('border-style', $border-style);
78
+ @include set-css-var-value('border-color-hover', $border-color-hover);
79
+ @include set-css-var-value(
80
+ 'border',
81
+ getCssVar('border-width') getCssVar('border-style')
82
+ getCssVar('border-color')
83
+ );
84
+
85
+ // Svg
86
+ @include css-var-from-global('svg-monochrome-grey', 'border-color');
87
+ }
@@ -1,40 +1,40 @@
1
- @use 'mixins/mixins' as *;
2
- @use 'common/var' as *;
3
-
4
- @mixin showScrollbar {
5
- @include b(virtual-scrollbar) {
6
- opacity: 1;
7
- }
8
- }
9
-
10
- @include b(vl) {
11
- @include e(wrapper) {
12
- position: relative;
13
- &:hover {
14
- @include showScrollbar();
15
- }
16
- &.always-on {
17
- @include showScrollbar();
18
- }
19
- }
20
- }
21
-
22
- .#{$namespace}-vl__window {
23
- scrollbar-width: none;
24
- &::-webkit-scrollbar {
25
- display: none;
26
- }
27
- }
28
- @include b(virtual-scrollbar) {
29
- opacity: 0;
30
- transition: opacity 340ms ease-out;
31
- &.always-on {
32
- opacity: 1;
33
- }
34
- }
35
-
36
- @include b(vg) {
37
- @include e(wrapper) {
38
- position: relative;
39
- }
40
- }
1
+ @use 'mixins/mixins' as *;
2
+ @use 'common/var' as *;
3
+
4
+ @mixin showScrollbar {
5
+ @include b(virtual-scrollbar) {
6
+ opacity: 1;
7
+ }
8
+ }
9
+
10
+ @include b(vl) {
11
+ @include e(wrapper) {
12
+ position: relative;
13
+ &:hover {
14
+ @include showScrollbar();
15
+ }
16
+ &.always-on {
17
+ @include showScrollbar();
18
+ }
19
+ }
20
+ }
21
+
22
+ .#{$namespace}-vl__window {
23
+ scrollbar-width: none;
24
+ &::-webkit-scrollbar {
25
+ display: none;
26
+ }
27
+ }
28
+ @include b(virtual-scrollbar) {
29
+ opacity: 0;
30
+ transition: opacity 340ms ease-out;
31
+ &.always-on {
32
+ opacity: 1;
33
+ }
34
+ }
35
+
36
+ @include b(vg) {
37
+ @include e(wrapper) {
38
+ position: relative;
39
+ }
40
+ }
@@ -1,93 +1,93 @@
1
- /**
2
- * Create by丁盼
3
- * 说明: v-keydown
4
- * 创建时间: 2024/12/12 15:51
5
- * 修改时间: 2024/12/12 15:51
6
- */
7
- import { useEventBus } from '@vueuse/core'
8
- const vKeydown = {
9
- beforeMount: (el: HTMLElement) => {
10
- el.addEventListener('keydown', (e) => {
11
- if (e.key === 'Tab') {
12
- const el = e.target as HTMLElement
13
- if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
14
- //查找上级DIV 节点 取消编辑
15
- let b = true
16
- let i = 0
17
- let parent: any = el
18
- while (b) {
19
- parent = parent.parentElement
20
- if (parent.className.indexOf('el-table-column-edit') > -1) {
21
- b = false
22
- } else {
23
- i++
24
- if (i > 5) {
25
- b = false
26
- }
27
- }
28
- }
29
- const bus = useEventBus<string>(parent.id)
30
- bus.emit()
31
- //寻找下一个编辑的单元格
32
- //找到el-table__cell' 节点
33
- b = true
34
- i = 0
35
- while (b) {
36
- parent = parent.parentElement
37
- if (parent.className.indexOf('el-table__cell') > -1) {
38
- b = false
39
- } else {
40
- i++
41
- if (i > 5) {
42
- b = false
43
- }
44
- }
45
- }
46
- b = true
47
- i = 0
48
- while (b) {
49
- if (parent.nextElementSibling) {
50
- const input = parent.nextElementSibling.getElementsByClassName('el-table-column-edit')
51
- if (input.length > 0) {
52
- setTimeout(() => {
53
- input[0].click()
54
- }, 10)
55
- b = false
56
- e.stopPropagation()
57
- return false
58
- } else {
59
- parent = parent.nextElementSibling
60
- i++
61
- if (i > 5) {
62
- b = false
63
- }
64
- }
65
- } else {
66
- b = false
67
- }
68
- }
69
- //如果当前行结束判断下一行数据
70
- const tr = parent.parentNode.nextElementSibling
71
- try {
72
- for (let j = 0; j < tr.children.length; j++) {
73
- const input = tr.children[j].getElementsByClassName('el-table-column-edit')
74
- if (input.length > 0) {
75
- setTimeout(() => {
76
- input[0].click()
77
- e.stopPropagation()
78
- }, 10)
79
- break
80
- }
81
- }
82
- } catch {
83
- /* empty */
84
- }
85
- }
86
- }
87
- })
88
- },
89
- unmounted: (el: HTMLElement) => {
90
- el.removeEventListener('keydown', () => {})
91
- },
92
- }
93
- export default vKeydown
1
+ /**
2
+ * Create by丁盼
3
+ * 说明: v-keydown
4
+ * 创建时间: 2024/12/12 15:51
5
+ * 修改时间: 2024/12/12 15:51
6
+ */
7
+ import { useEventBus } from '@vueuse/core'
8
+ const vKeydown = {
9
+ beforeMount: (el: HTMLElement) => {
10
+ el.addEventListener('keydown', (e) => {
11
+ if (e.key === 'Tab') {
12
+ const el = e.target as HTMLElement
13
+ if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
14
+ //查找上级DIV 节点 取消编辑
15
+ let b = true
16
+ let i = 0
17
+ let parent: any = el
18
+ while (b) {
19
+ parent = parent.parentElement
20
+ if (parent.className.indexOf('el-table-column-edit') > -1) {
21
+ b = false
22
+ } else {
23
+ i++
24
+ if (i > 5) {
25
+ b = false
26
+ }
27
+ }
28
+ }
29
+ const bus = useEventBus<string>(parent.id)
30
+ bus.emit()
31
+ //寻找下一个编辑的单元格
32
+ //找到el-table__cell' 节点
33
+ b = true
34
+ i = 0
35
+ while (b) {
36
+ parent = parent.parentElement
37
+ if (parent.className.indexOf('el-table__cell') > -1) {
38
+ b = false
39
+ } else {
40
+ i++
41
+ if (i > 5) {
42
+ b = false
43
+ }
44
+ }
45
+ }
46
+ b = true
47
+ i = 0
48
+ while (b) {
49
+ if (parent.nextElementSibling) {
50
+ const input = parent.nextElementSibling.getElementsByClassName('el-table-column-edit')
51
+ if (input.length > 0) {
52
+ setTimeout(() => {
53
+ input[0].click()
54
+ }, 10)
55
+ b = false
56
+ e.stopPropagation()
57
+ return false
58
+ } else {
59
+ parent = parent.nextElementSibling
60
+ i++
61
+ if (i > 5) {
62
+ b = false
63
+ }
64
+ }
65
+ } else {
66
+ b = false
67
+ }
68
+ }
69
+ //如果当前行结束判断下一行数据
70
+ const tr = parent.parentNode.nextElementSibling
71
+ try {
72
+ for (let j = 0; j < tr.children.length; j++) {
73
+ const input = tr.children[j].getElementsByClassName('el-table-column-edit')
74
+ if (input.length > 0) {
75
+ setTimeout(() => {
76
+ input[0].click()
77
+ e.stopPropagation()
78
+ }, 10)
79
+ break
80
+ }
81
+ }
82
+ } catch {
83
+ /* empty */
84
+ }
85
+ }
86
+ }
87
+ })
88
+ },
89
+ unmounted: (el: HTMLElement) => {
90
+ el.removeEventListener('keydown', () => {})
91
+ },
92
+ }
93
+ export default vKeydown
@@ -1,76 +1,79 @@
1
- import { storeToRefs } from 'pinia'
2
- import { ElMessage } from 'element-plus'
3
- import SysDictCacheApi from '../api/SysDictCacheApi'
4
- import type { ISysDictDataCacheVo } from '../interface/ISysDictDataCacheVo'
5
- import { dictStore } from '../stores/dictStore'
6
-
7
- export default function useDictHooks(dictTypes?: string[]) {
8
- const dictStores = dictStore()
9
- const { dictMap, dictDefaultValueMap, dictDataMap } = storeToRefs(dictStores)
10
- const getDict = async (dictTypes: string[]) => {
11
- try {
12
- if (!dictTypes || !dictTypes.length) return
13
- // 判断是否存在缓存数据,如果存在则不请求接口
14
- const dictKeySet = new Set(Object.keys(dictMap.value))
15
- const uncachedDictTypes = dictTypes.filter((dictType) => !dictKeySet.has(dictType))
16
- if (!uncachedDictTypes.length) return
17
- const data = await SysDictCacheApi.batchGetSysDictDataCacheVo(uncachedDictTypes)
18
- dictMap.value = { ...dictMap.value, ...data }
19
- // 获取默认值
20
- Object.keys(data).forEach((item: string) => {
21
- findDefaultValue(data[item], item)
22
- const dataMap = new Map<string, ISysDictDataCacheVo>()
23
- packageDictDataMap(dataMap, data[item])
24
- dictDataMap.value.set(item, dataMap)
25
- })
26
- } catch (error: any) {
27
- ElMessage.error(error.msg || error.message)
28
- }
29
- }
30
-
31
- const packageDictDataMap = async (
32
- map: Map<string, ISysDictDataCacheVo>,
33
- list?: ISysDictDataCacheVo[],
34
- ) => {
35
- if (list && list.length) {
36
- list.forEach((item: ISysDictDataCacheVo) => {
37
- map.set(item.value, { ...item, ...{ children: undefined } })
38
- packageDictDataMap(map, item.children)
39
- })
40
- }
41
- }
42
-
43
- const findDefaultValue = async (list: ISysDictDataCacheVo[], type: string) => {
44
- const find = getDefaultValue(list)
45
- find && dictDefaultValueMap.value.set(type, find)
46
- }
47
-
48
- const getDefaultValue = (list?: ISysDictDataCacheVo[]): ISysDictDataCacheVo | undefined => {
49
- if (list && list.length) {
50
- const find = list.find((item: ISysDictDataCacheVo) => item.isDefault === '1')
51
- if (find) return find
52
- for (const iSysDictDataCacheVo of list) {
53
- const res = getDefaultValue(iSysDictDataCacheVo.children)
54
- if (res) return res
55
- }
56
- }
57
- }
58
-
59
- const getDictName = (value?: string, dictType?: string) => {
60
- return dictDataMap.value.get(dictType!)?.get(value!)?.label || value
61
- }
62
-
63
- const getDictData = (value: string, dictType: string) => {
64
- return dictDataMap.value.get(dictType)?.get(value)
65
- }
66
- if (dictTypes && dictTypes.length) {
67
- getDict(dictTypes).then(() => {})
68
- }
69
- return {
70
- dictMap,
71
- dictDefaultValueMap,
72
- getDict,
73
- getDictName,
74
- getDictData,
75
- }
76
- }
1
+ import { ElMessage } from 'element-plus'
2
+ import SysDictCacheApi from '../api/SysDictCacheApi'
3
+ import type { ISysDictDataCacheVo } from '../interface/ISysDictDataCacheVo'
4
+ import { type dictDataMapVoType, dictStore } from '../stores/dictStore'
5
+ import { computed, toRefs } from 'vue'
6
+
7
+ export default function useDictHooks(dictTypes?: string[]) {
8
+ const dictStores = dictStore()
9
+ const getDict = async (dictTypes?: string[]) => {
10
+ try {
11
+ if (!dictTypes || !dictTypes.length) return
12
+ //判断是否存在缓存数据,如果存在则不请求接口
13
+ const dictKeySet = new Set(Object.keys(dictStores.dictMap))
14
+ const uncachedDictTypes = dictTypes.filter((dictType) => !dictKeySet.has(dictType))
15
+ if (!uncachedDictTypes.length) return
16
+ const data = await SysDictCacheApi.batchGetSysDictDataCacheVo(dictTypes)
17
+ dictStores.dictMap = { ...dictStores.dictMap, ...data }
18
+ // 获取默认值
19
+ Object.keys(data).forEach((item: string) => {
20
+ findDefaultValue(data[item], item)
21
+ const dataMap: dictDataMapVoType = {}
22
+ packageDictDataMap(dataMap, data[item])
23
+ dictStores.dictDataMap[item] = dataMap
24
+ })
25
+ } catch (error: any) {
26
+ ElMessage.error(error.msg || error.message)
27
+ }
28
+ }
29
+
30
+ const packageDictDataMap = async (map: dictDataMapVoType, list?: ISysDictDataCacheVo[]) => {
31
+ if (list && list.length) {
32
+ list.forEach((item: ISysDictDataCacheVo) => {
33
+ map[item.value] = { ...item, ...{ children: undefined } }
34
+ packageDictDataMap(map, item.children)
35
+ })
36
+ }
37
+ }
38
+
39
+ const findDefaultValue = async (list: ISysDictDataCacheVo[], type: string) => {
40
+ const find = getDefaultValue(list)
41
+ if (find) {
42
+ dictStores.dictDefaultValueMap[type] = find
43
+ }
44
+ }
45
+
46
+ const getDefaultValue = (list?: ISysDictDataCacheVo[]): ISysDictDataCacheVo | undefined => {
47
+ if (list && list.length) {
48
+ const find = list.find((item: ISysDictDataCacheVo) => item.isDefault === '1')
49
+ if (find) return find
50
+ for (const iSysDictDataCacheVo of list) {
51
+ const res = getDefaultValue(iSysDictDataCacheVo.children)
52
+ if (res) return res
53
+ }
54
+ }
55
+ }
56
+
57
+ const getDictName = (value?: string, dictType?: string) => {
58
+ if (dictStores.dictDataMap[dictType!]) {
59
+ return dictStores.dictDataMap[dictType!][value!]?.label || value
60
+ }
61
+ return value
62
+ }
63
+
64
+ const getDictData = (value: string, dictType: string) => {
65
+ return dictStores.dictDataMap[dictType!][value!]
66
+ }
67
+ if (dictTypes && dictTypes.length) {
68
+ getDict(dictTypes).then(() => {
69
+ })
70
+ }
71
+
72
+ return {
73
+ dictMap: computed(() => dictStores.dictMap),
74
+ dictDefaultValueMap: computed(() => dictStores.dictDefaultValueMap),
75
+ getDict,
76
+ getDictName,
77
+ getDictData
78
+ }
79
+ }