From 563c60ab9d465e275bf18b57fde7b51c4bc020da Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期三, 29 十一月 2023 15:32:56 +0800 Subject: [PATCH] 出入库明细单打印功能调整,新引入三方库:html2Canvas,jsPdf,vue-office --- src/views/overview/AddOverviewDialog.vue | 215 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 173 insertions(+), 42 deletions(-) diff --git a/src/views/overview/AddOverviewDialog.vue b/src/views/overview/AddOverviewDialog.vue index 2097ac0..50a1b04 100644 --- a/src/views/overview/AddOverviewDialog.vue +++ b/src/views/overview/AddOverviewDialog.vue @@ -10,7 +10,7 @@ <div slot="title" class="dialog-header"> <span>{{ editCommonConfig.title === "鏌ョ湅" ? editCommonConfig.title : editCommonConfig.title + addName }}</span> <div class="header_btns"> - <span class="btn"> + <span class="btn" @click="btnPrint"> <i class="el-icon-printer"></i> <span>鎵撳嵃</span> </span> @@ -18,7 +18,7 @@ <i class="el-icon-s-tools"></i> <span>鍔ㄤ綔</span> </span> - <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button> + <el-button v-if="showEdit" :disabled="this.editConfig.infomation.status===5" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button> </div> </div> <!-- 鍐呭 --> @@ -36,6 +36,7 @@ :showButton="showButton" :isValidateClick="isValidateClick" :isDelClick="isDelClick" + :isCancel="isCancel" :list="list" :showCancel="showCancel" @delClick="delClick" @@ -49,7 +50,9 @@ <el-col :span="12"> <el-form-item prop="companyName"> <span slot="label">{{ workType === 1 ? "渚涘簲鍟�" : workType === 2 ? "瀹㈡埛" : "鑱旂郴浜�" }}</span> + <el-select + v-if="workType === 1" v-model="editConfig.infomation.companyName" placeholder="璇烽�夋嫨" size="mini" @@ -58,6 +61,40 @@ @change="companyChange" > <el-option + v-for="item in supplierOptions" + :key="item.SupplierId" + :label="item.SupplierName" + :value="{ value: item.SupplierId, label: item.SupplierName }" + > + </el-option> + </el-select> + <el-select + v-else-if="workType === 2" + v-model="editConfig.infomation.companyName" + placeholder="璇烽�夋嫨" + size="mini" + style="width: 90%" + :disabled="!showFooter" + @change="companyChange" + > + <el-option + v-for="item in clientOptions" + :key="item.ClientId" + :label="item.ClientName" + :value="{ value: item.ClientId, label: item.ClientName }" + > + </el-option> + </el-select> + <el-select + v-else + v-model="editConfig.infomation.companyName" + placeholder="璇烽�夋嫨" + size="mini" + style="width: 90%" + :disabled="!showFooter" + @change="companyChange" + > + <el-option v-for="item in companyOptions" :key="item.id" :label="item.name" @@ -65,6 +102,7 @@ > </el-option> </el-select> + </el-form-item> </el-col> <!-- <el-col :span="12"> @@ -227,7 +265,7 @@ <el-tabs v-model="activeName" type="card"> <!-- <el-tab-pane v-if="workType !== 1" label="璇︽儏" name="detail"> </el-tab-pane> --> <el-tab-pane label="浜у搧" name="first"> </el-tab-pane> - <el-tab-pane label="鍙戣揣淇℃伅" name="two"></el-tab-pane> + <el-tab-pane label="鐗╂祦淇℃伅" name="two" v-if="this.workType===2"></el-tab-pane> </el-tabs> <!-- 鎿嶄綔 --> <div v-if="activeName === 'first'"> @@ -248,28 +286,58 @@ </template> </CommonFormTableView> </div> - <!-- 鍙戣揣淇℃伅 --> - <div v-if="activeName==='two'"> - <el-form label-position="left" label-width="80px" :model="shipmentsInfo"> - <el-form-item label="鎵胯繍鍟�" style="width: 50%;"> - <el-select :disabled="!showFooter" v-model="editConfig.infomation.logisticCompanyId" placeholder="璇烽�夋嫨" style="width: 100%;"> - <el-option - v-for="item in shipmentsInfo.carrier" - :key="item.id" - :label="item.name" - :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="杩愬崟鍙�" style="width: 50%;"> - <el-input :disabled="!showFooter" v-model="editConfig.infomation.waybillNumber"></el-input> - </el-form-item> - <el-form-item label="閲嶉噺" style="width: 50%;"> - <el-input :disabled="!showFooter" v-model="editConfig.infomation.weight"></el-input> - </el-form-item> - <el-form-item label="鐗╂祦閲嶉噺" style="width: 50%;"> - <el-input :disabled="!showFooter" v-model="editConfig.infomation.logisticWeight"></el-input> - </el-form-item> + <!-- 鐗╂祦淇℃伅 --> + <div v-if="activeName==='two'&&this.workType===2"> + <el-form + label-position="right" + :model="shipmentsInfo" + label-width="120px" + size="mini" + style="margin-top: 20px;" + > + <el-col :span="12"> + <el-form-item label="鎵胯繍鍟�" > + <el-select + size="mini" :disabled="!showFooter" v-model="editConfig.infomation.logisticCompanyId" placeholder="璇烽�夋嫨" style="width: 90%;"> + <el-option + v-for="item in shipmentsInfo.carrier" + :key="item.id" + :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="杩愬崟鍙�" > + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.waybillNumber"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏀惰揣浜�"> + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.receiverName"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鑱旂郴鐢佃瘽"> + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.receiverPhone"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏀惰揣鍦板潃"> + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.receiverAddr"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閲嶉噺"> + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.weight"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鐗╂祦閲嶉噺"> + <el-input style="width: 90%;" :disabled="!showFooter" v-model="editConfig.infomation.logisticWeight"></el-input> + </el-form-item> + </el-col> </el-form> </div> <!-- 璇︽儏 --> @@ -314,9 +382,10 @@ stateCancel, deleteOperation, getListTransfer, - getLogisticCompanyList + getLogisticCompanyList, + printReceipts } from "@/api/overview/overview" -import { getCompanyList } from "@/api/common/other" +import { getSupplierList,getCompanyList,getClientList } from "@/api/common/other" export default { name: "AddOverviewDialog", props: { @@ -358,15 +427,10 @@ operationTypeId: [{ required: true, message: "璇烽�夋嫨鍏ュ簱绫诲瀷", trigger: "change" }] }, companyOptions: [], // 鍏徃 + supplierOptions:[],//渚涘簲鍟� + clientOptions:[],//瀹㈡埛 memberOptions: [{ id: 1, name: "绠$悊鍛�" }], toLocationOptions: [], // 婧愪綅缃� 浠撳簱浣嶇疆 - list: [ - { label: "鑽夌", status: "todo", value: 1 }, - { label: "姝e湪绛夊緟", status: "todo", value: 2 }, - { label: "灏辩华", status: "todo", value: 3 }, - { label: "瀹屾垚", status: "todo", value: 4 }, - { label: "宸插彇娑�", status: "todo", value: 5 } - ], showButton: true, activeName: "first", productTableList: {}, @@ -375,6 +439,7 @@ isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑� + isCancel:false, //楠岃瘉鎸夐挳鏄惁鍙偣鍑� showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 currentState: "todo", // 褰撳墠鐘舵�� detailTableList: {}, @@ -394,13 +459,15 @@ logisticWeight:0, }, showCancel:false, // 鍙栨秷鏄惁鍙互鏄剧ず + list:[], } }, created() { + this.getCompanyList() + this.setStatusList() this.setTableForm() this.setBottonView() this.setDetailTableForm() - this.getCompanyList() this.getLocationList() this.receiptType = this.editConfig.title === "鏌ョ湅" ? this.editConfig.infomation.operationTypeName : this.addName if (this.showOperationType) { @@ -409,14 +476,49 @@ this.getLogisticCompanyList() }, methods: { + setStatusList(){ + console.log(this.editConfig.infomation,"edit") + if(this.editConfig.infomation.status===5){ + this.list=[ + { label: "鑽夌", status: "todo", value: 1 }, + { label: "姝e湪绛夊緟", status: "todo", value: 2 }, + { label: "灏辩华", status: "todo", value: 3 }, + { label: "瀹屾垚", status: "todo", value: 4 }, + { label: "宸插彇娑�", status: "todo", value: 5 } + ] + }else{ + this.list=[ + { label: "鑽夌", status: "todo", value: 1 }, + { label: "姝e湪绛夊緟", status: "todo", value: 2 }, + { label: "灏辩华", status: "todo", value: 3 }, + { label: "瀹屾垚", status: "todo", value: 4 } + ] + } + }, // 鑾峰彇鍏徃鍒楄〃 async getCompanyList() { - await getCompanyList().then((res) => { - console.log(res) - if (res.code === 200) { - this.companyOptions = res.data - } - }) + if(this.workType === 1){ + await getSupplierList().then((res) => { + console.log(res) + if (res.code === 200) { + this.supplierOptions = res.data + } + }) + }else if(this.workType === 2){ + await getClientList().then((res) => { + console.log(res) + if (res.code === 200) { + this.clientOptions = res.data + } + }) + }else{ + await getCompanyList().then((res) => { + console.log(res) + if (res.code === 200) { + this.companyOptions = res.data + } + }) + } }, // 鑾峰彇浠撳簱浣嶇疆鍒楄〃 async getLocationList() { @@ -474,9 +576,11 @@ }else if(this.editConfig.infomation.status === 3){ this.isValidateClick = true this.showCancel=true + }else if(this.editConfig.infomation.status===5){ + this.isCancel=true + this.isValidateClick=true }else{ this.isValidateClick = true - } } else if (this.editConfig.infomation.status === 4 || this.editConfig.infomation.status === "瀹屾垚") { this.showButton = true @@ -485,6 +589,7 @@ this.showFooter = false this.isValidateClick = false } else if (this.editConfig.infomation.status === 5) { + this.isCancel=true this.showButton = true this.showEdit = false this.showFooter = false @@ -597,6 +702,9 @@ weight:data.weight||0, logisticWeight:data.logisticWeight||0, logisticCompanyId:data.logisticCompanyId, + receiverAddr:data.receiverAddr||'', + receiverName:data.receiverName||'', + receiverPhone:data.receiverPhone||'' } return params }, @@ -788,6 +896,26 @@ }) }).catch(() => { }); + }, + //鎵撳嵃 + async btnPrint(){ + await printReceipts(this.editCommonConfig.infomation.id).then((res) => { + console.log(res) + if (res.code === 200) { + // this.$message.success("鎵撳嵃鎴愬姛") + // const link = document.createElement('a'); + // link.href = res.data; + // link.download = '鍑哄簱鍗�.xlsx'; + // link.click(); + this.$router.push({ + name:"previewExcel", + params:{ + url:res.data, + baseOperationType:this.editConfig.infomation.baseOperationType||undefined, + } + }) + } + }) } } } @@ -804,6 +932,9 @@ margin-left: auto; margin-right: 60px; .btn { + cursor: pointer; + } + .btn:nth-of-type(2){ cursor: no-drop; } } -- Gitblit v1.8.0