zhoushihao
2024-06-26 5a84728f49a5c708d21212b1a395bd62684efd48
UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,898 +1,1211 @@
<script lang="ts" setup>
import {reactive, ref} from 'vue'
import {useRouter} from 'vue-router'
import {ElMessage, ElMessageBox} from 'element-plus'
// import zhCn from 'element-plus/lib/locale/lang/zh-cn'
// import en from 'element-plus/dist/locale/en.mjs'
// const { locale } = useI18n()
import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
import {Search} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {useRouter} from "vue-router"
const router = useRouter()
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { ref, onMounted , onBeforeUnmount} from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
import { ElMessage, ElMessageBox } from 'element-plus'
import { tr } from "element-plus/es/locale";
const dialogFormVisible = ref(false)
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
const carposition1 = ref(40)
const carposition2 = ref(200)
const timers1 = ref(true)
const timers2 = ref(true)
const cellshow = ref(false)
const cellshow1 = ref(true)
const cellshow2 = ref(true)
const million = ref(0)
const million1 = ref(0)
const loading = null
const handleSelectionChange = null
const tableData = ref([])
const tableDatab = ref([])
const tableDatac = ref([])
const tableDatad = ref([])
const tableDatae = ref([])
const adjustedRects = ref([]);
const adjustedRectsa = ref([]);
// const height = ref([]);
const add = ref(false)
const flowCardId = ref('');
const gap = ref('');
const glassId = ref('');
const glassType = ref('');
const height = ref('');
const sequence = ref('');
const state = ref('');
const temperingFeedSequence = ref('');
const temperingLayoutId = ref('');
const thickness = ref('');
const width = ref('');
const carposition1 = ref(60);
const carposition2 = ref(220);
const carposition3 = ref(60);
const carposition4 = ref(260);
const timers1 =ref(true);
const timers2 =ref(true);
const timers3 =ref(true);
const timers4 =ref(true);
const cellshow5=ref(false);
const c1=ref(false);
const c2=ref(false);
const cellshow1=ref(true);
const cellshow2=ref(true);
const cellshow3=ref(true);
const cellshow4=ref(true);
const million=ref(0);
const million1=ref(0);
const million3=ref(0);
const million4=ref(0);
const cell1=ref(true);
const cell2=ref(true);
const cell3=ref(true);
const cell4=ref(true);
const cell5=ref(true);
const cell6=ref(true);
const cell7=ref(true);
const cell8=ref(true);
const selectedRow = ref(null); // 存储选中的行数据
const currentPage4 = ref(4)
const pageSize4 = ref(100)
const tableData = [
  {
    id: '1',
    a: '1',
    b: '1',
    c: '123456789',
    d: '1568251',
    e: '1',
    f: '100*100',
    g: '',
  },
]
const tableDatab = [
  {
    id: '2',
    a: '2',
    b: '2',
    c: '123456789',
    d: '1568251',
    e: '1',
    f: '100*100',
    g: '',
  },
]
const dialogForm = () => {
  ElMessageBox.confirm('确定要急停吗?', '提示', {
    confirmButtonText: '是',
    cancelButtonText: '否',
    type: 'warning',
  })
      .then(() => {
        ElMessage({
          type: 'success',
          message: '急停成功!',
        })
      })
      .catch(() => {
        ElMessage({
          type: 'info',
          message: '急停失败',
      })
    })
}
  // var timer=setInterval(() => {
  //   // console.log(million.value,million1.value);
  //   million.value+=1;
  //   if(million.value-million1.value!==12){
  //     if(million.value-million1.value>=2){
  //       if(carposition1.value==220){
  //         timers1.value=false;
  //       }else if(carposition1.value==60){
  //         timers1.value=true;
  //       }
  //       if(timers1.value==true){
  //         carposition1.value=carposition1.value+16;
  //       }else{
  //         carposition1.value=carposition1.value-16;
  //       }
  //       if(carposition2.value==220){
  //         timers2.value=false;
  //       }else if(carposition2.value==60){
  //         timers2.value=true;
  //       }
  //       if(timers2.value==true){
  //         carposition2.value+=16;
  //       }else{
  //         carposition2.value-=16;
  //       }
  //     }else{
  //     }
  //   }else{
  //     million1.value=million.value;
  //     if(cellshow1.value==true){
  //       cellshow1.value=false;
  //     }else{
  //       cellshow1.value=true;
  //     }
  //     if(cellshow2.value==true){
  //       cellshow2.value=false;
  //     }else{
  //       cellshow2.value=true;
  //     }
  //   }
  // }, 1000);
  // var timer=setInterval(() => {
  //   // console.log(million3.value,million4.value);
  //   million3.value+=1;
  //   if(million3.value-million4.value!==12){
  //     if(million3.value-million4.value>=2){
  //       if(carposition3.value==260){
  //         timers3.value=false;
  //       }else if(carposition3.value==60){
  //         timers3.value=true;
  //       }
  //       if(timers3.value==true){
  //         carposition3.value=carposition3.value+20;
  //       }else{
  //         carposition3.value=carposition3.value-20;
  //       }
  //       if(carposition4.value==260){
  //         timers4.value=false;
  //       }else if(carposition4.value==60){
  //         timers4.value=true;
  //       }
  //       if(timers4.value==true){
  //         carposition4.value+=20;
  //       }else{
  //         carposition4.value-=20;
  //       }
  //     }else{
  //     }
  //   }else{
  //     million4.value=million3.value;
  //     if(cellshow5.value==true){
  //       cellshow5.value=false;
  //     }else{
  //       cellshow5.value=true;
  //     }
  //     if(cellshow3.value==true){
  //       cellshow3.value=false;
  //     }else{
  //       cellshow3.value=true;
  //     }
  //     if(cellshow4.value==true){
  //       cellshow4.value=false;
  //     }else{
  //       cellshow4.value=true;
  //     }
  //   }
  // }, 1000);
var timer = setInterval(() => {
  console.log(million.value, million1.value)
  million.value += 1
  if (million.value - million1.value !== 12) {
    if (million.value - million1.value >= 2) {
      if (carposition1.value == 200) {
        timers1.value = false
      } else if (carposition1.value == 40) {
        timers1.value = true
      }
      if (timers1.value == true) {
        carposition1.value = carposition1.value + 16
      } else {
        carposition1.value = carposition1.value - 16
      }
      if (carposition2.value == 200) {
        timers2.value = false
      } else if (carposition2.value == 40) {
        timers2.value = true
      }
      if (timers2.value == true) {
        carposition2.value += 16
      } else {
        carposition2.value -= 16
      }
    } else {
    }
  } else {
    million1.value = million.value
    if (cellshow.value == true) {
      cellshow.value = false
    } else {
      cellshow.value = true
    }
    if (cellshow1.value == true) {
      cellshow1.value = false
    } else {
      cellshow1.value = true
    }
    if (cellshow2.value == true) {
      cellshow2.value = false
    } else {
      cellshow2.value = true
    }
  }
}, 100000)
const getTableRow = (row, type) => {
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit': {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({
        path: '/main/returns/createReturns',
        query: {ReturnID: 'TH24010101'},
      })
      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
      break
    }
    case 'delete': {
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
const handleBindRack = (row) => {
  selectedRow.value = row; // 更新选中的行数据
  add.value = true; // 打开绑定架子对话框
};
async function handleConfirm() {
  if (!selectedRow.value) {
    // 处理没有选中行的情况...
    return;
  }
  // 构造你的POST请求数据,包含选中的行数据和表单数据
  const postData = {
    ...selectedRow.value, // 选中行的数据
  };
  try {
    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
      'flowCardId': flowCardId.value,
      'gap': gap.value,
      'glassId': glassId.value,
      'glassType': glassType.value,
      'height': height.value,
      'sequence': sequence.value,
      'state': state.value,
      'temperingFeedSequence': temperingFeedSequence.value,
      'temperingLayoutId': temperingLayoutId.value,
      'thickness': thickness.value,
      'width': width.value,
       body: JSON.stringify(postData),
    });
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
  } catch (error) {
    // 处理错误...
    console.error(error);
  }
}
// 添加
// const handleConfirm = async () => {
//   try {
//     const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
//       'bigStorageCageOutTask.flowCardId': flowCardId.value,
//       'bigStorageCageOutTask.gap': gap.value,
//       'bigStorageCageOutTask.glassId': glassId.value,
//       'bigStorageCageOutTask.glassType': glassType.value,
//       'bigStorageCageOutTask.height': height.value,
//       'bigStorageCageOutTask.sequence': sequence.value,
//       'bigStorageCageOutTask.state': state.value,
//       'bigStorageCageOutTask.temperingFeedSequence': temperingFeedSequence.value,
//       'bigStorageCageOutTask.temperingLayoutId': temperingLayoutId.value,
//       'bigStorageCageOutTask.thickness': thickness.value,
//       'bigStorageCageOutTask.width': width.value,
//     });
//     if (response.code == 200) {
//       // 绑定成功,处理逻辑
//       ElMessage.success(response.message);
//       add.value = false;
//      tableData.value = response.data;
//     } else {
//       // 请求失败,显示错误消息
//       ElMessage.error(response.msg);
//     }
//   } catch (error) {
//     // 处理错误
//     console.error(error);
//   }
// };
// 是否禁用
const toggleEnableState = async (row) => {
  const newState = row.enableState === 1 ? 0 : 1;
  console.log(row.slot);
  console.log(row.enableState);
  var url="/cacheVerticalGlass/bigStorageCage/updateStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
      console.log(url);
      const response = await request.get(url)
  if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.message);
      }
  row.enableState = newState;
};
// const tableData = ref([
//   // ...您的表格数据
//   id:
//   deviceId slot enableState remainWidth
const gridOptions = reactive({
  border: 'full', //表格加边框
  keepSource: true, //保持源数据
  align: 'center', //文字居中
  stripe: true, //斑马纹
  rowConfig: {isCurrent: true, isHover: true, height: 50}, //鼠标移动或选择高亮
  id: 'OrderList',
  showFooter: true, //显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY: {enabled: true}, //开启虚拟滚动
  showOverflow: true,
  columnConfig: {
    resizable: true,
    useKey: true,
  },
  filterConfig: {
    //筛选配置项
    remote: true,
  },
  customConfig: {
    storage: true,
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true,
  },
  data: [
    {
      id: '1',
      long: '5',
      wide: '1005',
      thick: '183.6',
    },
  ],
})
// ]);
 // 删除
 const opena = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.deletemessage'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails",row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
 // 破损
 const broke = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // const dataToSend = {
      //   ...row,
      //   status: 0
      // };
      // 用户点击了“是”,现在调用删除接口
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+0, row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
 // 拿走
 const brokec = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.brokeb'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // const dataToSend = {
      //   ...row,
      //   status: 1
      // };
      // 用户点击了“是”,现在调用删除接口
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+1, row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
 // 出片
 const outfil = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.outfil'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/outBigStorageCageDetails", row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
 // 出片队列破损
 const brokea = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      // const dataToSend = {
      //   ...row,
      //   status: 0
      // };
      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+0, row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
// 出片队列拿走
const brokeb = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.brokeb'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      // const dataToSend = {
      //   ...row,
      //   status: 1
      // };
      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+1, row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
// 出片队列删除
const deletea = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.deletemessage'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      const dataToSend = {
        ...row,
        status: 1
      };
      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/deleteTemperingGlassInfo", dataToSend)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
// 完成任务
const finish = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.fin'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      // 用户点击了“是”,现在调用删除接口
      // const dataToSend = {
      //   ...row,
      //   status: 1
      // };
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/finishBigStorageCageDetails", row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
        // 删除失败,您可以处理错误或显示错误信息给用户
      ElMessage.error(response.message);
        // alert('删除失败:' + deleteResponse.message);
      }
    }
  } catch (error) {
    // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等
    console.error('发生错误:', error);
  }
};
function handleRowClick(row) {
  selectedRow.value = row; // 更新选中的行数据
}
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
// 定义消息处理函数,更新 receivedData 变量
const handleMessage = (data) => {
  // 更新 tableData 的数据
  tableDatac.value = data.bigStorageCageDetailsOutTask[0]
  tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
  tableData.value = data.bigStorageCageInfo[0]
  tableDatab.value = data.temperingGlassInfoList[0]
  tableDatae.value = data.bigStorageCageUsage[0]
  // adjustedRects.value = data.bigStorageCageInfo1[0]
  adjustedRects.value = data.bigStorageCageInfo1[0].map(rect => ({
            ...rect,
            // width: rect.remainWidth *0.04,
            top: rect.id *2,
          }));
console.log(data.bigStorageCageInfo1[0]);
adjustedRectsa.value = data.bigStorageCageInfo2[0].map(rect => ({
            ...rect,
            // width: rect.remainWidth *0.04,
            top: rect.id *2,
          }));
  // window.localStorage.setItem('length', data.bigStorageCageInfo1[0].length)
  // let length = window.localStorage.getItem('length')
};
// function getRectHeight(length: number) {
//   return length > 0 ? 29 / length : 29;
// }
// 初始化 WebSocket,并传递消息处理函数
onMounted(() => {
  // fetchFlowCardId();
  // fetchTableData(); // 获取数据
  initializeWebSocket(socketUrl, handleMessage);
});
function getStatusType(enableState: number) {
  switch (enableState) {
    case 0:
      return 'warning';
    case 1:
      return 'success';
  }
}
function getStatusText(enableState: number) {
  switch (enableState) {
    case 0:
      return t('searchOrder.disable');
    case 1:
      return t('searchOrder.enable');
  }
}
function getStatusTypea(ishorizontal: number) {
  switch (ishorizontal) {
    case 0:
      return 'warning';
    case 1:
      return 'success';
  }
}
function getStatusTexta(ishorizontal: number) {
  switch (ishorizontal) {
    case 0:
      return t('searchOrder.noaccept');
    case 1:
    return t('searchOrder.accept');
  }
}
function getStatusTypeb(state: number) {
  switch (state) {
    case 0:
      return 'success';
    case 1:
      return 'primary';
  }
}
function getStatusTextb(state: number) {
  switch (state) {
    case 0:
      return t('searchOrder.filmcomplete');
    case 1:
      return t('searchOrder.waiting');
    case 2:
    return t('searchOrder.waiting');
  }
}
onBeforeUnmount(() => {
  console.log("关闭了")
  closeWebSocket();
});
</script>
<template>
  <div style="height: 700px;">
    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">手动进片</el-button> -->
    <el-button style="margin-top: 5px;margin-left: 10px;"
               id="searchButton"
               type="primary"
               @click="dialogFormVisiblea = true">订单信息
    </el-button>
    <el-button style="margin-top: 5px;margin-left: 10px;"
               id="searchButton"
               type="success"
               @click="dialogFormVisibleb = true">出片队列
    </el-button>
    <el-button style="margin-top: 5px;margin-left: 10px;"
               id="searchButton"
               type="danger">终止进片
    </el-button>
    <el-button style="margin-top: 5px;margin-left: 10px;"
               id="searchButton"
               type="danger">终止出片
    </el-button>
    <el-button style="margin-top: 5px;margin-left: 10px;"
               id="searchButton"
               type="danger"
               @click="dialogForm">软急停
    </el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;"
             v-loading="loading">
  <div style="height: 600px;">
    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">{{ $t('searchOrder.cageinformation') }}</el-button>
    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
        <el-table height="100%"
                  ref="table"
                  @selection-change="handleSelectionChange"
                  :data="tableData"
                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="id"
                           align="center"
                           label="出片玻璃ID"
                           min-width="80"/>
          <el-table-column prop="a"
                           align="center"
                           label="笼子"
                           min-width="120"/>
          <el-table-column prop="b"
                           align="center"
                           label="格子"
                           min-width="120"/>
          <el-table-column prop="c"
                           align="center"
                           label="工程号"
                           min-width="120"/>
          <el-table-column prop="d"
                           align="center"
                           label="流程卡号"
                           min-width="120"/>
          <el-table-column prop="e"
                           align="center"
                           label="钢化版图号"
                           min-width="157"/>
          <el-table-column prop="f"
                           align="center"
                           label="尺寸"
                           min-width="120"/>
          <el-table-column prop="g"
                           align="center"
                           label="结束任务"
                           min-width="120">
            <el-button style="margin-top: 5px;margin-left: 10px;"
                       id="searchButton"
                       type="text">完成任务
            </el-button>
        <el-table height="100%" ref="table"
        :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="100" />
          <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
          <el-table-column prop="bigStorageCageOutTask.endSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
          <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" />
          <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" :label="$t('searchOrder.number')" min-width="120" />
          <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
          <template #default="scope">
            <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
          </template>
          </el-table-column>
          <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100"/>
          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="100"/>
          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
          <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
      </div>
    </el-card>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;"
             v-loading="loading">
    <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
        <el-table height="100%"
                  ref="table"
                  @selection-change="handleSelectionChange"
                  :data="tableDatab"
                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="id"
                           align="center"
                           label="进片玻璃ID"
                           min-width="80"/>
          <el-table-column prop="a"
                           align="center"
                           label="笼子"
                           min-width="120"/>
          <el-table-column prop="b"
                           align="center"
                           label="格子"
                           min-width="120"/>
          <el-table-column prop="c"
                           align="center"
                           label="工程号"
                           min-width="120"/>
          <el-table-column prop="d"
                           align="center"
                           label="流程卡号"
                           min-width="120"/>
          <el-table-column prop="e"
                           align="center"
                           label="钢化版图号"
                           min-width="157"/>
          <el-table-column prop="f"
                           align="center"
                           label="尺寸"
                           min-width="120"/>
          <el-table-column prop="g"
                           align="center"
                           label="结束任务"
                           min-width="120">
            <el-button style="margin-top: 5px;margin-left: 10px;"
                       id="searchButton"
                       type="text">完成任务
            </el-button>
        <el-table height="100%" ref="table"
        @selection-change="handleSelectionChange"
        :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="100" />
          <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
          <!-- <el-table-column prop="task_type" align="center" label="任务类型" min-width="120" />没有返回字段 -->
          <el-table-column prop="bigStorageCageFeedTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="120">
          <template #default="scope">
            <el-tag type="success" >{{ scope.row.bigStorageCageFeedTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
          </template>
          </el-table-column>
          <el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')" min-width="120" />
          <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100"/>
          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="100"/>
          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
          <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
      </div>
    </el-card>
    <div style="padding: 10px;display: flex;height:110px;">
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#1</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#2</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#3</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#4</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#5</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#6</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#7</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <div id="occupy">
        <el-col style="text-align:left;font-weight: bold;">#8</el-col>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">使用率</span><span id="zhi">35%</span>
        </el-col>
        <hr style="width:80%;margin: 0 auto;"/>
        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
          <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
        </el-col>
      </div>
      <!-- <div v-for="n in 8" :key="n" id="occupy">
                    <el-col style="text-align:left;font-weight: bold;">#1</el-col>
                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                        <span id="biao">使用率</span><span id="zhi">35%</span>
                    </el-col>
                    <hr style="width:80%;margin: 0 auto;" />
                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                        <span id="biao">空闲(格子数)</span><span id="zhi">555</span>
                    </el-col>
                </div> -->
            <div v-for="(item, index) in tableDatae" :key="index" id="occupy">
               <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>
               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                 <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}</span>
               </el-col>
               <hr style="width:80%;margin: 0 auto;" />
               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                 <span>{{ $t('searchOrder.free') }}</span><span>{{ item.count }}</span>
               </el-col>
             </div>
    </div>
    <!-- <div id="awatch">
  <img src="../../assets/cp.png" alt="" style="width: 70%;height: 70%;margin-left: 160px;">
</div> -->
    <!-- // 父级框 -->
    <div class="img-dlpl">
      <div class="img-car1"
           :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'">
        <div v-show="cellshow1"
             style="margin-top:10px;width:200px;height:5px;background-color:red;"></div>
      </div>
      <div class="img-car2"
           :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'">
        <div v-show="cellshow2"
             style="margin-top:10px;width:200px;height:5px;background-color:red;"></div>
      </div>
      <div v-show="cellshow"
           style="width: 200px;height: 5px;position: absolute;top:60px;left: 490px;background-color: red;">
      </div>
<!-- // 父级框 -->
<div class="img-dlpl" >
    <div class="img-car1" :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'">
      <div v-show="cellshow1" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
    </div>
    <div v-show="c1" class="img-car2" :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'">
      <div v-show="cellshow2" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
    </div>
    <div v-show="c2" class="img-car3" :style="'z-index:999;left:247px;top:' + carposition3 + 'px;position:absolute;'">
      <div v-show="cellshow3" style="margin-top:10px;width:220px;height:5px;background-color:#409EFF;"></div>
    </div>
    <div class="img-car4" :style="'z-index:999;left:704px;top:' + carposition4 + 'px;position:absolute;'">
      <div v-show="cellshow4" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
    </div>
    <div v-show="cell1" style="width: 227px;position: relative;height: 29px;top:55px;left: 465px;background-color: #911005;">
      <div
      v-for="(rect, index) in adjustedRects"
      :key="rect"
      :style="{
       position: 'absolute',
       width: '227px',
       height: '0.8px',
       backgroundColor: '#409EFF',
       left: '0px',
       top: `${rect.top}px`,
       }"
    >
    </div>
    </div>
 <div v-show="cell2" style="width: 227px;height: 29px;position: relative;top:86px;left: 465px;background-color: #911005;">
  <div
      v-for="(rect, index) in adjustedRectsa"
      :key="rect"
      :style="{
       position: 'absolute',
       width: '227px',
       height: '0.8px',
       backgroundColor: '#409EFF',
       left: '0px',
       top: `${rect.top}px`,
       }"
    >
    </div>
    </div>
      <!--  <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:117px;left: 465px;background-color: #409EFF;">
    </div>
  <div v-show="cell4" style="width: 227px;height: 29px;position: absolute;top:148px;left: 465px;background-color: #409EFF;">
    </div>
  <div v-show="cell5" style="width: 227px;height: 29px;position: absolute;top:208px;left: 465px;background-color: #409EFF;">
    </div>
  <div v-show="cell6" style="width: 227px;height: 29px;position: absolute;top:238px;left: 465px;background-color: #409EFF;">
    </div>
  <div v-show="cell7" style="width: 227px;height: 29px;position: absolute;top:269px;left: 465px;background-color: #409EFF;">
    </div>
  <div v-show="cell8" style="width: 227px;height: 29px;position: absolute;top:300px;left: 465px;background-color: #409EFF;">
    </div> -->
</div>
  </div>
  <el-dialog v-model="dialogFormVisible"
             top="12vh"
             width="85%"
             title="请确认玻璃信息">
    <div style="margin-left: 50px;margin-bottom: 10px;">
      <div style="display: flex;">
        <p style="margin-top: 4px;">确认状态:</p>
        <el-button style="margin-left: 10px;size: mini;"
                   type="success">允许
        </el-button>
        <el-button style="margin-left: 10px;size: mini;"
                   type="danger">不允许
        </el-button>
        <p style="margin-left: 60px;margin-top: 4px;">当前状态:</p>
        <div style="margin-top: 4px; margin-left: 10px;">手动</div>
        <el-button style="margin-left: 10px;size: mini;"
                   type="primary">切换
        </el-button>
        <el-input placeholder="请输入玻璃id"
                  style="width: 180px;size: mini;margin-left: 60px;"></el-input>
        <el-button style="margin-left: 10px;size: mini;"
                   type="primary">添加
        </el-button>
        <p style="margin-left: 60px;margin-top: 4px;">玻璃id:</p>
        <el-input style="width: 180px;size: mini;margin-left: 30px;"></el-input>
      </div>
      <div style="display: flex;">
        <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">上片位</p>
        <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">扫码位</p>
      </div>
      <div style="display: flex;">
        <div style="margin-top: 20px;">
          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p>
          <el-form label-position="right"
                   label-width="90px">
            <el-form-item style="width: 20vw"
                          label="玻璃id:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入玻璃id"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="订单编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入订单编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="列表编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入列表编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="箱子编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入箱子编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="长:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入长"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="宽:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入宽"></el-input>
            </el-form-item>
          </el-form>
  <el-dialog v-model="add" top="10vh" width="65%" :title="$t('searchOrder.addcage')" >
      <div style="margin-top: -20px;margin-bottom: 40px;margin-left: 30px">
          <el-input :placeholder="$t('searchOrder.inputid')" clearable style="width: 200px;">
          </el-input>
          <el-button type="primary" plain style="margin-left: 10px;">{{ $t('searchOrder.search') }}</el-button>
        <!-- <span style="margin-right: 10px">禁用词</span>
        <el-input clearable placeholder="请输入禁用词" size="mini"
          style="margin-right: 50px; width: 200px;" /> -->
        </div>
        <div style="margin-top: 20px;">
          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p>
          <el-form label-position="right"
                   label-width="90px">
            <el-form-item style="width: 20vw"
                          label="玻璃id:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入玻璃id"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="订单编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入订单编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="列表编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入列表编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="箱子编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入箱子编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="长:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入长"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="宽:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入宽"></el-input>
            </el-form-item>
          </el-form>
        </div>
        <div style="margin-top: 20px;">
          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p>
          <el-form label-position="right"
                   label-width="90px">
            <el-form-item style="width: 20vw"
                          label="玻璃id:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入玻璃id"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="订单编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入订单编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="列表编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入列表编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="箱子编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入箱子编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="长:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入长"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="宽:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入宽"></el-input>
            </el-form-item>
          </el-form>
        </div>
        <div style="margin-top: 20px;">
          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p>
          <el-form label-position="right"
                   label-width="90px">
            <el-form-item style="width: 20vw"
                          label="玻璃id:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入玻璃id"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="订单编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入订单编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="列表编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入列表编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="箱子编号:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入箱子编号"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="长:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入长"></el-input>
            </el-form-item>
            <el-form-item style="width: 20vw"
                          label="宽:">
              <el-input style="width: 180px"
                        size="mini"
                        placeholder="请输入宽"></el-input>
            </el-form-item>
          </el-form>
        </div>
      </div>
    </div>
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="180px">
      <el-form label-width="180px" label-position="right">
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.glassIDa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inglassID')" v-model="glassId" autocomplete="off" />
              </el-form-item>
              </div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.pieceingrida')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inpieceingrid')" v-model="sequence" autocomplete="off" />
              </el-form-item></div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.cardnumbera')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.incardnumber')" v-model="flowCardId" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.typeglassa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.intypeglass')" v-model="glassType" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.widtha')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inwidth')" v-model="width" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.heighta')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inheight')" v-model="height" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.thicknessa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inthickness')" v-model="thickness" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.layoutIDa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inlayoutID')" v-model="temperingLayoutId" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.picturesequencea')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inpicturesequence')" v-model="temperingFeedSequence" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.startstatusa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.instartstatus')" v-model="state" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.glassgapsa')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.inglassgaps')" v-model="gap" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('searchOrder.gridnumbera')" :required="true" style="width: 24vw;">
                <el-input :placeholder="$t('searchOrder.grid')" v-model="state" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary"
                   @click="dialogFormVisible = false">
          确认
        <el-button type="primary" @click="handleConfirm">
          {{ $t('searchOrder.sure') }}
        </el-button>
        <el-button @click="dialogFormVisible = false">取消</el-button>
        <el-button @click="add = false">{{ $t('searchOrder.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="dialogFormVisiblea"
             top="10vh"
             width="85%"
             title="订单信息">
    <el-input placeholder="请输入工程号"
              style="width: 180px;size: mini;"></el-input>
    <el-button style="margin-left: 10px;size: mini;"
               type="primary">查询
    </el-button>
    <el-table ref="table"
              style="margin-top: 20px;height: 500px;"
              @selection-change="handleSelectionChange"
              :data="tableDataa"
              :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
      <el-table-column prop="ida"
                       align="center"
                       label="玻璃id"
                       min-width="80"/>
      <el-table-column prop="typea"
                       align="center"
                       label="工程号"
                       min-width="120"/>
      <el-table-column prop="typea"
                       align="center"
                       label="长"
                       min-width="120"/>
      <el-table-column prop="typea"
                       align="center"
                       label="宽"
                       min-width="120"/>
      <el-table-column prop="typea"
                       align="center"
                       label="厚"
                       min-width="120"/>
    </el-table>
    <div id="demo-pagination-block">
      <el-pagination style="margin-left: 850px;"
                     v-model:current-page="currentPage4"
                     v-model:page-size="pageSize4"
                     :page-sizes="[100, 200, 300, 400]"
                     :small="small"
                     :disabled="disabled"
                     :background="background"
                     layout="total, sizes, prev, pager, next, jumper"
                     :total="400"
                     @size-change="handleSizeChange"
                     @current-change="handleCurrentChange"/>
    </div>
  </el-dialog>
  <el-dialog v-model="dialogFormVisibleb"
             top="10vh"
             width="85%"
             title="出片队列">
    <div style="display: flex;">
      <p style="margin-top: 4px;">队列状态:</p>
      <p style="margin-top: 4px;">开始</p>
      <el-button style="margin-left: 10px;size: mini;"
                 type="danger">停止
      </el-button>
      <el-button style="margin-left: 10px;size: mini;"
                 type="primary">添加
      </el-button>
    </div>
    <el-table ref="table"
              style="margin-top: 20px;height: 500px;"
              @selection-change="handleSelectionChange"
              :data="tableDatab"
              :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
      <el-table-column prop="id"
                       align="center"
                       label="铝框id"
                       min-width="80"/>
      <el-table-column prop="type"
                       align="center"
                       label="玻璃id"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="订单编号"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="列表编号"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="箱子编号"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="长"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="宽"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="玻璃状态"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="顺序"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="完成"
                       min-width="120"/>
      <el-table-column prop="type"
                       align="center"
                       label="操作"
                       min-width="120"/>
    </el-table>
  </el-dialog>
<el-dialog v-model="dialogFormVisiblea" top="5vh" width="97%" :title="$t('searchOrder.cageinformation')">
    <el-table
          :data="tableData"
          @row-click="handleRowClick"
          height="500"
          @expand-change="handleExpandChange"
          row-key="id"
          default-expand-all
          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
        >
          <el-table-column type="expand">
            <template #default="props">
              <div v-if="props.row.bigStorageCageDetails && props.row.bigStorageCageDetails.length">
                <el-table
                  :data="props.row.bigStorageCageDetails"
                  border
                  style="width: 100%;margin-left: 20px;"
                  row-key="id"
                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
                >
          <!-- <el-table-column prop="menuName" label="二级菜单栏" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>   -->
          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" min-width="80"/>
          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="100" />
          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="120" />
          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="80" />
          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
          <el-table-column
            align="center"
            :label="$t('searchOrder.startstatus')"
            min-width="80"
            prop="state"
          >
          <template #default="scope">
        <el-tag :type="getStatusType(scope.row.state)">
          {{ getStatusText(scope.row.state) }}
        </el-tag>
      </template>
          </el-table-column>
          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="80" />
           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center"  min-width="220">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
              <el-button size="mini" type="text" plain @click="outfil(scope.row)">{{ $t('searchOrder.outfilm') }}</el-button>
            </template>
        </el-table-column>
                </el-table>
              </div>
            </template>
          </el-table-column>
          <el-table-column prop="id" :label="$t('searchOrder.cagetableID')" align="center" min-width="100"/>
          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="150" />
          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="150" />
          <el-table-column
          align="center"
            :label="$t('searchOrder.startstatus')"
            min-width="80"
            prop="enableState"
          >
          <template #default="scope">
          <el-tag
            :type="scope.row.enableState === 1 ? 'success' : 'danger'"
            @click="toggleEnableState(scope.row)"
          >
            {{ scope.row.enableState === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable')}}
          </el-tag>
        </template>
          </el-table-column>
          <el-table-column prop="remainWidth" align="center" :label="$t('searchOrder.remainingwidth')" min-width="120" />
       <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
            <template #default="scope">
              <el-button size="mini" type="text" plain  @click="handleBindRack(scope.row)">{{ $t('searchOrder.add') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
        <div id="demo-pagination-block">
    <el-pagination
    style="margin-left: 850px;"
      v-model:current-page="currentPage4"
      v-model:page-size="pageSize4"
      :page-sizes="[100, 200, 300, 400]"
      :small="small"
      :disabled="disabled"
      :background="background"
      layout="total, sizes, prev, pager, next, jumper"
      :total="400"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    />
  </div>
</el-dialog>
<el-dialog v-model="dialogFormVisibleb" top="5vh" width="85%" :title="$t('searchOrder.productionqueue')">
  <!-- <div style="display: flex;">
  <p style="margin-top: 3px;">队列状态:</p>
  <p style="margin-top: 3px;">开始</p>
    <el-button style="margin-left: 10px;size: mini;" type="danger">停止</el-button>
    <el-button style="margin-left: 10px;size: mini;" type="primary">添加</el-button>
  </div> -->
    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
          <el-table-column prop="flowcardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" />
          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
          <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
          <el-table-column
            align="center"
            :label="$t('searchOrder.acceptshorizontal')"
            min-width="150"
            prop="ishorizontal"
          >
          <template #default="scope">
        <el-tag :type="getStatusTypea(scope.row.ishorizontal)">
          {{ getStatusTexta(scope.row.ishorizontal) }}
        </el-tag>
      </template>
          </el-table-column>
          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="120" />
          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
          <el-table-column prop="xCoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
          <el-table-column prop="yCoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
          <el-table-column prop="angle" align="center" :label="$t('searchOrder.rotationangle')" min-width="150" />
          <el-table-column
            align="center"
            :label="$t('searchOrder.state')"
            min-width="80"
            prop="state"
          >
          <template #default="scope">
        <el-tag :type="getStatusTypeb(scope.row.state)">
          {{ getStatusTextb(scope.row.state) }}
        </el-tag>
      </template>
          </el-table-column>
          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="brokea(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokeb(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
              <el-button size="mini" type="text" plain @click="deletea(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
</el-dialog>
</template>
<style scoped>
#dt {
  display: block;
  float: left;
  line-height: 20px;
  margin-left: 100px;
}
#dta {
  display: block;
  float: left;
  line-height: 20px;
  margin-left: 80%;
}
#dialog-footer {
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
#dialog-footer{
  text-align: center;
  margin-top: -15px;
}
#message {
#message{
  text-align: center;
  align-items: center;
  color: black;
  width: 200px;
  height: 100px;
  background-color: #337ecc;
  margin-left: 28%;
   width: 200px;
   height: 100px;
   background-color: #337ecc;
   margin-left: 28%;
}
#awatch {
#awatch{
  height: 450px;
}
#occupy {
  height: 100%;
  width: 15%;
  background-color: white;
  margin: 0px 8px 0px 8px;
  border: 1px #ebeef5 solid;
  text-align: center;
  padding: 5px;
    height: 100%;
    width: 15%;
    background-color: white;
    margin: 0px 8px 0px 8px;
    border: 1px #EBEEF5 solid;
    text-align: center;
    padding: 5px;
}
#biao {
  font-size: 12px;
    font-size: 12px;
}
#zhi {
  font-size: 18px;
  font-weight: bold;
    font-size: 18px;
    font-weight: bold;
}
#demo-pagination-block + #demo-pagination-block {
  margin-top: 10px;
}
#demo-pagination-block #demonstration {
  margin-bottom: 16px;
}
::-webkit-scrollbar {
  width: 0 !important;
     width: 0 !important;
   }
   ::-webkit-scrollbar {
     width: 0 !important;height: 0;
   }
   .img-list{
  position:relative;
}
::-webkit-scrollbar {
  width: 0 !important;
  height: 0;
}
.img-list {
  position: relative;
}
.data-img {
  @apply float-none;
  width: 100%;
  height: 16rem;
.data-img{
  @apply float-none ;
  width:100%;
  height:16rem;
  background: rgba(0, 0, 0, 0);
  opacity: 1;
  border-radius: 0.5rem 0.5rem 0px 0px;
}
.check-img {
.check-img{
  position: absolute;
  width: 3.3125rem;
  height: 2.9375rem;
  top: 20rem;
  top:20rem;
  right: 57rem;
  z-index: 10;
}
.check-imga {
.check-imga{
  position: absolute;
  width: 3.3125rem;
  height: 2.9375rem;
  top: 15rem;
  top:15rem;
  right: 28.5rem;
  z-index: 10;
}
.vertical {
  width: 45px;
  height: 25px;
  background-color: #409eff;
  top: 485px; /* 初始位置 */
  left: 899px; /* 水平居中 */
  transform: translateX(-50%);
  animation: move-vertical 6s infinite; /* 从上到下动画,持续6秒,无限循环 */
    width: 45px;
    height: 25px;
    background-color: #409EFF;
    top: 485px; /* 初始位置 */
    left: 899px; /* 水平居中 */
    transform: translateX(-50%);
    animation: move-vertical 6s infinite; /* 从上到下动画,持续6秒,无限循环 */
}
@keyframes move-vertical {
  0% {
    top: 485px; /* 起始位置 */
  }
  100% {
    top: calc(100% - 210px); /* 从上到下结束位置 */
  }
    0% {
        top: 485px; /* 起始位置 */
    }
    100% {
        top: calc(100% - 210px); /* 从上到下结束位置 */
    }
}
.img-dlpl {
  margin-left: 200px;
  background-image: url('../../assets/dlpl.png');
.img-dlpl{
  margin-left: 80px;
  background-image:url('../../assets/dlpl.png');
  background-repeat: no-repeat;
  background-attachment: local;
  min-height: 400px;
  width: 1200px;
  max-width: 100%;
  background-size: 1200px 400px;
  overflow: hidden;
  position: relative;
    background-attachment: local;
    min-height: 400px;
    width: 1200px;
    max-width: 100%;
    background-size: 1200px 400px;
    overflow: hidden;
    position:relative
}
.img-car1 {
  background-image: url('../../assets/lpl.jpg');
.img-car1{
  background-image:url('../../assets/lp.png');
  position: absolute;
  background-repeat: no-repeat;
  background-attachment: local;
  min-height: 200px;
  width: 200px;
  max-width: 100%;
  background-size: 200px 70px;
  overflow: hidden;
  position: relative;
    background-attachment: local;
    min-height: 200px;
    width: 200px;
    max-width: 100%;
    background-size: 200px 70px;
    overflow: hidden;
    position:relative
}
.img-car2 {
  background-image: url('../../assets/lpla.jpg');
.img-car2{
  background-image:url('../../assets/lpa.png');
  position: absolute;
  background-repeat: no-repeat;
  background-attachment: local;
  min-height: 200px;
  width: 200px;
  max-width: 100%;
  background-size: 200px 70px;
  overflow: hidden;
  position: relative;
    background-attachment: local;
    min-height: 200px;
    width: 200px;
    max-width: 100%;
    background-size: 200px 70px;
    overflow: hidden;
    position:relative
}
.img-car3{
  background-image:url('../../assets/lp.png');
  position: absolute;
  background-repeat: no-repeat;
    background-attachment: local;
    min-height: 200px;
    width: 200px;
    max-width: 100%;
    background-size: 200px 70px;
    overflow: hidden;
    position:relative
}
.img-car4{
  background-image:url('../../assets/lpa.png');
  position: absolute;
  background-repeat: no-repeat;
    background-attachment: local;
    min-height: 200px;
    width: 200px;
    max-width: 100%;
    background-size: 200px 70px;
    overflow: hidden;
    position:relative
}
</style>