vue diff-match-patch的问题!

想实现左右两边输入框都可以输入的状态目前是不行的,请问如何改造一下。

还多想加几个文本框实现a跟b跟c跟d互相比较找出相同的

vue diff-match-patch的问题!

<template>

<div class="compareClass">

<!-- 代码版本,差异对比 对话框内容 -->

<div id="view" style="margin-top:10px"></div>

</div>

</template>

<script>

// 引入全局实例

import CodeMirror from 'codemirror'

// 核心样式

import 'codemirror/lib/codemirror.css'

// 引入主题后还需要在 options 中指定主题才会生效

import 'codemirror/theme/idea.css'

// 需要引入具体的语法高亮库才会有对应的语法高亮效果

// codemirror 官方其实支持通过 /addon/mode/loadmode.js 和 /mode/meta.js 来实现动态加载对应语法高亮库

// 但 vue 貌似没有无法在实例初始化后再动态加载对应 JS ,所以此处才把对应的 JS 提前引入

import 'codemirror/mode/javascript/javascript.js'

import 'codemirror/mode/css/css.js'

import 'codemirror/mode/xml/xml.js'

import 'codemirror/mode/shell/shell.js'

import 'codemirror/mode/sql/sql.js'

//代码补全提示

import 'codemirror/addon/hint/anyword-hint.js';

import 'codemirror/addon/hint/css-hint.js';

import 'codemirror/addon/hint/html-hint.js';

import 'codemirror/addon/hint/javascript-hint.js';

import 'codemirror/addon/hint/show-hint.css';

import 'codemirror/addon/hint/show-hint.js';

import 'codemirror/addon/hint/sql-hint.js';

import 'codemirror/addon/hint/xml-hint.js';

//代码版本差异比较

import 'codemirror/addon/merge/merge.js'

import 'codemirror/addon/merge/merge.css'

import DiffMatchPatch from 'diff-match-patch'

window.diff_match_patch = DiffMatchPatch

window.DIFF_DELETE = -1

window.DIFF_INSERT = 1

window.DIFF_EQUAL = 0

export default {

name: "Code",

data() {

return {

}

},

created() {

},

mounted() {

this.$nextTick(() => {

this.initUI()

})

},

methods: {

// 初始化

initUI() {

let target = document.getElementById("view");

target.innerHTML = "";

CodeMirror.MergeView(target, {

value: "/*以下为演示内容,请添加您自己的内容 ~_~ */\n" +

"\n" +

"html,\n" +

"body {\n" +

" width: 100%;\n" +

" height: 100%;\n" +

" margin: 0;\n" +

" padding: 0;\n" +

" overflow: hidden;\n" +

" font-family: 'Fira Mono', helvetica, arial, sans-serif;\n" +

" font-weight: 400;\n" +

" font-size: 62.5%;\n" +

"}\n" +

"\n" +

"#webgl-container {\n" +

" width: 100%;\n" +

" height: 100%;\n" +

" cursor: pointer;\n" +

"}\n" +

"\n" +

".loading {\n" +

" position: absolute;\n" +

" width: 100%;\n" +

" height: 100%;\n" +

" background-color: #000000;\n" +

" opacity: 1;\n" +

" -webkit-transition: opacity 1.2s ease-out;\n" +

" -o-transition: opacity 1.2s ease-out;\n" +

" transition: opacity 1.2s ease-out;\n" +

" pointer-events: none;\n" +

" z-index: 5;" +

"}", //上次内容

origLeft: null,

orig: ".dialog-footwer {\n" +

" text-align: center;\n" +

" margin-top: 20px;\n" +

"}\n" +

"\n" +

".toggle_wrap {\n" +

" margin-bottom: 6px;\n" +

" height: auto;\n" +

" overflow-y: auto;\n" +

"}\n" +

".toggle_wrap_card {\n" +

" padding: 0 10px 10px 10px;\n" +

"}\n" +

"\n" +

"/deep/.el-button--success {\n" +

" background-color: parent" title="transparent">transparent;\n" +

" border-color: #5bacff;\n" +

" color: #5bacff;\n" +

"}\n" +

"</style>", //本次内容

lineNumbers: true, //显示行号

smartIndent: true, //自动缩进是否开启\

indentUnit: 2,

mode: "shell",

highlightDifferences: true,

styleActiveLine: true,

matchBrackets: true,

connect: 'align',

theme: 'cobalt',

readOnly: false, //只读 不可修改

});

},

}

};

</script>

<style lang="scss" scode>

.compareClass {

height: 900px;

overflow-y: hidden;

overflow-x: auto;

/deep/.CodeMirror-merge,

.CodeMirror-merge .CodeMirror {

height: 680px;

overflow-y: hidden;

}

}

</style>

以上是 vue diff-match-patch的问题! 的全部内容, 来源链接: utcz.com/p/937010.html

回到顶部