NEZ-845 feat: chart template 增加导入导出按钮,修改topo下拉框显示不全的问题 以及 diagram loging 隐藏时机的变更

This commit is contained in:
zhangyu
2021-07-20 10:16:28 +08:00
parent a602c60303
commit 2048640321
4 changed files with 58 additions and 14 deletions

View File

@@ -4,7 +4,7 @@
</style> </style>
<template> <template>
<div class="project-box list-page" v-loading="topologyLoading" v-has="'topo_list'"> <div class="project-box list-page" v-loading="topologyLoading" v-has="'topo_list'">
<div class="main-list"> <div class="main-list" style="overflow: hidden">
<div class="main-container" :class="fromOverView?'from-overview':'from-project'" style="background: #fff"> <div class="main-container" :class="fromOverView?'from-overview':'from-project'" style="background: #fff">
<div v-if="(editTopologyFlag || isPreview)&&!fromChart" class="edit-topologyLine top-tools" style="padding-left: 20px;width: calc(100% - 20px);display: inline-block"> <div v-if="(editTopologyFlag || isPreview)&&!fromChart" class="edit-topologyLine top-tools" style="padding-left: 20px;width: calc(100% - 20px);display: inline-block">
<!--工具栏--> <!--工具栏-->
@@ -685,6 +685,7 @@ export default {
}) })
if (this.fromTopologyDialog && !this.isPreview) { if (this.fromTopologyDialog && !this.isPreview) {
setTimeout(() => { setTimeout(() => {
this.topologyLoading = false
getTopology(this.topologyIndex).open(data) getTopology(this.topologyIndex).open(data)
getTopology(this.topologyIndex).centerView() getTopology(this.topologyIndex).centerView()
getTopology(this.topologyIndex).resize() getTopology(this.topologyIndex).resize()
@@ -720,6 +721,7 @@ export default {
getTopology(this.topologyIndex).lock(2) getTopology(this.topologyIndex).lock(2)
} }
} }
this.topologyLoading = false
this.penToolTipScale = getTopology(this.topologyIndex).data.scale this.penToolTipScale = getTopology(this.topologyIndex).data.scale
setTimeout(() => { setTimeout(() => {
getTopology(this.topologyIndex).data.pens.forEach(item => { getTopology(this.topologyIndex).data.pens.forEach(item => {
@@ -729,7 +731,7 @@ export default {
item.startAnimate() item.startAnimate()
}) })
} }
}, 100) })
}) })
// if(this.fromPrev){ // if(this.fromPrev){
// getTopology(this.topologyIndex).scaleTo(data.scale/2) // getTopology(this.topologyIndex).scaleTo(data.scale/2)
@@ -782,7 +784,6 @@ export default {
} else { } else {
getTopology(this.topologyIndex).open(data) getTopology(this.topologyIndex).open(data)
} }
this.topologyLoading = false
if (!getTopology(this.topologyIndex).data.name) { if (!getTopology(this.topologyIndex).data.name) {
getTopology(this.topologyIndex).data.name = '' getTopology(this.topologyIndex).data.name = ''
} }

View File

@@ -151,7 +151,9 @@ export default {
}, },
rollbackImport () { rollbackImport () {
let url let url
if (this.importUrl.indexOf('asset') > -1) { if (this.importUrl.indexOf('/asset/model') > -1) {
url = '/asset/model/cancelImport'
} else if (this.importUrl.indexOf('asset') > -1) {
url = '/asset/asset/cancelImport' url = '/asset/asset/cancelImport'
} else if (this.importUrl.indexOf('endpoint') > -1) { } else if (this.importUrl.indexOf('endpoint') > -1) {
url = '/monitor/endpoint/cancelImport' url = '/monitor/endpoint/cancelImport'
@@ -161,6 +163,10 @@ export default {
url = 'visual/panel/cancelImport' url = 'visual/panel/cancelImport'
} else if (this.importUrl.indexOf('tmpl') > -1) { } else if (this.importUrl.indexOf('tmpl') > -1) {
url = '/expression/tmpl/cancelImport' url = '/expression/tmpl/cancelImport'
} else if (this.importUrl.indexOf('dc/cabinet') > -1) {
url = '/dc/cabinet/cancelImport'
} else if (this.importUrl.indexOf('dc') > -1) {
url = '/dc/cancelImport'
} }
this.$delete(url + '?seq=' + this.importResult.seq).then(response => { this.$delete(url + '?seq=' + this.importResult.seq).then(response => {
if (response.code == 200) { if (response.code == 200) {
@@ -184,6 +190,9 @@ export default {
form.append('linkId', this.link ? this.link.id : '') form.append('linkId', this.link ? this.link.id : '')
} }
} }
if (this.importUrl.indexOf('dc/cabinet') > -1) {
form.append('dcIds', this.params.dcIds)
}
form.append('language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en') form.append('language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en')
this.$post(this.importUrl, form, { 'Content-Type': 'multipart/form-data' }).then(response => { this.$post(this.importUrl, form, { 'Content-Type': 'multipart/form-data' }).then(response => {
if (response.code == 200 && response.msg == 'success') { if (response.code == 200 && response.msg == 'success') {
@@ -223,7 +232,9 @@ export default {
let url = null let url = null
const param = { language: language } const param = { language: language }
if (this.importUrl.indexOf('asset') > -1) { if (this.importUrl.indexOf('/asset/model') > -1) {
url = '/asset/model/template'
} else if (this.importUrl.indexOf('asset') > -1) {
url = '/asset/asset/template' url = '/asset/asset/template'
param.type = 'asset' param.type = 'asset'
} else if (this.importUrl.indexOf('panel') > -1) { } else if (this.importUrl.indexOf('panel') > -1) {
@@ -236,6 +247,10 @@ export default {
url = '/expression/tmpl/template' url = '/expression/tmpl/template'
} else if (this.importUrl.indexOf('alert') > -1) { } else if (this.importUrl.indexOf('alert') > -1) {
url = '/alert/rule/template' url = '/alert/rule/template'
} else if (this.importUrl.indexOf('dc/cabinet') > -1) {
url = '/dc/cabinet/template'
} else if (this.importUrl.indexOf('dc') > -1) {
url = '/dc/template'
} }
if (!url) { if (!url) {
@@ -262,7 +277,9 @@ export default {
}) })
} }
if (this.exportUrl.indexOf('panel') > -1) { if (this.exportUrl.indexOf('panel') > -1) {
params.pageSize = -1 if (this.paramsType !== 'template') {
params.pageSize = -1
}
delete params.start_time delete params.start_time
delete params.end_time delete params.end_time
delete params.id delete params.id

View File

@@ -708,8 +708,8 @@
<div class="props-pen-item"> <div class="props-pen-item">
<div>{{ $t('project.topology.textAlign') }}</div> <div>{{ $t('project.topology.textAlign') }}</div>
<div class="p10 pl0"> <div class="p10 pl0">
<el-select :placeholder="$t('el.select.placeholder')" :popper-append-to-body="false" <el-select :placeholder="$t('el.select.placeholder')" :popper-append-to-body="true"
class="right-box-row-with-btn" popper-class="chart-box-dropdown-small" class="right-box-row-with-btn no-style-class" popper-class="chart-box-dropdown-small"
size="mini" size="mini"
v-model="selection.pen.font.textAlign" value-key="chartType" @change="onChange"> v-model="selection.pen.font.textAlign" value-key="chartType" @change="onChange">
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in textAlignOptions"> <el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in textAlignOptions">
@@ -722,8 +722,8 @@
<div class="props-pen-item"> <div class="props-pen-item">
<div>{{ $t('project.topology.textBaseline') }}</div> <div>{{ $t('project.topology.textBaseline') }}</div>
<div class="p10 pl0"> <div class="p10 pl0">
<el-select :placeholder="$t('el.select.placeholder')" :popper-append-to-body="false" <el-select :placeholder="$t('el.select.placeholder')" :popper-append-to-body="true"
class="right-box-row-with-btn" popper-class="chart-box-dropdown-small" class="right-box-row-with-btn no-style-class" popper-class="chart-box-dropdown-small"
size="mini" size="mini"
v-model="selection.pen.font.textBaseline" value-key="chartType" @change="onChange"> v-model="selection.pen.font.textBaseline" value-key="chartType" @change="onChange">
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in textBaselineOptions"> <el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in textBaselineOptions">

View File

@@ -36,9 +36,33 @@
type="button" @click="add"> type="button" @click="add">
<i class="nz-icon nz-icon-create-square"></i> <i class="nz-icon nz-icon-create-square"></i>
</button> </button>
<top-tool-more-options
<delete-button :delete-objs="batchDeleteObjs" @after="getTableData" ref="export"
id="alert-msg-batch-delete" v-has="'expressionTemplate_delete'" :api="url"></delete-button></template> id="expression-template-list"
export-url="visual/panel/export"
import-url="visual/panel/import"
export-file-name="chart-temp-template"
:params="searchLabel"
:params2="{
panelId:0,
returnChildren: 0,
groupId: 0
}"
:paramsType="'template'"
:permissions="{import: 'expressionTemplate_add', export: 'expressionTemplate_view'}"
class="top-tool-export margin-r-10"
@afterImport="getTableData"
>
<template v-slot:before>
<div>
<el-dropdown-item>
<delete-button :type="'link'" :title="$t('overall.batchDel')" :delete-objs="batchDeleteObjs" @after="getTableData"
id="alert-msg-batch-delete" v-has="'expressionTemplate_delete'" :api="url"></delete-button>
</el-dropdown-item>
</div>
</template>
</top-tool-more-options>
</template>
<template v-slot="slotProps"> <template v-slot="slotProps">
<chartTmplTable <chartTmplTable
ref="dataTable" ref="dataTable"
@@ -74,6 +98,7 @@ import chartBox from '@/components/page/dashboard/chartBox'
import deleteButton from '@/components/common/deleteButton' import deleteButton from '@/components/common/deleteButton'
import dataListMixin from '@/components/common/mixin/dataList' import dataListMixin from '@/components/common/mixin/dataList'
import chartTmplTable from '@/components/common/table/settings/chartTmplTable' import chartTmplTable from '@/components/common/table/settings/chartTmplTable'
import topToolMoreOptions from "@/components/common/popBox/topToolMoreOptions";
export default { export default {
name: 'chartTemp', name: 'chartTemp',
@@ -81,7 +106,8 @@ export default {
chartBox, chartBox,
deleteButton, deleteButton,
chartTmplTable, chartTmplTable,
'export-excel': exportXLSX 'export-excel': exportXLSX,
topToolMoreOptions
}, },
mixins: [dataListMixin], mixins: [dataListMixin],
data () { data () {