| | |
| | | <script setup> |
| | | import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | import {host, WebSocketHost} from '@/utils/constants' |
| | | import request from "@/utils/request" |
| | | import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; |
| | | import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import { host, WebSocketHost } from '@/utils/constants' |
| | | import request from '@/utils/request' |
| | | import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService' |
| | | // import { ref } from 'vue' |
| | | import {ElMessage, ElMessageBox} from 'element-plus' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | // import LanguageMixin from './lang/LanguageMixin' |
| | | import {useI18n} from 'vue-i18n' |
| | | import { useI18n } from 'vue-i18n' |
| | | |
| | | const router = useRouter() |
| | | const adda = ref(false) |
| | | const {t} = useI18n() |
| | | const { t } = useI18n() |
| | | let language = ref(localStorage.getItem('lang') || 'zh') |
| | | |
| | | const tableData = ref([]) |
| | | const slot = ref('') |
| | | const requestData = { |
| | | line: 2001 |
| | | }; |
| | | line: 1, |
| | | } |
| | | const timeRange = ref([]) |
| | | const selectValuesa = reactive([]); |
| | | const selectValuesa = reactive([]) |
| | | // request.post("/cacheGlass/taskCache/selectEdgTask",{ |
| | | // ...requestData, |
| | | // ...requestData, |
| | | |
| | | // }).then((res) => { |
| | | // if (res.code == 200) { |
| | |
| | | let celllist = [] |
| | | let stateList = [] |
| | | if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') { |
| | | if (selectValuesa[0] != "") { |
| | | celllist = [selectValuesa[0]]; |
| | | if (selectValuesa[0] != '') { |
| | | celllist = [selectValuesa[0]] |
| | | } |
| | | } |
| | | if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') { |
| | | if (selectValuesa[1] != "") { |
| | | stateList = [selectValuesa[1]]; |
| | | if (selectValuesa[1] != '') { |
| | | stateList = [selectValuesa[1]] |
| | | } |
| | | } |
| | | console.log(timeRange.value[0], timeRange.value[1]); |
| | | const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", { |
| | | cellList: celllist, |
| | | stateList: stateList, |
| | | beginDate: timeRange.value[0], |
| | | endDate: timeRange.value[1], |
| | | }) |
| | | console.log(timeRange.value[0], timeRange.value[1]) |
| | | const response = await request.post( |
| | | '/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest', |
| | | { |
| | | cellList: celllist, |
| | | stateList: stateList, |
| | | beginDate: timeRange.value[0], |
| | | endDate: timeRange.value[1], |
| | | } |
| | | ) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | ElMessage.success(response.message) |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | ElMessage.error(response.message) |
| | | } |
| | | |
| | | } |
| | | |
| | | // 破损 |
| | | const open = async (row) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | t('workOrder.messagedamaged'), |
| | | t('workOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('workOrder.yes'), |
| | | cancelButtonText: t('workOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | t('workOrder.messagedamaged'), |
| | | t('workOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('workOrder.yes'), |
| | | cancelButtonText: t('workOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | if (confirmResult === 'confirm') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { |
| | | glassId: row.glassId, |
| | | state: 8, |
| | | line: row.line, |
| | | workingProcedure: '磨边', |
| | | }) |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const response = await request.post( |
| | | '/cacheGlass/edgStorageCage/edgReportStatus', |
| | | { |
| | | glassId: row.glassId, |
| | | state: 8, |
| | | line: row.line, |
| | | workingProcedure: '磨边', |
| | | } |
| | | ) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | ElMessage.success(response.message) |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | ElMessage.error(response.msg); |
| | | // alert('删除失败:' + deleteResponse.message); |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | ElMessage.error(response.msg) |
| | | // alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error); |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error) |
| | | } |
| | | }; |
| | | // 拿走 |
| | | } |
| | | // 拿走 |
| | | const opena = async (row) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | t('workOrder.takemessage'), |
| | | t('workOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('workOrder.yes'), |
| | | cancelButtonText: t('workOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | t('workOrder.takemessage'), |
| | | t('workOrder.prompt'), |
| | | { |
| | | confirmButtonText: t('workOrder.yes'), |
| | | cancelButtonText: t('workOrder.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | if (confirmResult === 'confirm') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { |
| | | glassId: row.glassId, |
| | | state: 9, |
| | | line: row.line, |
| | | workingProcedure: '磨边', |
| | | }) |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const response = await request.post( |
| | | '/cacheGlass/edgStorageCage/edgReportStatus', |
| | | { |
| | | glassId: row.glassId, |
| | | state: 9, |
| | | line: row.line, |
| | | workingProcedure: '磨边', |
| | | } |
| | | ) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | ElMessage.success(response.message) |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | ElMessage.error(response.msg); |
| | | // alert('删除失败:' + deleteResponse.message); |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | ElMessage.error(response.msg) |
| | | // alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error); |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error) |
| | | } |
| | | }; |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`; |
| | | } |
| | | let socket = null |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks` |
| | | // 定义消息处理函数,更新 receivedData 变量 |
| | | const handleMessage = (data) => { |
| | | // 更新 tableData 的数据 |
| | | tableData.value = data.edgTasks[0] |
| | | }; |
| | | } |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | }); |
| | | socket = initializeWebSocket(socketUrl, handleMessage) |
| | | }) |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | | closeWebSocket(socket); |
| | | closeWebSocket(socket) |
| | | } |
| | | }); |
| | | }) |
| | | onBeforeUnmount(() => { |
| | | console.log("关闭了") |
| | | closeWebSocket(); |
| | | }); |
| | | console.log('关闭了') |
| | | closeWebSocket() |
| | | }) |
| | | </script> |
| | | <template> |
| | | <div style="height: 500px;"> |
| | | <div> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> |
| | | <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" |
| | | v-loading="loading"> |
| | | <el-select v-model="selectValuesa[0]" |
| | | filterable |
| | | :placeholder="$t('workOrder.cway')" |
| | | clearable |
| | | style="margin-left: 20px;margin-bottom: 10px;"> |
| | | <el-option :label="$t('workOrder.edgingone')" value="2001"></el-option> |
| | | <el-option :label="$t('workOrder.edgingtwo')" value="2002"></el-option> |
| | | <el-option :label="$t('workOrder.edgingone')" |
| | | value="1"></el-option> |
| | | <el-option :label="$t('workOrder.edgingtwo')" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | |
| | | <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable |
| | | <el-select v-model="selectValuesa[1]" |
| | | filterable |
| | | :placeholder="$t('workOrder.cstate')" |
| | | clearable |
| | | style="margin-left: 20px;margin-bottom: 10px;"> |
| | | <el-option :label="$t('workOrder.nedging')" value="0"></el-option> |
| | | <el-option :label="$t('workOrder.edging')" value="1"></el-option> |
| | | <el-option :label="$t('workOrder.finedging')" value="2"></el-option> |
| | | <el-option :label="$t('workOrder.nedging')" |
| | | value="0"></el-option> |
| | | <el-option :label="$t('workOrder.edging')" |
| | | value="1"></el-option> |
| | | <el-option :label="$t('workOrder.finedging')" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span> |
| | | <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" |
| | | :start-placeholder="$t('reportmanage.starttime')" style="margin-left: 20px;margin-bottom: 10px;" |
| | | <span class="demonstration" |
| | | style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span> |
| | | <el-date-picker v-model="timeRange" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | :start-placeholder="$t('reportmanage.starttime')" |
| | | style="margin-left: 20px;margin-bottom: 10px;" |
| | | value-format="YYYY-MM-DD hh:mm:ss" |
| | | |
| | | :end-placeholder="$t('reportmanage.endtime')"> |
| | | </el-date-picker> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{ |
| | | <el-button type="primary" |
| | | style="margin-left: 10px;margin-bottom: 10px;" |
| | | @click="setEdgGlassInfoRequest()">{{ |
| | | $t('reportmanage.inquire') |
| | | }} |
| | | </el-button> |
| | | |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> |
| | | <el-table height="750" ref="table" |
| | | <el-table height="750" |
| | | ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180"/> |
| | | <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120"/> |
| | | <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80"/> |
| | | <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120"/> |
| | | <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120"/> |
| | | <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120"/> |
| | | <el-table-column prop="status" :label="$t('workOrder.status')" align="center" width="200"> |
| | | :data="tableData" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" |
| | | align="center" |
| | | :label="$t('workOrder.glassID')" |
| | | min-width="180" /> |
| | | <el-table-column prop="width" |
| | | align="center" |
| | | :label="$t('workOrder.width')" |
| | | min-width="120" /> |
| | | <el-table-column prop="height" |
| | | align="center" |
| | | :label="$t('workOrder.height')" |
| | | min-width="80" /> |
| | | <el-table-column prop="thickness" |
| | | align="center" |
| | | :label="$t('workOrder.thickness')" |
| | | min-width="120" /> |
| | | <el-table-column prop="glassType" |
| | | align="center" |
| | | :label="$t('workOrder.glasstype')" |
| | | min-width="120" /> |
| | | <el-table-column prop="line" |
| | | align="center" |
| | | :label="$t('workOrder.line')" |
| | | min-width="120" /> |
| | | <el-table-column prop="status" |
| | | :label="$t('workOrder.status')" |
| | | align="center" |
| | | width="200"> |
| | | <template #default="scope"> |
| | | {{ scope.row.status == 0 ? "未磨边" : scope.row.status == 1 ? "磨边中" : "已磨边" }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200"> |
| | | <el-table-column fixed="right" |
| | | :label="$t('workOrder.operate')" |
| | | align="center" |
| | | width="200"> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="open(scope.row)">{{ |
| | | <el-button size="mini" |
| | | type="text" |
| | | plain |
| | | @click="open(scope.row)">{{ |
| | | $t('workOrder.breakage') |
| | | }} |
| | | </el-button> |
| | | <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ |
| | | <el-button size="mini" |
| | | type="text" |
| | | plain |
| | | @click="opena(scope.row)">{{ |
| | | $t('workOrder.takeout') |
| | | }} |
| | | </el-button> |