部署机器人
5 years ago
11 changed files with 6783 additions and 9634 deletions
-
2config/index.js
-
0dist/.gitkeep
-
9608package-lock.json
-
2package.json
-
136src/api/api.js
-
11src/main.js
-
2src/routes.js
-
326src/views/host/HostUser.vue
-
47src/views/host/Hosts.vue
-
67src/views/user/Users.vue
-
6216yarn.lock
9608
package-lock.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,326 @@ |
|||
<template> |
|||
<section> |
|||
<!--工具条--> |
|||
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> |
|||
<el-form :inline="true" :model="filters"> |
|||
<el-form-item> |
|||
<el-input v-model="filters.name" placeholder="姓名"></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" v-on:click="getHostUserAll">查询</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="handleAdd">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</el-col> |
|||
|
|||
<!--列表--> |
|||
<el-table :data="hostuserall" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;"> |
|||
<el-table-column type="selection" width="55"> |
|||
</el-table-column> |
|||
<el-table-column type="index" width="60"> |
|||
</el-table-column> |
|||
<el-table-column prop="id" label="ID" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="hostname" label="主机名" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="username" label="用户名" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="sudo" label="Sudo权限" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="ctime" label="创建时间" min-width="180" sortable> |
|||
</el-table-column> |
|||
<el-table-column label="操作" min-width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
|||
<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> |
|||
<el-button size="small" @click="handleHostUsers(scope.$index, scope.row)">用户列表</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!--工具条--> |
|||
<el-col :span="24" class="toolbar"> |
|||
<el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> |
|||
<el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="20" :total="total" style="float:right;"> |
|||
</el-pagination> |
|||
</el-col> |
|||
|
|||
<!--编辑界面--> |
|||
<el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false"> |
|||
<el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm"> |
|||
<el-form-item label="用户名(不可更改)" prop="name"> |
|||
<el-input v-model="editForm.name" :readonly=true></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="Sudo权限"> |
|||
<el-radio-group v-model="editForm.sudo"> |
|||
<el-radio class="radio" :label="0">unsudo</el-radio> |
|||
<el-radio class="radio" :label="1">sudo</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-form-item label="描述"> |
|||
<el-input v-model="editForm.desc" auto-complete="I'm foolish"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click.native="editFormVisible = false">取消</el-button> |
|||
<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
|
|||
<!--主机用户列表--> |
|||
<el-dialog title="主机用户列表" v-model="hostUsersFormVisible" :close-on-click-modal="false"> |
|||
<el-table :data="hostusers" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;"> |
|||
<el-table-column type="selection" width="55"> |
|||
</el-table-column> |
|||
<el-table-column type="index" width="60"> |
|||
</el-table-column> |
|||
<el-table-column prop="id" label="ID" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="username" label="用户名" width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="sudo" label="Sudo权限" min-width="120" sortable> |
|||
</el-table-column> |
|||
<el-table-column prop="ctime" label="创建时间" min-width="120" sortable> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
|
|||
<!--新增界面--> |
|||
<el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false"> |
|||
<el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> |
|||
<el-form-item label="用户名" prop="name"> |
|||
<el-input v-model="addForm.name" auto-complete="off"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="desc"> |
|||
<el-input v-model="addForm.desc" auto-complete="I'm foolish"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click.native="addFormVisible = false">取消</el-button> |
|||
<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</section> |
|||
</template> |
|||
|
|||
<script> |
|||
import util from '../../common/js/util' |
|||
//import NProgress from 'nprogress' |
|||
import { getHostList, getUserListPage, removeUser, batchRemoveUser, editUser, addUser, getHostUserList, getHostUserAll } from '../../api/api'; |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
filters: { |
|||
name: '' |
|||
}, |
|||
hostuserall: [], |
|||
hostusers: [], |
|||
total: 0, |
|||
page: 1, |
|||
listLoading: false, |
|||
sels: [],//列表选中列 |
|||
|
|||
editFormVisible: false,//编辑界面是否显示 |
|||
editLoading: false, |
|||
editFormRules: { |
|||
name: [ |
|||
{ required: true, message: '请输入姓名', trigger: 'blur' } |
|||
] |
|||
}, |
|||
//编辑界面数据 |
|||
editForm: { |
|||
id: 0, |
|||
name: '', |
|||
sex: -1, |
|||
age: 0, |
|||
birth: '', |
|||
addr: '' |
|||
}, |
|||
|
|||
hostUsersFormVisible: false,//编辑界面是否显示 |
|||
hostUsersLoading: false, |
|||
//编辑界面数据 |
|||
hostUsersForm: { |
|||
}, |
|||
|
|||
addFormVisible: false,//新增界面是否显示 |
|||
addLoading: false, |
|||
addFormRules: { |
|||
name: [ |
|||
{ required: true, message: '请输入姓名', trigger: 'blur' } |
|||
] |
|||
}, |
|||
//新增界面数据 |
|||
addForm: { |
|||
name: '', |
|||
sex: -1, |
|||
age: 0, |
|||
birth: '', |
|||
addr: '' |
|||
} |
|||
|
|||
} |
|||
}, |
|||
methods: { |
|||
//性别显示转换 |
|||
formatSex: function (row, column) { |
|||
return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知'; |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.page = val; |
|||
this.getHostUserAll(); |
|||
}, |
|||
//获取用户列表 |
|||
getHostUserAll() { |
|||
let para = { |
|||
//page: this.page, |
|||
//name: this.filters.name |
|||
}; |
|||
this.listLoading = true; |
|||
//NProgress.start(); |
|||
getHostUserAll(para).then((res) => { |
|||
this.total = res.data.total; |
|||
this.hostuserall = res.data; |
|||
this.listLoading = false; |
|||
console.log(res.data) |
|||
//NProgress.done(); |
|||
}); |
|||
}, |
|||
//TODO删除 |
|||
handleDel: function (index, row) { |
|||
this.$confirm('确认删除该记录吗?', '提示', { |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.listLoading = true; |
|||
//NProgress.start(); |
|||
let para = { name: row.name }; |
|||
removeUser(para).then((res) => { |
|||
this.listLoading = false; |
|||
//NProgress.done(); |
|||
this.$message({ |
|||
message: '删除成功', |
|||
type: 'success' |
|||
}); |
|||
this.getHostUserAll(); |
|||
}); |
|||
}).catch(() => { |
|||
|
|||
}); |
|||
}, |
|||
//显示编辑界面 |
|||
handleEdit: function (index, row) { |
|||
this.editFormVisible = true; |
|||
this.editForm = Object.assign({}, row); |
|||
}, |
|||
//显示主机用户界面 |
|||
handleHostUsers: function (index, row) { |
|||
this.hostUsersFormVisible = true; |
|||
this.hostUsersForm = Object.assign({}, row); |
|||
|
|||
let para = { |
|||
hostname: this.hostUsersForm.name |
|||
} |
|||
console.log(para) |
|||
getHostUserList(para).then((res) => { |
|||
this.hostusers = res.data; |
|||
console.log(res.data) |
|||
//NProgress.done(); |
|||
}); |
|||
}, |
|||
//显示新增界面 |
|||
handleAdd: function () { |
|||
this.addFormVisible = true; |
|||
this.addForm = { |
|||
name: '', |
|||
sex: -1, |
|||
age: 0, |
|||
birth: '', |
|||
addr: '' |
|||
}; |
|||
}, |
|||
//编辑 |
|||
editSubmit: function () { |
|||
this.$refs.editForm.validate((valid) => { |
|||
if (valid) { |
|||
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
|||
this.editLoading = true; |
|||
//NProgress.start(); |
|||
let para = Object.assign({}, this.editForm); |
|||
para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd'); |
|||
editUser(para).then((res) => { |
|||
this.editLoading = false; |
|||
//NProgress.done(); |
|||
this.$message({ |
|||
message: '提交成功', |
|||
type: 'success' |
|||
}); |
|||
this.$refs['editForm'].resetFields(); |
|||
this.editFormVisible = false; |
|||
this.getHostUserAll(); |
|||
}); |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
//新增 |
|||
addSubmit: function () { |
|||
this.$refs.addForm.validate((valid) => { |
|||
if (valid) { |
|||
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
|||
this.addLoading = true; |
|||
//NProgress.start(); |
|||
let para = Object.assign({}, this.addForm); |
|||
addUser(para).then((res) => { |
|||
this.addLoading = false; |
|||
//NProgress.done(); |
|||
this.$message({ |
|||
message: '提交成功', |
|||
type: 'success' |
|||
}); |
|||
this.$refs['addForm'].resetFields(); |
|||
this.addFormVisible = false; |
|||
this.getHostUserAll(); |
|||
}); |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
selsChange: function (sels) { |
|||
this.sels = sels; |
|||
}, |
|||
//批量删除 |
|||
batchRemove: function () { |
|||
var ids = this.sels.map(item => item.id).toString(); |
|||
this.$confirm('确认删除选中记录吗?', '提示', { |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.listLoading = true; |
|||
//NProgress.start(); |
|||
let para = { ids: ids }; |
|||
batchRemoveUser(para).then((res) => { |
|||
this.listLoading = false; |
|||
//NProgress.done(); |
|||
this.$message({ |
|||
message: '删除成功', |
|||
type: 'success' |
|||
}); |
|||
this.getHostUserAll(); |
|||
}); |
|||
}).catch(() => { |
|||
|
|||
}); |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.getHostUserAll(); |
|||
} |
|||
} |
|||
|
|||
</script> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
6216
yarn.lock
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue