3 changed files with 297 additions and 2 deletions
@ -0,0 +1,284 @@ |
|||||
|
<template> |
||||
|
<view class="container"> |
||||
|
<!-- tab栏 --> |
||||
|
<u-tabs :list="tabs" :is-scroll="false" :barWidth="110" :current="curTab" active-color="#164b71" :duration="0.5" @change="onChangeTab" /> |
||||
|
|
||||
|
<!-- 订单列表 --> |
||||
|
<view class="order-list" v-if="list.length > 0"> |
||||
|
<view class="order-item" v-for="(item, index) in list" :key="index"> |
||||
|
<view class="item-top"> |
||||
|
<view class="item-top-left"> |
||||
|
<text class="order-time">订单号:{{ item.batchcode }}</text> |
||||
|
</view> |
||||
|
<view class="item-top-right"> |
||||
|
<text class="state-text">{{item.ticket_status}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="goods-list" > |
||||
|
<!-- 商品信息 --> |
||||
|
<view class="goods-content"> |
||||
|
<view class="goods-title"> |
||||
|
<view class="twoline-hide"> |
||||
|
<text class="twoline-hide-date">开票时间:{{ item.tickettime }}</text> |
||||
|
</view> |
||||
|
<view class="twoline-hide"> |
||||
|
<text class="twoline-hide-ticket"> |
||||
|
发票编号:{{ item.ticketid }} |
||||
|
</text> |
||||
|
</view> |
||||
|
<view class="twoline-hide"> |
||||
|
<text class="twoline-hide-price"> |
||||
|
开票金额: ¥{{ item.ticketmoney }} |
||||
|
</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 空白提示 --> |
||||
|
<view v-else class="cate-right-cont"> |
||||
|
<view class="empty-content"> |
||||
|
<view class="empty-icon"> |
||||
|
<image class="image" src="/static/empty.png" mode="widthFix"></image> |
||||
|
</view> |
||||
|
<view class="tips">暂无数据</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import * as OrderApi from '@/api/order' |
||||
|
import { checkLogin } from '@/core/app' |
||||
|
import Empty from '@/components/empty' |
||||
|
// tab栏数据 |
||||
|
const tabs = [ |
||||
|
{name: `全部发票`,value: 'all',key: 0}, |
||||
|
{name: `未开票`,value: 'payment',key: 1}, |
||||
|
{name: `开票中`,value: 'delivery',key: 2}, |
||||
|
{name: `开票失败`,value: 'hasabort',key: 3}, |
||||
|
{name: `已开票`,value: 'hasclosed',key: 5}, |
||||
|
] |
||||
|
export default { |
||||
|
components: { |
||||
|
Empty |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
// 当前页面参数 |
||||
|
options: { dataType: 'all' }, |
||||
|
// tab栏数据 |
||||
|
tabs, |
||||
|
// 当前标签索引 |
||||
|
curTab: 0, |
||||
|
// 订单列表数据 |
||||
|
list: [ |
||||
|
{ |
||||
|
batchcode: '12331231', |
||||
|
ticket_status: '开票中', |
||||
|
ticketmoney: '100.00', |
||||
|
tickettime: '2024-07-01 12:0:00', |
||||
|
ticketid: '41646455613131313', |
||||
|
}, |
||||
|
{ |
||||
|
batchcode: '12312321312', |
||||
|
ticket_status: '开票中', |
||||
|
ticketmoney: '100.00', |
||||
|
tickettime: '2024-07-01 12:0:00', |
||||
|
ticketid: '41646455613131313', |
||||
|
}, |
||||
|
{ |
||||
|
batchcode: '31221312312', |
||||
|
ticket_status: '开票中', |
||||
|
ticketmoney: '100.00', |
||||
|
tickettime: '2024-07-01 12:0:00', |
||||
|
ticketid: '41646455613131313', |
||||
|
}, |
||||
|
], |
||||
|
// 控制onShow事件是否刷新订单列表 |
||||
|
canReset: false, |
||||
|
} |
||||
|
}, |
||||
|
/** |
||||
|
* 生命周期函数--监听页面加载 |
||||
|
*/ |
||||
|
onLoad(options) { |
||||
|
// 初始化当前选中的标签 |
||||
|
this.initCurTab(options) |
||||
|
// 注册全局事件订阅: 是否刷新订单列表 |
||||
|
uni.$on('syncRefresh', canReset => { |
||||
|
this.canReset = canReset |
||||
|
}) |
||||
|
}, |
||||
|
/** |
||||
|
* 生命周期函数--监听页面显示 |
||||
|
*/ |
||||
|
onShow() { |
||||
|
this.canReset = false |
||||
|
}, |
||||
|
/** |
||||
|
* 生命周期函数--监听页面的卸载 |
||||
|
*/ |
||||
|
onUnload() { |
||||
|
// 卸载全局事件订阅 |
||||
|
uni.$off('syncRefresh') |
||||
|
}, |
||||
|
methods: { |
||||
|
// 初始化当前选中的标签 |
||||
|
initCurTab(options) { |
||||
|
// 判断是否已登录 |
||||
|
this.isLogin = checkLogin() |
||||
|
if(!this.isLogin){ |
||||
|
uni.navigateTo({ |
||||
|
url:"/pages/login/index" |
||||
|
}) |
||||
|
} |
||||
|
// 登录成功后才可以操作 |
||||
|
const app = this |
||||
|
if (options.dataType) { |
||||
|
const index = app.tabs.findIndex(item => item.value == options.dataType) |
||||
|
app.curTab = index > -1 ? index : 0 |
||||
|
} |
||||
|
this.getOrderList() |
||||
|
}, |
||||
|
// 获取订单列表 |
||||
|
getOrderList() { |
||||
|
const app = this |
||||
|
let isliCode = uni.getStorageSync("isliCode") |
||||
|
let data = { |
||||
|
user_isli: isliCode, |
||||
|
ticket_status: app.getTabValue(), |
||||
|
} |
||||
|
OrderApi.getTicket(data).then(result => { |
||||
|
if (result.resultCode === '00000000') { |
||||
|
app.list = result.data |
||||
|
app.initList(app.list) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 初始化订单列表数据 |
||||
|
initList(newList) { |
||||
|
newList.forEach(item => { |
||||
|
item.ticket_status = this.showStateText(item.ticket_status) |
||||
|
}) |
||||
|
return newList |
||||
|
}, |
||||
|
// 订单状态 |
||||
|
showStateText(state){ |
||||
|
let state_txt=""; |
||||
|
if(state=="1"){ |
||||
|
state_txt="未开票" |
||||
|
}else if(state =="2" ){ |
||||
|
state_txt="开票中" |
||||
|
} else if(state=="3"){ |
||||
|
state_txt="已开票" |
||||
|
} else if(state == "4"){ |
||||
|
state_txt="开票失败" |
||||
|
}else{ |
||||
|
state_txt=state |
||||
|
} |
||||
|
return state_txt; |
||||
|
}, |
||||
|
// 获取当前标签项的值 |
||||
|
getTabValue() { |
||||
|
return this.tabs[this.curTab].key |
||||
|
}, |
||||
|
// 切换标签项 |
||||
|
onChangeTab(index) { |
||||
|
const app = this |
||||
|
// 设置当前选中的标签 |
||||
|
app.curTab = index |
||||
|
app.getOrderList() |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
|
||||
|
// 项目内容 |
||||
|
.order-item { |
||||
|
margin: 20rpx auto 20rpx auto; |
||||
|
padding: 30rpx 30rpx; |
||||
|
width: 94%; |
||||
|
box-shadow: 0 1rpx 5rpx 0px rgba(0, 0, 0, 0.05); |
||||
|
border-radius: 16rpx; |
||||
|
background: #fff; |
||||
|
} |
||||
|
|
||||
|
// 项目顶部 |
||||
|
.item-top { |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
font-size: 36rpx; |
||||
|
margin-bottom: 20rpx; |
||||
|
padding-bottom: 20rpx; |
||||
|
|
||||
|
.order-time { |
||||
|
font-size: 34rpx; |
||||
|
} |
||||
|
|
||||
|
.state-text { |
||||
|
color: #164b71; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 商品列表 |
||||
|
.goods-list { |
||||
|
|
||||
|
// 商品内容 |
||||
|
.goods-content { |
||||
|
margin-right: 10rpx; |
||||
|
font-size: 28rpx; |
||||
|
|
||||
|
.goods-title { |
||||
|
|
||||
|
.twoline-hide-date { |
||||
|
color: #9F9F9F; |
||||
|
} |
||||
|
|
||||
|
.twoline-hide { |
||||
|
margin-top: 10rpx; |
||||
|
} |
||||
|
|
||||
|
.twoline-hide-price{ |
||||
|
color: #c3463b; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 全部标的 |
||||
|
.cate-right-cont { |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
flex-flow: row wrap; |
||||
|
align-content: flex-start; |
||||
|
padding-top: 15rpx; |
||||
|
|
||||
|
.cate-two-box { |
||||
|
width: 100%; |
||||
|
padding: 0 10px; |
||||
|
} |
||||
|
// 空白提示 |
||||
|
.empty-content { |
||||
|
box-sizing: border-box; |
||||
|
width: 100%; |
||||
|
padding: 140rpx 50rpx; |
||||
|
text-align: center; |
||||
|
|
||||
|
.tips { |
||||
|
font-size: 28rpx; |
||||
|
color: gray; |
||||
|
margin: 50rpx 0; |
||||
|
} |
||||
|
|
||||
|
.empty-icon .image { |
||||
|
width: 280rpx; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
Loading…
Reference in new issue