| | |
| | | } |
| | | } |
| | | } |
| | | .nomore{ |
| | | margin-top: 30rpx; |
| | | width: 100%; |
| | | text-align: center; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | .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> |
| | |
| | | "path" : "pages/rich-text-page/rich-text-page", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "富文本页面" |
| | | "navigationBarTitleText" : "详情" |
| | | } |
| | | } |
| | | ] |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="user-qrcode"> |
| | | <view class="user-qrcode" @click="openQrcode()"> |
| | | <image src="/static/icon/ic_QRcode@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="func"> |
| | | <view class="func-item" style="margin-bottom: 30rpx;"> |
| | | <view class="func-item" style="margin-bottom: 30rpx;" @click="jumpGoodsList"> |
| | | <image src="/static/icon/ic_shangpingl@2x.png" mode="widthFix"></image> |
| | | <text>商品管理</text> |
| | | </view> |
| | | <view class="func-item" style="margin-bottom: 30rpx;"> |
| | | <view class="func-item" style="margin-bottom: 30rpx;" @click="jumpOrderList"> |
| | | <image src="/static/icon/ic_dingdanguanli@2x.png" mode="widthFix"></image> |
| | | <text>订单管理</text> |
| | | </view> |
| | | <view class="func-item" style="margin-bottom: 30rpx;"> |
| | | <view class="func-item" style="margin-bottom: 30rpx;" @click="jumpAccount"> |
| | | <image src="/static/icon/ic_xunizhanghu@2x.png" mode="widthFix"></image> |
| | | <text>虚拟账号</text> |
| | | </view> |
| | |
| | | <image src="/static/icon/ic_zitihexiao@2x.png" mode="widthFix"></image> |
| | | <text>自提核销</text> |
| | | </view> |
| | | <view class="func-item"> |
| | | <view class="func-item" @click="jumpZizhi"> |
| | | <image src="/static/icon/ic_wodezizhi@2x.png" mode="widthFix"></image> |
| | | <text>我的资质</text> |
| | | </view> |
| | | <view class="func-item"> |
| | | <view class="func-item" @click="jumpMemberList"> |
| | | <image src="/static/icon/ic_wodehuiyuan@2x.png" mode="widthFix"></image> |
| | | <text>我的会员</text> |
| | | </view> |
| | | <view class="func-item"> |
| | | <view class="func-item" @click="openHaibao"> |
| | | <image src="/static/icon/ic_zhuanshuhaibao@2x.png" mode="widthFix"></image> |
| | | <text>专属海报</text> |
| | | </view> |
| | |
| | | </view> --> |
| | | <view class="phone-item" > |
| | | <view> |
| | | <image src="/static/icon/ic_call@2x.png" mode="widthFix" @click="contactPhoneDo()"></image> |
| | | <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> |
| | | <u-popup :show="showQrcode" round="15" :safeAreaInsetBottom="false" mode="center" @close="openQrcode()" > |
| | | <view class="qrcode" > |
| | | <image :src="shop.programCode||''" mode="widthFix"></image> |
| | | </view> |
| | | </u-popup> |
| | | <u-popup :show="showHaibao" round="15" :safeAreaInsetBottom="false" mode="bottom" @close="openHaibao()" > |
| | | <view class="qrcode" > |
| | | <image :src="shop.programCode||''" mode="widthFix"></image> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | |
| | | data() { |
| | | return { |
| | | show:false, |
| | | showHaibao:false, |
| | | showQrcode:false, |
| | | active:0, |
| | | loading:false, |
| | | showMoney:false, |
| | |
| | | this.getOrderList( ); |
| | | }, |
| | | methods:{ |
| | | openQrcode(){ |
| | | if(this.shop.programCode){ |
| | | this.showQrcode = !this.showQrcode |
| | | } |
| | | }, |
| | | openHaibao(){ |
| | | if(this.shop.programCode){ |
| | | this.showHaibao = !this.showHaibao |
| | | } |
| | | }, |
| | | contactPhone(item){ |
| | | this.showPhone = !this.showPhone |
| | | this.linkItem = item ||{} |
| | |
| | | url: '/pages/login/login' |
| | | }) |
| | | }, |
| | | jumpZizhi() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/my-qualifications/my-qualifications' |
| | | }) |
| | | }, |
| | | jumpGoodsList() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/product-management/product-management' |
| | | }) |
| | | }, |
| | | jumpOrderList() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/order/order' |
| | | }) |
| | | }, |
| | | jumpAccount() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/virtual-account/virtual-account' |
| | | }) |
| | | }, |
| | | jumpMemberList() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/my-membership/my-membership' |
| | | }) |
| | | }, |
| | | jumpShopIntegral() { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/pages/shop_points/shop_points' |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | .qrcode{ |
| | | width: calc(100vw - 148rpx); |
| | | height: calc(100vw - 148rpx); |
| | | padding: 20px; |
| | | image{ |
| | | width: calc(100vw - 188rpx); |
| | | height: calc(100vw - 188rpx); |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <view class="box"> |
| | | <view class="cate"> |
| | | <view @click="changeRow(index)" :class="i === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in cate" :key="index"> |
| | | <view @click="changeRow(index)" :class="active === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in cate" :key="'cate_'+index"> |
| | | {{item.name}} |
| | | <view class="cate-item-xiab" v-if="i === index"></view> |
| | | <view class="cate-item-xiab" v-if="active === index"></view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <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>鼎元农机一号经销商</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 grey">交易完成</text> |
| | | <text v-if="item.status ==4" class="a-right grey">已取消</text> |
| | | <text v-if="item.status ==6" class="a-right grey">已退款</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">取消订单</view> |
| | | <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" v-if="item.memberInfo"> |
| | | 订单备注:{{item.memberInfo||''}} |
| | | </view> |
| | | </view> |
| | | <view v-if="!hasNext" class="nomore">已加载全部</view> |
| | | </view> |
| | | <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> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | | computed: { |
| | | ...mapState(['navHeight', 'statusbarHeight','userInfo', 'token']) |
| | | }, |
| | | data() { |
| | | return { |
| | | i: '', |
| | | active:0, |
| | | loading:false, |
| | | currentPage:1, |
| | | total:0, |
| | | hasNext:true, |
| | | dataList:[], |
| | | linkItem:{}, |
| | | cate: [ |
| | | { name: '全部', id: '' }, |
| | | { name: '待支付', id: 0 }, |
| | | { name: '待发货/自提', id: 1 }, |
| | | { name: '待收货', id: 2 }, |
| | | ], |
| | | list: [] |
| | | { name: '待发货/自提', id: 1 , |
| | | { name: '待收货', id: 2 } |
| | | ] |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | |
| | | this.i = Number(options.status) |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.shop ={} |
| | | this.checkUserLogin() |
| | | this.shop = this.shopInfo || {} |
| | | this.getFirstPageData() |
| | | }, |
| | | onReachBottom(){ |
| | | this.getDataList(); |
| | | }, |
| | | 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 |
| | | }) |
| | | } |
| | | }, |
| | | changeRow(index) { |
| | | this.active=index |
| | | this.i = this.cate[index].id |
| | | this.getFirstPageData() |
| | | }, |
| | | getFirstPageData(){ |
| | | this.currentPage = 0 |
| | | this.hasNext=true |
| | | this.total=0 |
| | | this.dataList=[] |
| | | this.getDataList() |
| | | }, |
| | | 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.orderPage({ |
| | | capacity:10, |
| | | model: { |
| | | orderStatus: this.i |
| | | }, |
| | | 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 |
| | | }, |
| | | checkUserLogin(){ |
| | | var that =this |
| | | if( this.userInfo ==null || this.userInfo.id==null || this.token==null || this.token==''){ |
| | | uni.navigateTo({ |
| | | url: '/pages/index/index' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .list { |
| | | width: 100%; |
| | | padding: 22rpx 30rpx; |
| | | padding-bottom: 60rpx; |
| | | box-sizing: border-box; |
| | | .list-item { |
| | | width: 100%; |
| | |
| | | font-size: 26rpx; |
| | | color: #E4001D; |
| | | } |
| | | .grey{ |
| | | color: #999999 !important; |
| | | } |
| | | } |
| | | .b { |
| | | width: 100%; |
| | | height: 136rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-top: 22rpx; |
| | |
| | | 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; |
| | |
| | | border: 1rpx solid #004096; |
| | | color: #004096 !important; |
| | | } |
| | | .bg{ |
| | | background: #004096; |
| | | border-radius: 34rpx; |
| | | border: 1rpx solid #004096; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #FFFFFF !important; |
| | | line-height: 40rpx; |
| | | text-align: center; |
| | | font-style: normal; |
| | | } |
| | | .c-btns-item { |
| | | padding: 0 24rpx; |
| | | box-sizing: border-box; |
| | |
| | | <u-search |
| | | placeholder="搜索会员昵称/手机号" |
| | | :showAction="false" |
| | | @search="getFirstPageData()" |
| | | bgColor="#F8F9FB" |
| | | placeholderColor="#999999" |
| | | searchIconSize="28" |
| | | height="36" |
| | | v-model="keyword" /> |
| | | v-model="memberInfo" /> |
| | | <view class="head-cate"> |
| | | <view class="head-cate-item"> |
| | | <text class="num">5,323</text> |
| | | <text class="num">{{totalAll}}</text> |
| | | <text class="title">会员总数</text> |
| | | </view> |
| | | <view class="head-cate-item"> |
| | | <text class="num">3,289</text> |
| | | <text class="num">{{countData.orderNum||0}}</text> |
| | | <text class="title">订单总数</text> |
| | | </view> |
| | | <view class="head-cate-item"> |
| | | <view class="price"> |
| | | <text>5,323</text> |
| | | <text>.00</text> |
| | | <text>{{countData.saleTotalNum||0}}</text> |
| | | <text>{{countData.saleTotalFloat||'.00'}}</text> |
| | | </view> |
| | | <text class="title">订单金额</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <view class="list-item"> |
| | | <view class="list-item" v-for="(item,index) in dataList"> |
| | | <view class="tx"> |
| | | <image src="/static/logo.png" mode="widthFix"></image> |
| | | <image :src="item.imgFullUrl?item.imgFullUrl:'/static/icon/defualt.png'" mode="widthFix"></image> |
| | | </view> |
| | | <view class="info"> |
| | | <view class="info-a"> |
| | | <text>李婷平</text> |
| | | <text>1815****5556</text> |
| | | <text>{{item.name || item.nickname || ''}}</text> |
| | | <text>{{item.phone || ''}}</text> |
| | | </view> |
| | | <view class="info-date">关联时间:2024-04-18 19:29:01</view> |
| | | <view class="info-num"> |
| | | <view class="info-date">关联时间:{{item.bindShopDate || ''}}</view> |
| | | <!-- <view class="info-num"> |
| | | <text>订单量:3</text> |
| | | <text>订单金额:¥3678.00</text> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | <view v-if="!hasNext" class="nomore">已加载全部</view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | | computed: { |
| | | ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken']) |
| | | }, |
| | | data() { |
| | | return { |
| | | |
| | | memberInfo:'', |
| | | shop:{}, |
| | | currentPage:1, |
| | | totalAll:0, |
| | | total:0, |
| | | hasNext:true, |
| | | dataList:[], |
| | | countData:{}, |
| | | }; |
| | | }, |
| | | onShow() { |
| | | this.shop ={} |
| | | this.checkShopLogin() |
| | | this.shop = this.shopInfo || {} |
| | | this.getFirstPageData() |
| | | this.getCountData() |
| | | }, |
| | | onReachBottom(){ |
| | | this.getDataList( ); |
| | | }, |
| | | methods:{ |
| | | async getCountData(index){ |
| | | var that =this |
| | | let res = await that.$u.api.saleReport({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) |
| | | } |
| | | }, |
| | | getFirstPageData(){ |
| | | this.currentPage = 0 |
| | | this.hasNext=true |
| | | this.total=0 |
| | | this.dataList=[] |
| | | this.getDataList() |
| | | }, |
| | | 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.myCustomer({ |
| | | capacity:10, |
| | | model: { |
| | | memberInfo: this.memberInfo |
| | | }, |
| | | page:this.currentPage |
| | | }); |
| | | console.log(res) |
| | | if (res.code === 200 ) { |
| | | if(res.data && this.memberInfo ==''&&this.currentPage==1){ |
| | | this.totalAll = res.data.total||0 |
| | | } |
| | | 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 |
| | | }, |
| | | checkShopLogin(){ |
| | | var that =this |
| | | if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){ |
| | | uni.navigateTo({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | margin-top: 20rpx; |
| | | background-color: #ffffff; |
| | | padding: 0 30rpx; |
| | | padding-bottom: 60rpx; |
| | | box-sizing: border-box; |
| | | .list-item { |
| | | width: 100%; |
| | |
| | | <view class="box-info"> |
| | | <view class="shop"> |
| | | <view class="shop-image"> |
| | | <image src="/static/logo.png" mode="widthFix"></image> |
| | | <image v-if="shop.imgurl" @click="previewImage(shop.imgurl)" :src="shop.imgurl" mode="widthFix"></image> |
| | | </view> |
| | | <view class="shop-info"> |
| | | <text>鼎元农机一号经销商</text> |
| | | <text>联系人:吴书为</text> |
| | | <text>联系电话:0551-676763678</text> |
| | | <text>{{shop.name || ''}}</text> |
| | | <text>联系人:{{shop.realname || ''}}</text> |
| | | <text>联系电话:{{shop.phone || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xian"></view> |
| | | <view class="info"> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">营业时间:</view> |
| | | <view class="info-item-val">周一至周五 09:30-17:00</view> |
| | | <view class="info-item-val">周一至周五 {{shop.startTime || ''}}</view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">省市区:</view> |
| | | <view class="info-item-val">安徽省合肥市经济技术开发区</view> |
| | | <view class="info-item-val">{{(shop.areas.provinceName||'') + (shop.areas.cityName||'') + (shop.areas.name||'')}}</view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">门店地址:</view> |
| | | <view class="info-item-val">莲花路200号莲花产业园F栋401</view> |
| | | <view class="info-item-val">{{shop.addr || ''}}</view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">营业执照:</view> |
| | | <view class="info-item-image"> |
| | | <image src="/static/logo.png" mode="widthFix"></image> |
| | | <image v-if="shop.businessImg" @click="previewImage(shop.businessImg)" :src="shop.businessImg" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <view class="info"> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">法人姓名:</view> |
| | | <view class="info-item-val">张光宣</view> |
| | | <view class="info-item-val">{{shop.legalPersonName || ''}}</view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">法人电话:</view> |
| | | <view class="info-item-val">181554462589</view> |
| | | <view class="info-item-val">{{shop.legalPersonPhone||''}}</view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">身份证:</view> |
| | | <view class="info-item-list"> |
| | | <view class="info-item-list-image"> |
| | | <image src="/static/logo.png" mode="widthFix"></image> |
| | | <view class="info-item-list-image" v-if="shop.idcardImg" > |
| | | <image :src="shop.idcardImg" mode="widthFix" @click="previewImage(shop.idcardImg)"></image> |
| | | </view> |
| | | <view class="info-item-list-image"> |
| | | <image src="/static/logo.png" mode="widthFix"></image> |
| | | <view class="info-item-list-image" v-if="shop.idcardImgBack"> |
| | | <image :src="shop.idcardImgBack" @click="previewImage(shop.idcardImgBack)" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | | computed: { |
| | | ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken']) |
| | | }, |
| | | data() { |
| | | return { |
| | | |
| | | shop:{} |
| | | }; |
| | | }, |
| | | onShow() { |
| | | this.shop ={} |
| | | this.checkShopLogin() |
| | | this.shop = this.shopInfo || {} |
| | | }, |
| | | methods:{ |
| | | previewImage (url) { |
| | | if (url) { |
| | | uni.previewImage({ |
| | | urls:[url] |
| | | }) |
| | | } |
| | | }, |
| | | async checkShopLogin(){ |
| | | var that =this |
| | | if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){ |
| | | uni.navigateTo({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | } |
| | | let res = await that.$u.api.getShopInfo({tokenType:1 }) |
| | | if (res.code === 200) { |
| | | that.shop = res.data |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <view class="box"> |
| | | <view class="cate"> |
| | | <view @click="i = index" :class="i === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in list" :key="index"> |
| | | {{item}} |
| | | <view class="cate-item-xiab" v-if="i === index"></view> |
| | | <view @click="changeRow(index)" :class="active === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in cate" :key="'cate_'+index"> |
| | | {{item.name}} |
| | | <view class="cate-item-xiab" v-if="active === index"></view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <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>鼎元农机一号经销商</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 grey">交易完成</text> |
| | | <text v-if="item.status ==4" class="a-right grey">已取消</text> |
| | | <text v-if="item.status ==6" class="a-right grey">已退款</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 bluebg">自提核销</view> |
| | | <view class="c-btns-item blue" @click="contactPhone(item)">联系客户</view> |
| | | <view class="c-btns-item bg" v-if="item.status==1 && item.receiveType==1">自提核销</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> |
| | | <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> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | | computed: { |
| | | ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken']) |
| | | }, |
| | | data() { |
| | | return { |
| | | i: 0, |
| | | list: ['全部', '待支付', '待自提'] |
| | | i: '', |
| | | active:0, |
| | | showPhone:false, |
| | | loading:false, |
| | | currentPage:1, |
| | | total:0, |
| | | hasNext:true, |
| | | dataList:[], |
| | | shop:{}, |
| | | linkItem:{}, |
| | | cate: [ |
| | | { name: '全部', id: '' }, |
| | | { name: '待支付', id: 0 }, |
| | | { name: '待发货/自提', id: 1 } |
| | | ] |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | | if (options.status) { |
| | | this.i = Number(options.status) |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.shop ={} |
| | | this.checkShopLogin() |
| | | this.shop = this.shopInfo || {} |
| | | this.getFirstPageData() |
| | | }, |
| | | onReachBottom(){ |
| | | this.getDataList(); |
| | | }, |
| | | 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 |
| | | }) |
| | | } |
| | | }, |
| | | changeRow(index) { |
| | | this.active=index |
| | | this.i = this.cate[index].id |
| | | this.getFirstPageData() |
| | | }, |
| | | getFirstPageData(){ |
| | | this.currentPage = 0 |
| | | this.hasNext=true |
| | | this.total=0 |
| | | this.dataList=[] |
| | | this.getDataList() |
| | | }, |
| | | 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: this.i |
| | | }, |
| | | 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 |
| | | }, |
| | | checkShopLogin(){ |
| | | var that =this |
| | | if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){ |
| | | uni.navigateTo({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | .list { |
| | | width: 100%; |
| | | padding: 22rpx 30rpx; |
| | | padding-bottom: 60rpx; |
| | | box-sizing: border-box; |
| | | .list-item { |
| | | width: 100%; |
| | |
| | | font-size: 26rpx; |
| | | color: #E4001D; |
| | | } |
| | | .grey{ |
| | | color: #999999 !important; |
| | | } |
| | | } |
| | | .b { |
| | | width: 100%; |
| | | height: 136rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-top: 22rpx; |
| | |
| | | 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; |
| | |
| | | border: 1rpx solid #004096; |
| | | color: #004096 !important; |
| | | } |
| | | .bluebg { |
| | | background: #004096 !important; |
| | | .bg{ |
| | | background: #004096; |
| | | border-radius: 34rpx; |
| | | border: 1rpx solid #004096; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #FFFFFF !important; |
| | | line-height: 40rpx; |
| | | text-align: center; |
| | | font-style: normal; |
| | | } |
| | | .c-btns-item { |
| | | padding: 0 24rpx; |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .d { |
| | | width: 100%; |
| | | padding: 20rpx; |
| | | box-sizing: border-box; |
| | | background: #F8F9FB; |
| | | border-radius: 8rpx; |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | margin-top: 24rpx; |
| | | } |
| | | } |
| | | } |
| | |
| | | <view class="info-rule" @click="jumpService">积分规则</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 class="head-bar" :style="{ height: navHeight + statusbarHeight + 'px' , backgroundImage: 'url(' + backHeadImage + ')'}"> |
| | | <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> |
| | | <view class="head-bar-nav" :style="{ height: navHeight + 'px' }" > |
| | | <image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix" @click="jumpBack"></image> |
| | | <text>我的积分</text> |
| | | <image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix" style="opacity: 0;"></image> |
| | | </view> |
| | |
| | | <view :class="'list-title-cate-row '+(active ==2?'active':'')" @click="changeActive(2)">扣除</view> |
| | | </view> |
| | | </view> |
| | | <view class="list-item"> |
| | | <view class="list-item" v-for="(item, index) in dataList" :key="index"> |
| | | <view class="list-item-left"> |
| | | <text>购买商品,获得100积分</text> |
| | | <text>2025-11-21 09:00:00</text> |
| | | <text>{{item.content || ''}}</text> |
| | | <text>{{item.createDate || ''}}</text> |
| | | </view> |
| | | <view class="list-item-num">+100</view> |
| | | <view class="list-item-num" :style="item.type==1?'color:red':''">{{item.type==1?'-':'+'}}{{item.num||0}}</view> |
| | | </view> |
| | | <view v-if="!hasNext" class="nomore">已加载全部</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | hasNext:true, |
| | | dataList:[], |
| | | countData:{}, |
| | | backHeadImage:'', |
| | | backImage: require('@/static/images/jifen_bg@2x.png') |
| | | }; |
| | | }, |
| | | onReachBottom(){ |
| | | this.getDataList( ); |
| | | }, |
| | | onPageScroll(e){ |
| | | console.log('全局页面滚动', e); |
| | | if(e.scrollTop >= 20){ |
| | | this.backHeadImage = this.backImage |
| | | }else{ |
| | | this.backHeadImage = '' |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.shop ={} |
| | |
| | | this.active=0 |
| | | this.shop = this.shopInfo || {} |
| | | this.getCountData() |
| | | this.currentPage = 0 |
| | | this.getDataList() |
| | | this.getFirstPageData() |
| | | }, |
| | | methods:{ |
| | | getFirstPageData(){ |
| | | this.currentPage = 0 |
| | | this.hasNext=true |
| | | this.total=0 |
| | | this.dataList=[] |
| | | this.getDataList() |
| | | }, |
| | | changeActive(index){ |
| | | this.getCountData(index) |
| | | this.active=index |
| | | this.getFirstPageData() |
| | | }, |
| | | showRule(){ |
| | | console.log("==================================",this.showPhone) |
| | |
| | | this.dataList=[] |
| | | } |
| | | var that =this |
| | | let res = await that.$u.api.shopOrderPage({ |
| | | let res = await that.$u.api.findIntegralRecordPage({ |
| | | capacity:10, |
| | | model: { |
| | | receiveType: 1, |
| | | status: 1 |
| | | type: this.active === 1?0:(this.active===2?1:''), |
| | | userType: 1 |
| | | }, |
| | | page:this.currentPage |
| | | }); |
| | |
| | | } |
| | | } |
| | | this.loading=false |
| | | }, |
| | | jumpBack(){ |
| | | uni.navigateBack({ delta: 1 }); |
| | | }, |
| | | jumpService() { |
| | | uni.navigateTo({ |
| | |
| | | border-radius: 16rpx; |
| | | margin-top: 30rpx; |
| | | padding: 34rpx 30rpx; |
| | | padding-bottom: 60rpx; |
| | | box-sizing: border-box; |
| | | .list-title { |
| | | width: 100%; |
| | |
| | | let saleReport = (data = {}) => vm.$u.http.post('/web/shop/saleReport', {...data,tokenType:1}); //经销商 - 销售明细 |
| | | let shopOrderPage = (data = {}) => vm.$u.http.post('/web/orders/shopOrderPage', {...data,tokenType:1}); //经销商 - 销售明细 |
| | | let getIntegralData = (params = {}) => vm.$u.http.get('/web/integral/getIntegralData', {params}); //经销商 - 积分与结算金额情况(积分规则) |
| | | let getPlatformAboutUs = (params = {}) => vm.$u.http.get('web/user/getPlatformAboutUs', { params }); // 获取系统配置 |
| | | let getPlatformAboutUs = (params = {}) => vm.$u.http.get('/web/account/getPlatformAboutUs', { params }); // 获取系统配置 |
| | | let findIntegralRecordPage = (data = {}) => vm.$u.http.post('/web/integral/findIntegralRecordPage', {...data,tokenType:1}); //经销商 - 获取经销商的积分记录 |
| | | let myCustomer = (data = {}) => vm.$u.http.post('/web/shop/myCustomer', {...data,tokenType:1}); //经销商 - 我的客户信息 |
| | | |
| | | |
| | | |
| | |
| | | saleReport, |
| | | shopOrderPage, |
| | | getIntegralData, |
| | | getPlatformAboutUs |
| | | getPlatformAboutUs, |
| | | findIntegralRecordPage, |
| | | myCustomer |
| | | }; |
| | | } |
| | | |
| | |
| | | vm.$store.commit('setToken', res.data.data.token) |
| | | vm.$store.commit('setUserInfo', res.data.data.member) |
| | | vm.$store.commit('setOpenId', res.data.data.openid) |
| | | // 已经刷新了token,将所有队列中的请求进行重试 |
| | | requests.forEach(item => item(res.data.data)) |
| | | requests = [] |
| | | } |
| | |
| | | } else { |
| | | return date |
| | | } |
| | | } |
| | | } |