先上图
思路:使用element ui 自带的栅格,通过控制el-col 的span 属性来设置每行展示多少行(竖着的字段),超过就自动换行;
content1 是表头
content2是返回的数据
getTable()函数是将返回的正常数据进行处理,和表格字段相对应
表格样式在代码中有注释
代码:
- <template>
- <div>
- <el-drawer
- title="对比"
- :visible.sync="drawer"
- :direction="direction"
- :before-close="handleClose"
- size="1000px"
- >
- <div style="margin:31px;">
- <div style="height:408px;overflow-x: auto;overflow-y: hidden;">
- <el-col :span="howWidth" v-for="(item, index) in columns" :key="index">
- <div class="box">
- <div class="content1">
- <div style="width:130px">{{ item.label }}</div>
- </div>
- <div v-for="(itC,itN) in item.value" :key="itN" class="content2">
- <div
- :title=" itC.length > 8 ?itC:''"
- >{{ itC.length > 8 ? itC.slice(0,8)+'...' : itC }}</div>
- </div>
- </div>
- </el-col>
- </div>
- </div>
- </el-drawer>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- drawer: false,
- direction: "rtl",
- howWidth: 13,
- columns: [
- {
- prop: "gunName",
- label: "电枪名称",
- width: "200"
- },
- {
- prop: "gunMeter",
- label: "电表当前读数",
- width: "200"
- },
- {
- prop: "gunOutVolt",
- label: "电表输出电压",
- width: "200"
- },
- {
- prop: "gunOutElec",
- label: "电表输出电流",
- width: "200"
- },
- {
- prop: "gunCharged",
- label: "已充电量",
- width: "200"
- },
- {
- prop: "gunNeedVolt",
- label: "需求电压",
- width: "200"
- },
- {
- prop: "gunNeedElec",
- label: "需求电流",
- width: "200"
- },
- {
- prop: "gunSurveyVolt",
- label: "测量电压",
- width: "200"
- },
- {
- prop: "gunBtrVolt",
- label: "电池电压",
- width: "200"
- },
- {
- prop: "gunBtrElec",
- label: "电池电流",
- width: "200"
- }
- ]
- };
- },
- methods: {
- open() {
- this.drawer = true;
- this.getTable();
- },
- getTable() {
- let tableData = [
- {
- gunName: "1",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "111111111111111111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "2",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "3",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "4",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "5",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "6",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "7",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "8",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "9",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- },
- {
- gunName: "10",
- gunMeter: "枪号",
- gunOutVolt: "bb",
- gunOutElec: "tt",
- gunCharged: "xxxx",
- gunNeedVolt: "cccc",
- gunNeedElec: "1111111",
- gunSurveyVolt: "1111111",
- gunBtrVolt: "1111111",
- gunBtrElec: "1111111"
- }
- ];
- this.columns.forEach(item => {
- item.value = [];
- for (let i in tableData) {
- for (let j in tableData[i]) {
- console.log("j", j);
- if (item.prop == j) {
- item.value.push(tableData[i][j]);
- }
- }
- }
- });
-
- console.log("this.columns[item]", this.columns);
- },
- handleClose() {
- this.drawer = false;
- }
- }
- };
- </script>
- <style lang="less" scoped>
- .box {
- width: 100%;
- height: 40px;
- display: flex;
- .content1 {
- width: 130px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- background-color: #e7f2fd;
- border-right: 1px solid #e9e9e9;
- border-bottom: 1px solid #e9e9e9;
- border-left: 1px solid #409eff;
- color: #252525;
- font-size: 14px;
- font-weight: 700;
- position: absolute; //表头固定
- }
- .content2:nth-child(odd) { //对奇数列样式进行设置
- min-width: 200px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- background: #f4f8fc;
- color: #666666;
- border-right: 1px solid #e9e9e9;
- border-bottom: 1px solid #e9e9e9;
- font-size: 14px;
- }
- .content2:nth-child(2) {
- margin-left: 130px !important; //表头固定后,数据内容的第一列需要设置左边距空出表头的宽度
- }
- .content2:nth-child(even) { //对偶数列样式进行设置
- min-width: 200px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- background: #fff;
- color: #666666;
- border-right: 1px solid #e9e9e9;
- border-bottom: 1px solid #e9e9e9;
- font-size: 14px;
- }
- }
- </style>