zhoushihao
2024-09-02 cfd9f0b05e4e9b46c4d72ec5cefd3c04648648ea
UI-Project/src/views/Identify/identify.vue
@@ -11,8 +11,8 @@
      @current-change="handleCurrentChange"
    />
    </div>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
      <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;">
    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
      <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
  <div style="position: relative;">  
    <div  
      v-for="(rect, index) in adjustedRects"  
@@ -35,12 +35,12 @@
   </div>
  </el-scrollbar>
  <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
        <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)"  style="width: 140px;margin-left: 10px;">
        <el-button :disabled="currentGlassRect?.glass_state === 8" type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)"  style="width: 140px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
        <el-button  type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
        <el-button :disabled="currentGlassRect?.glass_state === 9" type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
          <el-icon class="el-icon--right"><Upload /></el-icon>
          {{ $t('order.Takeaway') }}</el-button>
          {{ $t('order.takeaway') }}</el-button>
  </el-dialog> 
  </el-card>
</template>  
@@ -60,6 +60,7 @@
const glass_id = ref();
const inputValue = ref('');
const currentGlassId = ref(null); // 存储当前点击矩形的 glass_id  
const currentstate = ref(null);
const adjustedRects = ref([]);
const raw = ref([]);
let webSocket: WebSocket | null = null;  
@@ -73,6 +74,9 @@
//   blind.value = true; // 打开绑定架子对话框
// };
// 显示对话框并设置当前 glass_id  
const currentGlassRect = computed(() => {
  return adjustedRects.value.find(rect => rect.glass_id === currentGlassId.value);
});
function showDialog(glassId: number) {  
  currentGlassId.value = glassId;  
  blind.value = true;  
@@ -146,20 +150,19 @@
    var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
    const response = await request.post(url)
    if (response.code === 200) {
      console.log(response.data);
      const rawRects = response.data[0];
      rawData.value = response.data;
      totalPages.value = rawData.value.length;
      const scaleFactor =  1621.78/6000; 
      const scaleFactory =  750/3300;
      adjustedRects.value = rawRects.map(rect => ({  
        ...rect,
        x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
        y_axis: rect.y_axis * 0.17,
        y_axis: rect.y_axis * scaleFactory,
        width: rect.width * scaleFactor ,
        widtha: rect.width ,
        heighta: rect.height ,
        height: rect.height * 0.165 ,
        height: rect.height * scaleFactory,
        glass_state: rect.glass_state
      }));  
      // 如果WebSocket已连接,则关闭  
@@ -177,15 +180,16 @@
  currentPage.value = val;
  const page = currentPage.value - 1
      const scaleFactor =  1621.78/6000; 
      const scaleFactory =  750/3300;
      adjustedRects.value = rawData.value[page]?.map(rect => ({  
      // adjustedRects.value = rawRects.map(rect => ({  
        ...rect,
        x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
        y_axis: rect.y_axis * 0.17,
        y_axis: rect.y_axis * scaleFactory,
        width: rect.width * scaleFactor ,
        widtha: rect.width ,
        heighta: rect.height ,
        height: rect.height * 0.165 ,
        height: rect.height * scaleFactory,
        glass_state: rect.glass_state
      }));  
};
@@ -203,8 +207,6 @@
      return '#911005';  
    case 9:  
      return '#f3d19e';  
    // default:
    //   return '#911005'; // 默认颜色
  }  
// 更新矩形状态  
@@ -215,34 +217,6 @@
    }  
  });  
}
// const connectWebSocket = () => {
//   if (!webSocket) {
// const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
//     webSocket = new WebSocket(socketUrl);
//     webSocket.onmessage = (event) => {
//       const data = JSON.parse(event.data);
//       const scaleFactor =  1621.78/6000;
//         adjustedRects.value = data.currentCutTerritory[0].map(rect => ({
//         ...rect,
//         x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
//         y_axis: rect.y_axis * 0.17,
//         width: rect.width * scaleFactor ,
//         widtha: rect.width ,
//         heighta: rect.height ,
//         height: rect.height * 0.165 ,
//         glass_state: rect.glass_state,
//         isActive: false
//       }));
//     };
//     webSocket.onerror = (error) => {
//       console.error('WebSocket Error:', error);
//     };
//     webSocket.onclose = () => {
//       console.log('WebSocket Connection Closed');
//       // 可以选择重新连接
//     };
//   }
// };
const connectWebSocket = () => {  
  if (!webSocket) {  
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
@@ -250,15 +224,18 @@
    webSocket.onmessage = (event) => {  
      const data = JSON.parse(event.data);  
      const scaleFactor = 1621.78 / 6000;  
      const scaleFactory =  750/3300;
      if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
      const newRects = data.currentCutTerritory[0].map(rect => {  
        const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id);  
        if (existingRect) {  
          return {  
            ...existingRect,  
            x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor,  
            y_axis: rect.y_axis * 0.17,
            y_axis: rect.y_axis * scaleFactory,
            width: rect.width * scaleFactor,  
            height: rect.height * 0.165,
            height: rect.height * scaleFactory,
            widtha: rect.width,  
            heighta: rect.height,  
            glass_state: rect.glass_state,  
@@ -269,9 +246,9 @@
          return {  
            ...rect,  
            x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor,  
            y_axis: rect.y_axis * 0.17,
            y_axis: rect.y_axis * scaleFactory,
            width: rect.width * scaleFactor,  
            height: rect.height * 0.165,
            height: rect.height * scaleFactory,
            widtha: rect.width,  
            heighta: rect.height,  
            glass_state: rect.glass_state,  
@@ -281,10 +258,12 @@
        }
      });
      adjustedRects.value = newRects;  
     } else if (data.currentCutTerritory == '') {
      adjustedRects.value = [];
     }
    };  
  }
};  
onMounted(() => {  
  // 初始时,如果输入框为空,则连接WebSocket  
  if (!inputValue.value) {