feat: 侧滑样式修改 添加chatTemp的列表

This commit is contained in:
zhangyu
2021-04-23 11:47:38 +08:00
parent 1583e4d0db
commit d4374d89ed
10 changed files with 204 additions and 145 deletions

View File

@@ -41,6 +41,9 @@
}
.right-box__container {
.right-box-form{
width: calc(100% - 60px);
}
height: calc(100% - 130px);
padding: 0 30px;
overflow-x: hidden;

View File

@@ -1353,7 +1353,8 @@ const cn = {
imgError: '请上传图片',
folder: '目录',
selMod: '请个所有节点绑定module'
}
},
update: '更新'
},
date: {
week: {

View File

@@ -1370,7 +1370,8 @@ const en = {
imgError: 'Please upload pictures',
folder: 'Folder',
selMod: 'Please bind module for all nodes'
}
},
update: '更新'
},
date: {
week: {

View File

@@ -1,15 +1,16 @@
<template>
<div class="right-box right-box-add-endpoint" :class="{'right-box-add-endpoint-snmp': currentModuleCopy.type && currentModuleCopy.type.toLowerCase() == 'snmp'}" v-clickoutside="{obj:endpoint,func:clickOutside}">
<!-- begin--顶部按钮-->
<div class="right-box-top-btns"></div>
<!-- end--顶部按钮-->
<div class="right-box__header">
<!-- begin--标题-->
<div class="right-box-title">{{$t("overall.createEndpoint")}}</div>
<!-- end--标题-->
<!-- begin--顶部按钮-->
<div class="right-box-top-btns"></div>
<!-- end--顶部按钮-->
</div>
<!-- begin--表单-->
<div class="right-box-form-box" style="overflow: hidden">
<div class="right-box-form-box right-box__container" style="overflow: hidden">
<el-form class="right-box-form right-box-form-left" label-position = "top" ref="addEndpoint" :model="endpoint" :rules="rules">
<!--project-->
<el-form-item :label='$t("project.project.project")' prop="projectId" class="select-warp">
@@ -215,7 +216,7 @@
</div>
<!--底部按钮-->
<div class="right-box-bottom-btns">
<div class="right-box-bottom-btns right-box__footer">
<button v-cancel="{obj:endpoint,func:esc}" id="ep-esc" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new">
<span>{{$t('overall.cancel')}}</span>
</button>
@@ -650,6 +651,7 @@ export default {
})
},
addEndpoint () {
const arr = []
this.assetSelection.forEach(item => {
if (this.endpointTableData.find(endpoint => endpoint.assetId === item.id)) {
return
@@ -657,12 +659,14 @@ export default {
const obj = {
assetId: item.id,
assetName: item.name,
asset: item,
// asset: item,
type: this.currentModuleCopy.type,
projectId: this.currentModuleCopy.projectId,
configs: { ...JSON.parse(this.currentModuleCopy.configs), host: item.manageIp },
moduleId: this.currentModuleCopy.id
}
obj.name = this.currentModuleCopy.endpointNameTmpl
obj.configs = JSON.stringify(obj.configs)
obj.labelModule = []
if (obj.configs.labels !== '{}' && obj.configs.labels) {
Object.keys(obj.configs.labels).forEach(key => {
@@ -679,10 +683,15 @@ export default {
} else {
obj.paramObj.push({ key: '', value: [] })
}
this.endpointTableData.push(obj)
// this.endpointTableData.push({ ...obj })
obj.configs = JSON.stringify(obj.configs)
arr.push(obj)
})
this.assetTableData = [...this.assetTableData]
this.$refs.multipleTable.clearSelection()
this.$put('monitor/endpoint/render', arr).then(res => {
console.log(res)
})
// this.assetTableData = [...this.assetTableData]
// this.$refs.multipleTable.clearSelection()
},
removeEndpoint () {
if (this.endpointSelection.length === 0) {

View File

@@ -1,15 +1,16 @@
<template>
<div class="right-box right-box-add-endpoint" v-clickoutside="{obj:endpoint,func:clickOutside}">
<!-- begin--顶部按钮-->
<div class="right-box-top-btns"></div>
<!-- end--顶部按钮-->
<div class="right-box__header">
<!-- begin--标题-->
<div class="right-box-title">{{$t("overall.batchEndpoint")}}</div>
<!-- end--标题-->
<!-- begin--顶部按钮-->
<div class="right-box-top-btns"></div>
<!-- end--顶部按钮-->
</div>
<!-- begin--表单-->
<div class="right-box-form-box" style="overflow: hidden">
<div class="right-box-form-box right-box__container" style="overflow: hidden">
<el-form class="right-box-form right-box-form-left" label-position = "top" ref="addEndpoint" :model="endpoint" :rules="rules">
<!--asset和endpoint-->
<div class="asset-and-endpoint">
@@ -97,7 +98,7 @@
</div>
<!--底部按钮-->
<div class="right-box-bottom-btns">
<div class="right-box-bottom-btns right-box__footer">
<button v-cancel="{obj:endpoint,func:esc}" id="ep-esc" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new">
<span>{{$t('overall.cancel')}}</span>
</button>

View File

@@ -1,14 +1,6 @@
<template>
<div class="right-box right-box-module" v-clickoutside="{obj:editEndpoint,func:clickOutside}">
<!-- begin--顶部按钮-->
<div class="right-box-top-btns right-box-form-delete" v-if="optionType === 'edit'">
<button v-if="editEndpoint.id" id="module-del" v-has="'monitor_endpoint_delete'" class="nz-btn nz-btn-size-normal nz-btn-size-alien" type="button" @click="del">
<span class="right-box-top-btn-icon"><i class="nz-icon nz-icon-delete"></i></span>
<span class="right-box-top-btn-txt">{{$t('overall.delete')}}</span>
</button>
</div>
<!-- end--顶部按钮-->
<div class="right-box__header">
<!-- begin--标题-->
<div class="right-box-title">
<span v-if="optionType === 'edit'">
@@ -22,9 +14,18 @@
</span>
</div>
<!-- end--标题-->
<!-- begin--顶部按钮-->
<div class="right-box-top-btns right-box-form-delete" v-if="optionType === 'edit'">
<button v-if="editEndpoint.id" id="module-del" v-has="'monitor_endpoint_delete'" class="nz-btn nz-btn-size-normal nz-btn-size-alien" type="button" @click="del">
<span class="right-box-top-btn-icon"><i class="nz-icon nz-icon-delete"></i></span>
<span class="right-box-top-btn-txt">{{$t('overall.delete')}}</span>
</button>
</div>
<!-- end--顶部按钮-->
</div>
<!-- begin--表单-->
<div class="right-box-form-box" ref="scrollbar">
<div class="right-box-form-box right-box__container" ref="scrollbar">
<el-form class="right-box-form right-box-form-left" :model="editEndpoint" label-position = "top" label-width="120px" :rules="rules" ref="moduleForm">
<!--name-->
<el-form-item :label='$t("project.module.endpointName")' prop="name" label-width="125px" v-if="optionType!=='batch'">
@@ -248,7 +249,7 @@
</div>
<!--底部按钮-->
<div class="right-box-bottom-btns">
<div class="right-box-bottom-btns right-box__footer">
<button v-cancel="{obj:editEndpoint,func:esc}" id="module-box-esc" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new">
<span>{{$t('overall.cancel')}}</span>
</button>

View File

@@ -1,5 +1,9 @@
<template>
<div class="right-box right-box-module" v-clickoutside="{obj:editModule,func:clickOutside}">
<div class="right-box__header">
<!-- begin--标题-->
<div class="right-box-title">{{editModule.id ? $t("project.module.editModule") + " ID" + editModule.id : $t("project.module.createModule")}}</div>
<!-- end--标题-->
<!-- begin--顶部按钮-->
<div class="right-box-top-btns right-box-form-delete">
<button v-if="editModule.id" id="module-del" v-has="'monitor_module_delete'" class="nz-btn nz-btn-size-normal nz-btn-size-alien" type="button" @click="del">
@@ -8,13 +12,10 @@
</button>
</div>
<!-- end--顶部按钮-->
<!-- begin--标题-->
<div class="right-box-title">{{editModule.id ? $t("project.module.editModule") + " ID" + editModule.id : $t("project.module.createModule")}}</div>
<!-- end--标题-->
</div>
<!-- begin--表单-->
<div class="right-box-form-box" ref="scrollbar">
<div class="right-box-form-box right-box__container" ref="scrollbar">
<el-form class="right-box-form right-box-form-left" :model="editModule" label-position = "top" label-width="120px" :rules="rules" ref="moduleForm">
<!--name-->
<el-form-item :label='$t("project.module.moduleName")' prop="name" label-width="125px">
@@ -241,7 +242,7 @@
</div>
<!--底部按钮-->
<div class="right-box-bottom-btns">
<div class="right-box-bottom-btns right-box__footer">
<button v-cancel="{obj:editModule,func:esc}" id="module-box-esc" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new">
<span>{{$t('overall.cancel')}}</span>
</button>

View File

@@ -1,5 +1,10 @@
<template>
<div class="right-box right-box-project" v-clickoutside="{obj:editProject,func:clickOutside}">
<div class="right-box__header">
<!-- begin--标题-->
<div class="right-box-title">{{editProject.id ? $t("project.project.editProject") + " ID" + editProject.id : $t("overall.createProject")}}</div>
<!-- end--标题-->
<!-- begin--顶部按钮-->
<div class="right-box-top-btns right-box-form-delete">
<button @click="del" class="nz-btn nz-btn-size-normal nz-btn-size-alien" id="project-del" type="button" v-has="'project_delete'" v-if="project.id">
@@ -9,10 +14,8 @@
</div>
<!-- end--顶部按钮-->
<!-- begin--标题-->
<div class="right-box-title">{{editProject.id ? $t("project.project.editProject") + " ID" + editProject.id : $t("overall.createProject")}}</div>
<!-- end--标题-->
<div class="right-box-form-box">
</div>
<div class="right-box-form-box right-box__container">
<el-form class="right-box-form right-box-form-left" :model="editProject" label-position = "top" label-width="120px" :rules="rules" ref="projectForm">
<el-form-item :label='$t("project.project.projectName")' prop="name">
<el-input size="mini" maxlength="64" show-word-limit v-model="editProject.name" id="project-box-input-name"></el-input>
@@ -24,7 +27,7 @@
</div>
<!--底部按钮-->
<div class="right-box-bottom-btns">
<div class="right-box-bottom-btns right-box__footer">
<button v-cancel="{obj:editProject,func:esc}" id="project-esc" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new">
<span>{{$t('overall.cancel')}}</span>
</button>

View File

@@ -0,0 +1,87 @@
<template>
<el-table
id="roleTable"
ref="dataTable"
:data="tableData"
:height="height"
border
@header-dragend="dragend"
@sort-change="tableDataSort"
@selection-change="selectionChange"
>
<el-table-column
:resizable="false"
align="center"
type="selection"
width="55">
</el-table-column>
<el-table-column
v-for="(item, index) in customTableTitle"
v-if="item.show"
:key="`col-${index}`"
:fixed="item.fixed"
:label="item.label"
:min-width="`${item.minWidth}`"
:prop="item.prop"
:resizable="true"
:sort-orders="['ascending', 'descending']"
:width="`${item.width}`"
class="data-column"
>
<template slot="header">
<span>{{item.label}}</span>
<div class="col-resize-area"></div>
</template>
<template slot-scope="scope" :column="item">
<span v-if="scope.row[item.prop]">{{scope.row[item.prop] || '-'}}</span>
<template v-else>-</template>
</template>
</el-table-column>
<el-table-column
:resizable="false"
:width="operationWidth"
fixed="right">
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
<div slot-scope="scope" class="table-operation-items">
<button class="table-operation-item" title="Copy" @click="tableOperation('copy', scope.row)"><i class="nz-icon nz-icon-override"></i></button>
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
<div class="table-operation-item table-operation-item--more">
<span></span><i class="nz-icon nz-icon-arrow-down"></i>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
<el-dropdown-item :command="['delete', scope.row]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</el-table-column>
</el-table>
</template>
<script>
import table from '@/components/common/mixin/table'
export default {
name: 'roleTable',
mixins: [table],
data () {
return {
tableTitle: [
{
label: 'ID',
prop: 'id',
show: true,
width: 80
}, {
label: this.$t('config.exprTemp.name'),
prop: 'name',
show: true
}, {
label: this.$t('config.exprTemp.remark'),
prop: 'remark',
show: true
}
]
}
}
}
</script>

View File

@@ -37,7 +37,7 @@
<delete-button :delete-objs="batchDeleteObjs" @after="getTableData"
id="alert-msg-batch-delete" v-has="'expressionTemplate_delete'" :api="url"></delete-button></template>
<template v-slot:default="slotProps">
<expr-tmpl-table
<chart-tmpl-table
ref="dataTable"
v-loading="slotProps.loading"
:api="url"
@@ -50,7 +50,7 @@
@orderBy="tableDataSort"
@reload="getTableData"
@selectionChange="selectionChange"
@showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }"></expr-tmpl-table>
@showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }"></chart-tmpl-table>
</template>
<!-- 分页组件 -->
<template v-slot:pagination>
@@ -58,47 +58,33 @@
</template>
</nz-data-list>
<transition name="right-box">
<expr-tmpl-box v-if="rightBox.show" :exprTemp="object" @close="closeRightBox"></expr-tmpl-box>
<!-- <chart-box :chart="chart" :from="'temp'" @close="closeChartBox" @delete-chart="delChart" @on-create-success="createSuccess" @on-delete-success="delChartOk" @reload="panelReload" @reloadOnlyPanel="panelReloadOnlyPanel" ref="addChartModal" v-if="rightBox.chart.show"></chart-box>-->
</transition>
<!--导出-->
<div class="export-xlsx">
<el-dialog :visible.sync="importBox.show" :title="importBox.title" :modal-append-to-body='false'
:show-close="true" width="300px" @close="closeDialog" class="nz-dialog">
<div class="upload-body">
<button @click="exportCur" class="el-button el-button--default el-button--small" id="alert-msg-exportcur">
<span>{{$t('overall.exportCur')}}</span>
</button>
<button @click="exportAll" class="el-button el-button--default el-button--small" id="alert-msg-exportall">
<span>{{$t('overall.exportAll')}}</span>
</button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import bus from '@/libs/bus'
import exportXLSX from '@/components/common/exportXLSX'
import exprTmplBox from '@/components/common/rightBox/exprTmplBox'
import chartBox from "@/components/page/dashboard/chartBox";
import deleteButton from '@/components/common/deleteButton'
import nzDataList from '@/components/common/table/nzDataList'
import dataListMixin from '@/components/common/mixin/dataList'
import exprTmplTable from '@/components/common/table/settings/exprTmplTable'
import chartTmplTable from '@/components/common/table/settings/chartTmplTable'
export default {
name: 'chartTemp',
components: {
chartBox,
deleteButton,
exprTmplBox,
nzDataList,
exprTmplTable,
chartTmplTable,
'export-excel': exportXLSX
},
mixins: [dataListMixin],
data () {
return {
url: 'expression/tmpl',
url: 'visual/panel/chart',
tableId: 'exprTemp',
/* 搜素相关 */
searchMsg: { // 给搜索框子组件传递的信息
@@ -116,12 +102,6 @@ export default {
type: 'input',
label: 'name',
disabled: false
}, {
id: 13,
name: this.$t('config.exprTemp.gname'),
type: 'selectTemp',
label: 'gname',
disabled: false
}
]
},
@@ -140,61 +120,33 @@ export default {
}
},
mounted () {
this.initEvent()
},
methods: {
initEvent () {
bus.$on('alert-rule-list-change', () => {
this.getTableData()
})
bus.$on('dc-list-change', () => {
this.getTableData()
})
bus.$on('alert-message-change', () => {
this.getTableData()
})
},
showExportDialog () {
this.importBox.show = true
},
closeDialog () {
this.importBox.show = false
this.deleteBox.show = false
},
exportCur () {
const searchLabel = Object.assign({}, this.searchLabel)
this.$set(searchLabel, 'language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en')
this.exportExcel(searchLabel)
this.closeDialog()
},
exportAll () {
const temp = JSON.parse(JSON.stringify(this.searchLabel))
temp.pageSize = -1
this.$set(temp, 'language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en')
this.exportExcel(temp)
this.closeDialog()
},
overtime (row) {
if (this.prevent_opt.save) {
return
getTableData (params) {
if (params && Object.keys(params).length > 0) {
for (const key in params) {
this.$set(this.searchLabel, key, params[key])
}
this.prevent_opt.save = true
this.$confirm(this.$t('tip.confirmOvertime'), {
confirmButtonText: this.$t('tip.yes'),
cancelButtonText: this.$t('tip.no'),
type: 'warning'
}).then(() => {
this.$delete('expression/tmpl?ids=' + row.id).then(response => {
this.prevent_opt.save = false
}
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
this.tools.loading = true
this.$get(this.url, { ...this.searchLabel, ...this.searchCheckBox, panelId: 0, returnChildren: 0 }).then(response => {
this.tools.loading = false
if (response.code === 200) {
this.$message({ type: 'success', message: this.$t('tip.deleteSuccess') })
this.getTableData()
} else {
this.$message.error(response.msg)
for (let i = 0; i < response.data.list.length; i++) {
response.data.list[i].status = response.data.list[i].status + ''
}
this.tableData = response.data.list
this.pageObj.total = response.data.total
if (!this.scrollbarWrap) {
this.$nextTick(() => {
this.scrollbarWrap = this.$refs.dataTable.$refs.dataTable.bodyWrapper
this.toTopBtnHandler(this.scrollbarWrap)
})
}).catch(() => {
this.prevent_opt.save = false
}
}
})
}
}