diff --git a/src/api/kanban/equipment.js b/src/api/kanban/equipment.js index 924d45e..49db052 100644 --- a/src/api/kanban/equipment.js +++ b/src/api/kanban/equipment.js @@ -100,3 +100,11 @@ export function getRepairWorkOrderCostTime(data) { params: data, }); } + +export function getFaultRateList(data) { + return request({ + url: '/device/deviceInterface/getFaultRateList', + method: 'get', + params: data + }); +} diff --git a/src/views/cs/index5/cards.vue b/src/views/cs/index5/cards.vue index b0f6c21..fdfe0e2 100644 --- a/src/views/cs/index5/cards.vue +++ b/src/views/cs/index5/cards.vue @@ -25,6 +25,10 @@ +
+
线体故障率(月)
+ +
@@ -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) - } + }, + } @@ -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; + } +}