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/index.vue

268 lines
5.4 KiB

<template>
<view class="invoice">
<view class="invoice-bd">
<view class="item" :class="tabIndex == index?'item-on':''" v-for="(item,index) in invoicList" :key="index">
<view class="hd">
<view class="l" @click="toDetail(item.id)">
<view class="a">
<text>单位</text>{{item.header}}
</view>
<view class="b">
<text>税号</text>{{item.duty_no}}
</view>
</view>
<view class="r" @click.stop="onUse(item)">使用</view>
</view>
<view class="bd">
<view class="c" @click.stop="selectItem(index,item.id)">
<image v-if="tabIndex == i" src="/static/invoice/select-on.png"></image>
<image v-else src="/static/invoice/select.png"></image>
{{tabIndex == i?'已设为默认':'设为默认'}}
</view>
<view class="d">
<text @click.stop="onEdit(item)">编辑</text>
<text @click.stop="onDel(item.id)">删除</text>
</view>
</view>
</view>
</view>
<view class="invoice-fd" @click="onAddInvoice">
<text>+</text>添加发票抬头
</view>
<empty v-if="isShow" :isLoading="isLoading" tips="暂无相关信息" />
</view>
</template>
<script>
import * as InvoiceApi from '@/api/invoice'
export default {
data() {
return {
isLoading: false,
tabIndex: 1,
isShow: true,
invoicList: [],
orderId: '',
order: ''
};
},
10 months ago
/**
* 生命周期函数--监听页面的卸载
*/
onUnload() {
// 卸载全局事件订阅
uni.$off('updateDataEvent')
},
onLoad(op) {
this.order = op.order ? JSON.parse(op.order) : '';
10 months ago
this.orderId = op.orderId,
this.getMyInvoicing()
},
10 months ago
onShow() {
uni.$on('updateDataEvent', () => {
this.getMyInvoicing()
})
},
methods: {
// 确认收货
onDel(Id) {
const app = this
uni.showModal({
title: '友情提示',
content: '确认删除了吗?',
success(o) {
if (o.confirm) {
InvoiceApi.invoicingDel(Id)
.then(result => {
// 显示成功信息
app.$success(result.message)
// 刷新订单列表
app.getMyInvoicing()
})
}
}
});
},
getMyInvoicing(canReset = false) {
let app = this;
InvoiceApi.myInvoicing()
.then(result => {
app.invoicList = result.data.list
})
// 相应全局事件订阅: 刷新上级页面数据
canReset && uni.$emit('syncRefresh', true, true)
},
selectItem(i, Id) {
this.tabIndex = i
},
onUse(item) {
uni.navigateTo({
url: "/pages/invoice/edit?detail=" + JSON.stringify(item) + '&source=' + 1 + '&orderId=' + this
.orderId + '&order=' + (this.order ? JSON.stringify(this.order) : '')
.orderId
})
},
onEdit(item) {
uni.navigateTo({
url: "/pages/invoice/edit?detail=" + JSON.stringify(item) + '&source=' + 4
.orderId
})
},
toDetail(id) {
uni.navigateTo({
url: "/pages/invoice/detail?id=" + id
})
},
onAddInvoice() {
uni.navigateTo({
url: "/pages/invoice/edit?source=" + 3
})
},
}
}
</script>
<style lang="scss" scoped>
.invoice {
padding: 0 0 30rpx;
overflow: hidden;
&-bd {
overflow: hidden;
.item {
padding: 10rpx 14rpx 10rpx 60rpx;
box-sizing: border-box;
overflow: hidden;
margin-top: 20rpx;
background-color: #FFFFFF;
&:first-child {
margin-top: 0;
}
.hd {
display: flex;
align-items: center;
justify-content: space-between;
overflow: hidden;
border-bottom: 1px solid #F3F3F3;
.a {
padding-top: 15rpx;
display: flex;
align-items: center;
font-size: 32rpx;
font-weight: 400;
color: #262626;
text {
width: 98rpx;
height: 44rpx;
background: #FDF4F4;
border-radius: 8rpx;
text-align: center;
display: block;
margin-right: 30rpx;
font-size: 32rpx;
font-weight: 500;
color: #E02E24;
line-height: 44rpx;
}
}
.b {
padding: 20rpx 0;
font-size: 32rpx;
font-weight: 400;
color: #838383;
text {
color: #262626;
margin-right: 30rpx;
}
}
.r {
width: 104rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 4rpx;
text-align: center;
line-height: 60rpx;
border: 1px solid #CACACA;
font-size: 28rpx;
font-weight: 400;
color: #555555;
}
}
.bd {
padding: 20rpx 0;
overflow: hidden;
display: flex;
align-items: center;
justify-content: space-between;
.c {
flex: 1;
display: flex;
align-items: center;
font-size: 32rpx;
font-weight: 400;
color: #A2A2A2;
image {
width: 40rpx;
height: 40rpx;
margin-right: 30rpx;
}
}
.d {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #B8B8B8;
text {
margin-left: 30rpx;
cursor: pointer;
}
}
}
&-on {
.bd .c {
color: #E02E24;
}
}
}
}
&-fd {
width: 664rpx;
height: 104rpx;
background: #F55349;
border-radius: 8rpx;
text-align: center;
margin: 0 auto;
margin-top: 30rpx;
font-size: 32rpx;
font-weight: 500;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
text {
font-size: 60rpx;
margin-right: 14rpx;
margin-top: -5px;
}
}
}
</style>