diff --git a/amms_front/index.html b/amms_front/index.html
new file mode 100644
index 0000000..d9f3fac
--- /dev/null
+++ b/amms_front/index.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ 邺城博物馆管理系统
+
+
+
+
+
+
+
diff --git a/amms_front/public/icon.png b/amms_front/public/icon.png
new file mode 100644
index 0000000..9835e1b
Binary files /dev/null and b/amms_front/public/icon.png differ
diff --git a/amms_front/src/api/itemCategory.js b/amms_front/src/api/itemCategory.js
new file mode 100644
index 0000000..2a1a53c
--- /dev/null
+++ b/amms_front/src/api/itemCategory.js
@@ -0,0 +1,41 @@
+import axios from '@/utils/request'
+
+// 查询藏品分类列表
+export function listItemCategory(query) {
+ return axios.get('/itemCategory/list',{
+ params: {
+ ...query
+ }
+ })
+}
+
+// 查询全部藏品分类列表
+export function listAllItemCategory(query) {
+ return axios.get('/itemCategory/listAll', {
+ params: {
+ ...query
+ }
+ })
+}
+
+// 查询藏品分类详细
+export function getItemCategory(id) {
+ return axios.get('/itemCategory/info/' + id)
+}
+
+// 新增藏品分类
+export function addItemCategory(data) {
+ return axios.post('/itemCategory/add', {
+ ...data
+ })
+}
+
+// 修改藏品分类
+export function updateItemCategory(data) {
+ return axios.put('/itemCategory', data)
+}
+
+// 删除藏品分类
+export function delItemCategory(id) {
+ return axios.delete('/itemCategory/' + id)
+}
diff --git a/amms_front/src/assets/home2.png b/amms_front/src/assets/home2.png
new file mode 100644
index 0000000..98bc327
Binary files /dev/null and b/amms_front/src/assets/home2.png differ
diff --git a/amms_front/src/router/index.js b/amms_front/src/router/index.js
new file mode 100644
index 0000000..53aeb7f
--- /dev/null
+++ b/amms_front/src/router/index.js
@@ -0,0 +1,174 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import { ElMessage } from 'element-plus'
+
+import Layout from '@/components/Layout.vue'
+import HLayout from '@/components/HLayout.vue'
+import Cookies from 'js-cookie'
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ {
+ path: '/',
+ redirect: '/tourist/home'
+ },
+ {
+ path: '/login',
+ name: 'login',
+ component: () => import('@/views/login.vue')
+ },
+ {
+ path: '/register',
+ name: 'register',
+ component: () => import('@/views/register.vue')
+ },
+ // 管理端路径配置
+ {
+ path: '/admin',
+ name: 'admin',
+ component: Layout,
+ redirect: '/admin/statisticalAnalysis',
+ children: [
+ // 数据统计
+ {
+ path: 'statisticalAnalysis',
+ name: 'statisticalAnalysis',
+ component: () => import('@/views/admin/statisticalAnalysis/index.vue')
+ },
+ // 藏品管理
+ {
+ path: 'relic',
+ name: 'relic',
+ component: () => import('@/views/admin/relic/index.vue')
+ },
+ // 藏品分类管理
+ {
+ path: 'itemCategory',
+ name: 'itemCategory',
+ component: () => import('@/views/admin/itemCategory/index.vue')
+ },
+ // 预约时段管理
+ {
+ path: 'reservationTimeSlot',
+ name: 'reservationTimeSlot',
+ component: () => import('@/views/admin/reservationTimeSlot/index.vue')
+ },
+ // 预约明细管理
+ {
+ path: 'reservation',
+ name: 'reservation',
+ component: () => import('@/views/admin/reservation/index.vue')
+ },
+ // 公告管理
+ {
+ path: 'announcement',
+ name: 'announcement',
+ component: () => import('@/views/admin/announcement/index.vue')
+ },
+ // 轮播图管理
+ {
+ path: 'carousel',
+ name: 'carousel',
+ component: () => import('@/views/admin/carousel/index.vue')
+ },
+ // 用户管理
+ {
+ path: 'user',
+ name: 'user',
+ component: () => import('@/views/admin/user/user.vue')
+ },
+ // 博物馆信息管理
+ {
+ path: 'museumIntro',
+ name: 'museumIntro',
+ component: () => import('@/views/admin/museumIntro/index.vue')
+ },
+ // 用户详情
+ {
+ path: 'userInfo',
+ name: 'userInfo',
+ component: () => import('@/views/admin/user/userInfo.vue')
+ }
+ ]
+ },
+
+ // 游客端路径配置
+ {
+ path: '/tourist',
+ name: 'tourist',
+ component: HLayout,
+ redirect: '/tourist/home',
+ children: [
+ // 首页
+ {
+ path: 'home',
+ name: 'tHome',
+ component: () => import('@/views/tourist/home/index.vue')
+ },
+ // 藏品
+ {
+ path: 'relic',
+ name: 'tRelic',
+ component: () => import('@/views/tourist/relic/index.vue')
+ },
+ // 藏品详情
+ {
+ path: 'relic/detail/:relicId',
+ name: 'tRelicDetail',
+ component: () => import('@/views/tourist/relic/detail.vue')
+ },
+ // 预约
+ {
+ path: 'reservation',
+ name: 'tReservation',
+ component: () => import('@/views/tourist/reservation/reserve.vue')
+ },
+ // 我的预约
+ {
+ path: 'myReservation',
+ name: 'myReservation',
+ component: () => import('@/views/tourist/reservation/index.vue')
+ },
+ // 公告
+ {
+ path: 'announcement',
+ name: 'tAnnouncement',
+ component: () => import('@/views/tourist/announcement/index.vue')
+ },
+ // 我的收藏
+ {
+ path: 'myRelicCollection',
+ name: 'tRelicCollection',
+ component: () => import('@/views/tourist/itemCollection/index.vue')
+ },
+ // 用户详情
+ {
+ path: 'userInfo',
+ name: 'tUserInfo',
+ component: () => import('@/views/tourist/user/userInfo.vue')
+ }
+ ]
+ }
+ ],
+})
+
+router.beforeEach((to, from, next) => {
+ const type = Cookies.get('role')
+ const publicPaths = ['/login', '/register', '/tourist/home', '/tourist/relic', '/tourist/announcement']
+ if (publicPaths.includes(to.path) || to.path.startsWith('/tourist/relic/detail')) {
+ next()
+ return
+ }
+ if (!type && to.path === '/tourist/reservation') {
+ ElMessage && ElMessage.warning('请先登录')
+ next(false)
+ return
+ }
+ if (!type) {
+ next('/login')
+ return
+ }
+ next()
+})
+
+export default router
diff --git a/amms_front/src/views/admin/announcement/index.vue b/amms_front/src/views/admin/announcement/index.vue
new file mode 100644
index 0000000..c33bce0
--- /dev/null
+++ b/amms_front/src/views/admin/announcement/index.vue
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ 置顶
+ 普通
+
+
+
+
+ 显示
+ 隐藏
+
+
+
+
+ 设为置顶
+ 取消置顶
+ 隐藏
+ 显示
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/carousel/index.vue b/amms_front/src/views/admin/carousel/index.vue
new file mode 100644
index 0000000..b59b7b1
--- /dev/null
+++ b/amms_front/src/views/admin/carousel/index.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ —
+
+
+
+
+
+
+ 显示
+ 隐藏
+
+
+
+
+ 隐藏
+ 显示
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/itemCategory/index.vue b/amms_front/src/views/admin/itemCategory/index.vue
new file mode 100644
index 0000000..95c5678
--- /dev/null
+++ b/amms_front/src/views/admin/itemCategory/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/itemCollection/index.vue b/amms_front/src/views/admin/itemCollection/index.vue
new file mode 100644
index 0000000..eec7717
--- /dev/null
+++ b/amms_front/src/views/admin/itemCollection/index.vue
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/museumIntro/index.vue b/amms_front/src/views/admin/museumIntro/index.vue
new file mode 100644
index 0000000..75257a0
--- /dev/null
+++ b/amms_front/src/views/admin/museumIntro/index.vue
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.openTime }}
+
+
+
+
+ {{ scope.row.closeTime}}
+
+
+
+
+
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/relic/index.vue b/amms_front/src/views/admin/relic/index.vue
new file mode 100644
index 0000000..cd4d629
--- /dev/null
+++ b/amms_front/src/views/admin/relic/index.vue
@@ -0,0 +1,524 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.categoryInfo && scope.row.categoryInfo.name ? scope.row.categoryInfo.name : '—' }}
+
+
+
+
+
+ —
+
+
+
+
+
+
+
+
+
+ 热门
+ 普通
+
+
+
+
+ 显示
+ 隐藏
+
+
+
+
+
+
+ 设为热门
+ 取消热门
+ 隐藏
+ 显示
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 仅支持一张图片,大小≤10MB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/reservation/index.vue b/amms_front/src/views/admin/reservation/index.vue
new file mode 100644
index 0000000..038bd3e
--- /dev/null
+++ b/amms_front/src/views/admin/reservation/index.vue
@@ -0,0 +1,474 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formatDateYMD(scope.row.reservationTimeSlot && scope.row.reservationTimeSlot.date) }}
+
+
+
+
+
+
+
+
+
+ {{ statusText(scope.row.status) }}
+
+ {{ statusText(scope.row.status) }}
+
+
+
+
+
+ 审核
+ 详情
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
预约信息
+
+ {{ auditData.username }}
+ {{ auditData.nickname }}
+ {{ formatDateYMD(auditData.reservationTimeSlot && auditData.reservationTimeSlot.date) }}
+ {{ auditData.reserveTime }}
+ {{ auditData.totalVisitors }}
+
+
游客信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
预约信息
+
+ {{ detailData.username }}
+ {{ detailData.nickname }}
+ {{ formatDateYMD(detailData.reservationTimeSlot && detailData.reservationTimeSlot.date) }}
+ {{ detailData.reserveTime }}
+ {{ detailData.totalVisitors }}
+
+
+
+
+
游客信息
+
+
+
+
+
+
+
+
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/reservationTimeSlot/index.vue b/amms_front/src/views/admin/reservationTimeSlot/index.vue
new file mode 100644
index 0000000..7ee43f3
--- /dev/null
+++ b/amms_front/src/views/admin/reservationTimeSlot/index.vue
@@ -0,0 +1,733 @@
+
+
+
+
+ 新增时段
+
+
+ {{ viewMode === 'calendar' ? '列表视图' : '日历视图' }}
+
+
+
+
+
+
+
+
+
+
+ {{ data.day.split('-').slice(-1)[0] }}
+
+
+ 不可预约
+
+
+
+
+
+ {{ formatTime(slot.startTime) }}-{{ formatTime(slot.endTime) }}
+
+
+
+ {{ slot.currentPeople }}/{{ slot.maxPeople }}
+
+
+
+
+
+
+
+
+ 暂无时段
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.date, 'yyyy-MM-DD') }}
+
+
+
+
+ {{ formatTime(scope.row.startTime) }}
+
+
+
+
+ {{ formatTime(scope.row.endTime) }}
+
+
+
+
+
+
+
+ {{ statusMap[scope.row.status] || '未设置' }}
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/reservationVisitor/index.vue b/amms_front/src/views/admin/reservationVisitor/index.vue
new file mode 100644
index 0000000..194b299
--- /dev/null
+++ b/amms_front/src/views/admin/reservationVisitor/index.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.verifyTime, 'yyyy-MM-DD') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/statisticalAnalysis/index.vue b/amms_front/src/views/admin/statisticalAnalysis/index.vue
new file mode 100644
index 0000000..111cd3c
--- /dev/null
+++ b/amms_front/src/views/admin/statisticalAnalysis/index.vue
@@ -0,0 +1,241 @@
+
+
+
+
+ 用户数
{{ kpi.users }}
+
+
+ 藏品数
{{ kpi.relics }}
+
+
+ 公告数
{{ kpi.announcements }}
+
+
+ 预约数
{{ kpi.reservations }}
+
+
+ 游客数
{{ kpi.visitors }}
+
+
+ 时段数
{{ kpi.timeSlots }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/admin/tourist/index.vue b/amms_front/src/views/admin/tourist/index.vue
new file mode 100644
index 0000000..967d252
--- /dev/null
+++ b/amms_front/src/views/admin/tourist/index.vue
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/announcement/index.vue b/amms_front/src/views/tourist/announcement/index.vue
new file mode 100644
index 0000000..a11f6ae
--- /dev/null
+++ b/amms_front/src/views/tourist/announcement/index.vue
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
置顶公告
+
+
+
+ {{ a.title }}
+
+
{{ formatDate(a.createTime) }}
+
+
+
+
公告列表
+
+
+
+ {{ a.title }}
+
+
{{ formatDate( a.createTime) }}
+
+
+
+
+
+
+
+
{{ detailData.title }}
+
发布时间:{{ formatDate(detailData.updateTime || detailData.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/carousel/index.vue b/amms_front/src/views/tourist/carousel/index.vue
new file mode 100644
index 0000000..c8391c9
--- /dev/null
+++ b/amms_front/src/views/tourist/carousel/index.vue
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/home/index.vue b/amms_front/src/views/tourist/home/index.vue
new file mode 100644
index 0000000..39d50ee
--- /dev/null
+++ b/amms_front/src/views/tourist/home/index.vue
@@ -0,0 +1,512 @@
+
+
+
+
+
+
+
{{ item.title }}
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+
开馆时间
+
{{ formatTime(museumIntro?.openTime) }}
+
+
—
+
+
闭馆时间
+
{{ formatTime(museumIntro?.closeTime) }}
+
+
+
+
+
+
+
热门藏品
+
+
+
+
+
{{ item.name }}
+
{{ item.categoryInfo && item.categoryInfo.name ? item.categoryInfo.name : '—' }}
+
+
+
+
+
+
+
公告
+
+
+
置顶{{ a.title }}
+
{{ formatDateYMD(a.updateTime || a.createTime) }}
+
+
+
+
+
+
+
+
+
{{ annDetailData.title }}
+
发布时间:{{ formatDateYMD(annDetailData.updateTime || annDetailData.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/itemCategory/index.vue b/amms_front/src/views/tourist/itemCategory/index.vue
new file mode 100644
index 0000000..7462f0c
--- /dev/null
+++ b/amms_front/src/views/tourist/itemCategory/index.vue
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/itemCollection/index.vue b/amms_front/src/views/tourist/itemCollection/index.vue
new file mode 100644
index 0000000..6201951
--- /dev/null
+++ b/amms_front/src/views/tourist/itemCollection/index.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
{{ ic.relic && ic.relic.name ? ic.relic.name : ('#' + ic.itemId) }}
+
取消收藏
+
+
+ {{ ic.relic && ic.relic.categoryInfo && ic.relic.categoryInfo.name ? ic.relic.categoryInfo.name : '—' }}
+ {{ ic.relic.material }}
+ {{ ic.relic.age }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/museumIntro/index.vue b/amms_front/src/views/tourist/museumIntro/index.vue
new file mode 100644
index 0000000..5f6fc39
--- /dev/null
+++ b/amms_front/src/views/tourist/museumIntro/index.vue
@@ -0,0 +1,328 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.openTime, 'yyyy-MM-DD') }}
+
+
+
+
+ {{ parseTime(scope.row.closeTime, 'yyyy-MM-DD') }}
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/relic/index.vue b/amms_front/src/views/tourist/relic/index.vue
new file mode 100644
index 0000000..7cea5f8
--- /dev/null
+++ b/amms_front/src/views/tourist/relic/index.vue
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+ {{ item.categoryInfo && item.categoryInfo.name ? item.categoryInfo.name : (item.categoryId || '—') }}
+ {{ item.material }}
+ {{ item.age }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/reservation/index.vue b/amms_front/src/views/tourist/reservation/index.vue
new file mode 100644
index 0000000..b0804ac
--- /dev/null
+++ b/amms_front/src/views/tourist/reservation/index.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+ {{ formatDateYMD(scope.row.reservationTimeSlot && scope.row.reservationTimeSlot.date) }}
+
+
+
+
+
+
+
+ {{ statusText(scope.row.status) }}
+
+ {{ statusText(scope.row.status) }}
+
+
+
+
+ 详情
+ 取消预约
+
+
+
+
+
+
+
+
+
+
+
预约信息
+
+ {{ formatDateYMD(detailData.reservationTimeSlot && detailData.reservationTimeSlot.date) }}
+ {{ detailData.reserveTime }}
+ {{ detailData.totalVisitors }}
+
+
+
+
+
游客信息
+
+
+
+
+
+
+
+
+ {{ Number(scope.row.verifyStatus) === 1 ? '已验证' : '未验证' }}
+
+
+
+
+
+
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/reservationTimeSlot/index.vue b/amms_front/src/views/tourist/reservationTimeSlot/index.vue
new file mode 100644
index 0000000..b300ef1
--- /dev/null
+++ b/amms_front/src/views/tourist/reservationTimeSlot/index.vue
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.date, 'yyyy-MM-DD') }}
+
+
+
+
+ {{ parseTime(scope.row.startTime, 'yyyy-MM-DD') }}
+
+
+
+
+ {{ parseTime(scope.row.endTime, 'yyyy-MM-DD') }}
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/amms_front/src/views/tourist/reservationVisitor/index.vue b/amms_front/src/views/tourist/reservationVisitor/index.vue
new file mode 100644
index 0000000..194b299
--- /dev/null
+++ b/amms_front/src/views/tourist/reservationVisitor/index.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.verifyTime, 'yyyy-MM-DD') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/amms/controller/ItemCategoryController.java b/src/main/java/com/amms/controller/ItemCategoryController.java
new file mode 100644
index 0000000..688a1a3
--- /dev/null
+++ b/src/main/java/com/amms/controller/ItemCategoryController.java
@@ -0,0 +1,72 @@
+package com.amms.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.amms.domain.vo.Result;
+import com.amms.domain.ItemCategory;
+import com.amms.service.IItemCategoryService;
+
+import java.util.List;
+
+/**
+ * 藏品分类Controller
+ */
+@RestController
+@RequestMapping("/itemCategory")
+public class ItemCategoryController {
+
+ @Autowired
+ private IItemCategoryService itemCategoryService;
+
+ /**
+ * 查询藏品分类列表
+ */
+ @GetMapping("/list")
+ public PageInfo list(ItemCategory itemCategory, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
+ PageHelper.startPage(pageNum, pageSize);
+ List itemCategorys = itemCategoryService.selectItemCategoryList(itemCategory);
+ return new PageInfo(itemCategorys);
+ }
+
+ /**
+ * 查询全部藏品分类列表
+ */
+ @GetMapping("/listAll")
+ public List listAll(ItemCategory itemCategory) {
+ return itemCategoryService.selectItemCategoryList(itemCategory);
+ }
+
+ /**
+ * 获取藏品分类详细信息
+ */
+ @GetMapping(value = "/info/{id}")
+ public Result getInfo(@PathVariable("id") Long id) {
+ return Result.success(itemCategoryService.selectItemCategoryById(id));
+ }
+
+ /**
+ * 新增藏品分类
+ */
+ @PostMapping("/add")
+ public Result add(@RequestBody ItemCategory itemCategory) {
+ return itemCategoryService.insertItemCategory(itemCategory) > 0 ? Result.success("新增成功") : Result.error("新增失败");
+ }
+
+ /**
+ * 修改藏品分类
+ */
+ @PutMapping
+ public Result update(@RequestBody ItemCategory itemCategory) {
+ return itemCategoryService.updateItemCategory(itemCategory) > 0 ? Result.success("修改成功") : Result.error("修改失败");
+ }
+
+ /**
+ * 删除藏品分类
+ */
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable Long id) {
+ return itemCategoryService.deleteItemCategoryById(id) > 0 ? Result.success("删除成功") : Result.error("删除失败");
+ }
+}
diff --git a/src/main/java/com/amms/domain/ItemCategory.java b/src/main/java/com/amms/domain/ItemCategory.java
new file mode 100644
index 0000000..d774cf7
--- /dev/null
+++ b/src/main/java/com/amms/domain/ItemCategory.java
@@ -0,0 +1,108 @@
+package com.amms.domain;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 藏品分类对象 item_category
+ */
+public class ItemCategory {
+
+ /** 分类ID */
+ private Long id;
+
+ /** 分类名称 */
+ private String name;
+
+ /** 创建者 */
+ private Long creator;
+
+ /** 更新者 */
+ private Long updater;
+
+ /** 创建时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /** 更新时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /** 备注*/
+ private String remark;
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setCreator(Long creator) {
+ this.creator = creator;
+ }
+
+ public Long getCreator() {
+ return creator;
+ }
+
+
+ public void setUpdater(Long updater) {
+ this.updater = updater;
+ }
+
+ public Long getUpdater() {
+ return updater;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ @Override
+ public String toString() {
+ return "ItemCategory{" +
+ "id=" + id +
+ ", name=" + name +
+ ", creator=" + creator +
+ ", createTime=" + createTime +
+ ", updater=" + updater +
+ ", updateTime=" + updateTime +
+ ", remark=" + remark +
+ '}';
+ }
+}
diff --git a/src/main/java/com/amms/mapper/ItemCategoryMapper.java b/src/main/java/com/amms/mapper/ItemCategoryMapper.java
new file mode 100644
index 0000000..dfe827f
--- /dev/null
+++ b/src/main/java/com/amms/mapper/ItemCategoryMapper.java
@@ -0,0 +1,52 @@
+package com.amms.mapper;
+
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import com.amms.domain.ItemCategory;
+
+/**
+ * 藏品分类Mapper接口
+ */
+@Mapper
+public interface ItemCategoryMapper {
+ /**
+ * 查询藏品分类
+ *
+ * @param id 藏品分类主键
+ * @return 藏品分类
+ */
+ public ItemCategory selectItemCategoryById(Long id);
+
+ /**
+ * 查询藏品分类列表
+ *
+ * @param itemCategory 藏品分类
+ * @return 藏品分类集合
+ */
+ public List selectItemCategoryList(ItemCategory itemCategory);
+
+ /**
+ * 新增藏品分类
+ *
+ * @param itemCategory 藏品分类
+ * @return 结果
+ */
+ public int insertItemCategory(ItemCategory itemCategory);
+
+ /**
+ * 修改藏品分类
+ *
+ * @param itemCategory 藏品分类
+ * @return 结果
+ */
+ public int updateItemCategory(ItemCategory itemCategory);
+
+ /**
+ * 删除藏品分类
+ *
+ * @param id 藏品分类主键
+ * @return 结果
+ */
+ public int deleteItemCategoryById(Long id);
+
+}
diff --git a/src/main/java/com/amms/service/IAnnouncementService.java b/src/main/java/com/amms/service/IAnnouncementService.java
new file mode 100644
index 0000000..44ad57d
--- /dev/null
+++ b/src/main/java/com/amms/service/IAnnouncementService.java
@@ -0,0 +1,68 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.Announcement;
+
+/**
+ * 公告Service接口
+ */
+public interface IAnnouncementService {
+ /**
+ * 查询公告列表
+ *
+ * @param announcement 公告
+ * @return 公告集合
+ */
+ public List selectAnnouncementList(Announcement announcement);
+
+ /**
+ * 查询公告
+ *
+ * @param id 公告主键
+ * @return 公告
+ */
+ public Announcement selectAnnouncementById(Long id);
+
+ /**
+ * 新增公告
+ *
+ * @param announcement 公告
+ * @return 结果
+ */
+ public int insertAnnouncement(Announcement announcement);
+
+ /**
+ * 修改公告
+ *
+ * @param announcement 公告
+ * @return 结果
+ */
+ public int updateAnnouncement(Announcement announcement);
+
+ /**
+ * 删除公告信息
+ *
+ * @param id 公告主键
+ * @return 结果
+ */
+ public int deleteAnnouncementById(Long id);
+
+ /**
+ * 设为置顶(保证全局仅一个置顶)
+ * @param id 公告ID
+ * @return 结果
+ */
+ public int setTop(Long id);
+
+ /**
+ * 查询置顶公告(显示状态)
+ * @return 置顶公告列表
+ */
+ public List selectTopAnnouncements();
+
+ /**
+ * 查询普通公告(非置顶且显示,时间倒序)
+ * @return 普通公告列表
+ */
+ public List selectNormalAnnouncements(Announcement filter);
+}
diff --git a/src/main/java/com/amms/service/ICarouselService.java b/src/main/java/com/amms/service/ICarouselService.java
new file mode 100644
index 0000000..e997711
--- /dev/null
+++ b/src/main/java/com/amms/service/ICarouselService.java
@@ -0,0 +1,49 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.Carousel;
+
+/**
+ * 轮播图Service接口
+ */
+public interface ICarouselService {
+ /**
+ * 查询轮播图列表
+ *
+ * @param carousel 轮播图
+ * @return 轮播图集合
+ */
+ public List selectCarouselList(Carousel carousel);
+
+ /**
+ * 查询轮播图
+ *
+ * @param id 轮播图主键
+ * @return 轮播图
+ */
+ public Carousel selectCarouselById(Long id);
+
+ /**
+ * 新增轮播图
+ *
+ * @param carousel 轮播图
+ * @return 结果
+ */
+ public int insertCarousel(Carousel carousel);
+
+ /**
+ * 修改轮播图
+ *
+ * @param carousel 轮播图
+ * @return 结果
+ */
+ public int updateCarousel(Carousel carousel);
+
+ /**
+ * 删除轮播图信息
+ *
+ * @param id 轮播图主键
+ * @return 结果
+ */
+ public int deleteCarouselById(Long id);
+}
diff --git a/src/main/java/com/amms/service/IItemCategoryService.java b/src/main/java/com/amms/service/IItemCategoryService.java
new file mode 100644
index 0000000..a0a5b0b
--- /dev/null
+++ b/src/main/java/com/amms/service/IItemCategoryService.java
@@ -0,0 +1,49 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.ItemCategory;
+
+/**
+ * 藏品分类Service接口
+ */
+public interface IItemCategoryService {
+ /**
+ * 查询藏品分类列表
+ *
+ * @param itemCategory 藏品分类
+ * @return 藏品分类集合
+ */
+ public List selectItemCategoryList(ItemCategory itemCategory);
+
+ /**
+ * 查询藏品分类
+ *
+ * @param id 藏品分类主键
+ * @return 藏品分类
+ */
+ public ItemCategory selectItemCategoryById(Long id);
+
+ /**
+ * 新增藏品分类
+ *
+ * @param itemCategory 藏品分类
+ * @return 结果
+ */
+ public int insertItemCategory(ItemCategory itemCategory);
+
+ /**
+ * 修改藏品分类
+ *
+ * @param itemCategory 藏品分类
+ * @return 结果
+ */
+ public int updateItemCategory(ItemCategory itemCategory);
+
+ /**
+ * 删除藏品分类信息
+ *
+ * @param id 藏品分类主键
+ * @return 结果
+ */
+ public int deleteItemCategoryById(Long id);
+}
diff --git a/src/main/java/com/amms/service/IItemCollectionService.java b/src/main/java/com/amms/service/IItemCollectionService.java
new file mode 100644
index 0000000..86a0f08
--- /dev/null
+++ b/src/main/java/com/amms/service/IItemCollectionService.java
@@ -0,0 +1,49 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.ItemCollection;
+
+/**
+ * 收藏Service接口
+ */
+public interface IItemCollectionService {
+ /**
+ * 查询收藏列表
+ *
+ * @param itemCollection 收藏
+ * @return 收藏集合
+ */
+ public List selectItemCollectionList(ItemCollection itemCollection);
+
+ /**
+ * 查询收藏
+ *
+ * @param id 收藏主键
+ * @return 收藏
+ */
+ public ItemCollection selectItemCollectionById(Long id);
+
+ /**
+ * 新增收藏
+ *
+ * @param itemCollection 收藏
+ * @return 结果
+ */
+ public int insertItemCollection(ItemCollection itemCollection);
+
+ /**
+ * 修改收藏
+ *
+ * @param itemCollection 收藏
+ * @return 结果
+ */
+ public int updateItemCollection(ItemCollection itemCollection);
+
+ /**
+ * 删除收藏信息
+ *
+ * @param id 收藏主键
+ * @return 结果
+ */
+ public int deleteItemCollectionById(Long id);
+}
diff --git a/src/main/java/com/amms/service/IMuseumIntroService.java b/src/main/java/com/amms/service/IMuseumIntroService.java
new file mode 100644
index 0000000..3ac1826
--- /dev/null
+++ b/src/main/java/com/amms/service/IMuseumIntroService.java
@@ -0,0 +1,49 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.MuseumIntro;
+
+/**
+ * 博物馆简介Service接口
+ */
+public interface IMuseumIntroService {
+ /**
+ * 查询博物馆简介列表
+ *
+ * @param museumIntro 博物馆简介
+ * @return 博物馆简介集合
+ */
+ public List selectMuseumIntroList(MuseumIntro museumIntro);
+
+ /**
+ * 查询博物馆简介
+ *
+ * @param museumName 博物馆简介主键
+ * @return 博物馆简介
+ */
+ public MuseumIntro selectMuseumIntroByMuseumName(String museumName);
+
+ /**
+ * 新增博物馆简介
+ *
+ * @param museumIntro 博物馆简介
+ * @return 结果
+ */
+ public int insertMuseumIntro(MuseumIntro museumIntro);
+
+ /**
+ * 修改博物馆简介
+ *
+ * @param museumIntro 博物馆简介
+ * @return 结果
+ */
+ public int updateMuseumIntro(MuseumIntro museumIntro);
+
+ /**
+ * 删除博物馆简介信息
+ *
+ * @param museumName 博物馆简介主键
+ * @return 结果
+ */
+ public int deleteMuseumIntroByMuseumName(String museumName);
+}
diff --git a/src/main/java/com/amms/service/IReservationVisitorService.java b/src/main/java/com/amms/service/IReservationVisitorService.java
new file mode 100644
index 0000000..85783ec
--- /dev/null
+++ b/src/main/java/com/amms/service/IReservationVisitorService.java
@@ -0,0 +1,57 @@
+package com.amms.service;
+
+import java.util.List;
+import com.amms.domain.ReservationVisitor;
+
+/**
+ * 游客预约明细Service接口
+ */
+public interface IReservationVisitorService {
+ /**
+ * 查询游客预约明细列表
+ *
+ * @param reservationVisitor 游客预约明细
+ * @return 游客预约明细集合
+ */
+ public List selectReservationVisitorList(ReservationVisitor reservationVisitor);
+
+ /**
+ * 查询游客预约明细
+ *
+ * @param id 游客预约明细主键
+ * @return 游客预约明细
+ */
+ public ReservationVisitor selectReservationVisitorById(Long id);
+
+ /**
+ * 新增游客预约明细
+ *
+ * @param reservationVisitor 游客预约明细
+ * @return 结果
+ */
+ public int insertReservationVisitor(ReservationVisitor reservationVisitor);
+
+ /**
+ * 修改游客预约明细
+ *
+ * @param reservationVisitor 游客预约明细
+ * @return 结果
+ */
+ public int updateReservationVisitor(ReservationVisitor reservationVisitor);
+
+ /**
+ * 删除游客预约明细信息
+ *
+ * @param id 游客预约明细主键
+ * @return 结果
+ */
+ public int deleteReservationVisitorById(Long id);
+
+ /**
+ * 根据预约ID批量删除游客预约明细信息
+ *
+ * @param reservationId 预约主表ID
+ * @return 结果
+ */
+ public int deleteReservationVisitorsByReservationId(Long reservationId);
+}
diff --git a/src/main/java/com/amms/service/ISysUserService.java b/src/main/java/com/amms/service/ISysUserService.java
new file mode 100644
index 0000000..6d1e5da
--- /dev/null
+++ b/src/main/java/com/amms/service/ISysUserService.java
@@ -0,0 +1,65 @@
+package com.amms.service;
+
+import com.amms.domain.SysUser;
+import com.amms.domain.dto.LoginParam;
+import com.amms.domain.vo.Result;
+
+import java.util.List;
+
+public interface ISysUserService {
+
+ /**
+ * 登录方法
+ * @param loginParam 登录参数
+ * @return
+ */
+ Result login(LoginParam loginParam);
+
+ /**
+ * 查询用户列表
+ * @param sysUser 用户
+ * @return 用户
+ */
+ List selectSysUserList(SysUser sysUser);
+
+ /**
+ * 查询用户
+ * @param username 用户
+ * @return 用户
+ */
+ SysUser selectByUsername(String username);
+
+ /**
+ * 查询用户详情
+ * @param id 用户
+ * @return 用户
+ */
+ SysUser selectById(Long id);
+
+ /**
+ * 新增用户
+ *
+ * @param sysUser 用户
+ * @return 结果
+ */
+ int insertSysUser(SysUser sysUser);
+
+ /**
+ * 修改用户
+ *
+ * @param sysUser 用户
+ * @return 结果
+ */
+ int updateSysUser(SysUser sysUser);
+
+ /**
+ * 删除用户
+ *
+ * @param id 用户主键
+ * @return 结果
+ */
+ int deleteSysUserById(Long id);
+
+ int registerTourist(SysUser sysUser);
+
+}
diff --git a/src/main/resources/mapper/ItemCategoryMapper.xml b/src/main/resources/mapper/ItemCategoryMapper.xml
new file mode 100644
index 0000000..d64b64e
--- /dev/null
+++ b/src/main/resources/mapper/ItemCategoryMapper.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, name, creator, create_time, updater, update_time, remark from item_category
+
+
+
+
+
+
+
+ insert into item_category
+
+ name,
+ creator,
+ create_time,
+ updater,
+ update_time,
+ remark,
+
+
+ #{name},
+ #{creator},
+ #{createTime},
+ #{updater},
+ #{updateTime},
+ #{remark},
+
+
+
+
+ update item_category
+
+ name = #{name},
+ creator = #{creator},
+ create_time = #{createTime},
+ updater = #{updater},
+ update_time = #{updateTime},
+ remark = #{remark},
+
+ where id = #{id}
+
+
+
+ delete from item_category where id = #{id}
+
+