|
|
|
@ -25,6 +25,10 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="ranking-board">
|
|
|
|
|
<div class="ranking-board-title">线体故障率(月)</div>
|
|
|
|
|
<dv-scroll-ranking-board :config="config" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
@ -33,6 +37,7 @@ import {
|
|
|
|
|
|
|
|
|
|
getCompletedRate,
|
|
|
|
|
} from "@/api/kanban/spectaculars";
|
|
|
|
|
import {getFaultRateList, getworkFaultDesc} from "@/api/kanban/equipment";
|
|
|
|
|
export default {
|
|
|
|
|
name: 'Cards',
|
|
|
|
|
data () {
|
|
|
|
@ -41,6 +46,12 @@ export default {
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
equipmentinfo: {},
|
|
|
|
|
config: {
|
|
|
|
|
data: [],
|
|
|
|
|
unit:"%",
|
|
|
|
|
sort:false,
|
|
|
|
|
rowNum: 13
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
@ -129,12 +140,31 @@ export default {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
randomExtend (minNum, maxNum) {
|
|
|
|
|
if (arguments.length === 1) {
|
|
|
|
|
return parseInt(Math.random() * minNum + 1, 10)
|
|
|
|
|
} else {
|
|
|
|
|
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async getdatalist() {
|
|
|
|
|
getFaultRateList({ poolName: "ds_1000" }).then(res=>{
|
|
|
|
|
if (res.data){
|
|
|
|
|
let processedData = [];
|
|
|
|
|
for (const item of res.data){
|
|
|
|
|
processedData.push({
|
|
|
|
|
name: item.lineName || '未知分类', // 处理空名称
|
|
|
|
|
value: Number(item.faultRate).toFixed(2) || 0 // 确保数值类型
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const asc = [...processedData].sort((a, b) => b.value - a.value);
|
|
|
|
|
this.config = {
|
|
|
|
|
...this.config, // 保留其他配置项
|
|
|
|
|
data: asc
|
|
|
|
|
};
|
|
|
|
|
}else {
|
|
|
|
|
// 空数据兜底处理
|
|
|
|
|
this.config.data = [{ name: '暂无数据', value: 0 }];
|
|
|
|
|
}
|
|
|
|
|
}).catch((error)=>{
|
|
|
|
|
console.error('数据获取失败:', error);
|
|
|
|
|
// 错误状态显示(保持数据结构一致)
|
|
|
|
|
this.config.data = [{ name: '数据异常', value: 0 }];
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
@ -142,9 +172,15 @@ export default {
|
|
|
|
|
|
|
|
|
|
createData()
|
|
|
|
|
|
|
|
|
|
this.getdatalist();
|
|
|
|
|
// 添加定时刷新(可选)
|
|
|
|
|
this.timer = setInterval(() => {
|
|
|
|
|
this.getdatalist();
|
|
|
|
|
}, 60000); // 60秒刷新
|
|
|
|
|
setInterval(this.createData, 30000)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
@ -217,4 +253,27 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#ranking-board {
|
|
|
|
|
width: 20%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
box-shadow: 0 0 3px blue;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
background-color: rgba(6, 30, 93, 0.5);
|
|
|
|
|
border-top: 2px solid rgba(1, 153, 209, .5);
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 0px 30px;
|
|
|
|
|
|
|
|
|
|
.ranking-board-title {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
height: 50px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dv-scroll-ranking-board {
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|