Blame view

src/components/staff/addStaffCommunity.vue 3.71 KB
6ec243d6   wuxw   v1.9 点击提交后,成功提示没有...
1
  <template>
6c157c6e   wuxw   优化完成员工认证 员工小区功能
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
    <el-dialog :title="$t('staffCommunity.addCommunityTitle')" :visible.sync="visible" width="70%">
  
      <el-row :gutter="20">
        <el-col :span="8">
          <el-input v-model="form.communityName" :placeholder="$t('staffCommunity.communityNamePlaceholder')" clearable
            @keyup.enter.native="queryCommunitys" />
        </el-col>
        <el-col :span="4">
          <el-button type="primary" @click="queryCommunitys">
            {{ $t('common.search') }}
          </el-button>
        </el-col>
      </el-row>
  
      <el-table :data="communitys" border style="width: 100%" class="margin-top"
        @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" />
        <el-table-column prop="communityId" :label="$t('staffCommunity.communityId')" align="center" />
        <el-table-column prop="name" :label="$t('staffCommunity.communityName')" align="center" />
        <el-table-column prop="address" :label="$t('staffCommunity.communityAddress')" align="center" />
      </el-table>
  
      <el-pagination :current-page.sync="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size"
        :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
        @current-change="handleCurrentChange" />
  
      <div class="text-right margin-top">
        <el-button @click="visible = false">{{ $t('common.cancel') }}</el-button>
        <el-button type="primary" @click="submit">{{ $t('common.submit') }}</el-button>
      </div>
  
    </el-dialog>
  </template>
  
  <script>
  import { listWaitStaffCommunity, saveStaffCommunity } from '@/api/staff/staffCommunityApi'
  
  export default {
    name: 'AddStaffCommunity',
    data() {
      return {
        visible: false,
        form: {
          staffId: '',
          staffName: '',
          communityName: '',
          selectCommunitys: []
        },
        communitys: [],
        selectedCommunities: [],
        pagination: {
          current: 1,
          size: 10,
          total: 0
        }
      }
    },
    methods: {
      open(params) {
        this.visible = true
        this.form.staffId = params.staffId
        this.form.staffName = params.staffName || ''
        this.queryCommunitys()
      },
      async queryCommunitys() {
        try {
          const params = {
            page: this.pagination.current,
            row: this.pagination.size,
            nameLike: this.form.communityName,
            staffId: this.form.staffId
          }
          const { data, total } = await listWaitStaffCommunity(params)
          this.communitys = data
          this.pagination.total = total
        } catch (error) {
          this.$message.error(this.$t('staffCommunity.fetchCommunityError'))
        }
      },
      handleSelectionChange(val) {
        this.selectedCommunities = val
      },
      async submit() {
        if (this.selectedCommunities.length === 0) {
          this.$message.warning(this.$t('staffCommunity.selectCommunityTip'))
          return
        }
  
        try {
          const params = {
            staffId: this.form.staffId,
            staffName: this.form.staffName,
            communitys: this.selectedCommunities.map(item => ({
              communityId: item.communityId,
              communityName: item.name
            }))
          }
          await saveStaffCommunity(params)
6ec243d6   wuxw   v1.9 点击提交后,成功提示没有...
100
          this.$message.success(this.$t('common.operationSuccess'))
6c157c6e   wuxw   优化完成员工认证 员工小区功能
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
          this.$emit('success')
          this.visible = false
        } catch (error) {
          this.$message.error(this.$t('staffCommunity.addError'))
        }
      },
      handleSizeChange(val) {
        this.pagination.size = val
        this.queryCommunitys()
      },
      handleCurrentChange(val) {
        this.pagination.current = val
        this.queryCommunitys()
      }
    }
  }
  </script>
  
  <style scoped>
  .margin-top {
    margin-top: 15px;
  }
  
  .text-right {
    text-align: right;
  }
  </style>