<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> 
 |