|
@@ -10,44 +10,62 @@
|
|
|
<div class="authorityRoleHome">
|
|
|
<!--状态和搜索-->
|
|
|
<div class="authority-head flex">
|
|
|
- <!-- <div class="status flex-wrap">
|
|
|
+ <div class="status flex-wrap">
|
|
|
<div class="manageTitle">角色管理</div>
|
|
|
- <div class="status1"><span class="icon"></span>存在互斥</div>
|
|
|
- <div class="status2"><span class="icon"></span>不存在互斥</div>
|
|
|
- </div> -->
|
|
|
- <Search @getSearchData="getSearchData" @clearSearchData="clearSearchData" :isTitle="false" :isSlot="true">
|
|
|
- <button v-is="['role_add']" @click="addRole" class="btnAdd">新增</button>
|
|
|
+ <!-- <div class="status1"><span class="icon"></span>存在互斥</div>
|
|
|
+ <div class="status2"><span class="icon"></span>不存在互斥</div> -->
|
|
|
+ </div>
|
|
|
+ <Search
|
|
|
+ @getSearchData="getSearchData"
|
|
|
+ @clearSearchData="clearSearchData"
|
|
|
+ :isTitle="false"
|
|
|
+ :isSlot="true"
|
|
|
+ >
|
|
|
+ <button @click="addRole" class="btnAdd">新增</button>
|
|
|
</Search>
|
|
|
</div>
|
|
|
<!--列表-->
|
|
|
<div class="role-content scrollbar infinite-list-wrapper">
|
|
|
<template v-if="arrs.length">
|
|
|
- <el-row v-infinite-scroll="load" :infinite-scroll-distance="20" infinite-scroll-disabled="disabled" :gutter="24">
|
|
|
- <el-col v-for="(item,index) in arrs" class="account-left-content-teams" :lg="4" :key="index">
|
|
|
+ <el-row
|
|
|
+ v-infinite-scroll="load"
|
|
|
+ :infinite-scroll-distance="20"
|
|
|
+ infinite-scroll-disabled="disabled"
|
|
|
+ :gutter="24"
|
|
|
+ >
|
|
|
+ <el-col
|
|
|
+ v-for="(item, index) in arrs"
|
|
|
+ class="account-left-content-teams"
|
|
|
+ :lg="4"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<div class="team">
|
|
|
<!-- <div :class="'status'+ item.IsDef" class="bg"></div> -->
|
|
|
<div class="list">
|
|
|
<div class="flex info">
|
|
|
<div class="info-avoutr">
|
|
|
<div class="msg flex-wrap">
|
|
|
- <p :title="item.RoleName" class="name">{{item.RoleName}}</p>
|
|
|
- <div v-is="['role_edit']" @click="editRole(item)" class="cap cap-edit"></div>
|
|
|
+ <p :title="item.role_name" class="name">{{ item.role_name }}</p>
|
|
|
+ <div @click="editRole(item)" class="cap cap-edit"></div>
|
|
|
<div @click="authRole(item)" class="cap cap-auth"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-is="['role_delete']" class="info-close">
|
|
|
- <i @click="checkRemove(item,index)" class="icon el-icon-close"></i>
|
|
|
+ <div class="info-close">
|
|
|
+ <i
|
|
|
+ @click="checkRemove(item, index)"
|
|
|
+ class="icon el-icon-close"
|
|
|
+ ></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="flex-wrap time">
|
|
|
<div class="time-msg">账号数:</div>
|
|
|
- <div class="time-info glr">{{item.UserCount}}</div>
|
|
|
+ <div class="time-info glr">{{ item.UserCount }}</div>
|
|
|
</div>
|
|
|
<div class="flex-wrap ip">
|
|
|
<div class="ip-msg">权限项数:</div>
|
|
|
- <div class="ip-info glr">{{item.AuthCount}}</div>
|
|
|
+ <div class="ip-info glr">{{ item.AuthCount }}</div>
|
|
|
</div>
|
|
|
- <div class="flex details">
|
|
|
+ <!-- <div class="flex details">
|
|
|
<div class="details-msg">
|
|
|
状态:<span :class="item.Status == 1 ? 'success' : 'error'">{{item.Status == 1 ? '启用' : '停用'}}</span>
|
|
|
</div>
|
|
@@ -55,7 +73,7 @@
|
|
|
<el-switch v-model="item.isauto" @change="handleChange(item)" active-color="#2D67E3">
|
|
|
</el-switch>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-col>
|
|
@@ -73,9 +91,17 @@
|
|
|
<Dialog :flag="flag">
|
|
|
<div class="airportInfoDialog">
|
|
|
<div class="title del-title">删除角色</div>
|
|
|
- <div class="content del-content"><span class="el-icon-error error r10"></span>您是否确认删除<span class="error l10">{{ title }}</span> ?</div>
|
|
|
+ <div class="content del-content">
|
|
|
+ <span class="el-icon-error error r10"></span>您是否确认删除<span
|
|
|
+ class="error l10"
|
|
|
+ >{{ title }}</span
|
|
|
+ >
|
|
|
+ ?
|
|
|
+ </div>
|
|
|
<div class="foot right Delfoot t30">
|
|
|
- <el-button size="medium" class="r24" @click="remove" type="danger">删除</el-button>
|
|
|
+ <el-button size="medium" class="r24" @click="remove" type="danger"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
<el-button size="medium" @click="flag = false">取消</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -85,22 +111,42 @@
|
|
|
<div class="airportInfoDialog dialog-public-background">
|
|
|
<div class="title">{{ editDialogTitle }}</div>
|
|
|
<div class="content">
|
|
|
- <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="130px" class="demo-ruleForm">
|
|
|
- <el-form-item label="角色名称" prop="RoleName">
|
|
|
- <el-input v-model="ruleForm.RoleName" size="medium" placeholder="请输入节点名称(必填)" />
|
|
|
+ <el-form
|
|
|
+ ref="ruleForm"
|
|
|
+ :model="ruleForm"
|
|
|
+ :rules="rules"
|
|
|
+ label-width="130px"
|
|
|
+ class="demo-ruleForm"
|
|
|
+ >
|
|
|
+ <el-form-item label="角色名称" prop="role_name">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.role_name"
|
|
|
+ size="medium"
|
|
|
+ placeholder="请输入节点名称(必填)"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="角色描述" prop="RoleDesc">
|
|
|
- <el-input v-model="ruleForm.RoleDesc" size="medium" type="textarea" :rows="3" placeholder="请输入跟踪节点描述" />
|
|
|
+ <el-form-item label="角色描述" prop="role_comment">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.role_comment"
|
|
|
+ size="medium"
|
|
|
+ type="textarea"
|
|
|
+ :rows="3"
|
|
|
+ placeholder="请输入跟踪节点描述"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
- <!-- <el-form-item label="是否启用" prop="RoleStatus">
|
|
|
- <el-radio v-model="ruleForm.RoleStatus" :label="1">是</el-radio>
|
|
|
- <el-radio v-model="ruleForm.RoleStatus" :label="0">否</el-radio>
|
|
|
- </el-form-item> -->
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<div class="foot center t30">
|
|
|
- <el-button size="medium" type="primary" class="r25 r26" @click="submitClickHandler()">提交</el-button>
|
|
|
- <el-button size="medium" class="r26" @click="resetForm('ruleForm')">取消</el-button>
|
|
|
+ <el-button
|
|
|
+ size="medium"
|
|
|
+ type="primary"
|
|
|
+ class="r25 r26"
|
|
|
+ @click="submitClickHandler()"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ <el-button size="medium" class="r26" @click="resetForm('ruleForm')"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
</Dialog>
|
|
@@ -108,230 +154,169 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import Search from '@/layout/components/Search'
|
|
|
-import Dialog from '@/layout/components/Dialog'
|
|
|
-import roleData from '../minixs/roleData'
|
|
|
-import { UpdateStatus, SaveRole, RoleDetails, EditRole } from '@/api/apiAuthority'
|
|
|
+import Search from "@/layout/components/Search";
|
|
|
+import Dialog from "@/layout/components/Dialog";
|
|
|
+import roleData from "../minixs/roleData";
|
|
|
+import { Query, GeneralDataReception } from "@/api/dataIntegration";
|
|
|
export default {
|
|
|
- name: 'AuthorityRole',
|
|
|
+ name: "AuthorityRole",
|
|
|
components: { Search, Dialog },
|
|
|
mixins: [roleData],
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
arrs: [], //卡片数据
|
|
|
arr: [],
|
|
|
arrsCopy: [],
|
|
|
flag: false,
|
|
|
- title: '',
|
|
|
+ title: "",
|
|
|
index: null,
|
|
|
num: null,
|
|
|
pageNum: 1,
|
|
|
PageSize: 20,
|
|
|
loading: false,
|
|
|
- keyWords: '',
|
|
|
+ keyWords: "",
|
|
|
total: null,
|
|
|
search: null,
|
|
|
editDialogVisible: false,
|
|
|
- editDialogTitle: '新增角色',
|
|
|
- editType: 'add',
|
|
|
+ editDialogTitle: "新增角色",
|
|
|
+ editType: "add",
|
|
|
ruleForm: {
|
|
|
// 协议信息表单
|
|
|
- RoleName: "",
|
|
|
- RoleStatus: "",
|
|
|
- RoleDesc: "",
|
|
|
+ role_name: "",
|
|
|
+ role_comment: "",
|
|
|
},
|
|
|
rules: {
|
|
|
// 协议信息表单验证
|
|
|
- RoleName: [
|
|
|
- { required: true, message: "请输入角色名称", trigger: "blur" },
|
|
|
- ],
|
|
|
+ role_name: [{ required: true, message: "请输入角色名称", trigger: "blur" }],
|
|
|
},
|
|
|
ruleFormObj: {},
|
|
|
- roleId: ''
|
|
|
- }
|
|
|
+ roleId: "",
|
|
|
+ needPage: 1,
|
|
|
+ };
|
|
|
},
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
if (this.$route.query.keyWords) {
|
|
|
- keyWords = this.$route.query.keyWords
|
|
|
- this.keyWords = keyWords
|
|
|
+ keyWords = this.$route.query.keyWords;
|
|
|
+ this.keyWords = keyWords;
|
|
|
}
|
|
|
- this.gueryRole({
|
|
|
- QueryName: this.keyWords,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- });
|
|
|
+ this.queryData();
|
|
|
},
|
|
|
computed: {
|
|
|
- noMore () {
|
|
|
- return this.pageNum >= this.total
|
|
|
+ noMore() {
|
|
|
+ return this.pageNum >= this.total;
|
|
|
+ },
|
|
|
+ disabled() {
|
|
|
+ return this.loading || this.noMore;
|
|
|
},
|
|
|
- disabled () {
|
|
|
- return this.loading || this.noMore
|
|
|
- }
|
|
|
},
|
|
|
methods: {
|
|
|
+ queryData() {
|
|
|
+ let data = {
|
|
|
+ id: 41,
|
|
|
+ dataContent: [this.keyWords],
|
|
|
+ needPage: this.needPage,
|
|
|
+ };
|
|
|
+ this.gueryRole(data);
|
|
|
+ },
|
|
|
//删除
|
|
|
- checkRemove (item, index) {
|
|
|
- this.flag = true
|
|
|
- this.index = item
|
|
|
- this.title = item.RoleName
|
|
|
- this.num = index
|
|
|
+ checkRemove(item, index) {
|
|
|
+ this.flag = true;
|
|
|
+ this.index = item;
|
|
|
+ this.title = item.role_name;
|
|
|
+ this.num = index;
|
|
|
},
|
|
|
//确认删除
|
|
|
- remove () {
|
|
|
- this.deleteRole(this.index.RoleId, this.num)
|
|
|
+ remove() {
|
|
|
+ this.index.event = 3;
|
|
|
+ this.editRoles(this.index);
|
|
|
},
|
|
|
//角色新增
|
|
|
- addRole () {
|
|
|
- this.editDialogTitle = '新增角色'
|
|
|
- this.editDialogVisible = true
|
|
|
- this.editType = 'add'
|
|
|
+ addRole() {
|
|
|
+ this.editDialogTitle = "新增角色";
|
|
|
+ this.editDialogVisible = true;
|
|
|
+ this.editType = "add";
|
|
|
// this.$router.push('/role/addRole')
|
|
|
},
|
|
|
//角色编辑
|
|
|
- editRole (item) {
|
|
|
- this.editDialogVisible = true
|
|
|
- this.editType = 'edit'
|
|
|
- this.editDialogTitle = '编辑角色'
|
|
|
- this.roleId = item.RoleId
|
|
|
- this.roleDetails(item.RoleId)
|
|
|
- // this.$router.push({ path: '/role/editRole', query: { RoleId: item.RoleId, Status: item.Status } })
|
|
|
+ editRole(item) {
|
|
|
+ this.editDialogVisible = true;
|
|
|
+ this.editType = "edit";
|
|
|
+ this.editDialogTitle = "编辑角色";
|
|
|
+ this.roleId = item.role_id;
|
|
|
+ this.ruleForm = JSON.parse(JSON.stringify(item));
|
|
|
},
|
|
|
- // 角色授权
|
|
|
- authRole (item) {
|
|
|
- this.$router.push({ path: '/role/editRole', query: { RoleId: item.RoleId, Status: item.Status } })
|
|
|
- },
|
|
|
- //查询
|
|
|
- getSearchData (val) {
|
|
|
- this.arrs = []
|
|
|
- this.dataList = []
|
|
|
- this.pageNum = 1
|
|
|
- this.keyWords = val
|
|
|
- this.gueryRole({
|
|
|
- QueryName: val,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- })
|
|
|
- },
|
|
|
- //清除查询
|
|
|
- clearSearchData () {
|
|
|
- this.arrs = []
|
|
|
- this.dataList = []
|
|
|
- this.pageNum = 1
|
|
|
- this.keyWords = ''
|
|
|
- this.gueryRole({
|
|
|
- QueryName: this.keyWords,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- })
|
|
|
- },
|
|
|
- //状态变更
|
|
|
- async handleChange (item) {
|
|
|
+ //新增角色
|
|
|
+ async editRoles(params) {
|
|
|
try {
|
|
|
- const { RoleId, isauto } = item
|
|
|
- const Status = isauto ? 1 : 0
|
|
|
- const res = await UpdateStatus({
|
|
|
- RoleId: RoleId,
|
|
|
- RoleStatus: Status
|
|
|
- })
|
|
|
- if (res.code === 0) {
|
|
|
- this.$message.success(res.message)
|
|
|
- this.arrs.forEach(item => {
|
|
|
- if (item.RoleId == RoleId) {
|
|
|
- item.isauto = isauto
|
|
|
- item.Status = Status
|
|
|
- }
|
|
|
- })
|
|
|
+ const res = await GeneralDataReception({
|
|
|
+ serviceId: 14,
|
|
|
+ dataContent: JSON.stringify(params),
|
|
|
+ });
|
|
|
+ if (res.code === "0") {
|
|
|
+ this.flag = false;
|
|
|
+ this.$message.success(res.message);
|
|
|
+ this.needPage = 1;
|
|
|
+ this.queryData()
|
|
|
} else {
|
|
|
- this.$message.error(res.message)
|
|
|
+ this.flag = false;
|
|
|
+ this.$message.error(res.message);
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.log('出错了', error)
|
|
|
+ this.flag = false;
|
|
|
+ console.log("出错了", error);
|
|
|
}
|
|
|
},
|
|
|
+ // 角色授权
|
|
|
+ authRole(item) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/role/editRole",
|
|
|
+ query: { RoleId: item.role_id },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //查询
|
|
|
+ getSearchData(val) {
|
|
|
+ this.arrs = [];
|
|
|
+ this.needPage = 1;
|
|
|
+ this.keyWords = val;
|
|
|
+ this.queryData()
|
|
|
+ },
|
|
|
+ //清除查询
|
|
|
+ clearSearchData() {
|
|
|
+ this.arrs = [];
|
|
|
+ this.needPage = 1;
|
|
|
+ this.keyWords = "";
|
|
|
+ this.queryData()
|
|
|
+ },
|
|
|
// 新增/编辑-确认
|
|
|
- submitClickHandler () {
|
|
|
+ submitClickHandler() {
|
|
|
this.$refs["ruleForm"].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- if (this.editType == 'add') {
|
|
|
- this.saveRole()
|
|
|
+ if (this.editType == "add") {
|
|
|
+ this.ruleForm.event = 1;
|
|
|
+ this.editRoles(this.ruleForm);
|
|
|
} else {
|
|
|
- this.editRoleFunc()
|
|
|
+ this.ruleForm.event = 2;
|
|
|
+ this.editRoles(this.ruleForm);
|
|
|
}
|
|
|
+ this.resetForm("ruleForm");
|
|
|
} else {
|
|
|
- return false
|
|
|
+ return false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
// 重置
|
|
|
- resetForm (formName) {
|
|
|
- this.$refs[formName].resetFields()
|
|
|
- this.editDialogVisible = false
|
|
|
- },
|
|
|
- //新增保存
|
|
|
- async saveRole () {
|
|
|
- try {
|
|
|
- const res = await SaveRole(this.ruleForm);
|
|
|
- if (res.code === 0) {
|
|
|
- this.$message.success(res.message);
|
|
|
- this.resetForm('ruleForm');
|
|
|
- this.gueryRole({
|
|
|
- QueryName: this.keyWords,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.$message.error(res.message);
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.log("出错了", error);
|
|
|
- }
|
|
|
- },
|
|
|
- //角色明细
|
|
|
- async roleDetails (id) {
|
|
|
- try {
|
|
|
- const res = await RoleDetails({
|
|
|
- RoleId: id,
|
|
|
- });
|
|
|
- if (res.code === 0) {
|
|
|
- this.ruleForm = res.returnData;
|
|
|
- } else {
|
|
|
- this.$message.error(res.message);
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.log("出错了", error);
|
|
|
- }
|
|
|
- },
|
|
|
- //确认保存
|
|
|
- async editRoleFunc () {
|
|
|
- try {
|
|
|
- const res = await EditRole(this.ruleForm);
|
|
|
- if (res.code === 0) {
|
|
|
- this.$message.success(res.message);
|
|
|
- this.resetForm('ruleForm');
|
|
|
- this.gueryRole({
|
|
|
- QueryName: this.keyWords,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.$message.error(res.message);
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.log("出错了", error);
|
|
|
- }
|
|
|
+ resetForm(formName) {
|
|
|
+ this.ruleForm = [];
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ this.editDialogVisible = false;
|
|
|
},
|
|
|
//滚动加载数据
|
|
|
- load () {
|
|
|
- this.pageNum += 1
|
|
|
- this.gueryRole({
|
|
|
- QueryName: this.keyWords,
|
|
|
- PageSize: this.PageSize,
|
|
|
- PageIndex: this.pageNum
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ load() {
|
|
|
+ this.needPage = this.needPage + 1
|
|
|
+ this.queryData()
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|