fix 用户列表 移除所选

This commit is contained in:
Eric
2020-06-15 20:18:51 +08:00
parent 33499f030e
commit c8949f7f73
3 changed files with 53 additions and 2 deletions

View File

@@ -259,7 +259,8 @@
"updateSelected": "更新所选", "updateSelected": "更新所选",
"updateSuccessMsg": "更新成功", "updateSuccessMsg": "更新成功",
"SelectProperties": "选择属性", "SelectProperties": "选择属性",
"ObjectNotFoundOrDeletedMsg": "没有找到对应资源或者已被删除" "ObjectNotFoundOrDeletedMsg": "没有找到对应资源或者已被删除",
"removeSelected": "移除所选"
}, },
"dashboard": { "dashboard": {
"ActiveAsset": "近期被登录过", "ActiveAsset": "近期被登录过",

View File

@@ -259,7 +259,8 @@
"updateSelected": "Update selected", "updateSelected": "Update selected",
"updateSuccessMsg": "Update success", "updateSuccessMsg": "Update success",
"SelectProperties": "Select properties", "SelectProperties": "Select properties",
"ObjectNotFoundOrDeletedMsg": "Resource lost or deleted" "ObjectNotFoundOrDeletedMsg": "Resource lost or deleted",
"removeSelected": "Remove selected"
}, },
"dashboard": { "dashboard": {
"ActiveAsset": "Asset active", "ActiveAsset": "Asset active",

View File

@@ -13,6 +13,7 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { GenericListPage } from '@/layout/components' import { GenericListPage } from '@/layout/components'
import { GenericUpdateFormDialog } from '@/layout/components' import { GenericUpdateFormDialog } from '@/layout/components'
import { createSourceIdCache } from '@/api/common'
export default { export default {
components: { components: {
@@ -55,7 +56,16 @@ export default {
} }
}, },
headerActions: { headerActions: {
hasBulkDelete: false,
extraMoreActions: [ extraMoreActions: [
{
title: this.$t('common.deleteSelected'),
name: 'deleteSelected',
can({ selectedRows }) {
return selectedRows.length > 0
},
callback: this.bulkDeleteCallback.bind(this)
},
{ {
name: 'disableSelected', name: 'disableSelected',
title: this.$t('common.disableSelected'), title: this.$t('common.disableSelected'),
@@ -153,6 +163,11 @@ export default {
return this.currentOrg.id === 'DEFAULT' || this.currentOrg.id === '' return this.currentOrg.id === 'DEFAULT' || this.currentOrg.id === ''
} }
}, },
mounted() {
if (!this.currentOrgIsDefault) {
this.headerActions.extraMoreActions[0].title = this.$t('common.removeSelected')
}
},
methods: { methods: {
removeUserFromOrg({ row, col, reload }) { removeUserFromOrg({ row, col, reload }) {
const msg = this.$t('users.removeFromOrgWarningMsg') + ' "' + row.name + '"' const msg = this.$t('users.removeFromOrgWarningMsg') + ' "' + row.name + '"'
@@ -180,6 +195,40 @@ export default {
} }
} }
}) })
},
bulkDeleteCallback({ selectedRows, reloadTable }) {
const msg = this.$t('common.deleteWarningMsg') + ' ' + selectedRows.length + ' ' + this.$t('common.rows') + ' ?'
const title = this.$t('common.Info')
const performDelete = this.performBulkDelete
this.$alert(msg, title, {
type: 'warning',
confirmButtonClass: 'el-button--danger',
showCancelButton: true,
beforeClose: async(action, instance, done) => {
if (action !== 'confirm') return done()
instance.confirmButtonLoading = true
try {
await performDelete(selectedRows)
done()
reloadTable()
this.$message.success(this.$t('common.bulkDeleteSuccessMsg'))
} catch (error) {
this.$message.error(this.$t('common.bulkDeleteErrorMsg') + error)
} finally {
instance.confirmButtonLoading = false
}
}
}).catch(() => {
/* 取消*/
})
},
async performBulkDelete(selectedRows) {
const ids = selectedRows.map((v) => {
return v.id
})
const data = await createSourceIdCache(ids)
const url = `${this.tableConfig.url}?spm=` + data.spm
return this.$axios.delete(url)
} }
} }
} }