diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js
index ca4932759..365a05b39 100644
--- a/nezha-fronted/src/components/common/language/en.js
+++ b/nezha-fronted/src/components/common/language/en.js
@@ -123,6 +123,7 @@ const en = {
tel:'Phone number is invalid',
host:'IP Address is invalid',
fileSize:'upload file is too large',
+ port:'Port is invalide',
config: {
account: {
@@ -217,7 +218,8 @@ const en = {
upload:'Upload',
clickToUpload:'Upload',
clickToCover:'Cover',
- sshKeyWasConfig:'SSH-KEY has been configured'
+ sshKeyWasConfig:'SSH-KEY has been configured',
+ exporter:'Exporter'
},
editAssetTab:{
title:'Create Asset',
diff --git a/nezha-fronted/src/components/page/asset/accountConfig.vue b/nezha-fronted/src/components/page/asset/accountConfig.vue
index 2531bf800..aa1f81a43 100644
--- a/nezha-fronted/src/components/page/asset/accountConfig.vue
+++ b/nezha-fronted/src/components/page/asset/accountConfig.vue
@@ -20,11 +20,11 @@
{{account.user}}
-
+
-
-
+
+
{{account.port}}
@@ -45,7 +45,7 @@ export default {
name: "accountConfig",
props:{
account:{type:Object},
- asComponent:{type:Boolean,default:false},
+ asComponent:{type:Boolean,default:true},//历史原因增加的逻辑,可删除
isEdit:{type:Boolean,default:true}
},
created() {
@@ -69,11 +69,23 @@ export default {
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')))
+ }
}else{
if(this.account.user){
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')))
+ }
}
}
callback();
@@ -92,7 +104,7 @@ export default {
{ validator: validataUser, trigger: 'blur'}
],
port:[
- { validator: validatePort, trigger: 'blur'}
+ { validator: validatePort, trigger: 'change'}
],
file:[
{ validator: validateFile, trigger: 'change'}
diff --git a/nezha-fronted/src/components/page/asset/assetAddUnit.vue b/nezha-fronted/src/components/page/asset/assetAddUnit.vue
index 86d4a3b9c..7ec4abbde 100644
--- a/nezha-fronted/src/components/page/asset/assetAddUnit.vue
+++ b/nezha-fronted/src/components/page/asset/assetAddUnit.vue
@@ -259,58 +259,7 @@
-
+
@@ -318,58 +267,7 @@
-
+
@@ -417,9 +315,16 @@
{{cabinetSelectedData.remark}}
- {{$t('asset.createAssetTab.cli')}}
+ {{$t('asset.createAssetTab.cli')}}
+
-
+
+
+
+
+
+
+
@@ -455,8 +360,10 @@
pwd: '',
port: '',
uploadFile:null
- }]
+ }],
+ exporter:0
},
+ accountSwitch:false,//true 开启,false 关闭
assetStateOption: [
{
value: 1,
@@ -594,7 +501,8 @@
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
]
},
- uploadFileList:[]
+ uploadFileList:[],
+
}
},
/*computed: {
@@ -618,6 +526,11 @@
},
'assetData.idcId': function(n, o) {
this.addCabinetData.idcId = n;
+ },
+ 'assetData.exporter':function(n,o){
+ if(parseInt(n) === 1){
+ this.accountSwitch=true;
+ }
}
},
methods: {
@@ -824,8 +737,11 @@
})
}
if (type === 'asset') {
- this.$refs.accountConfigBox[0].validateAccount();
- let accountValideResult=this.$refs.accountConfigBox[0].validateResult;
+ let accountValideResult=true;
+ if(this.$refs.accountConfigBox&&this.$refs.accountConfigBox.length>0){
+ this.$refs.accountConfigBox[0].validateAccount();
+ accountValideResult=this.$refs.accountConfigBox[0].validateResult;
+ }
this.$refs.addAssetForm.validate((valid) => {
if (valid&&accountValideResult) {
let modelId = ''
@@ -848,18 +764,21 @@
form.append("idcId", this.assetData.idcId);
form.append("cabinetId", this.assetData.cabinetId);
form.append("modelId", modelId);
- for(let i in this.assetData.accounts){
- let account=this.assetData.accounts[i];
- if(account.user){
- form.append("accounts["+i+"].authType",account.authType);
- form.append("accounts["+i+"].user", account.user);
- form.append("accounts["+i+"].port", account.port);
- form.append("accounts["+i+"].pwd", account.pwd);
- if(account.authType==2){
- form.append('cert',account.uploadFile?account.uploadFile.raw:null);
+ if(this.accountSwitch){
+ for(let i in this.assetData.accounts){
+ let account=this.assetData.accounts[i];
+ if(account.user){
+ form.append("accounts["+i+"].authType",account.authType);
+ form.append("accounts["+i+"].user", account.user);
+ form.append("accounts["+i+"].port", account.port);
+ form.append("accounts["+i+"].pwd", account.pwd);
+ if(account.authType==2){
+ form.append('cert',account.uploadFile?account.uploadFile.raw:null);
+ }
}
}
}
+ form.append("exporter",parseInt(this.assetData.exporter));
this.$post('asset', form,{'Content-Type': 'multipart/form-data'}).then(res => {
const h = this.$createElement;
if (res.code === 200) {