林倩 4 vuotta sitten
vanhempi
sitoutus
8e0e3eb0f2
25 muutettua tiedostoa jossa 1515 lisäystä ja 361 poistoa
  1. 303 260
      package-lock.json
  2. 4 2
      src/api/application.js
  3. 9 0
      src/api/common.js
  4. 31 0
      src/api/func-resource.js
  5. 2 0
      src/api/funevent.js
  6. 14 12
      src/pages/common/import/index.vue
  7. 101 0
      src/pages/common/select-tree/index.vue
  8. 4 9
      src/pages/common/table/index.vue
  9. 254 0
      src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/add-func-form2.vue
  10. 20 6
      src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/app-list.vue
  11. 3 3
      src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/index.vue
  12. 22 6
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/add-form.vue
  13. 7 3
      src/pages/data-auth-module/auth-object-manage/service-resource-manage/index.vue
  14. 76 13
      src/pages/data-auth-module/property-management/DataConfig.js
  15. 27 7
      src/pages/data-auth-module/property-management/application-management/application-properties.vue
  16. 11 2
      src/pages/data-auth-module/property-management/index.scss
  17. 11 8
      src/pages/data-auth-module/property-management/institutional-attributes.vue
  18. 85 0
      src/pages/data-auth-module/property-management/subject-management/add-dialog.vue
  19. 136 0
      src/pages/data-auth-module/property-management/subject-management/agency-list.vue
  20. 81 0
      src/pages/data-auth-module/property-management/subject-management/application-list.vue
  21. 159 0
      src/pages/data-auth-module/property-management/subject-management/personnel-list.vue
  22. 112 0
      src/pages/data-auth-module/property-management/subject-management/subject-property.vue
  23. 0 7
      src/pages/data-auth-module/property-management/subject-property.vue
  24. 29 17
      src/pages/data-auth-module/property-management/user-management/user-attributes.vue
  25. 14 6
      src/router/modules/data-auth-module.js

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 303 - 260
package-lock.json


+ 4 - 2
src/api/application.js

@@ -8,8 +8,10 @@ export const vendorRestApi = restApi("/appsvr/v2/manufacturer", { loading: true
 // 应用管理
 export const appRestApi = restApi("/appsvr/v2/app");
 
-// 功能管理
-export const funcRestApi = restApi("/authsvr/v2/appfuninfo");
+// 获取所有应用不分页
+export function allApps(status) {
+    return axios.get('/appsvr/v2/allApps?applyStatus='+status)
+}
 
 // 认证因子信息
 export function detail(id) {

+ 9 - 0
src/api/common.js

@@ -82,6 +82,15 @@ export function downTemplate(params) {
     return axios.arraybuffer("/downloadTemplate/downTemplate", params);
 }
 
+// 导入文件
+export function importFile(url, data) {
+   return request({
+       url,
+       method: "POST",
+       data
+   })
+}
+
 export function uniClass() {
     return req.post("/duacm/codeSon/v2/data/T_MD_UNIT_CLASS.ation").then(res => {
         const arr = res.data;

+ 31 - 0
src/api/func-resource.js

@@ -0,0 +1,31 @@
+/****************************** 功能资源管理 ************************************ */
+import request from "@/utils/request";
+
+const baseUrl = "/authsvr/v2/appfuninfo"
+export const tableUrl = baseUrl+"/search"
+export function save(data) {
+    return request({
+        url: `${baseUrl}/save`,
+        method: "POST",
+        data
+    })
+}
+export function update(data) {
+    return request({
+        url: `${baseUrl}/update`,
+        method: "PUT",
+        data
+    })
+}
+export function detail(id) {
+    return request({
+        url: `${baseUrl}/`+id,
+        method: "GET",
+    })
+}
+export function del(id) {
+    return request({
+        url: `${baseUrl}/`+id,
+        method: "DELETE",
+    })
+}

+ 2 - 0
src/api/funevent.js

@@ -18,3 +18,5 @@ export function editSource(data) {
 export function delSource(data) {
     return axios.delete(`${base}/menu`, data);
 }
+
+

+ 14 - 12
src/pages/common/import/index.vue

@@ -25,7 +25,7 @@
 <script>
 import { downloadBlob } from "@/utils/download";
 import * as commonApi from "@/api/common";
-import axios from "@/utils/req";
+// import axios from "@/utils/req";
 
 const dd = {
     police: "警员模版.xls",
@@ -122,17 +122,19 @@ export default {
             this.$refs.upload.clearFiles();
         },
         handleSuccess({ id }, file, fileList) {
-            const that = this;
-            const { method, action, otherParams } = that;
-            axios[method](action, { fileId: id, ...otherParams })
-                .then((res) => {
-                    that.onClose();
-                    that.$message.success("上传成功");
-                })
-                .catch((err) => {                  
-                    that.clearFiles();
-                    that.$message.error(err.response.data.message);
-                });
+            const { action, otherParams } = this;
+            commonApi.importFile(action,{ fileId: id, ...otherParams}).then(res => {
+                if(res.data.statusCode == '200') {
+                   this.$message.success(res.data.message);
+                   this.$emit("success");
+                }else {
+                    this.clearFiles();
+                    this.$message.error(res.data.message);
+                }
+            }).catch(err => {
+                this.clearFiles();
+                this.$message.error("上传失败");
+            })
         },
         handleError(err, file, fileList) {
             this.clearFiles();

+ 101 - 0
src/pages/common/select-tree/index.vue

@@ -0,0 +1,101 @@
+<!--
+下拉树组件
+@Author: linqian
+@Date: 2021-05-20 15:34
+-->
+<template>
+    <div>
+        <dg-tree-drop
+            ref="tree"
+            v-model="value"
+            :props="props"
+            :tree-props="treeProps"
+            clearable
+            filterable
+            visible-type="branch"
+            @change="handleChange"
+        >
+        </dg-tree-drop>
+    </div>
+</template>
+
+<script>
+import * as commonApi from "@/api/common";
+export default {
+    props: {
+        // props: {
+        //     type: Object,
+        //     default() {
+        //         return {
+        //             value: "id",
+        //             label: "name",
+        //             children: "children",
+        //             isLeaf(data) {
+        //                 return data.isParent !== true;
+        //             }
+        //         };
+        //     }
+        // },
+        // treeProps: {
+        //     type: Object,
+        //     default() {
+        //         return {
+        //             nodeKey: "id",
+        //             lazy: true,
+        //             load: this.loadNode
+        //         };
+        //     }
+        // },
+
+        apiName: {
+            type: String,
+            default: "getTree"
+        }
+    },
+    components: {},
+    data() {
+        return {
+            timer: null,
+            value: "",
+            props: {
+                value: "id",
+                label: "name",
+                children: "children",
+                isLeaf(data) {
+                    return data.isParent !== true;
+                }
+            },
+            treeProps: {
+                nodeKey: "id",
+                lazy: true,
+                load: this.loadNode
+            }
+        };
+    },
+    computed: {},
+    methods: {
+        loadNode(node, resolve) {
+            
+            this.getTree(node.level === 0 ? void 0 : node.key, resolve, node.level);
+        },
+        // 组织机构
+        getTree(id, resolve) {
+            const { params, apiName } = this;
+            commonApi[apiName]({ id, ...params })
+                .then((res) => {
+                    // 就为了存根节点, 用于刷新
+                    return resolve(res || []);
+                })
+                .catch(() => resolve([]));
+        },
+         handleChange(val) {
+            // this.$emit("submitTreeValue", val)
+         }
+    },
+    created() {},
+    mounted() {}
+};
+</script>
+
+<style lang='scss'>
+</style>

+ 4 - 9
src/pages/common/table/index.vue

@@ -6,7 +6,7 @@
 <template>
     <dg-table
         border
-        :auto-page="h => h * 0.6"
+        :auto-page="(h) => h * 0.6"
         :expand-row-keys="expands"
         overflow="tooltip"
         @change-current="handleChangeCurrent"
@@ -22,7 +22,6 @@
         :pagination="pagination"
         :pagination-props="paginationProps"
         :mapping="mapping"
-        stripe
         :lazyLoad="lazyLoad"
         highlight-current-row
         :before-search="_beforeSearch"
@@ -53,7 +52,6 @@
 <script>
 import moment from "moment";
 import * as dd from "@/api/dd";
-import * as roleAuthApi from "@/api/role-auth-info";
 
 export default {
     name: "Ltable",
@@ -112,7 +110,7 @@ export default {
         converter: Function,
         beforeSearch: {
             type: Function,
-            default: conditions => conditions
+            default: (conditions) => conditions
         },
         tableName: {
             type: String,
@@ -214,7 +212,7 @@ export default {
          * */
         converterText(rowData, item) {
             const prop = item.prop || { label: "label", value: "value" };
-            let resultItem = item.state.find(val => val["value"] == rowData[item.prop]);
+            let resultItem = item.state.find((val) => val["value"] == rowData[item.prop]);
             if (resultItem) {
                 return resultItem["label"];
             } else {
@@ -230,7 +228,7 @@ export default {
             let str = "";
             const type = item.format || "YYYY-MM-DD";
             if (rowData[item.prop]) {
-                return moment(parseInt(rowData[item.prop])).format(type);
+                return moment(rowData[item.prop]).format(type);
             }
         },
         /**
@@ -364,7 +362,4 @@ export default {
 </script>
 
 <style scoped lang="scss">
-.el-table__body tr.current-row > td {
-      background-color: #f5f7fa !important;
-}
 </style>

+ 254 - 0
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/add-func-form2.vue

@@ -0,0 +1,254 @@
+
+<!--
+新增功能
+@Author: linqian
+@Date: 2021-05-20 13:33
+-->
+<template>
+    <dg-row :gutter="10" class="func-wapper">
+        <dg-col :span="10">
+            <dg-card shadow="never" is-more>
+                <template slot="header">
+                    <div class="func-wapper__title">
+                        <span>功能资源信息</span>
+                        <dg-button type="primary" icon="el-icon-circle-plus-outline" @click="handleAddSource"
+                            >新增根功能</dg-button
+                        >
+                    </div>
+                </template>
+                <menu-tree
+                    :isNeedRightMenu="true"
+                    apiName="menuTree"
+                    :reportForm="{ appId: app.id }"
+                    @handleGetNode="handleGetNode"
+                    @selectOperaOptions="selectOperaOptions"
+                    :key="timer"
+                    ref="myMenuTree"
+                ></menu-tree>
+            </dg-card>
+        </dg-col>
+        <dg-col :span="14">
+            <dg-card shadow="never" header="功能详细信息">
+                <div v-show="isShowForm">
+                    <el-form ref="form" label-position="right" :model="form" label-width="150px" :rules="rules">
+                        <el-form-item label="功能编号:" prop="code">
+                            <el-input v-model="form.code" placeholder=""></el-input>
+                        </el-form-item>
+                        <el-form-item label="功能名称:" prop="name">
+                            <el-input v-model="form.name" placeholder=""></el-input>
+                        </el-form-item>
+                        <el-form-item label="上级功能" prop="parentId">
+                            <dg-tree-drop
+                                ref="tree"
+                                icon-class="el-icon-folder-opened"
+                                icon-leaf="el-icon-document"
+                                v-model="form.parentId"
+                                placeholder="请选择"
+                                :props="parentTreeProps"
+                                :data="treeData"
+                                clearable
+                                filterable
+                                style="width: 100%"
+                            >
+                            </dg-tree-drop
+                        ></el-form-item>
+                        <el-form-item label="所属应用:" prop="appName">
+                            <el-input v-model="form.appName" placeholder="" disabled></el-input>
+                        </el-form-item>
+                        <el-form-item label="设计安全隐私类别:" prop="designSecureType">
+                            <dg-select
+                                v-model="form.designSecureType"
+                                placeholder=""
+                                enum="SecurityPrivacyEnum"
+                            ></dg-select>
+                        </el-form-item>
+                        <el-form-item label="在用状态:" prop="isActive">
+                            <dg-select enum="AppFunStatusEnum" v-model="form.isActive"></dg-select>
+                        </el-form-item>
+                        <el-form-item label="功能使用场景代码:" prop="functionUsageScenarios">
+                            <el-input v-model="form.functionUsageScenarios" placeholder=""></el-input>
+                        </el-form-item>
+                        <el-form-item label="功能说明:" prop="remark">
+                            <el-input v-model="form.remark" placeholder="" type="textarea" :rows="3"></el-input>
+                        </el-form-item>
+                    </el-form>
+                    <div class="func-wapper__btn-save">
+                        <dg-button type="primary" @click="handleSave">保存</dg-button>
+                    </div>
+                </div>
+            </dg-card>
+        </dg-col>
+    </dg-row>
+</template>
+
+<script>
+import MenuTree from "@/pages/common/menu-tree";
+import * as commonApi from "@/api/common";
+import * as Api from "@/api/func-resource";
+export default {
+    name: "",
+    components: { MenuTree },
+    // 接收父节点的参数
+    props: {
+        app: Object
+    },
+    watch: {
+        treeData(newV, OldV) {
+            if (newV && newV.length > 0) {
+                this.isShowForm = true;
+            } else {
+                this.isShowForm = false;
+            }
+        }
+    },
+    data() {
+        return {
+            isShowForm: false,
+            treeData: [],
+            parentTreeProps: {
+                value: "code",
+                label: "name",
+                children: "children"
+            },
+            form: {
+                appId: this.app.id,
+                appName: this.app.applyName,
+                code: "",
+                designSecureType: "",
+                functionUsageScenarios: "",
+                isActive: "",
+                name: "",
+                parentId: "",
+                remark: ""
+            },
+            rules: {
+                code: [{ required: true, message: "请输入功能编号", trigger: "change" }],
+                name: [{ required: true, message: "请输入功能名称", trigger: "change" }],
+                isActive: [{ required: true, message: "请选择在用状态", trigger: "change" }],
+                appName: [{ required: true, message: "请选择应用", trigger: "change" }]
+            },
+            timer: null,
+            type: null
+        };
+    },
+    // 方法
+    methods: {
+        changeRuleTrigger(type) {
+            for (const key in this.rules) {
+                this.rules[key][0].trigger = type;
+            }
+        },
+        handleGetNode(data) {
+            Api.detail(data.id).then((res) => {
+                this.form = res.data.content;
+            });
+        },
+        selectOperaOptions({ type, nodedata, node }) {
+            this.type = type;
+            if (type === "add") {
+                this.changeRuleTrigger("blur");
+                this.form = {
+                    appId: this.app.id,
+                    appName: this.app.applyName,
+                    code: "",
+                    designSecureType: "",
+                    functionUsageScenarios: "",
+                    isActive: "",
+                    name: "",
+                    parentId: nodedata.code || "",
+                    remark: ""
+                };
+            } else if (type === "delete") {
+                this.handleDel(nodedata.id);
+            }
+        },
+        // 新增
+        handleAddSource() {
+            this.isShowForm = true;
+            this.changeRuleTrigger("blur");
+            this.form = {
+                appId: this.app.id,
+                appName: this.app.applyName,
+                code: "",
+                designSecureType: "",
+                functionUsageScenarios: "",
+                isActive: "",
+                name: "",
+                parentId: "",
+                remark: ""
+            };
+        },
+        /**
+         * 获取功能树
+         */
+        getFuncTree() {
+            commonApi.menuTree({ appId: this.app.id }).then((res) => {
+                this.treeData = res;
+            });
+        },
+        // 刪除节点
+        handleDel(id) {
+            this.$confirm("删除功能将会删除该功能及其下级资源,确认删除?", "确认信息", {}).then(() => {
+                Api.del(id)
+                    .then((res) => {
+                        this.$refs.myMenuTree.remove();
+                        this.timer = new Date().getTime(); // 刷新树组件
+                        this.getFuncTree();
+                    })
+                    .catch((err) => {
+                        this.$message.error("删除失败!");
+                    });
+            });
+        },
+        handleSave() {
+            // type=null 修改   type=add 新增  type=addRootSource新增根资源
+            this.changeRuleTrigger("change");
+            return new Promise((resolve) => {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        const { code, parentId } = this.form;
+                        if (code == parentId) {
+                            that.$message.error("上级资源不能是自己!");
+                            return;
+                        }
+
+                        const api = this.form.id ? "update" : "save";
+                        debugger;
+                        Api[api](this.form)
+                            .then((res) => {
+                                this.$message.success("保存成功!");
+                                this.timer = new Date().getTime(); // 刷新树组件
+                                this.getFuncTree();
+                                this.$refs.form.resetFields();
+                                resolve("成功");
+                            })
+                            .catch((error) => {
+                                this.$message.error(error);
+                            });
+                    }
+                });
+            });
+        }
+    },
+    created() {
+        this.getFuncTree();
+    }
+};
+</script>
+
+<style lang="scss" scope>
+.func-wapper {
+    .warning-text {
+        margin-top: 60px;
+        color: #3598dc;
+    }
+    &__title {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
+    &__btn-save {
+        text-align: right;
+    }
+}
+</style>

+ 20 - 6
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/app-list.vue

@@ -15,7 +15,7 @@
             </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> -->
+                <dg-button type="primary" @click="handleReset" icon="el-icon-refresh-right">重置</dg-button>
             </el-form-item>
         </el-form>
 
@@ -23,7 +23,7 @@
         <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="handleSync">同步</dg-button> -->
+            <dg-button type="primary" icon="el-icon-refresh" @click="handleSync">同步</dg-button>
         </dg-row>
         <!-- 表格 -->
         <dg-table
@@ -68,6 +68,7 @@
 import importFile from "@/pages/common/import";
 import addAppForm from "./add-app-form";
 import { appRestApi } from "@/api/application";
+import addFuncForm2 from "./add-func-form2";
 
 export default {
     components: {},
@@ -87,7 +88,8 @@ export default {
             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 }
+                { icon: "el-icon-delete", tooltip: "删除", on: this.handleDelete },
+                { icon: "el-icon-menu", tooltip: "功能配置", on: this.handleSetFunc }
             ],
             rowStyle: {
                 cursor: "pointer"
@@ -122,6 +124,21 @@ export default {
                 });
             });
         },
+        /**
+         * 功能配置
+         */
+        handleSetFunc(app, e) {
+            e.stopPropagation();
+            const layer = this.$dgLayer({
+                title: "功能配置",
+                content: addFuncForm2,
+                props: {
+                    app
+                },
+                noneBtnField: true,
+                area: ["1200px", "750px"]
+            });
+        },
         /**
          * 查询
          */
@@ -151,9 +168,6 @@ export default {
                 },
                 on: {
                     success(params) {
-                        layer.close(layer.dialogIndex);
-                    },
-                    close() {
                         vm.handleSearch();
                         layer.close(layer.dialogIndex);
                     }

+ 3 - 3
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/index.vue

@@ -6,12 +6,12 @@
 <template>
     <div>
         <dg-row :gutter="10">
-            <dg-col :span="12">
+            <dg-col :span="24">
                 <app-list @rowClick="handleAppRowClick"></app-list>
             </dg-col>
-            <dg-col :span="12">
+            <!-- <dg-col :span="12">
                 <func-list ref="funcList" :appRow="app" :key="key"></func-list>
-            </dg-col>
+            </dg-col> -->
         </dg-row>
     </div>
 </template>

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

@@ -17,7 +17,7 @@
                 </el-form-item>
                 <el-form-item label="是否自用服务:" prop="mustSelf">
                     <dg-select v-model="form.mustSelf" enum="BooleanEnum" v-if="!isDetail"></dg-select>
-                    <div v-else  v-translate="{ enum: 'BooleanEnum' }">{{ form.mustSelf }}</div>
+                    <div v-else v-translate="{ enum: 'BooleanEnum' }">{{ form.mustSelf }}</div>
                 </el-form-item>
             </dg-col>
             <dg-col :span="12">
@@ -46,7 +46,7 @@
             </dg-col>
             <dg-col :span="24">
                 <el-form-item label="服务提供应用系统名称:" prop="appName">
-                    <el-input v-model="form.appName" placeholder="" v-if="!isDetail"></el-input>
+                    <dg-select :data="apps" v-model="form.appCode" placeholder="" value-name="applyCode" label-name="applyName" v-if="!isDetail"></dg-select>
                     <span v-else>{{ form.appName }}</span>
                 </el-form-item>
             </dg-col>
@@ -68,6 +68,8 @@
 
 <script>
 import * as Api from "@/api/ser-resource-manage";
+import { allApps } from "@/api/application"
+
 export default {
     props: {
         id: String,
@@ -80,7 +82,7 @@ export default {
     data() {
         return {
             form: {
-                appCode: "Y-120000000000-0047",
+                appCode: "",
                 appName: "",
                 mustSelf: "1",
                 remark: "",
@@ -96,8 +98,9 @@ export default {
                 serviceType: [{ required: true, message: "请输入服务类型", trigger: "change" }],
                 serviceProvideWay: [{ required: true, message: "请选择服务提供方式", trigger: "change" }],
                 serviceUrl: [{ required: true, message: "请输入服务访问地址", trigger: "change" }],
-                appName: [{ required: true, message: "请输入服务提供应用系统名称", trigger: "change" }]
-            }
+                appCode: [{ required: true, message: "请输入服务提供应用系统名称", trigger: "change" }]
+            },
+            apps: []
         };
     },
     computed: {},
@@ -126,9 +129,22 @@ export default {
             Api.detail(this.id).then((res) => {
                 this.form = res.data.content;
             });
+        },
+
+        /**
+         * 获取应用列表
+         */
+        getAllApps() {
+            return new Promise((resolve) => {
+                allApps("").then((res) => {
+                    this.apps = res;
+                    resolve(res);
+                });
+            });
         }
     },
-    created() {
+    async created() {
+        await this.getAllApps();
         if (this.id) {
             if (this.isDetail) {
                 this.rules = {};

+ 7 - 3
src/pages/data-auth-module/auth-object-manage/service-resource-manage/index.vue

@@ -84,7 +84,8 @@ export default {
                 { icon: "el-icon-document", tooltip: "详情", on: this.handleViewDetail },
                 { icon: "el-icon-delete", tooltip: "删除", on: this.handleDelete }
             ],
-            tableUrl: Api.tableUrl
+            tableUrl: Api.tableUrl,
+            apps: []
         };
     },
     computed: {},
@@ -141,6 +142,7 @@ export default {
                 },
                 on: {
                     success(params) {
+                        vm.handleSearch();
                         layer.close(layer.dialogIndex);
                     }
                 },
@@ -183,9 +185,11 @@ export default {
         /**
          * 同步
          */
-        handleSync() {}
+        handleSync() {},
+
+    },
+    created() {
     },
-    created() {},
     mounted() {}
 };
 </script>

+ 76 - 13
src/pages/data-auth-module/property-management/DataConfig.js

@@ -1,7 +1,7 @@
 /*
  * @Author: Liugh
  * @Date: 2021-05-17 15:38:23
- * @LastEditTime: 2021-05-18 14:43:49
+ * @LastEditTime: 2021-05-19 17:15:26
  * @LastEditors: Do not edit
  * @Description:
  */
@@ -43,27 +43,81 @@ const UserTableData = [
 const ApplicationTableData = [
     {
         label: "应用系统名称",
-        prop: ""
+        prop: "applyName"
     },
     {
         label: "应用系统编号",
-        prop: ""
+        prop: "applyCode"
     },
     {
         label: "应用英文名称",
-        prop: ""
+        prop: "appEnglishName"
     },
     {
         label: "应用在用标识",
-        prop: ""
+        prop: "applyStatus",
+        code: "DM_APPLY_STATUS"
     },
     {
         label: "上线日期",
-        prop: ""
+        prop: "lineTime",
+        timestamp: "YYYY-MM-DD"
     },
     {
         label: "应用系统运维单位名称",
         width: "180px",
+        prop: "appOpsDepName"
+    }
+];
+const cardPersonnelList = [
+    {
+        label: "姓名",
+        prop: ""
+    },
+    {
+        label: "身份证号码",
+        prop: ""
+    },
+    {
+        label: "所属单位",
+        prop: ""
+    }
+];
+const cardAddPersonnelList = [
+    {
+        label: "姓名",
+        prop: ""
+    },
+    {
+        label: "身份证号码",
+        prop: ""
+    },
+];
+const cardApplicationList = [
+    {
+        label: "机构名称",
+        prop: ""
+    },
+    {
+        label: "机构代码",
+        prop: ""
+    },
+    {
+        label: "行政区划",
+        prop: ""
+    }
+];
+const cardAgencylist = [
+    {
+        label: "应用系统名称",
+        prop: ""
+    },
+    {
+        label: "应用系统代码",
+        prop: ""
+    },
+    {
+        label: "系统在用标识",
         prop: ""
     }
 ];
@@ -102,14 +156,14 @@ const typeData = {
 };
 const institutionField = [
     { label: "上级行政机构", value: "upGovName" },
-    { label: "机构类型", value: "orgType" },
+    { label: "机构类型", value: "orgType", enum: "OrgKindEnum" },
     { label: "机构名称", value: "fullName" },
     { label: "行政区划", value: "areaCode" },
     { label: "机构代码", value: "orgCode" },
-    { label: "机构类别", value: "unitClass" },
-    { label: "单位层级", value: "orgLevel" },
-    { label: "单位级别", value: "orgRank" },
-    { label: "单位类别", value: "orgKind" }
+    { label: "机构类别", value: "unitClass", code: "T_MD_ORGTYPE" },
+    { label: "单位层级", value: "orgLevel", code: "T_MD_ORG_LEVEL" },
+    { label: "单位级别", value: "orgRank", code: "T_MD_ORG_RANK" },
+    { label: "单位类别", value: "orgKind", code: "T_MD_UNIT_CLASS" }
 ];
 const applicationField = [
     { label: "应用系统名称", value: "applyName" },
@@ -123,5 +177,14 @@ const applicationField = [
     { label: "应用系统管理单位名称", value: "managerOrgName" },
     { label: "应用系统说明", value: "managerDescribe" }
 ];
-
-export { UserTableData, typeData, institutionField, ApplicationTableData, applicationField };
+export {
+    UserTableData,
+    typeData,
+    institutionField,
+    ApplicationTableData,
+    applicationField,
+    cardPersonnelList,
+    cardApplicationList,
+    cardAgencylist,
+    cardAddPersonnelList,
+};

+ 27 - 7
src/pages/data-auth-module/property-management/application-management/application-properties.vue

@@ -8,21 +8,26 @@
 -->
 <template>
     <main class="application-properties">
-        <el-form ref="ruleForm" inline :rules="rules" :model="form">
+        <el-form ref="ruleForm" inline :model="form">
             <el-form-item label="应用系统名称">
-                <el-input v-model="form.name" placeholder="请输入应用系统名称"></el-input>
+                <el-input v-model="form.applyName.value" placeholder="请输入应用系统名称" clearable></el-input>
             </el-form-item>
             <el-form-item label="应用在用标识">
                 <dg-select
-                    v-model="form.userType"
+                    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.name" placeholder="请输入应用系统事权单位代码"></el-input>
+                <el-input
+                    v-model="form.managerOrgCode.value"
+                    placeholder="请输入应用系统事权单位代码"
+                    clearable
+                ></el-input>
             </el-form-item>
             <el-form-item>
                 <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
@@ -66,7 +71,20 @@ export default {
         // 组件内部参数
         return {
             // 参数名称及默认值
-            form: {},
+            form: {
+                applyName: {
+                    value: "",
+                    op: "like"
+                },
+                applyStatus: {
+                    value: "",
+                    op: "="
+                },
+                managerOrgCode: {
+                    value: "",
+                    op: "like"
+                }
+            },
             ApplicationTableData,
             tableUrl: appRestApi.table
         };
@@ -78,7 +96,9 @@ export default {
         /**
          * @description:表单查询方法
          */
-        handleSearch() {},
+        handleSearch() {
+            this.$refs.myTable.handleSearchClick();
+        },
         /**
          * @description:导入方法
          */
@@ -129,7 +149,7 @@ export default {
                         layer.close(layer.dialogIndex);
                     }
                 },
-                area: ["900px", "660px"]
+                area: ["700px", "450px"]
             });
         }
     },

+ 11 - 2
src/pages/data-auth-module/property-management/index.scss

@@ -1,13 +1,14 @@
 /*
  * @Author: Liugh
  * @Date: 2021-05-17 15:18:43
- * @LastEditTime: 2021-05-18 11:40:29
+ * @LastEditTime: 2021-05-19 15:50:33
  * @LastEditors: Do not edit
  * @Description: 
  */
 .user-attributes,
 .institutional-attributes,
-.application-properties {
+.application-properties,
+.subject-property /deep/{
     .buttonGroup {
         margin-bottom: 20px;
     }
@@ -26,3 +27,11 @@
         margin-top: 2.5rem;
     }
 }
+.subject-property /deep/ {
+    .box-card {
+        .el-card__header {
+            display: block;
+        }
+        height: calc(100vh - 12rem);
+    }
+}

+ 11 - 8
src/pages/data-auth-module/property-management/institutional-attributes.vue

@@ -16,12 +16,13 @@
 
         <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> -->
+            <dg-button type="primary" @click="handleSynchro" icon="el-icon-refresh">同步</dg-button>
         </div>
 
         <dg-row :gutter="20">
             <dg-col :span="5">
                 <tree
+                    :key="key"
                     ref="tree"
                     class="u-pm__left"
                     title="机构列表"
@@ -33,10 +34,14 @@
             <dg-col :span="19">
                 <h4 class="dg-words-title-second">机构管理</h4>
                 <el-form class="institutional-info" ref="form" :model="formInfo" label-suffix=":" label-width="120px">
-                    <el-row>
+                    <el-row v-if="formInfo.id">
                         <el-col :span="12" v-for="(item, index) in institutionField" :key="index">
                             <el-form-item :label="item.label">
-                                <span>{{ formInfo[item.value] }}</span>
+                                <div v-if="item.code" v-translate="{ code: item.code }">{{ formInfo[item.value] }}</div>
+                                <div v-else-if="item.enum" v-translate="{ enum: item.enum }">
+                                    {{ formInfo[item.value] }}
+                                </div>
+                                <span v-else>{{ formInfo[item.value] }}</span>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -60,7 +65,8 @@ export default {
             institutionField,
             formInfo: {},
             keyword: "",
-            currentId: ""
+            currentId: "",
+            key: 0
         };
     },
     computed: {}, // 计算属性
@@ -81,12 +87,9 @@ export default {
                 },
                 on: {
                     success(params) {
+                        vm.key++;
                         layer.close(layer.dialogIndex);
                     },
-                    close() {
-                        vm.handleSearch();
-                        layer.close(layer.dialogIndex);
-                    }
                 },
                 cancel: function (index, layero) {
                     // 关闭对应弹窗的ID

+ 85 - 0
src/pages/data-auth-module/property-management/subject-management/add-dialog.vue

@@ -0,0 +1,85 @@
+<!--
+ * @Author: Liugh
+ * @Date: 2021-05-19 16:09:07
+ * @LastEditTime: 2021-05-19 17:08:22
+ * @LastEditors: Do not edit
+ * @FilePath: \auth-web\src\pages\data-auth-module\property-management\subject-management\add-dialog.vue
+ * @Description: 
+-->
+
+<template>
+    <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"
+                        class="u-pm__left"
+                        treeHeight="calc(100vh - 19rem)"
+                        :search="true"
+                        paddingRight="15px"
+                        @handleGetNode="handleGetNode"
+                        @submitRootNode="handleGetNode"
+                    ></org-tree>
+                </dg-card>
+            </dg-col>
+            <!-- 权限设置 -->
+            <dg-col :span="16">
+                <Table
+                    ref="table"
+                    :url="tableUrl"
+                    :headerData="cardAddPersonnelList"
+                    :condition="reportForm"
+                    :lazyLoad="true"
+                >
+                </Table>
+            </dg-col>
+        </dg-row>
+    </main>
+</template>
+
+<script>
+import * as dynamicManageApi from "@/api/dynamic-manage";
+import { cardAddPersonnelList, cardAgencylist } from "../DataConfig";
+import orgTree from "@/pages/common/tree";
+import Table from "@/pages/common/table";
+export default {
+    name: "add-dialog", // 组件名称
+    props: {
+        // 接收父组件的数据
+    },
+    data() {
+        // 组件内部参数
+        return {
+            // 参数名称及默认值
+            cardAddPersonnelList,
+            cardAgencylist,
+            tableUrl: dynamicManageApi.tableUrl,
+            reportForm: {}
+        };
+    },
+    computed: {}, // 计算属性
+    watch: {}, // 侦听器(扩展的计算属性)
+    components: { orgTree, Table }, // 注册局部组件
+    methods: {
+        /**
+         * @description: 获取机构节点
+         * @param {*} node
+         */
+        handleGetNode(node) {
+            this.subId = node.code;
+            this.key++;
+        }
+    }, // 内部方法
+    beforeCreate() {}, // 组件创建前
+    created() {}, // 组件创建完成后
+    beforeMount() {}, // 组件挂载前
+    mounted() {}, // 组件挂载完成后
+    beforeUpdate() {}, // 组件更新前
+    updated() {}, // 组件挂载完成后
+    beforeDestroy() {}, // 组件销毁前
+    destroyed() {} // 组件销毁完成后
+};
+</script>
+<style lang="scss" scoped></style>

+ 136 - 0
src/pages/data-auth-module/property-management/subject-management/agency-list.vue

@@ -0,0 +1,136 @@
+<!--
+ * @Author: Liugh
+ * @Date: 2021-05-19 15:48:26
+ * @LastEditTime: 2021-05-19 16:46:22
+ * @LastEditors: Do not edit
+ * @FilePath: \auth-web\src\pages\data-auth-module\property-management\subject-management\agency-list.vue
+ * @Description: 
+-->
+<template>
+    <dg-card class="box-card" header="机构列表">
+        <el-form ref="form" :model="cardForm" label-suffix=":" inline>
+            <el-form-item label="机构名称">
+                <el-input clearable placeholder="请输入机构名称" v-model="cardForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="机构代码">
+                <dg-tree-select
+                    v-model="cardForm.institution"
+                    placeholder="请选择机构代码"
+                    :data="options"
+                    clearable
+                    filterable
+                    multiple
+                ></dg-tree-select>
+            </el-form-item>
+            <el-form-item>
+                <dg-button type="primary" icon="el-icon-search" @click="doSearchPersion">查询</dg-button>
+                <dg-button type="primary" icon="el-icon-plus">添加</dg-button>
+            </el-form-item>
+        </el-form>
+        <Table
+            ref="table"
+            :url="tableUrl"
+            :headerData="cardAgencylist"
+            :condition="reportForm"
+            :lazyLoad="true"
+            @handleRowClick="handleRowClick"
+        >
+        </Table>
+    </dg-card>
+</template>
+
+<script>
+import Table from "@/pages/common/table";
+import * as dynamicManageApi from "@/api/dynamic-manage";
+import { cardAgencylist } from "../DataConfig";
+export default {
+    name: "personnelList", // 组件名称
+    props: {
+        // 接收父组件的数据
+    },
+    data() {
+        // 组件内部参数
+        return {
+            // 参数名称及默认值
+            cardAgencylist,
+            tableUrl: dynamicManageApi.tableUrl,
+            reportForm: {},
+            cardForm: {},
+            options: [
+                {
+                    id: "fruits",
+                    label: "Fruits",
+                    children: [
+                        {
+                            id: "apple",
+                            label: "Apple",
+                            isNew: true
+                        },
+                        {
+                            id: "grapes",
+                            label: "Grapes",
+                            disabled: true
+                        },
+                        {
+                            id: "pear",
+                            label: "Pear"
+                        },
+                        {
+                            id: "strawberry",
+                            label: "Strawberry 🍓"
+                        },
+                        {
+                            id: "watermelon",
+                            label: "Watermelon 🍉"
+                        }
+                    ]
+                },
+                {
+                    id: "vegetables",
+                    label: "Vegetables",
+                    children: [
+                        {
+                            id: "corn",
+                            label: "Corn 🌽"
+                        },
+                        {
+                            id: "carrot",
+                            label: "Carrot 🥕"
+                        },
+                        {
+                            id: "eggplant",
+                            label: "Eggplant 🍆"
+                        },
+                        {
+                            id: "tomato",
+                            label: "Tomato 🍅"
+                        }
+                    ]
+                }
+            ]
+        };
+    },
+    computed: {}, // 计算属性
+    watch: {}, // 侦听器(扩展的计算属性)
+    components: { Table }, // 注册局部组件
+    methods: {
+        /**
+         * @description: 查询
+         */
+        doSearchPersion() {},
+        /**
+         * @description: 单击表格行
+         */
+        handleRowClick() {}
+    }, // 内部方法
+    beforeCreate() {}, // 组件创建前
+    created() {}, // 组件创建完成后
+    beforeMount() {}, // 组件挂载前
+    mounted() {}, // 组件挂载完成后
+    beforeUpdate() {}, // 组件更新前
+    updated() {}, // 组件挂载完成后
+    beforeDestroy() {}, // 组件销毁前
+    destroyed() {} // 组件销毁完成后
+};
+</script>
+<style lang="scss" scoped></style>

+ 81 - 0
src/pages/data-auth-module/property-management/subject-management/application-list.vue

@@ -0,0 +1,81 @@
+<!--
+ * @Author: Liugh
+ * @Date: 2021-05-19 15:48:57
+ * @LastEditTime: 2021-05-19 16:19:12
+ * @LastEditors: Do not edit
+ * @FilePath: \auth-web\src\pages\data-auth-module\property-management\subject-management\application-list.vue
+ * @Description: 
+-->
+<template>
+    <dg-card class="box-card" header="应用列表">
+        <el-form ref="form" :model="cardForm" label-suffix=":" inline>
+            <el-form-item label="应用系统名称">
+                <el-input clearable placeholder="请输入应用系统名称" v-model="cardForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="系统在用标识">
+                <el-select v-model="cardForm.userType" placeholder="请选择应用在用标识" style="width:13rem">
+                    <el-option label="全部" value="all"></el-option>
+                    <el-option label="启用" value="1"></el-option>
+                    <el-option label="停用" value="0"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item>
+                <dg-button type="primary" icon="el-icon-search" @click="doSearchPersion">查询</dg-button>
+                <dg-button type="primary" icon="el-icon-plus">添加</dg-button>
+            </el-form-item>
+        </el-form>
+        <Table
+            ref="table"
+            :url="tableUrl"
+            :headerData="cardApplicationList"
+            :condition="reportForm"
+            :lazyLoad="true"
+            @handleRowClick="handleRowClick"
+        >
+        </Table>
+    </dg-card>
+</template>
+
+<script>
+import Table from "@/pages/common/table";
+import * as dynamicManageApi from "@/api/dynamic-manage";
+import { cardApplicationList } from "../DataConfig";
+export default {
+    name: "personnelList", // 组件名称
+    props: {
+        // 接收父组件的数据
+    },
+    data() {
+        // 组件内部参数
+        return {
+            // 参数名称及默认值
+            cardApplicationList,
+            tableUrl: dynamicManageApi.tableUrl,
+            reportForm: {},
+            cardForm: {}
+        };
+    },
+    computed: {}, // 计算属性
+    watch: {}, // 侦听器(扩展的计算属性)
+    components: { Table }, // 注册局部组件
+    methods: {
+        /**
+         * @description: 查询
+         */
+        doSearchPersion() {},
+        /**
+         * @description: 单击表格行
+         */
+        handleRowClick() {}
+    }, // 内部方法
+    beforeCreate() {}, // 组件创建前
+    created() {}, // 组件创建完成后
+    beforeMount() {}, // 组件挂载前
+    mounted() {}, // 组件挂载完成后
+    beforeUpdate() {}, // 组件更新前
+    updated() {}, // 组件挂载完成后
+    beforeDestroy() {}, // 组件销毁前
+    destroyed() {} // 组件销毁完成后
+};
+</script>
+<style lang="scss" scoped></style>

+ 159 - 0
src/pages/data-auth-module/property-management/subject-management/personnel-list.vue

@@ -0,0 +1,159 @@
+<!--
+ * @Author: Liugh
+ * @Date: 2021-05-19 15:43:35
+ * @LastEditTime: 2021-05-19 16:36:14
+ * @LastEditors: Do not edit
+ * @FilePath: \auth-web\src\pages\data-auth-module\property-management\subject-management\personnel-list.vue
+ * @Description: 
+-->
+<template>
+    <dg-card class="box-card" header="人员列表">
+        <el-form ref="form" :model="cardForm" label-suffix=":" inline>
+            <el-form-item label="姓名">
+                <el-input clearable placeholder="请输入姓名" v-model="cardForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="身份证号码">
+                <el-input clearable placeholder="请输入身份证号码" v-model="cardForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="所属单位">
+                <dg-tree-select
+                    v-model="cardForm.institution"
+                    placeholder="请选择所属单位"
+                    :data="options"
+                    clearable
+                    filterable
+                    multiple
+                ></dg-tree-select>
+            </el-form-item>
+            <el-form-item>
+                <dg-button type="primary" icon="el-icon-search" @click="doSearchPersion">查询</dg-button>
+                <dg-button type="primary" icon="el-icon-plus" @click="add">添加</dg-button>
+            </el-form-item>
+        </el-form>
+        <Table
+            ref="table"
+            :url="tableUrl"
+            :headerData="cardPersonnelList"
+            :condition="reportForm"
+            :lazyLoad="true"
+            @handleRowClick="handleRowClick"
+        >
+        </Table>
+    </dg-card>
+</template>
+
+<script>
+import Table from "@/pages/common/table";
+import * as dynamicManageApi from "@/api/dynamic-manage";
+import { cardPersonnelList } from "../DataConfig";
+import addDialog from "./add-dialog";
+const editorArea = ["900px", "660px"];
+export default {
+    name: "personnelList", // 组件名称
+    props: {
+        // 接收父组件的数据
+    },
+    data() {
+        // 组件内部参数
+        return {
+            // 参数名称及默认值
+            cardPersonnelList,
+            tableUrl: dynamicManageApi.tableUrl,
+            reportForm: {},
+            cardForm: {},
+            options: [
+                {
+                    id: "fruits",
+                    label: "Fruits",
+                    children: [
+                        {
+                            id: "apple",
+                            label: "Apple",
+                            isNew: true
+                        },
+                        {
+                            id: "grapes",
+                            label: "Grapes",
+                            disabled: true
+                        },
+                        {
+                            id: "pear",
+                            label: "Pear"
+                        },
+                        {
+                            id: "strawberry",
+                            label: "Strawberry 🍓"
+                        },
+                        {
+                            id: "watermelon",
+                            label: "Watermelon 🍉"
+                        }
+                    ]
+                },
+                {
+                    id: "vegetables",
+                    label: "Vegetables",
+                    children: [
+                        {
+                            id: "corn",
+                            label: "Corn 🌽"
+                        },
+                        {
+                            id: "carrot",
+                            label: "Carrot 🥕"
+                        },
+                        {
+                            id: "eggplant",
+                            label: "Eggplant 🍆"
+                        },
+                        {
+                            id: "tomato",
+                            label: "Tomato 🍅"
+                        }
+                    ]
+                }
+            ]
+        };
+    },
+    computed: {}, // 计算属性
+    watch: {}, // 侦听器(扩展的计算属性)
+    components: { Table }, // 注册局部组件
+    methods: {
+        /**
+         * @description: 查询
+         */
+        doSearchPersion() {},
+        /**
+         * @description: 单击表格行
+         */
+        handleRowClick() {},
+        /**
+         * @description: 添加
+         */
+
+        add() {
+            const layer = this.$dgLayer({
+                title: "详情",
+                shade: [0.4, "#FFF"],
+                content: addDialog,
+                props: {},
+                on: {
+                    success() {
+                        layer.close(layer.dialogIndex);
+                    }
+                },
+                area: editorArea
+            });
+        }
+    }, // 内部方法
+    beforeCreate() {}, // 组件创建前
+    created() {}, // 组件创建完成后
+    beforeMount() {}, // 组件挂载前
+    mounted() {}, // 组件挂载完成后
+    beforeUpdate() {}, // 组件更新前
+    updated() {}, // 组件挂载完成后
+    beforeDestroy() {}, // 组件销毁前
+    destroyed() {} // 组件销毁完成后
+};
+</script>
+<style lang="scss" scoped></style>

+ 112 - 0
src/pages/data-auth-module/property-management/subject-management/subject-property.vue

@@ -0,0 +1,112 @@
+<!--
+ * @Author: Liugh
+ * @Date: 2021-05-17 14:54:08
+ * @LastEditTime: 2021-05-19 16:20:59
+ * @LastEditors: Do not edit
+ * @FilePath: \auth-web\src\pages\data-auth-module\property-management\subject-management\subject-property.vue
+ * @Description: 
+-->
+
+<template>
+    <main class="subject-property">
+        <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="6">
+                <dg-card class="box-card" header="属性详情">
+                    <el-form ref="ruleForm" :rules="rules" :model="form" label-width="80px">
+                        <el-form-item label="属性类别">
+                            <el-input v-model="form.name" placeholder="请输入属性类别"></el-input>
+                        </el-form-item>
+                        <el-form-item label="属性名称">
+                            <el-input v-model="form.name" placeholder="请输入属性名称"></el-input>
+                        </el-form-item>
+                        <el-form-item label="属性值">
+                            <el-input v-model="form.idCard" placeholder="请输入属性值"></el-input>
+                        </el-form-item>
+                        <el-form-item label="说明">
+                            <el-input v-model="form.idCard" type="" placeholder="请输入说明"></el-input>
+                        </el-form-item>
+                    </el-form>
+                </dg-card>
+            </dg-col>
+            <dg-col :span="13">
+                <component :is="compoentValue"></component>
+            </dg-col>
+        </dg-row>
+    </main>
+</template>
+
+<script>
+import Tree from "@/pages/common/tree";
+import personnelList from "./personnel-list";
+import agencyList from "./agency-list";
+import applicationList from "./application-list";
+export default {
+    name: "subject-property", // 组件名称
+    props: {
+        // 接收父组件的数据
+    },
+    data() {
+        // 组件内部参数
+        return {
+            // 参数名称及默认值
+            compoentType: [],
+            compoentValue: "personnel-list",
+            form: {},
+            rules: {},
+            reportPersionForm: {
+                applyName: { value: "", op: "like" },
+                orgId: { value: "", op: "=" }
+            }
+        };
+    },
+    computed: {}, // 计算属性
+    watch: {}, // 侦听器(扩展的计算属性)
+    components: { Tree, personnelList, agencyList, applicationList }, // 注册局部组件
+    methods: {
+        /**
+         * @description:树方法
+         */
+        handleGetNode({ id }) {
+            const that = this;
+            const oldVal = that.reportPersionForm.orgId.value;
+            if (oldVal != id) {
+                that.reportPersionForm.orgId.value = id;
+                that.handleSearch();
+            }
+        },
+        /**
+         * @description: 默认查询跟节点
+         */
+        submitRootNode({ id, name }) {
+            const that = this;
+            this.$nextTick(() => {
+                that.handleGetNode({ id, name });
+            });
+        },
+        /**
+         * @description: 表单查询
+         */
+        handleSearch() {}
+    }, // 内部方法
+    beforeCreate() {}, // 组件创建前
+    created() {}, // 组件创建完成后
+    beforeMount() {}, // 组件挂载前
+    mounted() {}, // 组件挂载完成后
+    beforeUpdate() {}, // 组件更新前
+    updated() {}, // 组件挂载完成后
+    beforeDestroy() {}, // 组件销毁前
+    destroyed() {} // 组件销毁完成后
+};
+</script>
+<style lang="scss" scoped>
+@import "../index.scss";
+</style>

+ 0 - 7
src/pages/data-auth-module/property-management/subject-property.vue

@@ -1,7 +0,0 @@
-<!--
- * @Author: Liugh
- * @Date: 2021-05-17 14:54:08
- * @LastEditTime: 2021-05-17 14:54:08
- * @LastEditors: Do not edit
- * @Description: 
--->

+ 29 - 17
src/pages/data-auth-module/property-management/user-management/user-attributes.vue

@@ -20,27 +20,21 @@
             </el-form-item>
 
             <el-form-item label="所属机构">
-                <dg-tree-select
-                    v-model="form.institution"
-                    placeholder="请选择所属机构"
-                    :data="options"
-                    clearable
-                    filterable
-                    multiple
-                ></dg-tree-select>
+                <select-tree ref="selectTree" @submitTreeValue="getTreeValue" :key="key"></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>2021-04-08 12:00:00</span>
+                <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> -->
+            <dg-button type="primary" @click="handleSynchro" icon="el-icon-refresh">同步</dg-button>
         </div>
         <Table ref="myTable" :url="tableUrl" :headerData="UserTableData" :condition="form">
             <dg-table-column fixed="right" label="操作" align="center">
@@ -63,6 +57,7 @@ import { authUserTableUrl } from "@/api/data-auth";
 import baseApi from "@/api/jz-base";
 import detail from "./detail";
 import importFile from "@/pages/common/import";
+import selectTree from "@/pages/common/select-tree";
 export default {
     name: "user-attributes", // 组件名称
     props: {
@@ -93,12 +88,14 @@ export default {
             rules: {},
             options: [],
             UserTableData,
-            tableUrl: authUserTableUrl
+            tableUrl: authUserTableUrl,
+            LatestSyncTime: "",
+            key: 0
         };
     },
     computed: {}, // 计算属性
     watch: {}, // 侦听器(扩展的计算属性)
-    components: { Table }, // 注册局部组件
+    components: { Table, selectTree }, // 注册局部组件
     methods: {
         /**
          * @description:表单查询方法
@@ -106,10 +103,21 @@ export default {
         handleSearch() {
             this.$refs.myTable.handleSearchClick();
         },
+        /**
+         * 重置
+         */
+        handleReset() {
+            for (const key in this.form) {
+                this.form[key].value = "";
+            }
+            if (this.form.orgCode.value) {
+                this.key++;
+            }
+        },
         /**
          * @description:导入方法
          */
-          handleImport() {
+        handleImport() {
             const vm = this;
             const layer = this.$dgLayer({
                 title: "导入",
@@ -120,9 +128,6 @@ export default {
                 },
                 on: {
                     success(params) {
-                        layer.close(layer.dialogIndex);
-                    },
-                    close() {
                         vm.handleSearch();
                         layer.close(layer.dialogIndex);
                     }
@@ -156,8 +161,15 @@ export default {
                         layer.close(layer.dialogIndex);
                     }
                 },
-                area: ["900px", "660px"]
+                area: ["900px", "500px"]
             });
+        },
+        /**
+         * 接收机构树值
+         */
+
+        getTreeValue(val) {
+            this.form.orgCode.value = val;
         }
     },
     created() {

+ 14 - 6
src/router/modules/data-auth-module.js

@@ -28,13 +28,16 @@ const componentsRouter = [
             },
             {
                 path: "application-properties",
-                component: () => import("@/pages/data-auth-module/property-management/application-management/application-properties"),
+                component: () =>
+                    import(
+                        "@/pages/data-auth-module/property-management/application-management/application-properties"
+                    ),
                 name: "application-properties",
                 meta: { title: "应用属性管理", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"] }
             },
             {
                 path: "subject-property",
-                component: () => import("@/pages/data-auth-module/property-management/subject-property"),
+                component: () => import("@/pages/data-auth-module/property-management/subject-management/subject-property"),
                 name: "subject-property",
                 meta: { title: "主体属性类管理", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"] }
             }
@@ -51,25 +54,30 @@ const componentsRouter = [
                 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_SQKTGL_SJFJFLBM"]}
+                meta: { title: "数据分级分类表码", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"] }
             },
             {
                 path: "appfun-resource-manage",
                 component: () => import("@/pages/data-auth-module/auth-object-manage/appfun-resource-manage"),
                 name: "appfun-resource-manage",
-                meta: { title: "应用功能资源管理", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"], layout: "page"}
+                meta: {
+                    title: "应用功能资源管理",
+                    noCache: false,
+                    permission: ["QXGL_SQKTGL_SJFJFLBM"],
+                    layout: "page"
+                }
             },
             {
                 path: "service-resource-manage",
                 component: () => import("@/pages/data-auth-module/auth-object-manage/service-resource-manage"),
                 name: "service-resource-manage",
-                meta: { title: "服务资源管理", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"]}
+                meta: { title: "服务资源管理", noCache: false, permission: ["QXGL_SQKTGL_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_SQKTGL_SJFJFLBM"]}
+                meta: { title: "客体属性类管理", noCache: false, permission: ["QXGL_SQKTGL_SJFJFLBM"] }
             }
         ]
     },

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä