@cmstops/pro-compo 0.3.31 → 0.3.33

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 (67) hide show
  1. package/dist/index.css +212 -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 +212 -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 +1 -0
  24. package/es/selectResourceModal/style/index.css +159 -0
  25. package/es/selectResourceModal/style/index.d.ts +1 -0
  26. package/es/selectResourceModal/style/index.js +1 -0
  27. package/es/selectResourceModal/style/index.less +43 -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/thumbCard/component.d.ts +0 -0
  32. package/es/thumbCard/component.js +114 -0
  33. package/es/thumbCard/index.d.ts +2 -0
  34. package/es/thumbCard/index.js +7 -0
  35. package/es/thumbCard/style/css.js +1 -0
  36. package/es/thumbCard/style/index.css +53 -0
  37. package/es/thumbCard/style/index.d.ts +1 -0
  38. package/es/thumbCard/style/index.js +1 -0
  39. package/es/thumbCard/style/index.less +70 -0
  40. package/es/utils/typeMap.d.ts +19 -0
  41. package/es/utils/typeMap.js +17 -1
  42. package/lib/hooks/useAttachement.js +100 -0
  43. package/lib/hooks/useSelection.js +60 -0
  44. package/lib/index.css +212 -0
  45. package/lib/index.js +4 -0
  46. package/lib/index.less +2 -0
  47. package/lib/selectResourceModal/component.js +212 -0
  48. package/lib/selectResourceModal/components/ListContent/index.js +93 -0
  49. package/lib/selectResourceModal/components/ListFilter/index.js +260 -0
  50. package/lib/selectResourceModal/components/ListFilter/scripts/api.js +11 -0
  51. package/lib/selectResourceModal/components/ListSelected/index.js +92 -0
  52. package/lib/selectResourceModal/index.js +8 -0
  53. package/lib/selectResourceModal/style/css.js +2 -0
  54. package/lib/selectResourceModal/style/index.css +159 -0
  55. package/lib/selectResourceModal/style/index.js +2 -0
  56. package/lib/selectResourceModal/style/index.less +43 -0
  57. package/lib/selectResourceModal/style/listContent.less +67 -0
  58. package/lib/selectResourceModal/style/listFilter.less +17 -0
  59. package/lib/selectResourceModal/style/listSelected.less +67 -0
  60. package/lib/thumbCard/component.js +115 -0
  61. package/lib/thumbCard/index.js +8 -0
  62. package/lib/thumbCard/style/css.js +2 -0
  63. package/lib/thumbCard/style/index.css +53 -0
  64. package/lib/thumbCard/style/index.js +2 -0
  65. package/lib/thumbCard/style/index.less +70 -0
  66. package/lib/utils/typeMap.js +20 -0
  67. 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,2 @@
1
+ "use strict";
2
+ require("./index.css");
@@ -0,0 +1,159 @@
1
+ .card-list-wrapper {
2
+ display: grid;
3
+ grid-gap: 20px;
4
+ grid-template-columns: repeat(4, 1fr);
5
+ }
6
+ .card-list-wrapper .card-wrapper-image {
7
+ position: relative;
8
+ overflow: hidden;
9
+ }
10
+ .card-list-wrapper .card-wrapper-image .card-wrapper {
11
+ overflow: hidden;
12
+ aspect-ratio: 4 / 3;
13
+ }
14
+ .card-list-wrapper .card-wrapper-image .card-alias {
15
+ width: 100%;
16
+ margin-top: 6px;
17
+ overflow: hidden;
18
+ color: #3d3d3d;
19
+ font-size: 14px;
20
+ line-height: 22px;
21
+ white-space: nowrap;
22
+ text-overflow: ellipsis;
23
+ }
24
+ .card-list-wrapper .card-wrapper-image:hover .check-box-wrapper .check-box,
25
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper .check-box.active {
26
+ opacity: 1;
27
+ }
28
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper {
29
+ position: absolute;
30
+ top: 8px;
31
+ left: 8px;
32
+ cursor: pointer;
33
+ }
34
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper .check-box {
35
+ box-sizing: border-box;
36
+ width: 22px;
37
+ height: 22px;
38
+ font-size: 14px;
39
+ line-height: 22px;
40
+ text-align: center;
41
+ background-color: rgba(0, 0, 0, 0.2);
42
+ border: 1px solid white;
43
+ border-radius: 50%;
44
+ opacity: 0;
45
+ transition: all 0.3s ease-in-out;
46
+ }
47
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper .check-box::selection {
48
+ display: none;
49
+ }
50
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper .check-box:hover {
51
+ background-color: rgba(0, 0, 0, 0.3);
52
+ }
53
+ .card-list-wrapper .card-wrapper-image .check-box-wrapper .check-box.active {
54
+ color: white;
55
+ background-color: #165dff;
56
+ border-color: #165dff;
57
+ }
58
+ .list-filter-wrapper {
59
+ display: flex;
60
+ justify-content: space-between;
61
+ }
62
+ .list-filter-wrapper .filter-list {
63
+ display: flex;
64
+ gap: 10px;
65
+ }
66
+ .list-filter-wrapper .filter-list .filter-item {
67
+ width: 100px;
68
+ }
69
+ .list-filter-wrapper .arco-input-prepend {
70
+ padding: 0;
71
+ }
72
+ .list-panel-wrapper {
73
+ width: 420px;
74
+ max-height: 600px;
75
+ padding: 0 !important;
76
+ overflow: hidden;
77
+ border: none;
78
+ border-radius: 4px;
79
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
80
+ }
81
+ .list-panel-wrapper * {
82
+ user-select: none;
83
+ }
84
+ .list-panel-wrapper *::selection {
85
+ display: none;
86
+ }
87
+ .list-panel-wrapper .arco-popover-content {
88
+ margin-top: 0;
89
+ }
90
+ .list-panel-wrapper .list-panel-header {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ padding: 11px 15px;
95
+ color: white;
96
+ font-weight: 500;
97
+ background-color: #165dff;
98
+ }
99
+ .list-panel-wrapper .list-panel-header .header-options {
100
+ display: flex;
101
+ gap: 12px;
102
+ align-items: center;
103
+ }
104
+ .list-panel-wrapper .list-panel-header .header-options div {
105
+ cursor: pointer;
106
+ }
107
+ .list-panel-wrapper .list-selected-record {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+ .list-panel-wrapper .list-selected-record .list-selected-item {
112
+ display: flex;
113
+ gap: 12px;
114
+ align-items: center;
115
+ padding: 9px 16px;
116
+ overflow: hidden;
117
+ }
118
+ .list-panel-wrapper .list-selected-record .list-selected-item .item-thumb {
119
+ width: 50px;
120
+ height: 38px;
121
+ overflow: hidden;
122
+ }
123
+ .list-panel-wrapper .list-selected-record .list-selected-item .item-alias {
124
+ flex: 1;
125
+ overflow: hidden;
126
+ white-space: nowrap;
127
+ text-overflow: ellipsis;
128
+ }
129
+ .resource-select-container {
130
+ display: flex;
131
+ flex-direction: column;
132
+ gap: 10px;
133
+ box-sizing: border-box;
134
+ height: 100%;
135
+ }
136
+ .resource-select-container .resource-select-filter,
137
+ .resource-select-container .resource-select-content,
138
+ .resource-select-container .resource-select-footer {
139
+ padding: 0 16px 0;
140
+ }
141
+ .resource-select-container .resource-select-header .arco-tabs-nav::before {
142
+ display: none;
143
+ }
144
+ .resource-select-container .resource-select-header .arco-tabs-content {
145
+ display: none !important;
146
+ }
147
+ .resource-select-container .resource-select-content {
148
+ flex: 1;
149
+ overflow: hidden;
150
+ }
151
+ .resource-select-container .resource-select-footer {
152
+ display: flex;
153
+ justify-content: space-between;
154
+ }
155
+ .resource-select-container .resource-select-footer .footer-right {
156
+ display: flex;
157
+ gap: 10px;
158
+ align-items: center;
159
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ require("./index.less");
@@ -0,0 +1,43 @@
1
+ @import './listContent.less';
2
+ @import './listFilter.less';
3
+ @import './listSelected.less';
4
+
5
+ .resource-select-container {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 10px;
9
+ box-sizing: border-box;
10
+ height: 100%;
11
+
12
+ .resource-select-filter,
13
+ .resource-select-content,
14
+ .resource-select-footer {
15
+ padding: 0 16px 0;
16
+ }
17
+
18
+ .resource-select-header {
19
+ .arco-tabs-nav::before {
20
+ display: none;
21
+ }
22
+
23
+ .arco-tabs-content {
24
+ display: none !important;
25
+ }
26
+ }
27
+
28
+ .resource-select-content {
29
+ flex: 1;
30
+ overflow: hidden;
31
+ }
32
+
33
+ .resource-select-footer {
34
+ display: flex;
35
+ justify-content: space-between;
36
+
37
+ .footer-right {
38
+ display: flex;
39
+ gap: 10px;
40
+ align-items: center;
41
+ }
42
+ }
43
+ }
@@ -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
+ }