-
Notifications
You must be signed in to change notification settings - Fork 1
/
person.service.ts
62 lines (56 loc) · 1.17 KB
/
person.service.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import {EnhancedClass,Type, Base, Column, Form} from './utils'
import * as Yup from 'yup';
@EnhancedClass({})
export class Person extends Base {
static sexOptions = ['male' , 'female' , 'unknow'];
@Type({
handle: 'ID'
})
id: number = 0
@Form({
label:"Name",
validationSchema: Yup.string().required('Name is required'),
handleSubmitData(data,key) {
return {
[key]: (data[key] as string).toUpperCase()
}
},
required: true,
initValue:'test name'
})
@Column({
header: 'person name'
})
@Type({})
name:string = ''
@Form({
label:"Age",
validationSchema: Yup.string().required('Age is required'),
handleSubmitData(data,key) {
return {
[key]: parseInt(data[key] || '0')
}
},
required: true,
})
@Column({
header: 'person age'
})
@Type({
handle(data,key) {
return parseInt(data[key] || '0')
}
})
age:number = 0
@Form({
label:"Sex",
options: Person.sexOptions
})
@Column({})
@Type({
handle(data,key) {
return Person.sexOptions.includes(data[key]) ? data[key] : 'unknow'
}
})
sex: 'male' | 'female' | 'unknow' = 'unknow'
}