Signed-off-by: skyselang <215817969@qq.com>
This commit is contained in:
skyselang 2023-02-01 15:48:09 +08:00
parent bbaee61961
commit 1e119bab84
23 changed files with 117 additions and 107 deletions

View File

@ -19,9 +19,7 @@ yylAdmin是一个基于ThinkPHP6和Vue2极简后台管理系统只有登录
- 内容管理
- 文件管理
- 设置管理
- 权限管理
- 系统管理
- 数据库管理
- 系统管理:权限管理...
- 代码生成器
- Excel导出导入
- 接口文档与调试...
@ -42,9 +40,9 @@ yylAdmin是一个基于ThinkPHP6和Vue2极简后台管理系统只有登录
- PHP >= 7.2.5
安装 fileinfo、redis 扩展
开启 putenv、proc_open 函数
- MySQL >= 5.5
- MySQL >= 5.6
- Redis
- node >= 12.0.0
- node >= 14.0.0
- npm >= 6.9.0
### 安装后端

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
const url = '/admin/content.Category/'
/**
* 内容分类列表
* @param {array} data 请求数据
* @param {array} params 请求参数
*/
export function list(params) {
return request({

View File

@ -423,7 +423,7 @@ import Pagination from '@/components/Pagination'
import clip from '@/utils/clipboard'
import store from '@/store'
import { arrayColumn } from '@/utils/index'
import { getUserToken } from '@/utils/auth'
import { getAdminToken } from '@/utils/auth'
import { list, info, add, edit, dele, editgroup, edittag, edittype, editdomain, disable, recycle, recycleReco, recycleDele } from '@/api/file/file'
import { info as groupInfo, add as groupAdd, edit as groupEdit, dele as groupDele } from '@/api/file/group'
import { info as tagInfo, add as tagAdd, edit as tagEdit, dele as tagDele } from '@/api/file/tag'
@ -563,7 +563,7 @@ export default {
this.list()
const tokenType = store.getters.tokenType
const tokenName = store.getters.tokenName
const tokenValue = getUserToken()
const tokenValue = getAdminToken()
if (tokenType === 'header') {
const uploadHeaders = {}
uploadHeaders[tokenName] = tokenValue

View File

@ -3,7 +3,7 @@ import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress' // 进度条
import 'nprogress/nprogress.css' // 进度条样式
import { getUserToken } from '@/utils/auth' // 从cookie中获取token
import { getAdminToken } from '@/utils/auth' // 从cookie中获取token
import getPageTitle from '@/utils/page-title'
import Layout from '@/layout'
@ -29,7 +29,7 @@ router.beforeEach(async(to, from, next) => {
document.title = getPageTitle(to.meta.title)
// 判断用户是否已登录
const hasToken = getUserToken()
const hasToken = getAdminToken()
if (hasToken) {
if (to.path === '/login') {
@ -61,7 +61,7 @@ router.beforeEach(async(to, from, next) => {
next({ ...to, replace: true })
} catch (error) {
// 删除token并转到登录页面重新登录
await store.dispatch('user/resetUserToken')
await store.dispatch('user/resetAdminToken')
Message.error(error || 'Has Error')
next(`/login?redirect=${to.path}`)
NProgress.done()

View File

@ -23,15 +23,15 @@ module.exports = {
*/
sidebarLogo: true,
/**
* @type {string} 前后端必须一致
* @description token名称
*/
tokenName: 'AdminToken',
/**
* @type {string} headerparam
* @description token方式
*/
tokenType: 'param'
tokenType: 'param',
/**
* @type {string} 前后端必须一致
* @description token名称
*/
tokenName: 'AdminToken'
}

View File

@ -1,9 +1,9 @@
import { login, logout } from '@/api/system/login'
import { info as userInfo } from '@/api/system/user-center'
import {
setUserToken,
getUserToken,
delUserToken,
setAdminToken,
getAdminToken,
delAdminToken,
setUsername,
delUsername,
setNickname,
@ -15,7 +15,7 @@ import { getTokenName } from '@/utils/settings'
import router, { resetRouter } from '@/router'
const state = {
userToken: getUserToken(),
userToken: getAdminToken(),
username: '',
nickname: '',
avatar: '',
@ -64,7 +64,7 @@ const actions = {
}).then(response => {
const { data } = response
commit('SET_USERTOKEN', data[getTokenName()])
setUserToken(data[getTokenName()])
setAdminToken(data[getTokenName()])
resolve()
}).catch(error => {
reject(error)
@ -120,7 +120,7 @@ const actions = {
commit('SET_AVATAR', '')
commit('SET_ROLES', [])
commit('SET_MENUS', [])
delUserToken()
delAdminToken()
delUsername()
delNickname()
delAvatar()
@ -137,11 +137,11 @@ const actions = {
},
// 重置token
resetUserToken({ commit }) {
resetAdminToken({ commit }) {
return new Promise(resolve => {
commit('SET_USERTOKEN', '')
commit('SET_ROLES', [])
delUserToken()
delAdminToken()
resolve()
})
},
@ -151,7 +151,7 @@ const actions = {
const userToken = role + '-userToken'
commit('SET_USERTOKEN', userToken)
setUserToken(userToken)
setAdminToken(userToken)
const { roles } = await dispatch('userInfo')

View File

@ -1,46 +1,46 @@
import Cookies from 'js-cookie'
const key_prefix = 'yaAuth'
const keyPrefix = 'yaAuth'
const UserTokenKey = key_prefix + 'UserToken'
export function setUserToken(UserToken) {
return Cookies.set(UserTokenKey, UserToken)
const adminTokenKey = keyPrefix + 'AdminToken'
export function setAdminToken(adminToken) {
return Cookies.set(adminTokenKey, adminToken)
}
export function getUserToken() {
return Cookies.get(UserTokenKey)
export function getAdminToken() {
return Cookies.get(adminTokenKey)
}
export function delUserToken() {
return Cookies.remove(UserTokenKey)
export function delAdminToken() {
return Cookies.remove(adminTokenKey)
}
const UsernameKey = key_prefix + 'Username'
const usernameKey = keyPrefix + 'Username'
export function setUsername(username) {
return Cookies.set(UsernameKey, username)
return Cookies.set(usernameKey, username)
}
export function getUsername() {
return Cookies.get(UsernameKey)
return Cookies.get(usernameKey)
}
export function delUsername() {
return Cookies.remove(UsernameKey)
return Cookies.remove(usernameKey)
}
const NicknameKey = key_prefix + 'Nickname'
const nicknameKey = keyPrefix + 'Nickname'
export function setNickname(nickname) {
return Cookies.set(NicknameKey, nickname)
return Cookies.set(nicknameKey, nickname)
}
export function getNickname() {
return Cookies.get(NicknameKey)
return Cookies.get(nicknameKey)
}
export function delNickname() {
return Cookies.remove(NicknameKey)
return Cookies.remove(nicknameKey)
}
const AvatarKey = key_prefix + 'Avatar'
const avatarKey = keyPrefix + 'Avatar'
export function setAvatar(avatar) {
return Cookies.set(AvatarKey, avatar)
return Cookies.set(avatarKey, avatar)
}
export function getAvatar() {
return Cookies.get(AvatarKey)
return Cookies.get(avatarKey)
}
export function delAvatar() {
return Cookies.remove(AvatarKey)
return Cookies.remove(avatarKey)
}

View File

@ -1,6 +1,10 @@
import store from '@/store'
// 获取页面标题
/**
* 获取页面标题
* @param {string} pageName 页面名称
* @returns {string}
*/
export default function getPageTitle(pageName) {
const pageTitle = store.getters.pageTitle
if (pageName) {

View File

@ -1,7 +1,7 @@
import axios from 'axios'
import store from '@/store'
import { Message, MessageBox } from 'element-ui'
import { getUserToken } from '@/utils/auth'
import { getAdminToken } from '@/utils/auth'
// 创建axios实例
const service = axios.create({
@ -18,7 +18,7 @@ service.interceptors.request.use(
// 设置Token请求头部header或请求参数param
const tokenType = store.getters.tokenType
const tokenName = store.getters.tokenName
const tokenValue = getUserToken()
const tokenValue = getAdminToken()
if (tokenType === 'header') {
// 请求头部token
config.headers[tokenName] = tokenValue
@ -92,7 +92,7 @@ function responseHandle(res) {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
store.dispatch('user/resetUserToken').then(() => {
store.dispatch('user/resetAdminToken').then(() => {
location.reload()
})
}).catch(() => { })

View File

@ -1,79 +1,79 @@
import Cookies from 'js-cookie'
const key_prefix = 'yaSettings'
const keyPrefix = 'yaSettings'
const SystemNameKey = key_prefix + 'SystemName'
export function setSystemName(SystemName) {
return Cookies.set(SystemNameKey, SystemName)
const systemNameKey = keyPrefix + 'SystemName'
export function setSystemName(systemName) {
return Cookies.set(systemNameKey, systemName)
}
export function getSystemName() {
return Cookies.get(SystemNameKey)
return Cookies.get(systemNameKey)
}
export function delSystemName() {
return Cookies.remove(SystemNameKey)
return Cookies.remove(systemNameKey)
}
const FaviconUrlKey = key_prefix + 'FaviconUrl'
export function setFaviconUrl(FaviconUrl) {
return Cookies.set(FaviconUrlKey, FaviconUrl)
const faviconUrlKey = keyPrefix + 'FaviconUrl'
export function setFaviconUrl(faviconUrl) {
return Cookies.set(faviconUrlKey, faviconUrl)
}
export function getFaviconUrl() {
return Cookies.get(FaviconUrlKey)
return Cookies.get(faviconUrlKey)
}
export function delFaviconUrl() {
return Cookies.remove(FaviconUrlKey)
return Cookies.remove(faviconUrlKey)
}
const PageTitleKey = key_prefix + 'PageTitle'
export function setPageTitle(PageTitle) {
return Cookies.set(PageTitleKey, PageTitle)
const pageTitleKey = keyPrefix + 'PageTitle'
export function setPageTitle(pageTitle) {
return Cookies.set(pageTitleKey, pageTitle)
}
export function getPageTitle() {
return Cookies.get(PageTitleKey)
return Cookies.get(pageTitleKey)
}
export function delPageTitle() {
return Cookies.remove(PageTitleKey)
return Cookies.remove(pageTitleKey)
}
const LogoUrlKey = key_prefix + 'LogoUrl'
export function setLogoUrl(LogoUrl) {
return Cookies.set(LogoUrlKey, LogoUrl)
const logoUrlKey = keyPrefix + 'LogoUrl'
export function setLogoUrl(logoUrl) {
return Cookies.set(logoUrlKey, logoUrl)
}
export function getLogoUrl() {
return Cookies.get(LogoUrlKey)
return Cookies.get(logoUrlKey)
}
export function delLogoUrl() {
return Cookies.remove(LogoUrlKey)
return Cookies.remove(logoUrlKey)
}
const NoticeKey = key_prefix + 'Notice'
const noticeKey = keyPrefix + 'Notice'
export function setNotice(notice) {
return Cookies.set(NoticeKey, notice)
return Cookies.set(noticeKey, notice)
}
export function getNotice() {
return Cookies.get(NoticeKey)
return Cookies.get(noticeKey)
}
export function delNotice() {
return Cookies.remove(NoticeKey)
return Cookies.remove(noticeKey)
}
const TokenNameKey = key_prefix + 'TokenName'
export function setTokenName(TokenName) {
return Cookies.set(TokenNameKey, TokenName)
const tokenNameKey = keyPrefix + 'TokenName'
export function setTokenName(tokenName) {
return Cookies.set(tokenNameKey, tokenName)
}
export function getTokenName() {
return Cookies.get(TokenNameKey)
return Cookies.get(tokenNameKey)
}
export function delTokenName() {
return Cookies.remove(TokenNameKey)
return Cookies.remove(tokenNameKey)
}
const TokenTypeKey = key_prefix + 'TokenType'
export function setTokenType(TokenType) {
return Cookies.set(TokenTypeKey, TokenType)
const tokenTypeKey = keyPrefix + 'TokenType'
export function setTokenType(tokenType) {
return Cookies.set(tokenTypeKey, tokenType)
}
export function getTokenType() {
return Cookies.get(TokenTypeKey)
return Cookies.get(tokenTypeKey)
}
export function delTokenType() {
return Cookies.remove(TokenTypeKey)
return Cookies.remove(tokenTypeKey)
}

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="12">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="会员接口" prop="is_member_api">
<el-col :span="24">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="12">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="注册验证码" prop="captcha_register">
<el-col :span="8">

View File

@ -1,6 +1,6 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-row>
<el-col :span="16">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="自定义设置" prop="">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="12">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="日志记录开关" prop="log_switch">
<el-col :span="8">

View File

@ -1,12 +1,20 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-row>
<el-col :span="12">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="注册" prop="is_register">
<el-col :span="8">
<el-switch v-model="model.is_register" :active-value="1" :inactive-value="0" />
</el-col>
<el-col :span="16">
关闭后不能再注册用户名手机邮箱
</el-col>
</el-form-item>
<el-form-item label="登录" prop="is_login">
<el-col :span="8">
<el-switch v-model="model.is_login" :active-value="1" :inactive-value="0" />
</el-col>
<el-col :span="16">
关闭后不能再登录用户名手机邮箱
</el-col>

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="12">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="Token密钥" prop="token_key">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="13">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="接口速率">
<el-col :span="12">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row>
<el-col :span="13">
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="缓存类型" prop="cache_type">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row>
<el-col :span="13">
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="验证码开关" prop="captcha_switch">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="13">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="* SMTP服务器" prop="email_host">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="13">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="日志记录开关" prop="log_switch">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row :gutter="0">
<el-col :span="13">
<el-row>
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="* 系统简称" prop="system_name">
<el-col :span="8">

View File

@ -1,7 +1,7 @@
<template>
<el-card class="dialog-body" :style="{height:height+'px'}">
<el-row>
<el-col :span="13">
<el-col :span="14">
<el-form ref="ref" :model="model" :rules="rules" label-width="120px">
<el-form-item label="Token密钥" prop="token_key">
<el-col :span="8">