From 635d21ef52504980fe4cfce4acc4fc1717de4298 Mon Sep 17 00:00:00 2001
From: 王旭 <1377869194@qq.com>
Date: 星期三, 21 九月 2022 10:49:00 +0800
Subject: [PATCH] Merge branch 'master' of ssh://192.168.20.39:29418/LFWEB

---
 src/views/maintenance/eventlogManage.vue     |  306 ++++++++++
 src/views/Archive/index.vue                  |   43 +
 src/views/maintenance/tokentool.vue          |  358 +++++++++++
 vue.config.js                                |    7 
 src/router/index.js                          |  193 +++--
 src/views/maintenance/databaseMonitoring.vue |    7 
 src/assets/lang/zh.js                        |  145 ++++
 src/views/maintenance/blackwhiteList.vue     |  317 ++++++++++
 public/config/config.js                      |    3 
 src/views/Thematic/index.vue                 |  124 +++-
 src/views/maintenance/operationLog.vue       |   72 +
 src/assets/lang/en.js                        |  147 ++++
 src/components/navMenu.vue                   |   40 
 src/views/maintenance/logLog.vue             |   16 
 14 files changed, 1,584 insertions(+), 194 deletions(-)

diff --git a/public/config/config.js b/public/config/config.js
index 7eaad62..5214518 100644
--- a/public/config/config.js
+++ b/public/config/config.js
@@ -5,4 +5,5 @@
 var serverUrl = 'http://192.168.20.106/LFServer/';
 
 var api_Url = 'http://192.168.20.106/';
-var sql_Url = 'http://192.168.20.39:8081/admin/druid/sql.html'; //鏁版嵁搴撶洃鎺у湴鍧�
+
+var sql_Url = 'http://192.168.20.39:8081/admin/druid/sql.html';
diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js
index 821abec..81b7f00 100644
--- a/src/assets/lang/en.js
+++ b/src/assets/lang/en.js
@@ -4,12 +4,13 @@
     choose: 'Please choose',
     name: 'name',
     edit: 'edit',
-    delete: 'delete',
+    delete: 'Delete',
     username: 'UserName',
     empty: 'Empty',
     iquery: 'IQuery',
     selectdate: 'Please select a date',
     pleaseInput: 'Please input',
+    update: 'Modify',
   },
   dataManage: {
     dataManage: 'Data Manage',
@@ -24,6 +25,31 @@
   },
   operatManage: {
     operatManage: 'Operat Manage',
+    eventlogManage: 'Event Log Manage',
+    ELM: {
+      username: 'username',
+      ownedSystem: 'ownedSystem',
+      operationType: 'operationType',
+      date: 'date',
+      startDate: 'startdate',
+      endDate: 'enddate',
+      to: 'to',
+      ip: 'The client IP',
+      search: 'search',
+      reset: 'reset',
+      all: 'all',
+      one: "one",
+      add: "add",
+      delete: "delete",
+      edit: "edit",
+      query: "query",
+      please: 'please choose',
+      usernameInfo: 'username,Chinese name,or phonetic initial',
+      index: 'index',
+      largeModuleName: 'largeModuleName',
+      smallModuleName: 'smallModuleName',
+      resourceName: 'resourceName',
+    },
     userManagement: 'User Management',
     systemLayout: 'System Layout',
     menuSettings: 'Menu Settings',
@@ -65,22 +91,91 @@
     logLog: 'ConLog',
     operationLog: 'Operation Log',
     databaseMonitoring: 'Database Monitoring',
-    operationLogObj:{
-      queryRegion:"queryRegion",
-      resourceName:"resourceName",
-      operationType:"operationType",
-      operatingTime:"operatingTime",
-      inquire:"inquire",
-      empty:"empty",
-      num:"num",
-      username:"username",
-      systematicName:"systematicName",
-      IP:" IP",
-      pleaseInput:"pleaseInput",
-      pleaseSelect:"pleaseSelect",
-      optionDate:"optionDate",
-      selectTime:"selectTime",
-    }
+    blackwhiteList: "Black/White List",
+    BWL: {
+      blackList: "blackList",
+      whiteList: "whiteList",
+      blackListIP: 'blackListIP',
+      whiteListIP: 'whiteListIP',
+      listIPInfo: 'listIPInfo',
+      IPState: 'IPState',
+      all: 'all',
+      validity: 'validity',
+      invalidity: 'invalidity',
+      interceptionCycle: 'interceptionCycle',
+      seconds: 'seconds',
+      mins: 'mins',
+      hours: 'hours',
+      interceptionNumber: 'interceptionNumber',
+      change: 'change',
+      search: 'search',
+      reset: 'reset',
+      index: "index",
+      serviceName: 'serviceName',
+      accessSourceSystem: 'accessSourceSystem',
+      IPRequest: 'IPRequest',
+      servicesRequestUrl: 'servicesRequestUrl',
+      resourceIDRequest: 'resourceIDRequest',
+      serviceSystemRequest: 'serviceSystemRequest',
+      blackListStatus: 'blackListStatus',
+      operate: 'operate',
+      effectiveDate: "effectiveDate",
+      requestUser: "requestUser",
+      tokenInfo: "tokenInfo",
+      whiteListStatus: 'whiteListStatus',
+    },
+    tokentool: 'Token Tool',
+    tokentoolObj: {
+      first: 'Service List',
+      second: 'Token management',
+      serviceid: 'Resource ID',
+      serviceName: 'Service name',
+      excelTemplate: 'Excel Template',
+      uploadExcel: 'Upload Excel',
+      serviceToken: 'Token generation place',
+      pleaseInput: 'After applying for a token, you can copy it here',
+      copy: 'Copy',
+      tokenName: 'Token Name',
+      tokenStatus: 'Token Status',
+      tokenAll: 'All',
+      tokeNormal: 'Normal',
+      tokenInvalid: 'Invalid',
+      tokenRenewal: 'Renewal',
+      serialnumber: 'Serial Number',
+      applysystem: 'Apply to use the system',
+      applicantIP: 'Applicant IP',
+      applicationtime: 'Application time',
+      applytime: 'Apply for use time (s)',
+      tokenstring: 'Token string',
+      serviceAddress: 'Service address',
+      porstServiceAddress: 'Post proxy service address',
+      sourcesystem: 'sourcesystem',
+      pubicnot: 'Public or not',
+      suffixID: 'Suffix ID',
+      goonlinenot: 'Go online or not',
+      primaryKey: 'Primary key',
+      applyToken: 'Apply for Token',
+      operation: 'Operation',
+      resourcetoken: 'Resource ID of the token',
+      tokeninformation: 'Token information',
+      autorenew: 'Auto renew',
+    },
+    operationLogObj: {
+      queryRegion: 'QueryRegion',
+      resourceName: 'resourceName',
+      operationType: 'operationType',
+      operatingTime: 'operatingTime',
+      inquire: 'inquire',
+      empty: 'empty',
+      num: 'num',
+      username: 'username',
+      systematicName: 'systematicName',
+      IP: ' IP',
+      pleaseInput: 'pleaseInput',
+      pleaseSelect: 'pleaseSelect',
+      optionDate: 'optionDate',
+      selectTime: 'selectTime',
+    },
   },
   synthesis: {
     synthesis: 'Comprehensive Display',
@@ -149,6 +244,24 @@
     operationtype: 'Operation Type',
     operationStatus: 'Operation Status',
   },
+  themaic: {
+    name: 'Themaic Map',
+    maptltle: 'Map Title',
+    all: 'All',
+    sortbytime: 'Sort by Time',
+    sortbyviews: 'Sort by Views',
+    find: 'Find',
+    record: 'pieces of data',
+  },
+  archive: {
+    name: 'Piping materials',
+    keyword: 'Keyword',
+    uname: 'Name',
+    type: 'Type',
+    modifications: 'Revision number',
+    creationtime: 'Creation Time',
+    state: 'State',
+  },
 };
 
 export default en;
diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js
index 8e5194f..f8fae78 100644
--- a/src/assets/lang/zh.js
+++ b/src/assets/lang/zh.js
@@ -10,6 +10,7 @@
     iquery: '鏌ヨ',
     selectdate: '璇烽�夋嫨鏃ユ湡',
     pleaseInput: '璇疯緭鍏�',
+    update: '淇敼',
   },
   dataManage: {
     dataManage: '鏁版嵁绠$悊',
@@ -24,6 +25,31 @@
   },
   operatManage: {
     operatManage: '杩愮淮绠$悊',
+    eventlogManage: '浜嬩欢鏃ュ織绠$悊',
+    ELM: {
+      username: '鐢ㄦ埛鍚嶇О',
+      ownedSystem: '鎵�灞炵郴缁�',
+      operationType: '鎿嶄綔绫诲瀷',
+      date: '鏃堕棿',
+      startDate: '寮�濮嬫椂闂�',
+      endDate: '缁撴潫鏃堕棿',
+      to: 'zhi',
+      ip: '瀹㈡埛绔疘P',
+      search: '鎼滅储',
+      reset: '閲嶇疆',
+      all: '鍏ㄩ儴',
+      one: "涓�寮犲浘",
+      add: "鏂板",
+      delete: "鍒犻櫎",
+      edit: "淇敼",
+      query: "鏌ヨ",
+      please: '璇烽�夋嫨',
+      usernameInfo: '杈撳叆鐢ㄦ埛鍚嶃�佷腑鏂囧悕鎴栨嫾闊抽瀛楁瘝鏌ヨ',
+      index: '搴忓彿',
+      largeModuleName: '澶фā鍧楀悕绉�',
+      smallModuleName: '灏忔ā鍧楀悕绉�',
+      resourceName: '璧勬簮鍚嶇О',
+    },
     userManagement: '鐢ㄦ埛绠$悊',
     systemLayout: '绯荤粺閰嶇疆',
     menuSettings: '鑿滃崟璁剧疆',
@@ -65,22 +91,91 @@
     logLog: '鐧诲綍鏃ュ織',
     operationLog: '鎿嶄綔鏃ュ織',
     databaseMonitoring: '鏁版嵁搴撶洃鎺�',
-    operationLogObj:{
-      queryRegion:"鏌ヨ鍖�",
-      resourceName:"璧勬簮鍚嶇О",
-      operationType:"鎿嶄綔绫诲瀷",
-      operatingTime:"鎿嶄綔鏃堕棿",
-      inquire:"鏌ヨ",
-      empty:"娓呯┖",
-      num:"搴忓彿",
-      username:"鐢ㄦ埛鍚�",
-      systematicName:"绯荤粺鍚嶇О",
-      IP:" IP",
-      pleaseInput:"璇疯緭鍏�",
-      pleaseSelect:"璇烽�夋嫨",
-      optionDate:"閫夋嫨鏃ユ湡",
-      selectTime:"閫夋嫨鏃堕棿",
-    }
+    blackwhiteList: "榛�/鐧藉悕鍗�",
+    BWL: {
+      blackList: "榛戝悕鍗�",
+      whiteList: "鐧藉悕鍗�",
+      blackListIP: '榛戝悕鍗旾P',
+      whiteListIP: '鐧藉悕鍗旾P',
+      listIPInfo: '杈撳叆IP鏌ヨ',
+      IPState: 'IP鐘舵��',
+      all: '鍏ㄩ儴',
+      validity: '鐢熸晥',
+      invalidity: '澶辨晥',
+      interceptionCycle: '鎷︽埅鍛ㄦ湡',
+      seconds: '绉�',
+      mins: '鍒�',
+      hours: '鏃�',
+      interceptionNumber: '鎷︽埅娆℃暟',
+      change: '淇敼',
+      search: '鎼滅储',
+      reset: '閲嶇疆',
+      index: "搴忓彿",
+      serviceName: '鏈嶅姟鍚嶇О',
+      accessSourceSystem: '璁块棶鏉ユ簮绯荤粺',
+      IPRequest: '鐢宠IP',
+      servicesRequestUrl: '鐢宠鏈嶅姟Url',
+      resourceIDRequest: '鐢宠璧勬簮Id',
+      serviceSystemRequest: '鐢宠鏈嶅姟绯荤粺',
+      blackListStatus: '榛戝悕鍗曠姸鎬�',
+      operate: '鎿嶄綔',
+      effectiveDate: "鐢熸晥鏃ユ湡",
+      requestUser: "鐢宠浜�",
+      tokenInfo: "token淇℃伅",
+      whiteListStatus: '鐧藉悕鍗曠姸鎬�',
+    },
+    tokentool: 'Token宸ュ叿',
+    tokentoolObj: {
+      first: '鏈嶅姟鍒楄〃',
+      second: 'Token绠$悊',
+      serviceid: '璧勬簮ID',
+      serviceName: '鏈嶅姟鍚嶇О',
+      excelTemplate: 'Excel妯℃澘',
+      uploadExcel: '涓婁紶Excel',
+      serviceToken: 'Token 鐢熸垚澶�',
+      pleaseInput: '鐢宠Token鍚庢澶勫彲澶嶅埗',
+      copy: '澶嶅埗',
+      tokenName: 'Token鏌ヨ',
+      tokenStatus: 'Token鐘舵��',
+      tokenAll: '鍏ㄩ儴',
+      tokeNormal: '姝e父',
+      tokenInvalid: '澶辨晥',
+      tokenRenewal: '缁湡',
+      serialnumber: '搴忓彿',
+      applysystem: '鐢宠浣跨敤绯荤粺',
+      applicantIP: '鐢宠鑰匢P',
+      applicationtime: '鐢宠鏃堕棿',
+      applytime: '鐢宠浣跨敤鏃堕棿(s)',
+      tokenstring: 'Token涓�',
+      serviceAddress: '鏈嶅姟鍦板潃',
+      porstServiceAddress: '浠g悊鍚庢湇鍔″湴鍧�',
+      sourcesystem: '鏉ユ簮绯荤粺',
+      pubicnot: '鏄惁鍏紑',
+      suffixID: '鍚庣紑ID',
+      goonlinenot: '鏄惁涓婄嚎',
+      primaryKey: '涓婚敭',
+      applyToken: '鐢宠Token',
+      operation: '鎿嶄綔',
+      resourcetoken: 'Token鎵�灞炶祫婧怚D',
+      tokeninformation: 'Token淇℃伅',
+      autorenew: '鑷姩缁害',
+    },
+    operationLogObj: {
+      queryRegion: '鏌ヨ鍖�',
+      resourceName: '璧勬簮鍚嶇О',
+      operationType: '鎿嶄綔绫诲瀷',
+      operatingTime: '鎿嶄綔鏃堕棿',
+      inquire: '鏌ヨ',
+      empty: '娓呯┖',
+      num: '搴忓彿',
+      username: '鐢ㄦ埛鍚�',
+      systematicName: '绯荤粺鍚嶇О',
+      IP: ' IP',
+      pleaseInput: '璇疯緭鍏�',
+      pleaseSelect: '璇烽�夋嫨',
+      optionDate: '閫夋嫨鏃ユ湡',
+      selectTime: '閫夋嫨鏃堕棿',
+    },
   },
   synthesis: {
     synthesis: '缁煎悎灞曠ず',
@@ -149,6 +244,24 @@
     operationtype: '鎿嶄綔绫诲瀷',
     operationStatus: '鎿嶄綔鐘舵��',
   },
+  themaic: {
+    name: '涓撻鍦板浘',
+    maptltle: '鍦板浘鍚嶇О',
+    all: '鍏ㄩ儴',
+    sortbytime: '鎸夋椂闂存帓搴�',
+    sortbyviews: '鎸夋祻瑙堟鏁版帓搴�',
+    find: '鍏辨壘鍒�',
+    record: '鏉℃暟鎹�',
+  },
+  archive: {
+    name: '绠¢亾璧勬枡',
+    keyword: '鍏抽敭瀛�',
+    uname: '鍚嶇О',
+    type: '绫诲瀷',
+    modifications: '淇敼娆℃暟',
+    creationtime: '鍒涘缓鏃堕棿',
+    state: '鐘舵��',
+  },
 };
 
 export default zh;
diff --git a/src/components/navMenu.vue b/src/components/navMenu.vue
index 02a8e8f..504277f 100644
--- a/src/components/navMenu.vue
+++ b/src/components/navMenu.vue
@@ -16,6 +16,20 @@
           @close="handleClose"
           @select="handleselect"
         >
+          <el-submenu index="3" class="faSub">
+            <template slot="title">
+              <span>{{ $t("synthesis.synthesis") }}</span>
+            </template>
+            <el-menu-item index="Synthesis">{{
+              $t("synthesis.synthesis")
+            }}</el-menu-item>
+            <el-menu-item index="Thematic">{{
+              $t("synthesis.themaic")
+            }}</el-menu-item>
+            <el-menu-item index="Archive">{{
+              $t("synthesis.archive")
+            }}</el-menu-item>
+          </el-submenu>
           <el-submenu index="1" class="faSub">
             <template slot="title">
               <span>{{ $t("dataManage.dataManage") }}</span>
@@ -76,8 +90,8 @@
               <template slot="title">{{
                 $t("operatManage.operationMonitoring")
               }}</template>
-              <el-menu-item index="systemMonitoring">{{
-                $t("operatManage.systemMonitoring")
+              <el-menu-item index="eventlogManage">{{
+                $t("operatManage.eventlogManage")
               }}</el-menu-item>
               <el-menu-item index="logLog">{{
                 $t("operatManage.logLog")
@@ -88,22 +102,16 @@
               <el-menu-item index="databaseMonitoring">{{
                 $t("operatManage.databaseMonitoring")
               }}</el-menu-item>
+
+              <el-menu-item index="blackwhiteList"
+                >{{ $t("operatManage.blackwhiteList") }}
+              </el-menu-item>
+              <el-menu-item index="tokentool">{{
+                $t("operatManage.tokentool")
+              }}</el-menu-item>
             </el-submenu>
           </el-submenu>
-          <el-submenu index="3" class="faSub">
-            <template slot="title">
-              <span>{{ $t("synthesis.synthesis") }}</span>
-            </template>
-            <el-menu-item index="Synthesis">{{
-              $t("synthesis.synthesis")
-            }}</el-menu-item>
-            <el-menu-item index="Thematic">{{
-              $t("synthesis.themaic")
-            }}</el-menu-item>
-            <el-menu-item index="Archive">{{
-              $t("synthesis.archive")
-            }}</el-menu-item>
-          </el-submenu>
+
           <!-- <el-submenu index="4" class="faSub">
             <template slot="title">鏁版嵁璐ㄦ</template>
             <el-menu-item index="4-1">鏁版嵁璐ㄦ</el-menu-item>
diff --git a/src/router/index.js b/src/router/index.js
index f987f65..29d9e48 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -11,232 +11,265 @@
 import authorityManagement from "@/views/maintenance/authorityManagement.vue"; //鏉冮檺绠$悊
 import safetyManagement from "@/views/maintenance/safetyManagement.vue"; //瀹夊叏绠$悊
 import operationLog from "@/views/maintenance/operationLog.vue"; //鎿嶄綔鏃ュ織
+import eventlogManage from "@/views/maintenance/eventlogManage.vue"; //浜嬩欢鏃ュ織绠$悊
+import blackwhiteList from "@/views/maintenance/blackwhiteList.vue"; //鐧诲綍鏃ュ織
 import logLog from "@/views/maintenance/logLog.vue"; //鐧诲綍鏃ュ織
 import systemMonitoring from "@/views/maintenance/systemMonitoring.vue"; //绯荤粺鐩戞帶
 import databaseMonitoring from "@/views/maintenance/databaseMonitoring.vue"; //鏁版嵁搴撶洃鎺�
 import parameterConfiguration from "@/views/maintenance/parameterConfiguration.vue"; //鍙傛暟閰嶇疆
-//鏁版嵁绠$悊妯″潡
-import catalogueManage from "../views/datamanage/catalogueManage.vue"; //鏁版嵁绠$悊-鐩綍绠$悊
+import tokentool from '@/views/maintenance/tokentool.vue'; //token 宸ュ叿
 
-import dataUpdata from "../views/datamanage/dataUpdata.vue"; //鏁版嵁绠$悊-鏁版嵁涓婁紶
-import dataLoading from "../views/datamanage/dataLoading.vue"; //鏁版嵁绠$悊-鏁版嵁鍏ュ簱
-import metadataManage from "../views/datamanage/metadataManage.vue"; //鏁版嵁绠$悊-鍏冩暟鎹鐞�
-import SpatialData from "../views/datamanage/SpatialData.vue"; //鏁版嵁绠$悊-绌洪棿鏁版嵁
-import versionManage from "../views/datamanage/versionManage.vue"; //鏁版嵁绠$悊-鐗堟湰绠$悊
-import dictionaryManage from "../views/datamanage/dictionaryManage.vue"; //鏁版嵁绠$悊-瀛楀吀绠$悊
-import styleManage from "../views/datamanage/styleManage.vue"; //鏁版嵁绠$悊-鏍峰紡绠$悊
-import addStyle from "../views/datamanage/addStyle.vue"; //鏁版嵁绠$悊-鏍峰紡绠$悊-娣诲姞鏍峰紡
+//鏁版嵁绠$悊妯″潡
+import catalogueManage from '../views/datamanage/catalogueManage.vue'; //鏁版嵁绠$悊-鐩綍绠$悊
+
+import dataUpdata from '../views/datamanage/dataUpdata.vue'; //鏁版嵁绠$悊-鏁版嵁涓婁紶
+import dataLoading from '../views/datamanage/dataLoading.vue'; //鏁版嵁绠$悊-鏁版嵁鍏ュ簱
+import metadataManage from '../views/datamanage/metadataManage.vue'; //鏁版嵁绠$悊-鍏冩暟鎹鐞�
+import SpatialData from '../views/datamanage/SpatialData.vue'; //鏁版嵁绠$悊-绌洪棿鏁版嵁
+import versionManage from '../views/datamanage/versionManage.vue'; //鏁版嵁绠$悊-鐗堟湰绠$悊
+import dictionaryManage from '../views/datamanage/dictionaryManage.vue'; //鏁版嵁绠$悊-瀛楀吀绠$悊
+import styleManage from '../views/datamanage/styleManage.vue'; //鏁版嵁绠$悊-鏍峰紡绠$悊
+import addStyle from '../views/datamanage/addStyle.vue'; //鏁版嵁绠$悊-鏍峰紡绠$悊-娣诲姞鏍峰紡
 
 Vue.use(VueRouter);
 
 const routes = [
   {
-    path: "/",
-    name: "login",
+    path: '/',
+    name: 'login',
     component: login,
   },
   {
-    path: "/Home",
-    name: "Home",
+    path: '/Home',
+    name: 'Home',
     component: Home,
     children: [
       {
-        path: "/Synthesis",
-        name: "Synthesis",
+        path: '/Synthesis',
+        name: 'Synthesis',
         component: Synthesis,
         meta: {
-          title: "缁煎悎灞曠ず",
+          title: '缁煎悎灞曠ず',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/Thematic",
-        name: "Thematic",
+        path: '/Thematic',
+        name: 'Thematic',
         component: Thematic,
         meta: {
-          title: "涓撻鍦板浘",
+          title: '涓撻鍦板浘',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/Archive",
-        name: "Archive",
+        path: '/Archive',
+        name: 'Archive',
         component: Archive,
         meta: {
-          title: "璧勬枡棣�",
+          title: '璧勬枡棣�',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/catalogueManage",
-        name: "catalogueManage",
+        path: '/catalogueManage',
+        name: 'catalogueManage',
         component: catalogueManage,
         meta: {
-          title: "鐩綍绠$悊",
+          title: '鐩綍绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/dataUpdata",
-        name: "dataUpdata",
+        path: '/dataUpdata',
+        name: 'dataUpdata',
         component: dataUpdata,
         meta: {
-          title: "鏁版嵁涓婁紶",
+          title: '鏁版嵁涓婁紶',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/metadataManage",
+        path: '/metadataManage',
         component: metadataManage,
-        name: "metadataManage",
+        name: 'metadataManage',
         meta: {
-          title: "鍏冩暟鎹鐞�",
+          title: '鍏冩暟鎹鐞�',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/dataLoading",
-        name: "dataLoading",
+        path: '/dataLoading',
+        name: 'dataLoading',
         component: dataLoading,
         meta: {
-          title: "鏁版嵁鍏ュ簱",
+          title: '鏁版嵁鍏ュ簱',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
 
       {
-        path: "/SpatialData",
+        path: '/SpatialData',
         component: SpatialData,
-        name: "SpatialData",
+        name: 'SpatialData',
         meta: {
-          title: "绌洪棿鏁版嵁",
+          title: '绌洪棿鏁版嵁',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
 
       {
-        path: "/versionManage",
+        path: '/versionManage',
         component: versionManage,
-        name: "versionManage",
+        name: 'versionManage',
         meta: {
-          title: "鐗堟湰绠$悊",
+          title: '鐗堟湰绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/dictionaryManage",
+        path: '/dictionaryManage',
         component: dictionaryManage,
-        name: "dictionaryManage",
+        name: 'dictionaryManage',
         meta: {
-          title: "瀛楀吀绠$悊",
+          title: '瀛楀吀绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/styleManage",
+        path: '/styleManage',
         component: styleManage,
-        name: "styleManage",
+        name: 'styleManage',
         meta: {
-          title: "鏍峰紡绠$悊",
+          title: '鏍峰紡绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/addStyle",
+        path: '/addStyle',
         component: addStyle,
-        name: "addStyle",
+        name: 'addStyle',
         meta: {
-          title: "鏍峰紡绠$悊",
+          title: '鏍峰紡绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/userManagement",
+        path: '/userManagement',
         component: userManagement,
-        name: "userManagement",
+        name: 'userManagement',
         meta: {
-          title: "鐢ㄦ埛绠$悊",
+          title: '鐢ㄦ埛绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/menuSettings",
+        path: '/menuSettings',
         component: menuSettings,
-        name: "menuSettings",
+        name: 'menuSettings',
         meta: {
-          title: "鑿滃崟璁剧疆",
+          title: '鑿滃崟璁剧疆',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/rests",
+        path: '/rests',
         component: rests,
-        name: "rests",
+        name: 'rests',
         meta: {
-          title: "鍏朵粬璁剧疆",
+          title: '鍏朵粬璁剧疆',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/authorityManagement",
+        path: '/authorityManagement',
         component: authorityManagement,
-        name: "authorityManagement",
+        name: 'authorityManagement',
         meta: {
-          title: "鏉冮檺绠$悊",
+          title: '鏉冮檺绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/safetyManagement",
+        path: '/safetyManagement',
         component: safetyManagement,
-        name: "safetyManagement",
+        name: 'safetyManagement',
         meta: {
-          title: "瀹夊叏绠$悊",
+          title: '瀹夊叏绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/operationLog",
+        path: '/operationLog',
         component: operationLog,
-        name: "operationLog",
+        name: 'operationLog',
         meta: {
-          title: "鎿嶄綔鏃ュ織",
+          title: '鎿嶄綔鏃ュ織',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: "/eventlogManage",
+        component: eventlogManage,
+        name: "eventlogManage",
+        meta: {
+          title: "浜嬩欢鏃ュ織绠$悊",
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
         path: "/logLog",
+        path: '/logLog',
         component: logLog,
-        name: "logLog",
+        name: 'logLog',
         meta: {
-          title: "鐧诲綍鏃ュ織",
+          title: "浜嬩欢鏃ュ織绠$悊",
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/systemMonitoring",
+        path: "/blackwhiteList",
+        component: blackwhiteList,
+        name: "blackwhiteList",
+        meta: {
+          title: "榛�/鐧藉悕鍗�",
+          title: '鐧诲綍鏃ュ織',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/systemMonitoring',
         component: systemMonitoring,
-        name: "systemMonitoring",
+        name: 'systemMonitoring',
         meta: {
-          title: "绯荤粺鐩戞帶",
+          title: '绯荤粺鐩戞帶',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/databaseMonitoring",
+        path: '/databaseMonitoring',
         component: databaseMonitoring,
-        name: "databaseMonitoring",
+        name: 'databaseMonitoring',
         meta: {
-          title: "鏁版嵁搴撶洃鎺�",
+          title: '鏁版嵁搴撶洃鎺�',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/parameterConfiguration",
-        component: parameterConfiguration,
-        name: "parameterConfiguration",
+        path: '/tokentool',
+        component: tokentool,
+        name: 'tokentool',
         meta: {
-          title: "鍙傛暟閰嶇疆",
+          title: 'Token宸ュ叿',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/parameterConfiguration',
+        component: parameterConfiguration,
+        name: 'parameterConfiguration',
+        meta: {
+          title: '鍙傛暟閰嶇疆',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue
index bf302e1..0a74ec6 100644
--- a/src/views/Archive/index.vue
+++ b/src/views/Archive/index.vue
@@ -2,7 +2,7 @@
   <div class="archive">
     <div class="left_active">
       <el-card class="arch_card">
-        <div class="title_active">绠¢亾璧勬枡</div>
+        <div class="title_active">{{ $t("archive.name") }}</div>
         <el-divider />
         <el-tree
           :data="tree"
@@ -17,25 +17,50 @@
         <el-row :gutter="20">
           <el-col :span="6"></el-col>
           <el-col :span="4"
-            ><div style="text-align: right; margin-top: 6px">鍏抽敭瀛�:</div>
+            ><div style="text-align: right; margin-top: 6px">
+              {{ $t("archive.keyword") }}:
+            </div>
           </el-col>
-          <el-col :span="4"> <el-input placeholder="璇疯緭鍏�...." /></el-col>
-          <el-col :span="4"><el-button type="primary">鏌ヨ</el-button></el-col>
+          <el-col :span="4">
+            <el-input :placeholder="$t('common.pleaseInput')"
+          /></el-col>
+          <el-col :span="4"
+            ><el-button type="primary">{{
+              $t("common.iquery")
+            }}</el-button></el-col
+          >
           <el-col :span="6"></el-col>
         </el-row>
         <el-divider />
         <el-card shadow="never" class="middle_card">
           <el-table :data="tableData" style="width: 10000px" stripe>
-            <el-table-column prop="name" label="鍚嶇О" width="180" />
-            <el-table-column prop="type" sortable label="绫诲瀷" width="180" />
+            <el-table-column
+              prop="name"
+              :label="$t('archive.uname')"
+              width="180"
+            />
+            <el-table-column
+              prop="type"
+              sortable
+              :label="$t('archive.type')"
+              width="180"
+            />
             <el-table-column
               prop="count"
               sortable
-              label="淇敼娆℃暟"
+              :label="$t('archive.modifications')"
               width="180"
             />
-            <el-table-column prop="timer" sortable label="鍒涘缓鏃堕棿" />
-            <el-table-column prop="state" label="鐘舵��" width="180" />
+            <el-table-column
+              prop="timer"
+              sortable
+              :label="$t('archive.creationtime')"
+            />
+            <el-table-column
+              prop="state"
+              :label="$t('archive.state')"
+              width="180"
+            />
           </el-table>
         </el-card>
         <el-divider />
diff --git a/src/views/Thematic/index.vue b/src/views/Thematic/index.vue
index a5e268e..e0973ed 100644
--- a/src/views/Thematic/index.vue
+++ b/src/views/Thematic/index.vue
@@ -3,54 +3,98 @@
     <el-card style="height: 100%">
       <el-row :gutter="20">
         <el-col :span="6">
-          <div class="th_title">涓撻鍦板浘</div>
+          <div class="th_title">{{ $t("themaic.name") }}</div>
         </el-col>
         <el-col :span="4" :offset="14">
-          <el-input size="small" placeholder="璇疯緭鍏ュ唴瀹�" suffix-icon="el-icon-search" v-model="input3">
+          <el-input
+            size="small"
+            :placeholder="$t('common.pleaseInput')"
+            suffix-icon="el-icon-search"
+            v-model="input3"
+          >
           </el-input>
         </el-col>
       </el-row>
       <el-divider />
       <el-row>
         <el-col :span="5">
-          <label style="margin-right: 10px">鍦板浘鍚嶇О:</label>
-          <el-select v-model="selvalue" class="m-2" placeholder="Select" style="width: 150px">
-            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+          <label style="margin-right: 10px"
+            >{{ $t("themaic.maptltle") }}:</label
+          >
+          <el-select
+            v-model="selvalue"
+            class="m-2"
+            placeholder="Select"
+            style="width: 150px"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
           </el-select>
         </el-col>
         <el-col :span="3">
           <div style="margin-top: 5px">
-            <label style="margin-right: 10px">鎸夋椂闂存帓搴�:</label>
+            <label style="margin-right: 10px"
+              >{{ $t("themaic.sortbytime") }}:</label
+            >
 
-            <i @click="changetime(1)" :class="{ active: timeindex == 1 }" class="el-icon-caret-bottom"></i>
+            <i
+              @click="changetime(1)"
+              :class="{ active: timeindex == 1 }"
+              class="el-icon-caret-bottom"
+            ></i>
 
-            <i @click="changetime(2)" :class="{ active: timeindex == 2 }" class="el-icon-caret-top"></i>
+            <i
+              @click="changetime(2)"
+              :class="{ active: timeindex == 2 }"
+              class="el-icon-caret-top"
+            ></i>
           </div>
         </el-col>
         <el-col :span="3">
           <div style="margin-top: 5px">
-            <label style="margin-right: 10px">鎸夋祻瑙堟鏁版帓搴�:</label>
+            <label style="margin-right: 10px"
+              >{{ $t("themaic.sortbyviews") }}:</label
+            >
 
-            <i @click="changeChecked(1)" :class="{ active: checkindex == 1 }" class="el-icon-caret-bottom"></i>
+            <i
+              @click="changeChecked(1)"
+              :class="{ active: checkindex == 1 }"
+              class="el-icon-caret-bottom"
+            ></i>
 
-            <i @click="changeChecked(2)" :class="{ active: checkindex == 2 }" class="el-icon-caret-top"></i>
+            <i
+              @click="changeChecked(2)"
+              :class="{ active: checkindex == 2 }"
+              class="el-icon-caret-top"
+            ></i>
           </div>
         </el-col>
         <el-col :span="10"> </el-col>
         <el-col :span="3">
           <div style="margin-top: 5px">
-            <label style="margin-right: 10px">鍏辨壘鍒皗{ listcount }}涓粨鏋�</label>
+            {{ $t("themaic.find") }}
+            <label style="magin: 0% 15px">{{ listcount }}</label>
+            {{ $t("themaic.record") }}
           </div>
         </el-col>
       </el-row>
       <el-divider />
       <el-card shadow="never" class="themic_middle_card">
-        <div @click="showThematic(item)" v-for="(item, i) in middleList" class="midedle_div" :key="i">
+        <div
+          @click="showThematic(item)"
+          v-for="(item, i) in middleList"
+          class="midedle_div"
+          :key="i"
+        >
           <el-card class="middle_card">
             <!-- <div>
-             
-    
-           
+
+
+
            </div> -->
 
             <table>
@@ -61,31 +105,43 @@
               </tr>
               <tr>
                 <td>
-                  <div class="middle_image"
-                    :style="{ background: 'url(' + item.url + ') no-repeat center', 'background-size': '100% 100%', }">
-                  </div>
+                  <div
+                    class="middle_image"
+                    :style="{
+                      background: 'url(' + item.url + ') no-repeat center',
+                      'background-size': '100% 100%',
+                    }"
+                  ></div>
                 </td>
               </tr>
               <tr>
                 <td>
-                  <div style="position: absolute;
-    bottom: 2%;
-    right: 4%;"><label class="t2">{{ item.time }}</label><label class="t2">娴忚{{ item.count }}娆�</label></div>
+                  <div style="position: absolute; bottom: 2%; right: 4%">
+                    <label class="t2">{{ item.time }}</label
+                    ><label class="t2">娴忚{{ item.count }}娆�</label>
+                  </div>
                 </td>
               </tr>
             </table>
-
-
-
-
           </el-card>
         </div>
       </el-card>
-      <el-pagination layout="prev, pager, next, jumper" :total="pagesize" @size-change="handleSizeChange"
-        @current-change="handleCurrentChange" />
+      <el-pagination
+        layout="prev, pager, next, jumper"
+        :total="pagesize"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+      />
     </el-card>
-    <el-dialog class="themaic_dialog" :modal-append-to-body="true" :append-to-body="true" :show-close="false"
-      :visible.sync="dialogVisible" width="99%" :before-close="handleClose">
+    <el-dialog
+      class="themaic_dialog"
+      :modal-append-to-body="true"
+      :append-to-body="true"
+      :show-close="false"
+      :visible.sync="dialogVisible"
+      width="99%"
+      :before-close="handleClose"
+    >
       <map-View @close="close" :typeIndex="typeIndex"></map-View>
     </el-dialog>
   </div>
@@ -173,8 +229,8 @@
       typeIndex: "",
     };
   },
-  mounted(){
-     this.timeindex = 7888;
+  mounted() {
+
   },
   methods: {
     close() {
@@ -210,8 +266,8 @@
     showThematic(res) {
       this.typeIndex = res.index;
       this.dialogVisible = true;
-     
-   
+
+
 
       // var url = "http://localhost/" + res.pop;
       // window.open(
diff --git a/src/views/maintenance/blackwhiteList.vue b/src/views/maintenance/blackwhiteList.vue
new file mode 100644
index 0000000..c646894
--- /dev/null
+++ b/src/views/maintenance/blackwhiteList.vue
@@ -0,0 +1,317 @@
+<template>
+  <div class="logLog_box">
+    <My-bread
+      :list="[
+        `${$t('operatManage.operatManage')}`,
+        `${$t('operatManage.blackwhiteList')}`,
+      ]"
+    ></My-bread>
+    <el-divider />
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane :label="$t('operatManage.BWL.blackList')" name="first">
+        <div class="inquire">
+          <el-form ref="ruleForm" :model="form" :inline="true">
+            <el-form-item
+              :label="$t('operatManage.BWL.blackListIP')"
+              prop="blackListIP"
+            >
+              <el-input
+                v-model="form.blackListIP"
+                :placeholder="$t('operatManage.BWL.listIPInfo')"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="$t('operatManage.BWL.IPState')"
+              prop="IPState"
+            >
+              <el-select v-model="form.IPState">
+                <el-option :label="$t('operatManage.BWL.all')" value="0" />
+                <el-option :label="$t('operatManage.BWL.validity')" value="1" />
+                <el-option
+                  :label="$t('operatManage.BWL.invalidity')"
+                  value="2"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              :label="$t('operatManage.BWL.interceptionCycle')"
+              prop="interceptionCycle"
+            >
+              <el-input
+                v-model="form.interceptionCycle"
+                :placeholder="$t('operatManage.BWL.interceptionCycle')"
+              />
+            </el-form-item>
+            <el-form-item prop="unit">
+              <el-select v-model="form.unit">
+                <el-option :label="$t('operatManage.BWL.seconds')" value="0" />
+                <el-option :label="$t('operatManage.BWL.mins')" value="1" />
+                <el-option :label="$t('operatManage.BWL.hours')" value="2" />
+              </el-select>
+            </el-form-item>
+
+            <el-form-item
+              :label="$t('operatManage.BWL.interceptionNumber')"
+              prop="interceptionNumber"
+            >
+              <el-input
+                v-model="form.interceptionNumber"
+                :placeholder="$t('operatManage.BWL.interceptionNumber')"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="onSubmit">{{
+                $t("operatManage.BWL.change")
+              }}</el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="onSubmit"
+                ><i class="el-icon-search"></i> &nbsp;{{
+                  $t("operatManage.BWL.search")
+                }}</el-button
+              >
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="onSubmit"
+                ><i class="el-icon-delete"></i> &nbsp;{{
+                  $t("operatManage.BWL.reset")
+                }}</el-button
+              >
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="table_box">
+          <el-table :data="tableData" stripe style="width: 100%" height="99%">
+            <el-table-column
+              align="center"
+              type="index"
+              :label="$t('operatManage.BWL.index')"
+              width="70px"
+            />
+            <el-table-column
+              align="center"
+              prop="serviceName"
+              :label="$t('operatManage.BWL.serviceName')"
+            />
+            <el-table-column
+              align="center"
+              prop="accessSourceSystem"
+              :label="$t('operatManage.BWL.accessSourceSystem')"
+            />
+            <el-table-column
+              align="center"
+              prop="IPRequest"
+              :label="$t('operatManage.BWL.IPRequest')"
+            />
+            <el-table-column
+              align="center"
+              prop="servicesRequestUrl"
+              :label="$t('operatManage.BWL.servicesRequestUrl')"
+            />
+
+            <el-table-column
+              align="center"
+              prop="resourceIDRequest"
+              :label="$t('operatManage.BWL.resourceIDRequest')"
+            />
+            <el-table-column
+              align="center"
+              prop="serviceSystemRequest"
+              :label="$t('operatManage.BWL.serviceSystemRequest')"
+            />
+            <el-table-column
+              align="center"
+              prop="blackListStatus"
+              :label="$t('operatManage.BWL.blackListStatus')"
+            />
+            <el-table-column
+              align="center"
+              prop="operate"
+              :label="$t('operatManage.BWL.operate')"
+            />
+          </el-table>
+          <div style="margin-top: 40px" class="pagination_box">
+            <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[10, 20, 30, 40]"
+              :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="0"
+            >
+            </el-pagination>
+          </div>
+        </div>
+      </el-tab-pane>
+      <el-tab-pane :label="$t('operatManage.BWL.whiteList')" name="second"
+        ><div class="inquire">
+          <el-form ref="ruleForm" :model="form" :inline="true">
+            <el-form-item
+              :label="$t('operatManage.BWL.whiteListIP')"
+              prop="whiteListIP"
+            >
+              <el-input
+                v-model="form.blackListIP"
+                :placeholder="$t('operatManage.BWL.listIPInfo')"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="$t('operatManage.BWL.IPState')"
+              prop="IPState"
+            >
+              <el-select v-model="form.IPState">
+                <el-option :label="$t('operatManage.BWL.all')" value="0" />
+                <el-option :label="$t('operatManage.BWL.validity')" value="1" />
+                <el-option
+                  :label="$t('operatManage.BWL.invalidity')"
+                  value="2"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="onSubmit"
+                ><i class="el-icon-search"></i> &nbsp;{{
+                  $t("operatManage.BWL.search")
+                }}</el-button
+              >
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="onSubmit"
+                ><i class="el-icon-delete"></i> &nbsp;{{
+                  $t("operatManage.BWL.reset")
+                }}</el-button
+              >
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="table_box">
+          <el-table :data="tableData" stripe style="width: 100%" height="99%">
+            <el-table-column
+              align="center"
+              type="index"
+              :label="$t('operatManage.BWL.index')"
+              width="70px"
+            />
+            <el-table-column
+              align="center"
+              prop="whiteListIP"
+              :label="$t('operatManage.BWL.whiteListIP')"
+            />
+            <el-table-column
+              align="center"
+              prop="effectiveDate"
+              :label="$t('operatManage.BWL.effectiveDate')"
+            />
+            <el-table-column
+              align="center"
+              prop="requestUser"
+              :label="$t('operatManage.BWL.requestUser')"
+            />
+            <el-table-column
+              align="center"
+              prop="tokenInfo"
+              :label="$t('operatManage.BWL.tokenInfo')"
+            />
+            <el-table-column
+              align="center"
+              prop="whiteListStatus"
+              :label="$t('operatManage.BWL.whiteListStatus')"
+            />
+            <el-table-column
+              align="center"
+              prop="operate"
+              :label="$t('operatManage.BWL.operate')"
+            />
+          </el-table>
+          <div style="margin-top: 40px" class="pagination_box">
+            <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[10, 20, 30, 40]"
+              :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="0"
+            >
+            </el-pagination>
+          </div></div
+      ></el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+  
+  <script>
+import MyBread from "../../components/MyBread.vue";
+
+export default {
+  //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {
+    MyBread,
+  },
+
+  data() {
+    return {
+      activeName: "first",
+      currentPage: 1,
+      form: {
+        blackListIP: "",
+        IPState: "",
+        interceptionCycle: "",
+        unit: "",
+        interceptionNumber: "",
+      },
+      tableData: [],
+    };
+  },
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab, event);
+    },
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+    },
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+    },
+    onSubmit() {
+      console.log("submit!");
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+  },
+  created() {},
+};
+</script>
+  <style lang="less" scoped>
+//@import url(); 寮曞叆鍏叡css绫�
+.logLog_box {
+  background: rgb(240, 242, 245);
+  border-radius: 10px;
+  height: 100%;
+  padding: 10px;
+  box-sizing: border-box;
+  .el-input {
+    width: 300px;
+  }
+  .inquire {
+    padding: 10px;
+    margin-top: 20px;
+    background: #fff;
+    border-radius: 5px;
+    border: 1px solid rgb(202, 201, 204);
+    margin-bottom: 20px;
+  }
+  .table_box {
+    padding: 10px;
+    background: #fff;
+    border-radius: 5px;
+    border: 1px solid rgb(202, 201, 204);
+  }
+  .text-center {
+    text-align: center;
+  }
+}
+</style>
+  
\ No newline at end of file
diff --git a/src/views/maintenance/databaseMonitoring.vue b/src/views/maintenance/databaseMonitoring.vue
index 32c7252..5ff18eb 100644
--- a/src/views/maintenance/databaseMonitoring.vue
+++ b/src/views/maintenance/databaseMonitoring.vue
@@ -1,6 +1,11 @@
 <template>
   <div class="databaseMonitoring_box">
-    <My-bread :list="['杩愮淮绠$悊', '鏁版嵁搴撶洃鎺�']"></My-bread>
+    <My-bread
+      :list="[
+        `${$t('operatManage.operatManage')}`,
+        `${$t('operatManage.databaseMonitoring')}`,
+      ]"
+    ></My-bread>
     <el-divider />
     <div class="table_box">
       <iframe
diff --git a/src/views/maintenance/eventlogManage.vue b/src/views/maintenance/eventlogManage.vue
new file mode 100644
index 0000000..276965f
--- /dev/null
+++ b/src/views/maintenance/eventlogManage.vue
@@ -0,0 +1,306 @@
+<template>
+  <div class="logLog_box">
+    <My-bread
+      :list="[
+        `${$t('operatManage.operatManage')}`,
+        `${$t('operatManage.eventlogManage')}`,
+      ]"
+    ></My-bread>
+    <el-divider />
+    <div class="inquire">
+      <el-form ref="ruleForm" :model="form" :inline="true">
+        <el-form-item :label="$t('operatManage.ELM.username')" prop="username">
+          <el-input
+            v-model="form.username"
+            :placeholder="$t('operatManage.ELM.usernameInfo')"
+          />
+        </el-form-item>
+        <el-form-item
+          :label="$t('operatManage.ELM.ownedSystem')"
+          prop="ownedSystem"
+        >
+          <el-select
+            v-model="form.ownedSystem"
+            :placeholder="$t('operatManage.ELM.please')"
+          >
+            <el-option :label="$t('operatManage.ELM.all')" value="all" />
+            <el-option :label="$t('operatManage.ELM.one')" value="one" />
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          :label="$t('operatManage.ELM.operationType')"
+          prop="operationType"
+        >
+          <el-select
+            v-model="form.operationType"
+            :placeholder="$t('operatManage.ELM.please')"
+          >
+            <el-option :label="$t('operatManage.ELM.all')" value="all" />
+            <el-option :label="$t('operatManage.ELM.add')" value="add" />
+            <el-option :label="$t('operatManage.ELM.delete')" value="delete" />
+            <el-option :label="$t('operatManage.ELM.edit')" value="edit" />
+            <el-option :label="$t('operatManage.ELM.query')" value="query" />
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('operatManage.ELM.date')" prop="date">
+          <el-date-picker
+            v-model="form.date"
+            type="daterange"
+            align="right"
+            unlink-panels
+            :range-separator="$t('operatManage.ELM.to')"
+            :start-placeholder="$t('operatManage.ELM.startDate')"
+            :end-placeholder="$t('operatManage.ELM.endDate')"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item :label="$t('operatManage.ELM.ip')" prop="requestIp">
+          <el-input v-model="form.requestIp" placeholder="璇疯緭鍏�" />
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="onSubmit"
+            ><i class="el-icon-search"></i> &nbsp;{{
+              $t("operatManage.ELM.search")
+            }}</el-button
+          >
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="resetForm('ruleForm')"
+            ><i class="el-icon-delete"></i>&nbsp;{{
+              $t("operatManage.ELM.reset")
+            }}</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="table_box">
+      <el-table :data="tableData" stripe style="width: 100%" height="99%">
+        <el-table-column
+          align="center"
+          type="index"
+          :label="$t('operatManage.ELM.index')"
+          width="70px"
+        />
+        <el-table-column
+          align="center"
+          prop="username"
+          :label="$t('operatManage.ELM.username')"
+        />
+        <el-table-column
+          align="center"
+          prop="ip"
+          :label="$t('operatManage.ELM.ip')"
+        />
+        <el-table-column
+          align="center"
+          prop="ownedSystem"
+          :label="$t('operatManage.ELM.ownedSystem')"
+        />
+        <el-table-column
+          align="center"
+          prop="largeModuleName"
+          :label="$t('operatManage.ELM.largeModuleName')"
+        />
+        <el-table-column
+          align="center"
+          prop="smallModuleName"
+          :label="$t('operatManage.ELM.smallModuleName')"
+        />
+        <el-table-column
+          align="center"
+          prop="resourceName"
+          :label="$t('operatManage.ELM.resourceName')"
+        />
+        <el-table-column
+          align="center"
+          prop="date"
+          :label="$t('operatManage.ELM.date')"
+        />
+        <el-table-column
+          align="center"
+          prop="operationType"
+          :label="$t('operatManage.ELM.operationType')"
+        />
+      </el-table>
+      <div style="margin-top: 40px" class="pagination_box">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 40]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="9"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import MyBread from "../../components/MyBread.vue";
+
+export default {
+  //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {
+    MyBread,
+  },
+
+  data() {
+    return {
+      currentPage: 1,
+      form: {
+        username: "",
+        ownedSystem: "",
+        requestIp: "",
+        operationType: "",
+        date: "",
+      },
+      tableData: [
+        {
+          username: "绠$悊鍛�",
+          ip: "221.182.31.12",
+          date: "2022-08-05",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+        {
+          date: "2022-08-05",
+          username: "绠$悊鍛�",
+          ownedSystem: "",
+          largeModuleName: "杩愮淮鐩戞帶",
+          smallModuleName: "璧勬簮鎿嶄綔鏃ュ織",
+          resourceName: "",
+          operationType: "鏌ヨ",
+          ip: "221.182.31.12",
+        },
+      ],
+    };
+  },
+  methods: {
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+    },
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+    },
+    onSubmit() {
+      console.log("submit!");
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+  },
+  created() {},
+};
+</script>
+<style lang="less" scoped>
+//@import url(); 寮曞叆鍏叡css绫�
+.logLog_box {
+  background: rgb(240, 242, 245);
+  border-radius: 10px;
+  height: 100%;
+  padding: 10px;
+  box-sizing: border-box;
+  .el-input {
+    width: 300px;
+  }
+  .inquire {
+    height: 110px;
+    overflow: auto;
+    padding: 10px;
+    margin-top: 20px;
+    background: #fff;
+    border-radius: 5px;
+    border: 1px solid rgb(202, 201, 204);
+    margin-bottom: 20px;
+    .el-form-item {
+      margin: 7px;
+    }
+  }
+  .table_box {
+    height: 65%;
+    padding: 10px;
+    background: #fff;
+    border-radius: 5px;
+    border: 1px solid rgb(202, 201, 204);
+  }
+  .text-center {
+    text-align: center;
+  }
+}
+</style>
diff --git a/src/views/maintenance/logLog.vue b/src/views/maintenance/logLog.vue
index 9e39d67..ad14326 100644
--- a/src/views/maintenance/logLog.vue
+++ b/src/views/maintenance/logLog.vue
@@ -1,8 +1,16 @@
 <template>
   <div class="logLog_box">
-    <My-bread :list="['杩愮淮绠$悊', '鎿嶄綔鏃ュ織']"></My-bread>
+    <My-bread
+      :list="[
+        `${$t('operatManage.operatManage')}`,
+        `${$t('operatManage.logLog')}`,
+      ]"
+    ></My-bread>
     <el-divider />
     <div class="inquire">
+      <div class="herder_box">
+        {{ $t("operatManage.operationLogObj.queryRegion") }}
+      </div>
       <el-form ref="formData1" :model="form" :inline="true">
         <!-- 鐢ㄦ埛鍚� -->
         <el-form-item :label="$t('common.username')" prop="name">
@@ -135,6 +143,12 @@
     border-radius: 5px;
     border: 1px solid rgb(202, 201, 204);
     margin-bottom: 20px;
+    .herder_box {
+      padding: 10px;
+      border-bottom: 1px solid #ccc;
+      margin-bottom: 20px;
+      font-size: 14px;
+    }
   }
   .table_box {
     padding: 10px;
diff --git a/src/views/maintenance/operationLog.vue b/src/views/maintenance/operationLog.vue
index 9348fb8..0e90af4 100644
--- a/src/views/maintenance/operationLog.vue
+++ b/src/views/maintenance/operationLog.vue
@@ -8,16 +8,28 @@
     ></My-bread>
     <el-divider />
     <div class="inquire">
-    <div class="herder_box">
-      {{$t('operatManage.operationLogObj.queryRegion')}}
-    </div>
+      <div class="herder_box">
+        {{ $t("operatManage.operationLogObj.queryRegion") }}
+      </div>
       <el-form ref="formData1" :model="form" :inline="true">
-        <el-form-item :label="$t('operatManage.operationLogObj.resourceName')" prop="name">
-          <el-input v-model="form.name" :placeholder="$t('operatManage.operationLogObj.pleaseInput')" />
+        <el-form-item
+          :label="$t('operatManage.operationLogObj.resourceName')"
+          prop="name"
+        >
+          <el-input
+            v-model="form.name"
+            :placeholder="$t('operatManage.operationLogObj.pleaseInput')"
+          />
         </el-form-item>
 
-        <el-form-item :label="$t('operatManage.operationLogObj.operationType')" prop="region">
-          <el-select v-model="form.region" :placeholder="$t('operatManage.operationLogObj.pleaseSelect')">
+        <el-form-item
+          :label="$t('operatManage.operationLogObj.operationType')"
+          prop="region"
+        >
+          <el-select
+            v-model="form.region"
+            :placeholder="$t('operatManage.operationLogObj.pleaseSelect')"
+          >
             <el-option label="鍏ㄩ儴" value="shanghai" />
             <el-option label="娴忚" value="beijing" />
             <el-option label="涓嬭浇" value="shanghai" />
@@ -44,28 +56,52 @@
           </el-col>
         </el-form-item>
         <el-form-item>
-          <el-button @click="onSubmit" icon="el-icon-search">{{$t('operatManage.operationLogObj.inquire')}}</el-button>
-          <el-button icon="el-icon-delete">{{$t('operatManage.operationLogObj.empty')}}</el-button>
+          <el-button @click="onSubmit" icon="el-icon-search">{{
+            $t("operatManage.operationLogObj.inquire")
+          }}</el-button>
+          <el-button icon="el-icon-delete">{{
+            $t("operatManage.operationLogObj.empty")
+          }}</el-button>
         </el-form-item>
       </el-form>
     </div>
     <div class="table_box">
       <el-table :data="tableData" stripe style="width: 100%">
         <!-- <el-table-column type="selection" width="55" /> -->
-        <el-table-column :label="$t('operatManage.operationLogObj.num')" type="index" width="80"> </el-table-column>
+        <el-table-column
+          :label="$t('operatManage.operationLogObj.num')"
+          type="index"
+          width="80"
+        >
+        </el-table-column>
         <!-- <el-table-column prop="Accessnumber" label="璁块棶缂栧彿" /> -->
-        <el-table-column prop="name" :label="$t('operatManage.operationLogObj.resourceName')" />
-        <el-table-column prop="operatingsystem" :label="$t('operatManage.operationLogObj.operationType')" />
+        <el-table-column
+          prop="name"
+          :label="$t('operatManage.operationLogObj.resourceName')"
+        />
+        <el-table-column
+          prop="operatingsystem"
+          :label="$t('operatManage.operationLogObj.operationType')"
+        />
 
         <!-- <el-table-column prop="loginaddress" label="鐧诲綍鍦扮偣" /> -->
-        <el-table-column prop="browser" :label="$t('operatManage.operationLogObj.username')" />
-        <el-table-column prop="operatinginformation" :label="$t('operatManage.operationLogObj.systematicName')" />
+        <el-table-column
+          prop="browser"
+          :label="$t('operatManage.operationLogObj.username')"
+        />
+        <el-table-column
+          prop="operatinginformation"
+          :label="$t('operatManage.operationLogObj.systematicName')"
+        />
         <el-table-column prop="ip" label="IP" />
 
-        <el-table-column prop="date" :label="$t('operatManage.operationLogObj.operatingTime')" />
+        <el-table-column
+          prop="date"
+          :label="$t('operatManage.operationLogObj.operatingTime')"
+        />
         <!-- <el-table-column fixed="right" label="鎿嶄綔" width="100">
           <template #default>
-         
+
             <el-button type="primary" size="small">鍒犻櫎</el-button>
           </template>
         </el-table-column> -->
@@ -217,7 +253,7 @@
       console.log("submit!");
     },
   },
-  created() {},
+  created() { },
 };
 </script>
 <style lang="less" scoped>
@@ -235,7 +271,7 @@
     border-radius: 5px;
     border: 1px solid rgb(202, 201, 204);
     margin-bottom: 20px;
-    .herder_box{
+    .herder_box {
       padding: 10px;
       border-bottom: 1px solid #ccc;
       margin-bottom: 20px;
diff --git a/src/views/maintenance/tokentool.vue b/src/views/maintenance/tokentool.vue
new file mode 100644
index 0000000..8e8b72e
--- /dev/null
+++ b/src/views/maintenance/tokentool.vue
@@ -0,0 +1,358 @@
+<template>
+  <div class="tokentool_box">
+    <My-bread
+      :list="[
+        `${$t('operatManage.operatManage')}`,
+        `${$t('operatManage.tokentool')}`,
+      ]"
+    ></My-bread>
+    <el-divider />
+    <div class="inquire">
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane
+          :label="$t('operatManage.tokentoolObj.first')"
+          name="first"
+        >
+          <div class="herder_box">
+            {{ $t("operatManage.operationLogObj.queryRegion") }}
+          </div>
+          <el-form ref="formData1" :model="serviceform" :inline="true">
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.serviceid')"
+              prop="name"
+            >
+              <el-input
+                style="width: 200px"
+                v-model="serviceform.serviceId"
+                :placeholder="$t('common.pleaseInput')"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.serviceName')"
+              prop="region"
+            >
+              <el-input
+                style="width: 200px"
+                v-model="serviceform.serviceId"
+                :placeholder="$t('common.pleaseInput')"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button size="small" @click="onSubmit">{{
+                $t("operatManage.tokentoolObj.excelTemplate")
+              }}</el-button>
+              <el-button size="small" @click="onSubmit">{{
+                $t("operatManage.tokentoolObj.uploadExcel")
+              }}</el-button>
+            </el-form-item>
+            <br />
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.serviceToken')"
+              prop="region"
+            >
+              <el-input
+                style="width: 200px"
+                v-model="serviceform.serviceToken"
+                :disabled="true"
+                :title="$t('operatManage.tokentoolObj.pleaseInput')"
+                :placeholder="$t('operatManage.tokentoolObj.pleaseInput')"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                icon="el-icon-document-copy"
+                size="small"
+                @click="oncopy"
+                >{{ $t("operatManage.tokentoolObj.copy") }}</el-button
+              >
+            </el-form-item>
+            <!-- 鏌ヨ 娓呯┖ -->
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="onSubmit">{{
+                $t("common.iquery")
+              }}</el-button>
+              <el-button icon="el-icon-delete" @click="onEmpty('formData1')">{{
+                $t("common.empty")
+              }}</el-button>
+            </el-form-item>
+          </el-form>
+          <el-table :data="tableData" stripe style="width: 100%">
+            <el-table-column
+              width="120"
+              type="index"
+              :label="$t('operatManage.tokentoolObj.serialnumber')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.serviceName')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.serviceAddress')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.porstServiceAddress')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.serviceid')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.sourcesystem')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.pubicnot')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.suffixID')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.goonlinenot')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.primaryKey')"
+            />
+            <el-table-column
+              fixed="right"
+              :label="$t('operatManage.tokentoolObj.operation')"
+              width="300"
+            >
+              <template #default>
+                <!-- <el-button type="primary" size="small">淇敼</el-button> -->
+
+                <el-button type="danger" size="small">{{
+                  $t("common.delete")
+                }}</el-button>
+                <el-button type="warning" size="small">{{
+                  $t("common.update")
+                }}</el-button>
+                <el-button type="primary" size="small">{{
+                  $t("operatManage.tokentoolObj.applyToken")
+                }}</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane
+          :label="$t('operatManage.tokentoolObj.second')"
+          name="second"
+        >
+          <div class="herder_box">
+            {{ $t("operatManage.operationLogObj.queryRegion") }}
+          </div>
+
+          <el-form ref="formData1" :model="tokenform" :inline="true">
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.serviceid')"
+              prop="name"
+            >
+              <el-input
+                style="width: 200px"
+                v-model="tokenform.tokenId"
+                :placeholder="$t('common.pleaseInput')"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.tokenName')"
+              prop="region"
+            >
+              <el-input
+                style="width: 200px"
+                v-model="tokenform.tokenName"
+                :placeholder="$t('common.pleaseInput')"
+              />
+            </el-form-item>
+
+            <el-form-item
+              :label="$t('operatManage.tokentoolObj.tokenStatus')"
+              prop="region"
+            >
+              <el-select
+                v-model="tokenform.region"
+                :placeholder="$t('common.choose')"
+              >
+                <el-option
+                  :label="$t('operatManage.tokentoolObj.tokenAll')"
+                  value="1"
+                />
+                <el-option
+                  :label="$t('operatManage.tokentoolObj.tokeNormal')"
+                  value="2"
+                />
+                <el-option
+                  :label="$t('operatManage.tokentoolObj.tokenInvalid')"
+                  value="3"
+                />
+              </el-select>
+            </el-form-item>
+
+            <!-- 鏌ヨ 娓呯┖ -->
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="onSubmit">{{
+                $t("common.iquery")
+              }}</el-button>
+              <el-button icon="el-icon-delete" @click="onEmpty('formData1')">{{
+                $t("common.empty")
+              }}</el-button>
+            </el-form-item>
+          </el-form>
+          <el-table :data="tableData1" stripe style="width: 100%">
+            <el-table-column
+              width="120"
+              type="index"
+              :label="$t('operatManage.tokentoolObj.serialnumber')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.serviceName')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.applysystem')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.applicantIP')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.applicationtime')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.applytime')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.tokenstring')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.resourcetoken')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.tokeninformation')"
+            />
+            <el-table-column
+              prop="creationtime"
+              :label="$t('operatManage.tokentoolObj.tokenStatus')"
+            />
+            <el-table-column
+              fixed="right"
+              :label="$t('operatManage.tokentoolObj.autorenew')"
+            >
+            </el-table-column>
+            <el-table-column
+              fixed="right"
+              :label="$t('operatManage.tokentoolObj.operation')"
+              width="200"
+            >
+              <template #default>
+                <el-button type="danger" size="small">{{
+                  $t("operatManage.tokentoolObj.tokenInvalid")
+                }}</el-button>
+                <el-button type="warning" size="small">{{
+                  $t("operatManage.tokentoolObj.tokenRenewal")
+                }}</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+      </el-tabs>
+      <div style="margin-top: 40px" class="pagination_box">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage4"
+          :page-sizes="[10, 20, 30, 40]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="9"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import MyBread from "../../components/MyBread.vue";
+
+export default {
+  //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {
+    MyBread,
+  },
+
+  data() {
+    return {
+      currentPage4: 1,
+      activeName: 'first',
+      serviceform: {
+        serviceId: "",
+        serviceName: "",
+        serviceToken: "",
+      },
+      tokenform: {
+        tokenId: "",
+        tokenName: "",
+        tokenStatus: ""
+      },
+      tableData: [{}],
+      tableData1: [{}]
+    };
+  },
+  methods: {
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+    },
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+    },
+    onSubmit() {
+      console.log("submit!");
+    },
+    onEmpty(formData1) {
+      this.$refs[formData1].resetFields()//閲嶇疆琛ㄥ崟鏁版嵁
+    }
+  },
+  created() { },
+};
+</script>
+<style scoped>
+/deep/ .el-table__fixed-right {
+  height: 100% !important;
+}
+</style>
+<style lang="less" scoped>
+//@import url(); 寮曞叆鍏叡css绫�
+
+.tokentool_box {
+  background: rgb(240, 242, 245);
+  border-radius: 10px;
+  height: 100%;
+  padding: 10px;
+  box-sizing: border-box;
+  .inquire {
+    padding: 10px;
+    margin-top: 20px;
+    background: #fff;
+    border-radius: 5px;
+    border: 1px solid rgb(202, 201, 204);
+    margin-bottom: 20px;
+    .herder_box {
+      padding: 10px;
+      border-bottom: 1px solid #ccc;
+      margin-bottom: 20px;
+      font-size: 14px;
+    }
+  }
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index 3c4014c..0b3fcbf 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,4 +1,9 @@
 module.exports = {
   lintOnSave: false,
-  publicPath: "./",
+  publicPath: './',
+  devServer: {
+    host: '0.0.0.0', //鎸囧畾瑕佷娇鐢ㄧ殑 host
+    port: 12315, //鎸囧畾绔彛鍙蜂互渚﹀惉
+    hotOnly: false, //鍚敤鐑ā鍧楁浛鎹紝鑰屾棤闇�椤甸潰鍒锋柊浣滀负鏋勫缓澶辫触鏃剁殑鍥為��銆�
+  },
 };

--
Gitblit v1.9.3