zss
2023-11-17 2518e47a3ac999978fbf14612c967c3bbf421d25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<template>
  <div class="json-editor">
    <textarea ref="textarea" />
  </div>
</template>
 
<script>
  import CodeMirror from 'codemirror'
  import 'codemirror/lib/codemirror.css'
  // 替换主题这里需修改名称
  import 'codemirror/theme/idea.css'
  import 'codemirror/mode/clike/clike'
  export default {
    props: {
      value: {
        type: String,
        required: true
      },
      height: {
        type: String,
        required: true
      }
    },
    data() {
      return {
        editor: false
      }
    },
    watch: {
      value(value) {
        const editorValue = this.editor.getValue()
        if (value !== editorValue) {
          this.editor.setValue(this.value)
        }
      },
      height(value) {
        this.editor.setSize('auto', this.height)
      }
    },
    mounted() {
      this.editor = CodeMirror.fromTextArea(this.$refs.textarea, {
        mode: 'text/x-java',
        lineNumbers: true,
        lint: true,
        lineWrapping: true,
        tabSize: 2,
        cursorHeight: 0.9,
        // 替换主题这里需修改名称
        theme: 'idea',
        readOnly: true
      })
      this.editor.setSize('auto', this.height)
      this.editor.setValue(this.value)
    },
    methods: {
      getValue() {
        return this.editor.getValue()
      }
    }
  }
</script>
 
<style scoped>
  .json-editor{
    height: 100%;
    margin-bottom: 10px;
  }
  .json-editor >>> .CodeMirror {
    font-size: 14px;
    overflow-y:auto;
    font-weight:normal
  }
  .json-editor >>> .CodeMirror-scroll{
  }
  .json-editor >>> .cm-s-rubyblue span.cm-string {
    color: #F08047;
  }
</style>