import XEUtils from "xe-utils"; /** * 输入框配置 * @param field 字段 * @param title 标题 * @param config 配置 */ export const mapFormItemInput = (field, title, config = {}) => ({ field, title, titlePrefix: { content: title, icon: "vxe-icon-question-circle-fill" }, itemRender: { name: "ElInput", props: { clearable: true, placeholder: `请输入${title}` } }, ...config }) /** * 选择框配置 * @param field 字段 * @param title 标题 * @param config 其他配置 */ export const mapFormItemSelect = (field, title, config = {}) => ({ field, title, titlePrefix: { content: title, icon: "vxe-icon-question-circle-fill" }, itemRender: { name: "$form-select", props: { popperClass: "vxe-table-slot--popper", filterable: true, clearable: true, placeholder: `请选择${title}`, ...XEUtils.get(config, "props") }, api: { key: XEUtils.get(config, "api.key", null), framework: XEUtils.get(config, "api.framework", "common"), query: XEUtils.get(config, "api.query", {}), expands: XEUtils.get(config, "api.expands", {}) }, ...XEUtils.omit(config, "props", "api") }, ...config }) /** * 单选配置 * @param field 字段 * @param title 标题 * @param config 其他配置 */ export const mapFormItemRadio = (field, title, config = {}) => ({ field, title, titlePrefix: { content: title, icon: "vxe-icon-question-circle-fill" }, itemRender: { name: "$form-radio", ...config }, ...config }) /** * 日期配置 * @param field 字段 * @param title 标题 * @param config 其他配置 */ export const mapFormItemDatePicker = (field, title, config = {}) => ({ field, title, titlePrefix: { content: title, icon: "vxe-icon-question-circle-fill" }, itemRender: { name: "ElDatePicker", props: { startPlaceholder: "开始日期", endPlaceholder: "结束日期", valueFormat: "YYYY-MM-DD HH:mm:ss", placeholder: `请选择${title}`, defaultTime: XEUtils.get(config, "props.type")?.includes("range") ? [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)] : new Date(2000, 1, 1, 23, 59, 59), ...XEUtils.get(config, "props") }, ...XEUtils.omit(config, "props") }, ...config })