Browse Source

改造授权主客体模块+统计报表

林倩 3 years ago
parent
commit
54d5018ee8
24 changed files with 841 additions and 1330 deletions
  1. BIN
      dist.zip
  2. 10 23
      src/api/sync.js
  3. 4 3
      src/components/search-bar/index.vue
  4. 2 2
      src/components/select-org-tree/index.vue
  5. 1 1
      src/pages/common/new-table/index.vue
  6. 1 1
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/DataConfig.js
  7. 1 1
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/add-form.vue
  8. 0 64
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/edit-form.vue
  9. 108 196
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/index.vue
  10. 0 125
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/test.vue
  11. 110 20
      src/pages/data-auth-module/auth-object-manage/sort-code-manage/DataConfig.js
  12. 119 172
      src/pages/data-auth-module/auth-object-manage/sort-code-manage/field-sort-code.vue
  13. 131 181
      src/pages/data-auth-module/auth-object-manage/sort-code-manage/source-sort-code.vue
  14. 81 6
      src/pages/data-auth-module/auth-subject-manage/DataConfig.js
  15. 35 139
      src/pages/data-auth-module/auth-subject-manage/app-prop-manage/index.vue
  16. 1 1
      src/pages/data-auth-module/auth-subject-manage/user-prop-manage/detail.vue
  17. 22 120
      src/pages/data-auth-module/auth-subject-manage/user-prop-manage/index.vue
  18. 93 123
      src/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-info.vue
  19. 101 129
      src/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-plan.vue
  20. 3 3
      src/pages/log-report/persionnel-author-audit/index.vue
  21. 0 1
      src/pages/permission-selfhelp-manage/component/app-func-form.vue
  22. 11 12
      src/pages/statistics-manage/role-authorization/index.vue
  23. 2 2
      src/router/modules/data-auth-module.js
  24. 5 5
      src/router/modules/log-manage.js

BIN
dist.zip


+ 10 - 23
src/api/sync.js

@@ -20,6 +20,16 @@ export const dataLevelSyncUrl = `${baseUrl}/dataLevelSync`
 // 数据安全等级
 // 数据安全等级
 export const safeLevelCodeSyncUrl = `${baseUrl}/dataSecSync`
 export const safeLevelCodeSyncUrl = `${baseUrl}/dataSecSync`
 
 
+// 数据资源分类同步
+export const dataSourceSyncUrl = `${baseUrl}/dataClaSync`
+
+// 字段分级分类同步
+export const fieldSortSyncUrl = `${baseUrl}/fieldClaSync`
+// 人员同步
+export const userSyncUrl = `${baseUrl}/userSync`
+
+
+
 export function sync(url) {
 export function sync(url) {
     return request({
     return request({
         url,
         url,
@@ -35,29 +45,6 @@ export function appSync() {
     });
     });
 }
 }
 
 
-// 数据资源分类同步
-export function dataSourceSync() {
-    return request({
-        url: `${baseUrl}/dataClaSync`,
-        method: "GET"
-    });
-}
-
-// 字段分级分类同步
-export function fieldSortSync() {
-    return request({
-        url: `${baseUrl}/fieldClaSync`,
-        method: "GET"
-    });
-}
-
-// 人员同步
-export function authUserSync() {
-    return request({
-        url: `${baseUrl}/userSync`,
-        method: "GET"
-    });
-}
 
 
 // 机构同步
 // 机构同步
 export function authOrgSync() {
 export function authOrgSync() {

+ 4 - 3
src/components/search-bar/index.vue

@@ -96,13 +96,14 @@ export default {
       const vm = this;
       const vm = this;
       this.form.forEach((item) => {
       this.form.forEach((item) => {
         item.value = '';
         item.value = '';
-        if (item.name == 'orgId') {
+        if (item.name == 'orgId' || item.name == 'orgCode') {
           vm.$refs.orgTree[0].handleClearSelect();
           vm.$refs.orgTree[0].handleClearSelect();
         }
         }
       });
       });
     },
     },
-    getTreeValue(val) {
-      this.form.find((item) => item.name == 'orgId').value = val;
+    getTreeValue(val, key='id') {
+      const name = key == 'id' ? 'orgId' : 'orgCode';
+      this.form.find((item) => item.name == name).value = val;
     },
     },
     setPlaceHolder(item) {
     setPlaceHolder(item) {
       const { component, label } = item;
       const { component, label } = item;

+ 2 - 2
src/components/select-org-tree/index.vue

@@ -127,7 +127,7 @@ export default {
   },
   },
   methods: {
   methods: {
     handleNodeClick(data, node, tree) {
     handleNodeClick(data, node, tree) {
-      this.$emit('orgTreeValue', data[this.nodeKey]);
+      this.$emit('orgTreeValue', data[this.nodeKey], this.nodeKey);
       this.$emit('orgTreeNode', data);
       this.$emit('orgTreeNode', data);
     },
     },
     loadNode(node, resolve) {
     loadNode(node, resolve) {
@@ -168,7 +168,7 @@ export default {
       this.selectedNodeLabel = '';
       this.selectedNodeLabel = '';
       this.$refs.tree.setCurrentKey(null);
       this.$refs.tree.setCurrentKey(null);
       this.$refs.tree.setRadioKeys([]);
       this.$refs.tree.setRadioKeys([]);
-      this.$emit('orgTreeValue', '');
+      this.$emit('orgTreeValue', '', this.nodeKey);
     },
     },
     handleScrollToBottom() {
     handleScrollToBottom() {
       if (!this.lazy && !this.isLast) {
       if (!this.lazy && !this.isLast) {

+ 1 - 1
src/pages/common/new-table/index.vue

@@ -27,7 +27,7 @@
         <dg-table-column :key="item[rowKey]" v-bind="item" align="center">
         <dg-table-column :key="item[rowKey]" v-bind="item" align="center">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
             <span v-if="item.dateFormat">{{ row[item.prop] | dateFormatter(item.dateFormat) }}</span>
             <span v-if="item.dateFormat">{{ row[item.prop] | dateFormatter(item.dateFormat) }}</span>
-            <slot v-if="item.custom" v-bind:row="scope.row" :name="item.prop"></slot>
+            <slot v-if="item.custom" v-bind:row="row" :name="item.prop"></slot>
           </template>
           </template>
         </dg-table-column>
         </dg-table-column>
       </template>
       </template>

+ 1 - 1
src/pages/data-auth-module/auth-object-manage/service-resource-manage/DataConfig.js

@@ -135,7 +135,7 @@ const editForm = [
       filterable: true,
       filterable: true,
       url: "/appsvr/v2/allApps?applyStatus="
       url: "/appsvr/v2/allApps?applyStatus="
     },
     },
-    custom: true,
+    // custom: true,
     span: 24
     span: 24
   },
   },
   {
   {

+ 1 - 1
src/pages/data-auth-module/auth-object-manage/service-resource-manage/add-form.vue

@@ -8,7 +8,7 @@
         <el-form ref="form" :model="form" :rules="rules" label-width="180px" v-if="show">
         <el-form ref="form" :model="form" :rules="rules" label-width="180px" v-if="show">
             <dg-col :span="12">
             <dg-col :span="12">
                 <el-form-item label="服务资源标识符:" prop="serviceCode">
                 <el-form-item label="服务资源标识符:" prop="serviceCode">
-                    <el-input v-model="form.serviceCode" placeholder="" :disabled="form.id" v-if="!isDetail"></el-input>
+                    <el-input v-model="form.serviceCode" placeholder="" :disabled="form.id !== null && form.id !== undefined " v-if="!isDetail"></el-input>
                     <span v-else>{{ form.serviceCode }}</span>
                     <span v-else>{{ form.serviceCode }}</span>
                 </el-form-item>
                 </el-form-item>
                 <el-form-item label="服务类型:" prop="serviceType">
                 <el-form-item label="服务类型:" prop="serviceType">

+ 0 - 64
src/pages/data-auth-module/auth-object-manage/service-resource-manage/edit-form.vue

@@ -1,64 +0,0 @@
-
-<template>
-  <div>
-    <edit-form :config="config" :labelWidth="labelWidth" :type="type" :detailInfo="detailInfo">
-      <template #appCode="{ value, item }">
-        <dg-select
-          :data="apps"
-          v-model="appCode"
-          placeholder=""
-          :value="value"
-          @change="handleChange"
-          value-name="applyCode"
-          label-name="applyName"
-          filterable
-        ></dg-select>
-      </template>
-    </edit-form>
-  </div>
-</template>
-
-<script>
-import editForm from '@/components/form';
-export default {
-  props: {
-    config: {
-      type: Array,
-      default: () => []
-    },
-    labelWidth: {
-      type: String,
-      default: '100px'
-    },
-    // 类型,add || update
-    type: String,
-    // 详情
-    detailInfo: {
-      type: Object,
-      default: () => {}
-    }
-  },
-  components: {
-    editForm
-  },
-  data() {
-    return {
-        apps: [{
-            applyCode: "11",
-            applyName: "111"
-        }],
-        appCode: ""
-    };
-  },
-  computed: {},
-  methods: {
-      handleChange(val) {
-      }
-  },
-  created() {},
-  mounted() {}
-};
-</script>
-
-<style lang='scss'>
-</style>

+ 108 - 196
src/pages/data-auth-module/auth-object-manage/service-resource-manage/index.vue

@@ -4,212 +4,124 @@
 @Date: 2021-05-17 13:53
 @Date: 2021-05-17 13:53
 -->
 -->
 <template>
 <template>
-    <div>
-        <!-- 搜索项 -->
-        <el-form :inline="true" class="search-form">
-            <el-form-item label="服务资源名称">
-                <el-input v-model="form.serviceName.value" placeholder="请输入服务资源名称" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="服务提供方式">
-                <dg-select
-                    v-model="form.serviceProvideWay.value"
-                    enum="ServiceProvideWayEnum"
-                    placeholder="请选择服务提供方式"
-                    clearable
-                ></dg-select>
-            </el-form-item>
-            <el-form-item label="服务提供应用系统名称">
-                <el-input v-model="form.appName.value" placeholder="请输入服务提供应用系统名称" clearable></el-input>
-            </el-form-item>
-            <el-form-item>
-                <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-            </el-form-item>
-        </el-form>
-        <!-- 操作 -->
-        <dg-row zebra="10px">
-            <dg-button type="primary" icon="el-icon-upload2" @click="handleImport">导入</dg-button>
-            <dg-button type="primary" icon="el-icon-circle-plus-outline" @click="handleAdd">新增</dg-button>
-            <dg-button type="primary" icon="el-icon-refresh" @click="handleSynchro">同步</dg-button>
-        </dg-row>
-        <!-- 表格 -->
-        <dg-table ref="table" :url="tableUrl" :condition="form" border row-key="id">
-            <dg-table-column type="index" width="75" label="序号" align="center"></dg-table-column>
-            <dg-table-column prop="serviceCode" label="服务资源标识符" align="center"></dg-table-column>
-            <dg-table-column prop="serviceName" label="服务资源名称" align="center"></dg-table-column>
-            <dg-table-column
-                prop="serviceType"
-                label="服务类型"
-                align="center"
-                enum="ServiceResourceTypeEnum"
-            ></dg-table-column>
-            <dg-table-column
-                prop="serviceProvideWay"
-                label="服务提供方式"
-                align="center"
-                enum="ServiceProvideWayEnum"
-            ></dg-table-column>
-            <dg-table-column prop="mustSelf" label="是否自用服务" align="center" enum="BooleanEnum"></dg-table-column>
-            <dg-table-column prop="appName" label="服务提供应用系统名称" align="center"></dg-table-column>
-            <dg-table-column label="操作" align="center">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip
-                            v-for="(item, index) in optList"
-                            :key="index"
-                            :content="item.tooltip"
-                            effect="dark"
-                            placement="top-end"
-                        >
-                            <i :class="item.icon" @click="item.on(scope.row)"></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </dg-table>
-    </div>
+  <div>
+    <!-- 搜索栏 -->
+    <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 操作栏 -->
+    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+    <!-- 表格 -->
+    <new-table
+      ref="table"
+      :tableHeader="tableHeader"
+      :tableUrl="tableUrl"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import importFile from "@/components/import";
-import addForm from "./add-form";
-import * as Api from "@/api/ser-resource-manage";
-import { serviceImportUrl } from "@/api/import";
-import { authSerSync } from "@/api/sync";
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import newTable from '@/pages/common/new-table';
+import { conditionForm, pageOptList, tableOptList, tableHeader } from './DataConfig';
+import { searchOpt, importOpt, syncOpt } from '@/mixins/page-opt';
+import * as Api from '@/api/ser-resource-manage';
+import { serviceImportUrl } from '@/api/import';
+import { authSerSyncUrl } from '@/api/sync';
+import addForm from './add-form';
 export default {
 export default {
-    components: {
+  components: {
+    searchBar,
+    operateBar,
+    newTable
+  },
+  mixins: [searchOpt, importOpt, syncOpt],
+  data() {
+    return {
+      conditionForm,
+      pageOptList,
+      tableOptList,
+      tableHeader,
+      tableUrl: Api.tableUrl
+    };
+  },
+  computed: {},
+  methods: {
+    /**
+     * 接收操作事件
+     */
+    receviceOpt(type, row) {
+      if (type == '修改') {
+        this.handleEdit(row);
+      } else if (type == '新增') {
+        this.handleAdd();
+      } else if (type == '详情') {
+        this.handleViewDetail(row);
+      } else if (type == '删除') {
+        this.handleDelete(row);
+      } else if (type == '导入') {
+        this.handleImport(serviceImportUrl, 'serviceResource');
+      } else if (type == '同步') {
+        this.handleSync(authSerSyncUrl);
+      }
     },
     },
-    data() {
-        return {
-            form: {
-                serviceProvideWay: {
-                    value: "",
-                    op: "="
-                },
-                serviceName: {
-                    value: "",
-                    op: "like"
-                },
-                appName: {
-                    value: "",
-                    op: "like"
-                }
-            },
-            optList: [
-                { icon: "el-icon-edit", tooltip: "修改", on: this.handleEdit },
-                { icon: "el-icon-document", tooltip: "详情", on: this.handleViewDetail },
-                { icon: "el-icon-delete", tooltip: "删除", on: this.handleDelete }
-            ],
-            tableUrl: Api.tableUrl,
-            apps: []
-        };
+    /**
+     * 编辑
+     */
+    handleEdit(row) {
+      this.handleOpenForm(row.id, '修改');
     },
     },
-    computed: {},
-    methods: {
-        /**
-         * 编辑
-         */
-        handleEdit(row) {
-            this.handleOpenForm(row.id, "修改");
-        },
-        /**
-         * 查看详情
-         */
-        handleViewDetail(row) {
-            this.handleOpenForm(row.id, "详情", true);
-        },
-        /**
-         * 删除
-         */
-        handleDelete(row) {
-            this.$dgConfirm(`是否确认删除该条服务资源!`, "提示", {}).then(() => {
-                Api.del(row.id).then((res) => {
-                    const msg = res.data.content || "删除成功!";
-                    this.$message.success(msg);
-                    this.handleSearch();
-                });
-            });
-        },
-        /**
-         * 查询
-         */
-        handleSearch() {
-            this.$refs.table.searchForm();
-        },
-        /**
-         * 重置
-         */
-        handleReset() {
-            for (const key in this.form) {
-                this.form[key].value = "";
-            }
-        },
-        /**
-         * 导入
-         */
-        handleImport() {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title: "导入",
-                content: importFile,
-                props: {
-                    temp: "serviceResource",
-                    action: serviceImportUrl
-                },
-                on: {
-                    success(params) {
-                        vm.handleSearch();
-                        layer.close(layer.dialogIndex);
-                    }
-                },
-                cancel: function (index, layero) {
-                    // 关闭对应弹窗的ID
-                    layer.close(index);
-                    return false;
-                },
-                area: ["550px", "500px"]
-            });
+    /**
+     * 查看详情
+     */
+    handleViewDetail(row) {
+      this.handleOpenForm(row.id, '详情', true);
+    },
+    /**
+     * 新增
+     */
+    handleAdd() {
+      this.handleOpenForm(void 0, '新增');
+    },
+    handleOpenForm(id, title, isDetail = false) {
+      const vm = this;
+      const layer = this.$dgLayer({
+        title,
+        content: addForm,
+        props: {
+          id,
+          isDetail
         },
         },
-        /**
-         * 新增
-         */
-        handleAdd() {
-            this.handleOpenForm(void 0, "新增");
+        btn: ['确定', '取消'],
+        btnAlign: 'r',
+        yes: (index) => {
+          let _layer = layer.$children[0];
+          _layer.saveForm().then((res) => {
+            layer.close(index);
+            vm.handleSearch();
+          });
         },
         },
-        handleOpenForm(id, title, isDetail = false) {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title,
-                content: addForm,
-                props: {
-                    id,
-                    isDetail
-                },
-                btn: ["确定", "取消"],
-                btnAlign: "r",
-                yes: (index) => {
-                    let _layer = layer.$children[0];
-                    _layer.saveForm().then((res) => {
-                        layer.close(index);
-                        vm.handleSearch();
-                    });
-                },
 
 
-                area: ["800px", "550px"]
-            });
-        },
-        /**
-         * @description:同步方法,假同步
-         */
-        handleSynchro() {
-            authSerSync().then((res) => {
-                this.$message.success("同步中,若数据量大,可能会存在延迟,请稍后自行刷新!");
-                this.handleSearch();
-            });
-        }
+        area: ['800px', '550px']
+      });
+    },
+    /**
+     * 删除
+     */
+    handleDelete(row) {
+      this.$dgConfirm(`是否确认删除该条应用!`, '提示', {}).then(() => {
+        Api.del(row.id).then((res) => {
+          this.$message.success(res);
+          this.handleSearch();
+        });
+      });
     },
     },
-    created() {},
-    mounted() {}
+  },
+  created() {},
+  mounted() {}
 };
 };
 </script>
 </script>
 
 

+ 0 - 125
src/pages/data-auth-module/auth-object-manage/service-resource-manage/test.vue

@@ -1,125 +0,0 @@
-<!--
-服务资源管理
-@Author: linqian
-@Date: 2021-05-17 13:53
--->
-<template>
-  <div>
-    <!-- 搜索栏 -->
-    <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
-    <!-- 操作栏 -->
-    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
-    <!-- 表格 -->
-    <basic-table
-      ref="table"
-      :tableHeader="tableHeader"
-      :tableUrl="tableUrl"
-      :condition="condition"
-      :tableOptList="tableOptList"
-      @submitTableOpt="receviceOpt"
-    >
-    </basic-table>
-  </div>
-</template>
-
-<script>
-import searchBar from '@/components/search-bar';
-import operateBar from '@/components/operate-bar';
-import basicTable from '@/pages/common/new-table';
-import { conditionForm, pageOptList, tableOptList, tableHeader, editForm } from './DataConfig';
-import { searchOpt, importOpt, syncOpt, detailOpt, addEditOpt } from '@/mixins/page-opt';
-import * as Api from "@/api/ser-resource-manage";
-import { serviceImportUrl } from "@/api/import";
-import { authSerSyncUrl } from "@/api/sync";
-import editFormLayer from "./edit-form.vue"
-const labelWidth = '180px';
-const area = ['900px', '600px'];
-export default {
-  components: {
-    searchBar,
-    operateBar,
-    basicTable
-  },
-   mixins: [searchOpt, addEditOpt, detailOpt, importOpt, syncOpt],
-  data() {
-    return {
-        conditionForm,
-        pageOptList,
-        tableOptList,
-        tableHeader,
-        tableUrl: Api.tableUrl,
-    };
-  },
-  computed: {},
-  methods: {
-       /**
-     * 接收操作事件
-     */
-    async receviceOpt(type, row) {
-      const otherParams = {
-        config: editForm,
-        labelWidth,
-        area
-      };
-      if (type == '修改') {
-        const detailInfo = await this.getDetail(row.id);
-        this.handleOpenEditForm('编辑', 'update', { ...otherParams, detailInfo });
-      } else if (type == '新增') {
-        this.handleOpenEditForm('新增', 'add', {...otherParams, content: editFormLayer });
-      } else if (type == '详情') {
-        this.handleViewDetail(row.id, otherParams);
-      } else if (type == '删除') {
-        this.handleDelete(row);
-      } else if (type == '导入') {
-        this.handleImport(serviceImportUrl, 'serviceResource');
-      } else if (type == '同步') {
-        this.handleSync(authSerSyncUrl);
-      }
-    },
-      /**
-     * 删除
-     */
-    handleDelete(row) {
-      this.$dgConfirm(`是否确认删除该条应用!`, '提示', {}).then(() => {
-        Api.del(row.id).then((res) => {
-          this.$message.success(res);
-          this.handleSearch();
-        });
-      });
-    },
-       /**
-     * 获取详情
-     */
-    getDetail(id) {
-      return new Promise((resolve) => {
-        Api.detail(id).then((res) => {
-          resolve(res);
-        });
-      });
-    },
-      /**
-     * @description: 保存表单
-     * @param { 表单数据 } form
-     * @param { 新增还是编辑 } type
-     * @param { 弹框 } layer
-     */
-    saveForm(form, type, layer) {
-      const api = type == 'update' ? 'update' : 'save';
-      Api[api](form)
-        .then((res) => {
-          this.$message.success('保存成功!');
-          layer.close(layer.dialogIndex);
-          this.handleSearch();
-        })
-        .catch((error) => {
-          this.$message.error(error);
-        });
-    }
-  },
-  created() {},
-  mounted() {}
-};
-</script>
-
-<style lang='scss'>
-</style>

+ 110 - 20
src/pages/data-auth-module/auth-object-manage/sort-code-manage/DataConfig.js

@@ -105,25 +105,115 @@ export const safeLevelForm = [
 
 
 /** ************************************  字段分类相关  **********************************/
 /** ************************************  字段分类相关  **********************************/
 
 
-export const fieldSortTableHeader = [
-    {
-      label: '字段一级代码',
-      prop: 'firCode'
-    },
-    {
-      label: '字段一级分类',
-      prop: 'firName'
-    },
-    {
-      label: '字段二级代码',
-      prop: 'secCode'
+export const fieldSortConfig = [
+  {
+    label: '字段一级代码',
+    prop: 'firCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入字段一级代码', trigger: 'change' }]
+  },
+  {
+    label: '字段一级分类',
+    prop: 'firName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入字段一级分类', trigger: 'change' }]
+  },
+  {
+    label: '字段二级代码',
+    prop: 'secCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入字段二级代码', trigger: 'change' }]
+  },
+  {
+    label: '字段二级分类',
+    prop: 'secName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入字段二级分类', trigger: 'change' }]
+  },
+  {
+    label: '说明',
+    prop: 'remark',
+    component: 'ElInput',
+    attr: {
+      type: 'textarea',
+      rows: 3
     },
     },
-    {
-      label: '字段二级分类',
-      prop: 'secName'
+    value: '',
+    span: 24
+  }
+];
+
+/** ************************************  数据资源分类表码  **********************************/
+export const sourceSortConfig = [
+  {
+    label: '一级代码',
+    prop: 'firCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入一级代码', trigger: 'change' }]
+  },
+  {
+    label: '数据组织一级分类',
+    prop: 'firName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入数据组织一级分类', trigger: 'change' }]
+  },
+  {
+    label: '二级代码',
+    prop: 'secCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入二级代码', trigger: 'change' }]
+  },
+  {
+    label: '数据组织二级分类',
+    prop: 'secName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入数据组织二级分类', trigger: 'change' }]
+  },
+  {
+    label: '标签分类代码',
+    prop: 'labClaCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入标签分类代码', trigger: 'change' }]
+  },
+  {
+    label: '标签分类',
+    prop: 'labClaName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入标签分类', trigger: 'change' }]
+  },
+  {
+    label: '标签代码',
+    prop: 'labCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入标签代码', trigger: 'change' }]
+  },
+  {
+    label: '标签名称',
+    prop: 'labName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入标签名称', trigger: 'change' }]
+  },
+  {
+    label: '说明',
+    prop: 'remark',
+    component: 'ElInput',
+    attr: {
+      type: 'textarea',
+      rows: 3
     },
     },
-    {
-      label: '说明',
-      prop: 'remark'
-    }
-  ];
+    value: '',
+    span: 24
+  }
+];

+ 119 - 172
src/pages/data-auth-module/auth-object-manage/sort-code-manage/field-sort-code.vue

@@ -4,189 +4,136 @@
 @Date: 2021-03-31 15:30:11
 @Date: 2021-03-31 15:30:11
 -->
 -->
 <template>
 <template>
-    <div>
-        <!-- 搜索项 -->
-        <el-form :inline="true" :model="form" class="search-form">
-            <el-form-item label="字段一级分类">
-                <el-input v-model="form.firName.value" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="字段二级分类">
-                <el-input v-model="form.secName.value" clearable></el-input>
-            </el-form-item>
-            <el-form-item>
-                <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-            </el-form-item>
-        </el-form>
-        <!-- 操作 -->
-        <dg-row zebra="10px">
-            <dg-button type="primary" icon="el-icon-circle-plus-outline" @click="handleAdd">新增</dg-button>
-            <dg-button type="primary" icon="el-icon-refresh" @click="handleSynchro">同步</dg-button>
-            <!-- <dg-button type="primary" @click="handleImport" icon="el-icon-upload">导入</dg-button> -->
-        </dg-row>
-        <!-- 列表 -->
-        <dg-table ref="table" :url="fieldClassifyTableUrl" :condition="form" border row-key="id">
-            <dg-table-column type="index" width="75" label="序号" align="center"></dg-table-column>
-            <dg-table-column prop="firCode" label="字段一级代码" align="center"></dg-table-column>
-            <dg-table-column prop="firName" label="字段一级分类" align="center"></dg-table-column>
-            <dg-table-column prop="secCode" label="字段二级代码" align="center"></dg-table-column>
-            <dg-table-column prop="secName" label="字段二级分类" align="center"></dg-table-column>
-            <dg-table-column prop="remark" label="说明" align="center"></dg-table-column>
-            <dg-table-column label="操作" align="center" width="120px">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip
-                            v-for="(item, index) in optList"
-                            :key="index"
-                            :content="item.tooltip"
-                            effect="dark"
-                            placement="top-end"
-                        >
-                            <i :class="item.icon" @click="item.on(scope.row, $event)"></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </dg-table>
-    </div>
+  <div>
+    <!-- 搜索栏 -->
+    <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 操作栏 -->
+    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+    <!-- 列表 -->
+    <new-table
+      ref="table"
+      :tableUrl="fieldClassifyTableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import importFile from "@/components/import";
-import fieldSortForm from "./forms/field-sort-form";
-import { fieldClassifyTableUrl, delFieldClassify } from "@/api/data-auth";
-import { fieldSortSync } from "@/api/sync";
+import fieldSortForm from './forms/field-sort-form';
+import { fieldClassifyTableUrl, delFieldClassify } from '@/api/data-auth';
+import { fieldSortSyncUrl } from '@/api/sync';
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import newTable from '@/pages/common/new-table';
+import { fieldSortConfig, pageOptList, tableOptList } from './DataConfig';
+import { searchOpt, importOpt, syncOpt } from '@/mixins/page-opt';
 
 
 export default {
 export default {
-    components: {},
-    data() {
-        return {
-            fieldClassifyTableUrl,
-            form: {
-                firName: {
-                    value: "",
-                    op: "like"
-                },
-                secName: {
-                    value: "",
-                    op: "like"
-                }
-            },
-            optList: [
-                { icon: "el-icon-edit", tooltip: "修改", on: this.handleEdit },
-                // { icon: "el-icon-document", tooltip: "详情", on: this.handleViewDetail },
-                { icon: "el-icon-delete", tooltip: "删除", on: this.handleDelete }
-            ]
-        };
-    },
-    computed: {},
-    methods: {
-        /**
-         * @description: 查询
-         */
-        handleSearch() {
-            this.$refs.table.searchForm();
-        },
-        /**
-         * 重置
-         */
-        handleReset() {
-            for (const key in this.form) {
-                this.form[key].value = "";
-            }
-        },
-        /**
-         * 编辑
-         */
-        handleEdit(row, e) {
-            this.handleOpenForm(row.secId, "编辑");
-        },
-        /**
-         * 查看详情id
-         */
-        handleViewDetail(row, e) {
-            this.handleOpenForm(row.secId, "详情", true);
+  components: { searchBar, operateBar, newTable },
+  mixins: [searchOpt, importOpt, syncOpt],
+  data() {
+    return {
+      fieldClassifyTableUrl,
+      tableHeader: fieldSortConfig.slice(0, -1),
+      conditionForm: [
+        {
+          label: '字段一级分类',
+          name: 'firName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
         },
         },
-        /**
-         * 删除
-         */
-        handleDelete(row, e) {
-            this.$dgConfirm(`是否确认删除该条数据!`, "提示", {}).then(() => {
-                delFieldClassify(row.secId).then((res) => {
-                    this.$message.success("删除成功!");
-                    this.handleSearch();
-                });
-            });
+        {
+          label: '字段二级分类',
+          name: 'secName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
+        }
+      ],
+      tableOptList: tableOptList.slice(1, 3),
+      pageOptList
+    };
+  },
+  computed: {},
+  methods: {
+    receviceOpt(opt, row) {
+      if (opt == '新增') {
+        this.handleAdd();
+      } else if (opt == '修改') {
+        this.handleEdit(row);
+      } else if (opt == '详情') {
+        this.handleViewDetail(row);
+      } else if (opt == '删除') {
+        this.handleDelete(row);
+      } else if (opt == '同步') {
+        this.handleSync(fieldSortSyncUrl);
+      } else if (opt == '导入') {
+        // this.handleImport(dataLevelImportUrl, 'dataLevel', '数据资源分类表码导入');
+      }
+    },
+    /**
+     * 编辑
+     */
+    handleEdit(row, e) {
+      this.handleOpenForm(row.secId, '编辑');
+    },
+    /**
+     * 查看详情id
+     */
+    handleViewDetail(row, e) {
+      this.handleOpenForm(row.secId, '详情', true);
+    },
+    /**
+     * 删除
+     */
+    handleDelete(row, e) {
+      this.$dgConfirm(`是否确认删除该条数据!`, '提示', {}).then(() => {
+        delFieldClassify(row.secId).then((res) => {
+          this.$message.success('删除成功!');
+          this.handleSearch();
+        });
+      });
+    },
+    /**
+     * 新增
+     */
+    handleAdd() {
+      this.handleOpenForm(void 0, '新增');
+    },
+    handleOpenForm(id, title, isDetail = false) {
+      const vm = this;
+      const layer = this.$dgLayer({
+        title,
+        content: fieldSortForm,
+        props: {
+          id,
+          isDetail
         },
         },
-        /**
-         * 新增
-         */
-        handleAdd() {
-            this.handleOpenForm(void 0, "新增");
+        btn: ['确定', '取消'],
+        btnAlign: 'r',
+        noneBtnField: isDetail,
+        yes: (index) => {
+          let _layer = layer.$children[0];
+          _layer.saveForm().then((res) => {
+            layer.close(index);
+            vm.handleSearch();
+          });
         },
         },
-        handleOpenForm(id, title, isDetail = false) {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title,
-                content: fieldSortForm,
-                props: {
-                    id,
-                    isDetail
-                },
-                btn: ["确定", "取消"],
-                btnAlign: "r",
-                noneBtnField: isDetail,
-                yes: (index) => {
-                    let _layer = layer.$children[0];
-                    _layer.saveForm().then((res) => {
-                        layer.close(index);
-                        vm.handleSearch();
-                    });
-                },
 
 
-                area: ["900px", "500px"]
-            });
-        },
-        /**
-         * @description: 导入
-         */
-        handleImport() {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title: "字段分类表码导入",
-                content: importFile,
-                props: {
-                    temp: "模板",
-                    action: "action"
-                },
-                on: {
-                    success(params) {
-                        layer.close(layer.dialogIndex);
-                    }
-                },
-                cancel: function (index, layero) {
-                    // 关闭对应弹窗的ID
-                    layer.close(index);
-                    return false;
-                },
-                area: ["550px", "500px"]
-            });
-        },
-        /**
-         * @description:同步方法,假同步
-         */
-        handleSynchro() {
-            fieldSortSync().then((res) => {
-                this.$message.success("同步中,若数据量大,可能会存在延迟,请稍后自行刷新!");
-                this.handleSearch();
-            });
-        }
-    },
-    created() {},
-    mounted() {}
+        area: ['900px', '500px']
+      });
+    }
+  },
+  created() {},
+  mounted() {}
 };
 };
 </script>
 </script>
 
 
 <style lang='scss'>
 <style lang='scss'>
-@import url("./index.scss");
+@import url('./index.scss');
 </style>
 </style>

+ 131 - 181
src/pages/data-auth-module/auth-object-manage/sort-code-manage/source-sort-code.vue

@@ -4,198 +4,148 @@
 @Date: 2021-03-31 15:30:11
 @Date: 2021-03-31 15:30:11
 -->
 -->
 <template>
 <template>
-    <div>
-        <!-- 搜索项 -->
-        <el-form :inline="true" :model="form" class="search-form">
-            <el-form-item label="数据组织一级分类">
-                <el-input v-model="form.firName.value" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="数据组织二级分类">
-                <el-input v-model="form.secName.value" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="标签名称">
-                <el-input v-model="form.labName.value" clearable></el-input>
-            </el-form-item>
-            <el-form-item>
-                <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-            </el-form-item>
-        </el-form>
-          <!-- 操作 -->
-        <dg-row zebra="10px">
-            <dg-button type="primary" icon="el-icon-circle-plus-outline" @click="handleAdd">新增</dg-button>
-            <dg-button type="primary" icon="el-icon-refresh" @click="handleSynchro">同步</dg-button>
-            <!-- <dg-button type="primary" @click="handleImport" icon="el-icon-upload">导入</dg-button> -->
-        </dg-row>
-        <!-- 列表 -->
-        <dg-table ref="table" :url="dataSourceClaTableUrl" :condition="form" border row-key="id">
-            <dg-table-column type="index" width="75" label="序号" align="center"></dg-table-column>
-            <dg-table-column prop="firCode" label="一级代码" align="center"></dg-table-column>
-            <dg-table-column prop="firName" label="数据组织一级分类" align="center"></dg-table-column>
-            <dg-table-column prop="secCode" label="二级代码" align="center"></dg-table-column>
-            <dg-table-column prop="secName" label="数据组织二级分类" align="center"></dg-table-column>
-            <dg-table-column prop="labClaCode" label="标签分类代码" align="center"></dg-table-column>
-            <dg-table-column prop="labClaName" label="标签分类" align="center"></dg-table-column>
-            <dg-table-column prop="labCode" label="标签代码" align="center"></dg-table-column>
-            <dg-table-column prop="labName" label="标签名称" align="center"></dg-table-column>
-            <dg-table-column label="操作" align="center">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip
-                            v-for="(item, index) in optList"
-                            :key="index"
-                            :content="item.tooltip"
-                            effect="dark"
-                            placement="top-end"
-                        >
-                            <i :class="item.icon" @click="item.on(scope.row, $event)"></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </dg-table>
-    </div>
+  <div>
+    <!-- 搜索栏 -->
+    <search-bar :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <!-- 操作栏 -->
+    <operate-bar :pageOptList="pageOptList" @submitPageOpt="receviceOpt"></operate-bar>
+    <!-- 列表 -->
+    <new-table
+      ref="table"
+      :tableUrl="dataSourceClaTableUrl"
+      :tableHeader="tableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import importFile from "@/components/import";
-import sourceSortForm from "./forms/source-sort-form";
-import { dataSourceClaTableUrl, delDataSourceCla } from "@/api/data-auth";
-import { dataSourceSync } from "@/api/sync";
+import sourceSortForm from './forms/source-sort-form';
+import { dataSourceClaTableUrl, delDataSourceCla } from '@/api/data-auth';
+import { dataSourceSyncUrl } from '@/api/sync';
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import newTable from '@/pages/common/new-table';
+import { sourceSortConfig, pageOptList, tableOptList } from './DataConfig';
+import { searchOpt, importOpt, syncOpt } from '@/mixins/page-opt';
+
 export default {
 export default {
-    components: {},
-    data() {
-        return {
-            dataSourceClaTableUrl,
-            form: {
-                firName: {
-                    value: "",
-                    op: "like"
-                },
-                secName: {
-                    value: "",
-                    op: "like"
-                },
-                labName: {
-                    value: "",
-                    op: "like"
-                }
-            },
-            optList: [
-                { icon: "el-icon-edit", tooltip: "修改", on: this.handleEdit },
-                { icon: "el-icon-document", tooltip: "详情", on: this.handleViewDetail },
-                { icon: "el-icon-delete", tooltip: "删除", on: this.handleDelete }
-            ]
-        };
-    },
-    computed: {},
-    methods: {
-        /**
-         * @description: 查询
-         */
-        handleSearch() {
-          this.$refs.table.searchForm();
-        },
-        /**
-         * 重置
-         */
-        handleReset() {
-            for (const key in this.form) {
-                this.form[key].value = "";
-            }
-        },
-        /**
-         * 编辑
-         */
-        handleEdit(row, e) {
-            this.handleOpenForm(row.labId, "编辑");
+  components: { searchBar, operateBar, newTable },
+  mixins: [searchOpt, importOpt, syncOpt],
+  data() {
+    return {
+      dataSourceClaTableUrl,
+      conditionForm: [
+        {
+          label: '数据组织一级分类',
+          name: 'firName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
         },
         },
-        /**
-         * 查看详情id
-         */
-        handleViewDetail(row, e) {
-            this.handleOpenForm(row.labId, "详情", true);
+        {
+          label: '数据组织二级分类',
+          name: 'secName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
         },
         },
-        /**
-         * 删除
-         */
-        handleDelete(row, e) {
-            this.$dgConfirm(`是否确认删除该条数据!`, "提示", {}).then(() => {
-               delDataSourceCla(row.labId).then((res) => {
-                    this.$message.success("删除成功!");
-                    this.handleSearch();
-                });
-            });
+        {
+          label: '标签名称',
+          name: 'labName',
+          op: 'like',
+          value: '',
+          component: 'ElInput'
+        }
+      ],
+      tableHeader: sourceSortConfig.slice(0, -1),
+      pageOptList,
+      tableOptList,
+      optList: [
+        { icon: 'el-icon-edit', tooltip: '修改', on: this.handleEdit },
+        { icon: 'el-icon-document', tooltip: '详情', on: this.handleViewDetail },
+        { icon: 'el-icon-delete', tooltip: '删除', on: this.handleDelete }
+      ]
+    };
+  },
+  computed: {},
+  methods: {
+    receviceOpt(opt, row) {
+      if (opt == '新增') {
+        this.handleAdd();
+      } else if (opt == '修改') {
+        this.handleEdit(row);
+      } else if (opt == '详情') {
+        this.handleViewDetail(row);
+      } else if (opt == '删除') {
+        this.handleDelete(row);
+      } else if (opt == '同步') {
+        this.handleSync(dataSourceSyncUrl);
+      } else if (opt == '导入') {
+        // this.handleImport(dataLevelImportUrl, 'dataLevel', '数据资源分类表码导入');
+      }
+    },
+    /**
+     * 编辑
+     */
+    handleEdit(row, e) {
+      this.handleOpenForm(row.labId, '编辑');
+    },
+    /**
+     * 查看详情id
+     */
+    handleViewDetail(row, e) {
+      this.handleOpenForm(row.labId, '详情', true);
+    },
+    /**
+     * 删除
+     */
+    handleDelete(row, e) {
+      this.$dgConfirm(`是否确认删除该条数据!`, '提示', {}).then(() => {
+        delDataSourceCla(row.labId).then((res) => {
+          this.$message.success('删除成功!');
+          this.handleSearch();
+        });
+      });
+    },
+    /**
+     * 新增
+     */
+    handleAdd() {
+      this.handleOpenForm(void 0, '新增');
+    },
+    handleOpenForm(id, title, isDetail = false) {
+      const vm = this;
+      const layer = this.$dgLayer({
+        title,
+        content: sourceSortForm,
+        props: {
+          id,
+          isDetail
         },
         },
-        /**
-         * 新增
-         */
-        handleAdd() {
-            this.handleOpenForm(void 0, "新增");
+        btn: ['确定', '取消'],
+        btnAlign: 'r',
+        noneBtnField: isDetail,
+        yes: (index) => {
+          let _layer = layer.$children[0];
+          _layer.saveForm().then((res) => {
+            layer.close(index);
+            vm.handleSearch();
+          });
         },
         },
-        handleOpenForm(id, title, isDetail = false) {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title,
-                content: sourceSortForm,
-                props: {
-                    id,
-                    isDetail
-                },
-                btn: ["确定", "取消"],
-                btnAlign: "r",
-                noneBtnField: isDetail,
-                yes: (index) => {
-                    let _layer = layer.$children[0];
-                    _layer.saveForm().then((res) => {
-                        layer.close(index);
-                        vm.handleSearch();
-                    });
-                },
 
 
-                area: ["900px", "500px"]
-            });
-        },
-        /**
-         * @description: 导入
-         */
-        handleImport() {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title: "数据资源分类表码导入",
-                content: importFile,
-                props: {
-                    temp: "模板",
-                    action: "action"
-                },
-                on: {
-                    success(params) {
-                        layer.close(layer.dialogIndex);
-                    }
-                },
-                cancel: function (index, layero) {
-                    // 关闭对应弹窗的ID
-                    layer.close(index);
-                    return false;
-                },
-                area: ["550px", "500px"]
-            });
-        },
-            /**
-         * @description:同步方法,假同步
-         */
-        handleSynchro() {
-            dataSourceSync().then((res) => {
-                this.$message.success("同步中,若数据量大,可能会存在延迟,请稍后自行刷新!");
-                this.handleSearch();
-            });
-        }
-    },
-    created() {},
-    mounted() {}
+        area: ['900px', '500px']
+      });
+    }
+  },
+  created() {},
+  mounted() {}
 };
 };
 </script>
 </script>
 
 
 <style lang='scss'>
 <style lang='scss'>
-@import url("./index.scss");
+@import url('./index.scss');
 </style>
 </style>

+ 81 - 6
src/pages/data-auth-module/auth-subject-manage/DataConfig.js

@@ -5,6 +5,45 @@
  * @LastEditors: Do not edit
  * @LastEditors: Do not edit
  * @Description:
  * @Description:
  */
  */
+const pageOptList = ['导入', '同步']
+
+const userPropConditionForm =  [
+  {
+    label: '用户类型',
+    name: 'userType',
+    op: '=',
+    value: '',
+    component: 'DgSelect',
+    attr: {
+      enum: 'UserTypeEnum'
+    }
+  },
+  {
+    label: '姓名',
+    name: 'name',
+    op: 'like',
+    value: '',
+    component: 'ElInput'
+  },
+  {
+    label: '身份证号码',
+    name: 'idcard',
+    op: 'like',
+    value: '',
+    component: 'ElInput'
+  },
+  {
+    label: '单位名称',
+    name: 'orgCode',
+    op: '=',
+    value: '',
+    apiName: 'getOrgTree',
+    nodeKey: 'code',
+    type: 'APP',
+    component: 'SelectOrgTree',
+    placeholder: '请选择单位名称'
+  }
+]
 
 
 const UserTableData = [
 const UserTableData = [
   {
   {
@@ -41,7 +80,39 @@ const UserTableData = [
     custom: true
     custom: true
   }
   }
 ];
 ];
-const ApplicationTableData = [
+
+const appConditionForm = [
+  {
+    label: '应用系统名称',
+    name: 'applyName',
+    op: 'like',
+    value: '',
+    component: 'ElInput'
+  },
+  {
+    label: '应用系统在用标识',
+    name: 'applyStatus',
+    op: '=',
+    value: '',
+    component: 'DgSelect',
+    attr: {
+      code: 'DM_APPLY_STATUS'
+    }
+  },
+  {
+    label: '上线日期',
+    name: 'lineTime',
+    value: '',
+    op: 'between',
+    type: 'DATE',
+    valueFormat: 'yyyyMMddHHmmss',
+    component: 'DgDatePicker',
+  }
+
+]
+
+
+const appTableHeader = [
   {
   {
     label: '应用系统名称',
     label: '应用系统名称',
     prop: 'applyName'
     prop: 'applyName'
@@ -62,7 +133,7 @@ const ApplicationTableData = [
   {
   {
     label: '上线日期',
     label: '上线日期',
     prop: 'lineTime',
     prop: 'lineTime',
-    timestamp: 'YYYY-MM-DD'
+    dateFormat: 'YYYY-MM-DD'
   },
   },
   {
   {
     label: '应用系统运维单位名称',
     label: '应用系统运维单位名称',
@@ -163,7 +234,7 @@ const typeData = {
     { label: '单位名称', value: 'orgName' },
     { label: '单位名称', value: 'orgName' },
     { label: '警衔', value: 'rank', code: 'DM_POLICE_RANK' },
     { label: '警衔', value: 'rank', code: 'DM_POLICE_RANK' },
     { label: '警种', value: 'policeCategory', code: 'T_MD_POLICE_TYPE' },
     { label: '警种', value: 'policeCategory', code: 'T_MD_POLICE_TYPE' },
-    { label: '业务域', value: 'policeBusiness' }
+    { label: '业务域', value: 'policeBusiness',span: 24 }
   ],
   ],
   20: [
   20: [
     { label: '姓名', value: 'name' },
     { label: '姓名', value: 'name' },
@@ -173,8 +244,9 @@ const typeData = {
     { label: '单位名称', value: 'orgName' },
     { label: '单位名称', value: 'orgName' },
     { label: '人员类型', value: 'auxiliaryType', code: 'DM_AUXILIARY_TYPE' },
     { label: '人员类型', value: 'auxiliaryType', code: 'DM_AUXILIARY_TYPE' },
     // { label: "用户类别", value: "userType", enum: "UserTypeEnum" },
     // { label: "用户类别", value: "userType", enum: "UserTypeEnum" },
-    { label: '业务域', value: 'policeBusiness' },
-    { label: '警种', value: 'policeCategory', code: 'T_MD_POLICE_TYPE' }
+    { label: '警种', value: 'policeCategory', code: 'T_MD_POLICE_TYPE' },
+    { label: '业务域', value: 'policeBusiness',span: 24 },
+
   ],
   ],
   30: [
   30: [
     { label: '姓名', value: 'name' },
     { label: '姓名', value: 'name' },
@@ -209,10 +281,13 @@ const applicationField = [
   { label: '应用系统说明', value: 'managerDescribe' }
   { label: '应用系统说明', value: 'managerDescribe' }
 ];
 ];
 export {
 export {
+  pageOptList,
+  userPropConditionForm,
   UserTableData,
   UserTableData,
   typeData,
   typeData,
   institutionField,
   institutionField,
-  ApplicationTableData,
+  appConditionForm,
+  appTableHeader,
   applicationField,
   applicationField,
   cardPersonnelList,
   cardPersonnelList,
   cardApplicationList,
   cardApplicationList,

+ 35 - 139
src/pages/data-auth-module/auth-subject-manage/app-prop-manage/index.vue

@@ -8,76 +8,34 @@
 -->
 -->
 <template>
 <template>
   <main class="application-properties">
   <main class="application-properties">
-    <el-form ref="ruleForm" inline :model="form">
-      <el-form-item label="应用系统名称">
-        <el-input v-model="form.applyName.value" placeholder="请输入应用系统名称" clearable></el-input>
-      </el-form-item>
-      <el-form-item label="应用系统在用标识">
-        <dg-select
-          v-model="form.applyStatus.value"
-          placeholder="请选择应用系统在用标识"
-          code="DM_APPLY_STATUS"
-          style="width: 13rem"
-          clearable
-        >
-        </dg-select>
-      </el-form-item>
-      <!-- <el-form-item label="应用系统事权单位代码">
-                <el-input
-                    v-model="form.managerOrgCode.value"
-                    placeholder="请输入应用系统事权单位代码"
-                    clearable
-                ></el-input>
-            </el-form-item> -->
-      <el-form-item label="上线日期">
-        <dg-date-picker
-          v-model="form.lineTime.value"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          clearable
-          value-format="yyyyMMddHHmmss"
-          :unlink-panels="true"
-        >
-        </dg-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-        <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-      </el-form-item>
-      <!-- <el-form-item label="最近同步时间:" style="float: right">
-                <span>2021-04-08 12:00:00</span>
-            </el-form-item> -->
-    </el-form>
-    <div class="buttonGroup">
-      <dg-button type="primary" @click="handleImport" icon="el-icon-upload2">导入</dg-button>
-      <dg-button type="primary" @click="handleSynchro" icon="el-icon-refresh">同步</dg-button>
-    </div>
-
-    <Table ref="myTable" :url="tableUrl" :headerData="ApplicationTableData" :condition="form">
-      <dg-table-column label="操作" align="center">
-        <template slot-scope="scope">
-          <div class="u-table__operation">
-            <el-tooltip content="详情" effect="dark" placement="top-end">
-              <i class="el-icon-document" @click="handleViewDetail(scope.row)"></i>
-            </el-tooltip>
-          </div>
-        </template>
-      </dg-table-column>
-    </Table>
+    <!-- 搜索项 -->
+    <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="appTableHeader"
+      :condition="condition"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
   </main>
   </main>
 </template>
 </template>
 
 
 <script>
 <script>
-import Table from '@/pages/common/table';
-import { ApplicationTableData } from '../DataConfig';
+import newTable from '@/pages/common/new-table';
+import { appTableHeader, appConditionForm, pageOptList } from '../DataConfig';
 import FormDetail from '@/components/form-detail';
 import FormDetail from '@/components/form-detail';
 import { appForm } from '@/pages/data-auth-module/auth-object-manage/appfun-resource-manage/DataConfig';
 import { appForm } from '@/pages/data-auth-module/auth-object-manage/appfun-resource-manage/DataConfig';
-import importFile from '@/components/import';
 import { appRestApi } from '@/api/application';
 import { appRestApi } from '@/api/application';
-import { appSync } from '@/api/sync';
+import { appSyncUrl } from '@/api/sync';
 import { appImportUrl } from '@/api/import';
 import { appImportUrl } from '@/api/import';
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import { searchOpt, importOpt, syncOpt } from '@/mixins/page-opt';
 export default {
 export default {
   name: 'application-properties', // 组件名称
   name: 'application-properties', // 组件名称
   props: {
   props: {
@@ -86,87 +44,27 @@ export default {
   data() {
   data() {
     // 组件内部参数
     // 组件内部参数
     return {
     return {
-      // 参数名称及默认值
-      form: {
-        applyName: {
-          value: '',
-          op: 'like'
-        },
-        applyStatus: {
-          value: '',
-          op: '='
-        },
-        managerOrgCode: {
-          value: '',
-          op: 'like'
-        },
-        lineTime: {
-          value: '',
-          op: 'between',
-          type: 'DATE',
-          format: 'yyyyMMddHHmmss'
-        }
-      },
-      ApplicationTableData,
-      tableUrl: appRestApi.table
+      appTableHeader,
+      conditionForm: appConditionForm,
+      tableUrl: appRestApi.table,
+      pageOptList,
+      tableOptList: ['详情']
     };
     };
   },
   },
   computed: {}, // 计算属性
   computed: {}, // 计算属性
   watch: {}, // 侦听器(扩展的计算属性)
   watch: {}, // 侦听器(扩展的计算属性)
-  components: { Table }, // 注册局部组件
+  components: { newTable, searchBar, operateBar }, // 注册局部组件
+  mixins: [searchOpt, importOpt, syncOpt],
   methods: {
   methods: {
-    /**
-     * @description:表单查询方法
-     */
-    handleSearch() {
-      this.$refs.myTable.handleSearchClick();
-    },
-    /**
-     * 重置
-     */
-    handleReset() {
-      for (const key in this.form) {
-        this.form[key].value = '';
+    receviceOpt(opt, row) {
+      if (opt == '导入') {
+        this.handleImport(appImportUrl, 'apply');
+      } else if (opt == '同步') {
+        this.handleSync(appSyncUrl);
+      } else if (opt == '详情') {
+        this.handleViewDetail(row);
       }
       }
     },
     },
-    /**
-     * @description:导入方法
-     */
-    handleImport() {
-      const vm = this;
-      const layer = this.$dgLayer({
-        title: '导入',
-        content: importFile,
-        props: {
-          temp: 'apply',
-          action: appImportUrl
-        },
-        on: {
-          success(params) {
-            layer.close(layer.dialogIndex);
-          },
-          close() {
-            vm.handleSearch();
-            layer.close(layer.dialogIndex);
-          }
-        },
-        cancel: function (index, layero) {
-          // 关闭对应弹窗的ID
-          layer.close(index);
-          return false;
-        },
-        area: ['550px', '500px']
-      });
-    },
-    /**
-     * @description:同步方法,假同步
-     */
-    handleSynchro() {
-      appSync().then((res) => {
-        this.$message.success('同步中,若数据量大,可能会存在延迟,请稍后自行刷新!');
-        this.handleSearch();
-      });
-    },
     /**
     /**
      * @description:详情
      * @description:详情
      */
      */
@@ -198,6 +96,4 @@ export default {
   mounted() {} // 组件挂载完成后
   mounted() {} // 组件挂载完成后
 };
 };
 </script>
 </script>
-<style lang="scss" scoped>
-@import '../index.scss';
-</style>
+

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

@@ -9,7 +9,7 @@
     <main class="user-attributes-detail">
     <main class="user-attributes-detail">
         <el-form ref="ruleForm" :model="detailInfo" label-width="120px" v-if="detailInfo.id" label-suffix=":">
         <el-form ref="ruleForm" :model="detailInfo" label-width="120px" v-if="detailInfo.id" label-suffix=":">
             <el-row>
             <el-row>
-                <el-col :span="12" v-for="(item, index) in typeData[userInfo.userType]" :key="index">
+                <el-col :span="item.span ? item.span : 12" v-for="(item, index) in typeData[userInfo.userType]" :key="index">
                     <el-form-item :label="item.label">
                     <el-form-item :label="item.label">
                         <!-- 业务域翻译 -->
                         <!-- 业务域翻译 -->
                         <template v-if="item.value == 'policeBusiness' && showTagTree">
                         <template v-if="item.value == 'policeBusiness' && showTagTree">

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

@@ -7,41 +7,12 @@
 -->
 -->
 <template>
 <template>
   <main class="user-attributes">
   <main class="user-attributes">
-    <el-form ref="ruleForm" inline :rules="rules" :model="form">
-      <el-form-item label="用户类型">
-        <dg-select v-model="form.userType.value" placeholder="请选择用户类型" enum="UserTypeEnum" clearable>
-        </dg-select>
-      </el-form-item>
-      <el-form-item label="姓名">
-        <el-input v-model="form.name.value" placeholder="请输入姓名" clearable></el-input>
-      </el-form-item>
-      <el-form-item label="身份证号码">
-        <el-input v-model="form.idcard.value" placeholder="请输入身份证号码" clearable></el-input>
-      </el-form-item>
-
-      <el-form-item label="单位名称">
-        <select-tree
-          ref="selectTree"
-          api-name="getOrgTree"
-          @submitTreeValue="getTreeValue"
-          placeholder="请选择单位名称"
-        ></select-tree>
-      </el-form-item>
-
-      <el-form-item>
-        <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-        <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-      </el-form-item>
-
-      <!-- <el-form-item label="最近同步时间:" style="float: right">
-                <span>{{ LatestSyncTime }}</span>
-            </el-form-item> -->
-    </el-form>
-    <div class="buttonGroup">
-      <dg-button type="primary" @click="handleImport" icon="el-icon-upload2">导入</dg-button>
-      <dg-button type="primary" @click="handleSynchro" icon="el-icon-refresh">同步</dg-button>
-    </div>
-    <Table ref="myTable" :url="tableUrl" :headerData="UserTableData" :condition="form">
+    <!-- 搜索项 -->
+    <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="UserTableData" :condition="condition">
       <!-- 单位名称 -->
       <!-- 单位名称 -->
       <template #orgName="{ row }">
       <template #orgName="{ row }">
         <span v-if="row.userType + '' === '30'"></span>
         <span v-if="row.userType + '' === '30'"></span>
@@ -77,110 +48,48 @@
           </div>
           </div>
         </template>
         </template>
       </dg-table-column>
       </dg-table-column>
-    </Table>
+    </new-table>
   </main>
   </main>
 </template>
 </template>
 
 
 <script>
 <script>
-import Table from '@/pages/common/table';
-import { UserTableData } from '../DataConfig';
+import newTable from '@/pages/common/new-table';
+import { UserTableData, userPropConditionForm, pageOptList } from '../DataConfig';
 import { authUserTableUrl } from '@/api/data-auth';
 import { authUserTableUrl } from '@/api/data-auth';
-import { authUserSync } from '@/api/sync';
+import { userSyncUrl } from '@/api/sync';
 import baseApi from '@/api/jz-base';
 import baseApi from '@/api/jz-base';
 import detail from './detail';
 import detail from './detail';
-import importFile from '@/components/import';
-import selectTree from '@/pages/common/select-tree';
 import { userImportUrl } from '@/api/import';
 import { userImportUrl } from '@/api/import';
+import searchBar from '@/components/search-bar';
+import operateBar from '@/components/operate-bar';
+import { searchOpt, importOpt, syncOpt } from '@/mixins/page-opt';
 export default {
 export default {
   name: 'user-attributes', // 组件名称
   name: 'user-attributes', // 组件名称
+  components: { newTable, searchBar, operateBar }, // 注册局部组件
+  mixins: [searchOpt, importOpt, syncOpt],
   props: {
   props: {
     // 接收父组件的数据
     // 接收父组件的数据
   },
   },
   data() {
   data() {
     // 组件内部参数
     // 组件内部参数
     return {
     return {
-      // 参数名称及默认值
-      form: {
-        name: {
-          value: '',
-          op: 'like'
-        },
-        idcard: {
-          value: '',
-          op: 'like'
-        },
-        userType: {
-          value: '',
-          op: '='
-        },
-        orgCode: {
-          value: '',
-          op: '='
-        }
-      },
-      rules: {},
-      options: [],
+      conditionForm: userPropConditionForm,
       UserTableData,
       UserTableData,
       tableUrl: authUserTableUrl,
       tableUrl: authUserTableUrl,
+      pageOptList,
       LatestSyncTime: ''
       LatestSyncTime: ''
     };
     };
   },
   },
   computed: {}, // 计算属性
   computed: {}, // 计算属性
   watch: {}, // 侦听器(扩展的计算属性)
   watch: {}, // 侦听器(扩展的计算属性)
-  components: { Table, selectTree }, // 注册局部组件
   methods: {
   methods: {
-    /**
-     * @description:表单查询方法
-     */
-    handleSearch() {
-      this.$refs.myTable.handleSearchClick();
-    },
-    /**
-     * 重置
-     */
-    handleReset() {
-      if (this.form.orgCode.value) {
-        this.$refs.selectTree.value = '';
-      }
-      for (const key in this.form) {
-        this.form[key].value = '';
+    receviceOpt(type) {
+      if (type == '导入') {
+        this.handleImport(userImportUrl, 'user');
+      } else if (type == '同步') {
+        this.handleSync(userSyncUrl);
       }
       }
     },
     },
-    /**
-     * @description:导入方法
-     */
-    handleImport() {
-      const vm = this;
-      const layer = this.$dgLayer({
-        title: '导入',
-        content: importFile,
-        props: {
-          temp: 'user',
-          action: userImportUrl
-        },
-        on: {
-          success(params) {
-            vm.handleSearch();
-            layer.close(layer.dialogIndex);
-          }
-        },
-        cancel: function (index, layero) {
-          // 关闭对应弹窗的ID
-          layer.close(index);
-          return false;
-        },
-        area: ['550px', '500px']
-      });
-    },
-    /**
-     * @description:同步方法,假同步
-     */
-    handleSynchro() {
-      authUserSync().then((res) => {
-        this.$message.success('同步中,若数据量大,可能会存在延迟,请稍后自行刷新!');
-        this.handleSearch();
-      });
-    },
     /**
     /**
      * @description:详情
      * @description:详情
      */
      */
@@ -200,13 +109,6 @@ export default {
         },
         },
         area: ['900px', '500px']
         area: ['900px', '500px']
       });
       });
-    },
-    /**
-     * 接收机构树值
-     */
-
-    getTreeValue(val) {
-      this.form.orgCode.value = val;
     }
     }
   },
   },
   created() {
   created() {

+ 93 - 123
src/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-info.vue

@@ -1,135 +1,105 @@
 <template>
 <template>
-    <main class="auth-earlywarning-plan">
-        <el-form ref="ruleForm" inline :rules="rules" :model="form">
-            <el-form-item label="预警对象" prop="creater.value">
-                <el-input v-model="form.creater.value" placeholder="请输入预警对象" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="预警对象唯一标识" prop="createrId.value">
-                <el-input v-model="form.createrId.value" placeholder="请输入预警对象唯一标识" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="预警类型" prop="programmeType.value">
-                <dg-select
-                    v-model="form.programmeType.value"
-                    placeholder="请选择预警类型"
-                    enum="WarningProgrammeTypeEnum"
-                    style="width: 13rem"
-                    clearable
-                >
-                </dg-select>
-            </el-form-item>
-            <el-form-item label="预警时间" prop="createTime.value">
-                <dg-date-picker
-                    v-model="form.createTime.value"
-                    type="daterange"
-                    range-separator="至"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                    clearable
-                    value-format="yyyyMMddHHmmss"
-                    :unlink-panels="true"
-                    :default-time="['00:00:00', '23:59:59']"
-                >
-                </dg-date-picker>
-            </el-form-item>
-            <el-form-item>
-                <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-            </el-form-item>
-        </el-form>
-        <Table ref="myTable" :url="tableUrl" :headerData="EarlyWarningInfo" :condition="form" :sort="sort">
-            <dg-table-column label="操作" align="center">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip content="详情" effect="dark" placement="top-end">
-                            <i class="el-icon-document" @click="handleViewDetail(scope.row)"></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </Table>
-    </main>
+  <main class="auth-earlywarning-plan">
+    <!-- 搜索项 -->
+    <search-bar ref="searchbar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="EarlyWarningInfo"
+      :condition="condition"
+      :sortProps="sort"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </main>
 </template>
 </template>
 
 
 <script>
 <script>
-import Table from "@/pages/common/table";
-import { EarlyWarningInfo } from "../DataConfig";
-import { getAuthEarlyWarningDetail, authEarlyWarningInfo } from "@/api/log-manage";
-import Detail from "./auth-earlywarning-info-detail";
-
+import newTable from '@/pages/common/new-table';
+import { EarlyWarningInfo } from '../DataConfig';
+import { getAuthEarlyWarningDetail, authEarlyWarningInfo } from '@/api/log-manage';
+import Detail from './auth-earlywarning-info-detail';
+import searchBar from '@/components/search-bar';
+import { searchOpt } from '@/mixins/page-opt';
 export default {
 export default {
-    name: "auth-earlywarning-info",
-    data() {
-        return {
-            EarlyWarningInfo,
-            form: {
-                creater: {
-                    value: "",
-                    op: "like"
-                },
-                createrId: {
-                    value: "",
-                    op: "like"
-                },
-                programmeType: {
-                    value: "",
-                    op: "="
-                },
-                createTime: {
-                    value: "",
-                    op: "between",
-                    type: "DATE",
-                    format: "yyyyMMddHHmmss"
-                }
-            },
-            rules: {},
-            tableUrl: authEarlyWarningInfo,
-            sort: {
-                createTime: "DESC"
-            }
-        };
-    },
-    components: { Table },
-    methods: {
-        /**
-         * @description:表单查询
-         */
-        handleSearch() {
-            this.$refs.myTable.handleSearchClick();
+  name: 'auth-earlywarning-info',
+  components: { searchBar, newTable },
+  mixins: [searchOpt],
+  data() {
+    return {
+      EarlyWarningInfo,
+      conditionForm: [
+        {
+          label: '预警对象',
+          name: 'creater',
+          op: 'like',
+          component: 'ElInput'
+        },
+        {
+          label: '预警对象唯一标识',
+          name: 'createrId',
+          op: 'like',
+          component: 'ElInput'
         },
         },
-        /**
-         * @description:表单重置
-         */
-        handleReset() {
-            this.$refs.ruleForm.resetFields();
+        {
+          label: '预警类型',
+          name: 'programmeType',
+          op: '=',
+          component: 'DgSelect',
+          attr: {
+            enum: 'WarningProgrammeTypeEnum'
+          }
         },
         },
-        /**
-         * @description:详情
-         */
-        handleViewDetail({ id }) {
-            const that = this;
-            getAuthEarlyWarningDetail(id)
-                .then(res => {
-                    const sizeForm = res;
-                    const layer = this.$dgLayer({
-                        title: `详情`,
-                        shade: [0.4, "#FFF"],
-                        content: Detail,
-                        props: {
-                            sizeForm
-                        },
-                        on: {
-                            success() {
-                                layer.close(layer.dialogIndex);
-                            }
-                        },
-                        area: ["900px", "500px"]
-                    });
-                })
-                .catch(error => {
-                    that.$message.error("详情获取失败");
-                });
+        {
+          label: '创建时间',
+          name: 'createTime',
+          op: 'between',
+          type: 'DATE',
+          value: '',
+          valueFormat: 'yyyyMMddHHmmss',
+          component: 'DgDatePicker'
         }
         }
+      ],
+      tableUrl: authEarlyWarningInfo,
+      sort: {
+        createTime: 'DESC'
+      },
+      tableOptList: ['详情']
+    };
+  },
+  methods: {
+    receviceOpt(opt, row) {
+      this.handleViewDetail(row);
+    },
+    /**
+     * @description:详情
+     */
+    handleViewDetail({ id }) {
+      const that = this;
+      getAuthEarlyWarningDetail(id)
+        .then((res) => {
+          const sizeForm = res;
+          const layer = this.$dgLayer({
+            title: `详情`,
+            shade: [0.4, '#FFF'],
+            content: Detail,
+            props: {
+              sizeForm
+            },
+            on: {
+              success() {
+                layer.close(layer.dialogIndex);
+              }
+            },
+            area: ['900px', '500px']
+          });
+        })
+        .catch((error) => {
+          that.$message.error('详情获取失败');
+        });
     }
     }
+  }
 };
 };
 </script>
 </script>
 <style lang="scss" scoped></style>
 <style lang="scss" scoped></style>

+ 101 - 129
src/pages/log-manage/err-auth-earlywarning-manage/auth-earlywarning-plan.vue

@@ -7,143 +7,115 @@
  * @Description: 鉴权预警方案
  * @Description: 鉴权预警方案
 -->
 -->
 <template>
 <template>
-    <main class="auth-earlywarning-plan">
-        <el-form ref="ruleForm" inline :rules="rules" :model="form">
-            <el-form-item label="鉴权预警方案名称" prop="name.value">
-                <el-input v-model="form.name.value" placeholder="请输入鉴权预警方案名称" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="方案状态" prop="state.value">
-                <dg-select
-                    v-model="form.state.value"
-                    placeholder="请选择方案状态"
-                    enum="ProgrammeStateEnum"
-                    style="width: 13rem"
-                    clearable
-                >
-                </dg-select>
-            </el-form-item>
-            <el-form-item>
-                <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
-                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
-            </el-form-item>
-        </el-form>
-        <Table ref="myTable" :url="tableUrl" :headerData="earlyWarningPlanTable" :condition="form" :sort="sort">
-            <dg-table-column label="操作" align="center">
-                <template slot-scope="scope">
-                    <div class="u-table__operation">
-                        <el-tooltip content="详情" effect="dark" placement="top-end">
-                            <i class="el-icon-document" @click="handleViewDetail(scope.row)"></i>
-                        </el-tooltip>
-                        <el-tooltip content="编辑" effect="dark" placement="top-end">
-                            <i class="el-icon-edit" @click="handleViewEdit(scope.row)"></i>
-                        </el-tooltip>
-                    </div>
-                </template>
-            </dg-table-column>
-        </Table>
-    </main>
+  <main>
+    <!-- 搜索项 -->
+    <search-bar ref="searchbar" :conditionForm="conditionForm" @submitSearch="receiveSearch"></search-bar>
+    <new-table
+      ref="table"
+      :tableUrl="tableUrl"
+      :tableHeader="earlyWarningPlanTable"
+      :condition="condition"
+      :sortProps="sort"
+      :tableOptList="tableOptList"
+      @submitTableOpt="receviceOpt"
+    >
+    </new-table>
+  </main>
 </template>
 </template>
 
 
 <script>
 <script>
-import Table from "@/pages/common/table";
-import { earlyWarningPlanTable } from "../DataConfig";
-import { warningProgrammeTableUrl } from "@/api/log-manage";
-import detail from "./detail";
-import edit from "./edit";
+import newTable from '@/pages/common/new-table';
+import { earlyWarningPlanTable } from '../DataConfig';
+import { warningProgrammeTableUrl } from '@/api/log-manage';
+import detail from './detail';
+import edit from './edit';
+import searchBar from '@/components/search-bar';
+import { searchOpt } from '@/mixins/page-opt';
 export default {
 export default {
-    name: "auth-earlywarning-plan", // 组件名称
-    props: {
-        // 接收父组件的数据
-    },
-    data() {
-        // 组件内部参数
-        return {
-            // 参数名称及默认值
-            earlyWarningPlanTable,
-            form: {
-                name: {
-                    value: "",
-                    op: "like"
-                },
-                state: {
-                    value: "",
-                    op: "="
-                }
-            },
-            sort: {
-                updateTime: "DESC"
-            },
-            rules: {},
-            tableUrl: warningProgrammeTableUrl
-        };
+  name: 'auth-earlywarning-plan', // 组件名称
+  components: { searchBar, newTable }, // 注册局部组件
+  mixins: [searchOpt],
+  data() {
+    // 组件内部参数
+    return {
+      // 参数名称及默认值
+      earlyWarningPlanTable,
+      sort: {
+        updateTime: 'DESC'
+      },
+      conditionForm: [
+        {
+          label: '鉴权预警方案名称',
+          name: 'name',
+          op: 'like',
+          component: 'ElInput'
+        },
+        {
+          label: '方案状态',
+          name: 'state',
+          op: '=',
+          component: 'DgSelect',
+          attr: {
+            enum: 'ProgrammeStateEnum'
+          }
+        }
+      ],
+      tableUrl: warningProgrammeTableUrl,
+      tableOptList: ['详情', '修改']
+    };
+  },
+  computed: {}, // 计算属性
+  watch: {}, // 侦听器(扩展的计算属性)
+  methods: {
+    receviceOpt(opt, row) {
+      if (opt == '修改') {
+        this.handleViewEdit(row);
+      } else if (opt == '详情') {
+        this.handleViewDetail(row);
+      }
     },
     },
-    computed: {}, // 计算属性
-    watch: {}, // 侦听器(扩展的计算属性)
-    components: { Table }, // 注册局部组件
-    methods: {
-        /**
-         * @description:表单查询
-         */
-        handleSearch() {
-            this.$refs.myTable.handleSearchClick();
+    /**
+     * @description: 编辑
+     */
+    handleViewEdit(row) {
+      const vm = this;
+      const layer = this.$dgLayer({
+        title: `异常鉴权预警方案修改`,
+        shade: [0.4, '#FFF'],
+        content: edit,
+        skin: 'auth-earlywarning-plan-edit-layer',
+        props: {
+          info: row
         },
         },
-        /**
-         * @description:表单重置
-         */
-        handleReset() {
-            this.$refs.ruleForm.resetFields();
+        on: {
+          success() {
+            vm.handleSearch();
+            layer.close(layer.dialogIndex);
+          }
         },
         },
-        /**
-         * @description: 编辑
-         */
-        handleViewEdit(row) {
-            const vm = this;
-            const layer = this.$dgLayer({
-                title: `异常鉴权预警方案修改`,
-                shade: [0.4, "#FFF"],
-                content: edit,
-                skin: "auth-earlywarning-plan-edit-layer",
-                // btn: null,
-                props: {
-                    info: row
-                },
-                on: {
-                    success() {
-                        vm.handleSearch();
-                        layer.close(layer.dialogIndex);
-                    }
-                },
-                area: ["900px", "500px"]
-            });
+        area: ['900px', '500px']
+      });
+    },
+    /**
+     * @description:详情
+     */
+    handleViewDetail(row) {
+      const layer = this.$dgLayer({
+        title: `异常鉴权预警方案详情`,
+        shade: [0.4, '#FFF'],
+        content: detail,
+        props: {
+          info: row
         },
         },
-        /**
-         * @description:详情
-         */
-        handleViewDetail(row) {
-            const layer = this.$dgLayer({
-                title: `异常鉴权预警方案详情`,
-                shade: [0.4, "#FFF"],
-                content: detail,
-                props: {
-                    info: row
-                },
-                on: {
-                    success() {
-                        layer.close(layer.dialogIndex);
-                    }
-                },
-                area: ["900px", "500px"]
-            });
-        }
-    }, // 内部方法
-    beforeCreate() {}, // 组件创建前
-    created() {}, // 组件创建完成后
-    beforeMount() {}, // 组件挂载前
-    mounted() {}, // 组件挂载完成后
-    beforeUpdate() {}, // 组件更新前
-    updated() {}, // 组件挂载完成后
-    beforeDestroy() {}, // 组件销毁前
-    destroyed() {} // 组件销毁完成后
+        on: {
+          success() {
+            layer.close(layer.dialogIndex);
+          }
+        },
+        area: ['900px', '500px']
+      });
+    }
+  }
 };
 };
 </script>
 </script>
 <style lang="scss" scoped></style>
 <style lang="scss" scoped></style>

+ 3 - 3
src/pages/log-report/persionnel-author-audit/index.vue

@@ -21,7 +21,7 @@
                 :body-style="{ minHeight: document_max_height * 0.5 - 250 + 'px' }"
                 :body-style="{ minHeight: document_max_height * 0.5 - 250 + 'px' }"
             >
             >
                 <div class="u-right__table">
                 <div class="u-right__table">
-                    <el-form ref="p_reportPersonFrom" :model="p_reportPersonFrom" label-suffix=":" inline>
+                    <el-form ref="p_reportPersonFrom" :model="p_reportPersonFrom" label-suffix="" inline>
                         <el-form-item label="姓名" prop="name.value">
                         <el-form-item label="姓名" prop="name.value">
                             <el-input v-model="p_reportPersonFrom.name.value" @keyup.enter.native="doSearch"></el-input>
                             <el-input v-model="p_reportPersonFrom.name.value" @keyup.enter.native="doSearch"></el-input>
                         </el-form-item>
                         </el-form-item>
@@ -33,7 +33,7 @@
                         </el-form-item>
                         </el-form-item>
                         <el-form-item>
                         <el-form-item>
                             <dg-button type="primary" icon="el-icon-search" @click="doSearch">查询</dg-button>
                             <dg-button type="primary" icon="el-icon-search" @click="doSearch">查询</dg-button>
-                            <dg-button type="primary" icon="el-icon-refresh-right" @click="hanldReset">重置</dg-button>
+                            <dg-button icon="el-icon-refresh-right" @click="hanldReset">重置</dg-button>
                         </el-form-item>
                         </el-form-item>
                     </el-form>
                     </el-form>
                     <Table
                     <Table
@@ -54,7 +54,7 @@
                 style="margin-top:10px;"
                 style="margin-top:10px;"
             >
             >
                 <div class="u-right__table">
                 <div class="u-right__table">
-                    <el-form ref="form" :model="r_reportPersonFrom" label-suffix=":" inline>
+                    <el-form ref="form" :model="r_reportPersonFrom" label-suffix="" inline>
                         <el-form-item label="应用系统名称" prop="appId.value">
                         <el-form-item label="应用系统名称" prop="appId.value">
                             <dg-select
                             <dg-select
                                 v-model="r_reportPersonFrom.appId.value"
                                 v-model="r_reportPersonFrom.appId.value"

+ 0 - 1
src/pages/permission-selfhelp-manage/component/app-func-form.vue

@@ -12,7 +12,6 @@
       v-model="selectedValue"
       v-model="selectedValue"
       :data="data"
       :data="data"
       children-name="child"
       children-name="child"
-      pid-name="p"
       :open-all="false"
       :open-all="false"
       :transfer-open-node="true"
       :transfer-open-node="true"
       :filter-node-from="handleSearch"
       :filter-node-from="handleSearch"

+ 11 - 12
src/pages/statistics-manage/role-authorization/index.vue

@@ -2,7 +2,7 @@
 
 
 <template>
 <template>
   <dg-row>
   <dg-row>
-    <el-form ref="form" :model="form" inline label-suffix=":">
+    <el-form ref="form" :model="form" inline label-suffix="">
       <el-form-item prop="appId.value" label="应用系统名称">
       <el-form-item prop="appId.value" label="应用系统名称">
         <dg-select
         <dg-select
           v-model="form.appId.value"
           v-model="form.appId.value"
@@ -22,25 +22,23 @@
       >】个,应用分配总名额 【<span class="text-detail__number">{{ initNums }}</span
       >】个,应用分配总名额 【<span class="text-detail__number">{{ initNums }}</span
       >】名
       >】名
     </p>
     </p>
-    <Table ref="myTable" :url="tableUrl" :headerData="headerData" :condition="form" :lazyLoad="true">
-      <dg-table-column label="机构名称" prop="name" align="center" fixed="left">
-        <template slot-scope="{ row }">
-          <a href="javascript:;" @click="handleDetail(row)">{{ row.name }}</a>
-        </template>
-      </dg-table-column>
-    </Table>
+    <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>
   </dg-row>
   </dg-row>
 </template>
 </template>
 
 
 <script>
 <script>
-import Table from '@/pages/common/table';
+import newTable from '@/pages/common/new-table';
 import Editor from './editor';
 import Editor from './editor';
 import * as statisticsApi from '@/api/statistics-manage';
 import * as statisticsApi from '@/api/statistics-manage';
 const areaEditor = ['910px', '560px'];
 const areaEditor = ['910px', '560px'];
 
 
 export default {
 export default {
   name: '',
   name: '',
-  components: { Table },
+  components: { newTable },
   // 接收父节点的参数
   // 接收父节点的参数
   props: {},
   props: {},
   data() {
   data() {
@@ -50,7 +48,8 @@ export default {
         appId: { value: '', op: '=' }
         appId: { value: '', op: '=' }
       },
       },
       headerData: [
       headerData: [
-        { label: '机构代码', prop: 'code', fixed: 'left' },
+        { label: '机构名称', prop: 'name' },
+        { label: '机构代码', prop: 'code' },
         { label: '应分配名额', prop: 'mustQuotas' },
         { label: '应分配名额', prop: 'mustQuotas' },
         { label: '实际分配名额', prop: 'quotaed' },
         { label: '实际分配名额', prop: 'quotaed' },
         { label: '待分配名额', prop: 'kfpme' },
         { label: '待分配名额', prop: 'kfpme' },
@@ -66,7 +65,7 @@ export default {
   // 方法
   // 方法
   methods: {
   methods: {
     handleSearch() {
     handleSearch() {
-      this.$refs.myTable.handleSearchClick();
+      this.$refs.table.handleSearch();
     },
     },
     // 应用系统下拉
     // 应用系统下拉
     getAppName() {
     getAppName() {

+ 2 - 2
src/router/modules/data-auth-module.js

@@ -8,9 +8,9 @@ import common from "@/pages/common";
 
 
 const componentsRouter = [
 const componentsRouter = [
     {
     {
-        path: "/auth-main-manage",
+        path: "/auth-subject-manage",
         component: Layout,
         component: Layout,
-        redirect: "/auth-main-manage",
+        redirect: "/auth-subject-manage",
         alwaysShow: true,
         alwaysShow: true,
         meta: { title: "授权主体管理", icon: "el-icon-goods", noCache: true, permission: ["QXGL_SQGL_ZTGL"] },
         meta: { title: "授权主体管理", icon: "el-icon-goods", noCache: true, permission: ["QXGL_SQGL_ZTGL"] },
         children: [
         children: [

+ 5 - 5
src/router/modules/log-manage.js

@@ -24,7 +24,7 @@ const componentsRouter = [
                 name: "auth-earlywarning-plan",
                 name: "auth-earlywarning-plan",
                 meta: {
                 meta: {
                     title: "鉴权预警方案",
                     title: "鉴权预警方案",
-                    noCache: false,
+                    noCache: true,
                     permission: ["QXGL_RZGL_YCJQYJGL_JQYJFA"]
                     permission: ["QXGL_RZGL_YCJQYJGL_JQYJFA"]
                     // layout: "page"
                     // layout: "page"
                 }
                 }
@@ -35,7 +35,7 @@ const componentsRouter = [
                 name: "auth-earlywarning-info",
                 name: "auth-earlywarning-info",
                 meta: {
                 meta: {
                     title: "鉴权预警信息",
                     title: "鉴权预警信息",
-                    noCache: false,
+                    noCache: true,
                     permission: ["QXGL_RZGL_YCJQYJGL_JQYJXX"]
                     permission: ["QXGL_RZGL_YCJQYJGL_JQYJXX"]
                     // layout: "page"
                     // layout: "page"
                 }
                 }
@@ -92,7 +92,7 @@ const componentsRouter = [
                 name: "auth-manage-log",
                 name: "auth-manage-log",
                 meta: {
                 meta: {
                     title: "授权管理日志",
                     title: "授权管理日志",
-                    noCache: false,
+                    noCache: true,
                     permission: ["QXGL_RZGL_QXRZGL_SQGLRZ"]
                     permission: ["QXGL_RZGL_QXRZGL_SQGLRZ"]
                 }
                 }
             },
             },
@@ -102,7 +102,7 @@ const componentsRouter = [
                 name: "auth-service-log",
                 name: "auth-service-log",
                 meta: {
                 meta: {
                     title: "鉴权服务日志",
                     title: "鉴权服务日志",
-                    noCache: false,
+                    noCache: true,
                     permission: ["QXGL_RZGL_QXRZGL_JQFWRZ"]
                     permission: ["QXGL_RZGL_QXRZGL_JQFWRZ"]
                 }
                 }
             },
             },
@@ -112,7 +112,7 @@ const componentsRouter = [
                 name: "auth-risk-log",
                 name: "auth-risk-log",
                 meta: {
                 meta: {
                     title: "鉴权风险日志",
                     title: "鉴权风险日志",
-                    noCache: false,
+                    noCache: true,
                     permission: ["QXGL_RZGL_QXRZGL_JQFXRZ"]
                     permission: ["QXGL_RZGL_QXRZGL_JQFXRZ"]
                 }
                 }
             }
             }