百度小程序新增开票功能
parent
0bd347c2f9
commit
a2cbd72f85
|
|
@ -65,7 +65,6 @@ Page({
|
|||
{ name: "快递名称", value: data.data.express_name || '' },
|
||||
{ name: "快递单号", value: data.data.express_number || '' },
|
||||
],
|
||||
|
||||
data_list_loding_status: 3,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: '',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!-- 导航 -->
|
||||
<view a:if="{{nav_list.length > 0 && (data_base || null) != null}}" class="nav oh bg-white">
|
||||
<view a:if="{{nav_list.length > 0}}" class="nav oh bg-white">
|
||||
<block a:for="{{nav_list}}" a:key="key">
|
||||
<navigator url="{{item.url}}" hover-class="none">
|
||||
<view class="item fl tc">
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</view>
|
||||
|
||||
<!-- 通知 -->
|
||||
<view a:if="{{(data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view a:if="{{(data_base || null) != null && (data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view class="tips">
|
||||
<view a:for="{{data_base.invoice_desc}}" a:key="key" class="item">
|
||||
{{item}}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,12 @@
|
|||
"pages/plugins/distribution/extraction-apply/extraction-apply",
|
||||
"pages/plugins/distribution/extraction-order/extraction-order",
|
||||
"pages/plugins/distribution/introduce/introduce",
|
||||
"pages/plugins/exchangerate/currency/currency"
|
||||
"pages/plugins/exchangerate/currency/currency",
|
||||
"pages/plugins/invoice/user/user",
|
||||
"pages/plugins/invoice/invoice/invoice",
|
||||
"pages/plugins/invoice/invoice-detail/invoice-detail",
|
||||
"pages/plugins/invoice/invoice-saveinfo/invoice-saveinfo",
|
||||
"pages/plugins/invoice/order/order"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTitleText": "{{application_title}}",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
.panel-item .panel-title {
|
||||
background: #fff;
|
||||
font-weight: bold;
|
||||
padding: 15rpx;
|
||||
border-bottom: 2px solid #eee;
|
||||
font-size: 34rpx;
|
||||
}
|
||||
.panel-item .panel-content .item {
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
.panel-item .panel-content .item:last-child {
|
||||
border: 0;
|
||||
}
|
||||
.panel-item .panel-content .item .title {
|
||||
width: 25%;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.panel-item .panel-content .item .content {
|
||||
width: calc(75% - 50rpx);
|
||||
padding-left: 20rpx;
|
||||
min-height: 46rpx;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
}
|
||||
.panel-item .panel-content .item view {
|
||||
line-height: 46rpx;
|
||||
}
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
params: null,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_bottom_line_status: false,
|
||||
detail: null,
|
||||
detail_list: [],
|
||||
express_data: []
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
|
||||
onLoad(params) {
|
||||
//params['id'] = 1;
|
||||
this.setData({
|
||||
params: params
|
||||
});
|
||||
this.init();
|
||||
},
|
||||
|
||||
onShow() {},
|
||||
|
||||
init() {
|
||||
var self = this;
|
||||
swan.showLoading({
|
||||
title: "加载中..."
|
||||
});
|
||||
this.setData({
|
||||
data_list_loding_status: 1
|
||||
});
|
||||
swan.request({
|
||||
url: app.get_request_url("detail", "user", "invoice"),
|
||||
method: "POST",
|
||||
data: {
|
||||
id: this.data.params.id
|
||||
},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
self.setData({
|
||||
detail: data.data,
|
||||
detail_list: [
|
||||
{ name: "业务类型", value: data.data.business_type_name || '' },
|
||||
{ name: "申请类型", value: data.data.apply_type_name || '' },
|
||||
{ name: "发票类型", value: data.data.invoice_type_name || '' },
|
||||
{ name: "发票金额", value: data.data.total_price || '' },
|
||||
{ name: "状态", value: data.data.status_name || '' },
|
||||
{ name: "发票内容", value: data.data.invoice_content || '' },
|
||||
{ name: "发票抬头", value: data.data.invoice_title || '' },
|
||||
{ name: "纳税识别号", value: data.data.invoice_code || '' },
|
||||
{ name: "企业开户行名称", value: data.data.invoice_bank || '' },
|
||||
{ name: "企业开户帐号", value: data.data.invoice_account || '' },
|
||||
{ name: "企业联系电话", value: data.data.invoice_tel || '' },
|
||||
{ name: "企业注册地址", value: data.data.invoice_address || '' },
|
||||
{ name: "收件人姓名", value: data.data.name || '' },
|
||||
{ name: "收件人电话", value: data.data.tel || '' },
|
||||
{ name: "收件人地址", value: data.data.address || '' },
|
||||
{ name: "电子邮箱", value: data.data.email || '' },
|
||||
{ name: "拒绝原因", value: data.data.refuse_reason || '' },
|
||||
{ name: "用户备注", value: data.data.user_note || '' },
|
||||
{ name: "创建时间", value: data.data.add_time || '' },
|
||||
{ name: "更新时间", value: data.data.upd_time || '' },
|
||||
],
|
||||
express_data: [
|
||||
{ name: "快递名称", value: data.data.express_name || '' },
|
||||
{ name: "快递单号", value: data.data.express_number || '' },
|
||||
],
|
||||
data_list_loding_status: 3,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: ''
|
||||
});
|
||||
} else {
|
||||
self.setData({
|
||||
data_list_loding_status: 2,
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_msg: res.data.msg
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data, self, 'init')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_list_loding_status: 2,
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_msg: '服务器请求出错'
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
// 电子发票复制
|
||||
electronic_invoice_event(e) {
|
||||
var value = e.currentTarget.dataset.value || null;
|
||||
|
||||
if (value != null) {
|
||||
swan.setClipboardData({
|
||||
data: value,
|
||||
success(res) {
|
||||
swan.showToast({
|
||||
title: '内容已复制'
|
||||
});
|
||||
app.showToast('复制成功', 'success');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
app.showToast('链接地址有误');
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "发票详情"
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<view s-if="detail != null">
|
||||
<view s-if="detail_list.length > 0" class="panel-item">
|
||||
<view class="panel-title">申请信息</view>
|
||||
<view class="panel-content bg-white">
|
||||
<view s-for="item, index in detail_list" s-key="item" class="item br-b oh">
|
||||
<view class="title fl">{{item.name}}</view>
|
||||
<view class="content fl br-l">{{item.value}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 快递信息 -->
|
||||
<view s-if="detail.status == 2 && detail.invoice_type != 0 && express_data.length > 0" class="panel-item spacing-mt">
|
||||
<view class="panel-title">快递信息</view>
|
||||
<view class="panel-content bg-white">
|
||||
<view s-for="item, index in express_data" s-key="item" class="item br-b oh">
|
||||
<view class="title fl">{{item.name}}</view>
|
||||
<view class="content fl br-l">{{item.value}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 电子发票 -->
|
||||
<view s-if="detail.status == 2 && detail.invoice_type == 0 && (detail.electronic_invoice || null) != null" class="panel-item spacing-mt">
|
||||
<view class="panel-title">电子发票</view>
|
||||
<view class="panel-content bg-white">
|
||||
<view s-for="item, index in detail.electronic_invoice" s-key="item" class="item br-b oh">
|
||||
<view class="content" bindtap="electronic_invoice_event" data-value="{{item.url}}">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tips">可点击发票名称复制后、到浏览器打开地址下载发票。</view>
|
||||
</view>
|
||||
|
||||
<import src="/pages/common/bottom_line.swan" />
|
||||
<template is="bottom_line" data="{{{status: data_bottom_line_status}}}"></template>
|
||||
</view>
|
||||
|
||||
<view s-if="detail == null">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status, msg: data_list_loding_msg}}}"></template>
|
||||
|
||||
<view class="nav-back tc wh-auto">
|
||||
<navigator open-type="navigateBack" hover-class="none">
|
||||
<button type="default" size="mini" class="cr-888 br" hover-class="none">返回</button>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
.content-top {
|
||||
padding: 30rpx 10rpx;
|
||||
}
|
||||
.content-top text {
|
||||
font-size: 38rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
|
@ -0,0 +1,318 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
params: null,
|
||||
form_submit_loading: false,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_bottom_line_status: false,
|
||||
data_base: null,
|
||||
apply_type_list: [],
|
||||
can_invoice_type_list: [],
|
||||
invoice_content_list: [],
|
||||
save_base_data: null,
|
||||
data: null,
|
||||
form_invoice_type_index: 0,
|
||||
form_apply_type_index: 0,
|
||||
form_invoice_content_index: 0,
|
||||
form_apply_type_disabled: false,
|
||||
company_container: false,
|
||||
company_special_container: false,
|
||||
addressee_container: false,
|
||||
email_container: true
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
|
||||
onLoad(params) {
|
||||
this.setData({
|
||||
params: params
|
||||
});
|
||||
this.init();
|
||||
},
|
||||
|
||||
onShow() {},
|
||||
|
||||
init() {
|
||||
var self = this;
|
||||
swan.showLoading({
|
||||
title: "加载中..."
|
||||
});
|
||||
this.setData({
|
||||
data_list_loding_status: 1
|
||||
});
|
||||
swan.request({
|
||||
url: app.get_request_url("saveinfo", "user", "invoice"),
|
||||
method: "POST",
|
||||
data: this.data.params,
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
self.setData({
|
||||
data_base: data.base || null,
|
||||
apply_type_list: data.apply_type_list || [],
|
||||
can_invoice_type_list: data.can_invoice_type_list || [],
|
||||
invoice_content_list: data.invoice_content_list || [],
|
||||
save_base_data: data.save_base_data,
|
||||
data: (data.data || null) == null || data.data.length == 0 ? null : data.data,
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: data.save_base_data.total_price <= 0 ? '发票金额必须大于0' : ''
|
||||
}); // 数据容器处理
|
||||
|
||||
this.invoice_container_handle();
|
||||
} else {
|
||||
self.setData({
|
||||
data_list_loding_status: 2,
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_msg: res.data.msg
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data, self, 'init')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_list_loding_status: 2,
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_msg: '服务器请求出错'
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
// 发票类型事件
|
||||
form_invoice_type_event(e) {
|
||||
this.setData({
|
||||
form_invoice_type_index: e.detail.value
|
||||
});
|
||||
this.invoice_container_handle();
|
||||
},
|
||||
|
||||
// 发票类型事件
|
||||
form_apply_type_event(e) {
|
||||
this.setData({
|
||||
form_apply_type_index: e.detail.value
|
||||
});
|
||||
this.invoice_container_handle();
|
||||
},
|
||||
|
||||
// 发票内容事件
|
||||
form_invoice_content_event(e) {
|
||||
this.setData({
|
||||
form_invoice_content_index: e.detail.value
|
||||
});
|
||||
},
|
||||
|
||||
// 容器显隐处理
|
||||
invoice_container_handle() {
|
||||
// 发票类型
|
||||
var invoice_type = this.data.can_invoice_type_list[this.data.form_invoice_type_index]['id'];
|
||||
|
||||
if (invoice_type == 2) {
|
||||
// 选择专票的时候申请类型必须是企业
|
||||
this.setData({
|
||||
form_apply_type_index: 1,
|
||||
form_apply_type_disabled: true
|
||||
});
|
||||
} else {
|
||||
this.setData({
|
||||
form_apply_type_disabled: false
|
||||
});
|
||||
} // 申请类型
|
||||
|
||||
|
||||
switch (invoice_type) {
|
||||
// 增值税普通电子发票
|
||||
case 0:
|
||||
this.setData({
|
||||
company_special_container: false,
|
||||
addressee_container: false,
|
||||
email_container: true
|
||||
});
|
||||
break;
|
||||
// 增值税普通纸质发票
|
||||
|
||||
case 1:
|
||||
this.setData({
|
||||
company_special_container: false,
|
||||
addressee_container: true,
|
||||
email_container: false
|
||||
});
|
||||
break;
|
||||
// 增值税专业纸质发票
|
||||
|
||||
case 2:
|
||||
this.setData({
|
||||
company_container: true,
|
||||
company_special_container: true,
|
||||
addressee_container: true,
|
||||
email_container: false
|
||||
});
|
||||
break;
|
||||
} // 增值税专业纸质发票情况下个人类型处理
|
||||
|
||||
|
||||
if (invoice_type != 2) {
|
||||
var apply_type = this.data.apply_type_list[this.data.form_apply_type_index]['id'];
|
||||
|
||||
if (apply_type == 0) {
|
||||
this.setData({
|
||||
company_container: false
|
||||
});
|
||||
} else {
|
||||
this.setData({
|
||||
company_container: true
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 表单提交
|
||||
formSubmit(e) {
|
||||
var data = e.detail.value;
|
||||
|
||||
if ((this.data.data || null) == null) {
|
||||
data['ids'] = this.data.params.ids || '';
|
||||
data['type'] = this.data.params.type || '';
|
||||
} else {
|
||||
data['id'] = this.data.data.id;
|
||||
} // 数据验证
|
||||
|
||||
|
||||
var validation = [{
|
||||
fields: 'invoice_type',
|
||||
msg: '请选择发票类型',
|
||||
is_can_zero: 1
|
||||
}, {
|
||||
fields: 'apply_type',
|
||||
msg: '请选择申请类型',
|
||||
is_can_zero: 1
|
||||
}, {
|
||||
fields: 'invoice_title',
|
||||
msg: '请填写发票抬头、最多200个字符'
|
||||
}];
|
||||
|
||||
if (app.fields_check(data, validation)) {
|
||||
var invoice_type = this.data.can_invoice_type_list[this.data.form_invoice_type_index]['id'];
|
||||
var apply_type = this.data.apply_type_list[this.data.form_apply_type_index]['id'];
|
||||
|
||||
if (apply_type == 1) {
|
||||
validation.push({
|
||||
fields: 'invoice_code',
|
||||
msg: '请填写企业统一社会信用代码或纳税识别号、最多160个字符'
|
||||
});
|
||||
}
|
||||
|
||||
if (invoice_type == 2) {
|
||||
validation.push({
|
||||
fields: 'invoice_bank',
|
||||
msg: '请填写企业开户行名称、最多200个字符'
|
||||
});
|
||||
validation.push({
|
||||
fields: 'invoice_account',
|
||||
msg: '请填写企业开户帐号、最多160个字符'
|
||||
});
|
||||
validation.push({
|
||||
fields: 'invoice_tel',
|
||||
msg: '请填写企业联系电话 6~15 个字符'
|
||||
});
|
||||
validation.push({
|
||||
fields: 'invoice_address',
|
||||
msg: '请填写企业注册地址、最多230个字符'
|
||||
});
|
||||
}
|
||||
|
||||
if (invoice_type != 0) {
|
||||
validation.push({
|
||||
fields: 'name',
|
||||
msg: '请填写收件人姓名格式 2~30 个字符之间'
|
||||
});
|
||||
validation.push({
|
||||
fields: 'tel',
|
||||
msg: '请填写收件人电话 6~15 个字符'
|
||||
});
|
||||
validation.push({
|
||||
fields: 'address',
|
||||
msg: '请填写收件人地址、最多230个字符'
|
||||
});
|
||||
}
|
||||
|
||||
if (app.fields_check(data, validation)) {
|
||||
// 发票类型
|
||||
data['invoice_type'] = this.data.can_invoice_type_list[this.data.form_invoice_type_index]['id']; // 发票内容
|
||||
|
||||
if (this.data.invoice_content_list.length > 0 && this.data.invoice_content_list[this.data.form_invoice_content_index] != undefined) {
|
||||
data['invoice_content'] = this.data.invoice_content_list[this.data.form_invoice_content_index];
|
||||
}
|
||||
|
||||
swan.showLoading({
|
||||
title: '提交中...'
|
||||
});
|
||||
this.setData({
|
||||
form_submit_loading: true
|
||||
}); // 网络请求
|
||||
|
||||
var self = this;
|
||||
swan.request({
|
||||
url: app.get_request_url("save", "user", "invoice"),
|
||||
method: 'POST',
|
||||
data: data,
|
||||
dataType: 'json',
|
||||
header: {
|
||||
'content-type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
app.showToast(res.data.msg, "success");
|
||||
setTimeout(function () {
|
||||
// 是否关闭页面进入我的发票、适合从订单开票中过来提交成功直接进入我的发票列表
|
||||
if ((self.data.params || null) != null && (self.data.params.is_redirect || 0) == 1) {
|
||||
swan.redirectTo({
|
||||
url: "/pages/plugins/invoice/invoice/invoice"
|
||||
});
|
||||
} else {
|
||||
swan.navigateBack();
|
||||
}
|
||||
}, 2000);
|
||||
} else {
|
||||
this.setData({
|
||||
form_submit_loading: false
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data)) {
|
||||
app.showToast(res.data.msg);
|
||||
} else {
|
||||
app.showToast('提交失败,请重试!');
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
this.setData({
|
||||
form_submit_loading: false
|
||||
});
|
||||
app.showToast('服务器请求出错');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "开票"
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
<view s-if="save_base_data != null && save_base_data.total_price > 0">
|
||||
<form bindsubmit="formSubmit" s-if="data_list_loding_status == 0">
|
||||
<view class="content-top bg-white spacing-mb">
|
||||
发票金额 <text class="cr-main">{{save_base_data.total_price}}</text> 元
|
||||
</view>
|
||||
<view class="form-container spacing-mb oh">
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">发票类型<text class="form-group-tips-must">必选</text></view>
|
||||
<picker name="invoice_type" bindchange="form_invoice_type_event" value="{{form_invoice_type_index}}" range="{{can_invoice_type_list}}" range-key="name">
|
||||
<view class="picker {{can_invoice_type_list[form_invoice_type_index] == undefined ? 'cr-ccc' : 'cr-666'}} arrow-right">
|
||||
{{can_invoice_type_list[form_invoice_type_index] == undefined ? '请选择发票类型' : can_invoice_type_list[form_invoice_type_index]['name']}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">申请类型<text class="form-group-tips-must">必选</text></view>
|
||||
<picker name="apply_type" bindchange="form_apply_type_event" disabled="{{form_apply_type_disabled}}" value="{{form_apply_type_index}}" range="{{apply_type_list}}" range-key="name">
|
||||
<view class="picker {{apply_type_list[form_apply_type_index] == undefined ? 'cr-ccc' : 'cr-666'}} arrow-right">
|
||||
{{apply_type_list[form_apply_type_index] == undefined ? '请选择申请类型' : apply_type_list[form_apply_type_index]['name']}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<view s-if="invoice_content_list.length > 0" class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">发票内容<text class="form-group-tips-must">必选</text></view>
|
||||
<picker name="invoice_content" bindchange="form_invoice_content_event" value="{{form_invoice_content_index}}" range="{{invoice_content_list}}">
|
||||
<view class="picker {{invoice_content_list[form_invoice_content_index] == undefined ? 'cr-ccc' : 'cr-666'}} arrow-right">
|
||||
{{invoice_content_list[form_invoice_content_index] == undefined ? '请选择发票内容' : invoice_content_list[form_invoice_content_index]}}
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">发票抬头<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_title" placeholder-class="cr-ccc" class="cr-666" placeholder="发票抬头、最多200个字符" maxlength="200" value="{=data.invoice_title || ''=}" />
|
||||
</view>
|
||||
|
||||
<!-- 企业信息 -->
|
||||
<view s-if="company_container">
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">企业统一社会信用代码或纳税识别号<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_code" placeholder-class="cr-ccc" class="cr-666" placeholder="企业统一社会信用代码或纳税识别号、最多160个字符" maxlength="160" value="{=data.invoice_code || ''=}" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 企业专票信息 -->
|
||||
<view s-if="company_special_container">
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">企业开户行名称<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_bank" placeholder-class="cr-ccc" class="cr-666" placeholder="企业开户行名称、最多200个字符" maxlength="200" value="{=data.invoice_bank || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">企业开户帐号<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_account" placeholder-class="cr-ccc" class="cr-666" placeholder="企业开户帐号、最多160个字符" maxlength="160" value="{=data.invoice_account || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">企业联系电话<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_tel" placeholder-class="cr-ccc" class="cr-666" placeholder="企业联系电话 6~15 个字符" maxlength="15" value="{=data.invoice_tel || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">企业注册地址<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="invoice_address" placeholder-class="cr-ccc" class="cr-666" placeholder="企业注册地址、最多230个字符" maxlength="230" value="{=data.invoice_address || ''=}" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 收件人信息 -->
|
||||
<view s-if="addressee_container">
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">收件人姓名<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="name" placeholder-class="cr-ccc" class="cr-666" placeholder="收件人姓名格式 2~30 个字符之间" maxlength="30" value="{=data.name || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">收件人电话<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="tel" placeholder-class="cr-ccc" class="cr-666" placeholder="收件人电话 6~15 个字符" maxlength="15" value="{=data.tel || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">收件人地址<text class="form-group-tips-must">必填</text></view>
|
||||
<input type="text" name="address" placeholder-class="cr-ccc" class="cr-666" placeholder="收件人地址、最多230个字符" maxlength="230" value="{=data.address || ''=}" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 电子邮箱信息 -->
|
||||
<view s-if="email_container">
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">电子邮箱<text class="form-group-tips">选填</text></view>
|
||||
<input type="text" name="email" placeholder-class="cr-ccc" class="cr-666" placeholder="电子邮箱、最多60个字符" maxlength="60" value="{=data.email || ''=}" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-gorup bg-white">
|
||||
<view class="form-gorup-title">备注<text class="form-group-tips">选填</text></view>
|
||||
<input type="text" name="user_note" placeholder-class="cr-ccc" class="cr-666" placeholder="备注最多230个字符" maxlength="60" value="{=data.user_note || ''=}" />
|
||||
</view>
|
||||
<view class="form-gorup">
|
||||
<button class="bg-main submit-bottom" type="default" formType="submit" hover-class="none" loading="{{form_submit_loading}}" disabled="{{form_submit_loading}}">提交</button>
|
||||
</view>
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
<view s-else>
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status, msg: data_list_loding_msg}}}"></template>
|
||||
</view>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* 导航
|
||||
*/
|
||||
.nav {
|
||||
background: #eee;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
}
|
||||
.nav .item {
|
||||
width: 20%;
|
||||
}
|
||||
.nav .active {
|
||||
color: #d2364c;
|
||||
}
|
||||
|
||||
/*
|
||||
* 列表
|
||||
*/
|
||||
.scroll-box {
|
||||
height: calc(100vh - 80rpx);
|
||||
}
|
||||
.data-list .item .base,
|
||||
.data-list .item .content {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text {
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text .title {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text .value {
|
||||
font-weight: 500;
|
||||
}
|
||||
.data-list .item .content .multi-text .unit {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.data-list .item .operation {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.data-list .item .operation button:not(:first-child) {
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
.data-list .item .submit-delete {
|
||||
border: 1px solid #dc7f7f;
|
||||
color: #dc7f7f !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,257 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_base: null,
|
||||
data_list: [],
|
||||
data_page_total: 0,
|
||||
data_page: 1,
|
||||
data_list_loding_status: 1,
|
||||
data_bottom_line_status: false,
|
||||
params: null,
|
||||
nav_status_list: [{
|
||||
name: "全部",
|
||||
value: "-1"
|
||||
}, {
|
||||
name: "待审核",
|
||||
value: "0"
|
||||
}, {
|
||||
name: "待开票",
|
||||
value: "1"
|
||||
}, {
|
||||
name: "已开票",
|
||||
value: "2"
|
||||
}, {
|
||||
name: "已拒绝",
|
||||
value: "3"
|
||||
}],
|
||||
nav_status_index: 0
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
|
||||
onLoad(params) {
|
||||
// 是否指定状态
|
||||
var nav_status_index = 0;
|
||||
|
||||
if ((params.status || null) != null) {
|
||||
for (var i in this.data.nav_status_list) {
|
||||
if (this.data.nav_status_list[i]['value'] == params.status) {
|
||||
nav_status_index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.setData({
|
||||
params: params,
|
||||
nav_status_index: nav_status_index
|
||||
});
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
init() {
|
||||
var user = app.get_user_info(this, 'init');
|
||||
|
||||
if (user != false) {
|
||||
// 用户未绑定用户则转到登录页面
|
||||
if (app.user_is_need_login(user)) {
|
||||
swan.redirectTo({
|
||||
url: "/pages/login/login?event_callback=init"
|
||||
});
|
||||
return false;
|
||||
} else {
|
||||
// 获取数据
|
||||
this.get_data_list();
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data_list(is_mandatory) {
|
||||
// 分页是否还有数据
|
||||
if ((is_mandatory || 0) == 0) {
|
||||
if (this.data.data_bottom_line_status == true) {
|
||||
return false;
|
||||
}
|
||||
} // 加载loding
|
||||
|
||||
|
||||
swan.showLoading({
|
||||
title: "加载中..."
|
||||
});
|
||||
this.setData({
|
||||
data_list_loding_status: 1
|
||||
}); // 请求数据
|
||||
|
||||
var data = {
|
||||
page: this.data.data_page
|
||||
}; // 参数
|
||||
|
||||
var status = (this.data.nav_status_list[this.data.nav_status_index] || null) == null ? -1 : this.data.nav_status_list[this.data.nav_status_index]['value'];
|
||||
|
||||
if (status != -1) {
|
||||
data['status'] = status;
|
||||
} // 获取数据
|
||||
|
||||
|
||||
swan.request({
|
||||
url: app.get_request_url("index", "user", "invoice"),
|
||||
method: "POST",
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
if (res.data.data.data.length > 0) {
|
||||
if (this.data.data_page <= 1) {
|
||||
var temp_data_list = res.data.data.data;
|
||||
} else {
|
||||
var temp_data_list = this.data.data_list;
|
||||
var temp_data = res.data.data.data;
|
||||
|
||||
for (var i in temp_data) {
|
||||
temp_data_list.push(temp_data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
this.setData({
|
||||
data_base: res.data.data.base || null,
|
||||
data_list: temp_data_list,
|
||||
data_total: res.data.data.total,
|
||||
data_page_total: res.data.data.page_total,
|
||||
data_list_loding_status: 3,
|
||||
data_page: this.data.data_page + 1
|
||||
}); // 是否还有数据
|
||||
|
||||
if (this.data.data_page > 1 && this.data.data_page > this.data.data_page_total) {
|
||||
this.setData({
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
} else {
|
||||
this.setData({
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_list: [],
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data, this, 'get_data_list')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
this.setData({
|
||||
data_list_loding_status: 2
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.setData({
|
||||
data_page: 1
|
||||
});
|
||||
this.get_data_list(1);
|
||||
},
|
||||
|
||||
// 滚动加载
|
||||
scroll_lower(e) {
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
// 导航事件
|
||||
nav_event(e) {
|
||||
this.setData({
|
||||
nav_status_index: e.currentTarget.dataset.index || 0,
|
||||
data_page: 1
|
||||
});
|
||||
this.get_data_list(1);
|
||||
},
|
||||
|
||||
// 编辑事件
|
||||
edit_event(e) {
|
||||
swan.navigateTo({
|
||||
url: '/pages/plugins/invoice/invoice-saveinfo/invoice-saveinfo?id=' + e.currentTarget.dataset.value
|
||||
});
|
||||
},
|
||||
|
||||
// 删除
|
||||
delete_event(e) {
|
||||
swan.showModal({
|
||||
title: "温馨提示",
|
||||
content: "删除后不可恢复,确定继续吗?",
|
||||
confirmText: "确认",
|
||||
cancelText: "不了",
|
||||
success: result => {
|
||||
if (result.confirm) {
|
||||
// 参数
|
||||
var value = e.currentTarget.dataset.value;
|
||||
var index = e.currentTarget.dataset.index; // 加载loding
|
||||
|
||||
swan.showLoading({
|
||||
title: "处理中..."
|
||||
});
|
||||
swan.request({
|
||||
url: app.get_request_url("delete", "user", "invoice"),
|
||||
method: "POST",
|
||||
data: {
|
||||
ids: value
|
||||
},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
var temp_data_list = this.data.data_list;
|
||||
temp_data_list.splice(index, 1);
|
||||
this.setData({
|
||||
data_list: temp_data_list
|
||||
});
|
||||
|
||||
if (temp_data_list.length == 0) {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
|
||||
app.showToast(res.data.msg, "success");
|
||||
} else {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "我的发票"
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<!-- 导航 -->
|
||||
<view class="nav">
|
||||
<block s-for="item, index in nav_status_list" s-key="key">
|
||||
<view class="item fl tc cr-888 {{nav_status_index == index ? 'active' : ''}}" data-index="{{index}}" bindtap="nav_event">{{item.name}}</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!-- 列表 -->
|
||||
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
|
||||
<view class="data-list">
|
||||
<view class="item bg-white spacing-mb" s-if="data_list.length > 0" s-for="item, index in data_list" s-key="key">
|
||||
<view class="base oh br-b">
|
||||
<text class="cr-666">{{item.add_time}}</text>
|
||||
<text class="fr cr-main">{{item.status_name}}</text>
|
||||
</view>
|
||||
<navigator url="/pages/plugins/invoice/invoice-detail/invoice-detail?id={{item.id}}" hover-class="none">
|
||||
<view class="content">
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">业务类型</text>
|
||||
<text class="value">{{item.business_type_name}}</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">申请类型</text>
|
||||
<text class="value">{{item.apply_type_name}}</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">发票类型</text>
|
||||
<text class="value">{{item.invoice_type_name}}</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">发票金额</text>
|
||||
<text class="value">{{item.total_price}}</text>
|
||||
<text class="unit cr-888">元</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">发票抬头</text>
|
||||
<text class="value">{{item.invoice_title}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
<view s-if="item.status == 0 || item.status == 3" class="operation tr br-t-dashed">
|
||||
<button class="cr-666 br" type="default" size="mini" bindtap="edit_event" data-value="{{item.id}}" hover-class="none">编辑</button>
|
||||
<button class="submit-delete" type="default" size="mini" bindtap="delete_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">删除</button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view s-if="data_list.length == 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status}}}">
|
||||
</template>
|
||||
</view>
|
||||
|
||||
<import src="/pages/common/bottom_line.swan" />
|
||||
<template is="bottom_line" data="{{{status: data_bottom_line_status}}}"></template>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* 列表
|
||||
*/
|
||||
.data-list .item .base,
|
||||
.data-list .item .content {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text {
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text .title {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.data-list .item .content .multi-text .value {
|
||||
font-weight: 500;
|
||||
}
|
||||
.data-list .item .content .multi-text .unit {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.data-list .item .operation {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.data-list .item .operation button:not(:first-child) {
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
|
||||
/*
|
||||
* 选择
|
||||
*/
|
||||
.selected .icon {
|
||||
width: 40rpx;
|
||||
height: 40rpx !important;
|
||||
margin-left: 10rpx;
|
||||
margin-right: 20rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.invoice-merge-submit {
|
||||
width: 220rpx;
|
||||
height: 70rpx !important;
|
||||
line-height: 74rpx !important;
|
||||
left: calc(50% - 110rpx);
|
||||
bottom: 50rpx;
|
||||
}
|
||||
|
|
@ -0,0 +1,179 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_base: null,
|
||||
data_list: [],
|
||||
data_page_total: 0,
|
||||
data_page: 1,
|
||||
data_list_loding_status: 1,
|
||||
data_bottom_line_status: false,
|
||||
params: null,
|
||||
select_ids: []
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
|
||||
onLoad(params) {
|
||||
this.setData({
|
||||
params: params
|
||||
});
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
init() {
|
||||
var user = app.get_user_info(this, 'init');
|
||||
|
||||
if (user != false) {
|
||||
// 用户未绑定用户则转到登录页面
|
||||
if (app.user_is_need_login(user)) {
|
||||
swan.redirectTo({
|
||||
url: "/pages/login/login?event_callback=init"
|
||||
});
|
||||
return false;
|
||||
} else {
|
||||
// 获取数据
|
||||
this.get_data_list();
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data_list(is_mandatory) {
|
||||
// 分页是否还有数据
|
||||
if ((is_mandatory || 0) == 0) {
|
||||
if (this.data.data_bottom_line_status == true) {
|
||||
return false;
|
||||
}
|
||||
} // 加载loding
|
||||
|
||||
|
||||
swan.showLoading({
|
||||
title: "加载中..."
|
||||
});
|
||||
this.setData({
|
||||
data_list_loding_status: 1
|
||||
}); // 请求数据
|
||||
|
||||
var data = {
|
||||
page: this.data.data_page
|
||||
}; // 获取数据
|
||||
|
||||
swan.request({
|
||||
url: app.get_request_url("index", "order", "invoice"),
|
||||
method: "POST",
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
if (res.data.data.data.length > 0) {
|
||||
if (this.data.data_page <= 1) {
|
||||
var temp_data_list = res.data.data.data;
|
||||
} else {
|
||||
var temp_data_list = this.data.data_list;
|
||||
var temp_data = res.data.data.data;
|
||||
|
||||
for (var i in temp_data) {
|
||||
temp_data_list.push(temp_data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
this.setData({
|
||||
data_base: res.data.data.base || null,
|
||||
data_list: temp_data_list,
|
||||
data_total: res.data.data.total,
|
||||
data_page_total: res.data.data.page_total,
|
||||
data_list_loding_status: 3,
|
||||
data_page: this.data.data_page + 1
|
||||
}); // 是否还有数据
|
||||
|
||||
if (this.data.data_page > 1 && this.data.data_page > this.data.data_page_total) {
|
||||
this.setData({
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
} else {
|
||||
this.setData({
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_list: [],
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data, this, 'get_data_list')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
swan.stopPullDownRefresh();
|
||||
this.setData({
|
||||
data_list_loding_status: 2
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.setData({
|
||||
data_page: 1
|
||||
});
|
||||
this.get_data_list(1);
|
||||
},
|
||||
|
||||
// 滚动加载
|
||||
scroll_lower(e) {
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
// 选择
|
||||
selected_event(e) {
|
||||
var value = e.currentTarget.dataset.value;
|
||||
var temp_select_ids = this.data.select_ids;
|
||||
var index = temp_select_ids.indexOf(value);
|
||||
|
||||
if (index == -1) {
|
||||
temp_select_ids.push(value);
|
||||
} else {
|
||||
temp_select_ids.splice(index, 1);
|
||||
}
|
||||
|
||||
this.setData({
|
||||
select_ids: temp_select_ids
|
||||
});
|
||||
},
|
||||
|
||||
// 合并开票
|
||||
invoice_merge_event(e) {
|
||||
if (this.data.select_ids.length <= 0) {
|
||||
app.showToast('请先选择数据');
|
||||
return false;
|
||||
}
|
||||
|
||||
swan.navigateTo({
|
||||
url: '/pages/plugins/invoice/invoice-saveinfo/invoice-saveinfo?ids=' + this.data.select_ids.join(',') + '&type=order&is_redirect=1'
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "订单开票"
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<import-sjs src="../../../../utils/tools.sjs" module="tools" />
|
||||
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
|
||||
<view class="data-list">
|
||||
<block s-if="data_list.length > 0">
|
||||
<view class="item bg-white spacing-mb" s-for="item, index in data_list" s-key="key">
|
||||
<view class="base oh br-b">
|
||||
<view bindtap="selected_event" data-type="node" data-value="{{item.id}}" class="fl selected">
|
||||
<image class="icon" src="/images/default-select{{tools.indexOf(select_ids, item.id) ? '-active' : ''}}-icon.png" mode="widthFix" />
|
||||
</view>
|
||||
<text class="cr-666">{{item.add_time}}</text>
|
||||
</view>
|
||||
<navigator url="/pages/user-order-detail/user-order-detail?id={{item.id}}" hover-class="none">
|
||||
<view class="content">
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">订单编号</text>
|
||||
<text class="value">{{item.order_no}}</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">订单总价</text>
|
||||
<text class="value">{{item.total_price}}</text>
|
||||
<text class="unit cr-888">元</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">支付金额</text>
|
||||
<text class="value">{{item.pay_price}}</text>
|
||||
<text class="unit cr-888">元</text>
|
||||
</view>
|
||||
<view class="multi-text">
|
||||
<text class="title cr-666">订单单价</text>
|
||||
<text class="value">{{item.price}}</text>
|
||||
<text class="unit cr-888">元</text>
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
<view class="operation tr br-t-dashed">
|
||||
<navigator url="/pages/plugins/invoice/invoice-saveinfo/invoice-saveinfo?ids={{item.id}}&type=order&is_redirect=1" hover-class="none">
|
||||
<button class="cr-666 br" type="default" size="mini" hover-class="none">开票</button>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 合并开票 -->
|
||||
<view s-if="select_ids.length > 0">
|
||||
<button class="submit-fixed invoice-merge-submit" type="default" size="mini" hover-class="none" bindtap="invoice_merge_event">合并开票</button>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<view s-if="data_list.length == 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status}}}">
|
||||
</template>
|
||||
</view>
|
||||
|
||||
<import src="/pages/common/bottom_line.swan" />
|
||||
<template is="bottom_line" data="{{{status: data_bottom_line_status}}}"></template>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* 导航
|
||||
*/
|
||||
.nav {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
.nav .item {
|
||||
padding: 30rpx 0;
|
||||
width: calc(50% - 1px);
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.nav .item:nth-child(odd) {
|
||||
border-right: 1px solid #eee;
|
||||
}
|
||||
.nav .item image {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.nav .item .title {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
/*
|
||||
* 提示信息
|
||||
*/
|
||||
.tips-container {
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_base: null,
|
||||
nav_list: [{
|
||||
icon: "/images/plugins/invoice/user-center-invoice-icon.png",
|
||||
title: "我的发票",
|
||||
url: "/pages/plugins/invoice/invoice/invoice"
|
||||
}, {
|
||||
icon: "/images/plugins/invoice/user-center-order-icon.png",
|
||||
title: "订单开票",
|
||||
url: "/pages/plugins/invoice/order/order"
|
||||
}]
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
|
||||
onLoad(params) {},
|
||||
|
||||
onShow() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
init(e) {
|
||||
var user = app.get_user_info(this, "init"),
|
||||
self = this;
|
||||
|
||||
if (user != false) {
|
||||
// 用户未绑定用户则转到登录页面
|
||||
if (app.user_is_need_login(user)) {
|
||||
swan.showModal({
|
||||
title: '温馨提示',
|
||||
content: '绑定手机号码',
|
||||
confirmText: '确认',
|
||||
cancelText: '暂不',
|
||||
success: result => {
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (result.confirm) {
|
||||
swan.navigateTo({
|
||||
url: "/pages/login/login?event_callback=init"
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
self.get_data();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data() {
|
||||
var self = this;
|
||||
swan.request({
|
||||
url: app.get_request_url("center", "user", "invoice"),
|
||||
method: "POST",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.stopPullDownRefresh();
|
||||
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
self.setData({
|
||||
data_base: data.base || null,
|
||||
data_list_loding_msg: '',
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
} else {
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: res.data.msg
|
||||
});
|
||||
|
||||
if (app.is_login_check(res.data, self, 'get_data')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: '服务器请求出错'
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.get_data();
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "我的发票"
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<!-- 导航 -->
|
||||
<view s-if="nav_list.length > 0" class="nav oh bg-white">
|
||||
<block s-for="item, index in nav_list" s-key="key">
|
||||
<navigator url="{{item.url}}" hover-class="none">
|
||||
<view class="item fl tc">
|
||||
<image src="{{item.icon}}" mode="scaleToFill" class="dis-block" />
|
||||
<view class="title">{{item.title}}</view>
|
||||
</view>
|
||||
</navigator>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!-- 通知 -->
|
||||
<view s-if="(data_base || null) != null && (data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0" class="tips-container spacing-mt">
|
||||
<view class="tips">
|
||||
<view s-for="item, index in data_base.invoice_desc" s-key="key" class="item">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -65,7 +65,6 @@ Page({
|
|||
{ name: "快递名称", value: data.data.express_name || '' },
|
||||
{ name: "快递单号", value: data.data.express_number || '' },
|
||||
],
|
||||
|
||||
data_list_loding_status: 3,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: '',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!-- 导航 -->
|
||||
<view qq:if="{{nav_list.length > 0 && (data_base || null) != null}}" class="nav oh bg-white">
|
||||
<view qq:if="{{nav_list.length > 0}}" class="nav oh bg-white">
|
||||
<block qq:for="{{nav_list}}" qq:key="key">
|
||||
<navigator url="{{item.url}}" hover-class="none">
|
||||
<view class="item fl tc">
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</view>
|
||||
|
||||
<!-- 通知 -->
|
||||
<view qq:if="{{(data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view qq:if="{{(data_base || null) != null && (data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view class="tips">
|
||||
<view qq:for="{{data_base.invoice_desc}}" qq:key="key" class="item">
|
||||
{{item}}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ Page({
|
|||
{ name: "快递名称", value: data.data.express_name || '' },
|
||||
{ name: "快递单号", value: data.data.express_number || '' },
|
||||
],
|
||||
|
||||
data_list_loding_status: 3,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: '',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!-- 导航 -->
|
||||
<view tt:if="{{nav_list.length > 0 && (data_base || null) != null}}" class="nav oh bg-white">
|
||||
<view tt:if="{{nav_list.length > 0}}" class="nav oh bg-white">
|
||||
<block tt:for="{{nav_list}}" tt:key="key">
|
||||
<navigator url="{{item.url}}" hover-class="none">
|
||||
<view class="item fl tc">
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</view>
|
||||
|
||||
<!-- 通知 -->
|
||||
<view tt:if="{{(data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view tt:if="{{(data_base || null) != null && (data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view class="tips">
|
||||
<view tt:for="{{data_base.invoice_desc}}" tt:key="key" class="item">
|
||||
{{item}}
|
||||
|
|
|
|||
|
|
@ -73,8 +73,8 @@ App({
|
|||
|
||||
// 请求地址
|
||||
request_url: "{{request_url}}",
|
||||
request_url: 'http://shopxo.com/',
|
||||
request_url: 'https://dev.shopxo.net/',
|
||||
// request_url: 'http://shopxo.com/',
|
||||
// request_url: 'https://dev.shopxo.net/',
|
||||
|
||||
// 基础信息
|
||||
application_title: "{{application_title}}",
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ Page({
|
|||
{ name: "快递名称", value: data.data.express_name || '' },
|
||||
{ name: "快递单号", value: data.data.express_number || '' },
|
||||
],
|
||||
|
||||
data_list_loding_status: 3,
|
||||
data_bottom_line_status: true,
|
||||
data_list_loding_msg: '',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!-- 导航 -->
|
||||
<view wx:if="{{nav_list.length > 0 && (data_base || null) != null}}" class="nav oh bg-white">
|
||||
<view wx:if="{{nav_list.length > 0}}" class="nav oh bg-white">
|
||||
<block wx:for="{{nav_list}}" wx:key="key">
|
||||
<navigator url="{{item.url}}" hover-class="none">
|
||||
<view class="item fl tc">
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</view>
|
||||
|
||||
<!-- 通知 -->
|
||||
<view wx:if="{{(data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view wx:if="{{(data_base || null) != null && (data_base.invoice_desc || null) != null && data_base.invoice_desc.length > 0}}" class="tips-container spacing-mt">
|
||||
<view class="tips">
|
||||
<view wx:for="{{data_base.invoice_desc}}" wx:key="key" class="item">
|
||||
{{item}}
|
||||
|
|
|
|||
Loading…
Reference in New Issue