| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import type { ValidationRule } from 'ant-design-vue/lib/form/Form';
- import type { ComponentType } from './types/index';
- import { useI18n } from '/@/hooks/web/useI18n';
- import { dateUtil } from '/@/utils/dateUtil';
- import { isNumber, isObject } from '/@/utils/is';
- const { t } = useI18n();
- /**
- * @description: 生成placeholder
- */
- export function createPlaceholderMessage(component: ComponentType) {
- if (component.includes('Input') || component.includes('Complete')) {
- return t('common.inputText');
- }
- if (component.includes('Picker')) {
- return t('common.chooseText');
- }
- if (
- component.includes('Select') ||
- component.includes('Cascader') ||
- component.includes('Checkbox') ||
- component.includes('Radio') ||
- component.includes('Switch')
- ) {
- // return `请选择${label}`;
- return t('common.chooseText');
- }
- return '';
- }
- const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'];
- function genType() {
- return [...DATE_TYPE, 'RangePicker'];
- }
- export function setComponentRuleType(rule: ValidationRule, component: ComponentType, valueFormat: string) {
- if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
- rule.type = valueFormat ? 'string' : 'object';
- } else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component)) {
- rule.type = 'array';
- } else if (['InputNumber'].includes(component)) {
- rule.type = 'number';
- }
- }
- export function processDateValue(attr: Recordable, component: string) {
- const { valueFormat, value } = attr;
- if (valueFormat) {
- attr.value = isObject(value) ? dateUtil(value).format(valueFormat) : value;
- } else if (DATE_TYPE.includes(component) && value) {
- attr.value = dateUtil(attr.value);
- }
- }
- export function handleInputNumberValue(component?: ComponentType, val?: any) {
- if (!component) return val;
- if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) {
- return val && isNumber(val) ? `${val}` : val;
- }
- return val;
- }
- /**
- * 时间字段
- */
- export const dateItemType = genType();
|