@cmstops/pro-compo 0.3.100 → 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.
Files changed (47) hide show
  1. package/dist/index.css +45 -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/contentDetailList/component.js +24 -0
  6. package/es/contentDetailList/components/Content/index.js +2 -1
  7. package/es/contentDetailList/components/Doc/index.js +6 -0
  8. package/es/hooks/useAttachement.d.ts +26 -7
  9. package/es/hooks/useAttachement.js +42 -2
  10. package/es/hooks/usePopper.d.ts +1 -1
  11. package/es/hooks/usePopper.js +3 -3
  12. package/es/hooks/useUpload.d.ts +50 -2
  13. package/es/hooks/useUpload.js +43 -4
  14. package/es/index.css +45 -4
  15. package/es/selectResourceModal/__demo__/module/DivWrapper.d.ts +268 -0
  16. package/es/selectResourceModal/__demo__/module/basic.d.ts +299 -0
  17. package/es/selectResourceModal/components/List/ListLocal/index.js +8 -3
  18. package/es/selectResourceModal/components/List/ListNormal/Filter.js +206 -79
  19. package/es/selectResourceModal/components/List/ListNormal/index.js +23 -7
  20. package/es/selectResourceModal/hooks/useResponsiveFilter.d.ts +21 -0
  21. package/es/selectResourceModal/hooks/useResponsiveFilter.js +142 -0
  22. package/es/selectResourceModal/scripts/useCompoLf.js +1 -1
  23. package/es/selectResourceModal/style/index.css +45 -4
  24. package/es/selectResourceModal/style/index.less +14 -0
  25. package/es/selectResourceModal/style/list.less +40 -4
  26. package/es/selectThumb/component.js +57 -3
  27. package/es/utils/index.js +6 -6
  28. package/lib/baseFilter/component.js +69 -12
  29. package/lib/config.js +1 -1
  30. package/lib/contentDetailList/component.js +24 -0
  31. package/lib/contentDetailList/components/Content/index.js +2 -1
  32. package/lib/contentDetailList/components/Doc/index.js +6 -0
  33. package/lib/hooks/useAttachement.js +42 -0
  34. package/lib/hooks/usePopper.js +3 -3
  35. package/lib/hooks/useUpload.js +43 -3
  36. package/lib/index.css +45 -4
  37. package/lib/selectResourceModal/components/List/ListLocal/index.js +6 -1
  38. package/lib/selectResourceModal/components/List/ListNormal/Filter.js +203 -76
  39. package/lib/selectResourceModal/components/List/ListNormal/index.js +22 -6
  40. package/lib/selectResourceModal/hooks/useResponsiveFilter.js +144 -0
  41. package/lib/selectResourceModal/scripts/useCompoLf.js +1 -1
  42. package/lib/selectResourceModal/style/index.css +45 -4
  43. package/lib/selectResourceModal/style/index.less +14 -0
  44. package/lib/selectResourceModal/style/list.less +40 -4
  45. package/lib/selectThumb/component.js +56 -2
  46. package/lib/utils/index.js +6 -6
  47. package/package.json +1 -1
@@ -75,7 +75,7 @@ function useUpload(options) {
75
75
  list.value = originList;
76
76
  }
77
77
  };
78
- const uploadFile = (BASE_API, file, dir = 0, repoId, callback) => {
78
+ const uploadFile = (BASE_API, file, dir = 0, repoId, callback, upOptions) => {
79
79
  const newFile = {
80
80
  id: file.id || index.generateUUID(),
81
81
  sig_id: file.sig_id || index.generateUUID(),
@@ -95,18 +95,24 @@ function useUpload(options) {
95
95
  };
96
96
  const uploading = upload.start(progress);
97
97
  uploading.then(async (url) => {
98
+ var _a;
98
99
  if (options == null ? void 0 : options.noAddMedia) {
99
100
  recordTaskStatusChange({ ...newFile, status: 0, url }, 1);
100
101
  callback && callback({ ...newFile, url }, "success");
101
102
  return;
102
103
  }
104
+ const params = {};
105
+ if ((_a = upOptions == null ? void 0 : upOptions.template) == null ? void 0 : _a.watermark) {
106
+ params.watermark = upOptions.template.watermark.default;
107
+ }
103
108
  const { code, message } = await addMedia(BASE_API, {
104
109
  url,
105
110
  size: newFile.size,
106
111
  directory_id: dir,
107
112
  repository_id: repoId,
108
113
  catalog: newFile.type,
109
- alias: newFile.name
114
+ alias: newFile.name,
115
+ ...params
110
116
  });
111
117
  if (code !== 0) {
112
118
  console.log("\u{1F525}\u{1F525}\u{1F525}\u{1F525}\u{1F525} \u4E0A\u4F20\u5931\u8D25\uFF1A", newFile.name, code, message);
@@ -196,9 +202,16 @@ function getConfiguration(BASE_API, params) {
196
202
  params
197
203
  });
198
204
  }
205
+ function getWatermarkTemplate(BASE_API) {
206
+ return request(BASE_API, {
207
+ url: `/poplar/v2/material/image/watermark`,
208
+ method: "get"
209
+ });
210
+ }
199
211
  function useUploadConfig() {
200
212
  const { get, set, remove } = useLocalStorage["default"]("LOCAL_UPLOAD_CONFIG");
201
213
  const config = vue.ref(get() || {});
214
+ const template = vue.ref({});
202
215
  async function initUploadConfig(BASE_API, domainId) {
203
216
  if (config.value.size_config_enabled != null)
204
217
  return;
@@ -247,16 +260,43 @@ function useUploadConfig() {
247
260
  );
248
261
  return false;
249
262
  }
263
+ async function initTemplate(BASE_API) {
264
+ try {
265
+ const { code, message } = await getWatermarkTemplate(BASE_API);
266
+ if (code !== 0)
267
+ return;
268
+ if (message) {
269
+ let defaultWaterMark;
270
+ if (Array.isArray(message.images)) {
271
+ message.images.forEach((item) => {
272
+ if (message.default === item.id)
273
+ defaultWaterMark = item;
274
+ });
275
+ }
276
+ template.value = {
277
+ watermark: {
278
+ default: defaultWaterMark,
279
+ images: message.images
280
+ }
281
+ };
282
+ }
283
+ } catch (e) {
284
+ console.error(e);
285
+ }
286
+ }
250
287
  window.addEventListener("beforeunload", remove, false);
251
288
  return {
252
289
  config,
290
+ template,
253
291
  checkFileSizeOutLimit,
254
- initUploadConfig
292
+ initUploadConfig,
293
+ initTemplate
255
294
  };
256
295
  }
257
296
  exports.addMedia = addMedia;
258
297
  exports["default"] = useUpload;
259
298
  exports.getMediaDetails = getMediaDetails;
260
299
  exports.getSize = getSize;
300
+ exports.getWatermarkTemplate = getWatermarkTemplate;
261
301
  exports.reTranscodeMedia = reTranscodeMedia;
262
302
  exports.useUploadConfig = useUploadConfig;
package/lib/index.css CHANGED
@@ -4529,11 +4529,13 @@
4529
4529
  }
4530
4530
  .resource-list-footer,
4531
4531
  .resource-list-header,
4532
+ .resource-list-content .resource-list-content-empty,
4532
4533
  .resource-list-content .arco-scrollbar-container {
4533
4534
  padding: 0 40px;
4534
4535
  }
4535
4536
  .resource-list-footer {
4536
4537
  display: flex;
4538
+ flex-wrap: wrap;
4537
4539
  justify-content: space-between;
4538
4540
  padding-bottom: 20px;
4539
4541
  }
@@ -4543,6 +4545,10 @@
4543
4545
  gap: 10px;
4544
4546
  align-items: center;
4545
4547
  justify-content: flex-end;
4548
+ margin-top: 10px;
4549
+ }
4550
+ .resource-list-footer .footer-right .list-selected-wrapper {
4551
+ font-size: 12px;
4546
4552
  }
4547
4553
  .resource-list-content-loading {
4548
4554
  display: flex;
@@ -4554,7 +4560,7 @@
4554
4560
  .resource-list .list-item-grid {
4555
4561
  display: grid;
4556
4562
  grid-gap: 20px;
4557
- grid-template-columns: repeat(5, 1fr);
4563
+ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
4558
4564
  }
4559
4565
  .resource-list .list-content {
4560
4566
  margin-top: 30px;
@@ -4597,7 +4603,8 @@
4597
4603
  }
4598
4604
  .resource-list .list-filter-wrapper .list-filter-tags {
4599
4605
  display: flex;
4600
- justify-content: space-between;
4606
+ flex-wrap: wrap;
4607
+ gap: 10px;
4601
4608
  margin-top: 10px;
4602
4609
  }
4603
4610
  .resource-list .list-filter-wrapper .list-filter-tags .list-filter-tag {
@@ -4618,16 +4625,41 @@
4618
4625
  justify-content: space-between;
4619
4626
  }
4620
4627
  .resource-list .list-filter-wrapper .list-filter .filter-list {
4628
+ position: relative;
4629
+ /** 给 popup 一个参考 */
4621
4630
  display: flex;
4622
- flex-wrap: wrap;
4623
- gap: 10px;
4624
4631
  }
4625
4632
  .resource-list .list-filter-wrapper .list-filter .filter-list .filter-item {
4626
4633
  width: 100px;
4634
+ margin-right: 10px;
4635
+ }
4636
+ .resource-list .list-filter-wrapper .list-filter .filter-list .arco-trigger-popup {
4637
+ z-index: 100000 !important;
4627
4638
  }
4628
4639
  .resource-list .list-filter-wrapper .list-filter .arco-input-prepend {
4629
4640
  padding: 0;
4630
4641
  }
4642
+ .resource-list .list-filter-wrapper .list-filter .more-btn {
4643
+ position: relative;
4644
+ /** 给 poperjs 一个参考 */
4645
+ }
4646
+ .resource-list .list-filter-wrapper .list-filter .more-btn .filter-pannel {
4647
+ inset: 40px auto auto auto !important;
4648
+ }
4649
+ .resource-list .list-filter-wrapper .filter-extra {
4650
+ display: flex;
4651
+ gap: 10px;
4652
+ }
4653
+ .resource-list .list-filter-wrapper .filter-pannel {
4654
+ z-index: 100000;
4655
+ display: flex;
4656
+ flex-direction: column;
4657
+ gap: 10px;
4658
+ padding: 10px;
4659
+ background-color: #fff;
4660
+ border-radius: 4px;
4661
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
4662
+ }
4631
4663
  .resource-list .title {
4632
4664
  display: flex;
4633
4665
  gap: 8px;
@@ -4641,6 +4673,10 @@
4641
4673
  height: 16px;
4642
4674
  background-color: #4886ff;
4643
4675
  }
4676
+ .resource-select-wrap {
4677
+ width: 100%;
4678
+ height: 100%;
4679
+ }
4644
4680
  .resource-select-modal-body {
4645
4681
  height: 80vh;
4646
4682
  padding: 0;
@@ -4669,6 +4705,11 @@
4669
4705
  .resource-select-container .resource-select-header .arco-tabs-content {
4670
4706
  display: none !important;
4671
4707
  }
4708
+ .resource-select-container .resource-list-content .resource-list-content-empty {
4709
+ box-sizing: border-box;
4710
+ width: 100%;
4711
+ height: 100%;
4712
+ }
4672
4713
  .iframe-container {
4673
4714
  position: relative;
4674
4715
  height: 95vh;
@@ -23,6 +23,7 @@ const _sfc_main = vue.defineComponent({
23
23
  var _a;
24
24
  return (_a = userInfo == null ? void 0 : userInfo.value) == null ? void 0 : _a.repository_id;
25
25
  });
26
+ const { template, initTemplate } = useUpload.useUploadConfig();
26
27
  const { list, uploadFile, reTranscode, transcodingFile, removeRecord } = useUpload["default"]();
27
28
  function handleChange(file) {
28
29
  if (!baseAPI || !repoId.value)
@@ -32,7 +33,8 @@ const _sfc_main = vue.defineComponent({
32
33
  file.file,
33
34
  0,
34
35
  repoId.value,
35
- (media) => transcodingFile(baseAPI, media, repoId.value)
36
+ (media) => transcodingFile(baseAPI, media, repoId.value),
37
+ { template: template.value }
36
38
  );
37
39
  }
38
40
  async function handleOptions(e) {
@@ -55,6 +57,9 @@ const _sfc_main = vue.defineComponent({
55
57
  removeRecord(e.item);
56
58
  }
57
59
  }
60
+ vue.onMounted(() => {
61
+ initTemplate(baseAPI);
62
+ });
58
63
  return (_ctx, _cache) => {
59
64
  return vue.openBlock(), vue.createBlock(ListWraper, null, {
60
65
  "footer-extra": vue.withCtx(() => [
@@ -3,41 +3,70 @@ var vue = require("vue");
3
3
  var webVue = require("@arco-design/web-vue");
4
4
  var icon = require("@arco-design/web-vue/es/icon");
5
5
  var useSelection = require("../../../../hooks/useSelection.js");
6
+ var useAttachement = require("../../../../hooks/useAttachement.js");
6
7
  var typeMap = require("../../../../utils/typeMap.js");
7
8
  var selectionApis = require("../../../scripts/selectionApis.js");
8
9
  var resource = require("../../../../utils/resource.js");
10
+ var useResponsiveFilter = require("../../../hooks/useResponsiveFilter.js");
9
11
  const _hoisted_1 = { class: "list-filter-wrapper" };
10
12
  const _hoisted_2 = { class: "list-filter" };
11
- const _hoisted_3 = { class: "filter-list" };
12
- const _hoisted_4 = { style: { "width": "200px" } };
13
+ const _hoisted_3 = { class: "more-btn" };
14
+ const _hoisted_4 = { class: "right-prefix" };
13
15
  const _hoisted_5 = {
14
16
  class: "filter-item",
15
17
  style: { "width": "200px" }
16
18
  };
17
- const _hoisted_6 = { class: "filter-item" };
19
+ const _hoisted_6 = {
20
+ class: "filter-item",
21
+ style: { "width": "180px" }
22
+ };
18
23
  const _hoisted_7 = {
24
+ class: "filter-item",
25
+ style: { "width": "170px" }
26
+ };
27
+ const _hoisted_8 = {
28
+ class: "filter-item",
29
+ style: { "width": "240px" }
30
+ };
31
+ const _hoisted_9 = {
32
+ class: "filter-item",
33
+ style: { "width": "240px" }
34
+ };
35
+ const _hoisted_10 = {
19
36
  key: 0,
20
37
  class: "filter-item"
21
38
  };
22
- const _hoisted_8 = { class: "filter-extra" };
23
- const _hoisted_9 = {
39
+ const _hoisted_11 = { class: "filter-extra" };
40
+ const _hoisted_12 = { class: "filter-item" };
41
+ const _hoisted_13 = {
24
42
  key: 0,
25
43
  class: "list-filter-tags"
26
44
  };
27
- const _hoisted_10 = ["onClick"];
45
+ const _hoisted_14 = ["onClick"];
28
46
  const _sfc_main = vue.defineComponent({
29
47
  __name: "Filter",
30
48
  props: {
49
+ smallScreen: { type: Boolean },
31
50
  disableUploadBy: { type: Boolean }
32
51
  },
33
52
  emits: ["upload", "change"],
34
53
  setup(__props, { expose: __expose, emit: __emit }) {
54
+ var _a, _b, _c;
35
55
  const props = __props;
36
56
  const emits = __emit;
37
57
  const userInfo = vue.inject("userInfo");
38
58
  const baseAPI = vue.inject("baseAPI");
39
59
  const filterOptions = vue.inject("filterOptions");
40
60
  const domainId = vue.computed(() => userInfo == null ? void 0 : userInfo.value.domain_id);
61
+ const filterItemsRef = vue.ref();
62
+ const {
63
+ moreBtnRef,
64
+ popperPanelRef,
65
+ hiddenElementList,
66
+ visible,
67
+ show,
68
+ hide
69
+ } = useResponsiveFilter.useResponsiveFilter(filterItemsRef);
41
70
  const { options, loading, load, loadMore, handleSearch } = useSelection({
42
71
  labelStr: "alias",
43
72
  valueStr: "id",
@@ -57,6 +86,9 @@ const _sfc_main = vue.defineComponent({
57
86
  });
58
87
  const resourceSource = typeMap.RESOURCE_SOURCE_OPTIONS;
59
88
  const resourceCatalog = typeMap.RESOURCE_CATALOG_OPTIONS;
89
+ const { tree } = useAttachement.useDirectory({
90
+ BASE_API: baseAPI
91
+ });
60
92
  const originFilter = {
61
93
  catalog: [],
62
94
  source: "",
@@ -65,9 +97,20 @@ const _sfc_main = vue.defineComponent({
65
97
  keyword: "",
66
98
  precise_keyword: "",
67
99
  upload_by: null,
68
- sf: ""
100
+ sf: "",
101
+ directory_id: void 0
69
102
  };
70
- const filter = vue.ref(JSON.parse(JSON.stringify(originFilter)));
103
+ if ((_a = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _a.mediaTypeStrict) {
104
+ originFilter.catalog = filterOptions.value.mediaType.split(",");
105
+ }
106
+ const filter = vue.ref(
107
+ JSON.parse(
108
+ JSON.stringify({
109
+ ...originFilter,
110
+ catalog: ((_c = (_b = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _b.mediaType) == null ? void 0 : _c.split(",")) || []
111
+ })
112
+ )
113
+ );
71
114
  const handleReset = () => {
72
115
  filter.value = JSON.parse(JSON.stringify(originFilter));
73
116
  };
@@ -112,82 +155,114 @@ const _sfc_main = vue.defineComponent({
112
155
  filter.value.keyword = val;
113
156
  filter.value.precise_keyword = "";
114
157
  }
158
+ filter.value.sf = "";
115
159
  }
116
160
  });
117
- vue.watch(
118
- () => searchType.value,
119
- () => {
120
- searchInput.value = filter.value.keyword || filter.value.precise_keyword;
121
- }
122
- );
123
161
  const isEmpty = vue.computed(() => {
124
- return Object.keys(filter.value).every((key) => {
162
+ return Object.keys(originFilter).every((key) => {
163
+ if (key === "catalog") {
164
+ const currentCatalog = filter.value[key] || [];
165
+ const originCatalog = originFilter[key] || [];
166
+ return currentCatalog.length === originCatalog.length && currentCatalog.every((v) => originCatalog.includes(v));
167
+ }
125
168
  return filter.value[key] === originFilter[key];
126
169
  });
127
170
  });
128
171
  vue.watch(
129
172
  () => filter.value,
130
- () => {
131
- const result = { ...filter.value };
173
+ (val) => {
174
+ const result = { ...val };
132
175
  Object.keys(result).forEach((key) => {
133
176
  if (props.disableUploadBy && key === "upload_by")
134
177
  delete result[key];
135
- if (!result[key])
136
- delete result[key];
178
+ if (result[key] === "" || result[key] === null || result[key] === void 0) {
179
+ if (key !== "catalog") {
180
+ delete result[key];
181
+ }
182
+ }
137
183
  });
138
- if (!result.catalog)
139
- result.catalog = "image,video,audio";
140
- else
141
- result.catalog = result.catalog.join(",");
142
- emits("change", result);
143
- },
144
- { deep: true, immediate: true }
145
- );
146
- vue.watch(
147
- () => filterOptions == null ? void 0 : filterOptions.value,
148
- () => {
149
- var _a;
150
- if ((_a = filterOptions == null ? void 0 : filterOptions.value) == null ? void 0 : _a.mediaType) {
151
- filter.value.catalog = filterOptions == null ? void 0 : filterOptions.value.mediaType.split(",");
152
- if (filterOptions == null ? void 0 : filterOptions.value.mediaTypeStrict) {
153
- originFilter.catalog = filterOptions == null ? void 0 : filterOptions.value.mediaType.split(",");
184
+ if (result.catalog && Array.isArray(result.catalog)) {
185
+ if (result.catalog.length > 0) {
186
+ result.catalog = result.catalog.join(",");
187
+ } else {
188
+ delete result.catalog;
154
189
  }
155
190
  }
191
+ emits("change", result);
156
192
  },
157
- { immediate: true, deep: true }
193
+ { deep: true, immediate: true }
158
194
  );
159
195
  vue.onMounted(() => {
160
196
  load();
161
197
  });
162
198
  __expose({
163
- resetFilter: handleReset
199
+ filter,
200
+ handleReset
164
201
  });
165
202
  return (_ctx, _cache) => {
166
- var _a;
203
+ var _a2;
167
204
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
205
+ vue.createCommentVNode(" Use filterItemsRef's parentElement as the container for boundary checks "),
168
206
  vue.createElementVNode("div", _hoisted_2, [
169
- vue.createElementVNode("div", _hoisted_3, [
207
+ vue.createCommentVNode(" Filter Items Container "),
208
+ vue.createElementVNode("div", {
209
+ id: "resource-filter-pannel",
210
+ ref_key: "filterItemsRef",
211
+ ref: filterItemsRef,
212
+ class: "filter-list"
213
+ }, [
214
+ vue.createCommentVNode(" More Filters Button and Popper Panel "),
215
+ vue.createElementVNode("div", _hoisted_3, [
216
+ vue.createElementVNode("div", {
217
+ ref_key: "moreBtnRef",
218
+ ref: moreBtnRef
219
+ }, [
220
+ vue.withDirectives(vue.createVNode(vue.unref(webVue.Button), {
221
+ style: { marginRight: "10px" },
222
+ onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => vue.unref(visible) ? vue.unref(hide)() : vue.unref(show)(), ["stop"]))
223
+ }, {
224
+ default: vue.withCtx(() => [
225
+ vue.createElementVNode("span", _hoisted_4, [
226
+ _cache[11] || (_cache[11] = vue.createTextVNode(" \u66F4\u591A ")),
227
+ vue.createVNode(vue.unref(icon.IconCaretDown))
228
+ ])
229
+ ]),
230
+ _: 1
231
+ }, 512), [
232
+ [vue.vShow, vue.unref(hiddenElementList).length]
233
+ ])
234
+ ], 512),
235
+ vue.withDirectives(vue.createElementVNode("div", {
236
+ ref_key: "popperPanelRef",
237
+ ref: popperPanelRef,
238
+ class: "filter-pannel",
239
+ onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
240
+ }, ["stop"]))
241
+ }, null, 512), [
242
+ [vue.vShow, vue.unref(visible)]
243
+ ])
244
+ ]),
170
245
  vue.createCommentVNode(" \u5173\u952E\u8BCD "),
171
- vue.createElementVNode("div", _hoisted_4, [
246
+ vue.createElementVNode("div", _hoisted_5, [
172
247
  vue.createVNode(vue.unref(webVue.Input), {
173
248
  modelValue: searchInput.value,
174
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchInput.value = $event),
249
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => searchInput.value = $event),
175
250
  "allow-clear": "",
176
251
  placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD"
177
252
  }, {
178
253
  prepend: vue.withCtx(() => [
179
254
  vue.createVNode(vue.unref(webVue.Dropdown), {
180
- onSelect: _cache[0] || (_cache[0] = (e) => searchType.value = e)
255
+ onSelect: _cache[2] || (_cache[2] = (e) => searchType.value = e)
181
256
  }, {
182
257
  content: vue.withCtx(() => [
183
258
  vue.createVNode(vue.unref(webVue.Doption), { value: 0 }, {
184
- default: vue.withCtx(() => _cache[7] || (_cache[7] = [
259
+ default: vue.withCtx(() => _cache[12] || (_cache[12] = [
185
260
  vue.createTextVNode("\u7CBE\u51C6\u641C")
186
261
  ])),
187
262
  _: 1
188
263
  }),
189
264
  vue.createVNode(vue.unref(webVue.Doption), { value: 1 }, {
190
- default: vue.withCtx(() => _cache[8] || (_cache[8] = [
265
+ default: vue.withCtx(() => _cache[13] || (_cache[13] = [
191
266
  vue.createTextVNode("\u6A21\u7CCA\u641C")
192
267
  ])),
193
268
  _: 1
@@ -207,15 +282,39 @@ const _sfc_main = vue.defineComponent({
207
282
  _: 1
208
283
  }, 8, ["modelValue"])
209
284
  ]),
285
+ vue.createCommentVNode(" \u76EE\u5F55 "),
286
+ vue.createElementVNode("div", _hoisted_6, [
287
+ vue.createVNode(vue.unref(webVue.TreeSelect), {
288
+ modelValue: filter.value.directory_id,
289
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => filter.value.directory_id = $event),
290
+ data: vue.unref(tree),
291
+ "popup-container": "#resource-filter-pannel",
292
+ placeholder: "\u8BF7\u9009\u62E9\u76EE\u5F55",
293
+ "field-names": {
294
+ title: "alias",
295
+ key: "id"
296
+ },
297
+ "allow-clear": "",
298
+ "allow-search": "",
299
+ "filter-tree-node": (searchValue, nodeData) => {
300
+ console.log(nodeData);
301
+ if (!nodeData.alias)
302
+ return false;
303
+ return nodeData.alias.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
304
+ }
305
+ }, null, 8, ["modelValue", "data", "filter-tree-node"])
306
+ ]),
210
307
  vue.createCommentVNode(" \u7D20\u6750\u7C7B\u578B "),
211
- vue.createElementVNode("div", _hoisted_5, [
308
+ vue.createElementVNode("div", _hoisted_7, [
212
309
  vue.createVNode(vue.unref(webVue.Select), {
213
310
  modelValue: filter.value.catalog,
214
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => filter.value.catalog = $event),
215
- disabled: (_a = vue.unref(filterOptions)) == null ? void 0 : _a.mediaTypeStrict,
311
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.catalog = $event),
312
+ disabled: (_a2 = vue.unref(filterOptions)) == null ? void 0 : _a2.mediaTypeStrict,
313
+ "popup-container": "#resource-filter-pannel",
216
314
  "allow-clear": "",
217
315
  placeholder: "\u7C7B\u578B",
218
- multiple: ""
316
+ multiple: "",
317
+ "max-tag-count": 1
219
318
  }, {
220
319
  default: vue.withCtx(() => [
221
320
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(resourceCatalog), (item) => {
@@ -230,19 +329,22 @@ const _sfc_main = vue.defineComponent({
230
329
  }, 8, ["modelValue", "disabled"])
231
330
  ]),
232
331
  vue.createCommentVNode(" \u65F6\u95F4\u8303\u56F4 "),
233
- vue.createVNode(vue.unref(webVue.RangePicker), {
234
- modelValue: rangeTime.value,
235
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => rangeTime.value = $event),
236
- "allow-clear": "",
237
- style: { "width": "240px" }
238
- }, null, 8, ["modelValue"]),
332
+ vue.createElementVNode("div", _hoisted_8, [
333
+ vue.createVNode(vue.unref(webVue.RangePicker), {
334
+ modelValue: rangeTime.value,
335
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => rangeTime.value = $event),
336
+ "allow-clear": "",
337
+ "popup-container": "#resource-filter-pannel"
338
+ }, null, 8, ["modelValue"])
339
+ ]),
239
340
  vue.createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u6765\u6E90 "),
240
- vue.createElementVNode("div", _hoisted_6, [
341
+ vue.createElementVNode("div", _hoisted_9, [
241
342
  vue.createVNode(vue.unref(webVue.Select), {
242
343
  modelValue: filter.value.source,
243
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => filter.value.source = $event),
344
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => filter.value.source = $event),
244
345
  "allow-clear": "",
245
- placeholder: "\u6765\u6E90"
346
+ placeholder: "\u6765\u6E90",
347
+ "popup-container": "#resource-filter-pannel"
246
348
  }, {
247
349
  default: vue.withCtx(() => [
248
350
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(resourceSource), (item) => {
@@ -257,14 +359,15 @@ const _sfc_main = vue.defineComponent({
257
359
  }, 8, ["modelValue"])
258
360
  ]),
259
361
  vue.createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u4EBA "),
260
- !_ctx.disableUploadBy ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
362
+ !_ctx.disableUploadBy ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10, [
261
363
  vue.createVNode(vue.unref(webVue.Select), {
262
364
  modelValue: filter.value.upload_by,
263
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.upload_by = $event),
365
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => filter.value.upload_by = $event),
264
366
  "allow-clear": "",
265
367
  placeholder: "\u4E0A\u4F20\u4EBA",
266
368
  loading: vue.unref(loading),
267
369
  "allow-search": "",
370
+ "popup-container": "#resource-filter-pannel",
268
371
  onSearch: vue.unref(handleSearch),
269
372
  onDropdownReachBottom: vue.unref(loadMore)
270
373
  }, {
@@ -279,40 +382,64 @@ const _sfc_main = vue.defineComponent({
279
382
  ]),
280
383
  _: 1
281
384
  }, 8, ["modelValue", "loading", "onSearch", "onDropdownReachBottom"])
282
- ])) : vue.createCommentVNode("v-if", true),
283
- !isEmpty.value ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
284
- key: 1,
285
- type: "text",
286
- onClick: handleReset
385
+ ])) : vue.createCommentVNode("v-if", true)
386
+ ], 512),
387
+ vue.createElementVNode("div", _hoisted_11, [
388
+ vue.createCommentVNode(" \u91CD\u7F6E\u6309\u94AE - Wrap in filter-item to be managed by the hook "),
389
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_12, [
390
+ _ctx.smallScreen ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
391
+ key: 0,
392
+ type: "text",
393
+ onClick: handleReset
394
+ }, {
395
+ icon: vue.withCtx(() => [
396
+ vue.createVNode(vue.unref(icon.IconRefresh))
397
+ ]),
398
+ _: 1
399
+ })) : (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
400
+ key: 1,
401
+ type: "text",
402
+ onClick: handleReset
403
+ }, {
404
+ default: vue.withCtx(() => _cache[14] || (_cache[14] = [
405
+ vue.createTextVNode(" \u91CD\u7F6E ")
406
+ ])),
407
+ _: 1
408
+ }))
409
+ ], 512), [
410
+ [vue.vShow, !isEmpty.value]
411
+ ]),
412
+ _ctx.smallScreen ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
413
+ key: 0,
414
+ type: "primary",
415
+ onClick: _cache[9] || (_cache[9] = ($event) => emits("upload"))
287
416
  }, {
288
- default: vue.withCtx(() => _cache[9] || (_cache[9] = [
289
- vue.createTextVNode(" \u91CD\u7F6E ")
290
- ])),
417
+ icon: vue.withCtx(() => [
418
+ vue.createVNode(vue.unref(icon.IconUpload))
419
+ ]),
291
420
  _: 1
292
- })) : vue.createCommentVNode("v-if", true)
293
- ]),
294
- vue.createElementVNode("div", _hoisted_8, [
295
- vue.createVNode(vue.unref(webVue.Button), {
421
+ })) : (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
422
+ key: 1,
296
423
  type: "primary",
297
- onClick: _cache[6] || (_cache[6] = ($event) => emits("upload"))
424
+ onClick: _cache[10] || (_cache[10] = ($event) => emits("upload"))
298
425
  }, {
299
426
  icon: vue.withCtx(() => [
300
427
  vue.createVNode(vue.unref(icon.IconUpload))
301
428
  ]),
302
429
  default: vue.withCtx(() => [
303
- _cache[10] || (_cache[10] = vue.createTextVNode(" \u4E0A\u4F20 "))
430
+ _cache[15] || (_cache[15] = vue.createTextVNode(" \u4E0A\u4F20 "))
304
431
  ]),
305
432
  _: 1
306
- })
433
+ }))
307
434
  ])
308
435
  ]),
309
- searchInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
436
+ searchInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [
310
437
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(resource.keywordsSelection), (item) => {
311
438
  return vue.openBlock(), vue.createElementBlock("div", {
312
439
  key: item.value,
313
440
  class: vue.normalizeClass(["list-filter-tag", { active: filter.value.sf === item.value }]),
314
441
  onClick: ($event) => filter.value.sf = item.value
315
- }, vue.toDisplayString(item.name), 11, _hoisted_10);
442
+ }, vue.toDisplayString(item.name), 11, _hoisted_14);
316
443
  }), 128))
317
444
  ])) : vue.createCommentVNode("v-if", true)
318
445
  ]);