@antdv/pro-field
Version:
原子信息组件,统一 ProForm、ProTable、ProList、Filter 等组件里面的字段定义。
94 lines (93 loc) • 3.22 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 { Fragment as _Fragment, createTextVNode as _createTextVNode, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
import { EyeInvisibleOutlined, EyeOutlined } from "@ant-design/icons-vue";
import { useIntl } from "@antdv/pro-provider";
import { boolType, funcType, stringType, useMountMergeState } from "@antdv/pro-utils";
import { Input, Space } from "ant-design-vue";
import { computed, defineComponent, toRef } from "vue";
import { buildProFieldProp } from "../props.mjs";
const fieldPasswordProps = buildProFieldProp({
value: stringType(),
open: boolType().def(void 0),
onOpenChange: funcType()
});
var stdin_default = defineComponent({
name: "FieldPassword",
props: fieldPasswordProps,
inheritAttrs: false,
emits: {
"update:value": (val) => true
},
setup(props, {
emit
}) {
const intl = useIntl();
const [open, setOpen] = useMountMergeState(() => props.open || false, {
value: toRef(props, "open"),
onChange: props.onOpenChange
});
return () => {
const {
text,
value,
mode,
render,
renderFormItem,
fieldProps
} = props;
const textValue = text != null ? text : value;
if (mode === "read") {
let dom = _createVNode(_Fragment, null, [_createTextVNode("-")]);
if (textValue) {
dom = _createVNode(Space, null, {
default: () => [_createVNode("span", null, [open.value ? textValue : "********"]), _createVNode("a", {
"onClick": () => setOpen(!open.value)
}, [open.value ? _createVNode(EyeOutlined, null, null) : _createVNode(EyeInvisibleOutlined, null, null)])]
});
}
if (render) {
return render(textValue, computed(() => __spreadValues({
mode
}, fieldProps)), dom);
}
return dom;
}
if (mode === "edit" || mode === "update") {
const dom = _createVNode(Input.Password, _mergeProps({
"placeholder": intl.getMessage("tableForm.inputPlaceholder", "\u8BF7\u8F93\u5165"),
"value": value,
"onUpdate:value": (val) => {
emit("update:value", val);
}
}, fieldProps), null);
if (renderFormItem) {
return renderFormItem(textValue, computed(() => __spreadValues({
mode,
value
}, fieldProps)), dom);
}
return dom;
}
return null;
};
}
});
export {
stdin_default as default,
fieldPasswordProps
};