|
@@ -1,6 +1,12 @@
|
|
|
<template>
|
|
|
<div id="sand-edit-container" class="sand-edit-container">
|
|
|
- <div class="sand-toolbar">
|
|
|
+ <span class="slide-icon slide-right" @click="slideHandle" v-show="isSlideLeft">
|
|
|
+ <i class="el-icon-d-arrow-right"></i>
|
|
|
+ </span>
|
|
|
+ <div class="sand-toolbar" v-show="!isSlideLeft">
|
|
|
+ <span class="slide-icon slide-left" @click="slideHandle">
|
|
|
+ <i class="el-icon-d-arrow-left"></i>
|
|
|
+ </span>
|
|
|
<el-tabs v-model="activeToolTabName" stretch class="sand-toolbar-tabs">
|
|
|
<el-tab-pane label="元素库" name="元素库" id="element">
|
|
|
<div class="sand-elements-tab">
|
|
@@ -91,8 +97,9 @@
|
|
|
<img src="~@/assets/img/sand_new/eye-show-black.png" />
|
|
|
<span>链接展示</span>
|
|
|
</div> -->
|
|
|
- <el-button size="large" type="primary" plain @click="copySandHandle" style="margin-right: 20px;min-width: 120px;">复制图片</el-button>
|
|
|
- <el-button type="primary" size="large" @click="saveChart(null)" style="min-width: 120px;">保存</el-button>
|
|
|
+ <el-button size="large" type="primary" plain @click="copySandHandle" style="margin-right: 20px;min-width: 120px;"
|
|
|
+ v-permission="permissionBtn.sandboxPermission.sandbox_addMy">复制图片</el-button>
|
|
|
+ <el-button type="primary" size="large" @click="saveChart(null)" style="min-width: 120px;" v-permission="permissionBtn.sandboxPermission.sandbox_saveView">保存</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="sand-main-body">
|
|
@@ -111,7 +118,7 @@
|
|
|
<div :class="nodeTextDisable?'tool-disabled':''" class="dropdown-box">
|
|
|
<el-tooltip content="字体" placement="top" :open-delay="250">
|
|
|
<div class="dropdown-content" >
|
|
|
- <div class="dropdown-content-text" >{{ styleOptions.fontF }}</div>
|
|
|
+ <div class="dropdown-content-text" style="width:28px">{{ styleOptions.fontF }}</div>
|
|
|
<img src="~@/assets/img/sand_new/tools/select-icon.png" style="width: 8px;height: 5px;"/>
|
|
|
</div>
|
|
|
</el-tooltip>
|
|
@@ -279,7 +286,7 @@
|
|
|
<el-tooltip content="线条宽度" placement="top" :open-delay="250">
|
|
|
<div class="dropdown-content" >
|
|
|
<img :src="nodeEdgeDisable?
|
|
|
- require('@/assets/img/sand_new/tools/line-width.png'):
|
|
|
+ require('@/assets/img/sand_new/tools/line-width-disabled.png'):
|
|
|
require('@/assets/img/sand_new/tools/line-width.png')"
|
|
|
style="vertical-align: middle;"/>
|
|
|
</div>
|
|
@@ -608,8 +615,6 @@ import { myGraph } from '../common/gragh';
|
|
|
import { myNodes,myNodeOption } from '../common/node';
|
|
|
import { myEdgeOption } from '../common/edge';
|
|
|
import { Addon } from '@antv/x6'
|
|
|
-import { configOpt } from '../common/toolConfig';
|
|
|
-// import {setGraph,render} from "../common/mindmap"
|
|
|
import mindmap from "../common/mindmap"
|
|
|
import {styleSettings,familyOptions,fontSizeOptions,colorsOptions,lineHeightOptions} from "../common/toolConfig"
|
|
|
import { ElDropdownMenu as DropdownMenu } from 'element-ui';
|
|
@@ -623,9 +628,7 @@ import { chartSetMixin } from '../../dataEntry_manage/mixins/chartPublic'
|
|
|
import Chart from '../../dataEntry_manage/components/chart.vue'
|
|
|
import mPage from "@/components/mPage.vue";
|
|
|
import { svgToBase64 } from '@/utils/svgToblob'
|
|
|
-// import popover from './popover.vue';
|
|
|
-import { Graph} from '@antv/x6'
|
|
|
-const { line} = configOpt;
|
|
|
+
|
|
|
export default {
|
|
|
name:"sandFlowIndex",
|
|
|
components:{
|
|
@@ -645,7 +648,7 @@ const { line} = configOpt;
|
|
|
mindmapDataUse:[],
|
|
|
mindmapAssistData:{
|
|
|
mindmapDataRecoverUse:[],//用于恢复撤销和重做时被删除的思维导图数据
|
|
|
- mindmapDataRecoverPtr:-1, //当前索引
|
|
|
+ // mindmapDataRecoverPtr:-1, //当前索引
|
|
|
},
|
|
|
sandSaveParams:{
|
|
|
Name:'',
|
|
@@ -712,7 +715,8 @@ const { line} = configOpt;
|
|
|
popoverTriggerDom:null,
|
|
|
popoverTimeout:null,
|
|
|
linkNode:null,
|
|
|
- popoverFlod:true
|
|
|
+ popoverFlod:true,
|
|
|
+ isSlideLeft:false
|
|
|
}
|
|
|
},
|
|
|
mixins:[mindmap,chartSetMixin],
|
|
@@ -724,12 +728,11 @@ const { line} = configOpt;
|
|
|
/* 选中搜索指标 展开目录 选中指标 展示数据 */
|
|
|
search_dataBaseId(newval) {
|
|
|
if (newval) {
|
|
|
- console.log(newval);
|
|
|
if(this.addLinkSearchParams.linkType==1){
|
|
|
let search_obj = this.dataBaseOptions.find(
|
|
|
(item) => item.EdbInfoId === newval
|
|
|
);
|
|
|
- console.log(search_obj,'search_obj');
|
|
|
+ // console.log(search_obj,'search_obj');
|
|
|
if(search_obj){
|
|
|
this.checkedLinkList.push({
|
|
|
RId:this.addLinkSearchParams.linkType+'-'+search_obj.EdbInfoId,
|
|
@@ -874,6 +877,7 @@ const { line} = configOpt;
|
|
|
Name,
|
|
|
SandboxClassifyId,
|
|
|
Content: JSON.stringify(this.graph.toJSON()),
|
|
|
+ PicUrl:'',
|
|
|
MindmapData:JSON.stringify(this.mindmapDataUse)
|
|
|
}).then((res) => {
|
|
|
if(res.Ret !== 200) return
|
|
@@ -882,29 +886,31 @@ const { line} = configOpt;
|
|
|
},
|
|
|
// 初始化画布
|
|
|
init() {
|
|
|
- const graph = new myGraph('sand-chart-container',this.mindmapDataUse,this.mindmapAssistData);
|
|
|
- graph.history.on('change', (args) => {
|
|
|
+ const graph = new myGraph('sand-chart-container',this.getMindmapDataUse,this.mindmapAssistData);
|
|
|
+ this.graph = graph;
|
|
|
+
|
|
|
+ this.graph.history.on('change', (args) => {
|
|
|
// console.log(args,'change-history');
|
|
|
- this.canUndo = graph.canUndo()
|
|
|
- this.canRedo = graph.canRedo()
|
|
|
+ this.canUndo = this.graph.canUndo()
|
|
|
+ this.canRedo = this.graph.canRedo()
|
|
|
// console.log(this.canUndo,this.canRedo);
|
|
|
})
|
|
|
- graph.history.on('undo', (args) => {
|
|
|
- console.log(args,'undo-history');
|
|
|
+ this.graph.history.on('undo', (args) => {
|
|
|
+ // console.log(args,'undo-history');
|
|
|
// let ids=[]
|
|
|
let mindmapNodes=args.cmds.filter(it => it.data.props && it.data.props.shape.indexOf('mindmap')!=-1 && it.data.node)
|
|
|
if(!(mindmapNodes && mindmapNodes.length>0)) return
|
|
|
- // console.log(mindmapNodes,'mindmapNodes');
|
|
|
+ console.log(mindmapNodes,'mindmapNodes');
|
|
|
let mindmapUndoType=mindmapNodes[0].event
|
|
|
if(mindmapUndoType=="cell:added"){
|
|
|
this.mindmapRecoverRemove(mindmapNodes)
|
|
|
}else if(mindmapUndoType=="cell:removed"){
|
|
|
this.mindmapRecoverAdd()
|
|
|
}
|
|
|
- console.log(this.mindmapDataUse);
|
|
|
+ // console.log(this.mindmapDataUse);
|
|
|
})
|
|
|
- graph.history.on('redo', (args) => {
|
|
|
- console.log(args,'redo-history');
|
|
|
+ this.graph.history.on('redo', (args) => {
|
|
|
+ // console.log(args,'redo-history');
|
|
|
// let ids=[]
|
|
|
let mindmapNodes=args.cmds.filter(it => it.data.props && it.data.props.shape.indexOf('mindmap')!=-1 && it.data.node)
|
|
|
if(!(mindmapNodes && mindmapNodes.length>0)) return
|
|
@@ -915,12 +921,18 @@ const { line} = configOpt;
|
|
|
}else if(mindmapUndoType=="cell:removed"){
|
|
|
this.mindmapRecoverRemove(mindmapNodes)
|
|
|
}
|
|
|
- console.log(this.mindmapDataUse,'mindmapDataUse');
|
|
|
+ // console.log(this.mindmapDataUse,'mindmapDataUse');
|
|
|
})
|
|
|
- graph.on('node:mouseenter', ({ node, e }) => {
|
|
|
- console.log(node);
|
|
|
+ this.graph.on('node:mouseenter', ({ node, e }) => {
|
|
|
+ // console.log(node);
|
|
|
let data = node.data
|
|
|
this.linkNode = node
|
|
|
+ let isMindmap = node.shape.indexOf('mindmap')!=-1
|
|
|
+ this.contextMenuOption.map(item =>{
|
|
|
+ if(item.key=='copy'){
|
|
|
+ item.show=!isMindmap
|
|
|
+ }
|
|
|
+ })
|
|
|
if(data && data.linkData && data.linkData.length>0){
|
|
|
this.popoverFlod = data.linkFold
|
|
|
this.popoverVisible=false
|
|
@@ -941,10 +953,9 @@ const { line} = configOpt;
|
|
|
this.checkedLinkList = currentLinks.filter(link =>{
|
|
|
return EdbInfoIdList.includes(link.Id) || ChartInfoIdList.includes(link.Id) || ReportIdList.includes(link.Id)
|
|
|
})
|
|
|
- let clinetPositon=graph.localToClient(node.position())
|
|
|
+ let clinetPositon=this.graph.localToClient(node.position())
|
|
|
let size=node.size()
|
|
|
- console.log(clinetPositon.y,'clinetPositon');
|
|
|
- // const dom = $('#link-reference')[0];
|
|
|
+ // console.log(clinetPositon.y,'clinetPositon');
|
|
|
// console.log(this.popoverTriggerDom,'domdomdom');
|
|
|
this.popoverTriggerDom.style.left = clinetPositon.x+size.width/2 + 'px';
|
|
|
this.popoverTriggerDom.style.top = clinetPositon.y + 'px';
|
|
@@ -977,7 +988,7 @@ const { line} = configOpt;
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- graph.on('node:mouseleave', ({ node, e }) => {
|
|
|
+ this.graph.on('node:mouseleave', ({ node, e }) => {
|
|
|
if(!this.popoverTimeout){
|
|
|
this.popoverTimeout= setTimeout(()=>{
|
|
|
this.popoverVisible=false
|
|
@@ -989,17 +1000,15 @@ const { line} = configOpt;
|
|
|
|
|
|
})
|
|
|
|
|
|
- graph.on('node:change:position', (args) => {
|
|
|
- console.log(args);
|
|
|
+ this.graph.on('node:change:position', (args) => {
|
|
|
if(args.node.data && args.node.data.linkData && args.node.data.linkData.length>0
|
|
|
&&this.popoverVisible){
|
|
|
- console.log(args.node.data.linkData);
|
|
|
+ // console.log(args.node.data.linkData);
|
|
|
this.changePopoverPositon(args)
|
|
|
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- this.graph = graph;
|
|
|
this.dnd = new Addon.Dnd({
|
|
|
target: this.graph,
|
|
|
animation: true,
|
|
@@ -1009,6 +1018,9 @@ const { line} = configOpt;
|
|
|
});
|
|
|
this.setGraph()
|
|
|
},
|
|
|
+ getMindmapDataUse(){
|
|
|
+ return this.mindmapDataUse
|
|
|
+ },
|
|
|
dragStart(data,e) {
|
|
|
// console.log(data,e,"触发了")
|
|
|
const { key,shape } = data;
|
|
@@ -1021,7 +1033,6 @@ const { line} = configOpt;
|
|
|
},
|
|
|
edgeDragStart(type,e){
|
|
|
this.addType = type
|
|
|
- console.log(type,"触发了边")
|
|
|
},
|
|
|
edgeDragover(e){
|
|
|
e.preventDefault()
|
|
@@ -1030,12 +1041,12 @@ const { line} = configOpt;
|
|
|
if(!this.addType){
|
|
|
return
|
|
|
}
|
|
|
- console.log(this.addType,e);
|
|
|
- console.log(this.graph);
|
|
|
+ // console.log(this.addType,e);
|
|
|
+ // console.log(this.graph);
|
|
|
let position = this.graph.clientToLocal({x:e.clientX,y:e.clientY})
|
|
|
if(this.addType.indexOf("Mindmap")!==-1){
|
|
|
//插入思维导图
|
|
|
- console.log("插入思维导图");
|
|
|
+ // console.log("插入思维导图");
|
|
|
this.generateMindmapData(position,this.addType)
|
|
|
this.mindMapRender(this.mindmapDataUse.length-1)
|
|
|
}else{
|
|
@@ -1103,7 +1114,7 @@ const { line} = configOpt;
|
|
|
|
|
|
for (let i = 0; i < cells.length; i++) {
|
|
|
const element = cells[i];
|
|
|
- console.log(element);
|
|
|
+ // console.log(element);
|
|
|
if(element.shape.indexOf("edge") !=-1){
|
|
|
element.setAttrs({
|
|
|
line:{
|
|
@@ -1122,7 +1133,7 @@ const { line} = configOpt;
|
|
|
fill:styleData.backgroundColor,
|
|
|
stroke:styleData.borderColor,
|
|
|
},
|
|
|
- label:{
|
|
|
+ text:{
|
|
|
fill:styleData.color
|
|
|
}
|
|
|
})
|
|
@@ -1137,7 +1148,7 @@ const { line} = configOpt;
|
|
|
}else if(key=="deleteLink"){
|
|
|
this.deleteLink()
|
|
|
}else{
|
|
|
- contextEvent(this.graph, key);
|
|
|
+ contextEvent(this.graph, key,this.mindmapDataUse,this.mindmapAssistData);
|
|
|
}
|
|
|
this.hideContextMenu();
|
|
|
},
|
|
@@ -1150,13 +1161,13 @@ const { line} = configOpt;
|
|
|
},
|
|
|
addLinkDialogOpen(){
|
|
|
const select_cell = this.graph.getSelectedCells()[0]
|
|
|
- console.log(select_cell);
|
|
|
+ // console.log(select_cell);
|
|
|
if(select_cell){
|
|
|
this.checkedLinkList = select_cell.data ? select_cell.data.linkData ||[]:[]
|
|
|
}else{
|
|
|
this.checkedLinkList=[]
|
|
|
}
|
|
|
- console.log(this.checkedLinkList);
|
|
|
+ // console.log(this.checkedLinkList);
|
|
|
this.addLinkSearchParams.linkType=1
|
|
|
this.changeLinkType()
|
|
|
this.addLinkShow=true
|
|
@@ -1169,7 +1180,7 @@ const { line} = configOpt;
|
|
|
}
|
|
|
},
|
|
|
saveLink(){
|
|
|
- console.log("保存链接",select_cell);
|
|
|
+ // console.log("保存链接",select_cell);
|
|
|
const select_cell = this.graph.getSelectedCells()[0]
|
|
|
if(select_cell.data){
|
|
|
select_cell.data.linkData = this.checkedLinkList
|
|
@@ -1189,7 +1200,7 @@ const { line} = configOpt;
|
|
|
// })
|
|
|
// console.log(source,'sourcesource');
|
|
|
// select_cell.addChild(source)
|
|
|
- console.log(select_cell);
|
|
|
+ // console.log(select_cell);
|
|
|
this.$message.success("链接保存成功")
|
|
|
this.addLinkShow=false
|
|
|
},
|
|
@@ -1213,8 +1224,8 @@ const { line} = configOpt;
|
|
|
img.onload = ()=>{
|
|
|
canvas.width = img.width;
|
|
|
canvas.height = img.height;
|
|
|
- console.log('width',img.width)
|
|
|
- console.log('height',img.height)
|
|
|
+ // console.log('width',img.width)
|
|
|
+ // console.log('height',img.height)
|
|
|
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
|
|
ctx.fillStyle="#fff";
|
|
|
ctx.fillRect(0, 0, img.width, img.height);
|
|
@@ -1249,6 +1260,21 @@ const { line} = configOpt;
|
|
|
//设置viewBox使图像居中
|
|
|
svg.setAttribute('viewBox',`${x-25} ${y-25} ${width+50} ${height+50}`)
|
|
|
let gNode = svg.getElementsByClassName('x6-graph-svg-viewport')[0]
|
|
|
+ // 去掉不该截图的添加图标
|
|
|
+ let leftImg = svg.getElementsByClassName('left-topic-image')
|
|
|
+ for (let i = 0; i < leftImg.length; i++) {
|
|
|
+ const element = leftImg[i];
|
|
|
+ element.parentElement.removeChild(element)
|
|
|
+ i--
|
|
|
+ }
|
|
|
+ let rightImg = svg.getElementsByClassName('right-topic-image')
|
|
|
+ for (let i = 0; i < rightImg.length; i++) {
|
|
|
+ const element = rightImg[i];
|
|
|
+ element.parentElement.removeChild(element)
|
|
|
+ i--
|
|
|
+ }
|
|
|
+ // console.log(leftImg,rightImg,'rightImg');
|
|
|
+
|
|
|
let textNode = document.createElement('text')
|
|
|
textNode.setAttribute('x',x-tx+width-90)
|
|
|
textNode.setAttribute('y',y-ty+height+22)
|
|
@@ -1345,6 +1371,19 @@ const { line} = configOpt;
|
|
|
svg.setAttribute('viewBox',`${x-25} ${y-25} ${width+50} ${height+50}`)
|
|
|
// 在图表右下方 加上"来源:弘则研究"字样
|
|
|
let gNode = svg.getElementsByClassName('x6-graph-svg-viewport')[0]
|
|
|
+ // 去掉不该截图的添加图标
|
|
|
+ let leftImg = svg.getElementsByClassName('left-topic-image')
|
|
|
+ for (let i = 0; i < leftImg.length; i++) {
|
|
|
+ const element = leftImg[i];
|
|
|
+ element.parentElement.removeChild(element)
|
|
|
+ i--
|
|
|
+ }
|
|
|
+ let rightImg = svg.getElementsByClassName('right-topic-image')
|
|
|
+ for (let i = 0; i < rightImg.length; i++) {
|
|
|
+ const element = rightImg[i];
|
|
|
+ element.parentElement.removeChild(element)
|
|
|
+ i--
|
|
|
+ }
|
|
|
let textNode = document.createElement('text')
|
|
|
textNode.setAttribute('x',x-tx+width-90)
|
|
|
textNode.setAttribute('y',y-ty+height+22)
|
|
@@ -1444,7 +1483,7 @@ const { line} = configOpt;
|
|
|
let refXValue;
|
|
|
let currentAttr= this.selectCells[0].getAttrs()
|
|
|
if(attr.indexOf('fontWeight')!=-1){
|
|
|
- styleValue = currentAttr.text.fontWeight == "normal"?'bold':'normal'
|
|
|
+ styleValue = currentAttr.text.fontWeight == "bold"?'normal':'bold'
|
|
|
}else if(attr.indexOf('fontStyle')!=-1){
|
|
|
styleValue = currentAttr.text.fontStyle == "italic"?'normal':'italic'
|
|
|
}else if(attr.indexOf('textDecoration')!=-1){
|
|
@@ -1459,13 +1498,13 @@ const { line} = configOpt;
|
|
|
refXValue='100%'
|
|
|
}
|
|
|
}
|
|
|
- console.log(this.selectCells[0].attr(attr),styleValue,'styleValue');
|
|
|
+ // console.log(this.selectCells[0].attr(attr),styleValue,'styleValue');
|
|
|
|
|
|
if(this.selectCells[0].shape.indexOf('edge')!=-1){
|
|
|
// 边的情况
|
|
|
attrReal=attrReal.replace('body','line')
|
|
|
}
|
|
|
- console.log(attrReal,'attrReal');
|
|
|
+ // console.log(attrReal,'attrReal');
|
|
|
if(this.selectCells[0].attr(attrReal) === styleValue){
|
|
|
return
|
|
|
}
|
|
@@ -1636,7 +1675,7 @@ const { line} = configOpt;
|
|
|
}
|
|
|
},200),
|
|
|
async getChartDetail(ChartInfoId) {
|
|
|
- console.log(ChartInfoId);
|
|
|
+ // console.log(ChartInfoId);
|
|
|
const res = await dataBaseInterface.getChartInfoById({ChartInfoId})
|
|
|
if (res.Ret !== 200) return;
|
|
|
this.chartInfo = res.Data.ChartInfo || {}
|
|
@@ -1660,7 +1699,7 @@ const { line} = configOpt;
|
|
|
linkClick(item){
|
|
|
if(this.activeItemRId == item.RId) return
|
|
|
this.activeItemRId = item.RId
|
|
|
- console.log(item);
|
|
|
+ // console.log(item);
|
|
|
if(item.Type==3){
|
|
|
this.$message.info('研报类型的暂无回显')
|
|
|
}else if(item.Type==1){
|
|
@@ -1674,7 +1713,7 @@ const { line} = configOpt;
|
|
|
}
|
|
|
|
|
|
|
|
|
- console.log('回显');
|
|
|
+ // console.log('回显');
|
|
|
},
|
|
|
linkDelete(item,index){
|
|
|
if(this.activeItemRId == item.RId){
|
|
@@ -1768,7 +1807,7 @@ const { line} = configOpt;
|
|
|
unselectIds.map(item =>{
|
|
|
let rId = this.addLinkSearchParams.linkType+'-'+item
|
|
|
let index = this.checkedLinkList.findIndex(link => rId==link.RId)
|
|
|
- console.log(index);
|
|
|
+ // console.log(index);
|
|
|
if(index!=-1){
|
|
|
this.checkedLinkList.splice(index,1)
|
|
|
}
|
|
@@ -1793,7 +1832,7 @@ const { line} = configOpt;
|
|
|
this.popoverVisible=false
|
|
|
},
|
|
|
navigateTo(item){
|
|
|
- console.log(item,'item');
|
|
|
+ // console.log(item,'item');
|
|
|
if(item.Type == 1){
|
|
|
if(item.databaseType==0){
|
|
|
// 普通指标
|
|
@@ -1818,7 +1857,7 @@ const { line} = configOpt;
|
|
|
this.popoverVisible=false
|
|
|
let clinetPositon=this.graph.localToClient(args.current)
|
|
|
let size=args.node.size()
|
|
|
- console.log(this.popoverTriggerDom,'domdomdom');
|
|
|
+ // console.log(this.popoverTriggerDom,'domdomdom');
|
|
|
this.popoverTriggerDom.style.left = clinetPositon.x+size.width/2 + 'px';
|
|
|
this.popoverTriggerDom.style.top = clinetPositon.y + 'px';
|
|
|
this.$nextTick(()=>{
|
|
@@ -1829,7 +1868,7 @@ const { line} = configOpt;
|
|
|
let shouldOperations=[]
|
|
|
this.mindmapDataUse.map((item,index)=>{
|
|
|
let levelIds = mindmapNodes.filter(mindMap => mindMap.data.id.startsWith(item.mindmapData.id)).map(mindMap => mindMap.data.id)
|
|
|
- console.log(levelIds,'levelIds');
|
|
|
+ // console.log(levelIds,'levelIds');
|
|
|
if(!(levelIds && levelIds.length>0)) return
|
|
|
// console.log(levelIds,'levelIds');
|
|
|
let mindMapIds=[...levelIds]
|
|
@@ -1837,20 +1876,20 @@ const { line} = configOpt;
|
|
|
const element = levelIds[i]
|
|
|
mindMapIds=mindMapIds.filter( id => id.indexOf(element) !=0 || id==element)
|
|
|
}
|
|
|
- console.log(mindMapIds,'mindMapIds');
|
|
|
+ // console.log(mindMapIds,'mindMapIds');
|
|
|
shouldOperations.push(mindMapIds)
|
|
|
})
|
|
|
- // 重做删除时 恢复数据指针回退
|
|
|
- // if(
|
|
|
- // this.mindmapAssistData.mindmapDataRecoverPtr==(this.mindmapAssistData.mindmapDataRecoverUse.length-1)){
|
|
|
- // // this.mindmapAssistData.mindmapDataRecoverPtr--
|
|
|
- this.mindmapAssistData.mindmapDataRecoverUse.push(JSON.stringify(this.mindmapDataUse))
|
|
|
- // }
|
|
|
- this.mindmapAssistData.mindmapDataRecoverPtr++
|
|
|
- console.log(this.mindmapAssistData.mindmapDataRecoverUse[this.mindmapAssistData.mindmapDataRecoverPtr],
|
|
|
- this.mindmapDataUse,this.mindmapAssistData.mindmapDataRecoverPtr,this.mindmapAssistData.mindmapDataRecoverUse.length,
|
|
|
- 'this.mindmapAssistData.mindmapDataRecoverPtr');
|
|
|
- console.log(shouldOperations,'shouldOperations');
|
|
|
+ // 重做删除时 恢复数据指针前进
|
|
|
+ console.log(this.canRedo,'this.canRedo');
|
|
|
+ if(!this.canRedo){
|
|
|
+ console.log('canredo no');
|
|
|
+ this.mindmapAssistData.mindmapDataRecoverUse=[JSON.stringify(this.mindmapDataUse)]
|
|
|
+ }else{
|
|
|
+ console.log('canredo');
|
|
|
+ this.mindmapAssistData.mindmapDataRecoverUse.push(JSON.stringify(this.mindmapDataUse))
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(this.mindmapAssistData.mindmapDataRecoverUse,this.mindmapDataUse,this.mindmapAssistData.mindmapDataRecoverUse.length);
|
|
|
shouldOperations.map(it =>{
|
|
|
it.map(it1 =>{
|
|
|
this.deleteMindmapData(it1,this.mindmapDataUse)
|
|
@@ -1859,15 +1898,14 @@ const { line} = configOpt;
|
|
|
},
|
|
|
mindmapRecoverAdd(){
|
|
|
// 重做添加时 恢复数据指针前进
|
|
|
- this.mindmapDataUse=JSON.parse(this.mindmapAssistData.mindmapDataRecoverUse[this.mindmapAssistData.mindmapDataRecoverPtr])
|
|
|
- this.mindmapAssistData.mindmapDataRecoverUse.pop()
|
|
|
- this.mindmapAssistData.mindmapDataRecoverPtr--
|
|
|
- console.log(this.mindmapAssistData.mindmapDataRecoverUse[this.mindmapAssistData.mindmapDataRecoverPtr],
|
|
|
- this.mindmapDataUse,this.mindmapAssistData.mindmapDataRecoverPtr,this.mindmapAssistData.mindmapDataRecoverUse.length,
|
|
|
- 'this.mindmapAssistData.mindmapDataRecoverPtr');
|
|
|
+ console.log(this.mindmapAssistData.mindmapDataRecoverUse.length,this.mindmapAssistData.mindmapDataRecoverUse);
|
|
|
+ let recoverData = this.mindmapAssistData.mindmapDataRecoverUse.pop()
|
|
|
+ console.log(JSON.parse(recoverData) ,this.mindmapAssistData.mindmapDataRecoverUse.length,this.mindmapAssistData.mindmapDataRecoverUse,'回复的数据');
|
|
|
+ if(recoverData) this.mindmapDataUse=JSON.parse(recoverData)
|
|
|
+ console.log(this.mindmapDataUse,'回复后');
|
|
|
},
|
|
|
deleteMindmapData(id,data){
|
|
|
- console.log(id,data,'id,data');
|
|
|
+ // console.log(id,data,'id,data');
|
|
|
// return
|
|
|
let ids = id.split('-')
|
|
|
let mindmapDataIndex = data.findIndex(mindmap => mindmap.mindmapData.id == ids[0])
|
|
@@ -1884,11 +1922,15 @@ const { line} = configOpt;
|
|
|
mindmapData=mindmapData.children.find(it => it.id==findId)
|
|
|
}
|
|
|
let endId = ids[ids.length-1]
|
|
|
- console.log(mindmapData.children,'mindmapData.children');
|
|
|
+ // console.log(mindmapData.children,'mindmapData.children');
|
|
|
let endIndex = mindmapData.children.findIndex(it => it.id == findId+'-'+endId)
|
|
|
mindmapData.children.splice(endIndex,1)
|
|
|
// console.log(data);
|
|
|
- }
|
|
|
+ },
|
|
|
+ /* 向左收起 展开 */
|
|
|
+ slideHandle() {
|
|
|
+ this.isSlideLeft = !this.isSlideLeft;
|
|
|
+ },
|
|
|
},
|
|
|
}
|
|
|
</script>
|
|
@@ -1909,6 +1951,7 @@ const { line} = configOpt;
|
|
|
box-sizing: border-box;
|
|
|
margin-right: 20px;
|
|
|
padding-bottom: 20px;
|
|
|
+ position: relative;
|
|
|
.sand-elements-tab{
|
|
|
padding: 0 30px;
|
|
|
overflow: auto;
|
|
@@ -2040,12 +2083,16 @@ const { line} = configOpt;
|
|
|
cursor: pointer;
|
|
|
.dropdown-box{
|
|
|
position: relative;
|
|
|
+ img{
|
|
|
+ height: 16px;
|
|
|
+ width: 16px;
|
|
|
+ }
|
|
|
.dropdown-content{
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
|
|
|
.dropdown-content-text{
|
|
|
- width: 28px;
|
|
|
+ width: 30px;
|
|
|
white-space: nowrap;
|
|
|
overflow: hidden;
|
|
|
margin-right: 5px;
|
|
@@ -2085,35 +2132,6 @@ const { line} = configOpt;
|
|
|
cursor:not-allowed;
|
|
|
}
|
|
|
}
|
|
|
- .sand-mainBody-chart{
|
|
|
- height: calc(100% - 50px);
|
|
|
- // flex: 1;
|
|
|
- position: relative;
|
|
|
- display: flex;
|
|
|
- .contextMenu-wrapper {
|
|
|
- position: fixed;
|
|
|
- z-index: 99;
|
|
|
- top: -9999px;
|
|
|
- left: -9999px;
|
|
|
- background: #fff;
|
|
|
- padding: 10px 0;
|
|
|
- /* border: 1px solid #999; */
|
|
|
- box-shadow: 0 1px 4px #999;
|
|
|
- }
|
|
|
- #link-reference{
|
|
|
- position: fixed;
|
|
|
- z-index: -1;
|
|
|
- top: -99999px;
|
|
|
- left: -99999px;
|
|
|
- background-color: transparent;
|
|
|
- }
|
|
|
- .minimap{
|
|
|
- position:absolute;
|
|
|
- right:6px;
|
|
|
- bottom:6px;
|
|
|
- box-sizing: border-box;
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
.add-link-box{
|
|
@@ -2268,11 +2286,32 @@ const { line} = configOpt;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .slide-icon {
|
|
|
+ padding: 20px 0;
|
|
|
+ /* display: block; */
|
|
|
+ box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
|
|
|
+ border-radius: 5px;
|
|
|
+ cursor: pointer;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ z-index: 99;
|
|
|
+ &:hover {
|
|
|
+ background-color: rgba(0, 0, 0, 0.05);
|
|
|
+ }
|
|
|
+ &.slide-left {
|
|
|
+ right: 0;
|
|
|
+ }
|
|
|
+ &.slide-right {
|
|
|
+ left: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
@media screen and (max-width:1680px) {
|
|
|
#sand-edit-container{
|
|
|
.sand-toolbar{
|
|
|
- min-width: 330px;
|
|
|
- width: 330px;
|
|
|
+ min-width: 320px;
|
|
|
+ width: 320px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2290,8 +2329,26 @@ const { line} = configOpt;
|
|
|
}
|
|
|
}
|
|
|
.sand-mainBody-chart{
|
|
|
- #sand-chart-container{
|
|
|
- flex: 1;
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ flex: 1;
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ .contextMenu-wrapper {
|
|
|
+ position: fixed;
|
|
|
+ z-index: 99;
|
|
|
+ top: -9999px;
|
|
|
+ left: -9999px;
|
|
|
+ background: #fff;
|
|
|
+ padding: 10px 0;
|
|
|
+ /* border: 1px solid #999; */
|
|
|
+ box-shadow: 0 1px 4px #999;
|
|
|
+ }
|
|
|
+ #link-reference{
|
|
|
+ position: fixed;
|
|
|
+ z-index: -1;
|
|
|
+ top: -99999px;
|
|
|
+ left: -99999px;
|
|
|
+ background-color: transparent;
|
|
|
}
|
|
|
.x6-graph-scroller {
|
|
|
flex: 1;
|
|
@@ -2307,25 +2364,36 @@ const { line} = configOpt;
|
|
|
border-radius: 0;
|
|
|
}
|
|
|
}
|
|
|
- .x6-widget-minimap-viewport{
|
|
|
- border-color: red;
|
|
|
- .x6-widget-minimap-viewport-zoom{
|
|
|
+ .minimap{
|
|
|
+ position:absolute;
|
|
|
+ right:6px;
|
|
|
+ bottom:6px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .x6-widget-minimap-viewport{
|
|
|
border-color: red;
|
|
|
+ .x6-widget-minimap-viewport-zoom{
|
|
|
+ border-color: red;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .x6-widget-minimap{
|
|
|
+ // min-width:300px;
|
|
|
+ // min-height:200px;
|
|
|
+ width: auto !important;
|
|
|
+ height: auto !important;
|
|
|
}
|
|
|
- }
|
|
|
- .x6-widget-minimap{
|
|
|
- width: auto !important;
|
|
|
- height: auto !important;
|
|
|
}
|
|
|
}
|
|
|
.left-topic-image,.right-topic-image {
|
|
|
visibility: hidden;
|
|
|
+ width: 0;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
.x6-node:hover .left-topic-image {
|
|
|
+ width: unset;
|
|
|
visibility: visible;
|
|
|
}
|
|
|
.x6-node:hover .right-topic-image {
|
|
|
+ width: unset;
|
|
|
visibility: visible;
|
|
|
}
|
|
|
.x6-node-selected rect {
|