update 登录权限优化
@ -8,20 +8,14 @@ const IP = require('ip').address()
|
||||
|
||||
module.exports = {
|
||||
dev: {
|
||||
|
||||
// Paths
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: '/',
|
||||
proxyTable: {
|
||||
'/renren-fast-server': {
|
||||
target: 'http://demo.open.renren.io',
|
||||
'/lz_management': {
|
||||
target: 'https://tlzmanagement.ldxinyong.com',
|
||||
changeOrigin: true
|
||||
},
|
||||
'/sys': {
|
||||
// target: 'http://demo.open.renren.io',
|
||||
target: 'http://10.0.1.180:8001',
|
||||
changeOrigin: true
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
// Various Dev Server settings
|
||||
|
||||
37
package-lock.json
generated
@ -3835,6 +3835,21 @@
|
||||
"zrender": "4.3.0"
|
||||
}
|
||||
},
|
||||
"echarts-amap": {
|
||||
"version": "1.0.0-rc.6",
|
||||
"resolved": "https://registry.npmjs.org/echarts-amap/-/echarts-amap-1.0.0-rc.6.tgz",
|
||||
"integrity": "sha1-V4KnTa7lLtRM4/j2JXdWF4PwnhY="
|
||||
},
|
||||
"echarts-liquidfill": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/echarts-liquidfill/-/echarts-liquidfill-2.0.5.tgz",
|
||||
"integrity": "sha512-3G19W5ngoh1L3BXYuD34g0Vd30ORWvQtyxRuL+7vmOZ3FkF6xkgD4pfcCL7QVAQOr+XZ4OiD2ot6dNGsRhflcg=="
|
||||
},
|
||||
"echarts-wordcloud": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/echarts-wordcloud/-/echarts-wordcloud-1.1.3.tgz",
|
||||
"integrity": "sha512-Et8D5xEAoYkidmHun+hEH+2lF9dhCt6D0JJ390vlr2r/1zwhhZAbcL01CEvG93QcMcJpSvSPK8vRiGkTbMHRxg=="
|
||||
},
|
||||
"editorconfig": {
|
||||
"version": "0.15.3",
|
||||
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
|
||||
@ -13691,6 +13706,11 @@
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||
},
|
||||
"numerify": {
|
||||
"version": "1.2.9",
|
||||
"resolved": "https://registry.npmjs.org/numerify/-/numerify-1.2.9.tgz",
|
||||
"integrity": "sha512-X4QzQiytV5ZN3TVLhzbtFzjTarUNnaa1pgNDFqt7u7Nqhxe7FvY2eYrGt4WYHlYXDqgtfC/n/a5nJ2y0LijV8w=="
|
||||
},
|
||||
"nwmatcher": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
|
||||
@ -18402,6 +18422,11 @@
|
||||
"integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
|
||||
"dev": true
|
||||
},
|
||||
"utils-lite": {
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/utils-lite/-/utils-lite-0.1.10.tgz",
|
||||
"integrity": "sha512-jlHvdtI8MyWURF/3u+ufIjf1Cs5WjN6WZl9qO8dEkZsVjaI7X5YMUhaCFzkvB69ljt6fo4Dd7V/Oj2NJOFDFOQ=="
|
||||
},
|
||||
"utils-merge": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||
@ -18413,6 +18438,18 @@
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"v-charts": {
|
||||
"version": "1.19.0",
|
||||
"resolved": "https://registry.npmjs.org/v-charts/-/v-charts-1.19.0.tgz",
|
||||
"integrity": "sha512-vm2HBUmxAsXK0ivwce9LytcpqrItDA5JSPLYVxZXtiuoyhcn80XX1/3dPJd/1GqG1OYv3jfBo1s9ra4q8GowqA==",
|
||||
"requires": {
|
||||
"echarts-amap": "1.0.0-rc.6",
|
||||
"echarts-liquidfill": "^2.0.2",
|
||||
"echarts-wordcloud": "^1.1.3",
|
||||
"numerify": "1.2.9",
|
||||
"utils-lite": "0.1.10"
|
||||
}
|
||||
},
|
||||
"v8flags": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -2,5 +2,5 @@ import http from '../utils/http'
|
||||
|
||||
// 获取侧边菜单栏
|
||||
export const apiGetMenuNav = params => {
|
||||
return http({ url: '/renren-fast-server/sys/menu/nav', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/menu/nav', method: 'get', params })
|
||||
}
|
||||
|
||||
@ -5,27 +5,27 @@ import http from '../utils/http'
|
||||
*/
|
||||
// 获取管理员列表
|
||||
export const apiSysUserList = params => {
|
||||
return http({ url: '/renren-fast-server/sys/user/list', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/user/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 获取角色选择列表
|
||||
export const apiSysRoleSelect = params => {
|
||||
return http({ url: '/renren-fast-server/sys/role/select', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/role/select', method: 'get', params })
|
||||
}
|
||||
|
||||
// 用户编辑
|
||||
export const apiSysUserInfo = (params, id) => {
|
||||
return http({ url: `/renren-fast-server/sys/user/info${id}`, method: 'get', params })
|
||||
return http({ url: `/lz_management/sys/user/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 提交(用户)
|
||||
export const apiSysUserConfirm = (data, type) => {
|
||||
return http({ url: `/renren-fast-server/sys/user${type}`, method: 'post', data })
|
||||
return http({ url: `/lz_management/sys/user${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export const apiSysUserDelete = (data, type) => {
|
||||
return http({ url: `/renren-fast-server/sys/user/delete`, method: 'post', data })
|
||||
return http({ url: `/lz_management/sys/user/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -33,22 +33,22 @@ export const apiSysUserDelete = (data, type) => {
|
||||
*/
|
||||
// 角色管理列表
|
||||
export const apiSysRoleList = params => {
|
||||
return http({ url: '/renren-fast-server/sys/role/list', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/role/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 角色编辑
|
||||
export const apiSysRoleInfo = (params, id) => {
|
||||
return http({ url: `/renren-fast-server/sys/role/info${id}`, method: 'get', params })
|
||||
return http({ url: `/lz_management/sys/role/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 角色提交
|
||||
export const apiSysRoleConfirm = (data, type) => {
|
||||
return http({ url: `/renren-fast-server/sys/role${type}`, method: 'post', data })
|
||||
return http({ url: `/lz_management/sys/role${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export const apiSysRoleDelete = (data, type) => {
|
||||
return http({ url: `/renren-fast-server/sys/role/delete`, method: 'post', data })
|
||||
return http({ url: `/lz_management/sys/role/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -56,25 +56,25 @@ export const apiSysRoleDelete = (data, type) => {
|
||||
*/
|
||||
// 菜单管理列表
|
||||
export const apiSysMenuList = params => {
|
||||
return http({ url: '/renren-fast-server/sys/menu/list', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/menu/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 获取菜单选择列表
|
||||
export const apiSysMenuSelect = params => {
|
||||
return http({ url: '/renren-fast-server/sys/menu/select', method: 'get', params })
|
||||
return http({ url: '/lz_management/sys/menu/select', method: 'get', params })
|
||||
}
|
||||
|
||||
// 菜单编辑
|
||||
export const apiSysMenuInfo = (params, id) => {
|
||||
return http({ url: `/renren-fast-server/sys/menu/info${id}`, method: 'get', params })
|
||||
return http({ url: `/lz_management/sys/menu/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 菜单提交
|
||||
export const apiSysMenuConfirm = (data, type) => {
|
||||
return http({ url: `/renren-fast-server/sys/menu${type}`, method: 'post', data })
|
||||
return http({ url: `/lz_management/sys/menu${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 删除菜单
|
||||
export const apiSysMenuDelete = (params, id) => {
|
||||
return http({ url: `/renren-fast-server/sys/menu/delete/${id}`, method: 'get', params })
|
||||
return http({ url: `/lz_management/sys/menu/delete/${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
@ -2,20 +2,20 @@ import http from '../utils/http'
|
||||
|
||||
// 登录
|
||||
export const apiLogin = data => {
|
||||
return http({ url: '/renren-fast-server/sys/login', method: 'post', data })
|
||||
return http({ url: '/lz_management/sys/login', method: 'post', data })
|
||||
}
|
||||
|
||||
// 退出登录
|
||||
export const apiLogout = data => {
|
||||
return http({ url: '/renren-fast-server/sys/logout', method: 'post', data })
|
||||
return http({ url: '/lz_management/sys/logout', method: 'post', data })
|
||||
}
|
||||
|
||||
// 修改密码
|
||||
export const apiSysUserPassword = data => {
|
||||
return http({ url: '/renren-fast-server/sys/user/password', method: 'post', data })
|
||||
return http({ url: '/lz_management/sys/user/password', method: 'post', data })
|
||||
}
|
||||
|
||||
// 获取用户相关
|
||||
export const apiGetUserInfo = (params, id) => {
|
||||
return http({ url: `/renren-fast-server/sys/user/info${id}`, method: 'get', params })
|
||||
return http({ url: `/lz_management/sys/user/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
@ -1,3 +1,2 @@
|
||||
import '../element/element-ui'
|
||||
import '../element/element-ui-theme'
|
||||
import '../element/icons'
|
||||
|
||||
|
Before Width: | Height: | Size: 965 B After Width: | Height: | Size: 965 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 872 B After Width: | Height: | Size: 872 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 811 B After Width: | Height: | Size: 811 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 723 B After Width: | Height: | Size: 723 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
@ -74,7 +74,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysUserList } from '@/api/api_sys'
|
||||
// import { apiSysUserList } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
<employees-number />
|
||||
</el-card>
|
||||
<div class="staff-archives-chart">
|
||||
<el-card v-for="i in 10">
|
||||
<el-card v-for="i in 10" :key="i">
|
||||
<chart-form />
|
||||
</el-card>
|
||||
</div>
|
||||
@ -64,4 +64,4 @@ export default {
|
||||
width: 49.6%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
<div class="site-content">
|
||||
<div class="brand-info">
|
||||
<h2 class="brand-info__text">数字化管理系统</h2>
|
||||
<!-- <p class="brand-info__intro">renren-fast-vue基于vue、element-ui构建开发,实现renren-fast后台管理前端功能,提供一套更优的前端解决方案。</p> -->
|
||||
</div>
|
||||
<div class="login-main">
|
||||
<h3 class="login-title">用户登录</h3>
|
||||
@ -22,8 +21,7 @@
|
||||
</el-input>
|
||||
</el-col>
|
||||
<el-col :span="10" class="login-captcha">
|
||||
<img @click="handleGetImgCaptcha()" id="img-captcha" :src="'/renren-fast-server/captcha.jpg?uuid='+ this.dataForm.uuid">
|
||||
<!-- <img :src="captchaPath" @click="getCaptcha()" alt=""> -->
|
||||
<img @click="handleGetImgCaptcha()" id="img-captcha" :src="'/lz_management/captcha.jpg?uuid='+ this.dataForm.uuid">
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
@ -45,8 +43,8 @@
|
||||
data () {
|
||||
return {
|
||||
dataForm: {
|
||||
username: 'admin',
|
||||
password: 'admin',
|
||||
username: 'test',
|
||||
password: '1234567',
|
||||
uuid: '',
|
||||
captcha: ''
|
||||
},
|
||||
@ -59,7 +57,6 @@
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// this.getCaptcha()
|
||||
this.dataForm.uuid = getUUID()
|
||||
},
|
||||
methods: {
|
||||
@ -67,13 +64,12 @@
|
||||
handleGetImgCaptcha () {
|
||||
this.dataForm.uuid = getUUID()
|
||||
let imgSrc = document.getElementById('img-captcha')
|
||||
imgSrc.setAttribute('src', '/renren-fast-server/captcha.jpg?uuid=' + this.dataForm.uuid)
|
||||
imgSrc.setAttribute('src', '/lz_management/captcha.jpg?uuid=' + this.dataForm.uuid)
|
||||
},
|
||||
// 登录提交表单
|
||||
handleLogin () {
|
||||
let param = Object.assign(this.dataForm, { 'uuid': this.dataForm.uuid })
|
||||
apiLogin(param).then(res => {
|
||||
console.log('res==', res)
|
||||
if (res && res.code === 0) {
|
||||
this.$cookie.set('token', res.token)
|
||||
this.$router.replace({ name: 'home' })
|
||||
|
||||
@ -10,30 +10,6 @@
|
||||
<icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">首页</span>
|
||||
</el-menu-item>
|
||||
<el-submenu index="demo1">
|
||||
<template slot="title">
|
||||
<icon-svg name="shoucang" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span>组织管理</span>
|
||||
</template>
|
||||
<el-menu-item index="demo-echarts" @click="$router.push({ name: 'staff-manage' })">
|
||||
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">员工管理</span>
|
||||
</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-submenu index="demo2">
|
||||
<template slot="title">
|
||||
<icon-svg name="shoucang" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span>企业数字看板</span>
|
||||
</template>
|
||||
<el-menu-item index="demo-echarts" @click="$router.push({ name: 'staff-profile' })">
|
||||
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">员工概况</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="demo-ueditor" @click="$router.push({ name: 'staff-archives' })">
|
||||
<icon-svg name="editor" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">员工档案</span>
|
||||
</el-menu-item>
|
||||
</el-submenu>
|
||||
<sub-menu
|
||||
v-for="menu in menuList"
|
||||
:key="menu.menuId"
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
|
||||
<script>
|
||||
import { treeDataTranslate } from '@/utils'
|
||||
import Icon from '@/element/icons'
|
||||
import Icon from '@/icons'
|
||||
import { apiSysMenuSelect, apiSysMenuInfo, apiSysMenuConfirm } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="mod-menu">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-button v-if="isAuth('sys:menu:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
||||
<el-button v-if="isAuth('sys:menu:save')" type="primary" @click="handleAddOrUpdate()">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="dataList" row-key="menuId" border style="width: 100%;">
|
||||
@ -25,8 +25,8 @@
|
||||
<el-table-column prop="perms" header-align="center" align="center" width="150" :show-overflow-tooltip="true" label="授权标识"></el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="isAuth('sys:menu:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.menuId)">修改</el-button>
|
||||
<el-button v-if="isAuth('sys:menu:delete')" type="text" size="small" @click="deleteHandle(scope.row.menuId)">删除</el-button>
|
||||
<el-button v-if="isAuth('sys:menu:update')" type="text" size="small" @click="handleAddOrUpdate(scope.row.menuId)">修改</el-button>
|
||||
<el-button v-if="isAuth('sys:menu:delete')" type="text" size="small" @click="handleDelete(scope.row.menuId)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -64,14 +64,14 @@
|
||||
})
|
||||
},
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle (id) {
|
||||
handleAddOrUpdate (id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
deleteHandle (id) {
|
||||
handleDelete (id) {
|
||||
this.$confirm(`确定对[id=${id}]进行[删除]操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
|
||||
@ -147,7 +147,7 @@
|
||||
if (valid) {
|
||||
let params = {
|
||||
'userId': this.dataForm.id || undefined,
|
||||
'username': this.dataForm.userName,
|
||||
'username': this.dataForm.username,
|
||||
'password': this.dataForm.password,
|
||||
'salt': this.dataForm.salt,
|
||||
'email': this.dataForm.email,
|
||||
|
||||