applyList.vue 5.2 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 list">
				<view class="status" @click="goDetail(item)">
	            <text v-if="item.auditStatus == 0">审核中</text>
	            <text v-if="item.auditStatus == 1" class="text-success">审核通过</text>
	            <text v-if="item.auditStatus == 2" class="text-danger">审核拒绝</text>
	            <text v-if="item.auditStatus == 3" class="text-warning">审核退回</text>
				</view>
				<view class="date">提交日期:{{item.content.commitTime}}</view>
				<view class="date" v-if="item.content.validityTime">原有效期:{{item.content.validityTime}}</view>
				<view class="name" @click="goDetail(item)">{{item.content.certName}}</view>
				<view class="flexbox" @click="goDetail(item)">
					<view>
						缴费单位
						<view>{{ item.content.memberName }}</view>
					</view>
					<view v-if="userType = '3'">
						所属省份
						<view>{{item.content.province}}</view>
					</view>
					<view>
						年限
						<view>{{item.content.renewYear}}</view>
					</view>
					<view v-if="deptType == 1">
						团体会员/新会员
						<view>{{item.content.allCount}}/{{item.content.newCount}}</view>
					</view>
					<view v-if="deptType == 1">
						费用合计
						<view> {{ (item?.content?.allFee*1).toFixed(2) }}</view>
					</view>
				</view>
				<view class="func" v-if="(deptType == 1&&item.ztxRes == 0)||((deptType == 2 || deptType == 3)&&item.shenRes == 0)">
					<button @click="audit(item.recordId,'0')">拒绝</button>
					<button @click="audit(item.recordId,'1')">同意</button>
				</view>
				<view class="func" v-if="(deptType == 6&&(item.status == 0 || item.status == 2))">
					<button>提交审核</button>
				</view>
			</view>
		</view>



		<view class="nodata" v-if="list.length==0">
			<image mode="aspectFit" src="/static/nodata.png"></image>
			<text>暂无数据</text>
		</view>
	</view>
</template>

<script setup>
	import * as api from '@/common/api.js'
	import config from '@/config.js'
	import {
		onMounted,
		ref
	} from 'vue'
	import {
		onLoad
	} from '@dcloudio/uni-app'
	const app = getApp();
	const queryParams = ref({
		// pageNum: 1,
		// pageSize: 10
		auditStatus:'0'
	})
	const navs = ref(['审核中', '审核通过', '审核拒绝', '退回'])
	const current = ref()
	const list = ref([])
	const total = ref(0)
	const deptType = ref('')
	const userType = ref('')
	onLoad(() => {
		if (app.globalData.isLogin) {
			init()
		} else {

			app.firstLoadCallback = () => {
				init()
			};
		}
	})

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

	function onClickItem(e) {
		console.log(e)
		queryParams.value.auditStatus = e.currentIndex
		getList()
	}

	function getList() {
		uni.showLoading({
			title:'加载中'
		})
		if(deptType.value==2||deptType.value==3){
			// 省
			queryParams.value.mergeFlag = 0
		}else if(deptType.value==1){
			queryParams.value.noEmpty = 1
		}else if( deptType.value==4||deptType.value==5){
			queryParams.value.noEmpty=1
		}
		api.getGroupList(queryParams.value).then(res => {
			uni.hideLoading()
			list.value = res.rows
			list.value.forEach(item => {
			      item.content = JSON.parse(item.content)
			      // item.doc = JSON.parse(item.doc)	
			})
			total.value = res.total
		})
	}

	function audit(recordId, flag) {
		if (flag == '0') {
			// 拒绝
			// 弹出框填写理由
			uni.showModal({
				title: '请输入拒绝理由',
				editable: true,
				success: function(res) {
					if (res.confirm) {
						if (!res.content) {
							uni.showToast({
								title: '请输入拒绝理由',
								icon: 'none'
							})
						} else {
							doApproval(recordId, flag, res.content)
						}
					}
				}
			})
		} else if (flag == '1') {
			// 二次确认
			uni.showModal({
				title: '提示',
				content: `确定审批通过吗`,
				success: function(res) {
					if (res.confirm) {
						doApproval(recordId, flag)
					}
				}
			})
		}
	}

	function doApproval(recordId, flag, reason) {
		var obj = {
			flag: flag,
			reason: reason || '',
			recordIds: []
		}
		obj.recordIds.push(recordId)
		console.log(obj)
		api.audit(obj).then((res) => {
			uni.showToast({
				title: '操作成功',
				icon: 'none'
			})
			getList()
		})
	}

	function goDetail(item) {
		const auditLog  = encodeURIComponent(JSON.stringify(item.auditLog))
		const form  = encodeURIComponent(JSON.stringify(item))
		
		if(userType.value=='1'){
			// 查看
			let path = `/pages/group/apply/applyDetail?rangeId=${item.id}&auditLog=${auditLog}&form=${form}`
			uni.navigateTo({
				url: path
			});
		} else if(userType.value=='3'){
			// 审核记录
			let path = `/pages/group/apply/record?certId=${item.content.certId}`
			uni.navigateTo({
				url: path
			});
		}


	}
</script>

<style scoped>
.mt0{margin-top: 0!important;}
.appList .appItem .name{width: 80%;word-break: break-all;}
</style>