From dd6a43fdbadaaf6d646b3eb2ca0a63f58ed77ea4 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 29 十月 2025 15:56:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao

---
 admin/src/components/business/BorrowingAndReturningRecords.vue |   28 +++-
 admin/src/views/business/categoryJkBanner.vue                  |    4 
 admin/src/views/business/jkVersion.vue                         |    6 
 admin/src/components/business/OperaJkCabinetWindow.vue         |   39 +++++
 admin/src/components/business/OperaJkCustomerImportWindow.vue  |    7 
 admin/src/api/business/jkCustomer.js                           |    2 
 admin/src/components/business/OperaJkKeysWindow.vue            |    4 
 admin/src/api/business/jkInterfacelog.js                       |   26 ++++
 admin/src/components/business/OperaInternalCompanyWindow.vue   |    2 
 admin/src/views/business/jkKeys.vue                            |    4 
 admin/vue.config.js                                            |    2 
 admin/src/views/business/jkCabinet.vue                         |    2 
 admin/src/views/business/jkIccard.vue                          |    6 
 admin/src/components/business/cabinetDetails.vue               |   34 ++++
 admin/src/views/business/jkInterfaceLog.vue                    |  138 +++++++++++++++++++++++
 admin/src/views/business/jkCabinetLog.vue                      |    6 
 admin/src/views/business/internalMember.vue                    |   12 +-
 17 files changed, 283 insertions(+), 39 deletions(-)

diff --git a/admin/src/api/business/jkCustomer.js b/admin/src/api/business/jkCustomer.js
index 16dff52..562c427 100644
--- a/admin/src/api/business/jkCustomer.js
+++ b/admin/src/api/business/jkCustomer.js
@@ -29,7 +29,7 @@
 
 // 鍒犻櫎
 export function deleteById (id) {
-  return request.get(`/business/jkCustomer/delete/${id}`)
+  return request.get(`/visitsAdmin/cloudService/business/jkCustomer/delete/${id}`)
 }
 
 // 鎵归噺鍒犻櫎
diff --git a/admin/src/api/business/jkInterfacelog.js b/admin/src/api/business/jkInterfacelog.js
new file mode 100644
index 0000000..2480288
--- /dev/null
+++ b/admin/src/api/business/jkInterfacelog.js
@@ -0,0 +1,26 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/visitsAdmin/cloudService/business/jkInterfaceLog/page', data, {
+    trim: true
+  })
+}
+
+export function importExcel (data) {
+  return request.post('/visitsAdmin/cloudService/business/jkInterfaceLog/importExcel', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/visitsAdmin/cloudService/business/jkInterfaceLog/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/visitsAdmin/cloudService/business/jkInterfaceLog/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/components/business/BorrowingAndReturningRecords.vue b/admin/src/components/business/BorrowingAndReturningRecords.vue
index 209c667..145add8 100644
--- a/admin/src/components/business/BorrowingAndReturningRecords.vue
+++ b/admin/src/components/business/BorrowingAndReturningRecords.vue
@@ -43,19 +43,25 @@
             :data="list"
             stripe
         >
-            <el-table-column prop="code" label="閽ュ寵缂栧彿" min-width="100px"></el-table-column>
-            <el-table-column prop="cabinetName" label="瀛樻斁浣嶇疆" min-width="100px"></el-table-column>
-            <el-table-column prop="gridName" label="鎵�灞為挜鍖欐煖" min-width="100px"></el-table-column>
+            <el-table-column prop="keyInfo" label="閽ュ寵缂栧彿" min-width="100px"></el-table-column>
+            <el-table-column prop="gridCode" label="瀛樻斁浣嶇疆" min-width="100px"></el-table-column>
+            <el-table-column prop="cabinetName" label="鎵�灞為挜鍖欐煖" min-width="100px"></el-table-column>
             <el-table-column prop="memberName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+            <el-table-column label="绫诲瀷" min-width="100px">
+                <template slot-scope="{row}">
+                    <span v-if="row.keyStatus === 1">宸插綊杩�</span>
+                    <span v-if="row.keyStatus === 2">宸插�熷嚭</span>
+                </template>
+            </el-table-column>
             <el-table-column label="鏃堕棿" min-width="100px">
                 <template slot-scope="{row}">
-                    {{row.startDate}}~{{row.endDate}}
+                    {{row.createDate}}
                 </template>
             </el-table-column>
             <el-table-column label="鐘舵��" min-width="100px">
                 <template slot-scope="{row}">
-                    <el-link v-if="row.status === 0">鎴愬姛</el-link>
-                    <el-link type="danger" v-if="row.status === 1">澶辫触</el-link>
+                    <span v-if="row.status === 0">鎴愬姛</span>
+                    <span v-if="row.status === 1">澶辫触</span>
                 </template>
             </el-table-column>
         </el-table>
@@ -101,6 +107,14 @@
       open (title, id) {
         this.title = title
         this.id = id
+        this.searchForm = {
+          memberName: '',
+          status: '',
+          roleType: '',
+          startDate: '',
+          editDate: ''
+        }
+        this.date = []
         this.getList()
         this.visible = true
       },
@@ -133,11 +147,13 @@
           capacity: 10,
           page: this.page,
           model: {
+            keyId: this.id.id,
             memberName: this.searchForm.memberName,
             status: this.searchForm.status,
             roleType: this.searchForm.roleType,
             startDate: this.searchForm.startDate,
             editDate: this.searchForm.editDate,
+            type: 1
           }
         }).then(res => {
           this.list = res.records
diff --git a/admin/src/components/business/OperaInternalCompanyWindow.vue b/admin/src/components/business/OperaInternalCompanyWindow.vue
index edaf287..a6f2673 100644
--- a/admin/src/components/business/OperaInternalCompanyWindow.vue
+++ b/admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -21,7 +21,7 @@
           <el-form-item label="缁勭粐绫诲瀷" prop="type" v-if="(editType === 'edit' && parentId) || (editType === 'add')" >
             <el-radio-group v-model="form.type" :disabled="(editType === 'edit') || (!!(editType === 'add' && parentId))">
               <el-radio :label="0">鐩稿叧鏂圭粍缁�</el-radio>
-<!--              <el-radio :label="1">鍐呴儴缁勭粐</el-radio>-->
+              <el-radio :label="1">鍐呴儴缁勭粐</el-radio>
             </el-radio-group>
           </el-form-item>
         </el-form>
diff --git a/admin/src/components/business/OperaJkCabinetWindow.vue b/admin/src/components/business/OperaJkCabinetWindow.vue
index 4548467..4d2e072 100644
--- a/admin/src/components/business/OperaJkCabinetWindow.vue
+++ b/admin/src/components/business/OperaJkCabinetWindow.vue
@@ -64,8 +64,8 @@
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="鎵�鍦ㄤ綅缃�" prop="lacation">
-        <el-input v-model="form.lacation" placeholder="璇疯緭鍏ユ墍鍦ㄤ綅缃�" v-trim/>
+      <el-form-item label="鎵�鍦ㄤ綅缃�" prop="location">
+        <el-input v-model="form.location" placeholder="璇疯緭鍏ユ墍鍦ㄤ綅缃�" v-trim/>
       </el-form-item>
       <el-form-item label="缁忕含搴�" prop="jwd">
         <div style="width: 100%; display: flex; align-items: center;">
@@ -95,7 +95,7 @@
         </div>
       </el-form-item>
       <el-form-item label="缂栫爜" prop="noType">
-        <el-radio-group v-model="form.noType" @change="changeNoType">
+        <el-radio-group v-model="form.noType" :disabled="form.id ? true : false" @change="changeNoType">
           <el-radio :label="0">鑷姩缂栫爜</el-radio>
           <el-radio :label="1">鎵嬪姩缂栫爜</el-radio>
         </el-radio-group>
@@ -129,6 +129,13 @@
   extends: BaseOpera,
   components: { GlobalWindow },
   data () {
+    var validate = (rule, value, callback) => {
+      if (this.form.noType === 1 && this.form.noLength === '' || this.form.noIndex === '') {
+        callback(new Error('浣嶆暟鍜岃捣濮嬬紪鍙蜂笉鑳戒负绌猴紒'));
+      } else {
+        callback();
+      }
+    };
     return {
       // 琛ㄥ崟鏁版嵁
       form: {
@@ -141,6 +148,7 @@
         status: 0,
         port: '',
         managerIdList: '',
+        location: '',
         useTime: '',
         doubleAuth: 0,
         authMemberIdList: '',
@@ -184,7 +192,7 @@
           { required: true, message: '璇烽�夋嫨缂栫爜', trigger: 'blur' }
         ],
         noPrefix: [
-          { required: true, message: '璇疯緭鍏ュ墠缂�', trigger: 'blur' }
+          { required: true, validator: validate, trigger: 'blur' }
         ],
         sortType: [
           { required: true, message: '璇疯緭鍏ユ帓鍒楅『搴�', trigger: 'blur' }
@@ -217,6 +225,29 @@
           })
       } else {
         this.$nextTick(() => {
+          this.form = {
+            id: null,
+            code: '',
+            name: '',
+            devId: '',
+            serialNo: '',
+            linkAddr: '',
+            status: 0,
+            port: '',
+            managerIdList: '',
+            useTime: '',
+            doubleAuth: 0,
+            authMemberIdList: '',
+            rowNum: '',
+            columnNum: '',
+            jwd: '',
+            latitude: '',
+            noType: 0,
+            noPrefix: '',
+            noLength: '',
+            noIndex: '',
+            sortType: 0
+          }
           this.$refs.form.resetFields()
           this.form[this.configData['field.id']] = null
         })
diff --git a/admin/src/components/business/OperaJkCustomerImportWindow.vue b/admin/src/components/business/OperaJkCustomerImportWindow.vue
index da46999..36a9b3b 100644
--- a/admin/src/components/business/OperaJkCustomerImportWindow.vue
+++ b/admin/src/components/business/OperaJkCustomerImportWindow.vue
@@ -12,7 +12,7 @@
       1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br>
       2.寤鸿姣忔瀵煎叆鏁版嵁閲忎笉澶т簬3000锛屽彲閲囧彇鍒嗘壒瀵煎叆;<br>
     </p>
-    <el-form class="demo-form-inline" >
+    <el-form class="demo-form-inline" v-loading="loading">
       <el-form-item label="瀹㈡埛淇℃伅" required>
         <div style="width: 100%;display: flex;align-items: center;">
           <el-button type="primary"   @click="clickRef">鐐瑰嚮涓婁紶</el-button>
@@ -39,7 +39,8 @@
   data () {
     return {
       importing:false,
-      fileName: ''
+      fileName: '',
+      loading: false
     }
   },
   methods: {
@@ -57,6 +58,7 @@
       this.$refs.fileExcel.click()
     },
     result (e) {
+      this.loading = true
       const data = new FormData()
       data.append('file', e.target.files[0])
       importExcel(data)
@@ -70,6 +72,7 @@
           this.fileName = ''
         })
         .finally(() => {
+          this.loading = false
           this.$refs.fileExcel.value = null
         })
     }
diff --git a/admin/src/components/business/OperaJkKeysWindow.vue b/admin/src/components/business/OperaJkKeysWindow.vue
index 099b5e2..dd81ab1 100644
--- a/admin/src/components/business/OperaJkKeysWindow.vue
+++ b/admin/src/components/business/OperaJkKeysWindow.vue
@@ -11,7 +11,7 @@
         <el-input v-model="form.code" placeholder="璇疯緭鍏ラ挜鍖欑紪鍙�" v-trim/>
       </el-form-item>
       <el-form-item label="鎵�灞炶溅杈�" prop="carId">
-        <el-select v-model="form.carId" placeholder="璇烽�夋嫨">
+        <el-select v-model="form.carId" filterable placeholder="璇烽�夋嫨">
           <el-option
             v-for="item in carAll"
             :key="item.id"
@@ -78,7 +78,7 @@
   },
   methods: {
     getCars() {
-      allList({ type: 0 })
+      allList({  })
         .then(res => {
           this.carAll = res
         })
diff --git a/admin/src/components/business/cabinetDetails.vue b/admin/src/components/business/cabinetDetails.vue
index d2c5248..f1bb5d4 100644
--- a/admin/src/components/business/cabinetDetails.vue
+++ b/admin/src/components/business/cabinetDetails.vue
@@ -6,8 +6,8 @@
         :withFooter="false"
     >
         <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="閽ュ寵" prop="keyCode">
-                <el-input v-model="searchForm.keyCode" placeholder="璇疯緭鍏ラ挜鍖欑紪鐮佹垨鍚嶇О" @keypress.enter.native="getList"></el-input>
+            <el-form-item label="閽ュ寵缂栫爜" prop="keyCode">
+                <el-input v-model="searchForm.keyCode" placeholder="璇疯緭鍏ラ挜鍖欑紪鐮�" @keypress.enter.native="getList"></el-input>
             </el-form-item>
             <el-form-item label="鐘舵��" prop="status">
                 <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="getList">
@@ -37,7 +37,9 @@
             v-loading="loading"
             :data="list"
             stripe
+            @selection-change="handleSelectionChange"
         >
+            <el-table-column type="selection" width="55"></el-table-column>
             <el-table-column prop="code" label="鏌滄牸缂栫爜" min-width="100px"></el-table-column>
             <el-table-column prop="cabinetName" label="鎵�灞為挜鍖欐煖" min-width="100px"></el-table-column>
             <el-table-column prop="keyId" label="缁戝畾閽ュ寵" min-width="100px">
@@ -104,6 +106,7 @@
       return {
         id: null,
         info: null,
+        ids: [],
         searchForm: {
           keyCode: '',
           status: '',
@@ -118,9 +121,17 @@
       open (title, id) {
         this.title = title
         this.id = id
+        this.searchForm = {
+          keyCode: '',
+          status: '',
+          bindStatus: ''
+        }
         this.getList()
         this.getKeysAll()
         this.visible = true
+      },
+      handleSelectionChange(e) {
+        this.ids = e.map(item => item.id)
       },
       getKeysAll() {
         list({  })
@@ -135,8 +146,20 @@
         if (type === 1) {
           obj.keyId = row.keyId
         } else if (type === 2) {
+          if (!row.boardCode) return
+          if (!/^[1-9]\d*$/.test(row.boardCode)) {
+            this.$message.warning('鍙兘杈撳叆姝f暣鏁�')
+            row.boardCode = ''
+            return
+          }
           obj.boardCode = row.boardCode
         } else if (type === 3) {
+          if (!row.channelCode) return
+          if (!/^[1-9]\d*$/.test(row.channelCode)) {
+            this.$message.warning('鍙兘杈撳叆姝f暣鏁�')
+            row.channelCode = ''
+            return
+          }
           obj.channelCode = row.channelCode
         }
         updateById(obj)
@@ -153,7 +176,7 @@
           cancelButtonText: '鍙栨秷',
           type: 'warning'
         }).then(() => {
-          unBindKeys(this.list.map(item => item.id))
+          unBindKeys(this.ids)
             .then(res => {
               this.getList()
             })
@@ -172,9 +195,9 @@
         this.getList()
       },
       reset() {
-        this.searchForm.keyId = ''
+        this.searchForm.keyCode = ''
         this.searchForm.status = ''
-        this.searchForm.workingStatus = ''
+        this.searchForm.bindStatus = ''
         this.getList()
       },
       getList() {
@@ -186,6 +209,7 @@
             cabinetId: this.id,
             keyId: this.searchForm.keyId,
             status: this.searchForm.status,
+            bindStatus: this.searchForm.bindStatus,
             workingStatus: this.searchForm.workingStatus
           }
         }).then(res => {
diff --git a/admin/src/views/business/categoryJkBanner.vue b/admin/src/views/business/categoryJkBanner.vue
index 9d52097..0776a9b 100644
--- a/admin/src/views/business/categoryJkBanner.vue
+++ b/admin/src/views/business/categoryJkBanner.vue
@@ -24,8 +24,8 @@
           @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="name" show-overflow-tooltip label="骞垮憡" min-width="120px"></el-table-column>
-        <el-table-column prop="imgurl" show-overflow-tooltip label="" min-width="120px">
+        <el-table-column prop="name" show-overflow-tooltip label="骞垮憡鍚嶇О" min-width="120px"></el-table-column>
+        <el-table-column prop="imgurl" show-overflow-tooltip label="骞垮憡鍥�" min-width="120px">
           <template slot-scope="{row}">
             <el-image v-if="row.imgurlFull" style="width: 60px; height: 60px" :src="row.imgurlFull"
                       :preview-src-list="[row.imgurlFull]">
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 0c820ff..76d61e7 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -71,10 +71,10 @@
         <li><el-button type="primary"
             @click="add" icon="el-icon-plus"
             v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
-<!--        <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆', searchForm.companyType)"-->
-<!--            icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>-->
-<!--        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"-->
-<!--            v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>-->
+        <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆', searchForm.companyType)"
+            icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
+        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
+            v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
         <li><el-button type="primary" v-permissions="['business:empower:create']"
             @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button></li>
         <li style="float: right">
@@ -193,8 +193,8 @@
               v-permissions="['business:member:head']">鍙栨秷涓荤</el-button>
             <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row, 1)"
               v-if="row.headStatus == 0" v-permissions="['business:member:head']">璁句负涓荤</el-button>
-<!--            <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red"
-              v-permissions="['business:member:delete']">鍒犻櫎</el-button>-->
+            <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red"
+              v-permissions="['business:member:delete']">鍒犻櫎</el-button>
           </template>
         </el-table-column>
       </el-table>
diff --git a/admin/src/views/business/jkCabinet.vue b/admin/src/views/business/jkCabinet.vue
index a15d6d7..e2182e2 100644
--- a/admin/src/views/business/jkCabinet.vue
+++ b/admin/src/views/business/jkCabinet.vue
@@ -44,7 +44,7 @@
         <el-table-column prop="devId" label="璁惧ID" min-width="100px"></el-table-column>
         <el-table-column prop="linkAddr" label="閫氳鍦板潃" min-width="100px"></el-table-column>
         <el-table-column prop="port" label="绔彛鍙�" min-width="100px"></el-table-column>
-        <el-table-column prop="lacation" label="鎵�鍦ㄤ綅缃�" min-width="100px"></el-table-column>
+        <el-table-column prop="location" label="鎵�鍦ㄤ綅缃�" min-width="100px"></el-table-column>
         <el-table-column label="鏌滄牸鏁伴噺" min-width="100px">
           <template slot-scope="{row}">
             <el-button @click="$refs.cabinetDetails.open(row.name + '-鏌滄牸淇℃伅', row.id)">{{row.gridNum}}</el-button>
diff --git a/admin/src/views/business/jkCabinetLog.vue b/admin/src/views/business/jkCabinetLog.vue
index 6bf29af..eee0af5 100644
--- a/admin/src/views/business/jkCabinetLog.vue
+++ b/admin/src/views/business/jkCabinetLog.vue
@@ -32,6 +32,7 @@
           <el-option label="鍏ㄩ儴" value=""></el-option>
           <el-option label="鍒疯劯" :value="0"></el-option>
           <el-option label="鍒峰崱" :value="1"></el-option>
+          <el-option label="绠$悊鍛�" :value="2"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
@@ -61,11 +62,12 @@
           <template slot-scope="{row}">
             <el-link :underline="false" v-if="row.authType === 0">鍒疯劯</el-link>
             <el-link :underline="false" v-if="row.authType === 1">鍒峰崱</el-link>
+            <el-link :underline="false" v-if="row.authType === 2">绠$悊鍛�</el-link>
           </template>
         </el-table-column>
         <el-table-column prop="cabinetName" label="鎵�灞為挜鍖欐煖" min-width="100px"></el-table-column>
-        <el-table-column prop="editDate" label="鏌滄牸缂栧彿" min-width="100px"></el-table-column>
-        <el-table-column prop="isdeleted" label="閽ュ寵" min-width="100px"></el-table-column>
+        <el-table-column prop="gridCode" label="鏌滄牸缂栧彿" min-width="100px"></el-table-column>
+        <el-table-column prop="keyInfo" label="閽ュ寵" min-width="100px"></el-table-column>
         <el-table-column label="鐘舵��" min-width="100px">
           <template slot-scope="{row}">
             <el-link :underline="false" v-if="row.status === 0">鎴愬姛</el-link>
diff --git a/admin/src/views/business/jkIccard.vue b/admin/src/views/business/jkIccard.vue
index 18fbe95..8ea4504 100644
--- a/admin/src/views/business/jkIccard.vue
+++ b/admin/src/views/business/jkIccard.vue
@@ -2,8 +2,8 @@
   <TableLayout :permissions="['business:jkiccard:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鍗″彿" prop="name">
-        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ崱鍙�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鍗″彿" prop="code">
+        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ュ崱鍙�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="濮撳悕" prop="memberName">
         <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
@@ -97,7 +97,7 @@
     return {
       // 鎼滅储
       searchForm: {
-        name: '',
+        code: '',
         memberName: '',
         userType: '',
         status: ''
diff --git a/admin/src/views/business/jkInterfaceLog.vue b/admin/src/views/business/jkInterfaceLog.vue
new file mode 100644
index 0000000..d2a8c43
--- /dev/null
+++ b/admin/src/views/business/jkInterfaceLog.vue
@@ -0,0 +1,138 @@
+<template>
+  <TableLayout :permissions="['business:jkinterfacelog:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="鎺ュ彛鍚嶇О" prop="name">
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ帴鍙e悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="绫诲瀷" prop="type">
+        <el-select v-model="searchForm.type" @change="search" placeholder="璇烽�夋嫨">
+          <el-option label="璋冪敤" value="0"></el-option>
+          <el-option label="鎺ㄩ�佹帴鍙�" value="1"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="璧锋鏃堕棿" prop="startDate">
+        <el-date-picker type="datetime" v-model="searchForm.startDate" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" />
+        <el-date-picker type="datetime" v-model="searchForm.endDate" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨缁撴潫鏃堕棿" @change="changeRadio" />
+      </el-form-item>
+      <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
+        <el-radio-button label="0">褰撳ぉ</el-radio-button>
+        <el-radio-button label="1">杩�7澶�</el-radio-button>
+        <el-radio-button label="2">杩�30澶�</el-radio-button>
+      </el-radio-group>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe>
+        <el-table-column prop="name" label="鎺ュ彛鍚嶇О" min-width="180px"></el-table-column>
+        <el-table-column prop="url" label="鍦板潃淇℃伅" min-width="180px"></el-table-column>
+        <el-table-column label="绫诲瀷" min-width="100px">
+          <template slot-scope="{row}">
+            <span v-if="row.type == 0">璋冪敤</span>
+            <span v-if="row.type == 1">鎺ㄩ�佹帴鏀�</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="骞冲彴" min-width="100px">
+          <template slot-scope="{row}">
+            <span v-if="row.plat == 0">娴峰悍瀹夐槻骞冲彴</span>
+            <span v-if="row.plat == 1">ERP绯荤粺</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="request" label="璇锋眰鍙傛暟" min-width="100px">
+          <template slot-scope="{row}">
+            <el-button type="text"
+              @click="$refs.operaInterfaceLogWindow.open('璇锋眰鍙傛暟', { content: row.request })">鏌ョ湅</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column prop="repose" label="鍝嶅簲鍙傛暟" min-width="100px">
+          <template slot-scope="{row}">
+            <el-button type="text"
+              @click="$refs.operaInterfaceLogWindow.open('鍝嶅簲鍙傛暟', { content: row.repose })">鏌ョ湅</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+      </el-table>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaInterfaceLogWindow ref="operaInterfaceLogWindow" @success="handlePageChange" />
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaInterfaceLogWindow from '@/components/business/OperaInterfaceLogWindow'
+import { timeForMat } from '@/utils/util'
+export default {
+  name: 'InterfaceLog',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaInterfaceLogWindow },
+  data() {
+    return {
+      // 鎼滅储
+      searchForm: {
+        name: '',
+        type: '',
+        endDate: '',
+        startDate: '',
+        radio: '0'
+      },
+      time: []
+    }
+  },
+  created() {
+    this.config({
+      module: '涓夋柟骞冲彴鎺ュ彛浜や簰璁板綍',
+      api: '/business/jkInterfacelog',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.changeRadio('0')
+  },
+  methods: {
+    changeRadio(e) {
+      if (e === '0') {
+        this.searchForm.startDate = timeForMat(0)[0]
+        this.searchForm.endDate = timeForMat(0)[1]
+      } else if (e === '1') {
+        this.searchForm.startDate = timeForMat(6)[0]
+        this.searchForm.endDate = timeForMat(6)[1]
+      } else if (e === '2') {
+        this.searchForm.startDate = timeForMat(29)[0]
+        this.searchForm.endDate = timeForMat(29)[1]
+      } else {
+        this.searchForm.radio = ''
+      }
+      if (this.searchForm.startDate && this.searchForm.endDate && new Date(this.searchForm.startDate).getTime() > new Date(this.searchForm.endDate).getTime()) {
+        this.$message.error('寮�濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂�')
+        this.searchForm.startDate = ''
+        return
+      }
+      this.search()
+    },
+    seleTime(e) {
+      this.searchForm.startDate = e[0]
+      this.searchForm.endDate = e[1]
+      this.searchForm.radio = null
+      this.search()
+    },
+    reset() {
+      this.$refs.searchForm.resetFields()
+      this.searchForm.startDate = ''
+      this.searchForm.endDate = ''
+      this.searchForm.radio = ''
+      this.time = []
+      this.search()
+    }
+  }
+}
+</script>
diff --git a/admin/src/views/business/jkKeys.vue b/admin/src/views/business/jkKeys.vue
index 23f116e..6e83a1f 100644
--- a/admin/src/views/business/jkKeys.vue
+++ b/admin/src/views/business/jkKeys.vue
@@ -6,7 +6,7 @@
         <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ラ挜鍖欑紪鍙�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="鎵�灞炶溅杈�" prop="carId">
-        <el-select v-model="searchForm.carId" placeholder="璇烽�夋嫨" @change="search">
+        <el-select v-model="searchForm.carId" filterable placeholder="璇烽�夋嫨" @change="search">
           <el-option
             v-for="item in carAll"
             :key="item.id"
@@ -123,7 +123,7 @@
   },
   methods: {
     getCars() {
-      allList({ type: 0 })
+      allList({  })
         .then(res => {
           this.carAll = res
         })
diff --git a/admin/src/views/business/jkVersion.vue b/admin/src/views/business/jkVersion.vue
index fc1e505..932d3c6 100644
--- a/admin/src/views/business/jkVersion.vue
+++ b/admin/src/views/business/jkVersion.vue
@@ -37,7 +37,11 @@
         </el-table-column>
         <el-table-column prop="content" label="鏇存柊鎻忚堪" min-width="100px"></el-table-column>
         <el-table-column prop="name" label="瀹夎鍖�" min-width="100px"></el-table-column>
-        <el-table-column prop="name" label="鏂囦欢澶у皬" min-width="100px"></el-table-column>
+        <el-table-column label="鏂囦欢澶у皬" min-width="100px">
+          <template slot-scope="{row}">
+            {{row.fileSizeMb}}mb
+          </template>
+        </el-table-column>
         <el-table-column label="鏄惁寮哄埗鏇存柊" min-width="100px">
           <template slot-scope="{row}">
             <span v-if="row.isForce === 0">鍚�</span>
diff --git a/admin/vue.config.js b/admin/vue.config.js
index c429385..2120d85 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -7,7 +7,7 @@
 }
 module.exports = {
   publicPath: process.env.VUE_APP_CONTEXT_PATH,
-  outputDir: 'admin',
+  outputDir: 'whyc_admin',
   assetsDir: 'static',
   lintOnSave: false,
   devServer: {

--
Gitblit v1.9.3