hy-dispatch-ui-v3 0.1.0

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 (232) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/tailwind.css +1083 -0
  4. package/es/bussiness/index.mjs +2 -0
  5. package/es/bussiness/index.mjs.map +1 -0
  6. package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs +204 -0
  7. package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs.map +1 -0
  8. package/es/components/appConfirmDialog/appConfirmMethod.mjs +73 -0
  9. package/es/components/appConfirmDialog/appConfirmMethod.mjs.map +1 -0
  10. package/es/components/appConfirmDialog/index.mjs +8 -0
  11. package/es/components/appConfirmDialog/index.mjs.map +1 -0
  12. package/es/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
  13. package/es/components/appDatePicker/appDatePicker.vue.mjs +99 -0
  14. package/es/components/appDatePicker/appDatePicker.vue.mjs.map +1 -0
  15. package/es/components/appDatePicker/index.mjs +7 -0
  16. package/es/components/appDatePicker/index.mjs.map +1 -0
  17. package/es/components/appDatePicker/style/appDatePicker.scss +0 -0
  18. package/es/components/appForm/appForm.vue.mjs +331 -0
  19. package/es/components/appForm/appForm.vue.mjs.map +1 -0
  20. package/es/components/appForm/index.mjs +8 -0
  21. package/es/components/appForm/index.mjs.map +1 -0
  22. package/es/components/appForm/js/index.mjs +87 -0
  23. package/es/components/appForm/js/index.mjs.map +1 -0
  24. package/es/components/appForm/js/useAppForm.mjs +149 -0
  25. package/es/components/appForm/js/useAppForm.mjs.map +1 -0
  26. package/es/components/appForm/style/appForm.scss +16 -0
  27. package/es/components/appOrgCascader/appOrgCascader.vue.mjs +229 -0
  28. package/es/components/appOrgCascader/appOrgCascader.vue.mjs.map +1 -0
  29. package/es/components/appOrgCascader/index.mjs +7 -0
  30. package/es/components/appOrgCascader/index.mjs.map +1 -0
  31. package/es/components/appOrgCascader/style/appOrgCascader.scss +0 -0
  32. package/es/components/appSearch/appSearch.vue.mjs +408 -0
  33. package/es/components/appSearch/appSearch.vue.mjs.map +1 -0
  34. package/es/components/appSearch/index.mjs +8 -0
  35. package/es/components/appSearch/index.mjs.map +1 -0
  36. package/es/components/appSearch/js/index.mjs +114 -0
  37. package/es/components/appSearch/js/index.mjs.map +1 -0
  38. package/es/components/appSearch/js/useAppSearch.mjs +178 -0
  39. package/es/components/appSearch/js/useAppSearch.mjs.map +1 -0
  40. package/es/components/appSearch/style/appSearch.scss +53 -0
  41. package/es/components/appTable/appTable.vue.mjs +578 -0
  42. package/es/components/appTable/appTable.vue.mjs.map +1 -0
  43. package/es/components/appTable/cpns/columnSelect.vue.mjs +414 -0
  44. package/es/components/appTable/cpns/columnSelect.vue.mjs.map +1 -0
  45. package/es/components/appTable/index.mjs +8 -0
  46. package/es/components/appTable/index.mjs.map +1 -0
  47. package/es/components/appTable/js/index.mjs +304 -0
  48. package/es/components/appTable/js/index.mjs.map +1 -0
  49. package/es/components/appTable/js/search.mjs +129 -0
  50. package/es/components/appTable/js/search.mjs.map +1 -0
  51. package/es/components/appTable/js/useAppTable.mjs +63 -0
  52. package/es/components/appTable/js/useAppTable.mjs.map +1 -0
  53. package/es/components/appTable/style/appTable.scss +15 -0
  54. package/es/components/appTooltip/appTooltip.vue.mjs +94 -0
  55. package/es/components/appTooltip/appTooltip.vue.mjs.map +1 -0
  56. package/es/components/appTooltip/index.mjs +7 -0
  57. package/es/components/appTooltip/index.mjs.map +1 -0
  58. package/es/components/appTooltip/style/appTooltip.scss +0 -0
  59. package/es/components/index.mjs +12 -0
  60. package/es/components/index.mjs.map +1 -0
  61. package/es/components/svgIcon/iconBox.vue.mjs +99 -0
  62. package/es/components/svgIcon/iconBox.vue.mjs.map +1 -0
  63. package/es/components/svgIcon/index.mjs +9 -0
  64. package/es/components/svgIcon/index.mjs.map +1 -0
  65. package/es/components/svgIcon/style/iconBox.scss +13 -0
  66. package/es/components/svgIcon/style/svgIcon.scss +12 -0
  67. package/es/components/svgIcon/svgIcon.vue.mjs +47 -0
  68. package/es/components/svgIcon/svgIcon.vue.mjs.map +1 -0
  69. package/es/config/index.mjs +2 -0
  70. package/es/config/index.mjs.map +1 -0
  71. package/es/constants/index.mjs +4 -0
  72. package/es/constants/index.mjs.map +1 -0
  73. package/es/constants/keys.mjs +2 -0
  74. package/es/constants/keys.mjs.map +1 -0
  75. package/es/hooks/index.mjs +5 -0
  76. package/es/hooks/index.mjs.map +1 -0
  77. package/es/hooks/useApi.mjs +10 -0
  78. package/es/hooks/useApi.mjs.map +1 -0
  79. package/es/hooks/useGlobalConfig.mjs +56 -0
  80. package/es/hooks/useGlobalConfig.mjs.map +1 -0
  81. package/es/hooks/useLocale.mjs +34 -0
  82. package/es/hooks/useLocale.mjs.map +1 -0
  83. package/es/hooks/useMixins.mjs +19 -0
  84. package/es/hooks/useMixins.mjs.map +1 -0
  85. package/es/index.mjs +30 -0
  86. package/es/index.mjs.map +1 -0
  87. package/es/locale/en_US.mjs +67 -0
  88. package/es/locale/en_US.mjs.map +1 -0
  89. package/es/locale/index.mjs +3 -0
  90. package/es/locale/index.mjs.map +1 -0
  91. package/es/locale/zh_CN.mjs +67 -0
  92. package/es/locale/zh_CN.mjs.map +1 -0
  93. package/es/make-installer.mjs +29 -0
  94. package/es/make-installer.mjs.map +1 -0
  95. package/es/store/index.mjs +7 -0
  96. package/es/store/index.mjs.map +1 -0
  97. package/es/store/maintain.mjs +90 -0
  98. package/es/store/maintain.mjs.map +1 -0
  99. package/es/style/index.scss +46 -0
  100. package/es/style/tailwind.scss +3 -0
  101. package/es/style/theme.scss +123 -0
  102. package/es/utils/adaptive.mjs +30 -0
  103. package/es/utils/adaptive.mjs.map +1 -0
  104. package/es/utils/bus.mjs +6 -0
  105. package/es/utils/bus.mjs.map +1 -0
  106. package/es/utils/crypto.mjs +21 -0
  107. package/es/utils/crypto.mjs.map +1 -0
  108. package/es/utils/date.mjs +25 -0
  109. package/es/utils/date.mjs.map +1 -0
  110. package/es/utils/handler.mjs +83 -0
  111. package/es/utils/handler.mjs.map +1 -0
  112. package/es/utils/index.mjs +7 -0
  113. package/es/utils/index.mjs.map +1 -0
  114. package/es/utils/is.mjs +19 -0
  115. package/es/utils/is.mjs.map +1 -0
  116. package/es/version.mjs +4 -0
  117. package/es/version.mjs.map +1 -0
  118. package/lib/bussiness/index.js +3 -0
  119. package/lib/bussiness/index.js.map +1 -0
  120. package/lib/components/appConfirmDialog/appConfirmDialog.vue.js +208 -0
  121. package/lib/components/appConfirmDialog/appConfirmDialog.vue.js.map +1 -0
  122. package/lib/components/appConfirmDialog/appConfirmMethod.js +77 -0
  123. package/lib/components/appConfirmDialog/appConfirmMethod.js.map +1 -0
  124. package/lib/components/appConfirmDialog/index.js +13 -0
  125. package/lib/components/appConfirmDialog/index.js.map +1 -0
  126. package/lib/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
  127. package/lib/components/appDatePicker/appDatePicker.vue.js +103 -0
  128. package/lib/components/appDatePicker/appDatePicker.vue.js.map +1 -0
  129. package/lib/components/appDatePicker/index.js +12 -0
  130. package/lib/components/appDatePicker/index.js.map +1 -0
  131. package/lib/components/appDatePicker/style/appDatePicker.scss +0 -0
  132. package/lib/components/appForm/appForm.vue.js +335 -0
  133. package/lib/components/appForm/appForm.vue.js.map +1 -0
  134. package/lib/components/appForm/index.js +14 -0
  135. package/lib/components/appForm/index.js.map +1 -0
  136. package/lib/components/appForm/js/index.js +93 -0
  137. package/lib/components/appForm/js/index.js.map +1 -0
  138. package/lib/components/appForm/js/useAppForm.js +152 -0
  139. package/lib/components/appForm/js/useAppForm.js.map +1 -0
  140. package/lib/components/appForm/style/appForm.scss +16 -0
  141. package/lib/components/appOrgCascader/appOrgCascader.vue.js +233 -0
  142. package/lib/components/appOrgCascader/appOrgCascader.vue.js.map +1 -0
  143. package/lib/components/appOrgCascader/index.js +12 -0
  144. package/lib/components/appOrgCascader/index.js.map +1 -0
  145. package/lib/components/appOrgCascader/style/appOrgCascader.scss +0 -0
  146. package/lib/components/appSearch/appSearch.vue.js +412 -0
  147. package/lib/components/appSearch/appSearch.vue.js.map +1 -0
  148. package/lib/components/appSearch/index.js +14 -0
  149. package/lib/components/appSearch/index.js.map +1 -0
  150. package/lib/components/appSearch/js/index.js +122 -0
  151. package/lib/components/appSearch/js/index.js.map +1 -0
  152. package/lib/components/appSearch/js/useAppSearch.js +181 -0
  153. package/lib/components/appSearch/js/useAppSearch.js.map +1 -0
  154. package/lib/components/appSearch/style/appSearch.scss +53 -0
  155. package/lib/components/appTable/appTable.vue.js +582 -0
  156. package/lib/components/appTable/appTable.vue.js.map +1 -0
  157. package/lib/components/appTable/cpns/columnSelect.vue.js +418 -0
  158. package/lib/components/appTable/cpns/columnSelect.vue.js.map +1 -0
  159. package/lib/components/appTable/index.js +14 -0
  160. package/lib/components/appTable/index.js.map +1 -0
  161. package/lib/components/appTable/js/index.js +311 -0
  162. package/lib/components/appTable/js/index.js.map +1 -0
  163. package/lib/components/appTable/js/search.js +131 -0
  164. package/lib/components/appTable/js/search.js.map +1 -0
  165. package/lib/components/appTable/js/useAppTable.js +65 -0
  166. package/lib/components/appTable/js/useAppTable.js.map +1 -0
  167. package/lib/components/appTable/style/appTable.scss +15 -0
  168. package/lib/components/appTooltip/appTooltip.vue.js +98 -0
  169. package/lib/components/appTooltip/appTooltip.vue.js.map +1 -0
  170. package/lib/components/appTooltip/index.js +12 -0
  171. package/lib/components/appTooltip/index.js.map +1 -0
  172. package/lib/components/appTooltip/style/appTooltip.scss +0 -0
  173. package/lib/components/index.js +29 -0
  174. package/lib/components/index.js.map +1 -0
  175. package/lib/components/svgIcon/iconBox.vue.js +103 -0
  176. package/lib/components/svgIcon/iconBox.vue.js.map +1 -0
  177. package/lib/components/svgIcon/index.js +15 -0
  178. package/lib/components/svgIcon/index.js.map +1 -0
  179. package/lib/components/svgIcon/style/iconBox.scss +13 -0
  180. package/lib/components/svgIcon/style/svgIcon.scss +12 -0
  181. package/lib/components/svgIcon/svgIcon.vue.js +51 -0
  182. package/lib/components/svgIcon/svgIcon.vue.js.map +1 -0
  183. package/lib/config/index.js +3 -0
  184. package/lib/config/index.js.map +1 -0
  185. package/lib/constants/index.js +6 -0
  186. package/lib/constants/index.js.map +1 -0
  187. package/lib/constants/keys.js +3 -0
  188. package/lib/constants/keys.js.map +1 -0
  189. package/lib/hooks/index.js +21 -0
  190. package/lib/hooks/index.js.map +1 -0
  191. package/lib/hooks/useApi.js +13 -0
  192. package/lib/hooks/useApi.js.map +1 -0
  193. package/lib/hooks/useGlobalConfig.js +59 -0
  194. package/lib/hooks/useGlobalConfig.js.map +1 -0
  195. package/lib/hooks/useLocale.js +41 -0
  196. package/lib/hooks/useLocale.js.map +1 -0
  197. package/lib/hooks/useMixins.js +21 -0
  198. package/lib/hooks/useMixins.js.map +1 -0
  199. package/lib/index.js +85 -0
  200. package/lib/index.js.map +1 -0
  201. package/lib/locale/en_US.js +71 -0
  202. package/lib/locale/en_US.js.map +1 -0
  203. package/lib/locale/index.js +10 -0
  204. package/lib/locale/index.js.map +1 -0
  205. package/lib/locale/zh_CN.js +71 -0
  206. package/lib/locale/zh_CN.js.map +1 -0
  207. package/lib/make-installer.js +33 -0
  208. package/lib/make-installer.js.map +1 -0
  209. package/lib/store/index.js +10 -0
  210. package/lib/store/index.js.map +1 -0
  211. package/lib/store/maintain.js +92 -0
  212. package/lib/store/maintain.js.map +1 -0
  213. package/lib/style/index.scss +46 -0
  214. package/lib/style/tailwind.scss +3 -0
  215. package/lib/style/theme.scss +123 -0
  216. package/lib/utils/adaptive.js +35 -0
  217. package/lib/utils/adaptive.js.map +1 -0
  218. package/lib/utils/bus.js +8 -0
  219. package/lib/utils/bus.js.map +1 -0
  220. package/lib/utils/crypto.js +25 -0
  221. package/lib/utils/crypto.js.map +1 -0
  222. package/lib/utils/date.js +27 -0
  223. package/lib/utils/date.js.map +1 -0
  224. package/lib/utils/handler.js +89 -0
  225. package/lib/utils/handler.js.map +1 -0
  226. package/lib/utils/index.js +38 -0
  227. package/lib/utils/index.js.map +1 -0
  228. package/lib/utils/is.js +32 -0
  229. package/lib/utils/is.js.map +1 -0
  230. package/lib/version.js +6 -0
  231. package/lib/version.js.map +1 -0
  232. package/package.json +102 -0
@@ -0,0 +1,412 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var elementPlus = require('element-plus');
7
+ var iconsVue = require('@element-plus/icons-vue');
8
+ var appDatePicker = require('../appDatePicker/appDatePicker.vue.js');
9
+ var index = require('./js/index.js');
10
+ var useAppSearch = require('./js/useAppSearch.js');
11
+ var useLocale = require('../../hooks/useLocale.js');
12
+ var is = require('../../utils/is.js');
13
+
14
+ import "./style/appSearch.scss";
15
+
16
+ const __default__ = vue.defineComponent({
17
+ name: "AppSearch"
18
+ });
19
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
20
+ props: {
21
+ model: {
22
+ type: Object,
23
+ default: () => ({})
24
+ },
25
+ columns: {
26
+ type: Array,
27
+ default: () => []
28
+ },
29
+ loading: {
30
+ type: Boolean,
31
+ default: false
32
+ },
33
+ size: {
34
+ type: String,
35
+ default: "default"
36
+ // '' | 'large' | 'default' | 'small'
37
+ },
38
+ hidden: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ class: {
43
+ type: [String, Array, Object]
44
+ }
45
+ },
46
+ emits: ["search"],
47
+ setup(__props, { expose: __expose, emit: __emit }) {
48
+ const props = __props;
49
+ const emits = __emit;
50
+ const { t } = useLocale.useLocale();
51
+ const formItemWrapper = vue.useTemplateRef("formItemWrapper");
52
+ const { isExpand, containerHeight, switchShrink, shrinkDestroy } = index.useShrink(
53
+ props,
54
+ formItemWrapper
55
+ );
56
+ const formColumnMap = vue.computed(() => {
57
+ return (props.columns || []).reduce((map, column) => {
58
+ if (is.isArray(column.field)) {
59
+ column.field.forEach((key) => map.set(key, column));
60
+ } else {
61
+ map.set(column.field, column);
62
+ }
63
+ return map;
64
+ }, /* @__PURE__ */ new Map());
65
+ });
66
+ const filterCount = vue.computed(() => {
67
+ const defaultValue = useAppSearch.resetAppSearchValue(props.columns);
68
+ const keys = Object.keys(defaultValue);
69
+ if (!(keys == null ? void 0 : keys.length)) return 0;
70
+ const keySet = keys.reduce((keySet2, key) => {
71
+ if (index.isEmptyValue(defaultValue[key]) ? !index.isEmptyValue(props.model[key]) : defaultValue[key] !== props.model[key]) {
72
+ if (vue.unref(formColumnMap).has(key)) {
73
+ keySet2.add(vue.unref(formColumnMap).get(key).key);
74
+ }
75
+ }
76
+ return keySet2;
77
+ }, /* @__PURE__ */ new Set());
78
+ return keySet.size;
79
+ });
80
+ const appClass = vue.computed(() => {
81
+ return [
82
+ props.class,
83
+ { "app-search-hidden": props.hidden }
84
+ ].filter(Boolean);
85
+ });
86
+ const containerStyle = vue.computed(() => {
87
+ const style = {};
88
+ if (props.hidden) {
89
+ style.height = `0px`;
90
+ } else if (vue.unref(containerHeight)) {
91
+ style.height = `${vue.unref(containerHeight)}px`;
92
+ }
93
+ return style;
94
+ });
95
+ vue.onUnmounted(() => {
96
+ shrinkDestroy();
97
+ });
98
+ function onChangeHandler(value, column) {
99
+ var _a;
100
+ if ((_a = column.attrs) == null ? void 0 : _a.onChange) {
101
+ column.attrs.onChange(value);
102
+ }
103
+ emits("search");
104
+ }
105
+ function onKeydownEnterHander(e) {
106
+ emits("search");
107
+ }
108
+ function resetFields(fields) {
109
+ let columns = props.columns || [];
110
+ if (fields && (fields == null ? void 0 : fields.length)) {
111
+ columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean);
112
+ }
113
+ useAppSearch.resetAppSearchValue(columns, props.model);
114
+ }
115
+ function onResetHandler() {
116
+ resetFields();
117
+ emits("search");
118
+ }
119
+ function onTimeRangeClickHandler(column, options) {
120
+ const { field } = column;
121
+ const dateValue = index.timeRangeHandler(column, options);
122
+ if (is.isArray(field)) {
123
+ props.model[field[0]] = dateValue[0];
124
+ props.model[field[1]] = dateValue[1];
125
+ } else {
126
+ props.model[field] = dateValue;
127
+ }
128
+ emits("search");
129
+ }
130
+ __expose({
131
+ resetFields
132
+ });
133
+ return (_ctx, _cache) => {
134
+ return vue.openBlock(), vue.createElementBlock(
135
+ "div",
136
+ {
137
+ class: vue.normalizeClass(["app-search", appClass.value])
138
+ },
139
+ [
140
+ vue.createElementVNode(
141
+ "div",
142
+ {
143
+ class: vue.normalizeClass(["app-search-header", { "app-search-header-hidden": __props.hidden }])
144
+ },
145
+ [
146
+ vue.createElementVNode("div", { class: "flex items-center gap-2" }, [
147
+ vue.createVNode(vue.unref(elementPlus.ElIcon), { size: "12" }, {
148
+ default: vue.withCtx(() => [
149
+ vue.createVNode(vue.unref(iconsVue.Filter))
150
+ ]),
151
+ _: 1
152
+ /* STABLE */
153
+ }),
154
+ vue.createElementVNode(
155
+ "span",
156
+ null,
157
+ vue.toDisplayString(vue.unref(t)("hy.filter")),
158
+ 1
159
+ /* TEXT */
160
+ ),
161
+ filterCount.value > 0 ? (vue.openBlock(), vue.createElementBlock(
162
+ vue.Fragment,
163
+ { key: 0 },
164
+ [
165
+ vue.createElementVNode(
166
+ "span",
167
+ { class: "bg-theme02 text-theme font-bold leading-4 px-[6px]" },
168
+ vue.toDisplayString(filterCount.value),
169
+ 1
170
+ /* TEXT */
171
+ ),
172
+ vue.createElementVNode(
173
+ "span",
174
+ {
175
+ class: "text-auxiliary cursor-pointer",
176
+ onClick: onResetHandler
177
+ },
178
+ vue.toDisplayString(vue.unref(t)("hy.reset")),
179
+ 1
180
+ /* TEXT */
181
+ )
182
+ ],
183
+ 64
184
+ /* STABLE_FRAGMENT */
185
+ )) : vue.createCommentVNode("v-if", true)
186
+ ]),
187
+ vue.createElementVNode("div", {
188
+ class: "ml-auto flex items-center gap-4 cursor-pointer select-none",
189
+ onClick: vue.unref(switchShrink)
190
+ }, [
191
+ vue.createElementVNode(
192
+ "span",
193
+ { class: "text-auxiliary" },
194
+ vue.toDisplayString(vue.unref(isExpand) ? vue.unref(t)("hy.packUp") : vue.unref(t)("hy.expand")),
195
+ 1
196
+ /* TEXT */
197
+ ),
198
+ vue.createVNode(vue.unref(elementPlus.ElIcon), {
199
+ size: "12",
200
+ class: "transition-all duration-300",
201
+ style: vue.normalizeStyle({ transform: `rotateX(${vue.unref(isExpand) ? -180 : 0}deg)` })
202
+ }, {
203
+ default: vue.withCtx(() => [
204
+ vue.createVNode(vue.unref(iconsVue.ArrowDown))
205
+ ]),
206
+ _: 1
207
+ /* STABLE */
208
+ }, 8, ["style"])
209
+ ], 8, ["onClick"])
210
+ ],
211
+ 2
212
+ /* CLASS */
213
+ ),
214
+ vue.createVNode(vue.unref(elementPlus.ElForm), vue.mergeProps({
215
+ model: __props.model,
216
+ "label-position": "top",
217
+ size: __props.size,
218
+ class: "app-search-form"
219
+ }, _ctx.$attrs, { style: containerStyle.value }), {
220
+ default: vue.withCtx(() => [
221
+ vue.createElementVNode(
222
+ "div",
223
+ {
224
+ ref_key: "formItemWrapper",
225
+ ref: formItemWrapper,
226
+ class: "app-search-container"
227
+ },
228
+ [
229
+ vue.createCommentVNode(" \u8868\u5355\u9879 "),
230
+ (vue.openBlock(true), vue.createElementBlock(
231
+ vue.Fragment,
232
+ null,
233
+ vue.renderList(__props.columns, (column) => {
234
+ return vue.openBlock(), vue.createElementBlock(
235
+ vue.Fragment,
236
+ {
237
+ key: column.key
238
+ },
239
+ [
240
+ vue.unref(index.columnShowHandler)(props, column) ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElFormItem), {
241
+ key: 0,
242
+ prop: vue.unref(is.isArray)(column.field) ? column.field[0] : column.field
243
+ }, {
244
+ default: vue.withCtx(() => {
245
+ var _a, _b, _c;
246
+ return [
247
+ vue.createElementVNode("div", { class: "flex bg-backgroundv2 rounded" }, [
248
+ vue.createElementVNode(
249
+ "div",
250
+ {
251
+ class: "flex",
252
+ style: vue.normalizeStyle(vue.unref(index.columnItemStyle)(props, column))
253
+ },
254
+ [
255
+ vue.createCommentVNode(" \u8868\u5355label "),
256
+ vue.createElementVNode("div", { class: "flex items-center text-auxiliary text-xs px-3 whitespace-nowrap border-r border-border" }, [
257
+ column.labelSlot && _ctx.$slots[column.labelSlot] ? vue.renderSlot(_ctx.$slots, column.labelSlot, {
258
+ key: 0,
259
+ column
260
+ }) : (vue.openBlock(), vue.createElementBlock(
261
+ "span",
262
+ { key: 1 },
263
+ vue.toDisplayString(column.label),
264
+ 1
265
+ /* TEXT */
266
+ ))
267
+ ]),
268
+ vue.createCommentVNode(" \u8868\u5355\u7EC4\u4EF6 "),
269
+ vue.createElementVNode(
270
+ "div",
271
+ {
272
+ style: vue.normalizeStyle(vue.unref(index.columnItemInputStyle)(props, column))
273
+ },
274
+ [
275
+ vue.createCommentVNode(" \u81EA\u5B9A\u4E49\u5177\u540D\u63D2\u69FD "),
276
+ column.slot ? vue.renderSlot(_ctx.$slots, column.slot, {
277
+ key: 0,
278
+ column
279
+ }) : column.type === "input" ? (vue.openBlock(), vue.createElementBlock(
280
+ vue.Fragment,
281
+ { key: 1 },
282
+ [
283
+ vue.createCommentVNode(" \u8F93\u5165\u6846 "),
284
+ vue.createVNode(vue.unref(elementPlus.ElInput), vue.mergeProps({
285
+ modelValue: __props.model[column.field],
286
+ "onUpdate:modelValue": ($event) => __props.model[column.field] = $event
287
+ }, { ref_for: true }, column.attrs, {
288
+ disabled: vue.unref(index.isDisabled)(props, column),
289
+ onKeydown: vue.withKeys(($event) => onKeydownEnterHander(), ["enter"]),
290
+ onChange: ($event) => onChangeHandler($event, column)
291
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "onKeydown", "onChange"])
292
+ ],
293
+ 2112
294
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
295
+ )) : column.type === "select" ? (vue.openBlock(), vue.createElementBlock(
296
+ vue.Fragment,
297
+ { key: 2 },
298
+ [
299
+ vue.createCommentVNode(" \u9009\u62E9\u6846 "),
300
+ vue.createVNode(vue.unref(elementPlus.ElSelect), vue.mergeProps({
301
+ modelValue: __props.model[column.field],
302
+ "onUpdate:modelValue": ($event) => __props.model[column.field] = $event
303
+ }, { ref_for: true }, column.attrs, {
304
+ disabled: vue.unref(index.isDisabled)(props, column),
305
+ onChange: ($event) => onChangeHandler($event, column)
306
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
307
+ ],
308
+ 2112
309
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
310
+ )) : column.type === "date-picker" ? (vue.openBlock(), vue.createElementBlock(
311
+ vue.Fragment,
312
+ { key: 3 },
313
+ [
314
+ vue.createCommentVNode(" \u65E5\u671F\u9009\u62E9\u6846 "),
315
+ [
316
+ "datetimerange",
317
+ "daterange",
318
+ "monthrange",
319
+ "yearrange"
320
+ ].includes((_a = column.attrs) == null ? void 0 : _a.type) && vue.unref(is.isArray)(column.field) ? (vue.openBlock(), vue.createBlock(appDatePicker.default, vue.mergeProps({
321
+ key: 0,
322
+ start: __props.model[column.field[0]],
323
+ "onUpdate:start": ($event) => __props.model[column.field[0]] = $event,
324
+ end: __props.model[column.field[1]],
325
+ "onUpdate:end": ($event) => __props.model[column.field[1]] = $event,
326
+ "is-range": true,
327
+ style: { "width": "100%" }
328
+ }, { ref_for: true }, column.attrs, {
329
+ disabled: vue.unref(index.isDisabled)(props, column),
330
+ timeRangeFill: column.timeRangeFill,
331
+ onChange: ($event) => onChangeHandler($event, column)
332
+ }), null, 16, ["start", "onUpdate:start", "end", "onUpdate:end", "disabled", "timeRangeFill", "onChange"])) : (vue.openBlock(), vue.createBlock(appDatePicker.default, vue.mergeProps({
333
+ key: 1,
334
+ modelValue: __props.model[column.field],
335
+ "onUpdate:modelValue": ($event) => __props.model[column.field] = $event,
336
+ "is-range": false,
337
+ style: { "width": "100%" }
338
+ }, { ref_for: true }, column.attrs, {
339
+ disabled: vue.unref(index.isDisabled)(props, column),
340
+ timeRangeFill: column.timeRangeFill,
341
+ onChange: ($event) => onChangeHandler($event, column)
342
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "timeRangeFill", "onChange"]))
343
+ ],
344
+ 64
345
+ /* STABLE_FRAGMENT */
346
+ )) : vue.createCommentVNode("v-if", true)
347
+ ],
348
+ 4
349
+ /* STYLE */
350
+ )
351
+ ],
352
+ 4
353
+ /* STYLE */
354
+ ),
355
+ column.type === "date-picker" && ["daterange", "datetimerange"].includes((_b = column.attrs) == null ? void 0 : _b.type) && ((_c = column.timeRangeOptions) == null ? void 0 : _c.length) ? (vue.openBlock(), vue.createElementBlock("div", {
356
+ key: 0,
357
+ class: "flex text-main"
358
+ }, [
359
+ (vue.openBlock(true), vue.createElementBlock(
360
+ vue.Fragment,
361
+ null,
362
+ vue.renderList(column.timeRangeOptions, (item, index) => {
363
+ return vue.openBlock(), vue.createElementBlock("div", {
364
+ key: index,
365
+ class: "border-l border-border px-[10px] cursor-pointer",
366
+ onClick: ($event) => onTimeRangeClickHandler(column, item)
367
+ }, [
368
+ vue.createElementVNode(
369
+ "span",
370
+ null,
371
+ vue.toDisplayString(item.label),
372
+ 1
373
+ /* TEXT */
374
+ )
375
+ ], 8, ["onClick"]);
376
+ }),
377
+ 128
378
+ /* KEYED_FRAGMENT */
379
+ ))
380
+ ])) : vue.createCommentVNode("v-if", true)
381
+ ])
382
+ ];
383
+ }),
384
+ _: 2
385
+ /* DYNAMIC */
386
+ }, 1032, ["prop"])) : vue.createCommentVNode("v-if", true)
387
+ ],
388
+ 64
389
+ /* STABLE_FRAGMENT */
390
+ );
391
+ }),
392
+ 128
393
+ /* KEYED_FRAGMENT */
394
+ ))
395
+ ],
396
+ 512
397
+ /* NEED_PATCH */
398
+ )
399
+ ]),
400
+ _: 3
401
+ /* FORWARDED */
402
+ }, 16, ["model", "size", "style"])
403
+ ],
404
+ 2
405
+ /* CLASS */
406
+ );
407
+ };
408
+ }
409
+ });
410
+
411
+ exports.default = _sfc_main;
412
+ //# sourceMappingURL=appSearch.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appSearch.vue.js","sources":["../../../packages/components/appSearch/appSearch.vue"],"sourcesContent":["<script setup>\nimport { computed, onUnmounted, unref, useTemplateRef } from 'vue'\nimport {\n ElForm,\n ElFormItem,\n ElInput,\n ElSelect,\n ElIcon,\n} from 'element-plus'\nimport { ArrowDown, Filter } from '@element-plus/icons-vue'\n// import SvgIcon from '../svgIcon'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport { isArray } from '@hy-dispatch-ui-v3/utils'\nimport appDatePicker from '../appDatePicker/appDatePicker.vue'\nimport {\n useShrink,\n columnItemStyle,\n columnItemInputStyle,\n columnShowHandler,\n isDisabled,\n isEmptyValue,\n timeRangeHandler,\n} from './js/index.js'\nimport { resetAppSearchValue } from './js/useAppSearch.js'\nimport './style/appSearch.scss'\n\ndefineOptions({\n name: 'AppSearch',\n})\n\nconst props = defineProps({\n model: {\n type: Object,\n default: () => ({}),\n },\n columns: {\n type: Array,\n default: () => [],\n },\n loading: {\n type: Boolean,\n default: false,\n },\n size: {\n type: String,\n default: 'default', // '' | 'large' | 'default' | 'small'\n },\n hidden: {\n type: Boolean,\n default: false\n },\n class: {\n type: [String, Array, Object],\n },\n})\nconst emits = defineEmits(['search'])\n\nconst { t } = useLocale()\nconst formItemWrapper = useTemplateRef('formItemWrapper')\nconst { isExpand, containerHeight, switchShrink, shrinkDestroy } = useShrink(\n props,\n formItemWrapper\n)\nconst formColumnMap = computed(() => {\n return (props.columns || []).reduce((map, column) => {\n if (isArray(column.field)) {\n column.field.forEach((key) => map.set(key, column))\n } else {\n map.set(column.field, column)\n }\n return map\n }, new Map())\n})\nconst filterCount = computed(() => {\n const defaultValue = resetAppSearchValue(props.columns)\n const keys = Object.keys(defaultValue)\n if (!keys?.length) return 0\n const keySet = keys.reduce((keySet, key) => {\n if (\n isEmptyValue(defaultValue[key])\n ? !isEmptyValue(props.model[key])\n : defaultValue[key] !== props.model[key]\n ) {\n if (unref(formColumnMap).has(key)) {\n keySet.add(unref(formColumnMap).get(key).key)\n }\n }\n return keySet\n }, new Set())\n return keySet.size\n})\nconst appClass = computed(() => {\n return [\n props.class,\n { 'app-search-hidden': props.hidden },\n ].filter(Boolean)\n})\nconst containerStyle = computed(() => {\n const style = {}\n if (props.hidden) {\n style.height = `0px`\n } else if (unref(containerHeight)) {\n style.height = `${unref(containerHeight)}px`\n }\n return style\n})\n\nonUnmounted(() => {\n shrinkDestroy()\n})\n\nfunction onChangeHandler(value, column) {\n if (column.attrs?.onChange) {\n column.attrs.onChange(value)\n }\n emits('search')\n}\nfunction onKeydownEnterHander(e) {\n emits('search')\n}\nfunction resetFields(fields) {\n let columns = props.columns || []\n if (fields && fields?.length) {\n columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean)\n }\n resetAppSearchValue(columns, props.model)\n}\nfunction onResetHandler() {\n resetFields()\n emits('search')\n}\nfunction onTimeRangeClickHandler(column, options) {\n const { field } = column\n const dateValue = timeRangeHandler(column, options)\n if (isArray(field)) {\n props.model[field[0]] = dateValue[0]\n props.model[field[1]] = dateValue[1]\n } else {\n props.model[field] = dateValue\n }\n emits('search')\n}\n\ndefineExpose({\n resetFields,\n})\n</script>\n\n<template>\n <div class=\"app-search\" :class=\"appClass\">\n <div\n class=\"app-search-header\"\n :class=\"{ 'app-search-header-hidden': hidden }\"\n >\n <div class=\"flex items-center gap-2\">\n <el-icon size=\"12\"><Filter /></el-icon>\n <span>{{ t('hy.filter') }}</span>\n <template v-if=\"filterCount > 0\">\n <span class=\"bg-theme02 text-theme font-bold leading-4 px-[6px]\">{{\n filterCount\n }}</span>\n <span class=\"text-auxiliary cursor-pointer\" @click=\"onResetHandler\">{{\n t('hy.reset')\n }}</span>\n </template>\n </div>\n <div\n class=\"ml-auto flex items-center gap-4 cursor-pointer select-none\"\n @click=\"switchShrink\"\n >\n <span class=\"text-auxiliary\">{{\n isExpand ? t('hy.packUp') : t('hy.expand')\n }}</span>\n <el-icon\n size=\"12\"\n class=\"transition-all duration-300\"\n :style=\"{ transform: `rotateX(${isExpand ? -180 : 0}deg)` }\"\n ><ArrowDown\n /></el-icon>\n </div>\n </div>\n <el-form\n :model=\"model\"\n label-position=\"top\"\n :size=\"size\"\n class=\"app-search-form\"\n v-bind=\"$attrs\"\n :style=\"containerStyle\"\n >\n <div ref=\"formItemWrapper\" class=\"app-search-container\">\n <!-- 表单项 -->\n <template v-for=\"column in columns\" :key=\"column.key\">\n <el-form-item\n v-if=\"columnShowHandler(props, column)\"\n :prop=\"isArray(column.field) ? column.field[0] : column.field\"\n >\n <div class=\"flex bg-backgroundv2 rounded\">\n <div class=\"flex\" :style=\"columnItemStyle(props, column)\">\n <!-- 表单label -->\n <div\n class=\"flex items-center text-auxiliary text-xs px-3 whitespace-nowrap border-r border-border\"\n >\n <slot\n v-if=\"column.labelSlot && $slots[column.labelSlot]\"\n :name=\"column.labelSlot\"\n :column=\"column\"\n ></slot>\n <span v-else>{{ column.label }}</span>\n </div>\n <!-- 表单组件 -->\n <div :style=\"columnItemInputStyle(props, column)\">\n <!-- 自定义具名插槽 -->\n <slot\n v-if=\"column.slot\"\n :name=\"column.slot\"\n :column=\"column\"\n />\n <!-- 输入框 -->\n <el-input\n v-else-if=\"column.type === 'input'\"\n v-model=\"model[column.field]\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n @keydown.enter=\"onKeydownEnterHander($event, column)\"\n @change=\"onChangeHandler($event, column)\"\n ></el-input>\n <!-- 选择框 -->\n <el-select\n v-else-if=\"column.type === 'select'\"\n v-model=\"model[column.field]\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n @change=\"onChangeHandler($event, column)\"\n ></el-select>\n <!-- 日期选择框 -->\n <template v-else-if=\"column.type === 'date-picker'\">\n <app-date-picker\n v-if=\"\n [\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n ].includes(column.attrs?.type) && isArray(column.field)\n \"\n v-model:start=\"model[column.field[0]]\"\n v-model:end=\"model[column.field[1]]\"\n :is-range=\"true\"\n style=\"width: 100%\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n :timeRangeFill=\"column.timeRangeFill\"\n @change=\"onChangeHandler($event, column)\"\n ></app-date-picker>\n <app-date-picker\n v-else\n v-model=\"model[column.field]\"\n :is-range=\"false\"\n style=\"width: 100%\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n :timeRangeFill=\"column.timeRangeFill\"\n @change=\"onChangeHandler($event, column)\"\n ></app-date-picker>\n </template>\n </div>\n </div>\n <div\n v-if=\"\n column.type === 'date-picker' &&\n ['daterange', 'datetimerange'].includes(column.attrs?.type) &&\n column.timeRangeOptions?.length\n \"\n class=\"flex text-main\"\n >\n <div\n v-for=\"(item, index) in column.timeRangeOptions\"\n :key=\"index\"\n class=\"border-l border-border px-[10px] cursor-pointer\"\n @click=\"onTimeRangeClickHandler(column, item)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n </el-form-item>\n </template>\n </div>\n </el-form>\n </div>\n</template>\n"],"names":["__MACROS_defineComponent","computed","isArray","resetAppSearchValue","isEmptyValue","unref","onUnmounted","timeRangeHandler","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var appSearch = require('./appSearch.vue.js');
6
+ var useAppSearch = require('./js/useAppSearch.js');
7
+ var handler = require('../../utils/handler.js');
8
+
9
+ const AppSearch = handler.withInstall(appSearch.default);
10
+
11
+ exports.useAppSearch = useAppSearch.useAppSearch;
12
+ exports.AppSearch = AppSearch;
13
+ exports.default = AppSearch;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../packages/components/appSearch/index.js"],"sourcesContent":["import componnet from './appSearch.vue'\nimport { withInstall } from '@hy-dispatch-ui-v3/utils'\n\nconst AppSearch = withInstall(componnet)\n\nexport { AppSearch }\n\nexport { useAppSearch } from './js/useAppSearch.js'\n\nexport default AppSearch\n"],"names":["withInstall","componnet"],"mappings":";;;;;;;;AAEK,MAAC,SAAS,GAAGA,mBAAW,CAACC,iBAAS;;;;;;"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var dayjs = require('dayjs');
4
+ var vue = require('vue');
5
+ var maintain = require('../../../store/maintain.js');
6
+ var is = require('../../../utils/is.js');
7
+
8
+ function columnItemStyle(props, column) {
9
+ const { width } = column;
10
+ const style = {};
11
+ if (is.isNumber(width)) {
12
+ style.width = `${width}px`;
13
+ } else if (is.isString(width)) {
14
+ style.width = /(px|em|rem|vw|vh)$/.test(width) ? width : `${width}px`;
15
+ }
16
+ return style;
17
+ }
18
+ function columnItemInputStyle(props, column) {
19
+ const { width, inputWidth } = column;
20
+ const style = {};
21
+ if (!width && inputWidth) {
22
+ if (is.isNumber(inputWidth)) {
23
+ style.width = `${inputWidth}px`;
24
+ } else if (is.isString(inputWidth)) {
25
+ style.width = /(px|em|rem|vw|vh)$/.test(inputWidth) ? inputWidth : `${inputWidth}px`;
26
+ }
27
+ } else {
28
+ style.width = "0px";
29
+ style.flex = "1 1 0%";
30
+ }
31
+ return style;
32
+ }
33
+ function columnShowHandler(props, column) {
34
+ const show = vue.unref(column.show);
35
+ if (is.isBoolean(show)) return show;
36
+ if (is.isFunction(show)) return show(column, props.model);
37
+ return true;
38
+ }
39
+ function isDisabled(props, column) {
40
+ var _a;
41
+ return !!(props.loading || ((_a = column.attrs) == null ? void 0 : _a.disabled));
42
+ }
43
+ function isEmptyValue(e) {
44
+ return is.isEmpty(e) || is.isArray(e) && !e.length;
45
+ }
46
+ function useShrink(props, templateRef) {
47
+ const isExpand = vue.ref(false);
48
+ const containerHeight = vue.ref(getContainerPickUpHeight());
49
+ const maintainStore = maintain.useMaintainStore();
50
+ const resizeExpandKey = /* @__PURE__ */ Symbol("appSearchExpand");
51
+ function getContainerPickUpHeight() {
52
+ switch (props.size) {
53
+ case "large":
54
+ return 41;
55
+ case "small":
56
+ return 25;
57
+ case "":
58
+ case "default":
59
+ default:
60
+ return 33;
61
+ }
62
+ }
63
+ function switchShrink() {
64
+ isExpand.value = !isExpand.value;
65
+ shrinkResizeHandler();
66
+ }
67
+ async function shrinkResizeHandler() {
68
+ const container = vue.unref(templateRef);
69
+ containerHeight.value = vue.unref(isExpand) ? container.clientHeight : getContainerPickUpHeight();
70
+ }
71
+ vue.watch(
72
+ () => [props.size, props.model],
73
+ () => {
74
+ vue.nextTick(() => {
75
+ shrinkResizeHandler();
76
+ maintainStore.addResize(shrinkResizeHandler, resizeExpandKey);
77
+ });
78
+ },
79
+ { immediate: true, deep: true }
80
+ );
81
+ return {
82
+ isExpand,
83
+ containerHeight,
84
+ switchShrink,
85
+ shrinkResizeHandler,
86
+ shrinkDestroy() {
87
+ maintainStore.removeResize(resizeExpandKey);
88
+ }
89
+ };
90
+ }
91
+ function timeRangeHandler(column, options) {
92
+ const { value, unit } = options;
93
+ const { timeRangeFill, attrs } = column;
94
+ const format = attrs.valueFormat || "YYYY-MM-DD";
95
+ const date = dayjs(Date.now());
96
+ switch (unit) {
97
+ case "year":
98
+ case "month":
99
+ return [
100
+ date.subtract(value, unit).format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
101
+ current
102
+ ];
103
+ case "day":
104
+ default:
105
+ return value === 1 ? [
106
+ date.format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
107
+ date.format(`${format}${timeRangeFill ? " 23:59:59" : ""}`)
108
+ ] : [
109
+ date.subtract(value, unit).format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
110
+ date.format(`${format}${timeRangeFill ? " 23:59:59" : ""}`)
111
+ ];
112
+ }
113
+ }
114
+
115
+ exports.columnItemInputStyle = columnItemInputStyle;
116
+ exports.columnItemStyle = columnItemStyle;
117
+ exports.columnShowHandler = columnShowHandler;
118
+ exports.isDisabled = isDisabled;
119
+ exports.isEmptyValue = isEmptyValue;
120
+ exports.timeRangeHandler = timeRangeHandler;
121
+ exports.useShrink = useShrink;
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/components/appSearch/js/index.js"],"sourcesContent":["import dayjs from 'dayjs'\nimport { ref, unref, nextTick, watch } from 'vue'\nimport {\n isArray,\n isBoolean,\n isEmpty,\n isFunction,\n isNumber,\n isString,\n funRunHandler,\n} from '@hy-dispatch-ui-v3/utils'\nimport { useMaintainStore } from '@hy-dispatch-ui-v3/store'\n\n// 列样式\nexport function columnItemStyle(props, column) {\n const { width } = column\n const style = {}\n if (isNumber(width)) {\n style.width = `${width}px`\n } else if (isString(width)) {\n style.width = /(px|em|rem|vw|vh)$/.test(width) ? width : `${width}px`\n }\n return style\n}\n\nexport function columnItemInputStyle(props, column) {\n const { width, inputWidth } = column\n const style = {}\n if (!width && inputWidth) {\n if (isNumber(inputWidth)) {\n style.width = `${inputWidth}px`\n } else if (isString(inputWidth)) {\n style.width = /(px|em|rem|vw|vh)$/.test(inputWidth)\n ? inputWidth\n : `${inputWidth}px`\n }\n } else {\n style.width = '0px'\n style.flex = '1 1 0%'\n }\n return style\n}\n\nexport function columnShowHandler(props, column) {\n const show = unref(column.show)\n if (isBoolean(show)) return show\n if (isFunction(show)) return show(column, props.model)\n return true\n}\n\n// 是否禁用\nexport function isDisabled(props, column) {\n return !!(props.loading || column.attrs?.disabled)\n}\n\n// 是否为空值\nexport function isEmptyValue(e) {\n return isEmpty(e) || (isArray(e) && !e.length)\n}\n\n// 展开/收起 hook\nexport function useShrink(props, templateRef) {\n const isExpand = ref(false)\n const containerHeight = ref(getContainerPickUpHeight())\n const maintainStore = useMaintainStore()\n const resizeExpandKey = Symbol('appSearchExpand')\n function getContainerPickUpHeight() {\n switch (props.size) {\n case 'large':\n return 41\n case 'small':\n return 25\n case '':\n case 'default':\n default:\n return 33\n }\n }\n function switchShrink() {\n isExpand.value = !isExpand.value\n shrinkResizeHandler()\n }\n async function shrinkResizeHandler() {\n const container = unref(templateRef)\n containerHeight.value = unref(isExpand)\n ? container.clientHeight\n : getContainerPickUpHeight()\n }\n watch(\n () => [props.size, props.model],\n () => {\n nextTick(() => {\n shrinkResizeHandler()\n maintainStore.addResize(shrinkResizeHandler, resizeExpandKey)\n })\n },\n { immediate: true, deep: true }\n )\n return {\n isExpand,\n containerHeight,\n switchShrink,\n shrinkResizeHandler,\n shrinkDestroy() {\n maintainStore.removeResize(resizeExpandKey)\n },\n }\n}\n\n// 时间范围控件处理\nexport function timeRangeHandler(column, options) {\n const { value, unit } = options\n const { timeRangeFill, attrs } = column\n const format = attrs.valueFormat || 'YYYY-MM-DD'\n const date = dayjs(Date.now())\n switch (unit) {\n case 'year':\n case 'month':\n return [\n date\n .subtract(value, unit)\n .format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n current,\n ]\n case 'day':\n default:\n return value === 1\n ? [\n date.format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n date.format(`${format}${timeRangeFill ? ' 23:59:59' : ''}`),\n ]\n : [\n date\n .subtract(value, unit)\n .format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n date.format(`${format}${timeRangeFill ? ' 23:59:59' : ''}`),\n ]\n }\n}\n"],"names":["isNumber","isString","unref","isBoolean","isFunction","isEmpty","isArray","ref","useMaintainStore","watch","nextTick"],"mappings":"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"}