feat(): 增加codemirror在线代码编辑器

master
DongZeLiang 2024-04-24 21:00:34 +08:00
parent fe64030e86
commit bac8cfba2d
5 changed files with 93 additions and 3 deletions

View File

@ -39,6 +39,7 @@
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
"codemirror": "^5.65.16",
"core-js": "3.25.3",
"echarts": "5.4.0",
"element-ui": "2.15.13",
@ -53,6 +54,7 @@
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"vue": "2.6.12",
"vue-codemirror": "^4.0.6",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-meta": "2.4.0",

View File

@ -0,0 +1,6 @@
@font-face {
font-family: "JetBrainsMono-Medium";
src: '@/assets/font/JetBrains/JetBrainsMono-Medium.ttf';
font-weight: normal;
font-style: normal;
}

View File

@ -2,6 +2,9 @@ import Vue from 'vue'
import Cookies from 'js-cookie'
// 在 main.js 中引入
import '@/assets/font/font.css'
import Element from 'element-ui'
import './assets/styles/element-variables.scss'

View File

@ -1,14 +1,85 @@
<template>
<div>
规则配置
<div class="code-edit">
<codemirror ref="codeMirror" :value="code" :options="cmOptions" />
</div>
</div>
</template>
<script>
import { codemirror } from 'vue-codemirror'
import 'codemirror/mode/clike/clike';
// cm-setting.js
//
import 'codemirror/lib/codemirror.css';
//
import 'codemirror/theme/eclipse.css';
// import 'codemirror/theme/monokai.css';
// html
import 'codemirror/mode/htmlmixed/htmlmixed.js';
//
import 'codemirror/mode/javascript/javascript.js';
import 'codemirror/mode/css/css.js';
import 'codemirror/mode/xml/xml.js';
//
import 'codemirror/addon/fold/foldcode.js';
import 'codemirror/addon/fold/foldgutter.js';
import 'codemirror/addon/fold/foldgutter.css';
import 'codemirror/addon/fold/brace-fold.js';
export default {
components: {
codemirror,
},
props: {
readOnly: {
default: false,
type: Boolean
}
},
name: "EngineConfig",
data() {
return {}
return {
codemirror: null,
code: 'package com.ruoyi;\n' +
'\n' +
'import org.mybatis.spring.annotation.MapperScan;\n' +
'import org.springframework.boot.SpringApplication;\n' +
'import org.springframework.boot.autoconfigure.SpringBootApplication;\n' +
'import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;\n' +
'\n' +
'/**\n' +
' * 启动程序\n' +
' *\n' +
' * @author ruoyi\n' +
' */\n' +
'@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})\n' +
'public class RuoYiApplication {\n' +
' public static void main (String[] args) {\n' +
' SpringApplication.run(RuoYiApplication.class, args);\n' +
' }\n' +
'}\n',
cmOptions: {
autoRefresh: true, // true
value: '', //
mode: 'text/x-java', //Java
tabSize: 4, // tab
styleActiveLine: true, // true/false
lineNumbers: true, //
contentHeight: 800,
theme: 'eclipse', //cobalt/monokai
// json: true,
readOnly: this.readOnly, // true/false;"nocursor"
lineWrapping: false,
foldGutter: true,
gutters: [
'CodeMirror-lint-markers', //
'CodeMirror-linenumbers',
'CodeMirror-foldgutter', //
],
},
}
},
created() {
},
@ -16,6 +87,14 @@ export default {
}
</script>
<style scoped>
<style>
.CodeMirror {
font-family: 'JetBrainsMono-Medium', monospace;
height: auto;
}
.CodeMirror-lines {
line-height: 1.5; /* 这里的1.5是示例表示行间距是字体大小的1.5倍 */
}
</style>