index.vue 8.61 KB
<template>
  <view class="page">
    <view class="bgbg">
      <view class="welcome">您好!
        {{memberInfo.name}}
        <br />欢迎使用中跆协会员管理系统
      </view>
      <view class="flexbox">
        <!-- userType 1:中跆协 2:省 3:市区 4:道馆-->
        <!-- 4 -->
        <view v-if="userType=='4'" @click="goAddVip">添加会员</view>
        <view v-if="userType=='4'" @click="goPath('/pages/personalVip/payment')">会员缴费</view>
        <view v-if="userType=='2'" @click="goPath('/pages/personalVip/feeBill')">会员缴费单</view>
        <!-- 3 2 1-->
        <view v-if="userType!='4'" @click="goPath('/pages/personalVip/audit')">缴费审核</view>

        <!-- 都有 -->
        <view @click="goPath('/pages/personalVip/list')">会员查询</view>
      </view>

    </view>
    <view class="girdBox">
      <view v-if="userType!='3'" @click="goPath('/pages/personalVip/mobilize')">
        <image />
        会员调动
      </view>
      <view v-if="userType!='4'" @click="goPath('/pages/group/list')">
        <image />团体会员查询
      </view>
      <!--市区 省 中跆协 -->
      <view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')">
        <image />团体会员审核
      </view>
      <view v-if="userType=='2'" @click="goPath('/pages/group/pay')">
        <image />团体会员认证
      </view>

      <view v-if="userType=='2'" @click="goPath('/pages/group/feeBill')">
        <image />团体会员缴费单
      </view>

      <view v-if="userType=='4'" @click="goPath('/pages/level/apply')">
        <image />级位考试申请
      </view>
      <view v-if="userType!='4'" @click="goPath('/pages/level/approval')">
        <image />级位考试审核
      </view>
      <view v-if="userType=='2'" @click="goPath('/pages/level/apply')">
        <image />段位考试申请
      </view>


    </view>
    <view v-if="userType=='1'" class="girdBox">
      <view @click="goPath('/pages/rank/approval?type=2')">
        <image />段位考试审核
      </view>
      <view @click="goPath('/pages/rank/scoreApproval?type=2')">
        <image />考段成绩审核
      </view>
      <view @click="goPath('/pages/rank/cert?type=2')">
        <image />考段证书发布
      </view>
      <view @click="goPath('/pages/rank/approval?type=3')">
        <image />越段考试审核
      </view>
      <view @click="goPath('/pages/rank/scoreApproval?type=3')">
        <image />越段成绩审核
      </view>
      <view @click="goPath('/pages/rank/cert?type=3')">
        <image />越段证书发布
      </view>
    </view>
    <uni-section title="待办提醒" padding>
      <template v-slot:right>
        <text @click="goMsgList" class="more">更多></text>
      </template>
      <view class="msglist">
        <view class="msgitem" v-for="n in messageList" :key="n.name" @click="readMessage(n)">
          <text class="dot" :class="n.readFlag=='1'?'done':''"></text>
          <view class="tt esp">{{n.name}}</view>
          <view class="date">{{n.createTime}}</view>
        </view>
        <view class="nodata" v-if="messageList.length==0">
          <image mode="aspectFit" src="/static/nodata.png"></image>
          <text>暂无数据</text>
        </view>
      </view>
    </uni-section>
  </view>
</template>

<script setup>
import * as api from '@/common/api.js';
import * as loginServer from '@/common/login.js';
import {
  onLoad,
  onShow,
  onReady,
  onPullDownRefresh
} from '@dcloudio/uni-app';
import {
  ref,
  getCurrentInstance
} from 'vue';


const {
  proxy
} = getCurrentInstance()
const app = getApp();
const userType = ref('1')
const memberInfo = ref({})

let proId;
const svId = ref(null);

const messageList = ref([])
onShow(() => {
  if (app.globalData.isLogin) {
    init()
  } else {
    app.firstLoadCallback = () => {
      init()
    };
  }
})
onLoad(option => {
  if (option.scene) {
    proId = decodeURIComponent(option.scene);
  } else {
    proId = option.proId;
  }
});

function goPath(path) {
  uni.navigateTo({
    url: path
  });
}

function gologin() {
  let path = '/pages/index/login';
  uni.navigateTo({
    url: path
  });
}

function goCenter() {
  let path = '/pages/usercenter/usercenter';
  uni.navigateTo({
    url: path
  });

}

function goAddVip() {
  let path = '/pages/personalVip/addVip';
  uni.navigateTo({
    url: path
  });
}

function goRenew() {
  let path = '/pages/personalVip/renew';
  uni.navigateTo({
    url: path
  });
}

function init() {
  uni.showLoading({
    title: '加载中'
  });
  loginServer.getMyOwnMemberInfo().then(res => {
    userType.value = app.globalData.userType
    memberInfo.value = app.globalData.memberInfo
    console.log(userType.value, app.globalData.authenticationStatus)
    if (userType.value != '1' && app.globalData.authenticationStatus != '2' && app.globalData
      .authenticationStatus !=
      '4') {
      // 注册引导
      // uni.navigateTo({
      // 	url: '/pages/index/perfect'
      // });
    } else {
      getMes()
    }
    uni.hideLoading();
  })


}

function getMes() {
  api.getMessage({
    pageNum: 1,
    pageSize: 10
  }).then(res => {
    if (res.rows && res.rows.length > 0)
      for (var d of res.rows) {
        switch (d.type) {
          case 30001:
            d.name = '你有一条会员缴费等待审批,点击去处理!'
            d.path = '/pages/personalVip/audit'
            break
          case 30002:
            d.name = '你有一条级位考试等待审批,点击去处理!'
            d.path = '/pages/level/approval'
            break
          case 30003:
            d.name = '你有一条段位考试等待审批,点击去处理!'
            d.path = '/pages/rank/approval'
            break
          case 30004:
            d.name = '你有一条会员调动等待审批,点击去处理!'
            d.path = '/pages/personalVip/mobillize'
            break
          case 30005:
            d.name = '你有一条团体会员认证等待审批,点击去处理!'
            d.path = '/pages/group/authentication'
            break
          case 30006:
            d.name = '你有一条段位成绩等待审批,点击去处理!'
            d.path = '/pages/rank/scoreApproval'
            break
          case 40001:
            d.name = '你有一条级位申请待提交,点击去处理!'
            d.path = `/pages/level/apply/modify?id=${d.eventId}`
            break
          case 40002:
            d.name = '你有一条段位申请待提交,点击去处理!'
            d.path = `/pages/rank/apply/modify?id=${d.eventId}`
            break
          case 40003:
            d.name = '你有一条成绩维护的数据待提交,点击去处理!'
            d.path = `/pages/rank/score/modify?id=${d.eventId}`
            break
          case 50001:
            d.name = '你有一条新的个人会员申请,点击去处理!'
            d.path = '/pages/personalVip/approvalList'
            break
        }
      }
    messageList.value = res.rows
  })
}

function readMessage(item) {
  uni.navigateTo({
    url: item.path
  });
  api.reader({
    id: item.id
  }).then(res => {
    item.readFlag = '1'
  })
}

function goMsgList() {
  let path = '/pages/index/msgList';
  uni.navigateTo({
    url: path
  });
}

function goItem(item) {
  if (item.path) {
    let path = item.path
    // if (checkUserPhone(path)) {
    uni.navigateTo({
      url: item.path
    });
    // }
  } else {
    uni.showToast({
      title: `暂未开放`,
      icon: 'none'
    });
  }

}
</script>
<style scope lang="scss">
	.welcome {
		padding: 55rpx;
		line-height: 55rpx;
		font-size: 36rpx;
	}

	.flexbox {
		display: flex;
		justify-content: space-around;
	}

	.image {
		width: 25px;
		height: 25px;
	}

	.grid-item-box {
		flex: 1;
		// position: relative;
		/* #ifndef APP-NVUE */
		display: flex;
		/* #endif */
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 15px 0;
	}

	.grid-item-box-row {
		flex: 1;
		// position: relative;
		/* #ifndef APP-NVUE */
		display: flex;
		/* #endif */
		flex-direction: row;
		align-items: center;
		justify-content: center;
		padding: 15px 0;
	}

	.grid-dot {
		position: absolute;
		top: 5px;
		right: 15px;
	}

	:deep(.uni-section) {
		background-color: transparent;
	}

	:deep(.uni-section .uni-section-header__content) {
		font-size: 36rpx;
		color: #29343C;
	}
</style>