From 7a83906e6714edea1568d10acb4eb0bc1aae81c6 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 10 十月 2023 14:10:58 +0800 Subject: [PATCH] 资源管理,令牌管理页面修改 --- src/api/api.js | 16 ++ src/views/maintenance/tokentool.vue | 64 ++++++++++-- src/store/index.js | 1 src/views/datamanage/resourceManagement.vue | 22 ++++ src/views/userManage/resourceManage.vue | 10 + src/views/userManage/roleManage.vue | 166 +++++++++++++++++++++++--------- 6 files changed, 214 insertions(+), 65 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index d965710..9250460 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -240,8 +240,10 @@ export function roleRes_selectResByRole(params) { return request.get('/roleRes/selectResByRole', { params: params }); } - - +//浠ょ墝绠$悊=>鍒涘缓鏂颁护鐗� +export function token_insertNewToken(params) { + return request.get('/token/insertNewToken', { params: params }); +} //瑙掕壊璧勬簮-鎵归噺鏂板 export function roleRes_inserts(params) { @@ -481,6 +483,14 @@ export function updateToken(params) { return request.post('/token/updateToken', params); } +//浠ょ墝绠$悊 =>澶辨晥 +export function token_updateExpireById(params) { + return request.get('/token/updateExpireById', { params: params }); +} + + + + //榛戠櫧鍚嶅崟鍒楄〃鑾峰彇 export function blacklistSelectByPageAndCount(params) { return request.get('/blacklist/selectByPageAndCount', { params: params }); @@ -1258,7 +1268,7 @@ export function colortab_insert(params) { return service.post('/colortab/insert', params); } -//棰滆壊琛ㄧ鐞�=>鎻掑叆涓�鏉� +//棰滆壊琛ㄧ鐞�=>淇敼涓�鏉� export function colortab_update(params) { return service.post('/colortab/update', params); } diff --git a/src/store/index.js b/src/store/index.js index 0fd9f4b..92d19a3 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -78,6 +78,7 @@ isProjectLayer: [], pigCode: null, listenTime: null, + resToken: null, }, mutations: { UPDATE_LISTEN_TIME(state, msg) { diff --git a/src/views/datamanage/resourceManagement.vue b/src/views/datamanage/resourceManagement.vue index af3bc84..89cdf11 100644 --- a/src/views/datamanage/resourceManagement.vue +++ b/src/views/datamanage/resourceManagement.vue @@ -631,6 +631,7 @@ res_deletes, res_updates, res_update, + token_insertNewToken } from "../../api/api"; import $ from 'jquery' import { getToken } from '../../utils/auth'; @@ -698,7 +699,7 @@ }, { label: '鍚敤浠g悊鍦板潃', value: 2 } - ] + ], resToken: null, }; }, watch: { @@ -709,6 +710,21 @@ window.removeEventListener("resize", this.onResize); }, methods: { + async getResToken() { + if (this.$store.state.resToken) { + this.resToken = this.$store.state.resToken + } else { + const data = await token_insertNewToken({ + type: 1, + min: 43200 + }); + if (data.code == 200) { + this.$store.state.resToken = data.result.token; + this.resToken = data.result.token; + } + } + }, + //鏄惁涓哄叏灞忓嚱鏁� onFullscreen(fullscreen) { this.isFullscreen = fullscreen; @@ -925,7 +941,7 @@ }, 1000); }, formatProxy(row, column) { - var token = getToken() + var token = this.resToken if (row.proxy && row.proxy.indexOf('{token}') > -1) { var val = row.proxy.replaceAll('{token}', token) return BASE_URL + val @@ -1156,11 +1172,13 @@ }, mounted() { window.addEventListener("resize", this.onResize); + this.getResToken(); this.calHeight(); this.getPerms(); this.setListDataStart(); this.optionsStart(); + }, }; </script> diff --git a/src/views/maintenance/tokentool.vue b/src/views/maintenance/tokentool.vue index 104b54c..53dae53 100644 --- a/src/views/maintenance/tokentool.vue +++ b/src/views/maintenance/tokentool.vue @@ -92,6 +92,7 @@ style="width: 100%" border height="calc(100% - 45px)" + @selection-change="handleSelectionChange" > <el-table-column type="selection" @@ -105,7 +106,17 @@ <el-table-column prop="token" :label="$t('operatManage.tokentoolObj.token')" - /> + > + <template slot-scope="scope"> + + <span + style="color: #F56C6C;" + v-if="!scope.row.status" + >{{scope.row.token }}</span> + + <span v-if="scope.row.status">{{scope.row.token }}</span> + </template> + </el-table-column> <el-table-column prop="duration" width="120" @@ -154,19 +165,21 @@ > <template slot-scope="scope"> <el-button + v-if="scope.row.status" type="danger" size="small" plain + @click="setExpireById(scope.$index, scope.row)" >{{ $t("operatManage.tokentoolObj.invalid") }}</el-button> - <el-button + <!-- <el-button type="info" size="small" plain >{{ $t("operatManage.tokentoolObj.renewal") - }}</el-button> + }}</el-button> --> <el-button v-if="menuStatus.update" @click="handleEdit(scope.$index, scope.row)" @@ -197,13 +210,13 @@ :visible.sync="InsertFormdialog" :before-close="handleClose" > - <div style="height: 500px; overflow: auto"> + <div style="height: 300px; overflow: auto"> <el-form ref="formData1" :model="insertform" label-position="top" > - <el-form-item + <!-- <el-form-item :label="$t('operatManage.tokentoolObj.token')" :label-width="formLabelWidth" > @@ -212,7 +225,7 @@ :placeholder="$t('common.pleaseInput')" style="width:85%" /> - </el-form-item> + </el-form-item> --> <el-form-item :label="$t('operatManage.tokentoolObj.duration')" :label-width="formLabelWidth" @@ -243,7 +256,7 @@ ></el-option> </el-select> </el-form-item> - <el-form-item + <!-- <el-form-item :label="$t('operatManage.tokentoolObj.ip')" :label-width="formLabelWidth" > @@ -252,7 +265,7 @@ :placeholder="$t('common.pleaseInput')" style="width:85%" /> - </el-form-item> + </el-form-item> --> </el-form> </div> <div @@ -294,6 +307,7 @@ v-model="upform.token" :placeholder="$t('common.pleaseInput')" style="width:85%" + disabled /> </el-form-item> <el-form-item @@ -335,6 +349,7 @@ v-model="upform.ip" :placeholder="$t('common.pleaseInput')" style="width:85%" + disabled /> </el-form-item> </el-form> @@ -370,6 +385,7 @@ insertToken, updateToken, deleteTokens, + token_updateExpireById } from "../../api/api.js"; export default { //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� @@ -425,6 +441,22 @@ window.removeEventListener("resize", this.onResize); }, methods: { + + async setExpireById(index, row) { + const data = await token_updateExpireById({ id: row.id }) + if (data.code == 200) { + this.$message({ + message: "鎴愬姛锛�", + type: "success", + }); + } else { + this.$message({ + message: "澶辫触锛�", + type: "warning", + }); + } + this.getRoleTabelData(); + }, onResize() { this.timer && clearTimeout(this.timer); this.timer = setTimeout(() => { @@ -453,6 +485,12 @@ }, async delTokenData() { var std = []; + if (this.multipleSelection.length <= 0) { + return this.$message({ + message: "鍒犻櫎澶辫触锛屾湭閫夋嫨瑕佸垹闄ょ殑鏁版嵁锛�", + + }); + } for (var i in this.multipleSelection) { std.push(this.multipleSelection[i].id); } @@ -655,8 +693,14 @@ if (data.code != 200) { this.$message.error("鍒楄〃璋冪敤澶辫触"); } - - this.tableData = data.result; + var val = data.result.filter((res) => { + res.status = false; + if (res.expire > new Date().getTime()) { + res.status = true + } + return res; + }) + this.tableData = val; this.count = data.count; }, handleSizeChange(val) { diff --git a/src/views/userManage/resourceManage.vue b/src/views/userManage/resourceManage.vue index b413418..b6e8e2a 100644 --- a/src/views/userManage/resourceManage.vue +++ b/src/views/userManage/resourceManage.vue @@ -723,6 +723,7 @@ upload_res, selectdirTab, selectdepTab, + } from "../../api/api.js"; import styleDirTree from "../datamanage/styleDirTree.vue"; import styleDepTree from "../datamanage/styleDepTree.vue"; @@ -783,6 +784,7 @@ styleVar: { height: "calc(100% - 109px)", }, + }; }, @@ -794,17 +796,22 @@ this.showPermsMenu(permsEntity[i]); } } - this.getRoleTabelData(); + + }, mounted() { window.addEventListener("resize", this.onResize); this.calHeight(); + + + this.getRoleTabelData(); }, beforeDestroy() { this.timer && clearTimeout(this.timer); window.removeEventListener("resize", this.onResize); }, methods: { + onResize() { this.timer && clearTimeout(this.timer); this.timer = setTimeout(() => { @@ -1118,6 +1125,7 @@ if (data.code != 200) { this.$message.error("鍒楄〃璋冪敤澶辫触"); } + debugger this.tableData = data.result; this.count = data.count; }, diff --git a/src/views/userManage/roleManage.vue b/src/views/userManage/roleManage.vue index a4c5585..794d299 100644 --- a/src/views/userManage/roleManage.vue +++ b/src/views/userManage/roleManage.vue @@ -1,14 +1,19 @@ <template> <div class="logLog_box"> - <My-bread - :list="[ + <My-bread :list="[ `${$t('operatManage.operatManage')}`, `${$t('userManage.roleManage')}`, - ]" - ></My-bread> + ]"></My-bread> <el-divider /> - <div class="inquire subpage_Div" ref="container"> - <el-form ref="ruleForm" :model="roleForm" :inline="true"> + <div + class="inquire subpage_Div" + ref="container" + > + <el-form + ref="ruleForm" + :model="roleForm" + :inline="true" + > <div class="flex_box"> <div style="margin-right: auto"> <el-form-item @@ -43,14 +48,21 @@ :placeholder="$t('common.pleaseInput')" /> --> </el-form-item> - <el-form-item :label="$t('userManage.RM.roleName')" prop="username"> + <el-form-item + :label="$t('userManage.RM.roleName')" + prop="username" + > <el-input v-model="roleForm.username" :placeholder="$t('userManage.RM.roleNameHolder')" size="small" style="width: 200px" > - <i slot="suffix" class="el-icon-search" @click="onSubmit"></i> + <i + slot="suffix" + class="el-icon-search" + @click="onSubmit" + ></i> </el-input> </el-form-item> </div> @@ -70,10 +82,9 @@ size="small" @click="setInsertFormdialog" v-if="menuStatus.insert" - ><i class="el-icon-circle-plus-outline"></i> {{ + ><i class="el-icon-circle-plus-outline"></i> {{ $t("userManage.RM.add") - }}</el-button - > + }}</el-button> </el-form-item> <el-form-item> <el-button @@ -81,17 +92,18 @@ size="small" @click="handleDelete()" v-if="menuStatus.delete" - ><i class="el-icon-delete"></i> {{ + ><i class="el-icon-delete"></i> {{ $t("common.delete") - }}</el-button - > + }}</el-button> </el-form-item> <el-form-item> - <el-button type="info" size="small" @click="resetForm('ruleForm')" - ><i class="el-icon-delete"></i> {{ + <el-button + type="info" + size="small" + @click="resetForm('ruleForm')" + ><i class="el-icon-delete"></i> {{ $t("userManage.RM.reset") - }}</el-button - > + }}</el-button> </el-form-item> </div> </div> @@ -144,7 +156,10 @@ </el-form> </div> <div class="dividing-line"></div> - <div class="table_box subpage_Div" :style="styleVar"> + <div + class="table_box subpage_Div" + :style="styleVar" + > <el-table :data="tableData" style="width: 100%" @@ -152,14 +167,21 @@ height="calc(100% - 45px)" @selection-change="handleSelectionChange" > - <el-table-column type="selection" width="55" /> + <el-table-column + type="selection" + width="55" + /> <el-table-column align="center" type="index" :label="$t('userManage.RM.index')" width="70px" /> - <el-table-column align="center" prop="id" v-if="false" /> + <el-table-column + align="center" + prop="id" + v-if="false" + /> <el-table-column align="center" prop="name" @@ -226,20 +248,21 @@ @click="showDetail(scope.$index, scope.row)" size="small" plain - >{{ $t("common.see") }}</el-button - > + >{{ $t("common.see") }}</el-button> <el-button v-if="menuStatus.update" type="warning" @click="handleEdit(scope.$index, scope.row)" size="small" plain - >{{ $t("common.update") }}</el-button - > + >{{ $t("common.update") }}</el-button> </template> </el-table-column> </el-table> - <div style="margin-top: 10px" class="pagination_box"> + <div + style="margin-top: 10px" + class="pagination_box" + > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" @@ -260,7 +283,10 @@ :visible.sync="InsertFormdialog" > <div style="height: 500px; overflow: auto"> - <el-form :model="insertform" label-position="top"> + <el-form + :model="insertform" + label-position="top" + > <el-form-item :label="$t('userManage.RM.roleName')" :label-width="formLabelWidth" @@ -374,11 +400,21 @@ </el-form-item> </el-form> </div> - <div slot="footer" class="dialog-footer"> - <el-button size="small" @click="insertFromClose">{{ + <div + slot="footer" + class="dialog-footer" + > + <el-button + size="small" + @click="insertFromClose" + >{{ $t("common.close") }}</el-button> - <el-button type="primary" size="small" @click="insertFromData">{{ + <el-button + type="primary" + size="small" + @click="insertFromData" + >{{ $t("common.confirm") }}</el-button> </div> @@ -389,7 +425,10 @@ :before-close="handleCloseEdit" > <div style="height: 500px; overflow: auto"> - <el-form :model="updateform" label-position="top"> + <el-form + :model="updateform" + label-position="top" + > <el-form-item :label="$t('userManage.RM.roleName')" :label-width="formLabelWidth" @@ -451,7 +490,10 @@ v-model="updateform.isAdmin" label="0" >鍚�</el-radio> --> - <el-select style="width: 85%" v-model="updateform.isAdmin"> + <el-select + style="width: 85%" + v-model="updateform.isAdmin" + > <el-option v-for="item in options" :key="item.value" @@ -482,33 +524,59 @@ </el-form-item> </el-form> </div> - <div slot="footer" class="dialog-footer"> - <el-button size="small" @click="updateFromClose">{{ + <div + slot="footer" + class="dialog-footer" + > + <el-button + size="small" + @click="updateFromClose" + >{{ $t("common.close") }}</el-button> - <el-button type="primary" size="small" @click="updateFromData">{{ + <el-button + type="primary" + size="small" + @click="updateFromData" + >{{ $t("common.confirm") }}</el-button> </div> </el-dialog> - <div class="leftTree subpage_Div box_div" v-if="showCata"> + <div + class="leftTree subpage_Div box_div" + v-if="showCata" + > <div class="treeBox"> <role-dep-tree></role-dep-tree> </div> <div class="btnBox"> - <el-button type="primary" size="small" @click="selectCataName" - >纭畾</el-button - > - <el-button type="info" size="small" @click="showCata = false" - >鍙栨秷</el-button - > + <el-button + type="primary" + size="small" + @click="selectCataName" + >纭畾</el-button> + <el-button + type="info" + size="small" + @click="showCata = false" + >鍙栨秷</el-button> </div> </div> - <div class="infoBox_box" v-show="showinfoBox"> + <div + class="infoBox_box" + v-show="showinfoBox" + > <div class="infoBox box_div subpage_Div"> - <div slot="header" class="clearfix"> + <div + slot="header" + class="clearfix" + > <span>{{ $t("dataManage.styleObj.deInformation") }}</span> - <div style="float: right; cursor: pointer" @click="closeDetial"> + <div + style="float: right; cursor: pointer" + @click="closeDetial" + > <i class="el-icon-close"></i> </div> </div> @@ -808,7 +876,7 @@ this.InsertFormdialog = false; this.insertform = {}; }) - .catch((_) => {}); + .catch((_) => { }); }, async insertFromData() { if (this.insertform.depValue == null) { @@ -841,7 +909,7 @@ this.updateform = {}; this.getRoleTabelData(); }) - .catch((_) => {}); + .catch((_) => { }); }, async updateFromData() { if (this.updateform.depValue == null) { @@ -948,7 +1016,7 @@ .then((_) => { this.InsertFormdialog = false; }) - .catch((_) => {}); + .catch((_) => { }); }, handleCloseEdit() { this.$confirm("鍏抽棴鍚庢棤娉曚繚瀛橈紝鏄惁鍏抽棴?") @@ -956,7 +1024,7 @@ this.UpdateFormdialog = false; this.getRoleTabelData(); }) - .catch((_) => {}); + .catch((_) => { }); }, }, beforeDestroy() { -- Gitblit v1.9.3