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

245 lines
4.8 KiB

5 months ago
<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,item)">
<view class="a">
<text>{{item.source==2?'单位':'个人'}}</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)">
<u-icon :name="tabMo == index?'checkmark-circle-fill':'checkmark-circle'" :color="tabMo == index?'#E02E24':'#999'" customStyle="margin-right:6rpx" size="45"></u-icon>
{{tabMo == index?'已设为默认':'设为默认'}}
</view>
<view class="d">
<text @click.stop="toDetail(item.id,item)">编辑</text>
<text @click.stop="onDel(item.id)">删除</text>
</view>
</view>
</view>
</view>
<view class="invoice-fd" @click="onAddInvoice">
<text>+</text>添加发票抬头
</view>
<addShuiyin />
</view>
</template>
<script>
import Empty from '@/components/empty'
import * as InvoiceApi from '@/api/invoice'
export default {
data() {
return {
isLoading: false,
tabIndex: 1,
isShow: true,
invoicList: [],
orderId: '',
tabMo:0
};
},
onLoad(op) {
this.orderId = op.orderId
this.getMyInvoicing()
},
methods: {
// 确认收货
onDel(Id) {
const app = this
uni.showModal({
title: '友情提示',
content: '确认删除了吗?',
success(o) {
if (o.confirm) {
InvoiceApi.invoicingDelNew({id:Id})
.then(result => {
// 显示成功信息
app.$success(result.message)
// 刷新订单列表
app.getMyInvoicing()
})
}
}
});
},
getMyInvoicing() {
let app = this;
InvoiceApi.myInvoicing()
.then(result => {
app.invoicList = result.data.list
})
},
selectItem(i, Id) {
this.tabMo = i
},
onUse(item) {
uni.redirectTo({
url: "/pages/invoice/edit?detail=" + JSON.stringify(item) + '&source=' + 1 + '&orderId=' + this.orderId
})
},
toDetail(id,item) {
uni.navigateTo({
url: "/pages/invoice/editset?id=" + id+'&detailObj='+JSON.stringify(item)
})
},
onAddInvoice() {
uni.navigateTo({
url: "/pages/invoice/editset"
})
},
}
}
</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>