diff --git a/WebSite/.env.production b/WebSite/.env.production
index 0c872bbd8be96f2a5051c11fc1a3adb863c3297b..2df9c73f2ac5165876b2c10047419578e35d77bc 100644
--- a/WebSite/.env.production
+++ b/WebSite/.env.production
@@ -1,2 +1,2 @@
-VUE_APP_BASE_URI = '/noctua-admin-micro/'
+VUE_APP_BASE_URI = '/educationinstitutionallibraryweb/'
 VUE_APP_BASE_API = '/api'
\ No newline at end of file
diff --git a/WebSite/mock/account.js b/WebSite/mock/account.js
index e7b4b09b24355157291b648afc448782686b11c6..296e3703b98daa66951eb7e16f86b340ff3bd2ab 100644
--- a/WebSite/mock/account.js
+++ b/WebSite/mock/account.js
@@ -190,11 +190,11 @@ const menuList = [
         children: []
       },
       {
-        id: '15',
+        id: '16',
         available: 'YES',
-        name: '鏂板缓鎴戠殑绱犳潗',
+        name: '鏂板缓/缂栬緫鍒跺害',
         icon: 'fas fa-file-alt',
-        routingUrl: 'my-business/newly-build',
+        routingUrl: 'policy-edit',
         isNewWindow: 'NO',
         isSystem: 'YES',
         enabled: 'YES',
diff --git a/WebSite/src/components/Crumbs/index.vue b/WebSite/src/components/Crumbs/index.vue
index f4c00e5de3d663a04e6c89c96900fd270ac556bc..21b86ba166f1af46b2529391da76fdc01dc48193 100644
--- a/WebSite/src/components/Crumbs/index.vue
+++ b/WebSite/src/components/Crumbs/index.vue
@@ -1,23 +1,19 @@
 <template>
-  <div style="display:flex;flex-warp:nowarp;width:100%;margin-left:2%">
-    <div>
+  <div class="crumbs-container">
+    <div class="breadcrumb-box">
+      {{ backToMyHome ? '鎮ㄥ綋鍓嶄綅缃細' : '' }}
       <el-breadcrumb separator-icon="ArrowRight" v-if="showroute">
-        <el-breadcrumb-item
-          v-for="item in routeList"
-          :key="item.name"
-          :to="{ path: item.path }"
-          >{{ item.name }}</el-breadcrumb-item
-        >
+        <el-breadcrumb-item v-for="(item, index) in routeList" :key="index">
+          {{ item }}
+        </el-breadcrumb-item>
       </el-breadcrumb>
     </div>
-    <div class="menu-title" v-if="showback">
-      <div>
-        <el-icon style="font-size:25px;line-height:25px">
-          <Back />
-        </el-icon>
-      </div>
+    <div class="back-title" v-if="showback" @click="toHome">
+      <el-icon style="font-size:25px;line-height:25px">
+        <Back />
+      </el-icon>
       <div style="margin-left:10px;line-height:23px;">
-        杩斿洖鍏变韩骞冲彴棣栭〉
+        {{ backToMyHome ? '杩斿洖棣栭〉瀵艰埅' : '杩斿洖鍏变韩骞冲彴棣栭〉' }}
       </div>
     </div>
   </div>
@@ -25,17 +21,22 @@
 
 <script>
 import { onMounted, reactive, toRefs } from 'vue';
+import { useRouter } from 'vue-router';
 
 // import { ElMessage, ElMessageBox } from 'element-plus';
 export default {
   props: {
     showroute: {
       type: Boolean,
-      default: true
+      default: false
     },
     showback: {
       type: Boolean,
-      default: true
+      default: false
+    },
+    backToMyHome: {
+      type: Boolean,
+      default: false
     },
     routeList: {
       type: Array,
@@ -45,25 +46,48 @@ export default {
     }
   },
 
-  setup() {
+  setup(props) {
+    const router = useRouter();
+    const routerPush = window.parent.routerPush;
     const data = reactive({});
     onMounted(() => {});
-
+    const toHome = () => {
+      if (routerPush) {
+        routerPush({
+          routingUrl: props.backToMyHome
+            ? 'educationinstitutionallibraryweb/homepage'
+            : ''
+        });
+        return;
+      }
+      if (props.backToMyHome) {
+        router.push({
+          path: '/homepage'
+        });
+      }
+    };
     return {
-      ...toRefs(data)
+      ...toRefs(data),
+      toHome
     };
   }
 };
 </script>
 
 <style lang="scss" scoped>
-.menu-title {
+.crumbs-container {
   display: flex;
-  flex-wrap: nowrap;
-  position: absolute;
-  right: 100px;
+  justify-content: space-between;
+  align-items: center;
   padding-bottom: 10px;
-  font-size: 13px;
-  font-weight: 600;
+  .breadcrumb-box,
+  .back-title {
+    display: flex;
+    font-size: 14px;
+    color: #333;
+  }
+  .back-title {
+    cursor: pointer;
+  }
 }
 </style>
diff --git a/WebSite/src/router/guards.js b/WebSite/src/router/guards.js
index 7eec6744a03b22076099f00bf226776a748f79d8..ffe2d19a8f2b4a432c17c38c4a876c9c79b69ce6 100644
--- a/WebSite/src/router/guards.js
+++ b/WebSite/src/router/guards.js
@@ -82,14 +82,21 @@ const before = async (to, from, next) => {
     // not authenticated
     // 鏈璇�
     NProgress.done();
-    if (whiteListLv1.includes(to.path)) {
-      next();
-    } else {
-      const redirect = await store.dispatch('subject/logout', {
-        doRouterPush: false
-      });
-      next(redirect);
-    }
+    // if (whiteListLv1.includes(to.path)) {
+    //   next();
+    // } else {
+    //   const redirect = await store.dispatch('subject/logout', {
+    //     doRouterPush: false
+    //   });
+    //   next(redirect);
+    // }
+    await store.dispatch('subject/permit', {
+      authorizationToken: '1',
+      afterPermitted: () => {
+        next();
+      }
+    });
+    // debugger;
   }
 };
 
diff --git a/WebSite/src/router/modules/policy-system-library.js b/WebSite/src/router/modules/policy-system-library.js
index 124ca383aa5091ec996b0bb1eef1e4c4ba02ee8b..64d043cef3f30c78f7f3b028f19b9054182b12a5 100644
--- a/WebSite/src/router/modules/policy-system-library.js
+++ b/WebSite/src/router/modules/policy-system-library.js
@@ -13,5 +13,10 @@ export default [
     path: 'rule-management',
     component: () => import('@/views/policy-system-library/rule-management'),
     name: '瑙勫垯绠$悊'
+  },
+  {
+    path: 'policy-edit',
+    component: () => import('@/views/policy-system-library/policy-edit'),
+    name: '鏂板/缂栬緫鍒跺害'
   }
 ];
diff --git a/WebSite/src/views/homepage/component/search-detail.vue b/WebSite/src/views/homepage/component/search-detail.vue
index e8f0520a7023c1c86b9ea0fdc92e03627899ff42..4bba1f50dc3240d1e201c524a7f401134aeed996 100644
--- a/WebSite/src/views/homepage/component/search-detail.vue
+++ b/WebSite/src/views/homepage/component/search-detail.vue
@@ -46,7 +46,7 @@
                 clearable
               />
               <el-button
-                icon="el-icon-search"
+                icon="Search"
                 class="search-btn"
                 type="primary"
                 @click="onSearch()"
diff --git a/WebSite/src/views/policy-system-library/policy-edit.vue b/WebSite/src/views/policy-system-library/policy-edit.vue
new file mode 100644
index 0000000000000000000000000000000000000000..06a040e0847bbb46aebf9968ebac853af9e9ea52
--- /dev/null
+++ b/WebSite/src/views/policy-system-library/policy-edit.vue
@@ -0,0 +1,171 @@
+<template>
+  <div class="app-container">
+    <Crumbs :routeList="['鏀跨瓥鍒跺害搴�', '鏂板缓鍒跺害']" showroute back-to-my-home />
+    <div class="app-content">
+      <el-card class="edit-card">
+        <el-form label-width="100px" label-position="left">
+          <el-row :gutter="40">
+            <el-col :span="8">
+              <el-form-item label="鏂囨。缂栧彿">
+                <el-input v-model="editInfo.keywords" placeholder="鑷姩鐢熸垚" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鍒跺害鍚嶇О">
+                <el-input v-model="editInfo.no" placeholder="璇疯緭鍏ュ埗搴﹀悕绉�" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鏂囧彿">
+                <el-input v-model="editInfo.no" placeholder="璇疯緭鍏ユ枃鍙�" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鍒嗙被">
+                <el-tree-select
+                  v-model="editInfo.type1"
+                  :data="treeData"
+                  :props="defaultProps"
+                  check-strictly
+                  style="width:100%"
+                >
+                  <template #default="{ node }">
+                    <span class="custom-tree-node">
+                      <span>{{ node.label }}</span>
+                      <!-- <span>
+                  <el-button
+                    type="text"
+                    size="mini"
+                    @click.stop="() => handleEdit(node, data)"
+                  >
+                    缂栬緫
+                  </el-button>
+                </span> -->
+                    </span>
+                  </template>
+                </el-tree-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="棰佸竷鏃ユ湡">
+                <el-date-picker
+                  style="width: 100%"
+                  v-model="editInfo.date"
+                  type="date"
+                  placeholder="璇烽€夋嫨棰佸竷鏃ユ湡"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="涓婁紶鏃ユ湡">
+                <el-date-picker
+                  style="width: 100%"
+                  v-model="editInfo.date"
+                  type="date"
+                  placeholder="褰撳墠鏃堕棿锛堣嚜鍔ㄧ敓鎴愶級"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="涓婁紶浜�">
+                <el-select v-model="editInfo.user" style="width:100%">
+                  <el-option label="寮犱笁" value="寮犱笁" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鏄惁闇€瑕佸鎵�">
+                <el-radio-group v-model="editInfo.isAp" class="ml-4">
+                  <el-radio :label="true" size="large">鏄�</el-radio>
+                  <el-radio :label="false" size="large">鍚�</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item label="瀹℃壒浜�" v-if="editInfo.isAp">
+                <el-select v-model="editInfo.user" style="width:100%">
+                  <el-option label="寮犱笁" value="寮犱笁" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="btn-box">
+              <el-button type="primary" plain>
+                淇濆瓨
+              </el-button>
+              <el-button type="primary" plain>
+                淇濆瓨骞跺彂甯�
+              </el-button>
+              <el-button type="info" plain icon="Back" @click="onBack">
+                杩斿洖
+              </el-button>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<script>
+import { onMounted, reactive, toRefs } from 'vue';
+import { useRoute, useRouter } from 'vue-router';
+
+// import { ElMessage, ElMessageBox } from 'element-plus';
+export default {
+  setup() {
+    const router = useRouter();
+    const route = useRoute();
+    const data = reactive({
+      id: route.query.id,
+      editInfo: { isAp: false },
+      defaultProps: {
+        children: 'children',
+        label: 'name',
+        value: 'id'
+      },
+      treeData: []
+    });
+
+    const getData = () => {
+      data.editInfo = { id: data.id, isAp: false };
+    };
+
+    onMounted(() => {
+      data.treeData = [
+        {
+          id: 1,
+          name: '鏀垮簻浼氳鍑嗗垯鍒跺害',
+          children: [
+            { id: 2, name: '浼氳鍒跺害+琛ュ厖瑙勫畾' },
+            { id: 3, name: '鍩烘湰鎸囧紩' },
+            { id: 4, name: '鍩烘湰鍑嗗垯' }
+          ]
+        },
+
+        {
+          id: 8,
+          name: '璐㈠姟棰勭畻绠$悊鍒跺害'
+        }
+      ];
+      getData();
+    });
+
+    const onBack = () => {
+      router.go(-1);
+    };
+
+    return {
+      ...toRefs(data),
+      onBack
+    };
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.app-container {
+  .app-content {
+    .btn-box {
+      text-align: center;
+    }
+  }
+}
+</style>
diff --git a/WebSite/src/views/policy-system-library/policy-search.vue b/WebSite/src/views/policy-system-library/policy-search.vue
index 8ede083379fe523fd92ee7af3256aecfe2f585c3..a899a2cb6f6f574623eb7ec7d0db5b006fbb24e2 100644
--- a/WebSite/src/views/policy-system-library/policy-search.vue
+++ b/WebSite/src/views/policy-system-library/policy-search.vue
@@ -1,21 +1,308 @@
 <template>
-  <el-card class="mainClass"> 鍒跺害搴撴煡璇� </el-card>
+  <div class="app-container">
+    <Crumbs
+      :routeList="['鏀跨瓥鍒跺害搴�', '鍒跺害搴撴煡璇�']"
+      showroute
+      showback
+      back-to-my-home
+    />
+    <div class="app-content">
+      <el-card class="tree-card">
+        <el-input
+          placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+          v-model="filterText"
+          clearable
+        />
+        <el-divider></el-divider>
+        <el-tree
+          class="filter-tree mt-20"
+          :data="treeData"
+          :props="defaultProps"
+          default-expand-all
+          highlight-current
+          @node-click="handleNodeClick"
+          :expand-on-click-node="false"
+          :filter-node-method="filterNode"
+          ref="tree"
+        >
+          <template #default="{ node }">
+            <span class="custom-tree-node">
+              <span>{{ node.label }}</span>
+              <!-- <span>
+                  <el-button
+                    type="text"
+                    size="mini"
+                    @click.stop="() => handleEdit(node, data)"
+                  >
+                    缂栬緫
+                  </el-button>
+                </span> -->
+            </span>
+          </template>
+        </el-tree>
+      </el-card>
+      <div class="right-box">
+        <el-card class="search-card">
+          <el-form label-width="70px" label-position="left">
+            <el-row :gutter="30">
+              <el-col :span="7">
+                <el-form-item label="鍏抽敭瀛�">
+                  <el-input
+                    v-model="searchInfo.keywords"
+                    placeholder="璇疯緭鍏ュ悕绉�/鍏抽敭瀛楁ā绯婃煡璇�"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="鏂囧彿">
+                  <el-input
+                    v-model="searchInfo.no"
+                    placeholder="璇疯緭鍏ユ枃鍙锋ā绯婃煡璇�"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="鍒嗙被">
+                  <el-tree-select
+                    v-model="searchInfo.type1"
+                    :data="treeData"
+                    :props="defaultProps"
+                    check-strictly
+                    clearable
+                    style="width:100%"
+                  >
+                    <template #default="{ node }">
+                      <span class="custom-tree-node">
+                        <span>{{ node.label }}</span>
+                        <!-- <span>
+                  <el-button
+                    type="text"
+                    size="mini"
+                    @click.stop="() => handleEdit(node, data)"
+                  >
+                    缂栬緫
+                  </el-button>
+                </span> -->
+                      </span>
+                    </template>
+                  </el-tree-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="30">
+              <el-col :span="7">
+                <el-form-item label="棰佸竷鏃ユ湡">
+                  <el-date-picker
+                    style="width: 100%"
+                    v-model="searchInfo.date"
+                    type="daterange"
+                    range-separator="鑷�"
+                    start-placeholder="寮€濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7"> </el-col>
+              <el-col :span="7"> </el-col>
+              <el-col :span="3">
+                <el-button type="primary" @click="onSearch" plain icon="Search">
+                  鏌ヨ
+                </el-button>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-card>
+        <el-card class="mt-20">
+          <div class="btn-box">
+            <div>
+              <el-button type="info" plain>
+                鍒跺害鏁帮細{{ listData.total }}
+              </el-button>
+            </div>
+            <div>
+              <el-button type="info" plain icon="Download">
+                涓嬭浇
+              </el-button>
+              <el-button type="primary" plain icon="Star">
+                鍔犲叧娉�
+              </el-button>
+            </div>
+          </div>
+          <el-table
+            class="mt-20"
+            stripe
+            :data="listData.data"
+            style="width: 100%"
+            ref="multipleTable"
+            @selection-change="handleSelectionChange"
+            fit
+            border
+          >
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="鍒跺害鍚嶇О">
+              <template #default>涓崕浜烘皯鍏卞拰鍥芥斂搴滈噰璐硶</template>
+            </el-table-column>
+            <el-table-column label="鍒跺害鍒嗙被" width="100">
+              <template #default>鏀垮簻閲囪喘鍒跺害</template>
+            </el-table-column>
+            <el-table-column label="鏂囧彿" width="70">
+              <template #default> </template>
+            </el-table-column>
+            <el-table-column label="棰佸竷鏃ユ湡" width="80">
+              <template #default>2022.5.9</template>
+            </el-table-column>
+            <el-table-column
+              label="鎿嶄綔"
+              width="240"
+              fixed="right"
+              align="center"
+            >
+              <template #default>
+                <el-button type="info" plain>
+                  鏌ョ湅
+                </el-button>
+                <el-button type="info" plain>
+                  涓嬭浇
+                </el-button>
+                <el-button type="primary" plain icon="Star"> </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+
+          <MinPagination
+            class="mt-20"
+            v-model="searchInfo.pageIndex"
+            :pageCount="listData.pageCount"
+            @onChange="getList"
+          />
+        </el-card>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-import { onMounted, reactive, toRefs } from 'vue';
-
+import { onMounted, reactive, toRefs, watch, ref } from 'vue';
 // import { ElMessage, ElMessageBox } from 'element-plus';
 export default {
   setup() {
-    const data = reactive({});
-    onMounted(() => {});
+    const data = reactive({
+      defaultProps: {
+        children: 'children',
+        label: 'name',
+        value: 'id'
+      },
+      searchInfo: {
+        type: '鍏ㄩ儴',
+        type1: null,
+        keywords: '',
+        pageIndex: 1,
+        date: ''
+      },
+      filterText: '',
+      treeData: [],
+      listData: {
+        pageCount: 0,
+        total: 0,
+        data: []
+      },
+      multipleSelection: []
+    });
+    const tree = ref(null);
+    watch(
+      () => data.filterText,
+      val => {
+        tree.value.filter(val);
+      }
+    );
+    const filterNode = (value, data) => {
+      if (!value) return true;
+      return data.name.indexOf(value) !== -1;
+    };
+    const handleNodeClick = (data, node) => {
+      console.log(data, node);
+    };
+
+    const handleSelectionChange = val => {
+      data.multipleSelection = val;
+    };
+
+    const getList = () => {
+      data.listData.pageCount = 5;
+      data.listData.total = 121;
+      data.listData.data = [];
+      // todo: get list data
+      for (let index = 0; index < 5; index++) {
+        data.listData.data.push({
+          title: '娌储搴撱€�2020銆�54鍙� 鍏充簬缂栧埗鏈競2020骞村害璐㈠姟閮ㄩ棬鍐崇畻鐨勫彿鐭�',
+          content: '鍒跺害鍐呭鍒跺害瑙勫垝鍐呭',
+          date: '2020-01-01'
+        });
+      }
+    };
+
+    const onSearch = () => {
+      getList();
+    };
+
+    onMounted(() => {
+      data.treeData = [
+        {
+          id: 1,
+          name: '鏀垮簻浼氳鍑嗗垯鍒跺害',
+          children: [
+            { id: 2, name: '浼氳鍒跺害+琛ュ厖瑙勫畾' },
+            { id: 3, name: '鍩烘湰鎸囧紩' },
+            { id: 4, name: '鍩烘湰鍑嗗垯' }
+          ]
+        },
+
+        {
+          id: 5,
+          name: '璐㈠姟棰勭畻绠$悊鍒跺害'
+        }
+      ];
+      getList();
+    });
 
     return {
-      ...toRefs(data)
+      ...toRefs(data),
+      tree,
+      filterNode,
+      handleNodeClick,
+      onSearch,
+      getList,
+      handleSelectionChange
     };
   }
 };
 </script>
 
-<style></style>
+<style lang="scss" scoped>
+.app-container {
+  .app-content {
+    display: flex;
+    .tree-card {
+      width: 260px;
+      .custom-tree-node {
+        font-size: 14px;
+      }
+    }
+    .right-box {
+      width: calc(100% - 260px);
+      padding-left: 20px;
+      .search-card {
+        ::v-deep(.el-card__body) {
+          padding-bottom: 0;
+        }
+      }
+      .btn-box {
+        display: flex;
+        justify-content: space-between;
+      }
+    }
+  }
+}
+</style>
diff --git a/WebSite/src/views/policy-system-library/system-management.vue b/WebSite/src/views/policy-system-library/system-management.vue
index 068ba3cf52e0d29a19f73fe57b4a2c1a9aac62b9..a211f7c33b5dc07de29109d6919d7961337c8ba4 100644
--- a/WebSite/src/views/policy-system-library/system-management.vue
+++ b/WebSite/src/views/policy-system-library/system-management.vue
@@ -1,27 +1,34 @@
 <template>
   <div class="app-container">
-    <el-card class="tree-card">
-      <el-input
-        placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
-        v-model="filterText"
-        clearable
-      />
-      <el-divider></el-divider>
-      <el-tree
-        class="filter-tree mt-20"
-        :data="treeData"
-        :props="defaultProps"
-        default-expand-all
-        highlight-current
-        @node-click="handleNodeClick"
-        :expand-on-click-node="false"
-        :filter-node-method="filterNode"
-        ref="tree"
-      >
-        <template #default="{ node }">
-          <span class="custom-tree-node">
-            <span>{{ node.label }}</span>
-            <!-- <span>
+    <Crumbs
+      :routeList="['鏀跨瓥鍒跺害搴�', '鍒跺害搴撶鐞�']"
+      showroute
+      showback
+      back-to-my-home
+    />
+    <div class="app-content">
+      <el-card class="tree-card">
+        <el-input
+          placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+          v-model="filterText"
+          clearable
+        />
+        <el-divider></el-divider>
+        <el-tree
+          class="filter-tree mt-20"
+          :data="treeData"
+          :props="defaultProps"
+          default-expand-all
+          highlight-current
+          @node-click="handleNodeClick"
+          :expand-on-click-node="false"
+          :filter-node-method="filterNode"
+          ref="tree"
+        >
+          <template #default="{ node }">
+            <span class="custom-tree-node">
+              <span>{{ node.label }}</span>
+              <!-- <span>
                   <el-button
                     type="text"
                     size="mini"
@@ -30,180 +37,221 @@
                     缂栬緫
                   </el-button>
                 </span> -->
-          </span>
-        </template>
-      </el-tree>
-    </el-card>
-    <div class="right-box">
-      <el-card>
-        <el-form label-width="70px" label-position="left">
-          <el-row :gutter="30">
-            <el-col :span="7">
-              <el-form-item label="鍏抽敭瀛�">
-                <el-input
-                  v-model="searchInfo.keywords"
-                  placeholder="璇疯緭鍏ュ悕绉�/鍏抽敭瀛楁ā绯婃煡璇�"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="鏂囧彿">
-                <el-input
-                  v-model="searchInfo.keywords"
-                  placeholder="璇疯緭鍏ユ枃鍙锋ā绯婃煡璇�"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="鍒嗙被">
-                <el-input
-                  v-model="searchInfo.keywords"
-                  placeholder="璇疯緭鍏ユ枃鍙锋ā绯婃煡璇�"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="30">
-            <el-col :span="7">
-              <el-form-item label="棰佸竷鏃ユ湡">
-                <el-date-picker
-                  style="width: 100%"
-                  v-model="searchInfo.date"
-                  type="daterange"
-                  range-separator="鑷�"
-                  start-placeholder="寮€濮嬫棩鏈�"
-                  end-placeholder="缁撴潫鏃ユ湡"
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="瀹℃牳鐘舵€�">
-                <el-select>
-                  <el-option label="" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="涓婁紶浜�">
-                <el-input
-                  v-model="searchInfo.keywords"
-                  placeholder="璇疯緭鍏ユ枃鍙锋ā绯婃煡璇�"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="3">
-              <el-button
-                type="primary"
-                @click="onSearch"
-                plain
-                icon="el-icon-search"
-              >
-                鏌ヨ
-              </el-button>
-            </el-col>
-          </el-row>
-        </el-form>
-        <div>
-          <el-button type="info" plain>
-            鍒跺害鏁帮細{{ listData.total }}
-          </el-button>
-          <el-button type="primary" plain icon="el-icon-plus">
-            鏂板鍒跺害鏂囦欢
-          </el-button>
-        </div>
+            </span>
+          </template>
+        </el-tree>
       </el-card>
-      <el-card class="mt-20">
-        <el-table
-          stripe
-          :data="listData.data"
-          style="width: 100%"
-          ref="multipleTable"
-          @selection-change="handleSelectionChange"
-          fit
-          border
-        >
-          <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="鏂囨。缂栧彿" width="100">
-            <template #default> A1-001-2001-1111</template>
-          </el-table-column>
-          <el-table-column label="鍒跺害鍚嶇О">
-            <template #default>涓崕浜烘皯鍏卞拰鍥芥斂搴滈噰璐硶</template>
-          </el-table-column>
-          <el-table-column label="鍒跺害鍒嗙被" width="100">
-            <template #default>鏀垮簻閲囪喘鍒跺害</template>
-          </el-table-column>
-          <el-table-column label="鏂囧彿" width="70">
-            <template #default> </template>
-          </el-table-column>
-          <el-table-column label="棰佸竷鏃ユ湡" width="80">
-            <template #default>2022.5.9</template>
-          </el-table-column>
-          <el-table-column label="涓婁紶鏃ユ湡" width="80">
-            <template #default>2022.5.10</template>
-          </el-table-column>
-          <el-table-column label="涓婁紶浜�" width="80">
-            <template #default>寮�**</template>
-          </el-table-column>
-          <el-table-column label="鏂囦欢鐘舵€�" width="80">
-            <template #default>鏈彂甯�</template>
-          </el-table-column>
-          <el-table-column label="瀹℃牳鐘舵€�" width="80">
-            <template #default>寰呭鏍�</template>
-          </el-table-column>
-          <el-table-column label="鐗堟湰鍙�" width="80">
-            <template #default>V2.0</template>
-          </el-table-column>
-          <el-table-column label="鎿嶄綔" width="400">
-            <template #default>
-              <el-button type="primary" plain>
-                鏌ョ湅
-              </el-button>
-              <el-button type="primary" plain>
-                缂栬緫
+      <div class="right-box">
+        <el-card class="search-card">
+          <el-form label-width="70px" label-position="left">
+            <el-row :gutter="30">
+              <el-col :span="7">
+                <el-form-item label="鍏抽敭瀛�">
+                  <el-input
+                    v-model="searchInfo.keywords"
+                    placeholder="璇疯緭鍏ュ悕绉�/鍏抽敭瀛楁ā绯婃煡璇�"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="鏂囧彿">
+                  <el-input
+                    v-model="searchInfo.no"
+                    placeholder="璇疯緭鍏ユ枃鍙锋ā绯婃煡璇�"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="鍒嗙被">
+                  <el-tree-select
+                    v-model="searchInfo.type1"
+                    :data="treeData"
+                    :props="defaultProps"
+                    check-strictly
+                    clearable
+                    style="width:100%"
+                  >
+                    <template #default="{ node }">
+                      <span class="custom-tree-node">
+                        <span>{{ node.label }}</span>
+                        <!-- <span>
+                  <el-button
+                    type="text"
+                    size="mini"
+                    @click.stop="() => handleEdit(node, data)"
+                  >
+                    缂栬緫
+                  </el-button>
+                </span> -->
+                      </span>
+                    </template>
+                  </el-tree-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="30">
+              <el-col :span="7">
+                <el-form-item label="棰佸竷鏃ユ湡">
+                  <el-date-picker
+                    style="width: 100%"
+                    v-model="searchInfo.date"
+                    type="daterange"
+                    range-separator="鑷�"
+                    start-placeholder="寮€濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="瀹℃牳鐘舵€�">
+                  <el-select
+                    v-model="searchInfo.status"
+                    style="width:100%"
+                    clearable
+                  >
+                    <el-option label="鏈彂甯�" value="鏈彂甯�" />
+                    <el-option label="寰呭鏍�" value="寰呭鏍�" />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="涓婁紶浜�">
+                  <el-select
+                    v-model="searchInfo.user"
+                    style="width:100%"
+                    clearable
+                  >
+                    <el-option label="寮犱笁" value="寮犱笁" />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="3">
+                <el-button type="primary" @click="onSearch" plain icon="Search">
+                  鏌ヨ
+                </el-button>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-card>
+        <el-card class="mt-20">
+          <div class="btn-box">
+            <div>
+              <el-button type="info" plain>
+                鍒跺害鏁帮細{{ listData.total }}
               </el-button>
-              <el-button type="primary" plain>
-                鍙戝竷
+              <el-button type="primary" plain icon="Plus" @click="toEdit()">
+                鏂板鍒跺害鏂囦欢
               </el-button>
-              <el-button type="primary" plain>
+            </div>
+            <div>
+              <el-button type="info" plain icon="Download">
                 涓嬭浇
               </el-button>
-              <el-button type="primary" plain>
-                鎿嶄綔璁板綍
+              <el-button type="primary" plain icon="Star">
+                鍔犲叧娉�
               </el-button>
-            </template>
-          </el-table-column>
-          <el-table-column label="澶囨敞" width="80">
-            <template #default>鏇存柊</template>
-          </el-table-column>
-        </el-table>
+            </div>
+          </div>
+          <el-table
+            class="mt-20"
+            stripe
+            :data="listData.data"
+            style="width: 100%"
+            ref="multipleTable"
+            @selection-change="handleSelectionChange"
+            fit
+            border
+          >
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="鏂囨。缂栧彿" width="100">
+              <template #default> A1-001-2001-1111</template>
+            </el-table-column>
+            <el-table-column label="鍒跺害鍚嶇О">
+              <template #default>涓崕浜烘皯鍏卞拰鍥芥斂搴滈噰璐硶</template>
+            </el-table-column>
+            <el-table-column label="鍒跺害鍒嗙被" width="100">
+              <template #default>鏀垮簻閲囪喘鍒跺害</template>
+            </el-table-column>
+            <el-table-column label="鏂囧彿" width="70">
+              <template #default> </template>
+            </el-table-column>
+            <el-table-column label="棰佸竷鏃ユ湡" width="80">
+              <template #default>2022.5.9</template>
+            </el-table-column>
+            <el-table-column label="涓婁紶鏃ユ湡" width="80">
+              <template #default>2022.5.10</template>
+            </el-table-column>
+            <el-table-column label="涓婁紶浜�" width="80">
+              <template #default>寮�**</template>
+            </el-table-column>
+            <el-table-column label="鏂囦欢鐘舵€�" width="80">
+              <template #default>鏈彂甯�</template>
+            </el-table-column>
+            <el-table-column label="瀹℃牳鐘舵€�" width="80">
+              <template #default>寰呭鏍�</template>
+            </el-table-column>
+            <el-table-column label="鐗堟湰鍙�" width="80">
+              <template #default>V2.0</template>
+            </el-table-column>
+            <el-table-column
+              label="鎿嶄綔"
+              width="340"
+              fixed="right"
+              align="center"
+            >
+              <template #default>
+                <el-button type="primary" plain>
+                  鏌ョ湅
+                </el-button>
+                <el-button type="primary" plain @click="toEdit(1)">
+                  缂栬緫
+                </el-button>
+                <el-button type="primary" plain>
+                  鍙戝竷
+                </el-button>
+                <el-button type="primary" plain>
+                  涓嬭浇
+                </el-button>
+                <el-button type="primary" plain>
+                  鎿嶄綔璁板綍
+                </el-button>
+              </template>
+            </el-table-column>
+            <el-table-column label="澶囨敞" width="80">
+              <template #default>鏇存柊</template>
+            </el-table-column>
+          </el-table>
 
-        <MinPagination
-          class="mt-20"
-          v-model="searchInfo.pageIndex"
-          :pageCount="listData.pageCount"
-          @onChange="getList"
-        />
-      </el-card>
+          <MinPagination
+            class="mt-20"
+            v-model="searchInfo.pageIndex"
+            :pageCount="listData.pageCount"
+            @onChange="getList"
+          />
+        </el-card>
+      </div>
     </div>
   </div>
 </template>
 
 <script>
 import { onMounted, reactive, toRefs, watch, ref } from 'vue';
+import { useRouter } from 'vue-router';
 // import { ElMessage, ElMessageBox } from 'element-plus';
 export default {
   setup() {
+    const router = useRouter();
     const data = reactive({
       defaultProps: {
         children: 'children',
-        label: 'name'
+        label: 'name',
+        value: 'id'
       },
       searchInfo: {
         type: '鍏ㄩ儴',
+        type1: null,
         keywords: '',
         pageIndex: 1,
         date: ''
@@ -257,21 +305,26 @@ export default {
     onMounted(() => {
       data.treeData = [
         {
+          id: 1,
           name: '鏀垮簻浼氳鍑嗗垯鍒跺害',
           children: [
-            { name: '浼氳鍒跺害+琛ュ厖瑙勫畾' },
-            { name: '鍩烘湰鎸囧紩' },
-            { name: '鍩烘湰鍑嗗垯' }
+            { id: 2, name: '浼氳鍒跺害+琛ュ厖瑙勫畾' },
+            { id: 3, name: '鍩烘湰鎸囧紩' },
+            { id: 4, name: '鍩烘湰鍑嗗垯' }
           ]
         },
 
         {
+          id: 5,
           name: '璐㈠姟棰勭畻绠$悊鍒跺害'
         }
       ];
       getList();
     });
 
+    const toEdit = id => {
+      router.push({ path: '/policy-edit', query: { id } });
+    };
     return {
       ...toRefs(data),
       tree,
@@ -279,7 +332,8 @@ export default {
       handleNodeClick,
       onSearch,
       getList,
-      handleSelectionChange
+      handleSelectionChange,
+      toEdit
     };
   }
 };
@@ -287,13 +341,27 @@ export default {
 
 <style lang="scss" scoped>
 .app-container {
-  display: flex;
-  .tree-card {
-    width: 260px;
-  }
-  .right-box {
-    width: calc(100% - 260px);
-    padding-left: 20px;
+  .app-content {
+    display: flex;
+    .tree-card {
+      width: 260px;
+      .custom-tree-node {
+        font-size: 14px;
+      }
+    }
+    .right-box {
+      width: calc(100% - 260px);
+      padding-left: 20px;
+      .search-card {
+        ::v-deep(.el-card__body) {
+          padding-bottom: 0;
+        }
+      }
+      .btn-box {
+        display: flex;
+        justify-content: space-between;
+      }
+    }
   }
 }
 </style>