Files
dianxiaorui-uniapp/pageMake/invoice/invoice.vue
PC-202306242200\Administrator 4d06351f6a no message
2026-03-28 23:00:29 +08:00

128 lines
3.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="invoice">
<view class="invoice_tip">
<view style="display: flex; align-items: center">
<up-icon name="error-circle-fill" color="#3c9cff"></up-icon>
温馨提示
</view>
<view>1.云充电仅为平台方实际开票主体以下方展示的开票公司为准</view>
<view>2.若超过20个工作日仍未收到发票您可以通过(区号)+12366向开票公司所在区域的主管税务机关进行反馈处理</view>
</view>
<view style="height: 20rpx"></view>
<z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
<view class="invoice_list" v-for="(item, index) in dataList" :key="index">
<view class="invoice_list_view">
<view class="invoice_list_view_left" style="display: flex; align-items: center">
<up-icon name="clock-fill"></up-icon>
{{item.createTime}}
</view>
<up-icon name="arrow-right"></up-icon>
</view>
<view class="invoice_list_view">
<view class="invoice_list_view_left">发票抬头</view>
<view class="invoice_list_view_right">{{item.invoiceTitle}}</view>
</view>
<view class="invoice_list_view">
<view class="invoice_list_view_left">开票运营商</view>
<view class="invoice_list_view_right">{{item.merchantInvoice || '-'}}</view>
</view>
<view style="border: 1px dashed #eee"></view>
<view style="height: 20rpx"></view>
<view style="display: flex; align-items: center; justify-content: space-between">
<view>
<up-tag v-if="item.status == 0" text="待开票" type="warning" plain plainFill></up-tag>
<up-tag v-if="item.status == 1" text="已开票" type="success" plain plainFill></up-tag>
<up-tag v-if="item.status == -1" text="取消" type="error" plain plainFill></up-tag>
</view>
<view style="font-size: 36rpx; font-weight: bold">
{{item.invoiceAmount}}
<text style="font-size: 30rpx"></text>
</view>
</view>
</view>
</z-paging>
<view style="height: 150rpx;"></view>
<view style="position: fixed; bottom: 0; left: 0; width: 750rpx; padding: 20rpx 50rpx; background-color: #fff">
<up-button @click="navTo('/pageMake/invoice/applyFor')" :customStyle="{ height: '80rpx' }" color="#4879e6" text="申请开票" shape="circle"></up-button>
</view>
</view>
</template>
<script setup>
import { onLoad, onShow, onPullDownRefresh, onPageScroll, onReachBottom } from '@dcloudio/uni-app';
import { useNav } from '@/hooks/useNav.js';
import { ref } from 'vue';
const { nav, navTo } = useNav();
import { invoiceList } from '@/api/api.js';
const dataList = ref([]);
const paging = ref(null);
const queryList = async (pageNo, pageSize) => {
const params = {
current: pageNo,
pageSize: pageSize
};
invoiceList(params)
.then((res) => {
paging.value.complete(res);
uni.hideLoading();
})
.catch((res) => {
paging.value.complete(false);
uni.hideLoading();
});
};
let isPagingRefNotFound = () => {
return !paging.value;
};
onPullDownRefresh(() => {
if (isPagingRefNotFound()) return;
paging.value.reload().catch(() => {});
});
onPageScroll((e) => {
if (isPagingRefNotFound()) return;
paging.value.updatePageScrollTop(e.scrollTop);
e.scrollTop < 10 && paging.value.doChatRecordLoadMore();
});
onReachBottom(() => {
if (isPagingRefNotFound()) return;
paging.value.pageReachBottom();
});
</script>
<style scoped lang="scss">
.invoice {
&_tip {
padding: 20rpx;
font-size: 24rpx;
color: #3c9cff;
background-color: rgba(60, 156, 255, 0.2);
view {
line-height: 40rpx;
}
}
&_list {
padding: 15rpx 30rpx;
background-color: #fff;
&_view {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
margin-bottom: 25rpx;
&_left {
color: #646368;
}
&_right {
color: #262626;
}
}
}
}
</style>