From c3c67ee9e88c579e8ac784821ab41f58d0372ebb Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 11 六月 2024 15:46:34 +0800 Subject: [PATCH] 最新版本 --- admin/src/components/common/Menu.vue | 2 admin/src/views/business/platformInterfaceLog.vue | 145 +++++++++++++++++++++++++++++ admin/src/components/business/OperaInterfaceLogWindow.vue | 113 ++++++++++++++++------ admin/package-lock.json | 8 + admin/package.json | 1 admin/src/api/business/platformInterfaceLog.js | 18 +++ 6 files changed, 256 insertions(+), 31 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/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> -- Gitblit v1.9.3