payment.vue 3.82 KB
<template>
	<view>
		<!-- 		<uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem"
			styleType="text" activeColor="#AD181F"></uni-segmented-control> -->
		<view class="searchbar">
			<uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search"
				v-model="queryParams.paymentName" placeholder="搜索缴费名称" @blur="getList" @clear="getList">
			</uni-easyinput>
			<view class="invertedbtn-red" @click="goAdd">+ 新建缴费</view>
		</view>

		<!-- 会员缴费 -->
		<view class="appList">
			<view class="appItem" v-for="item in list">
				<view class="status" @click="goDetail(item)">
					<text v-if="item.status==1" class="text-primary">审核中</text>
					<text v-if="item.status==2" class="text-success"> 审核通过</text>
					<text v-if="item.status==3" class="text-danger"> 审核拒绝</text>
					<text v-if="item.status==4" class="text-warning">已退回</text>
				</view>
				<view class="date" @click="goDetail(item)" v-if="item.commitTime">
					<uni-icons type="calendar" size="16" color="#7D8592"></uni-icons>
					{{item.commitTime}} 提交
				</view>
				<view class="name" @click="goDetail(item)">{{item.paymentName}}</view>
				<view class="flexbox" @click="goDetail(item)">
					<view>
						人数合计
						<view>{{item.personCount}}</view>
					</view>
					<view>
						新会员合计
						<view>{{item.newPersonCount}}</view>
					</view>
					<view>
						年限合计
						<view>{{item.totalYear}}</view>
					</view>
				</view>
				<view class="func" v-if="item.status==0||item.status==3||item.status==4">
					<button @click="handleUpdate(item)">编辑</button>
					<button @click="commitFN(item)">提交审核</button>
				</view>
			</view>
		</view>

	</view>
</template>

<script setup>
	import * as api from '@/common/api.js'
	import config from '@/config.js'
	import {
		ref
	} from 'vue'
	import {
		onLoad,
		onShow
	} from '@dcloudio/uni-app'
	const app = getApp()
	const queryParams = ref({
		// pageNum: 1,
		// pageSize: 10
	})
	const list = ref([])
	const total = ref(0)
	const navs = ref(['待提交', '审核中', '审核通过', '审核拒绝'])
	onShow(() => {
		if (app.globalData.isLogin) {
			getList()
		} else {

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

	function getList() {
		api.getPaymentList(queryParams.value).then(res => {
			list.value = res.rows
			total.value = res.total
		})
	}

	function goDetail(item) {
		const form = encodeURIComponent(JSON.stringify(item))
		let path = `/pages/personalVip/paymentDetail?form=${form}`
		uni.navigateTo({
			url: path
		});
	}

	function handleUpdate(item) {
		let path = `/pages/personalVip/renew?rangeId=${item.rangId}`
		uni.navigateTo({
			url: path
		});
	}

	function commitFN(row) {
		uni.showModal({
			title: '提示',
			content: `确定提交${row.paymentName}吗`,
			success: function(res) {
				if (res.confirm) {
					uni.showLoading({
						icon: 'none',
						title: '提交中'
					})
					api.personalCommit(row.rangId).then(res => {
						uni.hideLoading()
						uni.showToast({
							title: '提交成功'
						})
					})
					getList()
				}
			}
		})


	}

	function goAdd() {
		let path = `/pages/personalVip/renew`
		uni.navigateTo({
			url: path
		});
	}
</script>

<style lang="scss" scoped>
	.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;
		}
	}
</style>