1
lzhe
2024-04-18 c8b13a66194137b0ab2e3bed0ade70ebc167fcb9
1
已修改1个文件
193 ■■■■ 文件已修改
src/views/mdc/station-live.vue 193 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/station-live.vue
@@ -16,20 +16,20 @@
            <div class="content-machine-box">
                <div class="content-machine-img"><img src="./station.png" alt=""></div>
                <div class="content-machine-detail">
                    <div class="content-machine-name">461</div>
                    <div class="content-machine-name">{{stationForm.machineName}}</div>
                    <el-form :model="stationForm" ref="dialogForm" label-width="80px" label-position="center" style="width: 100%;">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item label="工位编号">{{stationForm.test}}</el-form-item>
                                <el-form-item label="工位编号">{{stationForm.code}}</el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="机器品牌">{{stationForm.test}}</el-form-item>
                                <el-form-item label="机器品牌">{{stationForm.machineBrand}}</el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="机器编号">{{stationForm.test}}</el-form-item>
                                <el-form-item label="机器编号">{{stationForm.machineCode}}</el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="机器名称">{{stationForm.test}}</el-form-item>
                                <el-form-item label="机器名称">{{stationForm.machineName}}</el-form-item>
                            </el-col>
                        </el-row>
                    </el-form>
@@ -37,24 +37,77 @@
            </div>
            <div class="collect-info-panel">
                <div class="fact-analysis-realtim">
                    <div class="fact-analysis-card">
                        <div class="card-name" style="background-color: rgb(127, 192, 192);">设备状态</div>
                    <div class="fact-analysis-card" v-for="item in dmpList">
                        <div class="card-name" style="background-color: rgb(127, 192, 192);">{{item.description}}</div>
                        <div class="card-value" style="background-color: rgba(127, 192, 192, 0.14);"></div>
                    </div>
                </div>
            </div>
            <el-tabs type="border-card" class="demo-tabs">
                <el-tab-pane label="工位数据">
                    <div class="wcs-main">
                        <div><div id="wcs-left" style="width: 100%;height:400px;"></div></div>
                        <div><div id="wcs-right" style="width: 100%;height:400px;"></div></div>
                    </div>
                </el-tab-pane>
                <el-tab-pane label="机器履历">234</el-tab-pane>
             </el-tabs>
        </div>
    </div>
    <save-dialog v-if="dialog.save" ref="saveDialog"  @success="addfeedbackSuccess" @closed="dialog.save=false"></save-dialog>
</template>
<script>
    import * as echarts from 'echarts';
import saveDialog from './add-station-status'
    export default {
        name: "state-feedback",
        data(){
            return {
                wcsOption: {
                    title: {
                        text: '用时分布情况',
                        left: 'left',
                        textStyle: {
                            fontSize:14
                        }
                    },
                    grid: {
                        top: 0,
                    },
                    tooltip: {
                        trigger: 'item',
                        //formatter: '{a} <br/>{b} : {c} ({d}%)'
                        formatter: '{a} 0分钟'
                    },
                    legend: {
                        orient: 'vertical',
                        bottom: 'bottom',
                        data: ['调试', '离线', '待机', '报告', '报警', '运行']
                    },
                    series: [
                        {
                            top: -30,
                            name: '用时:',
                            type: 'pie',
                            radius: '55%',
                            center: ['30%', '50%'],
                            data: [],
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                },
                dmpList: [],
                stationForm: {
                    test: ""
                    code: "",
                    machineBrand: "",
                    machineCode: "",
                    machineName: ""
                },
                dialog: {
                    save: false
@@ -86,11 +139,100 @@
        },
        mounted(){
            this.getTreeList();
            this.getwcsL();  //左侧图表
        },
        components: {
            saveDialog
        },
        methods: {
            getwcsL() {
                this.$HTTP.get(`/api/blade-cps/global_wcs/list?code=&name=`).then(res=> {
                    if(res.code == 200) {
                        var myChart = echarts.init(document.getElementById('wcs-left'));
                        res.data.forEach(item=> {
                            item.value=20;
                            item.itemStyle = {color: item.color}
                        })
                        this.wcsOption.series[0].data = res.data;
                        myChart.setOption(this.wcsOption);
                        console.log(this.wcsOption,9991);
                    }
                })
            },
            getwcsR() {
                var obj = {
                    date: String(this.newDate()),
                    humanFeedback: true,
                    workstationId: this.lastLevelId
                }
                this.$HTTP.post(`/api/blade-mdc/status-record/equipment-efficiency`,obj).then(res=> {
                    if(res.code == 200) {
                        console.log(res.data,98988)
                        var myChart = echarts.init(document.getElementById('wcs-right'));
                        // res.data.forEach(item=> {
                        //     item.value=20;
                        //     item.itemStyle = {color: item.color}
                        // })
                        // this.wcsOption.series[0].data = res.data;
                        // myChart.setOption(this.wcsOption);
                        // console.log(this.wcsOption,9991);
                        var option = {
                            title: {
                                text: '设备效率指标', // 图表标题
                                left: 'left',
                                textStyle: {
                                    fontSize:14
                                }
                            },
                          tooltip: {
                            trigger: 'item'
                          },
                          legend: {
                            orient: 'vertical',
                            bottom: 'bottom', // 图例组件离容器左侧的距离
                            data: ['报警率', '稼动率', '运行率'] // 图例数据
                          },
                          series: [
                            {
                              name: 'Access From',
                              type: 'pie',
                              radius: ['30%', '50%'],
                              avoidLabelOverlap: false,
                              label: {
                                show: false,
                                position: 'center'
                              },
                              emphasis: {
                                label: {
                                  show: true,
                                  fontSize: 40,
                                  fontWeight: 'bold'
                                }
                              },
                              labelLine: {
                                show: false
                              },
                              data: [
                                {value: 0, name: '报警率'}, // 报警率数据
                                {value: 0, name: '稼动率'}, // 稼动率数据
                                {value: 0, name: '运行率'}
                              ]
                            }
                          ]
                        };
                        // 使用刚指定的配置项和数据显示图表。
                        myChart.setOption(option);
                    }
                })
            },
            newDate() {
                var date = new Date();
                var year = date.getFullYear();
                var month = (1 + date.getMonth()).toString().padStart(2, '0'); // JavaScript中月份是从0开始的,所以我们需要加1
                var day = date.getDate().toString().padStart(2, '0'); // getDate()返回的是当前月的日数,不需要加1
                return year + '-' + month + '-' + day;
            },
            addfeedbackSuccess() {
                this.getlist();
            },
@@ -100,24 +242,20 @@
            handleNodeClick(data) {
                if(data.code) {
                    this.lastLevelId = data.id;
                    var obj = {
                        workstationId: this.lastLevelId,
                    }
                    if(this.searchData.feedBackStatus.length != 0) {
                        obj.feedBackStatus = this.searchData.feedBackStatus;
                    }
                    if(this.searchData.endDate) {
                        obj.endDate = this.searchData.endDate;
                    }
                    if(this.searchData.startDate) {
                        obj.startDate = this.searchData.startDate;
                    }
                    this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
                    this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
                        if(res.code == 200) {
                            this.searchDataList = res.data.records;
                            this.stationForm = res.data;
                            this.getdmp(this.lastLevelId,this.stationForm.machineId);
                        }
                    })
                }
            },
            getdmp(lastLevelId,machineId) {
                this.$HTTP.get(`/api/blade-cps/workstation/get-dmp-variables?machineId=${machineId}&workstationId=${lastLevelId}`).then(res=> {
                    if(res.code == 200) {
                        this.dmpList = res.data;
                    }
                })
            },
            getLastLevelIds(tree) {  
                if (tree.length === 0) return ""; // 如果没有根节点,返回空 
@@ -187,7 +325,9 @@
                            this.$nextTick(()=> {
                                this.lastLevelId = this.getLastLevelIds(this.tableData).lastLevelId;
                                this.$refs.treeRef.setCurrentKey(this.lastLevelId);  //第一个节点的第一个子节点最后一级默认选中
                                //以下是初始化数据
                                this.getlist();  //渲染反馈列表
                                this.getwcsR();  //右侧图标
                            })
                            
                        }
@@ -197,7 +337,8 @@
            getlist() {
                this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
                    if(res.code == 200) {
                        console.log(res.data,234)
                        this.stationForm = res.data;
                        this.getdmp(this.lastLevelId,this.stationForm.machineId);
                    }
                })
            }
@@ -296,4 +437,10 @@
    overflow: hidden;
    word-break: break-all;
}
.wcs-main {
    display: flex;
}
.wcs-main > div {
    width: 50%;
}
</style>