diff --git a/src/api/monitor/online.js b/src/api/monitor/online.js index fc9a90c..057275b 100644 --- a/src/api/monitor/online.js +++ b/src/api/monitor/online.js @@ -1,8 +1,9 @@ import request from '@/utils/request' -export function del(key) { +export function del(keys) { return request({ - url: 'auth/online/' + key, - method: 'delete' + url: 'auth/online', + method: 'delete', + data: keys }) } diff --git a/src/api/monitor/server.js b/src/api/monitor/server.js index 5c2b234..2ade356 100644 --- a/src/api/monitor/server.js +++ b/src/api/monitor/server.js @@ -8,10 +8,11 @@ export function add(data) { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/server/' + id, - method: 'delete' + url: 'api/server', + method: 'delete', + data: ids }) } diff --git a/src/api/system/dept.js b/src/api/system/dept.js index a071bee..59998ba 100644 --- a/src/api/system/dept.js +++ b/src/api/system/dept.js @@ -16,10 +16,11 @@ export function add(data) { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/dept/' + id, - method: 'delete' + url: 'api/dept', + method: 'delete', + data: ids }) } @@ -31,12 +32,4 @@ export function edit(data) { }) } -export function delAll(ids) { - return request({ - url: 'api/dept/', - method: 'delete', - data: ids - }) -} - -export default { add, edit, del, getDepts, delAll } +export default { add, edit, del, getDepts } diff --git a/src/api/system/job.js b/src/api/system/job.js index 56b3cc5..2888c05 100644 --- a/src/api/system/job.js +++ b/src/api/system/job.js @@ -21,10 +21,11 @@ export function add(data) { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/job/' + id, - method: 'delete' + url: 'api/job', + method: 'delete', + data: ids }) } @@ -36,12 +37,4 @@ export function edit(data) { }) } -export function delAll(ids) { - return request({ - url: 'api/job/', - method: 'delete', - data: ids - }) -} - -export default { add, edit, del, delAll } +export default { add, edit, del } diff --git a/src/api/system/menu.js b/src/api/system/menu.js index 86e917f..4e8ac90 100644 --- a/src/api/system/menu.js +++ b/src/api/system/menu.js @@ -22,10 +22,11 @@ export function add(data) { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/menus/' + id, - method: 'delete' + url: 'api/menus', + method: 'delete', + data: ids }) } @@ -37,12 +38,4 @@ export function edit(data) { }) } -export function delAll(ids) { - return request({ - url: 'api/menus/', - method: 'delete', - data: ids - }) -} - -export default { add, edit, del, getMenusTree, delAll } +export default { add, edit, del, getMenusTree } diff --git a/src/api/system/role.js b/src/api/system/role.js index b74c255..198e328 100644 --- a/src/api/system/role.js +++ b/src/api/system/role.js @@ -30,10 +30,11 @@ export function getLevel() { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/roles/' + id, - method: 'delete' + url: 'api/roles', + method: 'delete', + data: ids }) } @@ -53,12 +54,4 @@ export function editMenu(data) { }) } -export function delAll(ids) { - return request({ - url: 'api/roles/', - method: 'delete', - data: ids - }) -} - -export default { add, edit, del, get, editMenu, delAll } +export default { add, edit, del, get, editMenu } diff --git a/src/api/system/user.js b/src/api/system/user.js index 9f91992..6cd91a5 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -9,10 +9,11 @@ export function add(data) { }) } -export function del(id) { +export function del(ids) { return request({ - url: 'api/users/' + id, - method: 'delete' + url: 'api/users', + method: 'delete', + data: ids }) } @@ -56,13 +57,5 @@ export function updateEmail(form) { }) } -export function delAll(ids) { - return request({ - url: 'api/users/', - method: 'delete', - data: ids - }) -} - -export default { add, edit, del, delAll } +export default { add, edit, del } diff --git a/src/components/Crud/CRUD.operation.vue b/src/components/Crud/CRUD.operation.vue index fe7debd..206616c 100644 --- a/src/components/Crud/CRUD.operation.vue +++ b/src/components/Crud/CRUD.operation.vue @@ -126,11 +126,7 @@ export default { type: 'warning' }).then(() => { this.crud.delAllLoading = true - if (datas.length === 1) { - this.crud.doDelete(datas[0]) - } else { - this.crud.doDeletes(datas) - } + this.crud.doDelete(datas) }).catch(() => { }) }, diff --git a/src/components/Crud/crud.js b/src/components/Crud/crud.js index 31deb9e..a07ce92 100644 --- a/src/components/Crud/crud.js +++ b/src/components/Crud/crud.js @@ -264,8 +264,8 @@ function CRUD(options) { crud.crudMethod.edit(crud.form).then(() => { crud.status.edit = CRUD.STATUS.NORMAL crud.getDataStatus(crud.form.id).edit = CRUD.STATUS.NORMAL - crud.resetForm() crud.editSuccessNotify() + crud.resetForm() callVmHook(crud, CRUD.HOOK.afterSubmit) crud.refresh() }).catch(() => { @@ -277,44 +277,36 @@ function CRUD(options) { * @param {*} data 数据项 */ doDelete(data) { - const dataStatus = crud.getDataStatus(data.id) - if (!callVmHook(crud, CRUD.HOOK.beforeDelete, data)) { - return - } - dataStatus.delete = CRUD.STATUS.PROCESSING - return crud.crudMethod.del(data.id).then(() => { - dataStatus.delete = CRUD.STATUS.NORMAL - crud.dleChangePage(1) - crud.delSuccessNotify() - callVmHook(crud, CRUD.HOOK.afterDelete, data) - crud.refresh() - crud.delAllLoading = false - }).catch(() => { - crud.delAllLoading = false - dataStatus.delete = CRUD.STATUS.PREPARED - }) - }, - /** - * 删除多条记录 - * @param datas - * @returns {Promise} - */ - doDeletes(datas) { + let delAll = false + let dataStatus const ids = [] - datas.forEach(val => { - ids.push(val.id) - }) + if (data instanceof Array) { + delAll = true + data.forEach(val => { + ids.push(val.id) + }) + } else { + ids.push(data.id) + dataStatus = crud.getDataStatus(data.id) + } if (!callVmHook(crud, CRUD.HOOK.beforeDelete, data)) { return } - return crud.crudMethod.delAll(ids).then(() => { + if (!delAll) { + dataStatus.delete = CRUD.STATUS.PROCESSING + } + return crud.crudMethod.del(ids).then(() => { + if (delAll) { + crud.delAllLoading = false + } else dataStatus.delete = CRUD.STATUS.PREPARED crud.dleChangePage(1) crud.delSuccessNotify() callVmHook(crud, CRUD.HOOK.afterDelete, data) - crud.delAllLoading = false crud.refresh() }).catch(() => { - crud.delAllLoading = false + if (delAll) { + crud.delAllLoading = false + } else dataStatus.delete = CRUD.STATUS.PREPARED }) }, /** diff --git a/src/views/login.vue b/src/views/login.vue index 21801a2..5eb6053 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -19,7 +19,7 @@ diff --git a/src/views/monitor/online/index.vue b/src/views/monitor/online/index.vue index afa227f..cb735b6 100644 --- a/src/views/monitor/online/index.vue +++ b/src/views/monitor/online/index.vue @@ -12,9 +12,9 @@ type="danger" icon="el-icon-delete" size="mini" - :loading="crud.delAllLoading" + :loading="delLoading" :disabled="crud.selections.length === 0" - @click="crud.toDelete(crud.selections)" + @click="doDelete(crud.selections)" > 强退 @@ -91,18 +91,37 @@ export default { this.url = 'auth/online' return true }, + doDelete(datas) { + this.$confirm(`确认强退选中的${datas.length}个用户?`, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.delMethod(datas) + }).catch(() => {}) + }, // 踢出用户 delMethod(key, index) { + const ids = [] + if (key instanceof Array) { + key.forEach(val => { + ids.push(val.key) + }) + } else ids.push(key) this.delLoading = true - del(key).then(() => { + del(ids).then(() => { this.delLoading = false - this.$refs[index].doClose() + if (this.$refs[index]) { + this.$refs[index].doClose() + } this.crud.dleChangePage(1) this.crud.delSuccessNotify() this.crud.toQuery() }).catch(() => { this.delLoading = false - this.$refs[index].doClose() + if (this.$refs[index]) { + this.$refs[index].doClose() + } }) } } diff --git a/src/views/monitor/server/index.vue b/src/views/monitor/server/index.vue index 6815eab..6e3c461 100644 --- a/src/views/monitor/server/index.vue +++ b/src/views/monitor/server/index.vue @@ -109,7 +109,7 @@ import pagination from '@crud/Pagination' // crud交由presenter持有 const defaultCrud = CRUD({ title: '监控', url: 'api/server', sort: 'sort,asc', crudMethod: { ...crudServer }}) -const defaultForm = { id: null, name: null, ip: null, port: 8777, state: null, cpuRate: null, cpuCore: null, memTotal: null, memUsed: null, diskTotal: null, diskUsed: null, swapTotal: null, swapUsed: null, sort: 999 } +const defaultForm = { id: null, address: 'localhost', name: null, ip: null, port: 8777, state: null, cpuRate: null, cpuCore: null, memTotal: null, memUsed: null, diskTotal: null, diskUsed: null, swapTotal: null, swapUsed: null, sort: 999 } export default { name: 'ServerMonitor', components: { pagination, crudOperation, rrOperation, udOperation }, @@ -134,6 +134,9 @@ export default { } } }, + created() { + this.crud.optShow.download = false + }, methods: { formatCpuRate(row, column) { const value = row.cpuRate diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index f9fc870..6597112 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -43,7 +43,7 @@ - +