diff --git a/nezha-fronted/src/components/common/js/validate.js b/nezha-fronted/src/components/common/js/validate.js index 528da85a4..50b61086a 100644 --- a/nezha-fronted/src/components/common/js/validate.js +++ b/nezha-fronted/src/components/common/js/validate.js @@ -1,4 +1,5 @@ import vm from '../../../main' +import ca from "element-ui/src/locale/lang/ca"; export function host(rule, value, callback) { const hostReg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\:\d{0,5})?$/ @@ -67,6 +68,21 @@ export function noSpecialChar(rule, value, callback){ }, 100) } +export function integer(rule, value, callback){ + setTimeout(() => { + if(isNaN(Number(value))){ + callback(new Error(vm.$t('validate.number'))) + }else{ + if(Number.isInteger(Number(value))){ + callback(); + }else{ + callback(new Error(vm.$t('validate.integer'))); + } + + } + }, 100) +} + export function positiveInteger(rule, value, callback){ setTimeout(() => { if(isNaN(Number(value))){ @@ -92,3 +108,19 @@ export function domain(rule, value, callback){ }, 100) } +export function timezone(rule, value, callback){ + + setTimeout(() => { + if(isNaN(Number(value))){ + callback(new Error(vm.$t('validate.number'))) + }else{ + let timezone=Math.abs(Number(value)); + if(timezone>12){ + callback(new Error(vm.$t('validate.timezone'))) + }else{ + callback(); + } + } + }, 100) +} + diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index 2d65a393d..9c7bdcf38 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -258,11 +258,13 @@ const en = { validate: { //校验规则 required: 'Required',//'必填项' number: 'Numberic',//'必须是数字' + integer:'Integer', positiveInteger:'Positive Integer', email:'Invalid email',//'不合法的E-mail地址' tel:'Invalid phone number',//'不合法的电话号码' host:'Invalid IP',//'不合法的IP' domain:'Invalid domain', + timezone:'Must be number(-12 - 12)', fileSize:'文件过大',//File exceed max size. port:'Invalid Port', url:'Invalid URL', diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue index 2f33ddd8b..b2f2155a5 100644 --- a/nezha-fronted/src/components/page/config/system.vue +++ b/nezha-fronted/src/components/page/config/system.vue @@ -189,6 +189,8 @@ import {port} from '../../common/js/validate' import {domain} from '../../common/js/validate' import {host} from '../../common/js/validate' + import {timezone} from '../../common/js/validate' + import {integer} from '../../common/js/validate' import bus from '../../../libs/bus'; export default { @@ -213,7 +215,7 @@ asset_ping_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}], scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}], storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}], - timezone:[{validator:positiveInteger,trigger:'blur'}], + timezone:[{validator:integer,trigger:'blur'},{validator:timezone,trigger:'blur' }], }, basicRules2:{ system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},], @@ -221,7 +223,7 @@ alert_api:[{required:true,message:this.$t('validate.required'),trigger:'blur'},,{validator:host,trigger: 'blur'}], scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}], storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}], - timezone:[{validator:positiveInteger,trigger:'blur'}], + timezone:[{validator:integer,trigger:'blur'},{validator:timezone,trigger:'blur' }], }, email:{ email_enable: 'on',