Commit 080ade46 by yuzhenWang

页面翻修完毕,合并测试

parent a65e8252
...@@ -188,8 +188,9 @@ ...@@ -188,8 +188,9 @@
} }
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.container{ .container{
padding: 30rpx; padding: 30rpx;
background-color: #f7f7f7;
} }
</style> </style>
\ No newline at end of file
...@@ -117,6 +117,7 @@ ...@@ -117,6 +117,7 @@
width: 85%; width: 85%;
padding: 15rpx; padding: 15rpx;
color: #fff; color: #fff;
font-size: 26rpx;
} }
.icon-sousuo{ .icon-sousuo{
font-size: 50rpx; font-size: 50rpx;
......
...@@ -153,6 +153,14 @@ ...@@ -153,6 +153,14 @@
}, },
{ {
"path": "pages/personalCenter/helpCenter",
"style": {
"navigationBarTitleText": "帮助中心",
"enablePullDownRefresh": false
}
},
{
"path": "pages/myShare/myShare", "path": "pages/myShare/myShare",
"style": { "style": {
"navigationBarTitleText": "分享数据", "navigationBarTitleText": "分享数据",
......
...@@ -142,6 +142,7 @@ ...@@ -142,6 +142,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container{
height:100%; height:100%;
padding-bottom: 50rpx;
.top{ .top{
display: flex; display: flex;
height: 80rpx; height: 80rpx;
...@@ -160,7 +161,8 @@ ...@@ -160,7 +161,8 @@
.returnCountsContainer,.returnProcessContainer,.returnDetailContainer{ .returnCountsContainer,.returnProcessContainer,.returnDetailContainer{
background-color: #fff; background-color: #fff;
padding: 20rpx 40rpx; padding: 20rpx 40rpx;
margin: 10rpx auto; margin: 20rpx 20rpx;
border-radius: 10rpx;
h4{ h4{
font-size: 32rpx; font-size: 32rpx;
color: #333; color: #333;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<course-item :thumbnailPath="item.displayImage" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" :fileLecturerId="item.fileLecturerId"></course-item> <course-item :thumbnailPath="item.displayImage" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" :fileLecturerId="item.fileLecturerId"></course-item>
<view class="statusBox"> <view class="statusBox">
<text>{{item.orderStatusName}}</text> <text>{{item.orderStatusName}}</text>
<text @click="goDetail(item)">查看详情></text> <text @click="goDetail(item)">查看详情</text>
</view> </view>
</view> </view>
</view> </view>
...@@ -80,18 +80,25 @@ ...@@ -80,18 +80,25 @@
} }
.ulBox{ .ulBox{
margin-top: 20rpx; margin-top: 20rpx;
box-sizing: border-box;
.liBox{ .liBox{
background-color: #fff; background-color: #fff;
margin-bottom: 20rpx; margin-bottom: 20rpx;
padding: 36rpx 30rpx; padding: 36rpx 30rpx;
margin: 20rpx;
border-radius: 10rpx;
.statusBox{ .statusBox{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center;
text{ text{
color: #333; color: #333;
font-size: 32rpx; font-size: 32rpx;
&:last-child{ &:last-child{
color: #666; background-color: #2A36AD;
padding: 10rpx 20rpx;
border-radius: 40rpx;
color: #fff;
font-size: 28rpx; font-size: 28rpx;
} }
} }
......
...@@ -218,7 +218,7 @@ ...@@ -218,7 +218,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container{
padding: 10rpx 20rpx; // padding: 10rpx 0;
height: 100%; height: 100%;
position: relative; position: relative;
.commonTitle{ .commonTitle{
...@@ -235,7 +235,7 @@ ...@@ -235,7 +235,7 @@
padding: 30rpx 14rpx 14rpx 20rpx; padding: 30rpx 14rpx 14rpx 20rpx;
margin-bottom: 10rpx; margin-bottom: 10rpx;
background-color: #fff; background-color: #fff;
border-radius: 10rpx; // border-radius: 10rpx;
view{ view{
margin-top: 22rpx; margin-top: 22rpx;
display: flex; display: flex;
...@@ -251,9 +251,6 @@ ...@@ -251,9 +251,6 @@
} }
.submitApply{ .submitApply{
margin-top: 30rpx; margin-top: 30rpx;
// position: fixed;
// bottom: 0rpx;
// left: 0;
width: 100%; width: 100%;
text{ text{
display: flex; display: flex;
...@@ -295,7 +292,7 @@ ...@@ -295,7 +292,7 @@
align-items: baseline; align-items: baseline;
background-color: #fff; background-color: #fff;
padding: 20rpx; padding: 20rpx;
border-radius: 10rpx; // border-radius: 10rpx;
box-sizing: border-box; box-sizing: border-box;
.pickerBox{ .pickerBox{
display: flex; display: flex;
......
...@@ -411,7 +411,6 @@ ...@@ -411,7 +411,6 @@
} }
}, },
goBack() { goBack() {
console.log('返回');
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}); });
...@@ -1015,10 +1014,10 @@ ...@@ -1015,10 +1014,10 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container{
// background-color: #f7f7f7;
width: 100%; width: 100%;
height: auto; height: auto;
box-sizing: border-box; box-sizing: border-box;
// padding: 20rpx;
} }
page { page {
padding: 0; padding: 0;
...@@ -1040,11 +1039,6 @@ ...@@ -1040,11 +1039,6 @@
} }
.swiperBox { .swiperBox {
height: 930rpx; height: 930rpx;
image {
border-radius: 12rpx;
}
padding: 0 40rpx;
margin-top: 0rpx;
} }
.swiper-box { .swiper-box {
height: 930rpx; height: 930rpx;
...@@ -1105,18 +1099,17 @@ ...@@ -1105,18 +1099,17 @@
align-items: center; align-items: center;
border-top-left-radius: 30rpx; border-top-left-radius: 30rpx;
border-bottom-left-radius: 30rpx; border-bottom-left-radius: 30rpx;
// padding-left: 10rpx;
color: #fff; color: #fff;
height: 60rpx; height: 60rpx;
background: #20269B; background: #20269B;
} }
.shareheader { .shareheader {
// padding-top: 60rpx; background-color: #fff;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
height: 80rpx; height: 100rpx;
.icon-youjiantou { .icon-youjiantou {
display: inline-block; display: inline-block;
......
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
</view> </view>
<view class="productBox"> <view class="productBox">
<view class="productList"> <view class="productList">
<view class="productItem" v-for="item in cffpCourseInfos" :key="item.fileId" @click="goDetail(item)"> <view class="productItem" v-for="item in cffpCourseInfos" :key="item.fileId" >
<view class="top"> <view class="top" @click="goDetail(item)">
<view class="left"> <view class="left">
<image class="productImg" :src="item.displayImage" alt="" mode="widthFix"></image> <image class="productImg" :src="item.displayImage" alt="" mode="widthFix"></image>
</view> </view>
...@@ -38,16 +38,16 @@ ...@@ -38,16 +38,16 @@
{{item.fileSynopsis}} {{item.fileSynopsis}}
</view> </view>
<view class="three"> <view class="three">
<text style="font-size: 28rpx;color: rgba(32, 39, 155, 1);">{{item.coursePrice}}</text> <text style="font-size: 28rpx;color: rgba(32, 39, 155, 1);">{{Number(item.coursePrice).toFixed(2)}}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom">
<view class="bottomCon"> <view class="bottomCon">
<view class="left"> <view class="left" >
最高可赚¥1.98 最高可赚¥{{item.income || '0.00'}}
</view> </view>
<view class="right"> <view class="right" @click="gotoShare(item)">
去分享 去分享
</view> </view>
</view> </view>
...@@ -55,6 +55,33 @@ ...@@ -55,6 +55,33 @@
</view> </view>
</view> </view>
</view> </view>
<uni-popup ref="popup" type="center" background-color="#fff">
<view class="descriptionBox">
<view class="imageBox">
<text>关注公众号</text>
<text class="subTit">通知实时提醒,及时接收下单和提现通知</text>
</view>
<view class="codeBox">
<image v-if="sourceType == '1'" src="@/static/cffpCode.jpg" mode="widthFix" style="width:250rpx !important;"></image>
<image v-if="sourceType == '4'" src="@/static/ydCode.jpg" mode="widthFix" style="width:250rpx !important;"></image>
<image v-if="sourceType == '3'" src="@/static/ydHomeOfficeCode.jpg" mode="widthFix" style="width:250rpx !important;"></image>
</view>
<view class="description">
扫一扫,关注公众号
</view>
</view>
</uni-popup>
<uni-share-wx ref="sharewx"></uni-share-wx>
<view class="markBox" @click="shareTipsFlag=false" v-if="shareTipsFlag">
<view class="guideImgBox">
<image src="../../static/Group132.png" mode="widthFix"></image>
<view class="tips">
<view style="margin-bottom:30rpx">请点击右上角菜单</view>
<view>分享给朋友</view>
</view>
</view>
</view>
<!--搜索组件--> <!--搜索组件-->
<!-- <search <!-- <search
:isSearch="1" :isSearch="1"
...@@ -90,9 +117,16 @@ ...@@ -90,9 +117,16 @@
import tabBar from '../../components/tabBar/tabBar.vue'; import tabBar from '../../components/tabBar/tabBar.vue';
import carousel from '@/components/carousel/carousel.vue'; import carousel from '@/components/carousel/carousel.vue';
import search from '@/components/search/search.vue'; import search from '@/components/search/search.vue';
import {companyInfo} from "@/environments/environment"; import {baseURL,apiURL,cffpURL,companyInfo,shareURL} from "@/environments/environment";
import dataHandling from "@/util/dataHandling";
import {hshare} from '@/util/fiveshare';
import UniShareWx from "@/uni_modules/uni-share-wx/index.vue";
import {nanoid} from 'nanoid';
export default{ export default{
props:['tagIds'], props:['tagIds'],
components: {
UniShareWx,
},
data(){ data(){
return{ return{
cffpCourseInfos:[], cffpCourseInfos:[],
...@@ -100,6 +134,9 @@ ...@@ -100,6 +134,9 @@
fileUploadItemCFFPList:[], fileUploadItemCFFPList:[],
queryName:null, queryName:null,
userId: uni.getStorageSync('cffp_userId'), userId: uni.getStorageSync('cffp_userId'),
runEnv:dataHandling.getRuntimeEnv(), //运行的环境 browser、app、h5
shareTipsFlag:false,
sourceType:'1',//根据来源展示二维码 默认是cffp
} }
}, },
name:'courselist', name:'courselist',
...@@ -112,12 +149,96 @@ ...@@ -112,12 +149,96 @@
onLoad() { onLoad() {
this.queryName = uni.getStorageSync('queryName') || ''; this.queryName = uni.getStorageSync('queryName') || '';
this.sourceType = uni.getStorageSync('addSystemType') || '1';
}, },
onShow() { onShow() {
this.queryName = uni.getStorageSync('queryName') || ''; this.queryName = uni.getStorageSync('queryName') || '';
this.courseList(); this.courseList();
this.sourceType = uni.getStorageSync('addSystemType') || '1';
}, },
methods:{ methods:{
gotoShare(item){
if(this.runEnv == 'browser'){
this.$refs.popup.open()
return
}else if(this.runEnv == 'app' || this.runEnv == 'wechat-h5'){
const shareCode = nanoid() + this.userId
const jumptime = Date.parse(new Date()) / 1000
//app分享
// #ifdef APP-PLUS
let dataWXform = {
href: shareURL + "/pages/courseDetail/courseDetail?fileId=" + item.fileId +
'&coursesharing=1' + '&serialsNo=' + nanoid() + '&shareCode=' + shareCode + '&shareUserId=' +
this.userId + '&jumpUrl=' + jumptime + "&",
title: item.fileTitle,
// summary: `加入我们开启学习之旅`,
summary: item.fileSynopsis,
imageUrl: item.displayImage,
fileId: item.fileId,
shareCode: shareCode
}
this.$refs.sharewx.open(dataWXform)
// #endif
//#ifdef H5
this.shareTipsFlag = true;
this.getshareData2(shareCode,jumptime,item)
// #endif
}
},
getshareData2(shareCode,jumptime,item) {
let data = {
title: item.fileTitle,
// desc: '加入我们开启学习之旅',
desc:item.fileSynopsis,
link: shareURL + "/pages/courseDetail/courseDetail?fileId=" + item.fileId +
'&coursesharing=1' + '&serialsNo=' + nanoid() + '&shareCode=' + shareCode + '&shareUserId=' +
this.userId + '&jumpUrl=' + jumptime+ "&", //分享链接
imgUrl: item.displayImage, //图片
}
//安卓机型获取当前页面路径
let url = window.location.href.split('#')[0];
//ios机型获取当前页面路径
let ua = navigator.userAgent.toLowerCase();
let isWeixin = ua.indexOf('micromessenger') !== -1;
if (isWeixin) {
let isiOS = /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent); //ios终端
if (isiOS && window.sessionStorage.getItem('firstEntryUrl')) {
url = window.sessionStorage.getItem('firstEntryUrl').split('#')[0];
}
}
// let url = window.location.href.split('#')[0]
hshare(data, url)
this.submitsuessc(shareCode,jumptime,item)
},
submitsuessc(shareCode,jumptime,item){
let platform = uni.getSystemInfoSync().platform
let UserShareRequestVO = {
systemType: platform == 'ios'? '1': '0',
userId: uni.getStorageSync('cffp_userId'),
businessType: '1', // 分享类型
businessId:item.fileId, // 课程Id
shareUrl: shareURL + "/pages/courseDetail/courseDetail?fileId=" + item.fileId +
'&coursesharing=1' + '&serialsNo=' + nanoid() + '&shareCode=' + shareCode + '&shareUserId=' +
this.userId + '&jumpUrl=' + jumptime + "&", // 分享链接
shareType: '2', // 分享类型(1:图片分享; 2:链接分享)
shareToWhere: 3, //分享到哪儿(1好友 2朋友圈)
shareCode: shareCode
}
api.userShare(UserShareRequestVO).then(res => {
if (res['success']) {
// uni.showToast({
// title: '分享成功',
// duration: 2000
// });
}
})
},
goDetail(item){ goDetail(item){
uni.navigateTo({ uni.navigateTo({
url: `/pages/courseDetail/courseDetail?fileId=${item.fileId}` url: `/pages/courseDetail/courseDetail?fileId=${item.fileId}`
...@@ -182,6 +303,10 @@ ...@@ -182,6 +303,10 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .uni-popup .uni-popup__wrapper{
margin: 0 !important;
border-radius: 30rpx;
}
.container{ .container{
background-color: rgba(235, 239, 247, 1); background-color: rgba(235, 239, 247, 1);
display: flex; display: flex;
...@@ -323,6 +448,74 @@ ...@@ -323,6 +448,74 @@
} }
} }
} }
.descriptionBox {
width: 510rpx;
padding: 40rpx;
.popupClose{
display: flex;
align-items: center;
justify-content: flex-end;
.icon-guanbi{
font-size: 28rpx;
}
}
.imageBox{
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
font-size: 32rpx;
font-weight: 600;
.subTit{
font-size: 28rpx;
color: #919094;
margin: 15rpx 0;
font-weight: 400;
}
}
.codeBox{
display: flex;
align-items: center;
justify-content: center;
height: 250rpx;
}
.description{
color: rgba(56, 56, 56, 1);
font-size: 28rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
.markBox {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
color: #fff;
display: flex;
justify-content: flex-end;
z-index: 100000;
background: rgba(0, 0, 0, 0.8);
.guideImgBox {
margin: 20px auto;
uni-image {
width: 25% !important;
position: absolute;
right: 0;
top: 0;
}
}
.tips {
margin-top: 30%;
padding: 0 30px;
}
}
} }
.ulBox,.liBox{ .ulBox,.liBox{
padding-bottom: 30rpx; padding-bottom: 30rpx;
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
<view class="one"> <view class="one">
<search <search
ref="searchRef" ref="searchRef"
:isSearch="0" :isSearch="1"
:userId="userId" :userId="userId"
:initialQuery.sync="searchQuery" :initialQuery.sync="searchQuery"
@send="getCourseList"
v-if="showSearch" v-if="showSearch"
></search> ></search>
</view> </view>
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="carouselBox"> <!-- <view class="carouselBox">
<view class="swiperBox"> <view class="swiperBox">
<swiper <swiper
style="height:250rpx;" style="height:250rpx;"
...@@ -52,7 +53,7 @@ ...@@ -52,7 +53,7 @@
</swiper> </swiper>
</view> </view>
</view> </view> -->
<!-- 产品区域 --> <!-- 产品区域 -->
<view class="productBox"> <view class="productBox">
<view class="productTitle"> <view class="productTitle">
...@@ -399,6 +400,11 @@ ...@@ -399,6 +400,11 @@
url: `/pages/courseDetail/courseDetail?fileId=${item.fileId}` url: `/pages/courseDetail/courseDetail?fileId=${item.fileId}`
}); });
}, },
getCourseList(res){
console.log('res',res);
this.queryName = res;
this.courseList()
},
courseList() { courseList() {
const param = { const param = {
queryName: this.queryName queryName: this.queryName
......
...@@ -495,17 +495,17 @@ ...@@ -495,17 +495,17 @@
} }
&.listUl::before { // &.listUl::before {
display: block; // display: block;
content: ''; // content: '';
position: absolute; // position: absolute;
left: 10rpx; // left: 10rpx;
top: 20rpx; // top: 20rpx;
width: 8rpx; // width: 8rpx;
height: 20rpx; // height: 20rpx;
background-color: #FA882F; // background-color: #FA882F;
border-radius: 8rpx; // border-radius: 8rpx;
} // }
} }
.sendInvite { .sendInvite {
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</view> </view>
<!-- 分享明细 --> <!-- 分享明细 -->
<view class="shareDetailContent"> <view class="shareDetailContent">
<h3>分享明细</h3> <h3 class="shareTitle">分享明细</h3>
<template v-if="userShareCourses && userShareCourses.length > 0"> <template v-if="userShareCourses && userShareCourses.length > 0">
<view class="shareOrderInfoItem" v-for="item in userShareCourses" :key="item.fileId"> <view class="shareOrderInfoItem" v-for="item in userShareCourses" :key="item.fileId">
<view class="timeBox">{{item.shareDate}}</view> <view class="timeBox">{{item.shareDate}}</view>
...@@ -186,8 +186,7 @@ ...@@ -186,8 +186,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container { .container {
height: 100%; padding-bottom: 30rpx;
.timeSelectContent { .timeSelectContent {
background-color: #fff; background-color: #fff;
padding: 20rpx 0; padding: 20rpx 0;
...@@ -195,7 +194,6 @@ ...@@ -195,7 +194,6 @@
justify-content: center; justify-content: center;
align-items: baseline; align-items: baseline;
color: #333; color: #333;
.xiajiantou { .xiajiantou {
color: #999; color: #999;
font-size: 24rpx; font-size: 24rpx;
...@@ -206,10 +204,11 @@ ...@@ -206,10 +204,11 @@
.shareStatisticalContent { .shareStatisticalContent {
background-color: #fff; background-color: #fff;
margin: 10rpx 20rpx; margin: 20rpx 20rpx;
padding: 20rpx 14rpx; padding: 20rpx 14rpx;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
border-radius: 10rpx;
.statisticItem { .statisticItem {
flex: 1; flex: 1;
...@@ -241,47 +240,51 @@ ...@@ -241,47 +240,51 @@
} }
.shareDetailContent { .shareDetailContent {
h3 { margin-bottom: 50rpx;
.shareTitle {
margin: 20rpx 20rpx 0 20rpx;
padding: 20rpx;
border-bottom: 1rpx solid #F2F2F2;
color: #333; color: #333;
font-size: 36rpx; font-size: 36rpx;
position: relative; position: relative;
margin: 10rpx 0 10rpx 58rpx; background-color: #fff;
border-radius: 10rpx 10rpx 0rpx 0rpx;
&::before { // &::before {
content: ''; // content: '';
display: block; // display: block;
position: absolute; // position: absolute;
left: -5px; // left: 2%;
top: 4px; // top: 50%;
width: 2px; // transform: translateY(-50%);
height: 70%; // width: 3rpx;
border-radius: 4rpx; // height: 50%;
background-color: #FA882F; // border-radius: 4rpx;
} // background-color: #3639A9;
// }
} }
.shareOrderInfoItem { .shareOrderInfoItem {
margin: 0 20rpx; margin: 0 20rpx;
background-color: #fff;
box-sizing: border-box;
padding: 20rpx;
.timeBox { .timeBox {
font-size: 28rpx; font-size: 28rpx;
color: #999; color: #999;
margin: 10rpx 0 10rpx 50rpx; margin-bottom: 10rpx;
} }
.countsContent { .countsContent {
background-color: #fff; background-color: #fff;
display: flex; display: flex;
border-bottom-left-radius: 20rpx; padding: 20rpx 0;
border-bottom-right-radius: 20rpx;
padding: 10rpx 10rpx 20rpx 10rpx;
view { view {
flex: 1; flex: 1;
font-size: 24rpx; font-size: 24rpx;
display: flex; display: flex;
align-items: center; align-items: center;
text { text {
color: #666; color: #666;
...@@ -293,7 +296,12 @@ ...@@ -293,7 +296,12 @@
} }
} }
} }
}
.shareOrderInfoItem:last-child{
border-radius: 0 0 10rpx 10rpx;
} }
} }
} }
</style> </style>
<template> <template>
<view class="container" style="padding-top: 50rpx;"> <view class="container" >
<text class="iconfont icon-youjiantou zuojiantou" @click="goBack()" style="top: 16rpx;"></text> <!-- <text class="iconfont icon-youjiantou zuojiantou" @click="goBack()" style="top: 16rpx;"></text> -->
<view class="backArrow">
<text class="iconfont icon-youjiantou zuojiantou" style="left: 5rpx;" @click="goBack()"></text>
<text style="font-size: 30rpx;">订单详情</text>
</view>
<view class="orderInfoContent"> <view class="orderInfoContent">
<view class="ulBox"> <view class="ulBox">
<view v-for="item in orderInfoList.filter(item=>item.pageArea===1)" :key="item.id" class="liBox"> <view v-for="item in orderInfoList.filter(item=>item.pageArea===1)" :key="item.id" class="liBox">
...@@ -232,13 +236,30 @@ ...@@ -232,13 +236,30 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container { .container {
height: 100%; height: 100%;
.backArrow{
box-sizing: border-box;
display: flex;
height: 100rpx;
justify-content: space-between;
align-items: center;
position: relative;
width: 100%;
margin-bottom: 10rpx;
color: #333333;
background-color: #fff;
// margin-top: 20rpx;
text:nth-child(2){
width: 100%;
text-align: center;
position: absolute;
}
}
.orderInfoContent { .orderInfoContent {
.ulBox { .ulBox {
background-color: #fff; background-color: #fff;
margin: 20rpx 22rpx; margin: 20rpx 20rpx;
padding: 20rpx; padding: 20rpx;
border-radius: 10rpx;
.liBox { .liBox {
margin-bottom: 20rpx; margin-bottom: 20rpx;
display: flex; display: flex;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<view class="successBox" v-if="orderStatus=='2'"> <view class="successBox" v-if="orderStatus=='2'">
<i class="iconfont icon-dengdai"></i> <i class="iconfont icon-dengdai"></i>
<text class="statusText">订单支付成功</text> <text class="statusText">订单支付成功</text>
<text @click="viewDetail()" class="viewOrder">查看订单 ></text> <text @click="viewDetail()" class="viewOrder">查看订单</text>
</view> </view>
<view class="failBox" v-if="orderStatus=='1'"> <view class="failBox" v-if="orderStatus=='1'">
<text style="color:#F04604"><i class="iconfont icon-guanbi"></i>订单支付失败</text> <text style="color:#F04604"><i class="iconfont icon-guanbi"></i>订单支付失败</text>
...@@ -15,20 +15,51 @@ ...@@ -15,20 +15,51 @@
</view> </view>
</view> </view>
<!-- 精选课程 --> <!-- 精选课程 -->
<view class="courlistBox"> <!-- <view class="courlistBox">
<view class="course_content"> <view class="course_content">
<view class="tag"> <view class="tag">
<h4>推荐产品</h4> <h4>推荐产品</h4>
<view @click="goToCourselist()">更多<text class="iconfont icon-youjiantou"></text></view> <view @click="goToCourselist()">更多<text class="iconfont icon-youjiantou"></text></view>
<!-- <view v-if="this.isRedirect == 1" @click="goToCourselist()">更多<text class="iconfont icon-youjiantou"></text></view> -->
</view> </view>
<view class="ulBox" v-if="cffpCourseInfos.length>0"> <view class="ulBox" v-if="cffpCourseInfos.length>0">
<view class="liBox" v-for="item in cffpCourseInfos" :key="item.fileId" @click="goDetail(item)"> <view class="liBox" v-for="item in cffpCourseInfos" :key="item.fileId" @click="goDetail(item)">
<!-- :tagList="{v1:item.fileLecturerRanks,v2:item.fileLecturerName}" -->
<course-item :thumbnailPath="item.displayImage" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" ></course-item> <course-item :thumbnailPath="item.displayImage" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" ></course-item>
</view> </view>
</view> </view>
</view> </view>
</view> -->
<view class="productBox">
<view class="productTitle">
<view class="titleTxt">
<text style="font-size: 30rpx;font-weight: 500;">推荐产品</text>
<text class="more" @click="goToCourselist()">更多 <text class="iconfont icon-youjiantou"></text> </text>
</view>
</view>
<view class="productList" v-if="cffpCourseInfos.length>0">
<view class="productListBox">
<view class="productListItem" v-for="item in cffpCourseInfos" :key="item.fileId" @click="goDetail(item)">
<view class="top">
<image class="productImg" :src="item.displayImage" alt="" mode="widthFix"></image>
<view class="productDesBox">
{{item.fileSynopsis}}
</view>
</view>
<view class="bottom" style="text-align: left !important;">
<view class="one">
{{item.fileTitle}}
</view>
<view class="two">
<text style="font-size: 28rpx;color: rgba(32, 39, 155, 1);">{{item.coursePrice}}</text>
<text v-if="Number(item.salesNumber)>0" style="font-size: 24rpx;color: rgba(166, 166, 166, 1);">已售{{item.salesNumber}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="productEmpty" v-else>
暂无数据
</view>
</view> </view>
<tabBar :currentPage="currentPage" :infoTotal="infoTotal"></tabBar> <tabBar :currentPage="currentPage" :infoTotal="infoTotal"></tabBar>
</view> </view>
...@@ -146,6 +177,109 @@ ...@@ -146,6 +177,109 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.container{
padding-bottom: 50rpx;
.productBox{
background-color: #fff;
margin-top: 15rpx;
box-sizing: border-box;
margin-bottom: 100rpx;
.productTitle{
border-bottom: 1rpx solid rgba(238, 238, 238, 1);
padding-bottom: 10rpx;
.titleTxt{
padding: 15rpx 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.more{
font-size: 26rpx;
color: rgba(84, 84, 84, 1);
.icon-youjiantou{
font-size: 26rpx;
}
}
}
.productList{
.productListBox{
padding: 30rpx 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
.productListItem{
width: 48%;
margin-bottom: 20rpx;
display: flex;
align-items: center;
flex-direction: column;
overflow: hidden;
.top{
// background-color: pink;
width: 290rpx;
position: relative;
overflow: hidden;
.productDesBox{
padding: 5rpx 10rpx 10rpx 10rpx;
box-sizing: border-box;
position: absolute;
left: 0;
bottom: 0%;
background: rgba(0, 0, 0, 0.1);
width: 100%;
border-radius: 0 0 20rpx 20rpx; /* 左上 右上 右下 左下 */
font-size: 24rpx;
color: #fff;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; /* 确保不会换行 */
}
.productImg{
border-radius: 20rpx;
display: block;
}
}
.bottom{
box-sizing: border-box;
padding: 10rpx 15rpx;
text-align: left;
width: 100%;
.one{
font-size: 27rpx;
margin-bottom: 5rpx;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; /* 确保不会换行 */
}
.two{
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 10rpx;
}
}
}
}
}
.productEmpty{
color: rgba(166, 166, 166, 1);
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 30rpx 0;
font-size: 28rpx;
}
}
}
.ulBox{ .ulBox{
flex-direction: column; flex-direction: column;
} }
...@@ -168,9 +302,12 @@ ...@@ -168,9 +302,12 @@
font-size: 36rpx; font-size: 36rpx;
} }
.viewOrder{ .viewOrder{
color: #666666; color: #fff;
font-size: 30rpx; font-size: 30rpx;
margin-top: 30rpx; margin-top: 30rpx;
background-color: #20279B;
padding: 10rpx 20rpx;
border-radius: 40rpx;
} }
.iconfont{ .iconfont{
margin-bottom: 30rpx; margin-bottom: 30rpx;
......
<template>
<view class="container">
<view class="backArrow">
<text class="iconfont icon-youjiantou zuojiantou" style="left: 5rpx;" @click="goBack()"></text>
<text style="font-size: 30rpx;">帮助中心</text>
</view>
<view class="filterBox">
<scroll-view class="scroll-view_H" scroll-x="true" scroll-left="120">
<view
class="scroll-view-item_H"
v-for="item in tabList"
:key="item.id"
:class="{active:item.id == currentTab }"
@click="changeTab(item)"
>
{{item.title}}
</view>
</scroll-view>
</view>
<view class="questionsBox">
<view class="questionItem" v-for="item in newQuestionData" :key="item.id">
<view class="" >
<view class="itemTit">
<text class="iconfont myIcon" :class="item.icon" ></text>
{{item.category}}
</view>
<view class="itemQuestion" v-for="(question, index) in item.questions" :key="index">
<view class="Q">
Q:{{question.Q}}
</view>
<view class="A" v-if="question.isMore">
<view class="">
A:
</view>
<view class="" v-for="(a, index1) in question.A" :key="index1">
{{a}}
</view>
</view>
<view class="A" v-else>
A:{{question.A}}
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import questionsData from "@/util/questions";
export default {
data() {
return {
tabList:[
{title:'关于团队',id: '1'},
{title:'关于订单',id: '2'},
{title:'关于佣金',id: '3'},
],
currentTab:'1',
// questionsData:[]
}
},
computed:{
newQuestionData(){
let result = questionsData.filter(item=>item.id==this.currentTab)
return result
}
},
methods:{
changeTab(item){
this.currentTab = item.id
},
goBack(){
uni.navigateBack({
delta: 1
});
},
},
}
</script>
<style lang="scss" scoped>
.container{
padding-bottom: 50rpx;
.backArrow{
box-sizing: border-box;
display: flex;
height: 100rpx;
justify-content: space-between;
align-items: center;
position: relative;
width: 100%;
color: #333333;
background-color: #fff;
text:nth-child(2){
width: 100%;
text-align: center;
position: absolute;
}
}
.filterBox{
box-sizing: border-box;
width: 100%;
background-color: #fff;
padding: 20rpx 60rpx 0 60rpx;
display: flex;
align-items: center;
justify-content: space-between;
.scroll-view_H {
white-space: nowrap;
width: 100%;
box-sizing: border-box;
}
.scroll-view-item {
text-align: center;
font-size: 36rpx;
}
.scroll-view-item_H {
margin-bottom: 20rpx;
display: inline-block;
margin-right: 20rpx;
text-align: center;
font-size: 27rpx;
padding: 10rpx 20rpx;
color: rgba(46, 38, 29, 1);
&.active{
color: rgba(32, 39, 155, 1);
position: relative;
}
&.active::before{
display: block;
content: "";
position: absolute;
left: 50%;
transform: translate(-50%);
bottom: -3%;
width: 50%;
// height: 1rpx;
border: 1rpx solid rgba(32, 39, 155, 1);
border-radius: 5rpx;
}
}
.scroll-view-item_H:last-child{
margin-right: 0rpx;
}
.scrollBtn:last-child{
margin-right: 0rpx;
}
.filterItem{
background: #f7f7f7;
font-size: 27rpx;
padding: 10rpx;
color: rgba(46, 38, 29, 1);
border-radius: 8rpx;
&.active{
background: rgba(32, 39, 155, 1);
color: #fff;
}
}
}
.questionsBox{
padding: 20rpx;
box-sizing: border-box;
.questionItem{
box-sizing: border-box;
margin-bottom: 20rpx;
width: 100%;
background-color: #fff;
border-radius: 10rpx;
padding: 20rpx;
.itemTit{
font-size: 30rpx;
font-weight: 500;
.myIcon{
font-size: 32rpx;
color: rgba(32, 39, 155, 1);
}
}
.itemQuestion{
padding: 20rpx 0;
border-bottom: 1rpx solid #f2f2f2;
.Q{
margin-bottom: 10rpx;
font-size: 28rpx;
}
.A{
font-size: 26rpx;
color: #666;
line-height: 1.5;
}
}
.itemQuestion:last-child{
border: none;
}
}
}
}
</style>
\ No newline at end of file
...@@ -27,13 +27,13 @@ ...@@ -27,13 +27,13 @@
</view> </view>
<view class="bottom"> <view class="bottom">
<text v-if="currentBtn == '1'">{{teamCount}}</text> <text v-if="currentBtn == '1'">{{teamCount}}</text>
<text v-if="currentBtn == '2'">799,999</text> <text v-if="currentBtn == '2'">{{monthStandardSales}}</text>
</view> </view>
</view> </view>
<view class="moneyBox"> <view class="moneyBox">
<view class="one"> <view class="one">
<view v-if="currentBtn == '1'" class=""> <view v-if="currentBtn == '1'" class="">
799,999 {{monthStandardSales}}
</view> </view>
<view v-if="currentBtn == '2'" class=""> <view v-if="currentBtn == '2'" class="">
{{totalCoursePrice}} {{totalCoursePrice}}
...@@ -99,18 +99,16 @@ ...@@ -99,18 +99,16 @@
</view> </view>
<view v-else-if="currentBtn == '2'&&myTeamAchievementList.length>0"> <view v-else-if="currentBtn == '2'&&myTeamAchievementList.length>0">
<view class="content-sam-box" v-for="(pointItem,index) in myTeamAchievementList" :key="index"> <view class="content-sam-box" v-for="(pointItem,index) in myTeamAchievementList" :key="index">
<span class="content-box-title cell">{{pointItem.parentName}}</span> <span class="content-box-title cell">{{pointItem.name}}</span>
<span class="content-box-title cell">{{pointItem.orderNum}}</span> <span class="content-box-title cell">{{pointItem.orderNum}}</span>
<span class="content-box-title cell">{{pointItem.coursePrice}}</span> <span class="content-box-title cell">{{pointItem.coursePrice}}</span>
<span class="content-box-title cell">{{pointItem.referrer}}</span> <span class="content-box-title cell" >{{pointItem.monthStandardSales || '0.00'}}</span>
</view> </view>
</view> </view>
<view class="empty" v-else> <view class="empty" v-else>
暂无数据 暂无数据
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
...@@ -128,13 +126,13 @@ ...@@ -128,13 +126,13 @@
showTime1:false, showTime1:false,
startDate:{year:dataHandling.getDateParts().year,month:dataHandling.getDateParts().month}, startDate:{year:dataHandling.getDateParts().year,month:dataHandling.getDateParts().month},
tabList:[ tabList:[
{title:'全部',id: '1',type:'all'}, {title:'全部',id: '1',type:4},
{title:'直辖团队',id: '2',type:1}, {title:'直辖团队',id: '2',type:1},
{title:'所辖团队',id: '3',type:2}, {title:'所辖团队',id: '3',type:2},
], ],
btnList:[ btnList:[
{title:'按标准销售额',id: '1'}, {title:'按标准销售额',id: '1',sortType:5},
{title:'按销售额',id: '2'}, {title:'按销售额',id: '2',sortType:2},
{title:'按销售日期',id: '3',sortType:4}, {title:'按销售日期',id: '3',sortType:4},
], ],
...@@ -158,10 +156,12 @@ ...@@ -158,10 +156,12 @@
startDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`, startDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`,
endDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`, endDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`,
courseOrPolicy: '1', courseOrPolicy: '1',
type: '2' type: '2',
sortType:5
}, },
totalOrder: '0', //总单数 totalOrder: '0', //总单数
totalCoursePrice: '0.00', // 总销售额 totalCoursePrice: '0.00', // 总销售额
monthStandardSales:'0.00',//本月团队标准销售额
myTeamAchievementList:[],//我的业绩数据列表 myTeamAchievementList:[],//我的业绩数据列表
} }
}, },
...@@ -176,6 +176,7 @@ ...@@ -176,6 +176,7 @@
{title:'职级',id:'3'}, {title:'职级',id:'3'},
{title:'关系',id:'4'}, {title:'关系',id:'4'},
] ]
this.getmyseatem()
return return
} }
if(newVal == '2') { if(newVal == '2') {
...@@ -185,6 +186,7 @@ ...@@ -185,6 +186,7 @@
{title:'销售额',id:'3'}, {title:'销售额',id:'3'},
{title:'标准销售额',id:'4'}, {title:'标准销售额',id:'4'},
] ]
this.getqueryTeamAchievement()
return return
} }
} }
...@@ -224,13 +226,15 @@ ...@@ -224,13 +226,15 @@
methods: { methods: {
sortswitch(obj) { sortswitch(obj) {
this.currentFilterBtn = obj.id this.currentFilterBtn = obj.id
if(obj.sortType == 4){
this.CffpOrgInfoReqVO.sortType = obj.sortType this.CffpOrgInfoReqVO.sortType = obj.sortType
this.getqueryTeamAchievement() this.getqueryTeamAchievement()
}else{ // if(obj.sortType == 4){
delete this.CffpOrgInfoReqVO.sortType // this.CffpOrgInfoReqVO.sortType = obj.sortType
this.getqueryTeamAchievement() // this.getqueryTeamAchievement()
} // }else{
// delete this.CffpOrgInfoReqVO.sortType
// this.getqueryTeamAchievement()
// }
}, },
changeTab(item){ changeTab(item){
this.currentTab = item.id this.currentTab = item.id
...@@ -240,13 +244,11 @@ ...@@ -240,13 +244,11 @@
}, },
getqueryTeamAchievement() { getqueryTeamAchievement() {
if(this.currentTab !== '1'){
this.CffpOrgInfoReqVO.queryType = this.tabList.filter(item=>item.id == this.currentTab)[0].type this.CffpOrgInfoReqVO.queryType = this.tabList.filter(item=>item.id == this.currentTab)[0].type
} this.CffpOrgInfoReqVO.sortType = this.btnList.filter(item=>item.id == this.currentFilterBtn)[0].sortType
api.queryTeamAchievement(this.CffpOrgInfoReqVO).then(res => { api.queryTeamAchievement(this.CffpOrgInfoReqVO).then(res => {
if (res['success']) { if (res['success']) {
this.myTeamAchievementList = []
// this.listType = true // this.listType = true
this.myTeamAchievementList = res.data.list || []; this.myTeamAchievementList = res.data.list || [];
if(this.myTeamAchievementList.length>0){ if(this.myTeamAchievementList.length>0){
...@@ -257,8 +259,7 @@ ...@@ -257,8 +259,7 @@
} }
this.totalOrder = res.data.totalOrder ? res.data.totalOrder : '0'; this.totalOrder = res.data.totalOrder ? res.data.totalOrder : '0';
this.totalCoursePrice = res.data.totalCoursePrice ? Number(res.data.totalCoursePrice).toFixed(2) : '0.00'; this.totalCoursePrice = res.data.totalCoursePrice ? Number(res.data.totalCoursePrice).toFixed(2) : '0.00';
// this.totalIncome = res.data.totalIncome ? res.data.totalIncome : '0'; this.monthStandardSales = res.data.monthStandardSales ? Number(res.data.monthStandardSales).toFixed(2) : '0.00';
} }
}) })
}, },
...@@ -281,7 +282,6 @@ ...@@ -281,7 +282,6 @@
if(data.directList && data.directList.length != 0 && data.directList != null){ if(data.directList && data.directList.length != 0 && data.directList != null){
this.myTeamList.push( ...data['directList']) this.myTeamList.push( ...data['directList'])
} }
console.log('this.myTeamList',this.myTeamList);
} }
}) })
}, },
...@@ -329,6 +329,7 @@ ...@@ -329,6 +329,7 @@
background-color: rgba(235, 239, 247, 1); background-color: rgba(235, 239, 247, 1);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-sizing: border-box;
.myHeader{ .myHeader{
color: #fff; color: #fff;
box-sizing: border-box; box-sizing: border-box;
...@@ -481,17 +482,18 @@ ...@@ -481,17 +482,18 @@
} }
} }
.tableBox{ .tableBox{
// background-color: #fff;
padding: 20rpx; padding: 20rpx;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
border-radius: 20rpx;
.table{ .table{
background-color: #fff; background-color: #fff;
border-radius: 20rpx; border-radius: 20rpx;
padding: 10rpx 0; padding: 10rpx 0;
margin-bottom: 50rpx; margin-bottom: 50rpx;
box-sizing: border-box;
.content-box { .content-box {
background-color: #fff;
display: flex; display: flex;
font-weight: 600; font-weight: 600;
align-items: center; align-items: center;
......
...@@ -26,14 +26,14 @@ ...@@ -26,14 +26,14 @@
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom">
<text v-if="currentBtn == '1'">{{teamCount}}</text> <text v-if="currentBtn == '1'">{{myTeamList.length}}</text>
<text v-if="currentBtn == '2'">799,999</text> <text v-if="currentBtn == '2'">{{monthStandardSales}}</text>
</view> </view>
</view> </view>
<view class="moneyBox"> <view class="moneyBox">
<view class="one"> <view class="one">
<view v-if="currentBtn == '1'" class=""> <view v-if="currentBtn == '1'" class="">
799,999 {{monthStandardSales}}
</view> </view>
<view v-if="currentBtn == '2'" class=""> <view v-if="currentBtn == '2'" class="">
{{totalCoursePrice}} {{totalCoursePrice}}
...@@ -92,16 +92,16 @@ ...@@ -92,16 +92,16 @@
<view v-if="currentBtn == '1'&&myTeamList.length>0"> <view v-if="currentBtn == '1'&&myTeamList.length>0">
<view class="content-sam-box" v-for="(pointItem,index) in myTeamList" :key="index"> <view class="content-sam-box" v-for="(pointItem,index) in myTeamList" :key="index">
<span class="content-box-title cell">{{pointItem.raiseTeamLeder}}</span> <span class="content-box-title cell">{{pointItem.raiseTeamLeder}}</span>
<span class="content-box-title cell">{{pointItem.name}}</span> <span class="content-box-title cell">{{pointItem.raiseTime}}</span>
<span class="content-box-title cell">{{pointItem.levelName}}</span> <span class="content-box-title cell">{{pointItem.standardSales}}</span>
</view> </view>
</view> </view>
<view v-else-if="currentBtn == '2'&&myTeamAchievementList.length>0"> <view v-else-if="currentBtn == '2'&&myTeamAchievementList.length>0">
<view class="content-sam-box" v-for="(pointItem,index) in myTeamAchievementList" :key="index"> <view class="content-sam-box" v-for="(pointItem,index) in myTeamAchievementList" :key="index">
<span class="content-box-title cell">{{pointItem.parentName}}</span> <span class="content-box-title cell">{{pointItem.saleDate}}</span>
<span class="content-box-title cell">{{pointItem.orderNum}}</span> <span class="content-box-title cell">{{pointItem.orderNum}}</span>
<span class="content-box-title cell">{{pointItem.coursePrice}}</span> <span class="content-box-title cell">{{pointItem.coursePrice}}</span>
<span class="content-box-title cell">{{pointItem.referrer}}</span> <span class="content-box-title cell">{{pointItem.standardSales || '0.00'}}</span>
</view> </view>
</view> </view>
<view class="empty" v-else> <view class="empty" v-else>
...@@ -132,15 +132,15 @@ ...@@ -132,15 +132,15 @@
{title:'所辖团队',id: '3',type:2}, {title:'所辖团队',id: '3',type:2},
], ],
btnList:[ btnList:[
{title:'按标准销售额',id: '1'}, {title:'按标准销售额',id: '1',sortType:5},
{title:'按销售额',id: '2'}, {title:'按销售额',id: '2',sortType:2},
{title:'按销售日期',id: '3',sortType:4}, {title:'按销售日期',id: '3',sortType:4},
], ],
tableHeaderList:[ tableHeaderList:[
{title:'营业部部长',id:'1'}, {title:'营业部部长',id:'1'},
{title:'育成时间',id:'2'}, {title:'育成时间',id:'2'},
{title:'团队业绩',id:'3'}, {title:'标准销售额',id:'3'},
], ],
currentTab:'1', currentTab:'1',
currentBtn:'1', // 1代表团队 2代表业绩 currentBtn:'1', // 1代表团队 2代表业绩
...@@ -156,10 +156,13 @@ ...@@ -156,10 +156,13 @@
startDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`, startDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`,
endDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`, endDate: `${new Date().getFullYear()}-${new Date().getMonth() + 1 > 9 ? new Date().getMonth() + 1 : '0'+ (new Date().getMonth() + 1)}`,
courseOrPolicy: '1', courseOrPolicy: '1',
type: '2' type: '2',
queryType:3,
sortType:5
}, },
totalOrder: '0', //总单数 totalOrder: '0', //总单数
totalCoursePrice: '0.00', // 总销售额 totalCoursePrice: '0.00', // 总销售额
monthStandardSales:'0.00',//本月团队标准销售额
myTeamAchievementList:[],//我的业绩数据列表 myTeamAchievementList:[],//我的业绩数据列表
} }
}, },
...@@ -171,8 +174,9 @@ ...@@ -171,8 +174,9 @@
this.tableHeaderList = [ this.tableHeaderList = [
{title:'营业部部长',id:'1'}, {title:'营业部部长',id:'1'},
{title:'育成时间',id:'2'}, {title:'育成时间',id:'2'},
{title:'团队业绩',id:'3'}, {title:'标准销售额',id:'3'},
] ]
this.getmyseatem()
return return
} }
if(newVal == '2') { if(newVal == '2') {
...@@ -182,36 +186,12 @@ ...@@ -182,36 +186,12 @@
{title:'销售额',id:'3'}, {title:'销售额',id:'3'},
{title:'标准销售额',id:'4'}, {title:'标准销售额',id:'4'},
] ]
this.getqueryTeamAchievement()
return return
} }
} }
}, },
currentTab: {
deep: true,
handler(newVal) {
this.myTeamList = []
if(newVal == '1') {
if(this.myTeamData.other && this.myTeamData.other.length != 0 && this.myTeamData.other != null){
this.myTeamList.push(...this.myTeamData['other'])
}
if(this.myTeamData.directList && this.myTeamData.directList.length != 0 && this.myTeamData.directList != null){
this.myTeamList.push( ...this.myTeamData['directList'])
}
return
}
if(newVal == '2') {
if(this.myTeamData.other && this.myTeamData.other.length != 0 && this.myTeamData.other != null){
this.myTeamList.push(...this.myTeamData['other'])
}
}
if(newVal == '3'){
if(this.myTeamData.directList && this.myTeamData.directList.length != 0 && this.myTeamData.directList != null){
this.myTeamList.push( ...this.myTeamData['directList'])
}
}
console.log();
}
},
}, },
onLoad(){ onLoad(){
...@@ -221,13 +201,7 @@ ...@@ -221,13 +201,7 @@
methods: { methods: {
sortswitch(obj) { sortswitch(obj) {
this.currentFilterBtn = obj.id this.currentFilterBtn = obj.id
if(obj.sortType == 4){
this.CffpOrgInfoReqVO.sortType = obj.sortType
this.getqueryTeamAchievement() this.getqueryTeamAchievement()
}else{
delete this.CffpOrgInfoReqVO.sortType
this.getqueryTeamAchievement()
}
}, },
changeTab(item){ changeTab(item){
this.currentTab = item.id this.currentTab = item.id
...@@ -237,14 +211,11 @@ ...@@ -237,14 +211,11 @@
}, },
getqueryTeamAchievement() { getqueryTeamAchievement() {
this.CffpOrgInfoReqVO.sortType = this.btnList.filter(item=>item.id == this.currentFilterBtn)[0].sortType
if(this.currentTab !== '1'){ console.log('this.CffpOrgInfoReqVO',this.CffpOrgInfoReqVO);
this.CffpOrgInfoReqVO.queryType = this.tabList.filter(item=>item.id == this.currentTab)[0].type
}
api.queryTeamAchievement(this.CffpOrgInfoReqVO).then(res => { api.queryTeamAchievement(this.CffpOrgInfoReqVO).then(res => {
if (res['success']) { if (res['success']) {
this.myTeamAchievementList = []
// this.listType = true
this.myTeamAchievementList = res.data.list || []; this.myTeamAchievementList = res.data.list || [];
if(this.myTeamAchievementList.length>0){ if(this.myTeamAchievementList.length>0){
this.myTeamAchievementList.forEach(item=>{ this.myTeamAchievementList.forEach(item=>{
...@@ -254,7 +225,7 @@ ...@@ -254,7 +225,7 @@
} }
this.totalOrder = res.data.totalOrder ? res.data.totalOrder : '0'; this.totalOrder = res.data.totalOrder ? res.data.totalOrder : '0';
this.totalCoursePrice = res.data.totalCoursePrice ? Number(res.data.totalCoursePrice).toFixed(2) : '0.00'; this.totalCoursePrice = res.data.totalCoursePrice ? Number(res.data.totalCoursePrice).toFixed(2) : '0.00';
// this.totalIncome = res.data.totalIncome ? res.data.totalIncome : '0'; this.monthStandardSales = res.data.monthStandardSales ? Number(res.data.monthStandardSales).toFixed(2) : '0.00';
} }
}) })
...@@ -269,14 +240,11 @@ ...@@ -269,14 +240,11 @@
if(res['success']){ if(res['success']){
let data = res.data let data = res.data
this.myTeamData = res.data this.myTeamData = res.data
if(data.orgInfo) { if(data.raiseList && data.raiseList.length != 0 && data.raiseList != null){
this.teamCount = data.orgInfo.count this.myTeamList = data.raiseList
} this.myTeamList.forEach(item=>{
if(data.other && data.other.length != 0 && data.other != null){ item.raiseTime = dataHandling.dateFormat2(item.raiseTime,'yyyy-MM-dd')
this.myTeamList.push(...data['other']) })
}
if(data.directList && data.directList.length != 0 && data.directList != null){
this.myTeamList.push( ...data['directList'])
} }
console.log('this.myTeamList',this.myTeamList); console.log('this.myTeamList',this.myTeamList);
} }
......
...@@ -156,6 +156,11 @@ ...@@ -156,6 +156,11 @@
{title:'育成团队',icon:'icon-tuandui',link:'/pages/personalCenter/myTeamIncubate',isOpen:true,isShow:true,identity: true}, {title:'育成团队',icon:'icon-tuandui',link:'/pages/personalCenter/myTeamIncubate',isOpen:true,isShow:true,identity: true},
], ],
}, },
{id:'02',categoryName:'帮助',
children:[
{title:'帮助中心',icon:'icon-wenhao1',link:'/pages/personalCenter/helpCenter',isOpen:true,isShow:true,islogin:true},
],
},
], ],
minorMenuLists:[ minorMenuLists:[
// {title:'我的邀请码',icon:'shareEcode',link:'',isOpen:true,isShow:true}, // {title:'我的邀请码',icon:'shareEcode',link:'',isOpen:true,isShow:true},
...@@ -268,6 +273,13 @@ ...@@ -268,6 +273,13 @@
}, },
// 菜单跳转页面 // 菜单跳转页面
goDetail(item){ goDetail(item){
// 说明不需要登录就可以进
if(item.isLogin){
uni.navigateTo({
url: `${item.link}`
});
return
}
if(!this.loginornot&& !item.islogin){ if(!this.loginornot&& !item.islogin){
this.isLogin() this.isLogin()
return return
......
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container{
padding: 0 20rpx; padding: 0 20rpx;
background-color: #f7f7f7;
} }
.top{ .top{
display: flex; display: flex;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<text class="iconfont icon-youjiantou zuojiantou" style="left: 5rpx;" @click="goBack()"></text> <text class="iconfont icon-youjiantou zuojiantou" style="left: 5rpx;" @click="goBack()"></text>
<text style="font-size: 30rpx;">佣金</text> <text style="font-size: 30rpx;">佣金</text>
</view> </view>
<view class="" style="padding: 10rpx 20rpx 0 20rpx;">
<view class="first"> <view class="first">
<view class="top"> <view class="top">
<view class="left"> <view class="left">
...@@ -34,7 +35,9 @@ ...@@ -34,7 +35,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="two"> </view>
<view class="" style="padding: 0 20rpx;">
<view class="two" >
<view class="twoHeader"> <view class="twoHeader">
订单收益明细 订单收益明细
</view> </view>
...@@ -112,6 +115,8 @@ ...@@ -112,6 +115,8 @@
</view> </view>
</view> </view>
</view> </view>
</view>
<uni-popup ref="timePopup" type="bottom" > <uni-popup ref="timePopup" type="bottom" >
<customDatePop @closePop="closePop" @comfirm="comfirm" :dateParts="dateParts" :currentItem="currentItem" :childData="childData"></customDatePop> <customDatePop @closePop="closePop" @comfirm="comfirm" :dateParts="dateParts" :currentItem="currentItem" :childData="childData"></customDatePop>
</uni-popup> </uni-popup>
...@@ -404,12 +409,12 @@ ...@@ -404,12 +409,12 @@
} }
.container{ .container{
box-sizing: border-box; box-sizing: border-box;
padding: 20rpx; padding-bottom: 50rpx;
background-color: #f7f7f7;
.backArrow{ .backArrow{
background-color: #fff;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
height: 60rpx; height: 100rpx;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
position: relative; position: relative;
...@@ -422,6 +427,7 @@ ...@@ -422,6 +427,7 @@
} }
} }
.first{ .first{
color: rgba(244, 239, 212, 1); color: rgba(244, 239, 212, 1);
box-sizing: border-box; box-sizing: border-box;
background: #2a2927; background: #2a2927;
......
...@@ -55,8 +55,8 @@ ...@@ -55,8 +55,8 @@
<view class="" @click="curriculumDetail(item)"> <view class="" @click="curriculumDetail(item)">
<course-item :thumbnailPath="item.displayImage" :fileId="item.fileId" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" :fileLecturerId="item.fileLecturerId" :orderId="item.orderId"></course-item> <course-item :thumbnailPath="item.displayImage" :fileId="item.fileId" :title="item.fileTitle" :summaryBox="item.fileSynopsis" :dataList="{coursePrice:item.coursePrice,salesNumber:item.salesNumber}" :fileLecturerId="item.fileLecturerId" :orderId="item.orderId"></course-item>
</view> </view>
<view class="detailBtn"> <view >
<text class="detailBtn" @click="viewDetail(item)" style="color: #000;">订单详情></text> <text class="detailBtn" @click="viewDetail(item)" >订单详情</text>
</view> </view>
</view> </view>
<view class="countsContent"> <view class="countsContent">
...@@ -70,8 +70,7 @@ ...@@ -70,8 +70,7 @@
<view><text>产品名称</text><text>{{item.fileTitle}}</text></view> <view><text>产品名称</text><text>{{item.fileTitle}}</text></view>
<view><text>购买人</text><text>{{item.userName}}</text></view> <view><text>购买人</text><text>{{item.userName}}</text></view>
<view class="orderDetailLine"> <view class="orderDetailLine">
<text></text> <text class="infoBtn" @click="viewDetail(item)">订单详情</text>
<text @click="viewDetail(item)">订单详情></text>
</view> </view>
</view> </view>
</template> </template>
...@@ -199,7 +198,7 @@ ...@@ -199,7 +198,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container{
height: 100%; padding-bottom: 50rpx;
.top{ .top{
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -227,8 +226,9 @@ ...@@ -227,8 +226,9 @@
} }
} }
.saleStatisticalContent{ .saleStatisticalContent{
margin: 20rpx;
border-radius: 10rpx;
background-color: #fff; background-color: #fff;
margin: 10rpx 0;
padding: 20rpx 14rpx; padding: 20rpx 14rpx;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
...@@ -258,7 +258,11 @@ ...@@ -258,7 +258,11 @@
} }
} }
.saleDetailContent{ .saleDetailContent{
margin: 10rpx 20rpx; box-sizing: border-box;
padding: 20rpx 40rpx 0rpx 20rpx;
background-color: #fff;
margin: 0 20rpx;
border-radius: 10rpx;
.noListTip{ .noListTip{
font-size: 30rpx; font-size: 30rpx;
} }
...@@ -266,6 +270,8 @@ ...@@ -266,6 +270,8 @@
padding: 18rpx 0rpx 18rpx 10rpx; padding: 18rpx 0rpx 18rpx 10rpx;
border-radius: 20rpx; border-radius: 20rpx;
background-color: #fff; background-color: #fff;
border-bottom: 1rpx solid #F2F2F2;
margin-bottom: 10rpx;
.countsContent{ .countsContent{
text-align: right; text-align: right;
color: #333; color: #333;
...@@ -275,10 +281,17 @@ ...@@ -275,10 +281,17 @@
} }
.detailBtn{ .detailBtn{
font-size: 24rpx; font-size: 24rpx;
color: #4A4A4A; color:#fff;
white-space: nowrap; white-space: nowrap;
background-color: #20269B;
padding: 10rpx 20rpx;
border-radius: 40rpx;
} }
} }
.saleOrderInfoItem:last-child{
border: none;
}
.orderItemDetailBox{ .orderItemDetailBox{
padding: 10rpx 20rpx 10rpx 40rpx; padding: 10rpx 20rpx 10rpx 40rpx;
background-color: #fff; background-color: #fff;
...@@ -286,6 +299,7 @@ ...@@ -286,6 +299,7 @@
color: #4a4a4a; color: #4a4a4a;
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-size: 28rpx; font-size: 28rpx;
border-bottom: 1rpx solid #F2F2F2;
view{ view{
position: relative; position: relative;
margin-bottom: 20rpx; margin-bottom: 20rpx;
...@@ -306,13 +320,22 @@ ...@@ -306,13 +320,22 @@
width: 8rpx; width: 8rpx;
height: 60%; height: 60%;
border-radius:8rpx; border-radius:8rpx;
background-color: #FA882F; background-color: #20269B;
} }
&.orderDetailLine{ &.orderDetailLine{
justify-content: flex-end; justify-content: flex-end;
font-size: 28rpx; font-size: 28rpx;
.infoBtn{
padding: 10rpx 20rpx;
color: #fff;
border-radius: 40rpx;
background-color: #20269B;
}
}
} }
} }
.orderItemDetailBox:last-child{
border: none;
} }
.courseTab{ .courseTab{
margin-top: 20rpx; margin-top: 20rpx;
......
...@@ -117,8 +117,8 @@ ...@@ -117,8 +117,8 @@
</script> </script>
<style lang="scss" > <style lang="scss" >
.uni-popup-share { .uni-popup-share {
background-color: #F4F2F3; // background-color: #F4F2F3;
// background-color: #fff; background-color: #fff;
border-top-left-radius: 11rpx; border-top-left-radius: 11rpx;
border-top-right-radius: 11rpx; border-top-right-radius: 11rpx;
} }
......
...@@ -164,6 +164,7 @@ export default{ ...@@ -164,6 +164,7 @@ export default{
// 判断是否已满18岁 // 判断是否已满18岁
return eighteenYearsLater <= currentDate; return eighteenYearsLater <= currentDate;
}, },
// 防抖函数
debounce(fn, delay = 200) { debounce(fn, delay = 200) {
let timer = null; let timer = null;
return function (...args) { return function (...args) {
...@@ -172,5 +173,37 @@ export default{ ...@@ -172,5 +173,37 @@ export default{
fn.apply(this, args); // 延迟执行 fn.apply(this, args); // 延迟执行
}, delay); }, delay);
}; };
},
/**
* 安全可靠的运行环境判断
* @returns {'app' | 'wechat-h5' | 'wechat-mp' | 'wechat-work' | 'browser' | 'unknown'}
*/
getRuntimeEnv() {
try {
// UniApp 环境判断
if (typeof uni !== 'undefined' && uni.getEnv) {
const uniEnv = uni.getEnv();
if (uniEnv === 'app-plus') return 'app';
if (uniEnv === 'mp-weixin') return 'wechat-mp';
}
// H5 环境判断
if (
typeof window !== 'undefined' &&
window.navigator &&
window.navigator.userAgent
) {
const ua = window.navigator.userAgent.toLowerCase();
if (/micromessenger/i.test(ua)) {
return /wxwork/i.test(ua) ? 'wechat-work' : 'wechat-h5';
}
return 'browser';
}
return 'unknown';
} catch (e) {
console.warn('环境判断失败:', e);
return 'unknown';
}
} }
} }
\ No newline at end of file
export default [
{
"category": "关于团队",
"id": "1",
"icon":"icon-tuandui",
"questions": [
{
"Q": "如何成为合伙人",
"A": "申请加盟→填写个人信息→等待资质审核→审核通过后,完成加盟",
"isActive": 1
},
{
"Q": "如何邀请朋友加入",
"A": "进入\"邀请加盟\"页面→填写被邀请人信息→发起邀请→通过右上角菜单分享给朋友→受邀方填写加盟资料完成申请",
"isActive": 1
},
{
"Q": "如何查看被邀请人是否加盟成功",
"A": "进入首页→点击\"邀请加盟\"→填写\"邀请信息\"→若邀请状态显示\"成功\",即表示加盟成功",
"isActive": 1
},
{
"Q": "合伙人晋升条件",
"A": [
"见习合伙人:完成加盟申请",
"新锐合伙人:个人标准销售额≥799元",
"资深合伙人:个人标准销售额≥799元 + 团队有效人数≥5人 + 团队标准销售额≥5万元",
"精英合伙人:个人标准销售额≥799元 + 团队有效人数≥10人 + 团队标准销售额≥15万元",
"营业部部长:个人标准销售额≥799元 + 团队有效人数≥20人 + 团队标准销售额≥50万元"
],
"isActive": 1,
"isMore": true
}
]
},
{
"category": "关于订单",
"id": "2",
"icon":"icon-dingdan",
"questions": [
{
"Q": "如何查看商品订单?",
"A": "进入首页或\"我的\"页面→点击\"成交订单\"→点击我的订单→查看订单列表",
"isActive": 1
},
{
"Q": "如何分享产品",
"A": "进入产品中心→选择要分享的产品→点击\"去分享\"→发送给朋友",
"isActive": 1
},
{
"Q": "如何查看分享后成交的订单?",
"A": "进入首页或\"我的\"页面→点击\"成交订单\"→选择\"分享订单\"→查看订单列表",
"isActive": 1
},
{
"Q": "如何查看订单明细",
"A": "进入首页或\"我的\"页面→点击\"成交订单\"→选择\"分享订单\"\"我的订单\"→点击具体订单,查看明细",
"isActive": 1
}
]
},
{
"category": "关于佣金",
"id": "3",
"icon":"icon-yongjin",
"questions": [
{
"Q": "如何获得佣金",
"A": [
"见习合伙人:自购或分享产品,他人购买后可获得销售收入",
"更高级别合伙人:可额外获得团队订单的一级/二级管理津贴",
"营业部部长:可享受部长津贴",
"育成营业部部长:可享受育成津贴",
"(以上收益可叠加)"
],
"isActive": 1,
"isMore": true
},
{
"Q": "如何查看佣金",
"A": "进入首页或\"我的\"页面→点击\"佣金\"→查看佣金明细",
"isActive": 1
},
{
"Q": "如何提现佣金",
"A": "进入首页或\"我的\"页面→点击\"佣金\"→点击\"提现\"按钮→发起提现申请",
"isActive": 1
},
{
"Q": "为什么佣金状态显示\"待结算\"?",
"A": "订单成交后需等待7天结算期,期间佣金状态为\"待结算\"。",
"isActive": 1
}
]
}
]
\ No newline at end of file
...@@ -7,6 +7,7 @@ const whiteList = [ ...@@ -7,6 +7,7 @@ const whiteList = [
'/pages/orderDetail/orderDetail', '/pages/orderDetail/orderDetail',
'/pages/courseDetail/courseDetail', '/pages/courseDetail/courseDetail',
'/pages/courselist/courselist', '/pages/courselist/courselist',
'/pages/personalCenter/helpCenter?type=1',
'/pages/index/index' '/pages/index/index'
] ]
export default function initApp(){ export default function initApp(){
...@@ -65,7 +66,7 @@ function hasPermission (url) { ...@@ -65,7 +66,7 @@ function hasPermission (url) {
let islogin = uni.getStorageSync("isLogin");//在这可以使用token、vuex let islogin = uni.getStorageSync("isLogin");//在这可以使用token、vuex
// islogin = Boolean(Number(islogin));//返回布尔值 // islogin = Boolean(Number(islogin));//返回布尔值
// 在白名单中或有登录判断条件可以直接跳转 // 在白名单中或有登录判断条件可以直接跳转
console.log(whiteList.indexOf(url.slice(0,url.indexOf('?'))) !== -1);
if(whiteList.indexOf(url.slice(0,url.indexOf('?'))) !== -1 || islogin) { if(whiteList.indexOf(url.slice(0,url.indexOf('?'))) !== -1 || islogin) {
return true return true
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment