parent
36dbc77003
commit
1cac97c7e1
6
.env
6
.env
|
|
@ -8,8 +8,14 @@ VUE_APP_USER_KEY=admin.user
|
||||||
VUE_APP_PROJECT_KEY=admin.project
|
VUE_APP_PROJECT_KEY=admin.project
|
||||||
VUE_APP_COMPANY_KEY=admin.company
|
VUE_APP_COMPANY_KEY=admin.company
|
||||||
VUE_APP_SETTING_KEY=admin.setting
|
VUE_APP_SETTING_KEY=admin.setting
|
||||||
|
VUE_APP_THEME_SETTING_KEY=admin.theme.settings
|
||||||
VUE_APP_USER_SETTINGS_KEY=admin.user.settings
|
VUE_APP_USER_SETTINGS_KEY=admin.user.settings
|
||||||
VUE_APP_TBAS_KEY=admin.tabs
|
VUE_APP_TBAS_KEY=admin.tabs
|
||||||
VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
|
VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
|
||||||
|
VUE_APP_LAYOUT_KEY=admin.layout
|
||||||
|
VUE_APP_THEME_MODE_KEY=admin.theme.mode
|
||||||
|
VUE_APP_THEME_COLOR_KEY=admin.theme.color
|
||||||
# VUE_APP_API_BASE_URL=http://192.168.31.91:19000
|
# VUE_APP_API_BASE_URL=http://192.168.31.91:19000
|
||||||
VUE_APP_API_BASE_URL=http://192.168.52.166:30000
|
VUE_APP_API_BASE_URL=http://192.168.52.166:30000
|
||||||
|
VUE_APP_USER_MODEL=AdminUser
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,13 +52,18 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
console.log("this.company.company_info.logo:",JSON.stringify(this.company.company_info))
|
||||||
|
console.log("this.project.logo:",this.project.project_logo)
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState('account', ['project', 'company']), // 获取项目信息,公司信息
|
...mapState('account', ['project', 'company']), // 获取项目信息,公司信息
|
||||||
sideTheme() {
|
sideTheme() {
|
||||||
console.log("localStorage:", this.project)
|
console.log("localStorage:", this.project)
|
||||||
return this.theme == 'light' ? this.theme : 'dark'
|
return this.theme == 'light' ? this.theme : 'dark'
|
||||||
|
|
||||||
},
|
},
|
||||||
...mapState('setting', ['isMobile', 'systemName'])
|
...mapState('setting', ['isMobile', 'systemName'])
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,11 @@
|
||||||
</setting-item>
|
</setting-item>
|
||||||
<setting-item :title="$t('theme.color')">
|
<setting-item :title="$t('theme.color')">
|
||||||
<color-checkbox-group
|
<color-checkbox-group
|
||||||
|
|
||||||
@change="(values, colors) => setTheme({...theme, color: colors[0]})"
|
@change="(values, colors) => setTheme({...theme, color: colors[0]})"
|
||||||
:defaultValues="[palettes.indexOf(theme.color)]" :multiple="false"
|
:defaultValues="[palettes.indexOf(theme.color)]" :multiple="false"
|
||||||
>
|
>
|
||||||
<color-checkbox v-for="(color, index) in palettes" :key="index" :color="color" :value="index" />
|
<color-checkbox v-for="(color, index) in palettes" :key="index" :color="color" :value="index" />
|
||||||
</color-checkbox-group>
|
</color-checkbox-group>
|
||||||
</setting-item>
|
</setting-item>
|
||||||
<a-divider/>
|
<a-divider/>
|
||||||
|
|
@ -117,6 +118,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import Cookie from 'js-cookie'
|
||||||
import SettingItem from './SettingItem'
|
import SettingItem from './SettingItem'
|
||||||
import {ColorCheckbox, ImgCheckbox} from '@/components/checkbox'
|
import {ColorCheckbox, ImgCheckbox} from '@/components/checkbox'
|
||||||
import Clipboard from 'clipboard'
|
import Clipboard from 'clipboard'
|
||||||
|
|
@ -127,6 +129,7 @@ import sysConfig from '@/config/config'
|
||||||
import fastEqual from 'fast-deep-equal'
|
import fastEqual from 'fast-deep-equal'
|
||||||
import deepMerge from 'deepmerge'
|
import deepMerge from 'deepmerge'
|
||||||
|
|
||||||
|
|
||||||
const ColorCheckboxGroup = ColorCheckbox.Group
|
const ColorCheckboxGroup = ColorCheckbox.Group
|
||||||
const ImgCheckboxGroup = ImgCheckbox.Group
|
const ImgCheckboxGroup = ImgCheckbox.Group
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -162,7 +165,7 @@ export default {
|
||||||
let clipboard = new Clipboard('#copyBtn')
|
let clipboard = new Clipboard('#copyBtn')
|
||||||
clipboard.on('success', () => {
|
clipboard.on('success', () => {
|
||||||
this.$message.success(`复制成功,覆盖文件 src/config/config.js 然后重启项目即可生效`).then(() => {
|
this.$message.success(`复制成功,覆盖文件 src/config/config.js 然后重启项目即可生效`).then(() => {
|
||||||
const localConfig = localStorage.getItem(process.env.VUE_APP_SETTING_KEY)
|
const localConfig = localStorage.getItem(process.env.VUE_APP_THEME_SETTING_KEY)
|
||||||
if (localConfig) {
|
if (localConfig) {
|
||||||
console.warn('检测到本地有历史保存的主题配置,想要要拷贝的配置代码生效,您可能需要先重置配置')
|
console.warn('检测到本地有历史保存的主题配置,想要要拷贝的配置代码生效,您可能需要先重置配置')
|
||||||
this.$message.warn('检测到本地有历史保存的主题配置,想要要拷贝的配置代码生效,您可能需要先重置配置', 5)
|
this.$message.warn('检测到本地有历史保存的主题配置,想要要拷贝的配置代码生效,您可能需要先重置配置', 5)
|
||||||
|
|
@ -174,14 +177,15 @@ export default {
|
||||||
saveSetting() {
|
saveSetting() {
|
||||||
const closeMessage = this.$message.loading('正在保存到本地,请稍后...', 0)
|
const closeMessage = this.$message.loading('正在保存到本地,请稍后...', 0)
|
||||||
const config = this.extractConfig(true)
|
const config = this.extractConfig(true)
|
||||||
localStorage.setItem(process.env.VUE_APP_SETTING_KEY, JSON.stringify(config))
|
localStorage.setItem(process.env.VUE_APP_THEME_SETTING_KEY, JSON.stringify(config))
|
||||||
|
Cookie.set(process.env.VUE_APP_THEME_SETTING_KEY, JSON.stringify(config))
|
||||||
setTimeout(closeMessage, 800)
|
setTimeout(closeMessage, 800)
|
||||||
},
|
},
|
||||||
resetSetting() {
|
resetSetting() {
|
||||||
this.$confirm({
|
this.$confirm({
|
||||||
title: '重置主题会刷新页面,当前页面内容不会保留,确认重置?',
|
title: '重置主题会刷新页面,当前页面内容不会保留,确认重置?',
|
||||||
onOk() {
|
onOk() {
|
||||||
localStorage.removeItem(process.env.VUE_APP_SETTING_KEY)
|
localStorage.removeItem(process.env.VUE_APP_THEME_SETTING_KEY)
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
// 自定义配置,参考 ./default/setting.config.js,需要自定义的属性在这里配置即可
|
// const Cookie = require('js-cookie')
|
||||||
|
// const layout = Cookie.get(process.env.VUE_APP_LAYOUT_KEY)
|
||||||
|
// // const themeColor = Cookie.get(process.env.VUE_APP_THEME_COLOR_KEY)
|
||||||
|
// const themeMode = Cookie.get(process.env.VUE_APP_THEME_MODE_KEY)
|
||||||
|
// // 自定义配置,参考 ./default/setting.config.js,需要自定义的属性在这里配置即可
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
theme: { // 主题
|
theme: { // 主题
|
||||||
color: '#722ed1', // 主题色
|
color: '#122ed1', // 主题色
|
||||||
mode: 'dark', // 主题模式
|
mode: 'dark', // 主题模式
|
||||||
},
|
},
|
||||||
|
layout:'side',
|
||||||
multiPage: true, // 是否开启多页签模式
|
multiPage: true, // 是否开启多页签模式
|
||||||
asyncRoutes: true, //异步加载路由,true:开启,false:不开启
|
asyncRoutes: true, //异步加载路由,true:开启,false:不开启
|
||||||
animate: { // 动画
|
animate: { // 动画
|
||||||
|
|
|
||||||
|
|
@ -2,5 +2,5 @@ const deepMerge = require('deepmerge') // 引入 deepmerge 模块 深度合并
|
||||||
const _config = require('./config') // 引入 config 模块 配置设置
|
const _config = require('./config') // 引入 config 模块 配置设置
|
||||||
const {setting} = require('./default') // 引入 default 模块中的 setting 属性
|
const {setting} = require('./default') // 引入 default 模块中的 setting 属性
|
||||||
const config = deepMerge(setting, _config) // 合并配置
|
const config = deepMerge(setting, _config) // 合并配置
|
||||||
|
console.log("config:",config)
|
||||||
module.exports = config // 导出配置
|
module.exports = config // 导出配置
|
||||||
|
|
|
||||||
|
|
@ -17,15 +17,16 @@
|
||||||
<div :class="['admin-header-right', headerTheme]">
|
<div :class="['admin-header-right', headerTheme]">
|
||||||
<!-- 暂时先把搜索隐藏起来 -->
|
<!-- 暂时先把搜索隐藏起来 -->
|
||||||
<header-search class="header-item" @active="val => searchActive = val" style="display:none" />
|
<header-search class="header-item" @active="val => searchActive = val" style="display:none" />
|
||||||
<!-- <a-tooltip class="header-item" title="帮助文档" placement="bottom" >
|
<!-- 暂时先把搜索隐藏起来 -->
|
||||||
|
<a-tooltip class="header-item" title="帮助文档" placement="bottom" style="display:none" >
|
||||||
<a href="https://iczer.gitee.io/vue-antd-admin-docs/" target="_blank">
|
<a href="https://iczer.gitee.io/vue-antd-admin-docs/" target="_blank">
|
||||||
<a-icon type="question-circle-o" />
|
<a-icon type="question-circle-o" />
|
||||||
</a>
|
</a>
|
||||||
</a-tooltip> -->
|
</a-tooltip>
|
||||||
<!-- 暂时先把通知隐藏起来 -->
|
<!-- 暂时先把搜索隐藏起来 -->
|
||||||
<header-notice class="header-item" style="display:none"/>
|
<header-notice class="header-item" style="display:none"/>
|
||||||
<header-avatar class="header-item"/>
|
<header-avatar class="header-item"/>
|
||||||
<a-dropdown class="lang header-item">
|
<a-dropdown class="lang header-item" style="display:none">
|
||||||
<div>
|
<div>
|
||||||
<a-icon type="global"/> {{langAlias}}
|
<a-icon type="global"/> {{langAlias}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<a-dropdown>
|
<a-dropdown>
|
||||||
<div class="header-avatar" style="cursor: pointer">
|
<div class="header-avatar" style="cursor: pointer">
|
||||||
<a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
|
<a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
|
||||||
<span class="name">{{user.name}}</span>
|
<span class="name">{{user.nickname}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-menu :class="['avatar-menu']" slot="overlay">
|
<a-menu :class="['avatar-menu']" slot="overlay">
|
||||||
<a-menu-item @click="adminUser">
|
<a-menu-item @click="adminUser">
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,74 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 添加用户提交按钮 -->
|
添加用户按钮
|
||||||
<a-button type="primary" @click="addUser">新增用户</a-button>
|
<a-button type="primary" @click="AddModal">添加用户</a-button>
|
||||||
|
<a-modal v-model="Add" width="80%" title="添加用户" @ok="AddhandleOk">
|
||||||
|
|
||||||
|
</a-modal>
|
||||||
|
|
||||||
|
<!-- 用户列表 -->
|
||||||
|
|
||||||
|
<!-- 编辑用户按钮 -->
|
||||||
|
<a-button type="primary" @click="UpdateModel">编辑用户</a-button>
|
||||||
|
<a-modal v-model="Update" width="80%" title="编辑用户" @ok="UpdatehandleOk">
|
||||||
|
|
||||||
|
</a-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'AdminUserAdd',
|
name: 'AdminUserList',
|
||||||
data() {
|
i18n: require('./i18n'),
|
||||||
return {
|
data () {
|
||||||
msg: 'Welcome to Your Vue.js App',
|
return {
|
||||||
}
|
value: 1
|
||||||
},
|
}
|
||||||
methods: {
|
},
|
||||||
addUser() {
|
computed: {
|
||||||
this.$router.push('/AdminUser/AdminUserList');
|
desc() {
|
||||||
|
return this.$t('pageDesc')
|
||||||
},
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<script>
|
||||||
|
import { defineComponent, ref } from 'vue';
|
||||||
|
export default defineComponent({
|
||||||
|
setup() {
|
||||||
|
const Add = ref(false);
|
||||||
|
const Update = ref(false);
|
||||||
|
|
||||||
<style>
|
const AddModal = () => {
|
||||||
|
Add.value = true;
|
||||||
|
};
|
||||||
|
const UpdateModel = () => {
|
||||||
|
Update.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
const AddhandleOk = e => {
|
||||||
|
console.log(e);
|
||||||
|
Add.value = false;
|
||||||
|
};
|
||||||
|
const UpdatehandleOk = e => {
|
||||||
|
console.log(e);
|
||||||
|
Update.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
Add,
|
||||||
|
AddModal,
|
||||||
|
AddhandleOk,
|
||||||
|
Update,
|
||||||
|
UpdateModel,
|
||||||
|
UpdatehandleOk,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,34 +1,103 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<a-card :body-style="{padding: '24px 32px'}" :bordered="false">
|
||||||
<!-- 添加用户按钮 -->
|
<a-form>
|
||||||
<a-button type="primary" @click="addUser">添加用户</a-button>
|
<a-form-item
|
||||||
<!-- 用户列表 -->
|
:label="$t('title')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
>
|
||||||
|
<a-input :placeholder="$t('titleInput')" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('date')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
>
|
||||||
|
<a-range-picker style="width: 100%" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('describe')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
>
|
||||||
|
<a-textarea rows="4" :placeholder="$t('describeInput')"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('metrics')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
>
|
||||||
|
<a-textarea rows="4" :placeholder="$t('metricsInput')"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('customer')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
:required="false"
|
||||||
|
>
|
||||||
|
<a-input :placeholder="$t('customerInput')"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('critics')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
:required="false"
|
||||||
|
>
|
||||||
|
<a-input :placeholder="$t('criticsInput')"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('weight')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
:required="false"
|
||||||
|
>
|
||||||
|
<a-input-number :min="0" :max="100"/>
|
||||||
|
<span>%</span>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:label="$t('disclosure')"
|
||||||
|
:labelCol="{span: 7}"
|
||||||
|
:wrapperCol="{span: 10}"
|
||||||
|
:required="false"
|
||||||
|
:help="$t('disclosureDesc')"
|
||||||
|
>
|
||||||
|
<a-radio-group v-model="value">
|
||||||
|
<a-radio :value="1">{{$t('public')}}</a-radio>
|
||||||
|
<a-radio :value="2">{{$t('partially')}}</a-radio>
|
||||||
|
<a-radio :value="3">{{$t('private')}}</a-radio>
|
||||||
|
</a-radio-group>
|
||||||
|
<a-select mode="multiple" v-if="value === 2">
|
||||||
|
<a-select-option value="4">{{$t('colleague1')}}</a-select-option>
|
||||||
|
<a-select-option value="5">{{$t('colleague2')}}</a-select-option>
|
||||||
|
<a-select-option value="6">{{$t('colleague3')}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item style="margin-top: 24px" :wrapperCol="{span: 10, offset: 7}">
|
||||||
|
<a-button type="primary">{{$t('submit')}}</a-button>
|
||||||
|
<a-button style="margin-left: 8px">{{$t('save')}}</a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 编辑用户按钮 -->
|
<script>
|
||||||
<a-button type="primary" @click="updateUser">编辑用户</a-button>
|
export default {
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'AdminUserList',
|
name: 'AdminUserList',
|
||||||
data() {
|
i18n: require('./i18n'),
|
||||||
return {
|
data () {
|
||||||
msg: 'Welcome to Your Vue.js App',
|
return {
|
||||||
}
|
value: 1
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
computed: {
|
||||||
addUser() {
|
desc() {
|
||||||
this.$router.push('/AdminUser/AdminUserAdd');
|
return this.$t('pageDesc')
|
||||||
},
|
}
|
||||||
updateUser() {
|
|
||||||
this.$router.push('/AdminUser/AdminUserUpdate');
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
module.exports = {
|
||||||
|
messages: {
|
||||||
|
CN: {
|
||||||
|
pageDesc: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。',
|
||||||
|
title: '标题',
|
||||||
|
titleInput: '给目标起个名字',
|
||||||
|
date: '起止日期',
|
||||||
|
describe: '目标描述',
|
||||||
|
describeInput: '请输入你阶段性工作目标',
|
||||||
|
metrics: '衡量标准',
|
||||||
|
metricsInput: '请输入衡量标准',
|
||||||
|
customer: '客户',
|
||||||
|
customerInput: '请描述你服务的客户,内部客户直接 @姓名/工号',
|
||||||
|
critics: '邀评人',
|
||||||
|
criticsInput: '请直接 @姓名/工号,最多可邀请 5 人',
|
||||||
|
weight: '权重',
|
||||||
|
disclosure: '目标公开',
|
||||||
|
disclosureDesc: '客户、邀评人默认被分享',
|
||||||
|
public: '公开',
|
||||||
|
partially: '部分公开',
|
||||||
|
private: '不公开',
|
||||||
|
submit: '提交',
|
||||||
|
save: '保存',
|
||||||
|
colleague1: '同事甲',
|
||||||
|
colleague2: '同事乙',
|
||||||
|
colleague3: '同事丙'
|
||||||
|
},
|
||||||
|
HK: {
|
||||||
|
pageDesc: '表單頁用於向用戶收集或驗證信息,基礎表單常見於數據項較少的表單場景。',
|
||||||
|
title: '標題',
|
||||||
|
titleInput: '給目標起個名字',
|
||||||
|
date: '起止日期',
|
||||||
|
describe: '目標描述',
|
||||||
|
describeInput: '請輸入你階段性的工作目標',
|
||||||
|
metrics: '衡量標準',
|
||||||
|
metricsInput: '請輸入衡量標準',
|
||||||
|
customer: '客戶',
|
||||||
|
customerInput: '請描述你服務的客戶,內部客戶直接 @姓名/工號',
|
||||||
|
critics: '邀評人',
|
||||||
|
criticsInput: '請直接 @姓名/工號,最多可邀請 5 人',
|
||||||
|
weight: '圈中人',
|
||||||
|
disclosure: '目標公開',
|
||||||
|
disclosureDesc: '客戶、邀評人默認被分享',
|
||||||
|
public: '公開',
|
||||||
|
partially: '部分公開',
|
||||||
|
private: '不公開',
|
||||||
|
submit: '提交',
|
||||||
|
save: '保存',
|
||||||
|
colleague1: '同事甲',
|
||||||
|
colleague2: '同事乙',
|
||||||
|
colleague3: '同事丙'
|
||||||
|
},
|
||||||
|
US: {
|
||||||
|
pageDesc: 'Form pages are used to collect or verify information to users, and basic forms are common in scenarios where there are fewer data items.',
|
||||||
|
title: 'Title',
|
||||||
|
titleInput: 'Give the target a name',
|
||||||
|
date: 'Start and end date',
|
||||||
|
describe: 'Goal description',
|
||||||
|
describeInput: 'Please enter your work goals',
|
||||||
|
metrics: 'Metrics',
|
||||||
|
metricsInput: 'Please enter a metric',
|
||||||
|
customer: 'Customer',
|
||||||
|
customerInput: 'Please describe your customer service, internal customers directly @ Name / job number',
|
||||||
|
critics: 'Inviting critics',
|
||||||
|
criticsInput: 'Please direct @ Name / job number, you can invite up to 5 people',
|
||||||
|
weight: 'Weight',
|
||||||
|
disclosure: 'Target disclosure',
|
||||||
|
disclosureDesc: 'Customers and invitees are shared by default',
|
||||||
|
public: 'Public',
|
||||||
|
partially: 'Partially public',
|
||||||
|
private: 'Private',
|
||||||
|
submit: 'Submit',
|
||||||
|
save: 'Save',
|
||||||
|
colleague1: 'Colleague A',
|
||||||
|
colleague2: 'Colleague B',
|
||||||
|
colleague3: 'Colleague C'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -107,6 +107,10 @@ export default {
|
||||||
const project = result.data.data
|
const project = result.data.data
|
||||||
this.setProject(project) // 将项目信息存入vuex
|
this.setProject(project) // 将项目信息存入vuex
|
||||||
})
|
})
|
||||||
|
// 设置界面设置 的默认值
|
||||||
|
Cookie.set(process.env.VUE_APP_LAYOUT_KEY,'side')
|
||||||
|
Cookie.set(process.env.VUE_APP_THEME_MODE_KEY,'dark')
|
||||||
|
Cookie.set(process.env.VUE_APP_THEME_COLOR_KEY,'#fa541c')
|
||||||
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -188,6 +192,7 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.log("登录失败")
|
console.log("登录失败")
|
||||||
this.error = loginRes.message
|
this.error = loginRes.message
|
||||||
|
|
|
||||||
|
|
@ -3,66 +3,92 @@
|
||||||
|
|
||||||
// 视图组件
|
// 视图组件
|
||||||
const view = {
|
const view = {
|
||||||
tabs: () => import('@/layouts/tabs'),
|
tabs: () => import('@/layouts/tabs'),
|
||||||
blank: () => import('@/layouts/BlankView'),
|
blank: () => import('@/layouts/BlankView'),
|
||||||
page: () => import('@/layouts/PageView')
|
page: () => import('@/layouts/PageView')
|
||||||
}
|
}
|
||||||
|
|
||||||
// 路由组件注册
|
// 路由组件注册
|
||||||
const AdminAgentRouterMap = {
|
const AdminAgentRouterMap = {
|
||||||
AdminAgent:{
|
AdminAgent: {
|
||||||
name: '代理商管理',
|
name: '代理商管理',
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.page,
|
||||||
authority: {
|
authority: {
|
||||||
Agent:[''],
|
Agent: ['AdminAgent', 'AdminAgent-All'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminAgentList:{
|
AdminAgentList: {
|
||||||
name: '代理商列表',
|
name: '代理商列表',
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
path: '/AdminAgent/AdminAgentList',
|
path: '/AdminAgent/AdminAgentList',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentList'),
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentList'),
|
||||||
authority: {
|
authority: {
|
||||||
Agent:[''],
|
Agent: ['AdminAgent-List'],
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
AdminAgentDetail: {
|
||||||
|
name: '代理商详情',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminAgent/AdminAgentDetail',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
},
|
},
|
||||||
AdminAgentDetail:{
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentDetail'),
|
||||||
name: '代理商详情',
|
authority: {
|
||||||
icon: 'idcard',
|
Agent: ['AdminAgent-Detail'],
|
||||||
path: '/AdminAgent/AdminAgentDetail',
|
|
||||||
meta: {
|
|
||||||
invisible:true, // 不在菜单中显示
|
|
||||||
},
|
|
||||||
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentDetail'),
|
|
||||||
authority: {
|
|
||||||
Agent:[''],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
AdminAgentAdd:{
|
},
|
||||||
name: '添加代理商',
|
AdminAgentAdd: {
|
||||||
icon: 'idcard',
|
name: '添加代理商',
|
||||||
path: '/AdminAgent/AdminAgentAdd',
|
icon: 'idcard',
|
||||||
meta: {
|
path: '/AdminAgent/AdminAgentAdd',
|
||||||
invisible:true, // 不在菜单中显示
|
meta: {
|
||||||
},
|
invisible: true, // 不在菜单中显示
|
||||||
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentAdd'),
|
|
||||||
authority: {
|
|
||||||
Agent:[''],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
AdminAgentUpdate:{
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentAdd'),
|
||||||
name: '修改代理商',
|
authority: {
|
||||||
icon: 'idcard',
|
Agent: ['AdminAgent-Add'],
|
||||||
path: '/AdminAgent/AdminAgentUpdate',
|
|
||||||
meta: {
|
|
||||||
invisible:true, // 不在菜单中显示
|
|
||||||
},
|
|
||||||
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentUpdate'),
|
|
||||||
authority: {
|
|
||||||
Agent:[''],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
AdminAgentUpdate: {
|
||||||
|
name: '修改代理商',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminAgent/AdminAgentUpdate',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentUpdate'),
|
||||||
|
authority: {
|
||||||
|
Agent: ['AdminAgent-Update'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminAgentSettings: {
|
||||||
|
name: '代理商设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminAgent/AdminAgentSettings',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentSettings'),
|
||||||
|
authority: {
|
||||||
|
Agent: ['AdminAgent-Settings'],
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
AdminAgentLog: {
|
||||||
|
name: '代理商日志',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminAgent/AdminAgentLog',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminAgent/AgentLog'),
|
||||||
|
authority: {
|
||||||
|
Agent: ['AdminAgent-Log'],
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AdminAgentRouterMap
|
export default AdminAgentRouterMap
|
||||||
|
|
@ -3,69 +3,94 @@
|
||||||
|
|
||||||
// 视图组件
|
// 视图组件
|
||||||
const view = {
|
const view = {
|
||||||
tabs: () => import('@/layouts/tabs'),
|
tabs: () => import('@/layouts/tabs'),
|
||||||
blank: () => import('@/layouts/BlankView'),
|
blank: () => import('@/layouts/BlankView'),
|
||||||
page: () => import('@/layouts/PageView')
|
page: () => import('@/layouts/PageView')
|
||||||
}
|
}
|
||||||
|
|
||||||
// 路由组件注册
|
// 路由组件注册
|
||||||
const AdminCompanyRouterMap = {
|
const AdminCompanyRouterMap = {
|
||||||
AdminCompany:{
|
AdminCompany: {
|
||||||
name: '企业管理',
|
name: '企业管理',
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.page,
|
||||||
meta: {
|
meta: {
|
||||||
invisible:false, // 不在菜单中显示
|
invisible: false, // 不在菜单中显示
|
||||||
},
|
|
||||||
authority: {
|
|
||||||
permission:[''],
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AdminCompanyList:{
|
|
||||||
name: '企业列表',
|
|
||||||
icon: 'idcard',
|
|
||||||
path: '/AdminCompany/AdminCompanyList',
|
|
||||||
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyList'),
|
|
||||||
authority: {
|
|
||||||
permission:[''],
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
AdminCompanyDetail:{
|
authority: {
|
||||||
name: '企业详情',
|
permission: ['AdminCompany', 'AdminCompany-All'],
|
||||||
icon: 'idcard',
|
}
|
||||||
path: '/AdminCompany/AdminCompanyDetail',
|
},
|
||||||
meta: {
|
AdminCompanyList: {
|
||||||
invisible:true, // 不在菜单中显示
|
name: '企业列表',
|
||||||
},
|
icon: 'idcard',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyDetail'),
|
path: '/AdminCompany/AdminCompanyList',
|
||||||
authority: {
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyList'),
|
||||||
permission:[''],
|
authority: {
|
||||||
},
|
permission: ['AdminCompany-List'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
AdminCompanyDetail: {
|
||||||
|
name: '企业详情',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminCompany/AdminCompanyDetail',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
},
|
},
|
||||||
AdminCompanyAdd:{
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyDetail'),
|
||||||
name: '添加企业',
|
authority: {
|
||||||
icon: 'idcard',
|
permission: ['AdminCompany-Detail'],
|
||||||
path: '/AdminCompany/AdminCompanyAdd',
|
|
||||||
meta: {
|
|
||||||
invisible:true, // 不在菜单中显示
|
|
||||||
},
|
|
||||||
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyAdd'),
|
|
||||||
authority: {
|
|
||||||
permission:[''],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
AdminCompanyUpdate:{
|
},
|
||||||
name: '修改企业',
|
AdminCompanyAdd: {
|
||||||
icon: 'idcard',
|
name: '添加企业',
|
||||||
path: '/AdminCompany/AdminCompanyUpdate',
|
icon: 'idcard',
|
||||||
meta: {
|
path: '/AdminCompany/AdminCompanyAdd',
|
||||||
invisible:true, // 不在菜单中显示
|
meta: {
|
||||||
},
|
invisible: true, // 不在菜单中显示
|
||||||
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyUpdate'),
|
|
||||||
authority: {
|
|
||||||
permission:[''],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyAdd'),
|
||||||
|
authority: {
|
||||||
|
permission: ['AdminCompany-Add'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminCompanyUpdate: {
|
||||||
|
name: '修改企业',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminCompany/AdminCompanyUpdate',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyUpdate'),
|
||||||
|
authority: {
|
||||||
|
permission: ['AdminCompany-Update'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminCompanySettings: {
|
||||||
|
name: '企业设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminCompany/AdminCompanySettings',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanySettings'),
|
||||||
|
authority: {
|
||||||
|
Agent: ['AdminCompany-Settings'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminCompanyLog: {
|
||||||
|
name: '企业日志',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminCompany/AdminCompanyLog',
|
||||||
|
meta: {
|
||||||
|
invisible: true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminCompany/CompanyLog'),
|
||||||
|
authority: {
|
||||||
|
permission: ['AdminCompany-Log'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AdminCompanyRouterMap
|
export default AdminCompanyRouterMap
|
||||||
|
|
@ -18,7 +18,7 @@ const AdminConfigRouterMap = {
|
||||||
invisible:false, // 不在菜单中显示
|
invisible:false, // 不在菜单中显示
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminConfig','AdminConfig-All'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminConfigList:{
|
AdminConfigList:{
|
||||||
|
|
@ -27,7 +27,7 @@ const AdminConfigRouterMap = {
|
||||||
path: '/AdminConfig/AdminConfigList',
|
path: '/AdminConfig/AdminConfigList',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigList'),
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigList'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminConfig-List'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminConfigDetail:{
|
AdminConfigDetail:{
|
||||||
|
|
@ -39,7 +39,7 @@ const AdminConfigRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigDetail'),
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigDetail'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminConfig-Detail'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminConfigAdd:{
|
AdminConfigAdd:{
|
||||||
|
|
@ -51,7 +51,7 @@ const AdminConfigRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigAdd'),
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigAdd'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminConfig-Add'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminConfigUpdate:{
|
AdminConfigUpdate:{
|
||||||
|
|
@ -63,7 +63,31 @@ const AdminConfigRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigUpdate'),
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigUpdate'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminConfig-Update'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminConfigSettings:{
|
||||||
|
name: '项目设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminConfig/AdminConfigSettings',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigSettings'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminConfig-Settings'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminConfigLog:{
|
||||||
|
name: '项目日志',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminConfig/AdminConfigLog',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminConfig/ConfigLog'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminConfig-Log'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ const AdminLogRouterMap = {
|
||||||
invisible:false, // 不在菜单中显示
|
invisible:false, // 不在菜单中显示
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminLog','AdminLog-All'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminLogList:{
|
AdminLogList:{
|
||||||
|
|
@ -27,7 +27,7 @@ const AdminLogRouterMap = {
|
||||||
path: '/AdminLog/AdminLogList',
|
path: '/AdminLog/AdminLogList',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminLog/LogList'),
|
component: () => import('@/pages/Middle/Admin/AdminLog/LogList'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminLog-List'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminLogDetail:{
|
AdminLogDetail:{
|
||||||
|
|
@ -39,9 +39,22 @@ const AdminLogRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminLog/LogDetail'),
|
component: () => import('@/pages/Middle/Admin/AdminLog/LogDetail'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminLog-Detail'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
AdminLogSettings:{
|
||||||
|
name: '日志设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminLog/AdminLogSettings',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminLog/LogSettings'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminLog-Settings'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AdminLogRouterMap
|
export default AdminLogRouterMap
|
||||||
|
|
@ -15,7 +15,7 @@ const AdminPermissionRouterMap = {
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.page,
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminPermission','AdminPermission-All'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminPermissionList:{
|
AdminPermissionList:{
|
||||||
|
|
@ -24,7 +24,7 @@ const AdminPermissionRouterMap = {
|
||||||
path: '/AdminPermission/AdminPermissionList',
|
path: '/AdminPermission/AdminPermissionList',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionList'),
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionList'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminPermission-List'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminPermissionDetail:{
|
AdminPermissionDetail:{
|
||||||
|
|
@ -36,7 +36,7 @@ const AdminPermissionRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionDetail'),
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionDetail'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminPermission-Detail'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminPermissionAdd:{
|
AdminPermissionAdd:{
|
||||||
|
|
@ -48,7 +48,7 @@ const AdminPermissionRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionAdd'),
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionAdd'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminPermission-Add'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminPermissionUpdate:{
|
AdminPermissionUpdate:{
|
||||||
|
|
@ -60,9 +60,34 @@ const AdminPermissionRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionUpdate'),
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionUpdate'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminPermission-Update'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
AdminPermissionSettings:{
|
||||||
|
name: '权限设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminPermission/AdminPermissionSettings',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionSettings'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminPermission-Settings'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminPermissionLog:{
|
||||||
|
name: '权限日志',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminPermission/AdminPermissionLog',
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminPermission/PermissionLog'),
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission:['AdminPermission-Log'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AdminPermissionRouterMap
|
export default AdminPermissionRouterMap
|
||||||
|
|
@ -15,7 +15,7 @@ const AdminServiceRouterMap = {
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.page,
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminService','AdminService-All'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminServiceList:{
|
AdminServiceList:{
|
||||||
|
|
@ -24,7 +24,7 @@ const AdminServiceRouterMap = {
|
||||||
path: '/AdminService/AdminServiceList',
|
path: '/AdminService/AdminServiceList',
|
||||||
component: () => import('@/pages/Middle/Admin/AdminService/ServiceList'),
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceList'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminService-List'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
AdminServiceDetail:{
|
AdminServiceDetail:{
|
||||||
|
|
@ -36,7 +36,7 @@ const AdminServiceRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminService/ServiceDetail'),
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceDetail'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminService-Detail'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminServiceAdd:{
|
AdminServiceAdd:{
|
||||||
|
|
@ -48,7 +48,7 @@ const AdminServiceRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminService/ServiceAdd'),
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceAdd'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminService-Add'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
AdminServiceUpdate:{
|
AdminServiceUpdate:{
|
||||||
|
|
@ -60,7 +60,31 @@ const AdminServiceRouterMap = {
|
||||||
},
|
},
|
||||||
component: () => import('@/pages/Middle/Admin/AdminService/ServiceUpdate'),
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceUpdate'),
|
||||||
authority: {
|
authority: {
|
||||||
permission:[''],
|
permission:['AdminService-Update'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminServiceLog:{
|
||||||
|
name: '服务日志',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminService/AdminServiceLog',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceLog'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminService-Log'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AdminServiceSettings:{
|
||||||
|
name: '服务设置',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/AdminService/AdminServiceSettings',
|
||||||
|
meta: {
|
||||||
|
invisible:true, // 不在菜单中显示
|
||||||
|
},
|
||||||
|
component: () => import('@/pages/Middle/Admin/AdminService/ServiceSettings'),
|
||||||
|
authority: {
|
||||||
|
permission:['AdminService-Settings'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import routerMap from './router.map'
|
import routerMap from '@/router/router.map'
|
||||||
import {parseRoutes} from '@/utils/routerUtil'
|
import {parseRoutes} from '@/utils/routerUtil'
|
||||||
// 异步路由中的root为根路由
|
// 异步路由中的root为根路由
|
||||||
// 异步路由配置
|
// 异步路由配置
|
||||||
|
|
|
||||||
|
|
@ -54,14 +54,16 @@ const loginGuard = (to, from, next, options) => {
|
||||||
const authorityGuard = (to, from, next, options) => {
|
const authorityGuard = (to, from, next, options) => {
|
||||||
const {store, message} = options
|
const {store, message} = options
|
||||||
const permissions = store.getters['account/permissions'] // 获取权限数据
|
const permissions = store.getters['account/permissions'] // 获取权限数据
|
||||||
if (!hasAuthority(to, permissions)) { // 判断是否有权限
|
if (to.meta.authority !== undefined){
|
||||||
// 如果没有权限,跳转到403页面
|
if (!hasAuthority(to, permissions)) { // 判断是否有权限
|
||||||
message.warning(`对不起,您无权访问页面: ${to.fullPath},请联系管理员`)
|
// 如果没有权限,跳转到403页面
|
||||||
next({path: '/403'})
|
message.warning(`对不起,您无权访问页面: ${to.fullPath},请联系管理员`)
|
||||||
// NProgress.done()
|
next({path: '/403'})
|
||||||
} else {
|
// NProgress.done()
|
||||||
// console.log('进入authorityGuard权限守卫next()')
|
} else {
|
||||||
next() // 如果有权限,正常跳转到你设置好的页面
|
// console.log('进入authorityGuard权限守卫next()')
|
||||||
|
next() // 如果有权限,正常跳转到你设置好的页面
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
messages: {
|
messages: {
|
||||||
CN: {
|
CN: {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ if (Authorization != null) {
|
||||||
getUserInfo().then(result => { // 获取用户信息
|
getUserInfo().then(result => { // 获取用户信息
|
||||||
if (result.data.data != null) {
|
if (result.data.data != null) {
|
||||||
const UserInfo = result.data.data.user_info
|
const UserInfo = result.data.data.user_info
|
||||||
store.commit('account/setRoutesConfig', UserInfo) // 将用户信息存入vuex
|
store.commit('account/setUser', UserInfo) // 将用户信息存入vuex
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import BaseRouterMap from './base.map.js'
|
import BaseRouterMap from './async/base.map.js'
|
||||||
// 以下为中台服务的路由配置
|
// 以下为中台服务的路由配置
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
// const API_PROXY_PREFIX='/api'
|
// const API_PROXY_PREFIX='/api'
|
||||||
// const BASE_URL = process.env.NODE_ENV === 'production' ? process.env.VUE_APP_API_BASE_URL : API_PROXY_PREFIX
|
// const BASE_URL = process.env.NODE_ENV === 'production' ? process.env.VUE_APP_API_BASE_URL : API_PROXY_PREFIX
|
||||||
const BASE_URL = process.env.VUE_APP_API_BASE_URL // 获取环境变量VUE_APP_API_BASE_URL
|
const BASE_URL = process.env.VUE_APP_API_BASE_URL // 获取环境变量VUE_APP_API_BASE_URL
|
||||||
|
const USER_MODEL = process.env.VUE_APP_USER_MODEL
|
||||||
module.exports = {
|
module.exports = {
|
||||||
BASE_URL,
|
BASE_URL,
|
||||||
PROJECT: `${BASE_URL}/AdminUser/v1/project`,
|
PROJECT: `${BASE_URL}/${USER_MODEL}/v1/project`,
|
||||||
COMPANY: `${BASE_URL}/AdminUser/v1/company`,
|
COMPANY: `${BASE_URL}/${USER_MODEL}/v1/company`,
|
||||||
LOGIN: `${BASE_URL}/AdminUser/v1/login`,
|
LOGIN: `${BASE_URL}/${USER_MODEL}/v1/login`,
|
||||||
ROUTES: `${BASE_URL}/AdminUser/v1/routers`,
|
ROUTES: `${BASE_URL}/${USER_MODEL}/v1/routers`,
|
||||||
USERINFO: `${BASE_URL}/AdminUser/v1/userinfo`,
|
USERINFO: `${BASE_URL}/${USER_MODEL}/v1/userinfo`,
|
||||||
PERMISSION: `${BASE_URL}/AdminUser/v1/permission`,
|
PERMISSION: `${BASE_URL}/${USER_MODEL}/v1/permission`,
|
||||||
SETTINGS: `${BASE_URL}/AdminUser/v1/settings`,
|
SETTINGS: `${BASE_URL}/${USER_MODEL}/v1/settings`,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ export default {
|
||||||
uid: 0,
|
uid: 0,
|
||||||
routesConfig: undefined, // 路由配置
|
routesConfig: undefined, // 路由配置
|
||||||
user: undefined, // 用户信息
|
user: undefined, // 用户信息
|
||||||
permissions: undefined, // 权限
|
permissions: JSON.parse(localStorage.getItem(process.env.VUE_APP_PERMISSIONS_KEY)), // 权限
|
||||||
settings: undefined, // 用户配置
|
settings: JSON.parse(localStorage.getItem(process.env.VUE_APP_USER_SETTINGS_KEY)), // 用户配置
|
||||||
project: undefined, // 项目信息
|
project: JSON.parse(localStorage.getItem(process.env.VUE_APP_PROJECT_KEY)), // 项目信息
|
||||||
company: undefined, // 公司信息
|
company: JSON.parse(localStorage.getItem(process.env.VUE_APP_COMPANY_KEY)), // 公司信息
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
uid: state => { // 用户id
|
uid: state => { // 用户id
|
||||||
|
|
@ -71,7 +71,7 @@ export default {
|
||||||
}
|
}
|
||||||
return state.settings // 如果有用户配置,则返回用户配置
|
return state.settings // 如果有用户配置,则返回用户配置
|
||||||
},
|
},
|
||||||
project: state => { // 项目信息
|
project: state => { // 项目信息
|
||||||
if (!state.project) { // 如果没有项目信息
|
if (!state.project) { // 如果没有项目信息
|
||||||
try {
|
try {
|
||||||
const project = localStorage.getItem(process.env.VUE_APP_PROJECT_KEY) // 获取项目信息
|
const project = localStorage.getItem(process.env.VUE_APP_PROJECT_KEY) // 获取项目信息
|
||||||
|
|
@ -81,7 +81,8 @@ export default {
|
||||||
console.error(e.message)
|
console.error(e.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log("gggggggggggggggggggggggggggggggggggggggggggggggggggggggg")
|
// const project = localStorage.getItem(process.env.VUE_APP_PROJECT_KEY) // 获取项目信息
|
||||||
|
// state.project = JSON.parse(project) // 将字符串转换为json对象
|
||||||
return state.project // 如果有项目信息,则返回项目信息
|
return state.project // 如果有项目信息,则返回项目信息
|
||||||
},
|
},
|
||||||
company: state => { // 公司信息
|
company: state => { // 公司信息
|
||||||
|
|
@ -95,7 +96,8 @@ export default {
|
||||||
console.error(e.message)
|
console.error(e.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
state.company = JSON.parse(state.company) // 将字符串转换为json对象
|
// const company = localStorage.getItem(process.env.VUE_APP_COMPANY_KEY) // 获取公司信息
|
||||||
|
// state.company = JSON.parse(company) // 将字符串转换为json对象
|
||||||
return state.company // 如果有公司信息,则返回公司信息
|
return state.company // 如果有公司信息,则返回公司信息
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -136,7 +138,6 @@ export default {
|
||||||
state.project = project
|
state.project = project
|
||||||
if (JSON.stringify(project) === undefined){
|
if (JSON.stringify(project) === undefined){
|
||||||
project = []
|
project = []
|
||||||
|
|
||||||
}
|
}
|
||||||
localStorage.setItem(process.env.VUE_APP_PROJECT_KEY, JSON.stringify(project)) // 将所有项目信息存储到process.env.VUE_APP_PROJECT_KEY中
|
localStorage.setItem(process.env.VUE_APP_PROJECT_KEY, JSON.stringify(project)) // 将所有项目信息存储到process.env.VUE_APP_PROJECT_KEY中
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ import {formatFullPath} from '@/utils/i18n' // 路由国际化
|
||||||
import {filterMenu} from '@/utils/authority-utils' // 菜单权限过滤
|
import {filterMenu} from '@/utils/authority-utils' // 菜单权限过滤
|
||||||
import {getLocalSetting} from '@/utils/themeUtil' // 主题配置
|
import {getLocalSetting} from '@/utils/themeUtil' // 主题配置
|
||||||
import deepClone from 'lodash.clonedeep' // 深拷贝
|
import deepClone from 'lodash.clonedeep' // 深拷贝
|
||||||
|
// import Cookies from 'js-cookie'
|
||||||
|
// const Cookie = require('js-cookie')
|
||||||
|
|
||||||
const localSetting = getLocalSetting(true) // 获取本地主题配置
|
const localSetting = getLocalSetting(true) // 获取本地主题配置
|
||||||
const customTitlesStr = sessionStorage.getItem(process.env.VUE_APP_TBAS_TITLES_KEY) // 获取本地自定义标题
|
const customTitlesStr = sessionStorage.getItem(process.env.VUE_APP_TBAS_TITLES_KEY) // 获取本地自定义标题
|
||||||
|
|
@ -12,6 +14,7 @@ const customTitles = (customTitlesStr && JSON.parse(customTitlesStr)) || []
|
||||||
export default {
|
export default {
|
||||||
namespaced: true, // 命名空间
|
namespaced: true, // 命名空间
|
||||||
state: { // 状态
|
state: { // 状态
|
||||||
|
theme:undefined, // 主题
|
||||||
isMobile: false, // 是否是移动端
|
isMobile: false, // 是否是移动端
|
||||||
animates: ADMIN.animates, // 动画
|
animates: ADMIN.animates, // 动画
|
||||||
palettes: ADMIN.palettes, // 主题
|
palettes: ADMIN.palettes, // 主题
|
||||||
|
|
@ -55,9 +58,16 @@ export default {
|
||||||
state.isMobile = isMobile
|
state.isMobile = isMobile
|
||||||
},
|
},
|
||||||
setTheme (state, theme) { // 设置主题
|
setTheme (state, theme) { // 设置主题
|
||||||
|
// if (theme.color){
|
||||||
|
// Cookie.set(process.env.VUE_APP_THEME_COLOR_KEY,theme.color)
|
||||||
|
// }
|
||||||
|
// if (theme.mode){
|
||||||
|
// Cookie.set(process.env.VUE_APP_THEME_MODE_KEY,theme.mode)
|
||||||
|
// }
|
||||||
state.theme = theme
|
state.theme = theme
|
||||||
},
|
},
|
||||||
setLayout (state, layout) { // 设置布局
|
setLayout (state, layout) { // 设置布局
|
||||||
|
// Cookies.set(process.env.VUE_APP_LAYOUT_KEY,layout) // 设置cookie
|
||||||
state.layout = layout
|
state.layout = layout
|
||||||
},
|
},
|
||||||
setMultiPage (state, multiPage) { // 设置多页签
|
setMultiPage (state, multiPage) { // 设置多页签
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import routerMap from '@/router/async/router.map'
|
import routerMap from '@/router/router.map'
|
||||||
import { mergeI18nFromRoutes } from '@/utils/i18n'
|
import { mergeI18nFromRoutes } from '@/utils/i18n'
|
||||||
import Router from 'vue-router'
|
import Router from 'vue-router'
|
||||||
import deepMerge from 'deepmerge'
|
import deepMerge from 'deepmerge'
|
||||||
|
|
@ -148,7 +148,8 @@ function loadRoutes(routesConfig) { // 加载路由
|
||||||
|
|
||||||
// 根据权限过滤路由配置
|
// 根据权限过滤路由配置
|
||||||
const filteredRoutesConfig = filterRoutesConfig(routesConfig, Permission) // 根据权限过滤路由配置
|
const filteredRoutesConfig = filterRoutesConfig(routesConfig, Permission) // 根据权限过滤路由配置
|
||||||
console.log("=====filteredRoutesConfig:", filteredRoutesConfig)
|
// console.log("=====filteredRoutesConfig:", filteredRoutesConfig)
|
||||||
|
filteredRoutesConfig
|
||||||
// routesConfig = filteredRoutesConfig // 路由配置等于过滤后的路由配置
|
// routesConfig = filteredRoutesConfig // 路由配置等于过滤后的路由配置
|
||||||
|
|
||||||
// 如果开启了异步路由,则加载异步路由配置
|
// 如果开启了异步路由,则加载异步路由配置
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ const client = require('webpack-theme-color-replacer/client') // 加载webpack-t
|
||||||
const {theme} = require('../config') // 加载配置文件中的主题配置
|
const {theme} = require('../config') // 加载配置文件中的主题配置
|
||||||
const {getMenuColors, getAntdColors, getThemeToggleColors, getFunctionalColors} = require('../utils/colors') // 加载颜色配置文件
|
const {getMenuColors, getAntdColors, getThemeToggleColors, getFunctionalColors} = require('../utils/colors') // 加载颜色配置文件
|
||||||
const {ANTD} = require('../config/default') // 加载默认配置文件中的ANTD配置
|
const {ANTD} = require('../config/default') // 加载默认配置文件中的ANTD配置
|
||||||
|
const Cookie = require('js-cookie')
|
||||||
// 获取主题颜色
|
// 获取主题颜色
|
||||||
function getThemeColors(color, $theme) {
|
function getThemeColors(color, $theme) {
|
||||||
const _color = color || theme.color // 获取主题颜色
|
const _color = color || theme.color // 获取主题颜色
|
||||||
|
|
@ -86,8 +86,14 @@ function loadLocalTheme(localSetting) {
|
||||||
function getLocalSetting(loadTheme) {
|
function getLocalSetting(loadTheme) {
|
||||||
let localSetting = {}
|
let localSetting = {}
|
||||||
try {
|
try {
|
||||||
const localSettingStr = localStorage.getItem(process.env.VUE_APP_SETTING_KEY)
|
const localSettingCookieStr = Cookie.get(process.env.VUE_APP_THEME_SETTING_KEY)
|
||||||
localSetting = JSON.parse(localSettingStr)
|
const localSettingStr = localStorage.getItem(process.env.VUE_APP_THEME_SETTING_KEY)
|
||||||
|
if (!localSettingStr){
|
||||||
|
localSetting = JSON.parse(localSettingCookieStr)
|
||||||
|
}else{
|
||||||
|
localSetting = JSON.parse(localSettingStr)
|
||||||
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue