From 0eccf24c5350962baec3beb8754775657ccfa7e2 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 13 Sep 2023 15:48:53 +0800
Subject: [PATCH] 人员,设备
---
src/api/http/request.ts | 13 +++-
src/api/manage.ts | 15 ++++
src/api/http/type.ts | 6 +-
src/pages/page-web/projects/members.vue | 32 ++++++----
src/pages/page-web/projects/devices.vue | 55 ++++++++---------
5 files changed, 71 insertions(+), 50 deletions(-)
diff --git a/src/api/http/request.ts b/src/api/http/request.ts
index 5505fd6..04dde7e 100644
--- a/src/api/http/request.ts
+++ b/src/api/http/request.ts
@@ -33,10 +33,17 @@
instance.interceptors.response.use(
response => {
+
+
// console.info('URL: ' + response.config.baseURL + response.config.url, '\nData: ', response.data, '\nResponse:', response)
- if (response.data.code && !response.data.success) {
- message.error(response.data.message)
- }
+
+ //处理消息返回
+ // if (response.data.code && !response.data.success) {
+ // message.error(response.data.message)
+ // }
+ if (response.data.code != 5000) {
+ message.error(response.data.message)
+ }
return response
},
err => {
diff --git a/src/api/http/type.ts b/src/api/http/type.ts
index 716a774..c28eb94 100644
--- a/src/api/http/type.ts
+++ b/src/api/http/type.ts
@@ -4,9 +4,9 @@
}
export interface IPage {
- page: number;
- total: number;
- page_size: number;
+ page?: number;
+ total?: number;
+ page_size?: number;
current?:number;
size?:number;
diff --git a/src/api/manage.ts b/src/api/manage.ts
index 3d3bd8d..27886d9 100644
--- a/src/api/manage.ts
+++ b/src/api/manage.ts
@@ -2,7 +2,7 @@
import request, { CommonListResponse, IListWorkspaceResponse, IPage, IWorkspaceResponse } from '/@/api/http/request'
import { Device } from '/@/types/device'
-const HTTP_PREFIX = 'api/iot'
+const HTTP_PREFIX = 'api/system'
// login
export interface LoginBody {
@@ -100,6 +100,17 @@
return result.data
}
+export const getUserPage = async function (params: any, body: IPage): Promise<CommonListResponse<any>> {
+
+ console.log(params,"++++++++++++++")
+
+ const url = `${HTTP_PREFIX}/user/page`
+ const result = await request.get(url,{params:{...params,pageNum:body.current,pageSize:body.size}})
+ return result.data
+}
+
+
+
export const updateUserInfo = async function (wid: string, user_id: string, body: {}): Promise<IWorkspaceResponse<any>> {
const url = `${HTTP_PREFIX}/users/${wid}/users/${user_id}`
const result = await request.put(url, body)
@@ -142,7 +153,7 @@
* @param params
*/
export const getDeviceList = async function (params:any): Promise<IListWorkspaceResponse<Device>> {
- const url = `${HTTP_PREFIX}/manage/device`
+ const url = `${HTTP_PREFIX}/manage/device/getPage`
const result = await request.get(url,{params})
return result.data
}
diff --git a/src/pages/page-web/projects/devices.vue b/src/pages/page-web/projects/devices.vue
index dcf71f8..6f2f808 100644
--- a/src/pages/page-web/projects/devices.vue
+++ b/src/pages/page-web/projects/devices.vue
@@ -8,6 +8,7 @@
机场
</a-menu-item>
</a-menu>
+
<div class="device-table-wrap table flex-display flex-column">
<a-table :columns="columns" :data-source="data.device" :pagination="paginationProp" @change="refreshData" row-key="device_sn" :expandedRowKeys="expandRows"
:row-selection="rowSelection" :rowClassName="rowClassName" :scroll="{ x: '100%', y: 600 }"
@@ -26,6 +27,7 @@
</template>
</div>
</template>
+
<template v-for="col in ['sn', 'workspace']" #[col]="{ text }" :key="col">
<a-tooltip :title="text">
<span>{{ text }}</span>
@@ -113,12 +115,13 @@
:device="currentDevice">
</DeviceHmsDrawer>
</div>
+
</template>
<script lang="ts" setup>
import { ColumnProps, TableState } from 'ant-design-vue/lib/table/interface'
import { h, onMounted, reactive, ref, UnwrapRef } from 'vue'
import { IPage } from '/@/api/http/type'
-import { BindBody, bindDevice, getBindingDevices, unbindDevice, updateDevice } from '/@/api/manage'
+import { BindBody, bindDevice, getBindingDevices, getDeviceList, unbindDevice, updateDevice } from '/@/api/manage'
import { EDeviceTypeName, ELocalStorageKey } from '/@/types'
import { EditOutlined, CheckOutlined, CloseOutlined, DeleteOutlined, FileSearchOutlined, CloudServerOutlined } from '@ant-design/icons-vue'
import { Device, DeviceFirmwareStatusEnum } from '/@/types/device'
@@ -139,8 +142,8 @@
const deleteTip = ref<boolean>(false)
const deleteSn = ref<string>()
const columns: ColumnProps[] = [
- { title: '设备型号', dataIndex: 'device_name', width: 100, className: 'titleStyle' },
- { title: '设备SN', dataIndex: 'device_sn', width: 100, className: 'titleStyle', ellipsis: true, slots: { customRender: 'sn' } },
+ { title: '设备型号', dataIndex: 'deviceName', width: 100, className: 'titleStyle' },
+ { title: '设备SN', dataIndex: 'deviceSn', width: 100, className: 'titleStyle', ellipsis: true, slots: { customRender: 'sn' } },
{
title: '设备组织名称',
dataIndex: 'nickname',
@@ -150,11 +153,11 @@
ellipsis: true,
slots: { customRender: 'nickname' }
},
- { title: '固件版本', dataIndex: 'firmware_version', width: 150, className: 'titleStyle', slots: { customRender: 'firmware_version' } },
+ { title: '固件版本', dataIndex: 'firmwareVersion', width: 150, className: 'titleStyle', slots: { customRender: 'firmware_version' } },
{ title: '在线状态', dataIndex: 'status', width: 100, className: 'titleStyle', slots: { customRender: 'status' } },
{
title: '所属项目',
- dataIndex: 'workspace_name',
+ dataIndex: 'workspaceName',
width: 100,
className: 'titleStyle',
ellipsis: true,
@@ -172,8 +175,8 @@
return obj
}
},
- { title: '加入组织时间', dataIndex: 'bound_time', width: 150, sorter: (a: Device, b: Device) => a.bound_time.localeCompare(b.bound_time), className: 'titleStyle' },
- { title: '在线时间', dataIndex: 'login_time', width: 150, sorter: (a: Device, b: Device) => a.login_time.localeCompare(b.login_time), className: 'titleStyle' },
+ { title: '加入组织时间', dataIndex: 'boundTime', width: 150, sorter: (a: Device, b: Device) => a.bound_time.localeCompare(b.bound_time), className: 'titleStyle' },
+ { title: '在线时间', dataIndex: 'loginTime', width: 150, sorter: (a: Device, b: Device) => a.login_time.localeCompare(b.login_time), className: 'titleStyle' },
{
title: '操作',
dataIndex: 'actions',
@@ -221,8 +224,8 @@
// 获取分页信息
function getPaginationBody () {
return {
- page: paginationProp.current,
- page_size: paginationProp.pageSize
+ current: paginationProp.current,
+ size: paginationProp.pageSize
} as IPage
}
@@ -297,28 +300,22 @@
useDeviceUpgradeEvent(onDeviceUpgradeWs)
// 获取设备列表信息
-function getDevices (domain: number, closeLoading?: boolean) {
- if (!closeLoading) {
- loading.value = true
- }
- getBindingDevices(workspaceId, getPaginationBody(), domain).then(res => {
- if (res.code !== 0) {
+function getDevices (params:any) {
+ loading.value = true
+ const paginationBody = getPaginationBody()
+
+ getDeviceList(Object.assign(params, paginationBody)).then(res => {
+ if (res.code !== 5000) {
return
}
- const resData: Device[] = res.data.list
- expandRows.value = []
- resData.forEach((val: any) => {
- if (val.children) {
- val.children = [val.children]
- }
- if (judgeCurrentType(EDeviceTypeName.Dock)) {
- expandRows.value.push(val.device_sn)
- }
- })
- data.device = resData
- paginationProp.total = res.data.pagination.total
- paginationProp.current = res.data.pagination.page
- paginationProp.pageSize = res.data.pagination.page_size
+
+ console.log(res, '++++++++++')
+ const list = res.data.records
+ data.device = list
+
+ loading.value = false
+ }).catch(err => {
+ console.log('错误:', err)
loading.value = false
})
}
diff --git a/src/pages/page-web/projects/members.vue b/src/pages/page-web/projects/members.vue
index c0e0bad..18da6e7 100644
--- a/src/pages/page-web/projects/members.vue
+++ b/src/pages/page-web/projects/members.vue
@@ -43,9 +43,10 @@
import { TableState } from 'ant-design-vue/lib/table/interface'
import { onMounted, reactive, Ref, ref, UnwrapRef } from 'vue'
import { IPage } from '/@/api/http/type'
-import { getAllUsersInfo, updateUserInfo } from '/@/api/manage'
+import { getAllUsersInfo, getUserPage, updateUserInfo } from '/@/api/manage'
import { ELocalStorageKey } from '/@/types'
import { EditOutlined, DeleteOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons-vue'
+import { useMyStore } from '/@/store'
export interface Member {
user_id: string
@@ -62,11 +63,11 @@
}
const columns = [
{ title: '账号', dataIndex: 'username', width: 150, sorter: (a: Member, b: Member) => a.username.localeCompare(b.username), className: 'titleStyle' },
- { title: '人员组织名称', dataIndex: 'organization_name', sorter: (a: Member, b: Member) => a.organization_name.localeCompare(b.organization_name), width: 150, className: 'titleStyle' },
- { title: '用户角色', dataIndex: 'user_role', width: 150, className: 'titleStyle', slots: { customRender: 'user_role' } },
- { title: '所属项目', dataIndex: 'project', width: 150, className: 'titleStyle' },
+ { title: '人员组织名称', dataIndex: 'deptName', sorter: (a: Member, b: Member) => a.organization_name.localeCompare(b.organization_name), width: 150, className: 'titleStyle' },
+ { title: '用户角色', dataIndex: 'roleName', width: 150, className: 'titleStyle', slots: { customRender: 'user_role' } },
+ { title: '所属项目', dataIndex: 'projectName', width: 150, className: 'titleStyle' },
{ title: '加入方式', dataIndex: 'join_way', width: 150, className: 'titleStyle', slots: { customRender: 'join_way' } },
- { title: '加入时间', dataIndex: 'create_time', width: 150, sorter: (a: Member, b: Member) => a.create_time.localeCompare(b.create_time), className: 'titleStyle' },
+ { title: '加入时间', dataIndex: 'createTime', width: 150, sorter: (a: Member, b: Member) => a.create_time.localeCompare(b.create_time), className: 'titleStyle' },
{ title: '操作', dataIndex: 'action', width: 70, className: 'titleStyle', slots: { customRender: 'action' } },
]
@@ -104,23 +105,28 @@
page_size: 50
}
const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId)!
+const store = useMyStore()
+const projectId:string = store.state.common.projectId
onMounted(() => {
- getAllUsers(workspaceId, body)
+ getAllUsers({ projectId }, body)
})
function refreshData (page: Pagination) {
body.page = page?.current!
body.page_size = page?.pageSize!
- getAllUsers(workspaceId, body)
+ getAllUsers({ projectId }, body)
}
-function getAllUsers (workspaceId: string, page: IPage) {
- getAllUsersInfo(workspaceId, page).then(res => {
- const userList: Member[] = res.data.list
- data.member = userList
- paginationProp.total = res.data.pagination.total
- paginationProp.current = res.data.pagination.page
+function getAllUsers (params:any, page: IPage) {
+ getUserPage(params, page).then(res => {
+ const resData = res.data
+ data.member = resData.list
+
+ paginationProp.total = resData.total
+ paginationProp.current = resData.pageNum
+ }).catch(err => {
+ console.log(err)
})
}
--
Gitblit v1.9.3