@cmstops/pro-compo 0.3.30 → 0.3.32

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 (71) hide show
  1. package/dist/index.css +84 -0
  2. package/dist/index.min.css +1 -1
  3. package/es/hooks/useAttachement.d.ts +20 -0
  4. package/es/hooks/useAttachement.js +95 -0
  5. package/es/hooks/useSelection.d.ts +23 -0
  6. package/es/hooks/useSelection.js +59 -0
  7. package/es/index.css +84 -0
  8. package/es/index.d.ts +2 -0
  9. package/es/index.js +2 -0
  10. package/es/index.less +2 -0
  11. package/es/selectResourceModal/component.d.ts +0 -0
  12. package/es/selectResourceModal/component.js +211 -0
  13. package/es/selectResourceModal/components/ListContent/index.d.ts +0 -0
  14. package/es/selectResourceModal/components/ListContent/index.js +92 -0
  15. package/es/selectResourceModal/components/ListFilter/index.d.ts +0 -0
  16. package/es/selectResourceModal/components/ListFilter/index.js +259 -0
  17. package/es/selectResourceModal/components/ListFilter/scripts/api.d.ts +1 -0
  18. package/es/selectResourceModal/components/ListFilter/scripts/api.js +9 -0
  19. package/es/selectResourceModal/components/ListSelected/index.d.ts +0 -0
  20. package/es/selectResourceModal/components/ListSelected/index.js +91 -0
  21. package/es/selectResourceModal/index.d.ts +2 -0
  22. package/es/selectResourceModal/index.js +7 -0
  23. package/es/selectResourceModal/style/css.js +4 -0
  24. package/es/selectResourceModal/style/index.css +31 -0
  25. package/es/selectResourceModal/style/index.d.ts +4 -0
  26. package/es/selectResourceModal/style/index.js +4 -0
  27. package/es/selectResourceModal/style/index.less +39 -0
  28. package/es/selectResourceModal/style/listContent.less +67 -0
  29. package/es/selectResourceModal/style/listFilter.less +17 -0
  30. package/es/selectResourceModal/style/listSelected.less +67 -0
  31. package/es/selectThumb/component.js +10 -5
  32. package/es/selectThumb/components/card.js +111 -59
  33. package/es/thumbCard/component.d.ts +0 -0
  34. package/es/thumbCard/component.js +114 -0
  35. package/es/thumbCard/index.d.ts +2 -0
  36. package/es/thumbCard/index.js +7 -0
  37. package/es/thumbCard/style/css.js +1 -0
  38. package/es/thumbCard/style/index.css +53 -0
  39. package/es/thumbCard/style/index.d.ts +1 -0
  40. package/es/thumbCard/style/index.js +1 -0
  41. package/es/thumbCard/style/index.less +70 -0
  42. package/es/utils/typeMap.d.ts +19 -0
  43. package/es/utils/typeMap.js +17 -1
  44. package/lib/hooks/useAttachement.js +100 -0
  45. package/lib/hooks/useSelection.js +60 -0
  46. package/lib/index.css +84 -0
  47. package/lib/index.js +4 -0
  48. package/lib/index.less +2 -0
  49. package/lib/selectResourceModal/component.js +212 -0
  50. package/lib/selectResourceModal/components/ListContent/index.js +93 -0
  51. package/lib/selectResourceModal/components/ListFilter/index.js +260 -0
  52. package/lib/selectResourceModal/components/ListFilter/scripts/api.js +11 -0
  53. package/lib/selectResourceModal/components/ListSelected/index.js +92 -0
  54. package/lib/selectResourceModal/index.js +8 -0
  55. package/lib/selectResourceModal/style/css.js +5 -0
  56. package/lib/selectResourceModal/style/index.css +31 -0
  57. package/lib/selectResourceModal/style/index.js +5 -0
  58. package/lib/selectResourceModal/style/index.less +39 -0
  59. package/lib/selectResourceModal/style/listContent.less +67 -0
  60. package/lib/selectResourceModal/style/listFilter.less +17 -0
  61. package/lib/selectResourceModal/style/listSelected.less +67 -0
  62. package/lib/selectThumb/component.js +10 -5
  63. package/lib/selectThumb/components/card.js +110 -58
  64. package/lib/thumbCard/component.js +115 -0
  65. package/lib/thumbCard/index.js +8 -0
  66. package/lib/thumbCard/style/css.js +2 -0
  67. package/lib/thumbCard/style/index.css +53 -0
  68. package/lib/thumbCard/style/index.js +2 -0
  69. package/lib/thumbCard/style/index.less +70 -0
  70. package/lib/utils/typeMap.js +20 -0
  71. package/package.json +2 -2
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ var vue = require("vue");
3
+ var webVue = require("@arco-design/web-vue");
4
+ var icon = require("@arco-design/web-vue/es/icon");
5
+ var useSelection = require("../../../hooks/useSelection.js");
6
+ var typeMap = require("../../../utils/typeMap.js");
7
+ var api = require("./scripts/api.js");
8
+ const _hoisted_1 = { class: "list-filter-wrapper" };
9
+ const _hoisted_2 = { class: "filter-list" };
10
+ const _hoisted_3 = { style: { "width": "200px" } };
11
+ const _hoisted_4 = { class: "filter-item" };
12
+ const _hoisted_5 = { class: "filter-item" };
13
+ const _hoisted_6 = {
14
+ key: 0,
15
+ class: "filter-item"
16
+ };
17
+ const _hoisted_7 = { class: "filter-extra" };
18
+ const _sfc_main = vue.defineComponent({
19
+ __name: "index",
20
+ props: {
21
+ disableUploadBy: { type: Boolean }
22
+ },
23
+ emits: ["upload", "change"],
24
+ setup(__props, { emit: __emit }) {
25
+ const props = __props;
26
+ const emits = __emit;
27
+ const userInfo = vue.inject("userInfo");
28
+ const baseAPI = vue.inject("baseAPI");
29
+ const domainId = vue.computed(() => userInfo == null ? void 0 : userInfo.value.domain_id);
30
+ const { options, loading, load, loadMore, handleSearch } = useSelection({
31
+ labelStr: "alias",
32
+ valueStr: "id",
33
+ func: async ({ keyword, ...pageInfo }) => {
34
+ if (!baseAPI)
35
+ return Promise.reject(new Error("baseAPI \u4E0D\u5B58\u5728"));
36
+ if (!domainId.value)
37
+ return Promise.reject(new Error("domainId \u4E0D\u5B58\u5728"));
38
+ const { code, message } = await api.getAccountList(baseAPI, domainId.value, {
39
+ ...pageInfo,
40
+ keywords: keyword
41
+ });
42
+ if (code !== 0)
43
+ return Promise.reject(new Error(message));
44
+ return message.users;
45
+ }
46
+ });
47
+ const resourceSource = typeMap.RESOURCE_SOURCE_OPTIONS;
48
+ const resourceCatalog = typeMap.RESOURCE_CATALOG_OPTIONS;
49
+ const originFilter = {
50
+ catalog: "",
51
+ source: "",
52
+ create_begin: "",
53
+ create_end: "",
54
+ keyword: "",
55
+ precise_keyword: "",
56
+ upload_by: null
57
+ };
58
+ const filter = vue.ref(JSON.parse(JSON.stringify(originFilter)));
59
+ const handleReset = () => {
60
+ filter.value = JSON.parse(JSON.stringify(originFilter));
61
+ };
62
+ const rangeTime = vue.computed({
63
+ get() {
64
+ return filter.value.create_begin && filter.value.create_end ? [filter.value.create_begin * 1e3, filter.value.create_end * 1e3] : null;
65
+ },
66
+ set(val) {
67
+ if (val) {
68
+ const [start, end] = val;
69
+ filter.value.create_begin = +new Date(start) / 1e3;
70
+ filter.value.create_end = +new Date(end) / 1e3;
71
+ } else {
72
+ filter.value.create_begin = "";
73
+ filter.value.create_end = "";
74
+ }
75
+ }
76
+ });
77
+ const searchType = vue.ref(0);
78
+ const searchTypeText = vue.computed(() => {
79
+ return searchType.value === 0 ? "\u7CBE\u51C6\u641C" : "\u6A21\u7CCA\u641C";
80
+ });
81
+ const searchInput = vue.computed({
82
+ get() {
83
+ return searchType.value === 0 ? filter.value.precise_keyword : filter.value.keyword;
84
+ },
85
+ set(val) {
86
+ if (searchType.value === 0) {
87
+ filter.value.precise_keyword = val;
88
+ filter.value.keyword = "";
89
+ } else {
90
+ filter.value.keyword = val;
91
+ filter.value.precise_keyword = "";
92
+ }
93
+ }
94
+ });
95
+ const isEmpty = vue.computed(() => {
96
+ return Object.keys(filter.value).every((key) => {
97
+ return !filter.value[key];
98
+ });
99
+ });
100
+ vue.watch(
101
+ () => filter.value,
102
+ () => {
103
+ const result = { ...filter.value };
104
+ Object.keys(result).forEach((key) => {
105
+ if (props.disableUploadBy && key === "upload_by")
106
+ delete result[key];
107
+ if (!result[key])
108
+ delete result[key];
109
+ });
110
+ emits("change", result);
111
+ },
112
+ { deep: true }
113
+ );
114
+ vue.onMounted(() => {
115
+ load();
116
+ });
117
+ return (_ctx, _cache) => {
118
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
119
+ vue.createElementVNode("div", _hoisted_2, [
120
+ vue.createCommentVNode(" \u5173\u952E\u8BCD "),
121
+ vue.createElementVNode("div", _hoisted_3, [
122
+ vue.createVNode(vue.unref(webVue.Input), {
123
+ modelValue: searchInput.value,
124
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchInput.value = $event),
125
+ "allow-clear": "",
126
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD"
127
+ }, {
128
+ prepend: vue.withCtx(() => [
129
+ vue.createVNode(vue.unref(webVue.Dropdown), {
130
+ onSelect: _cache[0] || (_cache[0] = (e) => searchType.value = e)
131
+ }, {
132
+ content: vue.withCtx(() => [
133
+ vue.createVNode(vue.unref(webVue.Doption), { value: 0 }, {
134
+ default: vue.withCtx(() => [
135
+ vue.createTextVNode("\u7CBE\u51C6\u641C")
136
+ ]),
137
+ _: 1
138
+ }),
139
+ vue.createVNode(vue.unref(webVue.Doption), { value: 1 }, {
140
+ default: vue.withCtx(() => [
141
+ vue.createTextVNode("\u6A21\u7CCA\u641C")
142
+ ]),
143
+ _: 1
144
+ })
145
+ ]),
146
+ default: vue.withCtx(() => [
147
+ vue.createVNode(vue.unref(webVue.Button), null, {
148
+ default: vue.withCtx(() => [
149
+ vue.createTextVNode(vue.toDisplayString(searchTypeText.value), 1)
150
+ ]),
151
+ _: 1
152
+ })
153
+ ]),
154
+ _: 1
155
+ })
156
+ ]),
157
+ _: 1
158
+ }, 8, ["modelValue"])
159
+ ]),
160
+ vue.createCommentVNode(" \u7D20\u6750\u7C7B\u578B "),
161
+ vue.createElementVNode("div", _hoisted_4, [
162
+ vue.createVNode(vue.unref(webVue.Select), {
163
+ modelValue: filter.value.catalog,
164
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => filter.value.catalog = $event),
165
+ "allow-clear": "",
166
+ placeholder: "\u7C7B\u578B"
167
+ }, {
168
+ default: vue.withCtx(() => [
169
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(resourceCatalog), (item) => {
170
+ return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
171
+ key: item.value,
172
+ label: item.label,
173
+ value: item.value
174
+ }, null, 8, ["label", "value"]);
175
+ }), 128))
176
+ ]),
177
+ _: 1
178
+ }, 8, ["modelValue"])
179
+ ]),
180
+ vue.createCommentVNode(" \u65F6\u95F4\u8303\u56F4 "),
181
+ vue.createVNode(vue.unref(webVue.RangePicker), {
182
+ modelValue: rangeTime.value,
183
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => rangeTime.value = $event),
184
+ "allow-clear": "",
185
+ style: { "width": "240px" }
186
+ }, null, 8, ["modelValue"]),
187
+ vue.createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u6765\u6E90 "),
188
+ vue.createElementVNode("div", _hoisted_5, [
189
+ vue.createVNode(vue.unref(webVue.Select), {
190
+ modelValue: filter.value.source,
191
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => filter.value.source = $event),
192
+ "allow-clear": "",
193
+ placeholder: "\u6765\u6E90"
194
+ }, {
195
+ default: vue.withCtx(() => [
196
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(resourceSource), (item) => {
197
+ return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
198
+ key: item.value,
199
+ label: item.label,
200
+ value: item.value
201
+ }, null, 8, ["label", "value"]);
202
+ }), 128))
203
+ ]),
204
+ _: 1
205
+ }, 8, ["modelValue"])
206
+ ]),
207
+ vue.createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u4EBA "),
208
+ !_ctx.disableUploadBy ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
209
+ vue.createVNode(vue.unref(webVue.Select), {
210
+ modelValue: filter.value.upload_by,
211
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.upload_by = $event),
212
+ "allow-clear": "",
213
+ placeholder: "\u4E0A\u4F20\u4EBA",
214
+ loading: vue.unref(loading),
215
+ "allow-search": "",
216
+ onSearch: vue.unref(handleSearch),
217
+ onDropdownReachBottom: vue.unref(loadMore)
218
+ }, {
219
+ default: vue.withCtx(() => [
220
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(options), (item) => {
221
+ return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
222
+ key: item.id,
223
+ label: item.label,
224
+ value: item.value
225
+ }, null, 8, ["label", "value"]);
226
+ }), 128))
227
+ ]),
228
+ _: 1
229
+ }, 8, ["modelValue", "loading", "onSearch", "onDropdownReachBottom"])
230
+ ])) : vue.createCommentVNode("v-if", true),
231
+ !isEmpty.value ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Button), {
232
+ key: 1,
233
+ type: "text",
234
+ onClick: handleReset
235
+ }, {
236
+ default: vue.withCtx(() => [
237
+ vue.createTextVNode("\u91CD\u7F6E")
238
+ ]),
239
+ _: 1
240
+ })) : vue.createCommentVNode("v-if", true)
241
+ ]),
242
+ vue.createElementVNode("div", _hoisted_7, [
243
+ vue.createVNode(vue.unref(webVue.Button), {
244
+ type: "primary",
245
+ onClick: _cache[6] || (_cache[6] = ($event) => emits("upload"))
246
+ }, {
247
+ icon: vue.withCtx(() => [
248
+ vue.createVNode(vue.unref(icon.IconUpload))
249
+ ]),
250
+ default: vue.withCtx(() => [
251
+ vue.createTextVNode(" \u4E0A\u4F20 ")
252
+ ]),
253
+ _: 1
254
+ })
255
+ ])
256
+ ]);
257
+ };
258
+ }
259
+ });
260
+ module.exports = _sfc_main;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ var request = require("../../../../utils/request.js");
4
+ function getAccountList(BASE_API, id, query) {
5
+ return request(BASE_API, {
6
+ url: `/poplar/v2/accounts/${id}`,
7
+ method: "get",
8
+ params: query
9
+ });
10
+ }
11
+ exports.getAccountList = getAccountList;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var vue = require("vue");
3
+ var webVue = require("@arco-design/web-vue");
4
+ var icon = require("@arco-design/web-vue/es/icon");
5
+ const _hoisted_1 = { class: "list-selected-wrapper" };
6
+ const _hoisted_2 = { key: 0 };
7
+ const _hoisted_3 = { class: "list-panel-header" };
8
+ const _hoisted_4 = { class: "header-options" };
9
+ const _hoisted_5 = { class: "list-selected-record" };
10
+ const _hoisted_6 = { class: "item-thumb" };
11
+ const _hoisted_7 = { class: "item-alias" };
12
+ const _sfc_main = vue.defineComponent({
13
+ __name: "index",
14
+ props: {
15
+ selected: {},
16
+ maxcount: {}
17
+ },
18
+ emits: ["remove", "clear"],
19
+ setup(__props, { emit: __emit }) {
20
+ const emits = __emit;
21
+ const visible = vue.ref(false);
22
+ return (_ctx, _cache) => {
23
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
24
+ _ctx.maxcount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, "\u6700\u591A\u9009\u62E9 " + vue.toDisplayString(_ctx.maxcount) + " \u4E2A\u7D20\u6750\uFF0C ", 1)) : vue.createCommentVNode("v-if", true),
25
+ vue.createVNode(vue.unref(webVue.Popover), {
26
+ "popup-visible": visible.value,
27
+ "onUpdate:popupVisible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
28
+ trigger: "click",
29
+ "content-class": "list-panel-wrapper"
30
+ }, {
31
+ content: vue.withCtx(() => [
32
+ vue.createCommentVNode(" header "),
33
+ vue.createElementVNode("div", _hoisted_3, [
34
+ vue.createElementVNode("div", null, "\u5DF2\u9009\u62E9 " + vue.toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1),
35
+ vue.createElementVNode("div", _hoisted_4, [
36
+ vue.createElementVNode("div", {
37
+ onClick: _cache[0] || (_cache[0] = ($event) => emits("clear"))
38
+ }, " \u6E05\u9664 "),
39
+ vue.createElementVNode("div", {
40
+ onClick: _cache[1] || (_cache[1] = ($event) => visible.value = false)
41
+ }, [
42
+ vue.createVNode(vue.unref(icon.IconClose), { size: "14" })
43
+ ])
44
+ ])
45
+ ]),
46
+ vue.createCommentVNode(" content "),
47
+ vue.createElementVNode("div", _hoisted_5, [
48
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.selected, (item) => {
49
+ return vue.openBlock(), vue.createElementBlock("div", {
50
+ key: item.id,
51
+ class: "list-selected-item"
52
+ }, [
53
+ vue.createElementVNode("div", _hoisted_6, [
54
+ ["image", "video"].includes(item.catalog) ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Image), {
55
+ key: 0,
56
+ width: "100%",
57
+ height: "100%",
58
+ src: item.thumb || item.url
59
+ }, null, 8, ["src"])) : vue.createCommentVNode("v-if", true),
60
+ ["audio"].includes(item.catalog) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
61
+ vue.createTextVNode(" \u97F3\u9891 ")
62
+ ], 64)) : vue.createCommentVNode("v-if", true)
63
+ ]),
64
+ vue.createElementVNode("div", _hoisted_7, vue.toDisplayString(item.alias), 1),
65
+ vue.createVNode(vue.unref(webVue.Button), {
66
+ type: "text",
67
+ onClick: ($event) => emits("remove", item)
68
+ }, {
69
+ icon: vue.withCtx(() => [
70
+ vue.createVNode(vue.unref(icon.IconClose))
71
+ ]),
72
+ _: 2
73
+ }, 1032, ["onClick"])
74
+ ]);
75
+ }), 128))
76
+ ])
77
+ ]),
78
+ default: vue.withCtx(() => [
79
+ vue.createVNode(vue.unref(webVue.Link), null, {
80
+ default: vue.withCtx(() => [
81
+ vue.createTextVNode("\u5DF2\u9009\u62E9 " + vue.toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1)
82
+ ]),
83
+ _: 1
84
+ })
85
+ ]),
86
+ _: 1
87
+ }, 8, ["popup-visible"])
88
+ ]);
89
+ };
90
+ }
91
+ });
92
+ module.exports = _sfc_main;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var component = require("./component.js");
3
+ const selectResourceModal = Object.assign(component, {
4
+ install: (app) => {
5
+ app.component(component.name, component);
6
+ }
7
+ });
8
+ module.exports = selectResourceModal;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ require("./index.css");
3
+ require("./listContent.css");
4
+ require("./listFilter.css");
5
+ require("./listSelected.css");
@@ -0,0 +1,31 @@
1
+ .resource-select-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 10px;
5
+ box-sizing: border-box;
6
+ height: 100%;
7
+ }
8
+ .resource-select-container .resource-select-filter,
9
+ .resource-select-container .resource-select-content,
10
+ .resource-select-container .resource-select-footer {
11
+ padding: 0 16px 0;
12
+ }
13
+ .resource-select-container .resource-select-header .arco-tabs-nav::before {
14
+ display: none;
15
+ }
16
+ .resource-select-container .resource-select-header .arco-tabs-content {
17
+ display: none !important;
18
+ }
19
+ .resource-select-container .resource-select-content {
20
+ flex: 1;
21
+ overflow: hidden;
22
+ }
23
+ .resource-select-container .resource-select-footer {
24
+ display: flex;
25
+ justify-content: space-between;
26
+ }
27
+ .resource-select-container .resource-select-footer .footer-right {
28
+ display: flex;
29
+ gap: 10px;
30
+ align-items: center;
31
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ require("./index.less");
3
+ require("./listContent.less");
4
+ require("./listFilter.less");
5
+ require("./listSelected.less");
@@ -0,0 +1,39 @@
1
+ .resource-select-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 10px;
5
+ box-sizing: border-box;
6
+ height: 100%;
7
+
8
+ .resource-select-filter,
9
+ .resource-select-content,
10
+ .resource-select-footer {
11
+ padding: 0 16px 0;
12
+ }
13
+
14
+ .resource-select-header {
15
+ .arco-tabs-nav::before {
16
+ display: none;
17
+ }
18
+
19
+ .arco-tabs-content {
20
+ display: none !important;
21
+ }
22
+ }
23
+
24
+ .resource-select-content {
25
+ flex: 1;
26
+ overflow: hidden;
27
+ }
28
+
29
+ .resource-select-footer {
30
+ display: flex;
31
+ justify-content: space-between;
32
+
33
+ .footer-right {
34
+ display: flex;
35
+ gap: 10px;
36
+ align-items: center;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,67 @@
1
+ .card-list-wrapper {
2
+ display: grid;
3
+ grid-gap: 20px;
4
+ grid-template-columns: repeat(4, 1fr);
5
+
6
+ .card-wrapper-image {
7
+ position: relative;
8
+ overflow: hidden;
9
+
10
+ .card-wrapper {
11
+ overflow: hidden;
12
+ // 宽高:43
13
+ aspect-ratio: 4 / 3;
14
+ }
15
+
16
+ .card-alias {
17
+ width: 100%;
18
+ margin-top: 6px;
19
+ overflow: hidden;
20
+ color: #3d3d3d;
21
+ font-size: 14px;
22
+ line-height: 22px;
23
+ white-space: nowrap;
24
+ text-overflow: ellipsis;
25
+ }
26
+
27
+ &:hover .check-box-wrapper .check-box,
28
+ .check-box-wrapper .check-box.active {
29
+ opacity: 1;
30
+ }
31
+
32
+ .check-box-wrapper {
33
+ position: absolute;
34
+ top: 8px;
35
+ left: 8px;
36
+ cursor: pointer;
37
+
38
+ .check-box {
39
+ box-sizing: border-box;
40
+ width: 22px;
41
+ height: 22px;
42
+ font-size: 14px;
43
+ line-height: 22px;
44
+ text-align: center;
45
+ background-color: rgba(0, 0, 0, 0.2);
46
+ border: 1px solid white;
47
+ border-radius: 50%;
48
+ opacity: 0;
49
+ transition: all 0.3s ease-in-out;
50
+
51
+ &::selection {
52
+ display: none;
53
+ }
54
+
55
+ &:hover {
56
+ background-color: rgba(0, 0, 0, 0.3);
57
+ }
58
+
59
+ &.active {
60
+ color: white;
61
+ background-color: #165dff;
62
+ border-color: #165dff;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,17 @@
1
+ .list-filter-wrapper {
2
+ display: flex;
3
+ justify-content: space-between;
4
+
5
+ .filter-list {
6
+ display: flex;
7
+ gap: 10px;
8
+
9
+ .filter-item {
10
+ width: 100px;
11
+ }
12
+ }
13
+
14
+ .arco-input-prepend {
15
+ padding: 0;
16
+ }
17
+ }
@@ -0,0 +1,67 @@
1
+ .list-panel-wrapper {
2
+ * {
3
+ user-select: none;
4
+
5
+ &::selection {
6
+ display: none;
7
+ }
8
+ }
9
+
10
+ width: 420px;
11
+ max-height: 600px;
12
+ padding: 0 !important;
13
+ overflow: hidden;
14
+ border: none;
15
+ border-radius: 4px;
16
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
17
+
18
+ .arco-popover-content {
19
+ margin-top: 0;
20
+ }
21
+
22
+ .list-panel-header {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ padding: 11px 15px;
27
+ color: white;
28
+ font-weight: 500;
29
+ background-color: #165dff;
30
+
31
+ .header-options {
32
+ display: flex;
33
+ gap: 12px;
34
+ align-items: center;
35
+
36
+ div {
37
+ cursor: pointer;
38
+ }
39
+ }
40
+ }
41
+
42
+ .list-selected-record {
43
+ display: flex;
44
+ flex-direction: column;
45
+
46
+ .list-selected-item {
47
+ display: flex;
48
+ gap: 12px;
49
+ align-items: center;
50
+ padding: 9px 16px;
51
+ overflow: hidden;
52
+
53
+ .item-thumb {
54
+ width: 50px;
55
+ height: 38px;
56
+ overflow: hidden;
57
+ }
58
+
59
+ .item-alias {
60
+ flex: 1;
61
+ overflow: hidden;
62
+ white-space: nowrap;
63
+ text-overflow: ellipsis;
64
+ }
65
+ }
66
+ }
67
+ }
@@ -81,7 +81,8 @@ const _sfc_main = vue.defineComponent({
81
81
  aiImages: {},
82
82
  series: {},
83
83
  thumbsMax: {},
84
- mediaUseType: {}
84
+ mediaUseType: {},
85
+ localUpload: { type: Boolean }
85
86
  },
86
87
  emits: ["update:dataValue", "upload"],
87
88
  setup(__props, { emit: __emit }) {
@@ -418,12 +419,13 @@ const _sfc_main = vue.defineComponent({
418
419
  parentRef: selectThumbRef.value,
419
420
  idx: index2,
420
421
  "preview-list": previewList.value,
422
+ "is-popover": _ctx.localUpload,
421
423
  "thumb-model": "thumb",
422
424
  onFileForShowThumb: fileForShowThumb,
423
425
  onChangeThumbType: changeThumbType,
424
426
  onUploadLocal: _cache[0] || (_cache[0] = (cb) => _ctx.$emit("upload", cb)),
425
427
  onOpen: ($event) => openDialogMediaSelection($event, index2)
426
- }, null, 8, ["id", "data", "onUpdate:data", "parentRef", "idx", "preview-list", "onOpen"]);
428
+ }, null, 8, ["id", "data", "onUpdate:data", "parentRef", "idx", "preview-list", "is-popover", "onOpen"]);
427
429
  }), 128))
428
430
  ])) : currentModel.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
429
431
  vue.createCommentVNode(" \u5C01\u9762\u56FEcard "),
@@ -438,12 +440,13 @@ const _sfc_main = vue.defineComponent({
438
440
  model: model.value,
439
441
  idx: index2,
440
442
  "preview-list": previewList.value,
443
+ "is-popover": _ctx.localUpload,
441
444
  "thumb-model": "thumb",
442
445
  onFileForShowThumb: fileForShowThumb,
443
446
  onChangeThumbType: changeThumbType,
444
447
  onUploadLocal: _cache[1] || (_cache[1] = (cb) => _ctx.$emit("upload", cb)),
445
448
  onOpen: ($event) => openDialogMediaSelection($event, index2)
446
- }, null, 8, ["id", "data", "onUpdate:data", "parentRef", "model", "idx", "preview-list", "onOpen"]);
449
+ }, null, 8, ["id", "data", "onUpdate:data", "parentRef", "model", "idx", "preview-list", "is-popover", "onOpen"]);
447
450
  }), 128))
448
451
  ])
449
452
  ], 2112)) : vue.createCommentVNode("v-if", true),
@@ -513,12 +516,13 @@ const _sfc_main = vue.defineComponent({
513
516
  "onUpdate:data": _cache[5] || (_cache[5] = ($event) => banner.value = $event),
514
517
  parentRef: selectThumbRef.value,
515
518
  "preview-list": previewList.value,
519
+ "is-popover": _ctx.localUpload,
516
520
  "thumb-model": "banner",
517
521
  onFileForShowThumb: fileForShowThumb,
518
522
  onChangeThumbType: changeThumbType,
519
523
  onUploadLocal: _cache[6] || (_cache[6] = (cb) => _ctx.$emit("upload", cb)),
520
524
  onOpen: openDialogMediaSelection
521
- }, null, 8, ["data", "parentRef", "preview-list"])) : vue.createCommentVNode("v-if", true),
525
+ }, null, 8, ["data", "parentRef", "preview-list", "is-popover"])) : vue.createCommentVNode("v-if", true),
522
526
  hasBanner.value && styleData.value.banner_theme_color ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10, _hoisted_12)) : vue.createCommentVNode("v-if", true),
523
527
  vue.createCommentVNode(" banner\u8C03\u8272\u677F "),
524
528
  hasBanner.value ? (vue.openBlock(), vue.createBlock(colorPalette, {
@@ -550,12 +554,13 @@ const _sfc_main = vue.defineComponent({
550
554
  "onUpdate:data": _cache[7] || (_cache[7] = ($event) => pcBanner.value = $event),
551
555
  parentRef: selectThumbRef.value,
552
556
  previewList: previewList.value,
557
+ "is-popover": _ctx.localUpload,
553
558
  thumbModel: "pcBanner",
554
559
  onFileForShowThumb: fileForShowThumb,
555
560
  onChangeThumbType: changeThumbType,
556
561
  onUploadLocal: _cache[8] || (_cache[8] = (cb) => _ctx.$emit("upload", cb)),
557
562
  onOpen: openDialogMediaSelection
558
- }, null, 8, ["data", "parentRef", "previewList"]),
563
+ }, null, 8, ["data", "parentRef", "previewList", "is-popover"]),
559
564
  _ctx.flex ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_18, "(\u5EFA\u8BAE\u5C3A\u5BF8\uFF1A1242px*662px)")) : vue.createCommentVNode("v-if", true),
560
565
  docSeriesShowTopThemeColor.value && styleData.value.top_theme_color ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_19, _hoisted_21)) : vue.createCommentVNode("v-if", true),
561
566
  docSeriesShowTopThemeColor.value ? (vue.openBlock(), vue.createBlock(colorPalette, {