172 lines
5.0 KiB
Vue
172 lines
5.0 KiB
Vue
<template>
|
||
<div class="wrap">
|
||
<el-table :data="tableData"
|
||
stripe
|
||
border
|
||
style="width: 100%"
|
||
height="100%"
|
||
v-loading="loading"
|
||
:cell-style="setTableCellStyle"
|
||
class="custom-table">
|
||
<template v-if="active===1">
|
||
<el-table-column v-for="item in labelList" :key="item.prop" :label="item.label" :prop="item.prop" align="center">
|
||
<template slot-scope="scope">{{scope.row[item.prop]}} </template>
|
||
</el-table-column>
|
||
</template>
|
||
<template v-else>
|
||
<el-table-column v-for="column in labelList" :key="column.prop" :prop="column.prop" :label="column.label"
|
||
align="center" min-width="100" :width="(isMobile && (column.label=='案件编号' || column.label=='服务内容')) ? 70 : 'auto'">
|
||
</el-table-column>
|
||
</template>
|
||
</el-table>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
name: "noFit-table",
|
||
props: ['tableData', 'labelList', 'loading', 'isMobile','active'],
|
||
data() {
|
||
return {}
|
||
},
|
||
mounted() {
|
||
},
|
||
methods: {
|
||
setTableCellStyle({ row, column,columnIndex }) {
|
||
// 月总表格被转置,原始方法失效,重新定义对比
|
||
if(this.active===1){
|
||
if(row.month == '3′接单率(%)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
const rate = parseFloat(res && res.replace('%', ''));
|
||
if(rate < 95){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
if(row.month == '接单时效(分)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
if(res > 5){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
if(row.month == '到达时效(分)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
if(res > 40){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
if(row.month == '总聚合成功率(%)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
const rate = parseFloat(res && res.replace('%', ''));
|
||
if(rate < 80){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
if(row.month == '使用率(%)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
const rate = parseFloat(res && res.replace('%', ''));
|
||
if(rate < 95){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
if(row.month == '投诉率(%)'){
|
||
if(columnIndex){
|
||
let res=row[column.property]
|
||
const rate = parseFloat(res && res.replace('%', ''));
|
||
if(rate > 0.1){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// 接单率
|
||
if(column.property=='threeMinutesReceivingRate'){
|
||
if(columnIndex){
|
||
const rate = parseFloat(row.threeMinutesReceivingRate && row.threeMinutesReceivingRate.replace('%', ''));
|
||
if(rate < 95){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//师傅接单时效》5
|
||
if(column.property=='receiving'){
|
||
if(columnIndex){
|
||
if(row.receiving > 5){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//到达时效》40
|
||
if(column.property=='arriving'){
|
||
if(columnIndex){
|
||
if(row.arriving > 40){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//聚合成功率《80
|
||
if(column.property=='polymerizationSuccessRate'){
|
||
if(columnIndex){
|
||
const rate = parseFloat(row.polymerizationSuccessRate && row.polymerizationSuccessRate.replace('%', ''));
|
||
if(rate < 80){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//app使用率《95
|
||
if(column.property=='appRate'){
|
||
if(columnIndex){
|
||
const rate = parseFloat(row.appRate && row.appRate.replace('%', ''));
|
||
if(rate < 95){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//催促率》3
|
||
if(column.property=='urgeRate'){
|
||
if(columnIndex){
|
||
const rate = parseFloat(row.urgeRate && row.urgeRate.replace('%', ''));
|
||
if(rate > 3){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
//投诉率》0.1
|
||
if(column.property=='complainOrderRate'){
|
||
if(columnIndex){
|
||
const rate = parseFloat(row.complainOrderRate.replace('%', ''));
|
||
if(rate > 0.1){
|
||
return {backgroundColor: '#F1B289'}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
@import "@/styles/mixin.scss";
|
||
::v-deep .el-table{
|
||
font-size: 11px;
|
||
}
|
||
::v-deep .el-table thead{
|
||
color: #1D2129;
|
||
font-weight: bold;
|
||
}
|
||
::v-deep .el-table th.el-table__cell.is-leaf {
|
||
background-color: #E5E6EB;
|
||
}
|
||
::v-deep .el-table .el-table__cell{
|
||
padding: 4px 0 !important;
|
||
}
|
||
</style> |