mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2025-12-08 17:12:28 +08:00
前端和后端源码,合并到一个git仓库中,方便用户下载,避免前后端不匹配的问题
This commit is contained in:
73
jeecgboot-vue3/src/components/Form/src/utils/formUtils.ts
Normal file
73
jeecgboot-vue3/src/components/Form/src/utils/formUtils.ts
Normal file
@ -0,0 +1,73 @@
|
||||
import { unref } from 'vue';
|
||||
import { dateUtil } from '/@/utils/dateUtil';
|
||||
|
||||
/**
|
||||
* 表单区间时间数值字段转换
|
||||
* @param props
|
||||
* @param values
|
||||
*/
|
||||
export function handleRangeValue(props, values) {
|
||||
//判断是否配置并处理fieldMapToTime
|
||||
const fieldMapToTime = unref(props)?.fieldMapToTime;
|
||||
fieldMapToTime && (values = handleRangeTimeValue(props, values));
|
||||
//判断是否配置并处理fieldMapToNumber
|
||||
const fieldMapToNumber = unref(props)?.fieldMapToNumber;
|
||||
fieldMapToNumber && (values = handleRangeNumberValue(props, values));
|
||||
return values;
|
||||
}
|
||||
/**
|
||||
* 处理时间转换成2个字段
|
||||
* @param props
|
||||
* @param values
|
||||
*/
|
||||
export function handleRangeTimeValue(props, values) {
|
||||
const fieldMapToTime = unref(props).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;
|
||||
}
|
||||
|
||||
// 【issues/I53G9Y】 日期区间组件有可能是字符串
|
||||
let timeValue = values[field];
|
||||
if (!Array.isArray(timeValue)) {
|
||||
timeValue = timeValue.split(',');
|
||||
}
|
||||
const [startTime, endTime]: string[] = timeValue;
|
||||
values[startTimeKey] = dateUtil(startTime).format(format);
|
||||
values[endTimeKey] = dateUtil(endTime).format(format);
|
||||
Reflect.deleteProperty(values, field);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
/**
|
||||
* 处理数字转换成2个字段
|
||||
* @param props
|
||||
* @param values
|
||||
* @updateby liusq
|
||||
* @updateDate:2021-09-16
|
||||
*/
|
||||
export function handleRangeNumberValue(props, values) {
|
||||
const fieldMapToNumber = unref(props).fieldMapToNumber;
|
||||
if (!fieldMapToNumber || !Array.isArray(fieldMapToNumber)) {
|
||||
return values;
|
||||
}
|
||||
for (const [field, [startNumberKey, endNumberKey]] of fieldMapToNumber) {
|
||||
if (!field || !startNumberKey || !endNumberKey || !values[field]) {
|
||||
continue;
|
||||
}
|
||||
//update-begin-author:taoyan date:2022-5-10 for: 用于数值的范围查询 数组格式的中间转换不知道哪里出了问题,这里会变成字符串,需要再强制转成数组
|
||||
let temp = values[field];
|
||||
if (typeof temp === 'string') {
|
||||
temp = temp.split(',');
|
||||
}
|
||||
const [startNumber, endNumber]: number[] = temp;
|
||||
//update-end-author:taoyan date:2022-5-10 for: 用于数值的范围查询 数组格式的中间转换不知道哪里出了问题,这里会变成字符串,需要再强制转成数组
|
||||
values[startNumberKey] = startNumber;
|
||||
values[endNumberKey] = endNumber;
|
||||
Reflect.deleteProperty(values, field);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
Reference in New Issue
Block a user