score.vue 4.14 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.recordId" >
        <view @click="goDetail(item)">
          <view class="status" >
            <text :class="{
              'text-primary':item.scoreStatus=='0',
              'text-success':item.scoreStatus=='2',
              'text-danger':item.scoreStatus=='3',
              'text-warning':item.scoreStatus=='4'
            }">{{ item.scoreStatusStr }}</text>
          </view>
		
          <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</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.totalNum||'--'}}</view>
            </view>
            <view>
              总金额
              <view><text class="text-danger">¥{{(item.totalAmount*1).toFixed(2)}}</text></view>
            </view>
          </view>
        </view>
<!--        <view class="func" v-if="(item.scoreStatus=='0'||item.scoreStatus=='3' || item.scoreStatus=='4')&& item.rankStatus == '1'">
          <button @click="scoreEdit(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 'lodash'
import { ref } from 'vue'
import { onLoad,onShow } from '@dcloudio/uni-app'

const app = getApp();
const queryParams = ref({
  status: '0',
  rankStatus:'1'
})
const current = ref()
const navs = ref(['审核中', '审核通过', '审核拒绝'])
const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
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(){
  uni.showLoading({
    title: '加载中'
  })
  deptType.value = app.globalData.deptType
  getList()
}

function onClickItem(e) {
  uni.showLoading({
    title: '加载中'
  })
  queryParams.value.status = e.currentIndex
  getList()
}

function getList() {
  examApi.getRankScoreList(queryParams.value).then(res => {
	
    infoList.value = res.rows
    total.value = res.total
	
	uni.hideLoading()
  })
}

function scoreEdit(item) {
  console.log(item.sourceData)
  var obj = {
    flag: flag,
    reason: null,
    id: item.recordId
  }
		
  if (flag == '2') {
    // 拒绝
    // 弹出框填写理由
    uni.showModal({
      title: '请输入拒绝理由',
      editable: true,
      success: function(res) {
        if (res.confirm) {
          if (!res.content) {
            uni.showToast({
              title: '请输入拒绝理由',
              icon: 'none'
            })
          } else {
            obj.reason = res.content
            doApproval(obj)
          }
        }
      }
    })
  } else if (flag == '1') {
    // 二次确认
    uni.showModal({
      title: '提示',
      content: `确定审批通过吗`,
      success: function(res) {
        if (res.confirm) {
          doApproval(obj)
        }
      }
    })
  }
}
	
function doApproval(obj) {
  examApi.doMergeFlows(obj).then((res) => {
    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>