New file |
| | |
| | | <script lang="ts" setup> |
| | | import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed } from "vue"; |
| | | import { useRouter } from "vue-router" |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { useI18n } from 'vue-i18n' |
| | | import { host, WebSocketHost } from '@/utils/constants' |
| | | import request from "@/utils/request" |
| | | import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService'; |
| | | const router = useRouter() |
| | | const { t } = useI18n() |
| | | const selectValuesa = reactive([]); |
| | | const selectedProjectNo = ref(''); |
| | | const stationCell = ref('1'); |
| | | const filmRemove = ref(''); |
| | | const dialogFormVisible = ref(false) |
| | | const blind = ref(false) |
| | | const blinda = ref(false) |
| | | const ReportData = ref(true); |
| | | const blindb = ref(false) |
| | | const blindbd = ref(false) |
| | | const canSelectProjecta = ref(true); |
| | | const canSelectProjectb = ref(true); |
| | | const canSelectProjectc = ref(false); |
| | | const tableDatad = ref([]) |
| | | const upstatus = ref(t('basicData.machineaa')); |
| | | const cuttingMachineStatusColor = ref('#911005'); |
| | | const tableDataa = ref<any[]>([]); |
| | | const tableDatab = ref<any[]>([]); |
| | | const tableData = ref([]) |
| | | |
| | | const dialogFormVisiblea = ref(false) |
| | | |
| | | |
| | | const titleSelectJson = ref({ |
| | | engineerId: [], |
| | | }) |
| | | request.post("/loadGlass/up-patten-usage/setUpPattenRequest", { |
| | | state: null, |
| | | stationCell: 6 |
| | | }).then((response) => { |
| | | if (response.code == 200) { |
| | | } else { |
| | | // ElMessage.warning(response.msg) |
| | | } |
| | | }); |
| | | const selectproject = () => { |
| | | dialogFormVisible.value = true; |
| | | selectgong(); |
| | | }; |
| | | const markingMachineStatus = ref('#911005'); |
| | | const cuttingMachineStatus = ref('#911005'); |
| | | const confirmMarkingMachine = () => { |
| | | markingMachineStatus.value = 'green'; |
| | | }; |
| | | const confirmCuttingMachine = () => { |
| | | cuttingMachineStatus.value = 'green'; |
| | | }; |
| | | |
| | | //获取原片仓储信息 |
| | | let socketB = null; |
| | | const socketUrlB = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`; |
| | | |
| | | // 添加新的消息处理函数 |
| | | const handleMessageB = (data) => { |
| | | if (data.rawStationDetailsList != null) { |
| | | tableDatab.value = data.rawStationDetailsList[0]; |
| | | } |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | socketB = initializeWebSocket(socketUrlB, handleMessageB); |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | | closeWebSocket(socket); |
| | | } |
| | | if (socketB) { |
| | | closeWebSocket(socketB); |
| | | } |
| | | }); |
| | | const fetchTableData = async () => { |
| | | 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); |
| | | window.localStorage.setItem('engineeringIda', tableData[0].engineeringId) |
| | | } |
| | | } catch (error) { |
| | | } |
| | | }; |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`; |
| | | const handleMessage = (data: any) => { |
| | | if (data.inkageState != null) { |
| | | cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005'; |
| | | } |
| | | if (data.stationList.length != 0) { |
| | | const processedData = [...data.stationList[0]]; |
| | | if (processedData.length > 0) { |
| | | processedData[0] = { ...processedData[0], workstationId: 1 }; |
| | | } |
| | | if (processedData.length > 1) { |
| | | processedData[1] = { ...processedData[1], workstationId: 2 }; |
| | | } |
| | | tableDataa.value = processedData; |
| | | } else { |
| | | tableDataa.value = [] |
| | | } |
| | | if (data.upPattenUsages.length != 0) { |
| | | tableData.value = data.upPattenUsages[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 = []; |
| | | window.localStorage.setItem('engineeringIda', '') |
| | | } |
| | | }; |
| | | onBeforeUnmount(() => { |
| | | closeWebSocket(); |
| | | }); |
| | | // // 结束工程 |
| | | // const handledelete = (row) => { |
| | | // blindb.value = true; |
| | | // }; |
| | | // const requestData = { |
| | | // state: 100 |
| | | // }; |
| | | // const selectgong = async (queryString: string) => { |
| | | // try { |
| | | // const response = await request.post('/up-patten-usage/deleteTask', { |
| | | // ...requestData, |
| | | // query: queryString |
| | | // }); |
| | | // if (response.code == 200) { |
| | | // titleSelectJson.value.engineerId = response.data; |
| | | // } else { |
| | | // ElMessage.error(response.message); |
| | | // } |
| | | // } catch (error) { |
| | | // console.error(error); |
| | | // } |
| | | // }; |
| | | // 架子复位 |
| | | const handleptask = async (workstationId: number) => { |
| | | 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 === 3 ? 103 : (workstationId === 4 ? 104 : null); |
| | | if (slot !== null) { |
| | | const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', { |
| | | slot: slot, |
| | | }) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } else { |
| | | } |
| | | } |
| | | } catch (error) { |
| | | } |
| | | }; |
| | | //选择工程预览确认 |
| | | // const handlesure = async () => { |
| | | // try { |
| | | // const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', { |
| | | // stationCell: 6, |
| | | // engineerId: selectedProjectNo.value, |
| | | // filmRemove: parseInt(filmRemove.value, 10), |
| | | // }) |
| | | // 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); |
| | | // } |
| | | // } catch (error) { |
| | | // console.error(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 handleBind = (row) => { |
| | | const quantity = inputQuantities.value[row.slot]; |
| | | if (!quantity) { |
| | | ElMessage.warning('请输入数量'); |
| | | return; |
| | | } |
| | | handleon(parseInt(row.slot), quantity); |
| | | }; |
| | | const inputQuantities = ref<{ [key: string]: string }>({}); // 用于存储输入数量 |
| | | const currentRow = ref(null); |
| | | |
| | | // 开始上片 |
| | | const handleon = async (slot: number, quantity: string) => { |
| | | try { |
| | | // 转换为整数 |
| | | const quantityNum = Number(quantity); |
| | | const slotNum = Number(slot); |
| | | |
| | | // 验证是否为有效整数 |
| | | if (!Number.isInteger(quantityNum) || !Number.isInteger(slotNum)) { |
| | | ElMessage.warning('数量和架位号必须是整数'); |
| | | return; |
| | | } |
| | | |
| | | const response = await request.post('/loadGlass/up-patten-usage/insertTask?quantity=' + quantityNum + '&slot=' + slotNum); |
| | | |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | blind.value = false; |
| | | dialogFormVisiblea.value = false; |
| | | inputQuantities.value[slot] = ''; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | console.error(error); |
| | | ElMessage.error('操作失败'); |
| | | } |
| | | }; |
| | | |
| | | // 暂停 |
| | | const handleup = async () => { |
| | | try { |
| | | let filmRemove = window.localStorage.getItem('filmRemove') |
| | | let engineeringId = window.localStorage.getItem('engineeringIda') |
| | | if (engineeringId !== '') { |
| | | const response = await request.post('/loadGlass/engineering/engineering/pause', { |
| | | stationCell: 6, |
| | | filmRemove: filmRemove, |
| | | engineerId: engineeringId, |
| | | state: 0, |
| | | }) |
| | | 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 selectReportData = async () => { |
| | | let stateList = [] |
| | | if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') { |
| | | if (selectValuesa[0] != "") { |
| | | stateList = [selectValuesa[0]]; |
| | | } |
| | | } |
| | | const response = await request.post("/loadGlass/up-patten-usage/setUpPattenRequest", { |
| | | state: selectValuesa[0], |
| | | stationCell: 6 |
| | | }) |
| | | if (response.code === 200) { |
| | | tableData.value = response.data; |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | }; |
| | | onMounted(fetchTableData); |
| | | |
| | | |
| | | // 暂停 |
| | | const handleBinda = (row) => { |
| | | blinda.value = true; |
| | | }; |
| | | const toggleEnableState = async (row: any) => { |
| | | if (!row.id) { |
| | | ElMessage.error(t('basicData.updatanull')); |
| | | return; |
| | | } |
| | | const newState = row.state === 100 ? 0 : 100; |
| | | try { |
| | | const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState }); |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | row.state = newState; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } 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: 6, |
| | | 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: 6, |
| | | status: 1, |
| | | state: 9, |
| | | workingProcedure: '上片', |
| | | }) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | ElMessage.error(response.msg); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | console.error('发生错误:', error); |
| | | } |
| | | }; |
| | | // 历史任务 |
| | | const iframeUrl = ref(''); |
| | | const handlehistorical = (row) => { |
| | | blindbd.value = true; |
| | | iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`; |
| | | }; |
| | | function getStatusType2(filmRemove) { |
| | | switch (filmRemove) { |
| | | case 0: |
| | | return 'success'; |
| | | case 1: |
| | | return 'info'; |
| | | case 2: |
| | | return 'warning'; |
| | | } |
| | | } |
| | | function getStatusText2(filmRemove) { |
| | | switch (filmRemove) { |
| | | case 0: |
| | | return t('Mounting.noremoval');//完成 |
| | | case 1: |
| | | return t('Mounting.coarselyground');//新建 |
| | | case 2: |
| | | return t('Mounting.finegrinding');//执行中 |
| | | } |
| | | } |
| | | |
| | | // 输入框限制 |
| | | const handleInput = (row) => { |
| | | const inputValue = parseInt(row.filmRemove); |
| | | const maxValue = row.remainQuantity; |
| | | if (inputValue > maxValue) { |
| | | row.filmRemove = maxValue; |
| | | } |
| | | }; |
| | | |
| | | // 架子数据对比 |
| | | const tableRowClassName = ({ |
| | | row, |
| | | }: { |
| | | row: any; |
| | | rowIndex: number |
| | | }) => { |
| | | // 直接获取第一条数据,然后判断状态 |
| | | const firstData = tableData.value[0]; |
| | | |
| | | // 如果第一条数据存在且状态不是100,进行比对 |
| | | if (firstData && firstData.state !== 100 && row && row.patternWidth) { |
| | | const isMatch = |
| | | row.patternWidth === firstData.width && |
| | | row.patternHeight === firstData.height && |
| | | row.patternThickness === firstData.thickness && |
| | | row.filmsId === firstData.filmsId; |
| | | |
| | | return !isMatch ? 'danger-row' : ''; |
| | | } |
| | | |
| | | return ''; |
| | | } |
| | | |
| | | // 删除任务 |
| | | const deleteWarehousing = async (row: any) => { |
| | | try { |
| | | // 确认提示 |
| | | await ElMessageBox.confirm( |
| | | t('basicData.deletemessage'), |
| | | t('sorter.prompt'), |
| | | { |
| | | confirmButtonText: t('basicData.confirm'), |
| | | cancelButtonText: t('basicData.cancel'), |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | |
| | | // 转换为整数 |
| | | const id = Number(row.id); |
| | | |
| | | const response = await request.post('/loadGlass/up-patten-usage/deleteTask?id=' + id); |
| | | |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | console.error(error); |
| | | // 如果是用户取消操作,不显示错误提示 |
| | | if (error !== 'cancel') { |
| | | ElMessage.error('删除失败'); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | <template> |
| | | <div style="height: 500px;"> |
| | | <div> |
| | | <div id="dotClass"> |
| | | <!-- <div>{{ $t('basicData.laserprinting') }}</div> |
| | | <i |
| | | :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.yes') |
| | | }} |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div> |
| | | <i |
| | | :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.yes') |
| | | }} |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ upstatus }}</div> |
| | | <i |
| | | :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | --> |
| | | </div> |
| | | <!-- <el-button :disabled="!canSelectProjecta" 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="primary" @click="dialogFormVisiblea = true">{{ |
| | | $t('basicData.startloading') }}</el-button> |
| | | <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' }"> |
| | | <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" /> |
| | | <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" /> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" /> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" /> |
| | | <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" /> |
| | | <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" /> |
| | | <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" /> |
| | | <el-table-column align="center" :label="$t('film.enablestate')" min-width="80" prop="state"> |
| | | <template #default="scope"> |
| | | <el-tag :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)"> |
| | | {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable') }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270"> |
| | | <template #default="scope"> |
| | | <el-input v-model="inputQuantities[scope.row.slot]" type="number" min="0" @input="handleInput(scope.row)" |
| | | :placeholder="$t('basicData.selectquantity')" :disabled="scope.row.slot > 100" style="width: 120px; margin-right: 10px;"> |
| | | </el-input> |
| | | <el-button type="text" :disabled="scope.row.slot > 100" @click="handleBind(scope.row)"> |
| | | {{ $t('basicData.startloading') }} </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <!--暂停--> |
| | | <el-button :disabled="!canSelectProjectc" 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="info" @click="handlehistorical">{{ |
| | | $t('searchOrder.historicaltasks') }}</el-button> |
| | | <!-- <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> |
| | | </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.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 :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;"> |
| | | <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="engineeringId" :label="$t('Mounting.project')" width="120" align="center" /> |
| | | <el-table-column prop="width" :label="$t('film.width')" width="200" align="center" /> |
| | | <el-table-column prop="height" :label="$t('film.height')" align="center" /> |
| | | <el-table-column prop="thickness" :label="$t('film.thickness')" align="center" /> |
| | | <el-table-column prop="filmsId" :label="$t('film.films')" align="center" /> |
| | | <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" /> |
| | | <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state"> |
| | | <template #default="scope"> |
| | | <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)"> |
| | | {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" :label="$t('film.operate')" min-width="80" prop="state"> |
| | | <template #default="scope"> |
| | | <el-button type="text" plain @click="deleteWarehousing(scope.row)">{{ |
| | | $t('film.delete') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | <!--架子--> |
| | | <div style="display: flex;"> |
| | | <div style="width: 49%;float: left;margin-left: 300px;"> |
| | | <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="margin-top: 10%;margin-left: 8%;" width="500" |
| | | :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }" :row-class-name="tableRowClassName"> |
| | | <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65" /> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75" /> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75" /> |
| | | <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" /> |
| | | <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" /> |
| | | <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')" |
| | | min-width="60" /> |
| | | <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100"> |
| | | <template #default="scope"> |
| | | <el-button :disabled="(!scope.row.patternThickness)" type="text" plain |
| | | @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 历史任务 --> |
| | | <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl = ''"> |
| | | <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')"> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleon"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 结束工程 --> |
| | | <!-- <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 type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button> |
| | | <el-button 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 type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button> |
| | | <el-button @click="blindb = false">{{ $t('large.close') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </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"> |
| | | <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> |
| | | </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="blinda = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | <el-dialog v-model="dialogFormVisible" top="24vh" width="70%"> |
| | | <div class="flex-container" 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')"> |
| | | <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option> |
| | | <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Mounting.projecta')" :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['engineerId']" :key="item.id" :label="item.projectNo" |
| | | :value="item.projectNo" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Mounting.removalmethoda')" :required="true"> |
| | | <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')"> |
| | | <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> |
| | | <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option> |
| | | <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handlesure"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <style scoped> |
| | | |
| | | :deep(.el-table .danger-row) { |
| | | background-color: var(--el-color-danger-light-9); |
| | | } |
| | | |
| | | .flex-container { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .flex-container .el-form-item { |
| | | flex: 1; |
| | | margin-right: 0; |
| | | /* 移除默认的右侧边距 */ |
| | | } |
| | | |
| | | .flex-container .el-form-item:last-child { |
| | | margin-left: 20px; |
| | | /* 为第二个表单项添加左侧边距 */ |
| | | } |
| | | |
| | | #dt { |
| | | display: block; |
| | | float: left; |
| | | line-height: 20px; |
| | | margin-left: 100px; |
| | | } |
| | | |
| | | #dta { |
| | | display: block; |
| | | float: left; |
| | | line-height: 20px; |
| | | margin-left: 80%; |
| | | } |
| | | |
| | | #dialog-footer { |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | |
| | | #dotClass { |
| | | display: flex; |
| | | margin-left: 20px; |
| | | size: 50px; |
| | | margin-top: 20px; |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |