emis-sapp/components/tpx-select/content-items.vue
2024-05-31 18:42:15 +08:00

115 lines
1.9 KiB
Vue

<template>
<view class="">
<view class="">
<tpx-checkitems :list="list" :value="value" :text="text" :vdataType="vdataType"
:transKeyVal="transKeyVal"
v-slot="dlCurrent" :min-checked="minChecked" :type="type"
:checkedList="checkedList" @onChange="handleDataItemChange"
>
<view slot :class="`slt-item ${dlCurrent.checked?'active':''}`">
<u-row justify="between">
<view>
{{ dlCurrent.item.title }}
</view>
<view v-if="dlCurrent.checked">
<u-icon name="checkbox-mark" size="32" :bold="true"
:custom-style="`${dlCurrent.checked?'color:#B12D29;':''}`"
></u-icon>
</view>
</u-row>
</view>
</tpx-checkitems>
</view>
</view>
</template>
<script>
export default {
// computed: {
// filDataList() {
// return []
// },
// },
props: {
minChecked: {
default () {
return 1
}
},
type: {
default () {
return "single"
}
},
show: {
default () {
return false
}
},
value: {
default () {
return ''
}
},
checkedList: {
},
list: {
default () {
return []
}
},
text: {
default () {
return ''
}
},
vdataType: {
default () {
return 'string'
}
},
transKeyVal: {
default () {
return null
// {
// // valKey: '',
// // titleKey: ''
// }
}
},
},
data() {
return {
}
},
created() {
},
onHide() {
},
unmounted() {},
methods: {
handleDataItemChange(value, text, checkedList) {
this.$emit('onChange', value, text, checkedList)
this.$emit('update:value', value)
this.$emit('update:text', text)
this.$emit('update:checkedList', checkedList)
}
}
}
</script>
<style scoped lang="scss">
.slt-item{
height: 66rpx;
line-height: 66rpx;
font-size: 28rpx;
&.active{
font-weight: 600;
color: $uni-color-primary;
}
}
</style>