<template>
	<view class="tm-groupradio" :class="[customClass]">
		<slot></slot>
	</view>
</template>

<script>
	/**
	 * 单选框组
	 * @description 此组件必须,配合tm-radio组件使用,不可单独使用。
	 * @property {Function} change 任何一个tm-radio改变将会触发此事件,并携带选中的数组数据。
	 * @property {String} name = [] 默认:'',提交表单时的的字段名称标识
	 * @property {String} customClass = [] 默认:'',自定义class
	 */
	export default {
		name:'tm-groupradio',
		props:{
			//提交表单时的的字段名称
			name:{
				type:String,
				default:''
			},
			customClass:{
				type:String,
				default:''
			}
		},
		data() {
			return {
				
			};
		},
		methods: {
			change(e) {
				this.$emit('change',e)
			},
			// 获取选中的结果。
			getVal(){
				let box = [];
				function findchild(p,index){
					let preat = p;
					if(preat.$options?.name==='tm-radio'){
						
						if(preat.value){
							box.push({index:index,value:preat.value,checked:preat.value})
						}
					}else{
						if(preat.$children.length>0){
							preat.$children.forEach(item=>{
								findchild(item,index++);
							})
						}
					}
				};
				findchild(this,0);
				return box;
			},
			// 清除选中。
			clear(){
				console.log(9)
				function findchild(p,index){
					let preat = p;
					if(preat.$options?.name==='tm-radio'){
						if(preat.value===true){
							preat.changValue = false;
						}
						
					}else{
						if(preat.$children.length>0){
							preat.$children.forEach(item=>{
								findchild(item,index++);
							})
						}
					}
				};
				findchild(this,0);
			},
		},
	}
</script>

<style lang="scss">

</style>