Edit.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="dialogFormVisible"
  5. width="500px"
  6. @close="close">
  7. <el-form ref="form" label-width="80px" :model="form" :rules="rules">
  8. <el-form-item label="用户名" prop="username">
  9. <el-input v-model.trim="form.username" />
  10. </el-form-item>
  11. <el-form-item label="密码" prop="password">
  12. <el-input v-model.trim="form.password" type="password" />
  13. </el-form-item>
  14. <el-form-item label="邮箱" prop="email">
  15. <el-input v-model.trim="form.email" />
  16. </el-form-item>
  17. <el-form-item label="角色" prop="roles">
  18. <el-checkbox-group v-model="form.roles">
  19. <el-checkbox label="admin" />
  20. <el-checkbox label="editor" />
  21. </el-checkbox-group>
  22. </el-form-item>
  23. </el-form>
  24. <template #footer>
  25. <el-button @click="close">取 消</el-button>
  26. <el-button type="primary" @click="save">确 定</el-button>
  27. </template>
  28. </el-dialog>
  29. </template>
  30. <script>
  31. import userApi from '@/api/user'
  32. export default {
  33. name: 'UserEdit',
  34. data() {
  35. return {
  36. form: {
  37. roles: [],
  38. },
  39. rules: {
  40. username: [
  41. { required: true, trigger: 'blur', message: '请输入用户名' },
  42. ],
  43. password: [
  44. { required: true, trigger: 'blur', message: '请输入密码' },
  45. ],
  46. email: [{ required: true, trigger: 'blur', message: '请输入邮箱' }],
  47. roles: [{ required: true, trigger: 'blur', message: '请选择角色' }],
  48. },
  49. title: '',
  50. dialogFormVisible: false,
  51. }
  52. },
  53. methods: {
  54. showEdit(row) {
  55. if (!row) {
  56. this.title = '添加'
  57. } else {
  58. this.title = '编辑'
  59. this.form = Object.assign({}, row)
  60. }
  61. this.dialogFormVisible = true
  62. },
  63. close() {
  64. this.$refs['form'].resetFields()
  65. this.form = this.$options.data().form
  66. this.dialogFormVisible = false
  67. },
  68. save() {
  69. this.$refs['form'].validate(async (valid) => {
  70. if (valid) {
  71. const { msg } = await userApi.doEdit(this.form)
  72. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  73. this.$emit('fetch-data')
  74. this.close()
  75. }
  76. })
  77. },
  78. },
  79. }
  80. </script>