@cmstops/pro-compo 3.0.0-rc.0 → 3.0.0-stable.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.
- package/dist/index.css +45 -4
- package/dist/index.min.css +1 -1
- package/es/baseFilter/component.js +71 -14
- package/es/config.js +1 -1
- package/es/hooks/useAttachement.js +2 -9
- package/es/hooks/usePopper.d.ts +1 -1
- package/es/hooks/usePopper.js +3 -3
- package/es/hooks/useUpload.d.ts +50 -2
- package/es/hooks/useUpload.js +43 -4
- package/es/index.css +45 -4
- package/es/selectResourceModal/__demo__/module/DivWrapper.d.ts +268 -0
- package/es/selectResourceModal/__demo__/module/basic.d.ts +299 -0
- package/es/selectResourceModal/components/List/ListLocal/index.js +8 -3
- package/es/selectResourceModal/components/List/ListNormal/Filter.js +201 -89
- package/es/selectResourceModal/components/List/ListNormal/index.js +23 -7
- package/es/selectResourceModal/hooks/useResponsiveFilter.d.ts +21 -0
- package/es/selectResourceModal/hooks/useResponsiveFilter.js +142 -0
- package/es/selectResourceModal/scripts/useCompoLf.js +1 -1
- package/es/selectResourceModal/style/index.css +45 -4
- package/es/selectResourceModal/style/index.less +14 -0
- package/es/selectResourceModal/style/list.less +40 -4
- package/es/utils/index.js +6 -6
- package/lib/baseFilter/component.js +69 -12
- package/lib/config.js +1 -1
- package/lib/hooks/useAttachement.js +2 -9
- package/lib/hooks/usePopper.js +3 -3
- package/lib/hooks/useUpload.js +43 -3
- package/lib/index.css +45 -4
- package/lib/selectResourceModal/components/List/ListLocal/index.js +6 -1
- package/lib/selectResourceModal/components/List/ListNormal/Filter.js +198 -86
- package/lib/selectResourceModal/components/List/ListNormal/index.js +22 -6
- package/lib/selectResourceModal/hooks/useResponsiveFilter.js +144 -0
- package/lib/selectResourceModal/scripts/useCompoLf.js +1 -1
- package/lib/selectResourceModal/style/index.css +45 -4
- package/lib/selectResourceModal/style/index.less +14 -0
- package/lib/selectResourceModal/style/list.less +40 -4
- package/lib/utils/index.js +6 -6
- package/package.json +1 -1
|
@@ -1,43 +1,71 @@
|
|
|
1
|
-
import { defineComponent, inject, computed, ref, watch, onMounted, openBlock, createElementBlock, createElementVNode,
|
|
2
|
-
import { Input, Dropdown, Doption,
|
|
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: "
|
|
12
|
-
const _hoisted_4 = {
|
|
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 = {
|
|
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
|
|
23
|
-
const
|
|
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
|
|
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
|
|
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
|
-
|
|
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(
|
|
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 = { ...
|
|
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 (
|
|
140
|
-
|
|
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 (
|
|
143
|
-
result.catalog
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
{
|
|
192
|
+
{ deep: true, immediate: true }
|
|
162
193
|
);
|
|
163
194
|
onMounted(() => {
|
|
164
195
|
load();
|
|
165
196
|
});
|
|
166
197
|
__expose({
|
|
167
|
-
|
|
198
|
+
filter,
|
|
199
|
+
handleReset
|
|
168
200
|
});
|
|
169
201
|
return (_ctx, _cache) => {
|
|
170
|
-
var
|
|
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
|
-
|
|
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",
|
|
245
|
+
createElementVNode("div", _hoisted_5, [
|
|
176
246
|
createVNode(unref(Input), {
|
|
177
247
|
modelValue: searchInput.value,
|
|
178
|
-
"onUpdate:modelValue": _cache[
|
|
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[
|
|
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[
|
|
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[
|
|
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",
|
|
307
|
+
createElementVNode("div", _hoisted_7, [
|
|
216
308
|
createVNode(unref(Select), {
|
|
217
309
|
modelValue: filter.value.catalog,
|
|
218
|
-
"onUpdate:modelValue": _cache[
|
|
219
|
-
disabled: (
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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",
|
|
340
|
+
createElementVNode("div", _hoisted_9, [
|
|
255
341
|
createVNode(unref(Select), {
|
|
256
342
|
modelValue: filter.value.source,
|
|
257
|
-
"onUpdate:modelValue": _cache[
|
|
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",
|
|
361
|
+
!_ctx.disableUploadBy ? (openBlock(), createElementBlock("div", _hoisted_10, [
|
|
275
362
|
createVNode(unref(Select), {
|
|
276
363
|
modelValue: filter.value.upload_by,
|
|
277
|
-
"onUpdate:modelValue": _cache[
|
|
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
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
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
|
-
|
|
303
|
-
|
|
304
|
-
])
|
|
416
|
+
icon: withCtx(() => [
|
|
417
|
+
createVNode(unref(IconUpload))
|
|
418
|
+
]),
|
|
305
419
|
_: 1
|
|
306
|
-
})) :
|
|
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[
|
|
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[
|
|
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",
|
|
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,
|
|
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",
|
|
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 {};
|