From b6809f71253a524d81c086ef1293acafdaba395e Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期二, 12 九月 2023 15:45:07 +0800 Subject: [PATCH] 修改前端页面 --- src/components/page/invoice/invoiceForm.vue | 293 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 231 insertions(+), 62 deletions(-) diff --git a/src/components/page/invoice/invoiceForm.vue b/src/components/page/invoice/invoiceForm.vue index f2dc820..26536fc 100644 --- a/src/components/page/invoice/invoiceForm.vue +++ b/src/components/page/invoice/invoiceForm.vue @@ -3,19 +3,29 @@ <div class="title">璁㈠崟鍙戠エ</div> <div class="invoiceForm-main"> <div class="invoiceForm-main-inside"> + <div class="invoice-date-box"> + <el-date-picker + :editable="false" + format="yyyy-MM" + value-format="yyyy-MM" + v-model="date" + type="month" + @change="changeDate" + placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> + </div> <van-list - v-model="loading" - :finished="finished" - finished-text="娌℃湁鏇村浜�" - :offset="50" - :immediate-check="false" - @load="onLoad" + v-model="loading" + :finished="finished" + finished-text="娌℃湁鏇村浜�" + :offset="50" + :immediate-check="false" + @load="onLoad" > <div v-for="(item,index) in invoiceData" :key="index"> <el-checkbox v-model="item.isShow" - :label="item.isShow" class="invoiceForm-block" @change="handleCheckedCitiesChange(invoiceData)"> <div> @@ -40,15 +50,18 @@ {{item.address}} </div> </div> - <div> - <h1 class="money-box">{{item.money}}</h1> + <div class="money-main"> + <h1 class="money-box">{{item.money}}<font class="money-small">鍏�</font></h1> </div> </el-checkbox> </div> </van-list> <div class="fapiao-btn"> <el-checkbox v-model="checkAll" @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> - <el-button size="mini" @click="seeInvoice">涓嬭浇鍙戠エ</el-button> + <div class="fapiao-right"> + <span class="money">閲戦锛�<font class="big">{{countMoney}}</font>鍏�</span> + <el-button size="mini" @click="seeInvoice">涓嬭浇鍙戠エ</el-button> + </div> </div> </div> </div> @@ -65,6 +78,7 @@ }, data() { return { + date:'', checkedInvoices: [1,2], invoiceData:[], checkAll:false, @@ -72,28 +86,39 @@ finished: false, current:1, size:8, - total:'' + total:'', + filedId: [], + countMoney:0 } + }, + created() { + this.date = this.$byutil.dateFormat(new Date(), "yyyy-MM"); }, mounted() { this.getByCarNo() }, methods: { onLoad() { - this.loading = true - this.current += 1 - this.getByCarNo() + this.loading = true + this.current += 1 + this.getByCarNo() }, getByCarNo() { - let url = this.$systemconfig.basePath + '/orderrecord/getByCarNo'; + this.invoiceData = [] + let url = this.$systemconfig.basePath + '/ffzf/orderrecord/getByCarNo'; let params = { carNo: this.$route.query.carNo, + phone: this.$route.query.phone, current: this.current, - size: this.size + size: this.size, + month: this.date } this.$byutil.postData(this,url,params,res => { let row = res.data.records + row.forEach(e=>{ + this.$set(e,'isShow',false) + }) this.total = res.data.total if(row == null) { this.finished = true @@ -107,26 +132,137 @@ }) }, handleCheckAllChange(val) { + this.filedId = [] let ids = [] + this.countMoney = 0 this.invoiceData.forEach(item => { - ids.push(item.id) + ids.push(item.fileId) item.isShow = val + this.countMoney += item.money + this.filedId.push(item.fileId) }) }, handleCheckedCitiesChange(value) { + this.filedId = [] + this.countMoney = 0 let checkedCount = value.length; let ids = value.filter(item => { return item.isShow == true }) + + if(ids.length > 0) { + ids.forEach(item => { + this.countMoney += item.money + this.filedId.push(item.fileId) + }) + } this.checkAll = checkedCount === ids.length; }, seeInvoice() { //鏌ョ湅鍙戠エ + console.log(this.filedId.length,'this.filedId====') + if(this.filedId.length == 0){ + alert("璇疯嚦灏戦�夋嫨涓�椤�") + }else { + if(this.filedId.length == 1) { + let url = this.$systemconfig.basePath + '/ffzf/fileInfo/download/downloadPng'; + this.filedId.forEach(item => { + let param = { + fileId : item + } + this.$byutil.exportData(this,url,param,res => { + console.log(res,'res====') + let date = new Date() + let time = this.$moment(date).format('YYYY-MM-DD HH:mm:ss') + '-' + item + let blob = new Blob([res], {type: 'image/png'}); + let downloadElement = document.createElement("a"); + downloadElement.style.display = "none"; + let href = window.URL.createObjectURL(blob); //鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href; + downloadElement.download = '鍙戠エ涓嬭浇.png' + document.body.appendChild(downloadElement); + downloadElement.click(); //鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href); //閲婃斁鎺塨lob瀵硅薄 + }) + }) + }else if(this.filedId.length > 1) { + let result = this.filedId.join(",") + let url = this.$systemconfig.basePath + '/ffzf/fileInfo/download/downloadZips'; + let param = { + fileIds : result + } + this.$byutil.exportData(this,url,param,res => { + let date = new Date() + let time = this.$moment(date).format('YYYY-MM-DD HH:mm:ss') + let blob = new Blob([res], {type: 'application/zip'}); + let downloadElement = document.createElement("a"); + downloadElement.style.display = "none"; + let href = window.URL.createObjectURL(blob); //鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href; + downloadElement.download = time + document.body.appendChild(downloadElement); + downloadElement.click(); //鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href); //閲婃斁鎺塨lob瀵硅薄 + }) + } + } + }, + changeDate(){ + this.getByCarNo(); } } } </script> +<style lang="scss"> + .el-message-box{ + width: 80% !important; + } + .fapiao-btn{ + .el-checkbox{ + width: 100px!important; + + } + } + .invoice-date-box{ + .el-input__prefix{ + left: 21vw /* 10/7.5 */!important; + top: 2.4vw; + } + .el-input__inner{ + border: none!important; + color: #303030; + font-size: 3.73vw /* 28/7.5 */; + font-weight: 500; + } + .el-icon-date:before{ + background: url("../../../assets/images/down1.png") no-repeat center; + background-size: 100% 100%; + width: 2.67vw /* 20/7.5 */; + height: 2.67vw /* 20/7.5 */; + content: ''; + display: block; + } + input::-webkit-input-placeholder{ /*WebKit browsers*/ + color: #303030; + font-size: 3.73vw /* 28/7.5 */; + font-weight: 500; + } + .el-input--prefix .el-input__inner{ + padding-left: 2.67vw /* 20/7.5 */; + } + .el-icon-circle-close:before{ + content: ''; + } + } + +</style> <style lang="scss" scoped> + *{ + font-family: '鑻规柟'; + color: #626262; + } ::v-deep{ .el-checkbox__input.is-checked+.el-checkbox__label{ color: #606266; @@ -151,58 +287,91 @@ justify-content: space-between; align-items: center; } + .el-checkbox__inner::after{ + left: 5px; + top: 2px; + } } .iconSvg{ width: 3.2vw /* 24/7.5 */; height: 3.2vw /* 24/7.5 */; } -.invoiceForm-wrap{ - width: 100%; - height: 100%; - background-color: #f5f5f5; - .title{ - font-size: 4vw /* 30/7.5 */; - font-weight: bolder; - text-align: center; - height:11.73vw /* 88/7.5 */; - line-height: 11.73vw /* 88/7.5 */; - background: #fff; - border-bottom: 1px solid #f5f5f5; - } - .invoiceForm-main{ + .invoiceForm-wrap{ width: 100%; - padding: 0 1.33vw /* 10/7.5 */ 1.33vw /* 10/7.5 */ 1.33vw /* 10/7.5 */; - box-sizing: border-box; - height: calc(100% - 11.73vw); - .invoiceForm-main-inside{ - padding-bottom: 8vw /* 60/7.5 */; + height: 100%; + background-color: #f5f5f5; + .title{ + font-size: 4vw /* 30/7.5 */; + font-weight: bolder; + text-align: center; + height:11.73vw /* 88/7.5 */; + line-height: 11.73vw /* 88/7.5 */; + background: #fff; + border-bottom: 1px solid #f5f5f5; } + .invoiceForm-main{ + width: 100%; + box-sizing: border-box; + height: calc(100% - 11.73vw); + .invoiceForm-main-inside{ + padding-bottom: 8vw /* 60/7.5 */; + .invoice-date-box{ + background-color: #fff; + padding:1.33vw /* 10/7.5 */ 2.67vw /* 20/7.5 */; + display: flex; + border-bottom: 1px solid #f5f5f5; + } + } + } + .invoiceForm-content{ + font-size: 3.73vw /* 28/7.5 */; + line-height: 1.8; + } + .invoiceForm-block{ + border-bottom: 1px solid #e5e5e5; + padding:4vw /* 30/7.5 */; + background-color: #fff; + } + .fapiao-btn{ + position: fixed; + bottom: 0; + left: 0; + padding:1.87vw /* 14/7.5 */ 2.67vw /* 20/7.5 */; + width: 100%; + display: flex; + background: #fafafa; + border-top: 1px solid #e5e5e5; + z-index: 9; + justify-content: space-between; + .fapiao-right{ + display: flex; + } + .money{ + display: flex; + align-self: center; + justify-content: center; + font-size: 3.73vw /* 28/7.5 */; + align-items: baseline; + margin-right: 4vw /* 30/7.5 */; + .big{ + font-size: 4.8vw /* 36/7.5 */; + color: #dd894b; + } + } + } + .money-main{ + align-self: flex-start; + line-height: 1.2; + } + .money-box{ + font-size: 6.4vw /* 48/7.5 */; + font-weight: normal; + font-family: '鑻规柟'; + color: #343434; + } + .money-small{ + font-size: 3.2vw /* 24/7.5 */; + } } - .invoiceForm-content{ - font-size: 3.73vw /* 28/7.5 */; - line-height: 1.5; - } - .invoiceForm-block{ - border-bottom: 1px solid #e5e5e5; - padding:4vw /* 30/7.5 */ 2.67vw /* 20/7.5 */; - background-color: #fff; - margin-top:2.13vw /* 16/7.5 */; - } - .fapiao-btn{ - position: fixed; - bottom: 0; - left: 0; - padding:1.33vw /* 10/7.5 */ 2.67vw /* 20/7.5 */; - width: 100%; - display: flex; - background: #fafafa; - border-top: 1px solid #e5e5e5; - z-index: 9; - } - .money-box{ - font-size: 4.8vw /* 36/7.5 */; - - } -} </style> -- Gitblit v1.9.1