diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue
index bc99f1390..dea69fbe4 100644
--- a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue
+++ b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue
@@ -20,6 +20,7 @@
:height="mainTableHeight"
:table-data="tableData"
@del="del"
+ @copy="copy"
@edit="edit"
@orderBy="tableDataSort"
@reload="getTableData"
diff --git a/nezha-fronted/src/components/common/rightBox/administration/roleBox.vue b/nezha-fronted/src/components/common/rightBox/administration/roleBox.vue
index e29ac3ee1..07a9991e2 100644
--- a/nezha-fronted/src/components/common/rightBox/administration/roleBox.vue
+++ b/nezha-fronted/src/components/common/rightBox/administration/roleBox.vue
@@ -57,7 +57,8 @@ export default {
obj: {
type: Object
},
- detail: Boolean
+ detail: Boolean,
+ copyFlag: Boolean
},
mixins: [editRigthBox],
data () {
@@ -94,6 +95,10 @@ export default {
},
mounted () {
this.getMenus().then(() => {
+ console.log(this.copyFlag)
+ if (this.copyFlag) {
+ this.editRole.id = ''
+ }
if (this.$refs.menuTree && this.selectedIds && this.selectedIds.length > 0) {
this.$refs.menuTree.setCheckedKeys(this.selectedIds, true)
}
diff --git a/nezha-fronted/src/components/common/table/asset/assetMetaTable.vue b/nezha-fronted/src/components/common/table/asset/assetMetaTable.vue
index 999ad9ec8..649d1c2a4 100644
--- a/nezha-fronted/src/components/common/table/asset/assetMetaTable.vue
+++ b/nezha-fronted/src/components/common/table/asset/assetMetaTable.vue
@@ -75,6 +75,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
diff --git a/nezha-fronted/src/components/common/table/settings/agentTable.vue b/nezha-fronted/src/components/common/table/settings/agentTable.vue
index e61effb1d..bcb1ac18a 100644
--- a/nezha-fronted/src/components/common/table/settings/agentTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/agentTable.vue
@@ -63,6 +63,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
diff --git a/nezha-fronted/src/components/common/table/settings/cabinetTable.vue b/nezha-fronted/src/components/common/table/settings/cabinetTable.vue
index b5f6e5b06..6991d925e 100644
--- a/nezha-fronted/src/components/common/table/settings/cabinetTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/cabinetTable.vue
@@ -44,6 +44,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
diff --git a/nezha-fronted/src/components/common/table/settings/dcTable.vue b/nezha-fronted/src/components/common/table/settings/dcTable.vue
index a7064f92c..010c7bb97 100644
--- a/nezha-fronted/src/components/common/table/settings/dcTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/dcTable.vue
@@ -91,6 +91,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
diff --git a/nezha-fronted/src/components/common/table/settings/modelTable.vue b/nezha-fronted/src/components/common/table/settings/modelTable.vue
index 7fbcf1c05..5a3a8a9c0 100644
--- a/nezha-fronted/src/components/common/table/settings/modelTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/modelTable.vue
@@ -69,6 +69,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
{{$t('overall.syncChart')}}
diff --git a/nezha-fronted/src/components/common/table/settings/roleTable.vue b/nezha-fronted/src/components/common/table/settings/roleTable.vue
index d812b67e9..3c6b1d4d8 100644
--- a/nezha-fronted/src/components/common/table/settings/roleTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/roleTable.vue
@@ -58,6 +58,7 @@
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
diff --git a/nezha-fronted/src/components/common/table/settings/userTable.vue b/nezha-fronted/src/components/common/table/settings/userTable.vue
index 0db454373..c0b730780 100644
--- a/nezha-fronted/src/components/common/table/settings/userTable.vue
+++ b/nezha-fronted/src/components/common/table/settings/userTable.vue
@@ -82,6 +82,7 @@
{{$t('overall.edit')}}
+ {{$t('overall.duplicate')}}
{{$t('overall.delete')}}
{{$t('config.user.resetMfa')}}
diff --git a/nezha-fronted/src/components/page/config/agent.vue b/nezha-fronted/src/components/page/config/agent.vue
index cb1f4a89d..8062daea5 100644
--- a/nezha-fronted/src/components/page/config/agent.vue
+++ b/nezha-fronted/src/components/page/config/agent.vue
@@ -29,6 +29,7 @@
:table-data="tableData"
@del="del"
@edit="edit"
+ @copy="copy"
@orderBy="tableDataSort"
@reload="getTableData"
@selectionChange="selectionChange"
diff --git a/nezha-fronted/src/components/page/config/assetMeta.vue b/nezha-fronted/src/components/page/config/assetMeta.vue
index 807f664f5..84c295e2c 100644
--- a/nezha-fronted/src/components/page/config/assetMeta.vue
+++ b/nezha-fronted/src/components/page/config/assetMeta.vue
@@ -41,6 +41,7 @@
:table-data="tableData"
@del="del"
@edit="edit"
+ @copy="copy"
@orderBy="tableDataSort"
@reload="getTableData"
@selectionChange="selectionChange"
@@ -246,6 +247,15 @@ export default {
}
})
},
+ copy (u) {
+ this.object = { ...u, name: u.name + '-copy', id: '' }
+ if (this.object.name.length > 64) {
+ const length = this.object.name.length - 64
+ console.log(length, this.object.name.length, u.name.length)
+ this.object.name = u.name.substring(0, u.name.length - length) + '-copy'
+ }
+ this.rightBox.metaShow = true
+ },
closeRightBox (refresh) {
this.rightBox.metaShow = false
this.rightBox.groupShow = false
diff --git a/nezha-fronted/src/components/page/config/dc.vue b/nezha-fronted/src/components/page/config/dc.vue
index bc29bc04e..f3e6d3793 100644
--- a/nezha-fronted/src/components/page/config/dc.vue
+++ b/nezha-fronted/src/components/page/config/dc.vue
@@ -47,6 +47,7 @@
:table-data="tableData"
@del="del"
@edit="edit"
+ @copy="copy"
@orderBy="tableDataSort"
@reload="getTableData"
@selectionChange="selectionChange"
diff --git a/nezha-fronted/src/components/page/config/model.vue b/nezha-fronted/src/components/page/config/model.vue
index c202183f2..377b3c5db 100644
--- a/nezha-fronted/src/components/page/config/model.vue
+++ b/nezha-fronted/src/components/page/config/model.vue
@@ -47,6 +47,7 @@
:table-data="tableData"
@del="del"
@edit="edit"
+ @copy="copy"
@orderBy="tableDataSort"
@reload="getTableData"
@sync="chartBySync"
diff --git a/nezha-fronted/src/components/page/config/roles.vue b/nezha-fronted/src/components/page/config/roles.vue
index 5a235dcae..602ef6c1b 100644
--- a/nezha-fronted/src/components/page/config/roles.vue
+++ b/nezha-fronted/src/components/page/config/roles.vue
@@ -25,6 +25,7 @@
:height="mainTableHeight"
:table-data="tableData"
@del="del"
+ @copy="copy"
@edit="edit"
@orderBy="tableDataSort"
@reload="getTableData"
@@ -37,7 +38,7 @@
-
+
@@ -64,6 +65,7 @@ export default {
blankObject: { // 空白对象
name: ''
},
+ copyFlag: false,
searchMsg: { // 给搜索框子组件传递的信息
zheze_none: true,
searchLabelList: [{
@@ -77,9 +79,22 @@ export default {
}
},
methods: {
- edit (row) {
+ edit (row, copyFlag) {
this.object = { ...row }
+ if (copyFlag) {
+ this.object.name = this.object.name + '-copy'
+ if (this.object.name.length > 64) {
+ const length = this.object.name.length - 64
+ console.log(length, this.object.name.length, row.name.length)
+ this.object.name = row.name.substring(0, row.name.length - length) + '-copy'
+ }
+ }
this.rightBox.show = true
+ },
+ copy (u) {
+ this.edit(u, true)
+ this.copyFlag = true
+ console.log(this.copyFlag)
}
}
}
diff --git a/nezha-fronted/src/components/page/config/user.vue b/nezha-fronted/src/components/page/config/user.vue
index 202604867..b71a2e80d 100644
--- a/nezha-fronted/src/components/page/config/user.vue
+++ b/nezha-fronted/src/components/page/config/user.vue
@@ -25,6 +25,7 @@
:height="mainTableHeight"
:table-data="tableData"
@del="del"
+ @copy="copy"
@reset_mfa="resetMfa"
@edit="edit"
@orderBy="tableDataSort"
@@ -105,7 +106,7 @@ export default {
this.getTableData()
})
},
- edit (u) {
+ edit (u, copyFlag) {
this.$get(`${this.url}/${u.id}`).then(response => {
const user = response.user
if (response.code === 200) {
@@ -119,10 +120,22 @@ export default {
if (!this.object.mfaLevel) {
this.object.mfaLevel = 0
}
+ if (copyFlag) {
+ this.object.id = ''
+ this.object.name = this.object.name + '-copy'
+ if (this.object.name.length > 64) {
+ const length = this.object.name.length - 64
+ console.log(length, this.object.name.length, u.name.length)
+ this.object.name = u.name.substring(0, u.name.length - length) + '-copy'
+ }
+ }
this.rightBox.show = true
}
})
},
+ copy (u) {
+ this.edit(u, true)
+ },
resetMfa (row) {
MessageBox.confirm(i18n.t('tip.resetMfa'), {
confirmButtonText: i18n.t('tip.yes'),