|
@@ -54,7 +54,7 @@
|
|
|
border-radius: .3rem;
|
|
|
overflow: hidden;
|
|
|
position: absolute;
|
|
|
- bottom: -1.1rem;
|
|
|
+ bottom: -1.9rem;
|
|
|
left: .2rem;
|
|
|
color: #333;
|
|
|
}
|
|
@@ -79,13 +79,16 @@
|
|
|
}
|
|
|
|
|
|
.amount {
|
|
|
- color: #f0ad4e;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ .amountName {
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
|
|
|
.handleOrder {
|
|
|
color: #999;
|
|
|
- padding: 1.3rem .2rem .2rem;
|
|
|
+ padding: 0rem .2rem .2rem;
|
|
|
}
|
|
|
|
|
|
.handleOrder span:last-child {
|
|
@@ -166,6 +169,22 @@
|
|
|
.list-b {
|
|
|
color: #999;
|
|
|
}
|
|
|
+
|
|
|
+ .downLoadCon {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .finishImg {
|
|
|
+ width: 1rem;
|
|
|
+ height: 1rem;
|
|
|
+ position: absolute;
|
|
|
+ right: .06rem;
|
|
|
+ bottom: -.1rem;
|
|
|
+ }
|
|
|
+
|
|
|
+ .amount_list {
|
|
|
+ margin-bottom: 0.06rem;
|
|
|
+ }
|
|
|
</style>
|
|
|
</head>
|
|
|
|
|
@@ -179,30 +198,52 @@
|
|
|
尊敬的“{{info.customer.customerName || '--'}}”,您好!
|
|
|
</div>
|
|
|
<div class="tipDesc">
|
|
|
- 以下是您{{time}}在本店的对账单,请查阅。
|
|
|
+ 以下是您在本店的未结账单,请查阅。
|
|
|
</div>
|
|
|
- <div class="orderInfo">
|
|
|
- <div class="flex align_center flex-between">
|
|
|
- <span>欠款金额</span>
|
|
|
- <span class="amount" v-if="info.totalAmount">¥{{toThousands(info.totalAmount,2)}}</span>
|
|
|
- <span class="amount" v-else>¥0</span>
|
|
|
+ <div class="orderInfo"
|
|
|
+ :style="{bottom:(info.discountAmount && info.discountAmount*1 !=0 ? '-1.9rem':'-1.3rem' )}">
|
|
|
+ <div class="amount_list flex align_center flex-between">
|
|
|
+ <span class="amountName">货款金额</span>
|
|
|
+ <span class="amount" v-if="info.totalAmount"
|
|
|
+ :style="{color:!info.discountAmount? '#f0ad4e':'#333333'}">¥{{toThousands(info.totalAmount,2)}}</span>
|
|
|
+ <span class="amount" v-else
|
|
|
+ :style="{color:!info.discountAmount ? '#f0ad4e':'#333333'}">¥0.00</span>
|
|
|
</div>
|
|
|
- <div class="downLoadTip">
|
|
|
- 单据明细Excel下载请点击下面的链接:
|
|
|
+ <div v-if="info.discountAmount && info.discountAmount*1 !=0">
|
|
|
+ <div class="amount_list flex align_center flex-between">
|
|
|
+ <span class="amountName">折让金额</span>
|
|
|
+ <span class="amount"
|
|
|
+ v-if="info.discountAmount">-¥{{toThousands(info.discountAmount,2)}}</span>
|
|
|
+ <span class="amount" v-else>¥0.00</span>
|
|
|
+ </div>
|
|
|
+ <div class="amount_list flex align_center flex-between">
|
|
|
+ <span class="amountName">折后金额</span>
|
|
|
+ <span class="amount" style="color: #f0ad4e"
|
|
|
+ v-if="info.settleAmount">¥{{toThousands(info.settleAmount,2)}}</span>
|
|
|
+ <span class="amount" style="color: #f0ad4e" v-else>¥0.00</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="downLoadUrl" @click="downLoad">
|
|
|
- http://iscm.360arrow.com/bill/对账单明细.xls
|
|
|
+ <div class="downLoadCon">
|
|
|
+ <div class="downLoadTip">
|
|
|
+ 单据明细Excel下载请点击下面的链接:
|
|
|
+ </div>
|
|
|
+ <div class="downLoadUrl" @click="downLoad">
|
|
|
+ http://iscm.360arrow.com/bill/对账单明细.xls
|
|
|
+ </div>
|
|
|
+ <img v-if="info.billStatus != 'UNSETTLE'" src="./img/finishImg.png" alt="" class="finishImg">
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="orderCon flex flex-column">
|
|
|
+ <div class="orderCon flex flex-column"
|
|
|
+ :style="{paddingTop:(info.discountAmount && info.discountAmount*1 !=0 ? '2.1rem':'1.5rem' )}">
|
|
|
<div class="handleOrder flex flex-between align_center">
|
|
|
<span>共{{saleList ? saleList.length : 0}}个销售单</span>
|
|
|
- <span>全部展开</span>
|
|
|
+ <span v-if="!flag" @click="openAll">全部展开</span>
|
|
|
+ <span v-else @click="openAll">全部关闭</span>
|
|
|
</div>
|
|
|
<div class="oederBox">
|
|
|
<div v-for="(item,i) in saleList" :key="item.bizSn">
|
|
|
- <div class="oederList flex align_center" @click="handleShow(item,i)">
|
|
|
+ <div class="oederList flex align_center" @click="openInfoList(i)">
|
|
|
<div class="order-l">
|
|
|
<div class="order-t flex align_center flex-between">
|
|
|
<span>{{item.bizDate.substr(0,10)}}</span>
|
|
@@ -212,7 +253,7 @@
|
|
|
<div>应付:¥{{toThousands(item.bizAmount,2)}}</div>
|
|
|
<div>已付:¥{{toThousands(item.settledAmount,2)}}</div>
|
|
|
<div>
|
|
|
- 欠款:<span>¥{{item.unsettleAmount ? toThousands(item.unsettleAmount,2): 0}}</span>
|
|
|
+ 待付:<span>¥{{item.unsettleAmount ? toThousands(item.unsettleAmount,2): 0}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -222,7 +263,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="otherList" v-show="item.isShow">
|
|
|
- <div class="list" v-for="(con,j) in saleDetailList" :key="con.id">
|
|
|
+ <div class="list" v-for="(con,j) in item.list" :key="con.id">
|
|
|
<div class="list-t flex align_center flex-between">
|
|
|
<span>{{con.dealerProductEntity.code}}</span>
|
|
|
<span>¥{{con.price?toThousands(con.price,2):0}}</span>
|
|
@@ -244,87 +285,71 @@
|
|
|
new Vue({
|
|
|
el: '#app',
|
|
|
data: {
|
|
|
- ajaxUrl: 'http://p.iscm.360arrow.com/qpls-md/',
|
|
|
+ ajaxUrl: 'http://192.168.0.103:8503/qpls-md/',
|
|
|
saleList: [],
|
|
|
saleDetailList: [],
|
|
|
info: {},
|
|
|
- time: '',
|
|
|
- startTime:'',
|
|
|
- endTime:'',
|
|
|
- customerSn:''
|
|
|
+ flag: false
|
|
|
},
|
|
|
created() {
|
|
|
- this.loadData();
|
|
|
- document.title = this.getUrlParam('name');
|
|
|
+ this.loadData()
|
|
|
},
|
|
|
methods: {
|
|
|
loadData() {
|
|
|
- let ajaxData = {
|
|
|
- verifySn: this.getUrlParam('verifySn'),
|
|
|
- dealerSn: this.getUrlParam('userSn')
|
|
|
+ const ajaxData = {
|
|
|
+ verifySn: this.getUrlParam(1),
|
|
|
+ tenantId: this.getUrlParam(0)
|
|
|
}
|
|
|
axios.post(this.ajaxUrl + 'verify/findBySn', ajaxData).then((res) => {
|
|
|
- this.info = res.data.data;
|
|
|
- res.data.data.detailList.forEach(item=>{
|
|
|
- item.isShow = false;
|
|
|
+ this.info = res.data.data
|
|
|
+ document.title = res.data.data.dealerName
|
|
|
+ res.data.data.detailList.forEach(item => {
|
|
|
+ item.isShow = false
|
|
|
+ item.list = []
|
|
|
})
|
|
|
- this.saleList = res.data.data.detailList;
|
|
|
- if (res.data.data.bizBeginDate && res.data.data.bizEndDate) {
|
|
|
- this.time = res.data.data.bizBeginDate.split(' ')[0] + '至' + res.data.data
|
|
|
- .bizEndDate.split(' ')[0]
|
|
|
- this.customerSn = res.data.buyerSn;
|
|
|
- this.startTime = res.data.data.bizBeginDate;
|
|
|
- this.endTime = res.data.data.bizEndDate
|
|
|
- }
|
|
|
+ this.saleList = res.data.data.detailList
|
|
|
+
|
|
|
+ this.getALlList(res.data.data.detailList)
|
|
|
}).catch((error) => {
|
|
|
- console.log(error);
|
|
|
- });
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
},
|
|
|
- handleShow(con , i) {
|
|
|
- let req_data = {
|
|
|
+ handleShow(con, i) {
|
|
|
+ const req_data = {
|
|
|
salesBillSn: con.bizSn
|
|
|
}
|
|
|
axios.post(this.ajaxUrl + 'salesDetail/queryList', req_data).then((res) => {
|
|
|
- this.saleDetailList = res.data.data;
|
|
|
- this.saleList[i].isShow = !this.saleList[i].isShow ;
|
|
|
+ this.saleList[i].list = res.data.data
|
|
|
}).catch((error) => {
|
|
|
- console.log(error);
|
|
|
- });
|
|
|
-
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openInfoList(i) {
|
|
|
+ this.saleList[i].isShow = !this.saleList[i].isShow
|
|
|
+ this.saleList.splice()
|
|
|
},
|
|
|
downLoad() {
|
|
|
- let ajaxData = {
|
|
|
- targetSn: this.customerSn,
|
|
|
- bizBeginDate: this.startTime,
|
|
|
- bizEndDate: this.endTime,
|
|
|
- dealerSn: this.getUrlParam(userSn)
|
|
|
- }
|
|
|
- // let ajaxData={
|
|
|
- // targetSn: '478718467182370816',
|
|
|
- // bizBeginDate: '2022-12-01 00:00:00',
|
|
|
- // bizEndDate: '2022-12-21 59:59:59',
|
|
|
- // dealerSn: '435465609255526400'
|
|
|
- // }
|
|
|
- axios.get(this.ajaxUrl + 'verify/exportExcel', {
|
|
|
- params: ajaxData
|
|
|
- }, {
|
|
|
- responseType: 'blob',
|
|
|
- dataType: "jsonp",
|
|
|
- jsonp: "callback"
|
|
|
- }).then((res) => {
|
|
|
- if (res.status == 200) {
|
|
|
- downloadExcel(res.data, '对账单明细')
|
|
|
+ window.location.href = this.ajaxUrl + 'verify/exportExcel?verifySn=' + this.getUrlParam(1) +
|
|
|
+ '&dealerSn=' + this.getUrlParam(0)
|
|
|
+ },
|
|
|
+ getUrlParam(index) {
|
|
|
+ let urlArr = window.location.search.substr(1).split('&');
|
|
|
+ return urlArr[index] // 返回参数值
|
|
|
+ },
|
|
|
+ openAll() {
|
|
|
+ this.flag = !this.flag
|
|
|
+ this.saleList.forEach((item, i) => {
|
|
|
+ if (this.flag) {
|
|
|
+ item.isShow = true
|
|
|
+ } else {
|
|
|
+ item.isShow = false
|
|
|
}
|
|
|
- }).catch((error) => {
|
|
|
- console.log(error);
|
|
|
- });
|
|
|
-
|
|
|
+ })
|
|
|
},
|
|
|
- getUrlParam(name) {
|
|
|
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
|
|
|
- var r = window.location.search.substr(1).match(reg); //匹配目标参数
|
|
|
- if (r != null) return unescape(r[2]);
|
|
|
- return null; //返回参数值
|
|
|
+ getALlList(list) {
|
|
|
+ list.forEach((item, i) => {
|
|
|
+ this.handleShow(item, i)
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
})
|