@touchvue/ui 1.0.0-beta.53 → 1.0.0-beta.55

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 (222) hide show
  1. package/es/components/calendar/src/calendar.d.ts +8 -1
  2. package/es/components/calendar/src/calendar.vue.d.ts +9 -0
  3. package/es/components/cascader/src/cascader-item.vue.d.ts +5 -1
  4. package/es/components/cascader/src/cascader.vue.d.ts +0 -7
  5. package/es/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  6. package/es/components/datepicker/src/Picker.vue.d.ts +9 -0
  7. package/es/components/datepicker/src/date-picker.d.ts +1 -1
  8. package/es/components/datepicker/src/use-date-picker.d.ts +1 -0
  9. package/es/components/float/index.d.ts +15 -0
  10. package/es/components/float/src/Float.vue.d.ts +9 -0
  11. package/es/components/float/src/float.d.ts +4 -0
  12. package/es/components/icon/src/icon.vue.d.ts +2 -0
  13. package/es/components/input/src/input.vue.d.ts +2 -2
  14. package/es/components/rate/src/rate.vue.d.ts +46 -10
  15. package/es/components/select/src/select.d.ts +18 -0
  16. package/es/components/select/src/select.vue.d.ts +18 -0
  17. package/es/components/tab/src/tab-item.vue.d.ts +2 -0
  18. package/es/components/timeline/src/timeline.vue.d.ts +5 -0
  19. package/es/components/tip/src/tip.vue.d.ts +2 -2
  20. package/es/directives/index.d.ts +2 -1
  21. package/es/directives/press/index.d.ts +2 -0
  22. package/es/directives/press/src/press.d.ts +20 -0
  23. package/es/index.d.mjs +1 -0
  24. package/es/index.d.mjs.map +1 -1
  25. package/es/index.mjs +3 -1
  26. package/es/index.mjs.map +1 -1
  27. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs +2425 -0
  28. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  29. package/es/packages/components/calendar/src/calendar.mjs +7 -0
  30. package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
  31. package/es/packages/components/calendar/src/calendar.vue2.mjs +31 -38
  32. package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
  33. package/es/packages/components/cascader/src/cascader-item.vue2.mjs +36 -84
  34. package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
  35. package/es/packages/components/cascader/src/cascader.vue2.mjs +86 -28
  36. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  37. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +2 -3
  38. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
  39. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +9 -3
  40. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
  41. package/es/packages/components/datepicker/src/Picker.vue2.mjs +4 -0
  42. package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
  43. package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
  44. package/es/packages/components/datepicker/src/use-date-picker.mjs +8 -8
  45. package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
  46. package/es/packages/components/float/src/Float.vue2.mjs +13 -6
  47. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  48. package/es/packages/components/float/src/float.mjs +1 -0
  49. package/es/packages/components/float/src/float.mjs.map +1 -1
  50. package/es/packages/components/header/src/header.vue2.mjs +4 -3
  51. package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
  52. package/es/packages/components/icon/src/icon.vue2.mjs +7 -3
  53. package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
  54. package/es/packages/components/index.d.mjs +1 -0
  55. package/es/packages/components/index.d.mjs.map +1 -1
  56. package/es/packages/components/index.mjs +1 -0
  57. package/es/packages/components/index.mjs.map +1 -1
  58. package/es/packages/components/input/src/input.vue2.mjs +11 -11
  59. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  60. package/es/packages/components/msg/src/msg.vue2.mjs +1 -1
  61. package/es/packages/components/rate/src/rate.vue2.mjs +153 -85
  62. package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
  63. package/es/packages/components/segment/src/segment.vue.mjs +2 -2
  64. package/es/packages/components/select/src/select.mjs +18 -0
  65. package/es/packages/components/select/src/select.mjs.map +1 -1
  66. package/es/packages/components/select/src/select.vue2.mjs +262 -87
  67. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  68. package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
  69. package/es/packages/components/tab/src/tab-item.vue2.mjs +3 -1
  70. package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
  71. package/es/packages/components/tab/src/tab.vue2.mjs +24 -2
  72. package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
  73. package/es/packages/components/table/src/table.vue2.mjs +60 -2
  74. package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
  75. package/es/packages/components/tree/src/tree-item.vue2.mjs +1 -1
  76. package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
  77. package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
  78. package/es/packages/directives/index.d.mjs +1 -0
  79. package/es/packages/directives/index.d.mjs.map +1 -1
  80. package/es/packages/directives/index.mjs +3 -3
  81. package/es/packages/directives/index.mjs.map +1 -1
  82. package/es/packages/directives/press/index.d.mjs +2 -0
  83. package/es/packages/directives/press/index.mjs +2 -0
  84. package/es/packages/directives/press/src/press.d.mjs +2 -0
  85. package/es/packages/directives/press/src/press.d.mjs.map +1 -0
  86. package/es/packages/directives/press/src/press.mjs +100 -0
  87. package/es/packages/directives/press/src/press.mjs.map +1 -0
  88. package/es/packages/directives/tip/src/tip.mjs +42 -27
  89. package/es/packages/directives/tip/src/tip.mjs.map +1 -1
  90. package/es/packages/locale/format.mjs +1 -1
  91. package/es/packages/locale/format.mjs.map +1 -1
  92. package/es/packages/locale/lang/en-US.mjs +6 -0
  93. package/es/packages/locale/lang/en-US.mjs.map +1 -1
  94. package/es/packages/locale/lang/zh-CN.mjs +6 -0
  95. package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
  96. package/es/packages/utils/print.mjs +1 -1
  97. package/es/ui/index.d.ts +6 -0
  98. package/lib/components/calendar/src/calendar.d.ts +8 -1
  99. package/lib/components/calendar/src/calendar.vue.d.ts +9 -0
  100. package/lib/components/cascader/src/cascader-item.vue.d.ts +5 -1
  101. package/lib/components/cascader/src/cascader.vue.d.ts +0 -7
  102. package/lib/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  103. package/lib/components/datepicker/src/Picker.vue.d.ts +9 -0
  104. package/lib/components/datepicker/src/date-picker.d.ts +1 -1
  105. package/lib/components/datepicker/src/use-date-picker.d.ts +1 -0
  106. package/lib/components/float/index.d.ts +15 -0
  107. package/lib/components/float/src/Float.vue.d.ts +9 -0
  108. package/lib/components/float/src/float.d.ts +4 -0
  109. package/lib/components/icon/src/icon.vue.d.ts +2 -0
  110. package/lib/components/input/src/input.vue.d.ts +2 -2
  111. package/lib/components/rate/src/rate.vue.d.ts +46 -10
  112. package/lib/components/select/src/select.d.ts +18 -0
  113. package/lib/components/select/src/select.vue.d.ts +18 -0
  114. package/lib/components/tab/src/tab-item.vue.d.ts +2 -0
  115. package/lib/components/timeline/src/timeline.vue.d.ts +5 -0
  116. package/lib/components/tip/src/tip.vue.d.ts +2 -2
  117. package/lib/directives/index.d.ts +2 -1
  118. package/lib/directives/press/index.d.ts +2 -0
  119. package/lib/directives/press/src/press.d.ts +20 -0
  120. package/lib/index.d.js +2 -0
  121. package/lib/index.d.js.map +1 -1
  122. package/lib/index.js +4 -1
  123. package/lib/index.js.map +1 -1
  124. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js +2429 -0
  125. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js.map +1 -0
  126. package/lib/packages/components/calendar/src/calendar.js +7 -0
  127. package/lib/packages/components/calendar/src/calendar.js.map +1 -1
  128. package/lib/packages/components/calendar/src/calendar.vue2.js +31 -38
  129. package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
  130. package/lib/packages/components/cascader/src/cascader-item.vue2.js +35 -83
  131. package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
  132. package/lib/packages/components/cascader/src/cascader.vue2.js +85 -27
  133. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  134. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +1 -2
  135. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
  136. package/lib/packages/components/datepicker/src/DatePicker.vue2.js +9 -3
  137. package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
  138. package/lib/packages/components/datepicker/src/Picker.vue2.js +4 -0
  139. package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
  140. package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
  141. package/lib/packages/components/datepicker/src/use-date-picker.js +8 -8
  142. package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
  143. package/lib/packages/components/float/src/Float.vue2.js +12 -5
  144. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  145. package/lib/packages/components/float/src/float.js +1 -0
  146. package/lib/packages/components/float/src/float.js.map +1 -1
  147. package/lib/packages/components/header/src/header.vue2.js +4 -3
  148. package/lib/packages/components/header/src/header.vue2.js.map +1 -1
  149. package/lib/packages/components/icon/src/icon.vue2.js +7 -3
  150. package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
  151. package/lib/packages/components/index.d.js +2 -0
  152. package/lib/packages/components/index.d.js.map +1 -1
  153. package/lib/packages/components/index.js +2 -0
  154. package/lib/packages/components/index.js.map +1 -1
  155. package/lib/packages/components/input/src/input.vue2.js +11 -11
  156. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  157. package/lib/packages/components/msg/src/msg.vue2.js +1 -1
  158. package/lib/packages/components/rate/src/rate.vue2.js +152 -84
  159. package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
  160. package/lib/packages/components/segment/src/segment.vue.js +2 -2
  161. package/lib/packages/components/select/src/select.js +18 -0
  162. package/lib/packages/components/select/src/select.js.map +1 -1
  163. package/lib/packages/components/select/src/select.vue2.js +261 -86
  164. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  165. package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
  166. package/lib/packages/components/tab/src/tab-item.vue2.js +3 -1
  167. package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
  168. package/lib/packages/components/tab/src/tab.vue2.js +23 -1
  169. package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
  170. package/lib/packages/components/table/src/table.vue2.js +59 -1
  171. package/lib/packages/components/table/src/table.vue2.js.map +1 -1
  172. package/lib/packages/components/tree/src/tree-item.vue2.js +1 -1
  173. package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
  174. package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
  175. package/lib/packages/directives/index.d.js +2 -0
  176. package/lib/packages/directives/index.d.js.map +1 -1
  177. package/lib/packages/directives/index.js +3 -2
  178. package/lib/packages/directives/index.js.map +1 -1
  179. package/lib/packages/directives/press/index.d.js +8 -0
  180. package/lib/packages/directives/press/index.js +8 -0
  181. package/lib/packages/directives/press/src/press.d.js +3 -0
  182. package/lib/packages/directives/press/src/press.d.js.map +1 -0
  183. package/lib/packages/directives/press/src/press.js +102 -0
  184. package/lib/packages/directives/press/src/press.js.map +1 -0
  185. package/lib/packages/directives/tip/src/tip.js +41 -26
  186. package/lib/packages/directives/tip/src/tip.js.map +1 -1
  187. package/lib/packages/locale/format.js +1 -1
  188. package/lib/packages/locale/format.js.map +1 -1
  189. package/lib/packages/locale/lang/en-US.js +6 -0
  190. package/lib/packages/locale/lang/en-US.js.map +1 -1
  191. package/lib/packages/locale/lang/zh-CN.js +6 -0
  192. package/lib/packages/locale/lang/zh-CN.js.map +1 -1
  193. package/lib/packages/utils/print.js +1 -1
  194. package/lib/ui/index.d.ts +6 -0
  195. package/package.json +1 -1
  196. package/theme/components/index.css +304 -173
  197. package/theme/index.css +304 -173
  198. package/theme/skin/default.css +304 -173
  199. package/es/directives/longtap/index.d.ts +0 -2
  200. package/es/directives/longtap/src/longtap.d.ts +0 -7
  201. package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs +0 -1386
  202. package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
  203. package/es/packages/directives/longtap/index.d.mjs +0 -2
  204. package/es/packages/directives/longtap/index.mjs +0 -2
  205. package/es/packages/directives/longtap/src/longtap.d.mjs +0 -2
  206. package/es/packages/directives/longtap/src/longtap.d.mjs.map +0 -1
  207. package/es/packages/directives/longtap/src/longtap.mjs +0 -80
  208. package/es/packages/directives/longtap/src/longtap.mjs.map +0 -1
  209. package/lib/directives/longtap/index.d.ts +0 -2
  210. package/lib/directives/longtap/src/longtap.d.ts +0 -7
  211. package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js +0 -1390
  212. package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js.map +0 -1
  213. package/lib/packages/directives/longtap/index.d.js +0 -8
  214. package/lib/packages/directives/longtap/index.js +0 -8
  215. package/lib/packages/directives/longtap/src/longtap.d.js +0 -3
  216. package/lib/packages/directives/longtap/src/longtap.d.js.map +0 -1
  217. package/lib/packages/directives/longtap/src/longtap.js +0 -82
  218. package/lib/packages/directives/longtap/src/longtap.js.map +0 -1
  219. /package/es/packages/directives/{longtap → press}/index.d.mjs.map +0 -0
  220. /package/es/packages/directives/{longtap → press}/index.mjs.map +0 -0
  221. /package/lib/packages/directives/{longtap → press}/index.d.js.map +0 -0
  222. /package/lib/packages/directives/{longtap → press}/index.js.map +0 -0
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, ref, onMounted, computed, resolveComponent, openBlock, createElementBlock, createElementVNode, normalizeStyle, Fragment, renderList, unref, normalizeClass, renderSlot, toDisplayString, createBlock, createCommentVNode, nextTick } from 'vue';
1
+ import { defineComponent, inject, openBlock, createElementBlock, createElementVNode, Fragment, renderList, unref, normalizeClass, renderSlot, toDisplayString, createBlock, createCommentVNode } from 'vue';
2
2
  import { ToIcon } from '../../icon/index.mjs';
3
3
 
4
4
  const __default__ = defineComponent({
@@ -9,93 +9,45 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  props: {
10
10
  data: { default: () => [{ label: "", value: "" }] }
11
11
  },
12
- setup(__props) {
12
+ emits: ["select"],
13
+ setup(__props, { emit: __emit }) {
13
14
  const pProps = inject("pProps");
14
- const childData = ref([]);
15
- onMounted(() => {
16
- });
17
- const setStyle = computed(() => {
18
- let obj = {
19
- width: "16em"
20
- };
21
- if (pProps.props.optionWidth) {
22
- if (isNaN(Number(pProps.props.optionWidth))) {
23
- obj.width = pProps.props.optionWidth;
24
- } else {
25
- obj.width = `${Number(pProps.props.optionWidth)}em`;
26
- }
27
- }
28
- return obj;
29
- });
30
- function hanldeChildClick(item) {
31
- childData.value = [];
32
- nextTick(() => {
33
- if (item[pProps.props.childrenText] && item[pProps.props.childrenText].length) {
34
- childData.value = item[pProps.props.childrenText];
35
- pProps.setLevel(item.level + 1);
36
- pProps.setParentCheckedByValue(item[pProps.props.valueText], item.level);
37
- if (pProps.props.any) {
38
- pProps.setViewData();
39
- }
40
- } else {
41
- pProps.setLevel(item.level);
42
- pProps.setParentCheckedByValue(item[pProps.props.valueText], item.level);
43
- pProps.setViewData();
44
- pProps.close();
45
- }
46
- });
15
+ const emit = __emit;
16
+ function handleChildClick(item) {
17
+ emit("select", item);
47
18
  }
48
19
  return (_ctx, _cache) => {
49
- const _component_to_cascader_item = resolveComponent("to-cascader-item");
50
20
  return openBlock(), createElementBlock("div", { class: "to-cascader-group" }, [
51
- createElementVNode(
52
- "div",
53
- {
54
- class: "to-cascader-group-content",
55
- style: normalizeStyle(setStyle.value)
56
- },
57
- [
58
- (openBlock(true), createElementBlock(
59
- Fragment,
60
- null,
61
- renderList(__props.data, (item) => {
62
- return openBlock(), createElementBlock("div", {
63
- key: item[unref(pProps).props.valueText],
64
- class: normalizeClass(["to-cascader-item", item.isSelect ? "is-on" : ""]),
65
- onClick: ($event) => hanldeChildClick(item)
66
- }, [
67
- renderSlot(_ctx.$slots, "default", {}, () => [
68
- createElementVNode(
69
- "div",
70
- { class: "to-cascader-item-content" },
71
- toDisplayString(item[unref(pProps).props.labelText]),
72
- 1
73
- /* TEXT */
74
- ),
75
- item[unref(pProps).props.childrenText] && item[unref(pProps).props.childrenText].length ? (openBlock(), createBlock(unref(ToIcon), {
76
- key: 0,
77
- value: "next",
78
- class: "to-cascader-item-arrow"
79
- })) : createCommentVNode("v-if", true)
80
- ])
81
- ], 10, ["onClick"]);
82
- }),
83
- 128
84
- /* KEYED_FRAGMENT */
85
- ))
86
- ],
87
- 4
88
- /* STYLE */
89
- ),
90
- childData.value.length ? (openBlock(), createElementBlock("div", {
91
- key: 0,
92
- class: "to-cascader-group-child"
93
- }, [
94
- childData.value.length ? (openBlock(), createBlock(_component_to_cascader_item, {
95
- key: 0,
96
- data: childData.value
97
- }, null, 8, ["data"])) : createCommentVNode("v-if", true)
98
- ])) : createCommentVNode("v-if", true)
21
+ createElementVNode("div", { class: "to-cascader-group-content" }, [
22
+ (openBlock(true), createElementBlock(
23
+ Fragment,
24
+ null,
25
+ renderList(__props.data, (item) => {
26
+ return openBlock(), createElementBlock("div", {
27
+ key: item[unref(pProps).props.valueText],
28
+ class: normalizeClass(["to-cascader-item", item.isSelect ? "is-on" : ""]),
29
+ onClick: ($event) => handleChildClick(item)
30
+ }, [
31
+ renderSlot(_ctx.$slots, "default", {}, () => [
32
+ createElementVNode(
33
+ "div",
34
+ { class: "to-cascader-item-content" },
35
+ toDisplayString(item[unref(pProps).props.labelText]),
36
+ 1
37
+ /* TEXT */
38
+ ),
39
+ item[unref(pProps).props.childrenText] && item[unref(pProps).props.childrenText].length ? (openBlock(), createBlock(unref(ToIcon), {
40
+ key: 0,
41
+ value: "next",
42
+ class: "to-cascader-item-arrow"
43
+ })) : createCommentVNode("v-if", true)
44
+ ])
45
+ ], 10, ["onClick"]);
46
+ }),
47
+ 128
48
+ /* KEYED_FRAGMENT */
49
+ ))
50
+ ])
99
51
  ]);
100
52
  };
101
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cascader-item.vue2.mjs","sources":["../../../../../../packages/components/cascader/src/cascader-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCascaderItem'\r\n});\n</script>\n<template>\r\n\t<div class=\"to-cascader-group\">\r\n\t\t<div class=\"to-cascader-group-content\" :style=\"setStyle\">\r\n\t\t\t<div v-for=\"item in data\" :key=\"item[pProps.props.valueText]\" class=\"to-cascader-item\" :class=\"item.isSelect ? 'is-on' : ''\" @click=\"hanldeChildClick(item)\">\r\n\t\t\t\t<slot>\r\n\t\t\t\t\t<div class=\"to-cascader-item-content\">{{ item[pProps.props.labelText] }}</div>\r\n\t\t\t\t\t<to-icon v-if=\"item[pProps.props.childrenText] && item[pProps.props.childrenText].length\" value=\"next\" class=\"to-cascader-item-arrow\"></to-icon>\r\n\t\t\t\t</slot>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-if=\"childData.length\" class=\"to-cascader-group-child\">\r\n\t\t\t<to-cascader-item v-if=\"childData.length\" :data=\"childData\"></to-cascader-item>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { CSSProperties, computed, inject, nextTick, onMounted, ref } from 'vue'\r\nimport { ProvideProps, Item } from './cascader.vue'\r\nimport { ToIcon } from '@touchvue/components'\r\n\r\n\r\n\r\nexport interface ItemProps {\r\n\tdata: Item[]\r\n}\r\n\r\nwithDefaults(defineProps<ItemProps>(), {\r\n\tdata: () => [{ label: '', value: '' }]\r\n})\r\nconst pProps = inject<ProvideProps>('pProps')\r\n\r\nconst childData = ref([])\r\nonMounted(() => {\r\n\t// console.log('onMounted', childData.value)\r\n})\r\nconst setStyle = computed(() => {\r\n\tlet obj: CSSProperties = {\r\n\t\twidth: '16em'\r\n\t}\r\n\tif (pProps.props.optionWidth) {\r\n\t\tif (isNaN(Number(pProps.props.optionWidth))) {\r\n\t\t\tobj.width = pProps.props.optionWidth\r\n\t\t} else {\r\n\t\t\tobj.width = `${Number(pProps.props.optionWidth)}em`\r\n\t\t}\r\n\t}\r\n\treturn obj\r\n})\r\nfunction hanldeChildClick(item: Item) {\r\n\tchildData.value = []\r\n\tnextTick(() => {\r\n\t\tif (item[pProps.props.childrenText] && item[pProps.props.childrenText].length) {\r\n\t\t\tchildData.value = item[pProps.props.childrenText]\r\n\t\t\tpProps.setLevel(item.level + 1)\r\n\t\t\tpProps.setParentCheckedByValue(item[pProps.props.valueText], item.level)\r\n\t\t\tif (pProps.props.any) {\r\n\t\t\t\tpProps.setViewData()\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tpProps.setLevel(item.level)\r\n\t\t\tpProps.setParentCheckedByValue(item[pProps.props.valueText], item.level)\r\n\t\t\tpProps.setViewData()\r\n\t\t\tpProps.close()\r\n\t\t}\r\n\t})\r\n}\r\n</script>\r\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_Fragment","_renderList","_unref","_normalizeClass","_renderSlot","_toDisplayString","_createBlock"],"mappings":"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"}
1
+ {"version":3,"file":"cascader-item.vue2.mjs","sources":["../../../../../../packages/components/cascader/src/cascader-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCascaderItem'\r\n});\n</script>\n<template>\r\n\t<div class=\"to-cascader-group\">\r\n\t\t<div class=\"to-cascader-group-content\">\r\n\t\t\t<div v-for=\"item in data\" :key=\"item[pProps.props.valueText]\" class=\"to-cascader-item\" :class=\"item.isSelect ? 'is-on' : ''\" @click=\"handleChildClick(item)\">\r\n\t\t\t\t<slot>\r\n\t\t\t\t\t<div class=\"to-cascader-item-content\">{{ item[pProps.props.labelText] }}</div>\r\n\t\t\t\t\t<to-icon v-if=\"item[pProps.props.childrenText] && item[pProps.props.childrenText].length\" value=\"next\" class=\"to-cascader-item-arrow\"></to-icon>\r\n\t\t\t\t</slot>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { inject } from 'vue'\r\nimport { ProvideProps, Item } from './cascader.vue'\r\nimport { ToIcon } from '@touchvue/components'\r\n\r\n\r\n\r\nexport interface ItemProps {\r\n\tdata: Item[]\r\n}\r\n\r\nwithDefaults(defineProps<ItemProps>(), {\r\n\tdata: () => [{ label: '', value: '' }]\r\n})\r\nconst pProps = inject<ProvideProps>('pProps')\r\nconst emit = defineEmits<{\r\n\tselect: [item: Item]\r\n}>()\r\n\r\nfunction handleChildClick(item: Item) {\r\n\temit('select', item)\r\n}\r\n</script>\r\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_Fragment","_renderList","_unref","_normalizeClass","_renderSlot","_toDisplayString","_createBlock"],"mappings":";;;AAEA,MAAA,cAA6BA,eAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,gBAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;AA6BD,IAAM,MAAA,MAAA,GAAS,OAAqB,QAAQ,CAAA,CAAA;AAC5C,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAIb,IAAA,SAAS,iBAAiB,IAAY,EAAA;AACrC,MAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AAAA,KACpB;;wBAjCC,EAAAC,kBAAA,CASM,OAAA,EATD,KAAA,EAAM,qBAAmB,EAAA;AAAA,QAC7BC,kBAOM,CAAA,KAAA,EAAA,EAPD,KAAA,EAAM,6BAA2B,EAAA;AAAA,0BACrC,EAAAD,kBAAA;AAAA,YAKME,QAAA;AAAA,YAAA,IAAA;AAAA,YAAAC,UALc,CAAA,OAAA,CAAI,IAAA,EAAA,CAAZ,IAAI,KAAA;gCAAhB,EAAAH,kBAAA,CAKM,KAAA,EAAA;AAAA,gBALqB,KAAK,IAAK,CAAAI,KAAA,SAAO,MAAM,SAAS,CAAA;AAAA,gBAAG,KAAA,EAAMC,eAAA,CAAA,kBAAA,EAA2B,KAAK,QAAQ,GAAA,OAAA,GAAA,EAAA,CAAA,CAAA;AAAA,gBAAkB,OAAK,EAAA,CAAA,MAAE,KAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA;gBACzJC,WAGO,4BAHP,MAGO;AAAA,kBAFNL,kBAAA;AAAA,oBAA8E,KAAA;AAAA,oBAAA,EAAzE,OAAM,0BAA0B,EAAA;AAAA,oBAAAM,gBAAI,IAAK,CAAAH,KAAA,CAAM,MAAA,CAAC,CAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,oBAAA,CAAA;AAAA;AAAA,mBAAA;AAAA,kBACrD,IAAA,CAAKA,MAAA,MAAA,CAAA,CAAO,MAAM,YAAY,CAAA,IAAK,KAAKA,cAAO,KAAM,CAAA,YAAY,EAAE,uBAAlFI,WAAgJ,CAAAJ,KAAA,CAAA,MAAA,CAAA,EAAA;AAAA;oBAAtD,KAAM,EAAA,MAAA;AAAA,oBAAO,KAAM,EAAA,wBAAA;AAAA;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, ref, computed, provide, watch, nextTick, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, unref, normalizeClass, normalizeStyle, vShow, createCommentVNode, renderSlot, createElementVNode, toDisplayString, createVNode, withModifiers, createBlock, Teleport, withCtx, Fragment, createTextVNode } from 'vue';
1
+ import { defineComponent, inject, ref, computed, provide, watch, nextTick, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, unref, normalizeClass, normalizeStyle, vShow, createCommentVNode, renderSlot, createElementVNode, toDisplayString, createVNode, withModifiers, createBlock, Teleport, withCtx, Fragment, renderList, createTextVNode } from 'vue';
2
2
  import { ToIcon } from '../../icon/index.mjs';
3
3
  import { ToFloat } from '../../float/index.mjs';
4
4
  import CascaderItem from './cascader-item.vue.mjs';
@@ -22,8 +22,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  valueText: { default: "value" },
23
23
  childrenText: { default: "children" },
24
24
  placeholder: { default: "" },
25
- optionWidth: { default: "16em" },
26
- optionCol: { default: "" },
25
+ optionWidth: { default: "" },
27
26
  data: { default: () => [] },
28
27
  comparable: { type: Boolean, default: false },
29
28
  required: { type: Boolean, default: false },
@@ -46,6 +45,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
46
45
  const $el = ref(null);
47
46
  const currentLevel = ref(0);
48
47
  const checkedData = ref([]);
48
+ const optionLevels = ref([data_.value]);
49
49
  const valueStore = ref([]);
50
50
  const disabled = ref(props.disabled);
51
51
  const errorTip = ref("");
@@ -67,8 +67,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
67
67
  } else {
68
68
  omit = Number(props.optionWidth);
69
69
  }
70
+ return `${(currentLevel.value + 1) * omit}${unit}`;
71
+ } else {
72
+ return "";
70
73
  }
71
- return `${(currentLevel.value + 1) * omit}${unit}`;
72
74
  });
73
75
  const setClass = computed(() => {
74
76
  const arr = ["to-disable-target"];
@@ -89,6 +91,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
89
91
  if (disabled.value || props.disabled) {
90
92
  arr.push("is-disabled");
91
93
  }
94
+ if (!value_.value) {
95
+ arr.push("is-placeholder");
96
+ }
92
97
  }
93
98
  return arr;
94
99
  });
@@ -129,12 +134,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
129
134
  }
130
135
  });
131
136
  provide("pProps", {
132
- props,
133
- setLevel,
134
- close,
135
- setParentCheckedByValue,
136
- store: data_.value,
137
- setViewData
137
+ props
138
138
  });
139
139
  watch(
140
140
  () => props.modelValue,
@@ -153,6 +153,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
153
153
  (val) => {
154
154
  data_.value = initData(val);
155
155
  checkedData.value = [];
156
+ optionLevels.value = [data_.value];
156
157
  setLabel();
157
158
  },
158
159
  { deep: true }
@@ -180,6 +181,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
180
181
  function handleClick() {
181
182
  errorTip.value = "";
182
183
  if (!(props.disabled || disabled.value)) {
184
+ if (iconValue.value === "unfold") {
185
+ setOptionLevelsByCheckedData();
186
+ }
183
187
  cascaderFloat.value.toggle($el.value);
184
188
  iconValue.value = iconValue.value === "unfold" ? "fold" : "unfold";
185
189
  }
@@ -189,6 +193,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
189
193
  valueLabel.value = "";
190
194
  resetCheckedData(data_.value);
191
195
  checkedData.value = [];
196
+ optionLevels.value = [data_.value];
192
197
  value_.value = "";
193
198
  change("");
194
199
  }
@@ -199,6 +204,43 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
199
204
  function setParentCheckedByValue(value, level) {
200
205
  fixStore(data_.value, value, level);
201
206
  }
207
+ function getChildren(item) {
208
+ const children = item[props.childrenText];
209
+ return Array.isArray(children) ? children : [];
210
+ }
211
+ function setOptionLevelsByCheckedData() {
212
+ const levels = [data_.value];
213
+ let currentData = data_.value;
214
+ for (const item of checkedData.value) {
215
+ const current = currentData.find((k) => k[props.valueText] === item[props.valueText]);
216
+ if (!current)
217
+ break;
218
+ const children = getChildren(current);
219
+ if (!children.length)
220
+ break;
221
+ levels.push(children);
222
+ currentData = children;
223
+ }
224
+ optionLevels.value = levels;
225
+ setLevel(levels.length - 1);
226
+ }
227
+ function handleItemSelect(item) {
228
+ const level = item.level || 0;
229
+ const children = getChildren(item);
230
+ optionLevels.value = optionLevels.value.slice(0, level + 1);
231
+ setParentCheckedByValue(item[props.valueText], level);
232
+ if (children.length) {
233
+ optionLevels.value = [...optionLevels.value, children];
234
+ setLevel(level + 1);
235
+ if (props.any) {
236
+ setViewData();
237
+ }
238
+ } else {
239
+ setLevel(level);
240
+ setViewData();
241
+ close();
242
+ }
243
+ }
202
244
  function fixStore(arr, value, level) {
203
245
  arr.forEach((item) => {
204
246
  if (item.level === level) {
@@ -268,27 +310,36 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
268
310
  }
269
311
  }
270
312
  function close() {
271
- cascaderFloat.value.toggle($el.value);
313
+ cascaderFloat.value.close();
272
314
  }
273
315
  function afterClose() {
274
316
  setLevel(0);
317
+ iconValue.value = "unfold";
275
318
  }
276
319
  function change(v) {
277
320
  emit("update:modelValue", v);
278
321
  emit("change", v, checkedData.value);
279
322
  }
280
323
  const setLabel = () => {
324
+ resetCheckedData(data_.value);
281
325
  if (value_.value) {
282
326
  valueLabel.value = getLabelPath(value_.value, data_.value) || value_.value;
327
+ checkedData.value.forEach((item) => {
328
+ item.isSelect = true;
329
+ });
283
330
  } else {
331
+ checkedData.value = [];
284
332
  valueLabel.value = props.placeholder;
285
333
  }
334
+ setOptionLevelsByCheckedData();
286
335
  };
287
- function getLabelPath(value, data, path = [], pData = []) {
336
+ function getLabelPath(value, data, path = [], pData = [], syncCheckedData = true) {
288
337
  for (const item of data) {
289
338
  if (item[props.valueText] === value) {
290
339
  let tem = [];
291
- checkedData.value = [...pData, item];
340
+ if (syncCheckedData) {
341
+ checkedData.value = [...pData, item];
342
+ }
292
343
  if (props.showAllLevels) {
293
344
  tem = [...path, item[props.labelText]].join(" / ");
294
345
  } else {
@@ -301,7 +352,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
301
352
  return tem;
302
353
  }
303
354
  if (item[props.childrenText] && item[props.childrenText].length) {
304
- const result = getLabelPath(value, item[props.childrenText], [...path, item[props.labelText]], [...pData, item]);
355
+ const result = getLabelPath(value, item[props.childrenText], [...path, item[props.labelText]], [...pData, item], syncCheckedData);
305
356
  if (result) {
306
357
  return result;
307
358
  }
@@ -347,7 +398,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
347
398
  key: unref(langKey),
348
399
  flex: __props.flex ? __props.flex : null,
349
400
  class: normalizeClass(["to-cascader", setClass.value]),
350
- style: normalizeStyle(setStyle.value)
401
+ style: normalizeStyle(setStyle.value),
402
+ onClick: handleClick
351
403
  }, [
352
404
  validateRequired.value ? withDirectives((openBlock(), createElementBlock("span", {
353
405
  key: 0,
@@ -376,10 +428,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
376
428
  /* TEXT */
377
429
  )
378
430
  ])) : createCommentVNode("v-if", true),
379
- createElementVNode("span", {
380
- class: "to-cascader-content",
381
- onClick: handleClick
382
- }, [
431
+ createElementVNode("span", { class: "to-cascader-content" }, [
383
432
  createElementVNode("span", { class: "to-cascader-value" }, [
384
433
  value_.value ? (openBlock(), createElementBlock(
385
434
  "span",
@@ -408,10 +457,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
408
457
  onClick: withModifiers(handleClear, ["stop"])
409
458
  })
410
459
  ])) : createCommentVNode("v-if", true),
411
- createElementVNode("span", {
412
- class: "to-cascader-arrow",
413
- onClick: handleClick
414
- }, [
460
+ createElementVNode("span", { class: "to-cascader-arrow" }, [
415
461
  createCommentVNode("v-if", true)
416
462
  ]),
417
463
  (openBlock(), createBlock(Teleport, { to: "body" }, [
@@ -428,6 +474,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
428
474
  class: "to-cascader-layer",
429
475
  width: floatWidth.value,
430
476
  lazy: "",
477
+ align: "left",
431
478
  onClosed: afterClose
432
479
  }, {
433
480
  default: withCtx(() => [
@@ -446,10 +493,21 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
446
493
  }, ["stop"])
447
494
  }, {
448
495
  default: withCtx(() => [
449
- (openBlock(), createBlock(CascaderItem, {
450
- key: String(data_.value),
451
- data: data_.value
452
- }, null, 8, ["data"]))
496
+ createElementVNode("div", { class: "to-cascader-options" }, [
497
+ (openBlock(true), createElementBlock(
498
+ Fragment,
499
+ null,
500
+ renderList(optionLevels.value, (levelData, levelIndex) => {
501
+ return openBlock(), createBlock(CascaderItem, {
502
+ key: levelIndex,
503
+ data: levelData,
504
+ onSelect: handleItemSelect
505
+ }, null, 8, ["data"]);
506
+ }),
507
+ 128
508
+ /* KEYED_FRAGMENT */
509
+ ))
510
+ ])
453
511
  ]),
454
512
  _: 1
455
513
  /* STABLE */
@@ -515,7 +573,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
515
573
  [_directive_color, "danger"]
516
574
  ]) : createCommentVNode("v-if", true)
517
575
  ], 14, ["flex"])), [
518
- [_directive_tip, changed.value ? unref(t)("to.common.originalValue", getLabelPath(valueStore.value[0], data_.value)) : ""]
576
+ [_directive_tip, changed.value ? unref(t)("to.common.originalValue", getLabelPath(valueStore.value[0], data_.value, [], [], false)) : ""]
519
577
  ]);
520
578
  };
521
579
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cascader.vue2.mjs","sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCascader'\r\n});\n</script>\n<template>\r\n\t<div ref=\"$el\" :key=\"langKey\" v-tip=\"changed ? t('to.common.originalValue', getLabelPath(valueStore[0], data_)) : ''\" :flex=\"flex ? flex : null\" class=\"to-cascader\" :class=\"setClass\" :style=\"setStyle\">\r\n\t\t<span v-if=\"validateRequired\" v-show=\"false\" class=\"to-validate\" :req=\"validateRequired\" :desc=\"validateDesc\" :value=\"value_ ? 'true' : ''\"></span>\r\n\t\t<span v-if=\"$slots.prefix\" class=\"to-cascader-prefix\">\r\n\t\t\t<slot name=\"prefix\" />\r\n\t\t</span>\r\n\t\t<span v-if=\"props.prefix\" class=\"to-cascader-prefix-text\">\r\n\t\t\t<span>{{ props.prefix }}</span>\r\n\t\t</span>\r\n\t\t<span class=\"to-cascader-content\" @click=\"handleClick\">\r\n\t\t\t<span class=\"to-cascader-value\">\r\n\t\t\t\t<span v-if=\"value_\">{{ valueLabel }}</span>\r\n\t\t\t\t<span v-else class=\"to-cascader-placeholder\">{{ placeholder || t('to.cascader.placeholder') }}</span>\r\n\t\t\t</span>\r\n\t\t</span>\r\n\t\t<span v-if=\"clearable && value_\" class=\"to-cascader-clear\">\r\n\t\t\t<to-icon value=\"close\" @click.stop=\"handleClear\"></to-icon>\r\n\t\t</span>\r\n\t\t<span class=\"to-cascader-arrow\" @click=\"handleClick\">\r\n\t\t\t<to-icon v-if=\"false\" :value=\"iconValue\"></to-icon>\r\n\t\t</span>\r\n\t\t<Teleport to=\"body\">\r\n\t\t\t<div class=\"to-cascader\" :class=\"setClass\">\r\n\t\t\t\t<to-float ref=\"cascaderFloat\" :global=\"false\" class=\"to-cascader-layer\" :width=\"floatWidth\" lazy @closed=\"afterClose\">\r\n\t\t\t\t\t<div v-if=\"!data_.length\" style=\"text-align: center; color: #ccc; padding: 3em 0.3em\">{{ t('to.cascader.noData') }}</div>\r\n\t\t\t\t\t<to-scroll @click.stop>\r\n\t\t\t\t\t\t<to-cascader-item :key=\"String(data_)\" :data=\"data_\"></to-cascader-item>\r\n\t\t\t\t\t</to-scroll>\r\n\t\t\t\t</to-float>\r\n\t\t\t</div>\r\n\t\t</Teleport>\r\n\t\t<span v-if=\"errorTip\" v-color=\"'danger'\" class=\"to-box-tip\">\r\n\t\t\t<template v-if=\"errorType === 'rule'\">\r\n\t\t\t\t{{ t('to.cascader.inputError') }}\r\n\t\t\t\t<to-icon v-tip.danger=\"errorTip\" style=\"height: auto\" value=\"help\" color=\"danger\" mode=\"toast\"></to-icon>\r\n\t\t\t</template>\r\n\t\t\t<template v-else> {{ t('to.cascader.required') }} </template>\r\n\t\t</span>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { CSSProperties, computed, provide, ref, watch, nextTick, inject } from 'vue'\r\nimport { ToIcon, ToFloat } from '@touchvue/components'\r\nimport ToCascaderItem from './cascader-item.vue'\r\nimport { deepClone } from '@touchvue/utils'\r\nimport { t, langKey } from '@touchvue/locale'\r\n\r\n\r\n\r\nconst ToFormItem = inject<{ required?: boolean; label?: string }>('ToFormItem', {})\r\n\r\nexport type VType = string | unknown[]\r\n\r\nexport interface Item {\r\n\tlabel?: string\r\n\tvalue?: string\r\n\tchildren?: string\r\n\tisSelect?: boolean\r\n\tisLeaf?: boolean\r\n\tlevel?: number\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface Props {\r\n\tmode?: string\r\n\tlazy?: boolean\r\n\tdisabled?: boolean\r\n\tany?: boolean\r\n\tclearable?: boolean\r\n\tmodelValue?: string | []\r\n\twidth?: string | number\r\n\tlabelText?: string\r\n\tvalueText?: string\r\n\tchildrenText?: string\r\n\tplaceholder?: string\r\n\toptionWidth?: string | number\r\n\toptionCol?: string | number\r\n\tdata: []\r\n\tcomparable?: boolean\r\n\trequired?: boolean\r\n\tdesc?: string\r\n\tprefix?: string\r\n\tshowAllLevels?: boolean\r\n\tcheckedDatas?: any[]\r\n\tflex?: boolean\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tmode: 'default',\r\n\tlazy: false,\r\n\tdisabled: false,\r\n\tany: true,\r\n\tclearable: false,\r\n\tmodelValue: '',\r\n\twidth: '',\r\n\tlabelText: 'label',\r\n\tvalueText: 'value',\r\n\tchildrenText: 'children',\r\n\tplaceholder: '',\r\n\toptionWidth: '16em',\r\n\toptionCol: '',\r\n\tdata: () => [],\r\n\tcomparable: false,\r\n\trequired: false,\r\n\tdesc: '',\r\n\tprefix: '',\r\n\tshowAllLevels: true,\r\n\tcheckedDatas: () => [],\r\n\tflex: false\r\n})\r\n\r\nconst ToForm = inject<{ comparable?: boolean }>('ToForm', {})\r\n\r\nconst iconValue = ref('unfold')\r\nconst value_ = ref<VType>('')\r\nconst valueLabel = ref('')\r\nconst data_ = ref<Item[]>(initData(props.data))\r\nconst cascaderFloat = ref(null)\r\nconst $el = ref(null)\r\nconst currentLevel = ref(0)\r\nconst checkedData = ref<Item[]>([])\r\nconst valueStore = ref<string[]>([])\r\nconst disabled = ref(props.disabled)\r\nconst errorTip = ref('')\r\nconst errorType = ref('rule')\r\n\r\nconst floatWidth = computed(() => {\r\n\tlet unit = 'em'\r\n\tlet sArr = []\r\n\tlet omit = 16\r\n\tif (props.optionWidth) {\r\n\t\tif (isNaN(Number(props.optionWidth))) {\r\n\t\t\tif ((props.optionWidth as string).includes('em')) {\r\n\t\t\t\tunit = 'em'\r\n\t\t\t\tsArr = (props.optionWidth as string).split('em')\r\n\t\t\t} else {\r\n\t\t\t\tunit = 'px'\r\n\t\t\t\tsArr = (props.optionWidth as string).split('px')\r\n\t\t\t}\r\n\t\t\tomit = Number(sArr[0])\r\n\t\t} else {\r\n\t\t\tomit = Number(props.optionWidth)\r\n\t\t}\r\n\t}\r\n\treturn `${(currentLevel.value + 1) * omit}${unit}`\r\n})\r\n\r\nconst setClass = computed(() => {\r\n\tconst arr = ['to-disable-target']\r\n\tif (errorTip.value) {\r\n\t\tarr.push('to-cascader-mode-line')\r\n\t\tarr.push('to-cascader-color-danger')\r\n\t\tarr.push('to-cascader-tip-show')\r\n\t} else {\r\n\t\tif (props.mode) {\r\n\t\t\tarr.push(`mode-${props.mode}`)\r\n\t\t}\r\n\t\tif ((ToForm && ToForm?.comparable) || props.comparable) {\r\n\t\t\tarr.push('to-compare')\r\n\t\t}\r\n\t\tif (changed.value) {\r\n\t\t\tarr.push('to-cascader-changed')\r\n\t\t}\r\n\t\tif (disabled.value || props.disabled) {\r\n\t\t\tarr.push('is-disabled')\r\n\t\t}\r\n\t}\r\n\treturn arr\r\n})\r\nconst setStyle = computed(() => {\r\n\tlet obj: CSSProperties = {}\r\n\tif (props.width) {\r\n\t\tif (isNaN(Number(props.width))) {\r\n\t\t\tobj.width = props.width\r\n\t\t} else {\r\n\t\t\tobj.width = `${props.width}em`\r\n\t\t}\r\n\t}\r\n\treturn obj\r\n})\r\nconst changed = computed(() => {\r\n\tif ((props.comparable || ToForm?.comparable) && valueStore.value.length > 0 && value_.value !== valueStore.value[0]) {\r\n\t\treturn true\r\n\t} else {\r\n\t\treturn false\r\n\t}\r\n})\r\n\r\nconst validateRequired = computed(() => {\r\n\tif (props.required) {\r\n\t\treturn 'true'\r\n\t} else if (ToFormItem && ToFormItem.required) {\r\n\t\treturn 'true'\r\n\t} else {\r\n\t\treturn 'false'\r\n\t}\r\n})\r\nconst validateDesc = computed(() => {\r\n\tif (props.desc) {\r\n\t\treturn props.desc\r\n\t} else if (ToFormItem && ToFormItem.label) {\r\n\t\treturn ToFormItem.label\r\n\t} else {\r\n\t\treturn ''\r\n\t}\r\n})\r\nexport interface ProvideProps {\r\n\tprops: Props\r\n\tsetLevel: (level: number) => void\r\n\tclose: () => void\r\n\tsetParentCheckedByValue: (value: string, level: number) => void\r\n\tstore: Item[]\r\n\tsetViewData: () => void\r\n}\r\n\r\nprovide<ProvideProps>('pProps', {\r\n\tprops,\r\n\tsetLevel,\r\n\tclose,\r\n\tsetParentCheckedByValue,\r\n\tstore: data_.value,\r\n\tsetViewData\r\n})\r\n\r\nwatch(\r\n\t() => props.modelValue,\r\n\tval => {\r\n\t\tvalue_.value = val\r\n\t\tif (props.data) {\r\n\t\t\tnextTick(() => {\r\n\t\t\t\tsetLabel()\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\t{ immediate: true }\r\n)\r\nwatch(\r\n\t() => props.data,\r\n\tval => {\r\n\t\tdata_.value = initData(val)\r\n\t\tcheckedData.value = []\r\n\t\tsetLabel()\r\n\t},\r\n\t{ deep: true }\r\n)\r\n\r\nconst emit = defineEmits(['change', 'update:modelValue', 'update:checkedDatas'])\r\nfunction initData(data: Item[], levels = 0) {\r\n\tlet arr = deepClone(data)\r\n\tlet tem = []\r\n\tlet level = levels\r\n\tarr.forEach((item: Item) => {\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\ttem.push({\r\n\t\t\t\t...item,\r\n\t\t\t\tlevel,\r\n\t\t\t\tisLeaf: false,\r\n\t\t\t\tisSelect: false,\r\n\t\t\t\t[props.childrenText]: initData(item[props.childrenText], level + 1)\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\ttem.push({ ...item, level, isSelect: false, isLeaf: true })\r\n\t\t}\r\n\t})\r\n\treturn tem\r\n}\r\nfunction handleClick() {\r\n\terrorTip.value = ''\r\n\tif (!(props.disabled || disabled.value)) {\r\n\t\tcascaderFloat.value.toggle($el.value)\r\n\t\ticonValue.value = iconValue.value === 'unfold' ? 'fold' : 'unfold'\r\n\t}\r\n}\r\nfunction handleClear() {\r\n\tif (!props.disabled) {\r\n\t\tvalueLabel.value = ''\r\n\t\tresetCheckedData(data_.value)\r\n\t\tcheckedData.value = []\r\n\t\tvalue_.value = ''\r\n\t\tchange('')\r\n\t}\r\n}\r\nfunction setLevel(idx: number) {\r\n\tcurrentLevel.value = idx\r\n}\r\nfunction setParentCheckedByValue(value, level) {\r\n\tfixStore(data_.value, value, level)\r\n}\r\nfunction fixStore(arr, value, level) {\r\n\tarr.forEach((item: Item) => {\r\n\t\tif (item.level === level) {\r\n\t\t\tif (item[props.valueText] === value) {\r\n\t\t\t\titem.isSelect = true\r\n\t\t\t\tsetCheckedData(checkedData.value, level, item)\r\n\t\t\t} else {\r\n\t\t\t\titem.isSelect = false\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\t\tfixStore(item[props.childrenText], value, level)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\nfunction setCheckedData(arr: Item[], level, item) {\r\n\tlet idx = arr.findIndex(k => k.level === level)\r\n\tif (arr.length && idx !== -1) {\r\n\t\tif (arr[idx][props.valueText] !== item[props.valueText]) {\r\n\t\t\tlet resetArr = arr.filter(k => k.level > level)\r\n\t\t\tif (resetArr.length) {\r\n\t\t\t\tresetArr.forEach(k => {\r\n\t\t\t\t\tlet i = arr.findIndex(l => l.level === k.level)\r\n\t\t\t\t\tif (i !== -1) {\r\n\t\t\t\t\t\tarr.splice(i, 1)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (idx !== -1) {\r\n\t\tarr[idx] = { ...item }\r\n\t} else {\r\n\t\tarr.push(deepClone(item))\r\n\t}\r\n}\r\nfunction resetCheckedData(arr: Item[]) {\r\n\tarr.forEach((item: Item) => {\r\n\t\titem.isSelect = false\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\tresetCheckedData(item[props.childrenText])\r\n\t\t}\r\n\t})\r\n}\r\nfunction setViewData() {\r\n\tlet labelArr = checkedData.value.map(item => item[props.labelText])\r\n\tlet leafArr = checkedData.value.map(item => item.isLeaf)\r\n\tif (props.showAllLevels) {\r\n\t\tvalueLabel.value = labelArr.join(' / ')\r\n\t} else {\r\n\t\tif (leafArr[leafArr.length - 1]) {\r\n\t\t\tvalueLabel.value = labelArr[labelArr.length - 1]\r\n\t\t} else {\r\n\t\t\tvalueLabel.value = ''\r\n\t\t}\r\n\t}\r\n\tlet leafItem = []\r\n\tif (!props.any) {\r\n\t\tleafItem = checkedData.value.filter(item => item.isLeaf)\r\n\t} else {\r\n\t\tleafItem = checkedData.value.length ? [checkedData.value[checkedData.value.length - 1]] : []\r\n\t}\r\n\tif (leafItem.length) {\r\n\t\tvalue_.value = leafItem[0][props.valueText]\r\n\t\tchange(value_.value)\r\n\t}\r\n}\r\nfunction close() {\r\n\tcascaderFloat.value.toggle($el.value)\r\n}\r\nfunction afterClose() {\r\n\tsetLevel(0)\r\n}\r\nfunction change(v) {\r\n\temit('update:modelValue', v)\r\n\temit('change', v, checkedData.value)\r\n}\r\nconst setLabel = () => {\r\n\tif (value_.value) {\r\n\t\tvalueLabel.value = getLabelPath(value_.value, data_.value) || value_.value\r\n\t} else {\r\n\t\tvalueLabel.value = props.placeholder\r\n\t}\r\n}\r\n\r\n// 添加获取标签路径的函数\r\nfunction getLabelPath(value, data, path = [], pData = []) {\r\n\tfor (const item of data) {\r\n\t\tif (item[props.valueText] === value) {\r\n\t\t\tlet tem: any = []\r\n\t\t\tcheckedData.value = [...pData, item]\r\n\t\t\tif (props.showAllLevels) {\r\n\t\t\t\ttem = [...path, item[props.labelText]].join(' / ')\r\n\t\t\t} else {\r\n\t\t\t\tif (item.isLeaf) {\r\n\t\t\t\t\ttem = item[props.labelText]\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttem = ''\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tem\r\n\t\t}\r\n\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\tconst result = getLabelPath(value, item[props.childrenText], [...path, item[props.labelText]], [...pData, item])\r\n\t\t\tif (result) {\r\n\t\t\t\treturn result\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn ''\r\n}\r\nfunction compare() {\r\n\tvalueStore.value.unshift(String(value_.value))\r\n}\r\n// 撤销\r\nfunction restore() {\r\n\tvalue_.value = valueStore.value[0]\r\n\tvalueStore.value.splice(0, 1)\r\n}\r\nconst setDisabled = (f: boolean) => {\r\n\tdisabled.value = f\r\n}\r\n\r\nconst getCheckData = () => {\r\n\treturn checkedData.value\r\n}\r\nwatch(\r\n\t() => checkedData.value,\r\n\tval => {\r\n\t\temit('update:checkedDatas', val)\r\n\t}\r\n)\r\n\r\ndefineExpose({\r\n\tcompare,\r\n\trestore,\r\n\tchanged,\r\n\tsetDisabled,\r\n\terrorTip,\r\n\terrorType,\r\n\tgetCheckData\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_normalizeClass","$slots","_renderSlot","_createElementVNode","_toDisplayString","_openBlock","_createVNode","_createBlock","_Teleport","ToCascaderItem","_Fragment","_createTextVNode"],"mappings":"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"}
1
+ {"version":3,"file":"cascader.vue2.mjs","sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCascader'\r\n});\n</script>\n<template>\r\n\t<div ref=\"$el\" :key=\"langKey\" v-tip=\"changed ? t('to.common.originalValue', getLabelPath(valueStore[0], data_, [], [], false)) : ''\" :flex=\"flex ? flex : null\" class=\"to-cascader\" :class=\"setClass\" :style=\"setStyle\" @click=\"handleClick\">\r\n\t\t<span v-if=\"validateRequired\" v-show=\"false\" class=\"to-validate\" :req=\"validateRequired\" :desc=\"validateDesc\" :value=\"value_ ? 'true' : ''\"></span>\r\n\t\t<span v-if=\"$slots.prefix\" class=\"to-cascader-prefix\">\r\n\t\t\t<slot name=\"prefix\" />\r\n\t\t</span>\r\n\t\t<span v-if=\"props.prefix\" class=\"to-cascader-prefix-text\">\r\n\t\t\t<span>{{ props.prefix }}</span>\r\n\t\t</span>\r\n\t\t<span class=\"to-cascader-content\">\r\n\t\t\t<span class=\"to-cascader-value\">\r\n\t\t\t\t<span v-if=\"value_\">{{ valueLabel }}</span>\r\n\t\t\t\t<span v-else class=\"to-cascader-placeholder\">{{ placeholder || t('to.cascader.placeholder') }}</span>\r\n\t\t\t</span>\r\n\t\t</span>\r\n\t\t<span v-if=\"clearable && value_\" class=\"to-cascader-clear\">\r\n\t\t\t<to-icon value=\"close\" @click.stop=\"handleClear\"></to-icon>\r\n\t\t</span>\r\n\t\t<span class=\"to-cascader-arrow\">\r\n\t\t\t<to-icon v-if=\"false\" :value=\"iconValue\"></to-icon>\r\n\t\t</span>\r\n\t\t<Teleport to=\"body\">\r\n\t\t\t<div class=\"to-cascader\" :class=\"setClass\">\r\n\t\t\t\t<to-float ref=\"cascaderFloat\" :global=\"false\" class=\"to-cascader-layer\" :width=\"floatWidth\" lazy align=\"left\" @closed=\"afterClose\">\r\n\t\t\t\t\t<div v-if=\"!data_.length\" style=\"text-align: center; color: #ccc; padding: 3em 0.3em\">{{ t('to.cascader.noData') }}</div>\r\n\t\t\t\t\t<to-scroll @click.stop>\r\n\t\t\t\t\t\t<div class=\"to-cascader-options\">\r\n\t\t\t\t\t\t\t<to-cascader-item v-for=\"(levelData, levelIndex) in optionLevels\" :key=\"levelIndex\" :data=\"levelData\" @select=\"handleItemSelect\"></to-cascader-item>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</to-scroll>\r\n\t\t\t\t</to-float>\r\n\t\t\t</div>\r\n\t\t</Teleport>\r\n\t\t<span v-if=\"errorTip\" v-color=\"'danger'\" class=\"to-box-tip\">\r\n\t\t\t<template v-if=\"errorType === 'rule'\">\r\n\t\t\t\t{{ t('to.cascader.inputError') }}\r\n\t\t\t\t<to-icon v-tip.danger=\"errorTip\" style=\"height: auto\" value=\"help\" color=\"danger\" mode=\"toast\"></to-icon>\r\n\t\t\t</template>\r\n\t\t\t<template v-else> {{ t('to.cascader.required') }} </template>\r\n\t\t</span>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { CSSProperties, computed, provide, ref, watch, nextTick, inject } from 'vue'\r\nimport { ToIcon, ToFloat } from '@touchvue/components'\r\nimport ToCascaderItem from './cascader-item.vue'\r\nimport { deepClone } from '@touchvue/utils'\r\nimport { t, langKey } from '@touchvue/locale'\r\n\r\n\r\n\r\nconst ToFormItem = inject<{ required?: boolean; label?: string }>('ToFormItem', {})\r\n\r\nexport type VType = string | unknown[]\r\n\r\nexport interface Item {\r\n\tlabel?: string\r\n\tvalue?: string\r\n\tchildren?: string\r\n\tisSelect?: boolean\r\n\tisLeaf?: boolean\r\n\tlevel?: number\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface Props {\r\n\tmode?: string\r\n\tlazy?: boolean\r\n\tdisabled?: boolean\r\n\tany?: boolean\r\n\tclearable?: boolean\r\n\tmodelValue?: string | []\r\n\twidth?: string | number\r\n\tlabelText?: string\r\n\tvalueText?: string\r\n\tchildrenText?: string\r\n\tplaceholder?: string\r\n\toptionWidth?: string | number\r\n\tdata: []\r\n\tcomparable?: boolean\r\n\trequired?: boolean\r\n\tdesc?: string\r\n\tprefix?: string\r\n\tshowAllLevels?: boolean\r\n\tcheckedDatas?: any[]\r\n\tflex?: boolean\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tmode: 'default',\r\n\tlazy: false,\r\n\tdisabled: false,\r\n\tany: true,\r\n\tclearable: false,\r\n\tmodelValue: '',\r\n\twidth: '',\r\n\tlabelText: 'label',\r\n\tvalueText: 'value',\r\n\tchildrenText: 'children',\r\n\tplaceholder: '',\r\n\toptionWidth: '',\r\n\tdata: () => [],\r\n\tcomparable: false,\r\n\trequired: false,\r\n\tdesc: '',\r\n\tprefix: '',\r\n\tshowAllLevels: true,\r\n\tcheckedDatas: () => [],\r\n\tflex: false\r\n})\r\n\r\nconst ToForm = inject<{ comparable?: boolean }>('ToForm', {})\r\n\r\nconst iconValue = ref('unfold')\r\nconst value_ = ref<VType>('')\r\nconst valueLabel = ref('')\r\nconst data_ = ref<Item[]>(initData(props.data))\r\nconst cascaderFloat = ref(null)\r\nconst $el = ref(null)\r\nconst currentLevel = ref(0)\r\nconst checkedData = ref<Item[]>([])\r\nconst optionLevels = ref<Item[][]>([data_.value])\r\nconst valueStore = ref<string[]>([])\r\nconst disabled = ref(props.disabled)\r\nconst errorTip = ref('')\r\nconst errorType = ref('rule')\r\n\r\nconst floatWidth = computed(() => {\r\n\tlet unit = 'em'\r\n\tlet sArr = []\r\n\tlet omit = 16\r\n\tif (props.optionWidth) {\r\n\t\tif (isNaN(Number(props.optionWidth))) {\r\n\t\t\tif ((props.optionWidth as string).includes('em')) {\r\n\t\t\t\tunit = 'em'\r\n\t\t\t\tsArr = (props.optionWidth as string).split('em')\r\n\t\t\t} else {\r\n\t\t\t\tunit = 'px'\r\n\t\t\t\tsArr = (props.optionWidth as string).split('px')\r\n\t\t\t}\r\n\t\t\tomit = Number(sArr[0])\r\n\t\t} else {\r\n\t\t\tomit = Number(props.optionWidth)\r\n\t\t}\r\n\t\treturn `${(currentLevel.value + 1) * omit}${unit}`\r\n\t} else {\r\n\t\treturn ''\r\n\t}\r\n})\r\n\r\nconst setClass = computed(() => {\r\n\tconst arr = ['to-disable-target']\r\n\tif (errorTip.value) {\r\n\t\tarr.push('to-cascader-mode-line')\r\n\t\tarr.push('to-cascader-color-danger')\r\n\t\tarr.push('to-cascader-tip-show')\r\n\t} else {\r\n\t\tif (props.mode) {\r\n\t\t\tarr.push(`mode-${props.mode}`)\r\n\t\t}\r\n\t\tif ((ToForm && ToForm?.comparable) || props.comparable) {\r\n\t\t\tarr.push('to-compare')\r\n\t\t}\r\n\t\tif (changed.value) {\r\n\t\t\tarr.push('to-cascader-changed')\r\n\t\t}\r\n\t\tif (disabled.value || props.disabled) {\r\n\t\t\tarr.push('is-disabled')\r\n\t\t}\r\n\t\tif (!value_.value) {\r\n\t\t\tarr.push('is-placeholder')\r\n\t\t}\r\n\t}\r\n\treturn arr\r\n})\r\nconst setStyle = computed(() => {\r\n\tlet obj: CSSProperties = {}\r\n\tif (props.width) {\r\n\t\tif (isNaN(Number(props.width))) {\r\n\t\t\tobj.width = props.width\r\n\t\t} else {\r\n\t\t\tobj.width = `${props.width}em`\r\n\t\t}\r\n\t}\r\n\treturn obj\r\n})\r\nconst changed = computed(() => {\r\n\tif ((props.comparable || ToForm?.comparable) && valueStore.value.length > 0 && value_.value !== valueStore.value[0]) {\r\n\t\treturn true\r\n\t} else {\r\n\t\treturn false\r\n\t}\r\n})\r\n\r\nconst validateRequired = computed(() => {\r\n\tif (props.required) {\r\n\t\treturn 'true'\r\n\t} else if (ToFormItem && ToFormItem.required) {\r\n\t\treturn 'true'\r\n\t} else {\r\n\t\treturn 'false'\r\n\t}\r\n})\r\nconst validateDesc = computed(() => {\r\n\tif (props.desc) {\r\n\t\treturn props.desc\r\n\t} else if (ToFormItem && ToFormItem.label) {\r\n\t\treturn ToFormItem.label\r\n\t} else {\r\n\t\treturn ''\r\n\t}\r\n})\r\nexport interface ProvideProps {\r\n\tprops: Props\r\n}\r\n\r\nprovide<ProvideProps>('pProps', {\r\n\tprops\r\n})\r\n\r\nwatch(\r\n\t() => props.modelValue,\r\n\tval => {\r\n\t\tvalue_.value = val\r\n\t\tif (props.data) {\r\n\t\t\tnextTick(() => {\r\n\t\t\t\tsetLabel()\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\t{ immediate: true }\r\n)\r\nwatch(\r\n\t() => props.data,\r\n\tval => {\r\n\t\tdata_.value = initData(val)\r\n\t\tcheckedData.value = []\r\n\t\toptionLevels.value = [data_.value]\r\n\t\tsetLabel()\r\n\t},\r\n\t{ deep: true }\r\n)\r\n\r\nconst emit = defineEmits(['change', 'update:modelValue', 'update:checkedDatas'])\r\nfunction initData(data: Item[], levels = 0) {\r\n\tlet arr = deepClone(data)\r\n\tlet tem = []\r\n\tlet level = levels\r\n\tarr.forEach((item: Item) => {\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\ttem.push({\r\n\t\t\t\t...item,\r\n\t\t\t\tlevel,\r\n\t\t\t\tisLeaf: false,\r\n\t\t\t\tisSelect: false,\r\n\t\t\t\t[props.childrenText]: initData(item[props.childrenText], level + 1)\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\ttem.push({ ...item, level, isSelect: false, isLeaf: true })\r\n\t\t}\r\n\t})\r\n\treturn tem\r\n}\r\nfunction handleClick() {\r\n\terrorTip.value = ''\r\n\tif (!(props.disabled || disabled.value)) {\r\n\t\tif (iconValue.value === 'unfold') {\r\n\t\t\tsetOptionLevelsByCheckedData()\r\n\t\t}\r\n\t\tcascaderFloat.value.toggle($el.value)\r\n\t\ticonValue.value = iconValue.value === 'unfold' ? 'fold' : 'unfold'\r\n\t}\r\n}\r\nfunction handleClear() {\r\n\tif (!props.disabled) {\r\n\t\tvalueLabel.value = ''\r\n\t\tresetCheckedData(data_.value)\r\n\t\tcheckedData.value = []\r\n\t\toptionLevels.value = [data_.value]\r\n\t\tvalue_.value = ''\r\n\t\tchange('')\r\n\t}\r\n}\r\nfunction setLevel(idx: number) {\r\n\tcurrentLevel.value = idx\r\n}\r\nfunction setParentCheckedByValue(value, level) {\r\n\tfixStore(data_.value, value, level)\r\n}\r\nfunction getChildren(item: Item) {\r\n\tconst children = item[props.childrenText]\r\n\treturn Array.isArray(children) ? children : []\r\n}\r\nfunction setOptionLevelsByCheckedData() {\r\n\tconst levels: Item[][] = [data_.value]\r\n\tlet currentData = data_.value\r\n\tfor (const item of checkedData.value) {\r\n\t\tconst current = currentData.find(k => k[props.valueText] === item[props.valueText])\r\n\t\tif (!current) break\r\n\t\tconst children = getChildren(current)\r\n\t\tif (!children.length) break\r\n\t\tlevels.push(children)\r\n\t\tcurrentData = children\r\n\t}\r\n\toptionLevels.value = levels\r\n\tsetLevel(levels.length - 1)\r\n}\r\nfunction handleItemSelect(item: Item) {\r\n\tconst level = item.level || 0\r\n\tconst children = getChildren(item)\r\n\r\n\toptionLevels.value = optionLevels.value.slice(0, level + 1)\r\n\tsetParentCheckedByValue(item[props.valueText], level)\r\n\tif (children.length) {\r\n\t\toptionLevels.value = [...optionLevels.value, children]\r\n\t\tsetLevel(level + 1)\r\n\t\tif (props.any) {\r\n\t\t\tsetViewData()\r\n\t\t}\r\n\t} else {\r\n\t\tsetLevel(level)\r\n\t\tsetViewData()\r\n\t\tclose()\r\n\t}\r\n}\r\nfunction fixStore(arr, value, level) {\r\n\tarr.forEach((item: Item) => {\r\n\t\tif (item.level === level) {\r\n\t\t\tif (item[props.valueText] === value) {\r\n\t\t\t\titem.isSelect = true\r\n\t\t\t\tsetCheckedData(checkedData.value, level, item)\r\n\t\t\t} else {\r\n\t\t\t\titem.isSelect = false\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\t\tfixStore(item[props.childrenText], value, level)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\nfunction setCheckedData(arr: Item[], level, item) {\r\n\tlet idx = arr.findIndex(k => k.level === level)\r\n\tif (arr.length && idx !== -1) {\r\n\t\tif (arr[idx][props.valueText] !== item[props.valueText]) {\r\n\t\t\tlet resetArr = arr.filter(k => k.level > level)\r\n\t\t\tif (resetArr.length) {\r\n\t\t\t\tresetArr.forEach(k => {\r\n\t\t\t\t\tlet i = arr.findIndex(l => l.level === k.level)\r\n\t\t\t\t\tif (i !== -1) {\r\n\t\t\t\t\t\tarr.splice(i, 1)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (idx !== -1) {\r\n\t\tarr[idx] = { ...item }\r\n\t} else {\r\n\t\tarr.push(deepClone(item))\r\n\t}\r\n}\r\nfunction resetCheckedData(arr: Item[]) {\r\n\tarr.forEach((item: Item) => {\r\n\t\titem.isSelect = false\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\tresetCheckedData(item[props.childrenText])\r\n\t\t}\r\n\t})\r\n}\r\nfunction setViewData() {\r\n\tlet labelArr = checkedData.value.map(item => item[props.labelText])\r\n\tlet leafArr = checkedData.value.map(item => item.isLeaf)\r\n\tif (props.showAllLevels) {\r\n\t\tvalueLabel.value = labelArr.join(' / ')\r\n\t} else {\r\n\t\tif (leafArr[leafArr.length - 1]) {\r\n\t\t\tvalueLabel.value = labelArr[labelArr.length - 1]\r\n\t\t} else {\r\n\t\t\tvalueLabel.value = ''\r\n\t\t}\r\n\t}\r\n\tlet leafItem = []\r\n\tif (!props.any) {\r\n\t\tleafItem = checkedData.value.filter(item => item.isLeaf)\r\n\t} else {\r\n\t\tleafItem = checkedData.value.length ? [checkedData.value[checkedData.value.length - 1]] : []\r\n\t}\r\n\tif (leafItem.length) {\r\n\t\tvalue_.value = leafItem[0][props.valueText]\r\n\t\tchange(value_.value)\r\n\t}\r\n}\r\nfunction close() {\r\n\tcascaderFloat.value.close()\r\n}\r\nfunction afterClose() {\r\n\tsetLevel(0)\r\n\ticonValue.value = 'unfold'\r\n}\r\nfunction change(v) {\r\n\temit('update:modelValue', v)\r\n\temit('change', v, checkedData.value)\r\n}\r\nconst setLabel = () => {\r\n\tresetCheckedData(data_.value)\r\n\tif (value_.value) {\r\n\t\tvalueLabel.value = getLabelPath(value_.value, data_.value) || value_.value\r\n\t\tcheckedData.value.forEach(item => {\r\n\t\t\titem.isSelect = true\r\n\t\t})\r\n\t} else {\r\n\t\tcheckedData.value = []\r\n\t\tvalueLabel.value = props.placeholder\r\n\t}\r\n\tsetOptionLevelsByCheckedData()\r\n}\r\n\r\n// 添加获取标签路径的函数\r\nfunction getLabelPath(value, data, path = [], pData = [], syncCheckedData = true) {\r\n\tfor (const item of data) {\r\n\t\tif (item[props.valueText] === value) {\r\n\t\t\tlet tem: any = []\r\n\t\t\tif (syncCheckedData) {\r\n\t\t\t\tcheckedData.value = [...pData, item]\r\n\t\t\t}\r\n\t\t\tif (props.showAllLevels) {\r\n\t\t\t\ttem = [...path, item[props.labelText]].join(' / ')\r\n\t\t\t} else {\r\n\t\t\t\tif (item.isLeaf) {\r\n\t\t\t\t\ttem = item[props.labelText]\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttem = ''\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tem\r\n\t\t}\r\n\r\n\t\tif (item[props.childrenText] && item[props.childrenText].length) {\r\n\t\t\tconst result = getLabelPath(value, item[props.childrenText], [...path, item[props.labelText]], [...pData, item], syncCheckedData)\r\n\t\t\tif (result) {\r\n\t\t\t\treturn result\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn ''\r\n}\r\nfunction compare() {\r\n\tvalueStore.value.unshift(String(value_.value))\r\n}\r\n// 撤销\r\nfunction restore() {\r\n\tvalue_.value = valueStore.value[0]\r\n\tvalueStore.value.splice(0, 1)\r\n}\r\nconst setDisabled = (f: boolean) => {\r\n\tdisabled.value = f\r\n}\r\n\r\nconst getCheckData = () => {\r\n\treturn checkedData.value\r\n}\r\nwatch(\r\n\t() => checkedData.value,\r\n\tval => {\r\n\t\temit('update:checkedDatas', val)\r\n\t}\r\n)\r\n\r\ndefineExpose({\r\n\tcompare,\r\n\trestore,\r\n\tchanged,\r\n\tsetDisabled,\r\n\terrorTip,\r\n\terrorType,\r\n\tgetCheckData\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_normalizeClass","$slots","_renderSlot","_createElementVNode","_toDisplayString","_openBlock","_createVNode","_createBlock","_Teleport","_Fragment","_renderList","ToCascaderItem","_createTextVNode"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, ref, computed, onBeforeUnmount, watch, provide, openBlock, createElementBlock, withDirectives, vShow, createCommentVNode, renderSlot, createTextVNode } from 'vue';
1
+ import { defineComponent, inject, ref, computed, onBeforeUnmount, watch, provide, openBlock, createElementBlock, withDirectives, vShow, createCommentVNode, renderSlot } from 'vue';
2
2
 
3
3
  const __default__ = defineComponent({
4
4
  name: "ToCheckboxes"
@@ -148,8 +148,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
148
148
  }, null, 8, ["req", "desc", "value"])), [
149
149
  [vShow, false]
150
150
  ]) : createCommentVNode("v-if", true),
151
- renderSlot(_ctx.$slots, "default"),
152
- createTextVNode("flex: false ")
151
+ renderSlot(_ctx.$slots, "default")
153
152
  ], 8, ["id", "flex"]);
154
153
  };
155
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Checkboxes.vue2.mjs","sources":["../../../../../../packages/components/checkboxes/src/Checkboxes.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCheckboxes'\r\n});\n</script>\n<template>\r\n\t<div :id=\"id\" :flex=\"flex ? flex : null\">\r\n\t\t<span v-if=\"validateRequired\" v-show=\"false\" class=\"to-validate\" :req=\"validateRequired\" :desc=\"validateDesc\" :value=\"checks.length > 0 ? 'true' : ''\"></span>\r\n\t\t<slot></slot>flex: false\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, inject, onBeforeUnmount, watch, provide } from 'vue'\r\n\r\n\r\n\r\nexport interface ToCheckboxesProps {\r\n\t// 表单校验\r\n\tdesc?: string\r\n\tid?: string\r\n\trequired?: boolean\r\n\tvalue?: string\r\n\tmodelValue: string\r\n\tbeforeChange?(): boolean | Promise<boolean>\r\n\tflex?: boolean\r\n}\r\n\r\nconst props = withDefaults(defineProps<ToCheckboxesProps>(), {\r\n\tdesc: '',\r\n\tid: '',\r\n\trequired: false,\r\n\tvalue: '',\r\n\tmodelValue: '',\r\n\tflex: false,\r\n\tbeforeChange: () => true\r\n})\r\n\r\nconst emit = defineEmits(['change', 'update:modelValue'])\r\n\r\n// 注入表单相关\r\nconst ToFormItem = inject('ToFormItem', '')\r\n\r\n// 响应式数据\r\nconst value = ref<string>(props.modelValue)\r\nconst maxId = ref<number>(-1)\r\nconst options = ref<any[]>([])\r\nconst checks = ref<any[]>([])\r\nconst removeItems = ref<any[]>([])\r\nconst timer = ref<NodeJS.Timeout | null>(null)\r\n\r\n// 计算属性\r\nconst validateRequired = computed(() => {\r\n\tif (props.required) {\r\n\t\treturn 'true'\r\n\t} else if (ToFormItem && (ToFormItem as any).required) {\r\n\t\treturn 'true'\r\n\t} else {\r\n\t\treturn 'false'\r\n\t}\r\n})\r\n\r\nconst validateDesc = computed(() => {\r\n\tif (props.desc) {\r\n\t\treturn props.desc\r\n\t} else if (ToFormItem && (ToFormItem as any).label) {\r\n\t\treturn (ToFormItem as any).label\r\n\t} else {\r\n\t\treturn ''\r\n\t}\r\n})\r\n\r\n// 方法\r\nconst change = (checked: boolean, value: string, label: string) => {\r\n\tlet arr: string[] = []\r\n\tchecks.value = options.value.filter(item => item.checked)\r\n\tchecks.value.forEach(el => {\r\n\t\tarr.push(el.value)\r\n\t})\r\n\temit('change', arr.join(','), checked, value, label)\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst clear = () => {\r\n\temit('change', '', false)\r\n\temit('update:modelValue', '')\r\n}\r\n\r\nconst all = () => {\r\n\tlet arr: string[] = []\r\n\toptions.value.forEach(el => {\r\n\t\tif (!el.disabled) {\r\n\t\t\tarr.push(el.value)\r\n\t\t}\r\n\t})\r\n\temit('change', arr.join(','))\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst observe = () => {\r\n\tlet arr: string[] = []\r\n\toptions.value\r\n\t\t.filter(item => !item.checked)\r\n\t\t.forEach(el => {\r\n\t\t\tarr.push(el.value)\r\n\t\t})\r\n\temit('change', arr.join(','))\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst removeItemValue = (itemOldValue: string) => {\r\n\tif (timer.value) {\r\n\t\tclearTimeout(timer.value)\r\n\t}\r\n\tremoveItems.value.push(itemOldValue)\r\n\r\n\ttimer.value = setTimeout(() => {\r\n\t\tlet arr = props.value.split(',')\r\n\t\tarr = arr.filter(item => !removeItems.value.includes(item))\r\n\t\toptions.value = options.value.filter(item => !removeItems.value.includes(item.value))\r\n\t\temit('change', arr.join(','))\r\n\t\temit('update:modelValue', arr.join(','))\r\n\t}, 1)\r\n}\r\n\r\nconst pushOptions = (option: { value: any; checked: boolean }) => {\r\n\tconst selectedValues = value.value.split(',').filter(v => v !== '')\r\n\tif (selectedValues.includes(String(option.value))) {\r\n\t\toption.checked = true\r\n\t}\r\n\toptions.value.push(option)\r\n\tchecks.value = options.value.filter(item => item.checked)\r\n}\r\n\r\n// 清理定时器\r\nonBeforeUnmount(() => {\r\n\tif (timer.value) {\r\n\t\tclearTimeout(timer.value)\r\n\t}\r\n})\r\n\r\n// 监听value变化,同步checkbox状态\r\nwatch(\r\n\t() => props.modelValue,\r\n\tnewVal => {\r\n\t\tif (newVal !== undefined) {\r\n\t\t\tconst selectedValues = newVal.split(',').filter(v => v !== '')\r\n\t\t\toptions.value.forEach(option => {\r\n\t\t\t\toption.checked = selectedValues.includes(String(option.value))\r\n\t\t\t})\r\n\t\t\tchecks.value = options.value.filter(item => item.checked)\r\n\t\t}\r\n\t}\r\n)\r\n\r\nexport interface ProvideType {\r\n\tvalue: import('vue').ComputedRef<string>\r\n\tprops: ToCheckboxesProps\r\n\tpushOptions: (option: { id?: number; value: any; label?: string; checked: boolean; disabled?: boolean }) => void\r\n\toptions: import('vue').Ref<\r\n\t\tArray<{\r\n\t\t\tid?: number\r\n\t\t\tvalue: any\r\n\t\t\tlabel?: string\r\n\t\t\tchecked: boolean\r\n\t\t\tdisabled?: boolean\r\n\t\t}>\r\n\t>\r\n\tremoveItemValue: (itemOldValue: any) => void\r\n\tchecks: import('vue').Ref<any[]>\r\n\tchange: (checked: boolean, value: any, label: string) => void\r\n\tmaxId: import('vue').Ref<number>\r\n}\r\n\r\nprovide<ProvideType>('ToCheckboxes', {\r\n\tvalue: computed(() => props.modelValue),\r\n\tprops,\r\n\tpushOptions,\r\n\toptions,\r\n\tremoveItemValue,\r\n\tchecks,\r\n\tchange,\r\n\tmaxId\r\n})\r\n\r\n// 暴露方法和数据给子组件\r\ndefineExpose({\r\n\tmaxId,\r\n\toptions,\r\n\tchecks,\r\n\tvalue: computed(() => props.modelValue),\r\n\tchange,\r\n\tclear,\r\n\tall,\r\n\tobserve,\r\n\tremoveItemValue,\r\n\tpushOptions\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","value","_createElementBlock","_renderSlot"],"mappings":";;AAEA,MAAA,cAA6BA,eAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,cAAA;AACP,CAAC,CAAA,CAAA;;;;;;;;;;;;;;AAyBD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAUd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,YAAA,EAAc,EAAE,CAAA,CAAA;AAG1C,IAAM,MAAA,KAAA,GAAQ,GAAY,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAC1C,IAAM,MAAA,KAAA,GAAQ,IAAY,CAAE,CAAA,CAAA,CAAA;AAC5B,IAAM,MAAA,OAAA,GAAU,GAAW,CAAA,EAAE,CAAA,CAAA;AAC7B,IAAM,MAAA,MAAA,GAAS,GAAW,CAAA,EAAE,CAAA,CAAA;AAC5B,IAAM,MAAA,WAAA,GAAc,GAAW,CAAA,EAAE,CAAA,CAAA;AACjC,IAAM,MAAA,KAAA,GAAQ,IAA2B,IAAI,CAAA,CAAA;AAG7C,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACvC,MAAA,IAAI,MAAM,QAAU,EAAA;AACnB,QAAO,OAAA,MAAA,CAAA;AAAA,OACR,MAAA,IAAW,UAAe,IAAA,UAAA,CAAmB,QAAU,EAAA;AACtD,QAAO,OAAA,MAAA,CAAA;AAAA,OACD,MAAA;AACN,QAAO,OAAA,OAAA,CAAA;AAAA,OACR;AAAA,KACA,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AACnC,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAA,OAAO,KAAM,CAAA,IAAA,CAAA;AAAA,OACd,MAAA,IAAW,UAAe,IAAA,UAAA,CAAmB,KAAO,EAAA;AACnD,QAAA,OAAQ,UAAmB,CAAA,KAAA,CAAA;AAAA,OACrB,MAAA;AACN,QAAO,OAAA,EAAA,CAAA;AAAA,OACR;AAAA,KACA,CAAA,CAAA;AAGD,IAAA,MAAM,MAAS,GAAA,CAAC,OAAkBC,EAAAA,MAAAA,EAAe,KAAkB,KAAA;AAClE,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,IAAA,KAAQ,KAAK,OAAO,CAAA,CAAA;AACxD,MAAO,MAAA,CAAA,KAAA,CAAM,QAAQ,CAAM,EAAA,KAAA;AAC1B,QAAI,GAAA,CAAA,IAAA,CAAK,GAAG,KAAK,CAAA,CAAA;AAAA,OACjB,CAAA,CAAA;AACD,MAAA,IAAA,CAAK,UAAU,GAAI,CAAA,IAAA,CAAK,GAAG,CAAG,EAAA,OAAA,EAASA,QAAO,KAAK,CAAA,CAAA;AACnD,MAAA,IAAA,CAAK,mBAAqB,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,KACxC,CAAA;AAEA,IAAA,MAAM,QAAQ,MAAM;AACnB,MAAK,IAAA,CAAA,QAAA,EAAU,IAAI,KAAK,CAAA,CAAA;AACxB,MAAA,IAAA,CAAK,qBAAqB,EAAE,CAAA,CAAA;AAAA,KAC7B,CAAA;AAEA,IAAA,MAAM,MAAM,MAAM;AACjB,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAQ,OAAA,CAAA,KAAA,CAAM,QAAQ,CAAM,EAAA,KAAA;AAC3B,QAAI,IAAA,CAAC,GAAG,QAAU,EAAA;AACjB,UAAI,GAAA,CAAA,IAAA,CAAK,GAAG,KAAK,CAAA,CAAA;AAAA,SAClB;AAAA,OACA,CAAA,CAAA;AACD,MAAA,IAAA,CAAK,QAAU,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAC5B,MAAA,IAAA,CAAK,mBAAqB,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,KACxC,CAAA;AAEA,IAAA,MAAM,UAAU,MAAM;AACrB,MAAA,IAAI,MAAgB,EAAC,CAAA;AACrB,MAAQ,OAAA,CAAA,KAAA,CACN,OAAO,CAAQ,IAAA,KAAA,CAAC,KAAK,OAAO,CAAA,CAC5B,QAAQ,CAAM,EAAA,KAAA;AACd,QAAI,GAAA,CAAA,IAAA,CAAK,GAAG,KAAK,CAAA,CAAA;AAAA,OACjB,CAAA,CAAA;AACF,MAAA,IAAA,CAAK,QAAU,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAC5B,MAAA,IAAA,CAAK,mBAAqB,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,KACxC,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,YAAyB,KAAA;AACjD,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAA,YAAA,CAAa,MAAM,KAAK,CAAA,CAAA;AAAA,OACzB;AACA,MAAY,WAAA,CAAA,KAAA,CAAM,KAAK,YAAY,CAAA,CAAA;AAEnC,MAAM,KAAA,CAAA,KAAA,GAAQ,WAAW,MAAM;AAC9B,QAAA,IAAI,GAAM,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC/B,QAAM,GAAA,GAAA,GAAA,CAAI,OAAO,CAAQ,IAAA,KAAA,CAAC,YAAY,KAAM,CAAA,QAAA,CAAS,IAAI,CAAC,CAAA,CAAA;AAC1D,QAAQ,OAAA,CAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,IAAA,KAAQ,CAAC,WAAA,CAAY,KAAM,CAAA,QAAA,CAAS,IAAK,CAAA,KAAK,CAAC,CAAA,CAAA;AACpF,QAAA,IAAA,CAAK,QAAU,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAC5B,QAAA,IAAA,CAAK,mBAAqB,EAAA,GAAA,CAAI,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,SACrC,CAAC,CAAA,CAAA;AAAA,KACL,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,MAA6C,KAAA;AACjE,MAAM,MAAA,cAAA,GAAiB,MAAM,KAAM,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,MAAA,CAAO,CAAK,CAAA,KAAA,CAAA,KAAM,EAAE,CAAA,CAAA;AAClE,MAAA,IAAI,eAAe,QAAS,CAAA,MAAA,CAAO,MAAO,CAAA,KAAK,CAAC,CAAG,EAAA;AAClD,QAAA,MAAA,CAAO,OAAU,GAAA,IAAA,CAAA;AAAA,OAClB;AACA,MAAQ,OAAA,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,CAAA;AACzB,MAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,IAAA,KAAQ,KAAK,OAAO,CAAA,CAAA;AAAA,KACzD,CAAA;AAGA,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAA,YAAA,CAAa,MAAM,KAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACA,CAAA,CAAA;AAGD,IAAA,KAAA;AAAA,MACC,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACT,QAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACzB,UAAM,MAAA,cAAA,GAAiB,OAAO,KAAM,CAAA,GAAG,EAAE,MAAO,CAAA,CAAA,CAAA,KAAK,MAAM,EAAE,CAAA,CAAA;AAC7D,UAAQ,OAAA,CAAA,KAAA,CAAM,QAAQ,CAAU,MAAA,KAAA;AAC/B,YAAA,MAAA,CAAO,UAAU,cAAe,CAAA,QAAA,CAAS,MAAO,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,WAC7D,CAAA,CAAA;AACD,UAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,CAAA,IAAA,KAAQ,KAAK,OAAO,CAAA,CAAA;AAAA,SACzD;AAAA,OACD;AAAA,KACD,CAAA;AAqBA,IAAA,OAAA,CAAqB,cAAgB,EAAA;AAAA,MACpC,KAAO,EAAA,QAAA,CAAS,MAAM,KAAA,CAAM,UAAU,CAAA;AAAA,MACtC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,KACA,CAAA,CAAA;AAGD,IAAa,QAAA,CAAA;AAAA,MACZ,KAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAO,EAAA,QAAA,CAAS,MAAM,KAAA,CAAM,UAAU,CAAA;AAAA,MACtC,MAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,KACA,CAAA,CAAA;;wBA/LA,EAAAC,kBAAA,CAGM,KAAA,EAAA;AAAA,QAHA,IAAI,OAAE,CAAA,EAAA;AAAA,QAAG,IAAM,EAAA,OAAA,CAAI,IAAG,GAAA,OAAA,CAAI,IAAA,GAAA,IAAA;AAAA;QACnB,iBAAgB,qCAA5BA,mBAA8J,MAAA,EAAA;AAAA;UAAjH,KAAM,EAAA,aAAA;AAAA,UAAe,KAAK,gBAAgB,CAAA,KAAA;AAAA,UAAG,MAAM,YAAY,CAAA,KAAA;AAAA,UAAG,KAAO,EAAA,MAAA,CAAM,KAAC,CAAA,MAAA,GAAM,IAAA,MAAA,GAAA,EAAA;AAAA;kBAA7F,KAAK,CAAA;AAAA;QAC3CC,UAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,wBAAA,cACd,CAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"Checkboxes.vue2.mjs","sources":["../../../../../../packages/components/checkboxes/src/Checkboxes.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToCheckboxes'\r\n});\n</script>\n<template>\r\n\t<div :id=\"id\" :flex=\"flex ? flex : null\">\r\n\t\t<span v-if=\"validateRequired\" v-show=\"false\" class=\"to-validate\" :req=\"validateRequired\" :desc=\"validateDesc\" :value=\"checks.length > 0 ? 'true' : ''\"></span>\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, inject, onBeforeUnmount, watch, provide } from 'vue'\r\n\r\n\r\n\r\nexport interface ToCheckboxesProps {\r\n\t// 表单校验\r\n\tdesc?: string\r\n\tid?: string\r\n\trequired?: boolean\r\n\tvalue?: string\r\n\tmodelValue: string\r\n\tbeforeChange?(): boolean | Promise<boolean>\r\n\tflex?: boolean\r\n}\r\n\r\nconst props = withDefaults(defineProps<ToCheckboxesProps>(), {\r\n\tdesc: '',\r\n\tid: '',\r\n\trequired: false,\r\n\tvalue: '',\r\n\tmodelValue: '',\r\n\tflex: false,\r\n\tbeforeChange: () => true\r\n})\r\n\r\nconst emit = defineEmits(['change', 'update:modelValue'])\r\n\r\n// 注入表单相关\r\nconst ToFormItem = inject('ToFormItem', '')\r\n\r\n// 响应式数据\r\nconst value = ref<string>(props.modelValue)\r\nconst maxId = ref<number>(-1)\r\nconst options = ref<any[]>([])\r\nconst checks = ref<any[]>([])\r\nconst removeItems = ref<any[]>([])\r\nconst timer = ref<NodeJS.Timeout | null>(null)\r\n\r\n// 计算属性\r\nconst validateRequired = computed(() => {\r\n\tif (props.required) {\r\n\t\treturn 'true'\r\n\t} else if (ToFormItem && (ToFormItem as any).required) {\r\n\t\treturn 'true'\r\n\t} else {\r\n\t\treturn 'false'\r\n\t}\r\n})\r\n\r\nconst validateDesc = computed(() => {\r\n\tif (props.desc) {\r\n\t\treturn props.desc\r\n\t} else if (ToFormItem && (ToFormItem as any).label) {\r\n\t\treturn (ToFormItem as any).label\r\n\t} else {\r\n\t\treturn ''\r\n\t}\r\n})\r\n\r\n// 方法\r\nconst change = (checked: boolean, value: string, label: string) => {\r\n\tlet arr: string[] = []\r\n\tchecks.value = options.value.filter(item => item.checked)\r\n\tchecks.value.forEach(el => {\r\n\t\tarr.push(el.value)\r\n\t})\r\n\temit('change', arr.join(','), checked, value, label)\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst clear = () => {\r\n\temit('change', '', false)\r\n\temit('update:modelValue', '')\r\n}\r\n\r\nconst all = () => {\r\n\tlet arr: string[] = []\r\n\toptions.value.forEach(el => {\r\n\t\tif (!el.disabled) {\r\n\t\t\tarr.push(el.value)\r\n\t\t}\r\n\t})\r\n\temit('change', arr.join(','))\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst observe = () => {\r\n\tlet arr: string[] = []\r\n\toptions.value\r\n\t\t.filter(item => !item.checked)\r\n\t\t.forEach(el => {\r\n\t\t\tarr.push(el.value)\r\n\t\t})\r\n\temit('change', arr.join(','))\r\n\temit('update:modelValue', arr.join(','))\r\n}\r\n\r\nconst removeItemValue = (itemOldValue: string) => {\r\n\tif (timer.value) {\r\n\t\tclearTimeout(timer.value)\r\n\t}\r\n\tremoveItems.value.push(itemOldValue)\r\n\r\n\ttimer.value = setTimeout(() => {\r\n\t\tlet arr = props.value.split(',')\r\n\t\tarr = arr.filter(item => !removeItems.value.includes(item))\r\n\t\toptions.value = options.value.filter(item => !removeItems.value.includes(item.value))\r\n\t\temit('change', arr.join(','))\r\n\t\temit('update:modelValue', arr.join(','))\r\n\t}, 1)\r\n}\r\n\r\nconst pushOptions = (option: { value: any; checked: boolean }) => {\r\n\tconst selectedValues = value.value.split(',').filter(v => v !== '')\r\n\tif (selectedValues.includes(String(option.value))) {\r\n\t\toption.checked = true\r\n\t}\r\n\toptions.value.push(option)\r\n\tchecks.value = options.value.filter(item => item.checked)\r\n}\r\n\r\n// 清理定时器\r\nonBeforeUnmount(() => {\r\n\tif (timer.value) {\r\n\t\tclearTimeout(timer.value)\r\n\t}\r\n})\r\n\r\n// 监听value变化,同步checkbox状态\r\nwatch(\r\n\t() => props.modelValue,\r\n\tnewVal => {\r\n\t\tif (newVal !== undefined) {\r\n\t\t\tconst selectedValues = newVal.split(',').filter(v => v !== '')\r\n\t\t\toptions.value.forEach(option => {\r\n\t\t\t\toption.checked = selectedValues.includes(String(option.value))\r\n\t\t\t})\r\n\t\t\tchecks.value = options.value.filter(item => item.checked)\r\n\t\t}\r\n\t}\r\n)\r\n\r\nexport interface ProvideType {\r\n\tvalue: import('vue').ComputedRef<string>\r\n\tprops: ToCheckboxesProps\r\n\tpushOptions: (option: { id?: number; value: any; label?: string; checked: boolean; disabled?: boolean }) => void\r\n\toptions: import('vue').Ref<\r\n\t\tArray<{\r\n\t\t\tid?: number\r\n\t\t\tvalue: any\r\n\t\t\tlabel?: string\r\n\t\t\tchecked: boolean\r\n\t\t\tdisabled?: boolean\r\n\t\t}>\r\n\t>\r\n\tremoveItemValue: (itemOldValue: any) => void\r\n\tchecks: import('vue').Ref<any[]>\r\n\tchange: (checked: boolean, value: any, label: string) => void\r\n\tmaxId: import('vue').Ref<number>\r\n}\r\n\r\nprovide<ProvideType>('ToCheckboxes', {\r\n\tvalue: computed(() => props.modelValue),\r\n\tprops,\r\n\tpushOptions,\r\n\toptions,\r\n\tremoveItemValue,\r\n\tchecks,\r\n\tchange,\r\n\tmaxId\r\n})\r\n\r\n// 暴露方法和数据给子组件\r\ndefineExpose({\r\n\tmaxId,\r\n\toptions,\r\n\tchecks,\r\n\tvalue: computed(() => props.modelValue),\r\n\tchange,\r\n\tclear,\r\n\tall,\r\n\tobserve,\r\n\tremoveItemValue,\r\n\tpushOptions\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","value","_createElementBlock","_renderSlot"],"mappings":"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"}