[Feature][UI] Allows the user to choose a timeout for interface requests. (#12564)
* [Feature][UI] Allows the user to choose a timeout for interface requests. * [Feature][UI] Allows the user to choose a timeout for interface requests.
This commit is contained in:
parent
065d5caccc
commit
dc2f4d9fe3
|
|
@ -19,6 +19,7 @@ export default {
|
|||
refresh_time: 'Log Auto Refresh Time',
|
||||
experimental_feature: 'Experimental Feature',
|
||||
request_settings: 'Request Settings',
|
||||
dynamic_task_component: 'Dynamic Task Component'
|
||||
dynamic_task_component: 'Dynamic Task Component',
|
||||
api_timeout: 'API Timeout',
|
||||
millisecond: 'Millisecond'
|
||||
}
|
||||
|
||||
|
|
@ -19,6 +19,7 @@ export default {
|
|||
refresh_time: '自动刷新时间',
|
||||
experimental_feature: '实验性功能',
|
||||
request_settings: '请求设置',
|
||||
dynamic_task_component: '动态任务组件'
|
||||
dynamic_task_component: '动态任务组件',
|
||||
api_timeout: '接口超时时间',
|
||||
millisecond: '毫秒'
|
||||
}
|
||||
|
||||
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
import axios, { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'
|
||||
import { useUserStore } from '@/store/user/user'
|
||||
import { useUISettingStore } from '@/store/ui-setting/ui-setting'
|
||||
import qs from 'qs'
|
||||
import _ from 'lodash'
|
||||
import cookies from 'js-cookie'
|
||||
|
|
@ -24,6 +25,7 @@ import router from '@/router'
|
|||
import utils from '@/utils'
|
||||
|
||||
const userStore = useUserStore()
|
||||
const uiSettingStore = useUISettingStore()
|
||||
|
||||
/**
|
||||
* @description Log and display errors
|
||||
|
|
@ -43,7 +45,7 @@ const baseRequestConfig: AxiosRequestConfig = {
|
|||
import.meta.env.MODE === 'development'
|
||||
? '/dolphinscheduler'
|
||||
: import.meta.env.VITE_APP_PROD_WEB_URL + '/dolphinscheduler',
|
||||
timeout: 15000,
|
||||
timeout: uiSettingStore.getApiTimer ? uiSettingStore.getApiTimer : 20000,
|
||||
transformRequest: (params) => {
|
||||
if (_.isPlainObject(params)) {
|
||||
return qs.stringify(params, { arrayFormat: 'repeat' })
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
interface UISettingStore {
|
||||
logTimer: number
|
||||
dynamicTask: boolean
|
||||
apiTimer: number
|
||||
}
|
||||
|
||||
export { UISettingStore }
|
||||
export { UISettingStore }
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ export const useUISettingStore = defineStore({
|
|||
id: 'ui-setting',
|
||||
state: (): UISettingStore => ({
|
||||
logTimer: 0,
|
||||
dynamicTask: false
|
||||
dynamicTask: false,
|
||||
apiTimer: 10000
|
||||
}),
|
||||
persist: true,
|
||||
getters: {
|
||||
|
|
@ -31,6 +32,9 @@ export const useUISettingStore = defineStore({
|
|||
},
|
||||
getDynamicTask(): boolean {
|
||||
return this.dynamicTask
|
||||
},
|
||||
getApiTimer(): number {
|
||||
return this.apiTimer
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
|
@ -39,7 +43,9 @@ export const useUISettingStore = defineStore({
|
|||
},
|
||||
setDynamicTask(): void {
|
||||
this.dynamicTask = !this.dynamicTask
|
||||
},
|
||||
setApiTimer(timer: number): void {
|
||||
this.apiTimer = timer
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -73,21 +73,46 @@ const setting = defineComponent({
|
|||
const { t } = useI18n()
|
||||
|
||||
return (
|
||||
<Card style={{ marginLeft: '25%', width: '50%' }} title={t('menu.ui_setting')}>
|
||||
<Card
|
||||
style={{ marginLeft: '25%', width: '50%' }}
|
||||
title={t('menu.ui_setting')}
|
||||
>
|
||||
<h4>{t('ui_setting.request_settings')}</h4>
|
||||
<NSpace align='center' justify='space-between'>
|
||||
<span>{t('ui_setting.refresh_time')}</span>
|
||||
<NSelect
|
||||
style={{ width: '200px' }}
|
||||
default-value={this.logTimerMap[this.uiSettingStore.getLogTimer]}
|
||||
options={this.logTimerOptions}
|
||||
onUpdateValue={handleUpdateValue}
|
||||
/>
|
||||
<NSpace vertical>
|
||||
<NSpace align='center' justify='space-between'>
|
||||
<span>{t('ui_setting.api_timeout')}</span>
|
||||
<NSelect
|
||||
style={{ width: '200px' }}
|
||||
default-value={this.uiSettingStore.getApiTimer}
|
||||
options={[
|
||||
{ label: '10000 ' + t('ui_setting.millisecond'), value: 10000 },
|
||||
{ label: '20000 ' + t('ui_setting.millisecond'), value: 20000 },
|
||||
{ label: '30000 ' + t('ui_setting.millisecond'), value: 30000 },
|
||||
{ label: '40000 ' + t('ui_setting.millisecond'), value: 40000 },
|
||||
{ label: '50000 ' + t('ui_setting.millisecond'), value: 50000 },
|
||||
{ label: '60000 ' + t('ui_setting.millisecond'), value: 60000 }
|
||||
]}
|
||||
onUpdateValue={(t) => this.uiSettingStore.setApiTimer(t)}
|
||||
/>
|
||||
</NSpace>
|
||||
<NSpace align='center' justify='space-between'>
|
||||
<span>{t('ui_setting.refresh_time')}</span>
|
||||
<NSelect
|
||||
style={{ width: '200px' }}
|
||||
default-value={this.logTimerMap[this.uiSettingStore.getLogTimer]}
|
||||
options={this.logTimerOptions}
|
||||
onUpdateValue={handleUpdateValue}
|
||||
/>
|
||||
</NSpace>
|
||||
</NSpace>
|
||||
<h4>{t('ui_setting.experimental_feature')}</h4>
|
||||
<NSpace align='center' justify='space-between'>
|
||||
<span>{t('ui_setting.dynamic_task_component')}</span>
|
||||
<NSwitch round={false} defaultValue={this.uiSettingStore.getDynamicTask} onUpdateValue={() => this.uiSettingStore.setDynamicTask()}></NSwitch>
|
||||
<NSwitch
|
||||
round={false}
|
||||
defaultValue={this.uiSettingStore.getDynamicTask}
|
||||
onUpdateValue={() => this.uiSettingStore.setDynamicTask()}
|
||||
></NSwitch>
|
||||
</NSpace>
|
||||
</Card>
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue