<!--
 * @Title: 
 * @Description: 危险区人员清单
 * @Author: swp
 * @Date: 2022-08-24 10:49:21
 * @LastEditors: 
 * @LastEditTime: 2022-08-24 10:49:21
-->
<template>
	<view>
		<uni-nav-bar dark :fixed="true" backgroundColor="#3F9EFF" statusBar="false" left-icon="left" left-text="返回"
			@clickLeft="toBack">
			<view class="nav-title">
				<text>{{title}}</text>
			</view>
		</uni-nav-bar>
		<!-- 		<scroll-view scroll-y="true" :refresher-enabled="true" :refresher-triggered='triggered'
			:refresher-threshold="100" refresher-background="lightpink" @refresherpulling="onPulling"
			@refresherrefresh="onRefresh" @refresherrestore="onRestore" @refresherabort="onAbort"> -->
		<uni-collapse @change="searchAreaStatus">
			<uni-collapse-item :show-animation="true" :open="true">
				<template v-slot:title>
					<view class="view-flex-block-center" style="height: 40px;width: 100%;">
						<view class="view-flex-inline-center">
							<text v-if="showSearch" style="color: coral;">点击收起查询区</text>
							<text v-else style="color: coral;">点击展开查询区</text>
						</view>
					</view>
				</template>
			</uni-collapse-item>
		</uni-collapse>
		<view v-if="showSearch" class="search-block">
			<view style="padding-left: 10px;padding-right: 10px;margin-top: 10px;">
				<view>
					<uni-data-select v-model="cityRegionValue" :localdata="cityRegionData" @change="cityRegionChange"
						placeholder="请选择盟市"></uni-data-select>
				</view>
				<view style="margin-top: 10px;">
					<uni-data-select v-model="districtRegionValue" :localdata="districtRegionData"
						@change="districtRegionChange" placeholder="请选择区旗县"></uni-data-select>
				</view>
				<view style="margin-top: 10px;">
					<uni-data-select v-model="townRegionValue" :localdata="townRegionData" @change="townRegionChange"
						placeholder="请选择乡镇"></uni-data-select>
				</view>
				<view style="margin-top: 10px;">
					<uni-data-select v-model="countryRegionValue" :localdata="countryRegionData"
						@change="countryRegionChange" placeholder="请选择村"></uni-data-select>
				</view>
				<view style="margin-top: 10px;">
					<uni-data-select v-model="dangerAreaValue" :localdata="dangerAreaData" @change="dangerAreaChange"
						placeholder="请选择危险区"></uni-data-select>
				</view>
			</view>
			<view class="rtu-code" style="margin-top: 10px;">
				<uni-easyinput :styles="inputStyles" @input="personNameValInput" prefixIcon="search"
					v-model="personNameVal" placeholder="请录入户主名称">
				</uni-easyinput>
			</view>
			<view class="submit-btn">
				<button type="default" @click="search">查 询</button>
			</view>
		</view>
		<view class="container">
			<uni-list>
				<uni-list-item v-for="item in list" :key="item.id">
					<template v-slot:body>
						<view class="list-item-block">
							<view class="line">
								<text class="text text-ellipsis">户主姓名：{{item.personName}}</text>
							</view>
							<view class="line">
								<text class="text text-ellipsis">手机号：{{item.personId}}</text>
							</view>
							<view class="line">
								<text class="text text-ellipsis">危险区：{{item.dangerAreaName}}</text>
							</view>
							<view class="line">
								<text class="text text-ellipsis">所属行政区：{{item.adName}}</text>
							</view>
							<view class="line">
								<text class="text text-ellipsis">住址经纬度：{{item.longitude}},{{item.latitude}}</text>
							</view>
							<view class="line">
								<text class="text text-ellipsis">住址：{{item.address}}</text>
							</view>
							<view class="item-button-group" style="padding-right: 10px;">
								<view class="item-button mid-size" @click="onAddLocationClick(item)">
									<view class="items-line">
										<uni-icons class="input-uni-icon" type="location" size="18" color="coral" />
										<text class="button-text">定位补录</text>
									</view>
								</view>
								<view class="item-button mid-size" @click="onOpenFamilyListClick(item)">
									<view class="items-line">
										<uni-icons class="input-uni-icon" type="staff" size="18" color="coral" />
										<text class="button-text">家庭成员表</text>
									</view>
								</view>
							</view>
						</view>
					</template>
				</uni-list-item>
			</uni-list>
			<uni-group>
				<view class="pagination-block">
					<uni-pagination show-icon :pageSize="pageSize" :current="pageCurrent" :total="total"
						@change="pageChange" />
				</view>
			</uni-group>
		</view>
		<!-- 	</scroll-view> -->
	</view>
</template>

<script>
	import http from '@/http/api.js';
	export default {
		components: {},
		data() {
			return {
				title: '登记人员清单',
				showSearch: true,
				cityRegionValue: '',
				cityRegionData: [],
				districtRegionValue: '',
				districtRegionData: [],
				townRegionValue: '',
				townRegionData: [],
				countryRegionValue: '',
				countryRegionData: [],
				dangerAreaValue: '',
				dangerAreaData: [],
				pageSize: 10,
				pageCurrent: 1,
				total: 0,
				list: [],
				query: {},
				personNameVal: '',
				inputStyles: {
					color: '#808080',
					borderColor: '#d3d3d3'
				},
				triggered: false
			}
		},
		computed: {

		},
		onLoad(option) {
			this.query = {};
			this.query['isHouseholder'] = 1;
			this.getCityRegion({});
			//this._freshing = false;
			this.getPage();
		},
		onShow() {
			
		},
		methods: {
			toBack() {
				uni.navigateBack({
					delta: 1
				})
			},
			// onPulling(e) {
			// 	console.log("onpulling", e);
			// },
			// onRefresh() {
			// 	if (this._freshing) return;
			// 	this._freshing = true;
			// 	this.triggered = true;
			// 	this.pageCurrent = 1;
			// 	let params = {};
			// 	if (this.dangerAreaValue != '' && this.dangerAreaValue.length > 0) {
			// 		params['dangerAreaPid'] = this.dangerAreaValue;
			// 	}
			// 	if (this.personNameVal != '' && this.personNameVal.length > 0) {
			// 		params['personName'] = this.personNameVal;
			// 	}
			// 	this.getPage(params);
			// },
			// onRestore() {
			// 	this.triggered = 'restore'; 
			// 	console.log("onRestore");
			// },
			// onAbort() {
			// 	console.log("onAbort");
			// },
			pageChange(e) {
				this.pageCurrent = e.current;
				let params = {};
				if (this.dangerAreaValue != '' && this.dangerAreaValue.length > 0) {
					params['dangerAreaPid'] = this.dangerAreaValue;
				}
				if (this.personNameVal != '' && this.personNameVal.length > 0) {
					params['personName'] = this.personNameVal;
				}
				this.getPage(params)
			},
			searchAreaStatus(e) {
				if (e.length > 0) {
					this.showSearch = true;
				} else {
					this.showSearch = false;
				}
			},
			cityRegionChange(e) {
				this.cityRegionValue = e;
				this.districtRegionData = [];
				this.districtRegionValue = '';
				this.townRegionData = [];
				this.townRegionValue = '';
				this.countryRegionData = [];
				this.countryRegionValue = '';
				this.dangerAreaData = [];
				this.dangerAreaValue = '';
				let p = {
					'parentCode': this.cityRegionValue
				}
				this.getDistrictRegion(p);
				this.pageCurrent = 1;
				this.list = [];
				this.query['dangerAreaCode'] = this.cityRegionValue;
				this.getPage({});
			},
			districtRegionChange(e) {
				if (e == undefined || e == null || e == '') {
					this.districtRegionValue = '';
					this.townRegionData = [];
					this.townRegionValue = '';
					this.countryRegionData = [];
					this.countryRegionValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.cityRegionValue;
					this.getPage({});
				} else {
					this.districtRegionValue = e;
					this.townRegionData = [];
					this.townRegionValue = '';
					this.countryRegionData = [];
					this.countryRegionValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					let p = {
						'parentCode': this.districtRegionValue
					}
					this.getTownRegion(p);
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.districtRegionValue;
					this.getPage({});
				}
			},
			townRegionChange(e) {
				if (e == undefined || e == null || e == '') {
					this.townRegionValue = '';
					this.countryRegionData = [];
					this.countryRegionValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.districtRegionValue;
					this.getPage({});
				} else {
					this.townRegionValue = e;
					this.countryRegionData = [];
					this.countryRegionValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					let p = {
						'parentCode': this.townRegionValue
					}
					this.getCountryRegion(p);
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.townRegionValue;
					this.getPage({});
				}
			},
			countryRegionChange(e) {
				if (e == undefined || e == null || e == '') {
					this.countryRegionValue = '';
					this.dangerAreaValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.townRegionValue;
					this.getPage({});
				} else {
					this.countryRegionValue = e;
					this.dangerAreaValue = '';
					this.dangerAreaData = [];
					this.dangerAreaValue = '';
					this.getDangerAreaList({
						'adcd': this.countryRegionValue
					})
					this.pageCurrent = 1;
					this.list = [];
					this.query['dangerAreaCode'] = this.countryRegionValue;
					this.getPage({});
				}
			},
			dangerAreaChange(e) {
				if (e == undefined || e == null || e == '') {
					this.dangerAreaValue = '';
					this.pageCurrent = 1;
					this.list = [];
					this.getPage({});
				} else {
					this.dangerAreaValue = e;
					this.pageCurrent = 1;
					this.list = [];
					this.getPage({
						dangerAreaPid: this.dangerAreaValue
					});
				}
			},
			getCityRegion(params = {}) {
				let that = this;
				http.request({
					url: '/galaxy-business/baseinfo/region/whole/yj/list',
					method: 'GET',
					data: params,
				}).then(res => {
					//console.log(JSON.stringify(res.data))
					that.cityRegionData = res.data.map(item => {
						return {
							value: item.adcd,
							text: item.adnm,
						}
					})
				}).catch(err => {
					console.log(err)
				})
			},
			getDistrictRegion(params = {}) {
				let that = this;
				http.request({
					url: '/galaxy-business/baseinfo/region/whole/yj/list',
					method: 'GET',
					data: params,
				}).then(res => {
					that.districtRegionData = res.data.map(item => {
						return {
							value: item.adcd,
							text: item.adnm,
						}
					})
				}).catch(err => {
					console.log(err)
				})
			},
			getTownRegion(params = {}) {
				let that = this;
				http.request({
					url: '/galaxy-business/baseinfo/region/whole/yj/list',
					method: 'GET',
					data: params,
				}).then(res => {
					that.townRegionData = res.data.map(item => {
						return {
							value: item.adcd,
							text: item.adnm,
						}
					})
				}).catch(err => {
					console.log(err)
				})
			},
			getCountryRegion(params = {}) {
				let that = this;
				http.request({
					url: '/galaxy-business/baseinfo/region/whole/yj/list',
					method: 'GET',
					data: params,
				}).then(res => {
					that.countryRegionData = res.data.map(item => {
						return {
							value: item.adcd,
							text: item.adnm,
						}
					})
				}).catch(err => {
					console.log(err)
				})
			},
			getDangerAreaList(params = {}) {
				let postData = Object.assign(params, this.query);
				let that = this;
				http.request({
					url: '/galaxy-business/map/dangerarea/select',
					method: 'GET',
					data: postData,
				}).then(res => {
					that.dangerAreaData = res.data.map(item => {
						return {
							value: item.dangerAreaPid,
							text: item.dangerAreaName,
						}
					})
				}).catch(err => {
					console.log(err)
				})
			},
			personNameValInput(e) {
				if (e == null || e == '' || e.length == 0) {
					this.personNameVal = '';
					this.pageCurrent = 1;
					let params = {};
					if (this.dangerAreaValue != '' && this.dangerAreaValue.length > 0) {
						params['dangerAreaPid'] = this.dangerAreaValue;
					}
					this.getPage(params);
				}
			},
			search() {
				this.pageCurrent = 1;
				let params = {};
				if (this.dangerAreaValue != '' && this.dangerAreaValue.length > 0) {
					params['dangerAreaPid'] = this.dangerAreaValue;
				}
				if (this.personNameVal != '' && this.personNameVal.length > 0) {
					params['personName'] = this.personNameVal;
				}
				this.getPage(params);
			},
			onAddLocationClick(item) {
				var url = '/pages/yjxt/resident/dangerarearesidentlocation?type=2&id=' + item.id + '&lng=' + item
					.longitude +
					'&lat=' + item.latitude + '&add=' + item.address;
				uni.navigateTo({
					url: url
				})
			},
			onOpenFamilyListClick(item) {
				var url = '/pages/yjxt/resident/dangerarearesidentfamilylist?personId=' + item.personId;
				uni.navigateTo({
					url: url
				})
			},
			getPage(params = {}) {
				const current = this.pageCurrent;
				const size = this.pageSize;
				let postData = Object.assign(params, this.query);
				//let that = this;
				http.request({
					url: '/galaxy-business/yj/resident/page',
					method: 'GET',
					params: {
						current,
						size,
					},
					data: postData,
				}).then(res => {
					//console.log("get page +++++++++")
					if (res.data.records != null) {
						// that.list = res.data.records.map(item => {
						// 	let id = item.personId.replace(/^(\d{6})\d+(\d{4})$/, '$1******$2')
						// 	return {
						// 		...item,
						// 		'pId': id
						// 	}
						// })
						this.list = res.data.records;
					}
					this.total = res.data.total;
				}).catch(err => {
					console.log(err)
				}).finally(() => {
					//console.log("get page finally +++++++++")
					//this.triggered = false;
					//this._freshing = false;
				})
			},
		}
	}
</script>

<style lang="scss" scoped>

</style>