| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- <template>
 
- 	<uni-popup ref="popupKechengLeixingRef" type="top" :animation="false" :is-mask-click="false"
 
- 		mask-background-color="rgba(0, 0, 0, 0.4)">
 
- 		<view class="phone-filter-page">
 
- 			<view class="icon-title-navBar-box">
 
- 				<view @click="goUpPage" class="nav-bar-icon"></view>
 
- 				<text class="nav-bar-title">筛选</text>
 
- 			</view>
 
- 			<view class="filter-body-box">
 
- 				<radio-group @change="handleChange">
 
- 					<!-- 报证机构 -->
 
- 					<view class="filter-body-radio" v-for="item in data.list">
 
- 						<label class="radio-name-box"
 
- 							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
 
- 							<radio :value="`${item.id}`" :checked="item.checked" activeBackgroundColor="#3fd2a1" style="transform:scale(0.8)"/>
 
- 							{{item.lable}}
 
- 						</label>
 
- 						<view class="phone-radio-group filter-radio-group">
 
- 							<view class="phone-radio-item" v-for="citem in item.children"
 
- 								:class="{radioActive: activeSelect && activeSelect.id == citem.id}"
 
- 								@click.stop="handleSelect(citem,item)">
 
- 								{{citem.lable}}
 
- 							</view>
 
- 						</view>
 
- 					</view>
 
- 				</radio-group>
 
- 			</view>
 
- 			<view class="filter-btn-box">
 
- 				<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
 
- 				<button type="default" class="phone-green-btn filter-btn" @click="handleConfirm">筛选</button>
 
- 			</view>
 
- 		</view>
 
- 	</uni-popup>
 
- </template>
 
- <script setup>
 
- 	import {
 
- 		reactive,
 
- 		ref
 
- 	} from "vue";
 
- 	const emits = defineEmits(['select', 'reset']);
 
- 	const data = reactive({
 
- 		list: []
 
- 	})
 
- 	const activeSelect = ref(null);
 
- 	const popupKechengLeixingRef = ref(null);
 
- 	function goUpPage() {
 
- 		popupKechengLeixingRef.value.close();
 
- 	}
 
- 	function handleConfirm() {
 
- 		emits('select', activeSelect.value)
 
- 		popupKechengLeixingRef.value.close();
 
- 	}
 
- 	function handleReset() {
 
- 		activeSelect.value = null;
 
- 		emits('reset')
 
- 		popupKechengLeixingRef.value.close();
 
- 	}
 
- 	function handleChange(myData) {
 
- 		const activeD = myData.detail.value;
 
- 		data.list.forEach(item => {
 
- 			if (item.id != activeD) {
 
- 				item.checked = false
 
- 			} else {
 
- 				item.checked = true;
 
- 				activeSelect.value = item;
 
- 			}
 
- 		})
 
- 	}
 
- 	function handleSelect(myData) {
 
- 		data.list.forEach(item => {
 
- 			item.checked = false
 
- 		})
 
- 		activeSelect.value = myData;
 
- 	}
 
- 	function showPopup({
 
- 		data: myData
 
- 	}) {
 
- 		data.list = myData;
 
- 		popupKechengLeixingRef.value.open('top')
 
- 	}
 
- 	defineExpose({
 
- 		showPopup
 
- 	})
 
- </script>
 
- <style lang="scss">
 
- 	.active {
 
- 		color: red
 
- 	}
 
- </style>
 
 
  |