diff --git a/src/router/index.js b/src/router/index.js index 5ecfd1d..6b523a4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -437,7 +437,7 @@ const routes = [ } }, { - path: '/message/index', + path: '/message/pub', component: () => import('@/views/layout/components/main/message/pub'), meta: { title: '发布公告', diff --git a/src/store/index.js b/src/store/index.js index 4a687a0..0754733 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -6,6 +6,7 @@ import settings from './modules/settings' import user from './modules/user' import api from '@/utils/api' import { Message, MessageBox, Notification } from 'element-ui' +import { parseTime } from '@/utils/index' // 把vuex作为插件引入到Vue示例中 ps:注册 Vue.use(Vuex) @@ -1143,6 +1144,7 @@ const store = new Vuex.Store({ } return res }, + /** * @description: 异步获取管理员消息列表 成功获取之后 弹出通知框 显示列表 */ @@ -1153,14 +1155,24 @@ const store = new Vuex.Store({ const list = res.data.messageList || [] commit('setMessageList', list) - // 每条通知之间延迟 800ms,显示时间为 8000ms + // 弹出通知 list.forEach((item, index) => { + const formattedTime = parseTime(item.add_time, '{m}-{d} {h}:{i}') + const sender = item.admin_uname || '管理员' + setTimeout(() => { Notification({ title: item.tit || '通知', - message: item.message || '', - duration: 8000, // 显示时间 8 秒 - type: 'info' // 可选类型: success / warning / error / info + message: ` +
+
${item.message || ''}
+
+
BY. ${sender} ${formattedTime} +
+
+ `, + duration: 8000, + dangerouslyUseHTMLString: true // 启用 HTML 格式 }) }, index * 800) }) diff --git a/src/store/modules/app.js b/src/store/modules/app.js index 1903a3a..2757f05 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -9,6 +9,7 @@ const defaultModuleVisibilityMap = { site: true, shop: true, admin: true, + message: true, category: true, broadcast: true, order: true, diff --git a/src/utils/api/table.js b/src/utils/api/table.js index 75a35a7..ce79321 100644 --- a/src/utils/api/table.js +++ b/src/utils/api/table.js @@ -162,6 +162,15 @@ export async function pubMessage (tit, message, idArr, endTime) { return res } +/** + * @description 获取全部公告列表(不限制过期、无admin_id限制) + * @returns {Promise} 返回接口响应对象 + */ +export async function getAllMessageList () { + const res = await api.get('getAllMessageList', 'Admin') + return res +} + /** * @abstract 获取指定飞机组的飞行数据(按时间范围) * @param {Array} idArr 飞机ID数组 diff --git a/src/views/layout/components/main/admin/index.vue b/src/views/layout/components/main/admin/index.vue index 35eb449..63d33d6 100644 --- a/src/views/layout/components/main/admin/index.vue +++ b/src/views/layout/components/main/admin/index.vue @@ -14,7 +14,7 @@ + :data="adminListArr.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border tooltip-effect="dark" @selection-change="handleSelectionChange"> diff --git a/src/views/layout/components/main/home/set.vue b/src/views/layout/components/main/home/set.vue index 1d8ec97..d3082d5 100644 --- a/src/views/layout/components/main/home/set.vue +++ b/src/views/layout/components/main/home/set.vue @@ -56,6 +56,7 @@ export default { { value: 'planes', label: '无人机' }, { value: 'shop', label: '商铺管理' }, { value: 'admin', label: '账户列表' }, + { value: 'message', label: '公告管理' }, { value: 'category', label: '分类管理' }, { value: 'product', label: '商品管理' }, { value: 'broadcast', label: '广告管理' }, diff --git a/src/views/layout/components/main/message/index.vue b/src/views/layout/components/main/message/index.vue index 35eb449..7e8f221 100644 --- a/src/views/layout/components/main/message/index.vue +++ b/src/views/layout/components/main/message/index.vue @@ -2,58 +2,69 @@
- 添加 删除 编辑 - 发布公告 - + + - - - - - - - - - + :data="messageListArr.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border tooltip-effect="dark"> + + + + + + + + + + + + + + + + + - + + + - - + + + + + 编辑 + 删除 + + + :total="messageListArr.length"> +