From 4925a060c636417792a64f07c1b800e409cbd0cd Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 11 六月 2024 15:50:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/components/common/Menu.vue                      |    2 
 h5/pages/staff/task/visitorReport.vue                     |    2 
 admin/src/views/business/approvalConfiguration.vue        |   19 +-
 admin/package-lock.json                                   |    8 +
 admin/src/views/operation/serviceCar/apprConfig.vue       |   19 +-
 admin/package.json                                        |    1 
 admin/src/views/business/approvalReport.vue               |   19 +-
 h5/pages/staff/task/visitorApprove.vue                    |    2 
 h5/pages/staff/task/index.vue                             |    4 
 admin/src/views/business/platformInterfaceLog.vue         |  145 ++++++++++++++++++++++++
 admin/src/components/business/OperaInterfaceLogWindow.vue |  113 +++++++++++++-----
 admin/src/api/business/platformInterfaceLog.js            |   18 +++
 admin/src/views/operation/serviceCar/apprRecord.vue       |    3 
 admin/src/views/operation/danger/record.vue               |    3 
 14 files changed, 294 insertions(+), 64 deletions(-)

diff --git a/admin/package-lock.json b/admin/package-lock.json
index f3820ef..38ced85 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -13952,6 +13952,14 @@
       "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
       "dev": true
     },
+    "vue-json-viewer": {
+      "version": "2.2.22",
+      "resolved": "https://registry.npmmirror.com/vue-json-viewer/-/vue-json-viewer-2.2.22.tgz",
+      "integrity": "sha512-3oPH5BxoUWva/qp7wNJj+15FBXyi9Yu5VDW4mCWivjHR1pUpMv34fjqqxML7jh2uOqm1S/3Xks5nQ5JjC5+OWw==",
+      "requires": {
+        "clipboard": "^2.0.4"
+      }
+    },
     "vue-loader": {
       "version": "15.9.7",
       "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-15.9.7.tgz",
diff --git a/admin/package.json b/admin/package.json
index 64369f9..b47b3e7 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -26,6 +26,7 @@
     "qrcodejs2": "0.0.2",
     "vue": "^2.6.11",
     "vue-clipboard2": "^0.3.1",
+    "vue-json-viewer": "^2.2.22",
     "vue-router": "^3.5.1",
     "vuescroll": "^4.17.3",
     "vuex": "^3.4.0"
diff --git a/admin/src/api/business/platformInterfaceLog.js b/admin/src/api/business/platformInterfaceLog.js
new file mode 100644
index 0000000..2ecb2e2
--- /dev/null
+++ b/admin/src/api/business/platformInterfaceLog.js
@@ -0,0 +1,18 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/visitsAdmin/cloudService/business/platformInterfaceLog/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/visitsAdmin/cloudService/business/platformInterfaceLog/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/visitsAdmin/cloudService/business/platformInterfaceLog/updateById', data)
+}
diff --git a/admin/src/components/business/OperaInterfaceLogWindow.vue b/admin/src/components/business/OperaInterfaceLogWindow.vue
index 986f828..1533647 100644
--- a/admin/src/components/business/OperaInterfaceLogWindow.vue
+++ b/admin/src/components/business/OperaInterfaceLogWindow.vue
@@ -1,49 +1,102 @@
 <template>
-    <GlobalWindow
+    <el-dialog
         :title="title"
+        width="60%"
         :withFooter="false"
         :visible.sync="visible"
         :confirm-working="isWorking"
+        append-to-body
         @confirm="confirm"
     >
-        <div class="box">
-            {{form.content}}
-        </div>
-    </GlobalWindow>
+      <div class="codeEditBox">
+        <json-viewer
+            :value="form.formatContent"
+            :expand-depth="5"
+            copyable
+            boxed
+            :expanded="false"
+            @copied="copyText"
+            sort
+            :show-array-index="false"
+            class="w-100%">
+          <template slot="copy">
+            <i class="el-icon-document-copy" title="澶嶅埗">澶嶅埗浠g爜</i>
+          </template>
+        </json-viewer>
+      </div>
+    </el-dialog>
 </template>
 
 <script>
-  import BaseOpera from '@/components/base/BaseOpera'
-  import GlobalWindow from '@/components/common/GlobalWindow'
-  export default {
-    name: 'OperaInterfaceLogWindow',
-    extends: BaseOpera,
-    components: { GlobalWindow },
-    data () {
-      return {
-        // 琛ㄥ崟鏁版嵁
-        form: {
-          content: ''
-        },
-        // 楠岃瘉瑙勫垯
-        rules: {
-        }
-      }
+import BaseOpera from '@/components/base/BaseOpera'
+import JsonViewer from 'vue-json-viewer'
+
+export default {
+  name: 'OperaInterfaceLogWindow',
+  extends: BaseOpera,
+  components: { JsonViewer },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        content: '',
+        formatContent: {}
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      },
+      copyable: { copyText: 'copy', copiedText: 'copied' }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/interfaceLog',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    copyText (val) {
+      this.$message.success('鍐呭宸叉垚鍔熷鍒跺埌鍓垏鏉匡紒')
     },
-    created () {
-      this.config({
-        api: '/business/interfaceLog',
-        'field.id': 'id'
+    open (title, target) {
+      this.title = title
+      this.visible = true
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        try {
+          this.form.formatContent = JSON.parse(this.form.content)
+        } catch (e) {
+          this.form.formatContent = this.form.content
+        }
       })
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-    .box {
-        width: 100%;
-        font-size: 15px;
-        color: #222222;
-        word-wrap: break-word;
+    .codeEditBox {
+      width: 100%;
+      height: 90%;
+      overflow:auto;
+      display: block;
+      border: 1px solid #dcdee2;
+      overflow-y: auto;
+    }
+    ::v-deep .el-dialog__body{height:70vh;overflow-y: auto}
+    ::v-deep .el-dialog{height:78vh;overflow: hidden}
+    .jv-container {
+      //height: 60vh;
     }
 </style>
diff --git a/admin/src/components/common/Menu.vue b/admin/src/components/common/Menu.vue
index 0a5b41e..15f7c56 100644
--- a/admin/src/components/common/Menu.vue
+++ b/admin/src/components/common/Menu.vue
@@ -61,7 +61,7 @@
         return
       }
       // 鐐瑰嚮褰撳墠鑿滃崟涓嶅仛澶勭悊
-      if (menuConfig.url === this.$route.path && menuConfig.params === this.$route.query.param) {
+      if (menuConfig.url === this.$route.path && (menuConfig.params ==null || menuConfig.params==undefined || menuConfig.params=='' ||  menuConfig.params === this.$route.query.param)) {
         return
       }
       if (menuConfig.url == null || menuConfig.url.trim().length === 0) {
diff --git a/admin/src/views/business/approvalConfiguration.vue b/admin/src/views/business/approvalConfiguration.vue
index 622d55f..e9c66d7 100644
--- a/admin/src/views/business/approvalConfiguration.vue
+++ b/admin/src/views/business/approvalConfiguration.vue
@@ -32,13 +32,13 @@
                 <div class="content">
                   <div v-if="item.objIds && item.objIds.length === 1 ">
                     <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else-if="item.objIds && item.objIds.length > 1">
-                    <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}绛�</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span>{{ item.objIds[0].name }} 绛�</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else>璇烽�夋嫨</div>
                   <i class="el-icon-arrow-right"></i>
@@ -277,7 +277,7 @@
           item.active = true
           if (item.objIds && item.objIds.length > 0) {
             const objIds = item.objIds.map(i => {
-              return i.id + '-' + i.name
+              return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
             })
             this.$set(this.searchForm, 'objIds', objIds)
           } else {
@@ -298,18 +298,19 @@
               item.objIds = item.memberList.map(i => {
                 return {
                   id: i.id,
-                  name: i.name
+                  name: i.name,
+                  companyName: i.companyName
                 }
               })
             }
           })
           this.apprList = arr
+          this.flowClick(0)
+          this.$forceUpdate()
         }
 
         // console.log(res);
       })
-      this.flowClick(0)
-      this.$forceUpdate()
     },
     onSubmit () {
       const { apprList, activeType } = this
diff --git a/admin/src/views/business/approvalReport.vue b/admin/src/views/business/approvalReport.vue
index 81e1aa2..3f9c573 100644
--- a/admin/src/views/business/approvalReport.vue
+++ b/admin/src/views/business/approvalReport.vue
@@ -28,13 +28,13 @@
                 <div class="content">
                   <div v-if="item.objIds && item.objIds.length === 1 ">
                     <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else-if="item.objIds && item.objIds.length > 1">
-                    <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}绛�</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span>{{ item.objIds[0].name }} 绛�</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else>璇烽�夋嫨</div>
                   <i class="el-icon-arrow-right"></i>
@@ -264,7 +264,7 @@
           item.active = true
           if (item.objIds && item.objIds.length > 0) {
             const objIds = item.objIds.map(i => {
-              return i.id + '-' + i.name
+              return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
             })
             this.$set(this.searchForm, 'objIds', objIds)
           } else {
@@ -285,18 +285,19 @@
               item.objIds = item.memberList.map(i => {
                 return {
                   id: i.id,
-                  name: i.name
+                  name: i.name,
+                  companyName: i.companyName
                 }
               })
             }
           })
           this.apprList = arr
+          this.flowClick(0)
+          this.$forceUpdate()
         }
 
         // console.log(res);
       })
-      this.flowClick(0)
-      this.$forceUpdate()
     },
     onSubmit () {
       const { apprList, activeType } = this
diff --git a/admin/src/views/business/platformInterfaceLog.vue b/admin/src/views/business/platformInterfaceLog.vue
new file mode 100644
index 0000000..c554833
--- /dev/null
+++ b/admin/src/views/business/platformInterfaceLog.vue
@@ -0,0 +1,145 @@
+<template>
+    <TableLayout :permissions="['business:interfacelog: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
+                    @change="seleTime"
+                    v-model="time"
+                    type="datetimerange"
+                    format="yyyy-MM-dd HH:mm:ss"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    range-separator="鑷�"
+                    start-placeholder="寮�濮嬫椂闂�"
+                    end-placeholder="缁撴潫鏃堕棿">
+                </el-date-picker>
+            </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
+                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/platformInterfaceLog',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.changeRadio('0')
+  },
+  methods: {
+    changeRadio (e) {
+      if (e === '0') {
+        this.searchForm.startTime = timeForMat(0)[0]
+        this.searchForm.endTime = timeForMat(0)[1]
+        this.time = timeForMat(0)
+      } else if (e === '1') {
+        this.searchForm.startTime = timeForMat(6)[0]
+        this.searchForm.endTime = timeForMat(6)[1]
+        this.time = timeForMat(6)
+      } else if (e === '2') {
+        this.searchForm.startTime = timeForMat(29)[0]
+        this.searchForm.endTime = timeForMat(29)[1]
+        this.time = timeForMat(29)
+      }
+      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.time = []
+      this.search()
+    }
+  }
+}
+</script>
diff --git a/admin/src/views/operation/danger/record.vue b/admin/src/views/operation/danger/record.vue
index b59dedd..83b4168 100644
--- a/admin/src/views/operation/danger/record.vue
+++ b/admin/src/views/operation/danger/record.vue
@@ -125,7 +125,8 @@
         queryEndTime: '',
         areaId: null,
         cateId: null,
-        status:null
+        status: null,
+        radio: 0
       },
       cateList: [],
       areaList: [],
diff --git a/admin/src/views/operation/serviceCar/apprConfig.vue b/admin/src/views/operation/serviceCar/apprConfig.vue
index 4e203a3..c860674 100644
--- a/admin/src/views/operation/serviceCar/apprConfig.vue
+++ b/admin/src/views/operation/serviceCar/apprConfig.vue
@@ -32,13 +32,13 @@
                 <div class="content">
                   <div v-if="item.objIds && item.objIds.length === 1 ">
                     <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else-if="item.objIds && item.objIds.length > 1">
-                    <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}绛�</span>
-                    <span v-if="item.approveType == 0"> 鎴栫</span>
-                    <span v-if="item.approveType == 1"> 浼氱</span>
+                    <span>{{ item.objIds[0].name }} 绛�</span>
+                    <span v-if="item.approveType == 0 && item.type == '0'"> 鎴栫</span>
+                    <span v-if="item.approveType == 1 && item.type == '0'"> 浼氱</span>
                   </div>
                   <div v-else>璇烽�夋嫨</div>
                   <i class="el-icon-arrow-right"></i>
@@ -286,7 +286,7 @@
           item.active = true
           if (item.objIds && item.objIds.length > 0) {
             const objIds = item.objIds.map(i => {
-              return i.id + '-' + i.name
+              return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
             })
             this.$set(this.searchForm, 'objIds', objIds)
           } else {
@@ -307,18 +307,19 @@
               item.objIds = item.memberList.map(i => {
                 return {
                   id: i.id,
-                  name: i.name
+                  name: i.name,
+                  companyName: i.companyName
                 }
               })
             }
           })
           this.apprList = arr
+          this.flowClick(0)
+          this.$forceUpdate()
         }
 
         // console.log(res);
       })
-      this.flowClick(0)
-      this.$forceUpdate()
     },
     onSubmit () {
       const { apprList, activeType } = this
diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue
index 34fab76..2ed565a 100644
--- a/admin/src/views/operation/serviceCar/apprRecord.vue
+++ b/admin/src/views/operation/serviceCar/apprRecord.vue
@@ -132,7 +132,8 @@
         queryStartTime: '',
         queryEndTime: '',
         type: null,
-        status:null
+        status: null,
+        radio: 0
       },
       cateList: [],
       areaList: [],
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index 8410340..39d32d6 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -27,13 +27,13 @@
           @click="statusClick(1)"
           :class="{ active: search.queryType === 1 }"
           class="box_head_item"
-          >宸插鐞� {{ headData.noticeDealNum }}</view
+          >宸插鐞�</view
         >
         <view
           @click="statusClick(2)"
           :class="{ active: search.queryType === 2 }"
           class="box_head_item"
-          >鎴戝彂璧风殑 {{ headData.noticeCreateNum }}</view
+          >鎴戝彂璧风殑</view
         >
         <view
           @click="statusClick(3)"
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index 8f0b95e..06d856a 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -138,7 +138,7 @@
       </view>
     </view>
     <view class="emyty"></view>
-    <view class="main_footer">
+    <view v-if="info.approveDateVO!=null&& info.approveDateVO.canBeApproved!=null && info.approveDateVO.canBeApproved ==1" class="main_footer">
       <view class="btn" @click="handleSub(3)">鎷掔粷</view>
       <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
     </view>
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index b877e17..6bc59ab 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -131,7 +131,7 @@
       </view>
     </view>
     <view class="emyty"></view>
-    <view class="main_footer">
+    <view v-if="info.approveDateVO!=null&& info.approveDateVO.canBeApproved!=null && info.approveDateVO.canBeApproved ==1" class="main_footer">
       <view class="btn" @click="handleSub(3)">鎷掔粷</view>
       <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
     </view>

--
Gitblit v1.9.3