Blame view

src/components/staff/deleteStaff.vue 1.41 KB
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  <!-- components/staff/deleteStaff.vue -->
  <template>
      <el-dialog
        :title="$t('staff.confirmOperation')"
        :visible.sync="visible"
        width="40%"
        @close="handleClose"
      >
        <div class="text-center">
          <p>{{ $t('staff.confirmDelete') }}</p>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="handleClose">{{ $t('staff.wrongClick') }}</el-button>
          <el-button type="danger" @click="deleteStaff">{{ $t('staff.confirmDeleteAction') }}</el-button>
        </span>
      </el-dialog>
    </template>
    
    <script>
    import { deleteStaff } from '@/api/staff/staffApi'
    
    export default {
      name: 'DeleteStaff',
      props: {
        visible: {
          type: Boolean,
          default: false
        },
        staffInfo: {
          type: Object,
          default: () => ({})
        }
      },
      data() {
        return {
          loading: false
        }
      },
      methods: {
        handleClose() {
          this.$emit('update:visible', false)
        },
        async deleteStaff() {
          try {
            this.loading = true
            await deleteStaff({
              userId: this.staffInfo.userId
            })
            this.$message.success(this.$t('staff.deleteSuccess'))
            this.$emit('success')
            this.handleClose()
          } catch (error) {
            this.$message.error(error.message)
          } finally {
            this.loading = false
          }
        }
      }
    }
    </script>