no message
This commit is contained in:
172
pageMake/invoice/applyFor.vue
Normal file
172
pageMake/invoice/applyFor.vue
Normal file
@@ -0,0 +1,172 @@
|
||||
<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个工作日内寄出</view>
|
||||
<view>3.单笔订单只支持开具一种发票类型</view>
|
||||
<view>4.云快充仅为平台方,实际开票主体以申请开票时展示的开票运营商公司为准</view>
|
||||
<view>5.发票由各家电站运营商提供,一起申请可能会生成多张发票</view>
|
||||
<view>6.若超过20个工作日仍未收到发票,您可以通过(区号)+12366向开票公司所在区域的主管税务机关进行反馈处理</view>
|
||||
</view>
|
||||
<view style="height: 20rpx"></view>
|
||||
|
||||
<view>
|
||||
<z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
|
||||
<up-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange">
|
||||
<view class="invoice_list" style="margin-bottom: 20rpx" v-for="(item, index) in dataList" :key="index">
|
||||
<view style="display: flex; align-items: center; font-weight: bold; font-size: 30rpx; margin-bottom: 30rpx">
|
||||
<up-checkbox shape="circle" :customStyle="{ margin: '0' }" :name="item.id"></up-checkbox>
|
||||
充电单号:{{ item.orderNo }}
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; background-color: #f6f6f6; border-radius: 15rpx; padding: 20rpx">
|
||||
<view style="font-size: 28rpx">
|
||||
<view style="margin-bottom: 15rpx">即途展厅</view>
|
||||
<view style="margin-bottom: 15rpx">{{item.electricityAmount}}电费</view>
|
||||
<view>{{ item.serviceAmount }}服务费</view>
|
||||
</view>
|
||||
<view style="text-align: right">
|
||||
<view style="margin-bottom: 25rpx; font-size: 36rpx; font-weight: bold; color: #4879e6">
|
||||
{{ item.actuallyAmount }}
|
||||
<text style="font-size: 30rpx">元</text>
|
||||
</view>
|
||||
<view style="font-size: 28rpx">个人支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</up-checkbox-group>
|
||||
</z-paging>
|
||||
</view>
|
||||
<view
|
||||
style="
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 750rpx;
|
||||
padding: 20rpx 50rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<view style="display: flex; align-items: center">
|
||||
<up-checkbox label="本页全选" v-model:checked="allCel" shape="circle" usedAlone @change="allCheck" :customStyle="{ margin: '0 10rpx 0 0' }"></up-checkbox>
|
||||
</view>
|
||||
<view style="width: 230rpx">
|
||||
<up-button
|
||||
@click="navTo(`/pageMake/invoice/applyForDay?list=${encodeURIComponent(JSON.stringify(checkboxValue1))}`)"
|
||||
:customStyle="{ height: '80rpx', width: '230rpx' }"
|
||||
color="#4879e6"
|
||||
text="下一步"
|
||||
shape="circle"
|
||||
:disabled="checkboxValue1.length == 0"
|
||||
></up-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { onLoad, onShow, onPullDownRefresh, onPageScroll, onReachBottom } from '@dcloudio/uni-app';
|
||||
import { useNav } from '@/hooks/useNav.js';
|
||||
const { nav, navTo } = useNav();
|
||||
import { orderList } from '@/api/api.js';
|
||||
|
||||
let checkboxValue1 = ref([]);
|
||||
const dataList = ref([]);
|
||||
const paging = ref(null);
|
||||
let allCel = ref(false);
|
||||
|
||||
const allCheck = (e) => {
|
||||
if (e) {
|
||||
checkboxValue1.value = dataList.value.map((item, index) => {
|
||||
return item.id;
|
||||
});
|
||||
} else {
|
||||
checkboxValue1.value = [];
|
||||
}
|
||||
allCel.value = e;
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
const queryList = async (pageNo, pageSize) => {
|
||||
const params = {
|
||||
current: pageNo,
|
||||
pageSize: pageSize
|
||||
};
|
||||
orderList(params)
|
||||
.then((res) => {
|
||||
paging.value.complete(res);
|
||||
uni.hideLoading();
|
||||
})
|
||||
.catch((res) => {
|
||||
paging.value.complete(false);
|
||||
uni.hideLoading();
|
||||
});
|
||||
};
|
||||
|
||||
const checkboxChange = (e) => {
|
||||
if (e.length == dataList.value.length) {
|
||||
allCel.value = true;
|
||||
} else {
|
||||
allCel.value = false;
|
||||
}
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
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>
|
||||
115
pageMake/invoice/applyForDay.vue
Normal file
115
pageMake/invoice/applyForDay.vue
Normal file
@@ -0,0 +1,115 @@
|
||||
<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个工作日内寄出</view>
|
||||
<view>3.单笔订单只支持开具一种发票类型</view>
|
||||
<view>4.云快充仅为平台方,实际开票主体以申请开票时展示的开票运营商公司为准</view>
|
||||
<view>5.发票由各家电站运营商提供,一起申请可能会生成多张发票</view>
|
||||
<view>6.若超过20个工作日仍未收到发票,您可以通过(区号)+12366向开票公司所在区域的主管税务机关进行反馈处理</view>
|
||||
</view>
|
||||
<view style="height: 20rpx"></view>
|
||||
|
||||
<view>
|
||||
<view class="invoice_list" style="margin-bottom: 20rpx" v-for="(item, index) in dataList" :key="index">
|
||||
<view style="display: flex; align-items: center; font-weight: bold; font-size: 30rpx; margin-bottom: 30rpx">
|
||||
<!-- <up-checkbox shape="circle" :customStyle="{ margin: '0' }" :name="item.transactionNo"></up-checkbox> -->
|
||||
开票运营商:{{ item.merchantName }}
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; background-color: #f6f6f6; border-radius: 15rpx; padding: 20rpx">
|
||||
<view style="font-size: 28rpx">
|
||||
<view style="margin-bottom: 15rpx">{{ item.electricityAmount }}电费</view>
|
||||
<view>{{ item.serviceAmount }}服务费</view>
|
||||
</view>
|
||||
<view style="text-align: right">
|
||||
<view style="margin-bottom: 25rpx; font-size: 36rpx; font-weight: bold; color: #4879e6">
|
||||
{{ item.invoiceAmount }}
|
||||
<text style="font-size: 30rpx">元</text>
|
||||
</view>
|
||||
<view style="font-size: 28rpx">个人支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
style="
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 750rpx;
|
||||
padding: 20rpx 50rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<view></view>
|
||||
<!-- <view style="display: flex; align-items: center">
|
||||
<up-checkbox label="本页全选" v-model:checked="allCel" shape="circle" usedAlone @change="allCheck" :customStyle="{ margin: '0 10rpx 0 0' }"></up-checkbox>
|
||||
</view> -->
|
||||
<view style="width: 230rpx">
|
||||
<up-button
|
||||
@click="navTo(`/pageMake/invoice/makeInvoice?list=${encodeURIComponent(JSON.stringify(checkboxValue1))}`)"
|
||||
:customStyle="{ height: '80rpx', width: '230rpx' }"
|
||||
color="#4879e6"
|
||||
text="下一步"
|
||||
shape="circle"
|
||||
></up-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { useNav } from '@/hooks/useNav.js';
|
||||
const { nav, navTo } = useNav();
|
||||
import { preApply } from '@/api/api.js';
|
||||
|
||||
const dataList = ref([]);
|
||||
let checkboxValue1 = ref([]);
|
||||
|
||||
onLoad(async (options) => {
|
||||
checkboxValue1.value = JSON.parse(decodeURIComponent(options.list));
|
||||
console.log(checkboxValue1.value);
|
||||
let _res = await preApply({ ordersIds: JSON.parse(decodeURIComponent(options.list)) });
|
||||
dataList.value = _res;
|
||||
});
|
||||
</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>
|
||||
127
pageMake/invoice/invoice.vue
Normal file
127
pageMake/invoice/invoice.vue
Normal file
@@ -0,0 +1,127 @@
|
||||
<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>
|
||||
296
pageMake/invoice/makeInvoice.vue
Normal file
296
pageMake/invoice/makeInvoice.vue
Normal file
@@ -0,0 +1,296 @@
|
||||
<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个工作日内寄出</view>
|
||||
<view>3.单笔订单只支持开具一种发票类型</view>
|
||||
<view>4.云快充仅为平台方,实际开票主体以申请开票时展示的开票运营商公司为准</view>
|
||||
<view>5.发票由各家电站运营商提供,一起申请可能会生成多张发票</view>
|
||||
<view>6.若超过20个工作日仍未收到发票,您可以通过(区号)+12366向开票公司所在区域的主管税务机关进行反馈处理</view>
|
||||
</view>
|
||||
<view style="height: 30rpx"></view>
|
||||
<view style="padding: 30rpx; font-size: 28rpx; background-color: #fff">
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
发票主体
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view class="flex-acsb" @click="show2 = true">
|
||||
<text :style="{ color: !dataFrom.subjectType ? '#808080' : '' }">
|
||||
{{ !dataFrom.subjectType ? '请选择' : columns2[0].find((val) => val.id == dataFrom.subjectType).label }}
|
||||
</text>
|
||||
<up-icon name="arrow-down"></up-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
发票类型
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view class="flex-acsb" @click="show1True">
|
||||
<text :style="{ color: !dataFrom.invoiceType ? '#808080' : '' }">
|
||||
{{ !dataFrom.invoiceType ? '请选择' : columns1[0].find((val) => val.id == dataFrom.invoiceType).label }}
|
||||
</text>
|
||||
<up-icon name="arrow-down"></up-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
发票抬头
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.invoiceTitle" placeholder="请输入发票抬头" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx" v-if="dataFrom.subjectType == 1">
|
||||
<view>
|
||||
发票税号
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.taxNumber" placeholder="请输入发票税号" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx" v-if="dataFrom.invoiceType == 2">
|
||||
<view>
|
||||
公司地址
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.registrationAddress" placeholder="请输入公司地址" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx" v-if="dataFrom.invoiceType == 2">
|
||||
<view>
|
||||
公司电话
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.registrationPhone" placeholder="请输入公司电话" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx" v-if="dataFrom.invoiceType == 2">
|
||||
<view>
|
||||
开户行名称
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.bankName" placeholder="请输入开户行名称" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx" v-if="dataFrom.invoiceType == 2">
|
||||
<view>
|
||||
开户行账号
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.bankAccount" placeholder="请输入开户行账号" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 30rpx"></view>
|
||||
<view style="padding: 30rpx; font-size: 28rpx; background-color: #fff">
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
收票人姓名
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.name" placeholder="请输入收票人姓名" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
收票人手机
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.phone" type="number" placeholder="请输入收票人手机" style="text-align: right" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
收票人地址
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.address" placeholder="请输入收票人地址" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-acsb" style="height: 80rpx">
|
||||
<view>
|
||||
收票人邮箱
|
||||
<text style="color: #f56c6c">*</text>
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="dataFrom.email" placeholder="请输入收票人邮箱" style="text-align: right" type="text" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 30rpx"></view>
|
||||
<view class="p30">
|
||||
<view style="font-weight: bold; font-size: 30rpx">发票备注:改内容会打印在发票上</view>
|
||||
<up-textarea v-model="dataFrom.invoiceRemark" placeholder="请输入内容"></up-textarea>
|
||||
</view>
|
||||
<view style="height: 150rpx"></view>
|
||||
<view
|
||||
style="
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 750rpx;
|
||||
padding: 20rpx 50rpx;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<view style="display: flex; align-items: center; font-size: 28rpx">
|
||||
<text>合计</text>
|
||||
<text style="font-size: 36rpx; font-weight: bold; margin: 0 15rpx">14.05</text>
|
||||
<text>元</text>
|
||||
</view>
|
||||
<view style="width: 230rpx">
|
||||
<up-button @click="applyCon" :customStyle="{ height: '80rpx', width: '230rpx' }" color="#4879e6" text="确认开票" shape="circle"></up-button>
|
||||
</view>
|
||||
</view>
|
||||
<up-picker @confirm="aaa1" keyName="label" :show="show1" @cancel="show1 = false" :columns="columns1"></up-picker>
|
||||
<up-picker @confirm="aaa2" keyName="label" :show="show2" @cancel="show2 = false" :columns="columns2"></up-picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue';
|
||||
import { apply } from '@/api/api.js';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
|
||||
let checkboxValue1 = ref([]);
|
||||
let dataFrom = ref({
|
||||
invoiceType: null,
|
||||
subjectType: null,
|
||||
ordersIds: []
|
||||
});
|
||||
let show1 = ref(false);
|
||||
let show2 = ref(false);
|
||||
|
||||
onLoad(async (options) => {
|
||||
console.log(options);
|
||||
console.log(JSON.parse(decodeURIComponent(options.list)));
|
||||
dataFrom.value.ordersIds = JSON.parse(decodeURIComponent(options.list));
|
||||
});
|
||||
|
||||
const applyCon = async () => {
|
||||
if (!dataFrom.value.subjectType) return uni.showToast({ title: '请选择发票主体', icon: 'none' });
|
||||
if (!dataFrom.value.invoiceType) return uni.showToast({ title: '请选择发票类型', icon: 'none' });
|
||||
if (!dataFrom.value.invoiceType == 1 && !dataFrom.value.taxNumber) return uni.showToast({ title: '请输入发票税号', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.registrationPhone) return uni.showToast({ title: '请输入发票税号', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.invoiceType == 2 && !dataFrom.value.taxNumber) return uni.showToast({ title: '请输入发票税号', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.invoiceType == 2 && !dataFrom.value.registrationAddress)
|
||||
return uni.showToast({ title: '请输入公司地址', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.invoiceType == 2 && !dataFrom.value.registrationPhone) return uni.showToast({ title: '请输入公司电话', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.invoiceType == 2 && !dataFrom.value.bankName) return uni.showToast({ title: '请输入开户行名称', icon: 'none' });
|
||||
if (!dataFrom.value.subjectType == 1 && !dataFrom.value.invoiceType == 2 && !dataFrom.value.bankAccount) return uni.showToast({ title: '请输入开户行账户', icon: 'none' });
|
||||
if (!dataFrom.value.name) return uni.showToast({ title: '请输入收票人姓名', icon: 'none' });
|
||||
if (!dataFrom.value.address) return uni.showToast({ title: '请输入收票人地址', icon: 'none' });
|
||||
if (!dataFrom.value.phone) return uni.showToast({ title: '请输入收票人电话', icon: 'none' });
|
||||
if (!dataFrom.value.email) return uni.showToast({ title: '请输入收票人邮箱', icon: 'none' });
|
||||
|
||||
let _res = await apply(dataFrom.value);
|
||||
uni.navigateBack({
|
||||
delta: 3
|
||||
});
|
||||
};
|
||||
|
||||
const aaa1 = (ee) => {
|
||||
dataFrom.value.invoiceType = ee.value[0].id;
|
||||
show1.value = false;
|
||||
console.log(dataFrom.value.invoiceType);
|
||||
};
|
||||
|
||||
const aaa2 = (ee) => {
|
||||
dataFrom.value.subjectType = ee.value[0].id;
|
||||
show2.value = false;
|
||||
if (ee.value[0].id == 2) {
|
||||
dataFrom.value.invoiceType = 1;
|
||||
}
|
||||
};
|
||||
|
||||
const show1True = () => {
|
||||
if (dataFrom.value.subjectType == 2) {
|
||||
return;
|
||||
}
|
||||
show1.value = true;
|
||||
};
|
||||
|
||||
const columns1 = reactive([
|
||||
[
|
||||
{
|
||||
label: '增值税普通发票',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
label: '增值税专用发票',
|
||||
id: 2
|
||||
}
|
||||
]
|
||||
]);
|
||||
const columns2 = reactive([
|
||||
[
|
||||
{
|
||||
label: '企业',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
label: '个人',
|
||||
id: 2
|
||||
}
|
||||
]
|
||||
]);
|
||||
|
||||
const checkboxChange = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
</style>
|
||||
|
||||
<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>
|
||||
Reference in New Issue
Block a user