<template>
|
|
<view :style="style">
|
|
<view class="card" v-for="item in list" :key="item.id">
|
|
<memberCard
|
|
:data="item"
|
|
@selectChange="onSelectChange(item.id, $event)"
|
|
></memberCard>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import memberCard from './memberCard.vue'
|
|
|
|
export default {
|
|
components: {
|
|
memberCard,
|
|
},
|
|
props: {
|
|
members: {
|
|
type: Array,
|
|
default() {
|
|
return []
|
|
},
|
|
},
|
|
style: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
},
|
|
computed: {
|
|
list: {
|
|
set(val) {
|
|
this.$emit('update:list', val)
|
|
},
|
|
get() {
|
|
return this.members
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
onSelectChange(id, val) {
|
|
|
|
let list = [...this.list]
|
|
|
|
const target = list.find(item => item.id === id)
|
|
|
|
target.isSelected = val
|
|
|
|
this.list = list
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.card {
|
|
margin-top: 16rpx;
|
|
}
|
|
</style>
|