From 059083082a6d284821b70eb7bb6805763014c402 Mon Sep 17 00:00:00 2001 From: wujian <14790700720@163.com> Date: 星期六, 16 三月 2024 10:54:46 +0800 Subject: [PATCH] add PLC连接通信 add 扫码数据推送到前端 --- jcdm-ui/src/views/main/rm/repairData/index.vue | 535 +++++++++++++++++++++-------------------------------------- 1 files changed, 193 insertions(+), 342 deletions(-) diff --git a/jcdm-ui/src/views/main/rm/repairData/index.vue b/jcdm-ui/src/views/main/rm/repairData/index.vue index 082f05f..615dde7 100644 --- a/jcdm-ui/src/views/main/rm/repairData/index.vue +++ b/jcdm-ui/src/views/main/rm/repairData/index.vue @@ -1,398 +1,249 @@ <template> <div class="app-container"> - <el-card class ="box-card"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="杩斾慨鏍囪瘑" prop="repairIdentification"> - <el-input - v-model="queryParams.repairIdentification" - placeholder="璇疯緭鍏ヨ繑淇爣璇�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="绠变綋缂栫爜" prop="boxCode"> - <el-input - v-model="queryParams.boxCode" - placeholder="璇疯緭鍏ョ浣撶紪鐮�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item style="float: right"> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - </el-card> - <el-card style="margin-top: 10px" height="250" class="box-card"> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['rm:repairData:add']" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['rm:repairData:edit']" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['rm:repairData:remove']" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['rm:repairData:export']" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" border :data="repairRecordList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="杩斾慨鏍囪瘑" align="center" prop="repairIdentification" /> - <el-table-column label="绠变綋缂栫爜" align="center" prop="boxCode" /> - <el-table-column label="宸ュ簭缂栫爜" align="center" prop="processesCode" /> - <el-table-column label="鍘熺粨鏋�" align="center" prop="originalResult" /> - <el-table-column label="杩斾慨缁撴灉" align="center" prop="repairResults" /> - <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['rm:repairData:edit']" - >淇敼</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['rm:repairData:remove']" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> + <el-card class="box-card"> + <div class="headClass"> + <div style="display: flex;height: 20px"> + <div> + <span style="font-size: large; font-weight: bold; text-decoration: underline; margin-bottom: 10px">杩斾慨璁板綍鎶ヨ〃</span> + </div> + <div style="margin-left: 30%"> + <el-form :inline="true" :model="queryParams" class="myFrom" size="mini"> + <el-form-item label="杩斾慨鏍囪瘑"> + <el-input v-model="queryParams.repairIdentification" placeholder="杩斾慨鏍囪瘑"></el-input> + </el-form-item> + <el-form-item label="绠变綋缂栫爜"> + <el-input v-model="queryParams.boxCode" placeholder="绠变綋缂栫爜"> + </el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" @click="getList">鏌ヨ</el-button> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-download" style="background-color: #6dbf6d" @click="exportReport">瀵煎嚭鎶ヨ〃</el-button> + </el-form-item> + </el-form> + </div> + </div> + <div style="margin-top: 10px"> + <el-table + style="width: 100%;" + border height="190" + v-loading="loading" + highlight-current-row + :data="orderSchedulingList" + @selection-change="handleSelectionChange" + @current-change="handleCurrentChange"> + <el-table-column + type="index" + width="50"></el-table-column> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="杩斾慨鏍囪瘑" align="center" prop="repairIdentification" /> + <el-table-column label="绠变綋缂栫爜" align="center" prop="boxCode" /> + <el-table-column label="宸ュ簭缂栫爜" align="center" prop="processesCode" /> + <el-table-column label="鍘熺粨鏋�" align="center" prop="originalResult" /> + <el-table-column label="杩斾慨缁撴灉" align="center" prop="repairResults" /> + <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser" /> + </el-table> + </div> + </div> <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" - @pagination="getRepairRecordList" + @pagination="getMainList" /> </el-card> - <el-card style="margin-top: 10px" class="box-card"> - <el-tabs type="border-card" > - <el-tab-pane> - <span slot="label"> <a class="el-icon-date"></a>鎷х揣鏁版嵁</span> - <template> - <el-table v-loading="loading" border :data="repairDataList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="绠变綋缂栫爜" align="center" prop="boxCode"> - </el-table-column> - <el-table-column label="宸ヤ綅" align="center" prop="station"> - </el-table-column> - <el-table-column label="鎷х揣娆℃暟" align="center" prop="tightenFrequency"> - </el-table-column> - <el-table-column label="鎷х揣棰楁暟" align="center" prop="tightenPiecesNumber"> - </el-table-column> - <el-table-column label="鎵姏" align="center" prop="torqueForce"> - </el-table-column> - <el-table-column label="瑙掑害" align="center" prop="angle"> - </el-table-column> - <el-table-column label="缁撴灉" align="center" prop="result"> - <template slot-scope="scope"> - <dict-tag :options="dict.type.qualified_status" :value="scope.row.status"/> - </template> - </el-table-column> - <el-table-column label="淇濆瓨鏃堕棿" align="center" prop="boxCode"> - </el-table-column> - - </el-table> - </template> + <div> + <el-tabs type="border-card"> + <el-tab-pane> + <span slot="label"><i class="el-icon-date"></i>鎷х揣鏁版嵁</span> + <report1 :list1 = this.list1></report1> </el-tab-pane> <el-tab-pane> - <span slot="label"> <b class="el-icon-date"></b>鐩告満妫�娴�</span> - <el-empty > - <span slot="description">鏆傛棤鏁版嵁</span> - </el-empty> + <span slot="label"><i class="el-icon-date"></i>鐩告満妫�娴�</span> + <report2 :list2 = this.list2></report2> </el-tab-pane> <el-tab-pane> - <span slot="label"> <c class="el-icon-date"></c>澶栨紡妫�娴�</span> - <el-empty > - <span slot="description">鏆傛棤鏁版嵁</span> - </el-empty> + <span slot="label"><i class="el-icon-date"></i>澶栨紡妫�娴�</span> + <report3 :list3 = this.list3></report3> </el-tab-pane> <el-tab-pane> - <span slot="label"> <d class="el-icon-date"></d>鏈鸿酱鍔犳敞</span> - <el-empty > - <span slot="description">鏆傛棤鏁版嵁</span> - </el-empty> + <span slot="label"><i class="el-icon-date"></i>鏈烘补鍔犳敞</span> + <report4 :list4 = this.list4></report4> </el-tab-pane> <el-tab-pane> - <span slot="label"> <e class="el-icon-date"></e>宸ヤ綅缁撴灉</span> - <el-empty > - <span slot="description">鏆傛棤鏁版嵁</span> - </el-empty> + <span slot="label"><i class="el-icon-date"></i>宸ヤ綅缁撴灉</span> + <report5 :list5 = this.list5></report5> </el-tab-pane> </el-tabs> - </el-card> - - - - <!-- 娣诲姞鎴栦慨鏀硅繑淇暟鎹璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="鎬绘垚缂栫爜" prop="snCode"> - <el-input v-model="form.snCode" placeholder="璇疯緭鍏ユ�绘垚缂栫爜" /> - </el-form-item> - <el-form-item label="绠变綋缂栫爜" prop="boxCode"> - <el-input v-model="form.boxCode" placeholder="璇疯緭鍏ョ浣撶紪鐮�" /> - </el-form-item> - <el-form-item label="宸ュ簭缂栫爜" prop="processesCode"> - <el-input v-model="form.processesCode" placeholder="璇疯緭鍏ュ伐搴忕紪鐮�" /> - </el-form-item> - <el-form-item label="鎷х揣娆℃暟" prop="tightenFrequency"> - <el-input v-model="form.tightenFrequency" placeholder="璇疯緭鍏ユ嫥绱ф鏁�" /> - </el-form-item> - <el-form-item label="鎷х揣棰楁暟" prop="tightenPiecesNumber"> - <el-input v-model="form.tightenPiecesNumber" placeholder="璇疯緭鍏ユ嫥绱ч鏁�" /> - </el-form-item> - <el-form-item label="鎵姏" prop="torqueForce"> - <el-input v-model="form.torqueForce" placeholder="璇疯緭鍏ユ壄鍔�" /> - </el-form-item> - <el-form-item label="瑙掑害" prop="angle"> - <el-input v-model="form.angle" placeholder="璇疯緭鍏ヨ搴�" /> - </el-form-item> - <el-form-item label="缁撴灉" prop="result"> - <el-input v-model="form.result" placeholder="璇疯緭鍏ョ粨鏋�" /> - </el-form-item> - <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser"> - <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤虹敤鎴�" /> - </el-form-item> - <el-form-item label="鏇存柊鐢ㄦ埛" prop="updateUser"> - <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂扮敤鎴�" /> - </el-form-item> - <el-form-item label="澶囨敞" prop="remarks"> - <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" /> - </el-form-item> - <el-form-item label="棰勭暀瀛楁1" prop="spareField1"> - <el-input v-model="form.spareField1" placeholder="璇疯緭鍏ラ鐣欏瓧娈�1" /> - </el-form-item> - <el-form-item label="棰勭暀瀛楁2" prop="spareField2"> - <el-input v-model="form.spareField2" placeholder="璇疯緭鍏ラ鐣欏瓧娈�2" /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> + </div> </div> </template> <script> -import { listRepairRecord, getRepairRecord, delRepairRecord, addRepairRecord, updateRepairRecord } from "@/api/main/rm/repairRecord/repairRecord"; -import { listRepairData, getRepairData, delRepairData, addRepairData, updateRepairData } from "@/api/main/rm/repairData/repairData"; +import { listRepairRecord, getRepairData } from "@/api/main/rm/repairRecord/repairRecord"; +import {getFollowReport, listOrderScheduling} from "../../../../api/main/bs/orderScheduling/orderScheduling"; +import report1 from "../../da/followReport/report1"; +import report2 from "../../da/followReport/report2"; +import report3 from "../../da/followReport/report3"; +import report4 from "../../da/followReport/report4"; +import report5 from "../../da/followReport/report5"; export default { name: "RepairData", dicts: ['qualified_status'], + components: { report1, report2, report3, report4, report5,}, data() { return { - // 閬僵灞� - loading: true, - // 閫変腑鏁扮粍 - ids: [], - // 闈炲崟涓鐢� - single: true, - // 闈炲涓鐢� - multiple: true, - // 鏄剧ず鎼滅储鏉′欢 - showSearch: true, - // 鎬绘潯鏁� + loading: false, total: 0, - // 杩斾慨鏁版嵁琛ㄦ牸鏁版嵁 - repairDataList: [], - repairRecordList: [], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, + orderSchedulingList: [], + list1: [], + list2: [], + list3: [], + list4: [], + list5: [], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - snCode: null, + orderNo: null, boxCode: null, - processesCode: null, - tightenFrequency: null, - tightenPiecesNumber: null, - torqueForce: null, - angle: null, - result: null, + repairIdentification: null, + engineNo: null, + productType: null, + model: null, + productionStatus: null, + workingHours: null, + currentWorkstation: null, + qualityStatus: null, + whetherOrPrint: null, + report10: null, + report20: null, + combinedBoxTime: null, + finalAssemblyTime: null, + operator: null, + operateTime: null, + status: null, + spareField1: null, + spareField2: null, + spareField3: null, + spareField4: null, createUser: null, updateUser: null, remarks: null, - spareField1: null, - station: null, - spareField2: null + dateConditions: [], + engineNoList: [], + engineNoListExcel: [] }, - // 琛ㄥ崟鍙傛暟 - form: {}, - // 琛ㄥ崟鏍¢獙 - rules: { - id: [ - { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" } - ], - } - }; + multipleSelection: [], + multipleSelectionExcel: [], + currentRow: null + } }, + created() { - this.getList(); - this.getRepairRecordList(); + let workOrderNo = this.$route.query.workOrderNo; + this.queryParams.orderNo = workOrderNo + this.getMainList(); + this.getChildList(); }, methods: { - /** 鏌ヨ杩斾慨璁板綍鍒楄〃 */ - getRepairRecordList() { + toggleSelection(rows) { + if (rows) { + rows.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + } else { + this.$refs.multipleTable.clearSelection(); + } + }, + handleSelectionChange(val) { + this.multipleSelectionExcel = val; + console.log('MMMMM--',this.multipleSelectionExcel) + if (this.multipleSelectionExcel !== null && this.multipleSelectionExcel.length > 0){ + this.queryParams.engineNoListExcel = [] + this.multipleSelectionExcel.forEach(x => { + this.queryParams.engineNoListExcel.push(x.boxCode) + + }) + }else { + this.queryParams.engineNoListExcel = [] + } + console.log('this.handleSelectionChange ',this.queryParams.engineNoListExcel ) + }, + handleCurrentChange(val) { + this.currentRow = val; + //鏌ヨ閫変腑琛屾暟鎹� + this.queryParams.engineNoList = [] + this.queryParams.engineNoList.push(this.currentRow.boxCode) + this.getChildList() + console.log('handleCurrentChange',this.queryParams.engineNoList) + console.log('handleCurrentChange222',this.queryParams.engineNoListExcel) + }, + //瀵煎嚭 + exportReport(){ + if (this.queryParams.engineNoListExcel.length === 0){ + this.$message.error("璇峰嬀閫夐渶瑕佸鍑虹殑鏁版嵁") + }else { + this.queryParams.engineNoList = [] + this.download('rm/repairRecord/exportRepair', { + ...this.queryParams + }, `杩斾慨璁板綍鎶ヨ〃_${new Date().getTime()}.xlsx`) + } + + }, + /** 鏌ヨ璁㈠崟鎺掍骇鍒楄〃 */ + getMainList() { this.loading = true; + console.log(this.queryParams) listRepairRecord(this.queryParams).then(response => { - this.repairRecordList = response.rows; + this.orderSchedulingList = response.rows; this.total = response.total; this.loading = false; }); }, - /** 鏌ヨ杩斾慨鏁版嵁鍒楄〃 */ - getList() { - this.loading = true; - listRepairData(this.queryParams).then(response => { - this.repairDataList = response.rows; - this.total = response.total; - this.loading = false; + getChildList(){ + getRepairData(this.queryParams).then(response => { + this.list1 = response.data.list1; + console.log('list111111',this.list1) + this.list2 = response.data.list2; + this.list3 = response.data.list3; + this.list4 = response.data.list4; + this.list5 = response.data.list5; + }); }, - // 鍙栨秷鎸夐挳 - cancel() { - this.open = false; - this.reset(); - }, - // 琛ㄥ崟閲嶇疆 - reset() { - this.form = { - id: null, - snCode: null, - boxCode: null, - processesCode: null, - tightenFrequency: null, - tightenPiecesNumber: null, - torqueForce: null, - angle: null, - result: null, - createUser: null, - createTime: null, - updateTime: null, - updateUser: null, - remarks: null, - spareField1: null, - station: null, - spareField2: null - }; - this.resetForm("form"); - }, - /** 鎼滅储鎸夐挳鎿嶄綔 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 閲嶇疆鎸夐挳鎿嶄綔 */ - resetQuery() { - this.resetForm("queryForm"); - this.handleQuery(); - }, - // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { - this.ids = selection.map(item => item.id) - this.single = selection.length!==1 - this.multiple = !selection.length - }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "娣诲姞杩斾慨鏁版嵁"; - }, - /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { - this.reset(); - const id = row.id || this.ids - getRepairData(id).then(response => { - this.form = response.data; - this.open = true; - this.title = "淇敼杩斾慨鏁版嵁"; - }); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - this.$refs["form"].validate(valid => { - if (valid) { - if (this.form.id != null) { - updateRepairData(this.form).then(response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - addRepairData(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - const ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎杩斾慨鏁版嵁缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { - return delRepairData(ids); - }).then(() => { - this.getList(); - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - }).catch(() => {}); - }, - /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - this.download('rm/repairData/export', { - ...this.queryParams - }, `repairData_${new Date().getTime()}.xlsx`) + getList(){ + this.getMainList() + this.getChildList() } + // handleCurrentChange(val) { + // this.multipleSelection = val; + // console.log('this.multipleSelection ',this.multipleSelection ) + // } } }; </script> +<style scoped> +.headClass { + height: 200px; +} +::v-deep .el-table--scrollable-x .el-table__body-wrapper { + z-index: 3; +} +::v-deep .el-table__body-wrapper::-webkit-scrollbar { + height: 6px; +} +::v-deep .el-form .myFrom .el-form--inline{ + height: 20px; +} +::v-deep .el-card__body { + padding: 10px 15px 10px 15px; +} +.app-container{ + height: 625px; +} +</style> -- Gitblit v1.9.3