score.vue 4.16 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 'underscore'
	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
		if (options.type == 2) {
			uni.setNavigationBarTitle({
				title: '段位成绩录入'
			})
		}
		if (options.type == 3) {
			uni.setNavigationBarTitle({
				title: '越段成绩录入'
			})
		}
	})

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

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

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

	function getList() {
		uni.showLoading({
			title: '加载中',
			mask: true
		})
		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) {
		uni.showLoading({
			title: '加载中'
		})
		examApi.doMergeFlows(obj).then((res) => {
			uni.hideLoading()
			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>