tav-ui
Version:
63 lines (60 loc) • 2.1 kB
JavaScript
import { unref } from 'vue';
import { set } from 'lodash-es';
import { dateUtil } from '../../../../utils/dateUtil2.mjs';
import { isObject, isArray, isFunction, isString, isNullOrUnDef } from '../../../../utils/is2.mjs';
function useFormValues({
defaultValueRef,
getSchema,
formModel,
getProps
}) {
function handleFormValues(values) {
if (!isObject(values))
return {};
const res = {};
for (const item of Object.entries(values)) {
let [, value] = item;
const [key] = item;
if (!key || isArray(value) && value.length === 0 || isFunction(value))
continue;
const transformDateFunc = unref(getProps).transformDateFunc;
if (isObject(value))
value = transformDateFunc?.(value);
if (isArray(value) && value[0]?._isAMomentObject && value[1]?._isAMomentObject)
value = value.map((item2) => transformDateFunc?.(item2));
if (isString(value))
value = value.trim();
set(res, key, value);
}
return handleRangeTimeValue(res);
}
function handleRangeTimeValue(values) {
const fieldMapToTime = unref(getProps).fieldMapToTime;
if (!fieldMapToTime || !Array.isArray(fieldMapToTime))
return values;
for (const [field, [startTimeKey, endTimeKey], format = "YYYY-MM-DD"] of fieldMapToTime) {
if (!field || !startTimeKey || !endTimeKey || !values[field])
continue;
const [startTime, endTime] = values[field];
values[startTimeKey] = dateUtil(startTime).format(format);
values[endTimeKey] = dateUtil(endTime).format(format);
Reflect.deleteProperty(values, field);
}
return values;
}
function initDefault() {
const schemas = unref(getSchema);
const obj = {};
schemas.forEach((item) => {
const { defaultValue } = item;
if (!isNullOrUnDef(defaultValue)) {
obj[item.field] = defaultValue;
formModel[item.field] = defaultValue;
}
});
defaultValueRef.value = obj;
}
return { handleFormValues, initDefault };
}
export { useFormValues };
//# sourceMappingURL=useFormValues2.mjs.map