Parcourir la Source

[FE]联调用户管理接口

luoxu5 4 ans auparavant
Parent
commit
c0e2d1f732

+ 28 - 2
security-protection-platform/src/api/usermana/index.js

@ -1,6 +1,12 @@
1 1
import http from '@/http'
2 2
import { keysMapping, keysMappingReverse } from '@/utils/keysMapping'
3 3
const { $default } = http
4
const mapping = {
5
  userId: 'code',
6
  departmentName: 'orgName',
7
  post: 'employeePositionZh',
8
  telephone: 'mainWirelessCall'
9
}
4 10
const api = {
5 11
  // 获取公司类型列表
6 12
  getCompanyTypesList () {
@ -14,15 +20,35 @@ const api = {
14 20
      return resp
15 21
    }).catch((err) => { return err })
16 22
  },
23
  // 获取部门类型列表
17 24
  queryCycleChildOrg (id) {
18 25
    return $default.get(`/sp/employeeManagement/queryCycleChildOrg?orgId=${id}`).then(resp => {
19 26
      const data = resp.data.data
20
      console.log(data)
21 27
      if (!Array.isArray(data)) return resp
22 28
      // 将平铺的数组变为树形数组
23 29
      resp.data = nest(data)
24
      // console.log(resp.data)
30
      return resp
31
    }).catch((err) => { return err })
32
  },
33
  getStaffTypesList (id) {
34
    return $default.get(`/sp/employeeManagement/queryEmployeeListByOrgId?orgId=${id}`).then(resp => {
35
      return resp
25 36
    }).catch((err) => { return err })
37
  },
38
  // 获取用户列表数据
39
  getUserList (data) {
40
    return $default.get(`/sp/employeeManagement/queryEmployeeList`, data).then(resp => {
41
      resp.data = keysMappingReverse(resp.data.data, mapping)
42
      return resp
43
    }).catch((err) => { return err })
44
  },
45
  // 删除用户
46
  deleteUserData (data) {
47
    if (Array.isArray(data.employeeId)) {
48
      return $default.delete(`/sp/employeeManagement/deleteEmployee?employeeId=${data.employeeId.join(',')}`).catch((err) => { return err })
49
    } else {
50
      return $default.delete(`/sp/employeeManagement/deleteEmployee?employeeId=${data.employeeId}`).catch((err) => { return err })
51
    }
26 52
  }
27 53
}
28 54
function nest (items, code = '-1', link = 'parentCode') {

+ 58 - 37
security-protection-platform/src/modules/usermana/index.vue

@ -29,7 +29,7 @@
29 29
        <t-button color="primary" @click="showAddDeviceModal">
30 30
          <t-icon icon="plus-circle-outline" size="16"></t-icon>新增
31 31
        </t-button>
32
        <t-button @click="multDeleteDeviceData">
32
        <t-button @click="multDeleteUserData">
33 33
          <t-icon icon="trash" size="16"></t-icon>删除
34 34
        </t-button>
35 35
      </div>
@ -42,17 +42,18 @@
42 42
          <t-table-column prop="departmentName" label="部门" width="150"></t-table-column>
43 43
          <t-table-column prop="post" label="职务" width="100"></t-table-column>
44 44
          <t-table-column prop="age" label="年龄" width="80"></t-table-column>
45
          <t-table-column prop="telephone" label="手机" width="120"></t-table-column>
45
          <t-table-column prop="telephone" label="手机" width="150"></t-table-column>
46 46
          <t-table-column prop="status" label="人脸状态" width="120">
47 47
            <template v-slot="{row}">
48
              <t-tag v-if="row.status=== 'xxx'" state="primary">待审核</t-tag>
49
              <t-tag v-else state="success">已生效</t-tag>
48
              <t-tag v-if="row.field2==='5'" state="success">{{ row.status }}</t-tag>
49
              <t-tag v-else-if="row.field2==='3'" state="danger">{{ row.status }}</t-tag>
50
              <t-tag v-else state="info">{{ row.status }}</t-tag>
50 51
            </template>
51 52
          </t-table-column>
52 53
          <t-table-column label="操作">
53 54
            <template v-slot="{row}">
54 55
              <a href="javascript:;" style="color:#0089D4;" @click="editDeviceData(row.resourceToolId)">编辑</a>
55
              <a href="javascript:;" style="color:#0089D4;" @click="deleteDeviceData(row)">删除</a>
56
              <a href="javascript:;" style="color:#0089D4;" @click="deleteUserData(row)">删除</a>
56 57
              <a href="javascript:;" style="color:#0089D4;" @click="deleteDeviceData(row)">人脸审核</a>
57 58
            </template>
58 59
          </t-table-column>
@ -95,9 +96,9 @@ export default {
95 96
      // 当前页的数据个数
96 97
      limit: 10,
97 98
      // 数据总数
98
      total: 100,
99
      // 批量删除的设备id
100
      deleteResourceToolId: [],
99
      total: 0,
100
      // 批量删除的用户id
101
      deleteUserId: [],
101 102
      // 当前设备数据
102 103
      currentDeviceData: {},
103 104
      // 显示/隐藏新增设备对话框
@ -107,11 +108,20 @@ export default {
107 108
  },
108 109
  watch: {
109 110
    companyTypeId (val) {
110
      // this.getDepartmentTypesList(val)
111
      // 重置部门回显
112
      this.departmentTypeId = ''
113
      // 查询部门列表
111 114
      this.queryCycleChildOrg(val)
112 115
    },
113 116
    departmentTypeId (val) {
114
      this.getStaffTypesList(val)
117
      // 重置人员回显
118
      this.staffTypeId = ''
119
      // 重置人员列表
120
      this.staffTypesList = []
121
      // 减少查询请求
122
      if (val !== '') {
123
        this.getStaffTypesList(val)
124
      }
115 125
    }
116 126
  },
117 127
  created () {
@ -119,9 +129,19 @@ export default {
119 129
    this.getCompanyTypesList()
120 130
  },
121 131
  methods: {
122
    // 获取设备列表数据
123
    async getDeviceData () {
124
132
    // 获取用户列表数据
133
    async getUserList () {
134
      const res = await sysapi.getUserList({ params: { pageNumber: this.page, pageSize: this.limit, id: this.staffTypeId, orgId: this.departmentTypeId || this.companyTypeId } })
135
      if (res.status === 200) {
136
        // 获取当前公司id的公司名称
137
        const companyName = this.companyTypesList.filter(item => item.id === this.companyTypeId)[0].name
138
        // eslint-disable-next-line no-return-assign
139
        res.data.data.forEach(item => item.companyName = companyName)
140
        this.userDataList = res.data.data
141
        this.total = res.data.total
142
      } else {
143
        this.$Message.danger('用户列表数据获取失败!')
144
      }
125 145
    },
126 146
    // 向服务器发送请求获取公司类型列表数据
127 147
    async getCompanyTypesList () {
@ -133,14 +153,14 @@ export default {
133 153
      }
134 154
    },
135 155
    // 向服务器发送请求获取部门类型列表数据
136
    async getDepartmentTypesList (id) {
137
      const res = await sysapi.getDepartmentTypesList(id)
138
      if (res.status === 200) {
139
        this.departmentTypesList = res.data.data
140
      } else {
141
        this.$Message.danger('部门类型列表数据获取失败!')
142
      }
143
    },
156
    // async getDepartmentTypesList (id) {
157
    //   const res = await sysapi.getDepartmentTypesList(id)
158
    //   if (res.status === 200) {
159
    //     this.departmentTypesList = res.data.data
160
    //   } else {
161
    //     this.$Message.danger('部门类型列表数据获取失败!')
162
    //   }
163
    // },
144 164
    // 如果部门还有下级 递归
145 165
    nextDepartment (data, arr) {
146 166
      if (data.length > 0) {
@ -155,6 +175,7 @@ export default {
155 175
        })
156 176
      }
157 177
    },
178
    // 获取部门列表
158 179
    async queryCycleChildOrg (id) {
159 180
      const res = await sysapi.queryCycleChildOrg(id)
160 181
      if (res.status === 200) {
@ -178,15 +199,15 @@ export default {
178 199
            }
179 200
          })
180 201
        })
181
        console.log(data)
182
        this.departmentTypesList = data
202
        // eslint-disable-next-line no-return-assign
203
        this.departmentTypesList = data.filter(item => item.data = item.id)
183 204
      } else {
184 205
        this.$Message.danger('部门类型列表数据获取失败!')
185 206
      }
186 207
    },
187 208
    // 向服务器发送请求获取用户类型列表数据
188 209
    async getStaffTypesList (id) {
189
      const res = await sysapi.getDepartmentTypesList(id)
210
      const res = await sysapi.getStaffTypesList(id)
190 211
      if (res.status === 200) {
191 212
        this.staffTypesList = res.data.data
192 213
      } else {
@ -196,7 +217,7 @@ export default {
196 217
    // 查询数据
197 218
    selectHandle () {
198 219
      this.page = 1
199
      this.getDeviceData()
220
      this.getUserList()
200 221
    },
201 222
    // 重置查询数据
202 223
    resetData () {
@ -204,27 +225,27 @@ export default {
204 225
      this.companyTypeId = ''
205 226
      this.staffTypeId = ''
206 227
      this.departmentTypeId = ''
207
      this.getDeviceData()
228
      this.userDataList = []
208 229
    },
209 230
    // 当前页改变 触发事件
210 231
    onChange (page) {
211 232
      this.page = page
212
      this.getDeviceData()
233
      this.getUserList()
213 234
    },
214 235
    // 当前页数据总数改变 触发事件
215 236
    onSizeChange (pageSize) {
216 237
      this.limit = pageSize
217
      this.getDeviceData()
238
      this.getUserList()
218 239
    },
219 240
    // 删除数据
220
    deleteDeviceData (row) {
241
    deleteUserData (row) {
221 242
      this.$Confirm.confirm({
222 243
        title: '正在准备删除...',
223 244
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
224 245
        ok: async () => {
225
          const res = await sysapi.deleteDeviceData({ resourceToolId: row.resourceToolId })
246
          const res = await sysapi.deleteUserData({ employeeId: row.id })
226 247
          if (res.status === 200) {
227
            this.getDeviceData()
248
            this.getUserList()
228 249
            this.$Message.success('删除成功!')
229 250
          } else {
230 251
            this.$Message.danger('删除失败!')
@ -238,21 +259,21 @@ export default {
238 259
    // 当复选框发生改变时 触发事件
239 260
    selectChange (data) {
240 261
      const arr = []
241
      data.forEach(item => arr.push(item.resourceToolId))
242
      this.deleteResourceToolId = arr
262
      data.forEach(item => arr.push(item.id))
263
      this.deleteUserId = arr
243 264
    },
244 265
    // 批量删除数据
245
    multDeleteDeviceData () {
246
      if (this.deleteResourceToolId.length === 0) {
266
    multDeleteUserData () {
267
      if (this.deleteUserId.length === 0) {
247 268
        return this.$Message.warning('请选择要删除的数据!')
248 269
      }
249 270
      this.$Confirm.confirm({
250 271
        title: '正在准备删除...',
251 272
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
252 273
        ok: async () => {
253
          const res = await sysapi.deleteDeviceData({ resourceToolId: this.deleteResourceToolId })
274
          const res = await sysapi.deleteUserData({ employeeId: this.deleteUserId })
254 275
          if (res.status === 200) {
255
            this.getDeviceData()
276
            this.getUserList()
256 277
            this.$Message.success('删除成功!')
257 278
          } else {
258 279
            this.$Message.danger('删除失败!')