From 254f5863bed7474f258e6829cc0a2a4f94989e1c Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 26 六月 2024 11:06:07 +0800 Subject: [PATCH] 修改/bug --- src/components/view/b1-inspection-order.vue | 197 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 192 insertions(+), 5 deletions(-) diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index b81c76c..d37f203 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -68,6 +68,31 @@ .el-form-item { margin-bottom: 16px; } + .box-card >>>.el-radio__inner { + border-radius: 2px !important; + } + .box-card >>>.el-radio__input.is-checked .el-radio__inner::after { + content: ''; + width: 8px; + height: 3px; + border: 1px solid white; + border-top: transparent; + border-right: transparent; + text-align: center; + display: block; + position: absolute; + top: 3px; + left: 2px; + transform: rotate(-45deg); + border-radius: 0px; + background: none; + } + >>>.el-radio__label{ + color: #000 !important; + } + >>>.el-radio__input.is-disabled.is-checked .el-radio__inner{ + background: #3A7BFA; + } </style> <template> @@ -77,6 +102,7 @@ <el-row class="title"> <el-col :span="12" style="padding-left: 20px;">妫�楠屼笅鍗�</el-col> <el-col :span="12" style="text-align: right;"> + <el-button size="medium" type="primary" @click="print">鏍囩鎵撳嵃</el-button> <el-button size="medium" type="primary" @click="playOrder(1)" v-if="addPower">涓嬪崟</el-button> </el-col> </el-row> @@ -229,19 +255,85 @@ <div style="width: 100%;height: 100%;" v-if="active >0"> <Add :active="active" :currentId="currentId" v-if="active<4" /> </div> + <el-dialog title="鏍囩鎵撳嵃" :visible.sync="printDialogVisible" width="40%" top="5vh"> + <div style="width:100%;height: 400px;overflow-y: auto;" v-loading="loadPint"> + <div class="dia_body"> + <el-checkbox + style="margin: 10px 5px;" + :indeterminate="isIndeterminate" + v-model="checkAll" + @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> + <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> + <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px; font-size: 16px !important;"> + <el-checkbox :label="i" :key="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox> + <div> + <el-row style="font-size: 14px;padding-left: 20px;"> + <el-col style="font-weight: bold;">{{ item.pName }}</el-col> + </el-row> + <div style="display: flex;"> + <div> + <el-col :span="8" :offset="4"> + <vueQr :text="JSON.stringify(item.sampleCode)" :size="140" :margin="2"></vueQr> + </el-col> + </div> + <div style="margin-left: 50px;width: 100%;"> + <el-row> + <el-col style="font-weight: bold;font-size: 14px;"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> + </el-row> + <el-row style="margin-top: 1px;font-size: 14px;"> + <el-col style="font-weight: bold;"><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col> + </el-row> + <el-row style="margin-top: 1px;font-size: 14px;"> + <el-col style="font-weight: bold;"><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col> + </el-row> + <el-row style="margin-top: 1px;font-size: 14px;"> + <el-col style="font-weight: bold;"><span>鏍峰搧鍚嶇О鍙�: </span>{{ item.sample }}</el-col> + </el-row> + <el-row style="margin-top: 1px;font-size: 14px;"> + <el-col style="font-weight: bold;"><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col> + </el-row> + <el-row style="margin-top: 3px;font-size: 14px;"> + <el-col style="font-weight: bold;display: flex;align-items: center;"><span>鏍峰搧鐘舵��: </span><el-radio-group :value="item.insState" style="margin-top: 7px;margin-left: 4px;" disabled> + <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">寰呮</el-radio> + <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">鍦ㄦ</el-radio> + <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">宸叉</el-radio> + </el-radio-group><el-radio :label="1" style="font-weight: bold;margin-top: 7px;" v-model="item.isLeave" disabled>鐣欐牱</el-radio></el-col> + </el-row> + </div> + </div> + </div> + </el-card> + </el-checkbox-group> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="printDialogVisible=false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitPrint" :loading="printLoading">鎵� 鍗�</el-button> + </el-row> + </span> + </el-dialog> </div> </template> <script> import ValueTable from '../tool/value-table.vue' import Add from '../do/b1-ins-order/add.vue' + import vueQr from 'vue-qr' + import PrintJS from 'print-js' export default { components: { ValueTable, - Add + Add, + vueQr }, data() { return { + loadPint:false, + checkAll: false, + isIndeterminate: true, + printLoading:false, + printDialogVisible:false, //鏄惁瀹℃牳閫氳繃 true鏄� false涓嶆槸 isPass: false, //鏄惁瀹℃牳鎾ら攢 true鏄� false涓嶆槸 @@ -278,8 +370,9 @@ } }, isIndex: true, - showSelect: false, - select: false, + showSelect: true, + select: true, + selectMethod:'selectMethod', do: [{ id: 'dataLook', font: '鏁版嵁鏌ョ湅', @@ -321,7 +414,7 @@ } }], linkEvent: { - entrustCode: { + sampleName: { method: 'selectAllByOne' } }, @@ -455,9 +548,23 @@ active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝4锛氬厜绾ら厤缃�,榛樿涓�0 currentId: null, more:false, - insOrderRow:{} + insOrderRow:{}, + checkIndexList:[], + checkDataList:[], + qrData:[], + multipleSelection:[] } }, + watch:{ + printDialogVisible(newVal){ + if(!newVal){ + this.qrData = [] + this.checkIndexList = [] + this.checkDataList = [] + this.isIndeterminate = true; + } + } + }, mounted() { this.entityCopy = this.HaveJson(this.componentData.entity) this.getPower() @@ -467,6 +574,86 @@ this.selectEnumByCategoryForOrderType() }, methods: { + selectMethod(val){ + this.multipleSelection = val + }, + getLabelPrinting(selection){ + this.loadPint = true; + this.$axios.post(this.$api.insOrder.labelPrinting,{ + ids:selection.map(m=>m.id).join(',') + }).then(res => { + let arr = res.data; + arr.forEach(a=>{ + this.loadPint = false; + let arr1 = [] + a.insProduct.forEach(b=>{ + arr1.push(b.inspectionItem) + }) + a.item = [...new Set(arr1)].join(',') + }) + this.qrData = arr + console.log(this.qrData) + }) + }, + //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮� + changePrintCode(){ + let indexList = this.checkIndexList + let arr = [] + indexList.forEach(i=>{ + arr.push(this.qrData[i]) + }) + this.checkDataList = arr + }, + //鍏ㄩ�� + handleCheckAllChange(val) { + if(val){ + for(var i=0;i<this.qrData.length;i++){ + this.checkIndexList.push(i) + } + this.checkDataList = this.qrData + }else{ + this.checkIndexList = [] + this.checkDataList = [] + } + this.isIndeterminate = false; + }, + submitPrint(){ + if(this.checkDataList.length < 1){ + this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑浜岀淮鐮�") + return + } + this.printDialogVisible = false; + PrintJS({ + printable: 'printMOrder',//椤甸潰 + type: "html",//鏂囨。绫诲瀷 + maxWidth:450, + targetStyles:['*'], + style: `@page { + margin:0; + size: 360px 175px landscape; + } + html{ + zoom:100%; + } + @media print{ + width: 360px; + height: 175px; + margin:0; + }`, + onPrintDialogClose: this.erexcel=false, + targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + font_size: '', + }); + }, + print(){ + if(this.multipleSelection.length==0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + return + } + let selection = this.multipleSelection + this.getLabelPrinting(selection) + this.printDialogVisible = true + }, getAuthorizedPerson() { this.$axios.get(this.$api.user.getUserMenu).then(res => { let data = [] -- Gitblit v1.9.3