@cmstops/pro-compo
Version:
[物料平台文档中心](https://arco.design/docs/material/guide)
107 lines (106 loc) • 4.86 kB
JavaScript
import { defineComponent, inject, computed, ref, openBlock, createElementBlock, toDisplayString, createCommentVNode, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, createTextVNode } from "vue";
import { Popover, Image, Button, Link } from "@arco-design/web-vue";
import { IconClose } from "@arco-design/web-vue/es/icon";
import { IconVideoTag } from "@arco-iconbox/vue-cmstop-icons";
const _hoisted_1 = { class: "list-selected-wrapper" };
const _hoisted_2 = { key: 0 };
const _hoisted_3 = { class: "list-panel-header" };
const _hoisted_4 = { class: "header-options" };
const _hoisted_5 = { class: "list-selected-record" };
const _hoisted_6 = { class: "item-thumb" };
const _hoisted_7 = { class: "item-tag" };
const _hoisted_8 = { class: "item-alias" };
const _sfc_main = defineComponent({
__name: "index",
props: {
selected: {},
maxcount: {}
},
emits: ["remove", "clear"],
setup(__props, { emit: __emit }) {
const emits = __emit;
const baseAPI = inject("baseAPI");
const audioThumb = computed(() => {
return `${baseAPI}/static/img/music.2ee269c.png`;
});
const visible = ref(false);
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", _hoisted_1, [
_ctx.maxcount ? (openBlock(), createElementBlock("span", _hoisted_2, "\u6700\u591A\u9009\u62E9 " + toDisplayString(_ctx.maxcount) + " \u4E2A\u7D20\u6750\uFF0C ", 1)) : createCommentVNode("v-if", true),
createVNode(unref(Popover), {
"popup-visible": visible.value,
"onUpdate:popupVisible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
trigger: "click",
"content-class": "list-panel-wrapper"
}, {
content: withCtx(() => [
createCommentVNode(" header "),
createElementVNode("div", _hoisted_3, [
createElementVNode("div", null, "\u5DF2\u9009\u62E9 " + toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1),
createElementVNode("div", _hoisted_4, [
createElementVNode("div", {
onClick: _cache[0] || (_cache[0] = ($event) => emits("clear"))
}, " \u6E05\u9664 "),
createElementVNode("div", {
onClick: _cache[1] || (_cache[1] = ($event) => visible.value = false)
}, [
createVNode(unref(IconClose), { size: "14" })
])
])
]),
createCommentVNode(" content "),
createElementVNode("div", _hoisted_5, [
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selected, (item) => {
return openBlock(), createElementBlock("div", {
key: item.id,
class: "list-selected-item"
}, [
createElementVNode("div", _hoisted_6, [
["image", "video"].includes(item.catalog) ? (openBlock(), createBlock(unref(Image), {
key: 0,
preview: false,
width: "100%",
height: "100%",
src: item.thumb || item.url
}, null, 8, ["src"])) : createCommentVNode("v-if", true),
["audio"].includes(item.catalog) ? (openBlock(), createBlock(unref(Image), {
key: 1,
preview: false,
width: "100%",
height: "100%",
fit: "cover",
src: audioThumb.value
}, null, 8, ["src"])) : createCommentVNode("v-if", true),
createElementVNode("div", _hoisted_7, [
item.catalog === "video" ? (openBlock(), createBlock(unref(IconVideoTag), { key: 0 })) : createCommentVNode("v-if", true)
])
]),
createElementVNode("div", _hoisted_8, toDisplayString(item.alias), 1),
createVNode(unref(Button), {
type: "text",
onClick: ($event) => emits("remove", item)
}, {
icon: withCtx(() => [
createVNode(unref(IconClose))
]),
_: 2
}, 1032, ["onClick"])
]);
}), 128))
])
]),
default: withCtx(() => [
createVNode(unref(Link), null, {
default: withCtx(() => [
createTextVNode("\u5DF2\u9009\u62E9 " + toDisplayString(_ctx.selected.length) + " \u4E2A\u7D20\u6750", 1)
]),
_: 1
})
]),
_: 1
}, 8, ["popup-visible"])
]);
};
}
});
export { _sfc_main as default };