@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
234 lines (231 loc) • 9.08 kB
JavaScript
import { defineComponent, reactive, resolveComponent, createElementBlock, openBlock, createVNode, withCtx, createElementVNode, createCommentVNode, createBlock, Fragment, renderList, withDirectives, toDisplayString, unref, vShow, createTextVNode } from 'vue';
import { useRouter } from 'vue-router';
import commonFunction from '../../../utils/comm/commonFunction.mjs';
import '../../../../../node_modules/.pnpm/@wangeditor_editor@5.1.23/node_modules/@wangeditor/editor/dist/css/style.css.mjs';
import '../../../api/index.mjs';
import { useSysApi } from '../../../api/sys/index.mjs';
const _hoisted_1 = { class: "user-news-container" };
const _hoisted_2 = { style: { "margin-left": "5px" } };
const _hoisted_3 = { class: "notice-box" };
const _hoisted_4 = ["onClick"];
const _hoisted_5 = { class: "notice-title" };
const _hoisted_6 = { class: "notice-content" };
const _hoisted_7 = { class: "notice-time" };
const _hoisted_8 = { style: { "margin-left": "5px" } };
const _hoisted_9 = { style: { "height": "400px", "overflow-y": "auto", "padding-right": "10px" } };
const _hoisted_10 = { style: { "color": "#fff" } };
const _hoisted_11 = { class: "w-e-text-container" };
const _hoisted_12 = ["innerHTML"];
const _hoisted_13 = { class: "dialog-footer" };
var _sfc_main = /* @__PURE__ */ defineComponent({
__name: "userNews",
props: {
noticeList: Array
},
setup(__props) {
const { removeHtmlSub } = commonFunction();
const state = reactive({
dialogVisible: false,
content: ""
});
const router = useRouter();
const goToNotice = () => {
router.push("/dashboard/notice");
};
const viewNoticeDetail = async (notice) => {
state.content = notice.content;
state.dialogVisible = true;
notice.readStatus = 1;
await useSysApi().setNoticeRead({ id: notice.id });
};
return (_ctx, _cache) => {
const _component_ele_Bell = resolveComponent("ele-Bell");
const _component_el_icon = resolveComponent("el-icon");
const _component_el_divider = resolveComponent("el-divider");
const _component_el_empty = resolveComponent("el-empty");
const _component_el_tab_pane = resolveComponent("el-tab-pane");
const _component_ele_Position = resolveComponent("ele-Position");
const _component_el_tabs = resolveComponent("el-tabs");
const _component_el_button = resolveComponent("el-button");
const _component_el_dialog = resolveComponent("el-dialog");
return openBlock(), createElementBlock("div", _hoisted_1, [
createVNode(_component_el_tabs, {
stretch: "",
class: "content-box"
}, {
default: withCtx(() => [
createVNode(_component_el_tab_pane, {
label: _ctx.$t("message.list.messageInbox")
}, {
label: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(_component_ele_Bell)
]),
_: 1
/* STABLE */
}),
createElementVNode(
"span",
_hoisted_2,
toDisplayString(_ctx.$t("message.list.messageInbox")),
1
/* TEXT */
)
]),
default: withCtx(() => [
createElementVNode("div", _hoisted_3, [
__props.noticeList.length > 0 ? (openBlock(true), createElementBlock(
Fragment,
{ key: 0 },
renderList(__props.noticeList, (v, k) => {
return withDirectives((openBlock(), createElementBlock("div", {
class: "notice-item",
key: k,
onClick: ($event) => viewNoticeDetail(v)
}, [
createElementVNode(
"div",
_hoisted_5,
toDisplayString(v.type == 1 ? "\u3010" + _ctx.$t("message.list.notice") + "\u3011" : "\u3010" + _ctx.$t("message.list.announcement") + "\u3011") + toDisplayString(v.title),
1
/* TEXT */
),
createElementVNode(
"div",
_hoisted_6,
toDisplayString(unref(removeHtmlSub)(v.content)),
1
/* TEXT */
),
createElementVNode(
"div",
_hoisted_7,
toDisplayString(v.publicTime),
1
/* TEXT */
),
createVNode(_component_el_divider, {
"border-style": "dashed",
style: { "margin": "10px 0" }
})
], 8, _hoisted_4)), [
[vShow, v.readStatus == 1 ? false : true]
]);
}),
128
/* KEYED_FRAGMENT */
)) : (openBlock(), createBlock(_component_el_empty, {
key: 1,
description: _ctx.$t("message.list.empty")
}, null, 8, ["description"]))
]),
__props.noticeList.length > 0 ? (openBlock(), createElementBlock(
"div",
{
key: 0,
class: "notice-foot",
onClick: goToNotice
},
toDisplayString(_ctx.$t("message.list.goToNotice")),
1
/* TEXT */
)) : createCommentVNode("v-if", true)
]),
_: 1
/* STABLE */
}, 8, ["label"]),
createVNode(_component_el_tab_pane, {
label: _ctx.$t("message.list.my")
}, {
label: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(_component_ele_Position)
]),
_: 1
/* STABLE */
}),
createElementVNode(
"span",
_hoisted_8,
toDisplayString(_ctx.$t("message.list.my")),
1
/* TEXT */
)
]),
default: withCtx(() => [
createElementVNode("div", _hoisted_9, [
createVNode(_component_el_empty, {
description: _ctx.$t("message.list.empty")
}, null, 8, ["description"])
])
]),
_: 1
/* STABLE */
}, 8, ["label"])
]),
_: 1
/* STABLE */
}),
createVNode(_component_el_dialog, {
modelValue: state.dialogVisible,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.dialogVisible = $event),
draggable: "",
width: "769px"
}, {
header: withCtx(() => [
createElementVNode("div", _hoisted_10, [
createVNode(_component_el_icon, {
size: "16",
style: { "margin-right": "3px", "display": "inline", "vertical-align": "middle" }
}, {
default: withCtx(() => [
createVNode(_component_ele_Bell)
]),
_: 1
/* STABLE */
}),
createElementVNode(
"span",
null,
toDisplayString(_ctx.$t("message.list.messageDetail")),
1
/* TEXT */
)
])
]),
footer: withCtx(() => [
createElementVNode("span", _hoisted_13, [
createVNode(_component_el_button, {
type: "primary",
onClick: _cache[0] || (_cache[0] = ($event) => state.dialogVisible = false)
}, {
default: withCtx(() => [
createTextVNode(
toDisplayString(_ctx.$t("message.list.confirm")),
1
/* TEXT */
)
]),
_: 1
/* STABLE */
})
])
]),
default: withCtx(() => [
createElementVNode("div", _hoisted_11, [
createElementVNode("div", {
innerHTML: state.content,
"data-slate-editor": ""
}, null, 8, _hoisted_12)
])
]),
_: 1
/* STABLE */
}, 8, ["modelValue"])
]);
};
}
});
export { _sfc_main as default };