payPersonList.vue 3.16 KB
<template>
	<view>
		<z-paging ref="paging" v-model="list" @query="getQuery" emptyViewImg="/static/nodata.png">

			<view class="searchbar" :slot="top">
				<uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search"
					v-model="queryParams.name" @blur="getList" @clear="getList" placeholder="搜索姓名">
				</uni-easyinput>

			</view>
			<view class="userlist">
				<view class="item" v-for="(n,index) in list" :key="index" @click="handleInfo(n)">
					<view class="w100">
						<view class="name">{{n.personName}}<text>({{n.memberInfoName}})</text></view>
						<view class="date">原有效期至 {{n.originValidityDate||'--'}}</view>
						<view class="flexbox" v-if="userType=='2'||userType=='1'">
							<view>
								单价
								<text>¥{{n.unitPrice}}</text>
							</view>
							<view>
								年限
								<text>{{n.payYear}}</text>
							</view>
							<view>
								总价
								<text class="text-danger">¥{{n.allPrice}}</text>
							</view>
						</view>
					</view>
				</view>
			</view>
		</z-paging>
	</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 queryParams = ref({
		pageNum: 1,
		pageSize: 20
	})
	const paging = ref(null)
	const userType = ref('')
	const list = ref([])
	const total = ref(0)
	const app = getApp();
	onLoad((option) => {
		queryParams.value.recordId = option.recordId
	})
	onMounted(() => {
		if (app.globalData.isLogin) {
			userType.value = app.globalData.userType
			getList()
		} else {
			app.firstLoadCallback = () => {
				userType.value = app.globalData.userType
				getList()
			};
		}
	})

	function getQuery(pageNum, pageSize) {
		queryParams.value.pageNum = pageNum
		queryParams.value.pageSize = pageSize
		api.getDetailPersonList(queryParams.value).then(res => {
			paging.value.complete(res.rows);
		})
	}

	function getList() {
		api.getDetailPersonList(queryParams.value).then(res => {
			paging.value.complete(res.rows);
		})
	}

	function handleInfo(n) {
		uni.navigateTo({
			url: `/personalVip/detail?perId=${n.perId}`
		})
	}
</script>

<style scoped lang="scss">
	.userlist {
		box-sizing: border-box;
		padding: 20rpx 20rpx 0;

		.item {
			border-bottom: 1px dashed #e5e5e5;
			position: relative;

			.date {
				margin-top: 10rpx;
			}

			.name {
				text {
					margin-left: 1em;
					color: #4C5359;
					font-size: 26rpx;
				}
			}

			.nian {
				position: absolute;
				right: 20rpx;
				font-size: 30rpx;
				color: #AD181F;
			}
		}
	}

	.searchbar {
		display: flex;
		align-items: center;
		padding: 25rpx;
		box-sizing: border-box;

		.invertedbtn-red {
			margin-left: 15rpx;
			font-size: 30rpx;
			padding: 16rpx 20rpx;
			box-sizing: border-box;
			border-radius: 50rpx;
			background-color: #fff;
		}

		:deep(.uni-easyinput .uni-easyinput__content) {
			border-radius: 35rpx;
			border: none;
			height: 70rpx;
		}

		:deep(.uni-easyinput__content-input) {
			font-size: 26rpx;
		}
	}
</style>