From bbbe207791b13ad5781ec6fcffff23ec5d9f999e Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 13 三月 2025 14:43:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UI-Project/src/views/Returns/upreturns.vue | 394 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 286 insertions(+), 108 deletions(-)
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index 2ae509f..32b51cc 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -1,7 +1,7 @@
<script lang="ts" setup>
-import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed} from "vue";
import {useRouter} from "vue-router"
-import {ElMessage} from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
import {useI18n} from 'vue-i18n'
import {host, WebSocketHost} from '@/utils/constants'
import request from "@/utils/request"
@@ -16,20 +16,34 @@
const blind = ref(false)
const blinda = ref(false)
const blindb = ref(false)
-const dialoglea = ref(false)
+const blindbd = ref(false)
+const ReportData = ref(true);
+const canSelectProjecta = ref(true);
+const canSelectProjectb = ref(true);
+const canSelectProjectc = ref(false);
const tableDatax = ref([])
+const tableDatad = ref([])
const upstatus = ref(t('basicData.machineaa'));
const cuttingMachineStatusColor = ref('#911005');
const tableDataa = ref<any[]>([]);
const tableDatab = ref<any[]>([]);
+const stationInfos = reactive({});
+const buttonEnabledStatus = ref({});
+const globalDate = inject('globalDate');
+import { inject } from 'vue';
const tableData = ref([])
const titleSelectJson = ref({
engineerId: [],
})
-const handlezhiban = () => {
- dialoglea.value = true;
- fetchFlowCardId();
-};
+request.post("/loadGlass/up-patten-usage/setUpPattenRequest",{
+ state: null,
+ stationCell: 5
+}).then((response) => {
+ if (response.code == 200) {
+ } else {
+ // ElMessage.warning(response.msg)
+ }
+ });
const selectproject = () => {
dialogFormVisible.value = true;
selectgong();
@@ -54,24 +68,85 @@
try {
const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
if (response.code === 200) {
- tableData.splice(0, tableData.length, ...response.data);
- ElMessage.error(response.message);
- }
+ tableData.value = response.data
+ // tableData.splice(0, tableData.length, ...response.data);
+ // ElMessage.error(response.message);
+ window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
+}
} catch (error) {
+ // ElMessage.error(response.message);
}
};
let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/uploadGlass`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
const handleMessage = (data: any) => {
+ if (data.LoadOneState != null) {
+ cuttingMachineStatusColor.value = data.LoadOneState[0] == 1 ? 'green' : '#911005';
+ }
+ if (data.list!=null) {
tableDataa.value = data.list[0].slice(0, 2);
+ }else {
+ tableDataa.value = ''
+ }
+ if (data.stationOne != null) {
+ // data.stationOne[0].forEach(station => {
+ // stationInfos[station.slot] = {
+ // hasValidDimension: station.patternHeight !== null && station.patternHeight !== '' ||
+ // station.patternThickness !== null && station.patternThickness !== ''
+ // };
+ // console.log(station);
+ // console.log(stationInfos[station.slot]);
+
+ // });
+ data.stationOne[0].forEach((station) => {
+ stationInfos[station.patternHeight] = {
+ hasPatternHeight: station.patternHeight !== null && station.patternHeight !== '',
+ };
+ // buttonEnabledStatus.value[workstationId] = hasValidDimension;
+ console.log(station);
+ console.log(stationInfos[station.patternHeight]);
+});
+ }
+ // if (data.stationOne != null) {
+ // // 鍒濆鍖栨寜閽姸鎬佸璞�
+ // buttonEnabledStatus.value = {};
+ // data.stationOne[0].forEach((station, index) => {
+ // const workstationId = station.workstationId;
+ // const hasValidDimension = station.patternHeight !== null && station.patternHeight !== '' ||
+ // station.patternThickness !== null && station.patternThickness !== '';
+ // buttonEnabledStatus.value[workstationId] = hasValidDimension;
+ // console.log(station.workstationId);
+
+ // });
+ // }
+
+
+
+
+ if(data.loadTask1!=null){
+ tableData.value = data.loadTask1[0]
+ window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
+ canSelectProjecta.value = false;
+ canSelectProjectb.value = false;
+ canSelectProjectc.value = true;
+}
+else {
+ canSelectProjecta.value = true;
+ canSelectProjectb.value = true;
+ canSelectProjectc.value = false;
+ tableData.value = '';
+}
+};
+// 妫�鏌ユ寜閽槸鍚﹀彲鐢�
+// const isButtonEnabled = (slot: string) => {
+// return buttonEnabledStatus.value[slot] || false;
+// };
+const isButtonEnabled = (patternHeight: string) => {
+ return stationInfos[patternHeight]?.hasValidDimension ?? false;
};
onBeforeUnmount(() => {
closeWebSocket();
});
-// 鍒犻櫎
-const handledelete = (row) => {
- blindb.value = true;
-};
const requestData = {
state: 100
};
@@ -84,7 +159,7 @@
if (response.code == 200) {
titleSelectJson.value.engineerId = response.data;
} else {
- ElMessage.error(response.message);
+ // ElMessage.error(response.message);
}
} catch (error) {
console.error(error);
@@ -98,16 +173,18 @@
engineerId: selectedProjectNo.value,
filmRemove: parseInt(filmRemove.value, 10),
})
- window.localStorage.setItem('engineeringId', selectedProjectNo.value)
+ window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
window.localStorage.setItem('filmRemove', filmRemove.value)
if (response.code == 200) {
ElMessage.success(response.message);
+ closeWebSocket(socket);
tableData.value = response.data;
dialogFormVisible.value = false;
selectedProjectNo.value = '';
filmRemove.value = '';
markingMachineStatus.value = '#911005';
cuttingMachineStatus.value = '#911005';
+ ReportData.value = false;
} else {
ElMessage.error(response.message);
}
@@ -115,37 +192,11 @@
console.error(error);
}
}
-// 鍒犻櫎
-const deleteTask = async () => {
- try {
- let engineeringId = window.localStorage.getItem('engineeringId')
- console.log(engineeringId);
- if (engineeringId !== '') {
- const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
- engineerId: engineeringId,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blindb.value = false;
- } else {
- ElMessage.error(response.message);
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: t('basicData.infonull'),
- })
- }
-}
-catch (error) {
- console.error(error);
- }
-}
+
// 寮�濮嬩笂鐗�
const handleon = async () => {
let filmRemove = window.localStorage.getItem('filmRemove')
- let engineeringId = window.localStorage.getItem('engineeringId')
+ let engineeringId = window.localStorage.getItem('engineeringIda')
if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
try {
const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
@@ -155,9 +206,14 @@
state: 1,
})
if (response.code == 200) {
- ElMessage.success(response.message);
+ ElMessage.success(response.message);
+ canSelectProjecta.value = false;
+ canSelectProjectb.value = false;
+ canSelectProjectc.value = true;
+ socket = initializeWebSocket(socketUrl, handleMessage);
blind.value = false;
- } else {
+ ReportData.value = true;
+ } else {
ElMessage.error(response.message);
}
} catch (error) {
@@ -171,8 +227,7 @@
const handleup = async () => {
try {
let filmRemove = window.localStorage.getItem('filmRemove')
- let engineeringId = window.localStorage.getItem('engineeringId')
- console.log(engineeringId);
+ let engineeringId = window.localStorage.getItem('engineeringIda')
if (engineeringId !== '') {
const response = await request.post('/loadGlass/engineering/engineering/pause', {
stationCell: 5,
@@ -215,23 +270,6 @@
ElMessage.error(response.message);
}
};
-// 鍊肩彮淇℃伅
-const fetchFlowCardId = async () => {
- try {
- const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', {
- line: 2001,
- workingProcedure: '鍐峰姞宸�'
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- tableDatax.value = response.data;
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- console.error(error);
- }
-}
onMounted(fetchTableData);
// 寮�濮嬩笂鐗�
const handleBind = (row) => {
@@ -258,6 +296,140 @@
} catch (error) {
ElMessage.error(t('basicData.glassnull'));
}
+};
+// 鐮存崯
+const opena = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.broke'),
+ t('productStock.prompt'),
+ {
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+ glassId: row.glassId,
+ line: 5,
+ status: 1,
+ state: 8,
+ workingProcedure: '涓婄墖',
+ })
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+// 浜哄伐鎷胯蛋
+const openb = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('order.takeawaya'),
+ t('productStock.prompt'),
+ {
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+ glassId: row.glassId,
+ line: 5,
+ status: 1,
+ state: 9,
+ workingProcedure: '涓婄墖',
+ })
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+
+// 鏋跺瓙澶嶄綅
+const handleptask = async (workstationId: number) => {
+ console.log(workstationId);
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('basicData.prackreset'),
+ t('workOrder.prompt'),
+ {
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+
+ const slot = workstationId === 1 ? 101 : (workstationId === 2 ? 102 : null);
+ if (slot !== null) {
+ const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
+ slot: slot,
+ })
+ // const url = `/loadGlass/rawGlassStorageDetails/shelfReset?slot=${slot}`;
+ // const response = await request.post(url);
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+ } else {
+ }
+ }
+ } catch (error) {
+ }
+};
+// 缁撴潫宸ョ▼
+const deleteTask = async () => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.pdeleteTask'),
+ t('workOrder.prompt'),
+ {
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ let engineeringId = window.localStorage.getItem('engineeringIda')
+ if (engineeringId !== '') {
+ const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
+ engineerId: engineeringId,
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ canSelectProjecta.value = true;
+ canSelectProjectb.value = true;
+ canSelectProjectc.value = false;
+ blindb.value = true;
+ tableDatad.value = response.data;
+ } else {
+ ElMessage.error(response.message);
+ }
+ } else {
+ }
+ }
+ } catch (error) {
+ }
+};
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+ blindbd.value = true;
+ iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
};
function getStatusType2(filmRemove) {
switch (filmRemove) {
@@ -298,16 +470,12 @@
</el-button>
<div style="margin-left: 70px;">{{ upstatus }}</div>
<i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
- <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{
- $t('basicData.change')
- }}
- </el-button>
</div>
- <el-button style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="handledelete">{{ $t('searchOrder.deleteTask') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
+ <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+ <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+ <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+ <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
<el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
style="margin-top: 5px;margin-left: 20px;">
<el-option :label="$t('Mounting.all')" value="0"></el-option>
@@ -315,11 +483,11 @@
<el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
</el-select>
<el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
- <el-option :label="$t('Mounting.waiting')" value="1"></el-option>
- <el-option :label="$t('film.execution')" value="2"></el-option>
- <el-option :label="$t('film.finish')" value="3"></el-option>
+ <el-option :label="$t('Mounting.all')" value="null"></el-option>
+ <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
+ <el-option :label="$t('Mounting.pass')" value="100"></el-option>
</el-select>
- <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button>
+ <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button>
<el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
<el-table
@@ -333,11 +501,7 @@
<el-table-column prop="height" :label="$t('Mounting.height')" align="center"/>
<el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center"/>
<el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
- <el-table-column :label="$t('Mounting.projectnumber')" align="center">
- <template #default="{ row }">
- <span>{{ 1 }}</span>
- </template>
- </el-table-column>
+ <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center"/>
<el-table-column
align="center"
:label="$t('Mounting.state')"
@@ -353,7 +517,7 @@
</el-tag>
</template>
</el-table-column>
- </el-table>
+ </el-table>
</div>
</el-card>
<div style="display: flex;">
@@ -361,13 +525,18 @@
<div style="display: flex;">
<img src="../../assets/shangpianji.png" alt=""
style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
- <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 8%;"
+ <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" >
- <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60"/>
+ <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="50"/>
<el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
<el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
<el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
<el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/>
+ <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+ <template #default="scope">
+ <el-button size="mini" :disabled="!isButtonEnabled(scope.row.patternHeight)" type="text" plain @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
</div>
@@ -382,33 +551,31 @@
</div>
</template>
</el-dialog>
-
- <el-dialog v-model="blindb" top="30vh" width="25%" :title="$t('searchOrder.pdeleteTask')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="deleteTask">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="blindb = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
- <el-table ref="table" style="margin-top: 20px;height: 300px;"
- :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
- <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')"/>
- <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
- </el-table-column>
- <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
+<!-- 缁撴潫宸ョ▼ -->
+ <el-dialog v-model="blindb" top="10vh" width="80%">
+ <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')"/>
+ <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')"/>
+ <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')"/>
+ <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')"/>
+ <el-table-column prop="width" align="center" :label="$t('basicData.width')"/>
+ <el-table-column prop="height" align="center" :label="$t('basicData.height')"/>
+ <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')"/>
+ <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')"/>
+ <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')"/>
+ <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+ <el-button size="mini" type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
+ </template>
</el-table-column>
</el-table>
<template #footer>
<div id="dialog-footer">
- <el-button @click="dialoglea = false">{{ $t('large.close') }}</el-button>
+ <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
</div>
</template>
-</el-dialog>
+ </el-dialog>
<el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
<div style="margin-left: 50px;margin-bottom: 10px;">
<el-form-item :label="$t('Mounting.loadingline')" :required="true">
@@ -471,6 +638,17 @@
</div>
</template>
</el-dialog>
+ <!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindbd" top="10vh" width="90%">
+ <iframe
+ :src="iframeUrl"
+ marginwidth="2000px"
+ marginheight="2000px"
+ width="100%"
+ height="700px"
+ frameborder="0"
+ ></iframe>
+ </el-dialog>
</div>
</template>
<style scoped>
--
Gitblit v1.8.0