From 681efe897b7fb4dbe8bec5fa5056209e3e0edfdc Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期三, 20 十一月 2024 17:19:57 +0800
Subject: [PATCH] 添加积分商品详情,替换首页海报,调整样式,添加积分规则

---
 static/images/index/advert-icon3.svg                |    1 
 unpackage/dist/dev/mp-weixin/api/index.js           |    8 
 static/images/index/advert-icon1.svg                |    1 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxss |   68 ++++++
 pages.json                                          |    6 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxml |    2 
 unpackage/dist/dev/mp-weixin/app.js                 |    1 
 pages/pointsMall/index.vue                          |   93 +++++++-
 unpackage/dist/dev/mp-weixin/app.json               |    3 
 pages/pointsMall/pointsGetRecord/index.vue          |   15 -
 pages/pointsMall/pointsExchangeRecord/index.vue     |   17 -
 pages/pointsMall/pointsGoodsDetail/index.vue        |  139 ++++++++++++-
 unpackage/dist/dev/mp-weixin/pages/index/index.js   |   18 +
 static/images/index/advert-icon2.svg                |    1 
 unpackage/dist/dev/mp-weixin/common/vendor.js       |    6 
 api/index.js                                        |    9 
 pages/pointsMall/pointsrule/index.vue               |   54 +++++
 static/images/index/advert-icon4.svg                |    1 
 pages/index/index.vue                               |   91 ++++++++
 unpackage/dist/dev/mp-weixin/common/assets.js       |   14 
 20 files changed, 472 insertions(+), 76 deletions(-)

diff --git a/api/index.js b/api/index.js
index 2fa8cd3..f78fa5b 100644
--- a/api/index.js
+++ b/api/index.js
@@ -132,6 +132,15 @@
 	return request('/shopGoodsCategory/search',data,'POST')
 }
 
+//积分兑换
+export function integralConvertApi(data){
+	return request('/userIntegralConvert/create',data,'POST')
+}
+//积分规则
+export function getRuleDetailApi(data){
+	return request('/userIntegralRuleDetail/search',data,'POST')
+}
+
 
 
 
diff --git a/pages.json b/pages.json
index 03a7ab4..f8ec95a 100644
--- a/pages.json
+++ b/pages.json
@@ -167,6 +167,12 @@
 			"style": {
 				"navigationStyle":"custom"
 			}
+		},
+		{
+			"path" : "pages/pointsMall/pointsrule/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 3cb01bd..ec461b7 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -19,6 +19,7 @@
 		userName:'微信用户',
 		headImg:'',
 		userPhone:'',
+		integral:'',
 		
 		waterCardNumber:'',
 		balance:'',
@@ -60,6 +61,7 @@
 			if(res.code == 200){
 				cardInfo.value.userName = res.data.userInfo.userName ?  res.data.userInfo.userName : cardInfo.value.userName
 				cardInfo.value.headImg = res.data.userInfo.headImg
+				cardInfo.value.integral = res.data.userInfo.integral
 				// showHeadImg.value = BASE_URL + '/upload' + cardInfo.value.headImg
 				cardInfo.value.userPhone = res.data.userInfo.userPhone
 				cardInfo.value.id = res.data.userInfo.id
@@ -364,9 +366,18 @@
 			</view>
 			<!-- 积分商城 -->
 			<view class="advertisement-box" @click="navTo('/pages/pointsMall/index')">
-			<!-- <view class="advertisement-box" @click="upGrade"> -->
-				<image src="../../static/images/index/banner2.png" alt=""></image>
-				<image src="../../static/images/index/banner1.png" alt=""></image>
+				<view class="point-advert">
+					<view class="advert-image">
+						<image  class="image-icon3" src="../../static/images/index/advert-icon3.svg"></image>
+						<image class="image-icon1" src="../../static/images/index/advert-icon1.svg"></image>
+						<image  class="image-icon2" src="../../static/images/index/advert-icon2.svg"></image>
+						<image  class="image-icon4" src="../../static/images/index/advert-icon4.svg"></image>
+					</view>
+					<view class="advert-title">
+						<view class="advert-title1">积分商城</view>
+						<view class="advert-title2"><text>点击进入</text></view>
+					</view>
+				</view>
 			</view>
 			<view class="service-box">
 				<view class="service-title"><text>服务指南</text></view>
@@ -709,11 +720,81 @@
 				box-sizing: border-box;
 				display: flex;
 				justify-content: space-around;
-				image{
-					width:320rpx;
+				.point-advert{
+					width:640rpx;
 					height:136rpx;
 					border-radius:10rpx;
+					background:linear-gradient(140deg,#5c9dff 0%,#b5dcff 30%,#52aafc 70%,#b5dcff 90%,#5daffc 100%);
+					display: flex;
+					justify-content: space-around;
+					align-items: center;
+					box-shadow: 0 0 4rpx 2rpx #4978de;
+					.advert-title{
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						color: #fff;
+						font-size:46rpx;
+						font-weight:800;
+						text-shadow:4rpx 2rpx #5EA1FA;
+						.advert-title2{
+							margin-top:10rpx;
+							font-size:28rpx;
+							font-weight:500;
+							width:180rpx;
+							height:40rpx;
+							background: #5c9dff;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							border-radius:30rpx;
+							letter-spacing:2rpx;
+						}
+					}
+					.advert-image{
+						width:200rpx;
+						height:100%;
+						// background: #76bfa1;
+						position: relative;
+						.image-icon1{
+							position:absolute;
+							left: calc(50% - 65rpx);
+							top: calc(50% - 65rpx);
+							width:130rpx;
+							height:130rpx;
+							transform: rotate(20deg);
+						}
+						.image-icon2{
+							position:absolute;
+							left:60%;
+							top: calc(50% - 30rpx);
+							width:90rpx;
+							height:90rpx;
+							transform: rotate(-10deg);
+						}
+						.image-icon3{
+							position:absolute;
+							left: calc(50% - 100rpx);
+							top: 30%;
+							width:80rpx;
+							height:80rpx;
+							transform: rotate(-10deg);
+						}
+						.image-icon4{
+							position:absolute;
+							left:140%;
+							top: 60%;
+							width:50rpx;
+							height:50rpx;
+							transform: rotate(5deg);
+						}
+					}
 				}
+				// image{
+				// 	width:320rpx;
+				// 	height:136rpx;
+				// 	border-radius:10rpx;
+				// }
 			}
 			.service-box{
 				width: 100%;
diff --git a/pages/pointsMall/index.vue b/pages/pointsMall/index.vue
index b10ffdc..6bc541a 100644
--- a/pages/pointsMall/index.vue
+++ b/pages/pointsMall/index.vue
@@ -1,39 +1,69 @@
 <script setup>
 	import {ref,onMounted} from 'vue'
 	import headImg from '../../static/images/index/head.png'
-	import { goodsGetApi,goodsSearchTypeApi } from '../../api/index.js' 
+	import { goodsGetApi,goodsSearchTypeApi,integralConvertApi,getUserInfo } from '../../api/index.js' 
 	import { BASE_URL } from '../../config/baseUrl';
-	const baseUrl = ref(BASE_URL)
+	import { onShow } from '@dcloudio/uni-app'
 	
+	const baseUrl = ref(BASE_URL)
+	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
 	
 	const typeList = ref([
-		{value:'1',name:'全部分类'},
-		{value:'2',name:'零食'},
-		{value:'3',name:'电子设备'},
-		{value:'4',name:'洗护用品'},
-		{value:'5',name:'其他'},
-		{value:'5',name:'其他'},
-		{value:'5',name:'其他'},
-		{value:'5',name:'其他'},
+		// {value:'1',name:'全部分类',active:1},
+		// {value:'2',name:'零食',active:0},
+		// {value:'3',name:'电子设备',active:0},
+		// {value:'4',name:'洗护用品',active:0},
+		// {value:'5',name:'其他',active:0},
+		// {value:'5',name:'其他',active:0},
+		// {value:'5',name:'其他',active:0},
+		// {value:'5',name:'其他',active:0},
 	])
 	const goodsList = ref([
 		// {id:'1',imageUrl:'',name:'商品名称',price:'50.00',useIntegral:'1000',stock:102},
-		
 	])
 	
 	//查询商品类型
 	async function getGoodsTypeList(){
 		await goodsSearchTypeApi({limit:100,page:1}).then((res) =>{
 			typeList.value = res.data.list
-			typeList.value.unshift({id:'',name:'全部商品'})
+			typeList.value.unshift({id:'',name:'全部商品',active:1})
 		})
 	}
 	//查询商品列表
 	async function getGoodsList(categoryId){
 		await goodsGetApi(categoryId).then((res) =>{
 			goodsList.value = res.data
-			console.log('132')
+			console.log('获取商品列表')
 		})
+	}
+	//选中商品类型
+	async function changeType(typeId,active,e){
+		typeList.value.forEach((item,index) =>{
+			if(index == e){
+				item.active = 1
+			}else{
+				item.active = 0
+			}
+		})
+		await getGoodsList(typeId)
+	}
+	//积分兑换
+	async function integralConvert(goodsId,goodsIntegral){
+		if(goodsIntegral <= Number(userInfo.value.integral)){
+			await integralConvertApi({userId:userInfo.value.id,goodsId:goodsId}).then((res) =>{
+				if(res.code == 200){
+					uni.showToast({
+						title:'兑换成功!',
+						icon:'none'
+					})
+				}
+			})
+		}else{
+			uni.showToast({
+				title:'积分余额不足!',
+				icon:'none'
+			})
+		}
 	}
 	function navBack(){
 		uni.navigateBack()
@@ -46,9 +76,32 @@
 			})
 		}
 	}
+	//更新用户积分信息
+	async function updateUserInfo(){
+		await getUserInfo().then((res) =>{
+			if(res.code == 200){
+				userInfo.value = JSON.parse(uni.getStorageSync('userInfo'))
+				userInfo.value.integral = res.data.userInfo.integral
+				uni.setStorageSync('userInfo',JSON.stringify(userInfo.value))
+			}
+		})
+	}
 	onMounted(async() =>{
 		await getGoodsTypeList()
 		await getGoodsList('')
+		console.log('onMounted')
+	})
+	onShow(async() =>{
+		await getGoodsList('')
+		typeList.value.forEach((item,index) =>{
+			if(index == 0){
+				item.active = 1
+			}else{
+				item.active = 0
+			}
+		})
+		await updateUserInfo()
+		console.log('onShow')
 	})
 	
 </script>
@@ -66,17 +119,17 @@
 						<image src="../../static/images/pointMall/points.svg"></image>
 					</view>
 					<view class="info">
-						<text class="info-name">测试用户123123132</text>
+						<text class="info-name">{{userInfo.userName}}</text>
 						<view class="info-points">
 							<text class="text1">我的积分:</text>
-							<text class="text2">1000</text>
+							<text class="text2">{{userInfo.integral}}</text>
 							<view class="points-icon">
 								<image src="../../static/images/pointMall/points-icon.svg"></image>
 							</view>
 						</view>
 					</view>
 				</view>
-				<view class="header-right">
+				<view class="header-right" @click="navTo('/pages/pointsMall/pointsrule/index')">
 					积分规则
 				</view>
 			</view>
@@ -100,7 +153,7 @@
 			</view>
 			<view class="nav-box">
 				<view class="nav-item" @click="navTo('/pages/pointsMall/pointsGetRecord/index')">
-					<text>积分明细</text>
+					<text>积分获取明细</text>
 					<image src="../../static/images/pointMall/nav1.svg"></image>
 				</view>
 				<view class="nav-item" @click="navTo('/pages/pointsMall/pointsExchangeRecord/index')">
@@ -112,7 +165,7 @@
 		<view class="content">
 			<view class="type-box">
 				<scroll-view scroll-x="true">
-					<view v-for="(item,index) in typeList" :key="index" class="type-item" @click="getGoodsList(item.id)">
+					<view v-for="(item,index) in typeList" :key="index" class="type-item" :style="{color:item.active == 1 ? '#f09042' : '#919191'}"  @click="changeType(item.id,item.active,index)">
 						<text>{{item.name}}</text>
 					</view>
 				</scroll-view>
@@ -134,7 +187,7 @@
 							<text>{{item.useIntegral}}</text>
 							<image src="../../static/images/pointMall/advert/money1.svg"></image>
 						</view>
-						<view class="goods-item-points-right">
+						<view class="goods-item-points-right" @click="integralConvert(item.id,item.useIntegral)">
 							<text>兑换</text>
 						</view>
 					</view>
@@ -222,6 +275,7 @@
 						justify-content:space-evenly;
 						padding-top:10rpx;
 						box-sizing: border-box;
+						width:350rpx;
 						.info-name{
 							color: #58574e;
 						}
@@ -455,6 +509,7 @@
 				   box-sizing: border-box;
 				   border-radius: 20rpx;
 				   position: relative;
+					background:linear-gradient(#fff,#e8e8e8);
 				   .goods-item-img{
 					   width:80%;
 					   margin: 0 auto;
diff --git a/pages/pointsMall/pointsExchangeRecord/index.vue b/pages/pointsMall/pointsExchangeRecord/index.vue
index 15085f8..58ca621 100644
--- a/pages/pointsMall/pointsExchangeRecord/index.vue
+++ b/pages/pointsMall/pointsExchangeRecord/index.vue
@@ -3,20 +3,11 @@
 	import { pointsExchangeApi } from '../../../api/index.js'
 	
 	const pointExchangeList = ref([
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
-		{goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
+		// {goodsName:'纸巾',integralAmount:1232,receiveStatusName:'已领取',exchangeDate:'2024-11-13 14:46:40',receiveDate:'2024-11-13 14:46:40'},
 	])
 	async function searchPoints(){
 		await pointsExchangeApi({limit:10000,page:1}).then((res) =>{
-			// pointExchangeList.value = res.data.list
+			pointExchangeList.value = res.data.list
 		})
 	}
 	onMounted(async() =>{
@@ -35,10 +26,10 @@
 							<text class="item-methods">兑换商品:{{item.goodsName}}</text>
 							<view class="item-status">
 								<text>领取状态:</text>
-								<text>{{item.receiveStatusName}}</text>
+								<text>{{item.receiveStatusView}}</text>
 							</view>
 							<text class="item-time">兑换时间:{{item.exchangeDate}}</text>
-							<text class="item-time">领取时间:{{item.receiveDate}}</text>
+							<text v-if="item.receiveStatus == 1" class="item-time">领取时间:{{item.receiveDate}}</text>
 						</view>
 						<view class="item-right">
 							<text class="money">-{{item.integralAmount}}</text>
diff --git a/pages/pointsMall/pointsGetRecord/index.vue b/pages/pointsMall/pointsGetRecord/index.vue
index 4633099..c46ea2d 100644
--- a/pages/pointsMall/pointsGetRecord/index.vue
+++ b/pages/pointsMall/pointsGetRecord/index.vue
@@ -3,20 +3,11 @@
 	import { pointsSearchApi } from '../../../api/index.js'
 	
 	const pointList = ref([
-		{ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'消费',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
-		{ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'}
+		// {ruleName:'充值',integralAmount:1232,createTime:'2024-11-13 14:46:40'},
 	])
 	async function searchPoints(){
 		await pointsSearchApi({limit:10000,page:1}).then((res) =>{
-			// pointList.value = res.data.list
+			pointList.value = res.data.list
 		})
 	}
 	onMounted(async() =>{
@@ -36,7 +27,7 @@
 							<text>{{item.createTime}}</text>
 						</view>
 						<view class="item-right">
-							<text class="money">{{item.integralAmount}}</text>
+							<text class="money">+{{item.integralAmount}}</text>
 							<image src="../../../static/images/pointMall/advert/money1.svg"></image>
 						</view>
 					</view>
diff --git a/pages/pointsMall/pointsGoodsDetail/index.vue b/pages/pointsMall/pointsGoodsDetail/index.vue
index c165226..5199c4a 100644
--- a/pages/pointsMall/pointsGoodsDetail/index.vue
+++ b/pages/pointsMall/pointsGoodsDetail/index.vue
@@ -1,9 +1,10 @@
 <script setup>
 	import {ref,onMounted} from 'vue'
-	import { goodsGetByIdApi } from '../../../api/index.js' 
+	import { goodsGetByIdApi,integralConvertApi } from '../../../api/index.js' 
 	import { onLoad } from '@dcloudio/uni-app'
 	import { BASE_URL } from '../../../config/baseUrl.js';
 	
+	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
 	const baseUrl = ref(BASE_URL)
 	
 	const detailInfo = ref({})
@@ -12,6 +13,25 @@
 			detailInfo.value = res.data
 			console.log('detailInfo',detailInfo.value)
 		})
+	}
+	//积分兑换
+	async function integralConvert(){
+		if(detailInfo.value.useIntegral <= Number(userInfo.value.integral)){
+			await integralConvertApi({userId:userInfo.value.id,goodsId:detailInfo.value.id}).then(async(res) =>{
+				if(res.code == 200){
+					uni.showToast({
+						title:'兑换成功!',
+						icon:'none'
+					})
+					await getGoodsDetail(goodsId)
+				}
+			})
+		}else{
+			uni.showToast({
+				title:'积分余额不足!',
+				icon:'none'
+			})
+		}
 	}
 	let goodsId
 	onLoad(async(option) =>{
@@ -23,25 +43,36 @@
 	<view class="container">
 		<point-navbar title='商品详情'></point-navbar>
 		<view class="content">
-			<view class="image">
-				<image :src="baseUrl + '/upload'+ detailInfo.detailsUrl"></image>
+			<view class="image-box">
+				<image class="image" :src="baseUrl + '/upload'+ detailInfo.detailsUrl" mode="aspectFit"></image>
 			</view>
 			<view class="detail">
 				<view class="detail-info">
 					<view class="detail-info-text">
-						<view>【{{detailInfo.name}}】</view>
 						<view>
-							<rich-text :nodes='detailInfo.describe'></rich-text>
+							<text class="detail-info-text-title">【{{detailInfo.name}}】</text>
+							<text class="detail-info-text-decribe">商品描述性文字占位商品描述性文字占位商品描述性文字占位</text>
 						</view>
 					</view>
-					<text>价值{{detailInfo.price}}¥</text>
+					<view class="detail-info-price">
+						<text class="detail-info-price-text">价值:</text>
+						<text class="detail-info-price-num">{{detailInfo.price}}¥</text>
+					</view>
 				</view>
 				<view class="detail-exchange">
 					<view class="detail-exchange-points">
-						<!-- <image></image> -->
-						<text>1000</text>
+						<image class="detail-exchange-points-image" src="../../../static/images/pointMall/advert/money1.svg"></image>
+						<text class="detail-exchange-points-num">{{detailInfo.useIntegral}}</text>
 					</view>
-					<view class="detail-exchange-points">兑换</view>
+					<view class="detail-exchange-points-btn" @click="integralConvert"><text>兑&nbsp;&nbsp;换</text></view>
+				</view>
+				<view class="detail-stock">库存:{{detailInfo.stock}}</view>
+				<view class="detail-tips">
+					<view class="detail-tips-title"><text>温馨提示</text></view>
+					<view class="detail-tips-content">
+						<view class="detail-tips-content-text1">1、兑换后请凭兑换码到柜台领取商品。</view>
+						<view class="detail-tips-content-text2">2、兑换后的商品不可退换、积分不可退还。</view>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -56,9 +87,95 @@
    .content{
 	   width:100%;
 	   height:calc(100vh - 176rpx);
-	   background:linear-gradient(to bottom,#fef7da,#FFF);
+	   background:linear-gradient(to bottom,#fef7da,#f7f7f7);
 	   padding:50rpx 32rpx 100rpx;
-	   box-sizing: border-box;  
+	   box-sizing: border-box; 
+		.image-box{
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 100%;
+			height: 550rpx;
+			background:linear-gradient(to bottom,#FFF,#fef7da);
+			border-radius:20rpx;
+			// margin-bottom:30rpx;
+			.image{
+				   height:500rpx;
+			}
+		}
+		.detail{
+			padding:20rpx;
+			box-sizing: border-box;
+			width: 100%;
+			height: 500rpx;
+			background: #FFF;
+			border-radius:20rpx;
+			.detail-info{
+				width:100%;
+				color: #434139;
+				font-weight:500;
+				margin-bottom:10rpx;
+				.detail-info-text{
+					margin-bottom:10rpx;
+					.detail-info-text-decribe{
+						color: #545147;
+					}
+				}
+				.detail-info-price{
+					color:#d3481e;
+				}
+			}
+			.detail-exchange{
+				display: flex;
+				justify-content: space-between;
+				margin-bottom:10rpx;
+				.detail-exchange-points{
+					display: flex;
+					align-items: center;
+				}
+				.detail-exchange-points-image{
+					width: 50rpx;
+					height: 50rpx;
+				}
+				.detail-exchange-points-num{
+					color: #e6980f;
+					font-weight:600;
+					font-size:46rpx;
+				}
+				.detail-exchange-points-btn{
+					width:180rpx;
+					height:60rpx;
+					background:linear-gradient(to right,#ff9249,#ffb170);
+					border-radius:30rpx;
+					color: #fff;
+					font-size:32rpx;
+					font-weight:500;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+				}
+			}
+			.detail-stock{
+				color: #919191;
+				font-size:24rpx;
+				margin-bottom:50rpx;
+			}
+			.detail-tips{
+				.detail-tips-title{
+					color: #434139;
+					margin-bottom:30rpx;
+				}
+				.detail-tips-content{
+					display: flex;
+					flex-direction: column;
+					color: #74716c;
+					font-size:24rpx;
+					.detail-tips-content-text1{
+						margin-bottom:10rpx;
+					}
+				}
+			}
+		}
 	}
 }
 </style>
diff --git a/pages/pointsMall/pointsrule/index.vue b/pages/pointsMall/pointsrule/index.vue
new file mode 100644
index 0000000..c127f09
--- /dev/null
+++ b/pages/pointsMall/pointsrule/index.vue
@@ -0,0 +1,54 @@
+<script setup>
+	import {ref,onMounted} from 'vue'
+	import { getRuleDetailApi } from '../../../api/index.js' 
+	
+	const rulesContent = ref('')
+	async function setPointsRule(){
+		await getRuleDetailApi({limit:1,page:1}).then((res) =>{
+			if(res.code == 200){
+				rulesContent.value = res.data.list[0].describe
+			}
+		})
+	}
+	onMounted( async() =>{
+		await setPointsRule()
+	})
+</script>
+<template>
+	<view class="container">
+		<point-navbar title='积分规则'></point-navbar>
+		<view class="content">
+			<view class="rules-title">-积分规则-</view>
+			<view>
+				<rich-text :nodes="rulesContent"></rich-text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<style lang="scss" scoped>
+	
+.container{
+	width:100%;
+	height:100vh;
+.content{
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+   width:100%;
+   height:calc(100vh - 176rpx);
+   background:linear-gradient(to bottom,#fef7da 0%,#FFF 5%,#FFF 100%);
+   padding:50rpx 60rpx 100rpx;
+   box-sizing: border-box;
+   color: #636363;
+   line-height:50rpx;
+   font-size:28rpx;
+   .rules-title{
+		margin-bottom: 30rpx;
+		color: #565656;
+		font-size:32rpx;
+   }
+}
+}
+	       
+</style>
diff --git a/static/images/index/advert-icon1.svg b/static/images/index/advert-icon1.svg
new file mode 100644
index 0000000..a391827
--- /dev/null
+++ b/static/images/index/advert-icon1.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732092013699" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8108" width="70" height="70" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M759.61856 319.7184c33.90976-36.15744 57.27744-84.60288 57.27744-127.13472 0-80.23552-83.18976-108.95872-163.44576-108.95872-63.0784 0-116.7616 40.23808-136.82176 96.44544-19.13344-45.96224-64.4608-78.2848-117.37088-78.2848-70.17984 0-156.64128 63.44192-127.09888 127.11936 15.85664 34.19136 30.57664 67.05664 50.83136 90.81344h-232.3968l12.23168 199.72096h369.06496V333.21984a127.59552 127.59552 0 0 0 44.71808-55.54688 145.23904 145.23904 0 0 0 27.90912 47.28832v194.47808h363.4432l17.87904-199.72096h-166.2208zM399.2576 311.53152c-45.60896 0-64.22528-36.98688-82.63168-82.62656-17.01888-42.32704 37.02272-82.63168 82.63168-82.63168 45.63968 0 82.62656 37.00736 82.62656 82.63168 0 45.63968-36.98688 82.62656-82.62656 82.62656z m274.3808 8.18688h-45.82912c-39.64928-11.1872-68.75648-47.55968-68.75648-90.81344 0-52.15232 42.27072-94.42304 94.39744-94.42304 52.16768 0 112.59392 5.9392 112.59392 58.10688 0 45.50656-46.01344 111.15008-92.40576 127.1296zM163.22048 593.92v343.19872h308.66944v-345.0112H163.09248c0.06144 0.6144 0.128 1.2288 0.128 1.81248z m381.29664 343.19872h308.69504V594.4832c0-0.768 0.05632-1.56672 0.1536-2.37568h-308.84864v345.0112z" fill="#9982FB" p-id="8109"></path><path d="M920.84224 374.19008l5.00224-55.90528s-171.41248 53.30432-287.5904 199.74144h287.24736c-1.76128-15.77472-9.46176-90.42944-4.6592-143.83616z m-377.2928 346.112c1.03424 62.69952 0.96256 215.26016 0.96256 215.26016l308.69504 0.14336v-342.64064c0-0.768 0.07168-1.56672 0.20992-2.37568H590.2848a467.08224 467.08224 0 0 0-46.73536 129.6128z" fill="#FF94E5" p-id="8110"></path><path d="M520.14592 318.97088l1.60256-1.05472h-0.24064l-1.36192 1.05472z m133.7856-255.32416c-61.41952 0-113.89952 48.78848-135.14752 107.66848-18.6368-52.22912-67.62496-89.50784-125.15328-89.50784-73.5488 0-164.18816 67.98336-133.19168 136.24832 17.1776 37.85728 33.08544 74.24 55.46496 99.86048H91.06944l12.30336 200.92928 114.7904-1.27488 254.19264-167.168V333.0048c20.04992-13.21472 34.41664-31.91296 43.36128-54.03136 5.01248 16.40448 12.96896 30.91968 24.69888 41.17504 34.05312-1.7152 65.86368-6.38464 67.92704-8.2688-6.90176-6.36416-7.9616-8.10496-15.50848-20.352s-15.14496-39.5008-15.14496-64.43008c0-52.16768 24.11008-76.27776 76.24704-76.27776 52.16256 0 107.4688-7.08096 107.4688 45.08672 0 13.29664 0.3584 23.05024-5.77536 39.47008 0 0 22.85568 2.94912 56.3968-7.38816 3.47648-12.59008 4.39296-25.18016 5.3504-37.20192 8.46848-108.0576-83.2-127.13984-163.44576-127.13984zM401.18272 299.55072c-39.18336 0-55.17824-32.45568-70.95808-72.45312-14.64832-37.13024 31.77472-72.448 70.95808-72.448 39.22432 0 70.99392 32.44544 70.99392 72.448 0.00512 39.99744-31.7696 72.45312-70.99392 72.45312z" fill="#72DAFC" p-id="8111"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/advert-icon2.svg b/static/images/index/advert-icon2.svg
new file mode 100644
index 0000000..8d826cd
--- /dev/null
+++ b/static/images/index/advert-icon2.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732092702435" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15746" width="50" height="50" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M138.592 96m79.216 0l623.568 0q79.216 0 79.216 79.216l0 675.568q0 79.216-79.216 79.216l-623.568 0q-79.216 0-79.216-79.216l0-675.568q0-79.216 79.216-79.216Z" fill="#407DFF" p-id="15747"></path><path d="M463.58 96h-46.716v834h46.716z" fill="#3171F9" p-id="15748"></path><path d="M138.592 438.862v46.716h782v-46.716z" fill="#3171F9" p-id="15749"></path><path d="M329.522 96h87.34v834h-87.34z" fill="#82AAFF" p-id="15750"></path><path d="M138.592 438.862v-87.34h782v87.34z" fill="#82AAFF" p-id="15751"></path><path d="M361.36 482.4a13.202 13.202 0 0 1 25.628 6.358c-27.156 109.476-84.7 166.15-171.332 166.15-72.866 0-104.82 27.39-102.318 85.244a13.202 13.202 0 0 1-26.38 1.14c-3.174-73.426 40.952-112.012 126.106-112.778l2.592-0.01c73.086 0 121.222-47.412 145.704-146.104z" fill="#FDE5FF" p-id="15752"></path><path d="M567.168 324.75c0 50.52-57.988 112.162-83.394 139.876-28.728 31.34-58.834 54.74-90.32 70.204l-3.164 1.528-0.34-0.162c-31.686-15.108-61.98-38.216-90.884-69.324l-10.496-11.44c-27.924-30.66-74.824-85.09-74.824-130.522 0-67.588 53.904-71.666 72.766-67.588 49.29 10.66 71.932 53.764 100.81 121.766l3.1 7.338 3.142-7.434c28.892-68.04 51.534-111.168 100.84-121.83l1.172-0.234c19.824-3.656 71.592 1.586 71.592 67.82z" fill="#F9E6FF" p-id="15753"></path><path d="M386.658 494.844a13.202 13.202 0 0 1 14.884 11.272c7.956 57.58-0.59 104.714-26.122 140.81-7.814 11.046-19.06 20.014-34.07 28.078l-1.604 0.852c-10.204 5.358-21.374 10.04-38.088 16.264l-23.648 8.664a892.128 892.128 0 0 0-8.99 3.368l-2.902 1.114c-46.956 18.202-72.87 35.852-87.296 64.518a13.202 13.202 0 0 1-23.586-11.87c10.148-20.17 25.46-36.382 45.746-49.9 15.248-10.16 32.262-18.322 55.154-27.2l3.478-1.336c3.2-1.22 6.448-2.434 10.252-3.834l18.612-6.802c38.14-14.028 55.686-23.454 65.384-37.164 21.29-30.1 28.624-70.55 21.524-121.95a13.202 13.202 0 0 1 11.272-14.884z" fill="#FDE5FF" p-id="15754"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/advert-icon3.svg b/static/images/index/advert-icon3.svg
new file mode 100644
index 0000000..7f22191
--- /dev/null
+++ b/static/images/index/advert-icon3.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732090933740" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11103" width="40" height="40" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M944.639639 146.28994l49.066626 731.391391A146.630989 146.630989 0 0 1 846.762388 1023.999431H161.13807A146.5741 146.5741 0 0 1 14.222637 877.681331L63.232374 146.28994A146.5741 146.5741 0 0 1 210.147807 0.000284h587.633288a146.545656 146.545656 0 0 1 146.8301 146.289656zM207.388698 217.656992a299.263751 299.263751 0 1 0 598.555946 0 40.817744 40.817744 0 0 0-81.635488 0 217.685152 217.685152 0 1 1-435.313415 0 40.817744 40.817744 0 0 0-81.607043 0z" fill="#579AFF" p-id="11104"></path></svg>
\ No newline at end of file
diff --git a/static/images/index/advert-icon4.svg b/static/images/index/advert-icon4.svg
new file mode 100644
index 0000000..6fe8bf2
--- /dev/null
+++ b/static/images/index/advert-icon4.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732090791700" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5163" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150"><path d="M722.944 392.704l40.448 0 0-163.84c0-8.192-1.024-15.872-3.584-23.552-13.824-43.52-62.464-71.68-102.4-87.552-58.88-24.064-128-35.328-190.976-38.4-11.776-0.512-23.552-1.024-35.328-1.024s-23.04 0.512-34.816 1.024c-63.488 3.072-132.608 14.336-191.488 38.4-39.936 16.384-89.088 44.544-102.912 88.064-2.56 7.68-3.584 15.872-3.584 23.552l0 474.624c0 8.192 1.024 16.384 3.584 24.064 13.824 43.52 62.976 71.68 102.912 88.064 58.88 24.064 128 35.328 191.488 37.888 8.192 0.512 15.872 0.512 24.064 0.512L420.352 814.592c-66.048-1.024-139.264-10.24-200.192-35.328-28.672-11.776-81.92-39.424-81.92-75.776l0-162.304 16.384 10.752c64.512 43.008 164.352 60.416 240.64 64 8.192 0.512 16.384 0.512 25.088 1.024l0-39.424c-66.048-1.024-139.264-10.24-200.192-35.328-28.672-11.776-81.92-39.424-81.92-75.776l0-161.792 16.384 10.752c64.512 42.496 164.352 59.904 240.64 64 11.776 0.512 23.552 1.024 35.328 1.024 12.288 0 24.576-0.512 36.352-1.024 76.288-3.584 175.104-20.992 239.616-64l16.384-10.752L722.944 392.704 722.944 392.704zM722.944 228.864c0 36.352-53.248 64-81.92 75.776-64 26.112-141.312 35.328-210.432 35.328s-146.432-9.216-210.432-35.328c-28.672-11.776-81.92-39.424-81.92-75.776 0-36.352 53.248-64 81.92-75.776 64-26.112 141.312-35.328 210.432-35.328s146.432 9.216 210.432 35.328C670.208 164.864 722.944 192.512 722.944 228.864L722.944 228.864zM926.208 843.264l0-306.176c0-31.232-28.16-55.296-53.248-69.12-48.64-26.624-112.64-34.304-167.424-34.304s-119.296 7.68-167.424 34.304c-25.6 13.824-53.248 37.888-53.248 69.12l0 304.64c0 31.232 28.16 55.296 53.248 69.12 48.64 26.624 113.152 34.304 167.424 34.304s118.272-7.68 166.912-33.792C897.024 898.048 925.184 873.984 926.208 843.264L926.208 843.264zM705.024 472.576c43.008 0 91.136 5.632 131.072 21.504 15.36 6.144 49.664 22.528 49.664 42.496s-33.792 36.352-49.664 42.496c-40.448 16.384-88.064 21.504-131.072 21.504s-91.136-5.632-131.072-21.504c-15.36-6.144-49.664-22.528-49.664-42.496s33.792-36.352 49.664-42.496C613.888 478.208 662.016 472.576 705.024 472.576L705.024 472.576zM705.024 906.24c-43.008 0-91.136-5.632-131.072-21.504-15.36-6.144-49.664-22.528-49.664-42.496l0-90.112 15.36 8.192c48.128 25.6 111.616 33.28 165.376 33.28s117.248-7.68 165.376-33.28l15.36-8.192 0 90.112c0 19.968-33.792 36.352-49.664 42.496C796.16 900.608 747.52 906.24 705.024 906.24L705.024 906.24zM705.024 753.664c-43.008 0-91.136-5.632-131.072-21.504-15.36-6.144-49.664-22.528-49.664-42.496L524.288 599.552l15.36 8.192c48.128 25.6 111.104 33.28 165.376 33.28 53.76 0 117.248-7.68 165.376-33.28l15.36-8.192 0 90.112c0 19.968-33.792 36.352-49.664 42.496C796.16 748.032 747.52 753.664 705.024 753.664L705.024 753.664z" fill="#3385f2" p-id="5164"></path><path d="M722.944 228.864c0 36.352-53.248 64-81.92 75.776-64 26.112-141.312 35.328-210.432 35.328s-146.432-9.216-210.432-35.328c-28.672-11.776-81.92-39.424-81.92-75.776 0-36.352 53.248-64 81.92-75.776 64-26.112 141.312-35.328 210.432-35.328s146.432 9.216 210.432 35.328C670.208 164.864 722.944 192.512 722.944 228.864L722.944 228.864z" fill="#3385f2" p-id="5165"></path><path d="M705.024 472.576c43.008 0 91.136 5.632 131.072 21.504 15.36 6.144 49.664 22.528 49.664 42.496s-33.792 36.352-49.664 42.496c-40.448 16.384-88.064 21.504-131.072 21.504s-91.136-5.632-131.072-21.504c-15.36-6.144-49.664-22.528-49.664-42.496s33.792-36.352 49.664-42.496C613.888 478.208 662.016 472.576 705.024 472.576L705.024 472.576z" fill="#3385f2" p-id="5166"></path></svg>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js
index a6dc771..7bb6e66 100644
--- a/unpackage/dist/dev/mp-weixin/api/index.js
+++ b/unpackage/dist/dev/mp-weixin/api/index.js
@@ -96,6 +96,12 @@
 function goodsSearchTypeApi(data) {
   return util_request.request("/shopGoodsCategory/search", data, "POST");
 }
+function integralConvertApi(data) {
+  return util_request.request("/userIntegralConvert/create", data, "POST");
+}
+function getRuleDetailApi(data) {
+  return util_request.request("/userIntegralRuleDetail/search", data, "POST");
+}
 exports.askShareApi = askShareApi;
 exports.askShareListApi = askShareListApi;
 exports.balanceChangeApi = balanceChangeApi;
@@ -109,12 +115,14 @@
 exports.getAddressApi = getAddressApi;
 exports.getPriceBySnApi = getPriceBySnApi;
 exports.getRegionApi = getRegionApi;
+exports.getRuleDetailApi = getRuleDetailApi;
 exports.getUserInfo = getUserInfo;
 exports.getVipInfoApi = getVipInfoApi;
 exports.goodsGetApi = goodsGetApi;
 exports.goodsGetByIdApi = goodsGetByIdApi;
 exports.goodsSearchTypeApi = goodsSearchTypeApi;
 exports.infoBreakdownApi = infoBreakdownApi;
+exports.integralConvertApi = integralConvertApi;
 exports.paymentChangeApi = paymentChangeApi;
 exports.pointsExchangeApi = pointsExchangeApi;
 exports.pointsSearchApi = pointsSearchApi;
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
index 4c316ee..c69b0b3 100644
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ b/unpackage/dist/dev/mp-weixin/app.js
@@ -31,6 +31,7 @@
   "./pages/pointsMall/pointsGetRecord/index.js";
   "./pages/pointsMall/pointsExchangeRecord/index.js";
   "./pages/pointsMall/pointsGoodsDetail/index.js";
+  "./pages/pointsMall/pointsrule/index.js";
 }
 const _sfc_main = {
   __name: "App",
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
index 1850230..36c3e27 100644
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ b/unpackage/dist/dev/mp-weixin/app.json
@@ -27,7 +27,8 @@
     "pages/wxScanWater/index",
     "pages/pointsMall/pointsGetRecord/index",
     "pages/pointsMall/pointsExchangeRecord/index",
-    "pages/pointsMall/pointsGoodsDetail/index"
+    "pages/pointsMall/pointsGoodsDetail/index",
+    "pages/pointsMall/pointsrule/index"
   ],
   "window": {
     "navigationStyle": "custom"
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index 7f6403f..c735fa0 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -7,11 +7,13 @@
 const _imports_5$1 = "/static/images/index/home21.png";
 const _imports_1$6 = "/static/images/index/icon22.png";
 const _imports_7 = "/static/images/index/icon23.png";
-const _imports_8$1 = "/static/images/index/banner2.png";
-const _imports_9$1 = "/static/images/index/banner1.png";
-const _imports_10 = "/static/images/index/icon51.png";
-const _imports_11 = "/static/images/index/more-info5.png";
-const _imports_12 = "/static/images/index/notice5.png";
+const _imports_8$1 = "/static/images/index/advert-icon3.svg";
+const _imports_9$1 = "/static/images/index/advert-icon1.svg";
+const _imports_10 = "/static/images/index/advert-icon2.svg";
+const _imports_11 = "/static/images/index/advert-icon4.svg";
+const _imports_12 = "/static/images/index/icon51.png";
+const _imports_13 = "/static/images/index/more-info5.png";
+const _imports_14 = "/static/images/index/notice5.png";
 const _imports_0$a = "/static/images/addCard/code.png";
 const _imports_1$5 = "/static/images/other/more.png";
 const _imports_0$9 = "/static/images/other/expand.png";
@@ -60,6 +62,8 @@
 exports._imports_10 = _imports_10;
 exports._imports_11 = _imports_11;
 exports._imports_12 = _imports_12;
+exports._imports_13 = _imports_13;
+exports._imports_14 = _imports_14;
 exports._imports_2 = _imports_2;
 exports._imports_3 = _imports_3$1;
 exports._imports_3$1 = _imports_3;
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index 380e102..37418e9 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7837,6 +7837,12 @@
     style: {
       navigationStyle: "custom"
     }
+  },
+  {
+    path: "pages/pointsMall/pointsrule/index",
+    style: {
+      navigationStyle: "custom"
+    }
   }
 ];
 const globalStyle = {
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index 656a757..dd3a6a9 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -17,6 +17,7 @@
       userName: "微信用户",
       headImg: "",
       userPhone: "",
+      integral: "",
       waterCardNumber: "",
       balance: "",
       count: "",
@@ -55,6 +56,7 @@
         if (res.code == 200) {
           cardInfo.value.userName = res.data.userInfo.userName ? res.data.userInfo.userName : cardInfo.value.userName;
           cardInfo.value.headImg = res.data.userInfo.headImg;
+          cardInfo.value.integral = res.data.userInfo.integral;
           cardInfo.value.userPhone = res.data.userInfo.userPhone;
           cardInfo.value.id = res.data.userInfo.id;
           await getVipInfo();
@@ -339,13 +341,15 @@
         }),
         J: common_assets._imports_8,
         K: common_assets._imports_9,
-        L: common_vendor.o(($event) => navTo("/pages/pointsMall/index")),
-        M: common_assets._imports_10,
-        N: common_assets._imports_11,
-        O: common_vendor.o(($event) => navTo("/pages/station/index")),
-        P: common_assets._imports_12,
-        Q: common_assets._imports_11,
-        R: common_vendor.o(upGrade)
+        L: common_assets._imports_10,
+        M: common_assets._imports_11,
+        N: common_vendor.o(($event) => navTo("/pages/pointsMall/index")),
+        O: common_assets._imports_12,
+        P: common_assets._imports_13,
+        Q: common_vendor.o(($event) => navTo("/pages/station/index")),
+        R: common_assets._imports_14,
+        S: common_assets._imports_13,
+        T: common_vendor.o(upGrade)
       });
     };
   }
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
index 5356f60..f953655 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
@@ -1 +1 @@
-<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + B}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="share-card data-v-1cf27b2a">共享卡号:{{j}}</view><view wx:if="{{k}}" class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image wx:if="{{l}}" class="data-v-1cf27b2a" src="{{m}}" alt=""></image><text wx:if="{{n}}" class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定 </text><text wx:if="{{p}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{q}}" class="data-v-1cf27b2a">ID:{{r}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{s}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{t}}" class="data-v-1cf27b2a">{{v}}元</text><view wx:if="{{w}}" class="user-add-card data-v-1cf27b2a" bindtap="{{y}}"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view wx:if="{{z}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{A}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{F}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{H}}"><image class="data-v-1cf27b2a" src="{{G}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{I}}" wx:for-item="item" wx:key="e"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.d}}"><view class="box2-item-img data-v-1cf27b2a" style="{{'background:' + item.b}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.c}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{L}}"><image class="data-v-1cf27b2a" src="{{J}}" alt=""></image><image class="data-v-1cf27b2a" src="{{K}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{O}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{M}}" alt=""></image><text class="data-v-1cf27b2a">附近站点</text></view><view class="service-info data-v-1cf27b2a">服务中心正在营业中……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{N}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{R}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{P}}" alt=""></image><text class="data-v-1cf27b2a">公示公告</text></view><view class="service-info data-v-1cf27b2a">停水公告的部分摘要的内容展示……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{Q}}" alt=""></image></view></view></view></view></view></view>
\ No newline at end of file
+<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + B}}"><view class="user-info data-v-1cf27b2a"><image wx:if="{{a}}" class="user-img data-v-1cf27b2a" src="{{b}}" alt=""></image><image wx:else class="user-img data-v-1cf27b2a" src="{{c}}" alt=""></image><text class="data-v-1cf27b2a" bindtap="{{e}}">{{d}}</text><image bindtap="{{f}}" class="user-more data-v-1cf27b2a" src="{{g}}"></image></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{h}}" alt=""></image><view wx:if="{{i}}" class="share-card data-v-1cf27b2a">共享卡号:{{j}}</view><view wx:if="{{k}}" class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image wx:if="{{l}}" class="data-v-1cf27b2a" src="{{m}}" alt=""></image><text wx:if="{{n}}" class="data-v-1cf27b2a">会员卡 </text><text wx:if="{{o}}" class="data-v-1cf27b2a">未绑定 </text><text wx:if="{{p}}" class="lossed data-v-1cf27b2a"> [已挂失]</text></view><view wx:if="{{q}}" class="data-v-1cf27b2a">ID:{{r}}</view></view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text wx:if="{{s}}" class="data-v-1cf27b2a">金额卡</text><text wx:if="{{t}}" class="data-v-1cf27b2a">{{v}}元</text><view wx:if="{{w}}" class="user-add-card data-v-1cf27b2a" bindtap="{{y}}"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view wx:if="{{z}}" class="card-right-bottom data-v-1cf27b2a" bindtap="{{A}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{D}}"><image class="data-v-1cf27b2a" src="{{C}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{F}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{E}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{H}}"><image class="data-v-1cf27b2a" src="{{G}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{I}}" wx:for-item="item" wx:key="e"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.d}}"><view class="box2-item-img data-v-1cf27b2a" style="{{'background:' + item.b}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image></view><view class="box2-item-text data-v-1cf27b2a">{{item.c}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a" bindtap="{{N}}"><view class="point-advert data-v-1cf27b2a"><view class="advert-image data-v-1cf27b2a"><image class="image-icon3 data-v-1cf27b2a" src="{{J}}"></image><image class="image-icon1 data-v-1cf27b2a" src="{{K}}"></image><image class="image-icon2 data-v-1cf27b2a" src="{{L}}"></image><image class="image-icon4 data-v-1cf27b2a" src="{{M}}"></image></view><view class="advert-title data-v-1cf27b2a"><view class="advert-title1 data-v-1cf27b2a">积分商城</view><view class="advert-title2 data-v-1cf27b2a"><text class="data-v-1cf27b2a">点击进入</text></view></view></view></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{Q}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{O}}" alt=""></image><text class="data-v-1cf27b2a">附近站点</text></view><view class="service-info data-v-1cf27b2a">服务中心正在营业中……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{P}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a" bindtap="{{T}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{R}}" alt=""></image><text class="data-v-1cf27b2a">公示公告</text></view><view class="service-info data-v-1cf27b2a">停水公告的部分摘要的内容展示……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{S}}" alt=""></image></view></view></view></view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
index 5ddab30..cf8a3ff 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -298,10 +298,74 @@
   display: flex;
   justify-content: space-around;
 }
-.container .content .advertisement-box image.data-v-1cf27b2a {
-  width: 320rpx;
+.container .content .advertisement-box .point-advert.data-v-1cf27b2a {
+  width: 640rpx;
   height: 136rpx;
   border-radius: 10rpx;
+  background: linear-gradient(140deg, #5c9dff 0%, #b5dcff 30%, #52aafc 70%, #b5dcff 90%, #5daffc 100%);
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  box-shadow: 0 0 4rpx 2rpx #4978de;
+}
+.container .content .advertisement-box .point-advert .advert-title.data-v-1cf27b2a {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  color: #fff;
+  font-size: 46rpx;
+  font-weight: 800;
+  text-shadow: 4rpx 2rpx #5EA1FA;
+}
+.container .content .advertisement-box .point-advert .advert-title .advert-title2.data-v-1cf27b2a {
+  margin-top: 10rpx;
+  font-size: 28rpx;
+  font-weight: 500;
+  width: 180rpx;
+  height: 40rpx;
+  background: #5c9dff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  border-radius: 30rpx;
+  letter-spacing: 2rpx;
+}
+.container .content .advertisement-box .point-advert .advert-image.data-v-1cf27b2a {
+  width: 200rpx;
+  height: 100%;
+  position: relative;
+}
+.container .content .advertisement-box .point-advert .advert-image .image-icon1.data-v-1cf27b2a {
+  position: absolute;
+  left: calc(50% - 65rpx);
+  top: calc(50% - 65rpx);
+  width: 130rpx;
+  height: 130rpx;
+  transform: rotate(20deg);
+}
+.container .content .advertisement-box .point-advert .advert-image .image-icon2.data-v-1cf27b2a {
+  position: absolute;
+  left: 60%;
+  top: calc(50% - 30rpx);
+  width: 90rpx;
+  height: 90rpx;
+  transform: rotate(-10deg);
+}
+.container .content .advertisement-box .point-advert .advert-image .image-icon3.data-v-1cf27b2a {
+  position: absolute;
+  left: calc(50% - 100rpx);
+  top: 30%;
+  width: 80rpx;
+  height: 80rpx;
+  transform: rotate(-10deg);
+}
+.container .content .advertisement-box .point-advert .advert-image .image-icon4.data-v-1cf27b2a {
+  position: absolute;
+  left: 140%;
+  top: 60%;
+  width: 50rpx;
+  height: 50rpx;
+  transform: rotate(5deg);
 }
 .container .content .service-box.data-v-1cf27b2a {
   width: 100%;

--
Gitblit v1.9.3