<script>
|
import TimeSinglePicker from '@/sfc/TimeSinglePicker.vue'
|
import requestTaskSetting from '@/api/setting/requestTaskSetting.js'
|
export default {
|
components: {
|
TimeSinglePicker
|
},
|
props: {
|
modelValue: {
|
type: Boolean,
|
default: false
|
},
|
tableData: {
|
type: Object,
|
default: {}
|
}
|
},
|
emits: ['update:modelValue'],
|
|
computed: {
|
value: {
|
get() {
|
return this.modelValue
|
},
|
set(value) {
|
this.$emit('update:modelValue', value)
|
}
|
},
|
formDataAfterCal() {
|
return {
|
user: this.form.user,
|
updateTime: this.form.updateTime,
|
region: this.form.region,
|
version: this.form.version,
|
requestStartTime: this.form.requestStartTime,
|
requestEndTime: this.form.requestEndTime,
|
|
requestIntervalSeconds: this.form.requestIntervalSeconds * 3600,
|
requestRangeHour: this.form.requestRangeHour,
|
requestRangeIntervalSeconds: this.form.requestRangeIntervalSeconds,
|
requestFailWaitSeconds: this.form.requestFailWaitSeconds,
|
requestRetryTimes: this.form.requestRetryTimes,
|
requestCookieValidDuration: this.form.requestCookieValidDuration,
|
staticsDailyTime: this.form.staticsDailyTime,
|
staticsMonthlyTime: this.form.staticsMonthlyTime,
|
loginFailWaitSeconds: this.form.loginFailWaitSeconds,
|
loginRetryTimes: this.form.loginRetryTimes,
|
taskRetryWaitSeconds: this.form.taskRetryWaitSeconds,
|
firstRequestOffsetDays: this.form.firstRequestOffsetDays
|
}
|
}
|
},
|
|
data() {
|
return {
|
form: {
|
user: 'admin',
|
updateTime: '2023-10-10 09:16:41',
|
region: '金山区',
|
version: '1.0',
|
requestStartTime: '2023-10-12 08:43:00',
|
requestEndTime: null,
|
requestIntervalSeconds: 12,
|
requestRangeHour: 8,
|
requestRangeIntervalSeconds: 5,
|
requestFailWaitSeconds: 120,
|
requestRetryTimes: 4,
|
requestCookieValidDuration: 48,
|
staticsDailyTime: '2023-10-11 09:00:00',
|
staticsMonthlyTime: '2023-10-01 10:00:00',
|
loginFailWaitSeconds: 5,
|
loginRetryTimes: 5,
|
taskRetryWaitSeconds: 120,
|
firstRequestOffsetDays: 30
|
},
|
rules: {
|
requestIntervalSeconds: [{ validator: this.checkRequestIntervalSeconds, trigger: 'blur' }],
|
requestRangeHour: [
|
{ type: 'number', pattern: '/^\d+$/', message: '请输入数字', trigger: 'blur' }
|
// {pattern:'/^[0-9]+$/'}
|
]
|
// requestRangeIntervalSeconds: [{ validator: this.checkRequestRangeIntervalSeconds, trigger: 'blur' }],
|
// requestFailWaitSeconds: [{ validator: this.checkRequestFailWaitSeconds, trigger: 'blur' }],
|
// requestRetryTimes: [{ validator: this.checkRequestRetryTimes, trigger: 'blur' }],
|
// loginFailWaitSeconds: [{ validator: this.checkLoginFailWaitSeconds, trigger: 'blur' }],
|
// loginRetryTimes: [{ validator: this.checkLoginRetryTimes, trigger: 'blur' }],
|
// taskRetryWaitSeconds: [{ validator: this.checkTaskRetryWaitSeconds, trigger: 'blur' }],
|
// firstRequestOffsetDays: [{ validator: this.checkFirstRequestOffsetDays, trigger: 'blur' }],
|
}
|
}
|
},
|
|
mounted() {
|
// const { ...temp } = this.tableData
|
// this.form = temp
|
},
|
methods: {
|
// 提交
|
/* submitForm() {
|
// 发送修改的请求
|
requestTaskSetting.submitRequestSetting(this.form)
|
|
this.$message.success('提交成功')
|
|
|
this.value = false
|
|
|
|
}, */
|
|
async submitForm(formEl) {
|
if (!formEl) return
|
await formEl.validate((valid, fields) => {
|
if (valid) {
|
console.log('submit!')
|
} else {
|
console.log('error submit!', fields)
|
}
|
})
|
},
|
|
// 取消
|
cancel_1() {
|
this.value = false
|
},
|
|
checkRequestIntervalSeconds(rule, value, callback) {
|
if (!value) {
|
return callback(new Error('请输入有效值'))
|
}
|
setTimeout(() => {
|
if (!Number.isInteger(value)) {
|
callback(new Error('请输入数字'))
|
} else {
|
if (value < 2 || value > 24) {
|
callback(new Error('范围在2~24'))
|
} else {
|
callback()
|
}
|
}
|
}, 300)
|
}
|
}
|
}
|
</script>
|
<template>
|
<el-dialog v-model="value" title="数据获取配置参数修改" close-delay="200" align-center>
|
<el-form :model="form" ref="ruleFormRef" label-width="210px" status-icon :rules="rules">
|
<el-form-item label="用户名">
|
<el-input v-model="form.user" disabled />
|
</el-form-item>
|
<el-form-item label="开始时间">
|
<TimeSinglePicker
|
:selectedTime="form.requestStartTime"
|
@submit-time="(n) => (form.requestStartTime = n)"
|
></TimeSinglePicker>
|
</el-form-item>
|
<el-form-item label="结束时间">
|
<TimeSinglePicker
|
@submit-time="(n) => (form.requestEndTime = n)"
|
:selected-time="form.requestEndTime"
|
></TimeSinglePicker>
|
</el-form-item>
|
|
<!-- ---------------------------------------------------------- -->
|
<el-form-item label="获取频率" prop="requestIntervalSeconds">
|
<el-input v-model.number="form.requestIntervalSeconds">
|
<template #append>小时/次</template>
|
</el-input>
|
</el-form-item>
|
|
<el-form-item label="任务分段时长" prop="requestRangeHour">
|
<el-input v-model.number="form.requestRangeHour" :min="1" :max="10">
|
<template #append>小时</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="分段执行的间隔" prop="requestRangeIntervalSeconds">
|
<el-input v-model.number="form.requestRangeIntervalSeconds" :min="1" :max="10">
|
<template #append>秒</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="获取任务异常时再次尝试间隔" prop="requestFailWaitSeconds">
|
<el-input v-model.number="form.requestFailWaitSeconds" :min="1" :max="10">
|
<template #append>秒</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="获取失败时再次尝试的总次数" prop="requestRetryTimes">
|
<el-input v-model.number="form.requestRetryTimes" :min="1" :max="10">
|
<template #append>次数</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="日统计">
|
<TimeSinglePicker
|
@submit-time="(n) => (form.staticsDailyTime = n)"
|
:selected-time="form.staticsDailyTime"
|
/>
|
</el-form-item>
|
<el-form-item label="月统计">
|
<TimeSinglePicker
|
@submit-time="(n) => (form.staticsMonthlyTime = n)"
|
:selected-time="form.staticsMonthlyTime"
|
/>
|
</el-form-item>
|
<el-form-item label="登录失败等待时长" prop="loginFailWaitSeconds">
|
<el-input v-model.number="form.loginFailWaitSeconds" :min="1" :max="10">
|
<template #append>秒</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="登录失败尝试次数" prop="loginRetryTimes">
|
<el-input v-model.number="form.loginRetryTimes" :min="1" :max="10">
|
<template #append>次数</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="任务重新开始尝试等待时间" prop="taskRetryWaitSeconds">
|
<el-input v-model.number="form.taskRetryWaitSeconds" :min="1" :max="10">
|
<template #append>秒</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="获取开始时间相对当日往前偏移" prop="firstRequestOffsetDays">
|
<el-input v-model.number="form.firstRequestOffsetDays" :min="1" :max="10">
|
<template #append>天</template>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
|
<template #footer>
|
<el-button @click="cancel_1">取消</el-button>
|
<el-button type="primary" @click="submitForm(ruleFormRef)">提交</el-button>
|
</template>
|
</el-dialog>
|
</template>
|
|
<style scoped>
|
/* .el-form {
|
display: flex;
|
flex-direction: column;
|
}
|
*/
|
/* .el-form-item {
|
display: flex;
|
margin-top: 5px;
|
} */
|
/* .el-input {
|
width: 700px;
|
}
|
*/
|
</style>
|