@thestarweb/ui 1.7.0 → 2.0.0-beta.1

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 (256) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.mjs +7 -0
  2. package/dist/components/base/button/button.vue.mjs +5 -0
  3. package/dist/components/base/button/button.vue_vue_type_script_setup_true_lang.mjs +27 -0
  4. package/dist/components/base/button/index.mjs +1 -0
  5. package/dist/components/base/index.mjs +2 -0
  6. package/dist/components/data/card/card.vue.mjs +5 -0
  7. package/dist/components/data/card/card.vue_vue_type_script_setup_true_lang.mjs +50 -0
  8. package/dist/components/data/card/index.mjs +1 -0
  9. package/dist/components/data/index.mjs +11 -0
  10. package/dist/components/data/popover/index.mjs +1 -0
  11. package/dist/components/data/popover/popover.vue.mjs +5 -0
  12. package/dist/components/data/popover/popover.vue_vue_type_script_setup_true_lang.mjs +123 -0
  13. package/dist/components/data/popover/utils.mjs +68 -0
  14. package/dist/components/data/table/index.mjs +1 -0
  15. package/dist/components/data/table/table.vue.mjs +5 -0
  16. package/dist/components/data/table/table.vue_vue_type_script_setup_true_lang.mjs +45 -0
  17. package/dist/components/data/tag/index.mjs +1 -0
  18. package/dist/components/data/tag/tag.vue.mjs +5 -0
  19. package/dist/components/data/tag/tag.vue_vue_type_script_setup_true_lang.mjs +21 -0
  20. package/dist/components/data/tree/index.mjs +1 -0
  21. package/dist/components/data/tree/tree-item.vue.mjs +5 -0
  22. package/dist/components/data/tree/tree-item.vue_vue_type_script_setup_true_lang.mjs +77 -0
  23. package/dist/components/data/tree/tree-raw.vue.mjs +5 -0
  24. package/dist/components/data/tree/tree-raw.vue_vue_type_script_setup_true_lang.mjs +104 -0
  25. package/dist/components/data/tree/tree.vue.mjs +4 -0
  26. package/dist/components/data/tree/tree.vue_vue_type_script_setup_true_lang.mjs +60 -0
  27. package/dist/components/data/tree/utils.mjs +66 -0
  28. package/dist/components/form/checkbox/checkbox.vue.mjs +5 -0
  29. package/dist/components/form/checkbox/checkbox.vue_vue_type_script_setup_true_lang.mjs +50 -0
  30. package/dist/components/form/checkbox/index.mjs +1 -0
  31. package/dist/components/form/index.mjs +11 -0
  32. package/dist/components/form/input/index.mjs +1 -0
  33. package/dist/components/form/input/input.vue.mjs +5 -0
  34. package/dist/components/form/input/input.vue_vue_type_script_setup_true_lang.mjs +34 -0
  35. package/dist/components/form/select/index.mjs +1 -0
  36. package/dist/components/form/select/select.vue.mjs +5 -0
  37. package/dist/components/form/select/select.vue_vue_type_script_setup_true_lang.mjs +148 -0
  38. package/dist/components/form/slider/index.mjs +1 -0
  39. package/dist/components/form/slider/slider.vue.mjs +5 -0
  40. package/dist/components/form/slider/slider.vue_vue_type_script_setup_true_lang.mjs +67 -0
  41. package/dist/components/form/switch/index.mjs +1 -0
  42. package/dist/components/form/switch/switch.vue.mjs +5 -0
  43. package/dist/components/form/switch/switch.vue_vue_type_script_setup_true_lang.mjs +38 -0
  44. package/dist/components/index.mjs +21 -0
  45. package/dist/components/layout/index.mjs +4 -0
  46. package/dist/components/layout/layout/index.mjs +9 -0
  47. package/dist/components/layout/layout/layout-dividing.vue.mjs +10 -0
  48. package/dist/components/layout/layout/layout-main.vue.mjs +10 -0
  49. package/dist/components/layout/layout/layout.vue.mjs +5 -0
  50. package/dist/components/layout/layout/layout.vue_vue_type_script_setup_true_lang.mjs +14 -0
  51. package/dist/components/layout/page/Page.vue.mjs +5 -0
  52. package/dist/components/layout/page/Page.vue_vue_type_script_setup_true_lang.mjs +63 -0
  53. package/dist/components/layout/page/index.mjs +1 -0
  54. package/dist/components/other/calendar/calendar.vue.mjs +5 -0
  55. package/dist/components/other/calendar/calendar.vue_vue_type_script_setup_true_lang.mjs +103 -0
  56. package/dist/components/other/calendar/index.mjs +1 -0
  57. package/dist/components/other/index.mjs +5 -0
  58. package/dist/components/other/menu/index.mjs +1 -0
  59. package/dist/components/other/menu/index.vue.mjs +5 -0
  60. package/dist/components/other/menu/index.vue_vue_type_script_setup_true_lang.mjs +22 -0
  61. package/dist/components/other/menu/menu-h/index.vue.mjs +5 -0
  62. package/dist/components/other/menu/menu-h/index.vue_vue_type_script_setup_true_lang.mjs +22 -0
  63. package/dist/components/other/menu/menu-h/menu-h-item.vue.mjs +5 -0
  64. package/dist/components/other/menu/menu-h/menu-h-item.vue_vue_type_script_setup_true_lang.mjs +30 -0
  65. package/dist/components/other/menu/menu-v/index.vue.mjs +4 -0
  66. package/dist/components/other/menu/menu-v/index.vue_vue_type_script_setup_true_lang.mjs +33 -0
  67. package/dist/context/index.mjs +1 -0
  68. package/dist/context/is-mobile.mjs +10 -0
  69. package/dist/icons/arrow-down.svg_component.mjs +12 -0
  70. package/dist/icons/arrow-right.svg_component.mjs +12 -0
  71. package/dist/icons/home.svg_component.mjs +12 -0
  72. package/dist/icons/index.mjs +5 -0
  73. package/dist/icons/menu.svg_component.mjs +12 -0
  74. package/dist/index.mjs +20 -0
  75. package/dist/style.css +2 -0
  76. package/dist/utils/index.mjs +9 -0
  77. package/dist/utils/z-index.mjs +6 -0
  78. package/package.json +33 -81
  79. package/types/src/components/base/button/button.vue.d.ts +21 -0
  80. package/types/src/components/base/button/example/base.vue.d.ts +3 -0
  81. package/types/src/components/base/button/index.d.ts +1 -0
  82. package/types/src/components/base/index.d.ts +1 -0
  83. package/types/src/components/data/card/card.vue.d.ts +32 -0
  84. package/types/src/components/data/card/index.d.ts +1 -0
  85. package/types/src/components/data/index.d.ts +5 -0
  86. package/types/src/components/data/pagination/example/base.vue.d.ts +3 -0
  87. package/types/src/components/data/pagination/index.d.ts +1 -0
  88. package/types/src/components/data/pagination/pagination.vue.d.ts +20 -0
  89. package/types/src/components/data/popover/example/base.vue.d.ts +3 -0
  90. package/types/src/components/data/popover/index.d.ts +1 -0
  91. package/types/src/components/data/popover/popover.vue.d.ts +39 -0
  92. package/types/src/components/data/popover/type.d.ts +1 -0
  93. package/types/src/components/data/popover/utils.d.ts +12 -0
  94. package/types/src/components/data/table/example/base.vue.d.ts +3 -0
  95. package/types/src/components/data/table/example/render.vue.d.ts +3 -0
  96. package/types/src/components/data/table/index.d.ts +2 -0
  97. package/types/src/components/data/table/table.vue.d.ts +36 -0
  98. package/types/src/components/data/table/types.d.ts +12 -0
  99. package/types/src/components/data/tag/example/base.vue.d.ts +3 -0
  100. package/types/src/components/data/tag/index.d.ts +1 -0
  101. package/types/src/components/data/tag/tag.vue.d.ts +20 -0
  102. package/types/src/components/data/tree/example/base.vue.d.ts +3 -0
  103. package/types/src/components/data/tree/index.d.ts +2 -0
  104. package/types/src/components/data/tree/tree-item.vue.d.ts +36 -0
  105. package/types/src/components/data/tree/tree-raw.vue.d.ts +47 -0
  106. package/types/src/components/data/tree/tree.vue.d.ts +34 -0
  107. package/types/src/components/data/tree/type.d.ts +40 -0
  108. package/types/src/components/data/tree/utils.d.ts +10 -0
  109. package/types/src/components/form/checkbox/checkbox.vue.d.ts +32 -0
  110. package/types/src/components/form/checkbox/example/base.vue.d.ts +3 -0
  111. package/types/src/components/form/checkbox/example/group.vue.d.ts +3 -0
  112. package/types/src/components/form/checkbox/index.d.ts +1 -0
  113. package/types/src/components/form/index.d.ts +5 -0
  114. package/types/src/components/form/input/example/base.vue.d.ts +3 -0
  115. package/types/src/components/form/input/index.d.ts +1 -0
  116. package/types/src/components/form/input/input.vue.d.ts +17 -0
  117. package/types/src/components/form/select/example/base.vue.d.ts +3 -0
  118. package/types/src/components/form/select/example/tree-select.vue.d.ts +3 -0
  119. package/types/src/components/form/select/index.d.ts +2 -0
  120. package/types/src/components/form/select/select.vue.d.ts +25 -0
  121. package/types/src/components/form/select/types.d.ts +25 -0
  122. package/types/src/components/form/slider/example/base.vue.d.ts +3 -0
  123. package/types/src/components/form/slider/index.d.ts +1 -0
  124. package/types/src/components/form/slider/slider.vue.d.ts +19 -0
  125. package/types/src/components/form/switch/example/base.vue.d.ts +3 -0
  126. package/types/src/components/form/switch/index.d.ts +1 -0
  127. package/types/src/components/form/switch/switch.vue.d.ts +17 -0
  128. package/types/src/components/index.d.ts +5 -0
  129. package/types/src/components/layout/index.d.ts +2 -0
  130. package/types/src/components/layout/layout/index.d.ts +42 -0
  131. package/types/src/components/layout/layout/layout-dividing.vue.d.ts +3 -0
  132. package/types/src/components/layout/layout/layout-main.vue.d.ts +15 -0
  133. package/types/src/components/layout/layout/layout.vue.d.ts +18 -0
  134. package/types/src/components/layout/page/Page.vue.d.ts +39 -0
  135. package/types/src/components/layout/page/index.d.ts +1 -0
  136. package/types/src/components/other/calendar/calendar.vue.d.ts +41 -0
  137. package/types/src/components/other/calendar/index.d.ts +1 -0
  138. package/types/src/components/other/index.d.ts +2 -0
  139. package/types/src/components/other/menu/index.d.ts +2 -0
  140. package/types/src/components/other/menu/index.vue.d.ts +46 -0
  141. package/types/src/components/other/menu/menu-h/index.vue.d.ts +19 -0
  142. package/types/src/components/other/menu/menu-h/menu-h-item.vue.d.ts +27 -0
  143. package/types/src/components/other/menu/menu-v/index.vue.d.ts +24 -0
  144. package/types/src/components/other/menu/types.d.ts +6 -0
  145. package/types/src/components/other/view-control/index.d.ts +1 -0
  146. package/types/src/components/other/view-control/view-control.vue.d.ts +20 -0
  147. package/types/src/context/index.d.ts +1 -0
  148. package/types/src/context/is-mobile.d.ts +4 -0
  149. package/types/src/icons/index.d.ts +4 -0
  150. package/types/src/index.d.ts +3 -0
  151. package/types/src/types.d.ts +2 -0
  152. package/types/src/utils/index.d.ts +6 -0
  153. package/types/src/utils/z-index.d.ts +1 -0
  154. package/types/vite.config.d.ts +2 -0
  155. package/build-ts/main.js +0 -63
  156. package/dist/demo.html +0 -8
  157. package/dist/star-ui.common.js +0 -33764
  158. package/dist/star-ui.common.js.map +0 -1
  159. package/dist/star-ui.umd.js +0 -33774
  160. package/dist/star-ui.umd.js.map +0 -1
  161. package/dist/star-ui.umd.min.js +0 -299
  162. package/dist/star-ui.umd.min.js.map +0 -1
  163. package/readme.md +0 -16
  164. package/src/components/button.vue +0 -34
  165. package/src/components/calendar.vue +0 -244
  166. package/src/components/call-render.tsx +0 -22
  167. package/src/components/card.vue +0 -126
  168. package/src/components/common/base-popper.vue +0 -132
  169. package/src/components/content/context-menu-box/index.vue +0 -117
  170. package/src/components/content/index.ts +0 -5
  171. package/src/components/content/menu/index.vue +0 -86
  172. package/src/components/content/menu/menu-h/index.vue +0 -68
  173. package/src/components/content/menu/menu-h/menu-h-child.vue +0 -74
  174. package/src/components/content/menu/menu-h/menu-h-item.vue +0 -66
  175. package/src/components/content/menu/menu-v/index.vue +0 -56
  176. package/src/components/content/modals/confirm.vue +0 -45
  177. package/src/components/content/modals/modal.vue +0 -110
  178. package/src/components/content/page.vue +0 -134
  179. package/src/components/form/form/form-item.vue +0 -116
  180. package/src/components/form/form/form.vue +0 -109
  181. package/src/components/form/form/index.ts +0 -2
  182. package/src/components/form/index.ts +0 -1
  183. package/src/components/input.vue +0 -81
  184. package/src/components/layout/auto-direction/index.vue +0 -28
  185. package/src/components/layout/index.ts +0 -1
  186. package/src/components/layout-h.vue +0 -34
  187. package/src/components/layout-main.vue +0 -25
  188. package/src/components/layout-v.vue +0 -36
  189. package/src/components/line-h.vue +0 -29
  190. package/src/components/line-v.vue +0 -29
  191. package/src/components/select.vue +0 -265
  192. package/src/components/slider.vue +0 -171
  193. package/src/components/switch.vue +0 -95
  194. package/src/components/table.vue +0 -59
  195. package/src/components/tree/index.vue +0 -116
  196. package/src/components/tree/tree-item.vue +0 -157
  197. package/src/components/view-control.vue +0 -83
  198. package/src/directives/is-focus.ts +0 -10
  199. package/src/func/download.ts +0 -15
  200. package/src/func/index.ts +0 -2
  201. package/src/func/modal/index.ts +0 -72
  202. package/src/global-style.css +0 -127
  203. package/src/icon-font/iconfont.css +0 -75
  204. package/src/icon-font/iconfont.eot +0 -0
  205. package/src/icon-font/iconfont.json +0 -114
  206. package/src/icon-font/iconfont.svg +0 -62
  207. package/src/icon-font/iconfont.ttf +0 -0
  208. package/src/icon-font/iconfont.woff +0 -0
  209. package/src/icon-font/iconfont.woff2 +0 -0
  210. package/src/main.ts +0 -57
  211. package/src/outher/index.ts +0 -8
  212. package/src/reg.ts +0 -129
  213. package/src/shims-vue.d.ts +0 -8
  214. package/src/types.d.ts +0 -15
  215. package/src/utils.ts +0 -24
  216. package/types/components/button.vue.d.ts +0 -5
  217. package/types/components/calendar.vue.d.ts +0 -26
  218. package/types/components/call-render.d.ts +0 -6
  219. package/types/components/card.vue.d.ts +0 -13
  220. package/types/components/common/base-popper.vue.d.ts +0 -21
  221. package/types/components/content/context-menu-box/index.vue.d.ts +0 -20
  222. package/types/components/content/index.d.ts +0 -5
  223. package/types/components/content/menu/index.vue.d.ts +0 -12
  224. package/types/components/content/menu/menu-h/index.vue.d.ts +0 -8
  225. package/types/components/content/menu/menu-h/menu-h-child.vue.d.ts +0 -7
  226. package/types/components/content/menu/menu-h/menu-h-item.vue.d.ts +0 -8
  227. package/types/components/content/menu/menu-v/index.vue.d.ts +0 -9
  228. package/types/components/content/modals/confirm.vue.d.ts +0 -7
  229. package/types/components/content/modals/modal.vue.d.ts +0 -12
  230. package/types/components/content/page.vue.d.ts +0 -9
  231. package/types/components/form/form/form-item.vue.d.ts +0 -22
  232. package/types/components/form/form/form.vue.d.ts +0 -24
  233. package/types/components/form/form/index.d.ts +0 -2
  234. package/types/components/form/index.d.ts +0 -1
  235. package/types/components/input.vue.d.ts +0 -15
  236. package/types/components/layout/auto-direction/index.vue.d.ts +0 -4
  237. package/types/components/layout/index.d.ts +0 -1
  238. package/types/components/layout-h.vue.d.ts +0 -4
  239. package/types/components/layout-main.vue.d.ts +0 -4
  240. package/types/components/layout-v.vue.d.ts +0 -4
  241. package/types/components/line-h.vue.d.ts +0 -4
  242. package/types/components/line-v.vue.d.ts +0 -4
  243. package/types/components/select.vue.d.ts +0 -26
  244. package/types/components/slider.vue.d.ts +0 -29
  245. package/types/components/switch.vue.d.ts +0 -12
  246. package/types/components/table.vue.d.ts +0 -5
  247. package/types/components/tree/index.vue.d.ts +0 -15
  248. package/types/components/tree/tree-item.vue.d.ts +0 -18
  249. package/types/components/view-control.vue.d.ts +0 -16
  250. package/types/directives/is-focus.d.ts +0 -4
  251. package/types/func/download.d.ts +0 -1
  252. package/types/func/index.d.ts +0 -2
  253. package/types/func/modal/index.d.ts +0 -13
  254. package/types/main.d.ts +0 -75
  255. package/types/outher/index.d.ts +0 -5
  256. package/types/reg.d.ts +0 -45
@@ -1,86 +0,0 @@
1
- <template>
2
- <component :is="menuComponent" :menu="menu" class="star-ui su-menu star-ui-menu">
3
- <template v-slot="data">
4
- <div @click="handleItemClick(data)">
5
- <slot v-if="$slots['default']" v-bind="data" />
6
- <component v-else :is="displayComponent" :[useedKey]="data.path||'#'" @click.prevent>
7
- <slot v-if="$slots['menu-text']" name="menu-text" v-bind="data" />
8
- <template v-else>
9
- {{data.title}}
10
- </template>
11
- </component>
12
- </div>
13
- </template>
14
- </component>
15
- </template>
16
-
17
- <script lang="ts">
18
- import { Register, Prop } from "@ui-root/reg";
19
- import { ConcreteComponent } from "vue";
20
- import { Vue } from "vue-class-component";
21
- import HMenu from "./menu-h/index.vue";
22
- import VMenu from "./menu-v/index.vue";
23
- import { MenuItem } from "@ui-root/types";
24
- import '@ui-root/global-style.css';
25
-
26
- @Register({
27
- name: 'su-menu',
28
- })
29
- export default class SuHMenu extends Vue {
30
- @Prop({
31
- type: Array,
32
- required: true,
33
- })
34
- private menu!:MenuItem[];
35
- @Prop({
36
- type: String,
37
- required: true,
38
- default: 'h'
39
- })
40
- private direction!:"h"|"v"|"row";
41
- private get menuComponent(){
42
- if (["h",'row','r'].includes(this.direction)){
43
- return HMenu;
44
- }
45
- return VMenu;
46
- }
47
- @Prop({
48
- type: [String,Function,Object],
49
- default: undefined,
50
- })
51
- private component!:string|Vue|Record<string, unknown>|ConcreteComponent|undefined;
52
- private get displayComponent():string|Vue|ConcreteComponent|Record<string, unknown>{
53
- if(this.component) return this.component;
54
- // const vueRouterLink = resolveComponent('router-link');
55
- // if(typeof vueRouterLink != 'string') return vueRouterLink;
56
- return 'a';
57
- }
58
- @Prop({
59
- type: String,
60
- default: ()=>"",
61
- })
62
- private key!:string;
63
- private get useedKey():string{
64
- if(this.component && this.key) return this.key;
65
- if(this.displayComponent == "a") return 'href';
66
- return 'to';
67
- }
68
- private handleItemClick(data:MenuItem){debugger
69
- if (!["h",'row','r'].includes(this.direction) && data.children){
70
- return;
71
- }
72
- if ((this as any).$router) {
73
- (this as any).$router.push(data.path);
74
- } else {
75
- history.pushState(null, '', data.path);
76
- }
77
- }
78
- }
79
-
80
- </script>
81
- <style>
82
- .star-ui-menu a{
83
- color: inherit;
84
- text-decoration: none;
85
- }
86
- </style>
@@ -1,68 +0,0 @@
1
- <template>
2
- <div :class="['star-ui', 'star-ui-menu', 'star-ui-menu-h']">
3
- <su-h-menu-item v-for="item in menu" :key="item.path" :item="item" childDirection="bottom">
4
- <template v-slot="data">
5
- <div class="star-ui star-ui-menu--item star-ui-menu-h--item">
6
- <slot v-bind="data" />
7
- </div>
8
- </template>
9
- </su-h-menu-item>
10
- </div>
11
- </template>
12
-
13
- <script lang="ts">
14
- import { Register, Prop } from "@ui-root/reg";
15
- import { Vue } from 'vue-class-component';
16
- import SuHMenuChild from "./menu-h-child.vue";
17
- import SuHMenuItem from "./menu-h-item.vue";
18
- import { MenuItem } from "@ui-root/types";
19
- import '@ui-root/global-style.css';
20
-
21
- @Register({
22
- name: 'su-h-menu',
23
- watch:{
24
- menu(this:SuHMenu){
25
- this.splitMenu();
26
- },
27
- },
28
- components:{
29
- SuHMenuChild,
30
- SuHMenuItem,
31
- },
32
- internalOnly:true,
33
- })
34
- export default class SuHMenu extends Vue {
35
- @Prop({
36
- type: Array,
37
- required: true,
38
- })
39
- private menu!:MenuItem[];
40
- private splitMenu(){
41
- this.displayItem=[...this.menu];
42
- }
43
- private displayItem:MenuItem[]=[];
44
- created():void{
45
- this.splitMenu();
46
- }
47
- }
48
-
49
- </script>
50
- <style>
51
- .star-ui-menu-h{
52
- display: flex;
53
- flex-direction: row;
54
- overflow: visible;
55
- position: relative;
56
- padding: 0;
57
- white-space: nowrap;
58
- }
59
- .star-ui-menu-h>.star-ui-menu-h--item-box>.star-ui-menu-h--item a{
60
- line-height: 2;
61
- border: solid 2px transparent;
62
- transition: border 0.5s;
63
- padding: 2px;
64
- }
65
- .star-ui-menu-h>.star-ui-menu-h--item-box:hover>.star-ui-menu-h--item a{
66
- border-bottom-color: var(--star-ui-base-color);
67
- }
68
- </style>
@@ -1,74 +0,0 @@
1
- <template>
2
- <div v-if="menu && menu.length>0" :class="['star-ui', 'star-ui-menu--chlild-box', 'star-ui-menu-h--chlild-box', `star-ui-menu-h--chlild-box-${direction}`]">
3
- <component :is="itemComponent" v-for="item in menu" :key="item.path" :item="item">
4
- <template v-slot="item">
5
- <slot v-bind="item" />
6
- </template>
7
- </component>
8
- </div>
9
- </template>
10
-
11
- <script lang="ts">
12
- import { Register, Prop } from "@ui-root/reg";
13
- import { Vue } from 'vue-class-component';
14
- import { MenuItem } from "@ui-root/types";
15
- import '@ui-root/global-style.css';
16
-
17
- @Register({
18
- name: 'su-h-menu-child',
19
- internalOnly: true,
20
- components:{
21
- // SuHMenuItem,
22
- },
23
- })
24
- export default class SuHMenuChild extends Vue {
25
- @Prop({
26
- type: Array,
27
- required: true,
28
- })
29
- private menu!:MenuItem[];
30
- @Prop({})
31
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
- private itemComponent!:any;
33
- @Prop({
34
- type: String,
35
- })
36
- private direction!:'right'|'bottom';
37
- }
38
-
39
- </script>
40
- <style>
41
- .star-ui-menu-h--chlild-box{
42
- position: absolute;
43
- background-color: var(--star-ui-backgorund-color);
44
- opacity: 0;
45
- transition: opacity 0.5s;
46
- pointer-events: none;
47
- }
48
- *:hover>.star-ui-menu-h--chlild-box{
49
- display: block;
50
- opacity: 1;
51
- pointer-events: auto;
52
- }
53
- .star-ui-menu-h--chlild-box-right{
54
- left: 100%;
55
- top:0;
56
- }
57
- .star-ui-menu-h--chlild-box-left{
58
- right: 100%;
59
- top:0;
60
- }
61
- .star-ui-menu-h--chlild-box-bottom{
62
- left: 0;
63
- top:100%;
64
- }
65
- .star-ui-menu-h--chlild-box{
66
- border: solid 1px var(--star-ui-line-color);
67
- }
68
- .star-ui-menu-h--chlild-box>.star-ui-menu-h--item-box>.star-ui-menu-h--item{
69
- border-bottom: solid 1px var(--star-ui-line-color);
70
- }
71
- .star-ui-menu-h--chlild-box>.star-ui-menu-h--item-box:last-child>.star-ui-menu-h--item{
72
- border-bottom-width: 0;
73
- }
74
- </style>
@@ -1,66 +0,0 @@
1
- <template>
2
- <div class="star-ui star-ui-menu--item-box star-ui-menu-h--item-box">
3
- <!-- <div class="star-ui star-ui-menu--item star-ui-menu-h--item" @click="handleItemClick(item)">
4
- <slot v-bind="item" />
5
- </div> -->
6
- <slot v-bind="item" />
7
- <su-h-menu-child :menu="item.children || []" :itemComponent="selfClass" :direction="childDirection">
8
- <template v-slot="item">
9
- <slot v-bind="item" />
10
- </template>
11
- </su-h-menu-child>
12
- </div>
13
- </template>
14
-
15
- <script lang="ts">
16
- import { Register, Prop, Emit } from "@ui-root/reg";
17
- import { Vue } from "vue-class-component";
18
- import SuHMenuChild from "./menu-h-child.vue";
19
- import isFocus from "@ui-root/directives/is-focus";
20
- import { MenuItem } from "@ui-root/types";
21
- import '@ui-root/global-style.css';
22
-
23
- @Register({
24
- name: 'su-h-menu-item',
25
- internalOnly: true,
26
- components:{
27
- SuHMenuChild,
28
- },
29
- directives:{
30
- isFocus,
31
- }
32
- })
33
- export default class SuHMenuItem extends Vue {
34
- isFocus=false;
35
- @Prop({
36
- type: Object,
37
- })
38
- private item!:MenuItem;
39
- private selfClass = SuHMenuItem;
40
- @Prop({
41
- type: String,
42
- default:'right',
43
- })
44
- private childDirection!:'right'|'bottom';
45
- }
46
- </script>
47
- <style>
48
- .star-ui-menu-h--item-box{
49
- height: 100%;
50
- overflow: visible;
51
- position: relative;
52
- padding: 0;
53
- transition: background-color 0.5s;
54
- }
55
- .star-ui-menu-h--item-box:hover{
56
- background-color: rgba(128,128,128,0.4);
57
- }
58
- .star-ui-menu-h--item{
59
- display: flex;
60
- flex-direction: row;
61
- align-items: center;
62
- justify-content: center;
63
- height: 100%;
64
- padding: 8px;
65
- }
66
- </style>
@@ -1,56 +0,0 @@
1
- <template>
2
- <div :class="['star-ui', 'star-ui-menu', 'star-ui-menu-v']">
3
- <div>
4
- <span @click="handlePathClick(0)"><span class="star-ui-icon-font star-ui-icon-home" />&gt;</span>
5
- <span v-for="(item,index) in path" :key="`${index}-${item.path||'nopath'}`" @click="handlePathClick(index+1)">
6
- {{item.title}}&gt;
7
- </span>
8
- </div>
9
- <div v-for="item in current" :key="item.path" @click="handleItemClick(item)">
10
- <slot v-bind="item" />
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script lang="ts">
16
- import { Register, Prop } from "@ui-root/reg";
17
- import { Vue } from 'vue-class-component';
18
- import { MenuItem } from "@ui-root/types";
19
- import '@ui-root/global-style.css';
20
-
21
- @Register({
22
- name: 'su-h-menu',
23
- internalOnly:true,
24
- })
25
- export default class SuHMenu extends Vue {
26
- @Prop({
27
- type: Array,
28
- required: true,
29
- })
30
- private menu!:MenuItem[];
31
- private path:MenuItem[]=[];
32
- private get current():MenuItem[]{
33
- if(this.path.length == 0){
34
- return this.menu;
35
- }
36
- const item = this.path[this.path.length-1];
37
- const res = [...(item.children || [])];
38
- if(item.path){
39
- res.unshift(item);
40
- }
41
- return res;
42
- }
43
- private handlePathClick(index:number){
44
- this.path = this.path.slice(0,index);
45
- }
46
- private handleItemClick(item:MenuItem, ev:MouseEvent){
47
- if(item.children && item.children.length > 0 && (this.path.length==0 || item!=this.path[this.path.length-1])){
48
- this.path.push(item);
49
- }
50
- }
51
- }
52
-
53
- </script>
54
- <style>
55
-
56
- </style>
@@ -1,45 +0,0 @@
1
- <template>
2
- <su-modal :visible="visible" @close="close">
3
- <template v-slot:title>
4
- {{title}}
5
- </template>
6
- <template v-slot:footer>
7
- <su-button @click="confirm">确认</su-button>
8
- <su-button @click="close">取消</su-button>
9
- </template>
10
- </su-modal>
11
- </template>
12
-
13
- <script lang="ts">
14
- import { Vue } from 'vue-class-component';
15
- import { Register, Prop, Emit } from "@ui-root/reg";
16
- import SuModal from "./modal.vue";
17
- import {SuButton} from "@ui-root/main";
18
-
19
- @Register({
20
- name:"su-modal-confirm",
21
- components:{
22
- SuModal,
23
- SuButton
24
- },
25
- hideInDoc: true,
26
- })
27
- export default class SuModalConfirm extends Vue {
28
- @Prop({
29
- type: String,
30
- })
31
- private readonly title!:string|undefined;
32
- @Prop({
33
- type: Boolean,
34
- })
35
- private readonly visible!:boolean|undefined;
36
- @Emit()
37
- private close(){
38
- return 1;
39
- }
40
- @Emit()
41
- private confirm(){
42
- return 1;
43
- }
44
- }
45
- </script>
@@ -1,110 +0,0 @@
1
- <template>
2
- <teleport to="body" v-if="locVisable">
3
- <div class="star-ui-modal--mask">
4
- <div class="star-ui star-ui-modal su-modal">
5
- <div class="star-ui-modal--header">
6
- <div class="star-ui-modal--title">
7
- <slot name="title" />
8
- {{title}}
9
- </div>
10
- <i class="star-ui-icon-font star-ui-icon-close" @click="close"/>
11
- </div>
12
- <div class="star-ui-modal--body">
13
- <slot />
14
- </div>
15
- <div class="star-ui-modal--footer">
16
- <slot name="footer" />
17
- </div>
18
- </div>
19
- </div>
20
- </teleport>
21
- </template>
22
-
23
- <script lang="ts">
24
- import { Vue } from 'vue-class-component';
25
- import { Register, Prop, Emit } from "@ui-root/reg";
26
- import "@ui-root/global-style.css";
27
- import { SuViewCtrlInjectIsMobile } from '@ui-root/outher';
28
-
29
- @Register({
30
- name:"su-modal",
31
- watch: {
32
- visible(v){
33
- console.log(v)
34
- if (typeof v !== 'undefined') {
35
- this.locVisable = v;
36
- }
37
- },
38
- },
39
- })
40
- export default class SuModalConfirm extends Vue {
41
- @Prop({
42
- type: Boolean,
43
- default: undefined
44
- })
45
- private readonly visible!:boolean|undefined;
46
- private locVisable = false;
47
- @Emit('update:visable')
48
- private updateVisable(visable:boolean):boolean{
49
- return visable;
50
- }
51
- @Emit()
52
- public close():void{
53
- if(typeof this.visible === 'undefined'){
54
- this.locVisable = false;
55
- }
56
- this.updateVisable(false);
57
- }
58
- public show():void{
59
- if(typeof this.visible === 'undefined'){
60
- this.locVisable = true;
61
- }
62
- this.updateVisable(true);
63
- }
64
- @Prop({
65
- type: String,
66
- })
67
- private readonly title!:string|undefined;
68
- created():void{
69
- if (typeof this.visible !== 'undefined') {
70
- this.locVisable = this.visible;
71
- }
72
- }
73
- @SuViewCtrlInjectIsMobile readonly isMobile!: boolean;
74
- }
75
- </script>
76
-
77
- <style>
78
- .star-ui-modal{
79
- background-color: var(--star-ui-backgorund-color);
80
- border-radius: var(--star-ui-border-radius);
81
- }
82
- .star-ui-modal--mask{
83
- position: fixed;
84
- top: 0;
85
- left: 0;
86
- width: 100vw;
87
- height: 100vh;
88
- display: flex;
89
- align-items: center;
90
- justify-content: center;
91
- background-color: var(--star-ui-mask-color);
92
- }
93
- .star-ui-modal--header,
94
- .star-ui-modal--body,
95
- .star-ui-modal--footer{
96
- padding: var(--star-ui-default-padding);
97
- }
98
- .star-ui-modal--header{
99
- display: flex;
100
- flex-direction: row;
101
- }
102
- .star-ui-modal--title{
103
- flex: 1 1 0;
104
- overflow: hidden;
105
- }
106
- .star-ui-modal--header>i{
107
- flex: 0 0 auto;
108
- cursor: pointer;
109
- }
110
- </style>
@@ -1,134 +0,0 @@
1
- <template>
2
- <div class="star-ui su-page">
3
- <header class="su-ui su-page--header">
4
- <span v-if="isMobile" class="star-ui-icon-font star-ui-icon-menu su-page--mobile-menu-open" @click="isOpenMenu=true" />
5
- <h1 v-if="title">{{title}}</h1>
6
- <img v-if="logo" :src="logo" alt="logo" />
7
- <slot name="header"></slot>
8
- <div v-if="!isMobile" class="su-page--menu-box">
9
- <su-menu :menu="menu" direction="h">
10
- <template v-if="$slots['menu']" v-slot="item">
11
- <slot name="menu" v-bind="item" />
12
- </template>
13
- <template v-else-if="$slots['menu-text']" v-slot:menu-text="item">
14
- <slot name="text" v-bind="item" />
15
- </template>
16
- </su-menu>
17
- </div>
18
- </header>
19
- <main class="su-ui su-page--main">
20
- <slot></slot>
21
- </main>
22
- <div v-if="isMobile" :class="['su-ui', 'su-page--mobile-menu-box', isOpenMenu ? 'su-page--mobile-menu-box-open' : 'su-page--mobile-menu-close']" @click="isOpenMenu=false">
23
- <su-menu :menu="menu" direction="v" @click.stop>
24
- <template v-if="$slots['menu']" v-slot="item">
25
- <slot name="menu" v-bind="item" />
26
- </template>
27
- <template v-else-if="$slots['menu-text']" v-slot:menu-text="item">
28
- <slot name="text" v-bind="item" />
29
- </template>
30
- </su-menu>
31
- </div>
32
- </div>
33
- </template>
34
-
35
- <script lang="ts">
36
- import { Vue } from "vue-class-component";
37
- import { Prop, Register } from "@ui-root/reg";
38
- import { SuViewCtrlInjectIsMobile } from "@ui-root/outher";
39
- import { SuMenu } from "@ui-root/main";
40
- import { MenuItem } from "@ui-root/types";
41
- import "@ui-root/global-style.css";
42
-
43
- @Register({
44
- name:"su-page",
45
- components: {
46
- SuMenu,
47
- }
48
- })
49
- export default class SuMain extends Vue {
50
- @SuViewCtrlInjectIsMobile readonly isMobile!:boolean;
51
- @Prop({
52
- type: String,
53
- default: '',
54
- })
55
- private title!:string;
56
- @Prop({
57
- type: String,
58
- default: '',
59
- })
60
- private logo!:string;
61
- @Prop({
62
- type: Array,
63
- default: '',
64
- })
65
- private menu!:MenuItem[];
66
- private isOpenMenu = false;
67
- }
68
- </script>
69
-
70
- <style>
71
- .su-page{
72
- margin: 0;
73
- padding: 0;
74
- width: 100%;
75
- height: 100%;
76
- display: flex;
77
- flex-direction: column;
78
- }
79
- .su-page--header{
80
- display: flex;
81
- flex-direction: row;
82
- background: #000;
83
- color: #e6eaf0;
84
- align-items: center;
85
- }
86
- .su-page--header>h1{
87
- font-size: 20px;
88
- line-height: 22px;
89
- padding: 0 20px;
90
- }
91
- .su-page--menu-box{
92
- flex: 1;
93
- height: 100%;
94
- z-index: 999999;
95
- }
96
- .su-page--menu-box .star-ui-menu-h--chlild-box{
97
- color: var(--star-ui-font-color);
98
- }
99
- .su-page--menu-box .su-menu{
100
- height: 100%;
101
- }
102
- .su-page--mobile-menu-open{
103
- margin-left: 15px;
104
- font-size: 20px;
105
- }
106
- .su-page--mobile-menu-box{
107
- position: absolute;
108
- top: 0;
109
- left: 0;
110
- width: 100%;
111
- height: 100%;
112
- transition: opacity 0.5s;
113
- background-color: rgba(128, 128, 128, 0.5);
114
- }
115
- .su-page--mobile-menu-close{
116
- pointer-events: none;
117
- opacity: 0;
118
- }
119
- .su-page--mobile-menu-box .star-ui-menu-v{
120
- margin-left: 0;
121
- transition: margin-left 0.5s;
122
- background-color: var(--star-ui-backgorund-color);
123
- width: 80%;
124
- height: 100%;
125
- border-right: solid 1px var(--star-ui-line-color);
126
- }
127
- .su-page--mobile-menu-close .star-ui-menu-v{
128
- margin-left: -100%;
129
- }
130
- .su-page--main{
131
- overflow: auto;
132
- flex: 1;
133
- }
134
- </style>