1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <template>
- <fs-cell border justify="right" :title="label" @click="handleToggle">
- <template #title>
- <slot></slot>
- </template>
- <template #value>
- <fs-icon type="icon-right" :color="checkedColor" :colorType="checkedColorType" v-if="selected"></fs-icon>
- </template>
- </fs-cell>
- </template>
- <script>
- /**
- * 多选框组件
- * @description 多选框组件
- * @property {String} label 文本
- * @property {null} value 标识符(必须传)
- * @property {String} checkedColor 选中颜色
- * @property {String} checkedColorType = [primary | danger | warning | info | success] 选中颜色类型
- */
- export default {
- name: 'fs-checkbox-cell'
- }
- </script>
- <script setup>
- import { ref, watch, inject, toRefs } from 'vue'
- const props = defineProps({
- label: String,
- value: {
- type: null,
- required: true
- },
- checkedColor: String,
- checkedColorType: String
- })
- const checkboxGroup = inject('checkboxGroup')
- const { reverse, inline, justify } = checkboxGroup
- const checkedColorType = props.checkedColorType || checkboxGroup.checkedColorType
- const checkedColor = props.checkedColor || checkboxGroup.checkedColor
- let selected = ref(false)
- checkboxGroup.updateChildren({
- selected,
- value: props.value
- })
- const handleToggle = () => {
- checkboxGroup.updateValue(props.value)
- }
- </script>
- <style lang="scss" scoped></style>
|