wangfei
2024-11-29 c377d90fe2a01c2118f6c69c3c177f75be7c318b
UI-Project/src/views/Identify/identify.vue
@@ -1,20 +1,22 @@
<template>
  <div style="display: flex;">
<el-input v-model="inputValue" style="margin-left: 15px;margin-top: 10px;width: 240px" placeholder="请输入工程号" @blur="handleBlur"/>
<el-pagination
      v-model:current-page="currentPage"
      :page-size="pageSize"
      :size="size"
      :disabled="disabled"
      layout="prev, pager, next, jumper"
      :total="totalPages"
      @current-change="handleCurrentChange"
    />
  <div style="height: 500px;">
    <div style="display: flex;">
      <el-input v-model="inputValue" style="margin-left: 15px;margin-top: 10px;width: 240px" placeholder="请输入工程号"
                @blur="handleBlur"/>
      <el-pagination
          v-model:current-page="currentPage"
          :page-size="pageSize"
          :size="size"
          :disabled="disabled"
          layout="prev, pager, next, jumper"
          :total="totalPages"
          @current-change="handleCurrentChange"
      />
    </div>
    <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
    <div
      v-for="(rect, index) in adjustedRects"  
      :key="rect.glass_id"  
      class="rect"  
@@ -33,29 +35,34 @@
  </div>
  </div> 
   </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-scrollbar>
      <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
        <el-button :disabled="currentGlassRect?.glass_state === 8 || currentGlassRect?.glass_state === 9" 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-icon class="el-icon--right"><Upload /></el-icon>
          {{ $t('order.Takeaway') }}</el-button>
  </el-dialog>
  </el-card>
</template>
<script setup lang="ts">
import { Delete, Upload } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { ref, onMounted, onBeforeUnmount,onUnmounted, computed  } from 'vue';
        <el-button :disabled="currentGlassRect?.glass_state === 9 || currentGlassRect?.glass_state === 8" 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>
      </el-dialog>
    </el-card>
  </div>
</template>
<script setup lang="ts">
import {ElMessage} from 'element-plus'
import {computed, onMounted, onUnmounted, ref} from 'vue';
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
  import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
import {host, WebSocketHost} from '@/utils/constants'
import {useI18n} from 'vue-i18n'
const {t} = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
const blind = ref(false)
const olWidth = ref();
const olWidth = ref();
const olHeight = ref();
const glass_id = ref();
const inputValue = ref('');
@@ -66,7 +73,7 @@
let webSocket: WebSocket | null = null;  
const totalPages = ref(0);
const pageSize = ref(1);
const currentPage = ref(1);
const currentPage = ref('');
const disabled = false;
const size = 'small';
const rawData = ref([]);
@@ -74,6 +81,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;  
@@ -90,21 +100,19 @@
// 破损
const handleDamage = async () => {
  try  {
    // var url="/cacheGlass/taskCache/identControls?identId="+currentGlassId.value+'&controlsId='+201;
    //   console.log(url);
    //   const response = await request.post(url)
  const response = await request.post('/cacheGlass/taskCache/identControls', {
    glassId: currentGlassId.value,
    state: 8,
    line: 1001,
    workingProcedure: '识别',
    workingProcedure: '切割',
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      // window.location.reload() 
      blind.value = false;
      updateRectStatus(currentGlassId.value, 8); 
  } else {
      findEngineering()
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
@@ -124,7 +132,7 @@
    glassId: currentGlassId.value,
    state: 9,
    line: 1001,
    workingProcedure: '识别',
    workingProcedure: '切割',
    })
    if (response.code == 200) {
      // 绑定成功,处理逻辑
@@ -132,6 +140,7 @@
      // window.location.reload() 
      blind.value = false;
      updateRectStatus(currentGlassId.value, 9); 
      findEngineering()
  } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
@@ -142,7 +151,7 @@
    console.error(error);
  }
}
const handleBlur = async () => {
const handleBlur = async () => {
  if (inputValue.value) {  
    var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
    const response = await request.post(url)
@@ -167,14 +176,26 @@
        webSocket.close();  
        webSocket = null;
      }  
       currentPage.value = 1;
       currentPage.value = 1;
    }  
  } else{
    connectWebSocket();
  } 
}; 
const findEngineering = async () => {
  if (inputValue.value) {
    var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
    const response = await request.post(url)
    if (response.code === 200) {
      rawData.value = response.data;
    }
  } else{
  }
};
const handleCurrentChange = (val: number) => {  
  currentPage.value = val;
  // window.localStorage.setItem('pagenumber', currentPage.value).
  const page = currentPage.value - 1
      const scaleFactor =  1621.78/6000; 
      const scaleFactory =  750/3300;