Sfoglia il codice sorgente

[FE]联调用户管理接口

luoxu5 4 anni fa
parent
commit
c0e2d1f732

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

1
import http from '@/http'
1
import http from '@/http'
2
import { keysMapping, keysMappingReverse } from '@/utils/keysMapping'
2
import { keysMapping, keysMappingReverse } from '@/utils/keysMapping'
3
const { $default } = http
3
const { $default } = http
4
const mapping = {
5
  userId: 'code',
6
  departmentName: 'orgName',
7
  post: 'employeePositionZh',
8
  telephone: 'mainWirelessCall'
9
}
4
const api = {
10
const api = {
5
  // 获取公司类型列表
11
  // 获取公司类型列表
6
  getCompanyTypesList () {
12
  getCompanyTypesList () {
14
      return resp
20
      return resp
15
    }).catch((err) => { return err })
21
    }).catch((err) => { return err })
16
  },
22
  },
23
  // 获取部门类型列表
17
  queryCycleChildOrg (id) {
24
  queryCycleChildOrg (id) {
18
    return $default.get(`/sp/employeeManagement/queryCycleChildOrg?orgId=${id}`).then(resp => {
25
    return $default.get(`/sp/employeeManagement/queryCycleChildOrg?orgId=${id}`).then(resp => {
19
      const data = resp.data.data
26
      const data = resp.data.data
20
      console.log(data)
21
      if (!Array.isArray(data)) return resp
27
      if (!Array.isArray(data)) return resp
22
      // 将平铺的数组变为树形数组
28
      // 将平铺的数组变为树形数组
23
      resp.data = nest(data)
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
    }).catch((err) => { return err })
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
function nest (items, code = '-1', link = 'parentCode') {
54
function nest (items, code = '-1', link = 'parentCode') {

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

29
        <t-button color="primary" @click="showAddDeviceModal">
29
        <t-button color="primary" @click="showAddDeviceModal">
30
          <t-icon icon="plus-circle-outline" size="16"></t-icon>新增
30
          <t-icon icon="plus-circle-outline" size="16"></t-icon>新增
31
        </t-button>
31
        </t-button>
32
        <t-button @click="multDeleteDeviceData">
32
        <t-button @click="multDeleteUserData">
33
          <t-icon icon="trash" size="16"></t-icon>删除
33
          <t-icon icon="trash" size="16"></t-icon>删除
34
        </t-button>
34
        </t-button>
35
      </div>
35
      </div>
42
          <t-table-column prop="departmentName" label="部门" width="150"></t-table-column>
42
          <t-table-column prop="departmentName" label="部门" width="150"></t-table-column>
43
          <t-table-column prop="post" label="职务" width="100"></t-table-column>
43
          <t-table-column prop="post" label="职务" width="100"></t-table-column>
44
          <t-table-column prop="age" label="年龄" width="80"></t-table-column>
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
          <t-table-column prop="status" label="人脸状态" width="120">
46
          <t-table-column prop="status" label="人脸状态" width="120">
47
            <template v-slot="{row}">
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
            </template>
51
            </template>
51
          </t-table-column>
52
          </t-table-column>
52
          <t-table-column label="操作">
53
          <t-table-column label="操作">
53
            <template v-slot="{row}">
54
            <template v-slot="{row}">
54
              <a href="javascript:;" style="color:#0089D4;" @click="editDeviceData(row.resourceToolId)">编辑</a>
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
              <a href="javascript:;" style="color:#0089D4;" @click="deleteDeviceData(row)">人脸审核</a>
57
              <a href="javascript:;" style="color:#0089D4;" @click="deleteDeviceData(row)">人脸审核</a>
57
            </template>
58
            </template>
58
          </t-table-column>
59
          </t-table-column>
95
      // 当前页的数据个数
96
      // 当前页的数据个数
96
      limit: 10,
97
      limit: 10,
97
      // 数据总数
98
      // 数据总数
98
      total: 100,
99
      // 批量删除的设备id
100
      deleteResourceToolId: [],
99
      total: 0,
100
      // 批量删除的用户id
101
      deleteUserId: [],
101
      // 当前设备数据
102
      // 当前设备数据
102
      currentDeviceData: {},
103
      currentDeviceData: {},
103
      // 显示/隐藏新增设备对话框
104
      // 显示/隐藏新增设备对话框
107
  },
108
  },
108
  watch: {
109
  watch: {
109
    companyTypeId (val) {
110
    companyTypeId (val) {
110
      // this.getDepartmentTypesList(val)
111
      // 重置部门回显
112
      this.departmentTypeId = ''
113
      // 查询部门列表
111
      this.queryCycleChildOrg(val)
114
      this.queryCycleChildOrg(val)
112
    },
115
    },
113
    departmentTypeId (val) {
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
  created () {
127
  created () {
119
    this.getCompanyTypesList()
129
    this.getCompanyTypesList()
120
  },
130
  },
121
  methods: {
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
    async getCompanyTypesList () {
147
    async getCompanyTypesList () {
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
    nextDepartment (data, arr) {
165
    nextDepartment (data, arr) {
146
      if (data.length > 0) {
166
      if (data.length > 0) {
155
        })
175
        })
156
      }
176
      }
157
    },
177
    },
178
    // 获取部门列表
158
    async queryCycleChildOrg (id) {
179
    async queryCycleChildOrg (id) {
159
      const res = await sysapi.queryCycleChildOrg(id)
180
      const res = await sysapi.queryCycleChildOrg(id)
160
      if (res.status === 200) {
181
      if (res.status === 200) {
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
      } else {
204
      } else {
184
        this.$Message.danger('部门类型列表数据获取失败!')
205
        this.$Message.danger('部门类型列表数据获取失败!')
185
      }
206
      }
186
    },
207
    },
187
    // 向服务器发送请求获取用户类型列表数据
208
    // 向服务器发送请求获取用户类型列表数据
188
    async getStaffTypesList (id) {
209
    async getStaffTypesList (id) {
189
      const res = await sysapi.getDepartmentTypesList(id)
210
      const res = await sysapi.getStaffTypesList(id)
190
      if (res.status === 200) {
211
      if (res.status === 200) {
191
        this.staffTypesList = res.data.data
212
        this.staffTypesList = res.data.data
192
      } else {
213
      } else {
196
    // 查询数据
217
    // 查询数据
197
    selectHandle () {
218
    selectHandle () {
198
      this.page = 1
219
      this.page = 1
199
      this.getDeviceData()
220
      this.getUserList()
200
    },
221
    },
201
    // 重置查询数据
222
    // 重置查询数据
202
    resetData () {
223
    resetData () {
204
      this.companyTypeId = ''
225
      this.companyTypeId = ''
205
      this.staffTypeId = ''
226
      this.staffTypeId = ''
206
      this.departmentTypeId = ''
227
      this.departmentTypeId = ''
207
      this.getDeviceData()
228
      this.userDataList = []
208
    },
229
    },
209
    // 当前页改变 触发事件
230
    // 当前页改变 触发事件
210
    onChange (page) {
231
    onChange (page) {
211
      this.page = page
232
      this.page = page
212
      this.getDeviceData()
233
      this.getUserList()
213
    },
234
    },
214
    // 当前页数据总数改变 触发事件
235
    // 当前页数据总数改变 触发事件
215
    onSizeChange (pageSize) {
236
    onSizeChange (pageSize) {
216
      this.limit = pageSize
237
      this.limit = pageSize
217
      this.getDeviceData()
238
      this.getUserList()
218
    },
239
    },
219
    // 删除数据
240
    // 删除数据
220
    deleteDeviceData (row) {
241
    deleteUserData (row) {
221
      this.$Confirm.confirm({
242
      this.$Confirm.confirm({
222
        title: '正在准备删除...',
243
        title: '正在准备删除...',
223
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
244
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
224
        ok: async () => {
245
        ok: async () => {
225
          const res = await sysapi.deleteDeviceData({ resourceToolId: row.resourceToolId })
246
          const res = await sysapi.deleteUserData({ employeeId: row.id })
226
          if (res.status === 200) {
247
          if (res.status === 200) {
227
            this.getDeviceData()
248
            this.getUserList()
228
            this.$Message.success('删除成功!')
249
            this.$Message.success('删除成功!')
229
          } else {
250
          } else {
230
            this.$Message.danger('删除失败!')
251
            this.$Message.danger('删除失败!')
238
    // 当复选框发生改变时 触发事件
259
    // 当复选框发生改变时 触发事件
239
    selectChange (data) {
260
    selectChange (data) {
240
      const arr = []
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
        return this.$Message.warning('请选择要删除的数据!')
268
        return this.$Message.warning('请选择要删除的数据!')
248
      }
269
      }
249
      this.$Confirm.confirm({
270
      this.$Confirm.confirm({
250
        title: '正在准备删除...',
271
        title: '正在准备删除...',
251
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
272
        content: '<p>确定要删除?</p><p>删除后将无法还原!</p>',
252
        ok: async () => {
273
        ok: async () => {
253
          const res = await sysapi.deleteDeviceData({ resourceToolId: this.deleteResourceToolId })
274
          const res = await sysapi.deleteUserData({ employeeId: this.deleteUserId })
254
          if (res.status === 200) {
275
          if (res.status === 200) {
255
            this.getDeviceData()
276
            this.getUserList()
256
            this.$Message.success('删除成功!')
277
            this.$Message.success('删除成功!')
257
          } else {
278
          } else {
258
            this.$Message.danger('删除失败!')
279
            this.$Message.danger('删除失败!')