fit2cloud-ui-plus 0.0.1-beta.1 → 0.0.1-beta.12

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 (208) hide show
  1. package/README.md +61 -9
  2. package/lib/fit2cloud-ui-plus.es.js +553 -866
  3. package/lib/fit2cloud-ui-plus.umd.js +1 -1
  4. package/package.json +9 -12
  5. package/src/components/filter-bar/FuFilter.vue +19 -14
  6. package/src/components/filter-bar/FuFilterBar.vue +16 -11
  7. package/src/components/filter-bar/FuSearchInput.vue +8 -2
  8. package/src/components/filter-bar/filter-components/FuFilterDate.vue +17 -13
  9. package/src/components/filter-bar/filter-components/FuFilterDateTime.vue +16 -13
  10. package/src/components/filter-bar/filter-components/FuFilterSelect.vue +17 -12
  11. package/src/components/filter-bar/index.d.ts +2 -0
  12. package/src/components/filter-bar/index.ts +11 -12
  13. package/src/components/filter-bar/types.d.ts +22 -0
  14. package/src/components/read-write-switch/FuInputRwSwitch.vue +9 -5
  15. package/src/components/read-write-switch/FuReadWriteSwitch.vue +38 -36
  16. package/src/components/read-write-switch/FuSelectRwSwitch.vue +11 -7
  17. package/src/components/read-write-switch/index.d.ts +2 -0
  18. package/src/components/read-write-switch/types.d.ts +4 -0
  19. package/src/components/read-write-switch/types.ts +4 -0
  20. package/src/components/speed-dial/FuSpeedDial.vue +78 -69
  21. package/src/components/speed-dial/FuSpeedDial.vue.d.ts +218 -0
  22. package/src/components/speed-dial/FuSpeedDialActionButton.vue +55 -55
  23. package/src/components/speed-dial/FuSpeedDialActionButton.vue.d.ts +32 -0
  24. package/src/components/speed-dial/FuSpeedDialButton.vue +14 -11
  25. package/src/components/speed-dial/FuSpeedDialButton.vue.d.ts +42 -0
  26. package/src/components/speed-dial/FuSpeedDialItem.vue +9 -15
  27. package/src/components/speed-dial/FuSpeedDialItem.vue.d.ts +12 -0
  28. package/src/components/speed-dial/index.d.ts +2 -0
  29. package/src/components/speed-dial/types.d.ts +8 -0
  30. package/src/components/speed-dial/types.ts +12 -0
  31. package/src/components/split-pane/FuSplitPane.vue +3 -3
  32. package/src/components/split-pane/FuSplitPane.vue.d.ts +59 -0
  33. package/src/components/split-pane/index.d.ts +2 -0
  34. package/src/components/table/FuTable.vue +16 -25
  35. package/src/components/table/FuTableBody.ts +38 -34
  36. package/src/components/table/{table-column-dropdown/FuTableColumnDropdown.vue → FuTableColumnDropdown.vue} +5 -2
  37. package/src/components/table/index.d.ts +2 -0
  38. package/src/components/table/index.ts +11 -7
  39. package/src/components/table/table-column-select/FuTableColumnSelectDialog.vue +15 -20
  40. package/src/components/table/table-column-select/FuTableColumnSelectPopover.vue +12 -11
  41. package/src/components/table/table-column-select/utils.d.ts +8 -0
  42. package/src/components/table/table-column-select/utils.ts +10 -7
  43. package/src/components/table/table-operations/FuTableButton.vue +1 -4
  44. package/src/components/table/table-operations/FuTableMoreButton.vue +5 -3
  45. package/src/components/table/table-operations/FuTableOperations.vue +6 -7
  46. package/src/components/table/types.d.ts +2 -0
  47. package/src/components/table/types.ts +3 -0
  48. package/src/components/tabs/FuTabs.vue +4 -2
  49. package/src/components/tabs/FuTabs.vue.d.ts +54 -0
  50. package/src/components/tabs/index.d.ts +2 -0
  51. package/src/hooks/index.d.ts +3 -0
  52. package/src/hooks/index.ts +2 -0
  53. package/src/hooks/use-global-config/index.d.ts +1 -0
  54. package/src/hooks/use-global-config/index.ts +0 -15
  55. package/src/hooks/use-locale/index.d.ts +14 -0
  56. package/src/hooks/use-size/index.d.ts +5 -0
  57. package/src/hooks/use-size/index.ts +29 -0
  58. package/src/index.d.ts +7 -0
  59. package/src/locale/index.d.ts +10 -0
  60. package/src/locale/lang/en.d.ts +59 -0
  61. package/src/locale/lang/zh-cn.d.ts +59 -0
  62. package/src/locale/lang/zh-tw.d.ts +59 -0
  63. package/src/styles/common/variables.scss +2 -6
  64. package/src/styles/components/filter-bar.scss +3 -3
  65. package/src/styles/components/speed-dial.scss +1 -51
  66. package/src/styles/components/split-pane.scss +1 -1
  67. package/src/styles/components/steps.scss +2 -2
  68. package/src/styles/components/table.scss +3 -5
  69. package/src/styles/components/tabs.scss +1 -1
  70. package/src/styles/index.scss +0 -1
  71. package/src/tools/size.d.ts +4 -0
  72. package/src/tools/size.ts +6 -0
  73. package/src/tools/theme.d.ts +1 -0
  74. package/src/tools/theme.ts +0 -12
  75. package/src/tools/time.d.ts +2 -0
  76. package/src/tools/types.d.ts +8 -0
  77. package/src/tools/types.ts +9 -0
  78. package/src/tools/utils.d.ts +2 -0
  79. package/src/tools/utils.ts +36 -36
  80. package/src/tools/vnode.d.ts +9 -0
  81. package/src/tools/vnode.ts +47 -0
  82. package/types/examples/App.vue.d.ts +2 -0
  83. package/types/examples/components/CodeExample.vue.d.ts +29 -0
  84. package/types/examples/components/DocumentTable.vue.d.ts +14 -0
  85. package/types/examples/components/Markdown.vue.d.ts +12 -0
  86. package/types/examples/layout/components/AppHeader.vue.d.ts +2 -0
  87. package/types/examples/layout/components/Sidebar.vue.d.ts +2 -0
  88. package/types/examples/layout/index.vue.d.ts +2 -0
  89. package/types/examples/main.d.ts +2 -0
  90. package/types/examples/pages/filter-bar/attributes.d.ts +63 -0
  91. package/types/examples/pages/filter-bar/demo/BaseFilterBar.vue.d.ts +2 -0
  92. package/types/examples/pages/filter-bar/demo/SetConditionsDemo.vue.d.ts +2 -0
  93. package/types/examples/pages/filter-bar/demo/SlotDemo.vue.d.ts +2 -0
  94. package/types/examples/pages/filter-bar/index.vue.d.ts +2 -0
  95. package/types/examples/pages/index.d.ts +3 -0
  96. package/types/examples/pages/read-write-switch/attributes.d.ts +63 -0
  97. package/types/examples/pages/read-write-switch/demo/BaseDemo.vue.d.ts +2 -0
  98. package/types/examples/pages/read-write-switch/demo/CustomContentDemo.vue.d.ts +2 -0
  99. package/types/examples/pages/read-write-switch/demo/InputRwSwitchDemo.vue.d.ts +2 -0
  100. package/types/examples/pages/read-write-switch/demo/ReadSwitchDemo.vue.d.ts +2 -0
  101. package/types/examples/pages/read-write-switch/demo/SelectRwSwitchDemo.vue.d.ts +2 -0
  102. package/types/examples/pages/read-write-switch/demo/TableInnerEditDemo.vue.d.ts +2 -0
  103. package/types/examples/pages/read-write-switch/demo/WriteSwitchDemo.vue.d.ts +2 -0
  104. package/types/examples/pages/read-write-switch/index.vue.d.ts +2 -0
  105. package/types/examples/pages/speed-dial/attributes.d.ts +63 -0
  106. package/types/examples/pages/speed-dial/demo/BaseSpeedDial.vue.d.ts +2 -0
  107. package/types/examples/pages/speed-dial/demo/SpeedDialCustom.vue.d.ts +2 -0
  108. package/types/examples/pages/speed-dial/demo/SpeedDialPosition.vue.d.ts +2 -0
  109. package/types/examples/pages/speed-dial/demo/SpeedDialTrigger.vue.d.ts +2 -0
  110. package/types/examples/pages/speed-dial/index.vue.d.ts +2 -0
  111. package/types/examples/pages/split-pane/attributes.d.ts +63 -0
  112. package/types/examples/pages/split-pane/demo/BaseSplit.vue.d.ts +2 -0
  113. package/types/examples/pages/split-pane/demo/CustomResizer.vue.d.ts +2 -0
  114. package/types/examples/pages/split-pane/demo/NestSplit.vue.d.ts +2 -0
  115. package/types/examples/pages/split-pane/demo/ResizerType.vue.d.ts +2 -0
  116. package/types/examples/pages/split-pane/index.vue.d.ts +2 -0
  117. package/types/examples/pages/table/attributes.d.ts +121 -0
  118. package/types/examples/pages/table/demo/BaseTable.vue.d.ts +2 -0
  119. package/types/examples/pages/table/demo/DropdownColumn.vue.d.ts +2 -0
  120. package/types/examples/pages/table/demo/DropdownColumnSlot.vue.d.ts +2 -0
  121. package/types/examples/pages/table/demo/SaveSelectColumn.vue.d.ts +2 -0
  122. package/types/examples/pages/table/demo/SelectColumn.vue.d.ts +2 -0
  123. package/types/examples/pages/table/demo/TableOperations.vue.d.ts +2 -0
  124. package/types/examples/pages/table/demo/TablePagination.vue.d.ts +2 -0
  125. package/types/examples/pages/table/index.vue.d.ts +2 -0
  126. package/types/examples/pages/tabs/attributes.d.ts +63 -0
  127. package/types/examples/pages/tabs/demo/AddCloseTab.vue.d.ts +2 -0
  128. package/types/examples/pages/tabs/index.vue.d.ts +2 -0
  129. package/types/examples/router/doc-routes.d.ts +12 -0
  130. package/types/examples/router/index.d.ts +4 -0
  131. package/types/plugins/example-transform.d.ts +5 -0
  132. package/types/src/components/filter-bar/FuFilter.vue.d.ts +39 -0
  133. package/types/src/components/filter-bar/FuFilterBar.vue.d.ts +22 -0
  134. package/types/src/components/filter-bar/FuFilterConditions.vue.d.ts +8 -0
  135. package/types/src/components/filter-bar/FuSearchInput.vue.d.ts +17 -0
  136. package/types/src/components/filter-bar/filter-components/FuFilterDate.vue.d.ts +36 -0
  137. package/types/src/components/filter-bar/filter-components/FuFilterDateTime.vue.d.ts +36 -0
  138. package/types/src/components/filter-bar/filter-components/FuFilterOption.vue.d.ts +24 -0
  139. package/types/src/components/filter-bar/filter-components/FuFilterSelect.vue.d.ts +66 -0
  140. package/types/src/components/filter-bar/index.d.ts +2 -0
  141. package/types/src/components/filter-bar/types.d.ts +22 -0
  142. package/types/src/components/read-write-switch/FuInputRwSwitch.vue.d.ts +21 -0
  143. package/types/src/components/read-write-switch/FuReadWriteSwitch.vue.d.ts +23 -0
  144. package/types/src/components/read-write-switch/FuSelectRwSwitch.vue.d.ts +33 -0
  145. package/types/src/components/read-write-switch/index.d.ts +2 -0
  146. package/types/src/components/read-write-switch/types.d.ts +4 -0
  147. package/types/src/components/speed-dial/FuSpeedDial.vue.d.ts +218 -0
  148. package/types/src/components/speed-dial/FuSpeedDialActionButton.vue.d.ts +32 -0
  149. package/types/src/components/speed-dial/FuSpeedDialButton.vue.d.ts +42 -0
  150. package/types/src/components/speed-dial/FuSpeedDialItem.vue.d.ts +12 -0
  151. package/types/src/components/speed-dial/index.d.ts +2 -0
  152. package/types/src/components/speed-dial/types.d.ts +8 -0
  153. package/types/src/components/split-pane/FuSplitPane.vue.d.ts +59 -0
  154. package/types/src/components/split-pane/index.d.ts +2 -0
  155. package/types/src/components/table/FuTable.vue.d.ts +18 -0
  156. package/types/src/components/table/FuTableBody.d.ts +3 -0
  157. package/types/src/components/table/FuTableColumnDropdown.vue.d.ts +50 -0
  158. package/types/src/components/table/FuTablePagination.vue.d.ts +47 -0
  159. package/types/src/components/table/index.d.ts +2 -0
  160. package/types/src/components/table/table-column-select/FuTableColumnSelect.vue.d.ts +10 -0
  161. package/types/src/components/table/table-column-select/FuTableColumnSelectDialog.vue.d.ts +23 -0
  162. package/types/src/components/table/table-column-select/FuTableColumnSelectPopover.vue.d.ts +34 -0
  163. package/types/src/components/table/table-column-select/utils.d.ts +8 -0
  164. package/types/src/components/table/table-operations/FuTableButton.vue.d.ts +13 -0
  165. package/types/src/components/table/table-operations/FuTableMoreButton.vue.d.ts +37 -0
  166. package/types/src/components/table/table-operations/FuTableOperations.vue.d.ts +46 -0
  167. package/types/src/components/table/types.d.ts +2 -0
  168. package/types/src/components/tabs/FuTabs.vue.d.ts +54 -0
  169. package/types/src/components/tabs/index.d.ts +2 -0
  170. package/types/src/hooks/index.d.ts +3 -0
  171. package/types/src/hooks/use-global-config/index.d.ts +1 -0
  172. package/types/src/hooks/use-locale/index.d.ts +14 -0
  173. package/types/src/hooks/use-size/index.d.ts +5 -0
  174. package/types/src/index.d.ts +7 -0
  175. package/types/src/locale/index.d.ts +10 -0
  176. package/types/src/locale/lang/en.d.ts +59 -0
  177. package/types/src/locale/lang/zh-cn.d.ts +59 -0
  178. package/types/src/locale/lang/zh-tw.d.ts +59 -0
  179. package/types/src/tools/size.d.ts +4 -0
  180. package/types/src/tools/theme.d.ts +1 -0
  181. package/types/src/tools/time.d.ts +2 -0
  182. package/types/src/tools/types.d.ts +8 -0
  183. package/types/src/tools/utils.d.ts +2 -0
  184. package/types/src/tools/vnode.d.ts +9 -0
  185. package/src/components/search-bar/FuComplexSearch.vue +0 -108
  186. package/src/components/search-bar/FuQuickSearch.vue +0 -43
  187. package/src/components/search-bar/FuSearchBar.vue +0 -165
  188. package/src/components/search-bar/FuSearchBarButton.vue +0 -14
  189. package/src/components/search-bar/FuSearchContions.vue +0 -24
  190. package/src/components/search-bar/index.ts +0 -13
  191. package/src/components/search-bar/store.ts +0 -25
  192. package/src/components/steps/FuHorizontalNavigation.vue +0 -18
  193. package/src/components/steps/FuHorizontalSteps.vue +0 -94
  194. package/src/components/steps/FuStep.vue +0 -13
  195. package/src/components/steps/FuSteps.vue +0 -22
  196. package/src/components/steps/FuStepsFooter.ts +0 -79
  197. package/src/components/steps/FuVerticalNavigation.vue +0 -35
  198. package/src/components/steps/FuVerticalSteps.vue +0 -79
  199. package/src/components/steps/Stepper.ts +0 -188
  200. package/src/components/steps/index.ts +0 -11
  201. package/src/components/table/table-column-dropdown/index.ts +0 -7
  202. package/src/components/table/table-column-select/index.ts +0 -8
  203. package/src/components/table/table-operations/index.ts +0 -12
  204. package/src/components/virtual-scroller/FuVirtualHorizontalScroll.js +0 -96
  205. package/src/components/virtual-scroller/FuVirtualScroll.js +0 -15
  206. package/src/components/virtual-scroller/FuVirtualVerticalScroll.js +0 -95
  207. package/src/components/virtual-scroller/index.js +0 -10
  208. package/src/styles/components/search-bar.scss +0 -285
@@ -0,0 +1,32 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ index: NumberConstructor;
3
+ icon: {
4
+ type: StringConstructor;
5
+ default: string;
6
+ };
7
+ titleClass: StringConstructor;
8
+ titleBgColor: StringConstructor;
9
+ titleColor: StringConstructor;
10
+ buttonClass: StringConstructor;
11
+ bgColor: StringConstructor;
12
+ color: StringConstructor;
13
+ title: (StringConstructor | NumberConstructor)[];
14
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
+ index: NumberConstructor;
16
+ icon: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ titleClass: StringConstructor;
21
+ titleBgColor: StringConstructor;
22
+ titleColor: StringConstructor;
23
+ buttonClass: StringConstructor;
24
+ bgColor: StringConstructor;
25
+ color: StringConstructor;
26
+ title: (StringConstructor | NumberConstructor)[];
27
+ }>> & {
28
+ onClick?: ((...args: any[]) => any) | undefined;
29
+ }, {
30
+ icon: string;
31
+ }>;
32
+ export default _default;
@@ -1,27 +1,30 @@
1
1
  <template>
2
2
  <div :class="[
3
- 'fu-speed-dial-button',
4
- 'fu-speed-dial-button--' + type,
5
- {
6
- 'fu-speed-dial-button--rotate': rotate,
7
- 'is-disabled': disabled,
8
- 'is-active': active,
9
- }, ]"
10
- :style="{
3
+ 'fu-speed-dial-button',
4
+ 'el-button',
5
+ 'el-button--' + type,
6
+ {
7
+ 'fu-speed-dial-button--rotate': rotate,
8
+ 'is-disabled': disabled,
9
+ 'is-active': active,
10
+ },]" :style="{
11
11
  width: size,
12
12
  height: size,
13
13
  backgroundColor: backgroundColor,
14
14
  color: color,
15
- fontSize: fontSize }">
15
+ fontSize: fontSize
16
+ }">
16
17
  <slot>
17
- <i :class="icon" />
18
+ <el-icon>
19
+ <component :is="icon" />
20
+ </el-icon>
18
21
  </slot>
19
22
  </div>
20
23
  </template>
21
24
 
22
25
  <script setup lang="ts">
23
26
  import { validateType } from "@/tools/theme"
24
- const props = defineProps({
27
+ defineProps({
25
28
  type: {
26
29
  type: String,
27
30
  default: "default",
@@ -0,0 +1,42 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ type: {
3
+ type: StringConstructor;
4
+ default: string;
5
+ validator: (value: string) => boolean;
6
+ };
7
+ rotate: BooleanConstructor;
8
+ disabled: BooleanConstructor;
9
+ active: BooleanConstructor;
10
+ icon: StringConstructor;
11
+ size: {
12
+ type: StringConstructor;
13
+ default: string;
14
+ };
15
+ backgroundColor: StringConstructor;
16
+ color: StringConstructor;
17
+ fontSize: StringConstructor;
18
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
19
+ type: {
20
+ type: StringConstructor;
21
+ default: string;
22
+ validator: (value: string) => boolean;
23
+ };
24
+ rotate: BooleanConstructor;
25
+ disabled: BooleanConstructor;
26
+ active: BooleanConstructor;
27
+ icon: StringConstructor;
28
+ size: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ backgroundColor: StringConstructor;
33
+ color: StringConstructor;
34
+ fontSize: StringConstructor;
35
+ }>>, {
36
+ type: string;
37
+ disabled: boolean;
38
+ size: string;
39
+ active: boolean;
40
+ rotate: boolean;
41
+ }>;
42
+ export default _default;
@@ -9,11 +9,9 @@
9
9
  </template>
10
10
 
11
11
  <script setup lang="ts">
12
- import {
13
- inject,
14
- computed
15
- } from 'vue'
12
+ import { inject, computed } from 'vue'
16
13
  import FuSpeedDialActionButton from "@/components/speed-dial/FuSpeedDialActionButton.vue";
14
+ import { SpeedDialKey } from "./types";
17
15
  defineOptions({ name: "FuSpeedDialItem" });
18
16
  const props = defineProps({
19
17
  index: {
@@ -21,21 +19,17 @@ const props = defineProps({
21
19
  required: true
22
20
  },
23
21
  })
24
- const FuSpeedDial = inject('FuSpeedDial')
22
+ const speedDialKey = inject(SpeedDialKey)
25
23
 
26
24
  const config = computed(() => {
27
- return FuSpeedDial.config;
25
+ return speedDialKey?.config;
28
26
  })
29
27
 
30
28
  const direction = computed(() => {
31
- return FuSpeedDial.direction;
29
+ return speedDialKey?.direction.value || "";
32
30
  })
33
31
  const isActive = computed(() => {
34
- return FuSpeedDial.active;
35
- })
36
-
37
- const size = computed(() => {
38
- return FuSpeedDial.size;
32
+ return speedDialKey?.active?.value;
39
33
  })
40
34
 
41
35
  const spacing = computed(() => {
@@ -44,13 +38,13 @@ const spacing = computed(() => {
44
38
 
45
39
  const directionPosition = computed(() => {
46
40
  if (["top", "left"].includes(direction.value)) {
47
- return -config.value.fab.size - spacing.value
41
+ return -config.value?.fab?.size - spacing.value
48
42
  }
49
- return config.value.fab.size + spacing.value
43
+ return config.value?.fab?.size + spacing.value
50
44
  })
51
45
 
52
46
  const itemSize = computed(() => {
53
- let size = config.value.fab.size + "px";
47
+ let size = config.value?.fab?.size + "px";
54
48
  return {
55
49
  width: size,
56
50
  height: size,
@@ -0,0 +1,12 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ index: {
3
+ type: NumberConstructor;
4
+ required: true;
5
+ };
6
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
7
+ index: {
8
+ type: NumberConstructor;
9
+ required: true;
10
+ };
11
+ }>>, {}>;
12
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import FuSpeedDial from "./FuSpeedDial.vue";
2
+ export default FuSpeedDial;
@@ -0,0 +1,8 @@
1
+ import { InjectionKey, ComputedRef, Ref } from "vue";
2
+ export interface SpeedDialContext {
3
+ config?: any;
4
+ direction: ComputedRef<string>;
5
+ active?: Ref<boolean>;
6
+ close(): void;
7
+ }
8
+ export declare const SpeedDialKey: InjectionKey<SpeedDialContext>;
@@ -0,0 +1,12 @@
1
+ import {InjectionKey, ComputedRef, Ref} from "vue";
2
+
3
+ export interface SpeedDialContext {
4
+ config?: any,
5
+ direction: ComputedRef<string>,
6
+ active?: Ref<boolean>,
7
+ close(): void
8
+ }
9
+
10
+
11
+ export const SpeedDialKey: InjectionKey<SpeedDialContext> = Symbol('SpeedDialKey')
12
+
@@ -8,7 +8,7 @@
8
8
  @mouseover="hover = true" @mouseleave="hover = false">
9
9
  <div class="icon" v-if="resizerType === 'resizer'">
10
10
  <slot name="resizer">
11
- <i class="el-icon-more"></i>
11
+ <el-icon :size="10"><MoreFilled /></el-icon>
12
12
  </slot>
13
13
  </div>
14
14
  </div>
@@ -51,7 +51,7 @@ const props = defineProps({
51
51
  });
52
52
  const emit = defineEmits(["changeSplit"])
53
53
 
54
- const instance = getCurrentInstance()
54
+ const instance: any = getCurrentInstance()
55
55
 
56
56
  const active = ref(false)
57
57
  const usedValue = ref(0)
@@ -133,7 +133,7 @@ const resizerAttr = computed(() => {
133
133
  : isReverse.value
134
134
  ? "bottom"
135
135
  : "top" ;
136
- })
136
+ }) as any
137
137
  const saveKey = computed(() => {
138
138
  return "Fu-SP-" + props.localKey;
139
139
  })
@@ -0,0 +1,59 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ min: {
3
+ type: (StringConstructor | NumberConstructor)[];
4
+ default: string;
5
+ };
6
+ left: (StringConstructor | NumberConstructor)[];
7
+ right: (StringConstructor | NumberConstructor)[];
8
+ top: (StringConstructor | NumberConstructor)[];
9
+ bottom: (StringConstructor | NumberConstructor)[];
10
+ direction: {
11
+ validator: (val: string) => boolean;
12
+ default: string;
13
+ };
14
+ localKey: StringConstructor;
15
+ resizable: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
19
+ resizerType: {
20
+ validator: (val: string) => boolean;
21
+ default: string;
22
+ };
23
+ resizerClass: StringConstructor;
24
+ resizerStyle: ObjectConstructor;
25
+ resizerHoverClass: StringConstructor;
26
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "changeSplit"[], "changeSplit", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
+ min: {
28
+ type: (StringConstructor | NumberConstructor)[];
29
+ default: string;
30
+ };
31
+ left: (StringConstructor | NumberConstructor)[];
32
+ right: (StringConstructor | NumberConstructor)[];
33
+ top: (StringConstructor | NumberConstructor)[];
34
+ bottom: (StringConstructor | NumberConstructor)[];
35
+ direction: {
36
+ validator: (val: string) => boolean;
37
+ default: string;
38
+ };
39
+ localKey: StringConstructor;
40
+ resizable: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ resizerType: {
45
+ validator: (val: string) => boolean;
46
+ default: string;
47
+ };
48
+ resizerClass: StringConstructor;
49
+ resizerStyle: ObjectConstructor;
50
+ resizerHoverClass: StringConstructor;
51
+ }>> & {
52
+ onChangeSplit?: ((...args: any[]) => any) | undefined;
53
+ }, {
54
+ min: string | number;
55
+ direction: string;
56
+ resizable: boolean;
57
+ resizerType: string;
58
+ }>;
59
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import FuSplitPane from './FuSplitPane.vue';
2
+ export default FuSplitPane;
@@ -7,8 +7,11 @@
7
7
  </template>
8
8
 
9
9
  <script lang="ts" setup>
10
- import { onMounted, useSlots, ref, watch, computed, onUpdated, provide } from "vue";
11
- import FuTableBody from "@/components/table/FuTableBody";
10
+ import { onMounted, useSlots, ref, watch, computed, onUpdated, provide, VNodeNormalizedChildren, VNode } from "vue";
11
+ import { isFix, getLabel, FuTableBody } from "@/components/table/FuTableBody";
12
+ import { getChildren, isValidChildren } from "@/tools/vnode";
13
+ import { LocalKey } from "@/components/table/types";
14
+
12
15
  defineOptions({ name: "FuTable" });
13
16
  const props = defineProps({
14
17
  columns: Array,
@@ -20,30 +23,12 @@ const props = defineProps({
20
23
 
21
24
  });
22
25
 
23
- const slots = useSlots()
26
+ const slots = useSlots().default?.()
24
27
 
25
28
  const key = ref(0);
26
29
 
27
-
28
30
  const prefix = "FU-T-"
29
31
 
30
- const isFix = (node: any) => {
31
- const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0
32
- const { fix } = node.props
33
- let { type } = node.props
34
- return (fix !== undefined && fix !== false) || ["selection", "index", "expand"].includes(type) || includeTag
35
- }
36
-
37
- const getLabel = (node: any) => {
38
- if (node.props.label) return node.props.label
39
- const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0
40
- let { label, type } = node.props
41
- if (includeTag) label = prefix + "dropdown"
42
- label ??= node.props.label
43
- label ??= prefix + type
44
- return label;
45
- }
46
-
47
32
  const cleanColumns = (columns: any) => {
48
33
  columns.splice(0, columns.length)
49
34
  }
@@ -92,8 +77,16 @@ const updateColumns = (nodes: any, columns: any) => {
92
77
  const columnsKey = computed(() => {
93
78
  return prefix + props.localKey
94
79
  })
80
+
95
81
  // 去掉v-if=false的node
96
- const children = slots.default?.().filter((c: any) => c.type.name !== undefined)
82
+ let children: VNodeNormalizedChildren | VNode[]
83
+ if (slots) {
84
+ if (isValidChildren(slots)) {
85
+ children = slots
86
+ }
87
+ children = getChildren(slots)
88
+ }
89
+
97
90
  watch(() => props.columns,
98
91
  () => {
99
92
  // 设置refresh,可以避免抖动或闪烁,但是table会更新一次
@@ -134,9 +127,7 @@ onMounted(() => {
134
127
  }
135
128
  })
136
129
 
137
-
138
- provide("localKey", props.localKey)
139
-
130
+ provide(LocalKey, props.localKey)
140
131
  onUpdated(() => {
141
132
  updateNodes(children)
142
133
  updateColumns(children, props.columns)
@@ -1,40 +1,44 @@
1
- import { h } from 'vue'
1
+ import {getChildren} from "@/tools/vnode";
2
+ import {isArray} from "@vue/shared";
2
3
 
3
- const isFix = (node: any) => {
4
- const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0
5
- const { fix } = node.props
6
- let { type } = node.props
7
- return (fix !== undefined && fix !== false) || ["selection", "index", "expand"].includes(type) || includeTag
8
- }
4
+ export const isFix = (node: any) => {
5
+ const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0;
6
+ const {fix} = node.props;
7
+ let {type} = node.props;
8
+ return (
9
+ (fix !== undefined && fix !== false) ||
10
+ ["selection", "index", "expand"].includes(type) ||
11
+ includeTag
12
+ );
13
+ };
9
14
 
10
- const getLabel = (node: any) => {
11
- if (node.props.label) return node.props.label
12
- const prefix = "FU-T-"
13
- const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0
14
- let { label, type } = node.props
15
- if (includeTag) label = prefix + "dropdown"
16
- label ??= node.props.label
17
- label ??= prefix + type
15
+ export const getLabel = (node: any) => {
16
+ if (node.props.label) return node.props.label;
17
+ const prefix = "FU-T-";
18
+ const includeTag = node.type.name.indexOf("FuTableColumnDropdown") >= 0;
19
+ let {label, type} = node.props;
20
+ if (includeTag) label = prefix + "dropdown";
21
+ label ??= node.props.label;
22
+ label ??= prefix + type;
18
23
  return label;
19
- }
20
- const FuTableBody = (props: any, context: any) => {
21
- const slots = context.slots.default()
24
+ };
25
+
26
+ export const FuTableBody = (props: any, context: any) => {
27
+ let slots = context.slots.default();
22
28
  const nodes: any = [];
23
- let { columns } = props
24
- const children = slots[0].children.filter((c: any) => c.type.name !== undefined)
25
- if (!children) return nodes
26
- if (!columns || columns?.length === 0) return children
29
+ let {columns} = props;
30
+ let children = getChildren(slots);
31
+ if (!children) return nodes;
32
+ if (!columns || columns?.length === 0) return children;
27
33
  columns.forEach((col: any) => {
28
- let node = children.find((child: any) => {
29
- return col.label === getLabel(child)
30
- })
31
- if (node && (isFix(node) || col.show !== false)) {
32
- nodes.push(node);
34
+ if (isArray(children)) {
35
+ let node = children.find((child: any) => {
36
+ return col.label === getLabel(child) && child.type.name !== undefined;
37
+ });
38
+ if (node && (isFix(node) || col.show !== false)) {
39
+ nodes.push(node);
40
+ }
33
41
  }
34
- })
35
- return nodes
36
- }
37
-
38
- export default FuTableBody;
39
-
40
-
42
+ });
43
+ return nodes;
44
+ };
@@ -33,6 +33,9 @@
33
33
  </template>
34
34
  <script lang="ts" setup>
35
35
  import { computed, getCurrentInstance } from "vue";
36
+ import { PropType } from "vue";
37
+ import { DropdownProps } from "@/tools/types";
38
+
36
39
  defineOptions({ name: "FuTableColumnDropdown" });
37
40
  const props = defineProps({
38
41
  showType: {
@@ -41,7 +44,7 @@ const props = defineProps({
41
44
  validator: (value: string) => ["always", "hover", "selected"].includes(value),
42
45
  },
43
46
  menus: {
44
- type: Array,
47
+ type: Array as PropType<DropdownProps[]>,
45
48
  default: () => [],
46
49
  },
47
50
  title: String,
@@ -56,7 +59,7 @@ const props = defineProps({
56
59
 
57
60
  });
58
61
 
59
- const instance = getCurrentInstance()
62
+ const instance = getCurrentInstance() as any
60
63
 
61
64
 
62
65
  const isShow = computed(() => {
@@ -0,0 +1,2 @@
1
+ import FuTable from "./FuTable.vue";
2
+ export default FuTable;
@@ -1,15 +1,19 @@
1
1
  import FuTable from "./FuTable.vue"
2
- import FuTableColumnSelect from "./table-column-select"
2
+ import FuTableColumnSelect from "./table-column-select/FuTableColumnSelect.vue"
3
3
  import FuTablePagination from "./FuTablePagination.vue"
4
- import FuTableOperations from "./table-operations"
5
- import FuTableColumnDropdown from "./table-column-dropdown"
4
+ import FuTableOperations from "./table-operations/FuTableOperations.vue";
5
+ import FuTableButton from "./table-operations/FuTableButton.vue";
6
+ import FuTableMoreButton from "./table-operations/FuTableMoreButton.vue";
7
+ import FuTableColumnDropdown from "./FuTableColumnDropdown.vue"
6
8
 
7
9
  import type { App } from 'vue'
8
10
  FuTable.install = (app: App): void => {
9
11
  app.component(FuTable.name, FuTable);
10
12
  app.component(FuTablePagination.name, FuTablePagination)
11
- app.use(FuTableOperations.install)
12
- app.use(FuTableColumnSelect.install)
13
- app.use(FuTableColumnDropdown.install)
13
+ app.component(FuTableColumnSelect.name, FuTableColumnSelect);
14
+ app.component(FuTableColumnDropdown.name, FuTableColumnDropdown)
15
+ app.component(FuTableOperations.name, FuTableOperations);
16
+ app.component(FuTableButton.name, FuTableButton);
17
+ app.component(FuTableMoreButton.name, FuTableMoreButton);
14
18
  };
15
- export default FuTable;
19
+ export default FuTable;
@@ -1,18 +1,18 @@
1
1
  <template>
2
2
  <div style="display: inline-block">
3
- <!-- :size="configSize" -->
4
- <el-button class="fu-search-bar-button" :icon="icon" @click="visible = true">{{t('fu.table.custom_table_rows')}}</el-button>
3
+ <el-button class="fu-search-bar-button" :icon="icon" @click="visible = true">{{ t('fu.table.custom_table_rows') }}
4
+ </el-button>
5
5
  <el-dialog custom-class="fu-table-column-select-dialog" v-model="visible" @open="open" append-to-body>
6
- <template #title>
6
+ <template #header>
7
7
  <h3>
8
8
  {{ t('fu.table.custom_table_fields') }}
9
9
  </h3>
10
- <el-alert :title="t('fu.table.custom_table_fields_desc')" type="info" :closable="false"/>
10
+ <el-alert :title="t('fu.table.custom_table_fields_desc')" type="info" :closable="false" />
11
11
  </template>
12
12
 
13
13
  <el-checkbox v-for="(c, i) in cloneColumns" :key="i" v-model="c.show" :checked="c.show !== false" draggable="true"
14
- @dragstart="dragstart($event, i)" @dragenter="dragenter" @dragleave="dragleave"
15
- @dragover.prevent @dragend="dragend" @drop="drop($event, cloneColumns, i)" v-show="!c.fix">
14
+ @dragstart="dragstart($event, i)" @dragenter="dragenter" @dragleave="dragleave" @dragover.prevent
15
+ @dragend="dragend" @drop="drop($event, cloneColumns, i)" v-show="!c.fix">
16
16
  {{ c.label }}
17
17
  </el-checkbox>
18
18
 
@@ -30,20 +30,15 @@
30
30
  </template>
31
31
 
32
32
  <script setup lang="ts">
33
- import {ref, inject} from "vue";
34
- import {tableColumnSelect} from "./utils"
35
- import {useLocale} from "@/hooks"
36
-
33
+ import { ref, inject } from "vue";
34
+ import { tableColumnSelect } from "./utils"
35
+ import { useLocale } from "@/hooks"
36
+ import { LocalKey } from "../types";
37
37
  const props = defineProps({
38
38
  icon: {
39
39
  type: String,
40
40
  default: "Setting"
41
41
  },
42
- trigger: {
43
- type: String,
44
- default: "hover",
45
- validator: (value: string) => ['click', 'hover'].includes(value)
46
- },
47
42
  columns: {
48
43
  type: Array,
49
44
  default: () => []
@@ -51,9 +46,9 @@ const props = defineProps({
51
46
 
52
47
  })
53
48
 
54
- const localKey = inject("localKey")
49
+ const localKey = inject(LocalKey, undefined)
55
50
 
56
- const {t} = useLocale()
51
+ const { t } = useLocale()
57
52
 
58
53
  const cloneColumn = (source: any, target: any) => {
59
54
  source.forEach((col: any) => {
@@ -72,7 +67,7 @@ const {
72
67
  drop
73
68
  } = tableColumnSelect(localKey)
74
69
 
75
- const cloneColumns = ref([])
70
+ const cloneColumns = ref([]) as any
76
71
  const visible = ref(false)
77
72
 
78
73
  function open() {
@@ -82,14 +77,14 @@ function open() {
82
77
 
83
78
  function ok() {
84
79
  props.columns.splice(0, props.columns.length)
85
- cloneColumns.value.forEach(c => {
80
+ cloneColumns.value.forEach((c: any) => {
86
81
  props.columns.push(c)
87
82
  })
88
83
  visible.value = false
89
84
  }
90
85
 
91
86
  function reset() {
92
- if (columnsKey) {
87
+ if (columnsKey.value) {
93
88
  localStorage.removeItem(columnsKey.value)
94
89
  }
95
90
  props.columns.splice(0, props.columns.length)
@@ -1,14 +1,14 @@
1
1
  <template>
2
2
  <el-popover class="fu-table-column-select" popper-class="fu-table-column-select-popper" :trigger="trigger"
3
- :show-arrow="false" v-show="hasSelect">
3
+ :show-arrow="false" :style="{'visibility': hasSelect ? 'visible': 'hidden'}">
4
4
  <h3>
5
5
  {{ t('fu.table.custom_table_fields') }}
6
6
  </h3>
7
7
  <div class="fu-table-column-select-popper__body">
8
8
  <div v-for="(c, i) in columns" :key="i" class="fu-table-column-select-popper__item">
9
9
  <el-checkbox v-model="c.show" :checked="c.show !== false" draggable="true" @dragstart="dragstart($event, i)"
10
- @dragenter="dragenter" @dragleave="dragleave" @dragover.prevent @dragend="dragend"
11
- @drop="drop($event, columns, i)" v-show="!c.fix">
10
+ @dragenter="dragenter" @dragleave="dragleave" @dragover.prevent @dragend="dragend"
11
+ @drop="drop($event, columns, i)" v-show="!c.fix">
12
12
  {{ c.label }}
13
13
  </el-checkbox>
14
14
  </div>
@@ -20,16 +20,16 @@
20
20
  </div>
21
21
 
22
22
  <template #reference>
23
- <el-button class="fu-search-bar-button" :icon="icon">{{t('fu.table.custom_table_rows')}}</el-button>
23
+ <el-button class="fu-search-bar-button" :icon="icon">{{ t('fu.table.custom_table_rows') }}</el-button>
24
24
  </template>
25
- <!-- :size="configSize" -->
26
25
  </el-popover>
27
26
  </template>
28
27
 
29
28
  <script setup lang="ts">
30
- import {computed, inject} from "vue";
31
- import {tableColumnSelect} from "./utils"
32
- import {useLocale} from "@/hooks"
29
+ import { computed, inject } from "vue";
30
+ import { tableColumnSelect } from "./utils"
31
+ import { useLocale } from "@/hooks"
32
+ import { LocalKey } from "../types";
33
33
 
34
34
  const props = defineProps({
35
35
  icon: {
@@ -42,15 +42,16 @@ const props = defineProps({
42
42
  validator: (value: string) => ['click', 'hover'].includes(value)
43
43
  },
44
44
  columns: {
45
- type: Array,
45
+ type: Array as any,
46
46
  default: () => []
47
47
  },
48
48
 
49
49
  });
50
50
 
51
- const {t} = useLocale()
51
+ const { t } = useLocale()
52
+
53
+ const localKey = inject(LocalKey, undefined)
52
54
 
53
- const localKey = inject("localKey")
54
55
 
55
56
  const {
56
57
  columnsKey,