admin/package-lock.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/package.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/api/business/platformInterfaceLog.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/business/OperaInterfaceLogWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/common/Menu.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/platformInterfaceLog.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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", 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" 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) } admin/src/components/business/OperaInterfaceLogWindow.vue
@@ -1,33 +1,51 @@ <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 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="å¤å¶">å¤å¶ä»£ç </i> </template> </json-viewer> </div> </GlobalWindow> </el-dialog> </template> <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import JsonViewer from 'vue-json-viewer' export default { name: 'OperaInterfaceLogWindow', extends: BaseOpera, components: { GlobalWindow }, components: { JsonViewer }, data () { return { // è¡¨åæ°æ® form: { content: '' content: '', formatContent: {} }, // éªè¯è§å rules: { } }, copyable: { copyText: 'copy', copiedText: 'copied' } } }, created () { @@ -35,15 +53,50 @@ api: '/business/interfaceLog', 'field.id': 'id' }) }, methods: { copyText (val) { this.$message.success('å 容已æåå¤å¶å°åªåæ¿ï¼') }, 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 { .codeEditBox { width: 100%; font-size: 15px; color: #222222; word-wrap: break-word; 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> 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) { 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="请è¾å ¥æ¥å£åç§°" @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>