diff --git a/src/api/media/device.ts b/src/api/media/device.ts new file mode 100644 index 00000000..d16d117e --- /dev/null +++ b/src/api/media/device.ts @@ -0,0 +1,13 @@ +import server from '@/utils/request' + +export default { + // 列表 + list: (data: any) => server.post(`/media/device/_query/`, data), + // 详情 + detail: (id: string): any => server.get(`/media/device/${id}`), + // 新增 + save: (data: any) => server.post(`/media/device/${data.channel}`, data), + // 修改 + update: (data: any) => server.put(`/media/device/${data.channel}/${data.id}`, data), + del: (id: string) => server.remove(`/media/device/${id}`), +} \ No newline at end of file diff --git a/src/api/rule-engine/dashboard.ts b/src/api/rule-engine/dashboard.ts new file mode 100644 index 00000000..7563bbeb --- /dev/null +++ b/src/api/rule-engine/dashboard.ts @@ -0,0 +1,20 @@ +import server from '@/utils/request'; +/** + * 获取今日及当月告警数量 + */ +export const dashboard = (data:Record)=> server.post('/dashboard/_multi',data); + +/** + * + */ +export const getAlarm = (params:Record) => server.get('/alarm/record/_query',params); + +/** + * 获取告警数量 + */ +export const getAlarmConfigCount = (data:Record) => server.post('/alarm/config/_count',data); + +/** + * 获取报警等级 + */ +export const getAlarmLevel = () => server.get('/alarm/config/default/level'); \ No newline at end of file diff --git a/src/api/system/department.ts b/src/api/system/department.ts index e61b4de0..565db91f 100644 --- a/src/api/system/department.ts +++ b/src/api/system/department.ts @@ -10,12 +10,14 @@ export const updateDepartment_api = (data: object) => server.patch(`/organizatio export const delDepartment_api = (id: string) => server.remove(`/organization/${id}`); +// 获取所属产品列表 +export const getDeviceProduct_api = (data: object) => server.get(`/device/product/_query/no-paging`, data); // 获取产品列表 export const getDeviceOrProductList_api = (data: object) => server.post(`/device-product/_query`, data); // 获取设备列表 export const getDeviceList_api = (data: object) => server.post(`/device/instance/_query`, data); // 根据产品的id获取产品的权限 -export const getPermission_api = (type:'device' | 'product',ids: object, id: string) => server.post(`/assets/bindings/${type}/org/${id}/_query`, ids); +export const getPermission_api = (type: 'device' | 'product', ids: object, id: string) => server.post(`/assets/bindings/${type}/org/${id}/_query`, ids); // 获取产品的权限字典 export const getPermissionDict_api = () => server.get(`/assets/bindings/product/permissions`); @@ -24,4 +26,13 @@ export const bindDeviceOrProductList_api = (type: 'device' | 'product', data: ob // 批量解绑 export const unBindDeviceOrProduct_api = (type: 'device' | 'product', data: object) => server.post(`/assets/unbind/${type}`, data); // 批量更新权限 -export const updatePermission_api = (type: 'device' | 'product', parentId: string, data: object) => server.put(`/assets/permission/${type}/org/${parentId}/_batch`, data); \ No newline at end of file +export const updatePermission_api = (type: 'device' | 'product', parentId: string, data: object) => server.put(`/assets/permission/${type}/org/${parentId}/_batch`, data); + + +// 用户相关 +// 获取绑定用户列表 +export const getBindUserList_api = (data: object) => server.post(`/user/_query`, data); +// 绑定用户 +export const bindUser_api = (parentId:string,data: object) => server.post(`/organization/${parentId}/users/_bind`, data); +// 解绑用户 +export const unBindUser_api = (parentId:string,data: object) => server.post(`/organization/${parentId}/users/_unbind`, data); diff --git a/src/api/system/user.ts b/src/api/system/user.ts new file mode 100644 index 00000000..68c690ac --- /dev/null +++ b/src/api/system/user.ts @@ -0,0 +1,36 @@ +import server from '@/utils/request'; + +// 获取用户类型 +export const getUserType_api = () => server.get(`/user/detail/types`); + +// 获取用户列表 +export const getUserList_api = (data: object) => server.post(`/user/detail/_query`, data); + +// 校验字段合法性 +export const validateField_api = (type: 'username' | 'password', name: string) => server.post(`/user/${type}/_validate`, name, { + headers: { + 'Content-Type': 'text/plain' + } +}) + +// 获取角色列表 +export const getRoleList_api = () => server.get(`/role/_query/no-paging?paging=false`); +// 获取组织列表 +export const getDepartmentList_api = () => server.get(`/organization/_all/tree?paging=false`); + +// 获取用户信息 +export const getUser_api = (id: string) => server.get(`/user/detail/${id}`); +// 添加用户 +export const addUser_api = (data: object) => server.post(`/user/detail/_create`, data); +// 更新用户 +export const updateUser_api = (data: any) => server.put(`/user/detail/${data.id}/_update`, data); +// 更新密码 +export const updatePassword_api = (data: { id: string, password: string }) => server.post(`/user/${data.id}/password/_reset`, data.password, { + headers: { + 'Content-Type': 'text/plain' + } +}); +// 修改用户状态 +export const changeUserStatus_api = (data: object) => server.patch(`/user`,data); +// 删除用户 +export const deleteUser_api = (id: string) => server.remove(`/user/${id}`); \ No newline at end of file diff --git a/src/components/AIcon/index.tsx b/src/components/AIcon/index.tsx index 7a8a21b3..4ebea3b2 100644 --- a/src/components/AIcon/index.tsx +++ b/src/components/AIcon/index.tsx @@ -45,7 +45,10 @@ const iconKeys = [ 'InfoCircleOutlined', 'SearchOutlined', 'EllipsisOutlined', - 'ClockCircleOutlined' + 'ClockCircleOutlined', + 'PartitionOutlined', + 'ShareAltOutlined', + 'playCircleOutlined', ] const Icon = (props: {type: string}) => { diff --git a/src/components/MonacoEditor/index.vue b/src/components/MonacoEditor/index.vue index 9b8b725c..6762be92 100644 --- a/src/components/MonacoEditor/index.vue +++ b/src/components/MonacoEditor/index.vue @@ -13,7 +13,7 @@ import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; self.MonacoEnvironment = { - getWorker(workerId, label) { + getWorker(_, label) { if (label === 'json') { return new jsonWorker(); } @@ -23,7 +23,7 @@ self.MonacoEnvironment = { if (label === 'html') { return new htmlWorker(); } - if (label === 'ts') { + if (['typescript', 'javascript'].includes(label)) { return new tsWorker(); } return new editorWorker(); @@ -33,6 +33,7 @@ self.MonacoEnvironment = { const props = defineProps({ modelValue: [String, Number], theme: { type: String, default: 'vs-dark' }, + language: { type: String, default: 'json' }, }); const emit = defineEmits(['update:modelValue']); @@ -42,10 +43,10 @@ const dom = ref(); let instance; onMounted(() => { - const jsonModel = monaco.editor.createModel(props.modelValue, 'json'); + const _model = monaco.editor.createModel(props.modelValue, props.language); instance = monaco.editor.create(dom.value, { - model: jsonModel, + model: _model, tabSize: 2, automaticLayout: true, scrollBeyondLastLine: false, diff --git a/src/components/PermissionButton/index.vue b/src/components/PermissionButton/index.vue index ee9af547..965c4c19 100644 --- a/src/components/PermissionButton/index.vue +++ b/src/components/PermissionButton/index.vue @@ -1,17 +1,17 @@