浏览代码

增加开票功能

gcz 1 年之前
父节点
当前提交
e590a3783a
共有 1 个文件被更改,包括 199 次插入0 次删除
  1. 199 0
      center/invoicedetails.vue

+ 199 - 0
center/invoicedetails.vue

@@ -0,0 +1,199 @@
+<template>
+	<view class="pages">
+		<view class="" :style="{height: navHeight+'px' }"></view>
+		<view class="navbar-box">
+			<u-navbar title="开票详情" :safeAreaInsetTop="true" @leftClick="leftClick" :titleStyle="{color:'#fff'}" leftIconColor="#fff" bgColor="#EF1818"></u-navbar>
+		</view>
+		<view class="page-wrap">
+			<view class="block-wrap">
+				<view class="title">开票详情</view>
+				<!-- <view class="item u-flex">
+					<view class="left">抬头类型 </view>
+					<view class="right">{{抬头类型 }}</view>
+				</view> -->
+				<view class="item u-flex" v-for="(item,index) in detailsInfo[details.handlerType]" :key="index">
+					<view class="left">{{item.name}}</view>
+					<view class="con">
+						<text v-if="item.key=='handlerType'">{{details[item.key]|filterHandlerType}}</text>
+						<text :style="{color:details.status>2?'#EF0E0E':'#6CC079'}" class="status" v-else-if="item.key=='status'">{{details[item.key]|filterInvoiceState}}</text>
+						<text v-else-if="item.key=='invoiceAmount'">¥ {{details[item.key]}}</text>
+						<text v-else>{{details[item.key]}}</text>
+					</view>
+				</view>
+				<view class="item u-flex" v-if="details.errReason&&details.status==3">
+					<view class="left">开票失败原因</view>
+					<view class="con">
+						{{details.errReason}}
+					</view>
+				</view>
+				<view class="item u-flex" v-if="details.redErrReason&&details.status==7">
+					<view class="left">冲红失败原因</view>
+					<view class="con">
+						{{details.redErrReason}}
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="page-bottom" v-if="details.status===3||details.status===4||details.status===6">
+			<view class="inner">
+				<view class="btn active" v-if="cansubmit" @click="submitorder">重新开票</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { systemInfo } from "@/mixin.js";
+	export default {
+		mixins: [systemInfo], // 使用mixin
+		data() {
+			return {
+				staticUrl:this.$commonConfig.staticUrl,
+				orderId:'',
+				details:{},
+				detailsInfo:{//1:个人,2:企业
+					1:[
+						{name:'抬头类型',key:'handlerType'},
+						{name:'抬头名称',key:'name'},
+						// {name:'税    号',key:'creditCode'},
+						{name:'开票金额 ',key:'invoiceAmount'},
+						{name:'电子邮箱 ',key:'email'},
+						{name:'开具状态 ',key:'status'},
+					],
+					2:[
+						{name:'抬头类型',key:'handlerType'},
+						{name:'抬头名称',key:'name'},
+						{name:'税号',key:'creditCode'},
+						{name:'开票金额 ',key:'invoiceAmount'},
+						{name:'电子邮箱 ',key:'email'},
+						{name:'开具状态 ',key:'status'},
+						// {name:'失败原因 ',key:'errReason'}
+					],
+				},
+				cansubmit:true,
+				formData:{
+					orderId:'',
+					invoiceAmount:'',
+					invoiceHandler:{
+						handlerType:'',
+						name:'',
+						email:''
+					}
+					
+				}
+			}
+		},
+		onShow() {
+			if(this.orderId){
+				this.getInvoiceDetail();
+			}
+		},
+		onLoad(page) {
+			this.orderId = page.id;
+			this.getSystemInfo();
+		},
+		methods: {
+			leftClick(e){
+				let pages = getCurrentPages();
+				if(pages.length==1){
+					uni.$u.route('/pages/index/index')
+				}else{
+					uni.navigateBack()
+				};
+			},
+			getInvoiceDetail(){
+				this.$u.api.getInvoiceDetail({orderId:this.orderId}).then(res=>{
+					// console.log('res',res);
+					this.details = res.data;
+				}).catch(err=>{
+					console.log('getInvoiceInfo',err);
+				})
+			},
+			submitorder(){
+				uni.redirectTo({
+					url: `/center/invoice?id=${this.orderId}`
+				})
+				return
+				// this.formData.orderId =this.details.orderId;
+				// this.formData.invoiceAmount = this.details.invoiceAmount;
+				// this.formData.invoiceHandler.handlerType = this.details.handlerType;
+				// this.formData.invoiceHandler.name = this.details.name;
+				// this.formData.invoiceHandler.email = this.details.email;
+				// if(this.details.handlerType===2){//企业
+				// 	this.formData.invoiceHandler.creditCode = this.details.creditCode;
+				// }
+				// this.$u.api.submitInvoice(this.formData).then(res=>{
+				// 	uni.$u.toast(res.msg)
+				// 	// uni.navigateBack()
+				// 	setTimeout(()=>{
+				// 		uni.redirectTo({
+				// 			url: `/center/orderdetails?id=${this.orderId}`
+				// 		})
+				// 	},1500)
+				// }).catch(err=>{
+				// 	console.log('submitorder',err);
+				// })
+			}
+
+		}
+	}
+</script>
+<style>
+	page{background-color: #F7F7F9;}
+</style>
+<style lang="scss" scoped>
+.block-wrap{
+	background-color: #fff;
+	border-radius: 16rpx;
+	padding: 30rpx 32rpx 30rpx;
+	margin-bottom: 24rpx;
+	.title{
+		font-size: 28rpx;
+		font-weight: 500;
+		color: #363636;
+		margin-bottom: 28rpx;
+	}
+	.item{
+		margin-bottom: 12rpx;
+		font-size: 28rpx;
+		font-weight: 400;
+		color: #363636;
+		line-height: 40rpx;
+		.left{
+			color: #999999;
+			width: 184rpx;
+		}
+	}
+}
+.page-bottom{
+	$height:98rpx;
+	position: relative;
+	z-index: 1001;
+	height: $height;
+	padding: 24rpx 20rpx;
+	.inner{
+		position: fixed;
+		background-color: transparent;
+		height: $height;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		padding: 24rpx 20rpx;
+		// box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(215,215,215,0.5);
+		.btn{
+			font-size: 28rpx;
+			height: 100%;
+			line-height: $height;
+			border-radius: 50rpx;
+			padding: 0 50rpx;
+			background-color: #eee;
+			color: #333;
+			text-align: center;
+			&.active{
+				background: linear-gradient(90deg, #FF7979 0%, #ED0000 100%);
+				color: #fff;
+			}
+		}
+	}
+}
+</style>