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.
211 lines
4.9 KiB
211 lines
4.9 KiB
<template>
|
|
<view class="invoice">
|
|
<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>
|
|
</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>
|
|
<view class="b">
|
|
<view class="p">¥<text>{{item.price}}</text></view>
|
|
<view class="t">{{item.created_at}}</view>
|
|
</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>
|
|
<view class="b">
|
|
<view class="d">
|
|
<view class="n">{{item.header}}</view>
|
|
<view class="s">税号:{{item.duty_no}}</view>
|
|
</view>
|
|
<view class="e" @click="toEdit(item)">
|
|
<image :src="$picUrl+'/static/order/edit.png'"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import * as InvoiceApi from '@/api/invoice'
|
|
export default {
|
|
data() {
|
|
return {
|
|
list: [{
|
|
name: '发票记录'
|
|
}, {
|
|
name: '发票抬头'
|
|
}],
|
|
current: 0,
|
|
invoicList: [],
|
|
invoicMyList: [],
|
|
};
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面的卸载
|
|
*/
|
|
onUnload() {
|
|
// 卸载全局事件订阅
|
|
uni.$off('updateDataEvent')
|
|
},
|
|
onLoad(op) {
|
|
this.current = op.current || 0
|
|
if (this.current == 0) {
|
|
this.getInvoicingLog()
|
|
}
|
|
if (this.current == 1) {
|
|
this.getInvoicingMy()
|
|
}
|
|
},
|
|
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()
|
|
}
|
|
if (e == 1) {
|
|
this.getInvoicingMy()
|
|
}
|
|
},
|
|
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;
|
|
}
|
|
|
|
&-bd {
|
|
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;
|
|
font-size: 32rpx;
|
|
line-height: 60rpx;
|
|
}
|
|
|
|
.e {
|
|
width: 44rpx;
|
|
height: 44rpx;
|
|
|
|
image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.item {
|
|
padding: 40rpx 35rpx 40rpx 64rpx;
|
|
overflow: hidden;
|
|
background-color: #fff;
|
|
margin-top: 10rpx;
|
|
|
|
.a {
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|