Browse Source

2024-6-27

cmy 8 months ago
parent
commit
08c2394996
60 changed files with 511 additions and 88 deletions
  1. 9 0
      api/index.js
  2. 7 1
      components/nav/nav.vue
  3. 6 2
      libs/i18n/lang/cn.json
  4. 4 0
      libs/i18n/lang/en.json
  5. 4 0
      libs/i18n/lang/tw.json
  6. 13 0
      pages.json
  7. 285 0
      pages/index/community.vue
  8. 173 0
      pages/index/communityDetail.vue
  9. 2 77
      pages/index/index.vue
  10. 5 5
      pages/index/node.vue
  11. 3 3
      pages/user/user.vue
  12. BIN
      static/img/itemListMax.png
  13. BIN
      static/img/首页_slices (1)/Group 366 拷贝 2.png
  14. BIN
      static/img/首页_slices (1)/Group 366 拷贝 2@2x.png
  15. BIN
      static/img/首页_slices (1)/Group 366 拷贝 2@3x.png
  16. BIN
      static/img/首页_slices (1)/Group 366 拷贝.png
  17. BIN
      static/img/首页_slices (1)/Group 366 拷贝@2x.png
  18. BIN
      static/img/首页_slices (1)/Group 366 拷贝@3x.png
  19. BIN
      static/img/首页_slices (1)/Vector 1.png
  20. BIN
      static/img/首页_slices (1)/Vector 1@2x.png
  21. BIN
      static/img/首页_slices (1)/Vector 1@3x.png
  22. BIN
      static/img/首页_slices (1)/图层 10.png
  23. BIN
      static/img/首页_slices (1)/图层 10@2x.png
  24. BIN
      static/img/首页_slices (1)/图层 10@3x.png
  25. BIN
      static/img/首页_slices (1)/图层 11.png
  26. BIN
      static/img/首页_slices (1)/图层 11@2x.png
  27. BIN
      static/img/首页_slices (1)/图层 11@3x.png
  28. BIN
      static/img/首页_slices (1)/图层 12.png
  29. BIN
      static/img/首页_slices (1)/图层 12@2x.png
  30. BIN
      static/img/首页_slices (1)/图层 12@3x.png
  31. BIN
      static/img/首页_slices (1)/图层 13.png
  32. BIN
      static/img/首页_slices (1)/图层 13@2x.png
  33. BIN
      static/img/首页_slices (1)/图层 13@3x.png
  34. BIN
      static/img/首页_slices (1)/图层 26.png
  35. BIN
      static/img/首页_slices (1)/图层 26@2x.png
  36. BIN
      static/img/首页_slices (1)/图层 26@3x.png
  37. BIN
      static/img/首页_slices (1)/图层 28.png
  38. BIN
      static/img/首页_slices (1)/图层 28@2x.png
  39. BIN
      static/img/首页_slices (1)/图层 28@3x.png
  40. BIN
      static/img/首页_slices (1)/图层 31.png
  41. BIN
      static/img/首页_slices (1)/图层 31@2x.png
  42. BIN
      static/img/首页_slices (1)/图层 31@3x.png
  43. BIN
      static/img/首页_slices (1)/图层 36.png
  44. BIN
      static/img/首页_slices (1)/图层 36@2x.png
  45. BIN
      static/img/首页_slices (1)/图层 36@3x.png
  46. BIN
      static/img/首页_slices (1)/图层 38.png
  47. BIN
      static/img/首页_slices (1)/图层 38@2x.png
  48. BIN
      static/img/首页_slices (1)/图层 38@3x.png
  49. BIN
      static/img/首页_slices (1)/图层 40.png
  50. BIN
      static/img/首页_slices (1)/图层 40@2x.png
  51. BIN
      static/img/首页_slices (1)/图层 40@3x.png
  52. BIN
      static/img/首页_slices (1)/组 2334.png
  53. BIN
      static/img/首页_slices (1)/组 2334@2x.png
  54. BIN
      static/img/首页_slices (1)/组 2334@3x.png
  55. BIN
      static/img/首页_slices (1)/组 2335 拷贝.png
  56. BIN
      static/img/首页_slices (1)/组 2335 拷贝@2x.png
  57. BIN
      static/img/首页_slices (1)/组 2335 拷贝@3x.png
  58. BIN
      static/img/首页_slices (1)/组 2336 拷贝.png
  59. BIN
      static/img/首页_slices (1)/组 2336 拷贝@2x.png
  60. BIN
      static/img/首页_slices (1)/组 2336 拷贝@3x.png

+ 9 - 0
api/index.js

@@ -132,6 +132,15 @@ export function myList(data) {
 	});
 }
 
+// 共创社区
+export function orderList(data) {
+	return request({
+		url: `/api/order/myList`,
+		method: 'get',
+		data
+	});
+}
+
 
 
 

+ 7 - 1
components/nav/nav.vue

@@ -11,12 +11,16 @@
 						<view class="langType">{{label}}</view>
 					</picker>
 				</view>
+				
 				<view class="userInfo flex border-linear-gradient" @click="copyAddress">
 					<image class="rightImg" src="../../static/img/nav02.png" mode="scaleToFill"></image>
 					<view class="userInfoName">
 						{{userInfo.address|hideCenter}}
 					</view>
 				</view>
+				<view class="level text-linear-gradient margin-l-10" v-if="userInfo.level>0">
+					{{userInfo.level_info.name}}
+				</view>
 			</view>
 		</view>
 		<navigator :url="url" open-type='redirect' v-if="showTitle">
@@ -155,7 +159,9 @@
 
 		.navRight {
 			color: #FFF;
-
+			.level{
+				font-weight: bold;
+			}
 			.tabLange {
 				border: 1px solid #FFF;
 				padding: 6rpx 10rpx;

+ 6 - 2
libs/i18n/lang/cn.json

@@ -56,8 +56,12 @@
 		"提现": "提现",
 		"提币数量": "提幣數量请大于100",
 		"节点认购": "会员认购",
-		"已認購": "会员认购",
-		"已釋放": "会员认购",
+		"已认购": "已认购",
+		"待释放": "待释放",
+		"总量": "总量",
+		"认购数1":"认购数",
+		"查看详细": "查看詳細",
+		"释放记录": "释放记录",
 		"认购成功": "认购成功",
 		"认购失败": "认购失败",
 		"立即认购": "立即认购",

+ 4 - 0
libs/i18n/lang/en.json

@@ -58,6 +58,10 @@
 		"节点认购": "Node",
 		"已认购": "Subscribed",
 		"待释放": "Release",
+		"总量": "All",
+		"认购数1":"Number",
+		"查看详细": "Detail",
+		"释放记录": "History",
 		"认购成功": "SUCCESS",
 		"认购失败": "FAIL",
 		"立即认购": "Confirm Buy",

+ 4 - 0
libs/i18n/lang/tw.json

@@ -58,6 +58,10 @@
 		"节点认购": "會員認購",
 		"已认购": "已認購",
 		"待释放": "待釋放",
+		"总量": "總量",
+		"认购数1":"認購數",
+		"查看详细": "查看詳細",
+		"释放记录": "釋放記錄",
 		"认购成功": "認購成功",
 		"认购失败": "認購失敗",
 		"立即认购": "立即認購",

+ 13 - 0
pages.json

@@ -40,6 +40,19 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/index/community",
+			"style": {
+				"navigationBarTitleText": "BCMM",
+				"navigationStyle": "custom"
+			}
+		},{
+			"path": "pages/index/communityDetail",
+			"style": {
+				"navigationBarTitleText": "BCMM",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/index/buling",
 			"style": {

+ 285 - 0
pages/index/community.vue

@@ -0,0 +1,285 @@
+<template>
+	<view class="container">
+		<navBar :show-title="true" :title="$t('home.共创社区')" url="/pages/index/index"></navBar>
+		<view class="text-center border-linear-gradient">
+			<image class="contentImg" src="../../static/img/itemListMax.png" mode="widthFix"></image>
+			<view class="title flex-center">
+				<view>{{$t('home.认购价')}}:</view>
+				<view class="num text-linear-gradient">{{num}}U</view>
+			</view>
+			<!-- <view class="title flex-center">
+				<view>{{$t('home.认购数')}}:</view>
+				<view class="num text-linear-gradient">10000个</view>
+			</view> -->
+			<!-- <view class="title flex-center">
+				<view>{{$t('home.社区建设')}}</view>
+			</view> -->
+			<view class="buttom" @click="openPayMoney">
+				{{$t('home.立即认购')}}
+			</view>
+		</view>
+		<view class="detail border-linear-gradient">
+			<view class="flex  top">
+				<view class="item">
+					<view class="text-linear-gradient">
+						{{order_num||0}}
+					</view>
+					<view class="tipText margin-t-20">
+						{{$t('home.已认购')}}
+					</view>
+				</view>
+				<view class="lineH">
+
+				</view>
+				<view class="item">
+					<view class="text-linear-gradient">
+						{{wait||0}}
+					</view>
+					<view class="tipText margin-t-20">
+						{{$t('home.待释放')}}
+					</view>
+				</view>
+			</view>
+			<view class="flex padding-c-30 padding-v-20">
+				<view class="flex">
+					<view class="imageTip margin-r-10">
+						<image class="nodeImg" src="../../static/img/nodeIcon.png" mode=""></image>
+					</view>
+					<view class="typename">
+						{{$t('home.释放记录')}}
+					</view>
+				</view>
+				<navigator url="./communityDetail">
+					<view class="flex-center">
+						<view class="rightTip margin-r-10">
+							{{$t('home.查看详细')}}
+						</view>
+						<image class="nextImg" src="../../static/img/mininext.png" mode="scaleToFill"></image>
+					</view>
+				</navigator>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		loadIndexs,
+		creatorOrder,
+		payOrder,
+		orderCalculator,
+		orderList
+	} from '@/api/index.js';
+	import {
+		mapMutations
+	} from "vuex";
+	import {
+		getUserInfo
+	} from '@/api/user.js';
+	import navBar from "@/components/nav/nav.vue"
+	export default {
+		data() {
+			return {
+				num: 300,
+				order_num:'',
+				wait:'',
+			}
+		},
+		components: {
+			navBar
+		},
+		onLoad(option) {
+			this.getUserInfo();
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo']),
+			// 获取更新用户信息
+			getUserInfo() {
+				getUserInfo().then((res) => {
+					this.setUserInfo(res.data);
+				}).catch((res) => {
+					console.log(res);
+				})
+				// loadIndexs().then((res) => {
+				// 	this.num = res.data.point_num
+				// }).catch((res) => {
+				// 	console.log(res);
+				// })
+				orderList().then(({data}) => {
+					this.order_num = data.order_num;
+					this.wait = data.wait;
+				}).catch((res) => {
+					console.log(res);
+				})
+			},
+			// 报单
+			openPayMoney() {
+				const that = this;
+				uni.showActionSheet({
+					title: that.$t("home.请选择支付方式"),
+					itemList: ['USDT', that.$t("home.余额")],
+					success(res) {
+						uni.showLoading({
+							mask: true
+						});
+						that.creatorOrder(res.tapIndex)
+					}
+
+				})
+			},
+			// 生成订单
+			creatorOrder(index) {
+				creatorOrder({
+					num: this.num * 1,
+				}).then(({
+					data
+				}) => {
+					this.payOrder(index + 1, data.id)
+				}).catch((res) => {
+					console.log(res);
+				})
+			},
+			// 支付订单
+			async payOrder(ind, id) {
+				const that = this;
+				let pushData = {
+					num: this.num * 1,
+					type: ind
+				}
+				try {
+					if (ind == 1) {
+						const {
+							data
+						} = await orderCalculator({
+							id
+						});
+						const txHash = await ethereum.request({
+							method: 'eth_sendTransaction',
+							params: [{
+								from: that.userInfo.address, // The user's active address.
+								to: data.data.to,
+								value: 0,
+								data: data.data.data,
+							}]
+						})
+						const req = await payOrder(id, {
+							type: ind,
+							transactionHash: txHash,
+						});
+					}
+					if (ind == 2) {
+						const req = await payOrder(id, {
+							type: ind
+						});
+					}
+					that.getUserInfo();
+
+					uni.showToast({
+						title: that.$t('home.认购成功')
+					})
+				} catch (e) {
+					console.log(e, 'err');
+					uni.showToast({
+						title: that.$t('home.认购失败'),
+						icon: 'error'
+					})
+				}
+			},
+		},
+	}
+</script>
+
+<style lang="scss">
+	.contentImg {
+		margin: 0 auto;
+		width: 100%;
+		margin-top: -200rpx;
+	}
+
+	.container {
+		width: 100%;
+		line-height: 1;
+		background-color: rgb(12, 8, 21);
+		min-height: 100vh;
+	}
+
+	.detail {
+		margin: 30rpx 30rpx 0 30rpx;
+		border-radius: 30rpx;
+
+		.top {
+			justify-content: space-around;
+			padding: 30rpx;
+			color: #FFF;
+			font-weight: 500;
+			border-bottom: 1px solid #E1E1E1;
+			margin: 0 30rpx;
+
+			.item {
+				text-align: center;
+				font-weight: bold;
+				font-size: 38rpx;
+
+				.tipText {
+					font-size: 22rpx;
+					opacity: 0.8;
+				}
+			}
+
+			.lineH {
+				height: 92rpx;
+				width: 2px;
+				background: linear-gradient(0deg, rgba(255, 255, 255, 0), #FFFFFF, rgba(255, 255, 255, 0));
+			}
+		}
+
+		.typename {
+			font-size: 30rpx;
+			color: #FFF;
+		}
+
+		.imageTip {
+			.nodeImg {
+				width: 36rpx;
+				height: 33rpx;
+			}
+		}
+
+		.rightTip {
+			color: #FFF;
+			font-size: 24rpx;
+		}
+
+		.nextImg {
+			width: 8rpx;
+			height: 14rpx;
+		}
+	}
+
+	.text-center {
+		border-radius: 30rpx;
+		margin: 100rpx 30rpx 0 30rpx;
+		color: #FFF;
+		padding: 80rpx 50rpx;
+
+		.title {
+			font-weight: 500;
+			font-size: 33rpx;
+			padding-bottom: 50rpx;
+			// align-items: flex-end;
+		}
+
+		.num {
+			font-weight: bold;
+			font-size: 52rpx;
+		}
+	}
+
+	.buttom {
+		font-weight: bold;
+		font-size: 32rpx;
+		border-radius: 20rpx;
+		padding: 30rpx;
+		background: linear-gradient(to right, #7D32FF 0%, #3EE0FF 100%);
+	}
+</style>

+ 173 - 0
pages/index/communityDetail.vue

@@ -0,0 +1,173 @@
+<template>
+	<view class="container">
+		<view class="centerBox ">
+			<view class="itemList border-linear-gradient">
+				<view class="list">
+					<view class="item" v-for="(item,index) in listAll">
+						<view class="leftItem">
+							<view class="itemName flex">
+								<view class="itemType">
+									<view class="num text-linear-gradient">
+										{{item.num}}
+									</view>
+									<view class="type">
+										{{$t('home.认购数1')}}
+									</view>
+								</view>
+								<view class="jg"></view>
+								<view class="itemType">
+									<view class="num text-linear-gradient">
+										{{item.award_num}}
+									</view>
+									<view class="">
+										{{$t('home.总量')}}
+									</view>
+								</view>
+								<view class="jg"></view>
+								<view class="itemType">
+									<view class="num text-linear-gradient">
+										{{item.wait_num}}
+									</view>
+									<view class="">
+										{{$t('home.待释放')}}
+									</view>
+								</view>
+							</view>
+							<view class="itemTime margin-t-10">
+								{{item.createtime|dateFormat}}
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<u-loadmore :status="loading" line :loadmoreText="$t('base.加载更多')" :loadingText="$t('base.正在加载')"
+				:nomoreText="$t('base.没有更多了')" />
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		mapMutations
+	} from "vuex";
+	import {
+		orderList
+	} from '@/api/index.js';
+	import dayjs from '@/libs/dayjs/dayjs.min.js';
+	export default {
+		data() {
+			return {
+				listAll: [],
+				loading: 'loadmore', //'上拉加載更多','加載中','沒有更多'
+				page: 1,
+				limit: 10,
+				shareNum: 0,
+				itemNum: 0,
+			}
+		},
+		filters: {
+			dateFormat: function(value) {
+				return dayjs(value * 1000).format('YYYY/MM/DD hh:mm:ss');
+			},
+		},
+		onLoad(option) {
+			this.getList();
+		},
+		onReachBottom() {
+			this.getList()
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo']),
+			// 获取列表
+			getList() {
+				const that = this;
+				if (that.loading == 'nomore' || that.loding == "loading") {
+					return
+				}
+				that.loading = 'loading';
+				orderList({
+					page: that.page,
+					limit: that.limit,
+				}).then((res) => {
+					const list = res.data.list.map((rs) => {
+						rs.num = +rs.num;
+						rs.award_num = +rs.award_num;
+						rs.wait_num = +rs.wait_num;
+						return rs
+					})
+					that.listAll = that.listAll.concat(list);
+					if (list.length != that.limit) {
+						that.loading = 'nomore'
+					} else {
+						that.page++
+						that.loading = 'loadmore'
+					}
+				}).catch((res) => {
+					console.log(res);
+				})
+
+			},
+		},
+	}
+</script>
+
+<style lang="scss">
+	.container {
+		width: 100%;
+		line-height: 1;
+		background-color: rgb(12, 8, 21);
+		min-height: 100vh;
+	}
+
+	.centerBox {
+		padding: 30rpx;
+		color: #FFF;
+
+		.itemList {
+			border-radius: 20rpx;
+			padding: 20rpx 30rpx 40rpx;
+
+			.list {
+				min-height: 700rpx;
+
+				.item {
+					border-bottom: 1px solid rgba(240, 240, 240, .3);
+					padding: 20rpx 0;
+				}
+
+				.leftItem {
+					.itemName {
+						font-size: 24rpx;
+
+						.itemType {
+
+							.num {
+								padding-bottom: 10rpx;
+								font-weight: bold;
+								font-size: 32rpx;
+							}
+						}
+					}
+
+					.itemTime {
+						font-weight: 500;
+						font-size: 22rpx;
+						color: #FFFFFF;
+						opacity: 0.5;
+					}
+
+					.itemType {
+						text-align: center;
+						flex-grow: 1;
+					}
+
+					.jg {
+						height: 80rpx;
+						width: 1px;
+						background: linear-gradient(0deg, rgba(255, 255, 255, 0), #FFFFFF, rgba(255, 255, 255, 0));
+					}
+				}
+			}
+		}
+	}
+</style>

+ 2 - 77
pages/index/index.vue

@@ -18,7 +18,7 @@
 						{{($t("home.共创社区"))}}
 					</view>
 				</view>
-				<view class="itemRight flex" @click="openPayMoney">
+				<view class="itemRight flex" @click="navto('./community')">
 					<view>
 						<view class="moneyLine text-linear-gradient">
 							$300
@@ -210,9 +210,6 @@
 <script>
 	import {
 		loadIndexs,
-		creatorOrder,
-		payOrder,
-		orderCalculator
 	} from '@/api/index.js';
 	import {
 		getUserInfo
@@ -262,79 +259,7 @@
 		},
 		methods: {
 			...mapMutations('user', ['setUserInfo']),
-			// 报单
-			openPayMoney() {
-				const that = this;
-				uni.showActionSheet({
-					title: that.$t("home.请选择支付方式"),
-					itemList: ['USDT', that.$t("home.余额")],
-					success(res) {
-						uni.showLoading({
-							mask: true
-						});
-						that.creatorOrder(res.tapIndex)
-					}
-
-				})
-			},
-			// 生成订单
-			creatorOrder(index) {
-				creatorOrder({
-					num: 300,
-				}).then(({
-					data
-				}) => {
-					this.payOrder(index + 1, data.id)
-				}).catch((res) => {
-					console.log(res);
-				})
-			},
-			// 支付订单
-			async payOrder(ind, id) {
-				const that = this;
-				let pushData = {
-					num: 300,
-					type: ind
-				}
-				try {
-					if (ind == 1) {
-						const {
-							data
-						} = await orderCalculator({
-							id
-						});
-						const txHash = await ethereum.request({
-							method: 'eth_sendTransaction',
-							params: [{
-								from: that.userInfo.address, // The user's active address.
-								to: data.data.to,
-								value: 0,
-								data: data.data.data,
-							}]
-						})
-						const req = await payOrder(id, {
-							type: ind,
-							transactionHash: txHash,
-						});
-					}
-					if (ind == 2) {
-						const req = await payOrder(id, {
-							type: ind
-						});
-					}
-					that.getUserInfo();
-					
-					uni.showToast({
-						title: that.$t('home.充值成功')
-					})
-				} catch (e) {
-					console.log(e,'err');
-					uni.showToast({
-						title: that.$t('home.充值失败'),
-						icon: 'error'
-					})
-				}
-			},
+			
 			navto(url) {
 				if (!this.hasLogin) {
 					// 保存地址

+ 5 - 5
pages/index/node.vue

@@ -8,7 +8,7 @@
 				<view class="num text-linear-gradient">{{.1}}U</view>
 			</view>
 			<view class="title flex-center">
-				<view>认购数:</view>
+				<view>{{$t('home.认购数')}}:</view>
 				<view class="num text-linear-gradient">10000个</view>
 			</view>
 			<view class="title flex-center">
@@ -25,7 +25,7 @@
 						{{order_num||0}}
 					</view>
 					<view class="tipText margin-t-20">
-						已認購
+						{{$t('home.已认购')}}
 					</view>
 				</view>
 				<view class="lineH">
@@ -36,7 +36,7 @@
 						{{wait||0}}
 					</view>
 					<view class="tipText margin-t-20">
-						已釋放
+						{{$t('home.待释放')}}
 					</view>
 				</view>
 			</view>
@@ -46,13 +46,13 @@
 						<image class="nodeImg" src="../../static/img/nodeIcon.png" mode=""></image>
 					</view>
 					<view class="typename">
-						釋放記錄
+						{{$t('home.释放记录')}}
 					</view>
 				</view>
 				<navigator url="./nodeDetail">
 					<view class="flex-center">
 						<view class="rightTip margin-r-10">
-							查看詳細
+							{{$t('home.查看详细')}}
 						</view>
 						<image class="nextImg" src="../../static/img/mininext.png" mode="scaleToFill"></image>
 					</view>

+ 3 - 3
pages/user/user.vue

@@ -10,7 +10,7 @@
 						</image>
 					</view>
 					<view class="money margin-t-30">
-						<text class="font-size-sm">≈</text>{{userInfo.usdt*1}}U
+						<text class="font-size-sm">≈</text>{{(userInfo.usdt*1).toFixed(5)}}U
 					</view>
 				</view>
 			</view>
@@ -43,7 +43,7 @@
 					<view class="right flex">
 						<view class="moneyBox margin-r-20">
 							<view class="num">
-								{{userInfo.USDT*1}}
+								{{(userInfo.USDT*1).toFixed(5)}}
 							</view>
 							<!-- <view class="tip">
 								≈{{money}}RMB
@@ -62,7 +62,7 @@
 					<view class="right flex">
 						<view class="moneyBox margin-r-20">
 							<view class="num">
-								{{userInfo.BCMM*1}}
+								{{(userInfo.BCMM*1).toFixed(5)}}
 							</view>
 							<!-- <view class="tip">
 								≈{{money}}RMB

BIN
static/img/itemListMax.png


BIN
static/img/首页_slices (1)/Group 366 拷贝 2.png


BIN
static/img/首页_slices (1)/Group 366 拷贝 2@2x.png


BIN
static/img/首页_slices (1)/Group 366 拷贝 2@3x.png


BIN
static/img/首页_slices (1)/Group 366 拷贝.png


BIN
static/img/首页_slices (1)/Group 366 拷贝@2x.png


BIN
static/img/首页_slices (1)/Group 366 拷贝@3x.png


BIN
static/img/首页_slices (1)/Vector 1.png


BIN
static/img/首页_slices (1)/Vector 1@2x.png


BIN
static/img/首页_slices (1)/Vector 1@3x.png


BIN
static/img/首页_slices (1)/图层 10.png


BIN
static/img/首页_slices (1)/图层 10@2x.png


BIN
static/img/首页_slices (1)/图层 10@3x.png


BIN
static/img/首页_slices (1)/图层 11.png


BIN
static/img/首页_slices (1)/图层 11@2x.png


BIN
static/img/首页_slices (1)/图层 11@3x.png


BIN
static/img/首页_slices (1)/图层 12.png


BIN
static/img/首页_slices (1)/图层 12@2x.png


BIN
static/img/首页_slices (1)/图层 12@3x.png


BIN
static/img/首页_slices (1)/图层 13.png


BIN
static/img/首页_slices (1)/图层 13@2x.png


BIN
static/img/首页_slices (1)/图层 13@3x.png


BIN
static/img/首页_slices (1)/图层 26.png


BIN
static/img/首页_slices (1)/图层 26@2x.png


BIN
static/img/首页_slices (1)/图层 26@3x.png


BIN
static/img/首页_slices (1)/图层 28.png


BIN
static/img/首页_slices (1)/图层 28@2x.png


BIN
static/img/首页_slices (1)/图层 28@3x.png


BIN
static/img/首页_slices (1)/图层 31.png


BIN
static/img/首页_slices (1)/图层 31@2x.png


BIN
static/img/首页_slices (1)/图层 31@3x.png


BIN
static/img/首页_slices (1)/图层 36.png


BIN
static/img/首页_slices (1)/图层 36@2x.png


BIN
static/img/首页_slices (1)/图层 36@3x.png


BIN
static/img/首页_slices (1)/图层 38.png


BIN
static/img/首页_slices (1)/图层 38@2x.png


BIN
static/img/首页_slices (1)/图层 38@3x.png


BIN
static/img/首页_slices (1)/图层 40.png


BIN
static/img/首页_slices (1)/图层 40@2x.png


BIN
static/img/首页_slices (1)/图层 40@3x.png


BIN
static/img/首页_slices (1)/组 2334.png


BIN
static/img/首页_slices (1)/组 2334@2x.png


BIN
static/img/首页_slices (1)/组 2334@3x.png


BIN
static/img/首页_slices (1)/组 2335 拷贝.png


BIN
static/img/首页_slices (1)/组 2335 拷贝@2x.png


BIN
static/img/首页_slices (1)/组 2335 拷贝@3x.png


BIN
static/img/首页_slices (1)/组 2336 拷贝.png


BIN
static/img/首页_slices (1)/组 2336 拷贝@2x.png


BIN
static/img/首页_slices (1)/组 2336 拷贝@3x.png