<template>
|
<el-dialog
|
:title="title"
|
width="60%"
|
:withFooter="false"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
append-to-body
|
@confirm="confirm"
|
>
|
<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>
|
</el-dialog>
|
</template>
|
|
<script>
|
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('内容已成功复制到剪切板!')
|
},
|
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>
|
.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>
|