improve admin details

This commit is contained in:
xiaomlove
2021-04-30 01:27:29 +08:00
parent 164bc80c4e
commit 654419deec
12 changed files with 237 additions and 51 deletions

View File

@@ -38,9 +38,6 @@ import api from "../utils/api";
export default {
name: 'Header',
props: {
userInfo: {
type: Object
}
},
setup(props, context) {
const router = useRouter()
@@ -54,14 +51,10 @@ export default {
onMounted(async () => {
console.log("Head onMounted!")
console.log(props)
// let userInfo = localGet(userInfoKey);
// if (userInfo) {
// state.userInfo = userInfo;
// } else {
// let res = await api.getUserBase()
// state.userInfo = res.data
// localSet(userInfoKey, res.data)
// }
let userInfo = localGet(userInfoKey);
if (userInfo) {
state.userInfo = userInfo;
}
})
const logout = () => {
api.logout().then(() => {
@@ -74,13 +67,9 @@ export default {
router.back()
}
router.afterEach((to) => {
console.log("Head afterEach to", to)
// console.log("Head afterEach to", to)
const { id } = to.query
state.name = pathMap[to.name]
if (id && to.name == 'add') {
state.name = '编辑商品'
}
state.hasBack = ['level2', 'level3', 'order_detail'].includes(to.name)
})
return {
...toRefs(state),

View File

@@ -1,6 +1,7 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import {localGet} from "./index";
import {localGet} from "./index"
import router from '../router/index'
axios.defaults.baseURL = 'http://nexus-php8.tinyhd.net/api'
axios.defaults.withCredentials = true
@@ -9,8 +10,14 @@ axios.defaults.headers['Content-Type'] = 'application/json'
axios.defaults.headers['Accept'] = 'application/json'
axios.defaults.headers['Authorization'] = 'Bearer ' + localGet('token')
// 请求拦截器,内部根据返回值,重新组装,统一管理。
// axios.interceptors.request.use(config => {
// // console.log('before request', config)
// config.headers['Authorization'] = 'Bearer ' + localGet('token')
// return config
// })
axios.interceptors.response.use(res => {
console.log(res)
if (typeof res.data !== 'object') {
ElMessage.error('Server Error 1')
return Promise.reject(res)
@@ -21,7 +28,14 @@ axios.interceptors.response.use(res => {
}
return res.data
}, error => {
ElMessage.error(error.response.data.msg || 'Server Error 2')
let res = error.response;
console.log(res)
if (res.status == 401) {
router.push({
name: 'login'
})
}
ElMessage.error(res.data.msg || 'Server Error 2')
return Promise.reject(error)
})

View File

@@ -122,6 +122,7 @@ export default {
const state = useTable()
onMounted(() => {
console.log('ExamTable onMounted')
fetchTableData()
})
// 获取轮播图列表

View File

@@ -5,15 +5,15 @@
<img class="logo" src="http://demo.nexusphp.org/favicon.ico" />
<div class="name">
<div class="title">NexusPHP</div>
<div class="tips">Management system - v1.6</div>
<div class="tips">Management system</div>
</div>
</div>
<el-form label-position="top" :rules="rules" :model="ruleForm" ref="loginForm" class="login-form">
<el-form-item label="Username" prop="username">
<el-input type="text" v-model.trim="ruleForm.username" autocomplete="off"></el-input>
<el-input type="text" v-model.trim="ruleForm.username" autocomplete="off" @keyup.enter="submitForm"></el-input>
</el-form-item>
<el-form-item label="Password" prop="password">
<el-input type="password" v-model.trim="ruleForm.password" autocomplete="off"></el-input>
<el-input type="password" v-model.trim="ruleForm.password" autocomplete="off" @keyup.enter="submitForm"></el-input>
</el-form-item>
<el-form-item style="margin-top: 50px">
<!-- <div style="color: #333">登录表示您已同意<a>服务条款</a></div>-->
@@ -56,8 +56,12 @@ export default {
loginForm.value.validate((valid) => {
if (valid) {
api.login(state.ruleForm).then(res => {
console.log(res)
localSet('token', res.data.token)
router.push({name: 'dashboard'})
// api.getUserBase().then(res => {
// localSet('userInfo', res.data)
// })
})
} else {
console.log('error submit!!')

View File

@@ -35,8 +35,8 @@
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取 消</el-button>
<el-button type="primary" @click="handleSubmit">确 定</el-button>
<el-button @click="visible = false">Cancel</el-button>
<el-button type="primary" @click="handleSubmit">Save</el-button>
</span>
</template>
</el-dialog>

View File

@@ -118,6 +118,7 @@ export default {
const state = useTable()
onMounted(() => {
console.log('UserTable onMounted');
fetchTableData()
})
const fetchTableData = async () => {