|
@@ -1,94 +1,89 @@
|
|
<template>
|
|
<template>
|
|
- <div id="tabFunNumOverview">
|
|
|
|
|
|
+ <div id="tabFunDetail">
|
|
<!-- 查询 新增 -->
|
|
<!-- 查询 新增 -->
|
|
<div class="query-area" style="padding:10px;">
|
|
<div class="query-area" style="padding:10px;">
|
|
- <!-- <el-input :placeholder="`请输入表号功能号`" v-model="tabFunNum" @keyup.enter.native="handleCurrentChange(1)" style="width:240px;">-->
|
|
|
|
- <!-- <i slot="suffix" class="el-input__icon el-icon-search" @click="handleCurrentChange(1)"></i>-->
|
|
|
|
- <!-- </el-input>-->
|
|
|
|
- <!-- <p style="overflow: hidden;float:right;">-->
|
|
|
|
- <!-- <el-button style="height:32px" @click='handleDrawer({},3)'>新增自定义</el-button>-->
|
|
|
|
- <!-- </p>-->
|
|
|
|
- <el-select v-model="value" placeholder="请选择数据源">
|
|
|
|
|
|
+ <el-select v-model="originName" placeholder="请选择数据源" clearable @change="changeHandleSelect">
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in options"
|
|
|
|
- :key="item.value"
|
|
|
|
- :label="item.label"
|
|
|
|
- :value="item.value">
|
|
|
|
|
|
+ v-for="(item,index) in selectAggregate.originList"
|
|
|
|
+ :key="index"
|
|
|
|
+ :label="item"
|
|
|
|
+ :value="index">
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- <el-select v-model="value" placeholder="请选择状态">
|
|
|
|
|
|
+ <el-select v-model="statusName" placeholder="请选择状态" clearable @change="changeHandleSelect">
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in options"
|
|
|
|
|
|
+ v-for="item in statusList"
|
|
:key="item.value"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- <el-select v-model="value" placeholder="请选择获取方式">
|
|
|
|
|
|
+ <el-select v-model="accessList" placeholder="请选择获取方式" clearable @change="changeHandleSelect">
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in options"
|
|
|
|
|
|
+ v-for="item in getAccessMethods"
|
|
:key="item.value"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
|
|
+ <span style="float: right">
|
|
|
|
+ <el-button @click="handleControl">控制测试</el-button>
|
|
|
|
+ <i class="el-icon-refresh" style="cursor: pointer;padding: 0 15px" title="刷新" @click="getOverViewList"/>
|
|
|
|
+ <i class="el-icon-download" style="cursor: pointer" @click="downloads" title="下载"/>
|
|
|
|
+ </span>
|
|
</div>
|
|
</div>
|
|
<!-- 数据表格 -->
|
|
<!-- 数据表格 -->
|
|
<div class="table-area">
|
|
<div class="table-area">
|
|
- <el-table :data="tableData" style="width: 100%" height="calc(100% - 32px)" v-loading="loading"
|
|
|
|
- :header-cell-style="headerStyle"
|
|
|
|
- @row-click="handleClickRow">
|
|
|
|
- <el-table-column
|
|
|
|
- label="序号"
|
|
|
|
- type="index"
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop='' label='状态' show-overflow-tooltip width="35" header-align='center'>
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <i class="el-icon-warning-outline" style="float:left;margin: 0 5px;color: red;font-size:18px;"></i>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop='MeterFunc' label='表号-功能号' show-overflow-tooltip align='center'></el-table-column>
|
|
|
|
- <el-table-column prop='Data.Data' label='查看分精度' show-overflow-tooltip align='center'>
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <el-button style="padding:7px 15px;font-size:15px;" @click="handleDrawer(scope.row, 0)">
|
|
|
|
- <i class="el-icon-s-data"/></el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop='Data.Time' label='对应值 - 获取时间' show-overflow-tooltip min-width="270" header-align='center'
|
|
|
|
- align='center'
|
|
|
|
- style="position:relative;">
|
|
|
|
|
|
+ <el-table
|
|
|
|
+ :data="tableData" style="width: 100%" height="calc(100% - 32px)" v-loading="loading"
|
|
|
|
+ :header-cell-style="headerStyle"
|
|
|
|
+ @row-click="handleClickRow"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column label="序号" type="index"/>
|
|
|
|
+ <el-table-column prop='Status' label='状态' show-overflow-tooltip header-align='center'>
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div style="width:175px;display:inline-block;">
|
|
|
|
- <span style="line-height:29px;">{{ scope.row.Data? (scope.row.Data.Data || '--'): '--' }} </span>
|
|
|
|
- <span style="line-height:29px;">{{ scope.row.Data? scope.row.Data.Time : '' }}</span>
|
|
|
|
- </div>
|
|
|
|
- <span style="width:55.33px;display:inline-block;padding-left:10px;">
|
|
|
|
- <el-button class="dialog-btn" @click="refreshThisRow(scope.row)"><i
|
|
|
|
- class="el-icon-refresh"></i></el-button>
|
|
|
|
- </span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop='RelatedPoint' label='涉及子系统点位(数据来源)' show-overflow-tooltip min-width="150" align='center'>
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span style="display:inline-block;width:16px;line-height:29px;">{{ scope.row.RelatedPoint }}</span>
|
|
|
|
- <span style="width:55.33px;display:inline-block;padding-left:10px;">
|
|
|
|
- <el-button class="dialog-btn" v-if="scope.row.RelatedPoint" @click="handleDrawer(scope.row, 1)"><i
|
|
|
|
- class="el-icon-coin"></i></el-button>
|
|
|
|
- </span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop='RelatedInstance' label='涉及的对象实例(应用到)' show-overflow-tooltip min-width="150"
|
|
|
|
- align='center'>
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span style="display:inline-block;width:16px;line-height:29px;">{{ scope.row.RelatedInstance }}</span>
|
|
|
|
- <span style="width:55.33px;display:inline-block;padding-left:10px;">
|
|
|
|
- <el-button class="dialog-btn" v-if="scope.row.RelatedInstance" @click="handleDrawer(scope.row, 2)"><i
|
|
|
|
- class="el-icon-coin"></i>
|
|
|
|
- </el-button>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <i class="el-icon-warning-outline" style="float:left;margin: 0 5px;color: red;font-size:18px;"></i>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column prop='Meterfunc' label='整合ID' show-overflow-tooltip align='center'/>
|
|
|
|
+ <el-table-column prop='Description' label='点位描述' show-overflow-tooltip align='center'/>
|
|
|
|
+ <!-- <template slot-scope="scope">-->
|
|
|
|
+ <!-- <el-button style="padding:7px 15px;font-size:15px;" @click="handleDrawer(scope.row, 0)">-->
|
|
|
|
+ <!-- <i class="el-icon-s-data"/></el-button>-->
|
|
|
|
+ <!-- </template>-->
|
|
|
|
+ <el-table-column prop='Data.Data' label='data' show-overflow-tooltip align='center' style="position:relative;"/>
|
|
|
|
+ <!-- <template slot-scope="scope">-->
|
|
|
|
+ <!-- <div style="width:175px;display:inline-block;">-->
|
|
|
|
+ <!-- <span style="line-height:29px;">{{ scope.row.Data? (scope.row.Data.Data || '--'): '--' }} </span>-->
|
|
|
|
+ <!-- <span style="line-height:29px;">{{ scope.row.Data? scope.row.Data.Time : '' }}</span>-->
|
|
|
|
+ <!-- </div>-->
|
|
|
|
+ <!-- <span style="width:55.33px;display:inline-block;padding-left:10px;">-->
|
|
|
|
+ <!-- <el-button class="dialog-btn" @click="refreshThisRow(scope.row)"><i-->
|
|
|
|
+ <!-- class="el-icon-refresh"></i></el-button>-->
|
|
|
|
+ <!-- </span>-->
|
|
|
|
+ <!-- </template>-->
|
|
|
|
+ <el-table-column prop='Data.Time' label='data.Time' show-overflow-tooltip align='center'/>
|
|
|
|
+ <!-- <template slot-scope="scope">-->
|
|
|
|
+ <!-- <span style="display:inline-block;width:16px;line-height:29px;">{{ scope.row.RelatedPoint }}</span>-->
|
|
|
|
+ <!-- <span style="width:55.33px;display:inline-block;padding-left:10px;">-->
|
|
|
|
+ <!-- <el-button class="dialog-btn" v-if="scope.row.RelatedPoint" @click="handleDrawer(scope.row, 1)"><i-->
|
|
|
|
+ <!-- class="el-icon-coin"></i></el-button>-->
|
|
|
|
+ <!-- </span>-->
|
|
|
|
+ <!-- </template>-->
|
|
|
|
+ <el-table-column prop='Data.Delay' label='延迟(s)' show-overflow-tooltip align='center'/>
|
|
|
|
+ <!-- <template slot-scope="scope">-->
|
|
|
|
+ <!-- <span style="display:inline-block;width:16px;line-height:29px;">{{ scope.row.RelatedInstance }}</span>-->
|
|
|
|
+ <!-- <span style="width:55.33px;display:inline-block;padding-left:10px;">-->
|
|
|
|
+ <!-- <el-button class="dialog-btn" v-if="scope.row.RelatedInstance" @click="handleDrawer(scope.row, 2)"><i-->
|
|
|
|
+ <!-- class="el-icon-coin"></i>-->
|
|
|
|
+ <!-- </el-button>-->
|
|
|
|
+ <!-- </span>-->
|
|
|
|
+ <!-- </template>-->
|
|
|
|
+ <el-table-column prop='DatasourceName' label='数据源' show-overflow-tooltip align='center'/>
|
|
|
|
+ <el-table-column prop='Method' label='获取方式' show-overflow-tooltip align='center'/>
|
|
|
|
+ <el-table-column prop='MeterFunc' label='查看曲线' show-overflow-tooltip align='center'/>
|
|
|
|
+ <el-table-column prop='Quality' label='质量评价' show-overflow-tooltip align='center'/>
|
|
|
|
+
|
|
</el-table>
|
|
</el-table>
|
|
<!-- 分页 -->
|
|
<!-- 分页 -->
|
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
|
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
|
|
@@ -118,8 +113,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
- import {Message} from 'element-ui';
|
|
|
|
- import {getTabFunNumOverview} from '@/api/scan/request'
|
|
|
|
|
|
+ import {testDetail} from '@/api/scan/request'
|
|
import historyChart from './historyChart'
|
|
import historyChart from './historyChart'
|
|
import dataSource from './dataSource'
|
|
import dataSource from './dataSource'
|
|
import objectInstance from './objectInstance'
|
|
import objectInstance from './objectInstance'
|
|
@@ -127,6 +121,22 @@
|
|
import lStorage from '@/utils/localStorage'
|
|
import lStorage from '@/utils/localStorage'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
|
+ /** 运行状态 */
|
|
|
|
+ // 0:正常 1:异常 2:停用 3:间接
|
|
|
|
+
|
|
|
|
+ /** 启动状态 */
|
|
|
|
+ // 0:未启动 1:已启动
|
|
|
|
+
|
|
|
|
+ /** 状态 */
|
|
|
|
+ // 0:延迟<30min 1:延迟>30min 2:无数据
|
|
|
|
+
|
|
|
|
+ /** method */
|
|
|
|
+ // 0:订阅 1:推送 2:查询 3:其他
|
|
|
|
+ // @ApiModelProperty(value = "获取方式")
|
|
|
|
+
|
|
|
|
+ /** read-write */
|
|
|
|
+ // 0:读 1:写 2:读写
|
|
|
|
+ // @ApiModelProperty(value = "读写模式"
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
//表格头样式
|
|
//表格头样式
|
|
@@ -149,67 +159,121 @@
|
|
{drawer: false, direction: 'rtl', objId: ''},
|
|
{drawer: false, direction: 'rtl', objId: ''},
|
|
{drawer: false, direction: 'rtl', objId: '', value: ''},
|
|
{drawer: false, direction: 'rtl', objId: '', value: ''},
|
|
{drawer: false, direction: 'rtl', objId: ''}
|
|
{drawer: false, direction: 'rtl', objId: ''}
|
|
|
|
+ ],
|
|
|
|
+ originName: '',
|
|
|
|
+ statusName: '',
|
|
|
|
+ accessList: '',
|
|
|
|
+ statusList: [
|
|
|
|
+ {value: 'zc', label: '正常'},
|
|
|
|
+ {value: 'yc', label: '异常'},
|
|
|
|
+ {value: 'ty', label: '停用'},
|
|
|
|
+ {value: 'jj', label: '间接'}
|
|
|
|
+ ],
|
|
|
|
+ getAccessMethods: [
|
|
|
|
+ {value: 'ts', label: '推送'},
|
|
|
|
+ {value: 'dy', label: '订阅'},
|
|
|
|
+ {value: 'cx', label: '查询'},
|
|
|
|
+ {value: 'qt', label: '其他'}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ props: ['selectAggregate'],
|
|
methods: {
|
|
methods: {
|
|
- //抽屉处理
|
|
|
|
- handleDrawer(row, index) {
|
|
|
|
- if (index == 2 || index == 1) {
|
|
|
|
- //实例数量大于0才能打开
|
|
|
|
- if ((row.RelatedInstance > 0 && index == 2) || (row.RelatedPoint > 0 && index == 1)) {
|
|
|
|
- this.drawers[index].value = row.Data ? row.Data.Data : '';
|
|
|
|
- this.drawers[index].objId = row.MeterFunc;
|
|
|
|
- this.drawers[index].drawer = true;
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if (index != 3)
|
|
|
|
- this.drawers[index].objId = row.MeterFunc;
|
|
|
|
- this.drawers[index].drawer = true;
|
|
|
|
- }
|
|
|
|
|
|
+ //控制测试
|
|
|
|
+ handleControl() {
|
|
|
|
+ this.$router.push({
|
|
|
|
+ path: "control"
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //点击下载
|
|
|
|
+ downloads() {
|
|
|
|
+ let a = document.createElement('a')
|
|
|
|
+ a.href = '/pointconfig/datasource/pointdetail-download'
|
|
|
|
+ a.download = '检测详情'
|
|
|
|
+ a.click()
|
|
|
|
+ document.body.removeChild(a)
|
|
},
|
|
},
|
|
|
|
+ //抽屉处理
|
|
|
|
+ // handleDrawer(row, index) {
|
|
|
|
+ // if (index == 2 || index == 1) {
|
|
|
|
+ // //实例数量大于0才能打开
|
|
|
|
+ // if ((row.RelatedInstance > 0 && index == 2) || (row.RelatedPoint > 0 && index == 1)) {
|
|
|
|
+ // this.drawers[index].value = row.Data ? row.Data.Data : '';
|
|
|
|
+ // this.drawers[index].objId = row.MeterFunc;
|
|
|
|
+ // this.drawers[index].drawer = true;
|
|
|
|
+ // }
|
|
|
|
+ // } else {
|
|
|
|
+ // if (index != 3)
|
|
|
|
+ // this.drawers[index].objId = row.MeterFunc;
|
|
|
|
+ // this.drawers[index].drawer = true;
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
handleClickRow(row, column, event) {//点击表格行
|
|
handleClickRow(row, column, event) {//点击表格行
|
|
lStorage.set('screen_data', {
|
|
lStorage.set('screen_data', {
|
|
path: this.$route.path,
|
|
path: this.$route.path,
|
|
data: {MeterFunc: row.MeterFunc, RelatedInstance: row.RelatedInstance}
|
|
data: {MeterFunc: row.MeterFunc, RelatedInstance: row.RelatedInstance}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ //筛选
|
|
|
|
+ changeHandleSelect(item) {
|
|
|
|
+ console.log(item, 'item')
|
|
|
|
+ },
|
|
//获取统计数据
|
|
//获取统计数据
|
|
|
|
+ // /**
|
|
|
|
+ // * @index 1 数据源 2 状态 3 获取方式
|
|
|
|
+ // * @val 值
|
|
|
|
+ // * */
|
|
getOverViewList() {
|
|
getOverViewList() {
|
|
- this.loading = true;
|
|
|
|
- let pa = {
|
|
|
|
- MeterFunc: this.tabFunNum,
|
|
|
|
- PageSize: this.pageSize,
|
|
|
|
- PageNumber: this.currentPage
|
|
|
|
- }
|
|
|
|
- getTabFunNumOverview(pa, res => {
|
|
|
|
- // this.allTableData = res.Content;
|
|
|
|
- this.tableData = res.Content;
|
|
|
|
- this.total = res.Total
|
|
|
|
- this.loading = false;
|
|
|
|
- });
|
|
|
|
|
|
+ let _this = this
|
|
|
|
+ _this.loading = true;
|
|
|
|
+ let param = {}
|
|
|
|
+ // if (index == 1) {
|
|
|
|
+ // param.Filters = `Name='${val}';`
|
|
|
|
+ // }
|
|
|
|
+ // if (index == 2) {
|
|
|
|
+ // param.Filters += `Status=''${val};`
|
|
|
|
+ // }
|
|
|
|
+ // if (index == 3) {
|
|
|
|
+ // param.Filters += `Method='${val}'`
|
|
|
|
+ // }
|
|
|
|
+ testDetail(param, res => {
|
|
|
|
+ _this.tableData = res.Content
|
|
|
|
+ _this.total = res.Total
|
|
|
|
+ _this.loading = false;
|
|
|
|
+ })
|
|
|
|
+ // let pa = {
|
|
|
|
+ // MeterFunc: this.tabFunNum,
|
|
|
|
+ // PageSize: this.pageSize,
|
|
|
|
+ // PageNumber: this.currentPage
|
|
|
|
+ // }
|
|
|
|
+ // getTabFunNumOverview(pa, res => {
|
|
|
|
+ // // this.allTableData = res.Content;
|
|
|
|
+ // this.tableData = res.Content;
|
|
|
|
+ // this.total = res.Total
|
|
|
|
+ // this.loading = false;
|
|
|
|
+ // });
|
|
},
|
|
},
|
|
//刷新当前行数据
|
|
//刷新当前行数据
|
|
- refreshThisRow(row) {
|
|
|
|
- let index = this.tableData.indexOf(row);
|
|
|
|
- let pa = {
|
|
|
|
- MeterFunc: row.MeterFunc
|
|
|
|
- }
|
|
|
|
- getTabFunNumOverview(pa, res => {
|
|
|
|
- res.Content.forEach(t => {
|
|
|
|
- if (t.MeterFunc == row.MeterFunc) {
|
|
|
|
- if (t.Data) {
|
|
|
|
- this.tableData[index].Data.Data = t.Data.Data || '';
|
|
|
|
- this.tableData[index].Data.Time = t.Data.Time || '';
|
|
|
|
- }
|
|
|
|
- this.tableData[index].DataQuality = t.DataQuality;
|
|
|
|
- this.tableData[index].RelatedInstance = t.RelatedInstance;
|
|
|
|
- this.tableData[index].RelatedPoint = t.RelatedPoint;
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- Message.success('已刷新');
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
|
|
+ // refreshThisRow(row) {
|
|
|
|
+ // let index = this.tableData.indexOf(row);
|
|
|
|
+ // let pa = {
|
|
|
|
+ // MeterFunc: row.MeterFunc
|
|
|
|
+ // }
|
|
|
|
+ // getTabFunNumOverview(pa, res => {
|
|
|
|
+ // res.Content.forEach(t => {
|
|
|
|
+ // if (t.MeterFunc == row.MeterFunc) {
|
|
|
|
+ // if (t.Data) {
|
|
|
|
+ // this.tableData[index].Data.Data = t.Data.Data || '';
|
|
|
|
+ // this.tableData[index].Data.Time = t.Data.Time || '';
|
|
|
|
+ // }
|
|
|
|
+ // this.tableData[index].DataQuality = t.DataQuality;
|
|
|
|
+ // this.tableData[index].RelatedInstance = t.RelatedInstance;
|
|
|
|
+ // this.tableData[index].RelatedPoint = t.RelatedPoint;
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // Message.success('已刷新');
|
|
|
|
+ // });
|
|
|
|
+ // },
|
|
//分页更换size
|
|
//分页更换size
|
|
handleSizeChange(val) {
|
|
handleSizeChange(val) {
|
|
this.currentPage = 1;
|
|
this.currentPage = 1;
|
|
@@ -222,9 +286,9 @@
|
|
this.getOverViewList()
|
|
this.getOverViewList()
|
|
},
|
|
},
|
|
//子组件关闭抽屉
|
|
//子组件关闭抽屉
|
|
- closeDrawer() {
|
|
|
|
- this.drawers[3].drawer = false;
|
|
|
|
- },
|
|
|
|
|
|
+ // closeDrawer() {
|
|
|
|
+ // this.drawers[3].drawer = false;
|
|
|
|
+ // },
|
|
//新建自定义后重载页面
|
|
//新建自定义后重载页面
|
|
reloadData() {
|
|
reloadData() {
|
|
this.$emit('reloadData');
|
|
this.$emit('reloadData');
|
|
@@ -242,7 +306,6 @@
|
|
// return this.allTableData.slice(
|
|
// return this.allTableData.slice(
|
|
// (this.currentPage - 1) * this.pageSize,
|
|
// (this.currentPage - 1) * this.pageSize,
|
|
// (this.currentPage * this.pageSize < this.allTableData.length) ? this.currentPage * this.pageSize : this.allTableData.length);
|
|
// (this.currentPage * this.pageSize < this.allTableData.length) ? this.currentPage * this.pageSize : this.allTableData.length);
|
|
-
|
|
|
|
// }
|
|
// }
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
@@ -255,7 +318,7 @@
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
<style lang="less" scoped>
|
|
- #tabFunNumOverview {
|
|
|
|
|
|
+ #tabFunDetail {
|
|
border-top: 5px solid #eee;
|
|
border-top: 5px solid #eee;
|
|
height: calc(100% - 5px);
|
|
height: calc(100% - 5px);
|
|
width: 100%;
|
|
width: 100%;
|