From 3f1a0f246e1de207b6764f7003af4715103a7d93 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 27 Jul 2021 10:58:57 +0800
Subject: [PATCH] 表格样式  主题默认蓝色

---
 vue.config.js                                |    1 
 src/views/resource/oss.vue                   |  760 ++++----
 src/views/securityGuard/securityGuard.vue    |    5 
 src/views/securityEquipment/gun.vue          |    3 
 src/views/trainingRegistration/index.vue     |    5 
 src/views/dispatch/dispatchChildoperable.vue |    7 
 src/store/modules/common.js                  |   10 
 src/views/workreport/data.js                 |  432 ++--
 src/views/resource/attach.vue                |    2 
 src/views/securityGuard/data.js              |  876 +++++-----
 src/views/system/dict.vue                    |  186 +-
 src/views/securityEquipment/car.vue          |    3 
 src/views/system/topmenu.vue                 |  629 +++---
 src/views/system/dept.vue                    |    2 
 src/views/securityUnit/index.vue             |    5 
 src/views/workreport/workreport.vue          |    6 
 src/views/recruitmentManagement/index.vue    |    2 
 src/views/securityEquipment/gun.js           |   11 
 src/views/system/menu.vue                    |  755 ++++----
 src/views/securityUnit/data.js               |   21 
 src/views/desk/notice.vue                    |    2 
 src/styles/element-ui.scss                   |   94 +
 src/views/authority/role.vue                 |    2 
 src/views/system/dictbiz.vue                 |  654 +++---
 src/views/dispatch/dispatch.vue              |    1 
 src/views/securityEquipment/equipments.vue   |    3 
 src/views/system/client.vue                  |  594 +++---
 27 files changed, 2,681 insertions(+), 2,390 deletions(-)

diff --git a/src/store/modules/common.js b/src/store/modules/common.js
index ec24a59..9b99ee9 100644
--- a/src/store/modules/common.js
+++ b/src/store/modules/common.js
@@ -8,13 +8,13 @@
 const common = {
 
   state: {
-    language: getStore({name: 'language'}) || 'zh',
+    language: getStore({ name: 'language' }) || 'zh',
     isCollapse: false,
     isFullScren: false,
     isMenu: true,
     isShade: false,
     screen: -1,
-    isLock: getStore({name: 'isLock'}) || false,
+    isLock: getStore({ name: 'isLock' }) || false,
     showTag: true,
     showDebug: true,
     showCollapse: true,
@@ -24,9 +24,9 @@
     showTheme: true,
     showMenu: true,
     showColor: true,
-    colorName: getStore({name: 'colorName'}) || '#409EFF',
-    themeName: getStore({name: 'themeName'}) || 'theme-default',
-    lockPasswd: getStore({name: 'lockPasswd'}) || '',
+    colorName: getStore({ name: 'colorName' }) || '#409EFF',
+    themeName: getStore({ name: 'themeName' }) || 'theme-bule',
+    lockPasswd: getStore({ name: 'lockPasswd' }) || '',
     website: website,
   },
   mutations: {
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index 54c3e92..a6bfed7 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -25,7 +25,6 @@
   display: none;
 }
 
-
 .el-message__icon,
 .el-message__content {
   display: inline-block;
@@ -49,12 +48,19 @@
   padding: 0 !important;
 }
 
-.el-dropdown-menu__item--divided:before, .el-menu, .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, .el-menu--horizontal > .el-submenu .el-submenu__title:hover {
+.el-dropdown-menu__item--divided:before,
+.el-menu,
+.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
+.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
+.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
   background-color: transparent;
 }
 
-
-.el-dropdown-menu__item--divided:before, .el-menu, .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, .el-menu--horizontal > .el-submenu .el-submenu__title:hover {
+.el-dropdown-menu__item--divided:before,
+.el-menu,
+.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
+.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
+.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
   background-color: transparent !important;
 }
 
@@ -69,3 +75,83 @@
 .el-divider--horizontal {
   margin: 12px 0 !important;
 }
+
+//表格斑马纹
+.el-table tr:nth-child(2n -1) {
+  // background-color: rgba($color: #000000, $alpha: 0.1) !important;
+}
+
+//顶部搜索栏
+.el-card.is-never-shadow.avue-crud__search {
+  position: absolute !important;
+  width: calc(100% - 220px) !important;
+  z-index: 500 !important;
+  border: none !important;
+  box-shadow: none !important;
+  height: 40px;
+}
+
+.desk .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 360px) !important;
+}
+.securityGuard .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 300px) !important;
+  left: 120px;
+}
+.securityUnit .el-card.is-never-shadow.avue-crud__search {
+  left: 200px;
+  width: calc(100% - 380px) !important;
+}
+.equipments .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px;
+}
+.dispatch .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px;
+}
+.dispatchChildoperable .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 280px) !important;
+  left: 90px;
+}
+.workreply .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px !important;
+}
+.recruitmentManagement .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px !important;
+}
+
+.hasButOne .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 300px) !important;
+  left: 120px !important;
+}
+.hasButTwo .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px !important;
+}
+.topmenu .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 390px) !important;
+  left: 220px !important;
+}
+.hasButThree .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 510px) !important;
+  left: 310px !important;
+}
+.avue-form {
+  position: relative;
+  top: -10px;
+}
+//顶部按钮栏
+.avue-crud__menu {
+  height: 60px;
+}
+//顶部按钮
+.avue-crud .avue-crud__left .el-button,
+.avue-crud .avue-crud__right .el-button,
+.avue-form .avue-crud__left .el-button,
+.avue-form .avue-crud__right .el-button {
+  position: relative;
+  top: 5px;
+}
diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue
index 9a9895c..a414b39 100644
--- a/src/views/authority/role.vue
+++ b/src/views/authority/role.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="hasButThree">
     <avue-crud
       :option="option"
       :table-loading="loading"
diff --git a/src/views/desk/notice.vue b/src/views/desk/notice.vue
index 573c6fb..0a57ea6 100644
--- a/src/views/desk/notice.vue
+++ b/src/views/desk/notice.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="desk">
     <avue-crud
       :option="option"
       :table-loading="loading"
diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 68e5295..e8f66ec 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -112,6 +112,7 @@
       option: {
         tip: false,
         // card: true,
+        index: true,
         searchSize: "mini",
         searchMenuSpan: 6,
         height: 623,
diff --git a/src/views/dispatch/dispatchChildoperable.vue b/src/views/dispatch/dispatchChildoperable.vue
index 1637016..d830e57 100644
--- a/src/views/dispatch/dispatchChildoperable.vue
+++ b/src/views/dispatch/dispatchChildoperable.vue
@@ -158,7 +158,7 @@
         // addBtn: false,
         // menuWidth: 160,
         align: "center",
-        // selection: true,
+        selection: true,
         column: [
           // 派遣服务公司登记
           // {
@@ -231,6 +231,11 @@
             labelWidth: 120,
             searchLabelWidth: 120,
             // overHidden: true
+            dicUrl: "/api/blade-user/page-security",
+            props: {
+              label: "name",
+              value: "id",
+            },
             rules: [
               {
                 required: true,
diff --git a/src/views/recruitmentManagement/index.vue b/src/views/recruitmentManagement/index.vue
index 49b668b..a2ce3dd 100644
--- a/src/views/recruitmentManagement/index.vue
+++ b/src/views/recruitmentManagement/index.vue
@@ -56,7 +56,7 @@
         viewBtn: true,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 627,
+        height: 693,
         menuWidth: 210,
         align: "center",
         selection: true,
diff --git a/src/views/resource/attach.vue b/src/views/resource/attach.vue
index 29abbf0..763c1ba 100644
--- a/src/views/resource/attach.vue
+++ b/src/views/resource/attach.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="hasButTwo">
     <avue-crud
       :option="option"
       :table-loading="loading"
diff --git a/src/views/resource/oss.vue b/src/views/resource/oss.vue
index f51480e..6bbccf1 100644
--- a/src/views/resource/oss.vue
+++ b/src/views/resource/oss.vue
@@ -1,415 +1,457 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               :page.sync="page"
-               :permission="permissionList"
-               v-model="form"
-               ref="crud"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @row-del="rowDel"
-               :before-open="beforeOpen"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
+  <basic-container class="hasButOne">
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      :page.sync="page"
+      :permission="permissionList"
+      v-model="form"
+      ref="crud"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      :before-open="beforeOpen"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
       <template slot="menuLeft">
-        <el-button type="danger"
-                   size="small"
-                   icon="el-icon-delete"
-                   plain
-                   v-if="permission.oss_delete"
-                   @click="handleDelete">删 除
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          v-if="permission.oss_delete"
+          @click="handleDelete"
+          >删 除
         </el-button>
       </template>
       <template slot-scope="scope" slot="menu">
-        <el-button type="text"
-                   icon="el-icon-video-play"
-                   size="small"
-                   v-if="userInfo.role_name.includes('admin')"
-                   @click="handleDebug(scope.row)">调试
+        <el-button
+          type="text"
+          icon="el-icon-video-play"
+          size="small"
+          v-if="userInfo.role_name.includes('admin')"
+          @click="handleDebug(scope.row)"
+          >调试
         </el-button>
-        <el-button type="text"
-                   icon="el-icon-circle-check"
-                   size="small"
-                   v-if="permission.oss_enable"
-                   @click.stop="handleEnable(scope.row)">启用
+        <el-button
+          type="text"
+          icon="el-icon-circle-check"
+          size="small"
+          v-if="permission.oss_enable"
+          @click.stop="handleEnable(scope.row)"
+          >启用
         </el-button>
       </template>
-      <template slot-scope="{row}"
-                slot="status">
-        <el-tag>{{row.statusName}}</el-tag>
+      <template slot-scope="{ row }" slot="status">
+        <el-tag>{{ row.statusName }}</el-tag>
       </template>
-      <template slot-scope="{row}"
-                slot="category">
-        <el-tag>{{row.categoryName}}</el-tag>
+      <template slot-scope="{ row }" slot="category">
+        <el-tag>{{ row.categoryName }}</el-tag>
       </template>
     </avue-crud>
-    <el-dialog title="对象存储上传调试"
-               append-to-body
-               :visible.sync="box"
-               width="550px">
-      <avue-form ref="form" :option="debugOption" v-model="debugForm" @submit="handleSubmit"/>
+    <el-dialog
+      title="对象存储上传调试"
+      append-to-body
+      :visible.sync="box"
+      width="550px"
+    >
+      <avue-form
+        ref="form"
+        :option="debugOption"
+        v-model="debugForm"
+        @submit="handleSubmit"
+      />
     </el-dialog>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove, enable} from "@/api/resource/oss";
-  import {mapGetters} from "vuex";
-  import func from "@/util/func";
+import {
+  getList,
+  getDetail,
+  add,
+  update,
+  remove,
+  enable,
+} from "@/api/resource/oss";
+import { mapGetters } from "vuex";
+import func from "@/util/func";
 
-  export default {
-    data() {
-      return {
-        form: {},
-        query: {},
-        loading: true,
-        box: false,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        selectionList: [],
-        option: {
-          height: 'auto',
-          calcHeight: 30,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          viewBtn: true,
-          selection: true,
-          menuWidth: 300,
-          labelWidth: 100,
-          dialogWidth: 880,
-          dialogClickModal: false,
-          column: [
-            {
-              label: "分类",
-              type: "radio",
-              value: 1,
-              span: 24,
-              width: 100,
-              searchLabelWidth: 50,
-              row: true,
-              dicUrl: "/api/blade-system/dict/dictionary?code=oss",
-              props: {
-                label: "dictValue",
-                value: "dictKey"
-              },
-              dataType: "number",
-              slot: true,
-              prop: "category",
-              search: true,
-              rules: [{
+export default {
+  data() {
+    return {
+      form: {},
+      query: {},
+      loading: true,
+      box: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      selectionList: [],
+      option: {
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        menuWidth: 300,
+        labelWidth: 100,
+        dialogWidth: 880,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "分类",
+            type: "radio",
+            value: 1,
+            span: 24,
+            width: 100,
+            searchLabelWidth: 50,
+            row: true,
+            dicUrl: "/api/blade-system/dict/dictionary?code=oss",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            dataType: "number",
+            slot: true,
+            prop: "category",
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请选择分类",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "资源编号",
-              prop: "ossCode",
-              span: 24,
-              width: 120,
-              search: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "资源编号",
+            prop: "ossCode",
+            span: 24,
+            width: 120,
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入资源编号",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "资源地址",
-              prop: "endpoint",
-              span: 24,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "资源地址",
+            prop: "endpoint",
+            span: 24,
+            rules: [
+              {
                 required: true,
                 message: "请输入资源地址",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "空间名",
-              prop: "bucketName",
-              span: 24,
-              width: 120,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "空间名",
+            prop: "bucketName",
+            span: 24,
+            width: 120,
+            rules: [
+              {
                 required: true,
                 message: "请输入空间名",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "accessKey",
-              prop: "accessKey",
-              span: 24,
-              search: true,
-              width: 200,
-              overHidden: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "accessKey",
+            prop: "accessKey",
+            span: 24,
+            search: true,
+            width: 200,
+            overHidden: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入accessKey",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "secretKey",
-              prop: "secretKey",
-              span: 24,
-              width: 200,
-              overHidden: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "secretKey",
+            prop: "secretKey",
+            span: 24,
+            width: 200,
+            overHidden: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入secretKey",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "appId",
-              prop: "appId",
-              span: 24,
-              hide: true,
-              display: false,
-            },
-            {
-              label: "region",
-              prop: "region",
-              span: 24,
-              hide: true,
-              display: false,
-            },
-            {
-              label: "是否启用",
-              prop: "status",
-              span: 24,
-              width: 80,
-              align: "center",
-              slot: true,
-              addDisplay: false,
-              editDisplay: false,
-              viewDisplay: false,
-            },
-            {
-              label: "备注",
-              prop: "remark",
-              span: 24,
-              hide: true,
-            },
-          ]
-        },
-        data: [],
-        debugForm: {
-          code: '',
-        },
-        debugOption: {
-          submitText: "提交",
-          column: [
-            {
-              label: "资源编号",
-              prop: "code",
-              disabled: true,
-              span: 24,
-            },
-            {
-              label: "上传背景",
-              prop: "backgroundUrl",
-              type: 'upload',
-              listType: 'picture-img',
-              action: '/api/blade-resource/oss/endpoint/put-file',
-              propsHttp: {
-                res: 'data',
-                url: 'link',
+                trigger: "blur",
               },
-              span: 24,
+            ],
+          },
+          {
+            label: "appId",
+            prop: "appId",
+            span: 24,
+            hide: true,
+            display: false,
+          },
+          {
+            label: "region",
+            prop: "region",
+            span: 24,
+            hide: true,
+            display: false,
+          },
+          {
+            label: "是否启用",
+            prop: "status",
+            span: 24,
+            width: 80,
+            align: "center",
+            slot: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+          },
+          {
+            label: "备注",
+            prop: "remark",
+            span: 24,
+            hide: true,
+          },
+        ],
+      },
+      data: [],
+      debugForm: {
+        code: "",
+      },
+      debugOption: {
+        submitText: "提交",
+        column: [
+          {
+            label: "资源编号",
+            prop: "code",
+            disabled: true,
+            span: 24,
+          },
+          {
+            label: "上传背景",
+            prop: "backgroundUrl",
+            type: "upload",
+            listType: "picture-img",
+            action: "/api/blade-resource/oss/endpoint/put-file",
+            propsHttp: {
+              res: "data",
+              url: "link",
             },
-          ]
+            span: 24,
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    "form.category"() {
+      const category = func.toInt(this.form.category);
+      this.$refs.crud.option.column.filter((item) => {
+        if (item.prop === "appId") {
+          item.display = category === 4;
         }
+        if (item.prop === "region") {
+          item.display = category === 4;
+        }
+      });
+    },
+    "debugForm.code"() {
+      const column = this.findObject(this.debugOption.column, "backgroundUrl");
+      column.action = `/api/blade-resource/oss/endpoint/put-file?code=${this.debugForm.code}`;
+    },
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.oss_add),
+        viewBtn: this.vaildData(this.permission.oss_view),
+        delBtn: this.vaildData(this.permission.oss_delete),
+        editBtn: this.vaildData(this.permission.oss_edit),
       };
     },
-    watch: {
-      'form.category'() {
-        const category = func.toInt(this.form.category);
-        this.$refs.crud.option.column.filter(item => {
-          if (item.prop === "appId") {
-            item.display = category === 4;
-          }
-          if (item.prop === "region") {
-            item.display = category === 4;
-          }
-        });
-      },
-      'debugForm.code'() {
-        const column = this.findObject(this.debugOption.column, "backgroundUrl");
-        column.action = `/api/blade-resource/oss/endpoint/put-file?code=${this.debugForm.code}`;
-      }
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
     },
-    computed: {
-      ...mapGetters(["userInfo", "permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.oss_add),
-          viewBtn: this.vaildData(this.permission.oss_view),
-          delBtn: this.vaildData(this.permission.oss_delete),
-          editBtn: this.vaildData(this.permission.oss_edit)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      }
-    },
-    methods: {
-      rowSave(row, done, loading) {
-        add(row).then(() => {
+  },
+  methods: {
+    rowSave(row, done, loading) {
+      add(row).then(
+        () => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      searchReset() {
-        this.query = {};
-        this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      handleEnable(row) {
-        this.$confirm("是否确定启用这条配置?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return enable(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
-          });
-      },
-      handleDebug(row) {
-        this.box = true;
-        this.debugForm.code = row.ossCode;
-        this.debugForm.backgroundUrl = '';
-      },
-      handleSubmit(form, done) {
-        this.$message({
-          type: "success",
-          message: `获取到图片地址:[${form.backgroundUrl}]`
-        });
-        done();
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
         }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
         })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
           });
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetail(this.form.id).then(res => {
-            this.form = res.data.data;
+        });
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    handleEnable(row) {
+      this.$confirm("是否确定启用这条配置?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return enable(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
           });
-        }
-        done();
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        this.loading = true;
-        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-          this.selectionClear();
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    handleDebug(row) {
+      this.box = true;
+      this.debugForm.code = row.ossCode;
+      this.debugForm.backgroundUrl = "";
+    },
+    handleSubmit(form, done) {
+      this.$message({
+        type: "success",
+        message: `获取到图片地址:[${form.backgroundUrl}]`,
+      });
+      done();
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail(this.form.id).then((res) => {
+          this.form = res.data.data;
         });
       }
-    }
-  };
+      done();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getList(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
 </script>
diff --git a/src/views/securityEquipment/car.vue b/src/views/securityEquipment/car.vue
index 51306fc..7443bdb 100644
--- a/src/views/securityEquipment/car.vue
+++ b/src/views/securityEquipment/car.vue
@@ -48,9 +48,10 @@
       option: {
         // card: true,
         tip: false,
+        index: true,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 627,
+        height: 693,
         menuWidth: 160,
         align: "center",
         selection: true,
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index ba983e0..71f70a3 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -50,7 +50,8 @@
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 627,
+        height: 693,
+        index: true,
         menuWidth: 160,
         align: "center",
         selection: true,
diff --git a/src/views/securityEquipment/gun.js b/src/views/securityEquipment/gun.js
index ab9b0c1..885be6c 100644
--- a/src/views/securityEquipment/gun.js
+++ b/src/views/securityEquipment/gun.js
@@ -14,11 +14,13 @@
         prop: "id",
         hide: true,
         editDisplay: false,
-        addDisplay: false
+        addDisplay: false,
+        labelWidth: 160,
     },
     {
         label: "公务用枪证编号",
         prop: "gunCardNumber",
+        labelWidth: 160,
         searchLabelWidth: 130,
         search: true,
         rules: [{
@@ -30,6 +32,7 @@
     {
         label: "发证单位名称",
         searchLabelWidth: 110,
+        labelWidth: 160,
         prop: "issueUnit",
         rules: [{
             required: true,
@@ -41,6 +44,7 @@
     {
         label: "公务用枪编号",
         prop: "cardNumber",
+        labelWidth: 160,
         searchLabelWidth: 110,
         rules: [{
             required: true,
@@ -53,6 +57,7 @@
         label: "枪型",
         prop: "gunMode",
         width: 70,
+        labelWidth: 160,
         rules: [{
             required: true,
             message: "请输入枪型",
@@ -63,6 +68,7 @@
     {
         label: "保安公司",
         prop: "tenantName",
+        labelWidth: 160,
         rules: [{
             required: true,
             message: "请输入组织机构",
@@ -89,6 +95,7 @@
     {
         label: "责任人",
         prop: "personInCharge",
+        labelWidth: 160,
         rules: [{
             required: true,
             message: "请输入责任人",
@@ -97,6 +104,7 @@
     },
     {
         label: "发证日期",
+        labelWidth: 160,
         prop: "issueTime",
         // search: true,
         type: "date",
@@ -114,6 +122,7 @@
     {
         label: "有效日期",
         prop: "validTime",
+        labelWidth: 160,
         // search: true,
         type: "date",
         format: "yyyy-MM-dd",
diff --git a/src/views/securityEquipment/gun.vue b/src/views/securityEquipment/gun.vue
index 022668d..e12b2d7 100644
--- a/src/views/securityEquipment/gun.vue
+++ b/src/views/securityEquipment/gun.vue
@@ -50,7 +50,8 @@
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 627,
+        height: 693,
+        index: true,
         menuWidth: 160,
         align: "center",
         selection: true,
diff --git a/src/views/securityGuard/data.js b/src/views/securityGuard/data.js
index 2776d06..be42d52 100644
--- a/src/views/securityGuard/data.js
+++ b/src/views/securityGuard/data.js
@@ -1,314 +1,314 @@
 //保安员基本信息
 export var securityBaseInfoColumn = [{
-        label: "",
-        labelWidth: "20",
-        type: 'title',
-        prop: "title",
-        span: 24,
-        styles: {
-            fontSize: '24px'
-        }
-    },
-    {
-        label: "所属保安公司",
-        prop: "deptId",
-        type: "tree",
-        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-        // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
-        props: {
-            label: "title",
-            value: "id",
-        },
-        disabled: true,
-        span: 24,
-    },
-    {
-        label: "登录账号",
-        prop: "account",
-        disabled: true
-    },
-    {
-        label: "用户姓名",
-        prop: "realName",
-        disabled: true,
-    },
-    {
-        label: "用户昵称",
-        prop: "name",
-        disabled: true
-    },
-    {
-        label: "手机号码",
-        prop: "phone",
-        disabled: true
-    },
-    {
-        label: "电子邮箱",
-        prop: "email",
-        disabled: true
-    },
-    {
-        label: "身份证号",
-        prop: "cardid",
-        disabled: true
-    },
-    {
-        label: "籍贯",
-        prop: "nativeplace",
-        disabled: true
-    },
-    {
-        label: "民族",
-        prop: "nation",
-        disabled: true
-    },
-    {
-        label: "是否持证",
-        prop: "hold",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
-        props: {
-            label: "dictValue",
-            value: "dictKey",
-        },
-        type: "select",
-        disabled: true
-    },
-    {
-        label: "保安员证编号",
-        prop: "securitynumber",
-        disabled: true
-    },
-    {
-        label: "所属辖区",
-        prop: "jurisdiction",
-        // multiple: true,
-        type: "tree",
-        dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
-        props: {
-            label: "title",
-            value: "id",
-        },
-        disabled: true
-    },
-    {
-        label: "最高学历",
-        prop: "education",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        slot: true,
-        disabled: true
-    },
-    {
-        label: "政治面貌",
-        prop: "politicaloutlook",
-        disabled: true
-    },
-    {
-        label: "身高",
-        prop: "height",
-        disabled: true
-    },
-    {
-        label: "联系地址",
-        prop: "address",
-        disabled: true
-    },
-    {
-        label: "户口所在地",
-        prop: "registered",
-        disabled: true
-    },
-    {
-        label: "入职时间",
-        prop: "rtime",
-        type: 'date',
-        format: "yyyy-MM-dd",
-        valueFormat: "yyyy-MM-dd",
-        disabled: true
-    },
-    {
-        label: "用户性别",
-        prop: "sex",
-        type: "select",
-        dicData: [{
-                label: "男",
-                value: 1
-            },
-            {
-                label: "女",
-                value: 2
-            },
-            {
-                label: "未知",
-                value: 3
-            }
-        ],
-        disabled: true
-    },
-    {
-        label: "用户生日",
-        type: "date",
-        prop: "birthday",
-        disabled: true
+    label: "",
+    labelWidth: "20",
+    type: 'title',
+    prop: "title",
+    span: 24,
+    styles: {
+        fontSize: '24px'
     }
+},
+{
+    label: "所属保安公司",
+    prop: "deptId",
+    type: "tree",
+    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+    // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
+    props: {
+        label: "title",
+        value: "id",
+    },
+    disabled: true,
+    span: 24,
+},
+{
+    label: "登录账号",
+    prop: "account",
+    disabled: true
+},
+{
+    label: "用户姓名",
+    prop: "realName",
+    disabled: true,
+},
+{
+    label: "用户昵称",
+    prop: "name",
+    disabled: true
+},
+{
+    label: "手机号码",
+    prop: "phone",
+    disabled: true
+},
+{
+    label: "电子邮箱",
+    prop: "email",
+    disabled: true
+},
+{
+    label: "身份证号",
+    prop: "cardid",
+    disabled: true
+},
+{
+    label: "籍贯",
+    prop: "nativeplace",
+    disabled: true
+},
+{
+    label: "民族",
+    prop: "nation",
+    disabled: true
+},
+{
+    label: "是否持证",
+    prop: "hold",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+    props: {
+        label: "dictValue",
+        value: "dictKey",
+    },
+    type: "select",
+    disabled: true
+},
+{
+    label: "保安员证编号",
+    prop: "securitynumber",
+    disabled: true
+},
+{
+    label: "所属辖区",
+    prop: "jurisdiction",
+    // multiple: true,
+    type: "tree",
+    dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
+    props: {
+        label: "title",
+        value: "id",
+    },
+    disabled: true
+},
+{
+    label: "最高学历",
+    prop: "education",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
+    },
+    dataType: "number",
+    slot: true,
+    disabled: true
+},
+{
+    label: "政治面貌",
+    prop: "politicaloutlook",
+    disabled: true
+},
+{
+    label: "身高",
+    prop: "height",
+    disabled: true
+},
+{
+    label: "联系地址",
+    prop: "address",
+    disabled: true
+},
+{
+    label: "户口所在地",
+    prop: "registered",
+    disabled: true
+},
+{
+    label: "入职时间",
+    prop: "rtime",
+    type: 'date',
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    disabled: true
+},
+{
+    label: "用户性别",
+    prop: "sex",
+    type: "select",
+    dicData: [{
+        label: "男",
+        value: 1
+    },
+    {
+        label: "女",
+        value: 2
+    },
+    {
+        label: "未知",
+        value: 3
+    }
+    ],
+    disabled: true
+},
+{
+    label: "用户生日",
+    type: "date",
+    prop: "birthday",
+    disabled: true
+}
 
 
 ]
 
 
 export var securityBaseInfoColumns = [{
-        label: "所属保安单位",
-        prop: "tenantId",
-        type: "tree",
-        dicUrl: "/api/blade-system/tenant/select",
-        props: {
-            label: "tenantName",
-            value: "tenantId"
-        },
-        disabled: true,
-        span: 24,
+    label: "所属保安单位",
+    prop: "tenantId",
+    type: "tree",
+    dicUrl: "/api/blade-system/tenant/select",
+    props: {
+        label: "tenantName",
+        value: "tenantId"
+    },
+    disabled: true,
+    span: 24,
+},
+{
+    label: "登录账号",
+    prop: "account",
+    disabled: true
+},
+{
+    label: "用户姓名",
+    prop: "realName",
+    rules: [{
+        required: true,
+        message: "请输入用户姓名",
+        trigger: "blur"
+    }, {
+        min: 2,
+        max: 5,
+        message: '姓名长度在2到5个字符'
+    }]
+},
+{
+    label: "用户昵称",
+    prop: "name"
+},
+{
+    label: "手机号码",
+    prop: "phone",
+    overHidden: true,
+    rules: [{
+        required: true,
+        message: "请输入手机号",
+        trigger: "blur"
+    }]
+},
+{
+    label: "电子邮箱",
+    prop: "email",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "身份证号",
+    prop: "cardid",
+    hide: true,
+    overHidden: true,
+    rules: [{
+        required: true,
+        message: "请输入身份证号",
+        trigger: "blur"
+    }]
+},
+{
+    label: "籍贯",
+    prop: "nativeplace",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "民族",
+    prop: "nation",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "最高学历",
+    prop: "education",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
+    },
+    dataType: "number",
+    slot: true,
+    rules: [{
+        required: true,
+        message: "请选择学历",
+        trigger: "blur"
+    }]
+},
+{
+    label: "政治面貌",
+    prop: "politicaloutlook",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "身高",
+    prop: "height",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "联系地址",
+    prop: "address",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "户口所在地",
+    prop: "registered",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "入职时间",
+    prop: "rtime",
+    type: 'date',
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    hide: true,
+    overHidden: true
+},
+{
+    label: "用户性别",
+    prop: "sex",
+    type: "select",
+    dicData: [{
+        label: "男",
+        value: 1
     },
     {
-        label: "登录账号",
-        prop: "account",
-        disabled: true
+        label: "女",
+        value: 2
     },
     {
-        label: "用户姓名",
-        prop: "realName",
-        rules: [{
-            required: true,
-            message: "请输入用户姓名",
-            trigger: "blur"
-        }, {
-            min: 2,
-            max: 5,
-            message: '姓名长度在2到5个字符'
-        }]
-    },
-    {
-        label: "用户昵称",
-        prop: "name"
-    },
-    {
-        label: "手机号码",
-        prop: "phone",
-        overHidden: true,
-        rules: [{
-            required: true,
-            message: "请输入手机号",
-            trigger: "blur"
-        }]
-    },
-    {
-        label: "电子邮箱",
-        prop: "email",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "身份证号",
-        prop: "cardid",
-        hide: true,
-        overHidden: true,
-        rules: [{
-            required: true,
-            message: "请输入身份证号",
-            trigger: "blur"
-        }]
-    },
-    {
-        label: "籍贯",
-        prop: "nativeplace",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "民族",
-        prop: "nation",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "最高学历",
-        prop: "education",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        slot: true,
-        rules: [{
-            required: true,
-            message: "请选择学历",
-            trigger: "blur"
-        }]
-    },
-    {
-        label: "政治面貌",
-        prop: "politicaloutlook",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "身高",
-        prop: "height",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "联系地址",
-        prop: "address",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "户口所在地",
-        prop: "registered",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "入职时间",
-        prop: "rtime",
-        type: 'date',
-        format: "yyyy-MM-dd",
-        valueFormat: "yyyy-MM-dd",
-        hide: true,
-        overHidden: true
-    },
-    {
-        label: "用户性别",
-        prop: "sex",
-        type: "select",
-        dicData: [{
-                label: "男",
-                value: 1
-            },
-            {
-                label: "女",
-                value: 2
-            },
-            {
-                label: "未知",
-                value: 3
-            }
-        ],
-        hide: true
-    },
-    {
-        label: "用户生日",
-        type: "date",
-        prop: "birthday",
-        hide: true
+        label: "未知",
+        value: 3
     }
+    ],
+    hide: true
+},
+{
+    label: "用户生日",
+    type: "date",
+    prop: "birthday",
+    hide: true
+}
 ]
 
 
@@ -443,153 +443,153 @@
 
 
 export var securityFormPageColumn = [{
-        label: "姓名",
-        prop: "realName",
-        search: true,
-        searchSpan: 4,
-        display: false
+    label: "姓名",
+    prop: "realName",
+    search: true,
+    searchSpan: 4,
+    display: false
+},
+{
+    label: "性别",
+    prop: "sex",
+    type: "select",
+    dicData: [{
+        label: "男",
+        value: 1,
     },
     {
-        label: "性别",
-        prop: "sex",
-        type: "select",
-        dicData: [{
-                label: "男",
-                value: 1,
-            },
-            {
-                label: "女",
-                value: 2,
-            },
-            {
-                label: "未知",
-                value: 3,
-            },
-        ],
-        display: false
+        label: "女",
+        value: 2,
     },
+    {
+        label: "未知",
+        value: 3,
+    },
+    ],
+    display: false
+},
 
-    {
-        label: "籍贯",
-        prop: "nativeplace",
-        display: false
+{
+    label: "籍贯",
+    prop: "nativeplace",
+    display: false
+},
+{
+    label: "民族",
+    prop: "nation",
+    display: false
+},
+{
+    label: "出生日期",
+    prop: "birthday",
+    type: "date",
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    display: false
+},
+{
+    label: "学历",
+    prop: "education",
+    display: false,
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "民族",
-        prop: "nation",
-        display: false
+    type: "select",
+    hide: true,
+    rules: [{
+        required: true,
+        message: "请选择学历",
+        trigger: "blur"
+    }],
+},
+{
+    label: "联系电话",
+    prop: "phone",
+    display: false
+},
+{
+    label: "邮箱",
+    prop: "email",
+    display: false,
+    width: 150
+},
+{
+    label: "入职时间",
+    prop: "rtime",
+    display: false
+},
+{
+    label: "保安公司名称",
+    searchLabelWidth: "110",
+    // prop: "deptName",
+    prop: "deptId",
+    type: "tree",
+    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+    props: {
+        label: "title",
+        value: "id",
     },
-    {
-        label: "出生日期",
-        prop: "birthday",
-        type: "date",
-        format: "yyyy-MM-dd",
-        valueFormat: "yyyy-MM-dd",
-        display: false
+    slot: true,
+    searchSpan: 6,
+    display: false,
+    search: true,
+    width: 260
+},
+{
+    label: "是否持证",
+    prop: "hold",
+    slot: true,
+    display: false,
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "学历",
-        prop: "education",
-        display: false,
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        type: "select",
-        hide: true,
-        rules: [{
-            required: true,
-            message: "请选择学历",
-            trigger: "blur"
-        }],
+    type: "select",
+    rules: [{
+        required: true,
+        message: "请选择",
+        trigger: "blur"
+    }],
+},
+// {
+//     label: "入职时间",
+//     prop: "rtime",
+//     type: "datetime",
+//     format: "yyyy-MM-dd",
+//     valueFormat: "yyyy-MM-dd",
+//     searchRange: true,
+//     searchSpan: 6,
+//     hide: true,
+//     addDisplay: false,
+//     editDisplay: false,
+//     viewDisplay: false,
+//     search: true,
+//     rules: [{
+//         required: true,
+//         message: "请输入时间",
+//         trigger: "blur"
+//     }]
+// },
+{
+    label: "在职状态",
+    prop: "status",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "联系电话",
-        prop: "phone",
-        display: false
-    },
-    {
-        label: "邮箱",
-        prop: "email",
-        display: false,
-        width: 150
-    },
-    {
-        label: "入职时间",
-        prop: "rtime",
-        display: false
-    },
-    {
-        label: "保安公司名称",
-        searchLabelWidth: "110",
-        // prop: "deptName",
-        prop: "deptId",
-        type: "tree",
-        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-        props: {
-            label: "title",
-            value: "id",
-        },
-        slot: true,
-        searchSpan: 5,
-        display: false,
-        search: true,
-        width: 260
-    },
-    {
-        label: "是否持证",
-        prop: "hold",
-        slot: true,
-        display: false,
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        type: "select",
-        rules: [{
-            required: true,
-            message: "请选择",
-            trigger: "blur"
-        }],
-    },
-    // {
-    //     label: "入职时间",
-    //     prop: "rtime",
-    //     type: "datetime",
-    //     format: "yyyy-MM-dd",
-    //     valueFormat: "yyyy-MM-dd",
-    //     searchRange: true,
-    //     searchSpan: 6,
-    //     hide: true,
-    //     addDisplay: false,
-    //     editDisplay: false,
-    //     viewDisplay: false,
-    //     search: true,
-    //     rules: [{
-    //         required: true,
-    //         message: "请输入时间",
-    //         trigger: "blur"
-    //     }]
-    // },
-    {
-        label: "在职状态",
-        prop: "status",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        display: false,
-        searchSpan: 3,
-        search: true,
-        rules: [{
-            required: true,
-            message: "请选择在职状态",
-            trigger: "blur"
-        }]
-    },
+    dataType: "number",
+    display: false,
+    searchSpan: 4,
+    search: true,
+    rules: [{
+        required: true,
+        message: "请选择在职状态",
+        trigger: "blur"
+    }]
+},
 ]
\ No newline at end of file
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index b1cb3d1..044ae20 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-row>
+  <el-row class="securityGuard">
     <el-col :span="0" style="display: none">
       <div class="box">
         <el-scrollbar>
@@ -322,11 +322,12 @@
         searchMenuSpan: 6,
         border: false,
         stripe: true,
+        align: "center",
         index: true,
         delBtnText: "注销",
         selection: true,
         viewBtn: true,
-        defaultExpandAll:true,
+        defaultExpandAll: true,
         //dialogType: 'drawer',
         dialogClickModal: false,
         column: securityFormPageColumn,
diff --git a/src/views/securityUnit/data.js b/src/views/securityUnit/data.js
index f2294a1..b2ed258 100644
--- a/src/views/securityUnit/data.js
+++ b/src/views/securityUnit/data.js
@@ -21,6 +21,8 @@
         prop: "creditcode",
         width: 140,
         hide: true,
+
+        labelWidth: 160,
         // hide: true,
         // editDisplay: false,
         // addDisplay: false
@@ -55,12 +57,15 @@
         label: "企业名称",
         prop: "enterprisename",
         search: true,
+        searchSpan: 6,
+        labelWidth: 160,
         // width: 130,
     },
     {
         label: "企业类型",
         prop: "stats",
         type: "tree",
+        labelWidth: 160,
         dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
         props: {
             label: "dictValue",
@@ -77,10 +82,11 @@
     },
     {
         label: "法定代表人",
+        labelWidth: 160,
         prop: "representative",
         width: 80,
         search: true,
-        searchSpan: 5,
+        searchSpan: 6,
         searchLabelWidth: 100
     },
     // {
@@ -106,6 +112,7 @@
     {
         label: "成立日期",
         prop: "establishtime",
+        labelWidth: 160,
         width: 130,
         overHidden: true,
         type: "date",
@@ -131,6 +138,7 @@
     {
         label: "注册资本(万元人民币)",
         prop: "registeredcapital",
+        labelWidth: 160,
         // search: true,
         width: 140,
         // overHidden: true
@@ -138,6 +146,7 @@
     {
         label: "实缴资本(万元人民币)",
         prop: "capital",
+        labelWidth: 160,
         // width: 85,
         hide: true,
         // search: true,
@@ -146,6 +155,7 @@
     },
     {
         label: "组织机构代码",
+        labelWidth: 160,
         prop: "organizationcode",
         // width: 110,
         // search: true,
@@ -154,6 +164,7 @@
     {
         label: "工商注册号",
         prop: "registrationnumber",
+        labelWidth: 160,
         width: 120,
         // search: true,
         // searchSpan: 4,
@@ -161,6 +172,7 @@
     {
         label: "纳税人识别号",
         prop: "identificationnumber",
+        labelWidth: 160,
         width: 140,
         // addDisplay: true,
         // editDisplay: true,
@@ -203,6 +215,7 @@
     {
         label: "注册地址",
         prop: "address",
+        labelWidth: 160,
         // search: true,
         hide: true,
     },
@@ -210,6 +223,7 @@
         label: "经营范围",
         prop: "business",
         // search: true,
+        labelWidth: 160,
         hide: true,
         // width: 110,
         overHidden: true
@@ -217,6 +231,7 @@
     {
         label: "所属地区",
         prop: "region",
+        labelWidth: 160,
         // width: 110,
         // search: true,
         overHidden: true
@@ -225,6 +240,7 @@
         label: "登记机关",
         prop: "registration",
         // search: true,
+        labelWidth: 160,
         // width: 88,
         overHidden: true,
         hide: true,
@@ -233,6 +249,7 @@
     {
         label: "所属行业",
         prop: "industry",
+        labelWidth: 160,
         hide: true,
         // search: true,
         // width: 88,
@@ -280,7 +297,7 @@
     },
     {
         label: "辖区",
-        prop: "departmentid",
+        prop: "jurisdiction",
         // type: "tree",
         // disabled: true,
         type: "tree",
diff --git a/src/views/securityUnit/index.vue b/src/views/securityUnit/index.vue
index 123fc68..1f876e5 100644
--- a/src/views/securityUnit/index.vue
+++ b/src/views/securityUnit/index.vue
@@ -212,12 +212,13 @@
       query: {},
       data: [],
       option: {
+        index: true,
         addBtn: false,
         // card: true,
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 623,
+        height: 693,
         menuWidth: 160,
         align: "center",
         selection: true,
@@ -421,7 +422,7 @@
           }
         }
       }
-      // console.log(d);
+      console.log(d);
       for (var k in d) {
         if (d[k] == "" || d[k] == undefined) {
           console.log(k);
diff --git a/src/views/system/client.vue b/src/views/system/client.vue
index 2a1892b..cc0bcca 100644
--- a/src/views/system/client.vue
+++ b/src/views/system/client.vue
@@ -1,30 +1,34 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               :page.sync="page"
-               @row-del="rowDel"
-               v-model="form"
-               ref="crud"
-               :permission="permissionList"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               :before-open="beforeOpen"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
+  <basic-container class="hasButOne">
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      :page.sync="page"
+      @row-del="rowDel"
+      v-model="form"
+      ref="crud"
+      :permission="permissionList"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      :before-open="beforeOpen"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
       <template slot="menuLeft">
-        <el-button type="danger"
-                   size="small"
-                   icon="el-icon-delete"
-                   plain
-                   v-if="permission.client_delete"
-                   @click="handleDelete">删 除
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          v-if="permission.client_delete"
+          @click="handleDelete"
+          >删 除
         </el-button>
       </template>
     </avue-crud>
@@ -32,301 +36,333 @@
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove} from "@/api/system/client";
-  import {mapGetters} from "vuex";
+import { getList, getDetail, add, update, remove } from "@/api/system/client";
+import { mapGetters } from "vuex";
 
-  export default {
-    data() {
-      return {
-        form: {},
-        query: {},
-        loading: true,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        selectionList: [],
-        option: {
-          height: 'auto',
-          calcHeight: 30,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          viewBtn: true,
-          selection: true,
-          dialogClickModal: false,
-          column: [
-            {
-              label: "应用id",
-              prop: "clientId",
-              search: true,
-              rules: [{
+export default {
+  data() {
+    return {
+      form: {},
+      query: {},
+      loading: true,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      selectionList: [],
+      option: {
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "应用id",
+            prop: "clientId",
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入客户端id",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "应用密钥",
-              prop: "clientSecret",
-              search: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "应用密钥",
+            prop: "clientSecret",
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入客户端密钥",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "授权类型",
-              prop: "authorizedGrantTypes",
-              type: "checkbox",
-              value: "refresh_token,password,authorization_code",
-              dicData: [
-                {
-                  label: "refresh_token",
-                  value: "refresh_token"
-                },
-                {
-                  label: "password",
-                  value: "password"
-                },
-                {
-                  label: "authorization_code",
-                  value: "authorization_code"
-                },
-                {
-                  label: "captcha",
-                  value: "captcha"
-                },
-                {
-                  label: "social",
-                  value: "social"
-                }
-              ],
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "授权类型",
+            prop: "authorizedGrantTypes",
+            type: "checkbox",
+            value: "refresh_token,password,authorization_code",
+            dicData: [
+              {
+                label: "refresh_token",
+                value: "refresh_token",
+              },
+              {
+                label: "password",
+                value: "password",
+              },
+              {
+                label: "authorization_code",
+                value: "authorization_code",
+              },
+              {
+                label: "captcha",
+                value: "captcha",
+              },
+              {
+                label: "social",
+                value: "social",
+              },
+            ],
+            rules: [
+              {
                 required: true,
                 message: "请输入授权类型",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "授权范围",
-              prop: "scope",
-              value: "all",
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "授权范围",
+            prop: "scope",
+            value: "all",
+            rules: [
+              {
                 required: true,
                 message: "请输入授权范围",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "令牌秒数",
-              prop: "accessTokenValidity",
-              type: "number",
-              value: 3600,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "令牌秒数",
+            prop: "accessTokenValidity",
+            type: "number",
+            value: 3600,
+            rules: [
+              {
                 required: true,
                 message: "请输入令牌过期秒数",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "刷新秒数",
-              prop: "refreshTokenValidity",
-              type: "number",
-              value: 604800,
-              hide: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "刷新秒数",
+            prop: "refreshTokenValidity",
+            type: "number",
+            value: 604800,
+            hide: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入刷新令牌过期秒数",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "回调地址",
-              prop: "webServerRedirectUri",
-              hide: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "回调地址",
+            prop: "webServerRedirectUri",
+            hide: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入回调地址",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "资源集合",
-              prop: "resourceIds",
-              hide: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "资源集合",
+            prop: "resourceIds",
+            hide: true,
+            rules: [
+              {
                 message: "请输入资源集合",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "权限",
-              prop: "authorities",
-              hide: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "权限",
+            prop: "authorities",
+            hide: true,
+            rules: [
+              {
                 message: "请输入权限",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "自动授权",
-              prop: "autoapprove",
-              hide: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "自动授权",
+            prop: "autoapprove",
+            hide: true,
+            rules: [
+              {
                 message: "请输入自动授权",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "附加说明",
-              hide: true,
-              prop: "additionalInformation",
-              span: 24,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "附加说明",
+            hide: true,
+            prop: "additionalInformation",
+            span: 24,
+            rules: [
+              {
                 message: "请输入附加说明",
-                trigger: "blur"
-              }]
-            },
-          ]
-        },
-        data: []
+                trigger: "blur",
+              },
+            ],
+          },
+        ],
+      },
+      data: [],
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.client_add),
+        viewBtn: this.vaildData(this.permission.client_view),
+        delBtn: this.vaildData(this.permission.client_delete),
+        editBtn: this.vaildData(this.permission.client_edit),
       };
     },
-    computed: {
-      ...mapGetters(["permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.client_add),
-          viewBtn: this.vaildData(this.permission.client_view),
-          delBtn: this.vaildData(this.permission.client_delete),
-          editBtn: this.vaildData(this.permission.client_edit)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      }
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
     },
-    methods: {
-      rowSave(row, done, loading) {
-        add(row).then(() => {
+  },
+  methods: {
+    rowSave(row, done, loading) {
+      add(row).then(
+        () => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
         });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
         })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
           });
-      },
-      searchReset() {
-        this.query = {};
-        this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
-        }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
-          });
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetail(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
-        }
-        done();
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        this.loading = true;
-        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-          this.selectionClear();
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail(this.form.id).then((res) => {
+          this.form = res.data.data;
         });
       }
-    }
-  };
+      done();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getList(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
 </script>
 
 <style>
diff --git a/src/views/system/dept.vue b/src/views/system/dept.vue
index e9d1e9d..d524f13 100644
--- a/src/views/system/dept.vue
+++ b/src/views/system/dept.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="hasButTwo">
     <avue-crud
       :option="option"
       :table-loading="loading"
diff --git a/src/views/system/dict.vue b/src/views/system/dict.vue
index 1355028..9265d5b 100644
--- a/src/views/system/dict.vue
+++ b/src/views/system/dict.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="hasButTwo">
     <avue-crud
       :option="optionParent"
       :table-loading="loading"
@@ -29,7 +29,7 @@
           v-if="permission.dict_delete"
           plain
           @click="handleDelete"
-        >删 除
+          >删 除
         </el-button>
       </template>
       <template slot-scope="scope" slot="menu">
@@ -39,20 +39,24 @@
           size="small"
           @click.stop="handleRowClick(scope.row)"
           v-if="userInfo.role_name.includes('admin')"
-        >字典配置
+          >字典配置
         </el-button>
       </template>
-      <template slot-scope="{row}" slot="code">
-        <el-tag @click="handleRowClick(row)" style="cursor:pointer">{{ row.code }}</el-tag>
+      <template slot-scope="{ row }" slot="code">
+        <el-tag @click="handleRowClick(row)" style="cursor: pointer">{{
+          row.code
+        }}</el-tag>
       </template>
-      <template slot-scope="{row}" slot="isSealed">
-        <el-tag>{{ row.isSealed === 0 ? '否' : '是' }}</el-tag>
+      <template slot-scope="{ row }" slot="isSealed">
+        <el-tag>{{ row.isSealed === 0 ? "否" : "是" }}</el-tag>
       </template>
     </avue-crud>
-    <el-dialog :title="`[${dictValue}]字典配置`"
-               append-to-body
-               :visible.sync="box"
-               width="1000px">
+    <el-dialog
+      :title="`[${dictValue}]字典配置`"
+      append-to-body
+      :visible.sync="box"
+      width="1000px"
+    >
       <avue-crud
         :option="optionChild"
         :table-loading="loadingChild"
@@ -81,7 +85,7 @@
             v-if="permission.dict_delete"
             plain
             @click="handleDelete"
-          >删 除
+            >删 除
           </el-button>
         </template>
         <template slot-scope="scope" slot="menu">
@@ -89,13 +93,13 @@
             type="text"
             icon="el-icon-circle-plus-outline"
             size="small"
-            @click.stop="handleAdd(scope.row,scope.index)"
+            @click.stop="handleAdd(scope.row, scope.index)"
             v-if="userInfo.role_name.includes('admin')"
-          >新增子项
+            >新增子项
           </el-button>
         </template>
-        <template slot-scope="{row}" slot="isSealed">
-          <el-tag>{{ row.isSealed === 0 ? '否' : '是' }}</el-tag>
+        <template slot-scope="{ row }" slot="isSealed">
+          <el-tag>{{ row.isSealed === 0 ? "否" : "是" }}</el-tag>
         </template>
       </avue-crud>
     </el-dialog>
@@ -110,15 +114,15 @@
   update,
   add,
   getDict,
-  getDictTree
+  getDictTree,
 } from "@/api/system/dict";
-import {optionParent, optionChild} from "@/option/system/dict";
-import {mapGetters} from "vuex";
+import { optionParent, optionChild } from "@/option/system/dict";
+import { mapGetters } from "vuex";
 
 export default {
   data() {
     return {
-      dictValue: '暂无',
+      dictValue: "暂无",
       parentId: -1,
       formParent: {},
       formChild: {},
@@ -131,13 +135,13 @@
         pageSize: 10,
         pageSizes: [10, 30, 50, 100, 200],
         currentPage: 1,
-        total: 0
+        total: 0,
       },
       pageChild: {
         pageSize: 10,
         pageSizes: [10, 30, 50, 100, 200],
         currentPage: 1,
-        total: 0
+        total: 0,
       },
       dataParent: [],
       dataChild: [],
@@ -157,18 +161,18 @@
     },
     ids() {
       let ids = [];
-      this.selectionList.forEach(ele => {
+      this.selectionList.forEach((ele) => {
         ids.push(ele.id);
       });
       return ids.join(",");
-    }
+    },
   },
   mounted() {
     this.initData();
   },
   methods: {
     initData() {
-      getDictTree().then(res => {
+      getDictTree().then((res) => {
         const column = this.findObject(this.optionChild.column, "parentId");
         column.dicData = res.data.data;
       });
@@ -187,37 +191,43 @@
         ...row,
         dictKey: -1,
       };
-      add(form).then(() => {
-        this.onLoadParent(this.pageParent);
-        this.$message({
-          type: "success",
-          message: "操作成功!"
-        });
-        done();
-      }, error => {
-        window.console.log(error);
-        loading();
-      });
+      add(form).then(
+        () => {
+          this.onLoadParent(this.pageParent);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
     },
     rowUpdate(row, index, done, loading) {
-      update(row).then(() => {
-        this.onLoadParent(this.pageParent);
-        this.$message({
-          type: "success",
-          message: "操作成功!"
-        });
-        this.onLoadChild(this.pageChild);
-        done();
-      }, error => {
-        window.console.log(error);
-        loading();
-      });
+      update(row).then(
+        () => {
+          this.onLoadParent(this.pageParent);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.onLoadChild(this.pageChild);
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
     },
     rowDel(row) {
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return remove(row.id);
@@ -226,7 +236,7 @@
           this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
         });
     },
@@ -268,7 +278,7 @@
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return remove(this.ids);
@@ -277,14 +287,14 @@
           this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.$refs.crud.toggleSelection();
         });
     },
     beforeOpen(done, type) {
       if (["edit", "view"].includes(type)) {
-        getDict(this.formParent.id).then(res => {
+        getDict(this.formParent.id).then((res) => {
           this.formParent = res.data.data;
         });
       }
@@ -300,36 +310,42 @@
       this.onLoadParent(this.pageParent, this.query);
     },
     rowSaveChild(row, done, loading) {
-      add(row).then(() => {
-        this.onLoadChild(this.pageChild);
-        this.$message({
-          type: "success",
-          message: "操作成功!"
-        });
-        done();
-      }, error => {
-        window.console.log(error);
-        loading();
-      });
+      add(row).then(
+        () => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
     },
     rowUpdateChild(row, index, done, loading) {
-      update(row).then(() => {
-        this.onLoadChild(this.pageChild);
-        this.$message({
-          type: "success",
-          message: "操作成功!"
-        });
-        done();
-      }, error => {
-        window.console.log(error);
-        loading();
-      });
+      update(row).then(
+        () => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
     },
     rowDelChild(row) {
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return remove(row.id);
@@ -338,7 +354,7 @@
           this.onLoadChild(this.pageChild);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
         });
     },
@@ -367,7 +383,7 @@
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return remove(this.ids);
@@ -376,7 +392,7 @@
           this.onLoadChild(this.pageChild);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.$refs.crudChild.toggleSelection();
         });
@@ -386,7 +402,7 @@
         this.initData();
       }
       if (["edit", "view"].includes(type)) {
-        getDict(this.formChild.id).then(res => {
+        getDict(this.formChild.id).then((res) => {
           this.formChild = res.data.data;
         });
       }
@@ -394,7 +410,7 @@
     },
     beforeCloseChild(done) {
       this.$refs.crudChild.value.parentId = this.parentId;
-      this.$refs.crudChild.option.column.filter(item => {
+      this.$refs.crudChild.option.column.filter((item) => {
         if (item.prop === "parentId") {
           item.value = this.parentId;
         }
@@ -416,7 +432,7 @@
         page.currentPage,
         page.pageSize,
         Object.assign(params, this.query)
-      ).then(res => {
+      ).then((res) => {
         const data = res.data.data;
         this.pageParent.total = data.total;
         this.dataParent = data.records;
@@ -431,13 +447,13 @@
         page.pageSize,
         this.parentId,
         Object.assign(params, this.query)
-      ).then(res => {
+      ).then((res) => {
         this.dataChild = res.data.data;
         this.loadingChild = false;
         this.selectionClear();
       });
-    }
-  }
+    },
+  },
 };
 </script>
 
diff --git a/src/views/system/dictbiz.vue b/src/views/system/dictbiz.vue
index d7772fe..4623510 100644
--- a/src/views/system/dictbiz.vue
+++ b/src/views/system/dictbiz.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="hasButTwo">
     <avue-crud
       :option="optionParent"
       :table-loading="loading"
@@ -29,7 +29,7 @@
           v-if="permission.dictbiz_delete"
           plain
           @click="handleDelete"
-        >删 除
+          >删 除
         </el-button>
       </template>
       <template slot-scope="scope" slot="menu">
@@ -39,20 +39,24 @@
           size="small"
           @click.stop="handleRowClick(scope.row)"
           v-if="userInfo.role_name.includes('admin')"
-        >字典配置
+          >字典配置
         </el-button>
       </template>
-      <template slot-scope="{row}" slot="code">
-        <el-tag @click="handleRowClick(row)" style="cursor:pointer">{{ row.code }}</el-tag>
+      <template slot-scope="{ row }" slot="code">
+        <el-tag @click="handleRowClick(row)" style="cursor: pointer">{{
+          row.code
+        }}</el-tag>
       </template>
-      <template slot-scope="{row}" slot="isSealed">
-        <el-tag>{{ row.isSealed === 0 ? '否' : '是' }}</el-tag>
+      <template slot-scope="{ row }" slot="isSealed">
+        <el-tag>{{ row.isSealed === 0 ? "否" : "是" }}</el-tag>
       </template>
     </avue-crud>
-    <el-dialog :title="`[${dictValue}]字典配置`"
-               append-to-body
-               :visible.sync="box"
-               width="1000px">
+    <el-dialog
+      :title="`[${dictValue}]字典配置`"
+      append-to-body
+      :visible.sync="box"
+      width="1000px"
+    >
       <avue-crud
         :option="optionChild"
         :table-loading="loadingChild"
@@ -81,7 +85,7 @@
             v-if="permission.dict_delete"
             plain
             @click="handleDelete"
-          >删 除
+            >删 除
           </el-button>
         </template>
         <template slot-scope="scope" slot="menu">
@@ -89,13 +93,13 @@
             type="text"
             icon="el-icon-circle-plus-outline"
             size="small"
-            @click.stop="handleAdd(scope.row,scope.index)"
+            @click.stop="handleAdd(scope.row, scope.index)"
             v-if="userInfo.role_name.includes('admin')"
-          >新增子项
+            >新增子项
           </el-button>
         </template>
-        <template slot-scope="{row}" slot="isSealed">
-          <el-tag>{{ row.isSealed === 0 ? '否' : '是' }}</el-tag>
+        <template slot-scope="{ row }" slot="isSealed">
+          <el-tag>{{ row.isSealed === 0 ? "否" : "是" }}</el-tag>
         </template>
       </avue-crud>
     </el-dialog>
@@ -103,340 +107,352 @@
 </template>
 
 <script>
-  import {
-    getParentList,
-    getChildList,
-    remove,
-    update,
-    add,
-    getDict,
-    getDictTree
-  } from "@/api/system/dictbiz";
-  import {optionParent, optionChild} from "@/option/system/dictbiz";
-  import {mapGetters} from "vuex";
+import {
+  getParentList,
+  getChildList,
+  remove,
+  update,
+  add,
+  getDict,
+  getDictTree,
+} from "@/api/system/dictbiz";
+import { optionParent, optionChild } from "@/option/system/dictbiz";
+import { mapGetters } from "vuex";
 
-  export default {
-    data() {
+export default {
+  data() {
+    return {
+      dictValue: "暂无",
+      parentId: -1,
+      formParent: {},
+      formChild: {},
+      selectionList: [],
+      query: {},
+      box: false,
+      loading: true,
+      loadingChild: true,
+      pageParent: {
+        pageSize: 10,
+        pageSizes: [10, 30, 50, 100, 200],
+        currentPage: 1,
+        total: 0,
+      },
+      pageChild: {
+        pageSize: 10,
+        pageSizes: [10, 30, 50, 100, 200],
+        currentPage: 1,
+        total: 0,
+      },
+      dataParent: [],
+      dataChild: [],
+      optionParent: optionParent,
+      optionChild: optionChild,
+    };
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
       return {
-        dictValue: '暂无',
-        parentId: -1,
-        formParent: {},
-        formChild: {},
-        selectionList: [],
-        query: {},
-        box: false,
-        loading: true,
-        loadingChild: true,
-        pageParent: {
-          pageSize: 10,
-          pageSizes: [10, 30, 50, 100, 200],
-          currentPage: 1,
-          total: 0
-        },
-        pageChild: {
-          pageSize: 10,
-          pageSizes: [10, 30, 50, 100, 200],
-          currentPage: 1,
-          total: 0
-        },
-        dataParent: [],
-        dataChild: [],
-        optionParent: optionParent,
-        optionChild: optionChild,
+        addBtn: this.vaildData(this.permission.dictbiz_add, false),
+        delBtn: this.vaildData(this.permission.dictbiz_delete, false),
+        editBtn: this.vaildData(this.permission.dictbiz_edit, false),
+        viewBtn: false,
       };
     },
-    computed: {
-      ...mapGetters(["userInfo", "permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.dictbiz_add, false),
-          delBtn: this.vaildData(this.permission.dictbiz_delete, false),
-          editBtn: this.vaildData(this.permission.dictbiz_edit, false),
-          viewBtn: false,
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      }
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
     },
-    mounted() {
-      this.initData();
+  },
+  mounted() {
+    this.initData();
+  },
+  methods: {
+    initData() {
+      getDictTree().then((res) => {
+        const column = this.findObject(this.optionChild.column, "parentId");
+        column.dicData = res.data.data;
+      });
     },
-    methods: {
-      initData() {
-        getDictTree().then(res => {
-          const column = this.findObject(this.optionChild.column, "parentId");
-          column.dicData = res.data.data;
-        });
-      },
-      handleAdd(row) {
-        this.formChild.dictValue = "";
-        this.formChild.dictKey = "";
-        this.formChild.sort = 0;
-        this.formChild.isSealed = 0;
-        this.formChild.remark = "";
-        this.formChild.parentId = row.id;
-        this.$refs.crudChild.rowAdd();
-      },
-      rowSave(row, done, loading) {
-        const form = {
-          ...row,
-          dictKey: -1,
-        };
-        add(form).then(() => {
+    handleAdd(row) {
+      this.formChild.dictValue = "";
+      this.formChild.dictKey = "";
+      this.formChild.sort = 0;
+      this.formChild.isSealed = 0;
+      this.formChild.remark = "";
+      this.formChild.parentId = row.id;
+      this.$refs.crudChild.rowAdd();
+    },
+    rowSave(row, done, loading) {
+      const form = {
+        ...row,
+        dictKey: -1,
+      };
+      add(form).then(
+        () => {
           this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
           this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.onLoadChild(this.pageChild);
           done();
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoadParent(this.pageParent);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      handleRowClick(row) {
-        this.query = {};
-        this.parentId = row.id;
-        this.dictValue = row.dictValue;
-
-        const code = this.findObject(this.optionChild.column, "code");
-        code.value = row.code;
-        const parentId = this.findObject(this.optionChild.column, "parentId");
-        parentId.value = row.id;
-
-        this.box = true;
-        this.onLoadChild(this.pageChild);
-      },
-      searchReset() {
-        this.query = {};
-        this.onLoadParent(this.pageParent);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.pageParent.currentPage = 1;
-        this.onLoadParent(this.pageParent, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
         }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
         })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            this.onLoadParent(this.pageParent);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
-          });
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDict(this.formParent.id).then(res => {
-            this.formParent = res.data.data;
-          });
-        }
-        done();
-      },
-      currentChange(currentPage) {
-        this.pageParent.currentPage = currentPage;
-      },
-      sizeChange(pageSize) {
-        this.pageParent.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoadParent(this.pageParent, this.query);
-      },
-      rowSaveChild(row, done, loading) {
-        add(row).then(() => {
-          this.onLoadChild(this.pageChild);
+        .then(() => {
+          this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
         });
-      },
-      rowUpdateChild(row, index, done, loading) {
-        update(row).then(() => {
-          this.onLoadChild(this.pageChild);
+    },
+    handleRowClick(row) {
+      this.query = {};
+      this.parentId = row.id;
+      this.dictValue = row.dictValue;
+
+      const code = this.findObject(this.optionChild.column, "code");
+      code.value = row.code;
+      const parentId = this.findObject(this.optionChild.column, "parentId");
+      parentId.value = row.id;
+
+      this.box = true;
+      this.onLoadChild(this.pageChild);
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoadParent(this.pageParent);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.pageParent.currentPage = 1;
+      this.onLoadParent(this.pageParent, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoadParent(this.pageParent);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
+          this.$refs.crud.toggleSelection();
         });
-      },
-      rowDelChild(row) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoadChild(this.pageChild);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      searchResetChild() {
-        this.query = {};
-        this.onLoadChild(this.pageChild);
-      },
-      searchChangeChild(params, done) {
-        this.query = params;
-        this.pageChild.currentPage = 1;
-        this.onLoadChild(this.pageChild, params);
-        done();
-      },
-      selectionChangeChild(list) {
-        this.selectionList = list;
-      },
-      selectionClearChild() {
-        this.selectionList = [];
-        this.$refs.crudChild.toggleSelection();
-      },
-      handleDeleteChild() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
-        }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            this.onLoadChild(this.pageChild);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crudChild.toggleSelection();
-          });
-      },
-      beforeOpenChild(done, type) {
-        if (["add", "edit"].includes(type)) {
-          this.initData();
-        }
-        if (["edit", "view"].includes(type)) {
-          getDict(this.formChild.id).then(res => {
-            this.formChild = res.data.data;
-          });
-        }
-        done();
-      },
-      beforeCloseChild(done) {
-        this.$refs.crudChild.value.parentId = this.parentId;
-        this.$refs.crudChild.option.column.filter(item => {
-          if (item.prop === "parentId") {
-            item.value = this.parentId;
-          }
-        });
-        done();
-      },
-      currentChangeChild(currentPage) {
-        this.pageChild.currentPage = currentPage;
-      },
-      sizeChangeChild(pageSize) {
-        this.pageChild.pageSize = pageSize;
-      },
-      refreshChangeChild() {
-        this.onLoadChild(this.pageChild, this.query);
-      },
-      onLoadParent(page, params = {}) {
-        this.loading = true;
-        getParentList(
-          page.currentPage,
-          page.pageSize,
-          Object.assign(params, this.query)
-        ).then(res => {
-          const data = res.data.data;
-          this.pageParent.total = data.total;
-          this.dataParent = data.records;
-          this.loading = false;
-          this.selectionClear();
-        });
-      },
-      onLoadChild(page, params = {}) {
-        this.loadingChild = true;
-        getChildList(
-          page.currentPage,
-          page.pageSize,
-          this.parentId,
-          Object.assign(params, this.query)
-        ).then(res => {
-          this.dataChild = res.data.data;
-          this.loadingChild = false;
-          this.selectionClear();
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDict(this.formParent.id).then((res) => {
+          this.formParent = res.data.data;
         });
       }
-    }
-  };
+      done();
+    },
+    currentChange(currentPage) {
+      this.pageParent.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.pageParent.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoadParent(this.pageParent, this.query);
+    },
+    rowSaveChild(row, done, loading) {
+      add(row).then(
+        () => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowUpdateChild(row, index, done, loading) {
+      update(row).then(
+        () => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDelChild(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    searchResetChild() {
+      this.query = {};
+      this.onLoadChild(this.pageChild);
+    },
+    searchChangeChild(params, done) {
+      this.query = params;
+      this.pageChild.currentPage = 1;
+      this.onLoadChild(this.pageChild, params);
+      done();
+    },
+    selectionChangeChild(list) {
+      this.selectionList = list;
+    },
+    selectionClearChild() {
+      this.selectionList = [];
+      this.$refs.crudChild.toggleSelection();
+    },
+    handleDeleteChild() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoadChild(this.pageChild);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudChild.toggleSelection();
+        });
+    },
+    beforeOpenChild(done, type) {
+      if (["add", "edit"].includes(type)) {
+        this.initData();
+      }
+      if (["edit", "view"].includes(type)) {
+        getDict(this.formChild.id).then((res) => {
+          this.formChild = res.data.data;
+        });
+      }
+      done();
+    },
+    beforeCloseChild(done) {
+      this.$refs.crudChild.value.parentId = this.parentId;
+      this.$refs.crudChild.option.column.filter((item) => {
+        if (item.prop === "parentId") {
+          item.value = this.parentId;
+        }
+      });
+      done();
+    },
+    currentChangeChild(currentPage) {
+      this.pageChild.currentPage = currentPage;
+    },
+    sizeChangeChild(pageSize) {
+      this.pageChild.pageSize = pageSize;
+    },
+    refreshChangeChild() {
+      this.onLoadChild(this.pageChild, this.query);
+    },
+    onLoadParent(page, params = {}) {
+      this.loading = true;
+      getParentList(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.pageParent.total = data.total;
+        this.dataParent = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+    onLoadChild(page, params = {}) {
+      this.loadingChild = true;
+      getChildList(
+        page.currentPage,
+        page.pageSize,
+        this.parentId,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        this.dataChild = res.data.data;
+        this.loadingChild = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
 </script>
diff --git a/src/views/system/menu.vue b/src/views/system/menu.vue
index b197c19..44bd669 100644
--- a/src/views/system/menu.vue
+++ b/src/views/system/menu.vue
@@ -1,31 +1,35 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               ref="crud"
-               v-model="form"
-               :permission="permissionList"
-               :before-open="beforeOpen"
-               :before-close="beforeClose"
-               @row-del="rowDel"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad"
-               @tree-load="treeLoad">
+  <basic-container class="hasButTwo">
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      ref="crud"
+      v-model="form"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      :before-close="beforeClose"
+      @row-del="rowDel"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+      @tree-load="treeLoad"
+    >
       <template slot="menuLeft">
-        <el-button type="danger"
-                   size="small"
-                   icon="el-icon-delete"
-                   v-if="permission.menu_delete"
-                   plain
-                   @click="handleDelete">删 除
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          v-if="permission.menu_delete"
+          plain
+          @click="handleDelete"
+          >删 除
         </el-button>
       </template>
       <template slot-scope="scope" slot="menu">
@@ -33,15 +37,16 @@
           type="text"
           icon="el-icon-circle-plus-outline"
           size="small"
-          @click.stop="handleAdd(scope.row,scope.index)"
-          v-if="userInfo.role_name.includes('admin') && scope.row.category === 1"
-        >新增子项
+          @click.stop="handleAdd(scope.row, scope.index)"
+          v-if="
+            userInfo.role_name.includes('admin') && scope.row.category === 1
+          "
+          >新增子项
         </el-button>
       </template>
-      <template slot-scope="{row}"
-                slot="source">
-        <div style="text-align:center">
-          <i :class="row.source"/>
+      <template slot-scope="{ row }" slot="source">
+        <div style="text-align: center">
+          <i :class="row.source" />
         </div>
       </template>
     </avue-crud>
@@ -49,374 +54,382 @@
 </template>
 
 <script>
-  import {getLazyList, remove, update, add, getMenu} from "@/api/system/menu";
-  import {mapGetters} from "vuex";
-  import iconList from "@/config/iconList";
-  import func from "@/util/func";
-  import {getMenuTree} from "@/api/system/menu";
+import { getLazyList, remove, update, add, getMenu } from "@/api/system/menu";
+import { mapGetters } from "vuex";
+import iconList from "@/config/iconList";
+import func from "@/util/func";
+import { getMenuTree } from "@/api/system/menu";
 
-  export default {
-    data() {
-      return {
-        form: {},
-        query: {},
-        loading: true,
-        selectionList: [],
-        parentId: 0,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0,
-        },
-        option: {
-          lazy: true,
-          tip: false,
-          simplePage: true,
-          searchShow: true,
-          searchMenuSpan: 6,
-          dialogWidth: "60%",
-          tree: true,
-          border: true,
-          index: true,
-          selection: true,
-          viewBtn: true,
-          menuWidth: 300,
-          dialogClickModal: false,
-          column: [
-            {
-              label: "菜单名称",
-              prop: "name",
-              search: true,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单名称",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "路由地址",
-              prop: "path",
-              rules: [
-                {
-                  required: true,
-                  message: "请输入路由地址",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "上级菜单",
-              prop: "parentId",
-              type: "tree",
-              dicData: [],
-              hide: true,
-              addDisabled: false,
-              props: {
-                label: "title"
+export default {
+  data() {
+    return {
+      form: {},
+      query: {},
+      loading: true,
+      selectionList: [],
+      parentId: 0,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      option: {
+        lazy: true,
+        tip: false,
+        simplePage: true,
+        searchShow: true,
+        searchMenuSpan: 6,
+        dialogWidth: "60%",
+        tree: true,
+        border: true,
+        index: true,
+        selection: true,
+        viewBtn: true,
+        menuWidth: 300,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "菜单名称",
+            prop: "name",
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单名称",
+                trigger: "blur",
               },
-              rules: [
-                {
-                  required: false,
-                  message: "请选择上级菜单",
-                  trigger: "click"
-                }
-              ]
+            ],
+          },
+          {
+            label: "路由地址",
+            prop: "path",
+            rules: [
+              {
+                required: true,
+                message: "请输入路由地址",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "上级菜单",
+            prop: "parentId",
+            type: "tree",
+            dicData: [],
+            hide: true,
+            addDisabled: false,
+            props: {
+              label: "title",
             },
-            {
-              label: "菜单图标",
-              prop: "source",
-              type: "icon",
-              slot: true,
-              iconList: iconList,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单图标",
-                  trigger: "click"
-                }
-              ]
-            },
-            {
-              label: "菜单编号",
-              prop: "code",
-              search: true,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单编号",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "菜单类型",
-              prop: "category",
-              type: "radio",
-              dicData: [
-                {
-                  label: "菜单",
-                  value: 1
-                },
-                {
-                  label: "按钮",
-                  value: 2
-                }
-              ],
-              hide: true,
-              rules: [
-                {
-                  required: true,
-                  message: "请选择菜单类型",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "菜单别名",
-              prop: "alias",
-              search: true,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单别名",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "新窗口",
-              prop: "isOpen",
-              type: "radio",
-              disabled: false,
-              dicData: [
-                {
-                  label: "否",
-                  value: 1
-                },
-                {
-                  label: "是",
-                  value: 2
-                }
-              ],
-              value: 1,
-              rules: [
-                {
-                  required: true,
-                  message: "请选择新窗口打开",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "菜单排序",
-              prop: "sort",
-              type: "number",
-              row: true,
-              span: 24,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单排序",
-                  trigger: "blur"
-                }
-              ]
-            },
-            {
-              label: "菜单备注",
-              prop: "remark",
-              type: "textarea",
-              span: 24,
-              minRows: 2,
-              hide: true
-            }
-          ]
-        },
-        data: []
+            rules: [
+              {
+                required: false,
+                message: "请选择上级菜单",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "菜单图标",
+            prop: "source",
+            type: "icon",
+            slot: true,
+            iconList: iconList,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单图标",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "菜单编号",
+            prop: "code",
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单编号",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单类型",
+            prop: "category",
+            type: "radio",
+            dicData: [
+              {
+                label: "菜单",
+                value: 1,
+              },
+              {
+                label: "按钮",
+                value: 2,
+              },
+            ],
+            hide: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择菜单类型",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单别名",
+            prop: "alias",
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单别名",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "新窗口",
+            prop: "isOpen",
+            type: "radio",
+            disabled: false,
+            dicData: [
+              {
+                label: "否",
+                value: 1,
+              },
+              {
+                label: "是",
+                value: 2,
+              },
+            ],
+            value: 1,
+            rules: [
+              {
+                required: true,
+                message: "请选择新窗口打开",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单排序",
+            prop: "sort",
+            type: "number",
+            row: true,
+            span: 24,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单排序",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单备注",
+            prop: "remark",
+            type: "textarea",
+            span: 24,
+            minRows: 2,
+            hide: true,
+          },
+        ],
+      },
+      data: [],
+    };
+  },
+  watch: {
+    "form.category"() {
+      const category = func.toInt(this.form.category);
+      this.$refs.crud.option.column.filter((item) => {
+        if (item.prop === "path") {
+          item.rules[0].required = category === 1;
+        }
+        if (item.prop === "isOpen") {
+          item.disabled = category === 2;
+        }
+      });
+    },
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.menu_add, false),
+        viewBtn: this.vaildData(this.permission.menu_view, false),
+        delBtn: this.vaildData(this.permission.menu_delete, false),
+        editBtn: this.vaildData(this.permission.menu_edit, false),
       };
     },
-    watch: {
-      'form.category'() {
-        const category = func.toInt(this.form.category);
-        this.$refs.crud.option.column.filter(item => {
-          if (item.prop === "path") {
-            item.rules[0].required = category === 1;
-          }
-          if (item.prop === 'isOpen') {
-            item.disabled = category === 2;
-          }
-        });
-      },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
     },
-    computed: {
-      ...mapGetters(["userInfo", "permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.menu_add, false),
-          viewBtn: this.vaildData(this.permission.menu_view, false),
-          delBtn: this.vaildData(this.permission.menu_delete, false),
-          editBtn: this.vaildData(this.permission.menu_edit, false)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      }
-    },
-    methods: {
-      initData() {
-        getMenuTree().then(res => {
-          const column = this.findObject(this.option.column, "parentId");
-          column.dicData = res.data.data;
-        });
-      },
-      handleAdd(row) {
-        this.parentId = row.id;
+  },
+  methods: {
+    initData() {
+      getMenuTree().then((res) => {
         const column = this.findObject(this.option.column, "parentId");
-        column.value = row.id;
-        column.addDisabled = true;
-        this.$refs.crud.rowAdd();
-      },
-      rowSave(row, done, loading) {
-        add(row).then((res) => {
+        column.dicData = res.data.data;
+      });
+    },
+    handleAdd(row) {
+      this.parentId = row.id;
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = row.id;
+      column.addDisabled = true;
+      this.$refs.crud.rowAdd();
+    },
+    rowSave(row, done, loading) {
+      add(row).then(
+        (res) => {
           // 获取新增数据的相关字段
           const data = res.data.data;
           row.id = data.id;
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           // 数据回调进行刷新
           done(row);
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           // 数据回调进行刷新
           done(row);
-        }, error => {
+        },
+        (error) => {
           window.console.log(error);
           loading();
+        }
+      );
+    },
+    rowDel(row, index, done) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          // 数据回调进行刷新
+          done(row);
         });
-      },
-      rowDel(row, index, done) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
         })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            // 数据回调进行刷新
-            done(row);
+        .then(() => {
+          // 刷新表格数据并重载
+          this.data = [];
+          this.parentId = 0;
+          this.$refs.crud.refreshTable();
+          this.$refs.crud.toggleSelection();
+          // 表格数据重载
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
           });
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
-        }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            // 刷新表格数据并重载
-            this.data = [];
-            this.parentId = 0;
-            this.$refs.crud.refreshTable();
-            this.$refs.crud.toggleSelection();
-            // 表格数据重载
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      searchReset() {
-        this.query = {};
-        this.parentId = 0;
-        this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.parentId = '';
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      beforeOpen(done, type) {
-        if (["add", "edit"].includes(type)) {
-          this.initData();
-        }
-        if (["edit", "view"].includes(type)) {
-          getMenu(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
-        }
-        done();
-      },
-      beforeClose(done) {
-        this.parentId = "";
-        const column = this.findObject(this.option.column, "parentId");
-        column.value = "";
-        column.addDisabled = false;
-        done();
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        this.loading = true;
-        getLazyList(this.parentId, Object.assign(params, this.query)).then(res => {
+        });
+    },
+    searchReset() {
+      this.query = {};
+      this.parentId = 0;
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.parentId = "";
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    beforeOpen(done, type) {
+      if (["add", "edit"].includes(type)) {
+        this.initData();
+      }
+      if (["edit", "view"].includes(type)) {
+        getMenu(this.form.id).then((res) => {
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    beforeClose(done) {
+      this.parentId = "";
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = "";
+      column.addDisabled = false;
+      done();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getLazyList(this.parentId, Object.assign(params, this.query)).then(
+        (res) => {
           this.data = res.data.data;
           this.loading = false;
           this.selectionClear();
-        });
-      },
-      treeLoad(tree, treeNode, resolve) {
-        const parentId = tree.id;
-        getLazyList(parentId).then(res => {
-          resolve(res.data.data);
-        });
-      }
-    }
-  };
+        }
+      );
+    },
+    treeLoad(tree, treeNode, resolve) {
+      const parentId = tree.id;
+      getLazyList(parentId).then((res) => {
+        resolve(res.data.data);
+      });
+    },
+  },
+};
 </script>
 
 <style>
diff --git a/src/views/system/topmenu.vue b/src/views/system/topmenu.vue
index fdb6388..934883d 100644
--- a/src/views/system/topmenu.vue
+++ b/src/views/system/topmenu.vue
@@ -1,332 +1,371 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               :page.sync="page"
-               :permission="permissionList"
-               :before-open="beforeOpen"
-               v-model="form"
-               ref="crud"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @row-del="rowDel"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
+  <basic-container class="topmenu">
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      :page.sync="page"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      v-model="form"
+      ref="crud"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
       <template slot="menuLeft">
-        <el-button type="danger"
-                   size="small"
-                   icon="el-icon-delete"
-                   plain
-                   v-if="permission.topmenu_delete"
-                   @click="handleDelete">删 除
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          v-if="permission.topmenu_delete"
+          @click="handleDelete"
+          >删 除
         </el-button>
-        <el-button size="small"
-                   icon="el-icon-delete"
-                   @click="handleMenuSetting"
-                   v-if="permission.topmenu_setting"
-                   plain>菜单配置
+        <el-button
+          size="small"
+          icon="el-icon-delete"
+          @click="handleMenuSetting"
+          v-if="permission.topmenu_setting"
+          plain
+          >菜单配置
         </el-button>
       </template>
-      <template slot-scope="{row}" slot="source">
-        <div style="text-align:center">
+      <template slot-scope="{ row }" slot="source">
+        <div style="text-align: center">
           <i :class="row.source"></i>
         </div>
       </template>
-      <template slot="sort" slot-scope="{row}" >
-        <el-input-number v-model="row.sort" @change="sortChange(row)" :min="1" :max="100"></el-input-number>
+      <template slot="sort" slot-scope="{ row }">
+        <el-input-number
+          v-model="row.sort"
+          @change="sortChange(row)"
+          :min="1"
+          :max="100"
+        ></el-input-number>
       </template>
     </avue-crud>
-    <el-dialog title="下级菜单配置"
-               append-to-body
-               :visible.sync="box"
-               width="345px">
-
-      <el-tree :data="menuGrantList"
-               show-checkbox
-               node-key="id"
-               ref="treeMenu"
-               :default-checked-keys="menuTreeObj"
-               :props="props">
+    <el-dialog
+      title="下级菜单配置"
+      append-to-body
+      :visible.sync="box"
+      width="345px"
+    >
+      <el-tree
+        :data="menuGrantList"
+        show-checkbox
+        node-key="id"
+        ref="treeMenu"
+        :default-checked-keys="menuTreeObj"
+        :props="props"
+      >
       </el-tree>
 
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="box = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="submit">确 定</el-button>
+        <el-button type="primary" @click="submit">确 定</el-button>
       </span>
     </el-dialog>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove, grant, grantTree, getTopTree} from "@/api/system/topmenu";
-  import {mapGetters} from "vuex";
-  import iconList from "@/config/iconList";
+import {
+  getList,
+  getDetail,
+  add,
+  update,
+  remove,
+  grant,
+  grantTree,
+  getTopTree,
+} from "@/api/system/topmenu";
+import { mapGetters } from "vuex";
+import iconList from "@/config/iconList";
 
-  export default {
-    data() {
-      return {
-        form: {},
-        box: false,
-        query: {},
-        loading: true,
-        props: {
-          label: "title",
-          value: "key"
-        },
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        selectionList: [],
-        menuGrantList: [],
-        menuTreeObj: [],
-        option: {
-          height: 'auto',
-          calcHeight: 30,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          viewBtn: true,
-          selection: true,
-          dialogWidth: 900,
-          dialogClickModal: false,
-          column: [
-            {
-              label: "菜单名",
-              prop: "name",
-              search: true,
-              rules: [{
+export default {
+  data() {
+    return {
+      form: {},
+      box: false,
+      query: {},
+      loading: true,
+      props: {
+        label: "title",
+        value: "key",
+      },
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      selectionList: [],
+      menuGrantList: [],
+      menuTreeObj: [],
+      option: {
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogWidth: 900,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "菜单名",
+            prop: "name",
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入菜单名",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "菜单图标",
-              prop: "source",
-              type: "icon",
-              slot: true,
-              iconList: iconList,
-              rules: [
-                {
-                  required: true,
-                  message: "请输入菜单图标",
-                  trigger: "click"
-                }
-              ]
-            },
-            {
-              label: "菜单编号",
-              prop: "code",
-              search: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单图标",
+            prop: "source",
+            type: "icon",
+            slot: true,
+            iconList: iconList,
+            rules: [
+              {
+                required: true,
+                message: "请输入菜单图标",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "菜单编号",
+            prop: "code",
+            search: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入菜单编号",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "菜单排序",
-              prop: "sort",
-              type: "number",
-              slot: true,
-              rules: [{
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "菜单排序",
+            prop: "sort",
+            type: "number",
+            slot: true,
+            rules: [
+              {
                 required: true,
                 message: "请输入菜单排序",
-                trigger: "blur"
-              }]
-            },
-          ]
-        },
-        data: []
+                trigger: "blur",
+              },
+            ],
+          },
+        ],
+      },
+      data: [],
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.topmenu_add, false),
+        viewBtn: this.vaildData(this.permission.topmenu_view, false),
+        delBtn: this.vaildData(this.permission.topmenu_delete, false),
+        editBtn: this.vaildData(this.permission.topmenu_edit, false),
       };
     },
-    computed: {
-      ...mapGetters(["permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.topmenu_add, false),
-          viewBtn: this.vaildData(this.permission.topmenu_view, false),
-          delBtn: this.vaildData(this.permission.topmenu_delete, false),
-          editBtn: this.vaildData(this.permission.topmenu_edit, false)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      },
-      idsArray() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids;
-      }
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
     },
-    methods: {
-      submit() {
-        const menuList = this.$refs.treeMenu.getCheckedKeys();
-        grant(this.idsArray, menuList).then(() => {
-          this.box = false;
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          this.onLoad(this.page);
+    idsArray() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids;
+    },
+  },
+  methods: {
+    submit() {
+      const menuList = this.$refs.treeMenu.getCheckedKeys();
+      grant(this.idsArray, menuList).then(() => {
+        this.box = false;
+        this.$message({
+          type: "success",
+          message: "操作成功!",
         });
-      },
-      rowSave(row, done, loading) {
-        add(row).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
-        }
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        })
-          .then(() => {
-            return remove(this.ids);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
-          });
-      },
-      handleMenuSetting() {
-        if (this.selectionList.length !== 1) {
-          this.$message.warning("只能选择一条数据");
-          return;
-        }
-        this.menuTreeObj = [];
-        grantTree()
-          .then(res => {
-            this.menuGrantList = res.data.data.menu;
-            getTopTree(this.ids).then(res => {
-              this.menuTreeObj = res.data.data.menu;
-              this.box = true;
-            });
-          });
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetail(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
-        }
-        done();
-      },
-      sortChange(row) {
-        update(row).then(() => {
-          this.onLoad(this.page);
-        }, error => {
-          window.console.log(error);
-        });
-      },
-      searchReset() {
-        this.query = {};
         this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        this.loading = true;
-        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-          this.selectionClear();
+      });
+    },
+    rowSave(row, done, loading) {
+      add(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    handleMenuSetting() {
+      if (this.selectionList.length !== 1) {
+        this.$message.warning("只能选择一条数据");
+        return;
+      }
+      this.menuTreeObj = [];
+      grantTree().then((res) => {
+        this.menuGrantList = res.data.data.menu;
+        getTopTree(this.ids).then((res) => {
+          this.menuTreeObj = res.data.data.menu;
+          this.box = true;
+        });
+      });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail(this.form.id).then((res) => {
+          this.form = res.data.data;
         });
       }
-    }
-  };
+      done();
+    },
+    sortChange(row) {
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+        },
+        (error) => {
+          window.console.log(error);
+        }
+      );
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getList(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
 </script>
 
 <style>
-  .none-border {
-    border: 0;
-    background-color: transparent !important;
-  }
+.none-border {
+  border: 0;
+  background-color: transparent !important;
+}
 </style>
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index 35387c0..dddcc75 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -64,12 +64,13 @@
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 627,
+        height: 693,
+        index: true,
         menuWidth: 290,
         align: "center",
         selection: true,
         column: column,
-        delBtn: false
+        delBtn: false,
       },
     };
   },
diff --git a/src/views/workreport/data.js b/src/views/workreport/data.js
index eccf4d0..9d36645 100644
--- a/src/views/workreport/data.js
+++ b/src/views/workreport/data.js
@@ -1,230 +1,230 @@
 //已发送列表信息
 export var workreportColumn = [{
-        label: "汇报时间",
-        prop: "reportTime",
-        type: "datetime",
-        format: "yyyy-MM-dd HH:mm:ss",
-        valueFormat: "yyyy-MM-dd HH:mm:ss",
-        searchRange: true,
-        searchSpan: 6,
-        hide: false,
-        addDisplay: false,
-        editDisplay: false,
-        // viewDisplay: false,
-        search: false,
-        rules: [{
-            required: true,
-            message: "请输入时间",
-            trigger: "blur"
-        }]
-    }, {
-        label: "汇报类别",
-        prop: "category",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        searchSpan: 4,
-        search: true,
-        rules: [{
-            required: true,
-            message: "请选择汇报类别",
-            trigger: "blur"
-        }]
-    }, {
-        label: "汇报类型",
-        prop: "type",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        searchSpan: 4,
-        search: true,
-        rules: [{
-            required: true,
-            message: "请选择汇报类型",
-            trigger: "blur"
-        }]
+    label: "汇报时间",
+    prop: "reportTime",
+    type: "datetime",
+    format: "yyyy-MM-dd HH:mm:ss",
+    valueFormat: "yyyy-MM-dd HH:mm:ss",
+    searchRange: true,
+    searchSpan: 6,
+    hide: false,
+    addDisplay: false,
+    editDisplay: false,
+    // viewDisplay: false,
+    search: false,
+    rules: [{
+        required: true,
+        message: "请输入时间",
+        trigger: "blur"
+    }]
+}, {
+    label: "汇报类别",
+    prop: "category",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "汇报人身份证号",
-        prop: "idCardNo",
-        hide: true,
-        addDisplay: false,
-        editDisplay: false,
-        viewDisplay: false,
+    dataType: "number",
+    searchSpan: 5,
+    search: true,
+    rules: [{
+        required: true,
+        message: "请选择汇报类别",
+        trigger: "blur"
+    }]
+}, {
+    label: "汇报类型",
+    prop: "type",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "汇报内容",
-        prop: "content",
-        type: "textarea",
-        span: 24,
-        rules: [{
-            required: true,
-            message: "请输入汇报内容",
-            trigger: "blur"
-        }]
+    dataType: "number",
+    searchSpan: 5,
+    search: true,
+    rules: [{
+        required: true,
+        message: "请选择汇报类型",
+        trigger: "blur"
+    }]
+},
+{
+    label: "汇报人身份证号",
+    prop: "idCardNo",
+    hide: true,
+    addDisplay: false,
+    editDisplay: false,
+    viewDisplay: false,
+},
+{
+    label: "汇报内容",
+    prop: "content",
+    type: "textarea",
+    span: 24,
+    rules: [{
+        required: true,
+        message: "请输入汇报内容",
+        trigger: "blur"
+    }]
+},
+{
+    label: "接收人",
+    prop: "receivedIds",
+    span: 24,
+    type: "tree",
+    dicUrl: "/api/blade-system/dept/lazy-tree-user",
+    hide: true,
+    props: {
+        label: "title",
+        value: "id",
     },
-    {
-        label: "接收人",
-        prop: "receivedIds",
-        span: 24,
-        type: "tree",
-        dicUrl: "/api/blade-system/dept/lazy-tree-user",
-        hide: true,
-        props: {
-            label: "title",
-            value: "id",
-        },
-        multiple: true,
-        // dataType: "number",
-        rules: [{
-            required: true,
-            message: "请选择接收人",
-            trigger: "blur"
-        }]
-    },
-    {
-        label: "接收人",
-        prop: "replyRealName",
-        addDisplay: false,
-        editDisplay: false,
-        viewDisplay: false,
-    },
-    {
-        label: "接收人单位",
-        prop: "replyDeptName",
-        addDisplay: false,
-        editDisplay: false,
-        // viewDisplay: false,
-    },
-    {
-        label: "回复内容",
-        prop: "replyContent",
-        type: "textarea",
-        span: 24,
-        addDisplay: false,
-        editDisplay: false,
-        rules: [{
-            required: true,
-            message: "请输入回复内容",
-            trigger: "blur"
-        }]
-    }
+    multiple: true,
+    // dataType: "number",
+    rules: [{
+        required: true,
+        message: "请选择接收人",
+        trigger: "blur"
+    }]
+},
+{
+    label: "接收人",
+    prop: "replyRealName",
+    addDisplay: false,
+    editDisplay: false,
+    viewDisplay: false,
+},
+{
+    label: "接收人单位",
+    prop: "replyDeptName",
+    addDisplay: false,
+    editDisplay: false,
+    // viewDisplay: false,
+},
+{
+    label: "回复内容",
+    prop: "replyContent",
+    type: "textarea",
+    span: 24,
+    addDisplay: false,
+    editDisplay: false,
+    rules: [{
+        required: true,
+        message: "请输入回复内容",
+        trigger: "blur"
+    }]
+}
 ]
 
 
 //接收人列信息
 export var workreplyColumn = [{
-        label: "汇报人",
-        prop: "realName",
-        disabled: true,
-        span: 24,
-        rules: [{
-            required: true,
-            message: "请选择接收人",
-            trigger: "blur"
-        }]
+    label: "汇报人",
+    prop: "realName",
+    disabled: true,
+    span: 24,
+    rules: [{
+        required: true,
+        message: "请选择接收人",
+        trigger: "blur"
+    }]
+},
+{
+    label: "汇报人单位",
+    prop: "deptName",
+    addDisplay: false,
+    editDisplay: false,
+    // viewDisplay: false,
+}, {
+    label: "汇报时间",
+    prop: "reportTime",
+    type: "datetime",
+    format: "yyyy-MM-dd HH:mm:ss",
+    valueFormat: "yyyy-MM-dd HH:mm:ss",
+    searchRange: true,
+    searchSpan: 6,
+    hide: false,
+    addDisplay: false,
+    editDisplay: false,
+    // viewDisplay: false,
+    search: false,
+    rules: [{
+        required: true,
+        message: "请输入时间",
+        trigger: "blur"
+    }]
+}, {
+    label: "汇报类别",
+    prop: "category",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    {
-        label: "汇报人单位",
-        prop: "deptName",
-        addDisplay: false,
-        editDisplay: false,
-        // viewDisplay: false,
-    }, {
-        label: "汇报时间",
-        prop: "reportTime",
-        type: "datetime",
-        format: "yyyy-MM-dd HH:mm:ss",
-        valueFormat: "yyyy-MM-dd HH:mm:ss",
-        searchRange: true,
-        searchSpan: 6,
-        hide: false,
-        addDisplay: false,
-        editDisplay: false,
-        // viewDisplay: false,
-        search: false,
-        rules: [{
-            required: true,
-            message: "请输入时间",
-            trigger: "blur"
-        }]
-    }, {
-        label: "汇报类别",
-        prop: "category",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        searchSpan: 4,
-        search: true,
-        hide: true,
-        editDisplay: false,
-        rules: [{
-            required: true,
-            message: "请选择汇报类别",
-            trigger: "blur"
-        }]
-    }, {
-        label: "汇报类型",
-        prop: "type",
-        type: "select",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        dataType: "number",
-        searchSpan: 4,
-        search: true,
-        disabled: true,
-        rules: [{
-            required: true,
-            message: "请选择汇报类型",
-            trigger: "blur"
-        }]
+    dataType: "number",
+    searchSpan: 4,
+    search: true,
+    hide: true,
+    editDisplay: false,
+    rules: [{
+        required: true,
+        message: "请选择汇报类别",
+        trigger: "blur"
+    }]
+}, {
+    label: "汇报类型",
+    prop: "type",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
     },
-    // {
-    //     label: "汇报人身份证号",
-    //     prop: "idCardNo",
-    //     hide: true,
-    //     addDisplay: false,
-    //     editDisplay: false,
-    //     viewDisplay: false,
-    // },
-    {
-        label: "汇报内容",
-        prop: "content",
-        type: "textarea",
-        // editDisplay: false,
-        disabled: true,
-        span: 24,
-        rules: [{
-            required: true,
-            message: "请输入汇报内容",
-            trigger: "blur"
-        }]
-    },
-    {
-        label: "回复内容",
-        prop: "replyContent",
-        type: "textarea",
-        span: 24,
-        rules: [{
-            required: true,
-            message: "请输入回复内容",
-            trigger: "blur"
-        }]
-    }
+    dataType: "number",
+    searchSpan: 4,
+    search: true,
+    disabled: true,
+    rules: [{
+        required: true,
+        message: "请选择汇报类型",
+        trigger: "blur"
+    }]
+},
+// {
+//     label: "汇报人身份证号",
+//     prop: "idCardNo",
+//     hide: true,
+//     addDisplay: false,
+//     editDisplay: false,
+//     viewDisplay: false,
+// },
+{
+    label: "汇报内容",
+    prop: "content",
+    type: "textarea",
+    // editDisplay: false,
+    disabled: true,
+    span: 24,
+    rules: [{
+        required: true,
+        message: "请输入汇报内容",
+        trigger: "blur"
+    }]
+},
+{
+    label: "回复内容",
+    prop: "replyContent",
+    type: "textarea",
+    span: 24,
+    rules: [{
+        required: true,
+        message: "请输入回复内容",
+        trigger: "blur"
+    }]
+}
 
 ]
\ No newline at end of file
diff --git a/src/views/workreport/workreport.vue b/src/views/workreport/workreport.vue
index d1ca951..8ad6a38 100644
--- a/src/views/workreport/workreport.vue
+++ b/src/views/workreport/workreport.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+  <basic-container class="workreply">
     <avue-crud
       :option="option"
       :table-loading="loading"
@@ -271,4 +271,8 @@
 </script>
 
 <style>
+.workreply .el-card.is-never-shadow.avue-crud__search {
+  width: calc(100% - 380px) !important;
+  left: 200px !important;
+}
 </style>
diff --git a/vue.config.js b/vue.config.js
index fa7e224..7649da5 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -29,6 +29,7 @@
         //本地服务接口地址
         // target: 'http://localhost',
         target: 'http://192.168.0.114:81',//钟W
+        // target: 'http://192.168.0.109:81',//tangW
         // target: 'http://192.168.0.104:80',//唐N
         //远程演示服务地址,可用于直接启动项目
         // target: 'https://saber.bladex.vip/api',

--
Gitblit v1.9.3