npm install
npm run dev
npm run build
想着 90%+ 的内容都是 Ctrl+C、Ctrl+V 得到的,也就顺手扔回 github,有需要的自取,毕竟现在做平台的测开同学越来越多了,保不齐就有同栈却没工夫自己去实现的
地址:vue-mindeditor
下面效果图是我自己抽出组件嵌入自己的平台的样子,其实我更建议:
感谢大佬的开源,最近平台也想加这个,基于 g6 改的,效果不如你这个,有点想换这个了
赞一个,同栈,但是暂时没用上思维导图功能
antd pro 貌似自带这个功能?
左边的测试用例管理也有吗?
赞,左边的测试用例管理开源就好了,学习学习
大佬,想问下,我如何重新初始化思维导图(就是我读取到了某个文件,要展示出来),研究了半天,还弄出来
没支持文件导入功能,可以从 localStorage 导入或者通过父组件传值进来,保证 JSON 格式
建议自己去搜一下 vue 父子组建通讯方式
子组件:
<script>
export default {
data() {
return {
mindText: ""
};
},
mounted() {
var Editor = require("../../script/editor");
var el = this.$el;
var editor = (window.editor = new Editor(el));
this.setEditor(editor);
if (this.minds) {
this.mindText = JSON.parse(this.minds);
editor.minder.importJson(this.mindText);
window.localStorage.mindText = this.minds;
} else if (window.localStorage.mindText) {
editor.minder.importJson(JSON.parse(window.localStorage.mindText));
this.mindText = JSON.parse(window.localStorage.mindText);
}
editor.minder.on("contentchange", function() {
window.localStorage.mindText = JSON.stringify(editor.minder.exportJson());
});
editor.minder.execCommand("camera", editor.minder.getRoot(), 600);
window.minder = window.km = editor.minder;
this.setMinder(editor.minder);
this.executeCallback();
},
......
props: ["minds"]
};
</script>
父组件
<template>
<div>
<div class="main-container">
<header-menu></header-menu>
<mainEditor :minds="mindText"></mainEditor>
<navigator></navigator>
</div>
</div>
</template>
mounted() {
this.initData()
},
created() {
this.$eventBus.$on('getTestCaseFileData', (message) => {
this.tempData = message;
// console.log(this.tempData)
this.initData();
})
},
computed: {
...mapGetters([
'minder',
])
},
methods: {
...mapActions([
'executeCallback'
]),
...mapMutations([
'setMinder',
'setEditor'
]),
initData() {
var Editor = require('../script/editor');
var el = this.$el;
var editor = window.editor = new Editor(el);
this.setEditor(editor);
// if (window.localStorage.mindText) {
// editor.minder.importJson(JSON.parse(window.localStorage.mindText));
// }
editor.minder.importJson(this.tempData);
window.localStorage.mindText = this.tempData
console.log(this.tempData)
editor.minder.on('contentchange', function () {
window.localStorage.mindText = JSON.stringify(editor.minder.exportJson());
});
editor.minder.execCommand("camera", editor.minder.getRoot(), 600);
console.log(editor.minder.exportJson())
window.minder = window.km = editor.minder;
this.setMinder(editor.minder);
this.executeCallback();
}
},
我是这样子写的,一开始初始化的时候 this.tempData 是有效的,但是后续通过组件传值,改变 tempData,然后调用 ininData 函数重新初始化,但是发现没有真的改变当前的思维导图数据~~所以不太明白,当组件已经渲染完成后,后续的思维导图数据如何改变
重新渲染——在父组件用 v-if 控制一下就行了,这点开销还是没所谓的
<mainEditor :minds="mindText" v-if="showMind"></mainEditor>
基本所有 canvas 和 svg 框架做的图形图表数据刷新貌似都需要重新渲染
不顶一个吗?
太赞了
每时每刻都在刷新等待大佬开源
坐等!!
鸡冻
等待大佬。
前端 build 报这个错误, 怎么处理。
1、估计是你动了什么文件了,恢复回去吧,报错看起来是 build/webpack.prod.conf.js:
new UglifyJsPlugin({
uglifyOptions: {
show_copyright: false,
comments: false,
compress: {
warnings: false,
drop_debugger: true,
drop_console: false
}
},
2、打开 config/index.js 里面 build.productionSourceMap 为 true,再构建看看到底错哪里了
我没动,我直接用 vue-mindeditor 项目一样问题。 我怀疑是不是 node 版本不对。 请问你用的 node 是什么版本的。
说白了 ,这真是为了 kpi 造的
大佬好,请问如何才能添加链接功能呢,看了一遍有点儿懵,不知道如何下手,万望不吝赐教
大兄弟,带测试用例管理的代码开源了么?