@cmstops/pro-compo 0.3.31 → 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 (67) 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/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 +84 -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 +5 -0
  54. package/lib/selectResourceModal/style/index.css +31 -0
  55. package/lib/selectResourceModal/style/index.js +5 -0
  56. package/lib/selectResourceModal/style/index.less +39 -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,259 @@
1
+ import { defineComponent, inject, computed, ref, watch, onMounted, openBlock, createElementBlock, createElementVNode, createCommentVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Fragment, renderList, createBlock } from "vue";
2
+ import { Input, Dropdown, Doption, Button, Select, Option, RangePicker } from "@arco-design/web-vue";
3
+ import { IconUpload } from "@arco-design/web-vue/es/icon";
4
+ import useSelection from "../../../hooks/useSelection.js";
5
+ import { RESOURCE_SOURCE_OPTIONS, RESOURCE_CATALOG_OPTIONS } from "../../../utils/typeMap.js";
6
+ import { getAccountList } from "./scripts/api.js";
7
+ const _hoisted_1 = { class: "list-filter-wrapper" };
8
+ const _hoisted_2 = { class: "filter-list" };
9
+ const _hoisted_3 = { style: { "width": "200px" } };
10
+ const _hoisted_4 = { class: "filter-item" };
11
+ const _hoisted_5 = { class: "filter-item" };
12
+ const _hoisted_6 = {
13
+ key: 0,
14
+ class: "filter-item"
15
+ };
16
+ const _hoisted_7 = { class: "filter-extra" };
17
+ const _sfc_main = defineComponent({
18
+ __name: "index",
19
+ props: {
20
+ disableUploadBy: { type: Boolean }
21
+ },
22
+ emits: ["upload", "change"],
23
+ setup(__props, { emit: __emit }) {
24
+ const props = __props;
25
+ const emits = __emit;
26
+ const userInfo = inject("userInfo");
27
+ const baseAPI = inject("baseAPI");
28
+ const domainId = computed(() => userInfo == null ? void 0 : userInfo.value.domain_id);
29
+ const { options, loading, load, loadMore, handleSearch } = useSelection({
30
+ labelStr: "alias",
31
+ valueStr: "id",
32
+ func: async ({ keyword, ...pageInfo }) => {
33
+ if (!baseAPI)
34
+ return Promise.reject(new Error("baseAPI \u4E0D\u5B58\u5728"));
35
+ if (!domainId.value)
36
+ return Promise.reject(new Error("domainId \u4E0D\u5B58\u5728"));
37
+ const { code, message } = await getAccountList(baseAPI, domainId.value, {
38
+ ...pageInfo,
39
+ keywords: keyword
40
+ });
41
+ if (code !== 0)
42
+ return Promise.reject(new Error(message));
43
+ return message.users;
44
+ }
45
+ });
46
+ const resourceSource = RESOURCE_SOURCE_OPTIONS;
47
+ const resourceCatalog = RESOURCE_CATALOG_OPTIONS;
48
+ const originFilter = {
49
+ catalog: "",
50
+ source: "",
51
+ create_begin: "",
52
+ create_end: "",
53
+ keyword: "",
54
+ precise_keyword: "",
55
+ upload_by: null
56
+ };
57
+ const filter = ref(JSON.parse(JSON.stringify(originFilter)));
58
+ const handleReset = () => {
59
+ filter.value = JSON.parse(JSON.stringify(originFilter));
60
+ };
61
+ const rangeTime = computed({
62
+ get() {
63
+ return filter.value.create_begin && filter.value.create_end ? [filter.value.create_begin * 1e3, filter.value.create_end * 1e3] : null;
64
+ },
65
+ set(val) {
66
+ if (val) {
67
+ const [start, end] = val;
68
+ filter.value.create_begin = +new Date(start) / 1e3;
69
+ filter.value.create_end = +new Date(end) / 1e3;
70
+ } else {
71
+ filter.value.create_begin = "";
72
+ filter.value.create_end = "";
73
+ }
74
+ }
75
+ });
76
+ const searchType = ref(0);
77
+ const searchTypeText = computed(() => {
78
+ return searchType.value === 0 ? "\u7CBE\u51C6\u641C" : "\u6A21\u7CCA\u641C";
79
+ });
80
+ const searchInput = computed({
81
+ get() {
82
+ return searchType.value === 0 ? filter.value.precise_keyword : filter.value.keyword;
83
+ },
84
+ set(val) {
85
+ if (searchType.value === 0) {
86
+ filter.value.precise_keyword = val;
87
+ filter.value.keyword = "";
88
+ } else {
89
+ filter.value.keyword = val;
90
+ filter.value.precise_keyword = "";
91
+ }
92
+ }
93
+ });
94
+ const isEmpty = computed(() => {
95
+ return Object.keys(filter.value).every((key) => {
96
+ return !filter.value[key];
97
+ });
98
+ });
99
+ watch(
100
+ () => filter.value,
101
+ () => {
102
+ const result = { ...filter.value };
103
+ Object.keys(result).forEach((key) => {
104
+ if (props.disableUploadBy && key === "upload_by")
105
+ delete result[key];
106
+ if (!result[key])
107
+ delete result[key];
108
+ });
109
+ emits("change", result);
110
+ },
111
+ { deep: true }
112
+ );
113
+ onMounted(() => {
114
+ load();
115
+ });
116
+ return (_ctx, _cache) => {
117
+ return openBlock(), createElementBlock("div", _hoisted_1, [
118
+ createElementVNode("div", _hoisted_2, [
119
+ createCommentVNode(" \u5173\u952E\u8BCD "),
120
+ createElementVNode("div", _hoisted_3, [
121
+ createVNode(unref(Input), {
122
+ modelValue: searchInput.value,
123
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchInput.value = $event),
124
+ "allow-clear": "",
125
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD"
126
+ }, {
127
+ prepend: withCtx(() => [
128
+ createVNode(unref(Dropdown), {
129
+ onSelect: _cache[0] || (_cache[0] = (e) => searchType.value = e)
130
+ }, {
131
+ content: withCtx(() => [
132
+ createVNode(unref(Doption), { value: 0 }, {
133
+ default: withCtx(() => [
134
+ createTextVNode("\u7CBE\u51C6\u641C")
135
+ ]),
136
+ _: 1
137
+ }),
138
+ createVNode(unref(Doption), { value: 1 }, {
139
+ default: withCtx(() => [
140
+ createTextVNode("\u6A21\u7CCA\u641C")
141
+ ]),
142
+ _: 1
143
+ })
144
+ ]),
145
+ default: withCtx(() => [
146
+ createVNode(unref(Button), null, {
147
+ default: withCtx(() => [
148
+ createTextVNode(toDisplayString(searchTypeText.value), 1)
149
+ ]),
150
+ _: 1
151
+ })
152
+ ]),
153
+ _: 1
154
+ })
155
+ ]),
156
+ _: 1
157
+ }, 8, ["modelValue"])
158
+ ]),
159
+ createCommentVNode(" \u7D20\u6750\u7C7B\u578B "),
160
+ createElementVNode("div", _hoisted_4, [
161
+ createVNode(unref(Select), {
162
+ modelValue: filter.value.catalog,
163
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => filter.value.catalog = $event),
164
+ "allow-clear": "",
165
+ placeholder: "\u7C7B\u578B"
166
+ }, {
167
+ default: withCtx(() => [
168
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(resourceCatalog), (item) => {
169
+ return openBlock(), createBlock(unref(Option), {
170
+ key: item.value,
171
+ label: item.label,
172
+ value: item.value
173
+ }, null, 8, ["label", "value"]);
174
+ }), 128))
175
+ ]),
176
+ _: 1
177
+ }, 8, ["modelValue"])
178
+ ]),
179
+ createCommentVNode(" \u65F6\u95F4\u8303\u56F4 "),
180
+ createVNode(unref(RangePicker), {
181
+ modelValue: rangeTime.value,
182
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => rangeTime.value = $event),
183
+ "allow-clear": "",
184
+ style: { "width": "240px" }
185
+ }, null, 8, ["modelValue"]),
186
+ createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u6765\u6E90 "),
187
+ createElementVNode("div", _hoisted_5, [
188
+ createVNode(unref(Select), {
189
+ modelValue: filter.value.source,
190
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => filter.value.source = $event),
191
+ "allow-clear": "",
192
+ placeholder: "\u6765\u6E90"
193
+ }, {
194
+ default: withCtx(() => [
195
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(resourceSource), (item) => {
196
+ return openBlock(), createBlock(unref(Option), {
197
+ key: item.value,
198
+ label: item.label,
199
+ value: item.value
200
+ }, null, 8, ["label", "value"]);
201
+ }), 128))
202
+ ]),
203
+ _: 1
204
+ }, 8, ["modelValue"])
205
+ ]),
206
+ createCommentVNode(" \u7D20\u6750\u4E0A\u4F20\u4EBA "),
207
+ !_ctx.disableUploadBy ? (openBlock(), createElementBlock("div", _hoisted_6, [
208
+ createVNode(unref(Select), {
209
+ modelValue: filter.value.upload_by,
210
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => filter.value.upload_by = $event),
211
+ "allow-clear": "",
212
+ placeholder: "\u4E0A\u4F20\u4EBA",
213
+ loading: unref(loading),
214
+ "allow-search": "",
215
+ onSearch: unref(handleSearch),
216
+ onDropdownReachBottom: unref(loadMore)
217
+ }, {
218
+ default: withCtx(() => [
219
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(options), (item) => {
220
+ return openBlock(), createBlock(unref(Option), {
221
+ key: item.id,
222
+ label: item.label,
223
+ value: item.value
224
+ }, null, 8, ["label", "value"]);
225
+ }), 128))
226
+ ]),
227
+ _: 1
228
+ }, 8, ["modelValue", "loading", "onSearch", "onDropdownReachBottom"])
229
+ ])) : createCommentVNode("v-if", true),
230
+ !isEmpty.value ? (openBlock(), createBlock(unref(Button), {
231
+ key: 1,
232
+ type: "text",
233
+ onClick: handleReset
234
+ }, {
235
+ default: withCtx(() => [
236
+ createTextVNode("\u91CD\u7F6E")
237
+ ]),
238
+ _: 1
239
+ })) : createCommentVNode("v-if", true)
240
+ ]),
241
+ createElementVNode("div", _hoisted_7, [
242
+ createVNode(unref(Button), {
243
+ type: "primary",
244
+ onClick: _cache[6] || (_cache[6] = ($event) => emits("upload"))
245
+ }, {
246
+ icon: withCtx(() => [
247
+ createVNode(unref(IconUpload))
248
+ ]),
249
+ default: withCtx(() => [
250
+ createTextVNode(" \u4E0A\u4F20 ")
251
+ ]),
252
+ _: 1
253
+ })
254
+ ])
255
+ ]);
256
+ };
257
+ }
258
+ });
259
+ export { _sfc_main as default };
@@ -0,0 +1 @@
1
+ export declare function getAccountList(BASE_API: string, id: number, query: any): import("axios").AxiosPromise<any>;
@@ -0,0 +1,9 @@
1
+ import request from "../../../../utils/request.js";
2
+ function getAccountList(BASE_API, id, query) {
3
+ return request(BASE_API, {
4
+ url: `/poplar/v2/accounts/${id}`,
5
+ method: "get",
6
+ params: query
7
+ });
8
+ }
9
+ export { getAccountList };
@@ -0,0 +1,91 @@
1
+ import { defineComponent, ref, openBlock, createElementBlock, toDisplayString, createCommentVNode, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, createTextVNode } from "vue";
2
+ import { Popover, Image, Button, Link } from "@arco-design/web-vue";
3
+ import { IconClose } from "@arco-design/web-vue/es/icon";
4
+ const _hoisted_1 = { class: "list-selected-wrapper" };
5
+ const _hoisted_2 = { key: 0 };
6
+ const _hoisted_3 = { class: "list-panel-header" };
7
+ const _hoisted_4 = { class: "header-options" };
8
+ const _hoisted_5 = { class: "list-selected-record" };
9
+ const _hoisted_6 = { class: "item-thumb" };
10
+ const _hoisted_7 = { class: "item-alias" };
11
+ const _sfc_main = defineComponent({
12
+ __name: "index",
13
+ props: {
14
+ selected: {},
15
+ maxcount: {}
16
+ },
17
+ emits: ["remove", "clear"],
18
+ setup(__props, { emit: __emit }) {
19
+ const emits = __emit;
20
+ const visible = ref(false);
21
+ return (_ctx, _cache) => {
22
+ return openBlock(), createElementBlock("div", _hoisted_1, [
23
+ _ctx.maxcount ? (openBlock(), createElementBlock("span", _hoisted_2, "\u6700\u591A\u9009\u62E9 " + toDisplayString(_ctx.maxcount) + " \u4E2A\u7D20\u6750\uFF0C ", 1)) : createCommentVNode("v-if", true),
24
+ createVNode(unref(Popover), {
25
+ "popup-visible": visible.value,
26
+ "onUpdate:popupVisible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
27
+ trigger: "click",
28
+ "content-class": "list-panel-wrapper"
29
+ }, {
30
+ content: withCtx(() => [
31
+ createCommentVNode(" header "),
32
+ createElementVNode("div", _hoisted_3, [
33
+ createElementVNode("div", null, "\u5DF2\u9009\u62E9 " + toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1),
34
+ createElementVNode("div", _hoisted_4, [
35
+ createElementVNode("div", {
36
+ onClick: _cache[0] || (_cache[0] = ($event) => emits("clear"))
37
+ }, " \u6E05\u9664 "),
38
+ createElementVNode("div", {
39
+ onClick: _cache[1] || (_cache[1] = ($event) => visible.value = false)
40
+ }, [
41
+ createVNode(unref(IconClose), { size: "14" })
42
+ ])
43
+ ])
44
+ ]),
45
+ createCommentVNode(" content "),
46
+ createElementVNode("div", _hoisted_5, [
47
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selected, (item) => {
48
+ return openBlock(), createElementBlock("div", {
49
+ key: item.id,
50
+ class: "list-selected-item"
51
+ }, [
52
+ createElementVNode("div", _hoisted_6, [
53
+ ["image", "video"].includes(item.catalog) ? (openBlock(), createBlock(unref(Image), {
54
+ key: 0,
55
+ width: "100%",
56
+ height: "100%",
57
+ src: item.thumb || item.url
58
+ }, null, 8, ["src"])) : createCommentVNode("v-if", true),
59
+ ["audio"].includes(item.catalog) ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
60
+ createTextVNode(" \u97F3\u9891 ")
61
+ ], 64)) : createCommentVNode("v-if", true)
62
+ ]),
63
+ createElementVNode("div", _hoisted_7, toDisplayString(item.alias), 1),
64
+ createVNode(unref(Button), {
65
+ type: "text",
66
+ onClick: ($event) => emits("remove", item)
67
+ }, {
68
+ icon: withCtx(() => [
69
+ createVNode(unref(IconClose))
70
+ ]),
71
+ _: 2
72
+ }, 1032, ["onClick"])
73
+ ]);
74
+ }), 128))
75
+ ])
76
+ ]),
77
+ default: withCtx(() => [
78
+ createVNode(unref(Link), null, {
79
+ default: withCtx(() => [
80
+ createTextVNode("\u5DF2\u9009\u62E9 " + toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1)
81
+ ]),
82
+ _: 1
83
+ })
84
+ ]),
85
+ _: 1
86
+ }, 8, ["popup-visible"])
87
+ ]);
88
+ };
89
+ }
90
+ });
91
+ export { _sfc_main as default };
@@ -0,0 +1,2 @@
1
+ declare const selectResourceModal: any;
2
+ export default selectResourceModal;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./component.js";
2
+ const selectResourceModal = Object.assign(_sfc_main, {
3
+ install: (app) => {
4
+ app.component(_sfc_main.name, _sfc_main);
5
+ }
6
+ });
7
+ export { selectResourceModal as default };
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import "./listContent.css";
3
+ import "./listFilter.css";
4
+ import "./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,4 @@
1
+ import './index.less';
2
+ import './listContent.less';
3
+ import './listFilter.less';
4
+ import './listSelected.less';
@@ -0,0 +1,4 @@
1
+ import "./index.less";
2
+ import "./listContent.less";
3
+ import "./listFilter.less";
4
+ import "./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
+ }
File without changes