UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

111 lines (110 loc) 3.4 kB
import { defineComponent as y, ref as t, computed as u, onMounted as D, createVNode as s } from "vue"; const x = { pagerOnServer: { Type: Boolean, default: !0 }, /** 是否支持分页 */ supportPaging: { Type: Boolean, default: !0 }, /** 当前页码 */ pageIndex: { Type: Number, default: 1 }, /** 总条数 */ total: { Type: Number, default: 0 }, /** 每页显示个数 */ pageSize: { Type: Number, default: 10 }, /** 评论数据 */ discussionData: { Type: Object, default: [] }, personnelsDisplayKey: { Type: String, default: "userName" } }, c = /* @__PURE__ */ y({ name: "FDiscussionList", props: x, emits: ["replyMessage", "page", "pageSize", "filePreview", "fileDownload"], setup(i, r) { const o = t(i.personnelsDisplayKey), d = t(i.pagerOnServer), p = t(i.supportPaging), m = t(i.pageIndex), n = t(i.total), a = t(i.pageSize); t(i.discussionData); let g = []; u({ get() { return n.value; }, set(e) { n.value = e, l(); } }), u({ get() { return a.value; }, set(e) { a.value = e, l(); } }), D(() => { l(); }); function l() { a.value, m.value; } function v(e) { r.emit("replyMessage", e); } return () => s("div", null, [s("div", { class: "f-discussion-group-content" }, [ // *ngFor="let item of (supportPaging ? (innerDiscussionData | paginate: paginationOptions) : innerDiscussionData)" g.map((e) => s("div", { class: "f-discussion-group-content-item" }, [s("div", { class: "discussion-item-avatar" }, [s("div", null, [e.imgData && s("div", null, [s("img", { src: e.imgData, alt: "", class: "discussion-item-avatar-img" }, null)])]), s("div", null, [!e.imgData && s("div", { class: "discussion-item-avatar-tip" }, null)])]), s("div", { class: "discussion-item-inner" }, [s("div", { class: "discussion-item-username" }, [e[o.value]]), s("div", { class: "discussion-item-text" }, [s("span", { class: "discussion-item-text-message", innerHTML: e.text }, null)]), e.parentData && s("div", { class: "discussion-item-text-reply" }, [s("span", { class: "discussion-item-text-reply-title" }, ["discussionGroup.reply", s("span", { class: "discussion-item-text-reply-name" }, [e.parentData[o.value]])]), s("span", { class: "discussion-item-text-reply-content", innerHTML: e.parentData.text }, null)]), s("div", { class: "discussion-item-footer" }, [s("div", { class: "discussion-item-time" }, [s("span", { class: "discussion-item-time-text" }, [e.commentDate])]), s("div", { class: "discussion-item-btns" }, [s("span", { class: "discussion-item-btns-start", onClick: (f) => { v(f); } }, [s("span", { class: "f-icon f-icon-message" }, null), s("span", { class: "discussion-item-btns-start-text" }, ["discussionGroup.reply"])])])])])])), p.value && s("div", { class: "f-discussion-group-footer" }, null) ])]); } }), T = { install(i) { i.component(c.name, c); } }; export { c as DiscussionListProps, T as default, x as discussionListProps };