Blame view

src/components/role/AddRoleStaff.vue 3.19 KB
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
1
  <template>
8fb25d6e   wuxw   优化相关bug
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
    <el-dialog :title="$t('role.staff')" :visible.sync="visible" width="70%" @close="resetForm">
      <el-row>
        <el-col :span="24">
          <el-input v-model="searchForm.staffName" :placeholder="$t('role.staffName')"
            style="width: 300px; margin-right: 10px" />
          <el-button type="primary" @click="queryStaffs">
            {{ $t('common.search') }}
          </el-button>
        </el-col>
      </el-row>
  
      <el-table :data="staffs" style="width: 100%; margin-top: 15px" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column prop="userId" :label="$t('role.staffName')" align="center" />
        <el-table-column prop="name" :label="$t('role.staffName')" align="center" />
        <el-table-column prop="address" :label="$t('role.address')" align="center" />
      </el-table>
  
      <el-pagination :current-page="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size"
        :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
        @current-change="handleCurrentChange" />
  
      <span slot="footer" class="dialog-footer">
        <el-button @click="visible = false">{{ $t('role.cancel') }}</el-button>
        <el-button type="primary" @click="submit">{{ $t('role.save') }}</el-button>
      </span>
    </el-dialog>
  </template>
  
  <script>
  import { listStaffsNoRole, saveRoleStaff } from '@/api/role/roleApi'
  
  export default {
    name: 'AddRoleStaff',
    props: {
      roleId: {
        type: String,
        required: true
      }
    },
    data() {
      return {
        visible: false,
        searchForm: {
          staffName: ''
        },
        staffs: [],
        selectedStaffs: [],
        page: {
          current: 1,
          size: 10,
          total: 0
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
54
        }
8fb25d6e   wuxw   优化相关bug
55
56
57
58
59
60
      }
    },
    methods: {
      show() {
        this.visible = true
        this.queryStaffs()
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
61
      },
8fb25d6e   wuxw   优化相关bug
62
63
64
65
66
67
68
      async queryStaffs() {
        try {
          const params = {
            page: this.page.current,
            row: this.page.size,
            searchUserName: this.searchForm.staffName,
            roleId: this.roleId
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
69
          }
8fb25d6e   wuxw   优化相关bug
70
71
72
73
74
          const res = await listStaffsNoRole(params)
          this.staffs = res.data
          this.page.total = res.total
        } catch (error) {
          this.$message.error(error.message)
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
75
76
        }
      },
8fb25d6e   wuxw   优化相关bug
77
78
79
80
81
82
83
      handleSelectionChange(val) {
        this.selectedStaffs = val
      },
      async submit() {
        if (this.selectedStaffs.length === 0) {
          this.$message.warning(this.$t('role.selectStaff'))
          return
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
84
        }
8fb25d6e   wuxw   优化相关bug
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  
        try {
          const staffs = this.selectedStaffs.map(item => ({
            staffId: item.userId,
            staffName: item.name
          }))
  
          await saveRoleStaff({
            roleId: this.roleId,
            staffs
          })
  
          this.$message.success(this.$t('role.saveSuccess'))
          this.$emit('success')
          this.visible = false
        } catch (error) {
          this.$message.error(error.message)
        }
      },
      handleSizeChange(size) {
        this.page.size = size
        this.queryStaffs()
      },
      handleCurrentChange(current) {
        this.page.current = current
        this.queryStaffs()
      },
      resetForm() {
        this.searchForm.staffName = ''
        this.selectedStaffs = []
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
115
116
      }
    }
8fb25d6e   wuxw   优化相关bug
117
118
  }
  </script>