radio.uvue 4.1 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" style="flex-wrap: wrap;">
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
                <radio value="r2" :disabled="disabled" class="radio r2">禁用</radio>
Y
yurj26 已提交
15
                <radio value="r3" class="radio r3" style="margin-top: 20rpx;">{{wrapText}}</radio>
Y
yurj26 已提交
16
            </radio-group>
Y
init  
yurj26 已提交
17
        </view>
Y
yurj26 已提交
18

Y
init  
yurj26 已提交
19 20 21 22 23 24
        <view class="uni-padding-wrap">
            <view class="uni-title uni-common-mt">
                <text class="uni-title-text">
                    不同颜色和尺寸的radio
                </text>
            </view>
Y
yurj26 已提交
25 26 27
            <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 已提交
28
                </radio>
Y
yurj26 已提交
29 30
                <radio value="r2" color="#FFCC33" style="transform:scale(0.7)" class="radio">未选中</radio>
            </radio-group>
Y
init  
yurj26 已提交
31
        </view>
Y
yurj26 已提交
32

Y
init  
yurj26 已提交
33 34 35 36 37 38 39
        <view class="uni-padding-wrap">
            <view class="uni-title uni-common-mt">
                <text class="uni-title-text">
                    推荐展示样式
                </text>
            </view>
        </view>
Y
yurj26 已提交
40
        <view class="uni-list uni-common-pl">
Y
yurj26 已提交
41 42
            <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 已提交
43 44 45 46
                    :class="index < items.length - 1 ? 'uni-list-cell-line': ''" :value="item.value"
                    :checked="index === current">
                    {{item.name}}
                </radio>
Y
init  
yurj26 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59
            </radio-group>
        </view>
    </view>
</template>
<script lang="ts">
    type ItemType = {
        value : string,
        name : string,
    }
    export default {
        data() {
            return {
                title: 'radio 单选框',
Y
yurj26 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
                items: [
                    {
                        value: 'CHN',
                        name: '中国'
                    },
                    {
                        value: 'USA',
                        name: '美国'
                    },

                    {
                        value: 'BRA',
                        name: '巴西'
                    },
                    {
                        value: 'JPN',
                        name: '日本'
                    },
                    {
                        value: 'ENG',
                        name: '英国'
                    },
                    {
                        value: 'FRA',
                        name: '法国'
                    },
Y
init  
yurj26 已提交
86
                ] as ItemType[],
Y
yurj26 已提交
87 88 89
                current: 0,

                value: '',
Y
yurj26 已提交
90
                text: '未选中',
Y
yurj26 已提交
91
                wrapText: 'uni-app x,终极跨平台方案\nuts,大一统语言',
Y
yurj26 已提交
92 93 94
                disabled: true,
                checked: true,
                color: '#007aff'
Y
init  
yurj26 已提交
95 96 97
            }
        },
        methods: {
Y
yurj26 已提交
98
            radioChange(e : RadioGroupChangeEvent) {
Y
yurj26 已提交
99 100 101 102 103 104 105
                const selected = this.items.find((item) : boolean => {
                    return item.value == e.detail.value
                })
                uni.showToast({
                    icon: 'none',
                    title: '当前选中:' + selected?.name
                })
Y
yurj26 已提交
106 107 108
            },
            testChange(e : RadioGroupChangeEvent) {
                this.value = e.detail.value
Y
init  
yurj26 已提交
109 110 111 112 113 114 115 116 117 118
            }
        }
    }
</script>

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