java-mall-app/member/invoice/list.vue
2024-11-01 16:35:40 +08:00

338 lines
8.6 KiB
Vue

<template>
<view class="page">
<view v-if="(isdata)" class="m-ad-list">
<view v-for="(item, i) in invoice_list" @click="selectInvoice" :key="i" class="m-ad-item" :data-id="(item.user_invoice_id)" :data-invoice_category="(item.invoice_category)" :data-invoice_type="(item.invoice_type)" :data-user_invoice_id="(item.user_invoice_id)" :data-invoice_title="(item.invoice_title)" @longpress="modify">
<view class="m-ad-l" :data-sel="user_invoice_id" :data-user_invoice_id="(item.user_invoice_id)">
<view class="m-ad-i-top">
<text>{{item.invoice_title}}</text><label>{{item.invoice_company_code}}</label>
</view>
<view class="m-ad-i-bot">
<label v-if="(item.invoice_is_default)" class="m-ad-icon">{{__('默认')}}</label>
</view>
</view>
<view class="m-ad-edit tbl">
<label :data-user_invoice_id="(item.user_invoice_id)" :data-invoice_type="(item.invoice_type)" @click.stop="editInvoice" class="iconfont icon-edit"></label>
<label class="iconfont icon-delete" :data-user_invoice_id="(item.user_invoice_id)" :user_invoice_id="(item.user_invoice_id)" @click.stop="removeInvoice"></label>
</view>
</view>
<button class="u-btn u-btn-default" @click="addInvoice" style="margin-top:50rpx;">{{__('添加发票')}}</button>
<button class="u-btn u-btn-secondary" @click="selectInvoice" style="margin-top:50rpx;" v-if="options.issub">{{__('不开发票')}}</button>
</view>
<view class="m-nullpage" v-else @click="addInvoice">
<view class="m-nullpage-middle">
<label class="iconfont icon-dizhi"></label>
<view class="m-null-tip">
<text>{{__('您尚未添加发票信息?')}}</text>
<text class="m-null-tipck">{{__('马上去添加发票信息')}}</text>
</view>
</view>
</view>
</view>
</template>
<style lang="scss">
@import "../../styles/_variables";
.m-ad-item:after {
content: " ";
position: absolute;
border-bottom: 1px solid #C8C8CD;
left: 0;
right: 0;
bottom: 0;
height: 1px;
transform-origin: 0 100%;
transform: scaleY(0.5);
color: #C8C8CD;
}
.m-ad-item {
background-color: #fff;
padding: 24rpx 20rpx 24rpx 30rpx;
position: relative;
/*border-bottom: 1px solid #d5d5d5;*/
}
.m-ad-l {
width: 70%;
display: inline-block;
}
.m-ad-i-top {
font-size: 16px;
line-height: 50rpx;
}
.m-ad-i-top text {
margin-right: 20rpx;
}
.m-ad-i-bot {
font-size: 14px;
color: #888;
line-height: 20px;
margin-top: 10rpx;
}
.m-ad-icon {
font-size: 12px;
padding: 4rpx 8rpx;
background-color: $default-skin-bg;
color: #fff;
border-radius: 8rpx;
margin-right: 8rpx;
text-align: center;
}
.m-ad-edit {
position: absolute;
right: 20rpx;
top: 50%;
width: 80rpx;
height: 100rpx;
margin-top: -50rpx;
padding-left: 40rpx;
}
.m-ad-edit label {
width: 40rpx;
height: 50rpx;
line-height: 50rpx;
font-size: 35rpx;
display: block;
vertical-align: middle;
text-align: center;
color: #888888;
}
.c-label{
font-size: 12px;
color:red;
}
.p-label
{
font-size: 12px;
color:green;
}
</style>
<script>
import $ from "../../helpers/util";
import {
mapState,
mapMutations
} from 'vuex'
export default {
data() {
return {
options:{},
invoice_list: [],
isdata: false,
spid: "",
user_invoice_id: 0,
invoice_type:0,
invoice_header:'',
is_show:0,
cart_id:0,
user_invoice_id:0,
}
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
onLoad: function(options) {
uni.setNavigationBarTitle({
title:this.__('发票地址')
});
this.setData({
user_invoice_id: options.user_invoice_id || 0,
invoice_type:options.invoice_type || 0,
spid: options.spid || "",
options: options,
isdata: false,
cart_id:options.cart_id
});
var that = this;
this.listInvoice();
that.notice.addNotification("RefreshInvoiceList", that.RefreshMethod, that);
if(that.cart_id){
that.setData({
is_show:1
});
}
},
onShow: function() {
},
onUnload: function() {
// 离开页面,注销事件
var that = this
this.notice.removeNotification("RefreshInvoiceList", that);
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.listInvoice();
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
RefreshMethod: function() {
//console.info('.........RefreshMethod');
this.listInvoice()
},
listInvoice: function() {
var that = this;
var params = {};
that.setData({
isdata: false,
invoice_list: []
});
that.$.request({
url: that.Config.URL.user.invoice_lists,
data: params,
success: function(data, status, msg, code) {
if (200 == status) {
if (data.items.length > 0) {
//that.invoice_list = data.items;
that.setData({
isdata: true,
invoice_list: data.items
});
} else {
that.setData({
isdata: false
});
}
}
uni.stopPullDownRefresh()
}
});
},
modify: function(e) {
var that = this;
e.currentTarget.dataset.user_invoice_id;
let itemList = ['删除']
uni.showActionSheet({
itemList: itemList,
success: (res) => {
if (res.tapIndex == 0)
{
that.editInvoice(e);
}
else
{
that.removeInvoice(e);
}
}
})
},
editInvoice: function(obj) {
var that = this;
var options = this.options;
options.user_invoice_id = obj.currentTarget.dataset.user_invoice_id;
options.invoice_type = obj.currentTarget.dataset.invoice_type;
if (this.options.issub) {
that.$.redirectTo({
url: that.$.createUrl("/member/invoice/manage", options)
});
} else {
that.$.navigateTo({
url: that.$.createUrl("/member/invoice/manage", options)
});
}
},
addInvoice: function() {
var that = this;
//var options = that.options;
if (that.options.issub)
{
var options = { issub: 1 };
}
else
{
var options = {};
}
if (this.options.issub) {
that.$.redirectTo({
url: that.$.createUrl("/member/invoice/manage", options)
});
} else {
that.$.navigateTo({
url: that.$.createUrl("/member/invoice/manage", options)
});
}
},
selectInvoice: function (obj) {
var that = this;
this.setData({
user_invoice_id: obj.currentTarget.dataset.id,
invoice_type: obj.currentTarget.dataset.invoice_type,
invoice_header: that.sprintf('%s - %s', obj.currentTarget.dataset.invoice_category==1 ? this.__('普通发票') : this.__('增值税专用发票'), obj.currentTarget.dataset.invoice_title, obj.currentTarget.dataset.invoice_title)
});
this.goback();
},
removeInvoice: function(e) {
var that = this;
that.$.showModal({
title: "提示",
content: "确认删除这个发票地址吗?",
showCancel: true,
success: function(n) {
if (n.confirm) {
var params = {
user_invoice_id: e.currentTarget.dataset.user_invoice_id,
};
that.$.request({
url: that.Config.URL.user.invoice_remove,
data: params,
success: function(data, status, msg, code) {
if (200 == status) {
that.$.showToast({
title: "删除成功!"
});
that.notice.postNotificationName("RefreshOrder", 0);
that.listInvoice();
}
}
});
}
}
})
},
goback: function () {
var that = this;
$.navigateBack(1, function () {
var params = that.options;
params.user_invoice_id = that.user_invoice_id;
params.invoice_type = that.invoice_type;
params.invoice_header = that.invoice_header;
that.notice.postNotificationName("Refreshinvoice", params)
})
}
}
};
</script>