@antdv/pro-field
Version:
原子信息组件,统一 ProForm、ProTable、ProList、Filter 等组件里面的字段定义。
107 lines (106 loc) • 3.39 kB
JavaScript
var __defProp = Object.defineProperty;
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;
};
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
import { useIntl } from "@antdv/pro-provider";
import { boolType, FieldLabel, objectType } from "@antdv/pro-utils";
import { Switch } from "ant-design-vue";
import { computed, defineComponent } from "vue";
import { buildProFieldProp } from "../props.mjs";
const fieldSwitchProps = buildProFieldProp({
value: boolType(),
fieldProps: objectType()
});
var stdin_default = defineComponent({
name: "FieldSwitch",
props: fieldSwitchProps,
inheritAttrs: false,
emits: {
"update:value": (val) => true
},
setup(props, {
emit
}) {
const intl = useIntl();
return () => {
const {
text,
value,
mode,
render,
light,
label,
renderFormItem,
fieldProps
} = props;
const textValue = text != null ? text : value;
const renderDom = () => {
var _a, _b;
if (textValue === void 0 || textValue === null || `${textValue}`.length < 1) return "-";
return textValue ? (_a = fieldProps == null ? void 0 : fieldProps.checkedChildren) != null ? _a : intl.getMessage("switch.open", "\u6253\u5F00") : (_b = fieldProps == null ? void 0 : fieldProps.unCheckedChildren) != null ? _b : intl.getMessage("switch.close", "\u5173\u95ED");
};
const dom = renderDom();
if (mode === "read") {
if (render) {
return render(textValue, computed(() => __spreadValues({
mode
}, fieldProps)), dom);
}
return dom != null ? dom : "-";
}
if (mode === "edit" || mode === "update") {
const editDom = _createVNode(Switch, _mergeProps({
"size": light ? "small" : void 0
}, fieldProps, {
"checked": value,
"onUpdate:checked": (val) => {
emit("update:value", val);
}
}), null);
if (light) {
const {
disabled,
bordered
} = fieldProps;
return _createVNode(FieldLabel, {
"label": label,
"disabled": disabled,
"bordered": bordered,
"downIcon": false,
"value": _createVNode("div", {
"style": {
paddingLeft: `8px`
}
}, [editDom]),
"allowClear": false
}, null);
}
if (renderFormItem) {
return renderFormItem(textValue, computed(() => __spreadValues({
mode,
value
}, fieldProps)), editDom);
}
return editDom;
}
return null;
};
}
});
export {
stdin_default as default,
fieldSwitchProps
};