pay.vue 4.43 KB
<template>
	<view>
		<!-- 会员认证 -->
		<view class="searchbar">
			<uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search"
				v-model="queryParams.rangeName" placeholder="缴费名称" @blur="getList" @clear="getList">
			</uni-easyinput>
			<view class="invertedbtn-red" v-if="userType=='2'" @click="goAddPay">+ 新建缴费</view>
		</view>
		<view class="appList">
			<view class="appItem" v-for="(item,index) in list" :key="index">
				<view class="status" @click="goDetail(item)">
					<text v-if="item?.content?.status==0" class="text-primary">待提交</text>
					<text v-if="item?.content?.status==1" class="text-primary">审核中</text>
					<text v-if="item?.content?.status==2" class="text-success"> 审核通过</text>
					<text v-if="item?.content?.status==3" class="text-danger"> 审核拒绝</text>
					<text v-if="item?.content?.status==4" class="text-warning">已撤回</text>
				</view>
				<view class="date">{{item?.content?.commitTime}} 提交</view>
				<view class="text-primary" v-if="item.wfCode">{{item.wfCode}}</view>
				<view class="name mt0" @click="goDetail(item)">{{item.rangeName}}</view>
				<view class="flexbox" @click="goDetail(item)">
					<view>
						会员合计
						<view>{{item.allCount}}</view>
					</view>
					<view v-if="userType!='2'">
						续费年限
						<view>{{item.content?.renewYear}}</view>
					</view>
					<view :class="userType=='2'?'w50':''">
						年限合计
						<view>{{item.totalRenewYear}}</view>
					</view>
				</view>
				<view class="func" v-if="item.content?.status==0||item.content?.status==3||item.content?.status==4">
					<button @click="handleDelete(item)">删除</button>
					<button @click="handleUpdate(item)">编辑</button>
					<button @click="commitFN(item)">提交审核</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,onShow
	} from '@dcloudio/uni-app'
	const app = getApp();
	const list = ref([])
	const queryParams = ref({})
	const userType = ref('')
	const UpPop = ref(null)
	const form = ref({
		docId:'',
		payTime:'',
		url:'',
		remark:''
	})
	onShow(() => {
		if (app.globalData.isLogin) {
			init()
		} else {

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

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

	function getList() {
		api.getPayList(queryParams.value).then(res => {
			  for (const item of res.rows) {
			    item.content = null
			    if (item.certList?.length > 0) {
			      item.content = item.certList[0]
			    }
			  }
			list.value = res.rows
		})
	}

	function commitFN(row) {
		uni.showModal({
			title: '提示',
			content: `确定提交吗`,
			success: function(res) {
				api.commitGroupPay(row.rangeId).then(res2=>{
					uni.showToast({
						title:`提交成功!`
					})
					getList()
				})
			}
		})
		
	}
	function goDetail(item) {
		//详情
		const form  = encodeURIComponent(JSON.stringify(item))
		// 查看
		let path = `/group/payDetail?&form=${form}`
		uni.navigateTo({
			url: path
		});
	}
	
	function goAddPay(){
		let path = `/group/addGroupMemberPay`
		uni.navigateTo({
			url: path
		});
	}
	function handleDelete(row){
		uni.showModal({
			title: '提示',
			content: `确定删除${row.rangeName}吗`,
			success: function(res) {
				api.delRange(row.rangeId).then(res2=>{
					uni.showToast({
						title:`删除成功!`
					})
					getList()
				})
			}
		})
	}
	function handleUpdate(row){
		let path = `/group/addGroupMemberPay?rangeId=${row.rangeId}`
		uni.navigateTo({
			url: path
		});
	}
	
</script>

<style scoped lang="scss">
	.searchbar {
		display: flex;
		align-items: center;
		padding: 25rpx;
		box-sizing: border-box;
	
		:deep(.uni-easyinput .uni-easyinput__content) {
			border-radius: 35rpx;
			border: none;
			height: 70rpx;
		}
	
		:deep(.uni-easyinput__content-input) {
			font-size: 26rpx;
		}
	
		.invertedbtn-red {
			border-radius: 50px;
			background-color: #fff;
	
			font-size: 30rpx;
			padding: 10rpx 20rpx;
		}
	}
	.popBody {
		font-size: 28rpx;
		line-height: 1.5;
		overflow: auto;
		padding: 30rpx;

		.btn-red {
			margin: 50rpx 0 30rpx;
		}
	}
</style>