@antdv/pro-field
Version:
原子信息组件,统一 ProForm、ProTable、ProList、Filter 等组件里面的字段定义。
129 lines (128 loc) • 4.46 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 { objectToMap, omit, proFieldParsingText, stringType, vNodeType } from "@antdv/pro-utils";
import { Segmented, Spin } from "ant-design-vue";
import { computed, defineComponent, ref } from "vue";
import { buildProFieldProp } from "../props.mjs";
import { fieldSelectProps, useFieldFetchData } from "../Select/index.mjs";
const fieldSegmentedProps = buildProFieldProp(__spreadProps(__spreadValues({}, fieldSelectProps), {
value: stringType(),
emptyText: vNodeType()
}));
var stdin_default = defineComponent({
name: "FieldSegmented",
props: fieldSegmentedProps,
inheritAttrs: false,
slots: Object,
emits: {
"update:value": (val) => true
},
setup(props, {
expose,
emit,
slots
}) {
const inputRef = ref(null);
const [loading, options, fetchData] = useFieldFetchData(props);
expose(__spreadProps(__spreadValues({}, inputRef.value || {}), {
fetchData: (keyWord) => fetchData(keyWord)
}));
return () => {
var _a, _b, _d, _e, _f;
const _c = props, {
text,
value,
mode,
render,
renderFormItem,
fieldProps,
emptyText = (_b = (_a = slots.emptyText) == null ? void 0 : _a.call(slots)) != null ? _b : "-"
} = _c, rest = __objRest(_c, [
"text",
"value",
"mode",
"render",
"renderFormItem",
"fieldProps",
"emptyText"
]);
const textValue = text != null ? text : value;
if (loading.value) {
return _createVNode(Spin, {
"size": "small"
}, null);
}
if (mode === "read") {
const optionsValueEnum = ((_d = options.value) == null ? void 0 : _d.length) ? (_e = options.value) == null ? void 0 : _e.reduce((pre, cur) => {
var _a2;
return __spreadProps(__spreadValues({}, pre), {
[(_a2 = cur.value) != null ? _a2 : ""]: cur.label
});
}, {}) : void 0;
const dom = _createVNode(_Fragment, null, [proFieldParsingText(textValue, objectToMap(rest.valueEnum || optionsValueEnum))]);
if (render) {
return (_f = render(textValue, computed(() => __spreadValues({
mode
}, fieldProps)), _createVNode(_Fragment, null, [dom]))) != null ? _f : emptyText;
}
return dom;
}
if (mode === "edit" || mode === "update") {
const dom = _createVNode(Segmented, _mergeProps({
"ref": inputRef
}, omit(fieldProps || {}, ["allowClear"]), {
"value": value,
"onUpdate:value": (val) => {
emit("update:value", val);
},
"options": options.value
}), null);
if (renderFormItem) {
return renderFormItem(textValue, computed(() => __spreadProps(__spreadValues({
mode,
value
}, fieldProps), {
options: options.value,
loading: loading.value
})), dom);
}
return dom;
}
return null;
};
}
});
export {
stdin_default as default,
fieldSegmentedProps
};