You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
7.3 KiB
250 lines
7.3 KiB
<template>
|
|
<view class="user-view p-page">
|
|
<u-navbar :placeholder="true" :bg-color="uNavbarBgColor" left-icon="">
|
|
<view slot="left">
|
|
<text
|
|
class="fw-bold"
|
|
:style="{ color: uNavbarTitleColor, fontSize: '22px' }"
|
|
>我的</text
|
|
>
|
|
</view>
|
|
<view slot="right" class="u-flex">
|
|
<u-icon
|
|
name="setting"
|
|
:size="30"
|
|
:color="uNavbarIconColor"
|
|
class="mx-sm"
|
|
></u-icon>
|
|
<u-icon
|
|
name="question-circle"
|
|
:size="30"
|
|
:color="uNavbarIconColor"
|
|
class="mx-sm"
|
|
></u-icon>
|
|
</view>
|
|
</u-navbar>
|
|
|
|
<view class="mt-base u-flex-y-center">
|
|
<u-avatar :size="65" @tap="handleToLogin"></u-avatar>
|
|
<view class="ms-base">
|
|
<view @tap="handleToLogin">
|
|
<text class="text-white fw-bold" :style="{ fontSize: '24px' }">{{
|
|
auth.name || "未登录"
|
|
}}</text>
|
|
</view>
|
|
<view class="mt-base">
|
|
<text class="text-white">便捷出行就在12306</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="mt-llg page-box">
|
|
<view class="pt-base px-base">
|
|
<u-text text="当前出行" :size="18" :bold="true"> TODO </u-text>
|
|
</view>
|
|
<NextTicketVue ref="NextTicketVue" v-if="auth.id"></NextTicketVue>
|
|
<view v-else class="py-llg u-flex-xy-center">
|
|
<view>
|
|
<u-button type="primary" size="small" @tap="handleToLogin"
|
|
>去登录</u-button
|
|
>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view v-if="auth.id" class="mt-base page-box">
|
|
<u-cell-group>
|
|
<u-cell title="身份证号" :label="auth.idCardNo | hideIdCardNo"></u-cell>
|
|
<u-cell title="手机号" :label="auth.mobileNo | hideMobileNo"></u-cell>
|
|
<u-cell
|
|
title="银行卡号"
|
|
:label="auth.bankCardNo | hideBankCardNo"
|
|
></u-cell>
|
|
</u-cell-group>
|
|
</view>
|
|
|
|
<!--
|
|
<view class="mt-base page-box u-flex-y-center">
|
|
<view class="u-flex-grow grid-item">
|
|
<u-image
|
|
src="@/static/img_chengcheren.png"
|
|
height="36px"
|
|
width="36px"
|
|
></u-image>
|
|
<view class="grid-item-text">乘车人</view>
|
|
</view>
|
|
<u-line direction="col" length="26px"></u-line>
|
|
<view class="u-flex-grow grid-item">
|
|
<u-image
|
|
src="@/static/img_dingdan.png"
|
|
height="36px"
|
|
width="36px"
|
|
></u-image>
|
|
<view class="grid-item-text">我的订单</view>
|
|
</view>
|
|
<u-line direction="col" length="26px"></u-line>
|
|
<view class="u-flex-grow grid-item">
|
|
<u-image
|
|
src="@/static/img_youhuiquan.png"
|
|
height="36px"
|
|
width="36px"
|
|
></u-image>
|
|
<view class="grid-item-text">优惠券</view>
|
|
</view>
|
|
</view>
|
|
-->
|
|
|
|
<!--
|
|
<view class="page-box">
|
|
<view class="px-base py-lg">
|
|
<u-text text="出行向导" :size="18" :bold="true"></u-text>
|
|
</view>
|
|
<u-line></u-line>
|
|
<u-grid :border="false" :col="4">
|
|
<u-grid-item v-for="item in PAGE_MENU_1" :key="item.label">
|
|
<view class="grid-item">
|
|
<u-image :src="item.image" height="30px" width="30px"></u-image>
|
|
<view class="grid-item-text">{{ item.label }}</view>
|
|
</view>
|
|
</u-grid-item>
|
|
</u-grid>
|
|
</view>
|
|
-->
|
|
|
|
<!--
|
|
<view class="page-box">
|
|
<view class="px-base py-lg">
|
|
<u-text text="温馨服务" :size="18" :bold="true"></u-text>
|
|
</view>
|
|
<u-line></u-line>
|
|
<u-grid :border="false" :col="4">
|
|
<u-grid-item v-for="item in PAGE_MENU_2" :key="item.label">
|
|
<view class="grid-item">
|
|
<u-image :src="item.image" height="30px" width="30px"></u-image>
|
|
<view class="grid-item-text">{{ item.label }}</view>
|
|
</view>
|
|
</u-grid-item>
|
|
</u-grid>
|
|
</view>
|
|
-->
|
|
|
|
<!--
|
|
<view class="page-box">
|
|
<view class="px-base py-lg">
|
|
<u-text text="信息服务" :size="18" :bold="true"></u-text>
|
|
</view>
|
|
<u-cell-group>
|
|
<u-cell title="公告" size="large" :is-link="true"></u-cell>
|
|
<u-cell title="常见问题" size="large" :is-link="true"></u-cell>
|
|
<u-cell title="使用须知" size="large" :is-link="true"></u-cell>
|
|
<u-cell title="服务规章" size="large" :is-link="true"></u-cell>
|
|
<u-cell title="铁路保险" size="large" :is-link="true"></u-cell>
|
|
<u-cell
|
|
title="关于"
|
|
size="large"
|
|
:is-link="true"
|
|
:border="false"
|
|
></u-cell>
|
|
</u-cell-group>
|
|
</view>
|
|
-->
|
|
|
|
<view :style="{ height: '25vh' }"></view>
|
|
|
|
<view v-if="auth.id" class="mt-base">
|
|
<u-button type="error" @tap="handleLogout">退出登录</u-button>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapActions, mapState } from "vuex";
|
|
import uNavbarOpacity from "@/utils/mixins/u-navbar-opacity";
|
|
import NextTicketVue from "./NextTicket.vue";
|
|
|
|
const PAGE_MENU_1 = [
|
|
{ label: "车站大屏", image: require("@/static/icon_chezhandaping.png") },
|
|
{ label: "时刻表", image: require("@/static/icon_shikebiao.png") },
|
|
{ label: "起售时间", image: require("@/static/icon_qishoushijian.png") },
|
|
{
|
|
label: "正晚点查询",
|
|
image: require("@/static/icon_zhengwandianchaxun.png"),
|
|
},
|
|
{ label: "票价查询", image: require("@/static/icon_piaojiachaxun.png") },
|
|
{ label: "换乘时间", image: require("@/static/icon_huanchengshijian.png") },
|
|
{
|
|
label: "代售点查询",
|
|
image: require("@/static/icon_daishoudianchaxun.png"),
|
|
},
|
|
{ label: "更多", image: require("@/static/icon_gengduo.png") },
|
|
];
|
|
|
|
const PAGE_MENU_2 = [
|
|
{
|
|
label: "临时身份证明",
|
|
image: require("@/static/icon_linshishenfenzhengming.png"),
|
|
},
|
|
{ label: "遗失物品", image: require("@/static/icon_yishiwupin.png") },
|
|
{ label: "建议", image: require("@/static/icon_jianyi.png") },
|
|
{ label: "投诉", image: require("@/static/icon_tousu.png") },
|
|
{ label: "重点旅客", image: require("@/static/icon_zhongdianlvke.png") },
|
|
{ label: "客服电话", image: require("@/static/icon_kefudianhua.png") },
|
|
{ label: "希望工程", image: require("@/static/icon_xiwanggongcheng.png") },
|
|
{
|
|
label: "外国商务人员",
|
|
image: require("@/static/icon_waiguoshangwurenyuan.png"),
|
|
},
|
|
];
|
|
|
|
export default {
|
|
mixins: [uNavbarOpacity],
|
|
components: { NextTicketVue },
|
|
data() {
|
|
return {
|
|
PAGE_MENU_1,
|
|
PAGE_MENU_2,
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState({ auth: "auth" }),
|
|
},
|
|
onShow() {
|
|
// 组件没有 onShow 周期,需要通过页面的 onShow 周期确保每次访问本页面都刷新 nextTicket
|
|
if (this.$refs.NextTicketVue) this.$refs.NextTicketVue.loadMyTickets();
|
|
},
|
|
methods: {
|
|
...mapActions({ revertAuth: "revertAuth" }),
|
|
handleToLogin() {
|
|
if (this.auth.id) return;
|
|
uni.navigateTo({ url: "/pages/LoginView/LoginView" });
|
|
},
|
|
handleLogout() {
|
|
this.revertAuth();
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.user-view {
|
|
background: linear-gradient(
|
|
var(--color-app-blue) 0 100px,
|
|
250px,
|
|
var(--color-background) 400px
|
|
);
|
|
}
|
|
|
|
.grid-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: var(--space-llg) var(--space-ssm);
|
|
}
|
|
|
|
.grid-item-text {
|
|
margin-top: var(--space-sm);
|
|
font-size: 13px;
|
|
white-space: nowrap;
|
|
}
|
|
</style>
|