Merge pull request 'Feat/0828/zr' (#17) from feat/0828/ZR into release/eventPlatform_1.05
Reviewed-on: #17
This commit was merged in pull request #17.
This commit is contained in:
@@ -76,6 +76,10 @@ export interface EventListQueryParams {
|
|||||||
idCardImg?: string;
|
idCardImg?: string;
|
||||||
/** 是否要求提供证件号码;0=无需,1=需要 */
|
/** 是否要求提供证件号码;0=无需,1=需要 */
|
||||||
idCardNo?: string;
|
idCardNo?: string;
|
||||||
|
/** 报名人数起始(含) */
|
||||||
|
scBegin?: string;
|
||||||
|
/** 报名人数结束(含) */
|
||||||
|
scEnd?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 分页数据 */
|
/** 分页数据 */
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { defineComponent } from 'vue';
|
|||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Input,
|
Input,
|
||||||
|
InputNumber,
|
||||||
Table,
|
Table,
|
||||||
Form,
|
Form,
|
||||||
Space,
|
Space,
|
||||||
@@ -266,6 +267,45 @@ export default defineComponent({
|
|||||||
onUpdate:value={(val: any) => (filterForm.region = val || [])}
|
onUpdate:value={(val: any) => (filterForm.region = val || [])}
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item label="报名人数">
|
||||||
|
<Space.Compact>
|
||||||
|
<InputNumber
|
||||||
|
placeholder="请输入"
|
||||||
|
style={{ width: '140px' }}
|
||||||
|
value={filterForm.scBegin || undefined}
|
||||||
|
precision={0}
|
||||||
|
step={0}
|
||||||
|
min={0}
|
||||||
|
controls={false}
|
||||||
|
onUpdate:value={(val: any) =>
|
||||||
|
(filterForm.scBegin = val != null ? String(val) : '')
|
||||||
|
}
|
||||||
|
onPressEnter={handleSearch}
|
||||||
|
/>
|
||||||
|
<Input
|
||||||
|
style={{
|
||||||
|
width: '40px',
|
||||||
|
textAlign: 'center',
|
||||||
|
backgroundColor: '#fafafa',
|
||||||
|
pointerEvents: 'none',
|
||||||
|
color: 'rgba(0,0,0,0.45)',
|
||||||
|
}}
|
||||||
|
value="至"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
<InputNumber
|
||||||
|
placeholder="请输入"
|
||||||
|
style={{ width: '140px' }}
|
||||||
|
value={filterForm.scEnd || undefined}
|
||||||
|
precision={0}
|
||||||
|
step={0}
|
||||||
|
min={0}
|
||||||
|
controls={false}
|
||||||
|
onUpdate:value={(val: any) => (filterForm.scEnd = val != null ? String(val) : '')}
|
||||||
|
onPressEnter={handleSearch}
|
||||||
|
/>
|
||||||
|
</Space.Compact>
|
||||||
|
</Form.Item>
|
||||||
<Form.Item>
|
<Form.Item>
|
||||||
<Space>
|
<Space>
|
||||||
<Button type="primary" onClick={handleSearch} loading={loading.value}>
|
<Button type="primary" onClick={handleSearch} loading={loading.value}>
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ export const FILTER_DEFAULTS = {
|
|||||||
isPublic: '',
|
isPublic: '',
|
||||||
idCardNo: '',
|
idCardNo: '',
|
||||||
idCardImg: '',
|
idCardImg: '',
|
||||||
|
scBegin: '',
|
||||||
|
scEnd: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
export type FieldMapping = [
|
export type FieldMapping = [
|
||||||
@@ -35,6 +37,8 @@ export const FIELD_MAPPINGS: FieldMapping[] = [
|
|||||||
['createDateRange', 'createDateEnd', (v) => v?.[1]],
|
['createDateRange', 'createDateEnd', (v) => v?.[1]],
|
||||||
['startDateRange', 'startDate', (v) => v?.[0]],
|
['startDateRange', 'startDate', (v) => v?.[0]],
|
||||||
['startDateRange', 'startDateEnd', (v) => v?.[1]],
|
['startDateRange', 'startDateEnd', (v) => v?.[1]],
|
||||||
|
['scBegin', 'scBegin'],
|
||||||
|
['scEnd', 'scEnd'],
|
||||||
];
|
];
|
||||||
|
|
||||||
/** 赛事状态选项(value 对应 API status) */
|
/** 赛事状态选项(value 对应 API status) */
|
||||||
|
|||||||
@@ -92,11 +92,24 @@ export function useEventListModel() {
|
|||||||
f.region.length > 0 ||
|
f.region.length > 0 ||
|
||||||
!!f.isPublic ||
|
!!f.isPublic ||
|
||||||
!!f.idCardNo ||
|
!!f.idCardNo ||
|
||||||
!!f.idCardImg
|
!!f.idCardImg ||
|
||||||
|
!!f.scBegin?.trim() ||
|
||||||
|
!!f.scEnd?.trim()
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/** 报名人数区间:起始大于结束时对调 */
|
||||||
|
const normalizeSignupCountRange = () => {
|
||||||
|
const begin = filterForm.scBegin.trim();
|
||||||
|
const end = filterForm.scEnd.trim();
|
||||||
|
if (begin && end && Number(begin) > Number(end)) {
|
||||||
|
filterForm.scBegin = end;
|
||||||
|
filterForm.scEnd = begin;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handleSearch = () => {
|
const handleSearch = () => {
|
||||||
|
normalizeSignupCountRange();
|
||||||
pagination.reset();
|
pagination.reset();
|
||||||
fetchList();
|
fetchList();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ export const ACTION_TYPE_OPTIONS = [
|
|||||||
{ value: '3', label: '禁用用户' },
|
{ value: '3', label: '禁用用户' },
|
||||||
{ value: '4', label: '启用用户' },
|
{ value: '4', label: '启用用户' },
|
||||||
{ value: '7', label: '系统参数' },
|
{ value: '7', label: '系统参数' },
|
||||||
|
{ value: '8', label: '用户登录' },
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
/** 操作类型文案映射 */
|
/** 操作类型文案映射 */
|
||||||
@@ -33,6 +34,7 @@ export const ACTION_TYPE_MAP: Record<number, string> = {
|
|||||||
3: '禁用用户',
|
3: '禁用用户',
|
||||||
4: '启用用户',
|
4: '启用用户',
|
||||||
7: '系统参数',
|
7: '系统参数',
|
||||||
|
8: '用户登录',
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|||||||
+3
-3
@@ -34,8 +34,8 @@ export const REAL_NAME_REGEX = /^[\u4e00-\u9fa5A-Za-z0-9·]{1,8}$/;
|
|||||||
export const IMAGE_TYPE_REGEX = /^image\//;
|
export const IMAGE_TYPE_REGEX = /^image\//;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 纯数字(整数)
|
* 非数字字符
|
||||||
* - 用于过滤非数字字符
|
* - 用于过滤 0-9 以外的字符(含小数点、字母、符号等)
|
||||||
*/
|
*/
|
||||||
export const INTEGER_ONLY_REGEX = /\D/g;
|
export const INTEGER_ONLY_REGEX = /\D/g;
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ export function isImageFile(file: { type: string }): boolean {
|
|||||||
return IMAGE_TYPE_REGEX.test(file.type);
|
return IMAGE_TYPE_REGEX.test(file.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 过滤非数字字符,只保留整数 */
|
/** 只保留数字字符 */
|
||||||
export function toIntegerOnly(value: unknown): string {
|
export function toIntegerOnly(value: unknown): string {
|
||||||
return String(value ?? '').replace(INTEGER_ONLY_REGEX, '');
|
return String(value ?? '').replace(INTEGER_ONLY_REGEX, '');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user