(values)
| 214 | }; |
| 215 | |
| 216 | const submit = async (values) => { |
| 217 | setLoading(true); |
| 218 | if (isEdit) { |
| 219 | let { tokenCount: _tc, ...localInputs } = values; |
| 220 | localInputs.remain_quota = parseInt(localInputs.remain_quota); |
| 221 | if (localInputs.expired_time !== -1) { |
| 222 | let time = Date.parse(localInputs.expired_time); |
| 223 | if (isNaN(time)) { |
| 224 | showError(t('过期时间格式错误!')); |
| 225 | setLoading(false); |
| 226 | return; |
| 227 | } |
| 228 | localInputs.expired_time = Math.ceil(time / 1000); |
| 229 | } |
| 230 | localInputs.model_limits = localInputs.model_limits.join(','); |
| 231 | localInputs.model_limits_enabled = localInputs.model_limits.length > 0; |
| 232 | let res = await API.put(`/api/token/`, { |
| 233 | ...localInputs, |
| 234 | id: parseInt(props.editingToken.id), |
| 235 | }); |
| 236 | const { success, message } = res.data; |
| 237 | if (success) { |
| 238 | showSuccess(t('令牌更新成功!')); |
| 239 | props.refresh(); |
| 240 | props.handleClose(); |
| 241 | } else { |
| 242 | showError(t(message)); |
| 243 | } |
| 244 | } else { |
| 245 | const count = parseInt(values.tokenCount, 10) || 1; |
| 246 | let successCount = 0; |
| 247 | for (let i = 0; i < count; i++) { |
| 248 | let { tokenCount: _tc, ...localInputs } = values; |
| 249 | const baseName = values.name.trim() === '' ? 'default' : values.name.trim(); |
| 250 | if (i !== 0 || values.name.trim() === '') { |
| 251 | localInputs.name = `${baseName}-${generateRandomSuffix()}`; |
| 252 | } else { |
| 253 | localInputs.name = baseName; |
| 254 | } |
| 255 | localInputs.remain_quota = parseInt(localInputs.remain_quota); |
| 256 | |
| 257 | if (localInputs.expired_time !== -1) { |
| 258 | let time = Date.parse(localInputs.expired_time); |
| 259 | if (isNaN(time)) { |
| 260 | showError(t('过期时间格式错误!')); |
| 261 | setLoading(false); |
| 262 | break; |
| 263 | } |
| 264 | localInputs.expired_time = Math.ceil(time / 1000); |
| 265 | } |
| 266 | localInputs.model_limits = localInputs.model_limits.join(','); |
| 267 | localInputs.model_limits_enabled = localInputs.model_limits.length > 0; |
| 268 | let res = await API.post(`/api/token/`, localInputs); |
| 269 | const { success, message } = res.data; |
| 270 | if (success) { |
| 271 | successCount++; |
| 272 | } else { |
| 273 | showError(t(message)); |
nothing calls this directly
no test coverage detected