From eb8b11722d1d778311ae7c4eb47869288e30ade6 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 20 九月 2022 17:33:11 +0800
Subject: [PATCH] 1

---
 src/assets/lang/zh.js               |   37 +++
 src/views/maintenance/tokentool.vue |  358 ++++++++++++++++++++++++++++++++
 src/assets/lang/en.js               |   41 +++
 src/components/navMenu.vue          |    3 
 src/router/index.js                 |  204 +++++++++--------
 src/views/maintenance/logLog.vue    |    9 
 6 files changed, 553 insertions(+), 99 deletions(-)

diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js
index 7c1ccc5..5ccc709 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',
@@ -36,8 +37,44 @@
     logLog: 'ConLog',
     operationLog: 'Operation Log',
     databaseMonitoring: 'Database Monitoring',
+    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',
+      queryRegion: 'QueryRegion',
       resourceName: 'resourceName',
       operationType: 'operationType',
       operatingTime: 'operatingTime',
diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js
index 53b6f96..f5e2dd8 100644
--- a/src/assets/lang/zh.js
+++ b/src/assets/lang/zh.js
@@ -10,6 +10,7 @@
     iquery: '鏌ヨ',
     selectdate: '璇烽�夋嫨鏃ユ湡',
     pleaseInput: '璇疯緭鍏�',
+    update: '淇敼',
   },
   dataManage: {
     dataManage: '鏁版嵁绠$悊',
@@ -36,6 +37,42 @@
     logLog: '鐧诲綍鏃ュ織',
     operationLog: '鎿嶄綔鏃ュ織',
     databaseMonitoring: '鏁版嵁搴撶洃鎺�',
+    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: '璧勬簮鍚嶇О',
diff --git a/src/components/navMenu.vue b/src/components/navMenu.vue
index 02a8e8f..e6a7d08 100644
--- a/src/components/navMenu.vue
+++ b/src/components/navMenu.vue
@@ -88,6 +88,9 @@
               <el-menu-item index="databaseMonitoring">{{
                 $t("operatManage.databaseMonitoring")
               }}</el-menu-item>
+              <el-menu-item index="tokentool">{{
+                $t("operatManage.tokentool")
+              }}</el-menu-item>
             </el-submenu>
           </el-submenu>
           <el-submenu index="3" class="faSub">
diff --git a/src/router/index.js b/src/router/index.js
index f987f65..6ef05d7 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,242 +1,252 @@
-import Vue from "vue";
-import VueRouter from "vue-router";
-import Home from "../views/Home.vue";
-import login from "../components/login";
-import Synthesis from "../views/Synthesis/index.vue"; //缁煎悎灞曠ず
-import Thematic from "../views/Thematic/index.vue"; //涓撻鍦板浘
-import Archive from "../views/Archive/index.vue"; //璧勬枡棣�
-import userManagement from "@/views/maintenance/userManagement.vue"; //鐢ㄦ埛绠$悊
-import menuSettings from "@/views/maintenance/menuSettings.vue"; //鑿滃崟璁剧疆
-import rests from "@/views/maintenance/rests.vue"; //鍏朵粬
-import authorityManagement from "@/views/maintenance/authorityManagement.vue"; //鏉冮檺绠$悊
-import safetyManagement from "@/views/maintenance/safetyManagement.vue"; //瀹夊叏绠$悊
-import operationLog from "@/views/maintenance/operationLog.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 Vue from 'vue';
+import VueRouter from 'vue-router';
+import Home from '../views/Home.vue';
+import login from '../components/login';
+import Synthesis from '../views/Synthesis/index.vue'; //缁煎悎灞曠ず
+import Thematic from '../views/Thematic/index.vue'; //涓撻鍦板浘
+import Archive from '../views/Archive/index.vue'; //璧勬枡棣�
+import userManagement from '@/views/maintenance/userManagement.vue'; //鐢ㄦ埛绠$悊
+import menuSettings from '@/views/maintenance/menuSettings.vue'; //鑿滃崟璁剧疆
+import rests from '@/views/maintenance/rests.vue'; //鍏朵粬
+import authorityManagement from '@/views/maintenance/authorityManagement.vue'; //鏉冮檺绠$悊
+import safetyManagement from '@/views/maintenance/safetyManagement.vue'; //瀹夊叏绠$悊
+import operationLog from '@/views/maintenance/operationLog.vue'; //鎿嶄綔鏃ュ織
+import logLog from '@/views/maintenance/logLog.vue'; //鐧诲綍鏃ュ織
+import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶
+import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //鏁版嵁搴撶洃鎺�
+import tokentool from '@/views/maintenance/tokentool.vue'; //token 宸ュ叿
+import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //鍙傛暟閰嶇疆
 //鏁版嵁绠$悊妯″潡
-import catalogueManage from "../views/datamanage/catalogueManage.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"; //鏁版嵁绠$悊-鏍峰紡绠$悊-娣诲姞鏍峰紡
+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: "/logLog",
+        path: '/logLog',
         component: logLog,
-        name: "logLog",
+        name: 'logLog',
         meta: {
-          title: "鐧诲綍鏃ュ織",
+          title: '鐧诲綍鏃ュ織',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/systemMonitoring",
+        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/maintenance/logLog.vue b/src/views/maintenance/logLog.vue
index baa9b9e..ad14326 100644
--- a/src/views/maintenance/logLog.vue
+++ b/src/views/maintenance/logLog.vue
@@ -8,6 +8,9 @@
     ></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">
@@ -140,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/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>

--
Gitblit v1.9.3