From 058eddd5759f9e482106dc479dfdf5e3ea5ab4b5 Mon Sep 17 00:00:00 2001
From: bsdbc <597918744@qq.com>
Date: Thu, 27 Feb 2020 09:23:37 +0800
Subject: [PATCH] =?UTF-8?q?fix:account=20=E9=85=8D=E7=BD=AE=E7=A7=98?=
=?UTF-8?q?=E9=92=A5=E7=94=B1=E6=96=87=E4=BB=B6=E6=94=B9=E4=B8=BA=E6=96=87?=
=?UTF-8?q?=E6=9C=AC=E7=B1=BB=E5=9E=8B=20&=20=E5=AF=BC=E5=85=A5=E5=AF=BC?=
=?UTF-8?q?=E5=87=BA=E4=B8=8B=E8=BD=BD=E6=A8=A1=E6=9D=BF=E8=A1=A5=E5=85=85?=
=?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/components/common/language/en.js | 2 +-
.../components/common/rightBox/assetBox.vue | 217 +++++++-----------
.../components/page/asset/accountConfig.vue | 39 +---
.../src/components/page/asset/asset.vue | 20 --
.../src/components/page/config/promServer.vue | 36 +--
.../static/template/en/asset-template.xlsx | Bin 0 -> 12823 bytes
.../static/template/en/endpoint-template.xlsx | Bin 0 -> 10840 bytes
7 files changed, 111 insertions(+), 203 deletions(-)
create mode 100644 nezha-fronted/static/template/en/asset-template.xlsx
create mode 100644 nezha-fronted/static/template/en/endpoint-template.xlsx
diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js
index 6ece3d69a..f9b63b119 100644
--- a/nezha-fronted/src/components/common/language/en.js
+++ b/nezha-fronted/src/components/common/language/en.js
@@ -330,7 +330,7 @@ const en = {
host: 'Host',//'Host'
assetState: 'State',//'状态'
assetPing: 'Ping',
- modules: 'Module',//'组件'
+ modules: 'Endpoint',//'组件'
alerts: 'Alert message',//'告警信息'
dataCenter: 'DC',//DC
cabinet: 'Cabinet',//'机柜'
diff --git a/nezha-fronted/src/components/common/rightBox/assetBox.vue b/nezha-fronted/src/components/common/rightBox/assetBox.vue
index 15a1f929f..b548a76b3 100644
--- a/nezha-fronted/src/components/common/rightBox/assetBox.vue
+++ b/nezha-fronted/src/components/common/rightBox/assetBox.vue
@@ -301,7 +301,8 @@
-
+
+
{{ item.name }}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
{{assetViewData.idcName}}
@@ -343,7 +344,8 @@
-
+
{{ item.name }}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
{{assetViewData.cabinetName}}
@@ -439,7 +441,6 @@
user: '',
pwd: '',
port: '',
- uploadFile: null
}],
exporter: 0
},
@@ -597,7 +598,6 @@
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
]
},
- uploadFileList:[],
formData:null,
module:{},
accountValideResult:true
@@ -638,7 +638,6 @@
pwd:"",
port:'',
privateKey:'',
- uploadFile:''
});
}
}
@@ -740,7 +739,6 @@
user: '',
pwd: '',
port: '',
- uploadFile: null
}]
};
}
@@ -822,15 +820,6 @@
}
})
},
- changeLoginType:function(loginType){
- this.assetData.accounts[0].authType = loginType;
- if(loginType == 1){//密码登录
- this.clearFile();
- }
- if(loginType == 2){//公钥登录
- this.assetData.accounts[0].pwd='';
- }
- },
editData(data, item, mark) {
let obj = {
id: '',
@@ -846,35 +835,33 @@
tel: ''
}
if (data === 'asset') {
- //this.assetData.modelId = this.assetData.modelId.join(',').split(',')[1];
- let modelId = this.assetData.modelId.join(',').split(',')[1];
- let form = new FormData();
- form.append("id", this.pageObj.id);
- form.append("sn", this.assetData.sn);
- form.append("host", this.assetData.host);
- form.append("state", this.assetData.state);
- form.append("purchaseDate", !this.assetData.purchaseDate?'':this.assetData.purchaseDate);
- form.append("idcId", this.assetData.idcId);
- form.append("cabinetId", this.assetData.cabinetId);
- form.append("modelId", modelId);
- if (!this.accountSwitch) {
- this.assetData.accounts = [];
- }
- for(let i in this.assetData.accounts){
- let account=this.assetData.accounts[i];
- if(account.user){
- if (account.id) {
- form.append("accounts["+i+"].id", account.id);
- }
- 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);
- }
- }
- }
+ this.assetData.modelId = this.assetData.modelId.join(',').split(',')[1];
+ // let modelId = this.assetData.modelId.join(',').split(',')[1];
+ // let form = new FormData();
+ // form.append("id", this.pageObj.id);
+ // form.append("sn", this.assetData.sn);
+ // form.append("host", this.assetData.host);
+ // form.append("state", this.assetData.state);
+ // form.append("purchaseDate", !this.assetData.purchaseDate?'':this.assetData.purchaseDate);
+ // form.append("idcId", this.assetData.idcId);
+ // form.append("cabinetId", this.assetData.cabinetId);
+ // form.append("modelId", modelId);
+ // if (!this.accountSwitch) {
+ // this.assetData.accounts = [];
+ // }
+ // for(let i in this.assetData.accounts){
+ // let account=this.assetData.accounts[i];
+ // if(account.user){
+ // if (account.id) {
+ // form.append("accounts["+i+"].id", account.id);
+ // }
+ // 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);
+ // form.append("accounts["+i+"].privateKey", account.privateKey);
+ // }
+ // }
if(this.$refs.accountConfigBox&&this.$refs.accountConfigBox.length>0){
this.$refs.accountConfigBox[0].validateAccount();
@@ -882,11 +869,12 @@
this.$refs.assetEditForm.validate((valid) => {
if (valid&&this.accountValideResult) {
if (this.pageObj.id) {
- this.$put('asset', form,{'Content-Type': 'multipart/form-data'}).then(res => {
+ this.assetData.id=this.pageObj.id;
+ console.log(JSON.stringify(this.assetData));
+ this.$put('asset', this.assetData).then(res => {
const h = this.$createElement;
if (res.code === 200) {
this.$message({duration: 2000, type: 'success', message: this.$t("tip.saveSuccess")});
- this.clearFile();
this.pageObj.id = '';
this.$emit('refreshData', 'true');
this.sendStateData('close');
@@ -901,44 +889,41 @@
}
let modelId = ''
let authType = ''
- if (this.assetData.modelId !== '') {
- modelId = this.assetData.modelId.join(',').split(',')[1]
- } else {
- this.assetData.modelId = ''
- }
+ // if (this.assetData.modelId !== '') {
+ // modelId = this.assetData.modelId.join(',').split(',')[1]
+ // } else {
+ // this.assetData.modelId = ''
+ // }
if (this.assetData.accounts[0].user === '') {
authType = ''
} else {
authType = this.assetData.accounts[0].authType
}
- let form = new FormData();
- form.append("sn", this.assetData.sn);
- form.append("host", this.assetData.host);
- form.append("state", this.assetData.state);
- form.append("purchaseDate", !this.assetData.purchaseDate?'':this.assetData.purchaseDate);
- form.append("idcId", this.assetData.idcId);
- form.append("cabinetId", this.assetData.cabinetId);
- form.append("modelId", modelId);
- 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 => {
+ // let form = new FormData();
+ // form.append("sn", this.assetData.sn);
+ // form.append("host", this.assetData.host);
+ // form.append("state", this.assetData.state);
+ // form.append("purchaseDate", !this.assetData.purchaseDate?'':this.assetData.purchaseDate);
+ // form.append("idcId", this.assetData.idcId);
+ // form.append("cabinetId", this.assetData.cabinetId);
+ // form.append("modelId", modelId);
+ // 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);
+ // form.append("accounts["+i+"].privateKey", account.privateKey)
+ // }
+ // }
+ // }
+ // form.append("exporter",parseInt(this.assetData.exporter));
+ this.$post('asset', this.assetData).then(res => {
const h = this.$createElement;
if (res.code === 200) {
this.$message({duration: 2000, type: 'success', message: this.$t("tip.saveSuccess")});
- this.clearFile();
this.$emit('refreshData', 'true');
this.sendStateData('close');
} else {
@@ -1098,13 +1083,6 @@
}
},
- clearFile:function(){
- if(this.$refs.upload){
- this.$refs.upload.clearFiles();
- }
- this.uploadFileList=[];
- this.assetData.accounts[0].privateKey='';
- },
deleteData(data, item) {
this.$confirm(this.$t("tip.confirmDelete"), {
confirmButtonText: this.$t("tip.yes"),
@@ -1349,12 +1327,6 @@
this.tempData = ''
}
},
- handleChange(file,fileList) {
- if (fileList.length > 0) {
- this.uploadFileList = [fileList[fileList.length - 1]]
- }
- this.assetData.accounts[0].file = this.uploadFileList[0];
- },
editPopoverClose(data) {
if (data === 'type') {
this.modelCount = ''
@@ -1441,21 +1413,4 @@
margin-bottom: 18px;
background-color: #DCDFE6;
}
-/*去除上传文件动画start*/
-/*.upload-demo {*/
-/* display: flex;*/
-/*}*/
-/deep/ .el-list-enter-active,
-/deep/ .el-list-leave-active {
- transition: none;
-}
-
-/deep/ .el-list-enter,
-/deep/ .el-list-leave-active {
- opacity: 0;
-}
-/deep/ .el-upload-list {
- height: 40px;
-}
-/*去除上传文件动画end*/
diff --git a/nezha-fronted/src/components/page/asset/accountConfig.vue b/nezha-fronted/src/components/page/asset/accountConfig.vue
index b28e68fd1..338629420 100644
--- a/nezha-fronted/src/components/page/asset/accountConfig.vue
+++ b/nezha-fronted/src/components/page/asset/accountConfig.vue
@@ -36,13 +36,7 @@
{{account.port}}
-
- {{$t('asset.createAssetTab.sshKeyWasConfig')}}
-
-
+
@@ -59,14 +53,7 @@ export default {
created() {
},
data(){
- let validateFile=(rule,value,callback) => {
- if(!this.validateFile()){
- callback(new Error(this.uploadTip))
- }
- callback();
- }
return {
- uploadFileList:[],
rules:{
user:[
{ required: true, message:this.$t('validate.required'),trigger: 'blur'}
@@ -75,9 +62,6 @@ export default {
{required:true,message:this.$t('validate.required'),trigger: 'blur'},
{ validator: port, trigger: 'blur'}
],
- file:[
- { validator: validateFile, trigger: 'change'}
- ]
},
uploadTip:''
}
@@ -97,12 +81,15 @@ export default {
changeLoginType:function(loginType){
this.account.authType=loginType;
if(loginType == 1){//密码登录
- this.clearFile();
+ this.clearPrivateKey();
}
if(loginType == 2){//公钥登录
this.account.pwd='';
}
},
+ clearPrivateKey:function(){
+ this.account.privateKey=null;
+ },
handleChange(file,fileList) {
if (fileList.length > 0) {
this.uploadFileList = [fileList[fileList.length - 1]]
@@ -110,28 +97,12 @@ export default {
this.account.uploadFile = this.uploadFileList[0];
this.validateFile();
},
- clearFile:function() {
- if (this.$refs.upload) {
- this.$refs.upload.clearFiles();
- }
- this.uploadFileList = [];
- },
validateAccount:function(){
this.validateResult=false;
this.$refs.accountForm.validate((valid) => {
this.$emit("setValidateResult",valid);
- console.log(valid)
});
},
- validateFile:function(){
- let file=this.uploadFileList[0];
- if(file&&file.size>500){
- this.uploadTip=this.$t('validate.fileSize')
- return false;
- }else{
- return true;
- }
- },
},
watch:{
diff --git a/nezha-fronted/src/components/page/asset/asset.vue b/nezha-fronted/src/components/page/asset/asset.vue
index 3519538fa..7ccff0f4e 100644
--- a/nezha-fronted/src/components/page/asset/asset.vue
+++ b/nezha-fronted/src/components/page/asset/asset.vue
@@ -37,7 +37,6 @@
export-file-name="asset"
export-url="/asset/export"
:params="searchLabel"
- :template-key="templateKey"
@afterImport="getAssetData"
class="float-right">
@@ -371,25 +370,6 @@
checkAllFlag: false,
checkAllHandler: false,
assetClick: false,
- templateHeader:['*Sn','*Type','*Vendor','*Model','*Idc','Cabinet','*Host','State','PurchaseDate','AuthType','User','Pwd','PrivateKey','Port','Exporter'],
- templateDate:[{
- sn:'0001',
- type:'server/net',
- vendor:'huawei',
- model:'rongyao',
- idc:'beijing',
- cabinet:'cab-01',
- host:'192.168.1.1',
- state:'1:在库 2:出库 默认:在库',
- purchaseData:'2020-02-11 19:30:33',
- authType:'认证类型,1:密码,2:私钥证书',
- user:'root',
- pwd:'111111',
- privateKey:'xxxxxxxx',
- port:'22',
- exporter:'是否安装node_exporter,1:安装,0:不安装'
- }],
- templateKey:['sn','type','vendor','model','idc','cabinet','host','state','purchaseData','authType','user','pwd','privateKey','port','exporter']
}
},
computed: {
diff --git a/nezha-fronted/src/components/page/config/promServer.vue b/nezha-fronted/src/components/page/config/promServer.vue
index 00f0ab4d5..9123749fe 100644
--- a/nezha-fronted/src/components/page/config/promServer.vue
+++ b/nezha-fronted/src/components/page/config/promServer.vue
@@ -34,14 +34,14 @@
-
{{scope.row[item.prop].name}}
-
-
+ -->
+ {{scope.row[item.prop].name}}
{{scope.row[item.prop] == '1' ? 'Global' : ''}}
@@ -107,28 +107,30 @@
-
+
+
{{item.name}}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
{{promServer.idc.name}}
diff --git a/nezha-fronted/static/template/en/asset-template.xlsx b/nezha-fronted/static/template/en/asset-template.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..ae9838ded41ef19e405da0f6ee93b1155eea0dbb
GIT binary patch
literal 12823
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
RAT}5_m=-7iZc#k){U5z0R4f1h
literal 0
HcmV?d00001