Browse Source

优化 + 根据功能清单调整菜单

林倩 3 năm trước cách đây
mục cha
commit
d461d28097
37 tập tin đã thay đổi với 976 bổ sung1973 xóa
  1. 4 1
      config/btn-icon-config.js
  2. 1 1
      src/components/data-auth/table-column-auth.vue
  3. 2 2
      src/components/tree-table/index.vue
  4. 9 9
      src/pages/admin-manage/add.vue
  5. 159 25
      src/pages/admin-manage/index.vue
  6. 0 168
      src/pages/admin-manage/tab-first.vue
  7. 0 110
      src/pages/admin-manage/tab-second.vue
  8. 79 108
      src/pages/authorization-manage/index.vue
  9. 4 2
      src/pages/common/new-table/index.vue
  10. 183 176
      src/pages/data-auth-module/auth-object-manage/object-prop-manage/add-dialog.vue
  11. 14 10
      src/pages/data-auth-module/auth-object-manage/object-prop-manage/application-list.vue
  12. 1 1
      src/pages/data-auth-module/auth-subject-manage/subject-prop-manage/index.vue
  13. 70 64
      src/pages/data-auth-module/auth-subject-manage/user-prop-manage/detail.vue
  14. 3 3
      src/pages/data-auth-module/auth-subject-manage/user-prop-manage/index.vue
  15. 4 29
      src/pages/empower-manage/institutional-quotas-manage/edit.vue
  16. 23 16
      src/pages/empower-manage/institutional-quotas-manage/index.vue
  17. 0 100
      src/pages/home/agree.vue
  18. 0 163
      src/pages/home/detail.vue
  19. 0 86
      src/pages/home/disagree.vue
  20. 2 191
      src/pages/home/index.vue
  21. 0 165
      src/pages/home/uni_change.vue
  22. 9 2
      src/pages/log-report/persionnel-author-audit/timeLine.vue
  23. 1 1
      src/pages/log-report/scope-author-audit/index.vue
  24. 7 1
      src/pages/log-report/scope-author-audit/timeLine.vue
  25. 95 0
      src/pages/statistics-manage/role-authorization/detail.vue
  26. 0 63
      src/pages/statistics-manage/role-authorization/editor.vue
  27. 66 78
      src/pages/statistics-manage/role-authorization/index.vue
  28. 114 40
      src/router/index.js
  29. 2 2
      src/router/modules/admin-manage.js
  30. 0 34
      src/router/modules/application-manage.js
  31. 0 25
      src/router/modules/authorization-manage.js
  32. 11 46
      src/router/modules/data-auth-module.js
  33. 8 50
      src/router/modules/empower-manage.js
  34. 68 107
      src/router/modules/log-manage.js
  35. 10 16
      src/router/modules/log-report.js
  36. 27 17
      src/router/modules/statistics-manage.js
  37. 0 61
      src/router/modules/user-manage.js

+ 4 - 1
config/btn-icon-config.js

@@ -19,7 +19,10 @@ const btnAttr = [
     ['资源获取', 'el-icon-refresh'],
     ['资源同步', 'el-icon-refresh'],
     ['查看列权限清单', 'el-icon-document'],
-    ['批量删除', 'el-icon-delete']
+    ['批量删除', 'el-icon-delete'],
+    ['分局应用授权情况', 'el-icon-document'],
+    ['权限配置', 'el-icon-setting'],
+    ['配置', 'el-icon-setting']
 ]
 let iconMap = new Map(btnAttr);
 export default iconMap

+ 1 - 1
src/components/data-auth/table-column-auth.vue

@@ -6,7 +6,7 @@
 <template>
     <div>
         <div v-if="subId">
-            <div style="height: calc(100vh - 21rem)">
+            <div style="height: calc(100vh - 22rem)">
                 <dg-scrollbar>
                     <set-auth-tree
                         :tab="tab"

+ 2 - 2
src/components/tree-table/index.vue

@@ -13,9 +13,9 @@
     >
         <template v-for="(item, indexs) in headerData">
             <dg-table-column :key="indexs" v-bind="item">
-                <template v-if="item.state" slot-scope="scope">
+                <!-- <template v-if="item.state" slot-scope="scope">
                     <span>{{ converterText(scope.row, item) }}</span>
-                </template>
+                </template> -->
             </dg-table-column>
         </template>
         <slot />

+ 9 - 9
src/pages/admin-manage/add.vue

@@ -15,7 +15,7 @@
     </new-table>
     <div class="dg-layer-demo" v-footer>
       <dg-button @click="handleClose">取消</dg-button>
-      <dg-button type="primary" @click="handlSave">确定</dg-button>
+      <dg-button type="primary" @click="handlSave">保存</dg-button>
     </div>
   </dg-row>
 </template>
@@ -31,7 +31,7 @@ import { conditionForm, tableHeader } from './DataConfig';
 export default {
   name: 'adminManageAdd',
   components: { newTable, searchBar },
-  mixins: [ searchOpt ],
+  mixins: [searchOpt],
   computed: {
     ...mapGetters(['user'])
   },
@@ -85,11 +85,11 @@ export default {
         if (!flag) {
           Api.addAdmin(params)
             .then((res) => {
-              this.$message.success('新增成功!');
+              this.$message.success('保存成功!');
               this.$emit('success');
             })
             .catch(() => {
-              this.$message.error('新增失败!');
+              this.$message.error('保存失败!');
             });
         }
       } else {
@@ -127,12 +127,12 @@ export default {
     }
   },
   created() {
-      this.condition = {
-          orgId: {
-              value: this.orgId,
-              op: "="
-          }
+    this.condition = {
+      orgId: {
+        value: this.orgId,
+        op: '='
       }
+    };
   }
 };
 </script>

+ 159 - 25
src/pages/admin-manage/index.vue

@@ -1,33 +1,167 @@
-/** * 组件名称;管理员管理 * @author:laiyh * @Date:2020-07-27 */
-
+/** 管理员管理 author:laiyh date:2020-10-28 */
 <template>
-	<el-tabs v-model="activeName" type="card">
-		<el-tab-pane label="管理员管理" name="admin"><tab-first /></el-tab-pane>
-		<el-tab-pane label="授权管理员查询" name="adminSearch" lazy><tab-second /></el-tab-pane>
-	</el-tabs>
+  <dg-row>
+    <!-- 搜索项 -->
+    <search-bar ref="searchBar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 操作 -->
+    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+
+    <!-- 列表 -->
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </dg-row>
 </template>
 
 <script>
-import tabFirst from './tab-first.vue';
-import tabSecond from './tab-second.vue';
+import newTable from '@/pages/common/new-table';
+// import Import from "@/components/import";
+import Add from './add';
+import Editor from './noBindEditor';
+import PoliceDetail from '@/pages/user-manage/police-manage/detail';
+import AuxiliaryDetail from '@/pages/user-manage/auxiliary-police-manage/detail';
+import * as api from '@/api/admin-manage';
+import { downloadBlob } from '@/utils/download';
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import { searchOpt } from '@/mixins/page-opt';
+import { conditionForm, tableHeader } from './DataConfig';
+const area = ['1000px', '700px'];
 export default {
-	name: '',
-	components: {
-		tabFirst,
-		tabSecond
-	},
-	// 接收父节点的参数
-	props: {},
-	data() {
-		return {
-			activeName: 'admin'
-		};
-	},
-	// 方法
-	methods: {},
-	// 页面创建完成$data可访问 $el不可以访问
-	created() {}
+  components: { newTable, searchBar, operateBar },
+  mixins: [searchOpt],
+  data() {
+    return {
+      tableUrl: api.table,
+      conditionForm,
+      tableHeader,
+      pageOptList: ['新增'],
+      tableOptList: ['用户信息','修改', '删除']
+    };
+  },
+  methods: {
+    receviceOpt(type, row) {
+      if (type == '新增') {
+        this.handleAddDialog();
+      } else if (type == '修改') {
+        this.handleEditor(row);
+      } else if (type == '用户信息') {
+        this.handleDetail(row);
+      } else if (type == '删除') {
+        this.handleDelete(row);
+      }
+    },
+    handleEditor({ id }) {
+      const that = this;
+      const layer = that.$dgLayer({
+        title: '修改',
+        shade: [0.4, '#FFF'],
+        area: ['830px', '660px'],
+        content: Editor,
+        props: {
+          id,
+          type: 'edit'
+        },
+        on: {
+          success() {
+            layer.close(layer.dialogIndex);
+            that.handleSearch();
+          }
+        }
+      });
+    },
+    handleDetail(row) {
+      const layer = this.$dgLayer({
+        title: '详情',
+        shade: [0.4, '#FFF'],
+        content: row.userType == '10' ? PoliceDetail : AuxiliaryDetail,
+        area,
+        props: { sizeForm: row },
+        on: {
+          success() {
+            layer.close(layer.dialogIndex);
+          }
+        }
+      });
+    },
+    handleDelete({ id }) {
+      const that = this;
+      that.$confirm('是否确定删除这条数据!', '提示').then(() => {
+        api
+          .del(id)
+          .then(() => {
+            that.handleSearch();
+            that.$message.success('删除成功!');
+          })
+          .catch((error) => {
+            that.$message.error('删除失败!');
+          });
+      });
+    },
+    // 新增
+    handleAddDialog() {
+      const that = this;
+      const orgId = this.$refs.searchBar.form.find((item) => item.name == 'orgId').value;
+      const layer = that.$dgLayer({
+        title: '新增',
+        shade: [0.4, '#FFF'],
+        content: Add,
+        props: { type: 'create', orgId },
+        area,
+        on: {
+          success() {
+            layer.close(layer.dialogIndex);
+            that.handleSearch();
+          }
+        }
+      });
+    },
+    handleExport() {
+      let data = this.$refs.table.getReqSearchCondition();
+      api
+        .exports(data, {
+          method: 'post',
+          headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+        })
+        .then((res) => {
+          downloadBlob('管理员信息.xls', res.data);
+        })
+        .catch((error) => {
+          console.error('[Error]', error);
+          this.$message.error('下载失败!');
+        });
+    },
+    handleImport() {
+      // const layer = this.$dgLayer({
+      //     title: "管理员导入",
+      //     shade: [0.4, "#FFF"],
+      //     area: ["400px", "400px"],
+      //     content: Import,
+      //     props: {
+      //         temp: "manager",
+      //         action: "/usersvr/v2/admin/import",
+      //         fileName: "管理员模版"
+      //     },
+      //     on: {
+      //         success(params) {
+      //             layer.close(layer.dialogIndex);
+      //         }
+      //     }
+      // });
+    }
+  }
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style scoped lang="scss">
+.el-input,
+.el-select {
+  width: 140px !important;
+}
+</style>

+ 0 - 168
src/pages/admin-manage/tab-first.vue

@@ -1,168 +0,0 @@
-/** 管理员管理 author:laiyh date:2020-10-28 */
-<template>
-  <dg-row>
-    <!-- 搜索项 -->
-    <search-bar ref="searchBar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
-    <!-- 操作 -->
-    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
-
-    <!-- 列表 -->
-    <new-table
-      ref="table"
-      :tableUrl="tableUrl"
-      :tableHeader="tableHeader"
-      :condition="condition"
-      :tableOptList="tableOptList"
-      @submitTableOpt="receviceOpt"
-    >
-    </new-table>
-  </dg-row>
-</template>
-
-<script>
-import newTable from '@/pages/common/new-table';
-// import Import from "@/components/import";
-import Add from './add';
-import Editor from './noBindEditor';
-import PoliceDetail from '@/pages/user-manage/police-manage/detail';
-import AuxiliaryDetail from '@/pages/user-manage/auxiliary-police-manage/detail';
-import * as api from '@/api/admin-manage';
-import { downloadBlob } from '@/utils/download';
-import searchBar from '@/components/search-bar';
-import operateBar from '@/components/operate-bar';
-import { searchOpt } from '@/mixins/page-opt';
-import { conditionForm, tableHeader } from './DataConfig';
-const area = ['950px', '660px'];
-export default {
-  name: 'TabFirst',
-  components: { newTable, searchBar, operateBar },
-  mixins: [searchOpt],
-  data() {
-    return {
-      tableUrl: api.table,
-      conditionForm,
-      tableHeader,
-      pageOptList: ['新增'],
-      tableOptList: ['用户信息','修改', '删除']
-    };
-  },
-  methods: {
-    receviceOpt(type, row) {
-      if (type == '新增') {
-        this.handleAddDialog();
-      } else if (type == '修改') {
-        this.handleEditor(row);
-      } else if (type == '用户信息') {
-        this.handleDetail(row);
-      } else if (type == '删除') {
-        this.handleDelete(row);
-      }
-    },
-    handleEditor({ id }) {
-      const that = this;
-      const layer = that.$dgLayer({
-        title: '修改',
-        shade: [0.4, '#FFF'],
-        area: ['830px', '660px'],
-        content: Editor,
-        props: {
-          id,
-          type: 'edit'
-        },
-        on: {
-          success() {
-            layer.close(layer.dialogIndex);
-            that.handleSearch();
-          }
-        }
-      });
-    },
-    handleDetail(row) {
-      const layer = this.$dgLayer({
-        title: '详情',
-        shade: [0.4, '#FFF'],
-        content: row.userType == '10' ? PoliceDetail : AuxiliaryDetail,
-        area,
-        props: { sizeForm: row },
-        on: {
-          success() {
-            layer.close(layer.dialogIndex);
-          }
-        }
-      });
-    },
-    handleDelete({ id }) {
-      const that = this;
-      that.$confirm('是否确定删除这条数据!', '提示').then(() => {
-        api
-          .del(id)
-          .then(() => {
-            that.handleSearch();
-            that.$message.success('删除成功!');
-          })
-          .catch((error) => {
-            that.$message.error('删除失败!');
-          });
-      });
-    },
-    // 新增
-    handleAddDialog() {
-      const that = this;
-      const orgId = this.$refs.searchBar.form.find((item) => item.name == 'orgId').value;
-      const layer = that.$dgLayer({
-        title: '管理员添加',
-        shade: [0.4, '#FFF'],
-        content: Add,
-        props: { type: 'create', orgId },
-        area,
-        on: {
-          success() {
-            layer.close(layer.dialogIndex);
-            that.handleSearch();
-          }
-        }
-      });
-    },
-    handleExport() {
-      let data = this.$refs.table.getReqSearchCondition();
-      api
-        .exports(data, {
-          method: 'post',
-          headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
-        })
-        .then((res) => {
-          downloadBlob('管理员信息.xls', res.data);
-        })
-        .catch((error) => {
-          console.error('[Error]', error);
-          this.$message.error('下载失败!');
-        });
-    },
-    handleImport() {
-      // const layer = this.$dgLayer({
-      //     title: "管理员导入",
-      //     shade: [0.4, "#FFF"],
-      //     area: ["400px", "400px"],
-      //     content: Import,
-      //     props: {
-      //         temp: "manager",
-      //         action: "/usersvr/v2/admin/import",
-      //         fileName: "管理员模版"
-      //     },
-      //     on: {
-      //         success(params) {
-      //             layer.close(layer.dialogIndex);
-      //         }
-      //     }
-      // });
-    }
-  }
-};
-</script>
-
-<style scoped lang="scss">
-.el-input,
-.el-select {
-  width: 140px !important;
-}
-</style>

+ 0 - 110
src/pages/admin-manage/tab-second.vue

@@ -1,110 +0,0 @@
-/** 授权管理员查询 author:laiyh date:2020-10-28 */
-<template>
-  <div>
-    <!-- 搜索项 -->
-    <search-bar ref="searchBar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
-    <!-- 表格 -->
-    <new-table
-      ref="table"
-      :tableUrl="tableUrl"
-      :tableHeader="tableHeader"
-      :condition="condition"
-      :tableOptList="tableOptList"
-      @submitTableOpt="receviceOpt"
-    >
-    </new-table>
-  </div>
-</template>
-
-<script>
-import newTable from '@/pages/common/new-table';
-import Editor from './noBindEditor';
-import PoliceDetail from '@/pages/user-manage/police-manage/detail';
-import AuxiliaryDetail from '@/pages/user-manage/auxiliary-police-manage/detail';
-import * as api from '@/api/admin-manage';
-import searchBar from '@/components/search-bar';
-import { searchOpt } from '@/mixins/page-opt';
-import { tableHeader } from './DataConfig';
-
-const area = ['950px', '660px'];
-export default {
-  name: 'TabSecond',
-  components: { newTable, searchBar },
-  mixins: [searchOpt],
-  data() {
-    return {
-      tableUrl: api.table,
-      conditionForm: [
-        {
-          label: '单位名称',
-          name: 'orgId',
-          op: '=',
-          value: '',
-          apiName: 'getTree',
-          nodeKey: 'id',
-          type: 'APP',
-          component: 'SelectOrgTree',
-          placeholder: '请选择单位名称',
-          filterable: false
-        }
-      ],
-      tableHeader,
-      tableOptList: ['修改', '用户信息']
-    };
-  },
-  methods: {
-    receviceOpt(type, row) {
-      if (type == '修改') {
-        this.handleEdit(row);
-      } else if (type == '用户信息') {
-        this.handleDetail();
-      }
-    },
-    success(message = '操作成功!') {
-      const that = this;
-      that.$message.success(message);
-    },
-    fail(message = '操作失败', error) {
-      const that = this;
-      console.error('[Error]', error);
-      that.$message.error(message);
-    },
-    handleEdit({ id }) {
-      const that = this;
-
-      const layer = that.$dgLayer({
-        title: '修改',
-        shade: [0.4, '#FFF'],
-        area: ['830px', '660px'],
-        content: Editor,
-        props: {
-          id,
-          type: 'edit'
-        },
-        on: {
-          success(bool = false) {
-            layer.close(layer.dialogIndex);
-            if (bool) {
-              that.handleSearch();
-            }
-          }
-        }
-      });
-    },
-    handleDetail(row) {
-      const layer = this.$dgLayer({
-        title: '详情',
-        shade: [0.4, '#FFF'],
-        content: row.userType == '10' ? PoliceDetail : AuxiliaryDetail,
-        area,
-        props: { sizeForm: row },
-        on: {
-          success() {
-            layer.close(layer.dialogIndex);
-          }
-        }
-      });
-    }
-  }
-};
-</script>

+ 79 - 108
src/pages/authorization-manage/index.vue

@@ -1,121 +1,92 @@
 /** * 组件名称;权限配置 * @author:laiyh * @Date:2020-07-27 */
 
 <template>
-    <dg-row :gutter="20">
-        <dg-col :span="5"
-            ><tree
-                ref="tree"
-                class="u-pm__left"
-                title="机构列表"
-                @handleGetNode="handleGetNode"
-                @submitRootNode="submitRootNode"
-        /></dg-col>
-        <dg-col :span="19">
-            <div class="u-right__table">
-                <el-form ref="form" label-position="left" label-suffix="" inline :model="reportPersonFrom">
-                    <el-form-item label="应用系统名称" prop="applyName.value"
-                        ><el-input
-                            placeholder="请输入应用系统名称"
-                            v-model="reportPersonFrom.applyName.value"
-                            clearable
-                            @keyup.enter.native="doSearch"
-                        ></el-input
-                    ></el-form-item>
-                    <el-form-item>
-                        <dg-button type="primary" icon="el-icon-search" @click="doSearch">查询</dg-button>
-                    </el-form-item>
-                </el-form>
-                <Table
-                    ref="myTable"
-                    :url="tableUrl"
-                    :headerData="titleData"
-                    :condition="reportPersonFrom"
-                    :lazyLoad="true"
-                >
-                    <dg-table-column prop="name" label="应用系统名称" fixed="left" align="center">
-                        <template slot-scope="{ row }">
-                            <a href="javascript:;" @click="handleEdit(row)">{{ row.name }}</a>
-                        </template>
-                    </dg-table-column>
-                </Table>
-            </div>
-        </dg-col>
-    </dg-row>
+  <dg-row>
+    <!-- 搜索项 -->
+    <search-bar ref="searchBar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 表格 -->
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </dg-row>
 </template>
 
 <script>
-import Tree from "@/pages/common/tree";
-import Table from "@/pages/common/table";
-import Editor from "./edit.vue";
-import * as AuthorzationManageApi from "@/api/empower-manage";
-const area = ["1280px", "880px"];
-
+import newTable from '@/pages/common/new-table';
+import searchBar from '@/components/search-bar';
+import { searchOpt } from '@/mixins/page-opt';
+import Editor from './edit.vue';
+import * as AuthorzationManageApi from '@/api/empower-manage';
+const area = ['1280px', '880px'];
 export default {
-    name: "",
-    components: {
-        Tree,
-        Table
-    },
-    // 接收父节点的参数
-    props: {},
-    data() {
-        return {
-            tableUrl: AuthorzationManageApi.authTableUrl,
-            titleData: [
-                { label: "应用系统菜单数", prop: "menus" },
-                { label: "应用系统角色数", prop: "roles" }
-            ],
-            reportPersonFrom: {
-                orgId: { value: "", op: "=" },
-                applyName: { value: "", op: "like" }
-            }
-        };
-    },
-    // 方法
-    methods: {
-        handleGetNode({ id }) {
-            const that = this;
-            const oldVal = that.reportPersonFrom.orgId.value;
-            if (oldVal != id) {
-                that.reportPersonFrom.orgId.value = id;
-                that.handleSearch();
-            }
-        },
-        // 默认查询跟节点
-        submitRootNode({ id, name }) {
-            const that = this;
-            this.$nextTick(() => {
-                that.handleGetNode({ id, name });
-            });
+  name: '',
+  components: {
+    newTable,
+    searchBar
+  },
+  mixins: [searchOpt],
+  // 接收父节点的参数
+  props: {},
+  data() {
+    return {
+      tableUrl: AuthorzationManageApi.authTableUrl,
+      tableHeader: [
+        { label: '应用系统名称', prop: 'name' },
+        { label: '应用系统菜单数', prop: 'menus' },
+        { label: '应用系统角色数', prop: 'roles' }
+      ],
+      conditionForm: [
+        {
+          label: '应用系统名称',
+          name: 'applyName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
         },
-        handleSearch() {
-            this.$refs.myTable.handleSearchClick();
-        },
-        doSearch() {
-            const that = this;
-            this.reportPersonFrom.orgId.value = "";
-            this.handleSearch();
-        },
-        handleReset() {
-            this.$refs.form.resetFields();
-        },
-        // 修改
-        handleEdit(row) {
-            const that = this;
-            const layer = that.$dgLayer({
-                title: "权限配置",
-                area: area,
-                shade: [0.4, "#fff"],
-                props: {
-                    sizeForm: row
-                },
-                content: Editor,
-                on: {}
-            });
+        {
+          label: '单位名称',
+          name: 'orgId',
+          op: '=',
+          value: '',
+          apiName: 'getTree',
+          nodeKey: 'id',
+          type: 'APP',
+          component: 'SelectOrgTree',
+          placeholder: '请选择单位名称',
+          filterable: false
         }
+      ],
+      tableOptList: ['权限配置']
+    };
+  },
+  // 方法
+  methods: {
+    receviceOpt(opt, row) {
+      this.handleEdit(row);
     },
-    // 页面创建完成$data可访问 $el不可以访问
-    created() {}
+    // 修改
+    handleEdit(row) {
+      const that = this;
+      const layer = that.$dgLayer({
+        title: '权限配置',
+        area: area,
+        shade: [0.4, '#fff'],
+        props: {
+          sizeForm: row
+        },
+        content: Editor,
+        on: {}
+      });
+    }
+  },
+  // 页面创建完成$data可访问 $el不可以访问
+  created() {}
 };
 </script>
 

+ 4 - 2
src/pages/common/new-table/index.vue

@@ -9,7 +9,7 @@
     <dg-table
       border
       ref="baseTable"
-      :auto-page="h=>h*0.6"
+      :auto-page="(h) => h * 0.6"
       :url="tableUrl"
       :condition="condition"
       :data="data"
@@ -23,6 +23,8 @@
       @select="handleSelect"
       @select-all="handleCheckAll"
       @row-click="handleRowClick"
+      v-bind="$attrs"
+      v-on="$listeners"
     >
       <dg-table-column v-if="selection" type="selection" reserve-selection width="55" align="center" />
       <dg-table-column type="index" label="序号" width="75" align="center" />
@@ -92,7 +94,7 @@ export default {
     // 操作列宽度
     optColumnWidth: {
       type: [String, Number],
-      default: "120"
+      default: '120'
     }
   },
   components: {},

+ 183 - 176
src/pages/data-auth-module/auth-object-manage/object-prop-manage/add-dialog.vue

@@ -8,10 +8,10 @@
 -->
 
 <template>
-    <main class="add-dialog">
-        <dg-row class="property-wapper" :gutter="10">
-            <!-- 机构列表 -->
-            <!-- <dg-col :span="8" class="property-wapper__left">
+  <main class="add-dialog">
+    <dg-row class="property-wapper" :gutter="10">
+      <!-- 机构列表 -->
+      <!-- <dg-col :span="8" class="property-wapper__left">
                 <dg-card class="box-card">
                     <org-tree
                         ref="tree"
@@ -24,189 +24,196 @@
                     ></org-tree>
                 </dg-card>
             </dg-col> -->
-            <!--  -->
-            <dg-col :span="24">
-                <el-form ref="form" label-suffix=":" inline>
-                    <el-form-item label="功能名称" v-if="type == 'function'">
-                        <el-input clearable placeholder="请输入功能名称" v-model="form.applyName.value"></el-input>
-                    </el-form-item>
-                    <el-form-item label="应用系统名称" v-if="type == 'application'">
-                        <el-input clearable placeholder="请输入应用系统名称" v-model="form.applyName.value"></el-input>
-                    </el-form-item>
-                    <el-form-item>
-                        <dg-button type="primary" icon="el-icon-search" @click="handleSearch">查询</dg-button>
-                    </el-form-item>
-                </el-form>
-                <dg-table
-                    ref="table"
-                    :url="tableUrl"
-                    :condition="form"
-                    border
-                    row-key="id"
-                    :before-quest="beforeQuest"
-                    @select="handleSelect"
-                    @select-all="handleCheckAll"
-                    v-if="type !== 'service'"
-                >
-                    <dg-table-column type="selection" reserve-selection width="55" />
-                    <template v-for="(item, indexs) in cardAgencylist">
-                        <dg-table-column :key="indexs" v-bind="item" align="center"> </dg-table-column>
-                    </template>
-                </dg-table>
-            </dg-col>
-        </dg-row>
-        <div v-footer>
-            <dg-button @click="handleClose">取消</dg-button>
-            <dg-button type="primary" @click="handleSave">添加</dg-button>
-        </div>
-    </main>
+      <!--  -->
+      <dg-col :span="24">
+        <el-form ref="form" label-suffix=":" inline>
+          <el-form-item label="功能名称" v-if="type == 'function'">
+            <el-input clearable placeholder="请输入功能名称" v-model="form.applyName.value"></el-input>
+          </el-form-item>
+          <el-form-item label="应用系统名称" v-if="type == 'application'">
+            <el-input clearable placeholder="请输入应用系统名称" v-model="form.applyName.value"></el-input>
+          </el-form-item>
+          <el-form-item>
+            <dg-button type="primary" icon="el-icon-search" @click="handleSearch">查询</dg-button>
+            <dg-button :icon="'重置' | optIcon" @click="handleReset">重置</dg-button>
+          </el-form-item>
+        </el-form>
+        <dg-table
+          ref="table"
+          :url="tableUrl"
+          :condition="form"
+          border
+          row-key="id"
+          :before-quest="beforeQuest"
+          @select="handleSelect"
+          @select-all="handleCheckAll"
+          v-if="type !== 'service'"
+        >
+          <dg-table-column type="selection" reserve-selection width="55" />
+          <template v-for="(item, indexs) in cardAgencylist">
+            <dg-table-column :key="indexs" v-bind="item" align="center"> </dg-table-column>
+          </template>
+        </dg-table>
+      </dg-col>
+    </dg-row>
+    <div v-footer>
+      <dg-button @click="handleClose">取消</dg-button>
+      <dg-button type="primary" @click="handleSave">保存</dg-button>
+    </div>
+  </main>
 </template>
 
 <script>
-import { appRestApi } from "@/api/application";
-import { cardAgencylist, cardFunctionList } from "../../auth-subject-manage/DataConfig";
-import orgTree from "@/pages/common/tree";
-import { addRelateApp, getRelateIds } from "@/api/data-auth";
-import _ from "lodash";
+import { appRestApi } from '@/api/application';
+import { cardAgencylist, cardFunctionList } from '../../auth-subject-manage/DataConfig';
+import { addRelateApp, getRelateIds } from '@/api/data-auth';
+import _ from 'lodash';
 export default {
-    name: "add-dialog", // 组件名称
-    props: {
-        // 接收父组件的数据
-        type: {
-            type: String,
-            default: "application"
-        },
-        parentNode: Object
+  name: 'add-dialog', // 组件名称
+  props: {
+    // 接收父组件的数据
+    type: {
+      type: String,
+      default: 'application'
     },
-    data() {
-        // 组件内部参数
-        return {
-            // 参数名称及默认值
-            cardFunctionList,
-            cardAgencylist,
-            form: {
-                applyName: {
-                    value: "",
-                    op: "like"
-                }
-            },
-            tableUrl: appRestApi.table,
-            otherParams: {
-                attrBelongType: this.parentNode.attrBelongType,
-                attrId: this.parentNode.id,
-                attrType: "OBJ"
-            }
-        };
+    parentNode: Object
+  },
+  data() {
+    // 组件内部参数
+    return {
+      // 参数名称及默认值
+      cardFunctionList,
+      cardAgencylist,
+      form: {
+        applyName: {
+          value: '',
+          op: 'like'
+        }
+      },
+      tableUrl: appRestApi.table,
+      otherParams: {
+        attrBelongType: this.parentNode.attrBelongType,
+        attrId: this.parentNode.id,
+        attrType: 'OBJ'
+      }
+    };
+  },
+  computed: {}, // 计算属性
+  watch: {}, // 侦听器(扩展的计算属性)
+  components: {}, // 注册局部组件
+  methods: {
+    /**
+     * @description: 获取机构节点
+     * @param {*} node
+     */
+    handleGetNode(node) {
+      this.subId = node.code;
+      this.key++;
+    },
+    /**
+     * @description:重置
+     */
+    handleReset() {
+      for (const key in this.form) {
+        this.form[key].value = '';
+      }
     },
-    computed: {}, // 计算属性
-    watch: {}, // 侦听器(扩展的计算属性)
-    components: { orgTree }, // 注册局部组件
-    methods: {
-        /**
-         * @description: 获取机构节点
-         * @param {*} node
-         */
-        handleGetNode(node) {
-            this.subId = node.code;
-            this.key++;
-        },
-        /**
-         * @description:查询
-         */
-        handleSearch() {
-            this.$refs.table.searchForm();
-        },
-        /**
-         * 进入页面默认选中设置
-         */
-        beforeQuest(res) {
-            const { content, totalElements } = res.data;
-            this.currentPageContent = content;
-            if (this.newChooseArr.length > 0) {
-                let rowKeys = [];
-                for (let j = 0; j < content.length; j++) {
-                    const cItem = content[j];
-                    const index = this.newChooseArr.findIndex((item) => (item.id || item) == cItem.id);
-                    if (index > -1) {
-                        rowKeys.push(this.newChooseArr[index].id || this.newChooseArr[index]);
-                    }
-                }
-                setTimeout(() => {
-                    this.$refs.table.setCheck(rowKeys);
-                }, 500);
-            }
+    /**
+     * @description:查询
+     */
+    handleSearch() {
+      this.$refs.table.searchForm();
+    },
+    /**
+     * 进入页面默认选中设置
+     */
+    beforeQuest(res) {
+      const { content, totalElements } = res.data;
+      this.currentPageContent = content;
+      if (this.newChooseArr.length > 0) {
+        let rowKeys = [];
+        for (let j = 0; j < content.length; j++) {
+          const cItem = content[j];
+          const index = this.newChooseArr.findIndex((item) => (item.id || item) == cItem.id);
+          if (index > -1) {
+            rowKeys.push(this.newChooseArr[index].id || this.newChooseArr[index]);
+          }
+        }
+        setTimeout(() => {
+          this.$refs.table.setCheck(rowKeys);
+        }, 500);
+      }
 
-            const result = {
-                data: {
-                    content,
-                    totalElements
-                }
-            };
-            return result;
-        },
-        /**
-         * 选中某条数据
-         */
-        handleSelect(selection, row) {
-            let copyAttr = _.cloneDeep(this.newChooseArr);
-            const index = this.newChooseArr.findIndex((item) => (item.id || item) == row.id);
-            if (index > -1) {
-                copyAttr.splice(index, 1);
-            } else {
-                copyAttr.push(row);
-            }
-            this.newChooseArr = copyAttr;
-            console.log(this.newChooseArr);
-        },
-        /**
-         * 选中/取消选中
-         */
-        handleCheckAll(selection) {
-            const checked = selection.length == 0 ? false : true;
-            this.currentPageContent.forEach((row) => {
-                // this.handleSelect([], element);
-                let copyAttr = _.cloneDeep(this.newChooseArr);
-                const index = this.newChooseArr.findIndex((item) => (item.id || item) == row.id);
-                if (checked) {
-                    if (index < 0) {
-                        copyAttr.push(row);
-                    }
-                } else {
-                    if (index > -1) {
-                        copyAttr.splice(index, 1);
-                    }
-                }
-                this.newChooseArr = copyAttr;
-            });
-            console.log(this.newChooseArr);
-        },
-        /**
-         * 关闭
-         */
-        handleClose() {
-            this.$emit("close");
-        },
-        /**
-         * 添加
-         */
-        handleSave() {
-            const params = {
-                ...this.otherParams,
-                relIds: this.newChooseArr.map((item) => item.id || item)
-            };
-            addRelateApp(params).then((res) => {
-                this.$message.success("保存成功");
-                this.$emit("success");
-            });
+      const result = {
+        data: {
+          content,
+          totalElements
+        }
+      };
+      return result;
+    },
+    /**
+     * 选中某条数据
+     */
+    handleSelect(selection, row) {
+      let copyAttr = _.cloneDeep(this.newChooseArr);
+      const index = this.newChooseArr.findIndex((item) => (item.id || item) == row.id);
+      if (index > -1) {
+        copyAttr.splice(index, 1);
+      } else {
+        copyAttr.push(row);
+      }
+      this.newChooseArr = copyAttr;
+      console.log(this.newChooseArr);
+    },
+    /**
+     * 选中/取消选中
+     */
+    handleCheckAll(selection) {
+      const checked = selection.length == 0 ? false : true;
+      this.currentPageContent.forEach((row) => {
+        // this.handleSelect([], element);
+        let copyAttr = _.cloneDeep(this.newChooseArr);
+        const index = this.newChooseArr.findIndex((item) => (item.id || item) == row.id);
+        if (checked) {
+          if (index < 0) {
+            copyAttr.push(row);
+          }
+        } else {
+          if (index > -1) {
+            copyAttr.splice(index, 1);
+          }
         }
+        this.newChooseArr = copyAttr;
+      });
+      console.log(this.newChooseArr);
     },
-    created() {
-        getRelateIds(this.otherParams).then((res) => {
-            this.newChooseArr = res.data.content;
-        });
+    /**
+     * 关闭
+     */
+    handleClose() {
+      this.$emit('close');
     },
-    mounted() {
+    /**
+     * 添加
+     */
+    handleSave() {
+      const params = {
+        ...this.otherParams,
+        relIds: this.newChooseArr.map((item) => item.id || item)
+      };
+      addRelateApp(params).then((res) => {
+        this.$message.success('保存成功');
+        this.$emit('success');
+      });
     }
+  },
+  created() {
+    getRelateIds(this.otherParams).then((res) => {
+      this.newChooseArr = res.data.content;
+    });
+  },
+  mounted() {}
 };
 </script>
 <style lang="scss" scoped></style>

+ 14 - 10
src/pages/data-auth-module/auth-object-manage/object-prop-manage/application-list.vue

@@ -30,12 +30,12 @@
         </el-form-item>
         <el-form-item>
           <dg-button type="primary" :icon="'查询' | optIcon" @click="handleSearch">查询</dg-button>
-           <dg-button :icon="'重置' | optIcon" @click="handleReset">重置</dg-button>
+          <dg-button :icon="'重置' | optIcon" @click="handleReset">重置</dg-button>
         </el-form-item>
       </el-form>
-      <dg-row>
-        <dg-button type="primary" :icon="'新增' | optIcon" class="add-btn" @click="handleAdd">新增</dg-button>
-      </dg-row>
+      <!-- 操作栏 -->
+      <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+      <!-- 表格 -->
       <Table ref="table" :url="ObjAppTableUrl" :headerData="cardAgencylist" :condition="form"> </Table>
     </template>
     <p v-else>请选择属性值</p>
@@ -47,13 +47,14 @@ import Table from '@/pages/common/table';
 import { ObjAppTableUrl } from '@/api/data-auth';
 import { cardAgencylist } from '../../auth-subject-manage/DataConfig';
 import addDialog from './add-dialog';
-const editorArea = ['1000px', '760px'];
+import operateBar from '@/components/operate-bar';
 export default {
   name: 'personnelList', // 组件名称
   props: {
     parentNode: Object,
     operateType: String
   },
+  components: { Table, operateBar }, // 注册局部组件
   data() {
     // 组件内部参数
     return {
@@ -73,25 +74,28 @@ export default {
           op: '=',
           value: this.parentNode.id
         }
-      }
+      },
+      pageOptList: ['新增']
     };
   },
   computed: {}, // 计算属性
   watch: {}, // 侦听器(扩展的计算属性)
-  components: { Table }, // 注册局部组件
   methods: {
+    receviceOpt(opt, row) {
+      this.handleAdd();
+    },
     /**
      * @description: 查询
      */
     handleSearch() {
       this.$refs.table.handleSearchClick();
     },
-      /**
+    /**
      * @description: 重置
      */
     handleReset() {
       for (const key in this.form) {
-        this.form[key].value = "";
+        this.form[key].value = '';
       }
     },
     /**
@@ -117,7 +121,7 @@ export default {
             vm.handleSearch();
           }
         },
-        area: editorArea
+        area: ['1000px', '760px']
       });
     }
   },

+ 1 - 1
src/pages/data-auth-module/auth-subject-manage/subject-prop-manage/index.vue

@@ -9,7 +9,7 @@
 
 <template>
     <main class="subject-property">
-        <dg-row :gutter="20">
+        <dg-row gutter="1rem">
             <dg-col :span="5">
                 <tree
                     ref="tree"

+ 70 - 64
src/pages/data-auth-module/auth-subject-manage/user-prop-manage/detail.vue

@@ -6,83 +6,89 @@
  * @Description: 
 -->
 <template>
-    <main class="user-attributes-detail">
-        <el-form ref="ruleForm" :model="detailInfo" label-width="120px" v-if="detailInfo.id" label-suffix=":">
-            <el-row>
-                <el-col :span="item.span ? item.span : 12" v-for="(item, index) in typeData[userInfo.userType]" :key="index">
-                    <el-form-item :label="item.label">
-                        <!-- 业务域翻译 -->
-                        <template v-if="item.value == 'policeBusiness' && showTagTree">
-                            {{ transferBusinessTag(detailInfo[item.value]) }}
-                        </template>
-                        <template v-else>
-                            <!-- 表码翻译 -->
-                            <template v-if="item.code">
-                                <div class="u-detail__text" v-translate="{ code: item.code }">
-                                    {{ detailInfo[item.value] }}
-                                </div>
-                            </template>
-                            <!-- 枚举翻译 -->
-                            <template v-else-if="item.enum">
-                                <div class="u-detail__text" v-translate="{ enum: item.enum }">
-                                    {{ detailInfo[item.value] }}
-                                </div>
-                            </template>
-                            <!-- 普通文本 -->
-                            <div v-else>{{ detailInfo[item.value] }}</div>
-                        </template>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-        <!-- <Table
+  <main class="user-attributes-detail">
+    <el-form ref="ruleForm" :model="detailInfo" label-width="120px" v-if="detailInfo.id" label-suffix=":">
+      <el-row>
+        <el-col :span="item.span ? item.span : 12" v-for="(item, index) in typeData[userInfo.userType]" :key="index">
+          <el-form-item :label="item.label">
+            <!-- 业务域翻译 -->
+            <template v-if="item.value == 'policeBusiness' && showTagTree">
+              {{ transferBusinessTag(detailInfo[item.value]) }}
+            </template>
+            <template v-else>
+              <!-- 表码翻译 -->
+              <template v-if="item.code">
+                <div class="u-detail__text" v-translate="{ code: item.code }">
+                  {{ detailInfo[item.value] }}
+                </div>
+              </template>
+              <!-- 枚举翻译 -->
+              <template v-else-if="item.enum">
+                <div class="u-detail__text" v-translate="{ enum: item.enum }">
+                  {{ detailInfo[item.value] }}
+                </div>
+              </template>
+              <!-- 普通文本 -->
+              <div v-else>{{ detailInfo[item.value] }}</div>
+            </template>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <!-- <Table
             ref="myTable"
             :url="tableUrl"
             :headerData="UserTableData"
             :condition="reportForm"
             v-if="userInfo.userType == '10'"
         /> -->
-    </main>
+    <el-row v-footer>
+      <dg-button @click="handleClose">关闭</dg-button>
+    </el-row>
+  </main>
 </template>
 
 <script>
-import { UserTableData, typeData } from "../DataConfig";
-import { getAuthUserDetail } from "@/api/data-auth";
-import transferBusinessTagMixin from "@/mixins/transfer-business-tag";
+import { UserTableData, typeData } from '../DataConfig';
+import { getAuthUserDetail } from '@/api/data-auth';
+import transferBusinessTagMixin from '@/mixins/transfer-business-tag';
 
 export default {
-    name: "user-attributes-detail", // 组件名称
-    props: {
-        // 接收父组件的数据
-        userInfo: Object
-    },
-    mixins: [transferBusinessTagMixin],
-    data() {
-        // 组件内部参数
-        return {
-            UserTableData,
-            typeData,
-            detailInfo: {}
-        };
-    },
-    computed: {
-        showTagTree() {
-           return this.tagTree.length > 0
-        }
+  name: 'user-attributes-detail', // 组件名称
+  props: {
+    // 接收父组件的数据
+    userInfo: Object
+  },
+  mixins: [transferBusinessTagMixin],
+  data() {
+    // 组件内部参数
+    return {
+      UserTableData,
+      typeData,
+      detailInfo: {}
+    };
+  },
+  computed: {
+    showTagTree() {
+      return this.tagTree.length > 0;
+    }
+  },
+  methods: {
+    getDetail() {
+      return new Promise((resolve) => {
+        getAuthUserDetail(this.userInfo.id).then((res) => {
+          this.detailInfo = res.data;
+          resolve(res.data);
+        });
+      });
     },
-    methods: {
-        getDetail() {
-            return new Promise((resolve) => {
-                getAuthUserDetail(this.userInfo.id).then((res) => {
-                    this.detailInfo = res.data;
-                    resolve(res.data);
-                });
-            });
-        }
-    }, // 内部方法
-    async created() {
-        await this.getDetail();
+    handleClose() {
+        this.$emit("close");
     }
+  }, // 内部方法
+  async created() {
+    await this.getDetail();
+  }
 };
 </script>
 <style lang="scss" scoped></style>

+ 3 - 3
src/pages/data-auth-module/auth-subject-manage/user-prop-manage/index.vue

@@ -94,9 +94,9 @@ export default {
      * @description:详情
      */
     handleViewDetail(row) {
-      const userTypeName = this.userType.find((item) => item.value == row.userType).label;
+      // const userTypeName = this.userType.find((item) => item.value == row.userType).label;
       const layer = this.$dgLayer({
-        title: `${userTypeName}详情`,
+        title: `详情`,
         shade: [0.4, '#FFF'],
         content: detail,
         props: {
@@ -107,7 +107,7 @@ export default {
             layer.close(layer.dialogIndex);
           }
         },
-        area: ['900px', '500px']
+        area: ['900px', '600px']
       });
     }
   },

+ 4 - 29
src/pages/empower-manage/institutional-quotas-manage/edit.vue

@@ -5,19 +5,6 @@
 -->
 <template>
     <div class="authen-main main-content">
-        <!--操作内容导航-->
-        <div class="select-item-tab-text">
-            <p>
-                当前管理员【 <span class="selected">{{ user.name || "" }}</span> 】,单位名称【
-                <span class="selected">{{ user.securityOrgName }}</span> 】,所选应用名称【
-                <span class="selected">{{ row.name || "" }}</span> 】
-            </p>
-            <p>
-                已选角色【 <span class="selected">{{ self_click_map.roleName }}</span> 】,已选部门【
-                <span class="selected">{{ self_click_map.orgName }}</span> 】,空闲名额【
-                <span class="selected">{{ self_click_map.freeNumber }}</span> 】
-            </p>
-        </div>
         <!--操作内容导航end-->
         <dg-row :gutter="10">
             <!--角色列表-->
@@ -416,17 +403,11 @@ export default {
         handleQuatoDistation() {
             const that = this;
             if (!this.self_click_map.roleName) {
-                this.$message({
-                    message: "请先选择角色!",
-                    type: "error"
-                });
+                this.$message.warning("请选择角色!")
                 return;
             }
             if (!this.self_click_map.orgName) {
-                this.$message({
-                    message: "请先选择下发机构!",
-                    type: "error"
-                });
+                this.$message.warning("请选择下发机构!")
                 return;
             }
             const layer = this.$dgLayer({
@@ -463,17 +444,11 @@ export default {
         handleRecovery() {
             const that = this;
             if (!this.self_click_map.roleId) {
-                this.$message({
-                    message: "请先选择角色!",
-                    type: "error"
-                });
+                this.$message.warning("请选择角色!")
                 return;
             }
             if (!this.self_click_map.orgId) {
-                this.$message({
-                    message: "请选择回收机构!",
-                    type: "error"
-                });
+                 this.$message.warning("请选择回收机构!")
                 return;
             }
             that.$confirm("确定回收配额?", "提示", {

+ 23 - 16
src/pages/empower-manage/institutional-quotas-manage/index.vue

@@ -8,10 +8,14 @@
     <!-- 搜索栏 -->
     <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
     <!-- 表格 -->
-    <new-table ref="table" :tableUrl="tableUrl" :tableHeader="tableHeader" :condition="condition">
-      <template #name="{ row }">
-        <a href="javascript:;" @click="handleDetail(row)">{{ row.name }}</a>
-      </template>
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
     </new-table>
   </dg-row>
 </template>
@@ -36,6 +40,13 @@ export default {
     return {
       tableUrl,
       conditionForm: [
+        {
+          label: '应用系统名称',
+          name: 'applyName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
+        },
         {
           label: '单位名称',
           name: 'orgId',
@@ -46,35 +57,28 @@ export default {
           type: 'APP',
           component: 'SelectOrgTree',
           placeholder: '请选择单位名称'
-        },
-        {
-          label: '应用系统名称',
-          name: 'applyName',
-          op: 'like',
-          value: '',
-          component: 'ElInput'
         }
       ],
       tableHeader: [
         {
           label: '应用系统名称',
-          prop: 'name',
-          custom: true
+          prop: 'name'
         },
         {
           label: '应用角色',
           prop: 'roles'
         }
-      ]
+      ],
+      tableOptList: ['配置']
     };
   },
   // 计算属性
   computed: {},
   // 方法
   methods: {
-    handleDetail(row) {
+    handleSetting(row) {
       const layer = this.$dgLayer({
-        title: '机构配额详情',
+        title: '配置',
         shade: [0.4, '#fff'],
         props: {
           row
@@ -83,6 +87,9 @@ export default {
         content: Editor,
         on: {}
       });
+    },
+    receviceOpt(opt, row) {
+      this.handleSetting(row);
     }
   },
   // 创建组件时调用

+ 0 - 100
src/pages/home/agree.vue

@@ -1,100 +0,0 @@
-<!--
-    审核通过 同意授权
-    @Author:laiyh
-    @Date:  2020-10-20
--->
-<template>
-    <el-row>
-        <el-form ref="sizeForm" :model="sizeForm" label-suffix=":" label-width="130px">
-            <el-form-item label="是否设置有效时间">
-                <dg-radio v-model="sizeForm.isSetValid" label="1" call-off>是</dg-radio>
-                <dg-radio v-model="sizeForm.isSetValid" label="0" call-off>否</dg-radio>
-            </el-form-item>
-            <el-form-item label="有效时间">
-                <dg-date-picker
-                    v-model="sizeForm.validTime"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyyMMddHHmmss"
-                    placeholder="选择有效时间"
-                    :disabled="sizeForm.isSetValid == '0'"
-                    :picker-options="pickerOptions1"
-                >
-                </dg-date-picker
-            ></el-form-item>
-        </el-form>
-        <div class="dg-layer-demo" v-footer>
-            <dg-button type="primary" @click="handleSave">确定</dg-button>
-            <dg-button @click="handleClose">取消</dg-button>
-        </div>
-    </el-row>
-</template>
-
-<script>
-import * as dynamicApi from "@/api/dynamic-manage";
-export default {
-    name: "agree",
-    // 接收父页面传过来的属性
-    props: {
-        formData: {
-            type: Object,
-            default: () => {}
-        }
-    },
-    // 页面数据绑定
-    data() {
-        return {
-            sizeForm: {
-                isSetValid: "0",
-                validTime: ""
-            },
-            pickerOptions1: {
-                disabledDate: function(time) {
-                    return time.getTime() < Date.now() - 8.64e7;
-                }
-            }
-        };
-    },
-    // 计算属性
-    computed: {},
-    // 方法
-    methods: {
-        handleSave() {
-            const that = this;
-            const params = {
-                hasTime: that.sizeForm.isSetValid,
-                id: that.formData.id,
-                validTime: that.sizeForm.validTime
-            };
-            if (that.sizeForm.isSetValid == "1" && that.sizeForm.validTime == "") {
-                that.$message.error("请选择有效时间");
-                return;
-            }
-            dynamicApi
-                .agree(params)
-                .then(res => {
-                    that.$message.success("操作成功");
-                    that.$emit("success", true);
-                })
-                .catch(err => {
-                    that.$message.error("操作失败!");
-                });
-        },
-        handleClose() {
-            const that = this;
-            that.$emit("success");
-        }
-    },
-    // 创建组件时调用
-    created() {
-        const that = this;
-        const { validTime } = that.formData;
-        if (validTime) {
-            that.sizeForm.validTime = validTime;
-            that.sizeForm.isSetValid = "1";
-        }
-    }
-};
-</script>
-
-<style scoped></style>

+ 0 - 163
src/pages/home/detail.vue

@@ -1,163 +0,0 @@
-<template>
-    <el-form ref="ruleForm" :rules="rules" :model="sizeForm" label-width="100px" label-suffix=":">
-        <dg-row :gutter="20">
-            <dg-col :span="12">
-                <el-form-item label="应用名称" prop="appName">
-                    <div class="u-detail__text">{{ sizeForm.appName }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="角色名称" prop="roleName">
-                    <div class="u-detail__text">{{ sizeForm.roleName }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="申请单位" prop="orgName">
-                    <div class="u-detail__text">{{ sizeForm.orgName }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="申请人" prop="proposerName">
-                    <div class="u-detail__text">{{ sizeForm.proposerName }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="申请时间" prop="proposerTime">
-                    <div class="u-detail__text">{{ sizeForm.proposerTime }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="审批状态" prop="approvalStatus">
-                    <div class="u-detail__text" v-translate="{ enum: 'ApprovalStatusEnum' }">
-                        {{ sizeForm.approvalStatus }}
-                    </div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="24">
-                <el-form-item label="申请事由" prop="proposerReason">
-                    <div class="u-detail__text">{{ sizeForm.proposerReason }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12" v-show="sizeForm.approvalStatus !== '-1'">
-                <el-form-item label="审批人" prop="approvalName">
-                    <div class="u-detail__text">{{ sizeForm.approvalName }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12" v-show="sizeForm.approvalStatus !== '-1'">
-                <el-form-item label="审批时间" prop="approvalTime">
-                    <div class="u-detail__text">{{ sizeForm.approvalTime }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="24" v-show="sizeForm.approvalStatus === '0'">
-                <el-form-item label="审批意见" prop="approvalOpinion">
-                    <div class="u-detail__text">{{ sizeForm.approvalOpinion }}</div>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12" v-show="sizeForm.approvalStatus === '1'">
-                <el-form-item label="权限有效时间" prop="validTime">
-                    <div class="u-detail__text">{{ sizeForm.validTime || "长期" }}</div>
-                </el-form-item>
-            </dg-col>
-        </dg-row>
-
-        <div class="dg-layer-demo" v-footer>
-            <dg-button type="primary" icon="el-icon-edit" @click="handleEdit" :disabled="isDisabled">通过</dg-button>
-            <dg-button type="primary" icon="el-icon-document-checked" @click="handleSave" :disabled="isDisabled"
-                >不通过</dg-button
-            >
-            <dg-button @click="handleClose" icon="el-icon-warning-outline">关闭</dg-button>
-        </div>
-    </el-form>
-</template>
-
-<script>
-import { over } from "@/api/dd";
-import AgreeDialog from "./agree";
-import DisagreeDialog from "./disagree";
-
-export default {
-    name: "personalInfomationProblemFeedback",
-    props: {
-        formData: {
-            type: Object,
-            default: () => {}
-        }
-    },
-    computed: {
-        isDisabled() {
-            return this.formData.approvalStatus !== "-1" ? true : false;
-        }
-    },
-    data() {
-        return {
-            over,
-            sizeForm: {
-                appName: "", // *应用名称
-                roleName: "", // *角色名称
-                orgName: "", // *申请单位
-                proposerName: "", // *申请人
-                proposerTime: "", // 申请时间
-                approvalStatus: "", // *审批状态
-                proposerReason: "", // 申请事由
-                approvalName: "", // 审批人
-                approvalTime: "", // 审批时间
-                approvalOpinion: "", // 审批意见
-                validTime: "" // 有效时间
-            },
-            rules: {},
-            rejectReasonBoo: false
-        };
-    },
-    methods: {
-        handleClose() {
-            this.$emit("close");
-        },
-        // 通过
-        handleEdit() {
-            const that = this;
-            const layer = that.$dgLayer({
-                title: "审核通过",
-                shadow: [0.4, "#fff"],
-                props: {
-                    formData: that.sizeForm
-                },
-                content: AgreeDialog,
-                area: ["600px", "300px"],
-                on: {
-                    success(bool = false) {
-                        layer.close(layer.dialogIndex);
-                        that.$emit("parentSuccess", bool);
-                    }
-                }
-            });
-        },
-        // 不通过
-        handleSave() {
-            const that = this;
-            const layer = that.$dgLayer({
-                title: "审核不通过",
-                shadow: [0.4, "#fff"],
-                props: {
-                    formData: that.sizeForm
-                },
-                content: DisagreeDialog,
-                area: ["600px", "300px"],
-                on: {
-                    success(bool = false) {
-                        layer.close(layer.dialogIndex);
-                        that.$emit("parentSuccess", bool);
-                    }
-                }
-            });
-        }
-    },
-    created() {
-        const that = this;
-        that.sizeForm = {
-            ...that.formData
-        };
-    }
-};
-</script>
-
-<style lang="scss" scoped></style>

+ 0 - 86
src/pages/home/disagree.vue

@@ -1,86 +0,0 @@
-<!--
-    审核不通过 拒绝授权
-    @Author:laiyh
-    @project:授权中心
-    @Date:  2020-10-20
--->
-<template>
-    <el-row>
-        <el-form ref="sizeForm" :model="sizeForm" label-suffix=":" label-width="90px">
-            <el-form-item
-                label="拒绝意见"
-                prop="approvalOpinion"
-                :rules="{
-                    required: true,
-                    message: '请输入拒绝意见',
-                    trigger: ['blur']
-                }"
-            >
-                <el-input type="textarea" rows="5" v-model="sizeForm.approvalOpinion"></el-input>
-            </el-form-item>
-        </el-form>
-        <div class="dg-layer-demo" v-footer>
-            <dg-button type="primary" @click="handleSave">确定</dg-button>
-            <dg-button @click="handleClose">取消</dg-button>
-        </div>
-    </el-row>
-</template>
-
-<script>
-import * as dynamicMegApi from "@/api/dynamic-manage";
-export default {
-    name: "disagree",
-    // 接收父页面传过来的属性
-    props: {
-        formData: {
-            type: Object,
-            default: () => {}
-        }
-    },
-    // 页面数据绑定
-    data() {
-        return {
-            sizeForm: {
-                approvalOpinion: ""
-            }
-        };
-    },
-    // 计算属性
-    computed: {},
-    // 方法
-    methods: {
-        handleSave() {
-            const that = this;
-            const params = {
-                approvalOpinion: that.sizeForm.approvalOpinion,
-                id: that.formData.id
-            };
-            that.$refs.sizeForm.validate(valid => {
-                if (!valid) {
-                    return false;
-                } else {
-                    dynamicMegApi
-                        .disagree(params)
-                        .then(res => {
-                            that.$message.success("操作成功");
-                            that.$emit("success", true);
-                        })
-                        .catch(error => {
-                            that.$message.error("操作失败!");
-                        });
-                }
-            });
-        },
-        handleClose() {
-            const that = this;
-            that.$emit("success");
-        }
-    },
-    // 创建组件时调用
-    created() {
-        this.sizeForm.approvalOpinion = this.formData.approvalOpinion || "";
-    }
-};
-</script>
-
-<style scoped></style>

+ 2 - 191
src/pages/home/index.vue

@@ -1,193 +1,4 @@
 <template>
-    <dg-card shadow="hover">
-        <div class="home--title">
-            待审批消息
-            <!--<dg-select-->
-            <!--style="float: right;"-->
-            <!--:data="fedbackMsg"-->
-            <!--v-model="form.status.value"-->
-            <!--label-name="value"-->
-            <!--value-name="code"-->
-            <!--@change="searchForm"-->
-            <!--/>-->
-        </div>
-        <Table ref="table" :url="tableUrl" :headerData="home_titleheader" :condition="reportForm">
-            <dg-table-column fixed="right" label="操作" width="120" align="center">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip
-                            v-for="(item, i) in optList"
-                            :key="'table' + i"
-                            :content="item.tooltip"
-                            effect="dark"
-                            placement="top-end"
-                        >
-                            <i :class="item.icon" @click="item.on(scope.row)"></i>
-                        </el-tooltip>
-                        <el-tooltip content="审核通过" effect="dark" placement="top-end">
-                            <i
-                                :class="[
-                                    scope.row.approvalStatus !== '-1' ? 'disable-click' : '',
-                                    'el-icon-circle-check'
-                                ]"
-                                @click="handleAgree(scope.row)"
-                            ></i>
-                        </el-tooltip>
-                        <el-tooltip content="审核不通过" effect="dark" placement="top-end">
-                            <i
-                                :class="[
-                                    scope.row.approvalStatus !== '-1' ? 'disable-click' : '',
-                                    'el-icon-circle-close'
-                                ]"
-                                @click="handleDisagree(scope.row)"
-                            ></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </Table>
-    </dg-card>
+ <div>
+ </div>
 </template>
-
-<script>
-import { fedbackMsg } from "@/api/dd";
-import Editor from "./detail";
-import AgreeDialog from "./agree";
-import DisagreeDialog from "./disagree";
-import UnitChange from "./uni_change";
-import Table from "@/pages/common/table";
-import * as dynamicMgeApi from "@/api/dynamic-manage";
-
-export default {
-    name: "home",
-    components: {
-        Table
-    },
-    data() {
-        const that = this;
-        return {
-            fedbackMsg,
-            tableUrl: dynamicMgeApi.tableUrl,
-            home_titleheader: [
-                { label: "应用名称", prop: "appName" },
-                { label: "角色名称", prop: "roleName" },
-                { label: "申请单位", prop: "orgName" },
-                { label: "申请人", prop: "proposerName" },
-                { label: "申请时间", prop: "proposerTime" },
-                { label: "申请事由", prop: "proposerReason" }
-            ],
-            reportForm: {
-                // 默认展示 审批中的
-                approvalStatus: { value: "-1", op: "=" }
-            },
-            optList: [
-                { icon: "el-icon-document", tooltip: "详情", on: that.handleDetail }
-                // { icon: "el-icon-circle-check", tooltip: "审核通过", on: that.handleAgree },
-                // { icon: "el-icon-circle-close", tooltip: "审核不通过", on: that.handleDisagree }
-            ]
-        };
-    },
-    methods: {
-        searchForm() {
-            this.$refs.table.searchForm();
-        },
-        reloadTable() {
-            debugger;
-            this.$refs.table.$refs.grid.reload();
-        },
-        handleDetail({ id }) {
-            const that = this;
-            dynamicMgeApi
-                .getdetail(id)
-                .then(res => {
-                    const layer = that.$dgLayer({
-                        title: "申请详情",
-                        shadow: [0.4, "#fff"],
-                        props: {
-                            formData: res
-                        },
-                        content: Editor,
-                        area: ["720px", "500px"],
-                        on: {
-                            parentSuccess(bool = false) {
-                                layer.close(layer.dialogIndex);
-                                if (bool) {
-                                    that.reloadTable();
-                                }
-                            },
-                            close() {
-                                layer.close(layer.dialogIndex);
-                            }
-                        }
-                    });
-                })
-                .catch(err => {
-                    that.$message.error("获取详情失败!");
-                });
-        },
-        // 审核通过
-        handleAgree(row) {
-            const that = this;
-            if (row.approvalStatus !== "-1") {
-                return;
-            }
-            const layer = that.$dgLayer({
-                title: "审核通过",
-                shadow: [0.4, "#fff"],
-                props: {
-                    formData: row
-                },
-                content: AgreeDialog,
-                area: ["600px", "300px"],
-                on: {
-                    success(bool = false) {
-                        layer.close(layer.dialogIndex);
-                        if (bool) {
-                            that.reloadTable();
-                        }
-                    }
-                }
-            });
-        },
-        // 审核不通过
-        handleDisagree(row) {
-            const that = this;
-            if (row.approvalStatus !== "-1") {
-                return;
-            }
-            const layer = that.$dgLayer({
-                title: "审核不通过",
-                shadow: [0.4, "#fff"],
-                props: {
-                    formData: row
-                },
-                content: DisagreeDialog,
-                area: ["600px", "300px"],
-                on: {
-                    success(bool = false) {
-                        layer.close(layer.dialogIndex);
-                        if (bool) {
-                            that.reloadTable();
-                        }
-                    }
-                }
-            });
-        }
-    }
-};
-</script>
-
-<style lang="scss" scoped>
-.home--title {
-    background: #eef2fa;
-    line-height: 40px;
-    padding: 0 15px;
-}
-.link {
-    cursor: pointer;
-    color: #409eff;
-}
-.disable-click {
-    color: #d9d9d9;
-}
-</style>

+ 0 - 165
src/pages/home/uni_change.vue

@@ -1,165 +0,0 @@
-<!--
-    单位变更和借调申请
-    @Author:laiyh
-    @Date:  2020-06-18
--->
-<template>
-    <el-form
-        ref="ruleForm"
-        class="sizeForm"
-        :model="sizeForm"
-        label-suffix=":"
-        rule="ruleForm"
-        label-width="120px"
-        label-position="right"
-    >
-        <el-form-item label="姓名" prop="objectName">
-            <el-input v-model="sizeForm.objectName" placeholder="请输入姓名" readonly clearable />
-        </el-form-item>
-        <el-form-item label="原单位名称" prop="creatorOrg">
-            <el-input v-model="sizeForm.creatorOrg" placeholder="请输入原单位名称" readonly clearable />
-        </el-form-item>
-        <el-form-item label="变更后单位名称" prop="orgName" v-if="feedbackType == 'move'">
-            <el-input v-model="sizeForm.orgName" placeholder="请选择变更后单位名称" readonly clearable></el-input>
-        </el-form-item>
-        <el-form-item label="借调单位名称" prop="orgName" v-if="feedbackType == 'loan'">
-            <el-input v-model="sizeForm.orgName" placeholder="请选择借调单位名称" readonly clearable></el-input>
-        </el-form-item>
-        <el-form-item label="管理员姓名" prop="adminName">
-            <el-input v-model="sizeForm.adminName" placeholder="请输入管理员姓名" clearable readonly />
-        </el-form-item>
-        <el-form-item label="说明" prop="remark">
-            <el-input v-model="sizeForm.remark" placeholder="请输入说明" type="textarea" :rows="3" clearable />
-        </el-form-item>
-        <el-form-item label="附件" prop="file">
-            <dg-upload
-                list-type="pictureList"
-                icon-zoom
-                accept="image/*"
-                server-url="/dcuc"
-                v-model="sizeForm.file"
-                label-name="label"
-                value-name="value"
-            ></dg-upload>
-        </el-form-item>
-        <div class="dg-layer-demo" v-footer>
-            <!--<dg-button type="primary" icon="el-icon-edit" @click="handleEdit" v-if="statusType == '0'"-->
-            <!--&gt;去修改</dg-button-->
-            <!--&gt;-->
-            <dg-button type="primary" icon="el-icon-circle-check" @click="handleAgree" v-if="statusType == '0'"
-                >同意</dg-button
-            >
-            <dg-button type="primary" icon="el-icon-circle-close" @click="handleDisagree" v-if="statusType == '0'"
-                >不同意</dg-button
-            >
-
-            <dg-button @click="handleClose" icon="el-icon-warning-outline">关闭</dg-button>
-        </div>
-    </el-form>
-</template>
-
-<script>
-import { over } from "@/api/dd";
-// import { getFeedbackUserInfo, editFeedbackUserInfo } from "@/api/feedback";
-
-export default {
-    name: "uni_change",
-    // 接收父页面传过来的属性
-    props: {
-        formData: {
-            type: Object,
-            default: () => {}
-        },
-        /* 查看详情还是修改
-            0--修改  1--详情
-         */
-        statusType: {
-            type: String,
-            default: () => {}
-        },
-        /*
-         * 反馈类型
-         * 'user':'用户反馈';'move':'用户单位变更';'loan':'借调申请'
-         * */
-        feedbackType: {
-            type: String,
-            default: ""
-        }
-    },
-    // 页面数据绑定
-    data() {
-        return {
-            over,
-            sizeForm: {
-                objectName: "", // 姓名
-                creatorOrg: "", // 原单位名称
-                orgName: "", // 变更后单位名称
-                creatorName: "", // 管理员姓名
-                remark: "", // 说明
-                file: []
-            }
-        };
-    },
-    // 计算属性
-    computed: {},
-    // 方法
-    methods: {
-        handleClose() {
-            this.$emit("close");
-        },
-        // 去修改
-        handleEdit() {},
-        // 同意变更或借调
-        handleAgree() {
-            const that = this;
-            const { id } = this.formData;
-            const params = {
-                id,
-                type: that.feedbackType,
-                status: 1
-            };
-            // editFeedbackUserInfo(id, params)
-            //     .then((res) => {
-            //         that.$message({ type: "success", message: "操作成功" });
-            //         this.$emit("success", true);
-            //     })
-            //     .catch((error) => {
-            //         that.$message({ type: "error", message: "操作失败" });
-            //     });
-        },
-        // 不同意变更或借调
-        handleDisagree() {
-            const that = this;
-            const { id } = this.formData;
-            const params = {
-                id,
-                type: that.feedbackType,
-                status: 0
-            };
-            editFeedbackUserInfo(id, params)
-                .then(res => {
-                    that.$message({ type: "success", message: "操作成功" });
-                    this.$emit("success", true);
-                })
-                .catch(error => {
-                    that.$message({ type: "error", message: "操作失败" });
-                });
-        }
-    },
-    // 创建组件时调用
-    created() {
-        const that = this;
-        const { id } = this.formData;
-        let { sizeForm } = this;
-        // getFeedbackUserInfo(id)
-        //     .then((res) => {
-        //         that.sizeForm = res ? res : sizeForm;
-        //     })
-        //     .catch((error) => {
-        //         that.$message.error("查询用户信息失败!");
-        //     });
-    }
-};
-</script>
-
-<style scoped></style>

+ 9 - 2
src/pages/log-report/persionnel-author-audit/timeLine.vue

@@ -8,7 +8,9 @@
     <p v-if="timeData.result.length == 0" class="no-data">暂无对应的授权管理范围审计信息</p>
     <el-timeline :reverse="reverse" class="my-time-line" v-if="timeData.result && timeData.result.length > 0">
       <template>
-        <h1 class="header-year" @click="doShowHide($event, timeData.createYear)">{{ timeData.createYear }}年 <span class="turn-down"></span></h1>
+        <h1 class="header-year" @click="doShowHide($event, timeData.createYear)">
+          {{ timeData.createYear }}年 <span class="turn-down"></span>
+        </h1>
         <h1 class="header-title"><i class="el-icon-time"></i>{{ title }}</h1>
         <el-timeline-item
           color="#1890ff"
@@ -96,6 +98,9 @@
         </el-timeline-item>
       </template>
     </el-timeline>
+    <el-row v-footer>
+      <dg-button @click="handleClose">关闭</dg-button>
+    </el-row>
   </div>
 </template>
 
@@ -157,11 +162,13 @@ export default {
         $span.addClass('turn-right');
         $('.year-child' + year).slideUp(1000);
       }
+    },
+    handleClose() {
+      this.$emit('close');
     }
   },
   // 创建组件时调用
   created() {
-    // debugger;
   }
 };
 </script>

+ 1 - 1
src/pages/log-report/scope-author-audit/index.vue

@@ -82,7 +82,7 @@ export default {
         })
         .then((res) => {
           const layer = that.$dgLayer({
-            title: '管理员审计详情',
+            title: '详情',
             shade: [0.4, '#FFF'],
             area: ['1000px', '880px'],
             content: timeLine,

+ 7 - 1
src/pages/log-report/scope-author-audit/timeLine.vue

@@ -39,6 +39,9 @@
         </div>
       </template>
     </el-timeline>
+    <el-row v-footer>
+      <dg-button @click="handleClose">关闭</dg-button>
+    </el-row>
   </div>
 </template>
 
@@ -201,6 +204,9 @@ export default {
         $span.addClass('turn-right');
         $('.year-child' + index).slideUp(1000);
       }
+    },
+    handleClose() {
+      this.$emit('close');
     }
   },
   // 创建组件时调用
@@ -209,5 +215,5 @@ export default {
 </script>
 
 <style scope lang="scss">
-@import url("../style.scss");
+@import url('../style.scss');
 </style>

+ 95 - 0
src/pages/statistics-manage/role-authorization/detail.vue

@@ -0,0 +1,95 @@
+<!--
+   分局应用授权情况
+    @Author:laiyh
+    @Date:  2020-09-21
+-->
+
+
+<template>
+  <div>
+    <dg-table
+      row-key="id"
+      border
+      lazy
+      :data="tableData"
+      :tree-props="treeProp"
+      :load="load"
+      :pagination="false"
+      v-bind="$attrs"
+      v-on="$listeners"
+    >
+      <template v-for="(item, indexs) in tableHeader">
+        <dg-table-column :key="indexs" v-bind="item" align="center"> </dg-table-column>
+      </template>
+      <slot />
+    </dg-table>
+    <!-- <new-table :data="tableData" :pagination="false" :tableHeader="tableHeader" :load="load" :tree-props="treeProp" lazy></new-table> -->
+    <el-row v-footer>
+      <dg-button @click="handleClose">关闭</dg-button>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { roleQuotasTable } from '@/api/statistics-manage';
+import newTable from '@/pages/common/new-table';
+export default {
+  name: 'lTreeTable',
+  props: {
+    searchForm: {
+      type: Object,
+      default: () => {}
+    }
+  },
+  components: { newTable },
+  data() {
+    return {
+      tableData: [],
+      tableHeader: [
+        { label: '机构名称', prop: 'name' },
+        { label: '机构代码', prop: 'code' },
+        { label: '应分配名额', prop: 'mustQuotas' },
+        { label: '实际分配名额', prop: 'quotaed' },
+        { label: '待分配名额', prop: 'kfpme' },
+        { label: '完成情况', prop: 'overRate' }
+      ],
+      treeProp: {
+        hasChildren: 'isParent',
+        children: 'children',
+        isLeaf(data) {
+          return data.isParent !== true;
+        }
+      }
+    };
+  },
+  computed: {
+    searchFormComputed() {
+      return this.searchForm;
+    }
+  },
+  methods: {
+    load({ id, isParent, parent }, treeNode, resolve) {
+      this.searchFormComputed.isInit = false;
+      this.searchFormComputed.orgId = id;
+      if (isParent === true || parent === true) {
+        roleQuotasTable(this.searchFormComputed)
+          .then((res) => {
+            resolve(res);
+          })
+          .catch((err) => {
+            resolve([]);
+          });
+      }
+    },
+    handleClose() {
+      this.$emit('close');
+    }
+  },
+  created() {
+    roleQuotasTable(this.searchForm).then((res) => {
+      this.tableData = res;
+    });
+  }
+};
+</script>
+

+ 0 - 63
src/pages/statistics-manage/role-authorization/editor.vue

@@ -1,63 +0,0 @@
-<!--
-   分局应用授权情况
-    @Author:laiyh
-    @Date:  2020-09-21
--->
-<template>
-    <tree-table
-        url="roleQuotasTable"
-        :header-data="headerData"
-        :searchForm="{
-            isInit: isInit,
-            appId: appId,
-            orgId: orgId
-        }"
-    />
-</template>
-
-<script>
-import TreeTable from "@/components/tree-table";
-
-export default {
-    name: "editor",
-    // 接收父页面传过来的属性
-    props: {
-        appId: {
-            required: true,
-            type: String,
-            default: ""
-        },
-        isInit: {
-            type: Boolean,
-            default: false
-        },
-        orgId: {
-            type: String,
-            required: true,
-            default: ""
-        }
-    },
-    components: { TreeTable },
-    // 页面数据绑定
-    data() {
-        return {
-            headerData: [
-                { label: "机构名称", prop: "name" },
-                { label: "机构代码", prop: "code" },
-                { label: "应分配名额", prop: "mustQuotas" },
-                { label: "实际分配名额", prop: "quotaed" },
-                { label: "待分配名额", prop: "kfpme" },
-                { label: "完成情况", prop: "overRate" }
-            ]
-        };
-    },
-    // 计算属性
-    computed: {},
-    // 方法
-    methods: {},
-    // 创建组件时调用
-    created() {}
-};
-</script>
-
-<style scoped></style>

+ 66 - 78
src/pages/statistics-manage/role-authorization/index.vue

@@ -2,52 +2,56 @@
 
 <template>
   <dg-row>
-    <el-form ref="form" :model="form" inline label-suffix="">
-      <el-form-item prop="appId.value" label="应用系统名称">
-        <dg-select
-          v-model="form.appId.value"
-          clearable
-          filterable
-          :data="appNames"
-          valueName="code"
-          labelName="value"
-          placeholder="请选择应用系统名称"
-          style="width: 280px"
-          @change="handleChangeSysName"
-        ></dg-select>
-      </el-form-item>
-    </el-form>
-    <p class="table-text__detail" v-show="isShowNums">
-      当前应用拥有角色【<span class="text-detail__number">{{ roleNums }}</span
-      >】个,应用分配总名额 【<span class="text-detail__number">{{ initNums }}</span
+    <!-- 搜索栏 -->
+    <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 统计条 -->
+    <p class="statis-bar">
+      当前应用拥有角色【<span>{{ statisNums.roleNums }}</span
+      >】个,应用分配总名额 【<span>{{ statisNums.initNums }}</span
       >】名
     </p>
-    <new-table ref="table" :tableUrl="tableUrl" :tableHeader="headerData" :condition="form" :lazyLoad="true">
-      <template #name="{ row }">
-        <a href="javascript:;" @click="handleDetail(row)">{{ row.name }}</a>
-      </template>
+    <!-- 表格 -->
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :lazyLoad="true"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
     </new-table>
   </dg-row>
 </template>
 
 <script>
 import newTable from '@/pages/common/new-table';
-import Editor from './editor';
+import Detail from './detail';
 import * as statisticsApi from '@/api/statistics-manage';
-const areaEditor = ['910px', '560px'];
-
+import searchBar from '@/components/search-bar';
+import { searchOpt } from '@/mixins/page-opt';
 export default {
-  name: '',
-  components: { newTable },
-  // 接收父节点的参数
-  props: {},
+  components: { newTable, searchBar },
+  mixins: [searchOpt],
   data() {
     return {
       tableUrl: statisticsApi.tableUrl,
-      form: {
-        appId: { value: '', op: '=' }
-      },
-      headerData: [
+      conditionForm: [
+        {
+          label: '应用系统名称',
+          name: 'appId',
+          component: 'DgSelect',
+          op: '=',
+          value: '',
+          attr: {
+            data: [],
+            valueName: 'code',
+            labelName: 'value',
+            filterable: true
+          }
+        }
+      ],
+      tableHeader: [
         { label: '机构名称', prop: 'name' },
         { label: '机构代码', prop: 'code' },
         { label: '应分配名额', prop: 'mustQuotas' },
@@ -55,78 +59,62 @@ export default {
         { label: '待分配名额', prop: 'kfpme' },
         { label: '完成情况', prop: 'overRate' }
       ],
-      // appNames
-      appNames: [],
-      roleNums: '',
-      initNums: '',
-      isShowNums: false
+      statisNums: {},
+      tableOptList: ['分局应用授权情况']
     };
   },
   // 方法
   methods: {
-    handleSearch() {
-      this.$refs.table.handleSearch();
+    receiveSearch(value) {
+      this.condition = value;
+      this.getRoleQuotasInfo();
+      this.handleSearch();
+    },
+    receviceOpt(opt, row) {
+      this.getDetail(row);
     },
     // 应用系统下拉
-    getAppName() {
-      const that = this;
+    getAppList() {
       statisticsApi
         .getAppName()
         .then((res) => {
-          that.appNames = res;
+          this.conditionForm[0].attr.data = res;
         })
         .catch((error) => {
-          that.$error('获取应用系统失败!');
+          this.$error('获取应用系统失败!');
         });
     },
     // 应用拥有的角色、配额
-    getRoleQuotasInfo(appId) {
-      const that = this;
-      statisticsApi.getRoleQuotasInfo(appId).then((res) => {
-        that.roleNums = res.roleNums;
-        that.initNums = res.initNums;
+    getRoleQuotasInfo() {
+      statisticsApi.getRoleQuotasInfo(this.condition.appId.value).then((res) => {
+        this.statisNums = res;
       });
     },
-    // 应用系统名称改变
-    handleChangeSysName(appId) {
-      if (appId) {
-        this.handleSearch();
-        this.getRoleQuotasInfo(appId);
-        this.isShowNums = true;
-      }
-    },
-    handleDetail({ id }) {
-      const that = this;
-      const layer = that.$dgLayer({
+    getDetail({ id }) {
+      const layer = this.$dgLayer({
         title: '分局应用授权情况',
-        shadow: [0.4, '#fff'],
-        area: areaEditor,
+        area: ['910px', '560px'],
         props: {
-          orgId: id,
-          appId: that.form.appId.value,
-          isInit: true
+          searchForm: {
+            orgId: id,
+            appId: this.condition.appId.value,
+            isInit: true
+          }
         },
-        content: Editor
+        content: Detail
       });
     }
   },
-  // 页面创建完成$data可访问 $el不可以访问
   created() {
-    this.getAppName();
+    this.getAppList();
   }
 };
 </script>
 
 <style lang="scss" scope>
-.table-text__detail {
-  .text-detail__number {
-    color: blue;
-    font-size: 20px;
-    font-weight: bold;
-  }
-}
-.orgName__aLink {
-  color: blue;
-  cursor: pointer;
+.statis-bar span {
+  color: #f5222d;
+  font-size: 20px;
+  font-weight: bold;
 }
 </style>

+ 114 - 40
src/router/index.js

@@ -5,19 +5,12 @@ Vue.use(Router);
 
 /* Layout */
 import Layout from '@/pages/layout/layout';
-const { getSetting } = window.systemParamsUtils;
-let layoutType = getSetting('LAYOUT');
-// let a = "layout"
-// const Layout = () => import(`@/pages/${layoutType}/layout`);
 
 /* Router Modules */
-import userManage from './modules/user-manage';
 import adminManage from './modules/admin-manage';
 import logReport from './modules/log-report';
 import logManage from './modules/log-manage';
-import applicationManage from './modules/application-manage';
 import statisticsManage from './modules/statistics-manage';
-import authorizationManage from './modules/authorization-manage';
 import empowerManage from './modules/empower-manage';
 import dataAuthModuleRouter from './modules/data-auth-module';
 
@@ -87,48 +80,81 @@ export const asyncRouterMap = [
       }
     ]
   },
-  //用户管理
-  // userManage,
-  //管理员管理
+  // 管理员管理
   adminManage,
-  //应用管理
-  applicationManage,
-  // 权限管理
-  authorizationManage,
-  // 授权管理
-  empowerManage,
-  //日志审计报表
-  logReport,
-  //统计报表
-  statisticsManage,
-  // 动态授权管理
-  // {
-  //     path: "/dynamic-author-manage",
-  //     component: Layout,
-  //     redirect: "/dynamic-author-manage",
-  //     alwaysShow: true,
-  //     meta: { title: "动态授权管理", icon: "el-icon-time", noCache: true, permission: ["YHGLPT_DTSQGL"] },
-  //     children: [{
-  //         path: "dynamic-manage",
-  //         component: () =>
-  //             import ("@/pages/dynamic-author-manage"),
-  //         name: "dynamic-author-manage",
-  //         meta: { title: "动态授权管理", noCache: false, permission: ["YHGLPT_DTSQGL_DTSQGL"] }
-  //     }]
-  // },
+  // 主客体管理
   ...dataAuthModuleRouter,
-  ...logManage,
+  // 应用功能授权管理
+  empowerManage,
+  // 服务授权管理
+  {
+    path: '/service-delagate-manage',
+    component: Layout,
+    name: 'common',
+    redirect: '/service-delagate',
+    meta: { title: '服务授权管理', icon: 'el-icon-document', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'] },
+    children: [
+      {
+        path: 'service-delagate',
+        component: () => import('@/pages/service-delegate'),
+        name: 'service-delagate',
+        meta: { title: '服务授权管理', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'] }
+      }
+    ]
+  },
+  // 数据授权管理
+  {
+    path: '/data-auth-manage',
+    component: Layout,
+    name: 'common',
+    meta: { title: '数据授权管理', icon: 'el-icon-document', noCache: false, permission: ['QXGL_SQGL_SJSQGL'] },
+    children: [
+      {
+        path: 'business-tag-auth',
+        component: () =>
+          import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/business-tag-auth.vue'),
+        name: 'business-tag-auth',
+        meta: { title: '属性授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_BQSQ'], layout: 'page' }
+      },
+      {
+        path: 'person-auth',
+        component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/person-auth.vue'),
+        name: 'person-auth',
+        meta: { title: '人员授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'], layout: 'page' }
+      },
+      {
+        path: 'org-auth',
+        component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/org-auth.vue'),
+        name: 'org-auth',
+        meta: { title: '机构授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_JGSQ'], layout: 'page' }
+      }
+    ]
+  },
+  // 权限自助管理
   {
     path: '/permission-selfhelp-manage',
     component: Layout,
-    redirect: '/permission-selfhelp-manage/init',
-    meta: { title: '权限自助管理', icon: 'el-icon-goods', noCache: true},
+    meta: { title: '权限自助管理', icon: 'el-icon-goods', noCache: true },
     children: [
       {
         path: 'init',
         component: () => import('@/pages/permission-selfhelp-manage'),
         name: 'permission-selfhelp-manage',
-        meta: { title: '权限自助管理', noCache: true}
+        meta: { title: '权限自助管理', noCache: true }
+      }
+    ]
+  },
+  // 权限综合查询
+  {
+    path: '/auth-search',
+    component: Layout,
+    meta: { title: '权限综合查询', icon: 'el-icon-goods', noCache: true },
+    children: [
+      {
+        path: 'data-auth',
+        component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-search/person-view.vue'),
+        name: 'data-auth-search',
+        meta: { title: '数据权限查询', noCache: true, layout: 'page' }
       }
     ]
   },
@@ -151,7 +177,55 @@ export const asyncRouterMap = [
         meta: { title: '红名单管理', noCache: true, permission: ['QXGL_MDGL_HMDGL'] }
       }
     ]
-  }
+  },
+  // 异常鉴权预警管理
+  {
+    path: '/err-auth-earlywarning-manage',
+    component: Layout,
+    meta: { title: '异常鉴权预警管理', icon: 'el-icon-goods', noCache: true, permission: ['QXGL_RZGL_YCJQYJGL'] },
+    children: [
+      {
+        path: 'auth-earlywarning-plan',
+        component: () => import('@/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-plan'),
+        name: 'auth-earlywarning-plan',
+        meta: {
+          title: '异常鉴权预警管理',
+          noCache: true,
+          permission: ['QXGL_RZGL_YCJQYJGL_JQYJFA']
+        }
+      },
+      {
+        path: 'auth-earlywarning-info',
+        component: () => import('@/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-info'),
+        name: 'auth-earlywarning-info',
+        meta: {
+          title: '异常鉴权预警查询',
+          noCache: true,
+          permission: ['QXGL_RZGL_YCJQYJGL_JQYJXX']
+        }
+      }
+    ]
+  },
+  ...logManage,
+  //日志审计报表
+  logReport,
+  //统计报表
+  statisticsManage
+  // 动态授权管理
+  // {
+  //     path: "/dynamic-author-manage",
+  //     component: Layout,
+  //     redirect: "/dynamic-author-manage",
+  //     alwaysShow: true,
+  //     meta: { title: "动态授权管理", icon: "el-icon-time", noCache: true, permission: ["YHGLPT_DTSQGL"] },
+  //     children: [{
+  //         path: "dynamic-manage",
+  //         component: () =>
+  //             import ("@/pages/dynamic-author-manage"),
+  //         name: "dynamic-author-manage",
+  //         meta: { title: "动态授权管理", noCache: false, permission: ["YHGLPT_DTSQGL_DTSQGL"] }
+  //     }]
+  // },
 ];
 
 export default new Router({

+ 2 - 2
src/router/modules/admin-manage.js

@@ -11,14 +11,14 @@ const componentsRouter = {
     path: "/police-manage",
     component: Layout,
     redirect: "/police-manage/admin-manage",
-    alwaysShow: true,
+    // alwaysShow: true,
     meta: { title: "管理员管理", icon: "el-icon-s-custom", noCache: true, permission: ['YHGLPT_GLYGL'] },
     children: [{
         path: "admin-manage",
         component: () =>
             import ("@/pages/admin-manage"),
         name: "admin-manage",
-        meta: { title: "授权范围管理", icon: "el-icon-s-custom", noCache: false, permission: ['YHGLPT_YHGL_GLYGL'] }
+        meta: { title: "管理员管理", icon: "el-icon-s-custom", noCache: false, permission: ['YHGLPT_YHGL_GLYGL'] }
     }]
 };
 

+ 0 - 34
src/router/modules/application-manage.js

@@ -1,34 +0,0 @@
-/**
- * 应用管理
- * @Author: zouwf
- * @Date:   2020-03-31
- * @Project jz
- */
-import Layout from "@/pages/layout/layout";
-
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
-
-const componentsRouter = {
-    path: "/application-manage",
-    component: Layout,
-    redirect: "/application-manage",
-    alwaysShow: true,
-    meta: { title: "应用管理", icon: "el-icon-goods", noCache: true, permission: ['YHGLPT_YYGL'] },
-    children: [{
-            path: "vendor-manage",
-            component: () =>
-                import ("@/pages/application-manage/vendor-manage"),
-            name: "vendor-manage",
-            meta: { title: "厂商管理", noCache: false, permission: ['YHGLPT_YYGL_CSGL'] }
-        },
-        {
-            path: "app-manage",
-            component: () =>
-                import ("@/pages/application-manage/app-manage"),
-            name: "app-manage",
-            meta: { title: "应用管理", noCache: false, permission: ['YHGLPT_YYGL_YYGL'] }
-        }
-    ]
-};
-
-export default componentsRouter;

+ 0 - 25
src/router/modules/authorization-manage.js

@@ -1,25 +0,0 @@
-/*
-	模块名:权限管理
-	@author:laiyh
-	@Date:2020-07-28
-*/
-import Layout from "@/pages/layout/layout";
-
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
-
-const componentRouter = {
-    path: "/author-manage",
-    component: Layout,
-    redirect: "/author-manage",
-    alwaysShow: true,
-    meta: { title: "权限管理", icon: "el-icon-setting", noCache: true, permission: ['YHGLPT_QXGL'] },
-    children: [{
-        path: "author-setting",
-        component: () =>
-            import ("@/pages/authorization-manage"),
-        name: "author-setting",
-        meta: { title: "权限配置", icon: "", noCache: false, permission: ['YHGLPT_QXGL_QXPZ'] }
-    }]
-};
-
-export default componentRouter;

+ 11 - 46
src/router/modules/data-auth-module.js

@@ -18,25 +18,25 @@ const componentsRouter = [
         path: 'user-prop-manage',
         component: () => import('@/pages/data-auth-module/auth-subject-manage/user-prop-manage'),
         name: 'user-prop-manage',
-        meta: { title: '用户属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_YHSXGL'] }
+        meta: { title: '用户管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_YHSXGL'] }
       },
       {
         path: 'org-prop-manage',
         component: () => import('@/pages/data-auth-module/auth-subject-manage/org-prop-manage'),
         name: 'org-prop-manage',
-        meta: { title: '机构属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_JGSXGL'] }
+        meta: { title: '机构管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_JGSXGL'] }
       },
       {
         path: 'app-prop-manage',
         component: () => import('@/pages/data-auth-module/auth-subject-manage/app-prop-manage'),
         name: 'app-prop-manage',
-        meta: { title: '应用属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_YYSXGL'] }
+        meta: { title: '应用管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_YYSXGL'] }
       },
       {
         path: 'subject-prop-manage',
         component: () => import('@/pages/data-auth-module/auth-subject-manage/subject-prop-manage'),
         name: 'subject-prop-manage',
-        meta: { title: '主体属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_ZTSXLGL'] }
+        meta: { title: '主体属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_ZTSXLGL'],layout: 'page' }
       }
     ]
   },
@@ -47,12 +47,6 @@ const componentsRouter = [
     alwaysShow: true,
     meta: { title: '授权客体管理', icon: 'el-icon-goods', noCache: true, permission: ['QXGL_SQGL_KTGL'] },
     children: [
-      {
-        path: 'sort-code-manage',
-        component: () => import('@/pages/data-auth-module/auth-object-manage/sort-code-manage'),
-        name: 'sort-code-manage',
-        meta: { title: '数据分级分类表码', noCache: false, permission: ['QXGL_SQGL_KTGL_SJFJFLBM'] }
-      },
       {
         path: 'appfun-resource-manage',
         component: () => import('@/pages/data-auth-module/auth-object-manage/appfun-resource-manage'),
@@ -69,46 +63,17 @@ const componentsRouter = [
         name: 'service-resource-manage',
         meta: { title: '服务资源管理', noCache: false, permission: ['QXGL_SQGL_KTGL_FWZYGL'] }
       },
+      {
+        path: 'sort-code-manage',
+        component: () => import('@/pages/data-auth-module/auth-object-manage/sort-code-manage'),
+        name: 'sort-code-manage',
+        meta: { title: '数据分级分类管理', noCache: false, permission: ['QXGL_SQGL_KTGL_SJFJFLBM'] }
+      },
       {
         path: 'object-prop-manage',
         component: () => import('@/pages/data-auth-module/auth-object-manage/object-prop-manage'),
         name: 'object-prop-manage',
-        meta: { title: '客体属性类管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_KTSXLGL'], layout: 'page' }
-      }
-    ]
-  },
-  {
-    path: '/data-permission',
-    component: Layout,
-    redirect: '/data-permission',
-    alwaysShow: true,
-    meta: { title: '授权查询', icon: 'el-icon-goods', noCache: true, permission: ['QXGL_SQCX'] },
-    children: [
-      {
-        path: 'data-auth-search',
-        component: common,
-        name: 'common',
-        meta: { title: '数据授权查询', noCache: false, permission: ['QXGL_SQCX_SJSQCX'] },
-        alwaysShow: true,
-        children: [
-          {
-            path: 'person-view',
-            component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-search/person-view.vue'),
-            name: 'person-view',
-            meta: {
-              title: '人员视角',
-              noCache: false,
-              permission: ['QXGL_SQCX_SJSQCX_RYSJ'],
-              layout: 'page'
-            }
-          }
-          // {
-          //     path: "data-view",
-          //     component: () => import("@/pages/data-auth-module/data-permission-manage/data-auth-search/data-view.vue"),
-          //     name: "data-view",
-          //     meta: { title: "数据视角", noCache: false, permission: ["YHGLPT_YYGL_CSGL"] }
-          // }
-        ]
+        meta: { title: '客体属性管理', noCache: false, permission: ['QXGL_SQGL_ZTGL_KTSXLGL'], layout: 'page' }
       }
     ]
   }

+ 8 - 50
src/router/modules/empower-manage.js

@@ -4,17 +4,19 @@
 	@Date:2020-07-28
 */
 import Layout from '@/pages/layout/layout';
-import common from '@/pages/common';
-
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
-
 const componentRouter = {
   path: '/empower-manage',
   component: Layout,
   redirect: '/empower-manage',
   alwaysShow: true,
-  meta: { title: '授权管理', icon: 'el-icon-s-operation', noCache: true, permission: ['YHGLPT_SQGL'] },
+  meta: { title: '应用功能授权管理', icon: 'el-icon-s-operation', noCache: true, permission: ['YHGLPT_SQGL'] },
   children: [
+    {
+      path: 'author-setting',
+      component: () => import('@/pages/authorization-manage'),
+      name: 'author-setting',
+      meta: { title: '应用角色管理', icon: '', noCache: false, permission: ['YHGLPT_QXGL_QXPZ'] }
+    },
     {
       path: 'institutional-quotas-manage',
       component: () => import('@/pages/empower-manage/institutional-quotas-manage'),
@@ -25,51 +27,7 @@ const componentRouter = {
       path: 'persional-empower-manage',
       component: () => import('@/pages/empower-manage/persional-empower-manage'),
       name: 'persional-empower-manage',
-      meta: { title: '功能授权管理', noCache: false, permission: ['YHGLPT_SQGL_RYSQGL'] }
-    },
-    {
-      path: 'data-auth-manage',
-      component: common,
-      name: 'common',
-      meta: { title: '数据授权管理', noCache: false, permission: ['QXGL_SQGL_SJSQGL'] },
-      children: [
-        {
-          path: 'business-tag-auth',
-          component: () =>
-            import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/business-tag-auth.vue'),
-          name: 'business-tag-auth',
-          meta: { title: '标签授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_BQSQ'], layout: 'page' }
-        },
-        {
-          path: 'org-auth',
-          component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/org-auth.vue'),
-          name: 'org-auth',
-          meta: { title: '机构授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_JGSQ'], layout: 'page' }
-        },
-        {
-          path: 'person-auth',
-          component: () => import('@/pages/data-auth-module/data-permission-manage/data-auth-manage/person-auth.vue'),
-          name: 'person-auth',
-          meta: { title: '人员授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'], layout: 'page' }
-        }
-      ]
-    },
-    // 服务授权管理
-    {
-      path: '/service-delagate-manage',
-      component: common,
-      name: 'common',
-      redirect: '/service-delagate',
-      alwaysShow: true,
-      meta: { title: '服务授权管理', icon: 'el-icon-time', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'] },
-      children: [
-        {
-          path: 'service-delagate',
-          component: () => import('@/pages/service-delegate'),
-          name: 'service-delagate',
-          meta: { title: '服务授权', noCache: false, permission: ['QXGL_SQGL_SJSQGL_RYSQ'] }
-        }
-      ]
+      meta: { title: '角色授权管理', noCache: false, permission: ['YHGLPT_SQGL_RYSQGL'] }
     }
   ]
 };

+ 68 - 107
src/router/modules/log-manage.js

@@ -6,118 +6,79 @@
  * @FilePath: \auth-web\src\router\modules\log-manage.js
  * @Description: 日志管理模块
  */
-import Layout from "@/pages/layout/layout";
-import common from "@/pages/common";
+import Layout from '@/pages/layout/layout';
+import common from '@/pages/common';
 // const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
 
 const componentsRouter = [
-    {
-        path: "/err-auth-earlywarning-manage",
-        component: Layout,
-        redirect: "/err-auth-earlywarning-manage",
-        alwaysShow: true,
-        meta: { title: "异常鉴权预警管理", icon: "el-icon-goods", noCache: true, permission: ["QXGL_RZGL_YCJQYJGL"] },
-        children: [
-            {
-                path: "auth-earlywarning-plan",
-                component: () => import("@/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-plan"),
-                name: "auth-earlywarning-plan",
-                meta: {
-                    title: "鉴权预警方案",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_YCJQYJGL_JQYJFA"]
-                    // layout: "page"
-                }
-            },
-            {
-                path: "auth-earlywarning-info",
-                component: () => import("@/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-info"),
-                name: "auth-earlywarning-info",
-                meta: {
-                    title: "鉴权预警信息",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_YCJQYJGL_JQYJXX"]
-                    // layout: "page"
-                }
-            }
-        ]
+  {
+    path: '/auth-risk-detection',
+    component: Layout,
+    redirect: '/index',
+    meta: {
+      title: '鉴权风险检测',
+      icon: 'el-icon-goods',
+      noCache: true,
+      permission: ['QXGL_RZGL_JQFXJC']
     },
-    {
-        path: "/auth-risk-detection",
-        component: Layout,
-        redirect: "/index",
+    children: [
+      {
+        path: 'index',
+        component: () => import('@/pages/log-manage/auth-risk-detection/index'),
+        name: 'auth-risk-detection',
         meta: {
-            title: "鉴权风险检测",
-            icon: "el-icon-goods",
-            noCache: true,
-            permission: ["QXGL_RZGL_JQFXJC"]
-        },
-        children: [
-            {
-                path: "index",
-                component: () => import("@/pages/log-manage/auth-risk-detection/index"),
-                name: "auth-risk-detection",
-                meta: {
-                    title: "鉴权风险检测",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_JQFXJC"]
-                }
-            }
-        ]
-    },
-    {
-        path: "/auth-behavior-statistic",
-        component: Layout,
-        redirect: "/index",
-        meta: { title: "鉴权行为统计", icon: "el-icon-goods", noCache: true, permission: ["QXGL_RZGL_JQXWTJ"] },
-        children: [
-            {
-                path: "index",
-                component: () => import("@/pages/log-manage/auth-behavior-statistic"),
-                name: "auth-behavior-statistic",
-                meta: { title: "鉴权行为统计", icon: "el-icon-goods", noCache: true, permission: ["QXGL_RZGL_JQXWTJ"] }
-            }
-        ]
-    },
-    {
-        path: "/log-manage",
-        component: Layout,
-        redirect: "/log-manage",
-        alwaysShow: true,
-        meta: { title: "权限日志管理", icon: "el-icon-document-checked", noCache: true, permission: ["QXGL_RZGL"] },
-        children: [
-            {
-                path: "auth-manage-log",
-                component: () => import("@/pages/log-manage/permiss-log-manage/auth-manage-log"),
-                name: "auth-manage-log",
-                meta: {
-                    title: "授权管理日志",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_QXRZGL_SQGLRZ"]
-                }
-            },
-            {
-                path: "auth-service-log",
-                component: () => import("@/pages/log-manage/permiss-log-manage/auth-service-log"),
-                name: "auth-service-log",
-                meta: {
-                    title: "鉴权服务日志",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_QXRZGL_JQFWRZ"]
-                }
-            },
-            {
-                path: "auth-risk-log",
-                component: () => import("@/pages/log-manage/permiss-log-manage/auth-risk-log"),
-                name: "auth-risk-log",
-                meta: {
-                    title: "鉴权风险日志",
-                    noCache: true,
-                    permission: ["QXGL_RZGL_QXRZGL_JQFXRZ"]
-                }
-            }
-        ]
-    }
+          title: '鉴权风险检测',
+          noCache: true,
+          permission: ['QXGL_RZGL_JQFXJC']
+        }
+      }
+    ]
+  },
+  {
+    path: '/log-manage',
+    component: Layout,
+    redirect: '/log-manage',
+    alwaysShow: true,
+    meta: { title: '权限日志管理', icon: 'el-icon-document-checked', noCache: true, permission: ['QXGL_RZGL'] },
+    children: [
+      {
+        path: 'auth-manage-log',
+        component: () => import('@/pages/log-manage/permiss-log-manage/auth-manage-log'),
+        name: 'auth-manage-log',
+        meta: {
+          title: '授权管理日志',
+          noCache: true,
+          permission: ['QXGL_RZGL_QXRZGL_SQGLRZ']
+        }
+      },
+      {
+        path: 'auth-service-log',
+        component: () => import('@/pages/log-manage/permiss-log-manage/auth-service-log'),
+        name: 'auth-service-log',
+        meta: {
+          title: '鉴权服务日志',
+          noCache: true,
+          permission: ['QXGL_RZGL_QXRZGL_JQFWRZ']
+        }
+      },
+      {
+        path: 'auth-risk-log',
+        component: () => import('@/pages/log-manage/permiss-log-manage/auth-risk-log'),
+        name: 'auth-risk-log',
+        meta: {
+          title: '鉴权风险日志',
+          noCache: true,
+          permission: ['QXGL_RZGL_QXRZGL_JQFXRZ']
+        }
+      },
+      {
+        path: 'auth-scope-log',
+        component: () => import('@/pages/log-report/scope-author-audit'),
+        name: 'scope-author-audit',
+        meta: { title: '授权范围日志', icon: 'el-icon-setting', noCache: false, permission: ['YHGLPT_YHGL_GLYSJ'] }
+      }
+    ]
+  }
 ];
 
 export default componentsRouter;

+ 10 - 16
src/router/modules/log-report.js

@@ -5,28 +5,22 @@
  * @Project jz
  */
 import Layout from "@/pages/layout/layout";
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
 
 const componentsRouter = {
     path: "/log-report",
     component: Layout,
     redirect: "/log-report",
-    alwaysShow: true,
+    // alwaysShow: true,
     meta: { title: "日志审计管理", icon: "el-icon-document-checked", noCache: true, permission: ['YHGLPT_RZSJGL'] },
-    children: [{
-            path: "scope-author-audit",
-            component: () =>
-                import ("@/pages/log-report/scope-author-audit"),
-            name: "scope-author-audit",
-            meta: { title: "授权范围审计", icon: "el-icon-setting", noCache: false, permission: ['YHGLPT_YHGL_GLYSJ'] }
-        },
-        {
-            path: "persionnel-author-audit",
-            component: () =>
-                import ("@/pages/log-report/persionnel-author-audit"),
-            name: "persionnel-author-audit",
-            meta: { title: "人员权限授权审计", icon: "el-icon-setting", noCache: false, permission: ['YHGLPT_RZSJGL_RYQXSQSJ'] }
-        }
+    children: [
+        // 暂时隐藏
+        // {
+        //     path: "persionnel-author-audit",
+        //     component: () =>
+        //         import ("@/pages/log-report/persionnel-author-audit"),
+        //     name: "persionnel-author-audit",
+        //     meta: { title: "人员权限授权审计", icon: "el-icon-setting", noCache: false, permission: ['YHGLPT_RZSJGL_RYQXSQSJ'] }
+        // }
     ]
 };
 

+ 27 - 17
src/router/modules/statistics-manage.js

@@ -4,23 +4,33 @@
  * @Date:   2020-03-31
  * @Project jz
  */
-import Layout from "@/pages/layout/layout";
-
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
-
+import Layout from '@/pages/layout/layout';
 const componentsRouter = {
-    path: "/statistics-manage",
-    component: Layout,
-    redirect: "/statistics-manage",
-    alwaysShow: true,
-    meta: { title: "统计报表", icon: "el-icon-document", noCache: true, permission: ['YHGLPT_TJBB'] },
-    children: [{
-        path: "role-authorization",
-        component: () =>
-            import ("@/pages/statistics-manage/role-authorization"),
-        name: "role-authorization",
-        meta: { title: "角色授权情况", noCache: false, permission: ['YHGLPT_TJBB_JSSQQK'] }
-    }]
+  path: '/statistics-manage',
+  component: Layout,
+  meta: { title: '统计报表', icon: 'el-icon-document', noCache: true, permission: ['YHGLPT_TJBB'] },
+  children: [
+    {
+      path: '/auth-behavior-statistic',
+      component: Layout,
+      redirect: '/index',
+      meta: { title: '鉴权行为统计', icon: 'el-icon-goods', noCache: true, permission: ['QXGL_RZGL_JQXWTJ'] },
+      children: [
+        {
+          path: 'index',
+          component: () => import('@/pages/log-manage/auth-behavior-statistic'),
+          name: 'auth-behavior-statistic',
+          meta: { title: '鉴权行为统计', icon: 'el-icon-goods', noCache: true, permission: ['QXGL_RZGL_JQXWTJ'] }
+        }
+      ]
+    },
+    {
+      path: 'role-authorization',
+      component: () => import('@/pages/statistics-manage/role-authorization'),
+      name: 'role-authorization',
+      meta: { title: '角色授权情况', noCache: false, permission: ['YHGLPT_TJBB_JSSQQK'] }
+    }
+  ]
 };
 
-export default componentsRouter;
+export default componentsRouter;

+ 0 - 61
src/router/modules/user-manage.js

@@ -1,61 +0,0 @@
-/**
- * 用户管理
- * @Author: zouwf
- * @Date:   2020-03-17
- * @Project jz
- */
-import Layout from "@/pages/layout/layout";
-// const Layout = () => import("@/pages/" + process.env.LAYOUT + "/layout");
-
-const componentsRouter = {
-    // path: "/user-manage",
-    // component: Layout,
-    // redirect: "/user-manage",
-    // meta: { title: "用户管理", icon: "el-icon-user", noCache: true },
-    // children: [
-    //     {
-    //         path: "/user-manage/police-manage",
-    //         component: () => import("@/pages/user-manage/police-manage"),
-    //         name: "police-manage",
-    //         meta: { title: "警员管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_JYGL"] }
-    //     },
-    //     {
-    //         path: "/user-manage/auxiliary-police-manage",
-    //         component: () => import("@/pages/user-manage/auxiliary-police-manage"),
-    //         name: "auxiliary-police-manage",
-    //         meta: { title: "辅警管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_FJGL"] }
-    //     },
-    //     {
-    //         path: "/user-manage/construction-personnel",
-    //         component: () => import("@/pages/user-manage/construction-personnel"),
-    //         name: "construction-personnel",
-    //         meta: { title: "施工人员管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_WBRY"] }
-    //     },
-    //     {
-    //         path: "/user-manage/personal-information",
-    //         component: () => import("@/pages/user-manage/personal-information"),
-    //         name: "personal-information",
-    //         meta: { title: "个人信息管理", icon: "dashboard", noCache: false }
-    //     },
-    //     {
-    //         path: "/user-manage/account-number",
-    //         component: () => import("@/pages/user-manage/account-number"),
-    //         name: "account-number",
-    //         meta: { title: "账号管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_ZHGL"] }
-    //     },
-    //     {
-    //         path: "/user-manage/government-officials",
-    //         component: () => import("@/pages/user-manage/government-officials"),
-    //         name: "/user-manage/government-officials",
-    //         meta: { title: "政务人员管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_ZFRYGL"] }
-    //     },
-    //     {
-    //         path: "/user-manage/mul-authentication-manage",
-    //         component: () => import("@/pages/user-manage/mul-authentication-manage"),
-    //         name: "mul-authentication-manage",
-    //         meta: { title: "多维认证管理", icon: "dashboard", noCache: false, permission: ["YHGLPT_YHGL_DWRZGL"] }
-    //     }
-    // ]
-};
-
-export default componentsRouter;