feat: 国标级联新增字段验证
This commit is contained in:
parent
80ea19a6e2
commit
2456da950d
|
|
@ -157,8 +157,7 @@
|
|||
message: '请输入上级SIP 地址',
|
||||
},
|
||||
{
|
||||
max: 64,
|
||||
message: '最多可输入64个字符',
|
||||
validator: checkSIP,
|
||||
},
|
||||
]"
|
||||
>
|
||||
|
|
@ -213,7 +212,10 @@
|
|||
:rules="[
|
||||
{
|
||||
required: true,
|
||||
message: '请输入SIP本地地址',
|
||||
message: '请选择SIP本地地址',
|
||||
},
|
||||
{
|
||||
validator: checkLocalSIP,
|
||||
},
|
||||
]"
|
||||
>
|
||||
|
|
@ -242,11 +244,8 @@
|
|||
<a-select
|
||||
v-model:value="formData.port"
|
||||
placeholder="请选择端口"
|
||||
>
|
||||
<a-select-option value="1">
|
||||
1
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
:options="allListPorts"
|
||||
/>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-item>
|
||||
|
|
@ -261,8 +260,7 @@
|
|||
message: '请输入SIP远程地址',
|
||||
},
|
||||
{
|
||||
max: 64,
|
||||
message: '最多可输入64个字符',
|
||||
validator: checkPublicSIP,
|
||||
},
|
||||
]"
|
||||
>
|
||||
|
|
@ -303,6 +301,7 @@
|
|||
<a-radio-group
|
||||
button-style="solid"
|
||||
v-model:value="formData.transport"
|
||||
@change="setPorts"
|
||||
>
|
||||
<a-radio-button value="UDP">
|
||||
UDP
|
||||
|
|
@ -614,16 +613,27 @@ getClustersList();
|
|||
/**
|
||||
* SIP本地地址
|
||||
*/
|
||||
const allList = ref([]);
|
||||
const allList = ref<any[]>([]);
|
||||
const getAllList = async () => {
|
||||
const { result } = await CascadeApi.all();
|
||||
allList.value = result.map((m: any) => ({
|
||||
label: m.host,
|
||||
value: m.host,
|
||||
}));
|
||||
setPorts();
|
||||
};
|
||||
getAllList();
|
||||
|
||||
/**
|
||||
* 传输协议改变, 获取对应的端口
|
||||
*/
|
||||
const allListPorts = ref([]);
|
||||
const setPorts = () => {
|
||||
allListPorts.value = allList.value.find(
|
||||
(f: any) => f.host === formData.value.host,
|
||||
)?.ports[formData.value.transport || ''];
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取详情
|
||||
*/
|
||||
|
|
@ -667,6 +677,61 @@ onMounted(() => {
|
|||
getDetail();
|
||||
});
|
||||
|
||||
const regDomain =
|
||||
/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;
|
||||
/**
|
||||
* 上级SIP地址 字段验证
|
||||
* @param _
|
||||
* @param value 此处绑定的是 remoteAddress
|
||||
*/
|
||||
const checkSIP = (_: any, value: string) => {
|
||||
return checkHost(value, formData.value.remotePort);
|
||||
};
|
||||
/**
|
||||
* SIP远程地址 字段验证
|
||||
* @param _
|
||||
* @param value 此处绑定的是 publicHost
|
||||
*/
|
||||
const checkPublicSIP = (_: any, value: string) => {
|
||||
return checkHost(value, formData.value.publicPort);
|
||||
};
|
||||
|
||||
/**
|
||||
* 字段验证
|
||||
* @param host ip
|
||||
* @param port 端口
|
||||
*/
|
||||
const checkHost = (host: string, port: string | number | undefined) => {
|
||||
if (!host) {
|
||||
return Promise.resolve();
|
||||
} else if (!host) {
|
||||
return Promise.reject(new Error('请输入IP 地址'));
|
||||
} else if (host && !regDomain.test(host)) {
|
||||
return Promise.reject(new Error('请输入正确的IP地址'));
|
||||
} else if (!port) {
|
||||
return Promise.reject(new Error('请输入端口'));
|
||||
} else if ((host && Number(host) < 1) || Number(host) > 65535) {
|
||||
return Promise.reject(new Error('端口请输入1~65535之间的正整数'));
|
||||
}
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
/**
|
||||
* SIP本地地址 字段验证
|
||||
* @param _
|
||||
* @param value
|
||||
*/
|
||||
const checkLocalSIP = (_: any, value: string) => {
|
||||
if (!value) {
|
||||
return Promise.resolve();
|
||||
} else if (!value) {
|
||||
return Promise.reject(new Error('请选择IP地址'));
|
||||
} else if (!formData.value.port) {
|
||||
return Promise.reject(new Error('请选择端口'));
|
||||
}
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
/**
|
||||
* 表单提交
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue