You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong_qianduan/pages/invoice/list.vue

212 lines
4.9 KiB

<template>
<view class="invoice">
11 months ago
<view class="invoice-tab">
<u-tabs height="126" :list="list" :is-scroll="false" v-model="current" active-color="#FF2525"
inactive-color="#6F6F6F" font-size="30" @change="onTab"></u-tabs>
11 months ago
</view>
<view class="invoice-bd" v-if="current == 0">
<view class="item" v-for="(item,index) in invoicList" :key="index">
<view class="a">{{item.header}}</view>
11 months ago
<view class="b">
<view class="p"><text>{{item.price}}</text></view>
<view class="t">{{item.created_at}}</view>
11 months ago
</view>
</view>
</view>
<view class="invoice-bd" v-else>
<view class="li" v-for="(item,index) in invoicMyList" :key="index">
<view class="a">{{item.type==1?'普通增值税发票':'普通发票'}}-{{item.invoice.source==1?'个人':'单位'}}</view>
11 months ago
<view class="b">
<view class="d">
<view class="n">{{item.header}}</view>
<view class="s">税号{{item.duty_no}}</view>
11 months ago
</view>
<view class="e" @click="toEdit(item)">
10 months ago
<image :src="$picUrl+'/static/order/edit.png'"></image>
11 months ago
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import * as InvoiceApi from '@/api/invoice'
export default {
data() {
return {
list: [{
name: '发票记录'
}, {
name: '发票抬头'
11 months ago
}],
current: 0,
invoicList: [],
invoicMyList: [],
};
},
10 months ago
/**
* 生命周期函数--监听页面的卸载
*/
onUnload() {
// 卸载全局事件订阅
uni.$off('updateDataEvent')
},
onLoad(op) {
this.current = op.current || 0
if (this.current == 0) {
this.getInvoicingLog()
11 months ago
}
if (this.current == 1) {
this.getInvoicingMy()
}
},
10 months ago
onShow() {
uni.$on('updateDataEvent', () => {
if (this.current == 0) {
this.getInvoicingLog()
}
if (this.current == 1) {
this.getInvoicingMy()
}
})
},
methods: {
toEdit(item) {
uni.navigateTo({
url: "/pages/invoice/edit?detail=" + JSON.stringify(item) + '&source=' + 2
})
},
onTab(e) {
this.current = e
console.log(e)
if (e == 0) {
this.getInvoicingLog()
11 months ago
}
if (e == 1) {
this.getInvoicingMy()
11 months ago
}
},
timestampToYds(timestamp) {
//时间戳为10位需*1000,为13位不需乘1000
let times = timestamp.length == 10 ? times * 1000 : timestamp;
var date = new Date(times);
let Y = date.getFullYear(),
M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1),
D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()),
h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()),
m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()),
s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s
},
getInvoicingMy(canReset = false) {
let app = this;
InvoiceApi.myInvoicing()
.then(result => {
app.invoicMyList = result.data.list
})
// 相应全局事件订阅: 刷新上级页面数据
canReset && uni.$emit('syncRefresh', true, true)
},
getInvoicingLog(canReset = false) {
let app = this;
InvoiceApi.invoicingLog()
.then(result => {
if (result.data.list.length > 0) {
result.data.list.forEach((elem) => {
elem.created_at = app.timestampToYds(elem.created_at)
});
}
app.invoicList = result.data.list
})
// 相应全局事件订阅: 刷新上级页面数据
canReset && uni.$emit('syncRefresh', true, true)
},
},
}
</script>
<style lang="scss" scoped>
.invoice {
&-tab {
margin-top: 6rpx;
overflow: hidden;
11 months ago
}
&-bd {
11 months ago
overflow: hidden;
.li {
padding: 40rpx 35rpx 40rpx 64rpx;
overflow: hidden;
background-color: #fff;
.a {
font-size: 32rpx;
font-weight: 400;
color: #454545;
}
.b {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-top: 30rpx;
.d {
color: #AEAEAE;
11 months ago
font-size: 32rpx;
line-height: 60rpx;
}
.e {
width: 44rpx;
height: 44rpx;
image {
width: 100%;
height: 100%;
}
11 months ago
}
}
}
.item {
padding: 40rpx 35rpx 40rpx 64rpx;
overflow: hidden;
background-color: #fff;
margin-top: 10rpx;
.a {
11 months ago
font-size: 32rpx;
font-weight: 400;
color: #454545;
}
.b {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-top: 30rpx;
.p {
color: #F21A1C;
font-size: 24rpx;
text {
font-size: 32rpx;
}
}
.t {
font-size: 32rpx;
font-weight: 400;
color: #AEAEAE;
}
11 months ago
}
}
}
}
</style>