wu
2024-08-28 c97d5414e5308c20757e20253628390fb97e140e
Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
6个文件已修改
290 ■■■■ 已修改文件
UI-Project/config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/constants.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Identify/identify.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue 253 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/config.js
@@ -1,10 +1,10 @@
export default {
//  serverUrl: "10.153.19.150:88/api",
 serverUrl: "10.153.19.150:88/api",
//  serverUrl: "192.168.1.199:88/api",
 serverUrl: "127.0.0.1:88/api",
  // serverUrl2: "10.153.19.150:88"
//  serverUrl: "127.0.0.1:88/api",
  serverUrl2: "10.153.19.150:88"
  // serverUrl2: "192.168.1.199:88"
    serverUrl2: "127.0.0.1:88"
    // serverUrl2: "127.0.0.1:88"
  //serverUrl:"res.abeim.cn"
}
UI-Project/src/lang/zh.js
@@ -104,7 +104,8 @@
    },
    order:{
        dilapidation:'破损',
        Takeaway:'人工拿走',
        takeaway:'人工拿走',
        takeon:'摆片完成',
    },
    searchOrder:{
        cageinformation:'理片笼信息',
UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@
//  export const WebSocketHost = "192.168.1.199";
// export const WebSocketHost = "10.153.19.150";
export const WebSocketHost = "127.0.0.1";
export const WebSocketHost = "10.153.19.150";
// export const WebSocketHost = "127.0.0.1";
export const host = "88";
UI-Project/src/views/Identify/identify.vue
@@ -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>  
@@ -74,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;  
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -1,5 +1,5 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
<script setup lang="ts">
import {Search ,Delete, Upload,Edit} from "@element-plus/icons-vue";
import {reactive} from "vue";
import request from "@/utils/request"
import { ref, onMounted, onBeforeUnmount,nextTick  } from 'vue';  
@@ -21,6 +21,15 @@
const dialogVisible = ref(false)
const width = ref();
const height = ref();
const currentRect = ref(null);
const canSelectProject1 = ref(true);
const canSelectProject2 = ref(true);
const canSelectProjecta = ref(true);
const cantakea = ref(true);
const cantakeb = ref(true);
const canona = ref(true);
const canonb = ref(true);
const canSelectProjectb = ref(true);
const adjustedRects1 = ref([]);
const adjustedRects2 = ref([]);
const adjustedRectsa = ref([]);
@@ -85,6 +94,7 @@
};  
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
const handleMessage = (data) => {  
  // 进炉中右
  if (data.intoGlass2 && data.intoGlass2.length > 0) {  
    // 提取新的矩形ID  
    const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId));  
@@ -138,14 +148,12 @@
  else if (data.intoGlass2 == null) {
    adjustedRects2.value = []
  }
  // 进炉中左
  if (data.intoGlass && data.intoGlass.length > 0) {  
    // 提取新的矩形ID
    const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));  
    // 过滤出已存在的矩形
    const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));  
    // 计算新的矩形
    const newRects = data.intoGlass[0].map(rect => {  
      const scaleFactor =  794.67/5087;
      const scaleFactor =  810.89/5087;
      const scaleFactorY =  430/2800; 
      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
      let newX = rect.yCoordinate; 
@@ -192,11 +200,8 @@
    adjustedRects1.value = []
  }
  if (data.waitingGlass && data.waitingGlass.length > 0) {  
    // 提取新的矩形ID
    const newGlassIds = new Set(data.waitingGlass[0].map(rect => rect.glassId));  
    // 过滤出已存在的矩形
    const existingRects = adjustedRectsa.value.filter(rect => newGlassIds.has(rect.glassId));  
    // 计算新的矩形
    const newRects = data.waitingGlass[0].map(rect => {  
      const scaleFactor =  1390/5190; 
      const scaleFactorY =  750/2800; 
@@ -304,20 +309,48 @@
onMounted(() => {
  initializeWebSocket(socketUrl, handleMessage);
});
function updateRectColorsa() {
function updateRectColorsa() {
  adjustedRectsa.value.forEach(rect => {  
    if (rect.glassId === glassId) {  
      rect.state = 8;
    }
  });  
}  
function updateRectColorsb() {
function updateoutColorsa() {
  adjustedRectsa.value.forEach(rect => {
    if (rect.glassId === glassId) {
      rect.state = 9;
    }
  });
}
function updateonColorsa() {
  adjustedRectsa.value.forEach(rect => {
    if (rect.glassId === glassId) {
      rect.state = 1;
    }
  });
}
function updateRectColorsb() {
  adjustedRectsb.value.forEach(rect => {  
    if (rect.glassId === glassId) {  
      rect.state = 8;
    }
  });  
}  
function updateoutColorsb() {
  adjustedRectsb.value.forEach(rect => {
    if (rect.glassId === glassId) {
      rect.state = 9;
    }
  });
}
function updateonColorsb() {
  adjustedRectsb.value.forEach(rect => {
    if (rect.glassId === glassId) {
      rect.state = 3;
    }
  });
}
function updateRectColors1() {  
  adjustedRects1.value.forEach(rect => {  
    if (rect.glassId === glassId) {  
@@ -335,13 +368,15 @@
function getRectColora(state) {  
  switch (state) {  
    case 0:  
      return '#7AC5CD';
    case 1:
      return '#7AC5CD';
    case 1:
      return '#95d475';
    case -1:
      return '#CDAF95';
    case 8:
      return '#911005';
    case -1:
      return '#CDAF95';
    case 8:
      return '#911005';
    case 9:
      return '#4682B4';
  }
}
function getRectColorb(state) {  
@@ -351,7 +386,9 @@
    case 4:  
      return '#CD6090';
    case 8:  
      return '#911005';
      return '#911005';
    case 9:
      return '#4682B4';
  }  
}
function showDialog1(rect) {
@@ -362,6 +399,12 @@
  currentGlassId.value = rect.glassId;  
  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
  blind1.value = true;  
  currentRect.value = rect;
  if (currentRect.value.state == 8) {
    canSelectProject1.value = false;
  } else if (currentRect.value.state !== 8) {
    canSelectProject1.value = true;
  }
function showDialog2(rect) {
  const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
@@ -371,6 +414,12 @@
  currentGlassId.value = rect.glassId;  
  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
  blind2.value = true;  
  currentRect.value = rect;
  if (currentRect.value.state == 8) {
    canSelectProject2.value = false;
  } else if (currentRect.value.state !== 8) {
    canSelectProject2.value = true;
  }
function showDialoga(rect) {
  const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);  
@@ -379,7 +428,23 @@
  }  
  currentGlassId.value = rect.glassId;  
  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
  blinda.value = true;
  blinda.value = true;
  currentRect.value = rect;
  if (currentRect.value.state == 8) {
    canSelectProjecta.value = false;
  } else if (currentRect.value.state !== 8) {
    canSelectProjecta.value = true;
  }
  if (currentRect.value.state == 9) {
    cantakea.value = false;
  } else if (currentRect.value.state !== 9) {
    cantakea.value = true;
  }
  if (currentRect.value.state == 1) {
    canona.value = false;
  } else if (currentRect.value.state == 0) {
    canona.value = true;
  }
function showDialogb(rect) {
  const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);  
@@ -389,6 +454,22 @@
  currentGlassId.value = rect.glassId;  
  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
  blindb.value = true;  
  currentRect.value = rect;
  if (currentRect.value.state == 8) {
    canSelectProjectb.value = false;
  } else if (currentRect.value.state !== 8) {
    canSelectProjectb.value = true;
  }
  if (currentRect.value.state == 9) {
    cantakeb.value = false;
  } else if (currentRect.value.state !== 9) {
    cantakeb.value = true;
  }
  if (currentRect.value.state == 3) {
    canonb.value = false;
  } else if (currentRect.value.state !== 3) {
    canonb.value = true;
  }
  const handleDialogClose1 = () => {  
  adjustedRects1.value.forEach(rect => {  
@@ -425,7 +506,7 @@
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      ElMessage.success('成功!');
      blind1.value = false;
      updateRectColors1();
    } else {
@@ -442,13 +523,12 @@
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    // temperingFeedSequence: currenttemperingFeedSequence.value,
    line: 4001,
    status: 8,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      ElMessage.success('成功!');
      blind2.value = false;
      updateRectColors2();
    } else {
@@ -461,17 +541,17 @@
    console.error(error);
  }
}
// 进炉前破损
const handleDamagea = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    // temperingFeedSequence: currenttemperingFeedSequence.value,
    line: 4001,
    status: 8,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      ElMessage.success('成功!');
      blinda.value = false;
      updateRectColorsa();
    } else {
@@ -484,19 +564,111 @@
    console.error(error);
  }
}
// 进炉前人工拿走
const takeouta = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    line: 4001,
    status: 9,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success('成功!');
      blinda.value = false;
      updateoutColorsa();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
}
catch (error) {
    // 处理错误
    console.error(error);
  }
}
// 进炉前放回
const takeona = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    line: 4001,
    status: 1,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success('成功!');
      blinda.value = false;
      updateonColorsa();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
}
catch (error) {
    // 处理错误
    console.error(error);
  }
}
// 已出炉破损
const handleDamageb = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    // temperingFeedSequence: currenttemperingFeedSequence.value,
    line: 4001,
    status: 8,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      ElMessage.success('成功!');
      blindb.value = false;
      updateRectColorsb();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
}
catch (error) {
    // 处理错误
    // console.error(error);
  }
}
// 已出炉人工拿走
const takeoutb = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    line: 4001,
    status: 9,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success('成功!');
      blindb.value = false;
      updateoutColorsb();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
}
catch (error) {
    // 处理错误
    // console.error(error);
  }
}
// 已出炉放回
const takeonb = async () => {
  try  {
  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
    glassId: currentGlassId.value,
    line: 4001,
    status: 3,
    workingProcedure: '钢化',
    })
    if (response.code == 200) {
      ElMessage.success('成功!');
      blindb.value = false;
      updateonColorsb();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -659,25 +831,42 @@
      </el-card>
   </el-card>
</div>
<!-- 进炉中 -->
<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
        <el-button type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 140px;margin-left: 10px;">
        <el-button :disabled="!canSelectProject1" type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 150px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
  </el-dialog>  
<el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
        <el-button type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 140px;margin-left: 10px;">
        <el-button :disabled="!canSelectProject2" type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 150px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
  </el-dialog>  
  <!-- 进炉前 -->
<el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
        <el-button type="warning" plain :icon="Delete" @click="handleDamagea"  style="width: 140px;margin-left: 10px;">
  <el-button type="warning" plain :icon="Delete" @click="handleDamagea" :disabled="!canSelectProjecta" style="width: 150px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
        <el-button :disabled="!cantakea" type="danger" plain @click="takeouta"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
          <el-icon class="el-icon--right"><Upload /></el-icon>
          {{ $t('order.takeaway') }}
        </el-button>
        <el-button type="success" plain :icon="Edit" @click="takeona" :disabled="!canona" style="width: 150px;margin-left: 10px;margin-top: 10px;">
          {{ $t('order.takeon') }}
        </el-button>
  </el-dialog>  
  <!-- 已出炉 -->
<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
        <el-button type="warning" plain :icon="Delete" @click="handleDamageb"  style="width: 140px;margin-left: 10px;">
        <el-button :disabled="!canSelectProjectb" type="warning" plain :icon="Delete" @click="handleDamageb"  style="width: 150px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
        <el-button :disabled="!cantakeb" type="danger" plain @click="takeoutb"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
          <el-icon class="el-icon--right"><Upload /></el-icon>
          {{ $t('order.takeaway') }}
        </el-button>
        <!-- <el-button type="success" plain :icon="Edit" @click="takeonb" :disabled="!canonb" style="width: 150px;margin-left: 10px;margin-top: 10px;">
          {{ $t('order.takeon') }}
        </el-button> -->
  </el-dialog> 
  <el-dialog  
      v-model="dialogVisible"
@@ -728,7 +917,7 @@
  border: 1px solid black;
  background-color:  #337ecc;
  display:flex;
    align-items:center;
    align-items:center;
    justify-content:center;
}
#home-card {
@@ -771,7 +960,7 @@
  }
  .rect {  
  border: 1px solid black; /* 设置矩形的边框 */  
  background-color: lightblue; /* 设置矩形的背景色 */
  /* background-color: lightblue; 设置矩形的背景色   */
#rect {  
  position: relative; /* 确保箭头可以相对于矩形定位 */  
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -11,7 +11,8 @@
const adjustedRects = ref([]);
const currentGlassId = ref(null);
const currenttemperingFeedSequence = ref(null);
const currentRect = ref(null);
const canSelectProject = ref(true);
const dialogFormVisible = ref(true)
const dialogFormVisiblea = ref(false)
const blind = ref(false)
@@ -108,7 +109,13 @@
  }  
  currentGlassId.value = rect.glassId;  
  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
  blind.value = true;
  blind.value = true;
  currentRect.value = rect;
  if (currentRect.value.state == 8) {
    canSelectProject.value = false;
  } else if (currentRect.value.state !== 8) {
    canSelectProject.value = true;
  }
}  
  
const handleDialogClose = () => {  
@@ -185,7 +192,7 @@
    </el-card>
    </div>
    <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
        <el-button type="warning" plain :icon="Delete" @click="handleDamage"  style="width: 140px;margin-left: 10px;">
        <el-button :disabled="!canSelectProject" type="warning" plain :icon="Delete" @click="handleDamage"  style="width: 140px;margin-left: 10px;">
          {{ $t('order.dilapidation') }}
        </el-button>
  </el-dialog>