From a6ad430fbe12bd634304abbca659605c32df348c Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期一, 10 十月 2022 16:02:51 +0800 Subject: [PATCH] 1 --- src/api/api.js | 27 src/assets/lang/zh.js | 27 + src/views/userManage/authorityManage.vue | 487 +++++++++++++++++----- src/assets/lang/en.js | 25 + src/components/navMenu.vue | 125 ++-- src/views/userManage/resourceManage.vue | 608 +++++++++++++++++++++++++++ src/router/index.js | 17 7 files changed, 1,124 insertions(+), 192 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index 82a02b3..f8c286c 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -122,18 +122,19 @@ //璇锋眰鍦板潃 return request.get('/resOp/selectByPageAndCount', { params: params }); } -//鑾峰彇鍏挜鐢ㄤ簬鍔犲瘑 -export function getPublicKey(params) { - //璇锋眰鍦板潃 - return request.get('/sign/getPublicKey', { params: params }); +//鏉冮檺绠$悊娣诲姞 +export function insertAuth(params) { + return request.post('/auth/insertAuth', params); } -//鐧诲綍 -export function login(params) { - //璇锋眰鍦板潃 - return request.post('/sign/login', params ); +//鏉冮檺绠$悊淇敼 +export function updateAuth(params) { + return request.post('/auth/updateAuth', params); } -//閫�鍑虹櫥褰� -export function logout(params) { - //璇锋眰鍦板潃 - return request.get('/sign/logout', { params: params } ); -} \ No newline at end of file +//鏉冮檺绠$悊鍒犻櫎 +export function deleteAuths(params) { + return request.get('/auth/deleteAuths', { params: params }); +} +//璧勬簮绠$悊鍒楄〃 +export function select_Res_ByPageAndCount(params) { + return request.get('/res/selectByPageAndCount', { params: params }); +} diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 46f333d..3c2eb48 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -352,6 +352,15 @@ userManage: 'User Manage', userInfoManage: 'User Information Manage', userInfoObj: { + addPermission: 'Add Permission', + editPermission: 'Modify Permission', + name: 'Name', + tag: 'Tag', + createUser: 'Creator ID', + createTime: 'Creation Time', + updateUser: 'Updater ID', + updateTime: 'Update Time', + bak: 'Remarks', userStatus: 'User Status', all: 'All', normal: 'Normal', @@ -518,6 +527,22 @@ one: 'A picture', }, authorityManage: 'Permission management', + resManage: 'Resource Management', + resManageObj: { + addResource: 'Add resource information', + name: 'Resource Name', + server: 'Service Address', + source: 'Original address', + depid: 'Unit ID', + dirid: 'Directory ID', + descr: 'Describe', + img: 'Preview', + createUser: 'Creator ID', + createTime: 'Creation Time', + updateUser: 'Updater ID', + updateTime: 'Update Time', + bak: 'Remarks', + }, }, }; diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 07ce7cb..284f81c 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -329,7 +329,6 @@ username: '鐢ㄦ埛鍚�', applicationProgram: '搴旂敤绋嬪簭', describe: '鎻忚堪', - }, themaic: { name: '涓撻鍦板浘', @@ -353,7 +352,17 @@ userManage: '鐢ㄦ埛绠$悊', userInfoManage: '鐢ㄦ埛淇℃伅绠$悊', authorityManage: '鏉冮檺绠$悊', + userInfoObj: { + addPermission: '娣诲姞鏉冮檺', + editPermission: '淇敼鏉冮檺', + name: '鍚嶇О', + tag: '鏍囪瘑', + createUser: '鍒涘缓浜篒D', + createTime: '鍒涘缓鏃堕棿', + updateUser: '鏇存柊浜篒D', + updateTime: '鏇存柊鏃堕棿', + bak: '澶囨敞', userStatus: '鐢ㄦ埛鐘舵��', all: '鍏ㄩ儴', normal: '姝e父', @@ -521,6 +530,22 @@ operate: '鎿嶄綔', one: '涓�寮犲浘', }, + resManage: '璧勬簮绠$悊', + resManageObj: { + addResource: '娣诲姞璧勬簮淇℃伅', + name: '璧勬簮鍚嶇О', + server: '鏈嶅姟鍦板潃', + source: '鍘熷鍦板潃', + depid: '鍗曚綅ID', + dirid: '鐩綍ID', + descr: '鎻忚堪', + img: '棰勮鍥�', + createUser: '鍒涘缓浜篒D', + createTime: '鍒涘缓鏃堕棿', + updateUser: '鏇存柊浜篒D', + updateTime: '鏇存柊鏃堕棿', + bak: '澶囨敞', + }, }, }; diff --git a/src/components/navMenu.vue b/src/components/navMenu.vue index ba6a020..f54eb4b 100644 --- a/src/components/navMenu.vue +++ b/src/components/navMenu.vue @@ -18,120 +18,123 @@ > <el-submenu index="3" class="faSub"> <template slot="title"> - <span>{{ $t("synthesis.synthesis") }}</span> + <span>{{ $t('synthesis.synthesis') }}</span> </template> <el-menu-item index="Synthesis">{{ - $t("synthesis.synthesis") + $t('synthesis.synthesis') }}</el-menu-item> <el-menu-item index="Thematic">{{ - $t("synthesis.themaic") + $t('synthesis.themaic') }}</el-menu-item> <el-menu-item index="Archive">{{ - $t("synthesis.archive") + $t('synthesis.archive') }}</el-menu-item> </el-submenu> <el-submenu index="1" class="faSub"> <template slot="title"> - <span>{{ $t("dataManage.dataManage") }}</span> + <span>{{ $t('dataManage.dataManage') }}</span> </template> <el-menu-item index="catalogueManage">{{ - $t("dataManage.catalogueManage") + $t('dataManage.catalogueManage') }}</el-menu-item> <el-menu-item index="dataUpdata">{{ - $t("dataManage.dataUpdata") + $t('dataManage.dataUpdata') }}</el-menu-item> <el-menu-item index="metadataManage">{{ - $t("dataManage.metadataManage") + $t('dataManage.metadataManage') }}</el-menu-item> <el-menu-item index="dataLoading">{{ - $t("dataManage.dataLoading") + $t('dataManage.dataLoading') }}</el-menu-item> <el-menu-item index="SpatialData">{{ - $t("dataManage.SpatialData") + $t('dataManage.SpatialData') }}</el-menu-item> <el-menu-item index="versionManage">{{ - $t("dataManage.versionManage") + $t('dataManage.versionManage') }}</el-menu-item> <el-menu-item index="dictionaryManage">{{ - $t("dataManage.dictionaryManage") + $t('dataManage.dictionaryManage') }}</el-menu-item> <el-menu-item index="styleManage">{{ - $t("dataManage.styleManage") + $t('dataManage.styleManage') }}</el-menu-item> </el-submenu> <el-submenu index="2" class="faSub"> <template slot="title"> - <span>{{ $t("operatManage.operatManage") }}</span> + <span>{{ $t('operatManage.operatManage') }}</span> </template> <el-submenu index="2-2"> <template slot="title">{{ - $t("operatManage.systemLayout") + $t('operatManage.systemLayout') }}</template> <el-menu-item index="menuSettings">{{ - $t("operatManage.menuSettings") + $t('operatManage.menuSettings') }}</el-menu-item> <el-menu-item index="parameterConfiguration">{{ - $t("operatManage.parameterConfiguration") + $t('operatManage.parameterConfiguration') }}</el-menu-item> <el-menu-item index="rests">{{ - $t("operatManage.rests") + $t('operatManage.rests') }}</el-menu-item> </el-submenu> <el-menu-item index="authorityManagement">{{ - $t("operatManage.authorityManagement") + $t('operatManage.authorityManagement') }}</el-menu-item> <el-menu-item index="safetyManagement">{{ - $t("operatManage.safetyManagement") + $t('operatManage.safetyManagement') }}</el-menu-item> <el-submenu index="2-5"> <template slot="title">{{ - $t("operatManage.operationMonitoring") + $t('operatManage.operationMonitoring') }}</template> <el-menu-item index="eventlogManage">{{ - $t("operatManage.ResourceLog") + $t('operatManage.ResourceLog') }}</el-menu-item> <el-menu-item index="logLog">{{ - $t("operatManage.logLog") + $t('operatManage.logLog') }}</el-menu-item> <el-menu-item index="operationLog">{{ - $t("operatManage.operationLog") + $t('operatManage.operationLog') }}</el-menu-item> <el-menu-item index="databaseMonitoring">{{ - $t("operatManage.databaseMonitoring") + $t('operatManage.databaseMonitoring') }}</el-menu-item> <el-menu-item index="systemMonitoring">{{ - $t("operatManage.systemMonitoring") + $t('operatManage.systemMonitoring') }}</el-menu-item> <el-menu-item index="blackwhiteList" - >{{ $t("operatManage.blackwhiteList") }} + >{{ $t('operatManage.blackwhiteList') }} </el-menu-item> <el-menu-item index="tokentool">{{ - $t("operatManage.tokentool") + $t('operatManage.tokentool') }}</el-menu-item> </el-submenu> </el-submenu> <el-submenu index="4" class="faSub"> <template slot="title"> - <span>{{ $t("userManage.userManage") }}</span> + <span>{{ $t('userManage.userManage') }}</span> </template> <el-menu-item index="userInfoManage">{{ - $t("userManage.userInfoManage") + $t('userManage.userInfoManage') }}</el-menu-item> <el-menu-item index="orgManage">{{ - $t("userManage.orgManage") + $t('userManage.orgManage') }}</el-menu-item> <el-menu-item index="userAuditing">{{ - $t("userManage.userAuditing") + $t('userManage.userAuditing') }}</el-menu-item> <el-menu-item index="roleManage">{{ - $t("userManage.roleManage") + $t('userManage.roleManage') }}</el-menu-item> <el-menu-item index="groupManage">{{ - $t("userManage.groupManage") + $t('userManage.groupManage') }}</el-menu-item> <el-menu-item index="authorityManage">{{ - $t("userManage.authorityManage") + $t('userManage.authorityManage') + }}</el-menu-item> + <el-menu-item index="resourceManage">{{ + $t('userManage.resManage') }}</el-menu-item> </el-submenu> <!-- <el-submenu index="5" class="faSub"> @@ -162,74 +165,74 @@ </template> <script> -import { logout } from "@/api/api"; -import { removeToken,getToken } from "@/utils/auth"; +import { logout } from '@/api/api'; +import { removeToken, getToken } from '@/utils/auth'; export default { - name: "navMenu", + name: 'navMenu', //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� data() { return { - lang: "en", + lang: 'en', }; }, methods: { logOut() { - this.$confirm("纭鏄惁閫�鍑虹櫥褰�?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", + this.$confirm('纭鏄惁閫�鍑虹櫥褰�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', }) .then(async () => { - const data = await logout({token:getToken()}); + const data = await logout({ token: getToken() }); console.log(data); if (data.code != 200) { - return this.$message.error("閫�鍑虹櫥褰曞け璐�"); + return this.$message.error('閫�鍑虹櫥褰曞け璐�'); } removeToken(); - this.$router.push("/login"); + this.$router.push('/login'); this.$message({ - message: "閫�鍑虹櫥褰曟垚鍔�", - type: "success", + message: '閫�鍑虹櫥褰曟垚鍔�', + type: 'success', }); }) .catch(() => { this.$message({ - type: "info", - message: "宸插彇娑�", + type: 'info', + message: '宸插彇娑�', }); }); }, handleOpen(key, keyPath) { if ( - keyPath[1] != "dataLoading" && - keyPath[1] != "2-2" && - keyPath[1] != "2-5" + keyPath[1] != 'dataLoading' && + keyPath[1] != '2-2' && + keyPath[1] != '2-5' ) this.$router.push(keyPath[1]); }, handleClose(key, keyPath) { if ( - keyPath[1] != "dataLoading" && - keyPath[1] != "2-5" && - keyPath[1] != "2-2" + keyPath[1] != 'dataLoading' && + keyPath[1] != '2-5' && + keyPath[1] != '2-2' ) this.$router.push(keyPath[1]); }, handleselect(index) { if (index != null) { - this.$emit("shwoMapView", false); + this.$emit('shwoMapView', false); } }, showChange() { - this.$emit("shwoMapView", true); + this.$emit('shwoMapView', true); }, switchLang() { - if (this.lang == "en") { + if (this.lang == 'en') { this.$i18n.locale = this.lang; - this.lang = "zh"; + this.lang = 'zh'; } else { this.$i18n.locale = this.lang; - this.lang = "en"; + this.lang = 'en'; } }, }, diff --git a/src/router/index.js b/src/router/index.js index 27fcf41..f9898e9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,6 +1,6 @@ import Vue from 'vue'; import VueRouter from 'vue-router'; -import { getToken } from "@/utils/auth"; // get token from cookie +import { getToken } from '@/utils/auth'; // get token from cookie import Home from '../views/Home.vue'; import login from '../components/login'; import Synthesis from '../views/Synthesis/index.vue'; //缁煎悎灞曠ず @@ -36,7 +36,7 @@ import roleManage from '../views/userManage/roleManage.vue'; // 鐢ㄦ埛绠$悊妯″潡 import groupManage from '../views/userManage/groupManage.vue'; // 鐢ㄦ埛绠$悊妯″潡 import authorityManage from '@/views/userManage/authorityManage.vue'; //鐢ㄦ埛绠$悊-鏉冮檺绠$悊 - +import resourceManage from '@/views/userManage/resourceManage.vue'; //鐢ㄦ埛绠$悊-璧勬簮绠$悊 // 缇ょ粍绠$悊 Vue.use(VueRouter); @@ -50,7 +50,7 @@ path: '/', name: 'Home', component: Home, - redirect: "/Synthesis", + redirect: '/Synthesis', children: [ { path: '/Synthesis', @@ -328,6 +328,15 @@ requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰� }, }, + { + path: '/resourceManage', + component: resourceManage, + name: 'resourceManage', + meta: { + title: '璧勬簮绠$悊', + requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰� + }, + }, ], }, ]; @@ -345,7 +354,7 @@ next(); } else { next({ - path: "/login", + path: '/login', }); } } else { diff --git a/src/views/userManage/authorityManage.vue b/src/views/userManage/authorityManage.vue index a4234a1..2d30d6c 100644 --- a/src/views/userManage/authorityManage.vue +++ b/src/views/userManage/authorityManage.vue @@ -8,19 +8,43 @@ ></My-bread> <el-divider /> <div class="power_quire"> - <el-form ref="form" :model="form" label-width="100px" :inline="true"> + <el-form ref="form" :model="ruleForm" label-width="100px" :inline="true"> <el-form-item :label="$t('common.username')"> - <el-input v-model="form.name"></el-input> + <el-input v-model="ruleForm.name"></el-input> </el-form-item> <el-form-item> - <el-button icon="el-icon-search" type="primary" plain>{{ + <el-button @click="submitForm('ruleForm')" icon="el-icon-search" type="primary">{{ $t('common.iquery') }}</el-button> + <el-button + @click="resetForm('ruleForm')" + icon="el-icon-refresh" + type="info" + >{{ $t('common.empty') }}</el-button + > + <el-button + @click="InsertFormdialog = true" + icon="el-icon-edit" + type="success" + >{{ $t('common.append') }}</el-button + > + <el-button + @click="DelFromData" + icon="el-icon-delete" + type="danger" + >{{ $t('common.delete') }}</el-button + > </el-form-item> </el-form> </div> <div class="table_box"> - <el-table :data="tableData" border style="width: 100%"> + <el-table + :data="tableData" + style="width: 100%" + fit + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" /> <el-table-column align="center" type="index" @@ -28,39 +52,47 @@ width="70px" /> <el-table-column - prop="date" - align="center" - :label="$t('userManage.userInfoObj.username')" - > - </el-table-column> - <el-table-column prop="name" align="center" - :label="$t('userManage.userInfoObj.affiliatedUnit')" + :label="$t('userManage.userInfoObj.name')" > </el-table-column> <el-table-column - prop="province" + prop="tag" align="center" - :label="$t('userManage.userInfoObj.mobileNumber')" + :label="$t('userManage.userInfoObj.tag')" > </el-table-column> <el-table-column - prop="city" + prop="createUser" align="center" - :label="$t('userManage.userInfoObj.post')" + :label="$t('userManage.userInfoObj.createUser')" > </el-table-column> <el-table-column - prop="address" + prop="createTime" align="center" - :label="$t('userManage.userInfoObj.userstate')" + :label="$t('userManage.userInfoObj.createTime')" + :formatter="formatTime" > </el-table-column> <el-table-column - prop="zip" + prop="updateUser" align="center" - :label="$t('userManage.userInfoObj.addtime')" + :label="$t('userManage.userInfoObj.updateUser')" + > + </el-table-column> + <el-table-column + prop="updateTime" + align="center" + :label="$t('userManage.userInfoObj.updateTime')" + :formatter="formatTime" + > + </el-table-column> + <el-table-column + prop="bak" + align="center" + :label="$t('userManage.userInfoObj.bak')" > </el-table-column> <el-table-column @@ -70,14 +102,19 @@ > <template slot-scope="scope"> <el-button - @click="handleClick(scope.row)" + @click="showDetail(scope.$index, scope.row)" + type="primary" + plain + size="small" + >{{ $t('common.see') }}</el-button + > + <el-button + @click="handleEdit(scope.$index, scope.row)" type="warning" size="small" + plain >{{ $t('common.edit') }}</el-button > - <el-button type="danger" size="small">{{ - $t('common.delete') - }}</el-button> </template> </el-table-column> </el-table> @@ -86,15 +123,63 @@ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="currentPage" + :current-page="listData.pageIndex" :page-sizes="[10, 20, 30, 40]" - :page-size="10" + :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" - :total="9" + :total="count" > </el-pagination> </div> - + <div class="infoBox" v-show="showinfoBox"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span>{{ $t('dataManage.styleObj.deInformation') }}</span> + <div style="float: right; cursor: pointer" @click="closeDetial" > + <i class="el-icon-close"></i> + </div> + </div> + <div class="contentBox"> + <p> + <label> {{ $t('userManage.userInfoObj.name') }}:</label> + <label class="boxlabel">{{ itemdetail.name }}</label> + </p> + <el-divider></el-divider> + <p> + <p> + <label> {{ $t('userManage.userInfoObj.tag') }}:</label> + <label class="boxlabel">{{ itemdetail.tag }}</label> + </p> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.createUser') }}:</label> + <label class="boxlabel">{{ itemdetail.createUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.createTime') }}:</label> + <label class="boxlabel">{{ itemdetail.createTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label> + <label class="boxlabel">{{ itemdetail.updateUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label> + <label class="boxlabel">{{ itemdetail.updateTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.bak') }}:</label> + <label class="boxlabel">{{ itemdetail.bak }}</label> + </p> + <el-divider></el-divider> + </div> + </el-card> + </div> <el-dialog :title="dialogTitle" :visible.sync="isTransfer" @@ -115,111 +200,234 @@ }}</el-button> <el-button type="info" size="small">{{ $t('common.close') }}</el-button> </el-dialog> + <el-dialog + :title="$t('userManage.userInfoObj.addPermission')" + style="overflow: hidden" + :visible.sync="InsertFormdialog" + width="30%" + > + <el-form :model="insertform"> + <el-form-item + :label="$t('userManage.userInfoObj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.name" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.tag')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.tag" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.bak')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.bak" autocomplete="off"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="insertFromDataClose">{{ + $t('common.close') + }}</el-button> + <el-button type="primary" @click="insertFromData">{{ + $t('common.confirm') + }}</el-button> + </div> + </el-dialog> + <el-dialog + :title="$t('userManage.userInfoObj.editPermission')" + style="overflow: hidden" + :visible.sync="EditFormdialog" + :before-close="EditFromDataClose" + width="30%" + > + <el-form :model="upform"> + <el-form-item + :label="$t('userManage.userInfoObj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.name" ></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.tag')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.tag" ></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.bak')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.bak" ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="EditFromDataClose" >{{ + $t('common.close') + }}</el-button> + <el-button @click="EditFromData" type="primary" >{{ + $t('common.confirm') + }}</el-button> + </div> + </el-dialog> </div> </template> <script> +import moment from 'moment'; import MyBread from '../../components/MyBread.vue'; +import { select_Auth_ByPageAndCount, insertAuth,updateAuth,deleteAuths } from '../../api/api.js'; export default { components: { MyBread }, data() { return { - form: {}, + formLabelWidth: '100px', + ruleForm: {}, isTransfer: false, dialogTitle: '', - data: [ - { - id: 1, - label: '涓�绾� 1', - children: [ - { - id: 4, - label: '浜岀骇 1-1', - children: [ - { - id: 9, - label: '涓夌骇 1-1-1', - }, - { - id: 10, - label: '涓夌骇 1-1-2', - }, - ], - }, - ], - }, - { - id: 2, - label: '涓�绾� 2', - children: [ - { - id: 5, - label: '浜岀骇 2-1', - }, - { - id: 6, - label: '浜岀骇 2-2', - }, - ], - }, - { - id: 3, - label: '涓�绾� 3', - children: [ - { - id: 7, - label: '浜岀骇 3-1', - }, - { - id: 8, - label: '浜岀骇 3-2', - }, - ], - }, - ], - tableData: [ - { - date: '2016-05-02', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�', - zip: 200333, - }, - { - date: '2016-05-04', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�', - zip: 200333, - }, - { - date: '2016-05-01', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�', - zip: 200333, - }, - { - date: '2016-05-03', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�', - zip: 200333, - }, - ], + data: [], + InsertFormdialog: false, + showinfoBox: false, + EditFormdialog: false, + insertform: {}, + tableData: [], + itemdetail: {}, + upform: {}, + multipleSelection: [], + count: 0, + listData: { + name: null, + pageIndex: 1, + pageSize: 10, + }, }; }, defaultProps: { children: 'children', label: 'label', }, + created() { + this.getRoleTabelData(); + }, methods: { + async DelFromData(){ + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id); + } + const data = await deleteAuths({ ids: std.toString() }); + if (data.code == 200) { + this.$message({ + message: '鍒犻櫎鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '鍒犻櫎澶辫触锛�', + type: 'warning', + }); + } + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + submitForm(formName) { + this.getRoleTabelData() + + }, + resetForm(formName) { + this.ruleForm ={} + this.getRoleTabelData(); + }, + EditFromDataClose(){ + this.EditFormdialog = false; + this.upform ={}; + }, + async EditFromData(){ + const data = await updateAuth(this.upform); + if (data.code == 200) { + this.EditFormdialog = false; + this.upform = {}; + this.$message({ + message: '淇敼鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '淇敼澶辫触锛�', + type: 'warning', + }); + } + + }, + showDetail(index, row) { + this.showinfoBox = true; + this.itemdetail = row; + }, + handleEdit(index, row) { + this.EditFormdialog = true; + this.upform = row; + }, + closeDetial() { + this.showinfoBox = false; + this.itemdetail = {}; + }, + handleSizeChange(val) { + this.listData.pageSize = val; + this.getRoleTabelData(); + }, + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getRoleTabelData(); + }, + insertFromDataClose() { + this.InsertFormdialog = false; + this.insertform = {}; + }, + async insertFromData() { + const data = await insertAuth(this.insertform); + if (data.code == 200) { + this.InsertFormdialog = false; + this.insertform = {}; + this.$message({ + message: '娣诲姞鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '娣诲姞澶辫触锛�', + type: 'warning', + }); + } + }, + async getRoleTabelData() { + if (this.listData.tab == '') { + delete this.listData.tab; + } + this.listData.name = this.ruleForm.name; + const data = await select_Auth_ByPageAndCount(this.listData); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + } + console.log(data.result); + this.tableData = data.result; + this.count = data.count; + }, + formatTime(row, column) { + let date = row[column.property]; + return this.formomentTime(date); + }, + formomentTime(date) { + if (date === undefined || date === null) { + return; + } + return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss'); + }, handleClick(row) { - console.log(row); this.dialogTitle = row.name; this.isTransfer = true; }, @@ -257,5 +465,58 @@ .pagination_box { margin-top: 20px; } + .infoBox { + width: 500px; + border: 1px solid #eee; + position: absolute; + z-index: 100; + top: 25%; + right: 12%; + background-color: #fff; + .el-card { + background-color: transparent; + span { + font-size: 16px; + font-weight: 600; + } + } + .contentBox { + margin: 0 aotu 10px; + height: 485px; + overflow: auto; + p { + // background-color: #bfa; + // margin-bottom: 10px; + font-size: 14px; + } + .boxlabel { + margin-left: 10px; + } + } + /* 鏁翠綋鏍峰紡 */ + .contentBox::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + /* 婊氬姩鏉� */ + .contentBox::-webkit-scrollbar-thumb { + background-color: #b3d8ff; + border-radius: 6px; + } + + /* 婊氬姩鏉¢紶鏍囩粡杩囨牱寮� */ + .contentBox::-webkit-scrollbar-thumb:hover { + background-color: #b3d8ff; + border-radius: 6px; + } + + /* 婊氬姩鏉¤建閬� */ + .contentBox::-webkit-scrollbar-track-piece { + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + border-radius: 10px; + background: #ededed; + } + } } </style> diff --git a/src/views/userManage/resourceManage.vue b/src/views/userManage/resourceManage.vue new file mode 100644 index 0000000..b7a3294 --- /dev/null +++ b/src/views/userManage/resourceManage.vue @@ -0,0 +1,608 @@ +<template> + <div class="power_box"> + <My-bread + :list="[ + `${$t('userManage.userManage')}`, + `${$t('userManage.resManage')}`, + ]" + ></My-bread> + <el-divider /> + <div class="power_quire"> + <el-form ref="form" :model="ruleForm":inline="true"> + <el-form-item :label="$t('userManage.resManageObj.name')"> + <el-input v-model="ruleForm.name"></el-input> + </el-form-item> + <el-form-item> + <el-button @click="submitForm('ruleForm')" icon="el-icon-search" size="small" type="primary">{{ + $t('common.iquery') + }}</el-button> + <el-button + @click="resetForm('ruleForm')" + icon="el-icon-refresh" + type="info" + size="small" + >{{ $t('common.empty') }}</el-button + > + <el-button + @click="InsertFormdialog = true" + icon="el-icon-edit" + type="success" + size="small" + >{{ $t('common.append') }}</el-button + > + <el-button + @click="DelFromData" + icon="el-icon-delete" + type="danger" + size="small" + >{{ $t('common.delete') }}</el-button + > + </el-form-item> + </el-form> + </div> + <div class="table_box"> + <el-table + :data="tableData" + style="width: 100%" + fit + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" /> + <el-table-column + align="center" + type="index" + :label="$t('operatManage.ELM.index')" + width="70px" + /> + <el-table-column + prop="name" + align="center" + :label="$t('userManage.resManageObj.name')" + > + </el-table-column> + <el-table-column + prop="server" + align="center" + :label="$t('userManage.resManageObj.server')" + > + </el-table-column> + <el-table-column + prop="source" + align="center" + :label="$t('userManage.resManageObj.source')" + > + </el-table-column> + <el-table-column + prop="depid" + align="center" + :label="$t('userManage.resManageObj.depid')" + > + </el-table-column> + <el-table-column + prop="dirid" + align="center" + :label="$t('userManage.resManageObj.dirid')" + > + </el-table-column> + <el-table-column + prop="descr" + align="center" + :label="$t('userManage.resManageObj.descr')" + + > + </el-table-column> + <el-table-column + prop="img" + align="center" + :label="$t('userManage.resManageObj.img')" + > + </el-table-column> + <el-table-column + prop="createUser" + align="center" + :label="$t('userManage.resManageObj.createUser')" + > + </el-table-column> + <el-table-column + prop="createTime" + align="center" + :label="$t('userManage.resManageObj.createTime')" + :formatter="formatTime" + > + </el-table-column> + <el-table-column + prop="updateUser" + align="center" + :label="$t('userManage.resManageObj.updateUser')" + > + </el-table-column> + <el-table-column + prop="updateTime" + align="center" + :label="$t('userManage.resManageObj.updateTime')" + :formatter="formatTime" + > + </el-table-column> + <el-table-column + prop="bak" + align="center" + :label="$t('userManage.resManageObj.bak')" + > + </el-table-column> + <el-table-column + fixed="right" + :label="$t('common.operate')" + width="170px" + > + <template slot-scope="scope"> + <el-button + @click="showDetail(scope.$index, scope.row)" + type="primary" + plain + size="small" + >{{ $t('common.see') }}</el-button + > + <el-button + @click="handleEdit(scope.$index, scope.row)" + type="warning" + size="small" + plain + >{{ $t('common.edit') }}</el-button + > + </template> + </el-table-column> + </el-table> + </div> + <div class="pagination_box"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 30, 40]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="count" + > + </el-pagination> + </div> + <div class="infoBox" v-show="showinfoBox"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span>{{ $t('dataManage.styleObj.deInformation') }}</span> + <div style="float: right; cursor: pointer" @click="closeDetial" > + <i class="el-icon-close"></i> + </div> + </div> + <div class="contentBox"> + <p> + <label> {{ $t('userManage.userInfoObj.name') }}:</label> + <label class="boxlabel">{{ itemdetail.name }}</label> + </p> + <el-divider></el-divider> + <p> + <p> + <label> {{ $t('userManage.userInfoObj.tag') }}:</label> + <label class="boxlabel">{{ itemdetail.tag }}</label> + </p> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.createUser') }}:</label> + <label class="boxlabel">{{ itemdetail.createUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.createTime') }}:</label> + <label class="boxlabel">{{ itemdetail.createTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label> + <label class="boxlabel">{{ itemdetail.updateUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label> + <label class="boxlabel">{{ itemdetail.updateTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('userManage.userInfoObj.bak') }}:</label> + <label class="boxlabel">{{ itemdetail.bak }}</label> + </p> + <el-divider></el-divider> + </div> + </el-card> + </div> + <el-dialog + :title="dialogTitle" + :visible.sync="isTransfer" + width="800px" + append-to-body + > + <el-tree + :data="data" + show-checkbox + node-key="id" + :default-expanded-keys="[2, 3]" + :default-checked-keys="[5]" + :props="defaultProps" + > + </el-tree> + <el-button type="primary" size="small">{{ + $t('common.confirm') + }}</el-button> + <el-button type="info" size="small">{{ $t('common.close') }}</el-button> + </el-dialog> + <el-dialog + :title="$t('userManage.resManageObj.addResource')" + style="overflow: hidden" + :visible.sync="InsertFormdialog" + top="3%" + > + <el-form :model="insertform"> + <el-form-item + :label="$t('userManage.resManageObj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.name" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.server')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.server" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.source')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.source" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.depid')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.depid" disabled autocomplete="off"></el-input> + <el-link + :underline="false" + @click="showDepTree(0)" + style="margin-left: 10px" + ><i class="el-icon-plus"></i + ></el-link> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.dirid')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.dirid" disabled autocomplete="off"></el-input> + <el-link + :underline="false" + @click="showDepTree(0)" + style="margin-left: 10px" + ><i class="el-icon-plus"></i + ></el-link> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.descr')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.descr" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.img')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.img" autocomplete="off"></el-input> + <el-link + :underline="false" + + style="margin-left: 10px" + ><i class="el-icon-plus"></i + ></el-link> + </el-form-item> + <el-form-item + :label="$t('userManage.resManageObj.bak')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.bak" autocomplete="off"></el-input> + + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="insertFromDataClose">{{ + $t('common.close') + }}</el-button> + <el-button type="primary" @click="insertFromData">{{ + $t('common.confirm') + }}</el-button> + </div> + </el-dialog> + <el-dialog + :title="$t('userManage.userInfoObj.editPermission')" + style="overflow: hidden" + :visible.sync="EditFormdialog" + :before-close="EditFromDataClose" + width="30%" + > + <el-form :model="upform"> + <el-form-item + :label="$t('userManage.userInfoObj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.name" ></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.tag')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.tag" ></el-input> + </el-form-item> + <el-form-item + :label="$t('userManage.userInfoObj.bak')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.bak" ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="EditFromDataClose" >{{ + $t('common.close') + }}</el-button> + <el-button @click="EditFromData" type="primary" >{{ + $t('common.confirm') + }}</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import moment from 'moment'; +import MyBread from '../../components/MyBread.vue'; +import { select_Res_ByPageAndCount, insertAuth, updateAuth, deleteAuths } from '../../api/api.js'; +export default { + components: { MyBread }, + data() { + return { + formLabelWidth: '130px', + ruleForm: {}, + isTransfer: false, + dialogTitle: '', + data: [], + InsertFormdialog: false, + showinfoBox: false, + EditFormdialog: false, + insertform: {}, + tableData: [], + itemdetail: {}, + upform: {}, + multipleSelection: [], + count: 0, + listData: { + name: null, + pageIndex: 1, + pageSize: 10, + }, + }; + }, + defaultProps: { + children: 'children', + label: 'label', + }, + created() { + this.getRoleTabelData(); + }, + methods: { + async DelFromData() { + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id); + } + const data = await deleteAuths({ ids: std.toString() }); + if (data.code == 200) { + this.$message({ + message: '鍒犻櫎鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '鍒犻櫎澶辫触锛�', + type: 'warning', + }); + } + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + submitForm(formName) { + this.getRoleTabelData() + + }, + resetForm(formName) { + this.ruleForm = {} + this.getRoleTabelData(); + }, + EditFromDataClose() { + this.EditFormdialog = false; + this.upform = {}; + }, + async EditFromData() { + const data = await updateAuth(this.upform); + if (data.code == 200) { + this.EditFormdialog = false; + this.upform = {}; + this.$message({ + message: '淇敼鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '淇敼澶辫触锛�', + type: 'warning', + }); + } + + }, + showDetail(index, row) { + this.showinfoBox = true; + this.itemdetail = row; + }, + handleEdit(index, row) { + this.EditFormdialog = true; + this.upform = row; + }, + closeDetial() { + this.showinfoBox = false; + this.itemdetail = {}; + }, + handleSizeChange(val) { + this.listData.pageSize = val; + this.getRoleTabelData(); + }, + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getRoleTabelData(); + }, + insertFromDataClose() { + this.InsertFormdialog = false; + this.insertform = {}; + }, + async insertFromData() { + const data = await insertAuth(this.insertform); + if (data.code == 200) { + this.InsertFormdialog = false; + this.insertform = {}; + this.$message({ + message: '娣诲姞鎴愬姛锛�', + type: 'success', + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: '娣诲姞澶辫触锛�', + type: 'warning', + }); + } + }, + async getRoleTabelData() { + if (this.listData.tab == '') { + delete this.listData.tab; + } + this.listData.name = this.ruleForm.name; + const data = await select_Res_ByPageAndCount(this.listData); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + } + console.log(data.result); + this.tableData = data.result; + this.count = data.count; + }, + formatTime(row, column) { + let date = row[column.property]; + return this.formomentTime(date); + }, + formomentTime(date) { + if (date === undefined || date === null) { + return; + } + return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss'); + }, + handleClick(row) { + this.dialogTitle = row.name; + this.isTransfer = true; + }, + }, +}; +</script> + +<style lang="less" scoped> +.power_box { + background: rgb(240, 242, 245); + border-radius: 10px; + height: 100%; + padding: 10px; + box-sizing: border-box; + .el-input { + width: 745px; + } + .power_quire { + margin: 10px auto; + background: #fff; + border-radius: 5px; + border: 1px solid rgb(202, 201, 204); + margin-bottom: 10px; + .el-form-item { + margin: 5px; + } + .el-input { + width: 467px; + } + } + .table_box { + height:76%; + padding: 10px; + background: #fff; + border-radius: 5px; + border: 1px solid rgb(202, 201, 204); + } + .pagination_box { + margin-top: 20px; + } + .infoBox { + width: 500px; + border: 1px solid #eee; + position: absolute; + z-index: 100; + top: 25%; + right: 12%; + background-color: #fff; + .el-card { + background-color: transparent; + span { + font-size: 16px; + font-weight: 600; + } + } + .contentBox { + margin: 0 aotu 10px; + height: 485px; + overflow: auto; + p { + // background-color: #bfa; + // margin-bottom: 10px; + font-size: 14px; + } + .boxlabel { + margin-left: 10px; + } + } + /* 鏁翠綋鏍峰紡 */ + .contentBox::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + /* 婊氬姩鏉� */ + .contentBox::-webkit-scrollbar-thumb { + background-color: #b3d8ff; + border-radius: 6px; + } + + /* 婊氬姩鏉¢紶鏍囩粡杩囨牱寮� */ + .contentBox::-webkit-scrollbar-thumb:hover { + background-color: #b3d8ff; + border-radius: 6px; + } + + /* 婊氬姩鏉¤建閬� */ + .contentBox::-webkit-scrollbar-track-piece { + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + border-radius: 10px; + background: #ededed; + } + } +} +</style> -- Gitblit v1.9.3