fix: 修复删除子panel后顶部依然显示被删名称的问题

This commit is contained in:
陈劲松
2021-01-14 16:10:38 +08:00
committed by chenjinsong
parent fb0248b0ae
commit ce72a7cac9
2 changed files with 26 additions and 35 deletions

View File

@@ -12,7 +12,6 @@
:expand-on-click-node="false" :expand-on-click-node="false"
:filter-node-method="filterNode" :filter-node-method="filterNode"
:props="{label: 'name', children: 'children'}" :props="{label: 'name', children: 'children'}"
@check-change="clearOthers"
@node-click="selectPanel" @node-click="selectPanel"
@node-drop="nodeDrop" @node-drop="nodeDrop"
check-on-click-node check-on-click-node
@@ -50,7 +49,7 @@
filterPanel: {type: String}, filterPanel: {type: String},
}, },
mounted() { mounted() {
this.$refs.panelTree.setCurrentKey(this.showPanel); this.$refs.panelTree.setCurrentKey(this.panel);
}, },
watch: { watch: {
filterPanel: { filterPanel: {
@@ -62,16 +61,23 @@
showPanel: { showPanel: {
immediate: true, immediate: true,
handler(n) { handler(n) {
if (n && n.id) { this.panel = JSON.parse(JSON.stringify(n));
this.$refs.panelTree.setCurrentKey(this.showPanel); }
},
/*panel: {
immediate: true,
handler(n) {
if (this.$refs.panelTree) {
console.info(n.id, n.name)
this.$refs.panelTree.setCurrentKey(n);
} }
} }
} }*/
}, },
data(){ data(){
return { return {
popBox: {show: false}, popBox: {show: false},
panel: {id: '', name: ''} panel: {id: 0, name: ""},
} }
}, },
methods:{ methods:{
@@ -115,35 +121,25 @@
editPanel(data) { editPanel(data) {
this.$emit("editPanel", data); this.$emit("editPanel", data);
}, },
openBox(panel){
if (panel) {
this.panel = panel;
this.$refs.panelTree.setChecked(this.panel.id, true, false);
}
},
esc(){ esc(){
this.popBox.show = false; this.popBox.show = false;
}, },
//确认选择某个节点,与父组件交互 //确认选择某个节点,与父组件交互
selectPanel(data, checked, child) { selectPanel(data, checked, child) {
this.panel = data; this.$emit('selectPanel', data);
this.$emit('selectPanel', this.panel); this.$refs.panelTree.setCurrentKey(data);
this.$refs.panelTree.setCurrentKey(this.panel);
this.esc(); this.esc();
}, },
//tree设为单选 //tree设为单选
clearOthers(data, checked, child) { /*clearOthers(data, checked, child) {
if (checked) { if (checked) {
this.panel = data; this.panel = data;
this.$refs.panelTree.setCheckedKeys([data.id]); this.$refs.panelTree.setCheckedKeys([data.id]);
} else { } else {
this.panel = {id: '', name: ''}; this.panel = {id: '', name: ''};
} }
} }*/
}, },
beforeDestroy(){
}
} }
</script> </script>

View File

@@ -6,7 +6,7 @@
</div> </div>
<template v-else> <template v-else>
<div class="top-tool-main-left"> <div class="top-tool-main-left">
<select-panel :current-panel="showPanel" :filter-panel="filterPanel" :panel-data="panelData" :panel-lock="panelLock" :placement="'bottom-start'" :show-panel="showPanel" <select-panel :filter-panel="filterPanel" :panel-data="panelData" :panel-lock="panelLock" :placement="'bottom-start'" :show-panel="showPanel"
@deletePanel="del" @editPanel="edit" @selectPanel="panelChange" ref="selectPanel" style="width: 300px;"> @deletePanel="del" @editPanel="edit" @selectPanel="panelChange" ref="selectPanel" style="width: 300px;">
<template v-slot:header> <template v-slot:header>
<div class="panel-select-header"> <div class="panel-select-header">
@@ -171,7 +171,6 @@
chartsData: [], //中间部分图表相关数据 chartsData: [], //中间部分图表相关数据
panelData: [], panelData: [],
panelDataDragTmp:[], panelDataDragTmp:[],
dataTotalListBak:[],
searchMsg: { //给搜索框子组件传递的信息 searchMsg: { //给搜索框子组件传递的信息
zheze_none: true, zheze_none: true,
searchLabelList: [ searchLabelList: [
@@ -196,7 +195,6 @@
}, },
panelId: 0, panelId: 0,
filterPanel:'', filterPanel:'',
showPanelList:[],
//---图表相关参数--end //---图表相关参数--end
scrollbarWrap: null, scrollbarWrap: null,
} }
@@ -249,10 +247,7 @@
type: 'success', type: 'success',
message: this.$t("tip.deleteSuccess") message: this.$t("tip.deleteSuccess")
}); });
if (this.showPanel.id === u.id) { this.getTableData(true);
this.showPanel.id = '';
}
this.getTableData();
} else { } else {
this.$message.error(response.msg); this.$message.error(response.msg);
} }
@@ -442,7 +437,6 @@
this.$get('panel').then(response => { this.$get('panel').then(response => {
if (response.code === 200) { if (response.code === 200) {
this.panelData = response.data.list; this.panelData = response.data.list;
this.showPanelList = this.panelData;
for (let i = 0; i < this.panelData.length; i++) { for (let i = 0; i < this.panelData.length; i++) {
if (this.panelData[i].id == this.showPanel.id) { if (this.panelData[i].id == this.showPanel.id) {
this.showPanel.name = this.panelData[i].name; this.showPanel.name = this.panelData[i].name;
@@ -454,11 +448,11 @@
}, },
getTableData(clearShowPanel) { getTableData(clearShowPanel) {
let vm = this;
this.$get('panel?type=dashboard').then(response => { this.$get('panel?type=dashboard').then(response => {
if (response.code === 200) { if (response.code === 200) {
this.panelData = response.data.list; this.panelData = response.data.list;
this.showPanelList = this.panelData;
this.dataTotalListBak = [...response.data.list];
let isInitData = false; let isInitData = false;
if (response.data.list.length > 0) { if (response.data.list.length > 0) {
if (this.$store.state.showPanel.id > 0 && this.$store.state.showPanel.name) { if (this.$store.state.showPanel.id > 0 && this.$store.state.showPanel.name) {
@@ -474,8 +468,11 @@
isInitData = true; isInitData = true;
}else{ }else{
handler(response.data.list); handler(response.data.list);
this.filter.panelId = this.showPanel.id;
} }
this.filter.panelId = this.showPanel.id; this.$nextTick(() => {
this.$refs.selectPanel.$refs.panelTree.setCurrentKey(this.showPanel);
});
} else { } else {
this.showPanel.id = ''; this.showPanel.id = '';
this.filter.panelId = ''; this.filter.panelId = '';
@@ -504,8 +501,6 @@
} }
}); });
let vm = this;
function handler(panelData) { function handler(panelData) {
panelData.forEach(panel => { panelData.forEach(panel => {
if (panel.id == vm.showPanel.id) { if (panel.id == vm.showPanel.id) {
@@ -586,7 +581,7 @@
clearInput() { clearInput() {
this.$refs.queryPanel.focus(); this.$refs.queryPanel.focus();
}, },
start (event) { /*start (event) {
// console.log('start', event, this.panelData); // console.log('start', event, this.panelData);
event.item.querySelector('.panelContent').style.background = '#d8dce1'; event.item.querySelector('.panelContent').style.background = '#d8dce1';
@@ -728,7 +723,7 @@
let panelContent = dragClass.querySelector('.panelContent'); let panelContent = dragClass.querySelector('.panelContent');
panelContent.style.background = '#d8dce1'; panelContent.style.background = '#d8dce1';
}, },*/
/*filterPanelFocus:function(e){ /*filterPanelFocus:function(e){
e.stopPropagation(); e.stopPropagation();
}, },