cert.vue 3.15 KB
<template>
  <view>
    <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem"
                           styleType="text" activeColor="#AD181F"></uni-segmented-control>
			
    <view class="appList">
      <view class="appItem" v-for="item in infoList" :key="item.payId" >
        <view @click="goDetail(item)">
          <view class="status" >
            <text :class="{
              'text-primary':item.certStatus=='0',
              'text-warning':item.certStatus=='1',
              'text-success':item.certStatus=='2',
            }">{{ item.certStatusStr }}</text>
          </view>
		
          <view class="date">结算编号:{{item.payCode}}</view>
          <view class="name mt0" >{{item.name}}</view>
          <view class="pp esp">考试时间:{{item.startTime?.substring(0,16)}}{{item.endTime?.substring(0,16)}}</view>
          <view class="flexbox" >
            <view>
              申请日期
              <view>{{item.applyTime?.substring(0, 10)}}</view>
            </view>
            <view>
              申请单位
              <view>{{item.memberName}}</view>
            </view>
            <view>
              已发证书
              <view>{{item.hasCerts}}</view>
            </view>
            <view>
              待发证书
              <view>{{item.noCerts}}</view>
            </view>
          </view>
        </view>
        <view class="func">
          <button @click="send(item)">一键生成</button>
        </view>
      </view>
    </view>
    <view class="nodata" v-if="infoList.length==0">
      <image mode="aspectFit" src="/static/nodata.png"></image>
      <text>暂无数据</text>
    </view>
  </view>
</template>

<script setup>
import * as examApi from '@/common/api_exam.js'
import _ from 'underscore'
import { ref } from 'vue'
import { onLoad,onShow } from '@dcloudio/uni-app'

const app = getApp();
const queryParams = ref({})
const current = ref()
const navs = ref(['未发放', '部分发放', '已发放'])
const deptType = ref('')
const infoList = ref([])
const total = ref(0)

onLoad((options)=>{
  queryParams.value.type=options.type
})

onShow(() => {
  if (app.globalData.isLogin) {
    init()
  } else {
    app.firstLoadCallback = () => {
      init()
    };
  }
})

function init(){
  deptType.value = app.globalData.deptType
  getList()
}

function onClickItem(e) {
  queryParams.value.certStatus = e.currentIndex
  getList()
}

function getList() {
	uni.showLoading({
		title: '加载中',
		mask: true
	})
  examApi.certsLList(queryParams.value).then(res => {
    uni.hideLoading()
    infoList.value = res.rows
    total.value = res.total
  })
}

function send(item) {
  uni.showModal({
    title: '提示',
    content: `确定一键下发 ${item.name} 的证书?`,
    success: function(res) {
      if (res.confirm) {
		  examApi.submitCert([{
			  id: item.payId
		  }]).then(()=>{
			  uni.showToast({
			    title: '操作成功',
			    icon: 'none'
			  })
			  getList()
		  })
      }
    }
  })
}

function goDetail(item) {
  let path = `/pages/rank/applyDetail?examId=${item.examId}`
  uni.navigateTo({
    url: path
  });
}

</script>

<style lang="scss" scoped>

</style>