| | |
| | | const dialogFormVisible = ref(false) |
| | | const blind = ref(false) |
| | | const blinda = ref(false) |
| | | const ReportData = ref(true); |
| | | const blindb = ref(false) |
| | | const dialoglea = ref(false) |
| | | const blindbd = ref(false) |
| | | const canSelectProjecta = ref(true); |
| | | const canSelectProjectb = ref(true); |
| | | const canSelectProjectc = ref(false); |
| | | const tableDatax = ref([]) |
| | | const tableDatad = ref([]) |
| | | const upstatus = ref(t('basicData.machineaa')); |
| | | const cuttingMachineStatusColor = ref('#911005'); |
| | | const tableDataa = ref<any[]>([]); |
| | | const tableDatab = ref<any[]>([]); |
| | | const tableData = ref([]) |
| | | const filteredData = computed(() => { |
| | | // applyFilters 函数应该在某处定义,用于根据当前筛选条件过滤数据 |
| | | return applyFilters(tableData, currentFilters); |
| | | }); |
| | | // 当前筛选条件,应该是一个响应式变量,用于存储用户选择的筛选值 |
| | | const currentFilters = ref<{ state?: string }>({}); |
| | | const filterTag = (value: string, row: any) => { |
| | | // return String(row.state) === value; |
| | | return row.state === value |
| | | }; |
| | | // 应用筛选条件的函数 |
| | | const applyFilters = (data: any[], filters: { state?: string }) => { |
| | | return data.filter(row => { |
| | | return (!filters.state || String(row.state) === filters.state); |
| | | }); |
| | | }; |
| | | const titleSelectJson = ref({ |
| | | engineerId: [], |
| | | }) |
| | | const handlezhiban = () => { |
| | | dialoglea.value = true; |
| | | fetchFlowCardId(); |
| | | }; |
| | | 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 response = await request.get("/loadGlass/up-patten-usage/prioritylist"); |
| | | if (response.code === 200) { |
| | | tableData.splice(0, tableData.length, ...response.data); |
| | | ElMessage.error(response.message); |
| | | // 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/loadGlass`; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassTwo`; |
| | | const handleMessage = (data: any) => { |
| | | tableDataa.value = data.list[0].slice(2, 4); |
| | | if(data.loadTask2.length !=0){ |
| | | // tableData.splice(0, tableData.length, ...data.loadTask2[0]); |
| | | tableData.value = data.loadTask2[0] |
| | | 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.inkageState != null) { |
| | | cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005'; |
| | | } |
| | | 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 { |
| | | tableData.value = ''; |
| | | tableData.value = []; |
| | | canSelectProjecta.value = true; |
| | | canSelectProjectb.value = true; |
| | | canSelectProjectc.value = false; |
| | |
| | | }; |
| | | // 架子复位 |
| | | const handleptask = async (workstationId: number) => { |
| | | console.log(workstationId); |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | t('basicData.prackreset'), |
| | |
| | | filmRemove.value = ''; |
| | | markingMachineStatus.value = '#911005'; |
| | | cuttingMachineStatus.value = '#911005'; |
| | | ReportData.value = false; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | |
| | | canSelectProjectc.value = true; |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | blind.value = false; |
| | | ReportData.value = true; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | |
| | | try { |
| | | let filmRemove = window.localStorage.getItem('filmRemove') |
| | | let engineeringId = window.localStorage.getItem('engineeringIda') |
| | | console.log(engineeringId); |
| | | if (engineeringId !== '') { |
| | | const response = await request.post('/loadGlass/engineering/engineering/pause', { |
| | | stationCell: 6, |
| | |
| | | ElMessage.error(response.message); |
| | | } |
| | | }; |
| | | // 值班信息 |
| | | const fetchFlowCardId = async () => { |
| | | try { |
| | | const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', { |
| | | line: 2001, |
| | | workingProcedure: '冷加工' |
| | | }) |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | tableDatax.value = response.data; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | console.error(error); |
| | | } |
| | | } |
| | | onMounted(fetchTableData); |
| | | // 开始上片 |
| | | const handleBind = (row) => { |
| | |
| | | glassId: row.glassId, |
| | | line: 6, |
| | | status: 1, |
| | | type: 8, |
| | | state: 8, |
| | | workingProcedure: '上片', |
| | | }) |
| | | if (response.code === 200) { |
| | |
| | | glassId: row.glassId, |
| | | line: 6, |
| | | status: 1, |
| | | type: 9, |
| | | state: 9, |
| | | workingProcedure: '上片', |
| | | }) |
| | | if (response.code === 200) { |
| | |
| | | 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: |
| | |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ upstatus }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.change') |
| | | }} |
| | | </el-button> |
| | | </div> |
| | | <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button> |
| | | <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button> |
| | | <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button> |
| | | <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> |
| | | <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" |
| | |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | :data="tableData" |
| | | > |
| | | <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="100" align="center"/> |
| | | <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="120" align="center"/> |
| | | <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center"/> |
| | | <el-table-column prop="height" :label="$t('Mounting.height')" align="center"/> |
| | | <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center"/> |
| | | <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/> |
| | | <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center"/> |
| | | <el-table-column |
| | | align="center" |
| | | prop="state" |
| | | :label="$t('Mounting.state')" |
| | | min-width="80" |
| | | :filters="[ |
| | | { text: t('Mounting.pass'), value: 100 }, |
| | | { text: t('Mounting.waiting'), value: 0 }, |
| | | ]" |
| | | :filter-method="filterTag" |
| | | filter-placement="bottom-end" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tag |
| | | 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)" |
| | | disable-transitions |
| | | > |
| | | {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <div style="display: flex;"> |
| | | <div style="width: 49%;float: left;margin-left: 300px;"> |
| | | <div style="width: 55%;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" |
| | | style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 3%;"> |
| | | <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="700" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" > |
| | | <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="50"/> |
| | | <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/> |
| | | <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/> |
| | | <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="number" align="center" :label="$t('basicData.quantity')" min-width="80"/> |
| | | <el-table-column fixed="right" :label="$t('film.operate')" align="center"> |
| | | <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 size="mini" type="text" plain @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button> |
| | | <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-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 size="mini" type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button> |
| | | <el-button size="mini" type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button> |
| | | <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> |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 值班信息 --> |
| | | <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')"> |
| | | <el-table ref="table" style="margin-top: 20px;height: 300px;" |
| | | :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/> |
| | | <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')"/> |
| | | <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')"> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button @click="dialoglea = 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"> |