@cmstops/pro-compo 3.9.2-alpha.0 → 3.9.2-alpha.10
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.
- package/dist/index.css +40 -3
- package/dist/index.min.css +1 -1
- package/es/baseFilter/component.js +71 -14
- package/es/contentDetailList/component.js +24 -0
- package/es/contentDetailList/components/Content/index.js +2 -1
- package/es/contentDetailList/components/Doc/index.js +6 -0
- package/es/hooks/usePopper.d.ts +1 -1
- package/es/hooks/usePopper.js +3 -3
- package/es/hooks/useUpload.d.ts +50 -2
- package/es/hooks/useUpload.js +43 -4
- package/es/index.css +40 -3
- package/es/selectResourceModal/__demo__/module/DivWrapper.d.ts +268 -0
- package/es/selectResourceModal/__demo__/module/basic.d.ts +299 -0
- package/es/selectResourceModal/components/List/ListLocal/index.js +8 -3
- package/es/selectResourceModal/components/List/ListNormal/Filter.js +198 -90
- package/es/selectResourceModal/components/List/ListNormal/index.js +5 -4
- package/es/selectResourceModal/hooks/useResponsiveFilter.d.ts +21 -0
- package/es/selectResourceModal/hooks/useResponsiveFilter.js +142 -0
- package/es/selectResourceModal/style/index.css +40 -3
- package/es/selectResourceModal/style/index.less +9 -0
- package/es/selectResourceModal/style/list.less +39 -3
- package/es/utils/index.js +6 -6
- package/lib/baseFilter/component.js +69 -12
- package/lib/contentDetailList/component.js +24 -0
- package/lib/contentDetailList/components/Content/index.js +2 -1
- package/lib/contentDetailList/components/Doc/index.js +6 -0
- package/lib/hooks/usePopper.js +3 -3
- package/lib/hooks/useUpload.js +43 -3
- package/lib/index.css +40 -3
- package/lib/selectResourceModal/components/List/ListLocal/index.js +6 -1
- package/lib/selectResourceModal/components/List/ListNormal/Filter.js +195 -87
- package/lib/selectResourceModal/components/List/ListNormal/index.js +5 -4
- package/lib/selectResourceModal/hooks/useResponsiveFilter.js +144 -0
- package/lib/selectResourceModal/style/index.css +40 -3
- package/lib/selectResourceModal/style/index.less +9 -0
- package/lib/selectResourceModal/style/list.less +39 -3
- package/lib/utils/index.js +6 -6
- package/package.json +1 -1
|
@@ -172,11 +172,13 @@
|
|
|
172
172
|
}
|
|
173
173
|
.resource-list-footer,
|
|
174
174
|
.resource-list-header,
|
|
175
|
+
.resource-list-content .resource-list-content-empty,
|
|
175
176
|
.resource-list-content .arco-scrollbar-container {
|
|
176
177
|
padding: 0 40px;
|
|
177
178
|
}
|
|
178
179
|
.resource-list-footer {
|
|
179
180
|
display: flex;
|
|
181
|
+
flex-wrap: wrap;
|
|
180
182
|
justify-content: space-between;
|
|
181
183
|
padding-bottom: 20px;
|
|
182
184
|
}
|
|
@@ -186,6 +188,10 @@
|
|
|
186
188
|
gap: 10px;
|
|
187
189
|
align-items: center;
|
|
188
190
|
justify-content: flex-end;
|
|
191
|
+
margin-top: 10px;
|
|
192
|
+
}
|
|
193
|
+
.resource-list-footer .footer-right .list-selected-wrapper {
|
|
194
|
+
font-size: 12px;
|
|
189
195
|
}
|
|
190
196
|
.resource-list-content-loading {
|
|
191
197
|
display: flex;
|
|
@@ -240,7 +246,8 @@
|
|
|
240
246
|
}
|
|
241
247
|
.resource-list .list-filter-wrapper .list-filter-tags {
|
|
242
248
|
display: flex;
|
|
243
|
-
|
|
249
|
+
flex-wrap: wrap;
|
|
250
|
+
gap: 10px;
|
|
244
251
|
margin-top: 10px;
|
|
245
252
|
}
|
|
246
253
|
.resource-list .list-filter-wrapper .list-filter-tags .list-filter-tag {
|
|
@@ -261,16 +268,41 @@
|
|
|
261
268
|
justify-content: space-between;
|
|
262
269
|
}
|
|
263
270
|
.resource-list .list-filter-wrapper .list-filter .filter-list {
|
|
271
|
+
position: relative;
|
|
272
|
+
/** 给 popup 一个参考 */
|
|
264
273
|
display: flex;
|
|
265
|
-
flex-wrap: wrap;
|
|
266
|
-
gap: 10px;
|
|
267
274
|
}
|
|
268
275
|
.resource-list .list-filter-wrapper .list-filter .filter-list .filter-item {
|
|
269
276
|
width: 100px;
|
|
277
|
+
margin-right: 10px;
|
|
278
|
+
}
|
|
279
|
+
.resource-list .list-filter-wrapper .list-filter .filter-list .arco-trigger-popup {
|
|
280
|
+
z-index: 100000 !important;
|
|
270
281
|
}
|
|
271
282
|
.resource-list .list-filter-wrapper .list-filter .arco-input-prepend {
|
|
272
283
|
padding: 0;
|
|
273
284
|
}
|
|
285
|
+
.resource-list .list-filter-wrapper .list-filter .more-btn {
|
|
286
|
+
position: relative;
|
|
287
|
+
/** 给 poperjs 一个参考 */
|
|
288
|
+
}
|
|
289
|
+
.resource-list .list-filter-wrapper .list-filter .more-btn .filter-pannel {
|
|
290
|
+
inset: 40px auto auto auto !important;
|
|
291
|
+
}
|
|
292
|
+
.resource-list .list-filter-wrapper .filter-extra {
|
|
293
|
+
display: flex;
|
|
294
|
+
gap: 10px;
|
|
295
|
+
}
|
|
296
|
+
.resource-list .list-filter-wrapper .filter-pannel {
|
|
297
|
+
z-index: 100000;
|
|
298
|
+
display: flex;
|
|
299
|
+
flex-direction: column;
|
|
300
|
+
gap: 10px;
|
|
301
|
+
padding: 10px;
|
|
302
|
+
background-color: #fff;
|
|
303
|
+
border-radius: 4px;
|
|
304
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
305
|
+
}
|
|
274
306
|
.resource-list .title {
|
|
275
307
|
display: flex;
|
|
276
308
|
gap: 8px;
|
|
@@ -316,3 +348,8 @@
|
|
|
316
348
|
.resource-select-container .resource-select-header .arco-tabs-content {
|
|
317
349
|
display: none !important;
|
|
318
350
|
}
|
|
351
|
+
.resource-select-container .resource-list-content .resource-list-content-empty {
|
|
352
|
+
box-sizing: border-box;
|
|
353
|
+
width: 100%;
|
|
354
|
+
height: 100%;
|
|
355
|
+
}
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
&-footer,
|
|
16
16
|
&-header,
|
|
17
|
+
&-content .resource-list-content-empty,
|
|
17
18
|
&-content .arco-scrollbar-container {
|
|
18
19
|
padding: 0 40px;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
&-footer {
|
|
22
23
|
display: flex;
|
|
24
|
+
flex-wrap: wrap;
|
|
23
25
|
justify-content: space-between;
|
|
24
26
|
padding-bottom: 20px;
|
|
25
27
|
|
|
@@ -29,6 +31,11 @@
|
|
|
29
31
|
gap: 10px;
|
|
30
32
|
align-items: center;
|
|
31
33
|
justify-content: flex-end;
|
|
34
|
+
margin-top: 10px;
|
|
35
|
+
|
|
36
|
+
.list-selected-wrapper {
|
|
37
|
+
font-size: 12px;
|
|
38
|
+
}
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
41
|
|
|
@@ -108,7 +115,8 @@
|
|
|
108
115
|
.resource-list .list-filter-wrapper {
|
|
109
116
|
.list-filter-tags {
|
|
110
117
|
display: flex;
|
|
111
|
-
|
|
118
|
+
flex-wrap: wrap;
|
|
119
|
+
gap: 10px;
|
|
112
120
|
margin-top: 10px;
|
|
113
121
|
|
|
114
122
|
.list-filter-tag {
|
|
@@ -133,18 +141,46 @@
|
|
|
133
141
|
justify-content: space-between;
|
|
134
142
|
|
|
135
143
|
.filter-list {
|
|
144
|
+
position: relative; /** 给 popup 一个参考 */
|
|
136
145
|
display: flex;
|
|
137
|
-
flex-wrap: wrap;
|
|
138
|
-
gap: 10px;
|
|
139
146
|
|
|
140
147
|
.filter-item {
|
|
141
148
|
width: 100px;
|
|
149
|
+
margin-right: 10px;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.arco-trigger-popup {
|
|
153
|
+
z-index: 100000 !important;
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
|
|
145
157
|
.arco-input-prepend {
|
|
146
158
|
padding: 0;
|
|
147
159
|
}
|
|
160
|
+
|
|
161
|
+
.more-btn {
|
|
162
|
+
position: relative; /** 给 poperjs 一个参考 */
|
|
163
|
+
|
|
164
|
+
.filter-pannel {
|
|
165
|
+
inset: 40px auto auto auto !important;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.filter-extra {
|
|
171
|
+
display: flex;
|
|
172
|
+
gap: 10px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.filter-pannel {
|
|
176
|
+
z-index: 100000;
|
|
177
|
+
display: flex;
|
|
178
|
+
flex-direction: column;
|
|
179
|
+
gap: 10px;
|
|
180
|
+
padding: 10px;
|
|
181
|
+
background-color: #fff;
|
|
182
|
+
border-radius: 4px;
|
|
183
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
148
184
|
}
|
|
149
185
|
}
|
|
150
186
|
|
package/es/utils/index.js
CHANGED
|
@@ -137,13 +137,13 @@ async function copyContent(content) {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
function mediaTime(v) {
|
|
140
|
-
const h = Math.floor(v /
|
|
141
|
-
const m = Math.floor(
|
|
142
|
-
const s = Math.floor(v
|
|
140
|
+
const h = Math.floor(v / 3600);
|
|
141
|
+
const m = Math.floor(v % 3600 / 60);
|
|
142
|
+
const s = Math.floor(v % 60);
|
|
143
143
|
let ret = "";
|
|
144
|
-
ret += `${h < 10 ? `0${h}` : h
|
|
145
|
-
ret += `${m < 10 ? `0${m}` : m
|
|
146
|
-
ret += s < 10 ? `0${s}` : s
|
|
144
|
+
ret += `${h < 10 ? `0${h}` : h}:`;
|
|
145
|
+
ret += `${m < 10 ? `0${m}` : m}:`;
|
|
146
|
+
ret += s < 10 ? `0${s}` : s;
|
|
147
147
|
return ret;
|
|
148
148
|
}
|
|
149
149
|
export { copyContent, dateYYYYDDMMHHmm, generateUUID, getRealUrl, getThemeColor, mediaTime, noCoverText, replaceSuffix, timeFormat, to, validateForm };
|
|
@@ -38,9 +38,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
38
38
|
});
|
|
39
39
|
return _columns;
|
|
40
40
|
});
|
|
41
|
-
const getOptions = (
|
|
42
|
-
return item
|
|
43
|
-
|
|
41
|
+
const getOptions = vue.computed(() => {
|
|
42
|
+
return (item) => {
|
|
43
|
+
return item.options ? item.options : [];
|
|
44
|
+
};
|
|
45
|
+
});
|
|
44
46
|
const hasValue = vue.computed(() => {
|
|
45
47
|
return (key) => {
|
|
46
48
|
var _a, _b;
|
|
@@ -77,7 +79,10 @@ const _sfc_main = vue.defineComponent({
|
|
|
77
79
|
_form[column.range] = rangeTemp[column.range];
|
|
78
80
|
} else if (column.component === "select") {
|
|
79
81
|
_form[column.key] = column.defaultValue || null;
|
|
80
|
-
} else {
|
|
82
|
+
} else if (column.component === "input-group") {
|
|
83
|
+
_form[column.selectKey] = column.selectDefaultValue || "";
|
|
84
|
+
_form[column.inputKey] = column.inputDefaultValue || "";
|
|
85
|
+
} else if (column.component) {
|
|
81
86
|
_form[column.key] = column.defaultValue || "";
|
|
82
87
|
}
|
|
83
88
|
});
|
|
@@ -179,17 +184,48 @@ const _sfc_main = vue.defineComponent({
|
|
|
179
184
|
active: hasValue.value(item.key)
|
|
180
185
|
}, {
|
|
181
186
|
default: vue.withCtx(() => [
|
|
182
|
-
item.component === "input" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.
|
|
183
|
-
|
|
187
|
+
item.slot ? vue.renderSlot(_ctx.$slots, item.slot, { key: 0 }) : item.component === "input-group" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.InputGroup), { key: 1 }, {
|
|
188
|
+
default: vue.withCtx(() => [
|
|
189
|
+
vue.createVNode(vue.unref(webVue.Select), {
|
|
190
|
+
modelValue: form.value[item.selectKey],
|
|
191
|
+
"onUpdate:modelValue": ($event) => form.value[item.selectKey] = $event,
|
|
192
|
+
"default-active-first-option": "",
|
|
193
|
+
style: { "width": "100px" }
|
|
194
|
+
}, {
|
|
195
|
+
default: vue.withCtx(() => [
|
|
196
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item.selectOptions, (option, idx) => {
|
|
197
|
+
return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
|
|
198
|
+
key: idx,
|
|
199
|
+
value: option.value
|
|
200
|
+
}, {
|
|
201
|
+
default: vue.withCtx(() => [
|
|
202
|
+
vue.createTextVNode(vue.toDisplayString(option.label), 1)
|
|
203
|
+
]),
|
|
204
|
+
_: 2
|
|
205
|
+
}, 1032, ["value"]);
|
|
206
|
+
}), 128))
|
|
207
|
+
]),
|
|
208
|
+
_: 2
|
|
209
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"]),
|
|
210
|
+
vue.createVNode(vue.unref(webVue.Input), {
|
|
211
|
+
modelValue: form.value[item.inputKey],
|
|
212
|
+
"onUpdate:modelValue": ($event) => form.value[item.inputKey] = $event,
|
|
213
|
+
placeholder: item.placeholder ? item.placeholder : `\u8BF7\u8F93\u5165${item.inputLabel}`,
|
|
214
|
+
style: { "width": "180px" }
|
|
215
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])
|
|
216
|
+
]),
|
|
217
|
+
_: 2
|
|
218
|
+
}, 1024)) : item.component === "input" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.InputSearch), {
|
|
219
|
+
key: 2,
|
|
184
220
|
modelValue: form.value[item.key],
|
|
185
221
|
"onUpdate:modelValue": ($event) => form.value[item.key] = $event,
|
|
186
222
|
style: vue.normalizeStyle({ width: styleWidth(columnsMap.value[item.key]) }),
|
|
187
223
|
"allow-clear": "",
|
|
188
224
|
size: "medium",
|
|
189
|
-
placeholder: `\u8BF7\u8F93\u5165${item.label}`
|
|
225
|
+
placeholder: item.placeholder ? item.placeholder : `\u8BF7\u8F93\u5165${item.label}`
|
|
190
226
|
}, null, 8, ["modelValue", "onUpdate:modelValue", "style", "placeholder"])) : vue.createCommentVNode("v-if", true),
|
|
191
227
|
item.component === "select" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.Select), {
|
|
192
|
-
key:
|
|
228
|
+
key: 3,
|
|
193
229
|
modelValue: form.value[item.key],
|
|
194
230
|
"onUpdate:modelValue": ($event) => form.value[item.key] = $event,
|
|
195
231
|
"popup-container": "#base-filter-popup-container",
|
|
@@ -197,13 +233,13 @@ const _sfc_main = vue.defineComponent({
|
|
|
197
233
|
"allow-search": item.allowSearch,
|
|
198
234
|
"default-active-first-option": false,
|
|
199
235
|
style: vue.normalizeStyle({ width: styleWidth(columnsMap.value[item.key]) }),
|
|
200
|
-
placeholder: `\u8BF7\u9009\u62E9${item.label}`,
|
|
236
|
+
placeholder: item.placeholder ? item.placeholder : `\u8BF7\u9009\u62E9${item.label}`,
|
|
201
237
|
onSearch: ($event) => handleSelectSearch($event, item),
|
|
202
238
|
onPopupVisibleChange: ($event) => handleSelectPopupChange($event, item),
|
|
203
239
|
onChange: ($event) => handleSelectChange($event, item)
|
|
204
240
|
}, {
|
|
205
241
|
default: vue.withCtx(() => [
|
|
206
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getOptions(item), (opt) => {
|
|
242
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getOptions.value(item), (opt) => {
|
|
207
243
|
return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
|
|
208
244
|
key: opt.value,
|
|
209
245
|
label: opt.label,
|
|
@@ -214,7 +250,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
214
250
|
_: 2
|
|
215
251
|
}, 1032, ["modelValue", "onUpdate:modelValue", "allow-search", "style", "placeholder", "onSearch", "onPopupVisibleChange", "onChange"])) : vue.createCommentVNode("v-if", true),
|
|
216
252
|
item.component === "range-picker" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.RangePicker), {
|
|
217
|
-
key:
|
|
253
|
+
key: 4,
|
|
218
254
|
modelValue: form.value[item.key].range,
|
|
219
255
|
"onUpdate:modelValue": ($event) => form.value[item.key].range = $event,
|
|
220
256
|
style: vue.normalizeStyle({ width: styleWidth(form.value[item.key]) }),
|
|
@@ -225,7 +261,28 @@ const _sfc_main = vue.defineComponent({
|
|
|
225
261
|
"popup-container": "#base-filter-popup-container",
|
|
226
262
|
onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
|
|
227
263
|
}, ["stop"]))
|
|
228
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue", "style"])) : vue.createCommentVNode("v-if", true)
|
|
264
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "style"])) : vue.createCommentVNode("v-if", true),
|
|
265
|
+
item.component === "radio" ? (vue.openBlock(), vue.createBlock(vue.unref(webVue.RadioGroup), {
|
|
266
|
+
key: 5,
|
|
267
|
+
modelValue: form.value[item.key],
|
|
268
|
+
"onUpdate:modelValue": ($event) => form.value[item.key] = $event,
|
|
269
|
+
type: "button"
|
|
270
|
+
}, {
|
|
271
|
+
default: vue.withCtx(() => [
|
|
272
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item.options || [], (option, idx) => {
|
|
273
|
+
return vue.openBlock(), vue.createBlock(vue.unref(webVue.Radio), {
|
|
274
|
+
key: idx,
|
|
275
|
+
value: option.value
|
|
276
|
+
}, {
|
|
277
|
+
default: vue.withCtx(() => [
|
|
278
|
+
vue.createTextVNode(vue.toDisplayString(option.label), 1)
|
|
279
|
+
]),
|
|
280
|
+
_: 2
|
|
281
|
+
}, 1032, ["value"]);
|
|
282
|
+
}), 128))
|
|
283
|
+
]),
|
|
284
|
+
_: 2
|
|
285
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("v-if", true)
|
|
229
286
|
]),
|
|
230
287
|
_: 2
|
|
231
288
|
}, 1032, ["active"]);
|
|
@@ -109,6 +109,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
109
109
|
onCellMouseEnter: tableCellMouseEnter,
|
|
110
110
|
onCellMouseLeave: tableCellMouseLeave
|
|
111
111
|
}, {
|
|
112
|
+
"after-index": vue.withCtx(() => [
|
|
113
|
+
vue.renderSlot(_ctx.$slots, "after-index", {
|
|
114
|
+
row: element,
|
|
115
|
+
index: index$4
|
|
116
|
+
})
|
|
117
|
+
]),
|
|
112
118
|
batch: vue.withCtx(() => [
|
|
113
119
|
vue.renderSlot(_ctx.$slots, "batch", {
|
|
114
120
|
row: element,
|
|
@@ -133,6 +139,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
133
139
|
onCellMouseEnter: tableCellMouseEnter,
|
|
134
140
|
onCellMouseLeave: tableCellMouseLeave
|
|
135
141
|
}, {
|
|
142
|
+
"after-index": vue.withCtx(() => [
|
|
143
|
+
vue.renderSlot(_ctx.$slots, "after-index", {
|
|
144
|
+
row: element,
|
|
145
|
+
index: index$4
|
|
146
|
+
})
|
|
147
|
+
]),
|
|
136
148
|
tip: vue.withCtx(() => [
|
|
137
149
|
vue.renderSlot(_ctx.$slots, "tip", {
|
|
138
150
|
row: element,
|
|
@@ -229,6 +241,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
229
241
|
onCellMouseEnter: tableCellMouseEnter,
|
|
230
242
|
onCellMouseLeave: tableCellMouseLeave
|
|
231
243
|
}, {
|
|
244
|
+
"after-index": vue.withCtx(() => [
|
|
245
|
+
vue.renderSlot(_ctx.$slots, "after-index", {
|
|
246
|
+
row: item,
|
|
247
|
+
index: index$4
|
|
248
|
+
})
|
|
249
|
+
]),
|
|
232
250
|
batch: vue.withCtx(() => [
|
|
233
251
|
vue.renderSlot(_ctx.$slots, "batch", {
|
|
234
252
|
row: item,
|
|
@@ -253,6 +271,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
253
271
|
onCellMouseEnter: tableCellMouseEnter,
|
|
254
272
|
onCellMouseLeave: tableCellMouseLeave
|
|
255
273
|
}, {
|
|
274
|
+
"after-index": vue.withCtx(() => [
|
|
275
|
+
vue.renderSlot(_ctx.$slots, "after-index", {
|
|
276
|
+
row: item,
|
|
277
|
+
index: index$4
|
|
278
|
+
})
|
|
279
|
+
]),
|
|
256
280
|
tip: vue.withCtx(() => [
|
|
257
281
|
vue.renderSlot(_ctx.$slots, "tip", {
|
|
258
282
|
row: item,
|
|
@@ -143,7 +143,8 @@ const _sfc_main = vue.defineComponent({
|
|
|
143
143
|
})
|
|
144
144
|
]),
|
|
145
145
|
index: vue.withCtx(() => [
|
|
146
|
-
vue.createElementVNode("span", _hoisted_1, vue.toDisplayString(_ctx.index + 1), 1)
|
|
146
|
+
vue.createElementVNode("span", _hoisted_1, vue.toDisplayString(_ctx.index + 1), 1),
|
|
147
|
+
vue.renderSlot(_ctx.$slots, "after-index")
|
|
147
148
|
]),
|
|
148
149
|
tip: vue.withCtx(() => [
|
|
149
150
|
vue.createCommentVNode(" \u5148\u6DFB\u52A0\u6587\u4EF6\u8D44\u6E90\uFF0C\u672A\u53D1\u5E03 "),
|
|
@@ -38,6 +38,12 @@ const _sfc_main = vue.defineComponent({
|
|
|
38
38
|
index: _ctx.index
|
|
39
39
|
})
|
|
40
40
|
]),
|
|
41
|
+
"after-index": vue.withCtx(() => [
|
|
42
|
+
vue.renderSlot(_ctx.$slots, "after-index", {
|
|
43
|
+
row: _ctx.element,
|
|
44
|
+
index: _ctx.index
|
|
45
|
+
})
|
|
46
|
+
]),
|
|
41
47
|
batch: vue.withCtx(() => [
|
|
42
48
|
vue.renderSlot(_ctx.$slots, "batch", {
|
|
43
49
|
row: _ctx.item,
|
package/lib/hooks/usePopper.js
CHANGED
|
@@ -9,16 +9,16 @@ function usePopper(pannel, triggerEl) {
|
|
|
9
9
|
};
|
|
10
10
|
const show = () => {
|
|
11
11
|
visible.value = true;
|
|
12
|
-
window.onclick = (
|
|
12
|
+
window.onclick = () => {
|
|
13
13
|
hide();
|
|
14
14
|
visible.value = false;
|
|
15
15
|
window.onclick = null;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
const initPopper = (placement = "bottom-start") => {
|
|
18
|
+
const initPopper = (placement = "bottom-start", of) => {
|
|
19
19
|
if (!pannel.value || !triggerEl.value)
|
|
20
20
|
return;
|
|
21
|
-
const offset = [0, 10];
|
|
21
|
+
const offset = of != null ? of : [0, 10];
|
|
22
22
|
if (window.__POWERED_BY_WUJIE__) {
|
|
23
23
|
offset[1] = -54;
|
|
24
24
|
}
|
package/lib/hooks/useUpload.js
CHANGED
|
@@ -75,7 +75,7 @@ function useUpload(options) {
|
|
|
75
75
|
list.value = originList;
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
|
-
const uploadFile = (BASE_API, file, dir = 0, repoId, callback) => {
|
|
78
|
+
const uploadFile = (BASE_API, file, dir = 0, repoId, callback, upOptions) => {
|
|
79
79
|
const newFile = {
|
|
80
80
|
id: file.id || index.generateUUID(),
|
|
81
81
|
sig_id: file.sig_id || index.generateUUID(),
|
|
@@ -95,18 +95,24 @@ function useUpload(options) {
|
|
|
95
95
|
};
|
|
96
96
|
const uploading = upload.start(progress);
|
|
97
97
|
uploading.then(async (url) => {
|
|
98
|
+
var _a;
|
|
98
99
|
if (options == null ? void 0 : options.noAddMedia) {
|
|
99
100
|
recordTaskStatusChange({ ...newFile, status: 0, url }, 1);
|
|
100
101
|
callback && callback({ ...newFile, url }, "success");
|
|
101
102
|
return;
|
|
102
103
|
}
|
|
104
|
+
const params = {};
|
|
105
|
+
if ((_a = upOptions == null ? void 0 : upOptions.template) == null ? void 0 : _a.watermark) {
|
|
106
|
+
params.watermark = upOptions.template.watermark.default;
|
|
107
|
+
}
|
|
103
108
|
const { code, message } = await addMedia(BASE_API, {
|
|
104
109
|
url,
|
|
105
110
|
size: newFile.size,
|
|
106
111
|
directory_id: dir,
|
|
107
112
|
repository_id: repoId,
|
|
108
113
|
catalog: newFile.type,
|
|
109
|
-
alias: newFile.name
|
|
114
|
+
alias: newFile.name,
|
|
115
|
+
...params
|
|
110
116
|
});
|
|
111
117
|
if (code !== 0) {
|
|
112
118
|
console.log("\u{1F525}\u{1F525}\u{1F525}\u{1F525}\u{1F525} \u4E0A\u4F20\u5931\u8D25\uFF1A", newFile.name, code, message);
|
|
@@ -196,9 +202,16 @@ function getConfiguration(BASE_API, params) {
|
|
|
196
202
|
params
|
|
197
203
|
});
|
|
198
204
|
}
|
|
205
|
+
function getWatermarkTemplate(BASE_API) {
|
|
206
|
+
return request(BASE_API, {
|
|
207
|
+
url: `/poplar/v2/material/image/watermark`,
|
|
208
|
+
method: "get"
|
|
209
|
+
});
|
|
210
|
+
}
|
|
199
211
|
function useUploadConfig() {
|
|
200
212
|
const { get, set, remove } = useLocalStorage["default"]("LOCAL_UPLOAD_CONFIG");
|
|
201
213
|
const config = vue.ref(get() || {});
|
|
214
|
+
const template = vue.ref({});
|
|
202
215
|
async function initUploadConfig(BASE_API, domainId) {
|
|
203
216
|
if (config.value.size_config_enabled != null)
|
|
204
217
|
return;
|
|
@@ -247,16 +260,43 @@ function useUploadConfig() {
|
|
|
247
260
|
);
|
|
248
261
|
return false;
|
|
249
262
|
}
|
|
263
|
+
async function initTemplate(BASE_API) {
|
|
264
|
+
try {
|
|
265
|
+
const { code, message } = await getWatermarkTemplate(BASE_API);
|
|
266
|
+
if (code !== 0)
|
|
267
|
+
return;
|
|
268
|
+
if (message) {
|
|
269
|
+
let defaultWaterMark;
|
|
270
|
+
if (Array.isArray(message.images)) {
|
|
271
|
+
message.images.forEach((item) => {
|
|
272
|
+
if (message.default === item.id)
|
|
273
|
+
defaultWaterMark = item;
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
template.value = {
|
|
277
|
+
watermark: {
|
|
278
|
+
default: defaultWaterMark,
|
|
279
|
+
images: message.images
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
} catch (e) {
|
|
284
|
+
console.error(e);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
250
287
|
window.addEventListener("beforeunload", remove, false);
|
|
251
288
|
return {
|
|
252
289
|
config,
|
|
290
|
+
template,
|
|
253
291
|
checkFileSizeOutLimit,
|
|
254
|
-
initUploadConfig
|
|
292
|
+
initUploadConfig,
|
|
293
|
+
initTemplate
|
|
255
294
|
};
|
|
256
295
|
}
|
|
257
296
|
exports.addMedia = addMedia;
|
|
258
297
|
exports["default"] = useUpload;
|
|
259
298
|
exports.getMediaDetails = getMediaDetails;
|
|
260
299
|
exports.getSize = getSize;
|
|
300
|
+
exports.getWatermarkTemplate = getWatermarkTemplate;
|
|
261
301
|
exports.reTranscodeMedia = reTranscodeMedia;
|
|
262
302
|
exports.useUploadConfig = useUploadConfig;
|
package/lib/index.css
CHANGED
|
@@ -4529,11 +4529,13 @@
|
|
|
4529
4529
|
}
|
|
4530
4530
|
.resource-list-footer,
|
|
4531
4531
|
.resource-list-header,
|
|
4532
|
+
.resource-list-content .resource-list-content-empty,
|
|
4532
4533
|
.resource-list-content .arco-scrollbar-container {
|
|
4533
4534
|
padding: 0 40px;
|
|
4534
4535
|
}
|
|
4535
4536
|
.resource-list-footer {
|
|
4536
4537
|
display: flex;
|
|
4538
|
+
flex-wrap: wrap;
|
|
4537
4539
|
justify-content: space-between;
|
|
4538
4540
|
padding-bottom: 20px;
|
|
4539
4541
|
}
|
|
@@ -4543,6 +4545,10 @@
|
|
|
4543
4545
|
gap: 10px;
|
|
4544
4546
|
align-items: center;
|
|
4545
4547
|
justify-content: flex-end;
|
|
4548
|
+
margin-top: 10px;
|
|
4549
|
+
}
|
|
4550
|
+
.resource-list-footer .footer-right .list-selected-wrapper {
|
|
4551
|
+
font-size: 12px;
|
|
4546
4552
|
}
|
|
4547
4553
|
.resource-list-content-loading {
|
|
4548
4554
|
display: flex;
|
|
@@ -4597,7 +4603,8 @@
|
|
|
4597
4603
|
}
|
|
4598
4604
|
.resource-list .list-filter-wrapper .list-filter-tags {
|
|
4599
4605
|
display: flex;
|
|
4600
|
-
|
|
4606
|
+
flex-wrap: wrap;
|
|
4607
|
+
gap: 10px;
|
|
4601
4608
|
margin-top: 10px;
|
|
4602
4609
|
}
|
|
4603
4610
|
.resource-list .list-filter-wrapper .list-filter-tags .list-filter-tag {
|
|
@@ -4618,16 +4625,41 @@
|
|
|
4618
4625
|
justify-content: space-between;
|
|
4619
4626
|
}
|
|
4620
4627
|
.resource-list .list-filter-wrapper .list-filter .filter-list {
|
|
4628
|
+
position: relative;
|
|
4629
|
+
/** 给 popup 一个参考 */
|
|
4621
4630
|
display: flex;
|
|
4622
|
-
flex-wrap: wrap;
|
|
4623
|
-
gap: 10px;
|
|
4624
4631
|
}
|
|
4625
4632
|
.resource-list .list-filter-wrapper .list-filter .filter-list .filter-item {
|
|
4626
4633
|
width: 100px;
|
|
4634
|
+
margin-right: 10px;
|
|
4635
|
+
}
|
|
4636
|
+
.resource-list .list-filter-wrapper .list-filter .filter-list .arco-trigger-popup {
|
|
4637
|
+
z-index: 100000 !important;
|
|
4627
4638
|
}
|
|
4628
4639
|
.resource-list .list-filter-wrapper .list-filter .arco-input-prepend {
|
|
4629
4640
|
padding: 0;
|
|
4630
4641
|
}
|
|
4642
|
+
.resource-list .list-filter-wrapper .list-filter .more-btn {
|
|
4643
|
+
position: relative;
|
|
4644
|
+
/** 给 poperjs 一个参考 */
|
|
4645
|
+
}
|
|
4646
|
+
.resource-list .list-filter-wrapper .list-filter .more-btn .filter-pannel {
|
|
4647
|
+
inset: 40px auto auto auto !important;
|
|
4648
|
+
}
|
|
4649
|
+
.resource-list .list-filter-wrapper .filter-extra {
|
|
4650
|
+
display: flex;
|
|
4651
|
+
gap: 10px;
|
|
4652
|
+
}
|
|
4653
|
+
.resource-list .list-filter-wrapper .filter-pannel {
|
|
4654
|
+
z-index: 100000;
|
|
4655
|
+
display: flex;
|
|
4656
|
+
flex-direction: column;
|
|
4657
|
+
gap: 10px;
|
|
4658
|
+
padding: 10px;
|
|
4659
|
+
background-color: #fff;
|
|
4660
|
+
border-radius: 4px;
|
|
4661
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
4662
|
+
}
|
|
4631
4663
|
.resource-list .title {
|
|
4632
4664
|
display: flex;
|
|
4633
4665
|
gap: 8px;
|
|
@@ -4673,6 +4705,11 @@
|
|
|
4673
4705
|
.resource-select-container .resource-select-header .arco-tabs-content {
|
|
4674
4706
|
display: none !important;
|
|
4675
4707
|
}
|
|
4708
|
+
.resource-select-container .resource-list-content .resource-list-content-empty {
|
|
4709
|
+
box-sizing: border-box;
|
|
4710
|
+
width: 100%;
|
|
4711
|
+
height: 100%;
|
|
4712
|
+
}
|
|
4676
4713
|
.iframe-container {
|
|
4677
4714
|
position: relative;
|
|
4678
4715
|
height: 95vh;
|
|
@@ -23,6 +23,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
23
23
|
var _a;
|
|
24
24
|
return (_a = userInfo == null ? void 0 : userInfo.value) == null ? void 0 : _a.repository_id;
|
|
25
25
|
});
|
|
26
|
+
const { template, initTemplate } = useUpload.useUploadConfig();
|
|
26
27
|
const { list, uploadFile, reTranscode, transcodingFile, removeRecord } = useUpload["default"]();
|
|
27
28
|
function handleChange(file) {
|
|
28
29
|
if (!baseAPI || !repoId.value)
|
|
@@ -32,7 +33,8 @@ const _sfc_main = vue.defineComponent({
|
|
|
32
33
|
file.file,
|
|
33
34
|
0,
|
|
34
35
|
repoId.value,
|
|
35
|
-
(media) => transcodingFile(baseAPI, media, repoId.value)
|
|
36
|
+
(media) => transcodingFile(baseAPI, media, repoId.value),
|
|
37
|
+
{ template: template.value }
|
|
36
38
|
);
|
|
37
39
|
}
|
|
38
40
|
async function handleOptions(e) {
|
|
@@ -55,6 +57,9 @@ const _sfc_main = vue.defineComponent({
|
|
|
55
57
|
removeRecord(e.item);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
60
|
+
vue.onMounted(() => {
|
|
61
|
+
initTemplate(baseAPI);
|
|
62
|
+
});
|
|
58
63
|
return (_ctx, _cache) => {
|
|
59
64
|
return vue.openBlock(), vue.createBlock(ListWraper, null, {
|
|
60
65
|
"footer-extra": vue.withCtx(() => [
|