From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 279 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 203 insertions(+), 76 deletions(-)
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index d3e6467..5a918af 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,23 +1,30 @@
<script setup>
-import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
-import {useRouter} from "vue-router"
-import {useI18n} from 'vue-i18n'
-import {ElMessage} from 'element-plus'
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref } from "vue";
+import { useRouter } from "vue-router"
+import { useI18n } from 'vue-i18n'
+import { ElMessage } from 'element-plus'
import request from "@/utils/request";
-import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
-import {host, WebSocketHost} from '@/utils/constants'
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+import { host, WebSocketHost } from '@/utils/constants'
import PrintFlow from "@/views/UnLoadGlass/PrintFlow.vue";
+import Landingindication from "./Landingindication.vue";
+import Landingindicationtwo from "./Landingindicationtwo.vue";
+import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue";
const router = useRouter()
-const {t} = useI18n()
+const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
const printLoading = ref(true)
const fullFlowCard = ref('')
const autoPrint = ref(false)
+const takeGlass = ref([])
+const scanGlass = ref([])
+
const dialogFormVisiblea = ref(false)
const dialogFormVisiblea2 = ref(false)
const dialogFormVisibleaDownGlass = ref(false)
+const dialogFormVisibleaDownGlasss = ref(false)
// 鏁版嵁
const loading = ref(false);
// 寮规鏄剧ず鎺у埗
@@ -34,10 +41,12 @@
const selectValuesa = reactive({});
const selectOptionsa = ref([]);
const dialogTableVisible = ref(false)
+const dialogTableVisible1 = ref(false)
const printFlowCardId = ref('')
const printLayer = ref('')
const now = new Date();
-const timeRange = ref([new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(23, 59, 59, 999))])
+const timeRange = ref([])
+const browser = ref(false)
const handleChange = async () => {
console.log("瑙﹀彂寮�鍏�")
@@ -60,7 +69,15 @@
console.error(error);
}
}
-
+const confirmBrowser = () => {
+ if (/chrome|chromium/i.test(navigator.userAgent) && !/edg/i.test(navigator.userAgent)) {
+ browser.value = true
+ } else if (/edg/i.test(navigator.userAgent)) {
+ browser.value = false
+ } else {
+ browser.value = false
+ }
+}
const handleInputChangea = (value, rowId) => {
// 鏇存柊瀵瑰簲琛岀殑 select 鍊�
@@ -85,7 +102,7 @@
if (response.code === 200) {
flowCardOptions.value = response.data.filter(item => item !== null)
- .map(item => ({flowcard_id: item.flow_card_id}));
+ .map(item => ({ flowcard_id: item.flow_card_id }));
console.log(flowCardOptions.value);
}
else {
@@ -105,7 +122,6 @@
flowCardId: firstPart,
layer: twoPart
});
- console.log(response)
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
console.log('缁戝畾鎴愬姛');
@@ -131,7 +147,7 @@
const handleBindRack2 = (row) => {
workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
- workFlowCard.value=row.flowCardId;
+ workFlowCard.value = row.flowCardId;
};
//娓呴櫎鍐呭
const handleclear = async () => {
@@ -146,8 +162,8 @@
console.log('娓呴櫎鎴愬姛');
ElMessage.success(response.message);
dialogFormVisiblea2.value = false;
- if(fullFlowCard.value==workFlowCard.value){
- fullFlowCard.value="";
+ if (fullFlowCard.value == workFlowCard.value) {
+ fullFlowCard.value = "";
}
} else if (response.code === 500) {
// 娓呴櫎澶辫触鐨勯�昏緫
@@ -189,7 +205,7 @@
// 鏇存柊 tableData 鐨勬暟鎹�
if (data.downGlassInfos != null) {
- downGlass.value = data.downGlassInfos[0][1];
+ downGlass.value = data.downGlassInfos[0];
}
if (data.engineerIdList != null) {
selectOptionsa.value = data.engineerIdList[0]
@@ -197,9 +213,31 @@
if (data.autoPrint != null) {
autoPrint.value = data.autoPrint[0];
}
+ if (data.takeGlass != null) {
+
+ takeGlass.value = data.takeGlass[0];
+ // takeGlass.value 鏄竴涓┖瀵硅薄
+ let width = takeGlass.value.width;
+ let height = takeGlass.value.height;
+ if (width < height) {
+ takeGlass.value.width = height;
+ takeGlass.value.height = width;
+ }
-
- if (fullFlowCard.value == ""&&autoPrint.value==true) {
+
+ }
+ if (data.scanGlass != null) {
+ scanGlass.value = data.scanGlass[0];
+ let width = scanGlass.value.width;
+ let height = scanGlass.value.height;
+ if (width < height) {
+ scanGlass.value.width = height;
+ scanGlass.value.height = width;
+ }
+ }
+
+ //鑷姩鎵撳嵃
+ if (fullFlowCard.value == "" && autoPrint.value == true && browser.value == true) {
for (let i = 0; i < tableData.length; i++) {
if (tableData[i].totalQuantity != 0) {
if (tableData[i].totalQuantity == tableData[i].racksNumber + tableData[i].otherNumber && fullFlowCard.value != tableData[i].flowCardId) {
@@ -213,7 +251,7 @@
}
}
}
- if(data.params!=null){
+ if (data.params != null) {
tableData.splice(0, tableData.length, ...data.params[0]);
}
@@ -221,6 +259,7 @@
};
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
+ confirmBrowser();//鑾峰彇娴忚鍣�
fetchFlowCardId();
fetchTableData(); // 鑾峰彇鏁版嵁
socket = initializeWebSocket(socketUrl, handleMessage);
@@ -291,11 +330,19 @@
printLayer.value = row.layer
dialogTableVisible.value = true;
setTimeout(() => {
- printFlowCard(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
+ printFlowCard();
dialogTableVisible.value = false;
- }, 1000);
- ;
+ }, 2000);
+}
+const open1 = async (row) => {
+ printFlowCardId.value = row.flowCardId;
+ printLayer.value = row.layer
+ dialogTableVisible1.value = true;
+ setTimeout(() => {
+ printFlowCard1();
+ //dialogTableVisible1.value = false;
+ }, 1000);
}
const printFlowCard = () => {
@@ -309,20 +356,65 @@
let content = doc.createElement("div");
content.id = printId;
+ // alert(/Chrome/.test(userAgent) && !/Edge/.test(userAgent));
+
+ // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+ let style = doc.createElement("style");
+ console.log("style1:" + style.innerHTML)
+ style.innerHTML =
+ "body>#" +
+ printId +
+ "{display:none;}@media print{" +
+ "@page {" +
+ " size: auto; " +
+ " margin: 10mm 5mm 10mm 5mm; " +
+ " }body>:not(#" +
+ printId +
+ "){display:none !important;}body>#" +
+ printId +
+ "{display:block;}#" +
+ printId +
+ "{display: block; padding: 0; margin: 0; width: 100%; position: absolute; top: 0; left: 0; height: 100vh; box-sizing: border-box;}} ";
+
+ content.innerHTML = el.outerHTML;
+ // // console.log("el.outerHTML", el.outerHTML);
+ body.appendChild(style);
+
+ // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+ // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+ body.appendChild(content);
+ setTimeout(() => {
+ window.print();
+ body.removeChild(content);
+ body.removeChild(style);
+ }, 20);
+}
+
+const printFlowCard1 = () => {
+ // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+ let el = document.getElementById("printFlowCard");
+ let doc = document;
+ let body = doc.body || doc.getElementsByTagName("body")[0];
+ let printId = "print-" + Date.now();
+
+ // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+ let content = doc.createElement("div");
+ content.id = printId;
+
// 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
let style = doc.createElement("style");
style.innerHTML =
- "body>#" +
- printId +
- "{display:none}@media print{" +
- "@page {" +
- " size: auto; " +
- " margin: 2mm 2mm 0mm 1mm; " +
- " }body>:not(#" +
- printId +
- "){display:none !important}body>#" +
- printId +
- "{display:block;padding-top:1px}}";
+ "body>#" +
+ printId +
+ "{display:none}@media print{" +
+ "@page {" +
+ " size: auto; " +
+ " margin: 2mm 2mm 2mm 2mm; " +
+ " }body>:not(#" +
+ printId +
+ "){display:none !important}body>#" +
+ printId +
+ "{display:block;padding-top:1px}}";
//
content.innerHTML = el.outerHTML;
// // console.log("el.outerHTML", el.outerHTML);
@@ -339,6 +431,8 @@
}
+
+
// beforeUnmount(() => {
// closeWebSocket();
// });
@@ -346,25 +440,28 @@
</script>
<template>
<div>
- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary"
- @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏
+ <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
+ @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏
</el-button>
- <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="autoPrint" class="mb-2" :inactive-text="$t('鑷姩鎵撳嵃')"
- @change="handleChange"/>
+ <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
+ @click="dialogFormVisibleaDownGlasss = true">浜哄伐涓嬬墖
+ </el-button>
+ <el-switch style="margin-top: 10px;margin-left: 15px;margin-bottom: 10px;" v-model="autoPrint" class="mb-2"
+ :inactive-text="$t('鑷姩鎵撳嵃')" @change="handleChange" />
<el-card style="flex: 1;" v-loading="loading">
<el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
- :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80"/>
+ <el-table height="350px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
<el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')"
- min-width="120"/>
- <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150"/>
+ min-width="120" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
<el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
- min-width="120"/>
- <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120"/>
- <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120"/>
- <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120"/>
+ min-width="120" />
+ <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
+ <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
+ <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
<!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
<el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
<el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
@@ -374,22 +471,22 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
+ <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="400">
<template #default="scope">
<el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
- @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}
+ @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}
</el-button>
<el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
}}</el-button>
- <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃</el-button>
+ <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃娴佺▼鍗�</el-button>
+ <el-button @click="open1(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃鏍囩</el-button>
</template>
</el-table-column>
</el-table>
</div>
- <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%"
- :title="$t('searchOrder.cageinformation')">
+ <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('钀芥灦淇℃伅')">
<el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable>
<el-option label="鍏ㄩ儴" value="0"></el-option>
<el-option label="1" value="1"></el-option>
@@ -399,41 +496,71 @@
<el-option label="5" value="5"></el-option>
<el-option label="6" value="6"></el-option>
<el-option label="7" value="7"></el-option>
- <el-option label="8" value="8"></el-option>
- <el-option label="9" value="9"></el-option>
- <el-option label="10" value="10"></el-option>
</el-select>
<el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable
- @input="handleInputChangea($event, row.id)">
- <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item"/>
+ @input="handleInputChangea($event, row.id)">
+ <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" />
</el-select>
<span class="demonstration">鏃堕棿娈�</span>
<el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
+ value-format="YYYY-MM-DD hh:mm:ss" end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker>
<el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
- $t('reportmanage.inquire')
- }}
+ $t('reportmanage.inquire')
+ }}
</el-button>
<el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
- :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
- <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80"/>
- <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80"/>
- <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80"/>
- <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120"/>
- <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150"/>
- <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120"/>
- <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120"/>
- <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120"/>
- <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120"/>
- <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120"/>
-
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
+ <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
+ <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
+ <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
+ <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
+ <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
+ <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
+ <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
</el-table>
</el-dialog>
+ <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
+ <div style="display:flex;justify-content: space-around;">
+ <el-card
+ style="display: flex; justify-content: center; align-items: center; width:800px; height: 800px;position: relative;">
+ <div
+ :style="{ width: takeGlass.width + 'px', height: takeGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (takeGlass.width > takeGlass.height ? takeGlass.width : takeGlass.height) + ')' }">
+ </div>
+ <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:170px;">
+ <div>浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅</div>
+ <div>{{ takeGlass.flowCardId }}</div>
+ <div>{{ takeGlass.layer }}</div>
+ <div>{{ takeGlass.glassId }}</div>
+ <div>{{ takeGlass.width }}</div>
+ <div>{{ takeGlass.height }}</div>
+ </div>
+ </el-card>
+ <el-card
+ style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
+ <div
+ :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
+
+ </div>
+ <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
+ <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
+ <div>{{ scanGlass.flowCardId }}</div>
+ <div>{{ scanGlass.layer }}</div>
+ <div>{{ scanGlass.glassId }}</div>
+ <div>{{ scanGlass.width }}</div>
+ <div>{{ scanGlass.height }}</div>
+
+ </div>
+ </el-card>
+ </div>
+ </el-dialog>
</el-card>
<!-- workstationId: '1',
workstationId: '1005',
@@ -463,7 +590,7 @@
<el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
<el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
<el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id"
- :value="item.flowcard_id"/>
+ :value="item.flowcard_id" />
</el-select>
</el-form-item>
</el-form>
@@ -490,12 +617,12 @@
</template>
</el-dialog>
- <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close style="width: 75%;height:75% ">
- <!-- <template #header="{ close, titleId, titleClass }">
- <el-button @click="printFlowCard" >鎵撳嵃</el-button>
- </template> -->
+ <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close>
<print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
- style="width: 100%;height: 100%"/>
+ style="width: 100%;height: 100%" />
+ </el-dialog>
+ <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close>
+ <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer" style="" />
</el-dialog>
</template>
--
Gitblit v1.8.0