185 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Vue
		
	
	
<!-- 页面  -->
 | 
						|
<template>
 | 
						|
  <su-popup
 | 
						|
    :show="state.show"
 | 
						|
    type="center"
 | 
						|
    round="10"
 | 
						|
    @close="state.show = false"
 | 
						|
    :isMaskClick="false"
 | 
						|
    maskBackgroundColor="rgba(0, 0, 0, 0.7)"
 | 
						|
  >
 | 
						|
    <view class="notice-box">
 | 
						|
      <view class="img-wrap">
 | 
						|
        <image
 | 
						|
          class="notice-img"
 | 
						|
          :src="sheep.$url.static(state.event.image)"
 | 
						|
          mode="aspectFill"
 | 
						|
        ></image>
 | 
						|
      </view>
 | 
						|
      <view class="notice-title">{{ state.event.title }}</view>
 | 
						|
      <view class="notice-detail">{{ state.event.subtitle }}</view>
 | 
						|
      <button
 | 
						|
        class="ss-reset-button notice-btn ui-Shadow-Main ui-BG-Main-Gradient"
 | 
						|
        @tap="onTap(state.event.action)"
 | 
						|
      >
 | 
						|
        {{ state.event.button }}
 | 
						|
      </button>
 | 
						|
      <button class="ss-reset-button back-btn" @tap="sheep.$router.back()"> 返回 </button>
 | 
						|
    </view>
 | 
						|
  </su-popup>
 | 
						|
</template>
 | 
						|
 | 
						|
<script setup>
 | 
						|
  import sheep from '@/sheep';
 | 
						|
  import { reactive, watch } from 'vue';
 | 
						|
 | 
						|
  const props = defineProps({
 | 
						|
    error: {
 | 
						|
      type: Number,
 | 
						|
      default: 0,
 | 
						|
    },
 | 
						|
  });
 | 
						|
  const emits = defineEmits(['getAgentInfo']);
 | 
						|
  const state = reactive({
 | 
						|
    event: {},
 | 
						|
    show: false,
 | 
						|
  });
 | 
						|
 | 
						|
  watch(
 | 
						|
    () => props.error,
 | 
						|
    (error) => {
 | 
						|
      if (error !== 0 && error !== 100) {
 | 
						|
        state.event = eventMap[error];
 | 
						|
        state.show = true;
 | 
						|
      }
 | 
						|
    },
 | 
						|
  );
 | 
						|
 | 
						|
  async function onTap(eventName) {
 | 
						|
    switch (eventName) {
 | 
						|
      case 'back': // 返回
 | 
						|
        sheep.$router.back();
 | 
						|
        break;
 | 
						|
      case 'apply': // 需提交资料
 | 
						|
        sheep.$router.go('/pages/commission/apply');
 | 
						|
        break;
 | 
						|
      case 'reApply': // 直接重新申请
 | 
						|
        let { error } = await sheep.$api.commission.apply();
 | 
						|
        if (error === 0) {
 | 
						|
          emits('getAgentInfo');
 | 
						|
        }
 | 
						|
        break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  const eventMap = {
 | 
						|
    // 关闭
 | 
						|
    101: {
 | 
						|
      image: '/static/img/shop/commission/close.png',
 | 
						|
      title: '分销中心已关闭',
 | 
						|
      subtitle: '该功能暂不可用',
 | 
						|
      button: '知道了',
 | 
						|
      action: 'back',
 | 
						|
    },
 | 
						|
    // 禁用
 | 
						|
    102: {
 | 
						|
      image: '/static/img/shop/commission/forbidden.png',
 | 
						|
      title: '账户已被禁用',
 | 
						|
      subtitle: '该功能暂不可用',
 | 
						|
      button: '知道了',
 | 
						|
      action: 'back',
 | 
						|
    },
 | 
						|
    // 补充信息
 | 
						|
    103: {
 | 
						|
      image: '/static/img/shop/commission/apply.png',
 | 
						|
      title: '待完善信息',
 | 
						|
      subtitle: '请补充您的信息后提交审核',
 | 
						|
      button: '完善信息',
 | 
						|
      action: 'apply',
 | 
						|
    },
 | 
						|
    // 审核中
 | 
						|
    104: {
 | 
						|
      image: '/static/img/shop/commission/pending.png',
 | 
						|
      title: '正在审核中',
 | 
						|
      subtitle: '请耐心等候结果',
 | 
						|
      button: '知道了',
 | 
						|
      action: 'back',
 | 
						|
    },
 | 
						|
    // 重新提交
 | 
						|
    105: {
 | 
						|
      image: '/static/img/shop/commission/reject.png',
 | 
						|
      title: '抱歉!您的申请信息未通过',
 | 
						|
      subtitle: '请尝试修改后重新提交',
 | 
						|
      button: '重新申请',
 | 
						|
      action: 'apply',
 | 
						|
    },
 | 
						|
    // 直接重新申请
 | 
						|
    106: {
 | 
						|
      image: '/static/img/shop/commission/reject.png',
 | 
						|
      title: '抱歉!您的申请未通过',
 | 
						|
      subtitle: '请尝试重新申请',
 | 
						|
      button: '重新申请',
 | 
						|
      action: 'reApply',
 | 
						|
    },
 | 
						|
    // 冻结
 | 
						|
    107: {
 | 
						|
      image: '/static/img/shop/commission/freeze.png',
 | 
						|
      title: '抱歉!您的账户已被冻结',
 | 
						|
      subtitle: '如有疑问请联系客服',
 | 
						|
      button: '联系客服',
 | 
						|
      action: 'chat',
 | 
						|
    },
 | 
						|
  };
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
  .notice-box {
 | 
						|
    display: flex;
 | 
						|
    flex-direction: column;
 | 
						|
    justify-content: center;
 | 
						|
    align-items: center;
 | 
						|
    background-color: #fff;
 | 
						|
    width: 612rpx;
 | 
						|
    min-height: 658rpx;
 | 
						|
    background: #ffffff;
 | 
						|
    padding: 30rpx;
 | 
						|
    border-radius: 20rpx;
 | 
						|
    .img-wrap {
 | 
						|
      margin-bottom: 50rpx;
 | 
						|
      .notice-img {
 | 
						|
        width: 180rpx;
 | 
						|
        height: 170rpx;
 | 
						|
      }
 | 
						|
    }
 | 
						|
    .notice-title {
 | 
						|
      font-size: 35rpx;
 | 
						|
      font-weight: bold;
 | 
						|
      color: #333;
 | 
						|
      margin-bottom: 28rpx;
 | 
						|
    }
 | 
						|
    .notice-detail {
 | 
						|
      font-size: 28rpx;
 | 
						|
      font-weight: 400;
 | 
						|
      color: #999999;
 | 
						|
      line-height: 36rpx;
 | 
						|
      margin-bottom: 50rpx;
 | 
						|
    }
 | 
						|
    .notice-btn {
 | 
						|
      width: 492rpx;
 | 
						|
      line-height: 70rpx;
 | 
						|
      border-radius: 35rpx;
 | 
						|
      font-size: 28rpx;
 | 
						|
      font-weight: 500;
 | 
						|
      color: #ffffff;
 | 
						|
      margin-bottom: 10rpx;
 | 
						|
    }
 | 
						|
    .back-btn {
 | 
						|
      width: 492rpx;
 | 
						|
      line-height: 70rpx;
 | 
						|
      font-size: 28rpx;
 | 
						|
      font-weight: 500;
 | 
						|
      color: var(--ui-BG-Main-gradient);
 | 
						|
      background: none;
 | 
						|
    }
 | 
						|
  }
 | 
						|
</style>
 |