From b1160117c2135e9d05ee7886b4dfa6348b5cbc68 Mon Sep 17 00:00:00 2001 From: qiuyuan Date: Mon, 23 Jun 2025 15:18:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/modules/announcement.js | 15 + src/hooks/useSpining.js | 6 +- src/locales/lang/zh-CN/menu.js | 1 + src/locales/lang/zh-CN/pages.js | 15 +- src/router/routes/announcement.js | 30 ++ src/router/routes/index.js | 2 + .../announcementList/components/AddDialog.vue | 220 +++++++++++++++ .../announcement/announcementList/index.vue | 259 ++++++++++++++++++ 8 files changed, 542 insertions(+), 6 deletions(-) create mode 100644 src/apis/modules/announcement.js create mode 100644 src/router/routes/announcement.js create mode 100644 src/views/announcement/announcementList/components/AddDialog.vue create mode 100644 src/views/announcement/announcementList/index.vue diff --git a/src/apis/modules/announcement.js b/src/apis/modules/announcement.js new file mode 100644 index 0000000..c79c9bd --- /dev/null +++ b/src/apis/modules/announcement.js @@ -0,0 +1,15 @@ +/** + * 消息公告 + */ + +import request from '@/utils/request' +// 获取公告列表 +export const getNoticesList = (params) => request.basic.get('/api/v1/notices', params) +// 获取条目 +export const getNotices = (id) => request.basic.get(`/api/v1/notices/${id}`) +// 添加公告 +export const createNotices = (params) => request.basic.post('/api/v1/notices', params) +// 更新公告 +export const updateNotices = (id, params) => request.basic.put(`/api/v1/notices/${id}`, params) +// 删除公告 +export const delNotices = (id) => request.basic.delete(`/api/v1/notices/${id}`) diff --git a/src/hooks/useSpining.js b/src/hooks/useSpining.js index e9ba6a2..2b02ce2 100644 --- a/src/hooks/useSpining.js +++ b/src/hooks/useSpining.js @@ -1,19 +1,15 @@ - import { ref } from 'vue' export default () => { const spining = ref(false) // 直接使用基本类型ref - const showSpining = () => { spining.value = true } - const hideSpining = () => { spining.value = false } - return { spining, // 直接暴露ref showSpining, - hideSpining + hideSpining, } } diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js index 4a5d06e..6aed8a5 100644 --- a/src/locales/lang/zh-CN/menu.js +++ b/src/locales/lang/zh-CN/menu.js @@ -48,6 +48,7 @@ export default { projectList: '项目列表', hoseBookList: '房刊列表', houseList: '房源列表', + announcement: '消息公告', announcementList: '公告列表', bannberTypeList: '轮播图分类列表', bannberList: '轮播图列表', diff --git a/src/locales/lang/zh-CN/pages.js b/src/locales/lang/zh-CN/pages.js index c2d7e19..28c8918 100644 --- a/src/locales/lang/zh-CN/pages.js +++ b/src/locales/lang/zh-CN/pages.js @@ -122,7 +122,7 @@ export default { 'pages.user.profile.tab.security.form.confirm_password.required': '确认密码是必填项!', 'pages.user.profile.tab.security.form.confirm_password.validator': '两次输入的密码不匹配!', - // userManagement + // userManagement 客户管理 'pages.system.userManagement.form.id': '用户编码', 'pages.system.userManagement.form.name': '用户名', 'pages.system.userManagement.form.phone': '联系方式', @@ -132,4 +132,17 @@ export default { 'pages.system.userManagement.form.grade': '等级', 'pages.system.userManagement.form.balance': '余额', 'pages.system.userManagement.form.status': '状态', + + // announcement 消息公告 + 'pages.system.announcement.form.id': '编号ID', + 'pages.system.announcement.form.createdAt': '创建时间', + 'pages.system.announcement.form.title': '标题', + 'pages.system.announcement.form.content': '内容', + 'pages.system.announcement.form.status': '状态', + 'pages.system.announcement.form.areaId': '区域', + 'pages.system.announcement.form.name': '标题名称', + 'pages.system.announcement.add': '添加公告', + 'pages.system.announcement.form.title.placeholder': '编辑公告标题', + 'pages.system.announcement.form.content.placeholder': '编辑公告内容', + 'pages.system.announcement.form.createdAt.placeholder': '创建公告时间', } diff --git a/src/router/routes/announcement.js b/src/router/routes/announcement.js new file mode 100644 index 0000000..cbd203c --- /dev/null +++ b/src/router/routes/announcement.js @@ -0,0 +1,30 @@ +import { TableOutlined } from '@ant-design/icons-vue' + +export default [ + { + path: 'announcement', + name: 'announcement', + component: 'RouteViewLayout', + meta: { + icon: TableOutlined, + title: '消息公告', + isMenu: true, + keepAlive: true, + permission: '*', + }, + children: [ + { + path: 'announcementList', + name: 'announcementList', + component: 'announcement/announcementList/index.vue', + + meta: { + title: '消息公告列表', + isMenu: true, + keepAlive: true, + permission: '*', + }, + }, + ], + }, +] diff --git a/src/router/routes/index.js b/src/router/routes/index.js index 26c810c..13702d4 100644 --- a/src/router/routes/index.js +++ b/src/router/routes/index.js @@ -12,6 +12,7 @@ import other from './other' import userManagement from './userManagement' import integral from './integral' import regional from './regional' +import announcement from './announcement' export default [ ...home, @@ -28,4 +29,5 @@ export default [ ...userManagement, ...integral, ...regional, + ...announcement, ] diff --git a/src/views/announcement/announcementList/components/AddDialog.vue b/src/views/announcement/announcementList/components/AddDialog.vue new file mode 100644 index 0000000..56b1fd4 --- /dev/null +++ b/src/views/announcement/announcementList/components/AddDialog.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/views/announcement/announcementList/index.vue b/src/views/announcement/announcementList/index.vue new file mode 100644 index 0000000..ec49384 --- /dev/null +++ b/src/views/announcement/announcementList/index.vue @@ -0,0 +1,259 @@ + + + + +