From f3f6803f309c5ecf9a0ddaba6319f8a714b27f8d Mon Sep 17 00:00:00 2001 From: wangzimeng <3297159934@qq.com> Date: Tue, 1 Jul 2025 18:28:55 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E5=8F=91=E7=A5=A8=E8=B7=B3=E8=BD=AC2=E3=80=81?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8F=91=E7=A5=A8=E6=8E=A5=E5=8F=A3=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=203=E3=80=81=E5=8F=91=E7=A5=A8=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E7=9A=84=E6=8A=AC=E5=A4=B4=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=92=8C=E6=8F=90=E4=BA=A4=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E6=95=B0=E7=BB=84=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=8F=90=E7=A4=BA=204=E3=80=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8F=91=E7=A5=A8=E7=9A=84=E9=9D=99=E6=80=81=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=205=E3=80=81=E6=9F=A5=E7=9C=8B=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E7=9A=84=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2+=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AF=B9=E6=8E=A5=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packageA/my/exercise.vue | 14 +- packageB/invoice/addHead.vue | 482 +++++++++++++++++++++++++++ packageB/invoice/addInvoice.vue | 96 ++++-- packageB/invoice/invoiceCenter.vue | 503 ++++++++++++++++++----------- packageB/invoice/invoiceInfo.vue | 287 +++++++++++++++- pages.json | 6 + static/invoice/conRecord.png | Bin 0 -> 2940 bytes static/invoice/invInfoBk.png | Bin 0 -> 19625 bytes static/invoice/statusInv.png | Bin 0 -> 2709 bytes 9 files changed, 1180 insertions(+), 208 deletions(-) create mode 100644 packageB/invoice/addHead.vue create mode 100644 static/invoice/conRecord.png create mode 100644 static/invoice/invInfoBk.png create mode 100644 static/invoice/statusInv.png diff --git a/packageA/my/exercise.vue b/packageA/my/exercise.vue index 32d3305..b990c29 100644 --- a/packageA/my/exercise.vue +++ b/packageA/my/exercise.vue @@ -51,7 +51,8 @@ @click="toDetail(item.id, item.order_no, item.status)">核销码 申请开票 - 开票中 + 查看开票 查看详情 @@ -563,6 +564,17 @@ border-radius: 276rpx 276rpx 276rpx 276rpx; margin-right: 10rpx; } + .btn_InvIng { + width: 180rpx; + height: 70rpx; + line-height: 70rpx; + text-align: center; + color: #999999; + // border: 2rpx solid #999999; + background-color: #f0f0f0; + border-radius: 276rpx 276rpx 276rpx 276rpx; + margin-right: 10rpx; + } .btnhx { width: 180rpx; diff --git a/packageB/invoice/addHead.vue b/packageB/invoice/addHead.vue new file mode 100644 index 0000000..808d2ff --- /dev/null +++ b/packageB/invoice/addHead.vue @@ -0,0 +1,482 @@ + + + + + \ No newline at end of file diff --git a/packageB/invoice/addInvoice.vue b/packageB/invoice/addInvoice.vue index 8fcd7ae..a4497ea 100644 --- a/packageB/invoice/addInvoice.vue +++ b/packageB/invoice/addInvoice.vue @@ -16,7 +16,7 @@ 已选择{{num}}个订单 预计发票金额:¥ - 43.25 + {{totalPrice}} 预计金额仅作为参考,请以合并后的实际金额为准 @@ -26,7 +26,7 @@ - + - - + + + + + - - + + 商品明细 @@ -229,6 +233,46 @@ + + + + 发票内容说明 + + ·发票内容将显示详细商品名称与价格信息 + ·部分商家可能开具发票内容为商品所属类别及价格信息,如有特殊需求,请向商家客服咨询。 + + + + + 取消 + + + 我已知晓 + + + + @@ -247,6 +291,16 @@ alignItems: 'center', flexColumn: 'column' }, + popupStyRe: { + width: '540rpx', + padding: '24rpx 24rpx 42rpx 24rpx', + height: '384rpx', + margin: '0 auto', // 水平居中 + display: 'flex', + justifyContent: 'start', + alignItems: 'center', + flexColumn: 'column' + }, style: { // 字符串的形式 img: 'width: 100%' @@ -307,6 +361,8 @@ limit: 10, headList: [], selectHeadIndex: null, + totalPrice:0, + explainShow:false,//发票内容显隐 // keywords: '', } }, @@ -318,8 +374,11 @@ this.id = options.id console.log('id1', this.id); this.getOrderInfo(); + }else { + this.totalPrice = options.totalPrice + console.log('totalPrice:',this.totalPrice); } - console.log('num:', this.num, 'order_nos:', this.order_nos); + console.log('order_nos:', this.order_nos,'totalPrice:',this.totalPrice); }, onReady() { console.log('设置规则:', this.rules); @@ -370,7 +429,7 @@ this.form.head_type = 'corporate' }, openHeadShow() { - this.headShow = true; + // this.headShow = true; this.getHeadList(); }, closeHeadShow() { @@ -388,6 +447,7 @@ console.log('res:', res); this.headList = res.data.list console.log('headlist', this.headList[2]); + this.headShow = true; } else { uni.showToast({ title: res.msg, @@ -491,8 +551,12 @@ return; } } + console.log('submit:',this.order_nos); + // 如果存在意外引号,可以清理: + const cleanOrderNos = this.order_nos.replace(/^"+|"+$/g, ''); uni.$u.http.post('/api/school.header/apply', { - order_nos: this.order_nos, + // order_nos: this.order_nos, + order_nos: cleanOrderNos, head_type: this.form.head_type, invoice_type: this.form.invoice_type, invoice_header: this.form.invoice_header, @@ -506,7 +570,7 @@ }).then(res => { if (res.code == 1) { uni.showToast({ - title: '提交申请成功', + title: res.msg, icon: 'success', duration: 2000 }) @@ -518,16 +582,6 @@ }) } }).catch(error => {}); - // this.$refs.uForm.validate(valid => { - // console.log('sub2'); - // if (valid) { - // console.log('sub3'); - - // console.log('表单数据:', this.form) - // } else { - // console.log('验证失败') - // } - // }) }, }, } diff --git a/packageB/invoice/invoiceCenter.vue b/packageB/invoice/invoiceCenter.vue index ee5e422..cce69c1 100644 --- a/packageB/invoice/invoiceCenter.vue +++ b/packageB/invoice/invoiceCenter.vue @@ -9,21 +9,24 @@ - + - - - - + + + + - + {{item.detail.title}} @@ -34,104 +37,135 @@ 申请开票 + + + + 暂无数据 + + + + :class="{ selected: recordIndexSelected(item.status) }" + @click="selecRecordIndex(item.status)"> {{ item.text }} - - - + + + + + + + {{item.activityorders[0].title}} + + ¥ {{item.activityorders[0].price}} + + 查看发票 + + + + 开票中 + + + 已作废 + + + - - 名字 - - ¥ 价格 - + + + + + + + + + {{e.detail.title}} + + ¥ {{e.detail.price}} + + + + + + + + + {{item.activityorders.length}}个订单 发票金额:¥{{item.price}} + 查看发票 - + + 开票中 - - - - - - - - - - - 名字 - - ¥ 价格 + + 已作废 - - - - - - - - - 名字 - - ¥ 价格 - - - - - - - - - 2个订单 发票金额:¥1213 - - - 开票中 - + + + + + 暂无数据 + + + - + + 抬头信息仅用于开具发票,请勿用于转账等其他用途谨防受骗 - - 专业发票抬头 + + 专业发票抬头 + 个人发票抬头 - 默认 - 洛阳灵睿网络技术有限公司 + 默认 + {{item.invoice_header}} - 9741212154551411C + {{item.tax_id}} - - + + + - + - + --> - + 添加发票抬头 + + + + 暂无数据 + + + - + - + - + @@ -178,9 +219,8 @@ }, size: 13, sortStyle: ['#ff557f', '#3f3f3f'], - selected:'0', - headers: [ - { + selected: '0', + headers: [{ index: '0', text: '合开发票' }, @@ -193,70 +233,90 @@ text: '抬头管理' } ], - invoiceCheck: '0',//和开发票选中状态:0未选中,1选中 - recordTypeList: [ - { - index: '0', + invoiceCheck: '0', //和开发票选中状态:0未选中,1选中 + recordTypeList: [{ + status: '', text: '全部' }, { - index: '1', + status: '1', text: '已开票' }, { - index: '2', + status: '2', text: '未开票' } - ],//提交记录的tabs数据 - recordeIndex: '0',//提交记录的tabs选中 + ], //提交记录的tabs数据 + recordeStatus: '', //提交记录的tabs选中状态 + recordList: [], //提交记录 page: 1, limit: 10, loadStatus: 'loading', - unInvoiceList:[],//可开发票列表 - invoicedList: [],//已开发票列表 - upList: [],//支票抬头列表 - count:0, - order_nos: '',//选中的多个订单号 - num:0, + unInvoiceList: [], //可开发票列表 + invoicedList: [], //已开发票列表 + upList: [], //支票抬头列表 + count: 0, + order_nos: '', //选中的多个订单号 + totalPrice: 0, + num: 0, id: 0, + headList: [], //抬头管理 }; }, - onLoad(option) { + onLoad(option) { this.getInvoiceList() + this.getHeadList() + this.getRecordList() }, onShow() { this.getInvoiceList() + this.getHeadList() + this.getRecordList() }, onPullDownRefresh() { }, onReachBottom() { - + }, - + methods: { //三个列表的切换 selectheader(index) { + console.log('111'); const that = this; that.selected = index; - console.log(index, '') + console.log('selectheader:', that.selected) + if (that.selected == 0) { + console.log('合开'); + this.getInvoiceList() + } else if (that.selected == 1) { + console.log('记录', this.recordeStatus); + + this.getRecordList() + } else { + console.log('抬头'); + this.getHeadList(); + } }, // 判断当前所选中列表 headerSelected(index) { - console.log('index',index); + console.log('3333'); + // console.log('index',index); return this.selected === index; }, //提交记录的列表状态切换 - selecRecordIndex(index) { - const that = this; - that.recordeIndex = index; - console.log(index, '') + selecRecordIndex(recordStatus) { + // const that = this; + this.recordeStatus = recordStatus; + console.log('recordeStatus', this.recordeStatus) + this.getRecordList() }, //判断当前的提交记录的列表选中状态 - recordIndexSelected(index) { - console.log('index',index); - return this.recordeIndex === index; + recordIndexSelected(recordStatus) { + console.log('recordStatus', recordStatus); + return this.recordeStatus === recordStatus; }, //获取可开发票列表 getInvoiceList() { @@ -269,11 +329,11 @@ invoice_status: 0, } }).then(res => { - console.log('code',res.code); + console.log('code', res.code); if (res.code === 1) { this.count = res.data.count this.unInvoiceList = [...res.data.list]; - console.log('unInvoiceList:',this.unInvoiceList); + console.log('unInvoiceList:', this.unInvoiceList); if (this.unInvoiceList.length >= res.data.count) { this.loadStatus = 'nomore'; } else { @@ -282,7 +342,7 @@ this.unInvoiceList.forEach(item => { item.invoiceCheck = 0 }) - // this.isInitialized = false; // 标记已初始化 + // this.isInitialized = false; // 标记已初始化 } else { uni.showToast({ title: res.msg, @@ -297,45 +357,120 @@ }); }, //选择要开发票的订单 - checkInvoice(e,index) { + checkInvoice(e, index) { this.$set(this.unInvoiceList, index, { - ...this.unInvoiceList[index], - invoiceCheck: e === 0 ? 1 : 0 - }); + ...this.unInvoiceList[index], + invoiceCheck: e === 0 ? 1 : 0 + }); }, //跳转填写发票信息 handleIssueInvoice() { //拿到选中的订单 const list = this.unInvoiceList.filter(item => item.invoiceCheck == 1).map(item => item.order_no) const idList = this.unInvoiceList.filter(item => item.invoiceCheck == 1).map(item => item.id) - console.log('list:',list,idList); + console.log('list:', list, idList); // this.order_nos = JSON.stringify(list) this.order_nos = JSON.stringify(list.join(',')) this.num = list.length - console.log('num:',this.num); - if(list.length<1){ + if(list.length) { + this.list.forEach(e => { + // if(e.payprice) + this.totalPrice += e.payprice + }) + } + + console.log('num:', this.num, 'totalPrice:', this.totalPrice); + console.log('unInvoiceList',this.unInvoiceList.length); + if(this.unInvoiceList.length == 0){ + uni.showToast({ + title: '暂无可开发票的订单,请先去参加活动下单', + icon: 'none', + duration: 2000 + }) + return + } + if (list.length < 1) { uni.showToast({ title: '请选择需要开发票的订单', icon: 'none', duration: 2000 }) - }else if(list.length === 1){ + } else if (list.length === 1) { this.id = idList[0] - console.log('id',this.id); + console.log('id', this.id); uni.navigateTo({ - url:'/packageB/invoice/addInvoice?order_nos=' + this.order_nos + '&num=' + this.num + '&id=' + this.id + url: '/packageB/invoice/addInvoice?order_nos=' + this.order_nos + '&num=' + this.num + + '&id=' + this.id + }) + } else { + uni.navigateTo({ + url: '/packageB/invoice/addInvoice?order_nos=' + this.order_nos + '&num=' + this.num + + '&totalPrice=' + this.totalPrice }) } - else{ - uni.navigateTo({ - url:'/packageB/invoice/addInvoice?order_nos=' + this.order_nos + '&num=' + this.num - }) - } - - } + // uni.navigateTo({ + // url: '/packageB/invoice/addInvoice?order_nos=' + this.order_nos + '&num=' + this.num + // }) + }, + //提交记录 + getRecordList() { + console.log('提交记录', this.recordeStatus); + uni.$u.http.get('/api/school.header/apply_list', { + params: { + // keywords: this.keywords, + page: this.page, + limit: this.limit, + status: this.recordeStatus + } + }).then(res => { + if (res.code == 1) { + console.log('res:', res); + this.recordList = res.data.list + console.log('recordList', this.recordList); + } else { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 2000 + }) + } + }).catch(error => {}); + }, + //抬头管理列表 + getHeadList() { + uni.$u.http.get('/api/school.header/header_list', { + params: { + // keywords: this.keywords, + page: this.page, + limit: this.limit, + } + }).then(res => { + if (res.code == 1) { + console.log('res:', res); + this.headList = res.data.list + console.log('headlist', this.headList[2]); + } else { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 2000 + }) + } + }).catch(error => {}); + }, + addHead() { + uni.navigateTo({ + url: '/packageB/invoice/addHead' + }) + }, + editHead(id) { + uni.navigateTo({ + url: '/packageB/invoice/addInvoice?id=' + this.id + }) + }, } - + } @@ -360,8 +495,8 @@ font-family: PingFang SC, PingFang SC; position: fixed; top: 0; - - + + .s-header { display: flex; @@ -372,7 +507,7 @@ font-weight: 400; font-size: 28rpx; color: #9E9E9E; - + line-height: 26rpx; flex: 0 0 auto; position: relative; @@ -398,11 +533,11 @@ border-bottom: #323232 solid 8rpx; } } - + .invoiceList { width: 100%; height: auto; - + .invoiceList-item { display: flex; justify-content: center; @@ -412,7 +547,7 @@ margin-top: 20rpx; padding: 20rpx 30rpx; height: 220rpx; - + .changedBox { width: 44rpx; height: 44rpx; @@ -420,34 +555,34 @@ display: flex; justify-content: center; align-items: center; - + .changedBox-Img { width: 44rpx; height: 44rpx; } } - + .item-img { width: 170rpx; height: 170rpx; margin-left: 40rpx; - + } - + .item-con { margin-left: 20rpx; width: 60%; height: 160rpx; position: relative; color: #323232; - + .itenCon-actName { position: absolute; top: 0; font-size: 28rpx; font-weight: 400; } - + .itenCon-actPrice { position: absolute; bottom: 0; @@ -455,11 +590,11 @@ font-weight: 900; } } - + } } - + .invoiceBtn { width: 90%; height: 90rpx; @@ -480,14 +615,14 @@ bottom: 66rpx; margin-left: 5%; } - - + + .recordList { width: 100%; height: auto; display: block; justify-content: center; - + .record-tabs { // background: #ffffff; width: 100%; @@ -497,8 +632,8 @@ border-radius: 30rpx; -webkit-overflow-scrolling: touch; font-family: PingFang SC, PingFang SC; - - + + .s-header { display: flex; justify-content: center; @@ -509,24 +644,25 @@ font-size: 28rpx; color: #9E9E9E; border-radius: 40rpx; - + background-color: #ffffff; + margin-right: 20rpx; line-height: 26rpx; flex: 0 0 auto; position: relative; } - + .s-header.selected { width: 150rpx; height: 80rpx; - background: #ffffff; + background-color: #ffffff; // font-weight: 800; // font-size: 32rpx; color: #323232; line-height: 28rpx; } - + } - + .recordList-item { display: flex; justify-content: center; @@ -536,28 +672,28 @@ margin-top: 20rpx; padding: 20rpx 30rpx; height: 220rpx; - + .item-img2 { width: 170rpx; height: 170rpx; // margin-left: 40rpx; - + } - + .item-con2 { margin-left: 30rpx; width: 65%; height: 160rpx; position: relative; color: #323232; - + .itenCon2-actName { position: absolute; top: 0; font-size: 28rpx; font-weight: 400; } - + .itenCon2-actPrice { width: 100%; position: absolute; @@ -566,7 +702,7 @@ font-weight: 900; display: flex; justify-content: space-between; - + .lookInvoice { width: 200rpx; display: flex; @@ -575,7 +711,7 @@ font-weight: 400; font-size: 28rpx; } - + .lookInvoice2 { width: 200rpx; color: #ff4810; @@ -588,7 +724,7 @@ } } } - + .recordList-items { display: block; background-color: #ffffff; @@ -596,7 +732,7 @@ margin-top: 20rpx; padding: 20rpx 30rpx; height: 220rpx auto; - + .reListIts-item { display: flex; justify-content: center; @@ -604,28 +740,28 @@ width: 100%; margin-bottom: 20rpx; // background-color: #9E9E9E; - + .itsItem-img2 { width: 170rpx; height: 170rpx; // margin-left: 40rpx; - + } - + .itsItem-con2 { margin-left: 30rpx; width: 65%; height: 160rpx; position: relative; color: #323232; - + .itsItemCon2-actName { position: absolute; top: 0; font-size: 28rpx; font-weight: 400; } - + .itsItemCon2-actPrice { width: 100%; position: absolute; @@ -634,7 +770,7 @@ font-weight: 900; display: flex; justify-content: space-between; - + .lookInvoice { width: 200rpx; display: flex; @@ -643,7 +779,7 @@ font-weight: 400; font-size: 28rpx; } - + .lookInvoice2 { width: 200rpx; color: #ff4810; @@ -656,22 +792,22 @@ } } } - + .reLine { width: 100%; height: 1rpx; background-color: #D8D8D8; margin: 10rpx 0; - + } - + .reListIts-itemData { width: 100%; margin-top: 20rpx; display: flex; justify-content: space-between; align-items: center; - + .lookInvoices { width: 200rpx; display: flex; @@ -680,7 +816,7 @@ font-weight: 400; font-size: 28rpx; } - + .lookInvoices2 { width: 200rpx; color: #ff4810; @@ -693,10 +829,10 @@ } } } - + .manageList { // padding-top: 20rpx; - + .manageRecord { margin: 20rpx; font-family: PingFang SC, PingFang SC; @@ -710,14 +846,14 @@ align-items: center; display: flex; } - + .manageList-item { background-color: #ffffff; padding: 20rpx 0; width: 100%; margin-bottom: 20rpx; border-radius: 20rpx; - + .manage-type { width: 100%; height: 32rpx; @@ -731,28 +867,28 @@ text-transform: none; margin: 20rpx; } - + .manageLine { width: 750rpx; height: 1rpx; background: #EEEEEE; border-radius: 0rpx 0rpx 0rpx 0rpx; } - + .manageCon { display: flex; justify-content: space-between; margin: 20rpx; align-items: center; - + .messContext { display: block; - + .textFir { display: flex; justify-content: left; align-items: center; - + .defaultBox { width: 68rpx; height: 32rpx; @@ -763,7 +899,7 @@ font-size: 26rpx; font-weight: 500; } - + .manageName { margin-left: 10rpx; height: 32rpx; @@ -776,7 +912,7 @@ text-transform: none; } } - + .textSec { margin-top: 20rpx; height: 32rpx; @@ -789,21 +925,21 @@ text-transform: none; } } - + .manageEdit { width: 50rpx; height: 50rpx; } } } - + } - + } } - + .flex { display: flex; } @@ -837,5 +973,4 @@ border-radius: 0rpx 0rpx 0rpx 0rpx; margin: 0 30rpx; } - \ No newline at end of file diff --git a/packageB/invoice/invoiceInfo.vue b/packageB/invoice/invoiceInfo.vue index a82d636..8287296 100644 --- a/packageB/invoice/invoiceInfo.vue +++ b/packageB/invoice/invoiceInfo.vue @@ -1,9 +1,292 @@ - \ No newline at end of file diff --git a/pages.json b/pages.json index c1965a9..987448c 100644 --- a/pages.json +++ b/pages.json @@ -370,6 +370,12 @@ "style": { "navigationBarTitleText": "查看发票" } + }, + { + "path": "invoice/addHead", + "style": { + "navigationBarTitleText": "添加发票抬头信息" + } } ] } diff --git a/static/invoice/conRecord.png b/static/invoice/conRecord.png new file mode 100644 index 0000000000000000000000000000000000000000..67bc370633bbd069ac5db924f233117113203a0d GIT binary patch literal 2940 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 m%P1~zUH5|Px^HDcH~k0PjvLioOu8Qc0000eD literal 0 HcmV?d00001 diff --git a/static/invoice/invInfoBk.png b/static/invoice/invInfoBk.png new file mode 100644 index 0000000000000000000000000000000000000000..d387c26081d380fee8f01207de94c8b533fedc84 GIT binary patch literal 19625 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 literal 0 HcmV?d00001 diff --git a/static/invoice/statusInv.png b/static/invoice/statusInv.png new file mode 100644 index 0000000000000000000000000000000000000000..c7fb6b756aeb679145cf5a940e4fed4079e86ba6 GIT binary patch literal 2709 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 P00000NkvXXu0mjf7pgSC literal 0 HcmV?d00001