From 2bdb422792a2c71e86fa19f4fdd2efda13ccbc62 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期三, 18 十二月 2024 16:49:46 +0800
Subject: [PATCH] 上片新增页面及逻辑,后端接口
---
UI-Project/src/views/Returns/upreturns2.vue | 269 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 184 insertions(+), 85 deletions(-)
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
index e66a82f..b78e6c0 100644
--- a/UI-Project/src/views/Returns/upreturns2.vue
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -1,7 +1,7 @@
<script lang="ts" setup>
import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} 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"
@@ -17,7 +17,11 @@
const blinda = ref(false)
const blindb = ref(false)
const dialoglea = ref(false)
+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[]>([]);
@@ -50,10 +54,6 @@
closeWebSocket(socket);
}
});
-// 鍒犻櫎
-const handledelete = (row) => {
- blindb.value = true;
-};
const fetchTableData = async () => {
try {
const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
@@ -65,13 +65,29 @@
}
};
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) => {
tableDataa.value = data.list[0].slice(2, 4);
+ if(data.loadTask2.length !=0){
+ tableData.value = data.loadTask2[0]
+ canSelectProjecta.value = false;
+ canSelectProjectb.value = false;
+ canSelectProjectc.value = true;
+}
+else {
+ canSelectProjecta.value = true;
+ canSelectProjectb.value = true;
+ canSelectProjectc.value = false;
+}
};
onBeforeUnmount(() => {
closeWebSocket();
});
+// 缁撴潫宸ョ▼
+const handledelete = (row) => {
+ blindb.value = true;
+ deleteTask()
+};
const requestData = {
state: 100
};
@@ -102,6 +118,7 @@
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 = '';
@@ -115,30 +132,7 @@
console.error(error);
}
}
-// 寮�濮嬩笂鐗�
-const handleon = async () => {
- let filmRemove = window.localStorage.getItem('filmRemove')
- let engineeringId = window.localStorage.getItem('engineeringId')
- if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
- try {
- const response = await request.post('/loadGlass/engineering/engineering/pause', {
- engineerId: engineeringId,
- state: 1,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blind.value = false;
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- console.error(error);
- }
- } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
- ElMessage.warning(t('basicData.pausea'));
- }
-}
-// 鍒犻櫎
+// 缁撴潫宸ョ▼
const deleteTask = async () => {
try {
let engineeringId = window.localStorage.getItem('engineeringId')
@@ -149,7 +143,10 @@
})
if (response.code == 200) {
ElMessage.success(response.message);
- blindb.value = false;
+ tableDatad.value = response.data;
+ canSelectProjecta.value = true;
+ canSelectProjectb.value = true;
+ canSelectProjectc.value = false;
} else {
ElMessage.error(response.message);
}
@@ -165,13 +162,45 @@
console.error(error);
}
}
+// 寮�濮嬩笂鐗�
+const handleon = async () => {
+ let filmRemove = window.localStorage.getItem('filmRemove')
+ let engineeringId = window.localStorage.getItem('engineeringId')
+ if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+ try {
+ const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+ stationCell: 6,
+ filmRemove: filmRemove,
+ engineerId: engineeringId,
+ state: 1,
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ canSelectProjecta.value = false;
+ canSelectProjectb.value = false;
+ canSelectProjectc.value = true;
+ // socket = initializeWebSocket(socketUrl, handleMessage);
+ blind.value = false;
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+ ElMessage.warning(t('basicData.pausea'));
+ }
+}
// 鏆傚仠
const handleup = async () => {
try {
+ let filmRemove = window.localStorage.getItem('filmRemove')
let engineeringId = window.localStorage.getItem('engineeringId')
console.log(engineeringId);
if (engineeringId !== '') {
const response = await request.post('/loadGlass/engineering/engineering/pause', {
+ stationCell: 6,
+ filmRemove: filmRemove,
engineerId: engineeringId,
state: 0,
})
@@ -254,6 +283,66 @@
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/insetDamage', {
+ glassId: row.glassId,
+ line: 6,
+ status: 1,
+ type: 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/insetDamage', {
+ glassId: row.glassId,
+ line: 6,
+ status: 1,
+ type: 9,
+ workingProcedure: '涓婄墖',
+ })
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
function getStatusType2(filmRemove) {
switch (filmRemove) {
case 0:
@@ -298,12 +387,13 @@
}}
</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 :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="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-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')" style="margin-top: 5px;margin-left: 20px;">
+ <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')"
+ style="margin-top: 5px;margin-left: 20px;">
<el-option :label="$t('Mounting.all')" value="0"></el-option>
<el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
<el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
@@ -316,25 +406,25 @@
<el-button 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
- height="400"
- ref="table"
- :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
- :data="tableData"
- >
- <el-table-column prop="layoutSequence" :label="$t('Mounting.project')" width="100" align="center"/>
- <el-table-column prop="engineeringId" :label="$t('Mounting.width')" width="200" align="center"/>
- <el-table-column prop="width" :label="$t('Mounting.height')" align="center"/>
- <el-table-column prop="height" :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
- align="center"
- :label="$t('Mounting.state')"
+ <el-table
+ height="400"
+ ref="table"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ :data="tableData"
+ >
+ <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="100" align="center"/>
+ <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center"/>
+ <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
+ align="center"
+ :label="$t('Mounting.state')"
min-width="80"
prop="state"
>
@@ -347,20 +437,7 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="filmsId" :label="$t('Mounting.createtime')" align="center"/>
- <el-table-column
- align="center"
- :label="$t('Mounting.removalmethodp')"
- prop="filmRemove"
- >
- <template #default="scope">
- <el-tag :type="getStatusType2(scope.row.filmRemove)">
- {{ getStatusText2(scope.row.filmRemove) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="stationCell" :label="$t('Mounting.loadinglinea')" align="center"/>
- </el-table>
+ </el-table>
</div>
</el-card>
<div style="display: flex;">
@@ -369,7 +446,7 @@
<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%;"
- :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ :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="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
<el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
@@ -389,7 +466,40 @@
</div>
</template>
</el-dialog>
-
+<!-- 缁撴潫宸ョ▼ -->
+ <el-dialog v-model="blindb" top="10vh" width="80%">
+ <el-table ref="table" style="margin-top: 20px;height: 300px;" :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="270">
+ <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="blindb = false">{{ $t('large.close') }}</el-button>
+ </div>
+ </template>
+ <!-- <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'}">
@@ -409,8 +519,7 @@
<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">
- <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
- style="margin-left: 20px;">
+ <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;">
<el-option :label="$t('Mounting.all')" value="0"></el-option>
<el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
<el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
@@ -469,25 +578,15 @@
</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>
</div>
</template>
<style scoped>
.flex-container {
display: flex;
- align-items: center; /* 鍨傜洿灞呬腑 */
+ align-items: center;
}
.flex-container .el-form-item {
- flex: 1; /* 浣挎瘡涓〃鍗曢」鍗犳嵁鐩哥瓑鐨勭┖闂� */
+ flex: 1;
margin-right: 0; /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */
}
.flex-container .el-form-item:last-child {
--
Gitblit v1.8.0