adtec-core-package 0.0.2 → 0.0.4

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 (164) hide show
  1. package/package.json +10 -4
  2. package/src/App.vue +0 -3
  3. package/src/assets/base.css +0 -86
  4. package/src/assets/main.css +0 -35
  5. package/src/components/ElFlex/ElFlex.vue +297 -0
  6. package/src/components/OperationAuth/operationAuth.vue +26 -0
  7. package/src/components/Search/ElIconSearch.vue +239 -0
  8. package/src/components/Search/ElSearch.vue +132 -0
  9. package/src/components/Title/ElTitle.vue +49 -0
  10. package/src/components/icon/ElIconBtn.vue +182 -0
  11. package/src/components/icon/ElIcons.vue +38 -0
  12. package/src/config/ElementPlusConfig.ts +95 -0
  13. package/src/css/elementUI/affix.scss +7 -0
  14. package/src/css/elementUI/alert.scss +115 -0
  15. package/src/css/elementUI/anchor-link.scss +41 -0
  16. package/src/css/elementUI/anchor.scss +88 -0
  17. package/src/css/elementUI/aside.scss +8 -0
  18. package/src/css/elementUI/autocomplete.scss +89 -0
  19. package/src/css/elementUI/avatar.scss +55 -0
  20. package/src/css/elementUI/backtop.scss +29 -0
  21. package/src/css/elementUI/badge.scss +58 -0
  22. package/src/css/elementUI/base.scss +3 -0
  23. package/src/css/elementUI/breadcrumb-item.scss +0 -0
  24. package/src/css/elementUI/breadcrumb.scss +62 -0
  25. package/src/css/elementUI/button-group.scss +80 -0
  26. package/src/css/elementUI/button.scss +304 -0
  27. package/src/css/elementUI/calendar.scss +80 -0
  28. package/src/css/elementUI/card.scss +45 -0
  29. package/src/css/elementUI/carousel-item.scss +58 -0
  30. package/src/css/elementUI/carousel.scss +188 -0
  31. package/src/css/elementUI/cascader-panel.scss +138 -0
  32. package/src/css/elementUI/cascader.scss +230 -0
  33. package/src/css/elementUI/check-tag.scss +60 -0
  34. package/src/css/elementUI/checkbox-button.scss +140 -0
  35. package/src/css/elementUI/checkbox-group.scss +7 -0
  36. package/src/css/elementUI/checkbox.scss +298 -0
  37. package/src/css/elementUI/col.scss +48 -0
  38. package/src/css/elementUI/collapse-item.scss +0 -0
  39. package/src/css/elementUI/collapse-transition.scss +0 -0
  40. package/src/css/elementUI/collapse.scss +70 -0
  41. package/src/css/elementUI/color/index.scss +20 -0
  42. package/src/css/elementUI/color-picker.scss +392 -0
  43. package/src/css/elementUI/common/popup.scss +47 -0
  44. package/src/css/elementUI/common/transition.scss +122 -0
  45. package/src/css/elementUI/common/var.scss +1549 -0
  46. package/src/css/elementUI/config-provider.scss +0 -0
  47. package/src/css/elementUI/container.scss +14 -0
  48. package/src/css/elementUI/dark/css-vars.scss +39 -0
  49. package/src/css/elementUI/dark/var.scss +222 -0
  50. package/src/css/elementUI/date-picker/date-picker.scss +110 -0
  51. package/src/css/elementUI/date-picker/date-range-picker.scss +113 -0
  52. package/src/css/elementUI/date-picker/date-table.scss +158 -0
  53. package/src/css/elementUI/date-picker/month-table.scss +112 -0
  54. package/src/css/elementUI/date-picker/picker-panel.scss +131 -0
  55. package/src/css/elementUI/date-picker/picker.scss +219 -0
  56. package/src/css/elementUI/date-picker/time-picker.scss +90 -0
  57. package/src/css/elementUI/date-picker/time-range-picker.scss +33 -0
  58. package/src/css/elementUI/date-picker/time-spinner.scss +111 -0
  59. package/src/css/elementUI/date-picker/year-table.scss +108 -0
  60. package/src/css/elementUI/date-picker.scss +9 -0
  61. package/src/css/elementUI/descriptions-item.scss +73 -0
  62. package/src/css/elementUI/descriptions.scss +152 -0
  63. package/src/css/elementUI/dialog.scss +199 -0
  64. package/src/css/elementUI/display.scss +12 -0
  65. package/src/css/elementUI/divider.scss +48 -0
  66. package/src/css/elementUI/drawer.scss +164 -0
  67. package/src/css/elementUI/dropdown-item.scss +0 -0
  68. package/src/css/elementUI/dropdown-menu.scss +0 -0
  69. package/src/css/elementUI/dropdown.scss +208 -0
  70. package/src/css/elementUI/empty.scss +49 -0
  71. package/src/css/elementUI/footer.scss +12 -0
  72. package/src/css/elementUI/form-item.scss +0 -0
  73. package/src/css/elementUI/form.scss +243 -0
  74. package/src/css/elementUI/header.scss +12 -0
  75. package/src/css/elementUI/icon.scss +45 -0
  76. package/src/css/elementUI/image-viewer.scss +139 -0
  77. package/src/css/elementUI/image.scss +49 -0
  78. package/src/css/elementUI/index.scss +110 -0
  79. package/src/css/elementUI/infinite-scroll.scss +0 -0
  80. package/src/css/elementUI/input-number.scss +178 -0
  81. package/src/css/elementUI/input.scss +478 -0
  82. package/src/css/elementUI/link.scss +90 -0
  83. package/src/css/elementUI/loading.scss +104 -0
  84. package/src/css/elementUI/main.scss +14 -0
  85. package/src/css/elementUI/mention.scss +88 -0
  86. package/src/css/elementUI/menu-item-group.scss +0 -0
  87. package/src/css/elementUI/menu-item.scss +0 -0
  88. package/src/css/elementUI/menu.scss +339 -0
  89. package/src/css/elementUI/message-box.scss +213 -0
  90. package/src/css/elementUI/message.scss +98 -0
  91. package/src/css/elementUI/mixins/_button.scss +165 -0
  92. package/src/css/elementUI/mixins/_col.scss +33 -0
  93. package/src/css/elementUI/mixins/_var.scss +67 -0
  94. package/src/css/elementUI/mixins/config.scss +5 -0
  95. package/src/css/elementUI/mixins/function.scss +88 -0
  96. package/src/css/elementUI/mixins/mixins.scss +237 -0
  97. package/src/css/elementUI/mixins/utils.scss +39 -0
  98. package/src/css/elementUI/notification.scss +104 -0
  99. package/src/css/elementUI/option-group.scss +33 -0
  100. package/src/css/elementUI/option.scss +71 -0
  101. package/src/css/elementUI/overlay.scss +17 -0
  102. package/src/css/elementUI/page-header.scss +60 -0
  103. package/src/css/elementUI/pagination.scss +238 -0
  104. package/src/css/elementUI/popconfirm.scss +16 -0
  105. package/src/css/elementUI/popover.scss +61 -0
  106. package/src/css/elementUI/popper.scss +106 -0
  107. package/src/css/elementUI/progress.scss +179 -0
  108. package/src/css/elementUI/radio-button.scss +169 -0
  109. package/src/css/elementUI/radio-group.scss +9 -0
  110. package/src/css/elementUI/radio.scss +215 -0
  111. package/src/css/elementUI/rate.scss +108 -0
  112. package/src/css/elementUI/reset.scss +98 -0
  113. package/src/css/elementUI/result.scss +57 -0
  114. package/src/css/elementUI/row.scss +35 -0
  115. package/src/css/elementUI/scrollbar.scss +97 -0
  116. package/src/css/elementUI/segmented.scss +183 -0
  117. package/src/css/elementUI/select-dropdown-v2.scss +1 -0
  118. package/src/css/elementUI/select-dropdown.scss +57 -0
  119. package/src/css/elementUI/select-v2.scss +4 -0
  120. package/src/css/elementUI/select.scss +253 -0
  121. package/src/css/elementUI/skeleton-item.scss +83 -0
  122. package/src/css/elementUI/skeleton.scss +44 -0
  123. package/src/css/elementUI/slider.scss +212 -0
  124. package/src/css/elementUI/space.scss +20 -0
  125. package/src/css/elementUI/spinner.scss +43 -0
  126. package/src/css/elementUI/statistic.scss +35 -0
  127. package/src/css/elementUI/step.scss +316 -0
  128. package/src/css/elementUI/steps.scss +21 -0
  129. package/src/css/elementUI/sub-menu.scss +0 -0
  130. package/src/css/elementUI/switch.scss +300 -0
  131. package/src/css/elementUI/tab-pane.scss +0 -0
  132. package/src/css/elementUI/table-column.scss +98 -0
  133. package/src/css/elementUI/table-v2.scss +236 -0
  134. package/src/css/elementUI/table.scss +694 -0
  135. package/src/css/elementUI/tabs.scss +659 -0
  136. package/src/css/elementUI/tag.scss +181 -0
  137. package/src/css/elementUI/text.scss +51 -0
  138. package/src/css/elementUI/time-picker.scss +5 -0
  139. package/src/css/elementUI/time-select.scss +37 -0
  140. package/src/css/elementUI/timeline-item.scss +84 -0
  141. package/src/css/elementUI/timeline.scss +46 -0
  142. package/src/css/elementUI/tooltip-v2.scss +95 -0
  143. package/src/css/elementUI/tooltip.scss +0 -0
  144. package/src/css/elementUI/tour.scss +187 -0
  145. package/src/css/elementUI/transfer.scss +203 -0
  146. package/src/css/elementUI/tree-select.scss +41 -0
  147. package/src/css/elementUI/tree.scss +134 -0
  148. package/src/css/elementUI/upload.scss +654 -0
  149. package/src/css/elementUI/var.scss +87 -0
  150. package/src/css/elementUI/virtual-list.scss +40 -0
  151. package/src/interface/ISysMenuDataVo.ts +22 -0
  152. package/src/interface/ISysMenuInfoVo.ts +83 -0
  153. package/src/interface/ISysMenuOperationVo.ts +21 -0
  154. package/src/interface/enum/FlexEnum.ts +85 -0
  155. package/src/views/HomeView.vue +2 -2
  156. package/vite.config.ts +2 -9
  157. package/src/components/HelloWorld.vue +0 -41
  158. package/src/components/TheWelcome.vue +0 -94
  159. package/src/components/WelcomeItem.vue +0 -87
  160. package/src/components/icons/IconCommunity.vue +0 -7
  161. package/src/components/icons/IconDocumentation.vue +0 -7
  162. package/src/components/icons/IconEcosystem.vue +0 -7
  163. package/src/components/icons/IconSupport.vue +0 -7
  164. package/src/components/icons/IconTooling.vue +0 -19
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "adtec-core-package",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "type": "module",
6
- "main": "dist/adtec-core-package.umd.cjs",
7
6
  "scripts": {
8
7
  "dev": "vite",
9
8
  "build": "run-p type-check \"build-only {@}\" --",
@@ -16,7 +15,12 @@
16
15
  "dependencies": {
17
16
  "pinia": "^2.3.0",
18
17
  "vue": "^3.5.13",
19
- "vue-router": "^4.5.0"
18
+ "vue-router": "^4.5.0",
19
+ "element-plus": "^2.8.7",
20
+ "scss": "^0.2.4",
21
+ "scss-loader": "^0.0.1",
22
+ "axios": "^1.7.7",
23
+ "@element-plus/icons-vue": "^2.3.1"
20
24
  },
21
25
  "devDependencies": {
22
26
  "@tsconfig/node22": "^22.0.0",
@@ -27,13 +31,15 @@
27
31
  "@vue/eslint-config-typescript": "^14.1.3",
28
32
  "@vue/tsconfig": "^0.7.0",
29
33
  "eslint": "^9.14.0",
34
+
30
35
  "eslint-plugin-vue": "^9.30.0",
31
36
  "npm-run-all2": "^7.0.2",
32
37
  "prettier": "^3.3.3",
33
38
  "typescript": "~5.6.3",
34
39
  "vite": "^6.0.5",
35
40
  "vite-plugin-vue-devtools": "^7.6.8",
36
- "vue-tsc": "^2.1.10"
41
+ "vue-tsc": "^2.1.10",
42
+ "less": "^4.2.0"
37
43
  },
38
44
  "description": "This template should help get you started developing with Vue 3 in Vite.",
39
45
  "main": "eslint.config.js",
package/src/App.vue CHANGED
@@ -1,6 +1,5 @@
1
1
  <script setup lang="ts">
2
2
  import { RouterLink, RouterView } from 'vue-router'
3
- import HelloWorld from './components/HelloWorld.vue'
4
3
  </script>
5
4
 
6
5
  <template>
@@ -8,8 +7,6 @@ import HelloWorld from './components/HelloWorld.vue'
8
7
  <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
9
8
 
10
9
  <div class="wrapper">
11
- <HelloWorld msg="You did it!" />
12
-
13
10
  <nav>
14
11
  <RouterLink to="/">Home</RouterLink>
15
12
  <RouterLink to="/about">About</RouterLink>
@@ -1,86 +0,0 @@
1
- /* color palette from <https://github.com/vuejs/theme> */
2
- :root {
3
- --vt-c-white: #ffffff;
4
- --vt-c-white-soft: #f8f8f8;
5
- --vt-c-white-mute: #f2f2f2;
6
-
7
- --vt-c-black: #181818;
8
- --vt-c-black-soft: #222222;
9
- --vt-c-black-mute: #282828;
10
-
11
- --vt-c-indigo: #2c3e50;
12
-
13
- --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14
- --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15
- --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16
- --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17
-
18
- --vt-c-text-light-1: var(--vt-c-indigo);
19
- --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20
- --vt-c-text-dark-1: var(--vt-c-white);
21
- --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22
- }
23
-
24
- /* semantic color variables for this project */
25
- :root {
26
- --color-background: var(--vt-c-white);
27
- --color-background-soft: var(--vt-c-white-soft);
28
- --color-background-mute: var(--vt-c-white-mute);
29
-
30
- --color-border: var(--vt-c-divider-light-2);
31
- --color-border-hover: var(--vt-c-divider-light-1);
32
-
33
- --color-heading: var(--vt-c-text-light-1);
34
- --color-text: var(--vt-c-text-light-1);
35
-
36
- --section-gap: 160px;
37
- }
38
-
39
- @media (prefers-color-scheme: dark) {
40
- :root {
41
- --color-background: var(--vt-c-black);
42
- --color-background-soft: var(--vt-c-black-soft);
43
- --color-background-mute: var(--vt-c-black-mute);
44
-
45
- --color-border: var(--vt-c-divider-dark-2);
46
- --color-border-hover: var(--vt-c-divider-dark-1);
47
-
48
- --color-heading: var(--vt-c-text-dark-1);
49
- --color-text: var(--vt-c-text-dark-2);
50
- }
51
- }
52
-
53
- *,
54
- *::before,
55
- *::after {
56
- box-sizing: border-box;
57
- margin: 0;
58
- font-weight: normal;
59
- }
60
-
61
- body {
62
- min-height: 100vh;
63
- color: var(--color-text);
64
- background: var(--color-background);
65
- transition:
66
- color 0.5s,
67
- background-color 0.5s;
68
- line-height: 1.6;
69
- font-family:
70
- Inter,
71
- -apple-system,
72
- BlinkMacSystemFont,
73
- 'Segoe UI',
74
- Roboto,
75
- Oxygen,
76
- Ubuntu,
77
- Cantarell,
78
- 'Fira Sans',
79
- 'Droid Sans',
80
- 'Helvetica Neue',
81
- sans-serif;
82
- font-size: 15px;
83
- text-rendering: optimizeLegibility;
84
- -webkit-font-smoothing: antialiased;
85
- -moz-osx-font-smoothing: grayscale;
86
- }
@@ -1,35 +0,0 @@
1
- @import './base.css';
2
-
3
- #app {
4
- max-width: 1280px;
5
- margin: 0 auto;
6
- padding: 2rem;
7
- font-weight: normal;
8
- }
9
-
10
- a,
11
- .green {
12
- text-decoration: none;
13
- color: hsla(160, 100%, 37%, 1);
14
- transition: 0.4s;
15
- padding: 3px;
16
- }
17
-
18
- @media (hover: hover) {
19
- a:hover {
20
- background-color: hsla(160, 100%, 37%, 0.2);
21
- }
22
- }
23
-
24
- @media (min-width: 1024px) {
25
- body {
26
- display: flex;
27
- place-items: center;
28
- }
29
-
30
- #app {
31
- display: grid;
32
- grid-template-columns: 1fr 1fr;
33
- padding: 0 2rem;
34
- }
35
- }
@@ -0,0 +1,297 @@
1
+ <!--创建人 丁盼-->
2
+ <!--说明: ElFlex-->
3
+ <!--创建时间: 2024/9/5 下午3:15-->
4
+ <!--修改时间: 2024/9/5 下午3:15-->
5
+ <template>
6
+ <div :style="getStyleComp" ref="ref_div">
7
+ <slot />
8
+ <div
9
+ draggable="false"
10
+ style="
11
+ position: absolute;
12
+ display: flex;
13
+ align-items: center;
14
+ cursor: pointer;
15
+ user-select: none;
16
+ "
17
+ :style="{
18
+ bottom: bottomComputed,
19
+ right: rightComuted,
20
+ }"
21
+ ref="ref_div_resizable"
22
+ @mousemove="handleMouseMove"
23
+ v-if="resizable"
24
+ >
25
+ <el-icons
26
+ v-if="parent?.props.vertical + '' === 'true'"
27
+ model-value="adtec-upanddownpull"
28
+ style="cursor: pointer; font-size: 32px; color: #cccccc"
29
+ ></el-icons>
30
+ <el-icons
31
+ v-else
32
+ model-value="adtec-aboutpull"
33
+ style="cursor: pointer; font-size: 32px; color: #cccccc"
34
+ ></el-icons>
35
+ </div>
36
+ </div>
37
+ </template>
38
+ <script setup lang="ts">
39
+ import {
40
+ alignItemsEnum,
41
+ flexWrapEnum,
42
+ gapEnum,
43
+ justifyContentEnum,
44
+ } from '@/interface/enum/FlexEnum.ts'
45
+ import { computed, nextTick, onMounted, ref, watch, getCurrentInstance } from 'vue'
46
+ import { useMousePressed } from '@vueuse/core'
47
+ import ElIcons from '@/components/icon/ElIcons.vue'
48
+ const instance = getCurrentInstance()
49
+ const parent = instance?.parent
50
+ const ref_div = ref()
51
+ const ref_div_resizable = ref()
52
+ const { pressed } = useMousePressed({ target: ref_div_resizable })
53
+ const divWidth = ref('')
54
+ const divHeight = ref('')
55
+ const bottomComputed = computed(() => {
56
+ if (parent?.props.vertical + '' === 'true') {
57
+ return '0px'
58
+ } else {
59
+ return '50%'
60
+ }
61
+ })
62
+ const rightComuted = computed(() => {
63
+ if (parent?.props.vertical + '' === 'true') {
64
+ return '50%'
65
+ } else {
66
+ return '0px'
67
+ }
68
+ })
69
+ watch(pressed, (val) => {
70
+ if (!val) {
71
+ document.onmousemove = null
72
+ document.onmouseup = null
73
+ }
74
+ })
75
+ const handleMouseMove = (e: any) => {
76
+ if (pressed.value) {
77
+ const disX = e.clientX - ref_div.value?.offsetLeft
78
+ const disY = e.clientY - ref_div.value?.offsetTop
79
+ const layoutWidth = ref_div.value?.clientWidth
80
+ const layoutHeight = ref_div.value?.clientHeight
81
+ document.onmousemove = (e) => {
82
+ document.body.style.cursor = 'pointer'
83
+ // 鼠标按下并移动的事件
84
+ // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
85
+ const left = e.screenX - disX
86
+ const top = e.clientY - disY
87
+ if (parent?.props.vertical) {
88
+ let after = layoutHeight + top
89
+ after = after <= 8 ? 8 : after
90
+ if (after < parseInt((props.minHeight + '').replace('px', ''))) {
91
+ after = parseInt((props.minHeight + '').replace('px', ''))
92
+ }
93
+ nextTick(() => {
94
+ divHeight.value = after + 'px'
95
+ })
96
+ } else {
97
+ let after = layoutWidth + left
98
+ after = after <= 8 ? 8 : after
99
+ if (after < parseInt((props.minWidth + '').replace('px', ''))) {
100
+ after = parseInt((props.minWidth + '').replace('px', ''))
101
+ }
102
+ nextTick(() => {
103
+ divWidth.value = after + 'px'
104
+ })
105
+ }
106
+ }
107
+ document.onmouseup = () => {
108
+ document.body.style.cursor = 'default'
109
+ document.onmousemove = null
110
+ document.onmouseup = null
111
+ }
112
+ }
113
+ }
114
+ const flexShrinkComp = computed(() => {
115
+ return (divHeight.value + '').indexOf('px') > -1 || (divWidth.value + '').indexOf('px') > -1
116
+ ? '0'
117
+ : 'initial'
118
+ // return (props.height+'').indexOf('px') > -1 || (props.width+'').indexOf('px') > -1 ? '0' : 'initial'
119
+ })
120
+ const heightComp = computed(() => {
121
+ return divHeight.value
122
+ })
123
+ const widthComp = computed(() => {
124
+ return divWidth.value
125
+ })
126
+ const getStyleComp = computed(() => {
127
+ const style = {
128
+ display: 'flex',
129
+ flexDirection: verticalComputed.value ? 'column' : 'row',
130
+ justifyContent: props.justify + '',
131
+ alignItems: props.align + '',
132
+ gap: props.gap + '',
133
+ flexWrap: props.flexWrap + '',
134
+ flexGrow: props.flexGrow ? props.flexGrow : 0,
135
+ height: heightComp.value,
136
+ width: widthComp.value,
137
+ flex: getFlex(),
138
+ overflow: 'auto',
139
+ boxSizing: 'border-box',
140
+ minWidth: props.minWidth ? props.minWidth : '',
141
+ flexShrink: flexShrinkComp.value,
142
+ }
143
+ if (props.resizable) {
144
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
145
+ //@ts-expect-error
146
+ style.position = 'relative'
147
+ }
148
+ return style
149
+ })
150
+
151
+ const getFlex = () => {
152
+ let v = '0 0'
153
+ if ((widthComp.value + '').indexOf('px') > -1) {
154
+ v += ' ' + widthComp.value
155
+ } else {
156
+ v += ' 0'
157
+ }
158
+ if ((heightComp.value + '').indexOf('px') > -1) {
159
+ v += ' ' + heightComp.value
160
+ } else {
161
+ v += ' 0'
162
+ }
163
+ return v
164
+ }
165
+ onMounted(() => {
166
+ divWidth.value = props.width ? props.width + '' : '100%'
167
+ divHeight.value = props.height ? props.height + '' : '100%'
168
+ })
169
+ const verticalComputed = computed(() => {
170
+ if (typeof props.vertical === 'string') {
171
+ return Boolean(props.vertical)
172
+ } else {
173
+ return props.vertical
174
+ }
175
+ })
176
+
177
+ const props = defineProps({
178
+ /**
179
+ * @type boolean|String
180
+ * @default false
181
+ * @description 横向布局
182
+ */
183
+ //@ts-ignore
184
+ vertical: {
185
+ type: [Boolean, String],
186
+ default: false,
187
+ },
188
+ /**
189
+ * @type {"flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly"}
190
+ * @default 'flex-start'
191
+ * @description 横向对齐方式
192
+ */
193
+ justify: {
194
+ type: [justifyContentEnum, String],
195
+ default: 'flex-start',
196
+ validator: (value: string) =>
197
+ [
198
+ 'flex-start',
199
+ 'center',
200
+ 'flex-end',
201
+ 'space-between',
202
+ 'space-around',
203
+ 'space-evenly',
204
+ ].includes(value),
205
+ },
206
+ /**
207
+ * @type {"flex-start" | "center" | "flex-end" }
208
+ * @default 'flex-start'
209
+ * @description 纵向对齐方式
210
+ */
211
+ align: {
212
+ type: [alignItemsEnum, String],
213
+ default: 'flex-start',
214
+ validator: (value: string) => ['flex-start', 'center', 'flex-end'].includes(value),
215
+ },
216
+ /**
217
+ * @type {"8px" | "16px" | "24px" }
218
+ * @description 间距
219
+ */
220
+ gap: {
221
+ type: [gapEnum, String],
222
+ },
223
+ /**
224
+ * @type {"nowrap" | "wrap" | "wrap-reverse" }
225
+ * @default 'nowrap'
226
+ * @description 是否换行
227
+ */
228
+ flexWrap: {
229
+ type: [flexWrapEnum, String],
230
+ default: 'nowrap',
231
+ validator: (value: string) => ['nowrap', 'wrap', 'wrap-reverse'].includes(value),
232
+ },
233
+ /**
234
+ * @type
235
+ * @default 0
236
+ * @description 尺寸
237
+ */
238
+ flexGrow: {
239
+ type: [Number, String],
240
+ default: 0,
241
+ },
242
+ /**
243
+ * @type
244
+ * @default '100%'
245
+ * @description 宽度
246
+ */
247
+ width: {
248
+ type: [String],
249
+ default: '100%',
250
+ },
251
+ /**
252
+ * @type
253
+ * @default '100%'
254
+ * @description 高度
255
+ */
256
+ height: {
257
+ type: [String],
258
+ default: '100%',
259
+ },
260
+ /**
261
+ * @type
262
+ * @default ''
263
+ * @description 最小宽度
264
+ */
265
+ minWidth: {
266
+ type: [String],
267
+ default: '',
268
+ },
269
+ /**
270
+ * @type
271
+ * @default ''
272
+ * @description 最小高度
273
+ */
274
+ minHeigth: {
275
+ type: [String],
276
+ default: '',
277
+ },
278
+ /**
279
+ * @type
280
+ * @default false
281
+ * @description 可拖拽
282
+ */
283
+ resizable: {
284
+ type: [Boolean, String],
285
+ default: false,
286
+ },
287
+ flexShrink: {
288
+ type: [String],
289
+ default: 'initial',
290
+ },
291
+ })
292
+ watch(props, (val) => {
293
+ divWidth.value = val.width + '' ? val.width + '' : '100%'
294
+ divHeight.value = val.height + '' ? val.height + '' : '100%'
295
+ })
296
+ </script>
297
+ <style scoped lang="scss"></style>
@@ -0,0 +1,26 @@
1
+ <!--创建人:丁盼-->
2
+ <!--说明: 操作权限控制组件-->
3
+ <!--创建时间: 2024/8/29 下午2:31-->
4
+ <!--修改时间: 2024/8/29 下午2:31-->
5
+ <template>
6
+ <slot v-if="IsOperationAuth()"></slot>
7
+ </template>
8
+ <script setup lang="ts">
9
+ import { useRoute } from 'vue-router'
10
+ import type { ISysMenuInfoVo } from '@/interface/ISysMenuInfoVo.ts'
11
+ const route = useRoute()
12
+
13
+ const IsOperationAuth = () => {
14
+ const data: ISysMenuInfoVo = route.meta.sysMenuData as ISysMenuInfoVo
15
+ const o = data.operation.find((c) => c.code === props.operCode)
16
+ if (o) {
17
+ return true
18
+ } else {
19
+ return false
20
+ }
21
+ }
22
+ const props = defineProps<{
23
+ operCode: string
24
+ }>()
25
+ </script>
26
+ <style scoped lang="scss"></style>