From e547dfb950a19b2d54e2f06aadff7e2be15d6ced Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 09 八月 2023 17:17:23 +0800
Subject: [PATCH] 1.角色新增、修改、删除功能
---
src/utils/request.js | 3
src/permission.js | 4
src/store/modules/user.js | 37 +++------
src/api/basicSettings.js | 16 ++++
src/api/user.js | 9 ++
src/views/basicSettings/roleList.vue | 56 +++++++------
src/views/login/index.vue | 19 +++-
src/layout/components/Navbar.vue | 54 +++++++++++-
src/views/systemSetting/encodingRules.vue | 18 +--
9 files changed, 136 insertions(+), 80 deletions(-)
diff --git a/src/api/basicSettings.js b/src/api/basicSettings.js
index b9da38f..a022539 100644
--- a/src/api/basicSettings.js
+++ b/src/api/basicSettings.js
@@ -8,6 +8,22 @@
params: data
})
}
+// 瑙掕壊鏂板銆佺紪杈戜繚瀛�
+export function RoleAddUpdateSava(data) {
+ return request({
+ url: 'BasicSetting/RoleAddUpdateSava',
+ method: 'post',
+ params: data
+ })
+}
+// 瑙掕壊鍒犻櫎
+export function RoleDeleteSava(data) {
+ return request({
+ url: 'BasicSetting/RoleDeleteSava',
+ method: 'post',
+ params: data
+ })
+}
// 瑙掕壊鏉冮檺瑙掕壊缂栫爜銆佹搷浣滅缂栫爜鏌ヨ鑿滃崟鍙婃寜閽�
export function RolePermissionSearchRoleMenu(data) {
diff --git a/src/api/user.js b/src/api/user.js
index 661d814..f2d8863 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -22,7 +22,6 @@
// params: { token }
// })
// }
-
export function logout(data) {
return request({
url: '/Login/LoginOut',
@@ -30,6 +29,14 @@
params: data
})
}
+
+export function UserTorgData(data) {
+ return request({
+ url: '/Login/UserTorgData',
+ method: 'get',
+ params: data
+ })
+}
export function UpdateUserPassword(data) {
return request({
url: '/Login/UpdateUserPassword',
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 3bfde97..c625215 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -71,8 +71,36 @@
</el-badge>
</el-tooltip>
- <div style=" font-size: 18px;font-family: 'Microsoft YaHei';color:#AAAAAA;padding:0 8px;cursor: pointer">
- {{ stu_torgname }}
+ <div style=" font-size: 18px;font-family: 'Microsoft YaHei';color:#AAAAAA;cursor: pointer">
+ <!-- {{ stu_torgname }}-->
+
+ <el-dropdown class="avatar-container" trigger="hover">
+ <div class="avatar-wrapper">
+ <div style="display: flex;align-items: center;margin-top: -5px">
+
+ <!-- <i class="el-icon-user" style="font-weight: bolder;font-size: 18px;margin-right: 5px;color:#A7A7A7" />-->
+ <div style=" font-size: 18px;font-family: 'Microsoft YaHei';color:#AAAAAA">{{ stu_torgname }}</div>
+ </div>
+
+ </div>
+ <el-dropdown-menu
+ v-if="stu_torgname.toString().length>0"
+ slot="dropdown"
+ class="user-dropdown"
+ style="text-align: center"
+ >
+ <el-dropdown-item
+ v-for="(item,index) in $stu_torg"
+ :key="item.torg_code"
+ :divided="index!==0"
+ @click.native="changeTrog(item)"
+ >
+ <span style="display:block;">{{ item.torg_name }}</span>
+ </el-dropdown-item>
+
+ </el-dropdown-menu>
+ </el-dropdown>
+
</div>
<!-- <el-tooltip content="Global Size" effect="dark" placement="bottom">-->
<!-- <size-select id="size-select" class="right-menu-item hover-effect" />-->
@@ -164,7 +192,7 @@
import MenuItemEx from './Sidebar/MenuItemEx'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
-import { getCookie } from '@/utils/auth'
+import { getCookie, setCookie } from '@/utils/auth'
import { UpdateUserPassword } from '@/api/user'
import Search from '@/components/HeaderSearch'
import Screenfull from '@/components/Screenfull'
@@ -236,14 +264,20 @@
],
created() {
// this.$signalr.start()
- this.usercode = getCookie('navTabId')
- this.username = getCookie('username')
- this.stu_torgname = getCookie('stu_torgname')
+
+ this.usercode = localStorage.getItem('usercode')
+ this.username = localStorage.getItem('username')
+ Vue.prototype.$stu_torg = JSON.parse(localStorage.getItem('torg'))
+
+ if (Vue.prototype.$stu_torg.length > 0) {
+ this.stu_torgname = Vue.prototype.$stu_torg[0].torg_name
+ setCookie('torg_code', Vue.prototype.$stu_torg.find(i => i.torg_name === this.stu_torgname).torg_code)
+ }
},
mounted() {
// this.getHubConnectionBuilder()
- Vue.prototype.$ButtonData = JSON.parse(sessionStorage.getItem('ButtonData'))
+ Vue.prototype.$ButtonData = JSON.parse(localStorage.getItem('ButtonData'))
},
computed: {
...mapGetters([
@@ -275,6 +309,12 @@
}
},
methods: {
+ changeTrog(val) {
+ if (val.torg_name !== this.stu_torgname) {
+ this.stu_torgname = val.torg_name
+ setCookie('torg_code', val.torg_code)
+ }
+ },
// 寤虹珛hub杩炴帴
async getHubConnectionBuilder() {
const url = 'http://121.196.36.24:8019/chatHub'
diff --git a/src/permission.js b/src/permission.js
index f6c649f..b6ef584 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -38,9 +38,7 @@
// jwt瑙e瘑鑾峰彇鐢ㄦ埛缂栫爜
const jwt = decode(localStorage.getItem('token'))
- setCookie('usercode', jwt.usercode)
- setCookie('stu_torgname', jwt.stu_torgname)
- setCookie('username', jwt.username)
+ localStorage.setItem('usercode', jwt.usercode)
// 鎷夊彇鑿滃崟淇℃伅琛�
const menu = await store.dispatch('user/getMenu')
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index db81c80..e8bb9cf 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,6 +1,7 @@
-import { login, logout, getInfo, LoginMenu, LoginMenuCloud } from '@/api/user'
+import { login, logout, getInfo, LoginMenu, LoginMenuCloud, UserTorgData } from '@/api/user'
import { getToken, setToken, removeToken, setCookie, removeCookie, getCookie } from '@/utils/auth'
import { resetRouter } from '@/router'
+import { ButtonData } from '@/api/basicSettings'
const getDefaultState = () => {
return {
@@ -41,28 +42,7 @@
localStorage.setItem('token', res.data)
- // login({ UserName: '001', PassWord: 123, HOrgName: 1 }).then(response => {
- // const { data: res } = response
- // if (res.code === '200') {
- // setCookie('username', res.data.username)
- // setCookie('admin', res.data.usercode)
- // setCookie('navTabId', res.data.usercode)
- // setCookie('usertype', res.data.usertype)
- // setCookie('userid', res.data.userid)
- // setCookie('rediskey', res.data.rediskey)
- // setCookie('guid', res.data.guid)
- // setCookie('stu_torgcode', res.data.stu_torgcode)
- // setCookie('stu_torgname', res.data.stu_torgname)
- // setCookie('description', res.data.description)
- // }
- // console.log(res.code === '302', 8989)
- // if (res.code === '302') {
setCookie('code', res.code)
- // }
- // commit('SET_TOKEN', data.token)
- // setToken(res)
- // commit('SET_TOKEN', res)
- // setToken(res)
resolve()
}).catch(error => {
reject(error)
@@ -90,12 +70,21 @@
})
})
},
+
// get user menu
getMenu({ commit, state }) {
return new Promise((resolve, reject) => {
- console.log('杩涙潵浜�11111')
- LoginMenu({ usertype: 'PC', usercode: getCookie('usercode') }).then(res => {
+ console.log('鑿滃崟鎺ュ彛杩涙潵浜�11111')
+ LoginMenu({ usertype: 'PC', usercode: localStorage.getItem('usercode') }).then(res => {
if (res.code === '200') {
+ UserTorgData({ usercode: localStorage.getItem('usercode') }).then(res1 => {
+ localStorage.setItem('username', res1.data.user)
+ localStorage.setItem('torg', JSON.stringify(res1.data.torg))
+ })
+ ButtonData().then(res2 => {
+ localStorage.setItem('ButtonData', JSON.stringify(res2.data))
+ })
+
commit('SET_NAME', res.message)
commit('SET_MENU', res.data)
resolve(res.data)
diff --git a/src/utils/request.js b/src/utils/request.js
index 3061c33..265a3ba 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -60,7 +60,8 @@
// type: 'error',
// duration: 5 * 1000
// })
- removeCookie('usercode')
+ localStorage.removeItem('usercode')
+ localStorage.removeItem('torg')
localStorage.removeItem('token')
sessionStorage.removeItem('tabViews')
// setTimeout(() => {
diff --git a/src/views/basicSettings/roleList.vue b/src/views/basicSettings/roleList.vue
index 1af65de..ed294ec 100644
--- a/src/views/basicSettings/roleList.vue
+++ b/src/views/basicSettings/roleList.vue
@@ -42,7 +42,7 @@
<input
v-if="data.isEdit"
:ref="data.code"
- v-model="node.label"
+ v-model="data.name"
type="text"
@click.stop
@blur="roleSave(data)"
@@ -222,7 +222,7 @@
<script>
import waves from '@/directive/waves'
import {
- DataPermissions,
+ DataPermissions, RoleAddUpdateSava, RoleDeleteSava,
RolePermissionSava,
RolePermissionSearchRole,
RolePermissionSearchRoleMenu,
@@ -345,16 +345,6 @@
it.buttoncodelist.includes(j.buttoncode)
)
- // let temp = this.allButtonData.filter(j => j.menucode === it.menucode).length > 0 ? this.allButtonData.filter(j => j.menucode === it.menucode)[0].buttoncode : []
- // temp = temp.length > 0 ? temp.split(',') : []
-
- // it.buttonChecked = [] // 鏁版嵁鍥炴樉
- // it.buttoncodelist.forEach(j => {
- // if (temp.includes(j.buttoncode)) {
- // it.buttonChecked.push(j.buttonname)
- // }
- // })
-
it.buttoncodelist = it.buttoncodelist.map(j => j.buttonname)
}
@@ -364,8 +354,6 @@
it.datacodelist.includes(j.datacode)
).map(j => j.dataname)
}
- // const datacode = this.allButtonData.filter(j => j.menucode === it.menucode).length > 0 ? this.allButtonData.filter(j => j.menucode === it.menucode)[0].datacode : ''
- // it.dataChecked = datacode ? this.dataKeyValue.find(j => j.datacode === datacode).dataname : '' // 鏁版嵁鍥炴樉
})
item.expanded = true
@@ -588,7 +576,7 @@
},
// 瑙掕壊鍚嶇О鏂板
rolePlusClick() {
- this.treeLeft[0].roles.push({ code: 1234, name: '', isEdit: true })
+ this.treeLeft[0].roles.push({ code: '', name: '', isEdit: true })
},
// 瑙掕壊鍚嶇О淇敼
roleEditClick(self, node, data) {
@@ -601,16 +589,33 @@
// 瑙掕壊鍚嶇О鍒犻櫎
roleDeleteClick(self, node, data) {
// console.log(self, node, data)
- // this.treeLeft[0].roles.forEach((item, index) => {
- // if (item.code === data.code) {
- // this.treeLeft[0].roles.splice(index, 1) // 鏆傛椂鍏堝啓鎴愬墠绔垹闄わ紝鍚庢湡璋冪敤鎺ュ彛鍒犻櫎
- // }
- // })
+ const D = {
+ rolecode: data.code,
+ rolename: data.name,
+ type: this.activeName
+ }
+ RoleDeleteSava(D).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('瑙掕壊鍒犻櫎鎴愬姛锛�')
+ }
+ this.getRolePermissionSearchRole()
+ })
},
// 瑙掕壊鍚嶇О淇濆瓨 閲囩敤闃叉姈褰㈠紡
- roleSave: throttle(function(data) {
- data.isEdit = false
- console.log('鎵ц浜嗭紒')
+ roleSave: throttle(function(val) {
+ val.isEdit = false
+ const data = {
+ rolecode: val.code,
+ rolename: val.name,
+ type: val.code === '' ? 'Add' : 'Update'
+ }
+ console.log(data, '鎵ц浜嗭紒')
+ RoleAddUpdateSava(data).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(val.code === '' ? '瑙掕壊鏂板鎴愬姛锛�' : '瑙掕壊淇敼鎴愬姛锛�')
+ }
+ })
+ this.getRolePermissionSearchRole()
}, 1000, true),
// 椤甸潰鍕鹃�夊ソ淇濆瓨浜嬩欢
@@ -640,16 +645,13 @@
}
})
- // console.log(arr, 'arr')
const rolecode = this.$refs.treeLeftRef.getCurrentKey()
const res = await RolePermissionSava(JSON.stringify(arr), rolecode, this.activeName)
if (res.code === '200') {
const rolename = this.treeLeft[0].roles.find(i => i.code === rolecode).name
this.$notify.success(rolename + '鐨勮鑹叉潈闄愭彁浜ゆ垚鍔燂紒')
await this.getRolePermissionSearchRoleMenuButton(rolecode)
- // await this.getRolePermissionSearchRoleMenu(rolecode)
}
- // this.$forceUpdate()
},
// 鑾峰彇椤甸潰楂樺害
getHeight() {
@@ -687,7 +689,7 @@
width: 55px;
}
-.el-icon-plus:hover,.el-icon-edit:hover,.el-icon-delete:hover{
+.el-icon-plus:hover, .el-icon-edit:hover, .el-icon-delete:hover {
color: #000 !important;
}
</style>
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 7be91cc..4cb4a4b 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -143,7 +143,7 @@
<script>
import { validUsername } from '@/utils/validate'
import { getCookie, removeCookie, setCookie } from '@/utils/auth'
-import { ForcedOffline } from '@/api/user'
+import { ForcedOffline, UserTorgData } from '@/api/user'
import { ButtonData } from '@/api/basicSettings'
import Vue from 'vue'
@@ -219,14 +219,18 @@
if (valid) {
this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => {
- // console.log(getCookie('code') === '302', 9999)
if (getCookie('code') === '302') {
this.dialogVisible = true
} else {
this.$router.push({ path: this.redirect || '/' })
- ButtonData().then(res => {
- sessionStorage.setItem('ButtonData', JSON.stringify(res.data))
- })
+ // ButtonData().then(res => {
+ // localStorage.setItem('ButtonData', JSON.stringify(res.data))
+ // })
+ // UserTorgData({ usercode: getCookie('usercode') }).then(res => {
+ // setCookie('username', res.data.user)
+ // // sessionStorage.setItem('username', res.data.user)
+ // sessionStorage.setItem('torg', JSON.stringify(res.data.torg))
+ // })
}
this.loading = false
}).catch(() => {
@@ -445,7 +449,8 @@
-webkit-text-fill-color: #000 !important;
}
}
-::v-deep .el-dialog__title{
+
+::v-deep .el-dialog__title {
color: red;
}
@@ -462,6 +467,7 @@
display: flex;
justify-content: end;
}
+
::v-deep .dialogVisible .el-button--primary {
background-color: #42b983 !important;
height: 30px;
@@ -471,6 +477,7 @@
border: none;
padding: 0 20px;
}
+
::v-deep .dialogVisible .el-button--default {
height: 30px;
display: flex;
diff --git a/src/views/systemSetting/encodingRules.vue b/src/views/systemSetting/encodingRules.vue
index 9c49280..3fe663a 100644
--- a/src/views/systemSetting/encodingRules.vue
+++ b/src/views/systemSetting/encodingRules.vue
@@ -86,11 +86,7 @@
prop="filingdate"
label="缂栫爜鏍煎紡"
sortable="custom"
- >
- <template slot-scope="{row}">
- <div>{{ dateType.find(i => i.code === row.filingdate).name }}</div>
- </template>
- </el-table-column>
+ />
<el-table-column
prop="incbit"
label="鑷浣嶆暟"
@@ -254,9 +250,9 @@
},
encodingPre: '', // 缂栫爜棰勮
dateType: [
- { name: '骞存湀鏃�', code: 'YMD' },
- { name: '骞存湀', code: 'YM' },
- { name: '骞�', code: 'Y' }
+ { name: '骞存湀鏃�', code: '骞存湀鏃�' },
+ { name: '骞存湀', code: '骞存湀' },
+ { name: '骞�', code: '骞�' }
],
menuOptionsAll: [],
menuOptions: [],
@@ -288,11 +284,11 @@
handler(newValue, oldValue) {
const date = new Date()
let newDate = ''
- if (newValue.filingdate === 'YMD') {
+ if (newValue.filingdate === '骞存湀鏃�') {
newDate = date.getFullYear().toString().substring(2, 4) + '' + (date.getMonth() + 1 + '').padStart(2, '0') + '' + (date.getDate() + '').padStart(2, '0')
- } else if (newValue.filingdate === 'YM') {
+ } else if (newValue.filingdate === '骞存湀') {
newDate = date.getFullYear().toString().substring(2, 4) + '' + (date.getMonth() + 1 + '').padStart(2, '0')
- } else if (newValue.filingdate === 'Y') {
+ } else if (newValue.filingdate === '骞�') {
newDate = date.getFullYear().toString().substring(2, 4) + ''
}
this.encodingPre = newValue.prefix + '' + newDate + '' + (1 + '').padStart(newValue.incbit, '0')
--
Gitblit v1.9.3