From 6d213775d14a63d18d9eb17b44ba14bd3bb220da Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期四, 07 十二月 2023 10:35:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/quality/Packaging_ledger/index.vue | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 441 insertions(+), 0 deletions(-) diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue new file mode 100644 index 0000000..b4837ac --- /dev/null +++ b/src/views/quality/Packaging_ledger/index.vue @@ -0,0 +1,441 @@ +<template> + <div class="mod-config"> + <basic-container> + <el-row> + <el-col :span="11"> + <ttable + :table="table" + :isShowHide="true" + :prelang="prelang" + :ajaxFun="ajaxFun" + :options="options" + @handleSelectionChange="handleSelectionChange" + ref="processconfiguration" + > + <template #toolbar></template> + </ttable> + </el-col> + <el-col :span="13" style="padding-left: 10px"> + <el-card> + <div slot="header"> + <el-row> + <el-col :span="8"> + <span>瑁呯鏄庣粏</span> + </el-col> + <el-col :span="8" :offset="4"> + <!-- <el-button + style="float: right; padding: 3px 0" + type="text" + @click="beginItemLayOut" + > + 甯冨眬 + </el-button> --> + </el-col> + <el-col :span="2"> + <el-button + style="float: right; padding: 3px 0" + type="text" + @click="addpreserve" + >淇濆瓨 + </el-button> + </el-col> + <el-col :span="2"> + <el-button + v-if="!isCheck" + style="float: right; padding: 3px 0" + type="text" + @click="relateOperationParam()" + >娣诲姞 + </el-button> + </el-col> + </el-row> + </div> + <el-table + :data="testStandardParams" + id="testStandardParamTable" + ref="testStandardParam" + + highlight-current-row + height="700" + style="width: 100%" + class="l-mes-table" + border + stripe + > + <el-table-column + type ="index" + label="搴忓彿" + align="center" + width="50" + /> + <el-table-column + label="浜у搧" + prop="product" + align="center" + /> + <el-table-column + label="浜у搧缂栧彿" + prop="productNo" + align="center" + > + </el-table-column> + <el-table-column + label="瑙勬牸鍨嬪彿" + prop="specs" + align="center" + > + </el-table-column> + <el-table-column + label="鍗曚綅" + prop="unit" + align="center" + > + </el-table-column> + <el-table-column + label="鏁伴噺" + prop="number" + align="center" + width="80" + > + <template slot-scope="scope"> + <el-input v-model="scope.row.number"></el-input> + </template> + </el-table-column> + <el-table-column + fixed="right" + label="鎿嶄綔" + align="center" + width="80"> + <template slot-scope="scope"> + <el-button @click="deleteadd(scope.row)" size="small">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-card> + </el-col> + </el-row> + + <!-- 鏂板 --> + <packfrom + :currshowlist.sync="addOrUpdateVisible" + @refreshDataList="getData"> + </packfrom> + <packfromadd + :currshowlist.sync="increase" + :packageBoxIddata ="packageBoxId" + @handleSelectionChange = "preserve" + > + </packfromadd> + </basic-container> + <el-dialog title="鏍囩鍒楄〃" top="5vh" :visible.sync="diaPrintTab" width="500px"> + <div id="qrCard" class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> + <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;"> + <el-row> + <el-col :span="10" :offset="3">搴忓彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">鍖呰缂栧彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ item.packageNo }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">浜岀淮鐮侊細</el-col> + <el-col :span="10"> + <vueQr :text="JSON.stringify(item)" :size="120" :margin="1"></vueQr> + </el-col> + </el-row> + </el-card> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> + <el-button type="primary" @click="printFun">鎵� 鍗�</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +import { pagedata,dropById,list,saveList,deledata,sAuditstatus} from '@/api/quality/Packaging_ledger' +import ttable from '@/views/common/ztt-table.vue' +import packfrom from './pack-from.vue' +import packfromadd from './pack-fromadd.vue' +import vueQr from 'vue-qr' +import PrintJS from 'print-js' +export default { + data(){ + return { + qrData:[], + diaPrintTab: false, + multipleSelection: [], + isCheck: false, + dataway:{}, + goid:'', + testStandardParams: [], + packageBoxId:{}, + prelang: 'operation', + dataListLoading: false, + ajaxFun: pagedata, + increase:false, + addOrUpdateVisible:false, + options: { + height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾 + stripe: true, // 鏄惁涓烘枒椹汗 table + highlightCurrentRow: false, // 鏄惁瑕侀珮浜綋鍓嶈 + border: true, // 鏄惁鏈夌旱鍚戣竟妗� + lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇 + fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮� + multiSelect: true, // + isEdit:false, + seqNo: true, + isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳 + isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 + isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 + defaultOrderBy: { column: 'createTime', direction: 'desc' } + }, + table: { + total: 0, + currentPage: 1, + pageSize: 20, + data: [], + // 鏍囬 + column: [ + { + minWidth: 'code', + prop: 'state', + label: '鐘舵��', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '140', + prop: 'packageNo', + label: '鍖呰缂栧彿', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + },{ + minWidth: '140', + prop: 'createUser', + label: '鍒涘缓浜�', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + },{ + minWidth: '140', + prop: 'contractNo', + label: '鍚堝悓鍙�', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + }, + { + minWidth: '140', + prop: 'updateUser', + label: '鏇存柊浜�', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + }, + { + minWidth: '130', + width: '150', + prop: 'updateTime', + label: '鏇存柊鏃ユ湡', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'datetimerange', + }, + { + minWidth: '130', + width: '150', + prop: 'createTime', + label: '鍒涘缓鏃ユ湡', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'datetimerange', + }, + ], + toolbar: [ + { + text: '鏂板', + type: 'primary', + fun: this.addOrUpdateHandle + }, + { + text: '鏍囩鎵撳嵃', + type: 'primary', + fun: this.printLabel + }, + ], + operator: [ + { + text: '妫�楠�', + icon: 'el-icon-position', + type: 'text', + size: 'small', + fun: this.check + },{ + text: '鍒犻櫎', + icon: 'el-icon-delete', + type: 'text', + size: 'small', + fun: this.deleteHandle + } + ], + operatorConfig: { + fixed: 'right', + label: '鎿嶄綔', + width: 120, + minWidth: 120 + } + }, + } + }, + components: { + ttable, + packfrom, + packfromadd, + vueQr + }, + watch: { + diaPrintTab(newVal){ + if(!newVal){ + this.qrData = [] + } + } + }, + methods: { + //鎵撳嵃鎸夐挳 + printFun() { + this.diaPrintTab = false; + PrintJS({ + printable: "qrCard", + type: "html", + // header: "鍘熸潗鏂欐娴嬫姤鍛�", + targetStyles: ["*"], + style: `@page {margin: 0mm 5mm;} + html {zoom:100%;} + @media print { + html,body{ + width:60mm; + height:40mm; + } + }`, + ignoreElements: ["no-ignore"], + orientation: 'portrait' + }); + }, + handleSelectionChange(val){ + this.multipleSelection = val + let lastRow = val[val.length - 1] + this.handleCurrentChange(lastRow) + }, + printLabel(){ + if(this.multipleSelection.length==0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + return + } + this.diaPrintTab = true + console.log(this.multipleSelection); + this.multipleSelection.forEach(item=>{ + let obj = { + packageNo: item.packageNo, + contractNo: item.contractNo, + boxInfo: [] + } + list({packageBoxId:item.id}).then((res) =>{ + res.data.data.forEach(ele=>{ + obj.boxInfo.push({ + product: ele.product, + productNo: ele.productNo, + specs: ele.specs, + unit: ele.unit, + number: ele.number + }) + }) + }) + this.qrData.push(obj) + }) + }, + // 鑾峰彇鏁版嵁鍒楄〃 + getData() { + this.$refs.processconfiguration.refreshData() + }, + wayRenovate(){ + this.getData() + }, + //add + addOrUpdateHandle(){ + this.addOrUpdateVisible = true + }, + //鍒犻櫎 + deleteHandle(row){ + dropById({id:row.id}).then((res) =>{ + this.getData() + this.$message.success('鍒犻櫎鎴愬姛') + }) + }, + handleCurrentChange(row){ + if(row.state=='宸叉姤妫�'){ + this.isCheck = true + } + this.dataway = row + this.packageBoxId = { + packageBoxId:row.id + } + this.goid = row.id + this.rightquery() + }, + rightquery(){ + list({packageBoxId:this.goid}).then((res) =>{ + this.testStandardParams = res.data.data + }) + }, + //璇︽儏娣诲姞 + relateOperationParam(){ + if (this.dataway.state == "鏈姤妫�") { + this.increase = true + }else{ + this.$message.error('璇峰厛閫夋嫨鍖呰椤圭洰') + } + }, + preserve(datalist){ + this.testStandardParams = datalist + }, + //鍙宠竟淇濆瓨 + addpreserve(){ + this.testStandardParams.forEach(el => { + el.packageBoxId =this.goid + }); + saveList(this.testStandardParams).then((res) =>{ + this.$message.success('淇濆瓨鎴愬姛') + this.rightquery() + }) + }, + //鍒犻櫎 + deleteadd(row){ + deledata({id:row.id}).then((res)=>{ + this.$message.success('鍒犻櫎鎴愬姛') + this.rightquery() + }) + }, + //瀹℃牳 + check(row){ + let packageBox = { + id:row.id, + packageNo:row.packageNo, + contractNo:row.contractNo, + customerId:row.customerId, + } + sAuditstatus(packageBox).then((res) =>{ + this.getData() + this.$message.success('妫�楠屾垚鍔�') + }) + }, + }, +} +</script> \ No newline at end of file -- Gitblit v1.9.3