发票
This commit is contained in:
parent
377f3b080a
commit
83eb365628
@ -1,6 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
init(vm){
|
init(vm){
|
||||||
return {
|
return {
|
||||||
// 获取首页轮播
|
// 获取首页轮播
|
||||||
getIndexSwiper() {
|
getIndexSwiper() {
|
||||||
return vm.$u.post('adv/indexadv');
|
return vm.$u.post('adv/indexadv');
|
||||||
@ -139,7 +139,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 订单步骤2:发起订单,返回订单信息
|
// 订单步骤2:发起订单,返回订单信息
|
||||||
sendOrder({ ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, is_selfraising }) {
|
sendOrder({ ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, is_selfraising, invoice_id }) {
|
||||||
return vm.$u.post('buy/buy_step2', {
|
return vm.$u.post('buy/buy_step2', {
|
||||||
ifcart: ifcart,
|
ifcart: ifcart,
|
||||||
cart_id: cart_id,
|
cart_id: cart_id,
|
||||||
@ -149,6 +149,7 @@ export default {
|
|||||||
pintuangroup_id: pintuangroup_id,
|
pintuangroup_id: pintuangroup_id,
|
||||||
voucher_id: voucher_id, // 优惠券信息
|
voucher_id: voucher_id, // 优惠券信息
|
||||||
is_selfraising: is_selfraising, // 是否自提
|
is_selfraising: is_selfraising, // 是否自提
|
||||||
|
invoice_id: invoice_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 订单步骤3:发起支付(第三方统一下单)
|
// 订单步骤3:发起支付(第三方统一下单)
|
||||||
@ -373,8 +374,11 @@ export default {
|
|||||||
//内容
|
//内容
|
||||||
tipsinfo({document_code}){
|
tipsinfo({document_code}){
|
||||||
return vm.$u.post('Shop/tipInfo',{document_code})
|
return vm.$u.post('Shop/tipInfo',{document_code})
|
||||||
}
|
},
|
||||||
}
|
advClick({ adv_id }) {
|
||||||
|
return vm.$u.post('adv/advClick',{ adv_id })
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -479,8 +479,26 @@ export default {
|
|||||||
return vm.$u.post("Expertapply/expertApply", {
|
return vm.$u.post("Expertapply/expertApply", {
|
||||||
name, mobile, address, industry, hobby
|
name, mobile, address, industry, hobby
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
getInvoiceList() {
|
||||||
|
return vm.$u.post("Invoice/invoiceList")
|
||||||
|
},
|
||||||
|
getInvoiceInfo({ invoice_id }) {
|
||||||
|
return vm.$u.post("Invoice/invoiceInfo", { invoice_id })
|
||||||
|
},
|
||||||
|
invoiceAdd({ invoice_type, invoice_title, invoice_code, invoice_goto_addr, invoice_rec_mobphone, invoice_reg_bname, invoice_reg_baccount }) {
|
||||||
|
return vm.$u.post("Invoice/invoiceAdd", {
|
||||||
|
invoice_type, invoice_title, invoice_code, invoice_goto_addr, invoice_rec_mobphone, invoice_reg_bname, invoice_reg_baccount
|
||||||
|
})
|
||||||
|
},
|
||||||
|
invoiceEdit({ invoice_id, invoice_title, invoice_code, invoice_goto_addr, invoice_rec_mobphone, invoice_reg_bname, invoice_reg_baccount, invoice_type }) {
|
||||||
|
return vm.$u.post("Invoice/invoiceEdit", {
|
||||||
|
invoice_id, invoice_title, invoice_code, invoice_goto_addr, invoice_rec_mobphone, invoice_reg_bname, invoice_reg_baccount, invoice_type
|
||||||
|
})
|
||||||
|
},
|
||||||
|
invoiceDel({ invoice_id }) {
|
||||||
|
return vm.$u.post("Invoice/invoiceDel", { invoice_id })
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -21,6 +21,10 @@ const store = new Vuex.Store({
|
|||||||
showLoginModel: false, // 登录框
|
showLoginModel: false, // 登录框
|
||||||
question: {}, // 帮助与反馈
|
question: {}, // 帮助与反馈
|
||||||
showCoupons: true, // 是否显示新人领取优惠券
|
showCoupons: true, // 是否显示新人领取优惠券
|
||||||
|
invoiceInfo: { // 是否选择发票
|
||||||
|
invoice_type: '',
|
||||||
|
invoice_id: 0,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
getOrderAddress(state) {
|
getOrderAddress(state) {
|
||||||
@ -31,8 +35,15 @@ const store = new Vuex.Store({
|
|||||||
},
|
},
|
||||||
getGoodsInfo(state) {
|
getGoodsInfo(state) {
|
||||||
return state.goodsDetails.goods;
|
return state.goodsDetails.goods;
|
||||||
|
},
|
||||||
|
hasInvoice(state) {
|
||||||
|
const type = state.invoiceInfo.invoice_type;
|
||||||
|
return type ? type : 0;
|
||||||
|
},
|
||||||
|
getInvoiceId(state) {
|
||||||
|
return state.invoiceInfo.invoice_id || 0;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
// 登录
|
// 登录
|
||||||
loginIn(state, token) {
|
loginIn(state, token) {
|
||||||
@ -83,6 +94,9 @@ const store = new Vuex.Store({
|
|||||||
},
|
},
|
||||||
updateShowCoupons(state, status) {
|
updateShowCoupons(state, status) {
|
||||||
state.showCoupons = status;
|
state.showCoupons = status;
|
||||||
|
},
|
||||||
|
setInvoiceInfo(state, invoice = {}) {
|
||||||
|
state.invoiceInfo = invoice;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -69,6 +69,14 @@
|
|||||||
<image src="../static/image/1.png"></image>
|
<image src="../static/image/1.png"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view>
|
||||||
|
<view class="title">开具发票</view>
|
||||||
|
<view class="value" @click="selectInvoice">
|
||||||
|
<view class="invoice" v-if="!hasInvoice">本次不开具发票</view>
|
||||||
|
<view class="invoice" v-else>{{ hasInvoice == 1 ? '个人或事业单位发票' : '企业发票' }}</view>
|
||||||
|
<image src="../static/image/1.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-popup v-model="couponStatus" mode="bottom">
|
<u-popup v-model="couponStatus" mode="bottom">
|
||||||
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 1">
|
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 1">
|
||||||
@ -134,6 +142,7 @@ export default {
|
|||||||
orderType: '', // 订单类型 1 普通订单 2 拼团订单 3 秒杀订单 4 优惠券 5 购物车订单
|
orderType: '', // 订单类型 1 普通订单 2 拼团订单 3 秒杀订单 4 优惠券 5 购物车订单
|
||||||
debounce: true,
|
debounce: true,
|
||||||
is_selfraising: 0, // 是否自提:0=》否,1=》是
|
is_selfraising: 0, // 是否自提:0=》否,1=》是
|
||||||
|
hasInvoice: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@ -176,9 +185,12 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress;
|
if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress;
|
||||||
}
|
}
|
||||||
|
this.hasInvoice = this.$store.getters.hasInvoice;
|
||||||
|
console.log(this.hasInvoice);
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.$store.commit('updateAddress', {});
|
this.$store.commit('updateAddress', {});
|
||||||
|
this.$store.commit('setInvoiceInfo', {});
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.orderAddress'(value) {
|
'$store.state.orderAddress'(value) {
|
||||||
@ -265,6 +277,7 @@ export default {
|
|||||||
address_id: this.addressInfo.address_id,
|
address_id: this.addressInfo.address_id,
|
||||||
buy_city_id: this.addressInfo.city_id,
|
buy_city_id: this.addressInfo.city_id,
|
||||||
is_selfraising: this.is_selfraising,
|
is_selfraising: this.is_selfraising,
|
||||||
|
invoice_id: this.$store.getters.getInvoiceId, // 发票抬头ID,不开票传0
|
||||||
}
|
}
|
||||||
if(coupon.length) Object.assign(params, { voucher_id: coupon });
|
if(coupon.length) Object.assign(params, { voucher_id: coupon });
|
||||||
if(this.orderType == 2) {
|
if(this.orderType == 2) {
|
||||||
@ -430,7 +443,10 @@ export default {
|
|||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pageE/more/Address?type=choose'
|
url: '/pageE/more/Address?type=choose'
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
selectInvoice() {
|
||||||
|
this.$u.route('/pageC/cart/selectInvoice');
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -632,6 +648,9 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color:rgba(51,51,51,1);
|
color:rgba(51,51,51,1);
|
||||||
|
.invoice {
|
||||||
|
font-size: 26rpx;
|
||||||
|
}
|
||||||
> image {
|
> image {
|
||||||
width: 12rpx;
|
width: 12rpx;
|
||||||
height: 22rpx;
|
height: 22rpx;
|
||||||
|
186
pageC/cart/selectInvoice.vue
Normal file
186
pageC/cart/selectInvoice.vue
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<template>
|
||||||
|
<view class="select-invoice">
|
||||||
|
<view class="invoice-type">
|
||||||
|
<view class="title">发票类型</view>
|
||||||
|
<u-radio-group v-model="type" @change="radioGroupChange" icon-size="0" active-color="#FF780F" size="16">
|
||||||
|
<u-radio
|
||||||
|
v-for="(item, index) in list" :key="index"
|
||||||
|
:name="item.type"
|
||||||
|
>
|
||||||
|
{{item.name}}
|
||||||
|
</u-radio>
|
||||||
|
</u-radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="invoice-list" v-if="currentList.length">
|
||||||
|
<u-radio-group v-model="invoice" @change="selectInvoice" active-color="#FF780F" icon-size="12" size="30" :wrap="true">
|
||||||
|
<u-radio
|
||||||
|
v-for="(item, index) in currentList" :key="index"
|
||||||
|
:name="item.invoice_id"
|
||||||
|
>
|
||||||
|
{{ item.invoice_title }}
|
||||||
|
</u-radio>
|
||||||
|
</u-radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="invoice-none" v-if="!currentList.length">您当前还未添加抬头发票,<text @click="addInvoice">点击立即添加</text></view>
|
||||||
|
<view class="btn-group">
|
||||||
|
<view class="submit" @click="submit">提交申请</view>
|
||||||
|
<view class="cancel" @click="cancel">不开发票</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
type: 1,
|
||||||
|
list: [{
|
||||||
|
type: 1,
|
||||||
|
name: '个人或事业单位'
|
||||||
|
}, {
|
||||||
|
type: 2,
|
||||||
|
name: '企业'
|
||||||
|
}],
|
||||||
|
invoice: '',
|
||||||
|
invoiceList: [],
|
||||||
|
currentList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.type = 1;
|
||||||
|
this.getInvoiceList();
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
type(value) {
|
||||||
|
let invoiceList = this.invoiceList.filter(item => item.invoice_type == value);
|
||||||
|
this.currentList = invoiceList;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getInvoiceList() {
|
||||||
|
this.$u.api.getInvoiceList().then(res => {
|
||||||
|
this.invoiceList = res.data;
|
||||||
|
this.currentList = this.invoiceList.filter(item => item.invoice_type == this.type);
|
||||||
|
// console.log(this.invoiceList);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
radioGroupChange(e) {
|
||||||
|
this.type = e;
|
||||||
|
},
|
||||||
|
selectInvoice(e) {
|
||||||
|
this.invoice = e;
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
console.log(this.invoice);
|
||||||
|
if(!this.invoice) {
|
||||||
|
this.$u.toast('请选择发票');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.$store.commit('setInvoiceInfo', {
|
||||||
|
invoice_type: this.type,
|
||||||
|
invoice_id: this.invoice
|
||||||
|
});
|
||||||
|
this.$u.route({ type: 'back' });
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.$store.commit('setInvoiceInfo', {
|
||||||
|
invoice_type: 0
|
||||||
|
});
|
||||||
|
this.$u.route({ type: 'back' });
|
||||||
|
},
|
||||||
|
addInvoice() {
|
||||||
|
this.$u.route('/pageE/more/EditInvoice', { action: 1 });
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.select-invoice {
|
||||||
|
min-height: calc(100vh - var(--window-top));
|
||||||
|
background: #ECECEC;
|
||||||
|
padding-top: 1rpx;
|
||||||
|
.invoice-type {
|
||||||
|
height: 98rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
padding: 35rpx 30rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 120rpx;
|
||||||
|
margin-right: 50rpx;
|
||||||
|
}
|
||||||
|
.u-radio-group {
|
||||||
|
flex: 1;
|
||||||
|
/deep/ .u-radio {
|
||||||
|
.u-radio__icon-wrap {
|
||||||
|
margin: 0 20rpx;
|
||||||
|
position: relative;
|
||||||
|
background-color: #DBDBDB;
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 29rpx;
|
||||||
|
height: 29rpx;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
border: 1rpx solid #DBDBDB;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.u-radio__icon-wrap--checked {
|
||||||
|
background-color: #FF780F;
|
||||||
|
&::before {
|
||||||
|
border-color: #FF780F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.invoice-list {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
/deep/ .u-radio-group {
|
||||||
|
height: 80rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
.u-radio {
|
||||||
|
line-height: 1 !important;
|
||||||
|
.u-radio__icon-wrap {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.invoice-none {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 70rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #333333;
|
||||||
|
> text {
|
||||||
|
color: #FF780F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-group {
|
||||||
|
margin-top: 250rpx;
|
||||||
|
> view {
|
||||||
|
width: 690rpx;
|
||||||
|
height: 98rpx;
|
||||||
|
border-radius: 49rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
line-height: 98rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.submit {
|
||||||
|
background: #FF780F;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.cancel {
|
||||||
|
background: #FFFFFF;
|
||||||
|
color: #FF780F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
307
pageE/more/EditInvoice.vue
Normal file
307
pageE/more/EditInvoice.vue
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
<template>
|
||||||
|
<view class="edit-invoice">
|
||||||
|
<view class="invoice-type">
|
||||||
|
<view class="title">发票类型</view>
|
||||||
|
<u-radio-group v-model="type" @change="radioGroupChange" icon-size="0" active-color="#FF780F" size="16">
|
||||||
|
<u-radio
|
||||||
|
v-for="(item, index) in list" :key="index"
|
||||||
|
:name="item.type"
|
||||||
|
:disabled="action==0"
|
||||||
|
>
|
||||||
|
{{item.name}}
|
||||||
|
</u-radio>
|
||||||
|
</u-radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">发票抬头</view>
|
||||||
|
<input type="text" placeholder="抬头名称或极速开票6位代码" v-model="title" />
|
||||||
|
</view>
|
||||||
|
<view class="personal" v-show="type==1">
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">手机号</view>
|
||||||
|
<input type="number" placeholder="请输入您的手机号" maxlength="11" v-model="personalPhone" />
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">身份证号</view>
|
||||||
|
<input type="text" placeholder="请输入您的身份证号" v-model="idCard" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="company" v-show="type==2">
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">税号</view>
|
||||||
|
<input type="text" placeholder="纳税人识别号或社会统一征信代码" v-model="taxNumber" />
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">单位地址</view>
|
||||||
|
<input type="text" placeholder="请输入公司地址" v-model="address" />
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">电话号码</view>
|
||||||
|
<input type="number" placeholder="请输入公司电话" maxlength="11" v-model="companyPhone" />
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">开户银行</view>
|
||||||
|
<input type="text" placeholder="请输入开户银行" v-model="bankDeposit" />
|
||||||
|
</view>
|
||||||
|
<view class="info-item">
|
||||||
|
<view class="title">银行账户</view>
|
||||||
|
<input type="text" placeholder="请输入银行账户" v-model="bankAccounts" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="save-btn" @click="submit">保存</view>
|
||||||
|
<u-toast ref="uToast" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
invoice_id: '',
|
||||||
|
action: '', // 0 编辑 1 添加
|
||||||
|
type: '', // 发票类型
|
||||||
|
list: [{
|
||||||
|
type: 1,
|
||||||
|
name: '个人或事业单位'
|
||||||
|
}, {
|
||||||
|
type: 2,
|
||||||
|
name: '企业'
|
||||||
|
}],
|
||||||
|
title: '',
|
||||||
|
personalPhone: '',
|
||||||
|
idCard: '',
|
||||||
|
taxNumber: '',
|
||||||
|
address: '',
|
||||||
|
companyPhone: '',
|
||||||
|
bankDeposit: '',
|
||||||
|
bankAccounts: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(option) {
|
||||||
|
this.action = option.action;
|
||||||
|
if(option.invoice_id) {
|
||||||
|
this.type = 0;
|
||||||
|
this.invoice_id = option.invoice_id;
|
||||||
|
this.getInvoiceInfo();
|
||||||
|
} else {
|
||||||
|
this.type = 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
this.action == 1 ? this.invoiceAdd() : this.invoiceEdit();
|
||||||
|
},
|
||||||
|
verificationParams() {
|
||||||
|
if(this.type == 1) {
|
||||||
|
if(this.$u.test.isEmpty(this.title)) {
|
||||||
|
this.$u.toast('发票抬头不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.personalPhone)) {
|
||||||
|
this.$u.toast('手机号不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!this.$u.test.mobile(this.personalPhone)) {
|
||||||
|
this.$u.toast('请正确填写手机号');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.idCard)) {
|
||||||
|
this.$u.toast('身份证号不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(this.$u.test.isEmpty(this.title)) {
|
||||||
|
this.$u.toast('发票抬头不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.taxNumber)) {
|
||||||
|
this.$u.toast('税号不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.address)) {
|
||||||
|
this.$u.toast('单位地址不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.companyPhone)) {
|
||||||
|
this.$u.toast('电话号码不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!this.$u.test.mobile(this.companyPhone)) {
|
||||||
|
this.$u.toast('请正确填写电话号码');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.bankDeposit)) {
|
||||||
|
this.$u.toast('开户银行不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.$u.test.isEmpty(this.bankAccounts)) {
|
||||||
|
this.$u.toast('银行账户不可为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
invoiceAdd() {
|
||||||
|
if(!this.verificationParams()) return false;
|
||||||
|
let params = {};
|
||||||
|
this.type == 1
|
||||||
|
? params = {
|
||||||
|
invoice_type: 1,
|
||||||
|
invoice_title: this.title,
|
||||||
|
invoice_code: this.idCard,
|
||||||
|
invoice_rec_mobphone: this.personalPhone,
|
||||||
|
}
|
||||||
|
: params = {
|
||||||
|
invoice_type: 2,
|
||||||
|
invoice_title: this.title,
|
||||||
|
invoice_code: this.taxNumber,
|
||||||
|
invoice_goto_addr: this.address,
|
||||||
|
invoice_rec_mobphone: this.companyPhone,
|
||||||
|
invoice_reg_bname: this.bankDeposit,
|
||||||
|
invoice_reg_baccount: this.bankAccounts,
|
||||||
|
}
|
||||||
|
this.$u.api.invoiceAdd(params).then(res => {
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.message,
|
||||||
|
back: true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$u.toast(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
invoiceEdit() {
|
||||||
|
if(!this.verificationParams()) return false;
|
||||||
|
let params = {};
|
||||||
|
this.type == 1
|
||||||
|
? params = {
|
||||||
|
invoice_id: this.invoice_id,
|
||||||
|
invoice_type: 1,
|
||||||
|
invoice_title: this.title,
|
||||||
|
invoice_code: this.idCard,
|
||||||
|
invoice_rec_mobphone: this.personalPhone,
|
||||||
|
}
|
||||||
|
: params = {
|
||||||
|
invoice_id: this.invoice_id,
|
||||||
|
invoice_type: 2,
|
||||||
|
invoice_title: this.title,
|
||||||
|
invoice_code: this.taxNumber,
|
||||||
|
invoice_goto_addr: this.address,
|
||||||
|
invoice_rec_mobphone: this.companyPhone,
|
||||||
|
invoice_reg_bname: this.bankDeposit,
|
||||||
|
invoice_reg_baccount: this.bankAccounts,
|
||||||
|
}
|
||||||
|
this.$u.api.invoiceEdit(params).then(res => {
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.message,
|
||||||
|
back: true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$u.toast(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getInvoiceInfo() {
|
||||||
|
this.$u.api.getInvoiceInfo({ invoice_id: this.invoice_id }).then(res => {
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
const invoice = res.data;
|
||||||
|
if(res.data.invoice_type == 1) {
|
||||||
|
this.title = invoice.invoice_title;
|
||||||
|
this.personalPhone = invoice.invoice_rec_mobphone;
|
||||||
|
this.idCard = invoice.invoice_code;
|
||||||
|
this.type = invoice.invoice_type;
|
||||||
|
} else if(res.data.invoice_type == 2) {
|
||||||
|
this.title = invoice.invoice_title;
|
||||||
|
this.taxNumber = invoice.invoice_code;
|
||||||
|
this.address = invoice.invoice_goto_addr;
|
||||||
|
this.companyPhone = invoice.invoice_rec_mobphone;
|
||||||
|
this.bankDeposit = invoice.invoice_reg_bname;
|
||||||
|
this.bankAccounts = invoice.invoice_reg_baccount;
|
||||||
|
this.type = invoice.invoice_type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
radioGroupChange(e) {
|
||||||
|
this.type = e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.edit-invoice {
|
||||||
|
min-height: calc(100vh - var(--window-top));
|
||||||
|
background: #ECECEC;
|
||||||
|
.invoice-type {
|
||||||
|
height: 98rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
padding: 35rpx 30rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 120rpx;
|
||||||
|
margin-right: 50rpx;
|
||||||
|
}
|
||||||
|
.u-radio-group {
|
||||||
|
flex: 1;
|
||||||
|
/deep/ .u-radio {
|
||||||
|
.u-radio__icon-wrap {
|
||||||
|
margin: 0 20rpx;
|
||||||
|
position: relative;
|
||||||
|
background-color: #DBDBDB;
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 29rpx;
|
||||||
|
height: 29rpx;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
border: 1rpx solid #DBDBDB;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.u-radio__icon-wrap--checked {
|
||||||
|
background-color: #FF780F;
|
||||||
|
&::before {
|
||||||
|
border-color: #FF780F;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.info-item {
|
||||||
|
height: 98rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
padding: 35rpx 30rpx;
|
||||||
|
.title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 120rpx;
|
||||||
|
margin-right: 50rpx;
|
||||||
|
}
|
||||||
|
> input {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.save-btn {
|
||||||
|
width: 690rpx;
|
||||||
|
height: 98rpx;
|
||||||
|
background: #FF780F;
|
||||||
|
border-radius: 49rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin: 120rpx auto 0;
|
||||||
|
line-height: 98rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
123
pageE/more/MineInvoice.vue
Normal file
123
pageE/more/MineInvoice.vue
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<template>
|
||||||
|
<view class="invoice">
|
||||||
|
<view class="invoice-container">
|
||||||
|
<view class="invoice-item" v-for="(item, index) in invoiceList" :key="index">
|
||||||
|
<view class="title">{{ item.invoice_type == 1 ? '个人发票' : '企业发票' }}</view>
|
||||||
|
<view class="code">{{ item.invoice_title }}</view>
|
||||||
|
<view class="tool">
|
||||||
|
<view class="tool-item" @click="edit(0, item.invoice_id)">
|
||||||
|
<image src="../static/mine/24.png"></image>
|
||||||
|
<text>编辑</text>
|
||||||
|
</view>
|
||||||
|
<view class="tool-item" @click="delInvoice(item.invoice_id)">
|
||||||
|
<image src="../static/mine/25.png"></image>
|
||||||
|
<text>删除</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="invoice-btn" @click="edit(1)">添加发票抬头</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
invoiceList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.getInvoiceList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getInvoiceList() {
|
||||||
|
this.$u.api.getInvoiceList().then(res => {
|
||||||
|
this.invoiceList = res.data;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delInvoice(id) {
|
||||||
|
this.$u.api.invoiceDel({ invoice_id: id }).then(res => {
|
||||||
|
if(res.errCode == 0) this.getInvoiceList();
|
||||||
|
else this.$u.toast(res.message);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
edit(action, invoice_id) {
|
||||||
|
this.$u.route('/pageE/more/EditInvoice', {
|
||||||
|
action: action, // 0 编辑 1 添加
|
||||||
|
invoice_id: invoice_id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.invoice {
|
||||||
|
min-height: calc(100vh - var(--window-top));
|
||||||
|
background: #ECECEC;
|
||||||
|
padding-top: 20rpx;
|
||||||
|
.invoice-container {
|
||||||
|
width: 690rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
.invoice-item {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 16rpx 20rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
.title {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #666666;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
}
|
||||||
|
.code {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
position: relative;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
width: 100%;
|
||||||
|
height: 2rpx;
|
||||||
|
background-color: #ECECEC;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.tool {
|
||||||
|
padding-top: 18rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
.tool-item {
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
> image {
|
||||||
|
width: 23rpx;
|
||||||
|
height: 23rpx;
|
||||||
|
margin-right: 14rpx;
|
||||||
|
}
|
||||||
|
> text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.invoice-btn {
|
||||||
|
width: 690rpx;
|
||||||
|
height: 98rpx;
|
||||||
|
background: #FF780F;
|
||||||
|
border-radius: 49rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 98rpx;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 40rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
39
pages.json
39
pages.json
@ -358,6 +358,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "cart/selectInvoice",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "发票抬头",
|
||||||
|
"app-plus": {
|
||||||
|
"titleSize": "36px",
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "merchant/index",
|
"path": "merchant/index",
|
||||||
"style": {
|
"style": {
|
||||||
@ -635,6 +648,32 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "more/MineInvoice",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的发票",
|
||||||
|
"app-plus": {
|
||||||
|
"titleSize": "36px",
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "more/EditInvoice",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "发票抬头",
|
||||||
|
"app-plus": {
|
||||||
|
"titleSize": "36px",
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "mine/ArticleDetails",
|
"path": "mine/ArticleDetails",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -549,7 +549,8 @@
|
|||||||
// console.log(item);
|
// console.log(item);
|
||||||
this.jumpPage({
|
this.jumpPage({
|
||||||
type: item.url_type,
|
type: item.url_type,
|
||||||
id: item.info_id,
|
id: item.info_id,
|
||||||
|
adv_id: item.adv_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
clickSImage(index) {
|
clickSImage(index) {
|
||||||
@ -557,11 +558,12 @@
|
|||||||
// console.log(item);
|
// console.log(item);
|
||||||
this.jumpPage({
|
this.jumpPage({
|
||||||
type: item.url_type,
|
type: item.url_type,
|
||||||
id: item.info_id,
|
id: item.info_id,
|
||||||
|
adv_id: item.adv_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
goSearch() {
|
goSearch() {
|
||||||
this.$u.route("/pageB/search/index", {
|
this.$u.route("/pageB/search/index", {
|
||||||
type: 2,
|
type: 2,
|
||||||
curent:2
|
curent:2
|
||||||
});
|
});
|
||||||
@ -576,17 +578,18 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
onPulling(e) {
|
onPulling(e) {
|
||||||
console.log("onpulling", e);
|
console.log("onpulling", e);
|
||||||
},
|
},
|
||||||
onRestore() {
|
onRestore() {
|
||||||
this.refresher = 'restore'; // 需要重置
|
this.refresher = 'restore'; // 需要重置
|
||||||
console.log("onRestore");
|
console.log("onRestore");
|
||||||
},
|
},
|
||||||
onAbort() {
|
onAbort() {
|
||||||
console.log("onAbort");
|
console.log("onAbort");
|
||||||
},
|
},
|
||||||
jumpPage(uri) {
|
jumpPage(uri) {
|
||||||
// console.log(uri);
|
// console.log(uri);
|
||||||
|
this.$u.api.advClick({ adv_id: uri.adv_id });
|
||||||
common.jumpPage({ type: uri.type, id: uri.id });
|
common.jumpPage({ type: uri.type, id: uri.id });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -109,6 +109,10 @@
|
|||||||
<image src="/static/image/mine/45.png"></image>
|
<image src="/static/image/mine/45.png"></image>
|
||||||
<view>达人申请</view>
|
<view>达人申请</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view @click="toOtherPage('/more/MineInvoice')">
|
||||||
|
<image src="/static/image/mine/46.png"></image>
|
||||||
|
<view>我的发票</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -451,7 +455,7 @@ export default {
|
|||||||
width: 100rpx;
|
width: 100rpx;
|
||||||
}
|
}
|
||||||
> view:not(:last-child) {
|
> view:not(:last-child) {
|
||||||
margin-right: 32rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -468,7 +472,7 @@ export default {
|
|||||||
width: 100rpx;
|
width: 100rpx;
|
||||||
}
|
}
|
||||||
> view:not(:last-child) {
|
> view:not(:last-child) {
|
||||||
margin-right: 32rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.badge-box {
|
.badge-box {
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<!-- 拼团列表 -->
|
<!-- 拼团列表 -->
|
||||||
<group></group>
|
<group></group>
|
||||||
<view class="activity-view">
|
<view class="activity-view">
|
||||||
<image class="lingquan" :src="activityInfo.adv_code" @click="jumpPage({ type: activityInfo.url_type, id: activityInfo.info_id })"></image>
|
<image class="lingquan" :src="activityInfo.adv_code" @click="jumpPage({ type: activityInfo.url_type, id: activityInfo.info_id, adv_id: activityInfo.adv_id })"></image>
|
||||||
</view>
|
</view>
|
||||||
<!-- 优惠券 -->
|
<!-- 优惠券 -->
|
||||||
<youhq></youhq>
|
<youhq></youhq>
|
||||||
@ -211,10 +211,11 @@
|
|||||||
},
|
},
|
||||||
clickImage(index) {
|
clickImage(index) {
|
||||||
// console.log(this.list[index]);
|
// console.log(this.list[index]);
|
||||||
let item = this.list[index];
|
let item = this.list[index];
|
||||||
this.jumpPage({
|
this.jumpPage({
|
||||||
type: item.url_type,
|
type: item.url_type,
|
||||||
id: item.info_id,
|
id: item.info_id,
|
||||||
|
adv_id: item.adv_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 下拉加载更多推荐商品
|
// 下拉加载更多推荐商品
|
||||||
@ -244,6 +245,7 @@
|
|||||||
},
|
},
|
||||||
jumpPage(uri) {
|
jumpPage(uri) {
|
||||||
// console.log(uri);
|
// console.log(uri);
|
||||||
|
this.$u.api.advClick({ adv_id: uri.adv_id });
|
||||||
common.jumpPage({ type: uri.type, id: uri.id });
|
common.jumpPage({ type: uri.type, id: uri.id });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
BIN
static/image/mine/46.png
Normal file
BIN
static/image/mine/46.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Loading…
Reference in New Issue
Block a user