You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
4.4 KiB
Vue

<template>
<view>
<fl-page-header :autoback="true"
:left="false">
<template v-slot:center>
<view class="row items-center">
<text class="font-16">首都博物馆门票列表</text>
</view>
</template>
</fl-page-header>
<view :style="{
minHeight: 'calc(100vh - ' + filterBoxTop + ' - 226rpx'+')',
}">
<view class="row justify-center fl-pt-sm fl-mb-sm">
<view class="row items-center fl-px-sm"
style="font-size:28rpx;border-radius:20rpx;background:#40BE94;color:#fff;height:70rpx;width:calc(100% - 62rpx)">
<text class="col-3 text-center"></text>
<text class="col-3 text-center">门票名称</text>
<text class="col-3 text-center">剩余数量</text>
<text class="col-3 text-center"></text>
</view>
</view>
<u-list v-if="listData.length > 0"
class="col-12"
height="calc(100vh - 230rpx)"
@scrolltolower="scrollRequest">
<u-list-item v-for="(item, index) in listData"
:key="index"
class="fl-mb-sm fl-px-sm">
<view class="fl-card row">
<view class="col-3 font-16 row justify-center items-center">
<u-image :src="item.url"
width="154rpx"
height="118rpx"></u-image>
</view>
<view class="col-3 row justify-center items-center text-center"
style="font-weight:bolder">
{{ item.name }}
</view>
<view class="col-3 row justify-center items-center"
:style="{color:item.canReserve!=0?'#40BE94':'#AFAFAF'}">
{{ item.canReserve+'/'+item.total }}
</view>
<view class="col-3 row justify-center items-center cursur">
<text v-if="item.canReserve!=0"
class="font-14 row justify-center items-center cursor"
style="width: 108rpx; height: 56rpx;background:#40BE94;color:#fff;border-radius:20rpx"
@click="handleLink('/pages/ticket/reserve',item)">查看</text>
<text v-else
class="font-14 row justify-center items-center"
style="width: 108rpx; height: 56rpx;background:#AFAFAF;color:#fff;border-radius:20rpx">无票</text>
</view>
</view>
</u-list-item>
<view style="width: 100%"
class="row items-center justify-center">
<u-line dashed
:length="110"
style="display: inline-block"></u-line>
<view style="color:#9ebfb3;font-size: 26rpx; margin: 30rpx">~人家是有底线的啦~</view>
<u-line dashed
:length="110"
style="display: inline-block"></u-line>
</view>
</u-list>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import pageData from "../../static/pageData.json";
import { getLabelByOptions, calcRouteParams } from "@/util/form";
export default {
data () {
return {
listData: [],
filterBoxTop: null,
pageLoading: false,
tableParams: {
page: 1,
pageSize: 12,
},
btnLoading: false,
};
},
onLoad (pageParams) {
this.filterBoxTop = uni.getSystemInfoSync()["statusBarHeight"] + 44 + "px";
this.listData = pageData.elector
},
onShow () {
this.getPageData();
},
beforeDestroy () { },
methods: {
getPageData (scroll) {
},
handleLink (path, item) {
uni.setStorageSync('elector-link', item)
uni.navigateTo({
url: path,
});
},
scrollRequest () {
console.log('scrollRequest');
this.tableParams.page++;
this.getPageData(true);
},
handleFinishAll () {
},
handlePageType () {
this.listData = [];
this.getPageData();
},
handleContractClick (rowData) {
},
handleLabelByOptions (val, options) {
return getLabelByOptions(val, options);
},
handleTabBack (path) {
uni.switchTab({
url: path
});
},
},
};
</script>
<style lang="scss" scoped>
.fl-card {
border-radius: 20rpx;
background-color: #fff;
padding: 14rpx 0;
box-shadow: 0px 1px 2px #dddddd, 0px 1px 2px #ffffff, 0px 1px 2px #736f6f;
}
/deep/ .u-image__image {
border-radius: 20rpx 0 0 20rpx !important;
}
</style>