188 lines
7.4 KiB
JavaScript
188 lines
7.4 KiB
JavaScript
|
"use strict";
|
|||
|
var __defProp = Object.defineProperty;
|
|||
|
var __defProps = Object.defineProperties;
|
|||
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|||
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|||
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|||
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|||
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|||
|
var __spreadValues = (a, b) => {
|
|||
|
for (var prop in b || (b = {}))
|
|||
|
if (__hasOwnProp.call(b, prop))
|
|||
|
__defNormalProp(a, prop, b[prop]);
|
|||
|
if (__getOwnPropSymbols)
|
|||
|
for (var prop of __getOwnPropSymbols(b)) {
|
|||
|
if (__propIsEnum.call(b, prop))
|
|||
|
__defNormalProp(a, prop, b[prop]);
|
|||
|
}
|
|||
|
return a;
|
|||
|
};
|
|||
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|||
|
const common_vendor = require("../../../../common/vendor.js");
|
|||
|
if (!Array) {
|
|||
|
const _easycom_wd_icon2 = common_vendor.resolveComponent("wd-icon");
|
|||
|
_easycom_wd_icon2();
|
|||
|
}
|
|||
|
const _easycom_wd_icon = () => "../wd-icon/wd-icon.js";
|
|||
|
if (!Math) {
|
|||
|
_easycom_wd_icon();
|
|||
|
}
|
|||
|
const __default__ = {
|
|||
|
name: "wd-checkbox",
|
|||
|
options: {
|
|||
|
addGlobalClass: true,
|
|||
|
virtualHost: true,
|
|||
|
styleIsolation: "shared"
|
|||
|
}
|
|||
|
};
|
|||
|
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent(__spreadProps(__spreadValues({}, __default__), {
|
|||
|
props: common_vendor.checkboxProps,
|
|||
|
emits: ["change", "update:modelValue"],
|
|||
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|||
|
const props = __props;
|
|||
|
const emit = __emit;
|
|||
|
__expose({
|
|||
|
toggle
|
|||
|
});
|
|||
|
const { parent: checkboxGroup, index } = common_vendor.useParent(common_vendor.CHECKBOX_GROUP_KEY);
|
|||
|
const isChecked = common_vendor.computed(() => {
|
|||
|
if (checkboxGroup) {
|
|||
|
return checkboxGroup.props.modelValue.indexOf(props.modelValue) > -1;
|
|||
|
} else {
|
|||
|
return props.modelValue === props.trueValue;
|
|||
|
}
|
|||
|
});
|
|||
|
const isFirst = common_vendor.computed(() => {
|
|||
|
return index.value === 0;
|
|||
|
});
|
|||
|
const isLast = common_vendor.computed(() => {
|
|||
|
const children = common_vendor.isDef(checkboxGroup) ? checkboxGroup.children : [];
|
|||
|
return index.value === children.length - 1;
|
|||
|
});
|
|||
|
const { proxy } = common_vendor.getCurrentInstance();
|
|||
|
common_vendor.watch(
|
|||
|
() => props.modelValue,
|
|||
|
() => {
|
|||
|
if (checkboxGroup) {
|
|||
|
checkName();
|
|||
|
}
|
|||
|
}
|
|||
|
);
|
|||
|
common_vendor.watch(
|
|||
|
() => props.shape,
|
|||
|
(newValue) => {
|
|||
|
const type = ["circle", "square", "button"];
|
|||
|
if (type.indexOf(newValue) === -1)
|
|||
|
console.error(`shape must be one of ${type.toString()}`);
|
|||
|
}
|
|||
|
);
|
|||
|
const innerShape = common_vendor.computed(() => {
|
|||
|
if (!props.shape && checkboxGroup && checkboxGroup.props.shape) {
|
|||
|
return checkboxGroup.props.shape;
|
|||
|
} else {
|
|||
|
return props.shape;
|
|||
|
}
|
|||
|
});
|
|||
|
const innerCheckedColor = common_vendor.computed(() => {
|
|||
|
if (!props.checkedColor && checkboxGroup && checkboxGroup.props.checkedColor) {
|
|||
|
return checkboxGroup.props.checkedColor;
|
|||
|
} else {
|
|||
|
return props.checkedColor;
|
|||
|
}
|
|||
|
});
|
|||
|
const innerDisabled = common_vendor.computed(() => {
|
|||
|
let innerDisabled2 = props.disabled;
|
|||
|
if (checkboxGroup) {
|
|||
|
if (
|
|||
|
// max 生效时,group 已经选满,禁止其它节点再选中。
|
|||
|
checkboxGroup.props.max && checkboxGroup.props.modelValue.length >= checkboxGroup.props.max && !isChecked.value || // min 生效时,group 选中的节点数量仅满足最小值,禁止取消已选中的节点。
|
|||
|
checkboxGroup.props.min && checkboxGroup.props.modelValue.length <= checkboxGroup.props.min && isChecked.value || // 只要子节点自己要求 disabled,那就 disabled。
|
|||
|
props.disabled === true || // 父节点要求全局 disabled,子节点没吱声,那就 disabled。
|
|||
|
checkboxGroup.props.disabled && props.disabled === null
|
|||
|
) {
|
|||
|
innerDisabled2 = true;
|
|||
|
}
|
|||
|
}
|
|||
|
return innerDisabled2;
|
|||
|
});
|
|||
|
const innerInline = common_vendor.computed(() => {
|
|||
|
if (checkboxGroup && checkboxGroup.props.inline) {
|
|||
|
return checkboxGroup.props.inline;
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
const innerCell = common_vendor.computed(() => {
|
|||
|
if (checkboxGroup && checkboxGroup.props.cell) {
|
|||
|
return checkboxGroup.props.cell;
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
const innerSize = common_vendor.computed(() => {
|
|||
|
if (!props.size && checkboxGroup && checkboxGroup.props.size) {
|
|||
|
return checkboxGroup.props.size;
|
|||
|
} else {
|
|||
|
return props.size;
|
|||
|
}
|
|||
|
});
|
|||
|
common_vendor.onBeforeMount(() => {
|
|||
|
if (props.modelValue === null)
|
|||
|
console.error("checkbox's value must be set");
|
|||
|
});
|
|||
|
function checkName() {
|
|||
|
checkboxGroup && checkboxGroup.children && checkboxGroup.children.forEach((child) => {
|
|||
|
if (child.$.uid !== proxy.$.uid && child.modelValue === props.modelValue) {
|
|||
|
console.error(`The checkbox's bound value: ${props.modelValue} has been used`);
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
function toggle() {
|
|||
|
if (innerDisabled.value)
|
|||
|
return;
|
|||
|
if (checkboxGroup) {
|
|||
|
emit("change", {
|
|||
|
value: !isChecked.value
|
|||
|
});
|
|||
|
checkboxGroup.changeSelectState(props.modelValue);
|
|||
|
} else {
|
|||
|
const newVal = props.modelValue === props.trueValue ? props.falseValue : props.trueValue;
|
|||
|
emit("update:modelValue", newVal);
|
|||
|
emit("change", {
|
|||
|
value: newVal
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
return (_ctx, _cache) => {
|
|||
|
return common_vendor.e({
|
|||
|
a: innerShape.value !== "button"
|
|||
|
}, innerShape.value !== "button" ? {
|
|||
|
b: common_vendor.p({
|
|||
|
["custom-class"]: "wd-checkbox__check",
|
|||
|
name: "check-bold",
|
|||
|
size: "14px"
|
|||
|
}),
|
|||
|
c: common_vendor.n(`wd-checkbox__shape ${innerShape.value === "square" ? "is-square" : ""} ${_ctx.customShapeClass}`),
|
|||
|
d: common_vendor.s(isChecked.value && !innerDisabled.value && innerCheckedColor.value ? "color :" + innerCheckedColor.value : "")
|
|||
|
} : {}, {
|
|||
|
e: innerShape.value === "button" && isChecked.value
|
|||
|
}, innerShape.value === "button" && isChecked.value ? {
|
|||
|
f: common_vendor.p({
|
|||
|
["custom-class"]: "wd-checkbox__btn-check",
|
|||
|
name: "check-bold",
|
|||
|
size: "14px"
|
|||
|
})
|
|||
|
} : {}, {
|
|||
|
g: common_vendor.s(_ctx.maxWidth ? "max-width:" + _ctx.maxWidth : ""),
|
|||
|
h: common_vendor.n(`wd-checkbox__label ${_ctx.customLabelClass}`),
|
|||
|
i: common_vendor.s(isChecked.value && innerShape.value === "button" && !innerDisabled.value && innerCheckedColor.value ? "color:" + innerCheckedColor.value : ""),
|
|||
|
j: common_vendor.n(`wd-checkbox ${innerCell.value ? "is-cell-box" : ""} ${innerShape.value === "button" ? "is-button-box" : ""} ${isChecked.value ? "is-checked" : ""} ${isFirst.value ? "is-first-child" : ""} ${isLast.value ? "is-last-child" : ""} ${innerInline.value ? "is-inline" : ""} ${innerShape.value === "button" ? "is-button" : ""} ${innerDisabled.value ? "is-disabled" : ""} ${innerSize.value ? "is-" + innerSize.value : ""} ${_ctx.customClass}`),
|
|||
|
k: common_vendor.s(_ctx.customStyle),
|
|||
|
l: common_vendor.o(toggle)
|
|||
|
});
|
|||
|
};
|
|||
|
}
|
|||
|
}));
|
|||
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d444ca85"]]);
|
|||
|
wx.createComponent(Component);
|