From de4c8dc172fe0721d08b51e66d824b19d9c1e8fd Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期六, 31 十二月 2022 00:29:02 +0800 Subject: [PATCH] 修改前端页面 --- src/components/page/invoice/invoiceForm.vue | 287 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 231 insertions(+), 56 deletions(-) diff --git a/src/components/page/invoice/invoiceForm.vue b/src/components/page/invoice/invoiceForm.vue index 9082842..001096d 100644 --- a/src/components/page/invoice/invoiceForm.vue +++ b/src/components/page/invoice/invoiceForm.vue @@ -2,45 +2,67 @@ <div class="invoiceForm-wrap"> <div class="title">璁㈠崟鍙戠エ</div> <div class="invoiceForm-main"> - <div> - <el-checkbox - v-model="item.isShow" - :label="item.isShow" - class="invoiceForm-block" - v-for="(item,index) in invoiceData" - :key="index" - @change="handleCheckedCitiesChange(invoiceData)"> - <div> - <div class="invoiceForm-content"> + <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" + > - <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> - <use xlink:href="#icon-shijian3"></use> - </svg> - {{item.enterTime}} - </div> - <div class="invoiceForm-content"> + <div v-for="(item,index) in invoiceData" :key="index"> + <el-checkbox + v-model="item.isShow" + class="invoiceForm-block" + @change="handleCheckedCitiesChange(invoiceData)"> + <div> + <div class="invoiceForm-content"> - <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> - <use xlink:href="#icon-shijian3"></use> - </svg> - {{item.outTime}} - </div> - <div class="invoiceForm-content"> - <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> - <use xlink:href="#icon-dizhi1"></use> - </svg> - {{item.address}} - </div> + <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> + <use xlink:href="#icon-shijian3"></use> + </svg> + {{item.enterTime}} + </div> + <div class="invoiceForm-content"> + + <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> + <use xlink:href="#icon-shijian3"></use> + </svg> + {{item.outTime}} + </div> + <div class="invoiceForm-content"> + <svg class="iconSvg" style="font-size: 12px" aria-hidden="true"> + <use xlink:href="#icon-dizhi1"></use> + </svg> + {{item.address}} + </div> + </div> + <div class="money-main"> + <h1 class="money-box">{{item.money}}<font class="money-small">鍏�</font></h1> + </div> + </el-checkbox> </div> - <div> - <h1 class="money-box">{{item.money}}</h1> - </div> - </el-checkbox> + </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> @@ -48,58 +70,173 @@ </template> <script> + import { List } from 'vant'; export default { name: "invoiceForm", + components: { + vanList: List + }, data() { return { + date:'', checkedInvoices: [1,2], invoiceData:[], checkAll:false, - + loading: false, + finished: false, + current:1, + size:8, + total:'', + filedId: [], + countMoney:0 } }, + created() { + this.date = this.$byutil.dateFormat(new Date(), "yyyy-MM"); + }, mounted() { - console.log(this.$route,'$route======$route') this.getByCarNo() }, methods: { + onLoad() { + this.loading = true + this.current += 1 + this.getByCarNo() + + }, getByCarNo() { + this.invoiceData = [] let url = this.$systemconfig.basePath + '/orderrecord/getByCarNo'; - // let params = { - // carNo: this.$route.query.carNo - // } - this.$byutil.postData(this,url,{carNo: this.$route.query.carNo}, - res => { - this.invoiceData = res.data - console.log(this.invoiceData,'invoiceData====') + let params = { + carNo: this.$route.query.carNo, + phone: this.$route.query.phone, + current: this.current, + 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 + return + }else { + this.loading = false + this.invoiceData = [...this.invoiceData,...row] + this.invoiceData.length >= this.total ? (this.finished = true) : (this.finished = false) + } + }) }, handleCheckAllChange(val) { - console.log(val,'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) }) - console.log(this.invoiceData,'this.invoiceData======') }, handleCheckedCitiesChange(value) { - console.log(value,'value===') + this.filedId = [] + this.countMoney = 0 let checkedCount = value.length; let ids = value.filter(item => { return item.isShow == true }) - console.log(ids,'ids========') + + if(ids.length > 0) { + ids.forEach(item => { + this.countMoney += item.money + this.filedId.push(item.fileId) + }) + } this.checkAll = checkedCount === ids.length; }, seeInvoice() { //鏌ョ湅鍙戠エ - } + if(this.filedId.length == 0){ + alert("璇疯嚦灏戦�夋嫨涓�椤�") + }else { + let result = this.filedId.join(",") + let url = this.$systemconfig.basePath + '/fileInfo/download/downloadZips'; + let param = { + fileIds : result + } + this.$byutil.postData(this,url,param,res => { + + }) + } + }, + changeDate(){ + this.getByCarNo(); + } } } </script> +<style lang="scss"> + .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; + } + .el-checkbox__inner{ + width: 4vw /* 30/7.5 */; + height: 4vw /* 30/7.5 */; + border-radius: 50%; + + } + .el-checkbox__inner:hover{ + border: 1px solid #DCDFE6; + } .el-checkbox{ width: 100%; display: flex; @@ -110,6 +247,10 @@ display: flex; justify-content: space-between; align-items: center; + } + .el-checkbox__inner::after{ + left: 5px; + top: 2px; } } .iconSvg{ @@ -131,33 +272,67 @@ } .invoiceForm-main{ width: 100%; - padding: 0 1.33vw /* 10/7.5 */ 1.33vw /* 10/7.5 */ 1.33vw /* 10/7.5 */; box-sizing: border-box; - //background: #fff; + 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.5; + line-height: 1.8; } .invoiceForm-block{ border-bottom: 1px solid #e5e5e5; - padding:4vw /* 30/7.5 */ 2.67vw /* 20/7.5 */; + padding:4vw /* 30/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 */; + 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: 4.8vw /* 36/7.5 */; - + font-size: 6.4vw /* 48/7.5 */; + font-weight: normal; + font-family: '鑻规柟'; + color: #343434; + } + .money-small{ + font-size: 3.2vw /* 24/7.5 */; } } </style> -- Gitblit v1.9.1