完成去哪儿火车票

This commit is contained in:
tangxinyue 2026-03-09 16:01:04 +08:00
parent 46de3cbd57
commit b8975f5015
7 changed files with 1089 additions and 76 deletions

View File

@ -1,38 +1,37 @@
{ {
"name" : "alipay-emulator", "name": "alipay-emulator",
"appid" : "__UNI__D535736", "appid": "__UNI__D535736",
"description" : "", "description": "",
"versionName" : "1.0.0", "versionName": "1.0.0",
"versionCode" : 100, "versionCode": 100,
"transformPx" : false, "transformPx": false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus": {
"darkmode" : false, "darkmode": false,
"usingComponents" : true, "usingComponents": true,
"nvueStyleCompiler" : "uni-app", "nvueStyleCompiler": "uni-app",
"compilerVersion" : 3, "compilerVersion": 3,
"splashscreen" : { "splashscreen": {
"alwaysShowBeforeRender" : true, "alwaysShowBeforeRender": true,
"waiting" : true, "waiting": true,
"autoclose" : true, "autoclose": false,
"delay" : 0 "delay": 0
}, },
"optimization" : { "optimization": {
"subPackages" : true "subPackages": true
}, },
"runmode" : "liberate", // "runmode": "liberate", //
/* */ /* */
"modules" : { "modules": {
"Camera" : {}, "Camera": {},
"Payment" : {}, "Payment": {},
"LivePusher" : {} "LivePusher": {}
}, },
/* */ /* */
"distribute" : { "distribute": {
/* android */ /* android */
"android" : { "android": {
"permissions" : [ "permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
@ -51,46 +50,52 @@
] ]
}, },
/* ios */ /* ios */
"ios" : { "ios": {
"dSYMs" : false "dSYMs": false
}, },
/* SDK */ /* SDK */
"sdkConfigs" : { "sdkConfigs": {
"payment" : { "payment": {
"weixin" : { "weixin": {
"__platform__" : [ "ios", "android" ], "__platform__": [
"appid" : "123456", "ios",
"UniversalLinks" : "https://hhhhh.com/apple-app-site-association/" "android"
],
"appid": "123456",
"UniversalLinks": "https://hhhhh.com/apple-app-site-association/"
}, },
"alipay" : { "alipay": {
"__platform__" : [ "ios", "android" ] "__platform__": [
"ios",
"android"
]
} }
} }
} }
}, },
"nvueLaunchMode" : "" "nvueLaunchMode": ""
}, },
/* */ /* */
"quickapp" : {}, "quickapp": {},
/* */ /* */
"mp-weixin" : { "mp-weixin": {
"appid" : "", "appid": "",
"setting" : { "setting": {
"urlCheck" : false "urlCheck": false
}, },
"usingComponents" : true "usingComponents": true
}, },
"mp-alipay" : { "mp-alipay": {
"usingComponents" : true "usingComponents": true
}, },
"mp-baidu" : { "mp-baidu": {
"usingComponents" : true "usingComponents": true
}, },
"mp-toutiao" : { "mp-toutiao": {
"usingComponents" : true "usingComponents": true
}, },
"uniStatistics" : { "uniStatistics": {
"enable" : false "enable": false
}, },
"vueVersion" : "3" "vueVersion": "3"
} }

View File

@ -9,11 +9,9 @@
} }
} }
], ],
"subPackages": [ "subPackages": [{
{
"root": "pages/balance", "root": "pages/balance",
"pages": [ "pages": [{
{
"path": "index", "path": "index",
"style": { "style": {
"navigationBarTitleText": "余额页面", "navigationBarTitleText": "余额页面",
@ -32,8 +30,7 @@
}, },
{ {
"root": "pages/bill", "root": "pages/bill",
"pages": [ "pages": [{
{
"path": "bill-list/bill-list", "path": "bill-list/bill-list",
"style": { "style": {
"navigationBarTitleText": "账单列表页面", "navigationBarTitleText": "账单列表页面",
@ -58,8 +55,7 @@
}, },
{ {
"root": "pages/ant-credit-pay", "root": "pages/ant-credit-pay",
"pages": [ "pages": [{
{
"path": "index", "path": "index",
"style": { "style": {
"navigationBarTitleText": "花呗首页", "navigationBarTitleText": "花呗首页",
@ -77,8 +73,7 @@
}, },
{ {
"root": "pages/finance-management", "root": "pages/finance-management",
"pages": [ "pages": [{
{
"path": "index", "path": "index",
"style": { "style": {
"navigationBarTitleText": "理财首页", "navigationBarTitleText": "理财首页",
@ -103,8 +98,7 @@
}, },
{ {
"root": "pages/other", "root": "pages/other",
"pages": [ "pages": [{
{
"path": "/video-group-chat/video-group-chat", "path": "/video-group-chat/video-group-chat",
"style": { "style": {
"navigationBarTitleText": "视频群聊", "navigationBarTitleText": "视频群聊",
@ -186,10 +180,16 @@
} }
}, },
{ {
"path" : "train-tickets/qunar-train-tickets/qunar-train-tickets", "path": "train-tickets/qunar-train-tickets/qunar-train-tickets",
"style" : "style": {
{ "navigationBarTitleText": "去哪儿火车票",
"navigationBarTitleText" : "去哪儿", "navigationStyle": "custom"
}
},
{
"path": "train-tickets/fliggy-air-tickets/fliggy-air-tickets",
"style": {
"navigationBarTitleText": "飞猪火车票",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
} }
@ -197,8 +197,7 @@
}, },
{ {
"root": "pages/common", "root": "pages/common",
"pages": [ "pages": [{
{
"path": "hot-icon/hot-icon", "path": "hot-icon/hot-icon",
"style": { "style": {
"navigationBarTitleText": "热门图标", "navigationBarTitleText": "热门图标",

View File

@ -157,9 +157,19 @@ import {
onLoad, onLoad,
onShow, onShow,
onHide, onHide,
onUnload onUnload,
onReady
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
onReady(() => {
// NVUE 挂载极快,但给它 100~200ms 的喘息让原生视图确认渲染
setTimeout(() => {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
}, 150);
});
// 内部埋点方法 // 内部埋点方法
const apiUserEvent = async (type, adminData) => { const apiUserEvent = async (type, adminData) => {
let uni_version = uni.getStorageSync("version") let uni_version = uni.getStorageSync("version")

View File

@ -122,7 +122,8 @@
</view> </view>
<view class="codefun-flex-row codefun-items-center"> <view class="codefun-flex-row codefun-items-center">
<text class="font_9 text_19">{{ ticketsInfo.ticketInfo.trainNo }}</text> <text class="font_9 text_19">{{ ticketsInfo.ticketInfo.trainNo }}</text>
<view class="codefun-flex-row codefun-items-center train-name"> <view v-if="ticketsInfo.ticketInfo.trainName"
class="codefun-flex-row codefun-items-center train-name">
<text class="font_6">{{ ticketsInfo.ticketInfo.trainName }}</text> <text class="font_6">{{ ticketsInfo.ticketInfo.trainName }}</text>
<uni-icons type="right" size="10" color="#767676"></uni-icons> <uni-icons type="right" size="10" color="#767676"></uni-icons>
</view> </view>

View File

@ -134,6 +134,10 @@
<text class="label">证件类型</text> <text class="label">证件类型</text>
<input class="input" v-model="passenger.idType" /> <input class="input" v-model="passenger.idType" />
</view> </view>
<view v-if="app != 'ctrip'" class="form-item">
<text class="label">证件号</text>
<input class="input" v-model="passenger.idNumber" />
</view>
<view v-if="app != 'qunar'" class="form-item"> <view v-if="app != 'qunar'" class="form-item">
<text class="label">是否本人</text> <text class="label">是否本人</text>
<switch :checked="passenger.isMe" @change="(e) => passenger.isMe = e.detail.value" /> <switch :checked="passenger.isMe" @change="(e) => passenger.isMe = e.detail.value" />
@ -212,6 +216,7 @@ const defaultData = {
"carriage": "01", "carriage": "01",
"seatNo": "03C", "seatNo": "03C",
"idType": "外国护照KR", "idType": "外国护照KR",
"idNumber": "123456789012345678",
"price": "2110", "price": "2110",
"status": "已支付", "status": "已支付",
"isMe": true, "isMe": true,

View File

@ -0,0 +1,993 @@
<template>
<view>
<view class="codefun-flex-col section">
<NavBar title="订单详情" :bgColor="data.navBar.bgColor" :buttonGroup="buttonGroup"
@button-click="util.clickTitlePopupButton" tipLayerType="fliggy-train-tickets-tip" isTipLayer
tipLayerText="修改车票信息">
<template v-slot:right>
<view class="codefun-flex-row pos">
<image class="image_4"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=5791ac1ae3c68c2c33ebc8939b64f1f2.png" />
<image class="image_4 codefun-ml-12"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=02bc5c64c2f1d46338920db657cf6ca3.png" />
</view>
</template>
</NavBar>
<view class="codefun-flex-col group_3">
<text class="codefun-self-start text_2">出票成功</text>
<text class="codefun-self-start font_2 text_3 mt-19">该票为电子票可直接凭购票证件进站乘车</text>
<view class="codefun-flex-col codefun-self-stretch mt-19">
<view class="codefun-flex-col codefun-justify-start codefun-items-center text-wrapper">
<text class="font_12 text_4">再订一张</text>
</view>
<view
class="codefun-flex-col codefun-justify-start codefun-items-start text-wrapper_2 codefun-mt-8">
<text class="font_2 text_5">车次{{ ticketsInfo.ticketInfo.trainNo }}为电子票无需取票可刷身份证乘车</text>
</view>
</view>
</view>
</view>
<view class="main-box">
<view class="codefun-flex-col section_2">
<view class="codefun-flex-col">
<view class="codefun-flex-row codefun-justify-between codefun-items-center section_3">
<view class="codefun-flex-row codefun-items-center">
<image class="codefun-shrink-0 image_6"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=b4e0db763d76ace53907598afb994e20.png" />
<view class="group_4 codefun-ml-6">
<text class="text_6">品质出行</text>
<text class="text_7">·保障更安心</text>
</view>
</view>
<image class="image_7"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=75526b11380ff557dd97aee719079769.png" />
</view>
<view class="codefun-flex-col section_4 codefun-mt-8">
<view class="codefun-flex-col group_5">
<view class="codefun-flex-col section_5">
<view class="codefun-flex-col codefun-self-stretch">
<view class="codefun-flex-row codefun-items-center codefun-self-stretch">
<text class="font_1 text_8">检票口</text>
<text class="font_6 text_9 codefun-ml-8">{{ ticketsInfo.ticketInfo.gate
}}检口</text>
<image class="image_8 codefun-ml-8"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=fba3d9d180bc82c4a19633fd737ece63.png" />
</view>
<text class="codefun-self-end font_2 text_10">{{ ticketsInfo.ticketInfo.status
}}</text>
</view>
<text class="codefun-self-start text_11 mt-3">以上信息仅供参考以车站公告为准</text>
</view>
<view class="codefun-flex-col codefun-items-start group_6 codefun-mt-14">
<text class="font_8 text_12">取票号:{{ ticketsInfo.orderInfo.orderNo }}</text>
<view class="codefun-flex-col group_7 mt-15">
<view class="codefun-flex-row codefun-justify-between">
<text class="font_9 text_13">{{
formatDateTime(ticketsInfo.ticketInfo.departureTime,
ticketsInfo.ticketInfo.date) }}</text>
<text class="font_1 text_13">{{
formatDateTime(ticketsInfo.ticketInfo.arrivalTime,
ticketsInfo.ticketInfo.date) }}</text>
</view>
<view class="codefun-flex-row codefun-justify-between codefun-items-start group_8">
<text class="font_10 text_44 text_16 alipay-font">
{{ ticketsInfo.ticketInfo.departureTime.split(' ')[1] }}</text>
<view class="codefun-flex-col codefun-items-center">
<text class="font_1 text_15">{{ ticketsInfo.ticketInfo.duration }}</text>
<image class="image_9 mt-1"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=0b61de17a8d42837e11dca1b57da5339.png" />
</view>
<text class="font_10 text_16 alipay-font">
{{ ticketsInfo.ticketInfo.arrivalTime.split(' ')[1] }}</text>
</view>
<view class="codefun-flex-row codefun-justify-center">
<text class="font_6 text_18">{{ ticketsInfo.ticketInfo.trainNo }}</text>
<image class="image_7 codefun-ml-6"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=34cd38ec11162326a09ca1b31c2a1f21.png" />
</view>
<view class="codefun-flex-row codefun-justify-between">
<view class="codefun-flex-row codefun-items-center">
<text class="font_2 text_45 text_19">{{
ticketsInfo.ticketInfo.departureStation
}}</text>
<image class="codefun-shrink-0 image_8 ml-7"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=596ed704e779e31f6020aee20a31e4b3.png" />
</view>
<view class="codefun-flex-row codefun-items-center group_9">
<image class="codefun-shrink-0 image_8"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=596ed704e779e31f6020aee20a31e4b3.png" />
<text class="font_2 text_19 codefun-ml-6">{{
ticketsInfo.ticketInfo.arrivalStation
}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="codefun-flex-col group">
<template v-for="item in ticketsInfo.passengerList">
<view class="divider"></view>
<view class="codefun-flex-col group_11">
<view class="codefun-flex-row codefun-justify-between codefun-items-center">
<text class="font_3">{{ item.name }}</text>
<view class="codefun-flex-row codefun-items-center">
<view
class="codefun-flex-col codefun-justify-start codefun-items-center codefun-shrink-0 text-wrapper_3">
<text class="font_11 text_21">靠窗</text>
</view>
<text class="font_12 text_22 codefun-ml-4">{{ item.carriage }}车厢
{{ item.seatNo }}</text>
</view>
</view>
<view class="codefun-flex-row codefun-justify-between mt-7">
<view class="codefun-self-center group_12">
<text class="font_2 text_23">{{ item.idType }}</text>
<text class="font_7">5**************3</text>
</view>
<view class="codefun-flex-row codefun-items-center">
<text class="codefun-shrink-0 font_5 text_24">硬座</text>
<text class="font_5 text_25">¥64.5</text>
</view>
</view>
<view class="codefun-flex-row codefun-justify-end mt-7">
<view
class="codefun-flex-col codefun-justify-center codefun-items-center text-wrapper_1">
<text class="font_15">退票</text>
</view>
<view
class="codefun-flex-col codefun-justify-center codefun-items-center codefun-ml-10 text-wrapper_1">
<text class="font_14">改签</text>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
<view
class="codefun-flex-col codefun-justify-start codefun-items-center codefun-relative codefun-mt-14">
<view class="codefun-flex-row">
<view class="codefun-flex-col codefun-items-center equal-division-item">
<image class="codefun-shrink-0 image_4"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=3c5ea49bf94832231d0884d0d49b266f.png" />
<text class="font_2 text_27 codefun-mt-8">电子发票</text>
</view>
<view class="codefun-flex-col codefun-items-center equal-division-item codefun-ml-74">
<image class="codefun-shrink-0 image_4"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=4292f1abf2d258f293a22de5d05128c8.png" />
<text class="font_2 text_27 codefun-mt-8">车站大屏</text>
</view>
<view class="codefun-flex-col codefun-items-center equal-division-item codefun-ml-74">
<image class="codefun-shrink-0 image_4"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=d6ebbff0802a1e0fd8ec03cdbbb2c001.png" />
<text class="font_2 text_27 codefun-mt-8">退改说明</text>
</view>
</view>
<view class="section_6 pos_3"></view>
<view class="section_6 pos_4"></view>
</view>
</view>
<view class="codefun-flex-row codefun-justify-between codefun-items-center section_7">
<view class="codefun-flex-row">
<image class="image_10"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=01287bd38f190c8abee35be47a26fec6.png" />
<view class="codefun-flex-col codefun-items-start codefun-ml-12">
<text class="font_14">关注飞猪旅行公众号</text>
<text class="font_8 text_29 codefun-mt-10">第一时间接受出票出行信息</text>
</view>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center text-wrapper_6">
<text class="font_2 text_28">去关注</text>
</view>
</view>
<view class="codefun-flex-col codefun-items-start section_8">
<text class="font_14 text_30">已购服务</text>
<view class="codefun-flex-row codefun-items-center mt-27">
<text class="codefun-shrink-0 font_6 text_31">多人连坐</text>
<text class="font_6 text_32">¥ 10x2份</text>
</view>
</view>
<view class="codefun-flex-col section_9">
<view class="codefun-flex-row codefun-justify-between codefun-items-center">
<text class="font_14 text_33">您可能遇到的问题</text>
<view class="codefun-flex-row codefun-items-center">
<text class="font_2 text_34">更多</text>
<image class="codefun-shrink-0 image_11"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=6e3d20c393a57089ea90ab5c3e626131.png" />
</view>
</view>
<view class="grid codefun-mt-14">
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_36">如何取火车票</text>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_37">如何改签火车票</text>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_38">取票常见问题</text>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_39">如何使用电子票</text>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_40">申请退票退费</text>
</view>
<view class="codefun-flex-col codefun-justify-center codefun-items-center grid-item">
<text class="font_1 text_43">如何申请退票</text>
</view>
</view>
</view>
</view>
</view>
<view class="footer-box">
<view class="codefun-flex-col codefun-justify-start codefun-items-center section_10">
<view class="codefun-flex-row codefun-items-center group_14">
<image class="codefun-shrink-0 image_12"
src="https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=ffe37b203149da7cc21296cfc2844737.png" />
<text class="font_14 text_35 codefun-ml-8">联系飞猪</text>
</view>
</view>
</view>
</template>
<script setup>
import NavBar from '@/components/nav-bar/nav-bar.vue';
import { reactive, ref, computed, toRefs } from 'vue';
import { onShow, onPageScroll } from '@dcloudio/uni-app';
import { util } from '@/utils/common.js';
const data = reactive({
navBar: {
bgColor: '#FCE041'
},
STORAGE_KEY: 'fliggyTrainTicketsInfo',
ticketsInfo: {
"orderInfo": {
"orderNo": "EJ66223536",
"price": "4440"
},
"ticketInfo": {
"departureTime": "01-01 09:19",
"departureStation": "北京南",
"arrivalTime": "01-01 14:04",
"arrivalStation": "上海虹桥",
"trainNo": "G905",
"duration": "4时45分",
"date": "2026.01.01",
"weekDay": "星期四",
"gate": "6A、7A",
"trainName": "复兴号",
"status": "正在检票"
},
"passengerList": [
{
"name": "张元英",
"type": "成人票",
"seatType": "商务座",
"carriage": "01",
"seatNo": "03C",
"idType": "外国护照KR",
"idNumber": 1236256324589623,
"price": "2110",
"status": "已支付",
"isMe": true,
"points": 9632
}
],
"hotelInfo": {
"cashback": "25",
"startDay": "01-01",
"endDay": "01-02"
}
},
})
let { ticketsInfo } = toRefs(data)
const formatDateTime = (timeStr, dateStr) => {
if (!timeStr) return '';
const parts = timeStr.split(' ');
const md = parts[0];
if (!md) return '';
const mdParts = md.split('-');
let year, month, day;
if (mdParts.length === 3) {
year = mdParts[0];
month = mdParts[1];
day = mdParts[2];
} else if (mdParts.length === 2) {
month = mdParts[0];
day = mdParts[1];
year = new Date().getFullYear();
if (dateStr) {
year = dateStr.split('.')[0];
}
} else {
return '';
}
const dateObj = new Date(Number(year), Number(month) - 1, Number(day));
const weekDays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
const week = isNaN(dateObj.getTime()) ? '' : weekDays[dateObj.getDay()];
return `${month}-${day} ${week}`;
}
</script>
<style>
@import '/common/global.css';
@import '/common/main.css';
</style>
<style lang="less">
.ml-5 {
margin-left: 10rpx;
}
.mt-19 {
margin-top: 38rpx;
}
.mt-3 {
margin-top: 6rpx;
}
.mt-15 {
margin-top: 30rpx;
}
.mt-1 {
margin-top: 2rpx;
}
.ml-7 {
margin-left: 14rpx;
}
.mt-7 {
margin-top: 14rpx;
}
.mt-27 {
margin-top: 54rpx;
}
.section {
padding: 0 18rpx 16rpx;
background-color: #fce041;
.pos {
position: absolute;
top: 50%;
transform: translateY(-50%);
.image_4 {
width: 48rpx;
height: 48rpx;
}
}
.group_2 {
.image_5 {
width: 44rpx;
height: 44rpx;
}
.pos_2 {
position: absolute;
left: 10rpx;
top: 50%;
transform: translateY(-50%);
}
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
.text {
font-size: 32rpx;
line-height: 29.5rpx;
}
}
.group_3 {
margin-top: 32rpx;
.text_2 {
margin-left: 27rpx;
color: #1a1a1a;
font-size: 48rpx;
font-weight: 500;
line-height: 44.44rpx;
}
.font_2 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #1a1a1a;
}
.text_3 {
margin-left: 23.28rpx;
font-size: 28rpx;
line-height: 26.66rpx;
margin-top: 26rpx;
}
.text-wrapper {
margin: 0 6rpx;
padding: 24rpx 0;
background-color: #fef8ca;
border-radius: 36rpx;
.font_12 {
font-size: 30rpx;
line-height: 30rpx;
color: #1a1a1a;
}
.text_4 {
line-height: 27.14rpx;
}
}
.text-wrapper_2 {
padding: 20rpx 0;
background-color: #fefefe;
border-radius: 12rpx;
.text_5 {
margin-left: 25.46rpx;
color: #ae916e;
font-size: 24rpx;
line-height: 22.84rpx;
}
}
}
}
.section_2 {
padding: 24rpx 18rpx 36rpx;
background-color: #ffffff;
.section_3 {
padding: 12rpx 16rpx;
background-color: #fdf8d9;
border-radius: 8rpx;
.image_6 {
width: 142rpx;
height: 32rpx;
}
.group_4 {
line-height: 20.36rpx;
height: 20.4rpx;
.text_6 {
color: #636363;
font-size: 22rpx;
line-height: 20.32rpx;
}
.text_7 {
color: #645f4c;
font-size: 22rpx;
line-height: 20.36rpx;
}
}
}
.section_4 {
filter: drop-shadow(0rpx 10rpx 10rpx #00000008);
background-image: url('https://ide.code.fun/api/image?token=69ae28bb97ce8400118178f6&name=ce4aca9097cf1d57763cc647764b458d.png');
background-size: 100% 100%;
background-repeat: no-repeat;
.group_5 {
padding-bottom: 32rpx;
.section_5 {
padding: 26rpx 12.76rpx 23.44rpx 20.92rpx;
background-color: #f6f8fa;
border-radius: 24rpx 24rpx 0rpx 0rpx;
border: solid 4rpx #ffffff;
.text_8 {
font-size: 28rpx;
line-height: 25.98rpx;
}
.text_9 {
font-size: 28rpx;
line-height: 25.92rpx;
}
.text_10 {
margin-right: 8rpx;
margin-top: -8.34rpx;
color: #53ae66;
font-size: 24rpx;
font-weight: 800;
line-height: 22.28rpx;
}
.text_11 {
margin-left: 3.08rpx;
color: #979797;
font-size: 20rpx;
line-height: 19.14rpx;
}
}
.group_6 {
margin-right: 24rpx;
margin-left: 24rpx;
padding-top: 3.92rpx;
.font_8 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #8a8c8d;
}
.text_12 {
line-height: 22.9rpx;
}
.group_7 {
width: 672.28rpx;
.font_9 {
color: #636363;
line-height: 25rpx;
letter-spacing: -2.16rpx;
}
.text_13 {
font-size: 24rpx;
line-height: 25rpx;
letter-spacing: -2.16rpx;
text-align: right;
}
.group_8 {
padding-left: 2.22rpx;
.font_10 {
font-size: 40rpx;
line-height: 30rpx;
color: #1a1a1a;
}
.text_44 {
margin-top: 18rpx;
line-height: 29rpx;
}
.text_16 {
margin-top: 18rpx;
line-height: 29rpx;
font-weight: 500;
}
.text_15 {
font-size: 24rpx;
line-height: 22.04rpx;
}
.image_9 {
width: 242rpx;
height: 12rpx;
}
}
.text_18 {
line-height: 19rpx;
}
.text_45 {
line-height: 24rpx;
}
.text_19 {
line-height: 24rpx;
}
.group_9 {
margin-right: 6.28rpx;
}
}
}
.font_1 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #636363;
}
.font_6 {
font-size: 26rpx;
line-height: 30rpx;
font-weight: 700;
color: #1a1a1a;
}
.image_8 {
width: 28rpx;
height: 28rpx;
}
}
.group {
padding: 0 12rpx;
.divider {
margin-right: 6rpx;
background-image: repeating-linear-gradient(90deg,
#d8d8d8,
#d8d8d8 0.88%,
transparent 0.88%,
transparent 1.7570000000000001%);
background-position: -3rpx 0rpx;
height: 1rpx;
}
.group_11 {
padding: 29rpx 11rpx 28rpx;
.font_3 {
font-size: 30rpx;
line-height: 26.38rpx;
color: #1a1a1a;
}
.text-wrapper_3 {
border-radius: 6rpx;
width: 66rpx;
height: 32rpx;
border: solid 1rpx #d3d3d3;
}
.font_12 {
font-size: 30rpx;
line-height: 30rpx;
color: #1a1a1a;
}
.text_22 {
line-height: 30.9rpx;
}
.group_12 {
line-height: 22.34rpx;
height: 22.34rpx;
.text_23 {
font-size: 24rpx;
}
.font_7 {
font-size: 20rpx;
line-height: 14.6rpx;
color: #1a1a1a;
}
}
.font_5 {
font-size: 26rpx;
line-height: 30rpx;
color: #636363;
}
.text_24 {
font-size: 24rpx;
}
.text_25 {
font-size: 24rpx;
}
.text-wrapper_1 {
background-color: #ffe133;
border-radius: 34rpx;
width: 150rpx;
height: 68rpx;
.font_15 {
font-size: 30rpx;
line-height: 26.42rpx;
font-weight: 700;
color: #1a1a1a;
}
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
}
.text-wrapper_5 {
border-radius: 6rpx;
height: 32rpx;
border: solid 1rpx #d3d3d3;
.text_26 {
margin-left: 4.96rpx;
margin-right: 5.04rpx;
}
}
.font_11 {
font-size: 26rpx;
line-height: 30rpx;
color: #979797;
}
.text_21 {
line-height: 28rpx;
}
}
}
}
.image_7 {
width: 20rpx;
height: 20rpx;
}
.equal-division-item {
overflow: hidden;
width: 104rpx;
height: 88rpx;
.image_4 {
width: 48rpx;
height: 48rpx;
}
.text_27 {
line-height: 24.1rpx;
}
}
.font_2 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #1a1a1a;
}
.section_6 {
background-color: #d8d8d8;
width: 1rpx;
height: 24rpx;
}
.pos_3 {
position: absolute;
left: 231rpx;
top: 50%;
transform: translateY(-50%);
}
.pos_4 {
position: absolute;
right: 232rpx;
top: 50%;
transform: translateY(-50%);
}
}
.section_7 {
margin-top: 16rpx;
padding: 31.14rpx 30rpx 31.18rpx;
background-color: #ffffff;
.image_10 {
margin: 4.86rpx 0 4.82rpx;
width: 60rpx;
height: 60rpx;
}
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
.font_8 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #8a8c8d;
}
.text_29 {
font-size: 24rpx;
line-height: 22.4rpx;
}
.text-wrapper_6 {
background-color: #ffe133;
border-radius: 34rpx;
width: 180rpx;
height: 60rpx;
.font_2 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #1a1a1a;
}
.text_28 {
line-height: 24rpx;
}
}
}
.section_8 {
margin-top: 16rpx;
padding: 31.3rpx 30.1rpx 19.96rpx;
background-color: #ffffff;
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
.text_30 {
line-height: 27.66rpx;
}
.font_6 {
font-size: 26rpx;
line-height: 30rpx;
font-weight: 700;
color: #1a1a1a;
}
.text_31 {
font-size: 28rpx;
line-height: 28.84rpx;
}
.text_32 {
font-size: 28rpx;
}
}
.section_9 {
margin-top: 16rpx;
padding: 34rpx 18rpx 18rpx 23.04rpx;
background-color: #ffffff;
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
.text_33 {
line-height: 27.76rpx;
}
.font_2 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #1a1a1a;
}
.text_34 {
line-height: 24.02rpx;
}
.image_11 {
width: 32rpx;
height: 32rpx;
}
.grid {
margin-right: 4rpx;
height: 204rpx;
display: grid;
grid-template-rows: repeat(3, minmax(0, 1fr));
grid-template-columns: repeat(2, minmax(0, 1fr));
row-gap: 14rpx;
column-gap: 26rpx;
.grid-item {
background-color: #f5f7f9;
border-radius: 30rpx;
.font_1 {
font-size: 26rpx;
line-height: 22.34rpx;
color: #636363;
}
.text_36 {
line-height: 24.08rpx;
}
.text_37 {
line-height: 24.16rpx;
}
.text_38 {
line-height: 23.98rpx;
}
.text_39 {
line-height: 24.1rpx;
}
.text_40 {
line-height: 23.94rpx;
}
.text_43 {
line-height: 23.94rpx;
}
}
}
}
.main-box {
padding-bottom: 120rpx;
padding-bottom: calc(120rpx + constant(safe-area-inset-bottom));
padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
}
.footer-box {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: #fff;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
.section_10 {
padding: 32rpx 0 34rpx;
background-color: #ffffff;
.group_14 {
overflow: hidden;
width: 176rpx;
.image_12 {
width: 40rpx;
height: 40rpx;
}
.font_14 {
font-size: 30rpx;
line-height: 27.88rpx;
font-weight: 700;
color: #1a1a1a;
}
.text_35 {
line-height: 27.84rpx;
}
}
}
}
</style>

View File

@ -617,7 +617,7 @@ page {
.font_11 { .font_11 {
font-size: 26rpx; font-size: 26rpx;
line-height: 21.14rpx; line-height: 21.14rpx;
font-weight: 700; font-weight: 500;
color: #999999; color: #999999;
} }
@ -636,7 +636,7 @@ page {
.font_13 { .font_13 {
font-size: 26rpx; font-size: 26rpx;
line-height: 19rpx; line-height: 19rpx;
font-weight: 700; font-weight: 500;
color: #999999; color: #999999;
} }