@@ -10,12 +10,13 @@ import {
10
10
11
11
import { CardTitle } from 'components/CardTitle'
12
12
import { EditorResetButton } from 'components/editor/EditorResetButton'
13
- import type { CopilotDocV1 } from 'models/copilot.schema'
13
+ import { CopilotDocV1 } from 'models/copilot.schema'
14
14
15
15
import { FormField2 } from '../../FormField'
16
16
import { EditorOperatorName } from './EditorOperator'
17
17
import { EditorOperatorGroupSelect } from './EditorOperatorGroupSelect'
18
18
import { EditorOperatorSkill } from './EditorOperatorSkill'
19
+ import { EditorOperatorSkillTimes } from './EditorOperatorSkillTimes'
19
20
import { EditorOperatorSkillUsage } from './EditorOperatorSkillUsage'
20
21
21
22
export interface EditorOperatorFormValues extends CopilotDocV1 . Operator {
@@ -50,6 +51,7 @@ export const EditorPerformerOperator = ({
50
51
handleSubmit,
51
52
setError,
52
53
formState : { errors } ,
54
+ watch,
53
55
} = useForm < EditorOperatorFormValues > ( )
54
56
55
57
const findGroupByOperator = ( operator ?: CopilotDocV1 . Operator ) =>
@@ -72,6 +74,16 @@ export const EditorPerformerOperator = ({
72
74
setValue ( 'groupName' , findGroupByOperator ( getValues ( ) ) ?. name )
73
75
} , [ reset , getValues , groups ] )
74
76
77
+ const skillUsage = watch ( 'skillUsage' )
78
+ useEffect ( ( ) => {
79
+ setValue (
80
+ 'skillTimes' ,
81
+ skillUsage === CopilotDocV1 . SkillUsageType . ReadyToUseTimes
82
+ ? operator ?. skillTimes ?? 1
83
+ : undefined ,
84
+ )
85
+ } , [ skillUsage , setValue ] )
86
+
75
87
const onSubmit : SubmitHandler < EditorOperatorFormValues > = ( values ) => {
76
88
values . name = values . name . trim ( )
77
89
values . groupName = values . groupName ?. trim ( )
@@ -125,13 +137,8 @@ export const EditorPerformerOperator = ({
125
137
/>
126
138
</ FormField2 >
127
139
128
- < div className = "flex flex-col lg:flex-row" >
129
- < FormField2
130
- label = "技能"
131
- field = "skill"
132
- error = { errors . skill }
133
- className = "mr-2"
134
- >
140
+ < div className = "flex flex-col lg:flex-row gap-2 flex-wrap" >
141
+ < FormField2 label = "技能" field = "skill" error = { errors . skill } >
135
142
< EditorOperatorSkill control = { control } name = "skill" />
136
143
</ FormField2 >
137
144
@@ -142,6 +149,16 @@ export const EditorPerformerOperator = ({
142
149
>
143
150
< EditorOperatorSkillUsage control = { control } name = "skillUsage" />
144
151
</ FormField2 >
152
+
153
+ { skillUsage === CopilotDocV1 . SkillUsageType . ReadyToUseTimes && (
154
+ < FormField2
155
+ label = "技能使用次数"
156
+ field = "skillTimes"
157
+ error = { errors . skillTimes }
158
+ >
159
+ < EditorOperatorSkillTimes control = { control } name = "skillTimes" />
160
+ </ FormField2 >
161
+ ) }
145
162
</ div >
146
163
147
164
< div className = "flex" >
0 commit comments