Browse Source

lihuilin/feature-20250718094329-25周年庆后台
lihuilin 4 weeks ago
parent
commit
a9e113b4ac
  1. 1
      activitylink/src/router/index.js
  2. 7
      activitylink/src/utils/request.js
  3. 21
      activitylink/src/views/homePage.vue
  4. 2
      activitylink/src/views/zhongchou/activity/index.vue
  5. 177
      activitylink/src/views/zhongchou/index.vue
  6. 3
      activitylink/src/views/zhongchou/level/index.vue

1
activitylink/src/router/index.js

@ -1,5 +1,6 @@
import { ElMessage } from 'element-plus';
import { createRouter, createWebHistory } from 'vue-router'
import { ElMessageBox, ElMessage } from 'element-plus';
const routes = [
{
path: '/',

7
activitylink/src/utils/request.js

@ -1,8 +1,11 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import { getToken } from '@/utils/auth'
import { getToken , removeToken} from '@/utils/auth'
// import { useRouter } from "vue-router";
import router from '@/router'
// 创建基础实例
// const router = useRouter()
const service = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API,
timeout: 10000
@ -25,7 +28,7 @@ service.interceptors.request.use(
}
)
// 响应拦截器(简化版)
// 响应拦截器
service.interceptors.response.use(
response => response.data,
error => {

21
activitylink/src/views/homePage.vue

@ -3,7 +3,7 @@
<div class="login-container2">
<div class="login-box">
<h2>登录</h2>
<form @submit.prevent="login">
<form @submit.prevent="login" class="form-container">
<div class="input-group">
<label for="username">用户名</label>
<input type="text" id="username" v-model="username" required>
@ -12,7 +12,10 @@
<label for="password">密码</label>
<input type="password" id="password" v-model="password" required>
</div>
<button type="submit" @click="loginHandler">登录</button>
<div class="button-group">
<button type="submit" @click="loginHandler">登录</button>
<!-- <button type="button" @click="registerHandler">注册</button> -->
</div>
</form>
</div>
</div>
@ -36,7 +39,9 @@ const loginHandler = async () => {
password: password.value
})
// router.push('/zhongchou/mainimg')
if (response.code === 200 ) {
// console.log(response)
if (response.code == 200 ) {
const token = response.data.token
console.log('登录时候的token',token)
localStorage.setItem('token', token)
@ -116,6 +121,16 @@ h2 {
border-radius: 4px;
}
.form-container .button-group {
display: flex;
justify-content: space-between; /* 平分空间 */
gap: 1rem; /* 按钮之间的间距 */
}
.form-container .button-group button {
flex: 1; /* 让按钮自动扩展以填充容器 */
}
button {
width: 100%;
padding: 0.75rem;

2
activitylink/src/views/zhongchou/activity/index.vue

@ -190,8 +190,10 @@ const getActivityId = () => {
const fetchMarketList = async () => {
try {
const response = await getMarket()
console.log('市场列表:', response.data)
if (response.code === 200) {
marketList.value = response.data
console.log('市场列表:', response.data)
} else {
console.error('获取市场列表失败:', response.message)
}

177
activitylink/src/views/zhongchou/index.vue

@ -1,3 +1,4 @@
<script setup>
import {
Promotion,
@ -19,101 +20,98 @@ const handleClose = (key, keyPath) => {
// console.log(':', key, keyPath)
}
const handleLogout = () => {
ElMessageBox.confirm('确定要退出登录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
//
const response = await adminlogout(
{
token: localStorage.getItem('token')
}
)
if (response.code === 200) {
router.push('/homePage');
localStorage.removeItem('token');
ElMessage.success('退出成功')
}
else {
ElMessage.error('退出失败')
}
}).catch(() => {
//
ElMessage.info('已取消退出');
router.back();
});
};
// const handleLogout = () => {
// ElMessageBox.confirm('退', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(async () => {
// try {
// const response = await adminlogout({
// token: localStorage.getItem('token')
// });
// console.log('response:', response);
// // 访 response.data.code
// if (response.code == 200) {
// ElMessage.success('退');
// localStorage.removeItem('token');
// router.push('/homePage');
// } else {
// ElMessage.error(response.data.message || '退');
// }
// } catch (error) {
// ElMessage.error('');
// console.error('退:', error);
// }
// }).catch(() => {
// router.back()
// ElMessage.info('退');
// });
// };
</script>
<template>
<div class="common-layout">
<el-container class="el-container">
<!-- 左侧菜单 -->
<el-aside class="aside">
<el-menu active-text-color="#ffd04b" background-color="#545c64" class="el-menu-vertical-demo"
default-active="/index" text-color="#fff" @open="handleOpen" @close="handleClose" style="height: 100%;"
router>
<el-menu-item index="/zhongchou/mainimg">
<el-icon>
<Promotion />
</el-icon>
<span>后台管理系统</span>
</el-menu-item>
<el-menu-item index="/zhongchou/levelManagement">
<el-icon>
<location />
</el-icon>
<span>等级管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/giftManagement">
<el-icon><icon-menu /></el-icon>
<span>礼品管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/winningManagement">
<el-icon>
<document />
</el-icon>
<span>中奖管理</span>
</el-menu-item>
<el-container class="el-container">
<!-- 左侧菜单 -->
<el-aside class="aside">
<el-menu
active-text-color="#ffd04b"
background-color="#545c64"
class="el-menu-vertical-demo"
default-active="/index"
text-color="#fff"
@open="handleOpen"
@close="handleClose"
style="height: 100%;"
router
>
<el-menu-item index="/zhongchou/mainimg" >
<el-icon><Promotion /></el-icon>
<span>后台管理系统</span>
</el-menu-item>
<el-menu-item index="/zhongchou/levelManagement" >
<el-icon><location /></el-icon>
<span>等级管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/giftManagement" >
<el-icon><icon-menu /></el-icon>
<span>礼品管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/winningManagement">
<el-icon><document /></el-icon>
<span>中奖管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/activityManagement">
<el-icon><HelpFilled /></el-icon>
<span>活动管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/activityManagement">
<el-icon>
<HelpFilled />
</el-icon>
<span>活动管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/userManagement">
<el-icon><User /></el-icon>
<span>管理员管理</span>
</el-menu-item>
<el-menu-item index="/zhongchou/userManagement">
<el-icon>
<User />
</el-icon>
<span>用户管理</span>
</el-menu-item>
<!--
<el-menu-item index="/zhongchou/logout" @click="handleLogout">
<el-icon>
<Setting />
</el-icon>
<span>退出登录</span>
</el-menu-item> -->
</el-menu>
</el-aside>
<el-header class="el-header">
<el-button type="primary" @click="handleLogout">退出登录</el-button>
</el-header>
<el-main class="el-main">
<router-view></router-view>
</el-main>
</el-container>
</el-menu>
</el-aside>
<el-main class="el-main">
<router-view></router-view>
</el-main>
</el-container>
</div>
</template>
<style scoped>
a {
color: white;
text-decoration: none;
}
.aside {
width: 220px;
border-right: 1px solid #ccc;
@ -133,15 +131,8 @@ const handleLogout = () => {
}
.el-main {
flex: 1;
/* 关键:自动撑满剩余空间 */
flex: 1; /* 关键:自动撑满剩余空间 */
padding: 20px;
overflow: auto;
}
.el-header {
position: fixed;
right: 20px;
top: 20px;
}
</style>

3
activitylink/src/views/zhongchou/level/index.vue

@ -138,8 +138,9 @@ const getLevels = async () => {
pageNum: pagination.value.pageNum,
pageSize: pagination.value.pageSize
})
console.log(res)
if (res.code === 200) {
console.log(res.data)
tableData.value = res.data.list
pagination.value.total = res.data.total
} else {

Loading…
Cancel
Save