From be23ab353c618c254ed81a79f6e9175cb953e69e Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 27 十二月 2024 16:35:16 +0800
Subject: [PATCH] 卧式缓存入参,上片模块结束工程逻辑更改,钢化模块删除拿走打印功能,中空新增二线
---
UI-Project/src/views/Caching/cachingun.vue | 7
UI-Project/src/views/Returns/upreturns.vue | 11
UI-Project/src/views/Returns/upreturns2.vue | 3
UI-Project/src/views/Caching/cachingbefore.vue | 10
UI-Project/src/lang/en.js | 3
UI-Project/src/lang/py.js | 3
UI-Project/src/lang/zh.js | 3
UI-Project/src/router/index.js | 5
UI-Project/src/views/hollow/hollowequipment.vue | 62 ++++
UI-Project/src/views/hollow/hollowequipmenttwo.vue | 608 +++++++++++++++++++++++++++++++++++++++++++
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 75 -----
11 files changed, 698 insertions(+), 92 deletions(-)
diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index b624738..f849d93 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -673,6 +673,9 @@
finegrinding: '绮剧(',
},
hellow: {
+ stopproject: '鏆傚仠浠诲姟',
+ pstopproject: '鏄惁鏆傚仠浠诲姟锛�',
+ reviewproject: '棰勮宸ョ▼',
line: '绾胯矾',
line1: '绾胯矾涓�',
line2: '绾胯矾浜�',
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
index 26b65e8..4f42840 100644
--- a/UI-Project/src/lang/py.js
+++ b/UI-Project/src/lang/py.js
@@ -673,6 +673,9 @@
finegrinding: '绮剧(',
},
hellow: {
+ stopproject: '鏆傚仠浠诲姟',
+ pstopproject: '鏄惁鏆傚仠浠诲姟锛�',
+ reviewproject: '棰勮宸ョ▼',
line: '绾胯矾',
line1: '绾胯矾涓�',
line2: '绾胯矾浜�',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 237d7f1..a282456 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -673,6 +673,9 @@
finegrinding: '绮剧(',
},
hellow: {
+ stopproject: '鏆傚仠浠诲姟',
+ pstopproject: '鏄惁鏆傚仠浠诲姟锛�',
+ reviewproject: '棰勮宸ョ▼',
line: '绾胯矾',
line1: '绾胯矾涓�',
line2: '绾胯矾浜�',
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 6b71a6e..69065cc 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -284,6 +284,11 @@
component: () => import('../views/hollow/hollowequipment.vue')
},
{
+ path: '/hollow/hollowequipmenttwo',
+ name: 'hollowequipmenttwo',
+ component: () => import('../views/hollow/hollowequipmenttwo.vue')
+ },
+ {
path: '/hollow/hollowslicecage',
name: 'hollowslicecage',
component: () => import('../views/hollow/hollowslicecage.vue')
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 9755b78..38b9516 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -15,6 +15,7 @@
const selectValuesa = reactive([]);
const timeRange = ref([])
const taskState = ref('')
+const taskStat = ref('')
const taskType = ref('')
const glassId = ref('')
const blindb = ref(false)
@@ -68,10 +69,9 @@
startTime: timeRange.value[0] || '',
endTime: timeRange.value[1] || '',
glassId: glassId.value || '',
- taskState: taskState.value || '',
+ taskState: taskStat.value,
taskType: taskType.value || ''
};
-
// 鏋勫缓鏌ヨ瀛楃涓�
const queryString = new URLSearchParams(params).toString();
const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`;
@@ -189,7 +189,7 @@
const optionsa = [
{
value: 0,
- label: t('searchOrder.empty'),
+ label: t('hellow.starttask'),
},
{
value: 1,
@@ -241,7 +241,7 @@
function getStatusTextb(taskState) {
switch (taskState) {
case 0:
- return t('searchOrder.empty');
+ return t('hellow.starttask');
case 1:
return t('searchOrder.endtask');
}
@@ -379,7 +379,7 @@
:placeholder="$t('searchOrder.taskstatus')"
clearable
style="width: 270px;margin-left: 10px;"
- v-model="taskState">
+ v-model="taskStat">
<el-option
v-for="item in optionsa"
:key="item.value"
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 62100c6..a097d9c 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -68,10 +68,9 @@
startTime: timeRange.value[0] || '',
endTime: timeRange.value[1] || '',
glassId: glassId.value || '',
- taskState: taskState.value || '',
+ taskState: taskState.value,
taskType: taskType.value || ''
};
-
// 鏋勫缓鏌ヨ瀛楃涓�
const queryString = new URLSearchParams(params).toString();
const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`;
@@ -189,7 +188,7 @@
const optionsa = [
{
value: 0,
- label: t('searchOrder.empty'),
+ label: t('hellow.starttask'),
},
{
value: 1,
@@ -241,7 +240,7 @@
function getStatusTextb(taskState) {
switch (taskState) {
case 0:
- return t('searchOrder.empty');
+ return t('hellow.starttask');
case 1:
return t('searchOrder.endtask');
}
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 0b01439..344292b 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -11,7 +11,6 @@
const dialogFormVisible = ref(false)
const dialogFormVisiblea = ref(true)
const dialogFormVisibleb = ref(false)
-const dialogFormVisiblec = ref(false)
const blind1 = ref(false)
const blind2 = ref(false)
const blinda = ref(false)
@@ -53,42 +52,6 @@
} catch (error) {
}
});
-const selectReportData = async () => {
- let postData = {
- type: 9,
- workingProcedure: '閽㈠寲',
- ...(engineerId.value !== '' && { engineerId: engineerId.value }),
- };
- const response = await request.post("/loadGlass/damage/selectDamagePrint", postData)
- if (response.code === 200) {
- tableData.value = response.data;
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
-};
-const printing = async () => {
- let postData = {
- type: 9,
- workingProcedure: '閽㈠寲',
- ...(engineerId.value !== '' && { engineerId: engineerId.value }),
- };
- const response = await request.post("/loadGlass/damage/selectDamagePrintDetails", postData)
- if (response.code === 200) {
- dialogVisible.value = true;
- tableData.value = response.data;
- await nextTick();
- // 寤舵椂 2 绉掑悗鎵撳嵃锛堟椂闂村彲浠ユ牴鎹渶瑕佽皟鏁达級
- setTimeout(() => {
- window.print();
- }, 2000);
-} else {
- ElMessage.error(response.message);
- }
-};
-const printTable = () => {
- window.print();
-};
// 鏂规硶瀹氫箟
function handlePageChange(page: number) {
currentPage.value = page;
@@ -901,20 +864,16 @@
<div style="height: 500px;">
<div style="margin-top: 10px;">
<el-button style="margin-left: 15px;" id="searchButton" type="primary"
- @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;dialogFormVisiblec = false;">
+ @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;">
{{ $t('processCard.beforefurnace') }}
</el-button>
<el-button style="margin-left: 15px;" id="searchButton" type="primary"
- @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;dialogFormVisiblec = false;">
+ @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">
{{ $t('processCard.intofurnace') }}
</el-button>
<el-button id="searchButton" type="success"
- @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;dialogFormVisiblec = false;">
+ @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;">
{{ $t('processCard.outfurnace') }}
- </el-button>
- <el-button id="searchButton" type="info"
- @click="dialogFormVisiblec = true;dialogFormVisibleb = false;dialogFormVisible = false;dialogFormVisiblea = false">
- {{ $t('processCard.print') }}
</el-button>
<div v-if="dialogFormVisible">
<!-- 杩涚倝涓彸 -->
@@ -1042,34 +1001,6 @@
</div>
</el-scrollbar>
</div>
- </el-card>
-</div>
-<div v-if="dialogFormVisiblec">
- <!-- 鎵撳嵃 -->
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
- <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;">
- <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/>
- <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button>
- <el-button type="info" style="margin-left: 10px;" @click="printing()">{{ $t('processCard.printing') }}</el-button>
- </div>
- <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="600"
- ref="table"
- :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
- :data="tableData"
- >
- <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/>
- <el-table-column prop="temperingLayoutId" :label="$t('processCard.layoutID')" align="center"/>
- <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center"/>
- <el-table-column prop="glassId" :label="$t('processCard.glassID')" align="center"/>
- <el-table-column prop="width" :label="$t('processCard.width')" align="center"/>
- <el-table-column prop="height" :label="$t('processCard.height')" align="center"/>
- <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center"/>
- </el-table>
- </div>
- </el-card>
</el-card>
</div>
<!-- 杩涚倝涓� -->
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index 67f9075..3e74879 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -86,7 +86,6 @@
// 缁撴潫宸ョ▼
const handledelete = (row) => {
blindb.value = true;
- deleteTask()
};
const requestData = {
state: 100
@@ -147,6 +146,7 @@
canSelectProjecta.value = true;
canSelectProjectb.value = true;
canSelectProjectc.value = false;
+ blindb.value = false;
} else {
ElMessage.error(response.message);
}
@@ -487,17 +487,10 @@
</el-table>
<template #footer>
<div id="dialog-footer">
+ <el-button type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button>
<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')">
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
index c31c494..2a612b1 100644
--- a/UI-Project/src/views/Returns/upreturns2.vue
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -86,7 +86,6 @@
// 缁撴潫宸ョ▼
const handledelete = (row) => {
blindb.value = true;
- deleteTask()
};
const requestData = {
state: 100
@@ -147,6 +146,7 @@
canSelectProjecta.value = true;
canSelectProjectb.value = true;
canSelectProjectc.value = false;
+ blindb.value = false;
} else {
ElMessage.error(response.message);
}
@@ -487,6 +487,7 @@
</el-table>
<template #footer>
<div id="dialog-footer">
+ <el-button type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button>
<el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
</div>
</template>
diff --git a/UI-Project/src/views/hollow/hollowequipment.vue b/UI-Project/src/views/hollow/hollowequipment.vue
index 24392bd..23f1df8 100644
--- a/UI-Project/src/views/hollow/hollowequipment.vue
+++ b/UI-Project/src/views/hollow/hollowequipment.vue
@@ -5,7 +5,10 @@
<el-button id="searchButton" type="success" @click="handlezhiban">
{{ $t('hellow.createtask') }}
</el-button>
- <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda">
+ <el-button type="success" @click="selectproject">
+ {{ $t('basicData.selectproject') }}
+ </el-button>
+ <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
{{ $t('hellow.starttask') }}
</el-button>
<el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindb">{{
@@ -229,6 +232,36 @@
</div>
</template>
</el-dialog>
+ <!-- 棰勮 -->
+ <el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('basicData.project')" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+ <el-select
+ v-model="selectedProjectNo"
+ filterable
+ clearable
+ :placeholder="$t('basicData.plselectproject')"
+ style="width: 220px"
+ @input="handleInputChange"
+ >
+ <el-option
+ v-for="item in titleSelectJson.processType"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleup">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
</template>
<script setup>
import {ElMessage} from 'element-plus'
@@ -247,6 +280,7 @@
const flowCard = ref('')
const cell = ref('')
const cella = ref('')
+const selectedProjectNo = ref('');
const ganghua = ref(true)
const totalPairQuantity = ref('')
const totalPairQuantitya = ref('')
@@ -254,8 +288,11 @@
const dialogFormVisibleb = ref(false)
const dialogFormVisiblec = ref(false)
const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
const currentPage2 = ref(1)
const currentRow = reactive({});
+const formattedProcessType = ref([]);
+const titleSelectJson = ref({ processType: [] });
const options = [
{
value: 930,
@@ -320,6 +357,11 @@
dialogFormVisiblea.value = true;
fetchFlowCardId();
};
+// 棰勮
+const selectproject = () => {
+ dialogFormVisiblee.value = true;
+ selectgong();
+};
// 缂虹墖璇︽儏
const handleBindRack = (row) => {
currentPage2.value = 1;
@@ -353,6 +395,24 @@
ElMessage.error('Error fetching data');
}
};
+// 宸ョ▼鍙�
+const selectgong = async () => {
+ try {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 931;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ const processTypes = response.data.map((projectNo, index) => ({
+ value: projectNo,
+ label: projectNo
+ }));
+ titleSelectJson.value.processType = processTypes;
+ } else {
+ ElMessage.error('Failed to fetch data');
+ }
+ } catch (error) {
+ ElMessage.error('Error fetching data');
+ }
+};
const parseData = (rawData) => {
return Object.keys(rawData).map(projectNumber => ({
projectNumber,
diff --git a/UI-Project/src/views/hollow/hollowequipmenttwo.vue b/UI-Project/src/views/hollow/hollowequipmenttwo.vue
new file mode 100644
index 0000000..8fe4c48
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -0,0 +1,608 @@
+<template>
+ <div style="height: 600px;">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading">
+ <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
+ <el-button id="searchButton" type="primary" @click="handlezhiban">
+ {{ $t('hellow.createtask') }}
+ </el-button>
+ <el-button type="primary" @click="selectproject">
+ {{ $t('hellow.reviewproject') }}
+ </el-button>
+ <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
+ {{ $t('hellow.starttask') }}
+ </el-button>
+ <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
+ $t('hellow.stopproject')
+ }}
+ </el-button>
+ <el-button style="margin-left: 10px;" id="searchButton" type="danger" @click="handleBindb">{{
+ $t('hellow.stoptask')
+ }}
+ </el-button>
+ <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('hellow.schedulingswitch')" @change="handleChange" />
+ </div>
+ <div style="margin-bottom: -5px;margin-left: 5px;">
+ <el-form>
+ <el-row>
+ <el-col :span="4">
+ <div id="dt" style="font-size: 15px;">
+ <el-form-item :label="$t('hellow.currenttask')" style="width: 14vw">
+ {{ temperingtotal }}
+ </el-form-item>
+ </div>
+ </el-col>
+ <el-col :span="5">
+ <div id="dta" style="font-size: 15px;">
+ <el-form-item :label="$t('hellow.claimednumber')" style="width: 14vw">
+ {{ glasstotal }}
+ </el-form-item>
+ </div>
+ </el-col>
+ <el-col :span="4">
+ <div id="dt" style="font-size: 15px;">
+ <el-form-item :label="$t('hellow.linenumber')" style="width: 14vw">
+ {{ fulltotals }}
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table height="650" ref="table" :data="tableDataa"
+ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }">
+ <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/>
+ <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+ <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+ <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+ <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+ <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+ <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+ <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+ <template #default="scope">
+ {{ scope.row.state == -1 ? "绛夊緟鍑虹墖" : "鍑虹墖瀹屾垚" }}
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+ <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
+ <el-pagination
+ background
+ size="large"
+ layout="prev, pager, next"
+ :total="30"
+ :current-page.sync="currentPage"
+ @current-change="handlePageChange1"
+ />
+ </div>
+ </div>
+ </el-card>
+ </div>
+ <!-- 鍒涘缓浠诲姟 -->
+ <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+ <el-table
+ ref="table"
+ style="margin-top: 20px; height: 700px;"
+ :data="tableDatab"
+ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+ row-key="projectNumber"
+ >
+ <!-- <el-table-column type="expand"> -->
+ <el-table-column>
+ <template #default="props">
+ <el-table :data="props.row.records" style="width: 100%">
+ <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/>
+ <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+ <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+ <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/>
+ <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/>
+ <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/>
+ <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/>
+ </el-table>
+ </template>
+ </el-table-column>
+ <el-table-column prop="projectNumber" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/>
+ <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{
+ $t('hellow.missingfilms')
+ }}
+ </el-button>
+ <el-button size="mini" type="text" plain @click="handleout(scope.row)">{{
+ $t('hellow.forcedfilming')
+ }}
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+</el-dialog>
+ <!-- 棰嗗彇浠诲姟 -->
+ <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
+ <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
+ <el-form-item :label="$t('hellow.pairQuantity')" :required="true" style="width: 25vw">
+ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+ <el-select
+ :placeholder="$t('hellow.croute')"
+ style="width: 270px"
+ v-model="cell">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="finisha">
+ {{ $t('reportWork.sure') }}
+ </el-button>
+ <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- 寮哄埗鍑虹墖 -->
+ <el-dialog v-model="dialogFormVisibled" top="21vh" width="40%" :title="$t('hellow.forcedfilming')">
+ <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
+ <el-form-item :label="$t('hellow.pairQuantity')" :required="true" style="width: 25vw">
+ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+ <el-select
+ :placeholder="$t('hellow.croute')"
+ style="width: 270px"
+ v-model="cella">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="finishb">
+ {{ $t('reportWork.sure') }}
+ </el-button>
+ <el-button @click="dialogFormVisibled = false">{{ $t('reportWork.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- 缂虹墖璇︽儏 -->
+ <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
+ <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
+ <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
+ {{ currentRow.projectNumber }}
+ </el-form-item>
+ </div>
+ <el-table ref="table" style="margin-top: 20px;height: 400px;"
+ :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+ <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+ <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/>
+ <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/>
+ <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
+ <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/>
+ <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
+ <div style="float: right;margin-bottom: 5px;">
+ <el-pagination layout="prev, pager, next" :total="50"/>
+ </div>
+ </el-table>
+ <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+ <el-pagination
+ background
+ size="large"
+ layout="prev, pager, next"
+ :total="30"
+ :current-page.sync="currentPage2"
+ @current-change="handlePageChange2"
+ />
+ </div>
+ </el-dialog>
+ <!-- 寮�濮嬩换鍔� -->
+ <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handlea">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- 鍋滄浠诲姟 -->
+ <el-dialog v-model="blindb" top="30vh" width="25%" :title="$t('hellow.pstoptask')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleb">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="blindb = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- 鏆傚仠浠诲姟 -->
+ <el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handlec">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- 棰勮 -->
+ <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+ <el-select
+ v-model="selectedProjectNo"
+ filterable
+ clearable
+ :placeholder="$t('basicData.plselectproject')"
+ style="width: 260px"
+ @input="handleInputChange"
+ >
+ <el-option
+ v-for="item in titleSelectJson.processType"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleup">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+</template>
+<script setup>
+import {ElMessage} from 'element-plus'
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+const blinda = ref(false)
+const blindb = ref(false)
+const blindc = ref(false)
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const allData = ref({})
+const flowCard = ref('')
+const cell = ref('')
+const cella = ref('')
+const selectedProjectNo = ref('');
+const ganghua = ref(true)
+const totalPairQuantity = ref('')
+const totalPairQuantitya = ref('')
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
+const currentPage2 = ref(1)
+const currentRow = reactive({});
+const formattedProcessType = ref([]);
+const titleSelectJson = ref({ processType: [] });
+const options = [
+ {
+ value: 930,
+ label: t('hellow.line1'),
+ },
+ {
+ value: 931,
+ label: t('hellow.line2'),
+ },
+ {
+ value: 932,
+ label: t('hellow.line3'),
+ }
+]
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlass`;
+const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1);
+watch(() => currentPage.value, (newVal) => {
+ window.localStorage.setItem('currentPage', newVal);
+});
+const currentPageKey = computed(() => `93${currentPage.value - 1}`);
+const handlePageChange1 = (newPage) => {
+ currentPage.value = newPage;
+ console.log(currentPage.value);
+};
+const handlePageChange2 = (newPage) => {
+ currentPage2.value = newPage;
+ console.log(currentPage2.value);
+ fetchFlowBind(currentRow.projectNumber, currentRow.layer, currentPage2.value);
+};
+const handleMessage = (data) => {
+ try {
+ const allPageData = data;
+ const currentPageKeyValue = currentPageKey.value;
+ const currentPageData = allPageData[currentPageKeyValue];
+ if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
+ tableDataa.value = currentPageData[0];
+ } else {
+ console.warn('No data for the current page key:', currentPageKeyValue);
+ }
+ } catch (error) {
+ console.error('Error parsing WebSocket message:', error);
+ }
+};
+onMounted(() => {
+ socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+});
+// 寮�濮嬩换鍔�
+const handleBinda = (row) => {
+ blinda.value = true;
+};
+// 鍋滄浠诲姟
+const handleBindb = (row) => {
+ blindb.value = true;
+};
+// 鏆傚仠浠诲姟
+const handleBindc = (row) => {
+ blindc.value = true;
+};
+const handlezhiban = () => {
+ dialogFormVisiblea.value = true;
+ fetchFlowCardId();
+};
+// 棰勮
+const selectproject = () => {
+ dialogFormVisiblee.value = true;
+ selectgong();
+};
+// 缂虹墖璇︽儏
+const handleBindRack = (row) => {
+ currentPage2.value = 1;
+ const { projectNumber, layer } = row;
+ currentRow.projectNumber = row.projectNumber;
+ dialogFormVisibleb.value = true;
+ fetchFlowBind(projectNumber, layer,currentPage2.value);
+};
+// 棰嗗彇浠诲姟
+const handletake = (row) => {
+ window.localStorage.setItem('flowCardId', row.projectNumber)
+ dialogFormVisiblec.value = true;
+};
+// 寮哄埗鍑虹墖
+const handleout = (row) => {
+ window.localStorage.setItem('flowCardId', row.projectNumber)
+ dialogFormVisibled.value = true;
+};
+// 鍒涘缓浠诲姟
+const fetchFlowCardId = async () => {
+ try {
+ const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard');
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ const newData = parseData(response.data);
+ tableDatab.value = newData;
+ } else {
+ ElMessage.error('Failed to fetch data');
+ }
+ } catch (error) {
+ ElMessage.error('Error fetching data');
+ }
+};
+// 宸ョ▼鍙�
+const selectgong = async () => {
+ try {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 931;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ const processTypes = response.data.map((projectNo, index) => ({
+ value: projectNo,
+ label: projectNo
+ }));
+ titleSelectJson.value.processType = processTypes;
+ } else {
+ ElMessage.error('Failed to fetch data');
+ }
+ } catch (error) {
+ ElMessage.error('Error fetching data');
+ }
+};
+// 棰勮
+const handleup = async () => {
+ try {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 931 + "&flowCardId=" + selectedProjectNo.value;
+ window.localStorage.setItem('flowCardId', selectedProjectNo.value)
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ tableDataa.value = response.data;
+ dialogFormVisiblee.value = false
+ selectedProjectNo.value = ''
+ } else {
+ ElMessage.error('Failed to fetch data');
+ }
+ } catch (error) {
+ ElMessage.error('Error fetching data');
+ }
+};
+const parseData = (rawData) => {
+ return Object.keys(rawData).map(projectNumber => ({
+ projectNumber,
+ records: rawData[projectNumber]
+ }));
+};
+const fetchFlowBind = async (flowCardId, layer, page) => {
+ try {
+ var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + layer;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ tableDatac.value = response.data[page];
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+}
+// 寮�濮嬩换鍔�
+const handlea = async () => {
+ try {
+ let flowCardId = window.localStorage.getItem('flowCardId')
+ if (flowCardId !== '') {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 931;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blinda.value = false;
+ } else {
+ ElMessage.error(response.message);
+ }
+ } else {
+ ElMessage({
+ type: 'info',
+ message: t('basicData.infonull'),
+ })
+ }
+ } catch (error) {
+ console.error(error);
+ }
+}
+// 缁撴潫浠诲姟
+const handleb = async () => {
+ try {
+ let flowCardId = window.localStorage.getItem('flowCardId')
+ if (flowCardId !== '') {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/finishTask?flowCardId="+flowCardId + "&cell=" + 931;
+ const response = await request.post(url)
+ 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 handlec = async () => {
+ try {
+ let flowCardId = window.localStorage.getItem('flowCardId')
+ if (flowCardId !== '') {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 931;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blindc.value = false;
+ } else {
+ ElMessage.error(response.message);
+ }
+ } else {
+ ElMessage({
+ type: 'info',
+ message: t('basicData.infonull'),
+ })
+ }
+ } catch (error) {
+ console.error(error);
+ }
+}
+// 棰嗗彇浠诲姟
+const finisha = async () => {
+ let flowCardId = window.localStorage.getItem('flowCardId')
+ try {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+cell.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ dialogFormVisiblec.value = false;
+ cell.value = '';
+ totalPairQuantity.value = '';
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ }
+// 寮哄埗鍑虹墖
+const finishb = async () => {
+ let flowCardId = window.localStorage.getItem('flowCardId')
+ try {
+ var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+cella.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ dialogFormVisibled.value = false;
+ cella.value = '';
+ totalPairQuantitya.value = '';
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ }
+// 璋冨害
+const handleChange = async () => {
+ try {
+ const body = {
+ flag: ganghua.value,
+ };
+
+ var url="/hollowGlass/hollowGlassOutRelationInfo/dispatchHollowSwitch?flag="+ganghua.value;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ ganghua.value = response.data
+ }else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ console.error(error);
+ }
+}
+onBeforeUnmount(() => {
+ console.log("鍏抽棴浜�")
+ closeWebSocket();
+});
+</script>
+<style scoped>
+#dialog-footer {
+ text-align: center;
+ margin-top: -15px;
+}</style>
\ No newline at end of file
--
Gitblit v1.8.0