| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <template>
- <view class="row-justify-sb center p-tb30 size-28" :class="{'bor-bottom-1':is_border}">
- <view class="wh-text" :class="{'wh-text-long':isLong}"><text>{{name?name:label}}</text></view>
- <view class="row-c">
- <view class="row-c radiu-item m-l20" :class="{'active-radiu':radioValue === item.value}"
- v-for="(item,index) in list" :key="index" @click="onSelect(item.value)">
- <image class="wh-30 m-r20"
- :src="radioValue == item.value?'https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/information/correct.png':'https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/information/error.png'"
- mode="aspectFill"></image>
- <text>{{item.text}}</text>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- name: {
- type: String,
- default: ''
- },
- label: {
- type: String,
- default: ''
- },
- value: {
- type: Number,
- default: 0
- },
- disabled: {
- default: false
- },
- is_border: {
- default: true
- },
- list: {
- type: Array,
- default: () => []
- }
- },
- watch: {
- value: {
- handler(value) {
- this.radioValue = value
- },
- immediate: true
- },
- },
- data() {
- return {
- radioValue: 0,
- isLong:false
- }
- },
- mounted() {
- this.setLabelWidth()
- },
- methods: {
- setLabelWidth(){
- this.isLong=this.label.length>4
- },
- onSelect(value) {
- if (this.disabled) {
- return
- }
- this.$emit('updateData')
- this.radioValue = value
- this.$emit('input', value)
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .wh-text {
- width: 110rpx;
- text-align: justify;
- text-align-last: justify;
- vertical-align: top;
- height: 38rpx;
- }
- .wh-text:after {
- content: '';
- width: 110rpx;
- height: 0;
- display: inline-block;
- overflow: hidden;
- }
- .radiu-item {
- padding: 6rpx 30rpx;
- border-radius: 100rpx;
- border: 1rpx solid #CCCCCC;
- }
- .active-radiu {
- color: #0FB160;
- border: 1rpx solid #0FB160;
- }
- .wh-text-long {
- width: 170rpx;
- }
- .wh-text-long:after{
- width: 170rpx;
- }
- </style>
|