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