@cmstops/pro-compo 3.0.0-rc.0 → 3.0.0-stable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/index.css +49 -4
  2. package/dist/index.min.css +1 -1
  3. package/es/baseFilter/component.js +71 -14
  4. package/es/config.js +1 -1
  5. package/es/docHistory/component.js +41 -12
  6. package/es/docHistory/style/index.css +4 -0
  7. package/es/docHistory/style/index.less +5 -0
  8. package/es/hooks/useAttachement.js +2 -9
  9. package/es/hooks/usePopper.d.ts +1 -1
  10. package/es/hooks/usePopper.js +3 -3
  11. package/es/hooks/useUpload.d.ts +50 -2
  12. package/es/hooks/useUpload.js +43 -4
  13. package/es/index.css +49 -4
  14. package/es/selectResourceModal/__demo__/module/DivWrapper.d.ts +268 -0
  15. package/es/selectResourceModal/__demo__/module/basic.d.ts +299 -0
  16. package/es/selectResourceModal/components/List/ListLocal/index.js +8 -3
  17. package/es/selectResourceModal/components/List/ListNormal/Filter.js +201 -89
  18. package/es/selectResourceModal/components/List/ListNormal/index.js +23 -7
  19. package/es/selectResourceModal/hooks/useResponsiveFilter.d.ts +21 -0
  20. package/es/selectResourceModal/hooks/useResponsiveFilter.js +142 -0
  21. package/es/selectResourceModal/scripts/useCompoLf.js +1 -1
  22. package/es/selectResourceModal/style/index.css +45 -4
  23. package/es/selectResourceModal/style/index.less +14 -0
  24. package/es/selectResourceModal/style/list.less +40 -4
  25. package/es/utils/index.js +6 -6
  26. package/lib/baseFilter/component.js +69 -12
  27. package/lib/config.js +1 -1
  28. package/lib/docHistory/component.js +39 -10
  29. package/lib/docHistory/style/index.css +4 -0
  30. package/lib/docHistory/style/index.less +5 -0
  31. package/lib/hooks/useAttachement.js +2 -9
  32. package/lib/hooks/usePopper.js +3 -3
  33. package/lib/hooks/useUpload.js +43 -3
  34. package/lib/index.css +49 -4
  35. package/lib/selectResourceModal/components/List/ListLocal/index.js +6 -1
  36. package/lib/selectResourceModal/components/List/ListNormal/Filter.js +198 -86
  37. package/lib/selectResourceModal/components/List/ListNormal/index.js +22 -6
  38. package/lib/selectResourceModal/hooks/useResponsiveFilter.js +144 -0
  39. package/lib/selectResourceModal/scripts/useCompoLf.js +1 -1
  40. package/lib/selectResourceModal/style/index.css +45 -4
  41. package/lib/selectResourceModal/style/index.less +14 -0
  42. package/lib/selectResourceModal/style/list.less +40 -4
  43. package/lib/utils/index.js +6 -6
  44. package/package.json +1 -1
@@ -1,43 +1,71 @@
1
- import { defineComponent, inject, computed, ref, watch, onMounted, openBlock, createElementBlock, createElementVNode, createCommentVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Fragment, renderList, createBlock, normalizeClass } from "vue";
2
- import { Input, Dropdown, Doption, Button, Select, Option, TreeSelect, RangePicker } from "@arco-design/web-vue";
3
- import { IconUpload } from "@arco-design/web-vue/es/icon";
1
+ import { defineComponent, inject, computed, ref, watch, onMounted, openBlock, createElementBlock, createCommentVNode, createElementVNode, withDirectives, createVNode, unref, withModifiers, withCtx, createTextVNode, vShow, toDisplayString, Fragment, renderList, createBlock, normalizeClass } from "vue";
2
+ import { Button, Input, Dropdown, Doption, TreeSelect, Select, Option, RangePicker } from "@arco-design/web-vue";
3
+ import { IconCaretDown, IconRefresh, IconUpload } from "@arco-design/web-vue/es/icon";
4
4
  import useSelection from "../../../../hooks/useSelection.js";
5
5
  import { useDirectory } from "../../../../hooks/useAttachement.js";
6
6
  import { RESOURCE_SOURCE_OPTIONS, RESOURCE_CATALOG_OPTIONS } from "../../../../utils/typeMap.js";
7
7
  import { getAccountList } from "../../../scripts/selectionApis.js";
8
8
  import { keywordsSelection } from "../../../../utils/resource.js";
9
+ import { useResponsiveFilter } from "../../../hooks/useResponsiveFilter.js";
9
10
  const _hoisted_1 = { class: "list-filter-wrapper" };
10
11
  const _hoisted_2 = { class: "list-filter" };
11
- const _hoisted_3 = { class: "filter-list" };
12
- const _hoisted_4 = { style: { "width": "200px" } };
12
+ const _hoisted_3 = { class: "more-btn" };
13
+ const _hoisted_4 = { class: "right-prefix" };
13
14
  const _hoisted_5 = {
14
15
  class: "filter-item",
15
16
  style: { "width": "200px" }
16
17
  };
17
- const _hoisted_6 = { class: "filter-item" };
18
+ const _hoisted_6 = {
19
+ class: "filter-item",
20
+ style: { "width": "180px" }
21
+ };
18
22
  const _hoisted_7 = {
23
+ class: "filter-item",
24
+ style: { "width": "170px" }
25
+ };
26
+ const _hoisted_8 = {
27
+ class: "filter-item",
28
+ style: { "width": "240px" }
29
+ };
30
+ const _hoisted_9 = {
31
+ class: "filter-item",
32
+ style: { "width": "240px" }
33
+ };
34
+ const _hoisted_10 = {
19
35
  key: 0,
20
36
  class: "filter-item"
21
37
  };
22
- const _hoisted_8 = { class: "filter-extra" };
23
- const _hoisted_9 = {
38
+ const _hoisted_11 = { class: "filter-extra" };
39
+ const _hoisted_12 = { class: "filter-item" };
40
+ const _hoisted_13 = {
24
41
  key: 0,
25
42
  class: "list-filter-tags"
26
43
  };
27
- const _hoisted_10 = ["onClick"];
44
+ const _hoisted_14 = ["onClick"];
28
45
  const _sfc_main = defineComponent({
29
46
  __name: "Filter",
30
47
  props: {
48
+ smallScreen: { type: Boolean },
31
49
  disableUploadBy: { type: Boolean }
32
50
  },
33
51
  emits: ["upload", "change"],
34
52
  setup(__props, { expose: __expose, emit: __emit }) {
53
+ var _a, _b, _c;
35
54
  const props = __props;
36
55
  const emits = __emit;
37
56
  const userInfo = inject("userInfo");
38
57
  const baseAPI = inject("baseAPI");
39
58
  const filterOptions = inject("filterOptions");
40
59
  const domainId = computed(() => userInfo == null ? void 0 : userInfo.value.domain_id);
60
+ const filterItemsRef = ref();
61
+ const {
62
+ moreBtnRef,
63
+ popperPanelRef,
64
+ hiddenElementList,
65
+ visible,
66
+ show,
67
+ hide
68
+ } = useResponsiveFilter(filterItemsRef);
41
69
  const { options, loading, load, loadMore, handleSearch } = useSelection({
42
70
  labelStr: "alias",
43
71
  valueStr: "id",
@@ -57,7 +85,7 @@ const _sfc_main = defineComponent({
57
85
  });
58
86
  const resourceSource = RESOURCE_SOURCE_OPTIONS;
59
87
  const resourceCatalog = RESOURCE_CATALOG_OPTIONS;
60
- const { tree, loadMore: loadDirMore } = useDirectory({
88
+ const { tree } = useDirectory({
61
89
  BASE_API: baseAPI
62
90
  });
63
91
  const originFilter = {
@@ -71,7 +99,17 @@ const _sfc_main = defineComponent({
71
99
  sf: "",
72
100
  directory_id: void 0
73
101
  };
74
- const filter = ref(JSON.parse(JSON.stringify(originFilter)));
102
+ if ((_a = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _a.mediaTypeStrict) {
103
+ originFilter.catalog = filterOptions.value.mediaType.split(",");
104
+ }
105
+ const filter = ref(
106
+ JSON.parse(
107
+ JSON.stringify({
108
+ ...originFilter,
109
+ catalog: ((_c = (_b = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _b.mediaType) == null ? void 0 : _c.split(",")) || []
110
+ })
111
+ )
112
+ );
75
113
  const handleReset = () => {
76
114
  filter.value = JSON.parse(JSON.stringify(originFilter));
77
115
  };
@@ -116,82 +154,114 @@ const _sfc_main = defineComponent({
116
154
  filter.value.keyword = val;
117
155
  filter.value.precise_keyword = "";
118
156
  }
157
+ filter.value.sf = "";
119
158
  }
120
159
  });
121
- watch(
122
- () => searchType.value,
123
- () => {
124
- searchInput.value = filter.value.keyword || filter.value.precise_keyword;
125
- }
126
- );
127
160
  const isEmpty = computed(() => {
128
- return Object.keys(filter.value).every((key) => {
161
+ return Object.keys(originFilter).every((key) => {
162
+ if (key === "catalog") {
163
+ const currentCatalog = filter.value[key] || [];
164
+ const originCatalog = originFilter[key] || [];
165
+ return currentCatalog.length === originCatalog.length && currentCatalog.every((v) => originCatalog.includes(v));
166
+ }
129
167
  return filter.value[key] === originFilter[key];
130
168
  });
131
169
  });
132
170
  watch(
133
171
  () => filter.value,
134
- () => {
135
- const result = { ...filter.value };
172
+ (val) => {
173
+ const result = { ...val };
136
174
  Object.keys(result).forEach((key) => {
137
175
  if (props.disableUploadBy && key === "upload_by")
138
176
  delete result[key];
139
- if (!result[key])
140
- delete result[key];
177
+ if (result[key] === "" || result[key] === null || result[key] === void 0) {
178
+ if (key !== "catalog") {
179
+ delete result[key];
180
+ }
181
+ }
141
182
  });
142
- if (!result.catalog)
143
- result.catalog = "image,video,audio";
144
- else
145
- result.catalog = result.catalog.join(",");
146
- emits("change", result);
147
- },
148
- { deep: true, immediate: true }
149
- );
150
- watch(
151
- () => filterOptions == null ? void 0 : filterOptions.value,
152
- () => {
153
- var _a;
154
- if ((_a = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _a.mediaType) {
155
- filter.value.catalog = filterOptions == null ? void 0 : filterOptions.value.mediaType.split(",");
156
- if (filterOptions == null ? void 0 : filterOptions.value.mediaTypeStrict) {
157
- originFilter.catalog = filterOptions == null ? void 0 : filterOptions.value.mediaType.split(",");
183
+ if (result.catalog && Array.isArray(result.catalog)) {
184
+ if (result.catalog.length > 0) {
185
+ result.catalog = result.catalog.join(",");
186
+ } else {
187
+ delete result.catalog;
158
188
  }
159
189
  }
190
+ emits("change", result);
160
191
  },
161
- { immediate: true, deep: true }
192
+ { deep: true, immediate: true }
162
193
  );
163
194
  onMounted(() => {
164
195
  load();
165
196
  });
166
197
  __expose({
167
- resetFilter: handleReset
198
+ filter,
199
+ handleReset
168
200
  });
169
201
  return (_ctx, _cache) => {
170
- var _a;
202
+ var _a2;
171
203
  return openBlock(), createElementBlock("div", _hoisted_1, [
204
+ createCommentVNode(" Use filterItemsRef's parentElement as the container for boundary checks "),
172
205
  createElementVNode("div", _hoisted_2, [
173
- createElementVNode("div", _hoisted_3, [
206
+ createCommentVNode(" Filter Items Container "),
207
+ createElementVNode("div", {
208
+ id: "resource-filter-pannel",
209
+ ref_key: "filterItemsRef",
210
+ ref: filterItemsRef,
211
+ class: "filter-list"
212
+ }, [
213
+ createCommentVNode(" More Filters Button and Popper Panel "),
214
+ createElementVNode("div", _hoisted_3, [
215
+ createElementVNode("div", {
216
+ ref_key: "moreBtnRef",
217
+ ref: moreBtnRef
218
+ }, [
219
+ withDirectives(createVNode(unref(Button), {
220
+ style: { marginRight: "10px" },
221
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => unref(visible) ? unref(hide)() : unref(show)(), ["stop"]))
222
+ }, {
223
+ default: withCtx(() => [
224
+ createElementVNode("span", _hoisted_4, [
225
+ _cache[11] || (_cache[11] = createTextVNode(" \u66F4\u591A ")),
226
+ createVNode(unref(IconCaretDown))
227
+ ])
228
+ ]),
229
+ _: 1
230
+ }, 512), [
231
+ [vShow, unref(hiddenElementList).length]
232
+ ])
233
+ ], 512),
234
+ withDirectives(createElementVNode("div", {
235
+ ref_key: "popperPanelRef",
236
+ ref: popperPanelRef,
237
+ class: "filter-pannel",
238
+ onClick: _cache[1] || (_cache[1] = withModifiers(() => {
239
+ }, ["stop"]))
240
+ }, null, 512), [
241
+ [vShow, unref(visible)]
242
+ ])
243
+ ]),
174
244
  createCommentVNode(" \u5173\u952E\u8BCD "),
175
- createElementVNode("div", _hoisted_4, [
245
+ createElementVNode("div", _hoisted_5, [
176
246
  createVNode(unref(Input), {
177
247
  modelValue: searchInput.value,
178
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchInput.value = $event),
248
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => searchInput.value = $event),
179
249
  "allow-clear": "",
180
250
  placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD"
181
251
  }, {
182
252
  prepend: withCtx(() => [
183
253
  createVNode(unref(Dropdown), {
184
- onSelect: _cache[0] || (_cache[0] = (e) => searchType.value = e)
254
+ onSelect: _cache[2] || (_cache[2] = (e) => searchType.value = e)
185
255
  }, {
186
256
  content: withCtx(() => [
187
257
  createVNode(unref(Doption), { value: 0 }, {
188
- default: withCtx(() => _cache[8] || (_cache[8] = [
258
+ default: withCtx(() => _cache[12] || (_cache[12] = [
189
259
  createTextVNode("\u7CBE\u51C6\u641C")
190
260
  ])),
191
261
  _: 1
192
262
  }),
193
263
  createVNode(unref(Doption), { value: 1 }, {
194
- default: withCtx(() => _cache[9] || (_cache[9] = [
264
+ default: withCtx(() => _cache[13] || (_cache[13] = [
195
265
  createTextVNode("\u6A21\u7CCA\u641C")
196
266
  ])),
197
267
  _: 1
@@ -211,15 +281,39 @@ const _sfc_main = defineComponent({
211
281
  _: 1
212
282
  }, 8, ["modelValue"])
213
283
  ]),
284
+ createCommentVNode(" \u76EE\u5F55 "),
285
+ createElementVNode("div", _hoisted_6, [
286
+ createVNode(unref(TreeSelect), {
287
+ modelValue: filter.value.directory_id,
288
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => filter.value.directory_id = $event),
289
+ data: unref(tree),
290
+ "popup-container": "#resource-filter-pannel",
291
+ placeholder: "\u8BF7\u9009\u62E9\u76EE\u5F55",
292
+ "field-names": {
293
+ title: "alias",
294
+ key: "id"
295
+ },
296
+ "allow-clear": "",
297
+ "allow-search": "",
298
+ "filter-tree-node": (searchValue, nodeData) => {
299
+ console.log(nodeData);
300
+ if (!nodeData.alias)
301
+ return false;
302
+ return nodeData.alias.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
303
+ }
304
+ }, null, 8, ["modelValue", "data", "filter-tree-node"])
305
+ ]),
214
306
  createCommentVNode(" \u7D20\u6750\u7C7B\u578B "),
215
- createElementVNode("div", _hoisted_5, [
307
+ createElementVNode("div", _hoisted_7, [
216
308
  createVNode(unref(Select), {
217
309
  modelValue: filter.value.catalog,
218
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => filter.value.catalog = $event),
219
- disabled: (_a = unref(filterOptions)) == null ? void 0 : _a.mediaTypeStrict,
310
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.catalog = $event),
311
+ disabled: (_a2 = unref(filterOptions)) == null ? void 0 : _a2.mediaTypeStrict,
312
+ "popup-container": "#resource-filter-pannel",
220
313
  "allow-clear": "",
221
314
  placeholder: "\u7C7B\u578B",
222
- multiple: ""
315
+ multiple: "",
316
+ "max-tag-count": 1
223
317
  }, {
224
318
  default: withCtx(() => [
225
319
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(resourceCatalog), (item) => {
@@ -233,30 +327,23 @@ const _sfc_main = defineComponent({
233
327
  _: 1
234
328
  }, 8, ["modelValue", "disabled"])
235
329
  ]),
236
- createCommentVNode(" \u76EE\u5F55 "),
237
- createVNode(unref(TreeSelect), {
238
- modelValue: filter.value.directory_id,
239
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => filter.value.directory_id = $event),
240
- data: unref(tree),
241
- "load-more": unref(loadDirMore),
242
- placeholder: "\u8BF7\u9009\u62E9\u76EE\u5F55",
243
- style: { "width": "180px" },
244
- "allow-clear": ""
245
- }, null, 8, ["modelValue", "data", "load-more"]),
246
330
  createCommentVNode(" \u65F6\u95F4\u8303\u56F4 "),
247
- createVNode(unref(RangePicker), {
248
- modelValue: rangeTime.value,
249
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => rangeTime.value = $event),
250
- "allow-clear": "",
251
- style: { "width": "240px" }
252
- }, null, 8, ["modelValue"]),
331
+ createElementVNode("div", _hoisted_8, [
332
+ createVNode(unref(RangePicker), {
333
+ modelValue: rangeTime.value,
334
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => rangeTime.value = $event),
335
+ "allow-clear": "",
336
+ "popup-container": "#resource-filter-pannel"
337
+ }, null, 8, ["modelValue"])
338
+ ]),
253
339
  createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u6765\u6E90 "),
254
- createElementVNode("div", _hoisted_6, [
340
+ createElementVNode("div", _hoisted_9, [
255
341
  createVNode(unref(Select), {
256
342
  modelValue: filter.value.source,
257
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.source = $event),
343
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => filter.value.source = $event),
258
344
  "allow-clear": "",
259
- placeholder: "\u6765\u6E90"
345
+ placeholder: "\u6765\u6E90",
346
+ "popup-container": "#resource-filter-pannel"
260
347
  }, {
261
348
  default: withCtx(() => [
262
349
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(resourceSource), (item) => {
@@ -271,14 +358,15 @@ const _sfc_main = defineComponent({
271
358
  }, 8, ["modelValue"])
272
359
  ]),
273
360
  createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u4EBA "),
274
- !_ctx.disableUploadBy ? (openBlock(), createElementBlock("div", _hoisted_7, [
361
+ !_ctx.disableUploadBy ? (openBlock(), createElementBlock("div", _hoisted_10, [
275
362
  createVNode(unref(Select), {
276
363
  modelValue: filter.value.upload_by,
277
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => filter.value.upload_by = $event),
364
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => filter.value.upload_by = $event),
278
365
  "allow-clear": "",
279
366
  placeholder: "\u4E0A\u4F20\u4EBA",
280
367
  loading: unref(loading),
281
368
  "allow-search": "",
369
+ "popup-container": "#resource-filter-pannel",
282
370
  onSearch: unref(handleSearch),
283
371
  onDropdownReachBottom: unref(loadMore)
284
372
  }, {
@@ -293,40 +381,64 @@ const _sfc_main = defineComponent({
293
381
  ]),
294
382
  _: 1
295
383
  }, 8, ["modelValue", "loading", "onSearch", "onDropdownReachBottom"])
296
- ])) : createCommentVNode("v-if", true),
297
- !isEmpty.value ? (openBlock(), createBlock(unref(Button), {
298
- key: 1,
299
- type: "text",
300
- onClick: handleReset
384
+ ])) : createCommentVNode("v-if", true)
385
+ ], 512),
386
+ createElementVNode("div", _hoisted_11, [
387
+ createCommentVNode(" \u91CD\u7F6E\u6309\u94AE - Wrap in filter-item to be managed by the hook "),
388
+ withDirectives(createElementVNode("div", _hoisted_12, [
389
+ _ctx.smallScreen ? (openBlock(), createBlock(unref(Button), {
390
+ key: 0,
391
+ type: "text",
392
+ onClick: handleReset
393
+ }, {
394
+ icon: withCtx(() => [
395
+ createVNode(unref(IconRefresh))
396
+ ]),
397
+ _: 1
398
+ })) : (openBlock(), createBlock(unref(Button), {
399
+ key: 1,
400
+ type: "text",
401
+ onClick: handleReset
402
+ }, {
403
+ default: withCtx(() => _cache[14] || (_cache[14] = [
404
+ createTextVNode(" \u91CD\u7F6E ")
405
+ ])),
406
+ _: 1
407
+ }))
408
+ ], 512), [
409
+ [vShow, !isEmpty.value]
410
+ ]),
411
+ _ctx.smallScreen ? (openBlock(), createBlock(unref(Button), {
412
+ key: 0,
413
+ type: "primary",
414
+ onClick: _cache[9] || (_cache[9] = ($event) => emits("upload"))
301
415
  }, {
302
- default: withCtx(() => _cache[10] || (_cache[10] = [
303
- createTextVNode(" \u91CD\u7F6E ")
304
- ])),
416
+ icon: withCtx(() => [
417
+ createVNode(unref(IconUpload))
418
+ ]),
305
419
  _: 1
306
- })) : createCommentVNode("v-if", true)
307
- ]),
308
- createElementVNode("div", _hoisted_8, [
309
- createVNode(unref(Button), {
420
+ })) : (openBlock(), createBlock(unref(Button), {
421
+ key: 1,
310
422
  type: "primary",
311
- onClick: _cache[7] || (_cache[7] = ($event) => emits("upload"))
423
+ onClick: _cache[10] || (_cache[10] = ($event) => emits("upload"))
312
424
  }, {
313
425
  icon: withCtx(() => [
314
426
  createVNode(unref(IconUpload))
315
427
  ]),
316
428
  default: withCtx(() => [
317
- _cache[11] || (_cache[11] = createTextVNode(" \u4E0A\u4F20 "))
429
+ _cache[15] || (_cache[15] = createTextVNode(" \u4E0A\u4F20 "))
318
430
  ]),
319
431
  _: 1
320
- })
432
+ }))
321
433
  ])
322
434
  ]),
323
- searchInput.value ? (openBlock(), createElementBlock("div", _hoisted_9, [
435
+ searchInput.value ? (openBlock(), createElementBlock("div", _hoisted_13, [
324
436
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(keywordsSelection), (item) => {
325
437
  return openBlock(), createElementBlock("div", {
326
438
  key: item.value,
327
439
  class: normalizeClass(["list-filter-tag", { active: filter.value.sf === item.value }]),
328
440
  onClick: ($event) => filter.value.sf = item.value
329
- }, toDisplayString(item.name), 11, _hoisted_10);
441
+ }, toDisplayString(item.name), 11, _hoisted_14);
330
442
  }), 128))
331
443
  ])) : createCommentVNode("v-if", true)
332
444
  ]);
@@ -1,9 +1,8 @@
1
- import { defineComponent, inject, watch, onMounted, openBlock, createBlock, unref, withCtx, renderSlot, createVNode, isRef, createElementVNode, createElementBlock, Fragment, renderList } from "vue";
1
+ import { defineComponent, inject, watch, ref, onMounted, openBlock, createBlock, unref, withCtx, renderSlot, createVNode, isRef, createElementVNode, createElementBlock, Fragment, renderList } from "vue";
2
2
  import { Pagination } from "@arco-design/web-vue";
3
3
  import _sfc_main$1 from "../ListWraper.js";
4
4
  import useAttachement from "../../../../hooks/useAttachement.js";
5
5
  import _sfc_main$2 from "./Filter.js";
6
- const _hoisted_1 = { class: "list-item-grid" };
7
6
  const _sfc_main = defineComponent({
8
7
  __name: "index",
9
8
  props: {
@@ -27,6 +26,18 @@ const _sfc_main = defineComponent({
27
26
  changeKey
28
27
  } = useAttachement({ key: props.activeKey, BASE_API });
29
28
  watch(() => props.activeKey, changeKey);
29
+ const listWrapper = ref(null);
30
+ const smallScreen = ref(false);
31
+ watch(
32
+ () => {
33
+ var _a;
34
+ return (_a = listWrapper.value) == null ? void 0 : _a.offsetWidth;
35
+ },
36
+ (val) => {
37
+ smallScreen.value = !!(val && val < 600);
38
+ },
39
+ { immediate: true }
40
+ );
30
41
  onMounted(() => {
31
42
  loadData();
32
43
  });
@@ -40,9 +51,10 @@ const _sfc_main = defineComponent({
40
51
  ]),
41
52
  header: withCtx(() => [
42
53
  createVNode(_sfc_main$2, {
54
+ smallScreen: smallScreen.value,
43
55
  onChange: unref(changeFilter),
44
56
  onUpload: _cache[0] || (_cache[0] = ($event) => emits("change-tab", "local"))
45
- }, null, 8, ["onChange"])
57
+ }, null, 8, ["smallScreen", "onChange"])
46
58
  ]),
47
59
  footer: withCtx(() => [
48
60
  createVNode(unref(Pagination), {
@@ -51,22 +63,26 @@ const _sfc_main = defineComponent({
51
63
  total: unref(total),
52
64
  "page-size": unref(limit),
53
65
  "show-total": "",
54
- "show-page-size": "",
66
+ "show-page-size": !smallScreen.value,
55
67
  "base-size": 3,
56
68
  "buffer-size": 1,
57
69
  onChange: _cache[2] || (_cache[2] = (e) => unref(changePage)((e - 1) * unref(limit))),
58
70
  onPageSizeChange: unref(changeSize)
59
- }, null, 8, ["current", "total", "page-size", "onPageSizeChange"])
71
+ }, null, 8, ["current", "total", "page-size", "show-page-size", "onPageSizeChange"])
60
72
  ]),
61
73
  default: withCtx(() => [
62
- createElementVNode("div", _hoisted_1, [
74
+ createElementVNode("div", {
75
+ ref_key: "listWrapper",
76
+ ref: listWrapper,
77
+ class: "list-item-grid"
78
+ }, [
63
79
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (item) => {
64
80
  return renderSlot(_ctx.$slots, "item", {
65
81
  key: item.id,
66
82
  item
67
83
  });
68
84
  }), 128))
69
- ])
85
+ ], 512)
70
86
  ]),
71
87
  _: 3
72
88
  }, 8, ["loading", "is-empty"]);
@@ -0,0 +1,21 @@
1
+ import type { Ref } from 'vue';
2
+ declare type HideElementType = {
3
+ width: number;
4
+ el: HTMLDivElement;
5
+ };
6
+ export declare function useResponsiveFilter(filterItemsRef: Ref<HTMLElement | undefined>): {
7
+ moreBtnRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
8
+ popperPanelRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
9
+ hiddenElementList: Ref<{
10
+ width: number;
11
+ el: HTMLDivElement;
12
+ }[], HideElementType[] | {
13
+ width: number;
14
+ el: HTMLDivElement;
15
+ }[]>;
16
+ visible: Ref<boolean, boolean>;
17
+ show: () => void;
18
+ hide: () => void;
19
+ refreshLayout: () => Promise<void>;
20
+ };
21
+ export {};