emis-app/components/tpx-select/content-items.vue

115 lines
1.9 KiB
Vue
Raw Normal View History

2023-12-18 16:30:33 +00:00
<template>
<view class="">
<view class="">
2024-05-22 16:32:47 +00:00
<tpx-checkitems :list="list" :value="value" :text="text" :vdataType="vdataType"
:transKeyVal="transKeyVal"
v-slot="dlCurrent" :min-checked="minChecked" :type="type"
2024-05-19 05:56:23 +00:00
:checkedList="checkedList" @onChange="handleDataItemChange"
2023-12-18 16:30:33 +00:00
>
<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 ''
}
},
2024-05-19 05:56:23 +00:00
checkedList: {
},
2023-12-18 16:30:33 +00:00
list: {
default () {
return []
}
2024-05-22 16:32:47 +00:00
},
text: {
default () {
return ''
}
},
vdataType: {
default () {
return 'string'
}
},
transKeyVal: {
default () {
return null
// {
// // valKey: '',
// // titleKey: ''
// }
}
},
2023-12-18 16:30:33 +00:00
},
data() {
return {
}
},
created() {
},
onHide() {
},
2024-01-30 03:09:14 +00:00
unmounted() {},
2023-12-18 16:30:33 +00:00
methods: {
2024-05-22 16:32:47 +00:00
handleDataItemChange(value, text, checkedList) {
this.$emit('onChange', value, text, checkedList)
this.$emit('update:value', value)
this.$emit('update:text', text)
2024-05-19 05:56:23 +00:00
this.$emit('update:checkedList', checkedList)
2023-12-18 16:30:33 +00:00
}
}
}
</script>
<style scoped lang="scss">
.slt-item{
2024-01-27 08:55:59 +00:00
height: 66rpx;
line-height: 66rpx;
2023-12-18 16:30:33 +00:00
font-size: 28rpx;
&.active{
font-weight: 600;
color: $uni-color-primary;
}
}
</style>