新建域名所有者成功后才自动关闭对话框
This commit is contained in:
parent
3b7b620a52
commit
68b9c75ac1
@ -189,7 +189,11 @@
|
||||
type="text"
|
||||
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
||||
placeholder="请输入详细地址"
|
||||
@input="validateAddress"
|
||||
>
|
||||
<div v-if="addressError" class="text-red-500 text-xs mt-1">
|
||||
{{ addressError }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 联系信息 -->
|
||||
@ -340,7 +344,8 @@ export default {
|
||||
selectedDistrict: '',
|
||||
countryList: getCountryList(),
|
||||
chinaRegions: getChinaRegions(),
|
||||
idNumberError: ''
|
||||
idNumberError: '',
|
||||
addressError: ''
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
@ -380,8 +385,7 @@ export default {
|
||||
// 触发父组件的submit事件,传递数据
|
||||
this.$emit('submit', submitData);
|
||||
|
||||
// 关闭对话框
|
||||
this.closeDialog();
|
||||
// 不在这里关闭对话框,等待父组件处理成功后再关闭
|
||||
} catch (error) {
|
||||
alert('创建失败,请检查网络连接或联系管理员');
|
||||
}
|
||||
@ -406,6 +410,22 @@ export default {
|
||||
}
|
||||
if (!this.formData.c_adr_m) {
|
||||
errors.push('请输入通讯地址');
|
||||
} else {
|
||||
// 验证通讯地址长度
|
||||
if (this.formData.c_adr_m.length < 4) {
|
||||
errors.push('通讯地址长度至少需要4个字符');
|
||||
} else if (this.formData.c_adr_m.length > 64) {
|
||||
errors.push('通讯地址长度不能超过64个字符');
|
||||
} else {
|
||||
// 验证特殊字符
|
||||
const specialChars = [',', '、', ';', ':', '。', '!', '?', ' ', '\t', '\n'];
|
||||
for (const char of specialChars) {
|
||||
if (this.formData.c_adr_m.includes(char)) {
|
||||
errors.push('通讯地址不能包含特殊字符');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.formData.c_pc) {
|
||||
errors.push('请输入邮编');
|
||||
@ -428,11 +448,19 @@ export default {
|
||||
if (!this.formData.c_idnum_gswl) {
|
||||
errors.push('请输入证件号码');
|
||||
} else if (this.formData.c_idtype_gswl === 'SFZ') {
|
||||
const idNum = this.formData.c_idnum_gswl;
|
||||
const idNum = this.formData.c_idnum_gswl.trim();
|
||||
if (idNum.length !== 18) {
|
||||
errors.push('身份证号码必须是18位');
|
||||
} else if (!(idNum.slice(0, 17).match(/^\d+$/) && (idNum[17].match(/^\d$/) || idNum[17].toUpperCase() === 'X'))) {
|
||||
errors.push('身份证号码格式不正确');
|
||||
} else {
|
||||
// 验证格式:前17位为数字,最后一位可能是数字或X
|
||||
const first17 = idNum.slice(0, 17);
|
||||
const lastChar = idNum[17].toUpperCase();
|
||||
|
||||
if (!first17.match(/^\d+$/)) {
|
||||
errors.push('身份证号码前17位必须是数字');
|
||||
} else if (!(lastChar.match(/^\d$/) || lastChar === 'X')) {
|
||||
errors.push('身份证号码最后一位必须是数字或X');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -460,6 +488,7 @@ export default {
|
||||
this.selectedCity = '';
|
||||
this.selectedDistrict = '';
|
||||
this.idNumberError = '';
|
||||
this.addressError = '';
|
||||
},
|
||||
onCountryChange() {
|
||||
// 重置省市区选择
|
||||
@ -540,19 +569,55 @@ export default {
|
||||
}
|
||||
|
||||
if (this.formData.c_idtype_gswl === 'SFZ') {
|
||||
const idNum = this.formData.c_idnum_gswl;
|
||||
const idNum = this.formData.c_idnum_gswl.trim();
|
||||
if (idNum.length !== 18) {
|
||||
this.idNumberError = `身份证号码必须是18位,当前为${idNum.length}位`;
|
||||
return;
|
||||
}
|
||||
|
||||
// 验证格式:前17位为数字,最后一位可能是数字或X
|
||||
if (!(idNum.slice(0, 17).match(/^\d+$/) && (idNum[17].match(/^\d$/) || idNum[17].toUpperCase() === 'X'))) {
|
||||
this.idNumberError = '身份证号码格式不正确';
|
||||
const first17 = idNum.slice(0, 17);
|
||||
const lastChar = idNum[17].toUpperCase();
|
||||
|
||||
if (!first17.match(/^\d+$/)) {
|
||||
this.idNumberError = '身份证号码前17位必须是数字';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(lastChar.match(/^\d$/) || lastChar === 'X')) {
|
||||
this.idNumberError = '身份证号码最后一位必须是数字或X';
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
validateAddress() {
|
||||
this.addressError = '';
|
||||
const address = this.formData.c_adr_m;
|
||||
|
||||
if (!address) {
|
||||
return; // 空值时不显示错误,只在提交时验证
|
||||
}
|
||||
|
||||
// 检查长度
|
||||
if (address.length < 4) {
|
||||
this.addressError = '通讯地址长度至少需要4个字符';
|
||||
return;
|
||||
}
|
||||
|
||||
if (address.length > 64) {
|
||||
this.addressError = '通讯地址长度不能超过64个字符';
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查特殊字符
|
||||
const specialChars = [',', '、', ';', ':', '。', '!', '?', ' ', '\t', '\n'];
|
||||
for (const char of specialChars) {
|
||||
if (address.includes(char)) {
|
||||
this.addressError = '通讯地址不能包含特殊字符';
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
@ -958,47 +958,7 @@ export default {
|
||||
// 创建域名所有者
|
||||
createDomainOwner() {
|
||||
return {
|
||||
url: 'jcloud.api.domain_west.create_domain_owner',
|
||||
validate(data) {
|
||||
if (!data.c_regtype) {
|
||||
throw new DashboardError('请选择所有者类型');
|
||||
}
|
||||
if (!data.c_ln_m || !data.c_fn_m) {
|
||||
throw new DashboardError('请输入姓名');
|
||||
}
|
||||
if (!data.c_st_m || !data.c_ct_m) {
|
||||
throw new DashboardError('请选择所属区域');
|
||||
}
|
||||
if (!data.c_adr_m) {
|
||||
throw new DashboardError('请输入通讯地址');
|
||||
}
|
||||
if (!data.c_pc) {
|
||||
throw new DashboardError('请输入邮编');
|
||||
}
|
||||
if (!data.c_ph) {
|
||||
throw new DashboardError('请输入手机号码');
|
||||
}
|
||||
if (!data.c_em) {
|
||||
throw new DashboardError('请输入电子邮箱');
|
||||
}
|
||||
if (!data.c_idtype_gswl) {
|
||||
throw new DashboardError('请选择证件类型');
|
||||
}
|
||||
if (!data.c_idnum_gswl) {
|
||||
throw new DashboardError('请输入证件号码');
|
||||
}
|
||||
|
||||
// 验证身份证号码格式
|
||||
if (data.c_idtype_gswl === 'SFZ') {
|
||||
const idNum = data.c_idnum_gswl;
|
||||
if (idNum.length !== 18) {
|
||||
throw new DashboardError('身份证号码必须是18位');
|
||||
}
|
||||
if (!(idNum.slice(0, 17).match(/^\d+$/) && (idNum[17].match(/^\d$/) || idNum[17].toUpperCase() === 'X'))) {
|
||||
throw new DashboardError('身份证号码格式不正确');
|
||||
}
|
||||
}
|
||||
},
|
||||
url: 'jcloud.api.domain_west.create_domain_owner_with_template',
|
||||
onSuccess(response) {
|
||||
if (response.status === "Success") {
|
||||
toast.success('域名所有者创建成功');
|
||||
@ -1126,39 +1086,9 @@ export default {
|
||||
},
|
||||
handleOwnerSubmit(formData) {
|
||||
this.isCreatingOwner = true;
|
||||
const apiData = {
|
||||
act: 'auditsub',
|
||||
c_regtype: formData.c_regtype,
|
||||
c_org_m: formData.c_org_m || '',
|
||||
fullname: formData.c_ln_m + formData.c_fn_m,
|
||||
c_ln_m: formData.c_ln_m,
|
||||
c_fn_m: formData.c_fn_m,
|
||||
c_co: formData.c_co || 'CN',
|
||||
cocode: formData.cocode || '+86',
|
||||
c_st_m: formData.c_st_m,
|
||||
c_ct_m: formData.c_ct_m,
|
||||
c_dt_m: formData.c_dt_m || '',
|
||||
c_adr_m: formData.c_adr_m,
|
||||
c_pc: formData.c_pc,
|
||||
c_ph_type: formData.c_ph_type || '0',
|
||||
c_ph: formData.c_ph,
|
||||
c_ph_code: '',
|
||||
c_ph_num: '',
|
||||
c_ph_fj: '',
|
||||
c_em: formData.c_em,
|
||||
c_org: formData.c_org_m || '',
|
||||
c_ln: formData.c_ln_m,
|
||||
c_fn: formData.c_fn_m,
|
||||
c_st: formData.c_st_m,
|
||||
c_ct: formData.c_ct_m,
|
||||
c_adr: formData.c_adr_m,
|
||||
c_idtype_gswl: formData.c_idtype_gswl,
|
||||
c_idnum_gswl: formData.c_idnum_gswl,
|
||||
c_keyword: '',
|
||||
c_domain: '0'
|
||||
};
|
||||
|
||||
this.$resources.createDomainOwner.submit(apiData);
|
||||
// 直接提交数据,验证由对话框组件负责
|
||||
this.$resources.createDomainOwner.submit(formData);
|
||||
},
|
||||
getTotalAmount() {
|
||||
const yearlyPrice = this.domainPrice || 0;
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"c_sysid",
|
||||
"fullname",
|
||||
"c_co",
|
||||
"cocode",
|
||||
@ -20,7 +21,6 @@
|
||||
"c_ph_num",
|
||||
"c_ph_fj",
|
||||
"c_pc",
|
||||
"c_sysid",
|
||||
"team",
|
||||
"section_break_ssfs",
|
||||
"c_org_m",
|
||||
@ -53,37 +53,36 @@
|
||||
{
|
||||
"fieldname": "c_regtype",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"label": "所有者类型",
|
||||
"options": "\nI\nE",
|
||||
"reqd": 1
|
||||
"options": "\nI\nE"
|
||||
},
|
||||
{
|
||||
"fieldname": "c_org_m",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "(中文)所有者单位名称"
|
||||
},
|
||||
{
|
||||
"fieldname": "fullname",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "姓名"
|
||||
},
|
||||
{
|
||||
"fieldname": "c_ln_m",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "(中文)联系人姓"
|
||||
},
|
||||
{
|
||||
"fieldname": "c_fn_m",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "(中文)联系人名"
|
||||
},
|
||||
{
|
||||
"fieldname": "c_co",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "所属国家或地区简称"
|
||||
},
|
||||
{
|
||||
@ -228,7 +227,7 @@
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-08-01 22:27:42.613190",
|
||||
"modified": "2025-08-02 16:32:15.038006",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Jcloud",
|
||||
"name": "Domain Owner",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user