265 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			265 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
|   <view v-if="isPop">
 | |
|     <view class="pop-bg" @click="closeFunc"></view>
 | |
|     <view class="pop-box">
 | |
|       <view class="order-detail">
 | |
|         <view class="d-e-c"
 | |
|           ><u-icon
 | |
|             @click="closeFunc"
 | |
|             name="close"
 | |
|             size="30rpx"
 | |
|             color="#999"
 | |
|           ></u-icon
 | |
|         ></view>
 | |
|         <view class="p-0-20 f40 fb tc">{{ displayText }}</view>
 | |
|         <view class="product-box">
 | |
|           <view class="top-tabbar">
 | |
|             <view
 | |
|               v-for="(tab, index) in tabs"
 | |
|               :key="index"
 | |
|               :class="state_active === index ? 'tab-item active' : 'tab-item'"
 | |
|               @click="stateFunc(index)"
 | |
|               >{{ $t(tab.text) }}</view
 | |
|             >
 | |
|             <view class="preIcon" @click="previous">
 | |
|               <u-icon name="arrow-left" size="80rpx" color="#007AFF"></u-icon>
 | |
|             </view>
 | |
|           </view>
 | |
|           <view class="product-list">
 | |
|             <view
 | |
|               v-for="(expert, index) in expertList"
 | |
|               :key="index"
 | |
|               class="product-item"
 | |
|             >
 | |
|               <view class="product-info">
 | |
|                 <view class="text-rank">NO.0{{ expert.rank }}</view>
 | |
|                 <image
 | |
|                   :src="
 | |
|                     expert.headPath ? expert.headPath : '/static/default.png'
 | |
|                   "
 | |
|                   class="item image"
 | |
|                 ></image>
 | |
|                 <view class="member-name">{{ expert.memberName }}</view>
 | |
|               </view>
 | |
|             </view>
 | |
|           </view>
 | |
|           <view class="nextIcon" @click="next">
 | |
|             <u-icon name="arrow-right" size="80rpx" color="#007AFF"></u-icon>
 | |
|           </view>
 | |
|         </view>
 | |
|       </view>
 | |
|     </view>
 | |
|   </view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| export default {
 | |
|   data() {
 | |
|     return {
 | |
|       state_active: 0,
 | |
|       loading: false,
 | |
|       expertList: [],
 | |
|       memberName: "",
 | |
|       rank: "",
 | |
|       wallType: 6,
 | |
|       displayText: this.$t("S_L_12"),
 | |
|       tabs: [{ text: "年度" }, { text: "季度" }, { text: "月度" }],
 | |
|     };
 | |
|   },
 | |
|   props: ["isPop"],
 | |
|   mounted() {
 | |
|     this.getnext();
 | |
|   },
 | |
|   methods: {
 | |
|     next() {
 | |
|       this.$emit("next");
 | |
|       if (this.wallType === 6) {
 | |
|         this.wallType = 9;
 | |
|         this.displayText = this.$t("S_L_13");
 | |
|       } else if (this.wallType === 5) {
 | |
|         this.wallType = 8;
 | |
|         this.displayText = this.$t("S_L_13");
 | |
|       } else if (this.wallType === 4) {
 | |
|         this.wallType = 7;
 | |
|         this.displayText = this.$t("S_L_13");
 | |
|       }
 | |
|       this.getData();
 | |
|       this.displayText = this.$t("S_L_13");
 | |
|     },
 | |
|     previous() {
 | |
|       this.$emit("previous");
 | |
|       this.getnext();
 | |
|       this.displayText = this.$t("S_L_12");
 | |
|     },
 | |
|     stateFunc(index) {
 | |
|       if (this.state_active !== index) {
 | |
|         this.loading = true;
 | |
|         this.state_active = index;
 | |
|         if (index === 0) {
 | |
|           if(this.displayText == this.$t("S_L_13")){
 | |
|             this.wallType=9
 | |
|             this.getData();
 | |
|           }else{
 | |
|             this.wallType = 6;
 | |
|           this.displayText = this.$t("S_L_12");
 | |
|              this.getnext();
 | |
|           }
 | |
|         } else if (index === 1) {
 | |
|            if(this.displayText == this.$t("S_L_13")){
 | |
|             this.wallType=8
 | |
|             this.getData();
 | |
|           }else{
 | |
|             this.wallType = 5;
 | |
|           this.displayText = this.$t("S_L_12");
 | |
|              this.getnext();
 | |
|           }
 | |
|         } else if (index === 2) {
 | |
|            if(this.displayText == this.$t("S_L_13")){
 | |
|             this.wallType=7
 | |
|             this.getData();
 | |
|           }else{
 | |
|             this.wallType = 4;
 | |
|           this.displayText = this.$t("S_L_12");
 | |
|              this.getnext();
 | |
|           }
 | |
|         }
 | |
|      
 | |
|       }
 | |
|     },
 | |
|     closeFunc() {
 | |
|       this.$emit("close");
 | |
|     },
 | |
|     getData() {
 | |
|       let self = this;
 | |
|       self.loading = true;
 | |
|       uni.showLoading({
 | |
|         title: self.$t("MN_F_6"),
 | |
|       });
 | |
|       self._post(
 | |
|         "member/api/achieve/repurchase",
 | |
|         {
 | |
|           wallType: self.wallType,
 | |
|         },
 | |
|         (res) => {
 | |
|           console.log(self.wallType);
 | |
|           self.expertList = res.rows;
 | |
|           console.log(self.expertList);
 | |
|           self.loading = false;
 | |
|           uni.hideLoading();
 | |
|         }
 | |
|       );
 | |
|     },
 | |
|     getnext() {
 | |
|       let self = this;
 | |
|       self.loading = true;
 | |
|       uni.showLoading({
 | |
|         title: self.$t("MN_F_6"),
 | |
|       });
 | |
|       self._post(
 | |
|         "member/api/achieve/recommend",
 | |
|         {
 | |
|           wallType: self.wallType,
 | |
|         },
 | |
|         (res) => {
 | |
|           console.log(self.wallType);
 | |
|           self.expertList = res.rows;
 | |
|           console.log(self.expertList);
 | |
|           self.loading = false;
 | |
|           uni.hideLoading();
 | |
|         }
 | |
|       );
 | |
|     },
 | |
|   },
 | |
| };
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| .pop-box {
 | |
|   width: 90%;
 | |
|   height: auto;
 | |
|   box-sizing: border-box;
 | |
|   position: fixed;
 | |
|   top: 18%;
 | |
|   left: 0;
 | |
|   right: 0;
 | |
|   margin: auto;
 | |
|   background-color: #ffffff;
 | |
|   border-radius: 25rpx;
 | |
|   z-index: 100;
 | |
| }
 | |
| 
 | |
| .order-detail {
 | |
|   padding: 23rpx;
 | |
|   max-height: 80vh;
 | |
|   overflow-y: auto;
 | |
| }
 | |
| .button-wrapper {
 | |
|   display: flex;
 | |
| }
 | |
| .preIcon,
 | |
| .nextIcon {
 | |
|   position: absolute;
 | |
|   top: 60%;
 | |
|   transform: translateY(-50%);
 | |
|   z-index: 10;
 | |
| }
 | |
| .preIcon {
 | |
|   left: 0;
 | |
| }
 | |
| .nextIcon {
 | |
|   right: 0;
 | |
| }
 | |
| .button-wrapper:first-child {
 | |
|   margin-right: 50rpx;
 | |
| }
 | |
| 
 | |
| .button-wrapper:last-child {
 | |
|   margin-left: 40rpx;
 | |
| }
 | |
| .product-list {
 | |
|   display: flex;
 | |
|   flex-direction: column;
 | |
|   align-items: center;
 | |
| }
 | |
| .product-box {
 | |
|   padding: 26rpx 20rpx 0 20rpx;
 | |
|   background: #ffffff;
 | |
|   margin-bottom: 20rpx;
 | |
| 
 | |
|   .product-item {
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
|     margin: 20rpx 2rpx 20rpx 0;
 | |
|   }
 | |
| 
 | |
|   .product-info {
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     margin-bottom: 10rpx;
 | |
|   }
 | |
| }
 | |
| .image {
 | |
|   width: 120rpx;
 | |
|   height: 120rpx;
 | |
|   border-radius: 50%;
 | |
| }
 | |
| .text-rank {
 | |
|   margin-right: 30rpx;
 | |
|   font-size: 26rpx;
 | |
|   font-weight: bold;
 | |
|   color: #fb3024;
 | |
| }
 | |
| .member-name {
 | |
|   margin-left: 30rpx;
 | |
| }
 | |
| .pop-bg {
 | |
|   position: fixed;
 | |
|   top: 0;
 | |
|   left: 0;
 | |
|   bottom: 0;
 | |
|   right: 0;
 | |
|   z-index: 98;
 | |
|   background-color: rgba(0, 0, 0, 0.6);
 | |
| }
 | |
| </style>
 |