@cmstops/pro-compo 0.3.34 → 0.3.36

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 (82) hide show
  1. package/dist/index.css +269 -59
  2. package/dist/index.min.css +1 -1
  3. package/es/docPreview/component.d.ts +0 -0
  4. package/es/docPreview/component.js +153 -0
  5. package/es/docPreview/components/PreviewIframe.d.ts +0 -0
  6. package/es/docPreview/components/PreviewIframe.js +37 -0
  7. package/es/docPreview/images/phone.js +2 -0
  8. package/es/docPreview/index.d.ts +2 -0
  9. package/es/docPreview/index.js +7 -0
  10. package/es/docPreview/scripts/api.d.ts +1 -0
  11. package/es/docPreview/scripts/hook.d.ts +20 -0
  12. package/es/docPreview/scripts/hook.js +119 -0
  13. package/es/docPreview/style/css.js +1 -0
  14. package/es/docPreview/style/index.css +139 -0
  15. package/es/docPreview/style/index.d.ts +1 -0
  16. package/es/docPreview/style/index.js +1 -0
  17. package/es/docPreview/style/index.less +129 -0
  18. package/es/docPreview/style/previewIframe.less +36 -0
  19. package/es/hooks/useSelection.js +1 -1
  20. package/es/hooks/useUpload.d.ts +15 -0
  21. package/es/hooks/useUpload.js +88 -0
  22. package/es/index.css +269 -59
  23. package/es/index.d.ts +1 -0
  24. package/es/index.js +1 -0
  25. package/es/index.less +1 -0
  26. package/es/selectResourceModal/component.js +30 -16
  27. package/es/selectResourceModal/components/ListCardWrapper/index.d.ts +0 -0
  28. package/es/selectResourceModal/components/ListCardWrapper/index.js +56 -0
  29. package/es/selectResourceModal/components/ListContent/index.js +16 -36
  30. package/es/selectResourceModal/components/ListContentLocal/components/Upload.d.ts +0 -0
  31. package/es/selectResourceModal/components/ListContentLocal/components/Upload.js +56 -0
  32. package/es/selectResourceModal/components/ListContentLocal/index.d.ts +0 -0
  33. package/es/selectResourceModal/components/ListContentLocal/index.js +90 -0
  34. package/es/selectResourceModal/components/ListFilter/index.js +12 -4
  35. package/es/selectResourceModal/style/index.css +98 -58
  36. package/es/selectResourceModal/style/index.less +20 -2
  37. package/es/selectResourceModal/style/listCardWrapper.less +63 -0
  38. package/es/selectResourceModal/style/listContent.less +1 -63
  39. package/es/selectResourceModal/style/listContentLocal.less +26 -0
  40. package/es/selectResourceModal/style/listSelected.less +11 -3
  41. package/es/thumbCard/assets/magic.js +2 -0
  42. package/es/thumbCard/component.js +80 -53
  43. package/es/thumbCard/style/index.css +32 -1
  44. package/es/thumbCard/style/index.less +45 -7
  45. package/es/utils/index.d.ts +2 -0
  46. package/es/utils/index.js +40 -1
  47. package/es/utils/tusUpload.d.ts +8 -0
  48. package/es/utils/tusUpload.js +35 -1
  49. package/lib/docPreview/component.js +154 -0
  50. package/lib/docPreview/components/PreviewIframe.js +38 -0
  51. package/lib/docPreview/images/phone.js +3 -0
  52. package/lib/docPreview/index.js +8 -0
  53. package/lib/docPreview/scripts/hook.js +123 -0
  54. package/lib/docPreview/style/css.js +2 -0
  55. package/lib/docPreview/style/index.css +139 -0
  56. package/lib/docPreview/style/index.js +2 -0
  57. package/lib/docPreview/style/index.less +129 -0
  58. package/lib/docPreview/style/previewIframe.less +36 -0
  59. package/lib/hooks/useSelection.js +1 -1
  60. package/lib/hooks/useUpload.js +91 -0
  61. package/lib/index.css +269 -59
  62. package/lib/index.js +2 -0
  63. package/lib/index.less +1 -0
  64. package/lib/selectResourceModal/component.js +31 -17
  65. package/lib/selectResourceModal/components/ListCardWrapper/index.js +57 -0
  66. package/lib/selectResourceModal/components/ListContent/index.js +19 -39
  67. package/lib/selectResourceModal/components/ListContentLocal/components/Upload.js +57 -0
  68. package/lib/selectResourceModal/components/ListContentLocal/index.js +91 -0
  69. package/lib/selectResourceModal/components/ListFilter/index.js +12 -4
  70. package/lib/selectResourceModal/style/index.css +98 -58
  71. package/lib/selectResourceModal/style/index.less +20 -2
  72. package/lib/selectResourceModal/style/listCardWrapper.less +63 -0
  73. package/lib/selectResourceModal/style/listContent.less +1 -63
  74. package/lib/selectResourceModal/style/listContentLocal.less +26 -0
  75. package/lib/selectResourceModal/style/listSelected.less +11 -3
  76. package/lib/thumbCard/assets/magic.js +3 -0
  77. package/lib/thumbCard/component.js +78 -51
  78. package/lib/thumbCard/style/index.css +32 -1
  79. package/lib/thumbCard/style/index.less +45 -7
  80. package/lib/utils/index.js +41 -0
  81. package/lib/utils/tusUpload.js +35 -0
  82. package/package.json +1 -1
@@ -0,0 +1,56 @@
1
+ import { defineComponent, computed, openBlock, createElementBlock, withModifiers, createElementVNode, normalizeClass, renderSlot, toDisplayString, createCommentVNode } from "vue";
2
+ const _hoisted_1 = { class: "card-alias" };
3
+ const _hoisted_2 = {
4
+ key: 0,
5
+ class: "check-box active"
6
+ };
7
+ const _hoisted_3 = {
8
+ key: 1,
9
+ class: "check-box"
10
+ };
11
+ const _sfc_main = defineComponent({
12
+ __name: "index",
13
+ props: {
14
+ item: {},
15
+ selectKeys: {},
16
+ disable: { type: Boolean }
17
+ },
18
+ emits: ["select"],
19
+ setup(__props, { emit: __emit }) {
20
+ const props = __props;
21
+ const emits = __emit;
22
+ const selectedOrder = computed(() => {
23
+ var _a;
24
+ const result = {};
25
+ (_a = props.selectKeys) == null ? void 0 : _a.forEach((key, index) => {
26
+ result[key] = index + 1;
27
+ });
28
+ return result;
29
+ });
30
+ function handleCheck() {
31
+ if (props.disable && !selectedOrder.value[props.item.id])
32
+ return;
33
+ emits("select", props.item);
34
+ }
35
+ return (_ctx, _cache) => {
36
+ return openBlock(), createElementBlock("div", {
37
+ class: "card-wrapper-image",
38
+ onClick: withModifiers(handleCheck, ["stop"])
39
+ }, [
40
+ createElementVNode("div", {
41
+ class: normalizeClass(["card-wrapper", { active: selectedOrder.value[_ctx.item.id] }])
42
+ }, [
43
+ renderSlot(_ctx.$slots, "default")
44
+ ], 2),
45
+ createElementVNode("div", _hoisted_1, toDisplayString(_ctx.item.alias), 1),
46
+ createElementVNode("div", {
47
+ class: "check-box-wrapper",
48
+ onClick: withModifiers(handleCheck, ["stop"])
49
+ }, [
50
+ selectedOrder.value[_ctx.item.id] ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(selectedOrder.value[_ctx.item.id]), 1)) : !_ctx.disable ? (openBlock(), createElementBlock("div", _hoisted_3)) : createCommentVNode("v-if", true)
51
+ ])
52
+ ]);
53
+ };
54
+ }
55
+ });
56
+ export { _sfc_main as default };
@@ -1,19 +1,9 @@
1
- import { defineComponent, computed, openBlock, createElementBlock, Fragment, renderList, createElementVNode, createVNode, unref, toDisplayString, createCommentVNode, createBlock } from "vue";
1
+ import { defineComponent, computed, openBlock, createElementBlock, Fragment, renderList, createBlock, withCtx, createVNode, unref, createCommentVNode } from "vue";
2
2
  import { Spin } from "@arco-design/web-vue";
3
3
  import emptyData from "../../../emptyData/index.js";
4
4
  import thumbCard from "../../../thumbCard/index.js";
5
+ import _sfc_main$1 from "../ListCardWrapper/index.js";
5
6
  const _hoisted_1 = { class: "card-list-wrapper" };
6
- const _hoisted_2 = { class: "card-wrapper" };
7
- const _hoisted_3 = { class: "card-alias" };
8
- const _hoisted_4 = ["onClick"];
9
- const _hoisted_5 = {
10
- key: 0,
11
- class: "check-box active"
12
- };
13
- const _hoisted_6 = {
14
- key: 1,
15
- class: "check-box"
16
- };
17
7
  const _sfc_main = defineComponent({
18
8
  __name: "index",
19
9
  props: {
@@ -38,43 +28,33 @@ const _sfc_main = defineComponent({
38
28
  emits("select-one", item);
39
29
  }
40
30
  }
41
- function handleCheck(params) {
42
- emits("select", params);
43
- }
44
- const selectedOrder = computed(() => {
45
- var _a;
46
- const result = {};
47
- (_a = props.selectKeys) == null ? void 0 : _a.forEach((key, index) => {
48
- result[key] = index + 1;
49
- });
50
- return result;
51
- });
52
31
  return (_ctx, _cache) => {
53
32
  var _a, _b;
54
33
  return openBlock(), createElementBlock("div", _hoisted_1, [
55
34
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.list, (item) => {
56
- return openBlock(), createElementBlock("div", {
35
+ return openBlock(), createBlock(_sfc_main$1, {
57
36
  key: item.id,
58
- class: "card-wrapper-image"
59
- }, [
60
- createElementVNode("div", _hoisted_2, [
37
+ item,
38
+ "select-keys": _ctx.selectKeys,
39
+ disable: _ctx.disable,
40
+ onSelect: () => emits("select", item)
41
+ }, {
42
+ default: withCtx(() => [
61
43
  createVNode(unref(thumbCard), {
62
44
  url: item.url,
63
45
  thumb: item.thumb,
64
46
  catalog: item.catalog,
65
47
  meta: item,
48
+ "use-mask": true,
66
49
  "handlers-key": handlersKey.value,
50
+ options: {
51
+ fit: item.catalog === "image" ? "contain" : "cover"
52
+ },
67
53
  onHandle: handleOption
68
- }, null, 8, ["url", "thumb", "catalog", "meta", "handlers-key"])
54
+ }, null, 8, ["url", "thumb", "catalog", "meta", "handlers-key", "options"])
69
55
  ]),
70
- createElementVNode("div", _hoisted_3, toDisplayString(item.alias), 1),
71
- createElementVNode("div", {
72
- class: "check-box-wrapper",
73
- onClick: () => handleCheck(item)
74
- }, [
75
- selectedOrder.value[item.id] ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(selectedOrder.value[item.id]), 1)) : !_ctx.disable ? (openBlock(), createElementBlock("div", _hoisted_6)) : createCommentVNode("v-if", true)
76
- ], 8, _hoisted_4)
77
- ]);
56
+ _: 2
57
+ }, 1032, ["item", "select-keys", "disable", "onSelect"]);
78
58
  }), 128)),
79
59
  createCommentVNode(" \u7A7A\u72B6\u6001 "),
80
60
  ((_a = _ctx.list) == null ? void 0 : _a.length) === 0 && _ctx.loading ? (openBlock(), createBlock(unref(Spin), {
@@ -0,0 +1,56 @@
1
+ import { defineComponent, openBlock, createElementBlock, createElementVNode, createVNode, unref, withCtx, createTextVNode, createCommentVNode } from "vue";
2
+ import { Upload, Button } from "@arco-design/web-vue";
3
+ import { IconComputer } from "@arco-iconbox/vue-cmstop-icons";
4
+ const _hoisted_1 = { class: "upload-wrapper" };
5
+ const _hoisted_2 = { class: "upload-buttons" };
6
+ const _hoisted_3 = { class: "upload-dragger" };
7
+ const accept = "image/*,video/*,audio/*";
8
+ const _sfc_main = defineComponent({
9
+ __name: "Upload",
10
+ emits: ["change"],
11
+ setup(__props, { emit: __emit }) {
12
+ const emits = __emit;
13
+ function handleUpload(options) {
14
+ emits("change", options.fileItem);
15
+ }
16
+ return (_ctx, _cache) => {
17
+ return openBlock(), createElementBlock("div", _hoisted_1, [
18
+ createElementVNode("div", _hoisted_2, [
19
+ createVNode(unref(Upload), {
20
+ accept,
21
+ multiple: true,
22
+ directory: false,
23
+ "show-file-list": false,
24
+ "custom-request": handleUpload,
25
+ style: { "width": "auto" }
26
+ }, {
27
+ "upload-button": withCtx(() => [
28
+ createVNode(unref(Button), { type: "primary" }, {
29
+ icon: withCtx(() => [
30
+ createVNode(unref(IconComputer))
31
+ ]),
32
+ default: withCtx(() => [
33
+ createTextVNode(" \u672C\u5730\u4E0A\u4F20 ")
34
+ ]),
35
+ _: 1
36
+ })
37
+ ]),
38
+ _: 1
39
+ }),
40
+ createCommentVNode(' <a-button type="primary"> \u626B\u7801\u4E0A\u4F20 </a-button>\n <a-button type="primary"> \u5206\u4EAB\u4E0A\u4F20 </a-button> ')
41
+ ]),
42
+ createElementVNode("div", _hoisted_3, [
43
+ createVNode(unref(Upload), {
44
+ draggable: "",
45
+ tip: "\u652F\u6301\u56FE\u7247\u3001\u89C6\u9891\u3001\u97F3\u9891\u6587\u4EF6",
46
+ accept,
47
+ multiple: true,
48
+ "show-file-list": false,
49
+ "custom-request": handleUpload
50
+ })
51
+ ])
52
+ ]);
53
+ };
54
+ }
55
+ });
56
+ export { _sfc_main as default };
@@ -0,0 +1,90 @@
1
+ import { defineComponent, computed, inject, openBlock, createElementBlock, createCommentVNode, createElementVNode, createVNode, unref, toDisplayString, Fragment, renderList, createBlock, withCtx } from "vue";
2
+ import _sfc_main$1 from "./components/Upload.js";
3
+ import useUpload from "../../../hooks/useUpload.js";
4
+ import thumbCard from "../../../thumbCard/index.js";
5
+ import _sfc_main$2 from "../ListCardWrapper/index.js";
6
+ const _hoisted_1 = { class: "upload-list-wrapper" };
7
+ const _hoisted_2 = { class: "list-upload" };
8
+ const _hoisted_3 = { class: "list-content" };
9
+ const _hoisted_4 = {
10
+ key: 0,
11
+ class: "list-tips"
12
+ };
13
+ const _hoisted_5 = { class: "card-list-wrapper" };
14
+ const _sfc_main = defineComponent({
15
+ __name: "index",
16
+ props: {
17
+ selectKeys: {},
18
+ disable: { type: Boolean }
19
+ },
20
+ emits: ["select", "select-one"],
21
+ setup(__props, { emit: __emit }) {
22
+ const props = __props;
23
+ const emits = __emit;
24
+ const handlersKey = computed(() => {
25
+ var _a;
26
+ if (((_a = props.selectKeys) == null ? void 0 : _a.length) > 0 || props.disable)
27
+ return [];
28
+ return [{ label: "\u9009\u7528", key: "select" }];
29
+ });
30
+ function handleOption(params) {
31
+ const { key, item } = params;
32
+ if (key === "select") {
33
+ emits("select-one", item);
34
+ }
35
+ }
36
+ const { list, uploadFile } = useUpload();
37
+ const userInfo = inject("userInfo");
38
+ const baseAPI = inject("baseAPI");
39
+ const repoId = computed(() => {
40
+ var _a;
41
+ return (_a = userInfo == null ? void 0 : userInfo.value) == null ? void 0 : _a.repository_id;
42
+ });
43
+ function handleChange(file) {
44
+ if (!baseAPI || !repoId.value)
45
+ return;
46
+ uploadFile(baseAPI, file.file, 0, repoId.value);
47
+ }
48
+ return (_ctx, _cache) => {
49
+ var _a, _b;
50
+ return openBlock(), createElementBlock("div", _hoisted_1, [
51
+ createCommentVNode(" \u4E0A\u4F20\u7EC4\u4EF6 "),
52
+ createElementVNode("div", _hoisted_2, [
53
+ createVNode(_sfc_main$1, { onChange: handleChange })
54
+ ]),
55
+ createElementVNode("div", _hoisted_3, [
56
+ ((_a = unref(list)) == null ? void 0 : _a.length) ? (openBlock(), createElementBlock("div", _hoisted_4, " \u5DF2\u4E0A\u4F20 " + toDisplayString((_b = unref(list)) == null ? void 0 : _b.length) + " \u4E2A\u7D20\u6750 ", 1)) : createCommentVNode("v-if", true),
57
+ createCommentVNode(" \u4E0A\u4F20\u5217\u8868 "),
58
+ createElementVNode("div", _hoisted_5, [
59
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (item) => {
60
+ return openBlock(), createBlock(_sfc_main$2, {
61
+ key: item.sig_id,
62
+ item,
63
+ "select-keys": _ctx.selectKeys,
64
+ disable: _ctx.disable,
65
+ onSelect: () => emits("select", item)
66
+ }, {
67
+ default: withCtx(() => [
68
+ createVNode(unref(thumbCard), {
69
+ url: item.url,
70
+ thumb: item.url,
71
+ catalog: item.catalog,
72
+ meta: item,
73
+ options: {
74
+ fit: item.catalog === "image" ? "contain" : "cover"
75
+ },
76
+ "use-mask": true,
77
+ "handlers-key": handlersKey.value,
78
+ onHandle: handleOption
79
+ }, null, 8, ["url", "thumb", "catalog", "meta", "options", "handlers-key"])
80
+ ]),
81
+ _: 2
82
+ }, 1032, ["item", "select-keys", "disable", "onSelect"]);
83
+ }), 128))
84
+ ])
85
+ ])
86
+ ]);
87
+ };
88
+ }
89
+ });
90
+ export { _sfc_main as default };
@@ -17,7 +17,8 @@ const _hoisted_7 = { class: "filter-extra" };
17
17
  const _sfc_main = defineComponent({
18
18
  __name: "index",
19
19
  props: {
20
- disableUploadBy: { type: Boolean }
20
+ disableUploadBy: { type: Boolean },
21
+ filterOptions: {}
21
22
  },
22
23
  emits: ["upload", "change"],
23
24
  setup(__props, { emit: __emit }) {
@@ -93,7 +94,7 @@ const _sfc_main = defineComponent({
93
94
  });
94
95
  const isEmpty = computed(() => {
95
96
  return Object.keys(filter.value).every((key) => {
96
- return !filter.value[key];
97
+ return filter.value[key] === originFilter[key];
97
98
  });
98
99
  });
99
100
  watch(
@@ -108,12 +109,18 @@ const _sfc_main = defineComponent({
108
109
  });
109
110
  emits("change", result);
110
111
  },
111
- { deep: true }
112
+ { deep: true, immediate: true }
112
113
  );
113
114
  onMounted(() => {
115
+ var _a;
114
116
  load();
117
+ if ((_a = props.filterOptions) == null ? void 0 : _a.mediaType) {
118
+ filter.value.catalog = props.filterOptions.mediaType;
119
+ originFilter.catalog = props.filterOptions.mediaType;
120
+ }
115
121
  });
116
122
  return (_ctx, _cache) => {
123
+ var _a;
117
124
  return openBlock(), createElementBlock("div", _hoisted_1, [
118
125
  createElementVNode("div", _hoisted_2, [
119
126
  createCommentVNode(" \u5173\u952E\u8BCD "),
@@ -161,6 +168,7 @@ const _sfc_main = defineComponent({
161
168
  createVNode(unref(Select), {
162
169
  modelValue: filter.value.catalog,
163
170
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => filter.value.catalog = $event),
171
+ disabled: (_a = _ctx.filterOptions) == null ? void 0 : _a.mediaTypeStrict,
164
172
  "allow-clear": "",
165
173
  placeholder: "\u7C7B\u578B"
166
174
  }, {
@@ -174,7 +182,7 @@ const _sfc_main = defineComponent({
174
182
  }), 128))
175
183
  ]),
176
184
  _: 1
177
- }, 8, ["modelValue"])
185
+ }, 8, ["modelValue", "disabled"])
178
186
  ]),
179
187
  createCommentVNode(" \u65F6\u95F4\u8303\u56F4 "),
180
188
  createVNode(unref(RangePicker), {
@@ -1,59 +1,7 @@
1
1
  .card-list-wrapper {
2
2
  display: grid;
3
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;
4
+ grid-template-columns: repeat(5, 1fr);
57
5
  }
58
6
  .list-filter-wrapper {
59
7
  display: flex;
@@ -71,7 +19,6 @@
71
19
  }
72
20
  .list-panel-wrapper {
73
21
  width: 420px;
74
- max-height: 600px;
75
22
  padding: 0 !important;
76
23
  overflow: hidden;
77
24
  border: none;
@@ -85,7 +32,12 @@
85
32
  display: none;
86
33
  }
87
34
  .list-panel-wrapper .arco-popover-content {
35
+ display: flex;
36
+ flex-direction: column;
37
+ height: 100%;
38
+ max-height: 600px;
88
39
  margin-top: 0;
40
+ overflow: hidden;
89
41
  }
90
42
  .list-panel-wrapper .list-panel-header {
91
43
  display: flex;
@@ -105,8 +57,11 @@
105
57
  cursor: pointer;
106
58
  }
107
59
  .list-panel-wrapper .list-selected-record {
108
- display: flex;
109
- flex-direction: column;
60
+ flex: 1;
61
+ overflow-y: scroll;
62
+ }
63
+ .list-panel-wrapper .list-selected-record::-webkit-scrollbar {
64
+ display: none;
110
65
  }
111
66
  .list-panel-wrapper .list-selected-record .list-selected-item {
112
67
  display: flex;
@@ -126,6 +81,85 @@
126
81
  white-space: nowrap;
127
82
  text-overflow: ellipsis;
128
83
  }
84
+ .upload-list-wrapper .list-content {
85
+ margin-top: 30px;
86
+ }
87
+ .upload-list-wrapper .list-content .list-tips {
88
+ margin-bottom: 16px;
89
+ color: #3d3d3d;
90
+ }
91
+ .upload-list-wrapper .upload-wrapper {
92
+ display: flex;
93
+ flex-direction: column;
94
+ }
95
+ .upload-list-wrapper .upload-wrapper .upload-buttons {
96
+ display: flex;
97
+ gap: 20px;
98
+ justify-content: center;
99
+ margin: 20px 0;
100
+ }
101
+ .upload-list-wrapper .upload-wrapper .upload-dragger {
102
+ width: calc(100% - 2px);
103
+ }
104
+ .card-wrapper-image {
105
+ position: relative;
106
+ overflow: hidden;
107
+ cursor: pointer;
108
+ }
109
+ .card-wrapper-image .card-wrapper {
110
+ position: relative;
111
+ overflow: hidden;
112
+ aspect-ratio: 4 / 3;
113
+ }
114
+ .card-wrapper-image .card-alias {
115
+ width: 100%;
116
+ margin-top: 6px;
117
+ overflow: hidden;
118
+ color: #3d3d3d;
119
+ font-size: 14px;
120
+ line-height: 22px;
121
+ white-space: nowrap;
122
+ text-overflow: ellipsis;
123
+ }
124
+ .card-wrapper-image:hover .check-box-wrapper .check-box,
125
+ .card-wrapper-image .check-box-wrapper .check-box.active {
126
+ opacity: 1;
127
+ }
128
+ .card-wrapper-image .check-box-wrapper {
129
+ position: absolute;
130
+ top: 8px;
131
+ left: 8px;
132
+ cursor: pointer;
133
+ }
134
+ .card-wrapper-image .check-box-wrapper .check-box {
135
+ box-sizing: border-box;
136
+ width: 22px;
137
+ height: 22px;
138
+ font-size: 14px;
139
+ line-height: 22px;
140
+ text-align: center;
141
+ background-color: rgba(0, 0, 0, 0.2);
142
+ border: 1px solid white;
143
+ border-radius: 50%;
144
+ opacity: 0;
145
+ transition: all 0.3s ease-in-out;
146
+ }
147
+ .card-wrapper-image .check-box-wrapper .check-box::selection {
148
+ display: none;
149
+ }
150
+ .card-wrapper-image .check-box-wrapper .check-box:hover {
151
+ background-color: rgba(0, 0, 0, 0.3);
152
+ }
153
+ .card-wrapper-image .check-box-wrapper .check-box.active {
154
+ color: white;
155
+ background-color: #165dff;
156
+ border-color: #165dff;
157
+ }
158
+ .resource-select-drawer .arco-drawer-body {
159
+ box-sizing: border-box;
160
+ padding: 0;
161
+ overflow: hidden;
162
+ }
129
163
  .resource-select-container {
130
164
  display: flex;
131
165
  flex-direction: column;
@@ -134,9 +168,14 @@
134
168
  height: 100%;
135
169
  }
136
170
  .resource-select-container .resource-select-filter,
137
- .resource-select-container .resource-select-content,
138
171
  .resource-select-container .resource-select-footer {
139
- padding: 0 16px 0;
172
+ padding: 0 40px;
173
+ }
174
+ .resource-select-container .resource-select-content .arco-scrollbar-container {
175
+ padding: 0 40px;
176
+ }
177
+ .resource-select-container .resource-select-header {
178
+ padding: 10px 24px 0 24px;
140
179
  }
141
180
  .resource-select-container .resource-select-header .arco-tabs-nav::before {
142
181
  display: none;
@@ -151,6 +190,7 @@
151
190
  .resource-select-container .resource-select-footer {
152
191
  display: flex;
153
192
  justify-content: space-between;
193
+ padding-bottom: 10px;
154
194
  }
155
195
  .resource-select-container .resource-select-footer .footer-right {
156
196
  display: flex;
@@ -1,6 +1,16 @@
1
1
  @import './listContent.less';
2
2
  @import './listFilter.less';
3
3
  @import './listSelected.less';
4
+ @import './listContentLocal.less';
5
+ @import './listCardWrapper.less';
6
+
7
+ .resource-select-drawer {
8
+ .arco-drawer-body {
9
+ box-sizing: border-box;
10
+ padding: 0;
11
+ overflow: hidden;
12
+ }
13
+ }
4
14
 
5
15
  .resource-select-container {
6
16
  display: flex;
@@ -10,12 +20,19 @@
10
20
  height: 100%;
11
21
 
12
22
  .resource-select-filter,
13
- .resource-select-content,
14
23
  .resource-select-footer {
15
- padding: 0 16px 0;
24
+ padding: 0 40px;
25
+ }
26
+
27
+ .resource-select-content {
28
+ .arco-scrollbar-container {
29
+ padding: 0 40px;
30
+ }
16
31
  }
17
32
 
18
33
  .resource-select-header {
34
+ padding: 10px 24px 0 24px;
35
+
19
36
  .arco-tabs-nav::before {
20
37
  display: none;
21
38
  }
@@ -33,6 +50,7 @@
33
50
  .resource-select-footer {
34
51
  display: flex;
35
52
  justify-content: space-between;
53
+ padding-bottom: 10px;
36
54
 
37
55
  .footer-right {
38
56
  display: flex;
@@ -0,0 +1,63 @@
1
+ .card-wrapper-image {
2
+ position: relative;
3
+ overflow: hidden;
4
+ cursor: pointer;
5
+
6
+ .card-wrapper {
7
+ position: relative;
8
+ overflow: hidden;
9
+ // 宽高:43
10
+ aspect-ratio: 4 / 3;
11
+ }
12
+
13
+ .card-alias {
14
+ width: 100%;
15
+ margin-top: 6px;
16
+ overflow: hidden;
17
+ color: #3d3d3d;
18
+ font-size: 14px;
19
+ line-height: 22px;
20
+ white-space: nowrap;
21
+ text-overflow: ellipsis;
22
+ }
23
+
24
+ &:hover .check-box-wrapper .check-box,
25
+ .check-box-wrapper .check-box.active {
26
+ opacity: 1;
27
+ }
28
+
29
+ .check-box-wrapper {
30
+ position: absolute;
31
+ top: 8px;
32
+ left: 8px;
33
+ cursor: pointer;
34
+
35
+ .check-box {
36
+ box-sizing: border-box;
37
+ width: 22px;
38
+ height: 22px;
39
+ font-size: 14px;
40
+ line-height: 22px;
41
+ text-align: center;
42
+ background-color: rgba(0, 0, 0, 0.2);
43
+ border: 1px solid white;
44
+ border-radius: 50%;
45
+ opacity: 0;
46
+ transition: all 0.3s ease-in-out;
47
+
48
+ &::selection {
49
+ display: none;
50
+ }
51
+
52
+ &:hover {
53
+ background-color: rgba(0, 0, 0, 0.3);
54
+ }
55
+
56
+ &.active {
57
+ color: white;
58
+ background-color: #165dff;
59
+ border-color: #165dff;
60
+ }
61
+ }
62
+ }
63
+ }