Pārlūkot izejas kodu

提交机构角色授权管理页面开发+统计页静态页面开发+部分页面展示优化

林倩 2 gadi atpakaļ
vecāks
revīzija
84022698ed

+ 1 - 0
config/dev.env.js

@@ -37,6 +37,7 @@ module.exports = merge(prodEnv, {
       //  target: "http://192.168.10.2:8871"
       //  target: "http://192.168.6.133:3471"
       // target: 'http://192.168.6.131:3561'
+      // target: "http://10.201.1.50:8871"
     }
   })
 });

+ 17 - 0
src/api/org-role-manage.js

@@ -0,0 +1,17 @@
+/**
+  机构角色授权管理
+ @author linqian
+ @Date 2023-06-07 14:18
+
+ */
+import axios from '@/utils/req';
+const baseUrl = '/authsvr/v2/role-org-auth';
+export const tableUrl = `${baseUrl}/page`;
+
+export function getChecked(orgId) {
+  return axios.get(`${baseUrl}/auth-role-ids`, { orgId });
+}
+
+export function save(data) {
+  return axios.post(`${baseUrl}/save`, data);
+}

+ 19 - 0
src/api/statistics.js

@@ -0,0 +1,19 @@
+/**
+  主客体统计
+ @author linqian
+ @Date 2023-06-07
+ */
+
+import axios from '@/utils/req';
+
+const baseUrl = '/statistics/v2';
+
+// 获取主体统计
+export function subStatisticsTable(data) {
+  return axios.post(`${baseUrl}/sub-statistics`, data);
+}
+
+// 获取客体统计
+export function objStatisticsTable(data) {
+  return axios.post(`${baseUrl}/sub-statistics`, data);
+}

+ 1 - 1
src/components/new-table/index.vue

@@ -27,7 +27,7 @@
     >
       <dg-table-column v-if="selection" type="selection" reserve-selection width="55" align="center" />
       <dg-table-column type="index" label="序号" width="75" align="center" />
-      <template v-for="item in tableHeader">
+      <template v-for="item in tableHeader" >
         <dg-table-column :key="item[rowKey]" v-bind="item" align="center">
           <template slot-scope="{ row }">
             <span v-if="item.dateFormat">{{ row[item.prop] | dateFormatter(item.dateFormat) }}</span>

+ 47 - 0
src/components/scroll-card/index.vue

@@ -0,0 +1,47 @@
+<!--
+含有滚动条的卡片,一般是页面横向包含两列或以上卡片布局才需要用到此组件,为了保证各卡片等高
+@Author: linqian
+@Date: 2021-11-11 14:55
+-->
+<template>
+  <dg-col :span="colSpan">
+    <dg-card>
+      <template slot="header" v-if="$slots.cardHeader || header">
+        <div>{{ header }}</div>
+        <slot name="cardHeader"></slot>
+      </template>
+      <div :style="{ height: contentHeight }">
+        <dg-scrollbar>
+          <slot />
+        </dg-scrollbar>
+      </div>
+    </dg-card>
+  </dg-col>
+</template>
+
+<script>
+export default {
+  props: {
+    colSpan: {
+      type: Number,
+      default: 12
+    },
+    header: String,
+    contentHeight: {
+      type: String,
+      default: 'calc(100vh - 15.5rem)'
+    }
+  },
+  components: {},
+  data() {
+    return {};
+  },
+  computed: {},
+  methods: {},
+  created() {},
+  mounted() {}
+};
+</script>
+
+<style lang='scss'>
+</style>

+ 247 - 0
src/pages/appfun-auth-manage/org-role-manage/index.vue

@@ -0,0 +1,247 @@
+<!--
+机构授权
+@Author: linqian
+@Date: 2021-04-02 09:08
+-->
+<template>
+  <div>
+    <dg-row gutter="1rem">
+      <!-- 机构列表 -->
+      <dg-col :span="5">
+        <dg-card header="机构列表" class="box-card">
+          <org-tree
+            ref="tree"
+            class="u-pm__left"
+            treeHeight="calc(100vh - 18rem)"
+            :search="true"
+            paddingRight="15px"
+            @handleGetNode="handleGetNode"
+            @submitRootNode="handleGetNode"
+          ></org-tree>
+        </dg-card>
+      </dg-col>
+
+      <!-- 权限设置 -->
+      <scrollCard contentHeight="calc(100vh - 15.5rem)" :colSpan="19">
+        <template #cardHeader>
+          <div style="display:flex;justify-content: space-between;">
+            <span>角色列表</span>
+            <dg-button type="primary" :icon="'保存' | optIcon" @click="handleSave()">保存</dg-button>
+          </div>
+        </template>
+
+        <!-- 角色搜索栏 -->
+        <search-bar :conditionForm="roleConditionForm" @submitSearch="receiveRoleSearch"></search-bar>
+        <!-- 角色操作栏 -->
+        <!-- <operate-bar :pageOptList="pageOptList" @submitPageOpt="handleSave()"></operate-bar> -->
+
+        <!-- 角色列表 -->
+        <dg-table
+          ref="table"
+          :condition="condition"
+          :url="tableUrl"
+          :span-method="objectSpanMethod"
+          border
+          style="width: 100%"
+          row-key="roleId"
+          overflow="tooltip"
+          lazyLoad
+          @selection-change="handleSelectChange"
+          :before-quest="handleBeforeQuest"
+        >
+          <dg-table-column prop="appName" label="应用系统名称" min-width="120" align="center"> </dg-table-column>
+          <dg-table-column type="selection" reserve-selection width="50" align="center"></dg-table-column>
+          <dg-table-column prop="roleName" label="角色名称" align="center"> </dg-table-column>
+        </dg-table>
+      </scrollCard>
+    </dg-row>
+  </div>
+</template>
+
+<script>
+import orgTree from '@/components/tree';
+import scrollCard from '@/components/scroll-card';
+import searchBar from '@/components/search-bar';
+
+import * as roleAuthApi from '@/api/role-auth-info';
+import * as Api from '@/api/org-role-manage';
+export default {
+  components: {
+    orgTree,
+    scrollCard,
+    searchBar,
+  },
+  data() {
+    return {
+      roleConditionForm: [
+        {
+          label: '应用系统名称',
+          name: 'appId',
+          op: '=',
+          value: '',
+          component: 'SelectApp',
+          apiUrl: roleAuthApi.roleViewApplication,
+          valueName: 'id',
+          labelName: 'name'
+        },
+        {
+          label: '角色名称',
+          name: 'roleName',
+          op: 'like',
+          value: '',
+          component: 'ElInput',
+          attr: {
+            style: 'width: 150px'
+          }
+        }
+      ],
+      condition: {
+        orgId: {
+          value: '',
+          op: '='
+        },
+        appId: {
+          value: '',
+          op: '='
+        },
+        roleName: {
+          value: '',
+          op: 'like'
+        }
+      },
+      tableUrl: Api.tableUrl,
+      pageOptList: ['保存'],
+      checkRoleList: [],
+      deleteIds: [],
+      updateRoles: []
+    };
+  },
+  computed: {},
+  methods: {
+    /**
+     * @description: 获取机构节点
+     * @param {*} node
+     */
+    async handleGetNode(node) {
+      this.condition.orgId.value = node.id;
+      this.refreshTable();
+    },
+    async refreshTable() {
+      this.$refs.table.clearAll();
+      await this.getRoleChecked(this.condition.orgId.value);
+      this.selectRoleList = [];
+      this.$refs.table.searchForm();
+    },
+    receiveRoleSearch(condition) {
+      this.condition = { ...this.condition, ...condition };
+      this.refreshTable();
+    },
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        return {
+          rowspan: row.rowspan,
+          colspan: 1
+        };
+      }
+    },
+    handleSelectChange(selection) {
+      this.selectRoleList = this.$lodash.cloneDeep(selection);
+    },
+    // 角色列表数据渲染前整合数据
+    handleBeforeQuest(res) {
+      const { content, totalElements } = res.data;
+      this.currentPageContent = content;
+      if (this.checkRoleList.length > 0) {
+        let rowKeys = [];
+        for (let j = 0; j < content.length; j++) {
+          const cItem = content[j];
+          const index = this.checkRoleList.findIndex((item) => item == cItem.roleId);
+          if (index > -1) {
+            rowKeys.push(this.checkRoleList[index]);
+          }
+        }
+        setTimeout(() => {
+          this.$refs.table.setCheck(rowKeys);
+        }, 500);
+      }
+      this.roleTotal = totalElements;
+
+      const result = {
+        data: {
+          content: this.setRowSpans(content),
+          totalElements
+        }
+      };
+      return result;
+    },
+    setRowSpans(tableData) {
+      // 先给所有的数据都加一个v.rowspan = 1
+      tableData.forEach((v) => {
+        v.rowspan = 1;
+      });
+      // 双层循环
+      for (let i = 0; i < tableData.length; i++) {
+        // 内层循环,上面已经给所有的行都加了v.rowspan = 1
+        // 这里进行判断
+        // 如果当前行的id和下一行的id相等
+        // 就把当前v.rowspan + 1
+        // 下一行的v.rowspan - 1
+        for (let j = i + 1; j < tableData.length; j++) {
+          //此处可根据相同字段进行合并,此处是根据的id
+          if (tableData[i].appId === tableData[j].appId) {
+            tableData[i].rowspan++;
+            tableData[j].rowspan--;
+          }
+        }
+        // 这里跳过已经重复的数据
+        i = i + tableData[i].rowspan - 1;
+      }
+      return tableData;
+    },
+    handleSave() {
+      if (this.roleTotal == 0) {
+        this.$message.warning('没有可保存的数据!');
+        return;
+      }
+
+      const delRoleIds = this.checkRoleList
+        .filter((item) => !this.selectRoleList.map((sItem) => sItem.roleId).includes(item))
+        .map((item) => item);
+
+      const addRoleIds = this.selectRoleList
+        .filter((item) => !this.checkRoleList.map((cItem) => cItem).includes(item.roleId))
+        .map((item) => item.roleId);
+
+      const saveParams = {
+        orgId: this.condition.orgId.value,
+        addRoleIds,
+        delRoleIds
+      };
+
+      // 保存
+      Api.save(saveParams)
+        .then(() => {
+          this.$message.success('保存成功');
+          this.refreshTable();
+        })
+        .catch((err) => {
+          this.$message.error(err);
+        });
+    },
+    // 获取角色列表选中记录
+    getRoleChecked(orgId) {
+      return new Promise((resolve) => {
+        Api.getChecked(orgId).then((res) => {
+          this.checkRoleList = res;
+          resolve(res);
+        });
+      });
+    }
+  },
+  created() {},
+  mounted() {}
+};
+</script>
+
+<style lang='scss' scoped>
+</style>

+ 58 - 59
src/pages/appfun-auth-manage/role-auth-manage/persionView.vue

@@ -1,65 +1,61 @@
 <template>
   <dg-row gutter="1rem">
-    <dg-col :span="12">
-      <dg-card shadow="never" header="人员列表">
-        <!-- 人员搜索栏 -->
-        <search-bar :conditionForm="userConditionForm" @submitSearch="receiveSearch"></search-bar>
-        <!-- 人员列表 -->
-        <new-table
-          ref="table"
-          :tableUrl="userTableUrl"
-          :tableHeader="userTableHeader"
-          :condition="condition"
-          @handleRowClick="handleRowClick"
+    <scroll-card header="人员列表" contentHeight="calc(100vh - 19rem)" :colSpan="11">
+      <!-- 人员搜索栏 -->
+      <search-bar :conditionForm="userConditionForm" @submitSearch="receiveSearch"></search-bar>
+      <!-- 人员列表 -->
+      <new-table
+        ref="table"
+        :tableUrl="userTableUrl"
+        :tableHeader="userTableHeader"
+        :condition="condition"
+        @handleRowClick="handleRowClick"
+      >
+        <template #policeBusiness="{ row }">
+          {{ transferBusinessTag(row.policeBusiness) }}
+        </template>
+      </new-table>
+    </scroll-card>
+    <scrollCard header="角色列表" contentHeight="calc(100vh - 19rem)" :colSpan="13">
+      <!-- 角色搜索栏 -->
+      <search-bar :conditionForm="roleConditionForm" @submitSearch="receiveRoleSearch"></search-bar>
+      <!-- 角色操作栏 -->
+      <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+      <!-- 角色列表 -->
+      <dg-table
+        ref="myRoleTable"
+        :data="tableData"
+        :pagination="false"
+        :span-method="objectSpanMethod"
+        border
+        style="width: 100%"
+        overflow="tooltip"
+        @selection-change="handleSelectChange"
+      >
+        <dg-table-column prop="appName" label="应用系统名称" min-width="120" align="center"> </dg-table-column>
+        <dg-table-column type="selection" width="50" align="center"></dg-table-column>
+        <dg-table-column prop="name" label="角色名称" width="100" align="center"> </dg-table-column>
+        <dg-table-column prop="roleLevel" label="角色层级" code="DM_ROLE_LEVEL" width="100" align="center">
+        </dg-table-column>
+        <dg-table-column prop="policeCategory" label="警种" code="T_MD_POLICE_TYPE" align="center"> </dg-table-column>
+        <dg-table-column
+          prop="roleBusiness"
+          label="业务域标签"
+          min-width="100"
+          code="DM_POLICE_BUSINESS"
+          align="center"
         >
-          <template #policeBusiness="{ row }">
-           {{ transferBusinessTag(row.policeBusiness) }}
+          <template slot-scope="{ row }">
+            {{ row.roleBusiness }}
           </template>
-        </new-table>
-      </dg-card>
-    </dg-col>
-    <dg-col :span="12">
-      <dg-card shadow="never" header="角色列表">
-        <!-- 角色搜索栏 -->
-        <search-bar :conditionForm="roleConditionForm" @submitSearch="receiveRoleSearch"></search-bar>
-        <!-- 角色操作栏 -->
-        <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
-        <!-- 角色列表 -->
-        <dg-table
-          ref="myRoleTable"
-          :data="tableData"
-          :pagination="false"
-          :span-method="objectSpanMethod"
-          border
-          style="width: 100%"
-          overflow="tooltip"
-          @selection-change="handleSelectChange"
-        >
-          <dg-table-column prop="appName" label="应用系统名称" min-width="120" align="center"> </dg-table-column>
-          <dg-table-column type="selection" width="50" align="center"></dg-table-column>
-          <dg-table-column prop="name" label="角色名称" width="100" align="center"> </dg-table-column>
-          <dg-table-column prop="roleLevel" label="角色层级" code="DM_ROLE_LEVEL" width="100" align="center">
-          </dg-table-column>
-          <dg-table-column prop="policeCategory" label="警种" code="T_MD_POLICE_TYPE" align="center"> </dg-table-column>
-          <dg-table-column
-            prop="roleBusiness"
-            label="业务域标签"
-            min-width="100"
-            code="DM_POLICE_BUSINESS"
-            align="center"
-          >
-            <template slot-scope="{ row }">
-              {{ row.roleBusiness }}
-            </template>
-          </dg-table-column>
-          <dg-table-column prop="activeTime" label="权限有效期" min-width="90" align="center">
-            <template slot-scope="{ row }">
-              <a href="javascript:;" @click="handleValidateChoose(row)">{{ row.activeTime }}</a>
-            </template>
-          </dg-table-column>
-        </dg-table>
-      </dg-card>
-    </dg-col>
+        </dg-table-column>
+        <dg-table-column prop="activeTime" label="权限有效期" min-width="90" align="center">
+          <template slot-scope="{ row }">
+            <a href="javascript:;" @click="handleValidateChoose(row)">{{ row.activeTime }}</a>
+          </template>
+        </dg-table-column>
+      </dg-table>
+    </scrollCard>
   </dg-row>
 </template>
 
@@ -73,6 +69,8 @@ import searchBar from '@/components/search-bar';
 import { searchOpt } from '@/mixins/page-opt';
 import { userConditionForm, userTableHeader, roleConditionForm } from './DataConfig';
 import operateBar from '@/components/operate-bar';
+import scrollCard from '@/components/scroll-card';
+
 export default {
   name: 'role-list',
   // 接收父页面传过来的属性
@@ -80,7 +78,8 @@ export default {
   components: {
     newTable,
     searchBar,
-    operateBar
+    operateBar,
+    scrollCard
   },
   mixins: [transferBusinessTagMixin, searchOpt],
 

+ 0 - 1
src/pages/appfun-auth-manage/role-auth-manage/roleView.vue

@@ -142,7 +142,6 @@ export default {
         }
       ],
       userOptList: ['保存'],
-      persionListData: [],
       userCondition: {
         roleId: {
           value: '',

+ 115 - 0
src/pages/auth-object-manage/statistics/index.vue

@@ -0,0 +1,115 @@
+<!--
+客体统计
+@Author: linqian
+@date: 2023-06-06 09:39
+-->
+<template>
+  <div>
+    <div class="search-bar">
+      <div>
+        <el-radio v-model="form.radioValue" label="1">
+          按年
+          <el-date-picker v-model="form.year" type="year" placeholder="选择年" style="width: 200px !important">
+          </el-date-picker>
+        </el-radio>
+        <el-radio v-model="form.radioValue" label="2">
+          自定义日期
+          <el-date-picker
+            v-model="form.customValue"
+            type="daterange"
+            style="width: 350px !important"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            :default-time="['00:00:00', '23:59:59']"
+            :value-format="'yyyy-MM-dd HH:mm:ss'"
+          >
+          </el-date-picker>
+        </el-radio>
+      </div>
+      <div style="margin-left: 20px">
+        <dg-button type="primary" :icon="'查询' | optIcon" @click="handleSearch()">查询</dg-button>
+        <dg-button :icon="'重置' | optIcon" @click="handleReset()">重置</dg-button>
+      </div>
+    </div>
+    <new-table ref="table" :data="tableData" :tableHeader="tableHeader" :pagination="false"></new-table>
+  </div>
+</template>
+
+<script>
+import newTable from '@/components/new-table';
+import { objStatisticsTable } from '@/api/statistics.js';
+
+export default {
+  components: { newTable },
+  data() {
+    return {
+      form: {
+        radioValue: '1',
+        year: new Date(),
+        customValue: ''
+      },
+      tableData: [],
+      tableHeader: [
+        {
+          prop: 'envElementType',
+          label: '授权客体类型'
+        },
+        {
+          prop: 'num',
+          label: '数量'
+        }
+      ]
+    };
+  },
+  computed: {},
+  methods: {
+    handleSearch() {
+      const { radioValue, year, customValue } = this.form;
+      if (radioValue == '1' && !year) {
+        this.$message.warning('请选择年');
+        return;
+      }
+      if (radioValue == '2' && !customValue) {
+        this.$message.warning('自定义日期不能为空');
+        return;
+      }
+      this.getData();
+    },
+    handleReset() {
+      this.form.radioValue = '1';
+      this.form.year = new Date();
+      this.form.customValue = '';
+    },
+    getData() {
+      let params = {};
+      const { radioValue, customValue, year } = this.form;
+      if (radioValue == '1') {
+        params = {
+          year: this.$moment(year).format('YYYY')
+        };
+      } else {
+        params = {
+          startTime: customValue[0],
+          endTime: customValue[1]
+        };
+      }
+      objStatisticsTable(params).then((res) => {
+        this.tableData = res;
+      });
+    }
+  },
+  created() {
+    this.getData();
+  },
+  mounted() {}
+};
+</script>
+
+<style lang='scss' scoped>
+.search-bar {
+  display: flex;
+  align-items: center;
+  margin-bottom: 20px;
+}
+</style>

+ 115 - 0
src/pages/auth-subject-manage/statistics/index.vue

@@ -0,0 +1,115 @@
+<!--
+统计
+@Author: linqian
+@date: 2023-06-06 09:39
+-->
+<template>
+  <div>
+    <div class="search-bar">
+      <div>
+        <el-radio v-model="form.radioValue" label="1">
+          按年
+          <el-date-picker v-model="form.year" type="year" placeholder="选择年" style="width: 200px !important">
+          </el-date-picker>
+        </el-radio>
+        <el-radio v-model="form.radioValue" label="2">
+          自定义日期
+          <el-date-picker
+            v-model="form.customValue"
+            type="daterange"
+            style="width: 350px !important"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            :default-time="['00:00:00', '23:59:59']"
+            :value-format="'yyyy-MM-dd HH:mm:ss'"
+          >
+          </el-date-picker>
+        </el-radio>
+      </div>
+      <div style="margin-left: 20px">
+        <dg-button type="primary" :icon="'查询' | optIcon" @click="handleSearch()">查询</dg-button>
+        <dg-button :icon="'重置' | optIcon" @click="handleReset()">重置</dg-button>
+      </div>
+    </div>
+    <new-table ref="table" :data="tableData" :tableHeader="tableHeader" :pagination="false"></new-table>
+  </div>
+</template>
+
+<script>
+import newTable from '@/components/new-table';
+import { subStatisticsTable } from '@/api/statistics.js';
+
+export default {
+  components: { newTable },
+  data() {
+    return {
+      form: {
+        radioValue: '1',
+        year: new Date(),
+        customValue: ''
+      },
+      tableData: [],
+      tableHeader: [
+        {
+          prop: 'envElementType',
+          label: '授权主体类型'
+        },
+        {
+          prop: 'envElementType',
+          label: '数量'
+        }
+      ]
+    };
+  },
+  computed: {},
+  methods: {
+    handleSearch() {
+      const { radioValue, year, customValue } = this.form;
+      if (radioValue == '1' && !year) {
+        this.$message.warning('请选择年');
+        return;
+      }
+      if (radioValue == '2' && !customValue) {
+        this.$message.warning('自定义日期不能为空');
+        return;
+      }
+      this.getData();
+    },
+    handleReset() {
+      this.form.radioValue = '1';
+      this.form.year = new Date();
+      this.form.customValue = '';
+    },
+    getData() {
+      let params = {};
+      const { radioValue, customValue, year } = this.form;
+      if (radioValue == '1') {
+        params = {
+          year: this.$moment(year).format('YYYY')
+        };
+      } else {
+        params = {
+          startTime: customValue[0],
+          endTime: customValue[1]
+        };
+      }
+      subStatisticsTable(params).then((res) => {
+        this.tableData = res;
+      });
+    }
+  },
+  created() {
+    this.getData();
+  },
+  mounted() {}
+};
+</script>
+
+<style lang='scss' scoped>
+.search-bar {
+  display: flex;
+  align-items: center;
+  margin-bottom: 20px;
+}
+</style>

+ 3 - 3
src/pages/data-auth-manage/components/set-auth.vue

@@ -5,7 +5,7 @@
 -->
 <template>
     <div class="property-wapper__right">
-        <dg-card :shadow="shadow" header="权限设置">
+        <dg-card     header="权限设置">
             <el-tabs v-model="activeName" @tab-click="handleClick">
                 <el-tab-pane label="表授权" name="TABLE">
                     <table-column-auth
@@ -51,7 +51,7 @@ export default {
     props: {
         shadow: {
             type: String,
-            default: "never"
+            default: "never1"
         },
         // 主体id
         subId: String,
@@ -161,7 +161,7 @@ export default {
             margin-bottom: 8px;
         }
         .el-card__body{
-           height: 45rem;
+           height: 44.7rem;
          }
     }
 }

+ 2 - 2
src/pages/data-auth-manage/org-auth.vue

@@ -8,11 +8,11 @@
         <dg-row class="property-wapper" gutter="1rem">
             <!-- 机构列表 -->
             <dg-col :span="5" class="property-wapper__left">
-                <dg-card header="机构列表"  shadow="never" class="org-card box-card">
+                <dg-card header="机构列表" class="org-card box-card">
                     <org-tree
                         ref="tree"
                         class="u-pm__left"
-                        treeHeight="calc(100vh - 17.6rem)"
+                        treeHeight="calc(100vh - 18rem)"
                         :search="true"
                         paddingRight="15px"
                         @handleGetNode="handleGetNode"

+ 1 - 1
src/pages/data-auth-manage/person-auth.vue

@@ -7,7 +7,7 @@
   <dg-row class="property-wapper" gutter="1rem">
     <!-- 人员列表区域 -->
     <dg-col :span="15" class="property-wapper__center">
-      <dg-card shadow="never" header="人员列表">
+      <dg-card header="人员列表">
         <!-- 搜索栏 -->
         <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
         <!-- 人员列表 -->

+ 1 - 1
src/pages/log-manage/auth-risk-detection/edit.vue

@@ -180,7 +180,7 @@ export default {
             }
         },
         handleClose() {
-            this.$emit("success", true);
+            this.$emit("close");
         },
         async handlSave() {
             const that = this;

+ 6 - 0
src/router/modules/appfun-auth-manage.js

@@ -28,6 +28,12 @@ const componentRouter = {
       component: () => import('@/pages/appfun-auth-manage/role-auth-manage'),
       name: 'role-auth-manage',
       meta: { title: '角色授权管理', noCache: true, permission: ['YHGLPT_SQGL_RYSQGL'],layout: "page" }
+    },
+    {
+      path: 'org-role-manage',
+      component: () => import('@/pages/appfun-auth-manage/org-role-manage'),
+      name: 'org-role-manage',
+      meta: { title: '机构角色授权管理', noCache: true, permission: ['YHGLPT_SQGL_RYSQGL'],layout: "page" }
     }
   ]
 };

+ 6 - 0
src/router/modules/auth-object-manage.js

@@ -38,6 +38,12 @@ const componentsRouter = {
       component: () => import('@/pages/auth-object-manage/object-prop-manage'),
       name: 'object-prop-manage',
       meta: { title: '客体属性管理', noCache: true, permission: ['QXGL_SQGL_ZTGL_KTSXLGL'], layout: 'page' }
+    },
+    {
+      path: 'statistics',
+      component: () => import('@/pages/auth-object-manage/statistics/index.vue'),
+      name: 'auth-subject-manage-statistics',
+      meta: { title: '统计', noCache: true, permission: ['QXGL_SQGL_ZTGL_ZTSXLGL'] }
     }
   ]
 };

+ 7 - 1
src/router/modules/auth-subject-manage.js

@@ -40,7 +40,13 @@ const componentsRouter =
           path: 'environment-element',
           component: () => import('@/pages/auth-subject-manage/environment-element'),
           name: 'environment-element',
-          meta: { title: '主体环境要素管理', noCache: true, permission: ['QXGL_SQGL_ZTGL_ZTHJYSGL', 'QXGL_SQGL_ZTGL_ZTSXLGL'] }
+          meta: { title: '主体环境要素管理', noCache: true, permission: ['QXGL_SQGL_ZTGL_ZTHJYSGL'] }
+        },
+        {
+          path: 'statistics',
+          component: () => import('@/pages/auth-subject-manage/statistics/index.vue'),
+          name: 'auth-subject-manage-statistics',
+          meta: { title: '统计', noCache: true, permission: ['QXGL_SQGL_ZTGL_ZTSXLGL'] }
         }
       ]
     }