wangfei
2024-08-27 3048ae014effa8f8ba92395eeb1e69f18e76ebf0
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"  
@@ -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;  
@@ -68,12 +69,12 @@
const currentPage = ref(1);
const disabled = false;
const size = 'small';
const rawData = ref([]);
const rawData = ref([]);
// const handleBind = (row) => {
//   blind.value = true; // 打开绑定架子对话框
// };
// 显示对话框并设置当前 glass_id  
function showDialog(glassId: number) {
function showDialog(glassId: number) {
  currentGlassId.value = glassId;  
  blind.value = true;  
  adjustedRects.value = adjustedRects.value.map(rect =>  
@@ -103,7 +104,7 @@
      // window.location.reload() 
      blind.value = false;
      updateRectStatus(currentGlassId.value, 8); 
    } else {
  } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
@@ -131,7 +132,7 @@
      // window.location.reload() 
      blind.value = false;
      updateRectStatus(currentGlassId.value, 9); 
    } else {
  } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
@@ -146,20 +147,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,36 +177,35 @@
  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
      }));
      }));
};
function getRectColor(state: number): string {
  switch (state) {
    case 0:
      return '#e1f3d8';
    case 100:
      return '#c8c9cc';
    case 110:
      return '#b3e19d';
    case 120:
      return '#f89898';
    case 8:
      return '#911005';
    case 9:
      return '#f3d19e';
    // default:
    //   return '#911005'; // 默认颜色
  }
}
function getRectColor(state: number): string {
  switch (state) {
    case 0:
      return '#e1f3d8';
    case 100:
      return '#c8c9cc';
    case 110:
      return '#b3e19d';
    case 120:
      return '#f89898';
    case 8:
      return '#911005';
    case 9:
      return '#f3d19e';
  }
}
// 更新矩形状态  
function updateRectStatus(glassId: string, status: number) {  
  adjustedRects.value.forEach(rect => {  
@@ -221,8 +220,9 @@
    webSocket = new WebSocket(socketUrl);  
    webSocket.onmessage = (event) => {  
      const data = JSON.parse(event.data);  
      const scaleFactor = 1621.78 / 6000;
     if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
      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);  
        
@@ -230,9 +230,9 @@
          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,  
@@ -243,9 +243,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,