<template>
<div class="refresh-settings" v-if="this.maxLimitDay">
<el-form ref="refreshSettingsRef" :model="form" :rules="rules">
<el-form-item label="时间范围" prop="day" :label-width="formLabelWidth">
<el-input v-model.number="form.day" placeholder="请输入天数">
<template slot="prepend">最近</template>
<template slot="append">天</template>
</el-input>
</el-form-item>
<el-form-item label="自动更新" prop="open" :label-width="formLabelWidth">
<el-radio-group v-model="form.open">
<el-radio :label="1">开</el-radio>
<el-radio :label="0">关</el-radio>
</el-radio-group></el-form-item
>
<el-form-item label="" prop="hour" :label-width="formLabelWidth">
<el-input v-model.number="form.hour" placeholder="请输入更新时间">
<template slot="prepend">每天</template>
<template slot="append">时</template>
</el-input>
</el-form-item>
</el-form>
</div>
</template>
<script scoped>
import store from '@/store';
import { forEach, cloneDeep } from 'lodash';
import Api from '../api';
export default {
components: {},
data() {
return {
maxLimitDay: '', // 最大限制天数
form: {
day: 7,
open: 1,
hour: 5,
},
formLabelWidth: '120px',
};
},
computed: {
searchOptions() {
return {
...this.form,
};
},
rules() {
return {
day: [
{
type: 'number',
required: true,
message: '时间范围必须为数字值',
trigger: 'blur',
},
// 此时,这里需要把方法定义在methods中,如果直接使用validator()(rule, value,
callback) {},在这里面获取Mounted返回的值,是获取不到的,一直是Undefined
{
validator: this.validatorDay,
trigger: 'blur',
},
],
hour: [
{
type: 'number',
required: true,
message: '更新时间必须为数字值',
trigger: 'blur',
},
{
pattern: /^(?:[0-9]|1[0-9]|2[0-3])$/,
message: '输入范围在0-23时',
trigger: 'blur',
},
],
};
},
},
beforeDestroy() {},
mounted() {
this.getConfig();
this.getMaxDaysByParamId();
},
methods: {
/**
* 获取底账更新配置最大天数
*/
getMaxDaysByParamId() {
Api.getMaxDaysByParamId({})
.then((res) => {
this.maxLimitDay = parseInt(res);
})
.catch((e) => {
this.$msg.error(e.msg);
});
},
validatorDay(rule, value, callback) {
if (value < 1 || value > this.maxLimitDay) {
callback(new Error('输入范围在1-' + this.maxLimitDay + '天'));
} else {
callback();
}
},
confirm() {
this.saveConfig();
},
cancel() {
this.$emit('cancel');
},
getConfig() {
Api.getDataAccountCornConfig()
.then((res) => {
if (res) {
this.form.day = res.day != undefined ? res.day : 7;
this.form.open = res.open != undefined ? res.open : 1;
this.form.hour = res.hour != undefined ? res.hour : 5;
}
})
.catch((error) => {
this.$msg.error(error.msg);
});
},
saveConfig() {
this.$refs.refreshSettingsRef.validate((valid) => {
if (valid) {
Api.updateDataAccountCornTask(this.searchOptions)
.then((res) => {
this.$msg.success('更新配置成功!');
this.$emit('cancel');
})
.catch((error) => {
this.$msg.error(error.msg);
});
}
});
},
},
watch: {},
};
</script>
<style scoped lang="less">
.refresh-settings {
height: 150px;
}
</style>
在computed中定义了el-form规则,使用validator验证,获取mounted返回的数据是,总是获取不到 -- 解决方法
最新推荐文章于 2024-05-14 00:10:03 发布