123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <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>
|