feat:chart添加group
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
<el-dropdown trigger="click" v-show="!isPreview" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" v-show="!isPreview" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartInfo.title}}</span>
|
<span class="chart-title-text">{{chartInfo.name}}</span>
|
||||||
<span class="chart-title-icon" v-if="data.editable"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon" v-if="data.editable"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" v-if="data.editable" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" v-if="data.editable" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<!--全屏-->
|
<!--全屏-->
|
||||||
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal" width="96%" @close="screenDialogClose" >
|
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal" width="96%" @close="screenDialogClose" >
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{data.title}}</span>
|
<span class="nz-dialog-title">{{data.name}}</span>
|
||||||
<div class="float-right panel-calendar dialog-tool">
|
<div class="float-right panel-calendar dialog-tool">
|
||||||
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :show-time-picker="false" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="alert-chart"></pick-time>
|
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :show-time-picker="false" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="alert-chart"></pick-time>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<span class="panel-info-corner-inner"></span>
|
<span class="panel-info-corner-inner"></span>
|
||||||
</span>
|
</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<span :class="{'move-able':!isLock}"><span class="el-dropdown-link chart-title-text chart-title" @click="dropdownMenuShow = !dropdownMenuShow">{{data.title}}</span></span>
|
<span :class="{'move-able':!isLock}"><span class="el-dropdown-link chart-title-text chart-title" @click="dropdownMenuShow = !dropdownMenuShow">{{data.name}}</span></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div ref="chartInfo" class="chart-info" :id="'chartInfoDiv' + chartIndex" v-cloak>
|
<div ref="chartInfo" class="chart-info" :id="'chartInfoDiv' + chartIndex" v-cloak>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div :id="'chartUrl'+chartIndex" class="mt-10 url-container">
|
<div :id="'chartUrl'+chartIndex" class="mt-10 url-container">
|
||||||
<chart-list-group :groupList.sync="chartData.children" :panel-lock="panelLock" :filterParent="filter" :class="{'show-top':false}" :hasGroup="false" :from="from" ref="listGroup" :panelId="panelId"></chart-list-group>
|
<chart-list-group :groupList.sync="chartData.children" :panel-lock="panelLock" :filterParent="filter" :class="{'show-top':false}" :hasGroup="false" :from="from" ref="listGroup" :panelId="panelId" @on-edit-group-chart="editGroupItem" @on-remove-chart="removeChartGroup" @moveGroupItem="moveGroupItem"></chart-list-group>
|
||||||
</div>
|
</div>
|
||||||
<div style="position: absolute;width: 100%; top:calc(50% - 50px);text-align: center;" v-if="showStatic">
|
<div style="position: absolute;width: 100%; top:calc(50% - 50px);text-align: center;" v-if="showStatic">
|
||||||
<div :id="'staticContainer'+chartIndex" class="center-content"></div>
|
<div :id="'staticContainer'+chartIndex" class="center-content"></div>
|
||||||
@@ -104,6 +104,9 @@ export default {
|
|||||||
const chartBox = document.getElementById('chartUrlDiv' + this.chartIndex)
|
const chartBox = document.getElementById('chartUrlDiv' + this.chartIndex)
|
||||||
chartBox.querySelector('.url-container').style.height = `calc(100% - ${this.$chartResizeTool.titleHeight}px)`
|
chartBox.querySelector('.url-container').style.height = `calc(100% - ${this.$chartResizeTool.titleHeight}px)`
|
||||||
},
|
},
|
||||||
|
setData (chartItem) {
|
||||||
|
this.data = chartItem
|
||||||
|
},
|
||||||
showLoad (chartItem) {
|
showLoad (chartItem) {
|
||||||
this.data = chartItem
|
this.data = chartItem
|
||||||
this.panelIdInner = this.panelId
|
this.panelIdInner = this.panelId
|
||||||
@@ -196,11 +199,18 @@ export default {
|
|||||||
this.dropdownMenuShow = false
|
this.dropdownMenuShow = false
|
||||||
this.$emit('on-edit-chart-block', this.data.id)
|
this.$emit('on-edit-chart-block', this.data.id)
|
||||||
},
|
},
|
||||||
|
editGroupItem (chart) {
|
||||||
|
this.$emit('on-edit-group-chart', chart)
|
||||||
|
},
|
||||||
// 删除该图表
|
// 删除该图表
|
||||||
removeChart () {
|
removeChart () {
|
||||||
this.dropdownMenuShow = false
|
this.dropdownMenuShow = false
|
||||||
this.$emit('on-remove-chart-block', this.data.id)
|
this.$emit('on-remove-chart-block', this.data.id)
|
||||||
},
|
},
|
||||||
|
// 删除该图表
|
||||||
|
removeChartGroup (chart) {
|
||||||
|
this.$emit('on-remove-group-chart', chart)
|
||||||
|
},
|
||||||
clickos () {
|
clickos () {
|
||||||
this.dropdownMenuShow = false
|
this.dropdownMenuShow = false
|
||||||
},
|
},
|
||||||
@@ -237,6 +247,9 @@ export default {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
moveGroupItem (groupList) {
|
||||||
|
this.$emit('moveGroupItem', { groupId: this.data.id, children: groupList })
|
||||||
|
},
|
||||||
setLoadFrameFull () {
|
setLoadFrameFull () {
|
||||||
const that = this
|
const that = this
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
dragClass:'drag-chart-class',
|
dragClass:'drag-chart-class',
|
||||||
fallbackClass:'fallback-class',
|
fallbackClass:'fallback-class',
|
||||||
forceFallback:true,
|
forceFallback:true,
|
||||||
ghostClass:'chart-group-ghost',
|
ghostClass:'chart-ghost',
|
||||||
chosenClass:'choose-class',
|
chosenClass:'choose-class',
|
||||||
scroll:true,
|
scroll:true,
|
||||||
filter: '.drag-disabled',
|
filter: '.drag-disabled',
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
handle: '.chart-title'
|
handle: '.chart-title'
|
||||||
}"
|
}"
|
||||||
style="width: 100%;height: 100%">
|
style="width: 100%;height: 100%">
|
||||||
<div :class="{'drag-disabled': !draggable,'chartBox':true}" :id="'chart-group-' + item.id" :key="item.id" :name="item.title" :ref="'chart' + item.id" :style="{marginBottom: extraMarginBottom}" v-for="(item, index) in dataList" v-show="!item.isHide">
|
<div :class="{'drag-disabled': !draggable,'chartBox':true}" :id="'chart-' + item.id" :key="item.id" :name="item.title" :ref="'chart' + item.id" :style="{marginBottom: extraMarginBottom}" v-for="(item, index) in dataList" v-show="!item.isHide">
|
||||||
<line-chart-block v-if="item.type === 'line' || item.type === 'bar' ||item.type == 'stackArea' || item.type === 4" :key="'inner' + item.id"
|
<line-chart-block v-if="item.type === 'line' || item.type === 'bar' ||item.type == 'stackArea' || item.type === 4" :key="'inner' + item.id"
|
||||||
:from="from" :ref="'editChart'+item.id" :temp-dom="tempDom"
|
:from="from" :ref="'editChart'+item.id" :temp-dom="tempDom"
|
||||||
@on-refresh-data="refreshChart"
|
@on-refresh-data="refreshChart"
|
||||||
@@ -220,14 +220,15 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
groupList: {
|
groupList: {
|
||||||
|
immediate: true,
|
||||||
handler (n) {
|
handler (n) {
|
||||||
this.dataList = [...n]
|
this.dataList = [...n]
|
||||||
console.log(this.dataList)
|
this.$nextTick(() => {
|
||||||
this.$nextTick(()=>{
|
|
||||||
this.dataList.forEach((item, index) => {
|
this.dataList.forEach((item, index) => {
|
||||||
if (item.type === 'text') {
|
if (item.type === 'text') {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
}
|
}
|
||||||
|
console.log(item, index, this.filter)
|
||||||
this.getChartData(item, index, this.filter)
|
this.getChartData(item, index, this.filter)
|
||||||
this.setChartSize(item, index)
|
this.setChartSize(item, index)
|
||||||
})
|
})
|
||||||
@@ -303,12 +304,7 @@ export default {
|
|||||||
},
|
},
|
||||||
end (event) {
|
end (event) {
|
||||||
if (event.oldIndex !== event.newIndex) {
|
if (event.oldIndex !== event.newIndex) {
|
||||||
const newWeights = []
|
this.$emit('moveGroupItem', this.dataList)
|
||||||
this.dataList.forEach((item, index) => {
|
|
||||||
item.weight = index
|
|
||||||
newWeights.push({ id: item.id, weight: index })
|
|
||||||
})
|
|
||||||
this.$put('panel/' + this.pagePanelId + '/charts/weights', newWeights)
|
|
||||||
// 处理所有group数据后 调用上层移动 保存
|
// 处理所有group数据后 调用上层移动 保存
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -430,7 +426,7 @@ export default {
|
|||||||
this.setChartSize(item.span, index)// 设置该图表宽度
|
this.setChartSize(item.span, index)// 设置该图表宽度
|
||||||
if (!item.isLoaded) {
|
if (!item.isLoaded) {
|
||||||
// 获得当前显示在浏览器的图表,从后台获取数据
|
// 获得当前显示在浏览器的图表,从后台获取数据
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)// this.$refs['editChart'+item.id][0];
|
const chartBox = document.getElementById('chart-' + item.id)// this.$refs['editChart'+item.id][0];
|
||||||
this.handleElementInViewport(chartBox, 0, item, index, true)
|
this.handleElementInViewport(chartBox, 0, item, index, true)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -536,7 +532,7 @@ export default {
|
|||||||
this.dataList.forEach((item, index) => {
|
this.dataList.forEach((item, index) => {
|
||||||
this.$set(item, 'from', params.from)
|
this.$set(item, 'from', params.from)
|
||||||
this.setChartSize(item, index)// 设置该图表宽度
|
this.setChartSize(item, index)// 设置该图表宽度
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)
|
const chartBox = document.getElementById('chart-' + item.id)
|
||||||
this.handleElementInViewport(chartBox, 0, item, index)
|
this.handleElementInViewport(chartBox, 0, item, index)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -595,7 +591,7 @@ export default {
|
|||||||
this.dataList.forEach((item, index) => {
|
this.dataList.forEach((item, index) => {
|
||||||
this.$set(item, 'from', params.from)
|
this.$set(item, 'from', params.from)
|
||||||
this.setChartSize(item, index)// 设置该图表宽度
|
this.setChartSize(item, index)// 设置该图表宽度
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)
|
const chartBox = document.getElementById('chart-' + item.id)
|
||||||
this.handleElementInViewport(chartBox, 0, item, index)
|
this.handleElementInViewport(chartBox, 0, item, index)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -665,7 +661,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (!item.isLoaded) {
|
if (!item.isLoaded) {
|
||||||
// 获得当前显示在浏览器的图表,从后台获取数据
|
// 获得当前显示在浏览器的图表,从后台获取数据
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)
|
const chartBox = document.getElementById('chart-' + item.id)
|
||||||
this.handleElementInViewport(chartBox, 0, item, index)
|
this.handleElementInViewport(chartBox, 0, item, index)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -679,7 +675,7 @@ export default {
|
|||||||
this.dataList.forEach((item, index) => {
|
this.dataList.forEach((item, index) => {
|
||||||
if (!item.isLoaded) {
|
if (!item.isLoaded) {
|
||||||
// 获得当前显示在浏览器的图表,从后台获取数据
|
// 获得当前显示在浏览器的图表,从后台获取数据
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)// this.$refs['editChart'+item.id][0];
|
const chartBox = document.getElementById('chart-' + item.id)// this.$refs['editChart'+item.id][0];
|
||||||
this.handleElementInViewport(chartBox, scrollTop, item, index)
|
this.handleElementInViewport(chartBox, scrollTop, item, index)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1536,7 +1532,7 @@ export default {
|
|||||||
// 设置图表的尺寸
|
// 设置图表的尺寸
|
||||||
setChartSize (item, index) {
|
setChartSize (item, index) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
const chartBox = document.getElementById('chart-group-' + item.id)
|
const chartBox = document.getElementById('chart-' + item.id)
|
||||||
if (chartBox) {
|
if (chartBox) {
|
||||||
chartBox.style.width = `${(item.span / 12) * 100}%`
|
chartBox.style.width = `${(item.span / 12) * 100}%`
|
||||||
chartBox.style.height = `${item.height}px`
|
chartBox.style.height = `${item.height}px`
|
||||||
@@ -1639,8 +1635,9 @@ export default {
|
|||||||
editData (chartId) {
|
editData (chartId) {
|
||||||
// 获取该id下chart的相关信息
|
// 获取该id下chart的相关信息
|
||||||
const chart = this.dataList.find(item => item.id === chartId)
|
const chart = this.dataList.find(item => item.id === chartId)
|
||||||
|
console.log(chart)
|
||||||
if (chart) {
|
if (chart) {
|
||||||
this.$emit('on-edit-chart', chart)
|
this.$emit('on-edit-group-chart', chart)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,9 @@
|
|||||||
:panelLock="panelLock"
|
:panelLock="panelLock"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
@on-edit-chart-block="editData"
|
@on-edit-chart-block="editData"
|
||||||
|
@on-edit-group-chart="editDataGroup"
|
||||||
|
@on-remove-group-chart="removeChartGroup"
|
||||||
|
@moveGroupItem="moveGroupItem"
|
||||||
:panel-id="filter.panelId"
|
:panel-id="filter.panelId"
|
||||||
:chart-data="item"
|
:chart-data="item"
|
||||||
:dataList='dataList'
|
:dataList='dataList'
|
||||||
@@ -293,13 +296,42 @@ export default {
|
|||||||
end (event) {
|
end (event) {
|
||||||
if (event.oldIndex !== event.newIndex) {
|
if (event.oldIndex !== event.newIndex) {
|
||||||
const newWeights = []
|
const newWeights = []
|
||||||
|
let i = 0
|
||||||
this.dataList.forEach((item, index) => {
|
this.dataList.forEach((item, index) => {
|
||||||
item.weight = index
|
item.weight = index
|
||||||
newWeights.push({ id: item.id, weight: index })
|
newWeights.push({ id: item.id, weight: index })
|
||||||
|
if (item.type === 'group') {
|
||||||
|
item.children.forEach(chart => {
|
||||||
|
i++
|
||||||
|
newWeights.push({ id: chart.id, groupId: item.id, weight: this.dataList.length + i })
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
this.$put('panel/' + this.pagePanelId + '/charts/weights', newWeights)
|
const panelId = this.pagePanelId
|
||||||
|
this.$put('/visual/panel/chart/weights', { panelId, charts: newWeights })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
moveGroupItem (group) {
|
||||||
|
const newWeights = []
|
||||||
|
let i = 0
|
||||||
|
this.dataList.forEach((item, index) => {
|
||||||
|
item.weight = index
|
||||||
|
newWeights.push({ id: item.id, weight: index })
|
||||||
|
if (item.type === 'group' && group.groupId!==item.id) {
|
||||||
|
item.children.forEach(chart => {
|
||||||
|
i++
|
||||||
|
newWeights.push({ id: chart.id, groupId: item.id, weight: this.dataList.length + i })
|
||||||
|
})
|
||||||
|
} else if (item.type === 'group' && group.groupId == item.id){
|
||||||
|
group.children.forEach(chart => {
|
||||||
|
i++
|
||||||
|
newWeights.push({ id: chart.id, groupId: item.id, weight: this.dataList.length + i })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const panelId = this.pagePanelId
|
||||||
|
this.$put('/visual/panel/chart/weights', { panelId, charts: newWeights })
|
||||||
|
},
|
||||||
move (event, orgin) {
|
move (event, orgin) {
|
||||||
const dragClass = document.querySelector('.drag-chart-class')// drag-chart-class:yellow chart-ghost:green fallback-class choose-class:purple
|
const dragClass = document.querySelector('.drag-chart-class')// drag-chart-class:yellow chart-ghost:green fallback-class choose-class:purple
|
||||||
|
|
||||||
@@ -591,12 +623,19 @@ export default {
|
|||||||
}
|
}
|
||||||
if (!param.query) delete param.query
|
if (!param.query) delete param.query
|
||||||
// 根据panelId获得panel下的所有图表
|
// 根据panelId获得panel下的所有图表
|
||||||
this.$get('visual/panel/chart?id=' + params.panelId).then(response => {
|
this.$get('visual/panel/chart?panelId=' + params.panelId).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
response.data.list.forEach((item, index) => {
|
response.data.list.forEach((item, index) => {
|
||||||
item.isLoaded = false
|
item.isLoaded = false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
response.data.list.forEach((item, index) => { // 把chart放入对应的group
|
||||||
|
if (item.type === 'group') {
|
||||||
|
item.children = response.data.list.filter(item1 => item1.groupId === item.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
response.data.list = response.data.list.filter((item) => item.groupId === -1 || !item.groupId) // 处理外层存在的groupItem
|
||||||
|
console.log(response.data.list)
|
||||||
if (response.data.list) {
|
if (response.data.list) {
|
||||||
this.dataTotalListBak = response.data.list
|
this.dataTotalListBak = response.data.list
|
||||||
} else {
|
} else {
|
||||||
@@ -762,6 +801,7 @@ export default {
|
|||||||
getChartData (chartInfo, pos, filterType) {
|
getChartData (chartInfo, pos, filterType) {
|
||||||
const chartItem = chartInfo
|
const chartItem = chartInfo
|
||||||
if (chartItem.type === 'group') {
|
if (chartItem.type === 'group') {
|
||||||
|
this.$refs['editChart' + chartItem.id][0].setData(chartItem)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (chartItem.type === 'assetInfo') {
|
if (chartItem.type === 'assetInfo') {
|
||||||
@@ -1559,6 +1599,12 @@ export default {
|
|||||||
this.$emit('on-remove-chart', chart)
|
this.$emit('on-remove-chart', chart)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 删除图表
|
||||||
|
removeChartGroup (chart) { // from 区分从哪里点击的删除 1.从图表面板 2.从编辑框
|
||||||
|
if (chart) {
|
||||||
|
this.$emit('on-remove-chart', chart)
|
||||||
|
}
|
||||||
|
},
|
||||||
// 复制图表
|
// 复制图表
|
||||||
duplicateChart (chartId, duplicateChartBack) {
|
duplicateChart (chartId, duplicateChartBack) {
|
||||||
const duplicateChartId = duplicateChartBack.id
|
const duplicateChartId = duplicateChartBack.id
|
||||||
@@ -1642,12 +1688,19 @@ export default {
|
|||||||
// 编辑图表
|
// 编辑图表
|
||||||
editData (chartId) {
|
editData (chartId) {
|
||||||
// 获取该id下chart的相关信息
|
// 获取该id下chart的相关信息
|
||||||
const chart = this.dataList.find(item => item.id === chartId)
|
const chart = this.dataList.find(item => {
|
||||||
|
return item.id === chartId
|
||||||
|
})
|
||||||
|
if (chart) {
|
||||||
|
this.$emit('on-edit-chart', chart)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 编辑 group下的图表
|
||||||
|
editDataGroup (chart) {
|
||||||
if (chart) {
|
if (chart) {
|
||||||
this.$emit('on-edit-chart', chart)
|
this.$emit('on-edit-chart', chart)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
editChartForDrag (chartItem) {
|
editChartForDrag (chartItem) {
|
||||||
const chart = this.dataList.find(item => item.id === chartItem.id)
|
const chart = this.dataList.find(item => item.id === chartItem.id)
|
||||||
chart.span = chartItem.span
|
chart.span = chartItem.span
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
:visible.sync="screenModal"
|
:visible.sync="screenModal"
|
||||||
width="96%" @close="screenModal = false" :modal-append-to-body="false">
|
width="96%" @close="screenModal = false" :modal-append-to-body="false">
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{data.title}}</span>
|
<span class="nz-dialog-title">{{data.name}}</span>
|
||||||
<div class="float-right panel-calendar dialog-tool">
|
<div class="float-right panel-calendar dialog-tool">
|
||||||
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange"></time-picker>-->
|
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange"></time-picker>-->
|
||||||
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="single-chart"></pick-time>
|
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="single-chart"></pick-time>
|
||||||
@@ -423,10 +423,10 @@ export default {
|
|||||||
const boxWidth = size.contentSize[0]
|
const boxWidth = size.contentSize[0]
|
||||||
const boxHeight = size.contentSize[1]
|
const boxHeight = size.contentSize[1]
|
||||||
if (!self.screenModal) { // 本地显示
|
if (!self.screenModal) { // 本地显示
|
||||||
const chartDom = document.getElementById(self.chartData.title + '_' + self.chartData.id)
|
const chartDom = document.getElementById(self.chartData.name + '_' + self.chartData.id)
|
||||||
if (chartDom) {
|
if (chartDom) {
|
||||||
// const parTop = document.getElementById(self.chartData.title + '_' + self.chartData.id).offsetTop
|
// const parTop = document.getElementById(self.chartData.title + '_' + self.chartData.id).offsetTop
|
||||||
const parleft = document.getElementById(self.chartData.title + '_' + self.chartData.id).offsetLeft
|
const parleft = document.getElementById(self.chartData.name + '_' + self.chartData.id).offsetLeft
|
||||||
|
|
||||||
const parent = document.getElementById('tableList')
|
const parent = document.getElementById('tableList')
|
||||||
// const parClientHeight = parent.clientHeight// 可视高度
|
// const parClientHeight = parent.clientHeight// 可视高度
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
:visible.sync="screenModal"
|
:visible.sync="screenModal"
|
||||||
width="96%" @close="screenModal = false" >
|
width="96%" @close="screenModal = false" >
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{data.title}}</span>
|
<span class="nz-dialog-title">{{data.name}}</span>
|
||||||
<div class="float-right panel-calendar dialog-tool">
|
<div class="float-right panel-calendar dialog-tool">
|
||||||
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange"></time-picker>-->
|
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange"></time-picker>-->
|
||||||
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="single-chart"></pick-time>
|
<pick-time :refresh-data-func="dateChange" v-model="searchTime" :use-chart-unit="false" ref="pickTime" style="height: 28px;" id="single-chart"></pick-time>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze "
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze "
|
||||||
:class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
:class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal"
|
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal"
|
||||||
width="96%" @close="screenModal = false">
|
width="96%" @close="screenModal = false">
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{data.title}}</span>
|
<span class="nz-dialog-title">{{data.name}}</span>
|
||||||
<div class="float-right panel-calendar dialog-tool">
|
<div class="float-right panel-calendar dialog-tool">
|
||||||
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;"-->
|
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;"-->
|
||||||
<!-- @change="dateChange"></time-picker>-->
|
<!-- @change="dateChange"></time-picker>-->
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<!--全屏-->
|
<!--全屏-->
|
||||||
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal" width="96%" @opened="initDialog" @close="screenModal = false" >
|
<el-dialog class="nz-dialog table-chart-dialog" :title="$t('dashboard.panel.view')" :visible.sync="screenModal" width="96%" @opened="initDialog" @close="screenModal = false" >
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{chartData.title}}</span>
|
<span class="nz-dialog-title">{{chartData.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
<iframe :id="'urlContainerFull'+chartIndex" frameborder="0" width="100%" height="100%" name="showHereFull" scrolling=auto v-if="!showStatic"
|
<iframe :id="'urlContainerFull'+chartIndex" frameborder="0" width="100%" height="100%" name="showHereFull" scrolling=auto v-if="!showStatic"
|
||||||
style="z-index:5000;padding-bottom:6px;"
|
style="z-index:5000;padding-bottom:6px;"
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<div slot="title" class="chart-title">
|
<div slot="title" class="chart-title">
|
||||||
<span class="nz-dialog-title chart-title-text">{{chart.title}}</span>
|
<span class="nz-dialog-title chart-title-text">{{chart.name}}</span>
|
||||||
<div class="float-right panel-calendar dialog-tool" v-if="chart.type!=='url' && chart.type !=='alertList'">
|
<div class="float-right panel-calendar dialog-tool" v-if="chart.type!=='url' && chart.type !=='alertList'">
|
||||||
|
|
||||||
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange" v-if="chart.type !='text'"></time-picker>-->
|
<!-- <time-picker ref="calendarPanel" class="nz-dashboard-picker" style="margin-top: -12px;" @change="dateChange" v-if="chart.type !='text'"></time-picker>-->
|
||||||
@@ -473,7 +473,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (chartItem.type === 'stackArea') {
|
if (chartItem.type === 'stackArea') {
|
||||||
seriesItem.theData.type = 'line'
|
seriesItem.theData.type = 'line'
|
||||||
seriesItem.theData.stack = chartItem.title
|
seriesItem.theData.stack = chartItem.name
|
||||||
seriesItem.theData.areaStyle = { opacity: 0.3 }
|
seriesItem.theData.areaStyle = { opacity: 0.3 }
|
||||||
}
|
}
|
||||||
if (chartItem.type === 'endpointInfo') {
|
if (chartItem.type === 'endpointInfo') {
|
||||||
@@ -1411,7 +1411,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (this.chart.type === 'stackArea') {
|
if (this.chart.type === 'stackArea') {
|
||||||
seriesItem.theData.type = 'line'
|
seriesItem.theData.type = 'line'
|
||||||
seriesItem.theData.stack = this.chart.title
|
seriesItem.theData.stack = this.chart.name
|
||||||
seriesItem.theData.areaStyle = { opacity: 0.3 }
|
seriesItem.theData.areaStyle = { opacity: 0.3 }
|
||||||
}
|
}
|
||||||
// 图表中每条线的名字,后半部分
|
// 图表中每条线的名字,后半部分
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow"><i :class="{'visible':caretShow,'hidden':!caretShow}" class="nz-icon nz-icon-xialaxuanze "></i></span>
|
<span class="chart-title-icon" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow"><i :class="{'visible':caretShow,'hidden':!caretShow}" class="nz-icon nz-icon-xialaxuanze "></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul :class="{'el-dropdown-menu nz-chart-dropdown':!isExplore,'el-dropdown-menu nz-chart-dropdown-one':isExplore}" :id="'dropdownUl'+chartIndex" slot="dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow" v-show="dropdownMenuShow" >
|
<ul :class="{'el-dropdown-menu nz-chart-dropdown':!isExplore,'el-dropdown-menu nz-chart-dropdown-one':isExplore}" :id="'dropdownUl'+chartIndex" slot="dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow" v-show="dropdownMenuShow" >
|
||||||
@@ -1555,7 +1555,7 @@ export default {
|
|||||||
} else if (type === 'dashboard') { // 概览模式,指标概览中使用
|
} else if (type === 'dashboard') { // 概览模式,指标概览中使用
|
||||||
// 概览模式,需要区分单独一个和多个
|
// 概览模式,需要区分单独一个和多个
|
||||||
if (this.stableFilter.chartCount === 'multiple') {
|
if (this.stableFilter.chartCount === 'multiple') {
|
||||||
let query = encodeURIComponent(this.data.title)
|
let query = encodeURIComponent(this.data.name)
|
||||||
if (this.chartInfo.type === 'line' || this.chartInfo.type === 'bar' || this.chartInfo.type === 'stackArea') { // 如果是这三个 默认给connected
|
if (this.chartInfo.type === 'line' || this.chartInfo.type === 'bar' || this.chartInfo.type === 'stackArea') { // 如果是这三个 默认给connected
|
||||||
this.chartInfo.param.nullType = this.chartInfo.param.nullType || 'connected'
|
this.chartInfo.param.nullType = this.chartInfo.param.nullType || 'connected'
|
||||||
query += '&nullType=' + this.chartInfo.param.nullType
|
query += '&nullType=' + this.chartInfo.param.nullType
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
<el-dropdown trigger="click" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos" :class="{'move-able':!isLock}">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
||||||
<span class="chart-title-text">{{chartData.title}}</span>
|
<span class="chart-title-text">{{chartData.name}}</span>
|
||||||
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
<span class="chart-title-icon"><i class="nz-icon nz-icon-xialaxuanze " :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>
|
||||||
</span>
|
</span>
|
||||||
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
<ul slot="dropdown" v-show="dropdownMenuShow" :id="'dropdownUl'+chartIndex" class="el-dropdown-menu nz-chart-dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" >
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
:visible.sync="screenModal"
|
:visible.sync="screenModal"
|
||||||
width="96%" @close="screenModal = false" >
|
width="96%" @close="screenModal = false" >
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<span class="nz-dialog-title">{{data.title}}</span>
|
<span class="nz-dialog-title">{{data.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="rich-text-screen-container" >
|
<div class="rich-text-screen-container" >
|
||||||
<div id="chartScreenContainer" ref="chartScreenContainer" class="text-content" >
|
<div id="chartScreenContainer" ref="chartScreenContainer" class="text-content" >
|
||||||
|
|||||||
@@ -31,8 +31,8 @@
|
|||||||
<export-excel
|
<export-excel
|
||||||
id="panel-tab"
|
id="panel-tab"
|
||||||
export-file-name="chart"
|
export-file-name="chart"
|
||||||
export-url="/panel/export"
|
export-url="/visual/panel/export"
|
||||||
import-url="/panel/import"
|
import-url="/visual/panel/import"
|
||||||
:params="filter"
|
:params="filter"
|
||||||
:from="$CONSTANTS.fromRoute.asset"
|
:from="$CONSTANTS.fromRoute.asset"
|
||||||
:link="obj"
|
:link="obj"
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ export const chartResizeTool = {
|
|||||||
if (data.height != originalData.height || data.span != originalData.span) {
|
if (data.height != originalData.height || data.span != originalData.span) {
|
||||||
originalData.height = data.height
|
originalData.height = data.height
|
||||||
originalData.span = data.span
|
originalData.span = data.span
|
||||||
vm.$put('panel/' + vm.panelIdInner + '/charts/modify', originalData)
|
vm.$put('/visual/panel/chart/modify', originalData)
|
||||||
}
|
}
|
||||||
// 关闭背景阴影
|
// 关闭背景阴影
|
||||||
shadow.classList.remove('resize-shadow-active')
|
shadow.classList.remove('resize-shadow-active')
|
||||||
|
|||||||
@@ -199,15 +199,15 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!--group-->
|
<!--group-->
|
||||||
<el-form-item :label="$t('dashboard.panel.chartForm.group')" class="half-form-item" prop="type">
|
<el-form-item :label="$t('dashboard.panel.chartForm.group')" class="half-form-item" prop="group" v-if="editChart.type!=='group'">
|
||||||
<el-select @change="chartTypeChange" class="right-box-row-with-btn" placeholder="" popper-class="chart-box-dropdown-small" size="mini" v-model="editChart.type" value-key="chartType" id="chart-box-group">
|
<el-select class="right-box-row-with-btn" placeholder="" clearable popper-class="chart-box-dropdown-small" size="mini" v-model="editChart.groupId" value-key="chartType" id="chart-box-group">
|
||||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in chartTypeList">
|
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in groupArr">
|
||||||
<span class="panel-dropdown-label-txt" >{{item.name}}</span>
|
<span class="panel-dropdown-label-txt" >{{item.name}}</span>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item :label="$t('dashboard.panel.chartForm.unit')" class="half-form-item" prop="unit" v-show="editChart.type !='text' && editChart.type !=='url'">
|
<el-form-item :label="$t('dashboard.panel.chartForm.unit')" class="half-form-item" prop="unit" v-show="editChart.type !='text' && editChart.type !=='url'&& editChart.type !=='group'">
|
||||||
<el-cascader :options="unitOptions" :props="{ expandTrigger: 'hover',emitPath:false }" :show-all-levels="false" @change="unitSelected" filterable id="chart-box-unit"
|
<el-cascader :options="unitOptions" :props="{ expandTrigger: 'hover',emitPath:false }" :show-all-levels="false" @change="unitSelected" filterable id="chart-box-unit"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
popper-class="dc-dropdown"
|
popper-class="dc-dropdown"
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
<!--type unit end-->
|
<!--type unit end-->
|
||||||
|
|
||||||
<el-form-item :label="$t('dashboard.panel.chartForm.width')" class="half-form-item" prop="span">
|
<el-form-item :label="$t('dashboard.panel.chartForm.width')" class="half-form-item" prop="span">
|
||||||
<el-select class="right-box-row-with-btn" placeholder="" popper-class="chart-box-dropdown-mini" size="mini" v-model="editChart.span" value-key="chartSpan" id="chart-box-span">
|
<el-select class="right-box-row-with-btn" :disabled="isGroup" placeholder="" popper-class="chart-box-dropdown-mini" size="mini" v-model="editChart.span" value-key="chartSpan" id="chart-box-span">
|
||||||
<el-option :key="item" :label="'span-' + item" :value="item" v-for="item in spanList">
|
<el-option :key="item" :label="'span-' + item" :value="item" v-for="item in spanList">
|
||||||
<span class="panel-dropdown-label-txt" > span-{{item}}</span>
|
<span class="panel-dropdown-label-txt" > span-{{item}}</span>
|
||||||
</el-option>
|
</el-option>
|
||||||
@@ -232,6 +232,7 @@
|
|||||||
id="chart-box-height"
|
id="chart-box-height"
|
||||||
:fetch-suggestions="querySearch"
|
:fetch-suggestions="querySearch"
|
||||||
@select="handleSelect"
|
@select="handleSelect"
|
||||||
|
:disabled="isGroup"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
popper-class="popper-z-index no-style-class"
|
popper-class="popper-z-index no-style-class"
|
||||||
size="mini"
|
size="mini"
|
||||||
@@ -273,7 +274,7 @@
|
|||||||
<el-input type="textarea" v-model="editChart.remark"/>
|
<el-input type="textarea" v-model="editChart.remark"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<div class="right-box-sub-title" style="margin-bottom: 20px" v-if="!isUrl&&!isAlert&& editChart.type != 'text'">
|
<div class="right-box-sub-title" style="margin-bottom: 20px" v-if="!isUrl&&!isAlert&& editChart.type != 'text'&& editChart.type != 'group'">
|
||||||
<span>{{$t('alert.config.expr')}}</span>
|
<span>{{$t('alert.config.expr')}}</span>
|
||||||
<span @click="addExpression" class="float-right" style="height: 19px;display: inline-block;line-height: 1;" v-if="!isSingleStat">
|
<span @click="addExpression" class="float-right" style="height: 19px;display: inline-block;line-height: 1;" v-if="!isSingleStat">
|
||||||
<span class="create-square-box">
|
<span class="create-square-box">
|
||||||
@@ -291,7 +292,7 @@
|
|||||||
<alert-chart-param @on-enter-complate="getAlertParam" ref="alertParamBox"></alert-chart-param>
|
<alert-chart-param @on-enter-complate="getAlertParam" ref="alertParamBox"></alert-chart-param>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div id="chart-box-expression-box" style="margin-bottom: 20px">
|
<div id="chart-box-expression-box" style="margin-bottom: 20px">
|
||||||
<el-row :key="'ele' + index" class="element-item form-row-item" style="" v-for="index of promqlKeys.length" v-if="!isUrl &&!isAlert && editChart.type != 'text'">
|
<el-row :key="'ele' + index" class="element-item form-row-item" style="" v-for="index of promqlKeys.length" v-if="!isUrl &&!isAlert && editChart.type != 'text'&& editChart.type != 'group'">
|
||||||
<promql-input
|
<promql-input
|
||||||
:expression-list="expressions"
|
:expression-list="expressions"
|
||||||
:id="promqlKeys[index-1]"
|
:id="promqlKeys[index-1]"
|
||||||
@@ -488,7 +489,10 @@ export default {
|
|||||||
optionBtn: {
|
optionBtn: {
|
||||||
save: false
|
save: false
|
||||||
},
|
},
|
||||||
editChart: {},
|
editChart: {
|
||||||
|
name: '',
|
||||||
|
remark: ''
|
||||||
|
},
|
||||||
filterPanel: '',
|
filterPanel: '',
|
||||||
statisticsList: this.$CONSTANTS.statisticsList,
|
statisticsList: this.$CONSTANTS.statisticsList,
|
||||||
|
|
||||||
@@ -503,6 +507,7 @@ export default {
|
|||||||
isUrl: false,
|
isUrl: false,
|
||||||
isSingleStat: false,
|
isSingleStat: false,
|
||||||
isAlert: false,
|
isAlert: false,
|
||||||
|
isGroup: false,
|
||||||
rules: {
|
rules: {
|
||||||
panelName: [
|
panelName: [
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
||||||
@@ -870,12 +875,20 @@ export default {
|
|||||||
chartParams.groupId = -1
|
chartParams.groupId = -1
|
||||||
}
|
}
|
||||||
delete chartParams.panel
|
delete chartParams.panel
|
||||||
|
if (chartParams.type === 'group') {
|
||||||
|
chartParams.elements = [{
|
||||||
|
expression: 'Hadoop_DataNode_BlockChecksumOpNumOps',
|
||||||
|
id: '',
|
||||||
|
legend: '',
|
||||||
|
type: 'expert'
|
||||||
|
}]
|
||||||
|
}
|
||||||
this.$post('visual/panel/chart', chartParams).then(response => {
|
this.$post('visual/panel/chart', chartParams).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.esc()
|
|
||||||
this.$message({ duration: 1000, type: 'success', message: this.$t('tip.saveSuccess') })
|
this.$message({ duration: 1000, type: 'success', message: this.$t('tip.saveSuccess') })
|
||||||
this.$refs.chartForm.resetFields()// 清空表单
|
// this.$refs.chartForm.resetFields()// 清空表单
|
||||||
this.$emit('on-create-success', 'create', response.data, chartParams, { id: this.panelId, name: this.panelName })
|
this.$emit('on-create-success', 'create', response.data, chartParams, { id: this.panelId, name: this.panelName })
|
||||||
|
this.esc()
|
||||||
} else {
|
} else {
|
||||||
if (response.msg) {
|
if (response.msg) {
|
||||||
this.$message.error(response.msg)
|
this.$message.error(response.msg)
|
||||||
@@ -1195,21 +1208,31 @@ export default {
|
|||||||
this.isUrl = true
|
this.isUrl = true
|
||||||
this.isSingleStat = false
|
this.isSingleStat = false
|
||||||
this.isAlert = false
|
this.isAlert = false
|
||||||
|
this.isGroup = false
|
||||||
},
|
},
|
||||||
setIsSingleStat () {
|
setIsSingleStat () {
|
||||||
this.isUrl = false
|
this.isUrl = false
|
||||||
this.isSingleStat = true
|
this.isSingleStat = true
|
||||||
this.isAlert = false
|
this.isAlert = false
|
||||||
|
this.isGroup = false
|
||||||
},
|
},
|
||||||
setIsAlertList () {
|
setIsAlertList () {
|
||||||
this.isAlert = true
|
this.isAlert = true
|
||||||
this.isUrl = false
|
this.isUrl = false
|
||||||
this.isSingleStat = false
|
this.isSingleStat = false
|
||||||
|
this.isGroup = false
|
||||||
},
|
},
|
||||||
setIsOtherChart () {
|
setIsOtherChart () {
|
||||||
this.isSingleStat = false
|
this.isSingleStat = false
|
||||||
this.isUrl = false
|
this.isUrl = false
|
||||||
this.isAlert = false
|
this.isAlert = false
|
||||||
|
this.isGroup = false
|
||||||
|
},
|
||||||
|
setIsGroup () {
|
||||||
|
this.isSingleStat = false
|
||||||
|
this.isUrl = false
|
||||||
|
this.isAlert = false
|
||||||
|
this.isGroup = true
|
||||||
},
|
},
|
||||||
// 编辑chart时使用, set_tdata
|
// 编辑chart时使用, set_tdata
|
||||||
editData (data, panelId) {
|
editData (data, panelId) {
|
||||||
@@ -1355,6 +1378,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.showPicker = [{ bac: false, text: false }]
|
this.showPicker = [{ bac: false, text: false }]
|
||||||
|
} else if (chartType === 'group') {
|
||||||
|
this.editChart.span = 12
|
||||||
|
this.editChart.height = -1
|
||||||
|
this.setIsGroup()
|
||||||
} else {
|
} else {
|
||||||
this.setIsOtherChart()
|
this.setIsOtherChart()
|
||||||
if (chartType === 'bar' || chartType === 'line' || chartType === 'stackArea') {
|
if (chartType === 'bar' || chartType === 'line' || chartType === 'stackArea') {
|
||||||
@@ -1669,9 +1696,13 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.editChart = JSON.parse(JSON.stringify(n))
|
this.editChart = JSON.parse(JSON.stringify(n))
|
||||||
|
this.editChart.name = this.editChart.name || ''
|
||||||
if (!n.groupId || n.groupId == -1) {
|
if (!n.groupId || n.groupId == -1) {
|
||||||
this.editChart.groupId = ''
|
this.editChart.groupId = ''
|
||||||
}
|
}
|
||||||
|
if (typeof (this.editChart.param) === 'string') {
|
||||||
|
this.editChart.param = JSON.parse(this.editChart.param)
|
||||||
|
}
|
||||||
if (!n.param.nullType) {
|
if (!n.param.nullType) {
|
||||||
this.editChart.param.nullType = 'connected'
|
this.editChart.param.nullType = 'connected'
|
||||||
}
|
}
|
||||||
@@ -1699,6 +1730,16 @@ export default {
|
|||||||
if (this.showPanel.id) {
|
if (this.showPanel.id) {
|
||||||
this.panelId = this.showPanel.id
|
this.panelId = this.showPanel.id
|
||||||
}
|
}
|
||||||
|
this.$get('visual/panel/chart?id= ' + this.panelId).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.groupArr = []
|
||||||
|
response.data.list.forEach((item, index) => {
|
||||||
|
if (item.type === 'group') {
|
||||||
|
this.groupArr.push({ id: item.id, name: item.name })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
if (n.id) {
|
if (n.id) {
|
||||||
this.editData(this.editChart, this.showPanel.id)
|
this.editData(this.editChart, this.showPanel.id)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="top-tool-main-left">
|
<div class="top-tool-main-left">
|
||||||
<select-panel :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;display: inline-block">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div class="panel-select-header">
|
<div class="panel-select-header">
|
||||||
<el-input :placeholder="$t('overall.search')" clearable size="mini" style="width: 340px; margin-right: 5px;" v-model="filterPanel" id="panel-list-search"></el-input>
|
<el-input :placeholder="$t('overall.search')" clearable size="mini" style="width: 340px; margin-right: 5px;" v-model="filterPanel" id="panel-list-search"></el-input>
|
||||||
@@ -74,8 +74,8 @@
|
|||||||
<export-excel
|
<export-excel
|
||||||
id="panel"
|
id="panel"
|
||||||
export-file-name="chart"
|
export-file-name="chart"
|
||||||
export-url="/panel/export"
|
export-url="/visual/panel/export"
|
||||||
import-url="/panel/import"
|
import-url="/visual/panel/import"
|
||||||
:params="filter"
|
:params="filter"
|
||||||
:permissions="{
|
:permissions="{
|
||||||
import: 'panel_chart_import',
|
import: 'panel_chart_import',
|
||||||
@@ -149,18 +149,17 @@ export default {
|
|||||||
chart: {},
|
chart: {},
|
||||||
blankChart: {
|
blankChart: {
|
||||||
id: '',
|
id: '',
|
||||||
title: '',
|
name: '',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
span: 12,
|
span: 12,
|
||||||
height: '400',
|
height: '400',
|
||||||
unit: 2,
|
unit: 2,
|
||||||
param: {
|
param: { url: '', threshold: '' },
|
||||||
url: '',
|
|
||||||
threshold: ''
|
|
||||||
},
|
|
||||||
elements: [{ expression: '', legend: '', type: 'expert', id: '' }],
|
elements: [{ expression: '', legend: '', type: 'expert', id: '' }],
|
||||||
panel: '',
|
panel: '',
|
||||||
sync: 0
|
sync: 0,
|
||||||
|
remark: '',
|
||||||
|
groupId: -1
|
||||||
},
|
},
|
||||||
pageObj: {
|
pageObj: {
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
@@ -286,6 +285,7 @@ export default {
|
|||||||
addChart () {
|
addChart () {
|
||||||
this.chart = this.newChart()
|
this.chart = this.newChart()
|
||||||
this.rightBox.chart.show = true
|
this.rightBox.chart.show = true
|
||||||
|
console.log(123123123)
|
||||||
},
|
},
|
||||||
newChart () {
|
newChart () {
|
||||||
return JSON.parse(JSON.stringify(this.blankChart))
|
return JSON.parse(JSON.stringify(this.blankChart))
|
||||||
|
|||||||
Reference in New Issue
Block a user