From b9b64778f693ebe82fcbc97837b6012dadb3b084 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 10 二月 2026 18:03:39 +0800
Subject: [PATCH] 经销商管理
---
mini-program/pages/distributor/distributor.vue | 244 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 217 insertions(+), 27 deletions(-)
diff --git a/mini-program/pages/distributor/distributor.vue b/mini-program/pages/distributor/distributor.vue
index efe8f20..d23a85f 100644
--- a/mini-program/pages/distributor/distributor.vue
+++ b/mini-program/pages/distributor/distributor.vue
@@ -44,11 +44,12 @@
<view class="data-c-item">
<view class="data-c-item-top">
<text>閿�鍞(鍏�)</text>
- <image src="/static/icon/ic_visible@2x.png" mode="widthFix"></image>
+ <image :src="showMoney?'/static/icon/ic_visible@2x.png':'/static/icon/ic_invisible@2x.png'" @click="showMoney=!showMoney" mode="widthFix"></image>
</view>
<view class="data-c-item-bottom">
- <text>{{(countData.saleTotal||0).toFixed(0)}}</text>
- <text>.{{countData.saleTotalFloat || '00'}}</text>
+ <text v-if="showMoney">{{(countData.saleTotalNum||0).toFixed(0)}}</text>
+ <text v-if="showMoney">{{countData.saleTotalFloat || '.00'}}</text>
+ <text v-if="!showMoney">****</text>
</view>
</view>
<view class="data-c-item">
@@ -56,8 +57,9 @@
<text>缁撶畻鍒╂鼎(鍏�)</text>
</view>
<view class="data-c-item-bottom">
- <text>{{(countData.profitTotal||0).toFixed(0)}}</text>
- <text>.{{countData.profitTotalFloat || '00'}}</text>
+ <text v-if="showMoney">{{(countData.profitTotalNum||0).toFixed(0)}}</text>
+ <text v-if="showMoney">{{countData.profitTotalFloat || '.00'}}</text>
+ <text v-if="!showMoney">****</text>
</view>
</view>
<view class="data-c-item">
@@ -65,7 +67,8 @@
<text>璁㈠崟鏁�</text>
</view>
<view class="data-c-item-bottom">
- <text>{{countData.orderNum||0}}</text>
+ <text v-if="showMoney">{{countData.orderNum||0}}</text>
+ <text v-if="!showMoney">****</text>
</view>
</view>
</view>
@@ -102,45 +105,61 @@
<view style="width: 25%; height: 0;"></view>
<view style="width: 25%; height: 0;"></view>
</view>
- <view class="title" v-if="!show">寰呭鐞嗚鍗� (2)</view>
+ <view class="title" v-if="!show">寰呭鐞嗚鍗� ({{total}})</view>
<view class="list" v-if="!show">
- <view class="list-item" v-for="(item, index) in 5" :key="index">
+ <view class="list-item" v-for="(item, index) in dataList" :key="index">
<view class="a">
<view class="a-left">
- <view class="a-left-tips">鑷彁</view>
- <text>璁㈠崟鍙凤細71379283984239</text>
+ <view class="a-left-tips">{{item.receiveType==1?'鑷彁':'蹇�掗厤閫�'}}</view>
+ <text>璁㈠崟鍙凤細{{item.id}}</text>
</view>
- <view class="a-right">寰呰嚜鎻�</view>
+ <text v-if="item.status ==0" class="a-right">寰呮敮浠�</text>
+ <text v-if="item.status ==1" class="a-right">{{item.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</text>
+ <text v-if="item.status ==2" class="a-right">寰呮敹璐�</text>
+ <text v-if="item.status ==3" class="a-right">浜ゆ槗瀹屾垚</text>
+ <text v-if="item.status ==4"class="a-right">宸插彇娑�</text>
+ <text v-if="item.status ==6" class="a-right">宸查��娆�</text>
</view>
<view class="b">
- <view class="b-item">
+ <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
<view class="b-item-image">
- <image src="/static/logo.png" mode="widthFix"></image>
+ <image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
</view>
- <view class="b-item-title">涓仈鑹剧瀹介娇 閫傜敤闆锋矁/涓仈/涔呬繚鐢�</view>
+ <view class="b-item-title">{{item1.name||''}}</view>
<view class="b-item-jia">
- <text>楼499.00</text>
- <text>x1</text>
+ <text>楼{{(item1.price||0).toFixed(2)}}</text>
+ <text>x{{item1.goodsNum||0}}</text>
+ </view>
+ </view>
+ <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
+ <view class="b-item-image">
+ <image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
+ </view>
+ <view class="b-item-title">{{item1.name||''}}</view>
+ <view class="b-item-jia">
+ <text>楼{{(item1.price||0).toFixed(2)}}</text>
+ <text>x{{item1.goodsNum||0}}</text>
</view>
</view>
</view>
<view class="c">
<view class="c-label">
- <view class="c-label-title">闇�浠樻锛�</view>
+ <view class="c-label-title">瀹炰粯娆撅細</view>
<view class="c-label-price">
- <text>998</text>
- <text>.00</text>
+ <text>{{(item.price||0).toFixed(2)}}</text>
+ <text></text>
</view>
</view>
<view class="c-btns">
- <view class="c-btns-item blue">鑱旂郴瀹㈡埛</view>
+ <view class="c-btns-item blue" @click="contactPhone(item)">鑱旂郴瀹㈡埛</view>
<view class="c-btns-item bg">鑷彁鏍搁攢</view>
</view>
</view>
- <view class="d">
- 璁㈠崟澶囨敞锛�11鏈�22鏃ユ潵鎷�
+ <view class="d" v-if="item.memberInfo">
+ 璁㈠崟澶囨敞锛歿{item.memberInfo||''}}
</view>
</view>
+ <view v-if="!hasNext" class="nomore">宸插姞杞藉叏閮�</view>
</view>
</view>
<!-- 纭閫�鍑虹櫥闄� -->
@@ -158,6 +177,30 @@
</view>
</view>
</u-popup>
+ <u-popup :show="showPhone" round="15" mode="bottom" :safeAreaInsetBottom="true" @close="contactPhone()" :closeable="true" :closeOnClickOverlay="true">
+ <view class="phone">
+ <view class="phone-head">
+ <view></view>
+ <text>鑱旂郴瀹㈡埛</text>
+ </view>
+ <!-- <view class="phone-item">
+ <view>
+ <image style="width: 36rpx;height: 36rpx" src="/static/icon/ic_kefu.png" mode="widthFix"></image>
+ <button open-type="contact" plain="true" bindcontact="handleContact">鍦ㄧ嚎瀹㈡湇</button>
+ </view>
+ <view class="line" v-if="serverPhone && serverPhone.length"></view>
+ </view> -->
+ <view class="phone-item" >
+ <view>
+ <image src="/static/icon/ic_call@2x.png" mode="widthFix" @click="contactPhoneDo()"></image>
+ <text>{{linkItem.linkname}} </text>
+ <text style="margin-left: 10px;"> {{linkItem.linkphone}}</text>
+ </view>
+ </view>
+ <view style="width: 100%; height: 30rpx;"></view>
+ <!-- <view class="phone-botton" @click="contactPhone()" >鍏抽棴</view> -->
+ </view>
+ </u-popup>
</view>
</template>
@@ -171,7 +214,15 @@
return {
show:false,
active:0,
+ loading:false,
+ showMoney:false,
+ showPhone:false,
+ currentPage:1,
+ total:0,
+ hasNext:true,
+ dataList:[],
shop:{},
+ linkItem:{},
countData:{},
backgroundImage: require('@/static/images/bg_card@2x.png')
};
@@ -179,20 +230,86 @@
onShow() {
this.shop ={}
this.checkShopLogin()
+ this.active=0
this.shop = this.shopInfo || {}
+ this.getCountData()
+ this.currentPage = 0
+ this.getOrderList()
},
- onReachBottom(){
-
+ onReachBottom(){
+ this.getOrderList( );
},
methods:{
+ contactPhone(item){
+ this.showPhone = !this.showPhone
+ this.linkItem = item ||{}
+ console.log("==================================",this.showPhone)
+ },
+ contactPhoneDo(){
+ if(this.linkItem.linkphone !=null && this.linkItem.linkphone!=''){
+ uni.makePhoneCall({
+ phoneNumber: this.linkItem.linkphone
+ })
+ }
+ },
changeActive(index){
- this.active = index
+ this.getCountData(index)
},
checkShopLogin(){
var that =this
if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){
this.jumpShopLogin()
}
+ },
+ async getCountData(index){
+ var that =this
+ let res = await that.$u.api.saleReport({ dateType: index, endDate: null, startDate: null, tokenType:1 })
+ if (res.code === 200) {
+ this.active = index
+ this.countData = res.data
+ this.countData.profitTotal = (this.countData.profitTotal||0.00 ).toFixed(2)
+ this.countData.saleTotal = (this.countData.saleTotal||0.00).toFixed(2)
+ this.countData.profitTotalNum = Math.floor(this.countData.profitTotal)
+ this.countData.saleTotalNum = Math.floor( this.countData.saleTotal)
+ var t1 =(this.countData.profitTotal - this.countData.profitTotalNum).toFixed(2)
+ var t2 =(this.countData.saleTotal - this.countData.saleTotalNum).toFixed(2)
+ this.countData.profitTotalFloat =( t1+'').slice(1, 4)
+ this.countData.saleTotalFloat = ( t2+'').slice(1, 4)
+ }
+ },
+ async getOrderList(){
+ 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
},
logoutCom(){
this.show=!this.show
@@ -275,6 +392,13 @@
.list {
width: 100%;
margin-top: 30rpx;
+ padding-bottom: 60rpx;
+ .nomore{
+ width: 100%;
+ text-align: center;
+ font-size: 24rpx;
+ color: #666666;
+ }
.list-item {
width: 100%;
padding: 30rpx;
@@ -317,8 +441,7 @@
}
}
.b {
- width: 100%;
- height: 136rpx;
+ width: 100%;
display: flex;
flex-direction: column;
margin-top: 22rpx;
@@ -350,6 +473,10 @@
font-size: 30rpx;
color: #222222;
margin-right: 30rpx;
+ display: -webkit-box;
+ -webkit-line-clamp: 2; /* 闄愬埗鏂囨湰涓�2琛� */
+ -webkit-box-orient: vertical;
+ overflow: hidden;
}
.b-item-jia {
flex-shrink: 0;
@@ -636,5 +763,68 @@
}
}
}
+ .phone {
+ width: 100%;
+ padding-top: 40rpx;
+ box-sizing: border-box;
+ .phone-botton {
+ width: 100%;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #FFFFFF;
+ background: #00BC12;
+ border-radius: 44rpx;
+ margin-top: 60rpx;
+ }
+ .phone-head {
+ width: 100%;
+ text-align: center;
+ justify-content: space-between;
+ margin-bottom: 40rpx;
+ text {
+ font-weight: 800;
+ font-size: 32rpx;
+ color: #222222;
+ }
+ }
+
+ .phone-item {
+ width: 100%;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ // border-bottom: 1rpx solid #eeeeee;
+ line-height: 78rpx;
+ button{
+ border: 1rpx white solid;
+ display: inline;
+ width: 300rpx;
+ font-weight: 500;
+ font-size: 32rpx;
+ line-height: 32rpx;
+ color: #222222;
+ }
+ image{
+ width: 28rpx;
+ height: 28rpx;
+ margin-right: 30rpx;
+ }
+ .line{
+ width: 100%;
+ height: 1rpx;
+ background-color: #f2f2f2
+ }
+ text {
+ font-weight: 500;
+ font-size: 28rpx;
+ line-height: 28rpx;
+ color: #222222;
+ }
+ }
+ }
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3