@antdv/pro-field
Version:
原子信息组件,统一 ProForm、ProTable、ProList、Filter 等组件里面的字段定义。
186 lines (185 loc) • 6.37 kB
JavaScript
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));
var __objRest = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop];
}
return target;
};
import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
import { useStyle, useToken } from "@antdv/pro-provider";
import { classNames, objectToMap, objectType, oneOf, proFieldParsingText } from "@antdv/pro-utils";
import { Checkbox, Spin } from "ant-design-vue";
import { FormItemInputContext } from "ant-design-vue/es/form/FormItemContext";
import { useConfigContextInject } from "ant-design-vue/lib/config-provider/context";
import { computed, defineComponent, ref } from "vue";
import { buildProFieldProp } from "../props.mjs";
import { fieldSelectProps, useFieldFetchData } from "../Select/index.mjs";
const fieldCheckboxProps = __spreadValues({
layout: oneOf(["horizontal", "vertical"]),
options: objectType()
}, fieldSelectProps);
var stdin_default = defineComponent({
name: "FieldCheckbox",
props: buildProFieldProp(fieldCheckboxProps),
inheritAttrs: false,
emits: {
"update:value": (val) => true
},
setup(props, {
expose,
emit
}) {
var _a;
const {
getPrefixCls
} = useConfigContextInject();
const layoutClassName = getPrefixCls("pro-field-checkbox");
const formItemContext = FormItemInputContext.useInject();
const {
token
} = (_a = useToken) == null ? void 0 : _a();
const checkBoxRef = ref();
const [loading, options, fetchData] = useFieldFetchData(props);
const {
wrapSSR,
hashId
} = useStyle("Checkbox", (_token) => {
return {
[`.${layoutClassName}`]: {
"&-error": {
span: {
color: _token.colorError
}
},
"&-warning": {
span: {
color: _token.colorWarning
}
},
"&-vertical": {
// ant design 5
[`&${_token.antCls}-checkbox-group`]: {
display: "inline-block"
},
// ant design 5
[`${_token.antCls}-checkbox-wrapper+${_token.antCls}-checkbox-wrapper`]: {
"margin-inline-start": "0 !important"
},
// ant design 4
[`${_token.antCls}-checkbox-group-item`]: {
display: "flex",
marginInlineEnd: 0
}
}
}
};
});
expose(__spreadProps(__spreadValues({}, checkBoxRef.value || {}), {
fetchData: (keyWord) => fetchData(keyWord)
}));
return () => {
var _b, _c, _d, _f, _g;
const _a2 = props, {
layout = "horizontal",
renderFormItem,
mode,
render,
text,
value
} = _a2, rest = __objRest(_a2, [
"layout",
"renderFormItem",
"mode",
"render",
"text",
"value"
]);
const textValue = text != null ? text : value;
if (loading.value) {
return _createVNode(Spin, {
"size": "small"
}, null);
}
if (mode === "read") {
const optionsValueEnum = ((_b = options.value) == null ? void 0 : _b.length) ? (_c = options.value) == null ? void 0 : _c.reduce((pre, cur) => {
var _a3;
return __spreadProps(__spreadValues({}, pre), {
[(_a3 = cur.value) != null ? _a3 : ""]: cur.label
});
}, {}) : void 0;
const dom = proFieldParsingText(textValue, objectToMap(rest.valueEnum || optionsValueEnum));
if (render) {
return (_d = render(textValue, __spreadValues({
mode,
value
}, rest.fieldProps), _createVNode(_Fragment, null, [dom]))) != null ? _d : null;
}
return _createVNode("div", {
"style": {
display: "flex",
flexWrap: "wrap",
alignItems: "center",
gap: `${token.value.marginSM}px`
}
}, [dom]);
}
if (mode === "edit") {
const _e = rest.fieldProps || {}, {
fieldNames
} = _e, restFieldProps = __objRest(_e, [
"fieldNames"
]);
const dom = wrapSSR(_createVNode(Checkbox.Group, _mergeProps(restFieldProps, {
"class": classNames((_f = rest.fieldProps) == null ? void 0 : _f.class, hashId.value, `${layoutClassName}-${layout}`, {
[`${layoutClassName}-error`]: (formItemContext == null ? void 0 : formItemContext.status) === "error",
[`${layoutClassName}-warning`]: (formItemContext == null ? void 0 : formItemContext.status) === "warning"
}),
"value": value,
"onChange": (val) => {
emit("update:value", val);
},
"options": options.value
}), null));
if (renderFormItem) {
return (_g = renderFormItem(textValue, computed(() => __spreadProps(__spreadValues({
mode,
value
}, rest.fieldProps), {
options: options.value,
loading: loading.value
})), dom)) != null ? _g : null;
}
return dom;
}
return null;
};
}
});
export {
stdin_default as default,
fieldCheckboxProps
};