diff --git a/public/images/device/device-type-3.png b/public/images/device/device-type-3.png new file mode 100644 index 00000000..3561237e Binary files /dev/null and b/public/images/device/device-type-3.png differ diff --git a/src/api/device/category.ts b/src/api/device/category.ts index d18e3587..53c93ec4 100644 --- a/src/api/device/category.ts +++ b/src/api/device/category.ts @@ -16,7 +16,7 @@ export const queryTree = (params?: Record) => server.post server.put(`/device/category/${id}`, data) + export const updateTree = (id:string,data: any,) => server.put(`/device/category/${id}`, data) /** * 根据Id删除数据 diff --git a/src/api/device/product.ts b/src/api/device/product.ts index 11c70020..6ae11030 100644 --- a/src/api/device/product.ts +++ b/src/api/device/product.ts @@ -1,5 +1,5 @@ import server from '@/utils/request' -import { DeviceMetadata, ProductItem } from '@/views/device/Product/typings' +import { DeviceMetadata, ProductItem, DepartmentItem } from '@/views/device/Product/typings' /** * 根据条件查询产品(不带翻页) @@ -40,13 +40,78 @@ export const detail = (id: string) => server.get(`/device-product/$ /** * 产品分类 - * @param data + * @param data 查询条件 */ export const category = (data: any) => server.post('/device/category/_tree', data) +/** + * 获取网关类型 + */ + export const getProviders = () => server.get('/gateway/device/providers') + + /** + * 查询所属部门 + * @param params 查询条件 + */ + export const queryOrgThree = (params?: Record) => server.post('/organization/_all/tree', params) + + /** + * 获取接入方式 + * @param data 查询条件 + */ + export const queryGatewayList = (data: any) => server.post('/gateway/device/_query/no-paging', data) + + /** + * 查询产品列表(分页) + * @param data 查询条件 + */ + export const queryProductList = (data: any) => server.post('/device-product/_query', data) + + /** + * 启用产品 + * @param productId 产品ID + * @param data + * @returns + */ +export const _deploy = (productId: string) => server.post(`/device-product/${productId}/deploy`) + +/** + * 禁用产品 + * @param productId 产品ID + * @param data + * @returns + */ +export const _undeploy = (productId: string) => server.post(`/device-product/${productId}/undeploy`) + +/** + * 新增产品 + * @param data + * @returns + */ +export const addProduct = (data:any) => server.post('/device-product',data) + +/** + * 修改产品 + * @param id 产品ID + * @param data + * @returns + */ +export const editProduct = (data: any) => server.patch('/device-product', data) + +/** + * 删除产品 + * @param id 产品ID + */ +export const deleteProduct = (id: string) => server.patch(`/device-product/${id}`) + +/** + * 检测产品Id唯一性 + * @param id 产品ID + */ + export const queryProductId = (id: string) => server.post(`/device-product/${id}/exists`) /** * 保存产品 * @param data 产品信息 * @returns */ -export const saveProductMetadata = (data: Record) => server.patch('/device-product', data) \ No newline at end of file +export const saveProductMetadata = (data: Record) => server.patch('/device-product', data) diff --git a/src/components/Layout/BasicLayout.tsx b/src/components/Layout/BasicLayout.tsx index d091510a..18cfcdf2 100644 --- a/src/components/Layout/BasicLayout.tsx +++ b/src/components/Layout/BasicLayout.tsx @@ -7,21 +7,16 @@ import { provide } from 'vue' -import type { DefineComponent, ExtractPropTypes, PropType, CSSProperties, Plugin, App } from 'vue' +import type { ExtractPropTypes, PropType, CSSProperties} from 'vue' import { Layout } from 'ant-design-vue' -import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject' -import { defaultSettingProps, defaultSettings } from './defaultSetting' -import type { PureSettings } from './defaultSetting' +import { defaultSettingProps } from './defaultSetting' import type { BreadcrumbProps, RouteContextProps } from './RouteContext' import type { BreadcrumbRender, CollapsedButtonRender, CustomRender, - FooterRender, - HeaderContentRender, HeaderRender, MenuContentRender, MenuExtraRender, - MenuFooterRender, MenuHeaderRender, MenuItemRender, RightContentRender, diff --git a/src/components/Layout/components/Header/Header.tsx b/src/components/Layout/components/Header/Header.tsx index f3ff3654..8d7de6d7 100644 --- a/src/components/Layout/components/Header/Header.tsx +++ b/src/components/Layout/components/Header/Header.tsx @@ -8,7 +8,6 @@ import { defaultSettingProps } from 'components/Layout/defaultSetting' import PropTypes from 'ant-design-vue/es/_util/vue-types' import { CustomRender, MenuDataItem, ProProps, RightContentRender, WithFalse } from 'components/Layout/typings' import './index.less' -import { omit } from 'lodash-es' import { RouteRecordRaw } from 'vue-router' import { clearMenuItem } from 'components/Layout/utils' diff --git a/src/components/Layout/components/Header/index.tsx b/src/components/Layout/components/Header/index.tsx index ad2a8461..c4bfc014 100644 --- a/src/components/Layout/components/Header/index.tsx +++ b/src/components/Layout/components/Header/index.tsx @@ -1,13 +1,8 @@ -import type { ExtractPropTypes, PropType } from 'vue' -import PropTypes from 'ant-design-vue/es/_util/vue-types'; -import type { MenuDataItem, WithFalse, ProProps, CustomRender, RightContentRender } from '../../typings' -import { siderMenuProps } from '../SiderMenu/SiderMenu' -import { defaultSettingProps } from 'components/Layout/defaultSetting' +import type { ExtractPropTypes } from 'vue' import Header, { headerProps } from './Header' import { useRouteContext } from 'components/Layout/RouteContext' import type { RouteRecordRaw } from 'vue-router' import { clearMenuItem } from 'components/Layout/utils' -import DefaultSetting from '../../../../../config/config' import { Layout } from 'ant-design-vue' export const headerViewProps = { diff --git a/src/components/Layout/components/PageContainer/index.tsx b/src/components/Layout/components/PageContainer/index.tsx index e2763276..6ae909b1 100644 --- a/src/components/Layout/components/PageContainer/index.tsx +++ b/src/components/Layout/components/PageContainer/index.tsx @@ -195,6 +195,7 @@ const PageContainer = defineComponent({ const extra = getSlotVNode(slots, props, 'extra'); const extraContent = getSlotVNode(slots, props, 'extraContent'); const subTitle = getSlotVNode(slots, props, 'subTitle'); + const title = getSlotVNode(slots, props, 'title'); // @ts-ignore return ( @@ -202,6 +203,7 @@ const PageContainer = defineComponent({ {...props} prefixCls={undefined} ghost={ghost.value} + title={title} subTitle={subTitle} content={headerContent} // tags={tags} diff --git a/src/components/Layout/components/SiderMenu/SiderMenu.tsx b/src/components/Layout/components/SiderMenu/SiderMenu.tsx index 29587b4a..89496a93 100644 --- a/src/components/Layout/components/SiderMenu/SiderMenu.tsx +++ b/src/components/Layout/components/SiderMenu/SiderMenu.tsx @@ -18,10 +18,6 @@ import './SiderMenu.less' import { computed } from 'vue' import { omit } from 'lodash-es' -export type PrivateSiderMenuProps = { - matchMenuKeys?: string[]; -} - const { Sider } = Layout export const defaultRenderLogo = (logo?: CustomRender, logoStyle?: CSSProperties): CustomRender => { @@ -89,7 +85,6 @@ const SiderMenu: FunctionalComponent = (props, { slots, emit}) = const { collapsed, collapsedWidth = 48, - menuExtraRender = false, menuContentRender = false, collapsedButtonRender = defaultRenderCollapsedButton, } = props; @@ -97,7 +92,6 @@ const SiderMenu: FunctionalComponent = (props, { slots, emit}) = const context = useRouteContext(); const sSideWidth = computed(() => (props.collapsed ? props.collapsedWidth : props.siderWidth)); - const extraDom = menuExtraRender && menuExtraRender(props); const handleSelect = ($event: string[]) => { if (props.onSelect) { diff --git a/src/components/PermissionButton/index.vue b/src/components/PermissionButton/index.vue index 735fbf69..9ec5b437 100644 --- a/src/components/PermissionButton/index.vue +++ b/src/components/PermissionButton/index.vue @@ -4,14 +4,14 @@ - + - +