wxw
2024-09-05 637668ccd8a20772540eaf88ecf8b6eb098df5a1
Web/src/views/device/sortPallet/index.vue
@@ -1,161 +1,139 @@
<template>
    <el-container>
        <el-card shadow="hover" :body-style="{ paddingBottom: '0', padding: '10px' }" style="width: 100%;display: flex;align-items: center;justify-content: center;">
            <div class="card-page">
                <el-button type="primary" :plain="isPlain1" @click="floorTogglePlain(1)">1号码垛机器人</el-button>
                <el-button type="primary" :plain="isPlain2" @click="floorTogglePlain(2)">2号码垛机器人</el-button>
                <el-button type="primary" :plain="isPlain3" @click="floorTogglePlain(3)">3号码垛机器人</el-button>
            </div>
        </el-card>
    </el-container>
    <el-container>        
        <div class="card-container">
            <el-card class="other-box-card" v-for="deviceInfo in deviceList" :key="deviceInfo.id">
                <div slot="header" class="linefix">
                    <span>{{ deviceInfo.name }}</span>
                    <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div>
        <el-cloum>
            <el-row :span="1">
                <div class="card-page">
                    <el-button
                        v-for="device in deviceList"
                        :key="device.id"
                        type="primary"
                        :plain="selectedDeviceId !== device.id"
                        @click="chooseDevice(device.id)"
                        >
                        {{ device.name }}
                    </el-button>
                </div>
            </el-row>
            <el-row :span="1">
                <div class="card-container">
                    <el-card class="other-box-card" v-for="deviceInfo in devicePointData" :key="deviceInfo.id">
                        <div slot="header" class="linefix">
                            <span>{{ deviceInfo.text }}</span>
                            <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div>
                        </div>
                        <div class="otherValuefix" >
                            <el-form label-position="left" label-width="90px">
                                <el-form-item label="WMS明细单号">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="任务号">
                                    <el-input v-model="deviceInfo.taskNumber"></el-input>
                                </el-form-item>
                                <el-form-item label="批次号">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="物料编码">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="物料名称">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="包装名称">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="绑定状态">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="抓箱品种">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="DB记录箱数">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="托盘号">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="码垛箱数">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="WMS下发数量">
                                    <el-input></el-input>
                                </el-form-item>
                            </el-form>
                        </div>
                        <div class="otherButtonfix">
                            <el-form label-position="left">
                                <el-form-item>
                                    <el-button type="primary">绑定</el-button>
                                    <el-button>结批</el-button>
                                </el-form-item>
                            </el-form>
                        </div>
                    </el-card>
                </div>
                <div class="otherValuefix" >
                    <el-form label-position="left" label-width="90px">
                        <el-form-item label="WMS明细单号">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="任务号">
                            <el-input v-model="deviceInfo.taskNumber"></el-input>
                        </el-form-item>
                        <el-form-item label="物料编码">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="物料名称">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="包装名称">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="状态">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="抓箱品种">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="DB记录箱数">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="托盘号">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="码垛箱数">
                            <el-input></el-input>
                        </el-form-item>
                        <el-form-item label="WMS下发数量">
                            <el-input></el-input>
                        </el-form-item>
                    </el-form>
                </div>
                <div class="otherButtonfix">
                    <el-form label-position="left">
                        <el-form-item>
                            <el-button type="primary">绑定</el-button>
                            <el-button>结批</el-button>
                        </el-form-item>
                    </el-form>
                </div>
            </el-card>
        </div>
            </el-row>
        </el-cloum>
    </el-container>    
</template>
  
  <script lang="ts" setup>
  import { ref, reactive } from 'vue';
<script lang="ts" setup>
import { ref } from 'vue';
import { GetWcsPackPlcList,GetWcsPackStationPlcList } from '/@/api/wcs/wcsDevice';
//设备数据
const deviceList=ref<any>([]);
//设备对应工位数据
const devicePointData = ref<any>([]);
  const stackList=[
const selectedDeviceId=ref<any>();
  ];
  const isPlain1 = ref(false);//一层
  const isPlain2 = ref(true);//二层
  const isPlain3 = ref(true);//三层
  //切换层平面
  function floorTogglePlain(buttonNumber) {
   if (buttonNumber === 1) {
      isPlain1.value = !isPlain1.value;
      isPlain2.value =true;
      isPlain3.value =true;
//获取
const fetchStationData = async (plcId: any) => {
    const res2 = await GetWcsPackStationPlcList({ plcId });
    devicePointData.value = res2.data.result;
    console.log('data:'+devicePointData.value);
};
// 获取设备数据
const fetchPLCDeviceData = async () => {
    var res = await GetWcsPackPlcList();
    deviceList.value = res.data.result;
   } else if (buttonNumber === 2) {
      isPlain2.value = !isPlain2.value;
      isPlain1.value =true;
      isPlain3.value =true;
   } else if (buttonNumber === 3) {
      isPlain3.value = !isPlain3.value;
      isPlain1.value =true;
      isPlain2.value =true;
   }
  }
  const deviceList=[
        {
          id: 1,
          name: '1号码垛机器人',
          taskNumber: 'T000001',
          taskType: '',
          plc: '',
          wcs: '',
          status: 0
        },
        {
          id: 2,
          name: '2号码垛机器人',
          taskNumber: '',
          taskType: '',
          plc: '',
          wcs: '',
          status: 1
        },
        {
          id: 3,
          name: '3号码垛机器人',
          taskNumber: '',
          taskType: '',
          plc: '',
          wcs: '',
          status: 0
        },{
          id: 4,
          name: '4号码垛机器人',
          taskNumber: '',
          taskType: '',
          plc: '',
          wcs: '',
          status: 1
        },{
          id: 5,
          name: '5号码垛机器人',
          taskNumber: '',
          taskType: '',
          plc: '',
          wcs: '',
          status: 0
        },{
          id: 6,
          name: '6号码垛机器人',
          taskNumber: '',
          taskType: '',
          plc: '',
          wcs: '',
          status: 0
        }
      ]
  </script>
  <style scoped>
    .card-container {
          display: grid;
          grid-template-columns: repeat(6, 1fr);
          gap: 10px;
    if (deviceList.value.length > 0) {
      selectedDeviceId.value = deviceList.value[0].id;
      await fetchStationData(selectedDeviceId.value);
    }
    .other-box-card {
          box-sizing: border-box;
};
fetchPLCDeviceData();
//切换
function chooseDevice(id) {
    selectedDeviceId.value = id;
    fetchStationData(id);
}
</script>
<style scoped>
    .card-page {
        width: 100%;
        height: 50px;
        display: flex;
        text-align: center;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
    .card-page>button {
        width: 150px;
        height: 30px;
    }
    .card-container {
            display: grid;
            grid-template-columns: repeat(6, 1fr);
            gap: 10px;
    }
    .other-box-card {
            box-sizing: border-box;
            background: linear-gradient(135deg, #66ccff, #3399ff);
    }
    .lineStatus{
        position: absolute;
@@ -172,26 +150,27 @@
        align-items: center;
        height: 40px;
        position: relative;
        color: #fff;
    }
    .otherValuefix{
        width: 100%;
        height: 550px;
        height: 540px;
        padding: 10px;
        border-bottom: 1px solid rgb(197, 195, 195);
    }
    .otherButtonfix{
        width: 100%;
        height: 100px;
        height: 60px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }
    .device-status-0{
        background-color: #67C23A;
        background-color: #58f709;
    }
    .device-status-1{
        background-color: red;
    }
  </style>
</style>