添加 useForm 事件

This commit is contained in:
icssoa
2025-08-06 16:30:49 +08:00
parent ae566bf919
commit da573d0d35
12 changed files with 108 additions and 46 deletions

View File

@@ -3,7 +3,7 @@
class="cl-checkbox"
:class="[
{
'cl-checkbox--disabled': disabled,
'cl-checkbox--disabled': isDisabled,
'cl-checkbox--checked': isChecked
},
pt.className
@@ -47,6 +47,7 @@ import { computed, useSlots, type PropType } from "vue";
import type { PassThroughProps } from "../../types";
import { get, parseClass, parsePt, pull } from "@/cool";
import type { ClIconProps } from "../cl-icon/props";
import { useForm } from "../../hooks";
defineOptions({
name: "cl-checkbox"
@@ -99,6 +100,10 @@ const props = defineProps({
const emit = defineEmits(["update:modelValue", "change"]);
const slots = useSlots();
const { disabled } = useForm();
// 是否禁用
const isDisabled = computed(() => props.disabled || disabled.value);
// 透传样式类型定义
type PassThrough = {
@@ -142,7 +147,7 @@ const iconName = computed(() => {
* 在非禁用状态下切换选中状态
*/
function onTap() {
if (!props.disabled) {
if (!isDisabled.value) {
let val = props.modelValue;
if (Array.isArray(val)) {
@@ -166,7 +171,7 @@ function onTap() {
@apply flex flex-row items-center;
&--disabled {
@apply opacity-70;
@apply opacity-50;
}
}
</style>