共计 2118 个字符,预计需要花费 6 分钟才能阅读完成。
动静表头的写法有很多种,前端要依据后端返回的数据格式来进行调整。明天给大家展现一种只有值,没有属性的写法
<el-table max-height="600" border :data="bodyData"> | |
<el-table-column v-for="(item,index) in Header" :label="item" :key="index" show-overflow-tooltip align="center" | |
:min-width="index === 0 ?'120':''" :fixed="index === 0" v-if="Header.length && Header.length>0"> | |
<template slot-scope="scope"> | |
<el-input v-if="bodyData[scope.$index].Row[index] && JSON.stringify(bodyData[scope.$index].Row[index]).indexOf('{')>-1" | |
v-model="bodyData[scope.$index].Row[index].Reason" @blur="saveData(bodyData[scope.$index].Row[index])"></el-input> | |
<span v-else>{{bodyData[scope.$index].Row[index]}}</span> | |
</template> | |
</el-table-column> | |
</el-table> |
export default {props: ['projectId'], | |
data(){ | |
return {Header: [], | |
bodyData:[],} | |
}, | |
methods:{saveData(val){ | |
val.projectId=this.projectId; | |
this.$put(`/api/plat/projects/indicDiffReason`,val, function (res) {Vue.successMsg("保留胜利!"); | |
}) | |
}, | |
getTableData () {this.bodyData = [] | |
this.Header=res.Table.Header | |
this.bodyData=res.Table.Rows.map(item=>{ | |
item.Row=item.Row.map(ele=>{ | |
// 这里因为后端返回的是 JSON 数据格式,展现的时候咱们要取出对象外面的数据 | |
if(ele && ele.indexOf('{')>-1){ele=JSON.parse(ele) | |
} | |
return ele | |
}) | |
return item | |
}) | |
}, | |
}, | |
} |
var res={ | |
"Data": { | |
"Table": { | |
"Header": [ | |
"指标", | |
"可研版", | |
"定位版", | |
"差值", | |
"偏差起因", | |
"考核版", | |
"差值", | |
"偏差起因", | |
"报规版", | |
"差值", | |
"偏差起因", | |
"预测绘版", | |
"差值", | |
"偏差起因", | |
"实测绘版", | |
"差值", | |
"偏差起因" | |
], | |
"Rows": [ | |
{ | |
"Row": [ | |
"修建基底面积", | |
null, | |
null, | |
null, | |
"{\"IndicatorId\":\"BUILDING_AREA\",\"Reason\":null,\"Phase\":\"2\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"BUILDING_AREA\",\"Reason\":null,\"Phase\":\"3\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"BUILDING_AREA\",\"Reason\":null,\"Phase\":\"4\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"BUILDING_AREA\",\"Reason\":null,\"Phase\":\"5\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"BUILDING_AREA\",\"Reason\":null,\"Phase\":\"6\"}" | |
] | |
}, | |
{ | |
"Row": [ | |
"修建密度", | |
null, | |
null, | |
null, | |
"{\"IndicatorId\":\"CON_DENSITY\",\"Reason\":null,\"Phase\":\"2\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"CON_DENSITY\",\"Reason\":null,\"Phase\":\"3\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"CON_DENSITY\",\"Reason\":null,\"Phase\":\"4\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"CON_DENSITY\",\"Reason\":null,\"Phase\":\"5\"}", | |
null, | |
null, | |
"{\"IndicatorId\":\"CON_DENSITY\",\"Reason\":null,\"Phase\":\"6\"}" | |
] | |
} | |
] | |
} | |
}, | |
"Code": 0, | |
"Message": "获取数据胜利" | |
} |
正文完