完成发票初始版本

This commit is contained in:
2024-04-25 16:53:38 +08:00
parent d1b2c89b1c
commit b7e831662e
23 changed files with 581 additions and 31 deletions

View File

@@ -24,6 +24,11 @@ Page({
handleBack() {
wx.navigateBack()
},
jumpToDetail() {
wx.redirectTo({
url: '/pages/invoiceDetailContent/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@@ -51,7 +51,13 @@
<navigator title="发票详细" canBack="{{true}}" bind:back="back" />
<view class="wrapper">
<view> 尊敬的客户,您好 </view>
<view> 已经为您开具订单2222222222的发票发票数量共计1张如下 </view>
<view> 发票裂隙数电发票电子发票发票号码54645654656556您可以点击“发票下载”获取该发票文件 </view>
<view style="margin-top: 40rpx;"> 尊敬的客户,您好 </view>
<view style="margin-top: 20rpx;"> 已经为您开具订单2222222222的发票发票数量共计1张如下 </view>
<view style="margin-top: 20rpx;"> 发票类型数电发票电子发票发票号码54645654656556您可以点击“发票XML文件下载”获取该发票XML文件或者点击“发票PDF文件下载”获取该发票PDF文件 </view>
<view style="margin-top: 20rpx;"> 同时您也可以到预留的邮箱中查看下载发票。 </view>
</view>
<view class="operate">
<van-button type="info" style="flex: 1;" block> 下载 </van-button>
<van-button type="info" style="flex: 1;margin-left: 40rpx;" block bind:click="jumpToDetail"> 发票明细 </van-button>
</view>

View File

@@ -4,4 +4,16 @@
display: flex;
align-items: center;
margin-top: 50rpx;
}
page {
background-color: var(--transparent-green);
}
.operate {
margin-top: 80rpx;
display: flex;
align-items: center;
margin-left: 30rpx;
margin-right: 30rpx;
}

View File

@@ -0,0 +1,84 @@
import { getInvoiceInfoDetail } from "../../service/invoice";
// pages/invoiceDetailContent/index.js
Page({
/**
* 页面的初始数据
*/
data: {
detail: {},
header: [
{ key: 'time', title: '月份' },
{ title: '电表地址',renderBody: (item) => item.meter.address },
{ key: 'money', title: '金额' },
]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const { id } = options;
this.getDetail(id)
},
async getDetail(id) {
const { code, message, data } = await getInvoiceInfoDetail(id);
this.setData({
detail: data
})
},
jumpToInvoiceDetail() {
wx.redirectTo({
url: '/pages/invoiceDetail/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@@ -0,0 +1,9 @@
{
"usingComponents": {
"van-field": "@vant/weapp/field/index",
"table": "/components/table/table",
"van-button": "@vant/weapp/button/index",
"navigator": "/components/navigator/index"
},
"navigationStyle": "custom"
}

View File

@@ -0,0 +1,80 @@
<!--pages/invoiceDetailContent/index.wxml-->
<navigator title="发票明细" canBack="{{true}}" />
<view class="wrapper">
<van-field
value="{{detail.tenement.name}}"
label="开票名称 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.approveTime}}"
label="申请时间 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.finishTime}}"
label="开票时间 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.number}}"
label="发票编号 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.money}}"
label="开票金额 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.invoice.content}}"
label="开票内容 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
value="{{detail.invoice.type === 0 ? '普通电子发票' : '增值税专用电子发票'}}"
label="发票类型 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<van-field
label="电费情况 :"
readonly
autosize="{{true}}"
type="textarea"
border="{{false}}"
title-width="160rpx"
/>
<table header="{{header}}" list="{{detail.list}}" />
<view style="padding-top: 40rpx;padding-bottom: 40rpx;display: flex; justify-content: center;">
<van-button type="info" bind:click="jumpToInvoiceDetail">发票</van-button>
</view>
</view>
<view style="height: 50rpx;"></view>

View File

@@ -0,0 +1,10 @@
/* pages/invoiceDetailContent/index.wxss */
page {
background-color: var(--transparent-green);
}
.wrapper {
background-color: #fff;
margin: 30rpx;
border-radius: 24rpx;
}

View File

@@ -1,3 +1,7 @@
import { getAlreadyInvoiceList } from "../../../../service/invoice"
import { alertInfo } from "../../../../utils/index";
import request from '../../../../utils/request'
const { OK } = request;
// pages/invoiceList/components/already/index.js
Component({
@@ -12,13 +16,45 @@ Component({
* 组件的初始数据
*/
data: {
page: 1,
list: []
},
onRefresh() {
console.log('--------------')
},
lifetimes: {
attached() {
this.getList();
}
},
/**
* 组件的方法列表
*/
methods: {
async getList() {
const { page, list = [] } = this.data;
const { code, message, data } = await getAlreadyInvoiceList(page);
if (!data.length) {
alertInfo("没用更多数据了")
return
}
this.setData({
list: [...list, ...data, ],
page: page + 1,
})
},
scrollToLower() {
this.getList();
},
jumpToDetail() {
wx.navigateTo({
url: '/pages/invoiceDetail/index',
})
},
jumpToDetailContent() {
wx.navigateTo({
url: '/pages/invoiceDetailContent/index',
})
}
}
})

View File

@@ -1,26 +1,31 @@
<!--pages/invoiceList/components/already/index.wxml-->
<view class="card">
<view class="left">
<view class="title">
河北华昌宝能售电有限公司
</view>
<view class="invoiceContent">
发票内容:电费
</view>
<view class="invoiceType">
发票类型:增值税专用发票
</view>
<view class="time">
2024年3月3日 18:00:00
</view>
</view>
<view class="right">
<view class="money"> ¥3026 </view>
<view class="operate">
<view style="margin-top: 20rpx; margin-bottom: 20rpx;">
<van-button type="info" class="invoiceBtn" bind:click="submit" size="small">发票</van-button>
<scroll-view scroll-y lower-threshold="100px" bindscrolltolower="scrollToLower" style="height: 80vh;" scroll-top="{{topHeight}}px" class="scrView">
<view class="card" wx:for="{{list}}">
<view class="left">
<view class="title">
{{item.invoice.name}}
</view>
<view class="invoiceContent">
发票内容: {{item.invoice.content}}
</view>
<view class="invoiceType">
发票类型:{{ item.invoice.type === 0 ? '普通电子发票' : '增值税专用电子发票' }}
</view>
<view class="time">
{{item.finishTime}}
</view>
</view>
<view class="right">
<view class="money"> ¥{{item.money}} </view>
<view class="operate">
<view style="margin-top: 20rpx; margin-bottom: 20rpx;">
<van-button type="info" class="invoiceBtn" bind:click="submit" size="small" bind:click="jumpToDetail">发票</van-button>
</view>
<van-button type="info" class="detailBtn" bind:click="submit" size="small" bind:click="jumpToDetailContent">明细</van-button>
</view>
<van-button type="info" class="detailBtn" bind:click="submit" size="small">明细</van-button>
</view>
</view>
</view>
<view style="height: 50rpx;"></view>
</scroll-view>

View File

@@ -1,4 +1,5 @@
import { getInvoiceInfo, updateInvoiceInfo } from "../../../../service/invoice"
import { getUserInfo } from "../../../../service/user";
import { alertInfo, alertSuccess } from "../../../../utils/index";
// pages/invoiceList/components/info/index.js
@@ -13,6 +14,7 @@ Component({
lifetimes: {
attached() {
this.getDetail();
this.getUser();
}
},
/**
@@ -33,6 +35,10 @@ Component({
this.setData({ detail: {...data, },editType: 'detail', formData: {} })
},
async getUser() {
const { code, message, data } = await getUserInfo()
this.setData({ user: data });
},
changeEditType() {
this.setData({ editType: 'edit', formData: this.data.detail })
},

View File

@@ -4,7 +4,7 @@
<view
slot="operate"
class="cardOperate"
wx:if="{{editType === 'detail'}}"
wx:if="{{editType === 'detail' && user.isAdmin}}"
bind:tap="changeEditType"
>
<van-icon name="edit" />

View File

@@ -40,7 +40,7 @@ Page({
list: [...tenements]
})
},
async getCode(e, that) {
async getCode() {
// const { index, id } = e.currentTarget.dataset;
const tenement = wx.getStorageSync('tenement');
const { code, message, data } = await getWxCode(tenement.id)