feat:公共校验js & 过长名称弹框显示

This commit is contained in:
wangwenrui
2020-01-16 17:54:04 +08:00
parent 0f72442e9c
commit ec70d1557f
9 changed files with 83 additions and 52 deletions

View File

@@ -0,0 +1,52 @@
import vm from '../../../main'
export function host(rule, value, callback) {
console.log("callback:")
console.log(callback)
console.log(typeof callback)
if(!value || value == ''){
callback(new Error(vm.$t('validate.required')))
}
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])$/
setTimeout(() => {
if (hostReg.test(value)) {
callback()
} else {
callback(new Error(vm.$t('validate.host')))
}
}, 100)
}
export function phone(rule, value, callback) {
if(!value || value == ''){
callback()
}
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
setTimeout(() => {
if (!Number.isInteger(+value)) {
callback(new Error(vm.$t('validate.tel')))
} else {
if (phoneReg.test(value)) {
callback()
} else {
callback(new Error(vm.$t('validate.tel')))
}
}
}, 100)
}
export function port(rule, value, callback) {
if(!value || value == ''){
callback(new Error(vm.$t('validate.required')))
}
setTimeout(() => {
if(typeof value != 'number'){
callback(new Error(vm.$t('validate.number')))
}
if(value < 1 ||value > 65535){
callback(new Error(vm.$t('validate.port')))
}
}, 100)
}

View File

@@ -50,6 +50,7 @@
</template>
<script>
import {phone} from '../../common/js/validate'
export default {
name: "dcConfig",
props:{
@@ -62,24 +63,6 @@
this.init();
},
data(){
let checkPhone=(rule, value, callback) => {
if(!value || value == ''){
callback()
}
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
setTimeout(() => {
if (!Number.isInteger(+value)) {
callback(new Error(this.$t('validate.tel')))
} else {
if (phoneReg.test(value)) {
callback()
} else {
callback(new Error(this.$t('validate.tel')))
}
}
}, 100)
}
return {
title:"",
rules:{
@@ -91,7 +74,7 @@
principal:[
],
tel:[
{ validator: checkPhone, trigger: 'blur'}
{ validator: phone, trigger: 'blur'}
]
},
idc:{},

View File

@@ -69,7 +69,9 @@
<div v-if="!currentModuleCopy.id" class="endpoint-sub-table-body-dialog"></div>
<div @click="selectAsset(item, index)" :data="item.id" v-for="item,index in assetList" class="endpoint-sub-table-row" :id="'select-asset-'+item.id">
<div class="endpoint-sub-table-col">{{item.host}}</div>
<div class="endpoint-sub-table-col">{{item.sn}}</div>
<el-popover trigger="hover" placement="right-start" :content="item.sn" >
<div slot="reference" class="endpoint-sub-table-col">{{item.sn}}</div>
</el-popover>
</div>
</div>
</div>
@@ -850,6 +852,7 @@
display: inline-block;
width: calc(50% - 15px);
padding-left: 10px;
text-overflow: ellipsis;
}
.endpoint-sub-table-paginate-all {
position: absolute;

View File

@@ -41,6 +41,7 @@
</template>
<script>
import {port} from '../../common/js/validate'
export default {
name: "accountConfig",
props:{
@@ -66,15 +67,7 @@ export default {
let validatePort=(rule,value,callback) => {
if(this.asComponent){//作为组件使用,正常验证
if(!value || value == ''){
callback(new Error(this.$t('validate.required')))
}
if(typeof value != 'number'){
callback(new Error(this.$t('validate.number')))
}
if(value < 1 ||value > 65535){
callback(new Error(this.$t('validate.port')))
}
port(rule,value,callback);
}else{
if(this.account.user){
if(!value || value == ''){

View File

@@ -10,7 +10,10 @@
<el-checkbox-group v-model="checkList" size="small" @change="changeCheckBox">
<el-checkbox class="sidebar-info-item" :class="{'sidebar-info-item-active': indOf(checkList, item.id)}"
v-for="(item,key) in checkListData" :key="key" :label=item.id>
<div class="sidebar-info-item-txt">{{item.name}}</div>
<el-popover trigger="hover" placement="right-end" :content="item.name" >
<div slot="reference" class="sidebar-info-item-txt">{{item.name}}</div>
</el-popover>
<idc-config-box ref="idcConfigBox" :post-idc="item" placement="left" @after="getIDCOptionData" :button-class="'checkbox-edit'">
<template v-slot:optionZone>
<span @click="closeAllPop">
@@ -67,7 +70,9 @@
<span>{{scope.row.model.type.value}}</span>
</div>
<div v-if="item.prop=='SN'">
<span>{{scope.row.sn}}</span>
<el-popover trigger="hover" placement="bottom-start" :content="scope.row.sn" >
<span slot="reference" class="sidebar-info-item-txt">{{scope.row.sn}}</span>
</el-popover>
</div>
<div v-if="item.prop=='HOST'">
<span>{{scope.row.host}}</span>

View File

@@ -333,6 +333,7 @@
<script>
import accountConfig from './accountConfig';
import {host} from '../../common/js/validate';
export default {
name: "assetAddUnit",
@@ -478,7 +479,8 @@
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
],
host: [
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
{required: true,validator:host, trigger: 'blur'}
],
modelId: [
{required: true, message: this.$t('validate.required'), trigger: 'change'}

View File

@@ -24,7 +24,9 @@
<el-form ref="assetEditForm" :model="assetData" label-width="120px" class="right-box-form right-box-form-left" :rules="rules">
<el-form-item :label="$t('asset.createAssetTab.sn')" prop="sn">
<el-input size="mini" v-if="!tabView" v-model="assetData.sn"/>
<span v-if="tabView">{{assetData.sn}}</span>
<el-popover trigger="hover" placement="bottom-start" :content="assetData.sn" >
<span slot="reference" class="sidebar-info-item-txt" v-if="tabView">{{assetData.sn}}</span>
</el-popover>
</el-form-item>
<el-form-item :label="this.$t('asset.createAssetTab.host')" prop="host">
<el-input size="mini" v-if="!tabView" v-model="assetData.host"/>
@@ -459,6 +461,7 @@
<script>
import accountConfig from './accountConfig';
import {host} from '../../common/js/validate';
export default {
name: "assetEditUnit",
props: ["editUnitShow", "editUnitId"],
@@ -617,7 +620,7 @@
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
],
host: [
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
{required: true, validator:host, trigger: 'blur'}
],
modelId: [
{required: true, message: this.$t('validate.required'), trigger: 'change'}

View File

@@ -145,23 +145,12 @@
</template>
<script>
import {host} from '../../common/js/validate';
import {port} from '../../common/js/validate';
export default {
name: "prom",
data() {
let checkHost=(rule, value, callback) => {
if(!value || value == ''){
callback(new Error(this.$t('validate.required')))
}
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])$/
setTimeout(() => {
if (hostReg.test(value)) {
callback()
} else {
callback(new Error(this.$t('validate.host')))
}
}, 100)
}
return {
rightBox: { //弹出框相关
show: false,
@@ -179,11 +168,10 @@ export default {
{required:true,message:this.$t('validate.required'),trigger:'change'}
],
host:[
{ validator: checkHost, trigger: 'blur',required:true}
{ validator: host, trigger: 'blur',required:true}
],
port:[
{required:true,message:this.$t('validate.required'),trigger:'blur'},
{type:'number',message: this.$t('validate.number')}
{ validator: port, trigger: 'blur',required:true}
],
type:[
{required:true,message:this.$t('validate.required'),trigger:'change'},

View File

@@ -10,7 +10,9 @@
@click="changeModule(item)"
:id="'project-module-'+item.id"
>
<div class="sidebar-info-item-txt">{{item.name}}</div>
<el-popover trigger="hover" placement="right-end" :content="item.name" >
<div slot="reference" class="sidebar-info-item-txt">{{item.name}}</div>
</el-popover>
<div class="side-bar-menu-edit" @click.stop="toEditModule(item)" :id="'project-module-edit-'+item.id"><i class="el-icon-edit-outline"></i></div>
</div>
</div>