radio.uvue 3.7 KB
Newer Older
Y
init  
yurj26 已提交
1 2 3 4 5 6 7 8 9
<template>
    <view>
        <page-head :title="title"></page-head>
        <view class="uni-padding-wrap">
            <view class="uni-title uni-common-mt">
                <text class="uni-title-text">
                    默认样式
                </text>
            </view>
Y
yurj26 已提交
10
            <radio-group class="uni-flex uni-row radio-group" @change="testChange">
Y
yurj26 已提交
11
                <radio value="r" :checked="checked" :color="color" style="margin-right: 30rpx;" class="radio r">选中
Y
yurj26 已提交
12
                </radio>
Y
yurj26 已提交
13
                <radio value="r1" style="margin-right: 30rpx;" class="radio r1">{{text}}</radio>
Y
yurj26 已提交
14 15
                <radio value="r2" :disabled="disabled" class="radio r2">禁用</radio>
            </radio-group>
Y
init  
yurj26 已提交
16 17 18 19 20 21 22
        </view>
        <view class="uni-padding-wrap">
            <view class="uni-title uni-common-mt">
                <text class="uni-title-text">
                    不同颜色和尺寸的radio
                </text>
            </view>
Y
yurj26 已提交
23 24 25
            <radio-group class="uni-flex uni-row radio-group">
                <radio value="r1" :checked="true" color="#FFCC33" style="transform:scale(0.7); margin-right: 30rpx;"
                    class="radio">选中
Y
init  
yurj26 已提交
26
                </radio>
Y
yurj26 已提交
27 28
                <radio value="r2" color="#FFCC33" style="transform:scale(0.7)" class="radio">未选中</radio>
            </radio-group>
Y
init  
yurj26 已提交
29 30 31 32 33 34 35 36 37
        </view>
        <view class="uni-padding-wrap">
            <view class="uni-title uni-common-mt">
                <text class="uni-title-text">
                    推荐展示样式
                </text>
            </view>
        </view>
        <view class="uni-list">
Y
yurj26 已提交
38 39
            <radio-group @change="radioChange" class="radio-group">
                <radio class="uni-list-cell uni-list-cell-pd radio" v-for="(item, index) in items" :key="item.value"
Y
yurj26 已提交
40 41 42 43
                    :class="index < items.length - 1 ? 'uni-list-cell-line': ''" :value="item.value"
                    :checked="index === current">
                    {{item.name}}
                </radio>
Y
init  
yurj26 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
            </radio-group>
        </view>
    </view>
</template>
<script lang="ts">
    type ItemType = {
        value : string,
        name : string,
    }
    export default {
        data() {
            return {
                title: 'radio 单选框',
                items: [{
                    value: 'USA',
                    name: '美国'
                },
                {
                    value: 'CHN',
                    name: '中国'
                },
                {
                    value: 'BRA',
                    name: '巴西'
                },
                {
                    value: 'JPN',
                    name: '日本'
                },
                {
                    value: 'ENG',
                    name: '英国'
                },
                {
                    value: 'FRA',
                    name: '法国'
                },
                ] as ItemType[],
Y
yurj26 已提交
82 83 84
                current: 0,

                value: '',
Y
yurj26 已提交
85
                text: '未选中',
Y
yurj26 已提交
86 87 88
                disabled: true,
                checked: true,
                color: '#007aff'
Y
init  
yurj26 已提交
89 90 91
            }
        },
        methods: {
Y
yurj26 已提交
92
            radioChange(e : RadioGroupChangeEvent) {
Y
init  
yurj26 已提交
93
                for (let i = 0; i < this.items.length; i++) {
Y
yurj26 已提交
94
                    if (this.items[i].value === e.detail.value) {
Y
init  
yurj26 已提交
95 96 97 98
                        this.current = i;
                        break;
                    }
                }
Y
yurj26 已提交
99 100 101
            },
            testChange(e : RadioGroupChangeEvent) {
                this.value = e.detail.value
Y
init  
yurj26 已提交
102 103 104 105 106 107 108 109 110 111
            }
        }
    }
</script>

<style>
    .uni-list-cell {
        justify-content: flex-start
    }
</style>