| | |
| | | <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;" > |
| | | <el-option :label="$t('reportmanage.all')" value="0"></el-option> |
| | | <el-option :label="$t('reportmanage.completed')" value="1"></el-option> |
| | | <el-option :label="$t('reportmanage.broke')" value="2"></el-option> |
| | | <el-option :label="$t('reportmanage.takeout')" value="3"></el-option> |
| | | <el-option :label="$t('reportmanage.broke')" value="8"></el-option> |
| | | <el-option :label="$t('reportmanage.takeout')" value="9"></el-option> |
| | | </el-select> |
| | | <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;" > |
| | | <el-option :label="$t('reportmanage.all')" value="0"></el-option> |
| | |
| | | </div> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> |
| | | <el-table height="540" ref="table" :data="reportData" |
| | | <el-table height="730" ref="table" :data="reportData" |
| | | :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> |
| | | <el-table-column prop="teamsGroupsName" align="center" :label="$t('reportmanage.reporteam')" min-width="120" /> |
| | | <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')" min-width="120" /> |
| | |
| | | <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180"> |
| | | <template #default="{ row }"> |
| | | <el-select |
| | | v-model="selectValuesa[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.pcausebreakage')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsa" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | v-model="selectValuesa[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.pcausebreakage')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsa" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')" min-width="180"> |
| | | <template #default="{ row }"> |
| | | <el-select |
| | | v-model="selectValuesb[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.ptypebreakage')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsb" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | v-model="selectValuesb[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.ptypebreakage')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsb" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120"> |
| | | <template #default="{ row }"> |
| | |
| | | <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')" min-width="180"> |
| | | <template #default="{ row }"> |
| | | <el-select |
| | | v-model="selectValuesc[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.presponsibleteam')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsc" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | v-model="selectValuesc[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.presponsibleteam')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsc" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" min-width="180"> |
| | | <template #default="{ row }"> |
| | | <el-select |
| | | v-model="selectValuesd[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.presponsibleequipment')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsd" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | v-model="selectValuesd[row.id]" |
| | | filterable |
| | | :placeholder="$t('reportmanage.presponsibleequipment')" |
| | | clearable |
| | | @input="handleInputChangea($event, row.id)" |
| | | > |
| | | <el-option |
| | | v-for="item in selectOptionsd" |
| | | :key="item.basicName" |
| | | :label="item.basicName" |
| | | :value="item.basicName" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="180"> |
| | | <template #default="{ row }"> |
| | |
| | | const selectValuesd = reactive({}); |
| | | const inputValuesa = reactive({}); |
| | | const inputValuesb = reactive({}); |
| | | |
| | | |
| | | // 查询数据 |
| | | const selectReportData = async () => { |
| | | const response = await request.post("/cacheVerticalGlass/damage/selectDamage", { |
| | |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | |
| | | const responses = await request.post("/cacheVerticalGlass/damage/insertDamage", { |
| | | glassId:"P24060403|3|6", |
| | | line:"2001", |
| | | workingProcedure:"冷加工", |
| | | remark:"", |
| | | status:"2" |
| | | }) |
| | | }; |
| | | // 报工 |
| | | const handleConfirm = async () => { |
| | |
| | | }; |
| | | fetchTableData(); |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`; |
| | | const handleMessage = (data) => { |
| | | // adjustedRects.value = data.device[0].map(rect => ({ |
| | | // ...rect, |
| | | // completed: rect.completedQuantity, |
| | | // breakage: rect.breakageQuantity, |
| | | // thisProcess: rect.thisProcess, |
| | | // })); |
| | | }; |
| | | // let socket; |
| | | onMounted(() => { |
| | | socket = new WebSocket(socketUrl); |
| | | socket.onmessage = (event) => { |
| | | const data = JSON.parse(event.data); |
| | | |
| | | // updateCharts(); |
| | | }; |
| | | // }; |
| | | }); |
| | | onUnmounted(() => { |
| | | socket.close(); |
| | | }); |
| | | onMounted(() => { |
| | | fetchTableData(); |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | |
| | | closeWebSocket(); |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped></style> |