<template> <div id="app"> <el-container> <el-header> <uiHeader></uiHeader> </el-header> <el-main> <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;"> <span style="font-size: 1rem; font-weight: bold;">上级平台列表</span> </div> <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;"> <el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="addParentPlatform">添加</el-button> </div> <!--设备列表--> <el-table :data="platformList" border style="width: 100%" :height="winHeight"> <el-table-column prop="name" label="名称" width="240" align="center"></el-table-column> <el-table-column prop="serverGBId" label="平台编号" width="180" align="center"></el-table-column> <el-table-column label="是否启用" width="120" align="center"> <template slot-scope="scope"> <div slot="reference" class="name-wrapper"> <el-tag size="medium" v-if="scope.row.enable">已启用</el-tag> <el-tag size="medium" type="info" v-if="!scope.row.enable">未启用</el-tag> </div> </template> </el-table-column> <el-table-column label="状态" width="120" align="center"> <template slot-scope="scope"> <div slot="reference" class="name-wrapper"> <el-tag size="medium" v-if="scope.row.status">在线</el-tag> <el-tag size="medium" type="info" v-if="!scope.row.status">离线</el-tag> </div> </template> </el-table-column> <el-table-column label="地址" width="180" align="center"> <template slot-scope="scope"> <div slot="reference" class="name-wrapper"> <el-tag size="medium">{{ scope.row.serverIP}}:{{scope.row.serverPort }}</el-tag> </div> </template> </el-table-column> <el-table-column prop="deviceGBId" label="设备国标编号" width="240" align="center"></el-table-column> <el-table-column prop="transport" label="信令传输模式" width="120" align="center"></el-table-column> <el-table-column prop="channelCount" label="通道数" align="center"></el-table-column> <el-table-column label="操作" width="300" align="center" fixed="right"> <template slot-scope="scope"> <el-button size="mini" icon="el-icon-edit" @click="editPlatform(scope.row)">编辑</el-button> <el-button size="mini" icon="el-icon-share" type="primary" @click="chooseChannel(scope.row)">选择通道</el-button> <el-button size="mini" icon="el-icon-delete" type="danger" @click="deletePlatform(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <el-pagination style="float: right" @size-change="handleSizeChange" @current-change="currentChange" :current-page="currentPage" :page-size="count" :page-sizes="[15, 25, 35, 50]" layout="total, sizes, prev, pager, next" :total="total"> </el-pagination> <platformEdit ref="platformEdit" ></platformEdit> <chooseChannelDialog ref="chooseChannelDialog" ></chooseChannelDialog> </el-main> </el-container> </div> </template> <script> import platformEdit from './dialog/platformEdit.vue' import uiHeader from './UiHeader.vue' import chooseChannelDialog from './dialog/chooseChannel.vue' export default { name: 'app', components: { platformEdit, uiHeader, chooseChannelDialog }, data() { return { platformList: [], //设备列表 winHeight: window.innerHeight - 260, currentPage:1, count:15, total:0 }; }, computed: { getcurrentDeviceChannels: function() { } }, mounted() { this.initData(); this.updateLooper = setInterval(this.initData, 10000); }, destroyed() { clearTimeout(this.updateLooper); }, methods: { addParentPlatform: function() { this.$refs.platformEdit.openDialog(null, this.initData) }, editPlatform: function(platform) { console.log(platform) this.$refs.platformEdit.openDialog(platform, this.initData) }, deletePlatform: function(platform) { var that = this; that.$confirm('确认删除?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { that.deletePlatformCommit(platform) }) }, deletePlatformCommit: function(platform) { var that = this; that.$axios({ method: 'delete', url:`/api/platform/delete/${platform.serverGBId}` }).then(function (res) { if (res.data == "success") { that.$message({ showClose: true, message: '删除成功', type: 'success' }); that.initData() } }).catch(function (error) { console.log(error); }); }, chooseChannel: function(platform) { this.$refs.chooseChannelDialog.openDialog(platform.serverGBId, ()=>{ this.initData() }) }, initData: function() { this.getPlatformList(); }, currentChange: function(val){ this.currentPage = val; this.getPlatformList(); }, handleSizeChange: function(val){ this.count = val; this.getPlatformList(); }, getPlatformList: function() { let that = this; this.$axios({ method: 'get', url:`/api/platform/query/${that.count}/${that.currentPage}` }).then(function (res) { that.total = res.data.total; that.platformList = res.data.list; }).catch(function (error) { console.log(error); }); } } }; </script>