diff --git a/neutrino-proxy-admin/src/views/proxy/portMapping.vue b/neutrino-proxy-admin/src/views/proxy/portMapping.vue index 7e373adb..830a9406 100644 --- a/neutrino-proxy-admin/src/views/proxy/portMapping.vue +++ b/neutrino-proxy-admin/src/views/proxy/portMapping.vue @@ -51,7 +51,9 @@ @@ -171,8 +173,8 @@
@@ -337,7 +339,7 @@ export default { validator: (rule, value, callback) => { if (value && value.length > 0) { for (let i = 0; i < value.length; i++) { - if (!value[i].subdomain || !value[i].domain) { + if (!value[i].subdomain || !value[i].domainId) { return callback(new Error(`子域名和主域名都不能为空`)); } } @@ -406,9 +408,16 @@ export default { methods: { // 添加新的域名映射 addDomainMapping() { + let defaultDomainId = this.domainList[0].id + this.domainList.forEach(item => { + if (item.isDefault === 1) { + defaultDomainId = item.id + } + }) this.temp.domainMappings.push({ - subdomain: '', - domain: '' + subdomain: undefined, + domain: undefined, + domainId: defaultDomainId }); // console.log(this.temp) }, @@ -419,7 +428,31 @@ export default { getList() { this.listLoading = true fetchList(this.listQuery).then(response => { - this.list = response.data.data.records + this.list = response.data.data.records.map(item => { + // 初始化 domainMappings 字段 + item.domainMappings = []; + // 检查是否存在 subdomain 和 domain 字段 + if (item.subdomains && item.domainIds && item.domains) { + // 如果是数组,则按索引组合 subdomain 和 domain 成对象 + if (Array.isArray(item.subdomains) && Array.isArray(item.domainIds) && Array.isArray(item.domains)) { + let allFullDomainList = [] + for (let i = 0; i < item.subdomains.length; i++) { + item.domainMappings.push({ + subdomain: item.subdomains[i] || '', // 使用 || '' 保证字段非空 + domainId: item.domainIds[i] || '', + domain: item.domains[i] || '' + }); + // 拼接完整的域名 + const fullDomain = `${item.subdomains[i]}.${item.domains[i]}`; + // 将拼接后的域名添加到 allFullDomains 中,以逗号分隔 + allFullDomainList.push(fullDomain); + } + item.allFullDomainList = allFullDomainList + } + } + return item; + }); + console.log(this.list) this.total = response.data.data.total this.listLoading = false }) @@ -523,7 +556,7 @@ export default { createData() { this.$refs['dataForm'].validate((valid) => { if (valid) { - console.log(this.temp) + // console.log(this.temp) createUserPortMapping(this.temp).then(response => { if (response.data.code === 0) { this.dialogFormVisible = false @@ -541,8 +574,8 @@ export default { }, handleOpenWebPage(row) { let url = location.protocol + '//' + location.hostname + ':' + row.serverPort - if (row.domain) { - url = location.protocol + '//' + row.domain + if (row.allFullDomainList && row.allFullDomainList.length > 0) { + url = location.protocol + '//' + row.allFullDomainList[0] } open(url) },