From 6d350a0ff5078ad9a5556695e598217715ac2d59 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 11 二月 2026 09:57:14 +0800
Subject: [PATCH] 经销商管理

---
 mini-program/pagesA/pages/shop_points/shop_points.vue       |  308 ++++++++++++++++++++++++++++++++++++++++++++
 mini-program/pagesA/pages/rich-text-page/rich-text-page.vue |   73 ++++++++++
 2 files changed, 381 insertions(+), 0 deletions(-)

diff --git a/mini-program/pagesA/pages/rich-text-page/rich-text-page.vue b/mini-program/pagesA/pages/rich-text-page/rich-text-page.vue
new file mode 100644
index 0000000..6f45dfb
--- /dev/null
+++ b/mini-program/pagesA/pages/rich-text-page/rich-text-page.vue
@@ -0,0 +1,73 @@
+<template>
+	<view class="u-content">
+	    <u-parse :content="content"></u-parse>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				flag:1,
+				title:'',
+				content: ''
+			};
+		},
+		onLoad(options) {
+			console.log(options)
+			var flag = options.flag
+			this.flag = flag
+			this.content =''
+			switch(flag){
+				case '1':
+					this.title = '鏈嶅姟浠嬬粛'
+					break;
+				case '2':
+					this.title = '鏀惰垂鏍囧噯'
+					break;
+				case '3':
+					this.title = '鍏充簬鎴戜滑'
+					break;
+				case '4':
+					this.title = '鐢ㄦ埛鍗忚'
+					break;
+				case '5':
+					this.title = '闅愮鍗忚鏀跨瓥'
+					break; 
+				default:
+					this.flag= 3
+					this.title = '鍏充簬鎴戜滑'
+					break; 
+			}
+			uni.setNavigationBarTitle({
+				title:this.title
+			})
+			this.getContnet()
+		},
+		methods:{
+			getContnet() {
+				var that = this;
+				this.$u.api.getPlatformAboutUs({}).then(res =>{ 
+					if (res&&res.code ===200) { 
+						if(this.flag == 1){
+							that.content = res.data.serverIntroduce||''
+						}else if(this.flag == 2){
+							that.content = res.data.feeStandards||''
+						}  else if(this.flag == 4){
+							that.content = res.data.userAgreement||''
+						} else if(this.flag == 5){
+							that.content = res.data.privacyAgreement||''
+						} else{
+							that.content = res.data.aboutUs||''
+						}
+					} 
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.u-content {
+		padding: 30rpx;
+	}
+</style>
diff --git a/mini-program/pagesA/pages/shop_points/shop_points.vue b/mini-program/pagesA/pages/shop_points/shop_points.vue
new file mode 100644
index 0000000..866f3f5
--- /dev/null
+++ b/mini-program/pagesA/pages/shop_points/shop_points.vue
@@ -0,0 +1,308 @@
+<template>
+	<view class="points">
+		
+		<view class="info-rule">绉垎瑙勫垯</view>
+		<view class="head" :style="{ backgroundImage: 'url(' + backImage + ')', height: 'calc(' + (navHeight + statusbarHeight + 'px + 376rpx)') }">
+			<view :style="{ width: '100%', height: navHeight + statusbarHeight + 'px' }"></view>
+			<view class="head-bar" :style="{ height: navHeight + statusbarHeight + 'px' }">
+				<view :style="{ width: '100%', height: statusbarHeight + 'px' }"></view>
+				<view class="head-bar-nav" :style="{ height: navHeight + 'px' }" @click="openLoacing">
+					<image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix"></image>
+					<text>鎴戠殑绉垎</text>
+					<image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix" style="opacity: 0;"></image>
+				</view>
+			</view>
+			<view class="info">
+				<view class="info-a">褰撳墠绉垎</view>
+				<view class="info-b">{{countData.surplusIntegral || 0}}</view>
+				<view class="info-c">
+					<image src="/static/icon/ic_tixing@2x.png" mode="widthFix"></image>
+					<text>{{countData.expiredIntegral || 0}}绉垎鍗冲皢杩囨湡</text>
+				</view>
+			</view>
+			<view class="list">
+				<view class="list-title">
+					<view class="list-title-name">绉垎鏄庣粏</view>
+					<view class="list-title-cate">
+						<view  :class="'list-title-cate-row '+(active ==0?'active':'')" @click="changeActive(0)"  >鍏ㄩ儴</view>
+						<view  :class="'list-title-cate-row '+(active ==1?'active':'')" @click="changeActive(1)">鑾峰緱</view>
+						<view  :class="'list-title-cate-row '+(active ==2?'active':'')" @click="changeActive(2)">鎵i櫎</view>
+					</view>
+				</view>
+				<view class="list-item">
+					<view class="list-item-left">
+						<text>璐拱鍟嗗搧锛岃幏寰�100绉垎</text>
+						<text>2025-11-21 09:00:00</text>
+					</view>
+					<view class="list-item-num">+100</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState } from 'vuex'
+	export default {
+		computed: {
+			...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken'])
+		},
+		data() {
+			return {
+				currentPage:1,
+				total:0,
+				shop:{},
+				active:0,
+				hasNext:true,
+				dataList:[],
+				countData:{},
+				backImage: require('@/static/images/jifen_bg@2x.png')
+			};
+		},
+		onReachBottom(){
+			this.getDataList( );
+		},
+		onShow() {
+			 this.shop  ={}
+			 this.checkShopLogin()
+			 this.active=0
+			 this.shop = this.shopInfo || {}
+			 this.getCountData()
+			 this.currentPage = 0
+			 this.getDataList()
+		},
+		methods:{
+			changeActive(index){
+				this.getCountData(index)
+			},
+			showRule(){
+				 console.log("==================================",this.showPhone)
+			},
+			async  getCountData(){
+					var that =this 
+					let res = await that.$u.api.getIntegralData({  userType: 1, tokenType:1  })
+					if (res.code === 200) {  
+						this.countData = res.data  
+					} 
+			},
+			async  getDataList(){
+					if(this.loading || !this.hasNext){
+						return
+					}
+					this.loading=true
+					this.currentPage =   this.currentPage+1
+					if(this.currentPage == 1){
+						this.hasNext =true
+						this.dataList=[]
+					}
+					var that =this 
+					let res = await that.$u.api.shopOrderPage({
+							capacity:10,
+							model: {
+								receiveType: 1, 
+								status: 1
+							},
+							page:this.currentPage
+						});
+						console.log(res)
+					if (res.code === 200 ) { 
+						if ( res.data && res.data.page ===this.currentPage) { 
+							res.data.records = res.data.records||[]
+							 that.dataList.push(...res.data.records)
+							 that.total=res.data.total
+							 if( this.currentPage >= res.data.pageCount||0){
+								 that.hasNext=false
+							 }else{
+								 that.hasNext=true
+							 }
+						}
+					} 
+					this.loading=false
+			},
+			jumpService(flag) {
+				uni.navigateTo({
+					url: '/pagesA/rich-text-page/rich-text-page?flag='+2
+				})
+			},
+			checkShopLogin(){
+				var that =this
+				if( this.shopInfo ==null || this.shopInfo.id==null ||  this.shopToken==null || this.shopToken==''){
+					uni.navigateTo({
+						url: '/pages/login/login'
+					})
+				} 
+			} 
+		}
+	}
+</script>
+
+<style>
+	page {
+		background-color: #F9F9FB;
+	}
+</style>
+<style lang="scss" scoped>
+	.points {
+		width: 100%;
+		.info-rule{
+			float: right;
+			margin-top:214rpx;
+			width: 140rpx;
+			// height: 52rpx;
+			padding: 5px 0;
+			background: #FFFFFF;
+			border-radius: 36rpx 0rpx 0rpx 36rpx;
+			
+			font-family: PingFangSC, PingFang SC;
+			font-weight: 400;
+			font-size: 24rpx;
+			color: #333333;
+			line-height: 34rpx;
+			text-align: center;
+			font-style: normal;
+		}
+		.head {
+			width: 100%;
+			height: 424rpx;
+			padding: 0 30rpx;
+			box-sizing: border-box;
+			background-repeat: no-repeat;
+			background-size: 100% 100%;
+			
+			.list {
+				width: 100%;
+				display: flex;
+				flex-direction: column;
+				background: #FFFFFF;
+				border-radius: 16rpx;
+				margin-top: 30rpx;
+				padding: 34rpx 30rpx;
+				box-sizing: border-box;
+				.list-title {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					.list-title-name {
+						font-weight: 600;
+						font-size: 32rpx;
+						color: #222222;
+					}
+					.active {
+						color: #004096 !important;
+						background: #F8F9FB !important;
+					}
+					.list-title-cate {
+						display: flex;
+						align-items: center;
+						.list-title-cate-row {
+							width: 96rpx;
+							height: 56rpx;
+							line-height: 56rpx;
+							text-align: center;
+							background: #F8F9FB;
+							border-radius: 28rpx;
+							font-weight: 400;
+							font-size: 24rpx;
+							color: #333333;
+							margin-left: 20rpx;
+						}
+					}
+				}
+				.list-item {
+					width: 100%;
+					height: 154rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					border-bottom: 1rpx solid #E5E5E5;
+					.list-item-left {
+						flex: 1;
+						height: 100%;
+						display: flex;
+						flex-direction: column;
+						justify-content: space-evenly;
+						text {
+							&:nth-child(1) {
+								font-weight: 400;
+								font-size: 28rpx;
+								color: #222222;
+							}
+							&:nth-child(2) {
+								font-weight: 400;
+								font-size: 24rpx;
+								color: #999999;
+							}
+						}
+					}
+					.list-item-num {
+						flex-shrink: 0;
+						margin-left: 30rpx;
+						font-weight: 500;
+						font-size: 32rpx;
+						color: #222222;
+					}
+				}
+			}
+			.info {
+				width: 100%;
+				padding: 30rpx 0;
+				box-sizing: border-box;
+				.info-a {
+					font-weight: 400;
+					font-size: 26rpx;
+					color: #333333;
+				}
+				.info-b {
+					font-weight: bold;
+					font-size: 72rpx;
+					color: #222222;
+				}
+				.info-c {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					margin-top: 20rpx;
+					image {
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 10rpx;
+					}
+					text {
+						font-weight: 400;
+						font-size: 24rpx;
+						color: #777777;
+					}
+				}
+			}
+		
+			.head-bar {
+				width: 100%;
+				position: fixed;
+				padding: 0 30rpx;
+				box-sizing: border-box;
+				top: 0;
+				left: 0;
+				z-index: 999;
+		
+				.head-bar-nav {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+		
+					image {
+						width: 44rpx;
+						height: 44rpx;
+					}
+		
+					text {
+						font-weight: 500;
+						font-size: 32rpx;
+						color: #111111;
+					}
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3