¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åè®¾å¤æ¥å |
| | | */ |
| | | export const GetRunReportRelatedUrl = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Logic/GetRunReportRelatedUrl@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è·åè®¾å¤æ¥å |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getRunReportRelatedUrl = async (params, req: any = request) => { |
| | | const res = await GetRunReportRelatedUrl(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = res.Data as any; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åè®¾å¤æ¥å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return null; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åè®¾å¤ææ³µç«ï¼å·¥èºå¾å
³èï¼ |
| | | */ |
| | | export const GetAssetsOrgFullLogicalTreeListStd = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Org/Logic/GetFullLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è·åè®¾å¤ææ³µç«ï¼å·¥èºå¾å
³èï¼ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getAssetsOrgFullLogicalTreeListStd = async (req: any = request) => { |
| | | const res = await GetAssetsOrgFullLogicalTreeListStd(req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as any[]; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å设å¤ç®å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary GetAssetsEquipmentPhartMappingByEquipmentID |
| | | */ |
| | | export const GetAssetsEquipmentPhartMappingByEquipmentID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/GetByEquipmentID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åææè®¾å¤å¾è¡¨æ å° |
| | | */ |
| | | export const GetAllAssetsEquipmentPhartMapping = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè®¾å¤å¾è¡¨æ å° |
| | | */ |
| | | export const InsertAAssetsEquipmentPhartMapping = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè®¾å¤å¾è¡¨æ å° |
| | | */ |
| | | export const UpdateAAssetsEquipmentPhartMapping = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹è®¾å¤å¾è¡¨æ å°æåºç |
| | | */ |
| | | export const UpdateAssetsEquipmentPhartMappingSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªè®¾å¤å¾è¡¨æ å° |
| | | */ |
| | | export const DeleteAAssetsEquipmentPhartMapping = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | export type EquipmentPhartMapping = { |
| | | ID: string; |
| | | EquipmentID: string; |
| | | DiagramID: string; |
| | | OtherName: string; |
| | | Importance: number; |
| | | SortCode: number; |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import type { AxiosInstance } from 'axios'; |
| | | import type { FeatType } from '/@/projectCom/assets/equipment/pchart/types'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary GetAssetsEquipmentPhartMappingExtensionsByEquipmentID |
| | | */ |
| | | export const GetAssetsEquipmentPhartMappingExtensionsByEquipmentID = (params, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Extensions/GetByEquipmentID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè®¾å¤å¾è¡¨æ å°(extensions) |
| | | */ |
| | | export const InsertAAssetsEquipmentPhartMappingExtensions = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Extensions/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè®¾å¤å¾è¡¨æ å°(extensions) |
| | | */ |
| | | export const UpdateAAssetsEquipmentPhartMappingExtensions = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Extensions/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªè®¾å¤å¾è¡¨æ å°(extensions) |
| | | */ |
| | | export const DeleteAAssetsEquipmentPhartMappingExtensions = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Phart/Mapping/Extensions/DeleteByDiagramID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | export interface ChartGraph { |
| | | ID: string; |
| | | DiagramID: string; |
| | | Name: string; |
| | | GraphType: number; |
| | | GraphParas: { |
| | | Hz: number; |
| | | N: number; |
| | | }; |
| | | GraphInfo: string; |
| | | GeometryStyle: number; |
| | | GeometryParas: { |
| | | FeatType: FeatType; |
| | | }; |
| | | GeometryInfo: string; |
| | | DispParas: string; |
| | | ExtraParas: string; |
| | | Paras?: Record<string, unknown>; |
| | | Flags: Record<string, unknown>[]; |
| | | SortCode: number; |
| | | Description: string; |
| | | } |
| | | export type ChartGraphInsert = Omit<PhartDiagram, 'ID' | 'SortCode'>; |
| | | |
| | | export interface PhartDiagram { |
| | | ID: string; |
| | | Name: string; |
| | | NO: string; |
| | | DiagramType: number; |
| | | DiagramParas: string; |
| | | DiagramInfo: string; |
| | | DispParas: string; |
| | | ExtraParas: string; |
| | | Paras?: Record<string, unknown>; |
| | | Flags: Record<string, unknown>[]; |
| | | TagName: string; |
| | | SortCode: number; |
| | | Description: string; |
| | | GraphList: ChartGraph[]; |
| | | } |
| | | |
| | | export type PhartDiagramInsert = Omit<PhartDiagram, 'ID' | 'SortCode'> & { |
| | | GraphList: ChartGraphInsert[]; |
| | | }; |
| | | |
| | | export type EquipPhartMapping = { |
| | | ID: string; |
| | | EquipmentID: string; |
| | | DiagramID: string; |
| | | OtherName: string; |
| | | Importance: number; |
| | | SortCode: number; |
| | | Diagram: PhartDiagram; |
| | | }; |
| | | |
| | | export type EquipPhartMappingInsert = Omit<EquipPhartMapping, 'ID' | 'SortCode'> & { |
| | | Diagram: PhartDiagramInsert; |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary éè¿IDè·åè®¾å¤ |
| | | */ |
| | | export const GetEquipmentByID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/GetByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary éè¿æ³µç« ID, è·åææè®¾å¤ç®å½ |
| | | */ |
| | | export const GetAllEquipmentDirectoryByID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/GetByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè®¾å¤ç®å½ |
| | | */ |
| | | export const InsertAEquipmentDirectory = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè®¾å¤ç®å½è®°å½ |
| | | */ |
| | | export const UpdateAEquipmentDirectory = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡è®¾å¤ç®å½è®°å½ |
| | | */ |
| | | export const DeleteAEquipmentDirectory = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹è®¾å¤ç®å½è¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdateEquipmentDirectorySorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²åå¨ç¼ç |
| | | */ |
| | | export const GetIsExistEquipmentDirectoryTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ç®å½ IDï¼è·åç®å½å
容 |
| | | */ |
| | | export const GetContentByDirectoryID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/Content/GetByDirectoryID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿å设置çç®å½å
容 |
| | | */ |
| | | export const SaveDirectoryContent = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Directory/Content/Save@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | //#region ====================== 设å¤ç»æ¥å£ ====================== |
| | | /** |
| | | * @summary è·åææè®¾å¤ç» |
| | | */ |
| | | export const GetAllEquipmentGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/GetByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè®¾å¤ç» |
| | | */ |
| | | export const InsertAEquipmentGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè®¾å¤ç»è®°å½ |
| | | */ |
| | | export const UpdateAEquipmentGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡è®¾å¤ç»è®°å½ |
| | | */ |
| | | export const DeleteAEquipmentGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹è®¾å¤ç»è¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdateEquipmentGroupSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * @summary æ´æ°æ æåºç ï¼æ´æ¹ç¶çº§ï¼ |
| | | */ |
| | | export const UpdateEquipmentGroupTreeSortCode = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/UpdateTreeSortCode@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²å卿 è®° |
| | | */ |
| | | export const GetIsExistEquipmentGroupTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | //#endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·å设å¤ç»æ ç»ææ°æ® |
| | | */ |
| | | export const GetEquipmentGroupTreeDataStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Group/Std/GetTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿å设å¤ç»æ ç»ææ°æ® |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getEquipmentGroupTreeDataStd = async (params, req: any = request) => { |
| | | const res = await GetEquipmentGroupTreeDataStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å设å¤å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | //#region ====================== è®¾å¤æ¥å£ ====================== |
| | | /** |
| | | * @summary è·åææè®¾å¤ |
| | | */ |
| | | export const GetAllEquipment = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Extensions/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè®¾å¤ |
| | | */ |
| | | export const InsertAEquipment = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Extensions/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè®¾å¤è®°å½ |
| | | */ |
| | | export const UpdateAEquipment = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Extensions/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡è®¾å¤è®°å½ |
| | | */ |
| | | export const DeleteAEquipment = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Extensions/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹è®¾å¤è¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdateEquipmentSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ æåºç ï¼æ´æ¹ç¶çº§ï¼ |
| | | */ |
| | | export const UpdateEquipmentTreeSortCode = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/UpdateTreeSortCode@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²å卿 è®° |
| | | */ |
| | | export const GetIsExistEquipmentTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°è®¾å¤ä½¿ç¨ç¶æ |
| | | */ |
| | | export const UpdateEquipmentUseStatus = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ catalogID è·å屿§ |
| | | */ |
| | | export const GetPropertyByCatalogID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Basic/Sys/Prop/Struct/GetByCatalogID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ç¶çº§åç±» IDï¼è·åå½åå¯éåç±»ï¼å餿ä¸å±åç±»ï¼ |
| | | */ |
| | | export const GetAuthorityCatalogByCatalogID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Basic/Sys/Catalog/Authority/GetByParentID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ equipmentID è·åæ å°æµç¹ |
| | | */ |
| | | export const GetMonitorPointByEquipmentID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Monitor/Mapping/GetByEquipmentID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è®¾ç½®è®¾å¤æ å°çæµç¹ |
| | | */ |
| | | export const SetEquipmentMapMonitorPoint = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Monitor/Mapping/Set@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | //#endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åæºç» |
| | | */ |
| | | export const GetByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/EnginePump/Logic/GetByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åCatalog è¿æ»¤è·åæºç» |
| | | */ |
| | | export const GetCatalogTreeListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetCatalogTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary è·åè®¾å¤æ ç»ææ°æ® |
| | | */ |
| | | export const GetEquipmentTreeDataStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åè®¾å¤æ ç»ææ°æ® |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getEquipmentTreeDataStd = async (params, req: any = request) => { |
| | | const res = await GetEquipmentTreeDataStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å设å¤å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åææè®¾å¤ï¼éæ ç»æï¼ |
| | | */ |
| | | export const GetEquipmentListStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetTreeItemListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åææè®¾å¤ï¼éæ ç»æï¼ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getEquipmentListStd = async (params, req: any = request) => { |
| | | const res = await GetEquipmentListStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åææè®¾å¤å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åè®¾å¤æ ï¼éè¿ GroupID |
| | | */ |
| | | export const GetEquipmentTreeDataByGroupIDStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetTreeListByGroupID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åè®¾å¤æ ï¼éè¿ GroupID |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getEquipmentTreeDataByGroupIDStd = async (params, req: any = request) => { |
| | | const res = await GetEquipmentTreeDataByGroupIDStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åè®¾å¤æ 失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åè®¾å¤ |
| | | */ |
| | | export const GetMainTreeListByBelongTypeAndBelongIDStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetMainTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿å设å¤ï¼è¿æ»¤æ CatalogID 为 '0'ï¼çæ
åµ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getMainTreeListByBelongTypeAndBelongIDStd = async (params, req: any = request) => { |
| | | const res = await GetMainTreeListByBelongTypeAndBelongIDStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å设å¤å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿belongTypeï¼belongID å åç±»ç¼ç è·åè®¾å¤ |
| | | */ |
| | | export const GetCatalogTreeItemListByBelongTypeAndBelongIDStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Equipment/Std/GetCatalogListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼éè¿belongTypeï¼belongID å åç±»ç¼ç è·åè®¾å¤ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getCatalogTreeItemListByBelongTypeAndBelongIDStd = async (params, req: any = request) => { |
| | | const res = await GetCatalogTreeItemListByBelongTypeAndBelongIDStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å设å¤å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | export interface MainEquipTree { |
| | | ID: string; |
| | | ParentID: string; |
| | | GroupID: string; |
| | | Name: string; |
| | | NO: string; |
| | | CatalogID: string; |
| | | ModelType: string; |
| | | Specification: string; |
| | | SupplierID: string; |
| | | Paras?: Record<string, unknown>; |
| | | Flags: string[]; |
| | | TagName: string; |
| | | SortCode: number; |
| | | Description: string; |
| | | Children: MainEquipTree[]; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åææåå |
| | | */ |
| | | export const GetAllSupplier = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/GetAll@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªåå |
| | | */ |
| | | export const InsertASupplier = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªååè®°å½ |
| | | */ |
| | | export const UpdateASupplier = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡ååè®°å½ |
| | | */ |
| | | export const DeleteASupplier = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ååè¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdateSupplierSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²å卿 ç¾åç§° |
| | | */ |
| | | export const GetIsExistTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°ååç使ç¨ç¶æ |
| | | */ |
| | | export const UpdateSupplierUseStatus = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åååéæ©å表 |
| | | */ |
| | | export const GetSupplierSelectListStd = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Assets/Supplier/Std/GetSelectList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è¿åååå表 |
| | | * @returns |
| | | */ |
| | | export const getSupplierSelectList = async (req: any = request) => { |
| | | const res = await GetSupplierSelectListStd(req); |
| | | |
| | | if (res?.Code === 0) { |
| | | return res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·åååå表失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åææçæµç¨éæä½ |
| | | */ |
| | | export const GetAllMonitorDiluteOpsLevel = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const InsertAMonitorDiluteOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const UpdateAMonitorDiluteOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹çæµç¨éæä½æåºç |
| | | */ |
| | | export const UpdateMonitorDiluteOpsLevelSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const DeleteAMonitorDiluteOpsLevel = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * |
| | | * @summary 设置 â
æ´æ°æ¹æ³çç¶æ |
| | | */ |
| | | export async function UpdateUseStatus(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Dilute/Ops/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åæææ°æ®å¯¹æ¥é
ç½® |
| | | */ |
| | | export const GetAllMonitorDataDockingConfigure = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªæ°æ®å¯¹æ¥é
ç½® |
| | | */ |
| | | export const InsertAMonitorDataDockingConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªæ°æ®å¯¹æ¥é
ç½® |
| | | */ |
| | | export const UpdateAMonitorDataDockingConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹æ°æ®å¯¹æ¥é
ç½®æåºç |
| | | */ |
| | | export const UpdateMonitorDataDockingConfigureSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ°æ®å¯¹æ¥é
置使ç¨ç¶æ |
| | | */ |
| | | export const UpdateMonitorDataDockingConfigureUseStatus = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/UpdateUseStatus@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²å卿 è®° |
| | | */ |
| | | export const GetIsExistMonitorDataDockingConfigureTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/IsExistTagName@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªæ°æ®å¯¹æ¥é
ç½® |
| | | */ |
| | | export const DeleteAMonitorDataDockingConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ ID è·åæ°æ®å¯¹æ¥é
ç½® |
| | | */ |
| | | export const GetMonitorDataDockingConfigureByID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/GetByID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ ConfigureID è·å对æ¥é
置项 |
| | | */ |
| | | export const GetDataDockingConfigureItemExtensionsByConfigureID = async (params,req:any=request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Configure/Item/Extensions/GetByConfigureID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary GetMonitorDataDockingInterruptAlarmConfigureByDataDockingID |
| | | */ |
| | | export const GetMonitorDataDockingInterruptAlarmConfigureByDataDockingID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/GetByDataDockingID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åæææ°æ®å¯¹æ¥ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const GetAllMonitorDataDockingInterruptAlarmConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/GetByDataDockingID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªæ°æ®å¯¹æ¥ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const InsertAMonitorDataDockingInterruptAlarmConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªæ°æ®å¯¹æ¥ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const UpdateAMonitorDataDockingInterruptAlarmConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹æ°æ®å¯¹æ¥ä¸ææ¥è¦é
ç½®æåºç |
| | | */ |
| | | export const UpdateMonitorDataDockingInterruptAlarmConfigureSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ°æ®å¯¹æ¥ä¸ææ¥è¦é
置使ç¨ç¶æ |
| | | */ |
| | | export const UpdateMonitorDataDockingInterruptAlarmConfigureUseStatus = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/UpdateUseStatus@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªæ°æ®å¯¹æ¥ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const DeleteAMonitorDataDockingInterruptAlarmConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Configure/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åææçæµå é¤æä½ |
| | | */ |
| | | export const GetAllMonitorDeleteOpsLevel = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªçæµå é¤æä½ |
| | | */ |
| | | export const InsertAMonitorDeleteOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªçæµå é¤æä½ |
| | | */ |
| | | export const UpdateAMonitorDeleteOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹çæµå 餿使åºç |
| | | */ |
| | | export const UpdateMonitorDeleteOpsLevelSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªçæµå é¤æä½ |
| | | */ |
| | | export const DeleteAMonitorDeleteOpsLevel = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * |
| | | * @summary 设置 â
æ´æ°æ¹æ³çç¶æ |
| | | */ |
| | | export async function UpdateUseStatus(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Delete/Ops/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åææçæµç¨éæä½ |
| | | */ |
| | | export const GetAllMonitorTransferOpsLevel = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const InsertAMonitorTransferOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const UpdateAMonitorTransferOpsLevel = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹çæµç¨éæä½æåºç |
| | | */ |
| | | export const UpdateMonitorTransferOpsLevelSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªçæµç¨éæä½ |
| | | */ |
| | | export const DeleteAMonitorTransferOpsLevel = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * |
| | | * @summary 设置 â
æ´æ°æ¹æ³çç¶æ |
| | | */ |
| | | export async function UpdateUseStatus(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Transfer/Ops/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åä¿¡å·ç» |
| | | */ |
| | | export const GetSimpleLogicalTreeListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetSimpleLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ä¿¡å·IDè·åæ¥æåºé´çæ°æ®å¼ |
| | | */ |
| | | export const GetBySignalIDOfDayRange = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Day/Std/GetBySignalIDOfDayRange@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ä¿¡å·IDè·åæ¶çæ°æ®å¼ |
| | | */ |
| | | export const GetBySignalIDOfDay = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Hour/Std/GetBySignalIDOfDay@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary æ ¹æ®æµç¹ç»çIDè·åä¿¡å·å表 |
| | | */ |
| | | export const GetByGroupID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Input/Online/Logic/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary å¤ä¸ªä¿¡å·çæå¨è¾å
¥å¼ |
| | | */ |
| | | export const InputsLastRecord = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Input/Online/Logic/InputsLastRecord@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary GetMonitorInterruptAlarmConfigureByMonitorPointID |
| | | */ |
| | | export const GetMonitorInterruptAlarmConfigureByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/GetByMonitorPointID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åæææµç¹ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const GetAllMonitorInterruptAlarmConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/GetByMonitorPointID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªæµç¹ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const InsertAMonitorInterruptAlarmConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªæµç¹ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const UpdateAMonitorInterruptAlarmConfigure = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹æµç¹ä¸ææ¥è¦é
ç½®æåºç |
| | | */ |
| | | export const UpdateMonitorInterruptAlarmConfigureSorter = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/UpdateSorter@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹ä¸ææ¥è¦é
置使ç¨ç¶æ |
| | | */ |
| | | export const UpdateMonitorInterruptAlarmConfigureUseStatus = async (data, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/UpdateUseStatus@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªæµç¹ä¸ææ¥è¦é
ç½® |
| | | */ |
| | | export const DeleteAMonitorInterruptAlarmConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Interrupt/Alarm/Configure/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åæµç¹å表 |
| | | */ |
| | | export const GetByGroupID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Last/List/Logic/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å·æ°ä¸æ¡æµç¹åè¡¨æ°æ® |
| | | */ |
| | | export const GetLastRecord = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Last/List/Logic/GetLastRecord@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ£å¾æ°æ® |
| | | */ |
| | | export const GetByBarGroupID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Bar/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å·æ°æ£å¾æ°æ® |
| | | */ |
| | | export const GetBarLastRecord = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Bar/GetLastRecord@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åformatç±»å |
| | | */ |
| | | export const GetDisplayParasByID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Signal/Std/GetDisplayParasByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ ¹æ®ä¿¡å·IDè·åå¾è¡¨æ°æ®(æææ¬åå
¶ä»å¾è¡¨) |
| | | */ |
| | | export const GetBySignalIDOfDay = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Std/GetBySignalIDOfDay@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ ¹æ®ä¿¡å·IDè·åå¾è¡¨æ°æ® (åªæå¾è¡¨) |
| | | */ |
| | | export const GetBySignalIDOfNumberDay = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Std/GetBySignalIDOfDay@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ ¹æ®ä¿¡å·ID宿¶å·æ°å¾è¡¨æ°æ® |
| | | */ |
| | | export const GetEChartLastRecord = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Std/GetLastRecord@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ ¹æ®ä¿¡å·IDè·å计éåæ° |
| | | */ |
| | | export const GetMeasureParasByID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Signal/Std/GetMeasureParasByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | //#region ====================== 左侧æ å表 ====================== |
| | | /** |
| | | * |
| | | * @summary |
| | | */ |
| | | export async function GetAll(req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/GetAll@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | } |
| | | //æå
¥ä¸æ¡ |
| | | export async function InsertGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | } |
| | | //æ´æ°ä¸æ¡ |
| | | export async function UpdateGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
| | | //å é¤ä¸æ¡ |
| | | export async function DeleteGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | } |
| | | /** |
| | | * @summary æ´æ°ç¨æ·æåºç |
| | | */ |
| | | export const UpdateUserSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * @summary æ´æ°æ æåºç ï¼æ´æ¹ç¶çº§ï¼ |
| | | */ |
| | | export const UpdateFormulaGroupTreeSortCode = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Formula/Group/UpdateTreeSortCode@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | |
| | | //æ ¹æ®ç»è·åå表 |
| | | export async function GetByGroupID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== å³ä¾§è¡¨æ ¼å表 ====================== |
| | | //æå
¥ä¸æ¡ |
| | | export async function TableInsert(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | } |
| | | |
| | | //æ´æ°ä¸æ¡ |
| | | export async function TableUpdate(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
| | | //å é¤ |
| | | export async function TableDelete(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | } |
| | | //#endregion |
| | | |
| | | /** |
| | | * @summary æ¯å¦å·²åå¨å½åç¼ç |
| | | */ |
| | | export const GetIsExistFormulaCode = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Formula/IsExistCode@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°å
¬å¼æåºç |
| | | */ |
| | | export const UpdateFormulaSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Formula/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åææä¿¡å·æ ï¼å·¥èºå¾ç»å¶å·¦ä¾§æ ï¼ |
| | | */ |
| | | export const GetFullLogicalTreeList = async (req = request) => { |
| | | return req({ |
| | | url: '/Monitor/Org/Logic/GetFullLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary æå
¥ä¸ä¸ªçæµç¹ï¼æ©å±ï¼ |
| | | */ |
| | | export const InsertMonitorPointExtensions = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æå
¥å¤ä¸ªçæµç¹ï¼æ©å± |
| | | */ |
| | | export const InsertBulkMonitorPointExtensions = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/Inserts@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ä¸ç» id è·åæµç¹ï¼æå±ï¼ |
| | | */ |
| | | export const GetPointExtensionByIds = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/GetByIds@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿BelongTypeåBelongID è·åæææµç¹ |
| | | */ |
| | | export const GetPointExtensionsByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/GetByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary æå
¥ä¸æ¡ä¿¡å·æ¨¡æ¿ï¼æ©å±ï¼ |
| | | */ |
| | | export const InsertAMonitorPointTemplate = async (params) => { |
| | | return request({ |
| | | url: "/Monitor/Point/Template/Extensions/Insert@V1.0", |
| | | method: "POST", |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åçæµç¹æ¨¡æ¿ |
| | | */ |
| | | export const GetMonitorPointTemplateSelectListStd = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/Std/GetSelectList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åçæµç¹æ¨¡æ¿ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getMonitorPointTemplateSelectListStd = async (req: any = request) => { |
| | | const res = await GetMonitorPointTemplateSelectListStd(req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åçæµç¹æ¨¡æ¿å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åæè¿ä¸æ¡è®°å½ |
| | | */ |
| | | export const GetLastRecord = async (params, req = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Std/GetLastRecord@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åæè¿ä¸ä¸ªæµç¹çè®°å½ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getLastRecordStd = async (params, req: any = request) => { |
| | | const res = await GetLastRecord(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = res.Data as any; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åæµç¹è®°å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åæè¿çå¤ä¸ªæµç¹çè®°å½ |
| | | */ |
| | | export const GetLastRecordListStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Std/GetLastRecordList@V2.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åæè¿çå¤ä¸ªæµç¹çè®°å½ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getLastRecordListStd = async (params, req: any = request) => { |
| | | const res = await GetLastRecordListStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as any[]; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åæµç¹è®°å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary çæµå¼æè¿æ¥è¦å æ¡è®°å½ |
| | | */ |
| | | export const GetLastList = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Value/Alarm/Record/Std/GetLastList@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * @summary çæµå¼æ¥è¦è®°å½ |
| | | */ |
| | | export const GetPageListByGroupIDContainsChildren = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Value/Alarm/Record/Std/GetPageListByGroupIDContainsChildren@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·å䏿æ¥è¦å页å表 |
| | | */ |
| | | export const GetAlarmPageList = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Interrupt/Alarm/Record/Std/GetPageListByGroupIDContainsChildren@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary è·åå¯¹æ¥æ¥è¦å表 |
| | | */ |
| | | export const GetDataDockPageList = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/DataDocking/Interrupt/Alarm/Record/Std/GetPageList@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ä¿¡å·IDè·åæåºé´çæ°æ®å¼ |
| | | */ |
| | | export const GetBySignalIDOfMonthRange = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Month/Std/GetBySignalIDOfMonthRange@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary åºé´æ¥è¯¢ æ¾ç¤ºæ ¼å¼ç±»å |
| | | */ |
| | | export const GetDisplayParasByID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetDisplayParasByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary åºé´æ¥è¯¢ ææ¶è¿æªææ¥å£ éè¦ç¨å¨EchartDataå¾è¡¨é |
| | | */ |
| | | export const GetLimitBySignalIDOfTimeRange = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Std/GetLimitBySignalIDOfTimeRange@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åæµç¹ç»å表 |
| | | */ |
| | | export const GetLogicalTreeListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary è·å设å¤å表 |
| | | */ |
| | | export const GetEquipmentLogicalTreeListByBelongTypeAndBelongID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetEquipmentLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ ¹æ®æµç¹å表æè
ä¿¡å·ä¸æéæ© |
| | | */ |
| | | export const GetSimpleSignalListByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetSimpleSignalListByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary |
| | | */ |
| | | export const GetLastRecordList = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetSimpleLastRecordBySignalIds@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ³¢å½¢å¾ |
| | | */ |
| | | export const GetLastWaveSpectrumByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLastWaveSpectrumByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary é¢è°±å¾ |
| | | */ |
| | | export const GetLastFrequencySpectrumByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLastFrequencySpectrumByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary 波形é¢è°±å¾ |
| | | */ |
| | | export const GetLastWaveAndFrequencySpectrumByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLastWaveAndFrequencySpectrumByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ
éé¢çåæ |
| | | */ |
| | | export const GetLastDegreeFrequencySpectrumByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLastDegreeFrequencySpectrumByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åé
ç½®è¡¨æ ¼ |
| | | */ |
| | | export const GetMonitorSignalDockingLogicalTreeListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetDockingLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è·åé
ç½®è¡¨æ ¼ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getMonitorSignalDockingLogicalTreeListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | const res = await GetMonitorSignalDockingLogicalTreeListByBelongTypeAndBelongID(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as any[]; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åä¿¡å·å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return []; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åæææ¥è¦é
ç½® |
| | | */ |
| | | export const GetAllSignalAlarm = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/GetBySignalID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªæ¥è¦é
ç½® |
| | | */ |
| | | export const InsertASignalAlarm = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªæ¥è¦é
ç½®è®°å½ |
| | | */ |
| | | export const UpdateASignalAlarm = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡æ¥è¦é
ç½®è®°å½ |
| | | */ |
| | | export const DeleteASignalAlarm = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹æ¥è¦é
ç½®è¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdateSignalAlarmSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ¥è¦é
置使ç¨ç¶æ |
| | | */ |
| | | export const UpdateSignalAlarmUseStatus = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Value/Alarm/Configure/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åä¿¡å·æ |
| | | */ |
| | | export const GetNumericSignalLogicalTreeStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetSimpleLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åæ°å¼åçä¿¡å·æ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getNumericSignalLogicalTreeStd = async (params, req: any = request) => { |
| | | const res = await GetNumericSignalLogicalTreeStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åä¿¡å·æ 失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åä¿¡å·æ |
| | | */ |
| | | export const GetSignalLogicalTreeStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åä¿¡å·æ ï¼å®æ´ï¼ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getSignalLogicalTreeStd = async (params, req: any = request) => { |
| | | const res = await GetSignalLogicalTreeStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åä¿¡å·æ 失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åä¿¡å·æ ï¼å¯ä»¥æå®æ ¼å¼ï¼ |
| | | */ |
| | | export const GetFormatLogicalTreeStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Std/GetFormatLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åä¿¡å·æ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getFormatLogicalTreeStd = async (params, req: any = request) => { |
| | | const res = await GetFormatLogicalTreeStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åä¿¡å·æ 失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary è·åæµç¹ç»å表 |
| | | */ |
| | | export const GetLogicalTreeListByBelongTypeAndBelongID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary è·å设å¤å表 |
| | | */ |
| | | export const GetEquipmentLogicalTreeListByBelongTypeAndBelongID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetEquipmentLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ ¹æ®æµç¹å表æè
ä¿¡å·ä¸æéæ© |
| | | */ |
| | | export const GetSimpleSignalListByMonitorPointID = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetSimpleSignalListByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary |
| | | */ |
| | | export const GetLimitBySignalIDOfTimeRange = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Std/GetLimitBySignalIDOfTimeRange@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ³¢å½¢å¾ |
| | | */ |
| | | export const GetWaveSpectrumByMonitorPointIDOfTime = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetWaveSpectrumByMonitorPointIDOfTime@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary é¢è°±å¾ |
| | | */ |
| | | export const GetFrequencySpectrumByMonitorPointIDOfTime = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetFrequencySpectrumByMonitorPointIDOfTime@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary 波形é¢è°±å¾ |
| | | */ |
| | | export const GetWaveAndFrequencySpectrumByMonitorPointIDOfTime = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetWaveAndFrequencySpectrumByMonitorPointIDOfTime@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ
éé¢çåæ |
| | | */ |
| | | export const GetDegreeFrequencySpectrumByMonitorPointIDOfTime = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Real/Vibration/Logic/GetDegreeFrequencySpectrumByMonitorPointIDOfTime@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary éè¿ä¿¡å·IDè·åæ¥æåºé´çæ°æ®å¼ |
| | | */ |
| | | export const GetBySignalIDOfYearRange = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Record/Year/Std/GetBySignalIDOfYearRange@V2.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·åæµç¹ï¼æµç¹ä¸æµç¹ç»ç»å |
| | | */ |
| | | export const GetMonitorPointStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Std/GetLogicalTreeListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è°ç¨æ¥å£ï¼è¿åæµç¹ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getMonitorPointStd = async (params, req: any = request) => { |
| | | const res = await GetMonitorPointStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·åæµç¹å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | /** |
| | | * @summary éè¿ BelongType and BelongIDè·åæµç¹ç»Std (éåºä½¿ç¨) |
| | | */ |
| | | export const GetTreeItemListByBelongTypeAndBelongID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/Std/GetTreeItemListByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | //#region ====================== è·åæµç¹ç»æ å¢å æ¹ ====================== |
| | | /** |
| | | * @summary éè¿ BelongType and BelongIDè·å |
| | | */ |
| | | export const GetAllPointGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/GetByBelongTypeAndBelongID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ æå
¥ä¸æ¡æµç¹ç» |
| | | */ |
| | | export const InsertPointGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªæµç¹ç»è®°å½ |
| | | */ |
| | | export const UpdatePointGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸æ¡æµç¹ç»è®°å½ |
| | | */ |
| | | export const DeletePointGroup = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹æµç¹ç»è¡¨æ ¼æåºç |
| | | */ |
| | | export const UpdatePointGroupSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ£æ¥æ¯å¦å·²å卿 è®° |
| | | */ |
| | | export const GetIsExistPointGroupTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== 模æ¿å¤å¶åæ·»å ====================== |
| | | /** |
| | | * @summary è·åçæµéæ©å表 |
| | | */ |
| | | export const GetSelectList = async (req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/Std/GetSelectList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | }; |
| | | export const InsertExtensions = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ´æ°æµç¹ä½¿ç¨ç¶æ |
| | | */ |
| | | export const UpdatePointUseStatus = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary éè¿ ID è·åæµç¹ä¿¡æ¯ |
| | | */ |
| | | export const GetByIDAllInfo = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Extensions/GetByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== æµç¹æ·»å ====================== |
| | | /** |
| | | * @summary éè¿ ID è·å模æ¿å表 |
| | | */ |
| | | export const GetByIDList = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/GetByGroupID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æå
¥ä¸æ¡ |
| | | */ |
| | | export const InsertMonitorPoint = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ¨¡æ¿ |
| | | */ |
| | | export const UpdateMonitorPoint = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary æ´æ°æ¨¡æ¿TagNameæ¯å¦åå¨ |
| | | */ |
| | | export const UpdatePointTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary å 餿¨¡æ¿ |
| | | */ |
| | | export const DeleteByIDTemplate = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== ä¿¡å·æ·»å ====================== |
| | | /** |
| | | * @summary éè¿ æµç¹ID è·åä¿¡å·å表 |
| | | */ |
| | | |
| | | export const GetByMonitorPointID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/GetByMonitorPointID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æå
¥ä¸æ¡ä¿¡å· |
| | | */ |
| | | export const InsertSignal = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æå
¥å¤æ¡ä¿¡å· |
| | | */ |
| | | export const InsertSignals = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Inserts@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ids è·åä¿¡å· |
| | | */ |
| | | export const GetMonitorSignalByIds = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/GetByIds@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°ä¿¡å· |
| | | */ |
| | | |
| | | export const UpdateSignal = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿¡å·çæ è®°åç§°æ¯å¦åå¨ |
| | | */ |
| | | export const GetIsExistSignalTagName = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/IsExistTagName@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | /** |
| | | * @summary å é¤ä¿¡å· |
| | | */ |
| | | export const DeleteByIDSignal = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | }; |
| | | //è·åä¿¡å·ç±»å |
| | | export async function GetLogicalTreeList(req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Type/Std/GetLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | } |
| | | //è·åæ£æµå
¬å¼ |
| | | export async function GetSupportLogicalTreeList(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Std/GetSupportLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //#endregion |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹ flags |
| | | */ |
| | | export const UpdateMonitorPointFlags = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/UpdateFlags@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹æåºç |
| | | */ |
| | | export const UpdateMonitorPointSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°ä¿¡å·æåºç |
| | | */ |
| | | export const UpdateSignalSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿æµç¹ id è·åæµç¹ |
| | | */ |
| | | export const GetMonitorPointByID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/GetByID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary éè¿ä¸ç»æµç¹ id è·åæµç¹ |
| | | */ |
| | | export const GetMonitorPointByIds = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/GetByIds@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æ æåºç |
| | | */ |
| | | export const UpdatePointGroupTreeSortCode = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Group/UpdateTreeSortCode@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹æå±åç» |
| | | */ |
| | | export const UpdatePointGroupID = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/UpdateGroupID@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | //#region ====================== æ¯è¡¨æ ¼å表 ====================== |
| | | /** |
| | | * |
| | | * @summary |
| | | */ |
| | | export async function GetAll(req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/GetAll@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | } |
| | | //æå
¥ä¸æ¡ |
| | | export async function InsertGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | } |
| | | //æ´æ°ä¸æ¡ |
| | | export async function UpdateGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
| | | //å é¤ä¸æ¡ |
| | | export async function DeleteGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | } |
| | | /** |
| | | * @summary æ´æ°ç¨æ·æåºç |
| | | */ |
| | | export const UpdateUserSorter = async (params) => { |
| | | return request({ |
| | | url: '/Monitor/Point/Template/UpdateSortCode@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | //æ ¹æ®æµç¹IDè·åç¸åºçå表 |
| | | export async function GetByGroupID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/GetByTemplateID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //è·åç³»ç»æ ç¾ |
| | | export async function GetBySysType(params, req: any = request) { |
| | | return req({ |
| | | url: '/Basic/Sys/Flag/Std/GetFlagListBySysType@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹æ¨¡æ¿ä½¿ç¨ç¶æ |
| | | */ |
| | | export const UpdateMonitorPointTemplateUseStatus = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/UpdateUseStatus@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ´æ°æµç¹æ¨¡æ¿ sorter |
| | | */ |
| | | export const UpdatePointTemplateSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Point/Template/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | //#endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '/@/utils/request'; |
| | | //#region ======================ä¿¡å·è¡¨æ ¼å表 ====================== |
| | | /** |
| | | * |
| | | * @summary |
| | | */ |
| | | export async function GetAll(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/GetByTemplateID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //æå
¥ä¸æ¡ |
| | | export async function InsertGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/Insert@V1.0', |
| | | method: 'POST', |
| | | data: params, |
| | | }); |
| | | } |
| | | //æ´æ°ä¸æ¡ |
| | | export async function UpdateGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/Update@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | } |
| | | //å é¤ä¸æ¡ |
| | | export async function DeleteGetByID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/DeleteByID@V1.0', |
| | | method: 'DELETE', |
| | | params: params, |
| | | }); |
| | | } |
| | | /** |
| | | * @summary æ´æ°ç¨æ·æåºç |
| | | */ |
| | | export const UpdateUserSorter = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/UpdateSorter@V1.0', |
| | | method: 'PUT', |
| | | data: params, |
| | | }); |
| | | }; |
| | | //è·åä¿¡å·ç±»å |
| | | export async function GetLogicalTreeList(req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Type/Std/GetLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | }); |
| | | } |
| | | //æ ¹æ®æµç¹IDè·åç¸åºçå表 |
| | | export async function GetByGroupID(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Signal/Template/GetByTemplateID@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //è·åç³»ç»æ ç¾ |
| | | export async function GetBySysType(params, req: any = request) { |
| | | return req({ |
| | | url: '/Basic/Sys/Flag/Std/GetFlagListBySysType@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //è·åæ£æµå
¬å¼ |
| | | export async function GetSupportLogicalTreeList(params, req: any = request) { |
| | | return req({ |
| | | url: '/Monitor/Formula/Std/GetSupportLogicalTreeList@V1.0', |
| | | method: 'GET', |
| | | params: params, |
| | | }); |
| | | } |
| | | //#endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import type { AxiosInstance } from 'axios'; |
| | | import request from '/@/utils/request'; |
| | | export type RunAnalyConfigureGetAllResItem = { |
| | | ID: string; |
| | | ObjectType: string; |
| | | ObjectID: string; |
| | | Frequency: number; |
| | | ChangeTimes: number; |
| | | Description: string; |
| | | }; |
| | | |
| | | export type RunAnalyConfigurePostParams = { |
| | | ObjectType: string; |
| | | ObjectID: string; |
| | | Frequency: number; |
| | | ChangeTimes: number; |
| | | Description?: string; |
| | | }; |
| | | |
| | | export type RunAnalyConfigurePutParams = { |
| | | ID: string; |
| | | Frequency: number; |
| | | ChangeTimes: number; |
| | | Description?: string; |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·åææè¿è¡åæé
ç½® |
| | | */ |
| | | export const GetAllRunAnalyConfigure = async (req: AxiosInstance = request) => { |
| | | return req<RunAnalyConfigureGetAllResItem[]>({ |
| | | url: '/Run/Analy/Configure/GetAll@V1.0', |
| | | method: 'get', |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary GetRunAnalyConfigureByObjectTypeAndObjectID |
| | | */ |
| | | export const GetRunAnalyConfigureByObjectTypeAndObjectID = async (params, req: AxiosInstance = request) => { |
| | | return req<RunAnalyConfigureGetAllResItem[]>({ |
| | | url: '/Run/Analy/Configure/GetByObjectTypeAndObjectID@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary æ·»å ä¸ä¸ªè¿è¡åæé
ç½® |
| | | */ |
| | | export const InsertARunAnalyConfigure = async (data: RunAnalyConfigurePostParams, req: any = request) => { |
| | | return req({ |
| | | url: '/Run/Analy/Configure/Insert@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary ä¿®æ¹ä¸ä¸ªè¿è¡åæé
ç½® |
| | | */ |
| | | export const UpdateARunAnalyConfigure = async (data: RunAnalyConfigurePutParams, req: any = request) => { |
| | | return req({ |
| | | url: '/Run/Analy/Configure/Update@V1.0', |
| | | method: 'put', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary SetRunAnalyConfigure |
| | | */ |
| | | export const SetRunAnalyConfigure = async (data, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Run/Analy/Configure/Set@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary å é¤ä¸ä¸ªè¿è¡åæé
ç½® |
| | | */ |
| | | export const DeleteARunAnalyConfigure = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Run/Analy/Configure/DeleteByID@V1.0', |
| | | method: 'delete', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import type { AxiosInstance } from 'axios'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary InsertRunRealRecordInsertLastRecord@V1.0LastRecord |
| | | */ |
| | | export const InsertLastRunRealRecord = (data, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/InsertLastRecord@V1.0', |
| | | method: 'post', |
| | | data, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import type { AxiosInstance } from 'axios'; |
| | | import request from '/@/utils/request'; |
| | | |
| | | /** |
| | | * @summary GetRunRealRecordStdGetLimitByObjectTypeAndObjectIDOfDayRange |
| | | */ |
| | | export const GetRunRealRecordStdGetLimitByObjectTypeAndObjectIDOfDayRange = (params, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/Std/GetLimitByObjectTypeAndObjectIDOfDayRange@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary GetRunRealRecordStdGetByObjectTypeAndObjectIDOfDayRange |
| | | */ |
| | | export const GetRunRealRecordStdGetByObjectTypeAndObjectIDOfDayRange = (params, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/Std/GetByObjectTypeAndObjectIDOfDayRange@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * @summary GetRunRealRecordStdGetLastRecord |
| | | */ |
| | | export const GetRunRealRecordStdGetLastRecord = (params, req: AxiosInstance = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/Std/GetLastRecord@V1.0', |
| | | method: 'get', |
| | | params, |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | |
| | | import request from '/@/utils/request'; |
| | | /** |
| | | * @summary è·å宿¶è¿è¡è®°å½ |
| | | */ |
| | | export const GetRunRealRecordStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/Std/GetLastRecord@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è·å宿¶è¿è¡è®°å½ |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getRunRealRecordStd = async (params, req: any = request) => { |
| | | const res = await GetRunRealRecordStd(params, req); |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = res.Data as any; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å宿¶è¿è¡è®°å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return undefined; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * @summary è·å宿¶è¿è¡è®°å½å表 |
| | | */ |
| | | export const GetRunRealRecordListStd = async (params, req: any = request) => { |
| | | return req({ |
| | | url: '/Run/Real/Record/Std/GetLastRecordList@V1.0', |
| | | method: 'GET', |
| | | params, |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * è·å宿¶è¿è¡è®°å½å表 |
| | | * æ¥éæ¶è¿å undefined |
| | | * @returns |
| | | */ |
| | | export const getRunRealRecordListStd = async (params, req: any = request) => { |
| | | const res = await GetRunRealRecordListStd(params, req) |
| | | |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as any[]; |
| | | return resData; |
| | | } else { |
| | | ElMessage.error('è·å宿¶è¿è¡è®°å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | return []; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row :gutter="8" class="h100"> |
| | | <el-col :span="4" :xs="24" class="h100"> |
| | | <el-card shadow="hover" class="h100 left-tree-card" v-loading="treeLoading"> |
| | | <LeftTreeByMgr |
| | | :treedata="listTreeData" |
| | | title-name="ç±»åå表" |
| | | :current-node-key="currentListID" |
| | | @click="handleClickNode" |
| | | :folder-icon="(node, data) => data.LogicalType === MODULE_CODE" |
| | | :default-props="{ |
| | | id: 'LogicalID', |
| | | label: 'LogicalName', |
| | | children: 'Children', |
| | | }" |
| | | > |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="20" :xs="24" class="flex-column h100"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <el-form :inline="true" :model="queryParams"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input v-model="queryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input v-model="queryParams.Code" style="width: 226.4px" placeholder="ç¼ç " clearable /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperateDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | v-model="isDragStatus" |
| | | @change="handleDragStatus" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <el-table |
| | | v-loading="tableLoading" |
| | | ref="draggableTableRef" |
| | | border |
| | | row-key="ID" |
| | | :expand-row-keys="treeTableExpandKeys" |
| | | :tree-props="{ children: 'Children', hasChildren: 'hasChildren' }" |
| | | :row-class-name="isDragStatus ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="tableCellCenterExceptColumn()" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="tableData" |
| | | @expand-change="tableExpandChange" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Code" label="ç¼ç " show-overflow-tooltip /> |
| | | <el-table-column prop="Description" width="550" label="说æ" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" fixed="right" show-overflow-tooltip width="250"> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateDialog(scope.row)"> ç¼è¾ </el-button> |
| | | <el-button icon="ele-Folder" size="small" text type="primary" @click="openCatalogOrgDrawer(scope.row)"> ç®å½ </el-button> |
| | | <el-button icon="ele-Grid" size="small" text type="primary" @click="openPropertySetDialog(scope.row)"> 屿§ </el-button> |
| | | |
| | | <el-dropdown> |
| | | <el-button icon="ele-MoreFilled" size="small" text type="primary" style="padding-left: 12px" /> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item icon="ele-Menu" @click="openParentDlg(scope.row)"> ç¶çº§ </el-dropdown-item> |
| | | <el-dropdown-item icon="ele-Delete" @click="deleteCurrentRow(scope.row)" divided> å é¤ </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | <el-dialog :destroy-on-close="true" v-model="dialogIsShow" width="400" :close-on-click-modal="false" @closed="closeDialog"> |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="dialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ dialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="dialogFormValue" ref="dialogFormRef" :rules="dialogFormRules" label-width="55"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="dialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input placeholder="请è¾å
¥å¯ä¸ç¼ç " v-model="dialogFormValue.Code"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶çº§" prop="ParentID"> |
| | | <el-tree-select |
| | | filterable |
| | | style="width: 100%" |
| | | v-model="dialogFormValue.ParentID" |
| | | :props="{ |
| | | id: 'ID', |
| | | label: 'Name', |
| | | children: 'Children', |
| | | }" |
| | | :data="tableData" |
| | | node-key="ID" |
| | | :clearable="true" |
| | | :accordion="true" |
| | | :expandNode="false" |
| | | :check-strictly="true" |
| | | placeholder="è¯·éæ©ç¶çº§" |
| | | > |
| | | </el-tree-select> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="dialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </el-col> |
| | | |
| | | <!-- æ½å±è¡¨æ ¼ --> |
| | | <div class="custom-drawer"> |
| | | <el-drawer v-model="catalogOrgDrawerIsShow" direction="rtl" size="18%" :with-header="false"> |
| | | <el-card shadow="hover" style="height: 100%" v-loading="catalogOrgDrawerListLoading"> |
| | | <LeftTreeByMgr |
| | | :titleName="currentCatalogOrgMapRow.Name + ' - åç±»ç®å½'" |
| | | :treedata="displayCatalogOrgData" |
| | | :search-is-show="false" |
| | | :expand-on-click-node="false" |
| | | > |
| | | <template #customTitleRight> |
| | | <div class="titleSlotRight"> |
| | | <SvgIcon |
| | | :size="20" |
| | | name="ele-Setting" |
| | | color="#528abe" |
| | | class="cursor-pointer" |
| | | @click="openOperateCatalogOrgSetDialog" |
| | | /> |
| | | </div> |
| | | </template> |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-drawer> |
| | | </div> |
| | | |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="propertySetDialogIsShow" |
| | | width="700" |
| | | :close-on-click-modal="false" |
| | | @closed="closePropertySetDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon name="ele-Grid" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span>è®¾ç½®å±æ§</span> |
| | | </div> |
| | | </template> |
| | | <el-tree |
| | | v-loading="propertyCheckTreeLoading" |
| | | ref="propertyCheckTreeRef" |
| | | :data="propertyCheckTree" |
| | | node-key="LogicalID" |
| | | show-checkbox |
| | | check-strictly |
| | | :props="{ children: 'Children', label: 'LogicalName', class: treeNodeClass, disabled: 'Inherit' }" |
| | | icon="ele-Menu" |
| | | highlight-current |
| | | default-expand-all |
| | | > |
| | | <template #default="{ node, data }"> |
| | | <el-tooltip v-if="data.LogicalType === 'sys-prop-group'" content="屿§åç»" placement="top-start"> |
| | | {{ node.label }} |
| | | </el-tooltip> |
| | | <el-tooltip v-else-if="data.Inherit" content="ç»§æ¿èªç¥çº§åç±»" placement="top-start"> |
| | | {{ node.label }} |
| | | </el-tooltip> |
| | | <template v-else> |
| | | {{ node.label }} |
| | | </template> |
| | | </template> |
| | | </el-tree> |
| | | |
| | | <template v-slot:footer> |
| | | <div> |
| | | <el-button @click="closePropertySetDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitPropertySetForm">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <!-- catalogOrg è®¾ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="catalogOrgSetDialogIsShow" |
| | | width="700" |
| | | :close-on-click-modal="false" |
| | | @closed="closeCatalogOrgSetDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon name="ele-Setting" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> 设置ç®å½ </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="catalogOrgTableForm"> |
| | | <!-- æ°æ®å±ç¤ºè¡¨æ ¼ --> |
| | | <el-table |
| | | ref="catalogOrgCheckTableRef" |
| | | v-loading="catalogOrgTableLoading" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | border |
| | | row-key="ID" |
| | | :cell-style="tableCellCenterExceptColumn(1)" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="filteredTableData" |
| | | :expand-row-keys="catalogOrgExpandRowKeys" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | row-class-name="cursor-pointer" |
| | | @select="userSelectCatalogOrg" |
| | | > |
| | | <el-table-column type="selection" width="55px"> </el-table-column> |
| | | <el-table-column prop="Name" label="ç³»ç»åç±»" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Count" label="æ°é" width="130" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-form-item> |
| | | <el-input-number size="small" :min="1" v-model="catalogOrgTableForm[scope.row.ID]"></el-input-number> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-form> |
| | | |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeCatalogOrgSetDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitCatalogOrgSetValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <ParentDialog |
| | | v-model="parentDlgIsShow" |
| | | :data="treeTableData" |
| | | :api="UpdateCatalogTreeSortCode" |
| | | :rowData="parentDlgMapRow" |
| | | @submitSuccess="submitParentForm" |
| | | > |
| | | </ParentDialog> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import type { FormInstance, FormRules, TableInstance } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox, ElTree } from 'element-plus'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | import type { PropType } from 'vue'; |
| | | import { ref, onMounted, computed, watch, nextTick } from 'vue'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { useTableSort } from '/@/hooks/useTableSort'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | import { |
| | | DeleteACatalog, |
| | | GetTypeListTreeData, |
| | | GetAllCatalogByID, |
| | | GetIsExistCatalogCode, |
| | | InsertACatalog, |
| | | UpdateACatalog, |
| | | UpdateCatalogSorter, |
| | | GetCatalogOrgByParentID, |
| | | GetHaveLogicalTreeList, |
| | | SetCatalogMapProperty, |
| | | SetCatalogOrg, |
| | | UpdateCatalogTreeSortCode, |
| | | } from '/@/api/basic/dataManage/catalogManage'; |
| | | import { ExtendTypeEnum } from '/@/projectCom/basic/types'; |
| | | import { convertListToTree, travelTree, tableCellCenterExceptColumn, flatten } from '/@/utils/util'; |
| | | import type { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import { MODULE_CODE } from '/@/constants'; |
| | | import ParentDialog from '/@/components/dialog/parentDialog/ParentDialog.vue'; |
| | | |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | |
| | | //#region ====================== å·¦ä¾§æ æ°æ®ï¼tree init ====================== |
| | | const treeLoading = ref(false); |
| | | const listTreeData = ref([]); |
| | | const currentListID = ref(''); |
| | | const currentTreeNode = ref(null); |
| | | const handleClickNode = (data) => { |
| | | currentListID.value = data.LogicalID; |
| | | currentTreeNode.value = data; |
| | | if (data.LogicalType === MODULE_CODE) { |
| | | tableData.value = []; |
| | | return; |
| | | } |
| | | getTableData(); |
| | | }; |
| | | const getListTreeData = async () => { |
| | | treeLoading.value = true; |
| | | const res = await GetTypeListTreeData( |
| | | { |
| | | ExtendType: ExtendTypeEnum.Inherit, |
| | | }, |
| | | props.request |
| | | ).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | listTreeData.value = res.Data || []; |
| | | const firstListTreeNode = listTreeData.value[0]?.Children[0]; |
| | | if (firstListTreeNode) { |
| | | handleClickNode(firstListTreeNode); |
| | | } else { |
| | | tableData.value = []; |
| | | currentTreeNode.value = null; |
| | | currentListID.value = null; |
| | | } |
| | | } else { |
| | | ElMessage.error('è·åç±»åå表失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ°æ®ï¼table init ====================== |
| | | const tableLoading = ref(false); |
| | | const flatTableData = ref([]); |
| | | // æ å½¢æçè¡¨æ ¼æ°æ® |
| | | |
| | | const treeTableData = ref([]); |
| | | |
| | | const isDragStatus = ref(false); |
| | | // ä¿åå½å ID èç¹çæ ¹èç¹ ID; |
| | | let IDRootMap = {}; |
| | | const getTableData = async () => { |
| | | tableLoading.value = true; |
| | | const res = await GetAllCatalogByID({ TypeID: currentListID.value }, props.request).finally(() => { |
| | | tableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | flatTableData.value = res.Data || []; |
| | | treeTableData.value = convertListToTree(flatTableData.value); |
| | | // æ¯ä¸ä¸ªæ èç¹æä¸ä¸ª RootIDï¼æåå½åèç¹çæä¸å±çæ ¹èç¹ ID |
| | | let rootID = ''; |
| | | travelTree(treeTableData.value, (value) => { |
| | | if (value.ParentID === '0') { |
| | | rootID = value.ID; |
| | | } |
| | | value.RootID = rootID; |
| | | IDRootMap[value.ID] = rootID; |
| | | }); |
| | | } else { |
| | | ElMessage.error('è·åå类失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤åç±»ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteACatalog( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤åç±»æå'); |
| | | getTableData(); |
| | | } else { |
| | | ElMessage.error('å é¤å类失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤å类失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ¥è¯¢ãæåºï¼search form init ====================== |
| | | const queryParams = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }); |
| | | const { resetQuery, handleQueryTable, displayTableData: tableData } = useQueryTable(flatTableData, queryParams, getTableData, true); |
| | | |
| | | const { handleDragStatus, draggableTableRef } = useTableSort( |
| | | tableData, |
| | | UpdateCatalogSorter, |
| | | getTableData, |
| | | undefined, |
| | | true, |
| | | props.request |
| | | ); |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è®°å½æä½, dialog init====================== |
| | | const isEditDialog = ref(false); |
| | | const dialogTitle = computed(() => { |
| | | return isEditDialog.value ? 'ä¿®æ¹åç±»' : 'æ·»å åç±»'; |
| | | }); |
| | | const dialogHeaderIcon = computed(() => { |
| | | return isEditDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const dialogFormValue = ref(null); |
| | | const dialogIsShow = ref(false); |
| | | const dialogFormRef = ref<FormInstance>(null); |
| | | const initialCode = ref(''); |
| | | |
| | | const { uniquenessValidator } = useValidateUniqueness( |
| | | GetIsExistCatalogCode, |
| | | initialCode, |
| | | 'ç¼ç ', |
| | | 'Code', |
| | | { |
| | | CorpID: currentListID, |
| | | }, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const dialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Code: [{ required: true, validator: uniquenessValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const openOperateDialog = (row?) => { |
| | | if (!currentListID.value) { |
| | | return ElMessage.warning('请å
éæ©ç±»åï¼'); |
| | | } |
| | | if (row) { |
| | | isEditDialog.value = true; |
| | | const { ID, Name, Code, Description, ParentID } = row; |
| | | |
| | | initialCode.value = Code; |
| | | dialogFormValue.value = deepClone({ |
| | | TypeID: currentTreeNode.value.LogicalID, |
| | | ID, |
| | | Name, |
| | | Code, |
| | | Description, |
| | | ParentID: ParentID === '0' ? null : ParentID, |
| | | }); |
| | | } else { |
| | | if (currentTreeNode.value.LogicalType === MODULE_CODE) { |
| | | return ElMessage.info('è¯·éæ©ç³»ç»ç±»åï¼åæ·»å æ°æ®'); |
| | | } |
| | | isEditDialog.value = false; |
| | | initialCode.value = ''; |
| | | dialogFormValue.value = { Name: '', Code: '', Description: '', ParentID: null, TypeID: currentListID.value }; |
| | | } |
| | | dialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeDialog = () => { |
| | | dialogIsShow.value = false; |
| | | dialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitFormValue = async () => { |
| | | const valid = await dialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (!dialogFormValue.value.ParentID) { |
| | | dialogFormValue.value.ParentID = '0'; |
| | | } |
| | | |
| | | if (isEditDialog.value) { |
| | | const res = await UpdateACatalog(dialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('ä¿®æ¹åç±»æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å类失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å类失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertACatalog(dialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('æ·»å åç±»æå'); |
| | | } else { |
| | | ElMessage.success('æ·»å å类失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å å类失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== æ½å±æ æ°æ® ====================== |
| | | const catalogOrgDrawerIsShow = ref(false); |
| | | const catalogOrgDrawerListsData = ref([]); |
| | | const catalogOrgDrawerListLoading = ref(false); |
| | | let currentCatalogOrgOrgID = ''; |
| | | |
| | | /**å±ç¤ºçç®å½æ°æ® */ |
| | | const displayCatalogOrgData = computed(() => { |
| | | return catalogOrgDrawerListsData.value.map((item) => { |
| | | let foundCatalog = { |
| | | // ID æ¯ç®å½ID |
| | | ID: '0', |
| | | Name: '-', |
| | | // CatalogID æ¯åç±»ID |
| | | CatalogID: '0', |
| | | }; |
| | | |
| | | for (const value of flatTableData.value) { |
| | | if (value.ID === item.ChildID) { |
| | | foundCatalog = { |
| | | ID: item.ID, |
| | | Name: value.Name, |
| | | CatalogID: value.ID, |
| | | }; |
| | | break; |
| | | } |
| | | } |
| | | return foundCatalog; |
| | | }); |
| | | }); |
| | | |
| | | const getCatalogOrgDrawerListDataByID = async () => { |
| | | catalogOrgDrawerListLoading.value = true; |
| | | const res = await GetCatalogOrgByParentID({ ParentID: currentCatalogOrgOrgID }, props.request).finally(() => { |
| | | catalogOrgDrawerListLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | catalogOrgDrawerListsData.value = res.Data; |
| | | } else { |
| | | catalogOrgDrawerListsData.value = []; |
| | | } |
| | | } else { |
| | | ElMessage.error('è·åç®å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const currentCatalogOrgMapRow = ref(null); |
| | | const openCatalogOrgDrawer = (row?) => { |
| | | const { ID } = row; |
| | | currentCatalogOrgMapRow.value = row; |
| | | currentCatalogOrgOrgID = ID; |
| | | getCatalogOrgDrawerListDataByID(); |
| | | catalogOrgDrawerIsShow.value = true; |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è§£å³ææ½å±å¼ç¶æå¤±æé®é¢ ====================== |
| | | const treeTableExpandKeys = ref([]); |
| | | |
| | | const tableExpandChange = (row, expanded) => { |
| | | if (expanded) { |
| | | treeTableExpandKeys.value.push(row.ID); |
| | | } else { |
| | | const idx = treeTableExpandKeys.value.indexOf(row.ID); |
| | | treeTableExpandKeys.value.splice(idx, 1); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== åç±»å±æ§è®¾ç½® ====================== |
| | | const propertySetDialogIsShow = ref(false); |
| | | |
| | | const propertyCheckTree = ref([]); |
| | | const propertyCheckTreeRef = ref<InstanceType<typeof ElTree>>(null); |
| | | let currentCatalog = null; |
| | | |
| | | const openPropertySetDialog = (row) => { |
| | | propertySetDialogIsShow.value = true; |
| | | currentCatalog = row; |
| | | getPropertyByCatalogID(); |
| | | }; |
| | | |
| | | const getCheckedKeys = (treeData: any) => { |
| | | const checkedKeys = []; |
| | | const getKeys = (treeData: any) => { |
| | | for (const item of treeData) { |
| | | if (item.Have) { |
| | | checkedKeys.push(item.LogicalID); |
| | | } |
| | | if (item.Children && item.Children.length !== 0) { |
| | | getKeys(item.Children); |
| | | } |
| | | } |
| | | }; |
| | | getKeys(treeData); |
| | | return checkedKeys; |
| | | }; |
| | | const propertyCheckTreeLoading = ref(false); |
| | | const getPropertyByCatalogID = async () => { |
| | | propertyCheckTreeLoading.value = true; |
| | | const res = await GetHaveLogicalTreeList({ CatalogID: currentCatalog?.ID }, props.request).finally(() => { |
| | | propertyCheckTreeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | propertyCheckTree.value = res.Data; |
| | | const checkedKeys = getCheckedKeys(propertyCheckTree.value); |
| | | |
| | | propertyCheckTreeRef.value.setCheckedKeys(checkedKeys); |
| | | } |
| | | } else { |
| | | ElMessage.error('è·å屿§å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | |
| | | const closePropertySetDialog = () => { |
| | | propertySetDialogIsShow.value = false; |
| | | propertyCheckTreeRef.value.setCheckedNodes([]); |
| | | }; |
| | | // å¶åèç¹åè¡æ¾ç¤ºæ ·å¼ |
| | | const treeNodeClass = (node) => { |
| | | let addClass = true; // æ·»å å¶åèç¹åè¡æ¾ç¤ºæ ·å¼ |
| | | for (const key in node.Children) { |
| | | // 妿åå¨åèç¹éå¶åèç¹ï¼ä¸æ·»å æ ·å¼ |
| | | if (node.Children[key].Children?.length ?? 0 > 0) { |
| | | addClass = false; |
| | | break; |
| | | } |
| | | } |
| | | const checkboxClass = node.LogicalType === 'sys-prop-group' ? 'sys-prop-group' : 'sys-prop'; |
| | | const penultimateClass = addClass ? 'penultimate-node' : ''; |
| | | const treeNodeClass = checkboxClass + ' ' + penultimateClass; |
| | | return treeNodeClass; |
| | | }; |
| | | |
| | | const submitPropertySetForm = async () => { |
| | | const checkedKeys = propertyCheckTreeRef.value |
| | | .getCheckedNodes() |
| | | .filter((item) => item.LogicalType === 'sys-prop' && !item.Inherit) |
| | | .map((item) => item.LogicalID); |
| | | const res = await SetCatalogMapProperty({ CatalogID: currentCatalog?.ID, PropIds: checkedKeys }, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | propertySetDialogIsShow.value = false; |
| | | ElMessage.success('设置æå'); |
| | | } else { |
| | | ElMessage.info('æªä¿®æ¹'); |
| | | } |
| | | } else { |
| | | ElMessage.error('设置失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ======================设置ç®å½æä½, dialog init====================== |
| | | |
| | | const catalogOrgSetDialogIsShow = ref(false); |
| | | const catalogOrgTableLoading = ref(false); |
| | | const catalogOrgCheckTableRef = ref<TableInstance>(null); |
| | | |
| | | const catalogOrgTableForm = ref({}); |
| | | const filteredTableData = ref([]); |
| | | |
| | | const setCatalogOrgTableData = () => { |
| | | filteredTableData.value = deepClone( |
| | | treeTableData.value.filter((item) => item.RootID !== IDRootMap[currentCatalogOrgMapRow.value.ID]) |
| | | ) as any[]; |
| | | travelTree(filteredTableData.value, (value) => { |
| | | value.children = value.Children; |
| | | }); |
| | | const checkedKeysObj = {}; |
| | | displayCatalogOrgData.value.forEach((value) => { |
| | | if (!checkedKeysObj[value.CatalogID]) { |
| | | checkedKeysObj[value.CatalogID] = 1; |
| | | } else { |
| | | checkedKeysObj[value.CatalogID]++; |
| | | } |
| | | }); |
| | | |
| | | nextTick(() => { |
| | | nextTick(() => { |
| | | catalogOrgCheckTableRef.value?.clearSelection(); |
| | | const catalogIDCount = {}; |
| | | travelTree( |
| | | filteredTableData.value, |
| | | (value) => { |
| | | const IDMapCount = checkedKeysObj[value.ID]; |
| | | if (IDMapCount) { |
| | | catalogOrgCheckTableRef.value?.toggleRowSelection(value, true); |
| | | } else { |
| | | catalogOrgCheckTableRef.value?.toggleRowSelection(value, false); |
| | | } |
| | | |
| | | catalogIDCount[value.ID] = IDMapCount || 1; |
| | | }, |
| | | null, |
| | | false, |
| | | 'children' |
| | | ); |
| | | catalogOrgTableForm.value = catalogIDCount; |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | const userSelectCatalogOrg = (checkedRow, currentRow) => { |
| | | const isChecked = checkedRow.includes(currentRow); |
| | | if (isChecked) { |
| | | if (currentRow.children?.length > 0) { |
| | | for (const item of currentRow.children) { |
| | | catalogOrgCheckTableRef.value?.toggleRowSelection(item, false); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | const openOperateCatalogOrgSetDialog = () => { |
| | | resetCatalogOrgTable(); |
| | | setCatalogOrgTableData(); |
| | | catalogOrgSetDialogIsShow.value = true; |
| | | }; |
| | | // å±å¼ç tree |
| | | const catalogOrgExpandRowKeys = ref([]); |
| | | const resetCatalogOrgTable = () => { |
| | | catalogOrgExpandRowKeys.value = []; |
| | | }; |
| | | const closeCatalogOrgSetDialog = () => { |
| | | catalogOrgSetDialogIsShow.value = false; |
| | | }; |
| | | |
| | | const submitCatalogOrgSetValue = async () => { |
| | | const selectedRows = catalogOrgCheckTableRef.value.getSelectionRows(); |
| | | const CatalogIDs = []; |
| | | selectedRows.forEach((row) => { |
| | | const count = catalogOrgTableForm.value[row.ID]; |
| | | for (let index = 0; index < count; index++) { |
| | | CatalogIDs.push(row.ID); |
| | | } |
| | | }); |
| | | const sendParams = { |
| | | ParentID: currentCatalogOrgOrgID, |
| | | ChildIds: CatalogIDs, |
| | | }; |
| | | catalogOrgTableLoading.value = true; |
| | | const res = await SetCatalogOrg(sendParams, props.request).finally(() => { |
| | | catalogOrgTableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | closeCatalogOrgSetDialog(); |
| | | getCatalogOrgDrawerListDataByID(); |
| | | ElMessage.success('设置ç®å½æå'); |
| | | } else { |
| | | ElMessage.error('设置ç®å½å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('设置ç®å½å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | |
| | | //#endregion |
| | | //#region ====================== æ´æ¹è®¾å¤ç¶çº§ ====================== |
| | | const parentDlgIsShow = ref(false); |
| | | const parentDlgMapRow = ref(null); |
| | | const openParentDlg = (row?) => { |
| | | parentDlgMapRow.value = row; |
| | | parentDlgIsShow.value = true; |
| | | }; |
| | | const submitParentForm = (res) => { |
| | | getTableData(); |
| | | }; |
| | | //#endregion |
| | | onMounted(() => { |
| | | getListTreeData(); |
| | | }); |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | :deep(.sys-prop-group > .el-tree-node__content > .el-checkbox) { |
| | | display: none; |
| | | } |
| | | .titleSlotRight { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row :gutter="8" class="h100"> |
| | | <el-col :span="4" :xs="24" class="h100"> |
| | | <el-card shadow="hover" class="h100 left-tree-card" v-loading="treeLoading"> |
| | | <LeftTreeByMgr |
| | | title-name="ç±»åå表" |
| | | :treedata="listTreeData" |
| | | :current-node-key="currentListID" |
| | | :default-props="{ |
| | | children: 'Children', |
| | | label: 'LogicalName', |
| | | id: 'LogicalID', |
| | | }" |
| | | :folder-icon="(node, data) => data.LogicalType === MODULE_CODE" |
| | | :default-expand-all="true" |
| | | @click="handleClickNode" |
| | | > |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="20" :xs="24" class="flex-column h100"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <el-form :inline="true" :model="queryParams"> |
| | | <el-form-item label="æ ç¾åç§°" prop="Name"> |
| | | <el-input v-model="queryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperateDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | v-model="isDragStatus" |
| | | @change="handleDragStatus" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <el-table |
| | | v-loading="tableLoading" |
| | | ref="draggableTableRef" |
| | | border |
| | | row-key="ID" |
| | | :row-class-name="isDragStatus ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="displayTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Description" width="550" label="说æ" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" fixed="right" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateDialog(scope.row)"> ç¼è¾ </el-button> |
| | | <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentRow(scope.row)"> å é¤ </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | <el-dialog :destroy-on-close="true" v-model="dialogIsShow" width="400" :close-on-click-modal="false" @closed="closeDialog"> |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="dialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ dialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="dialogFormValue" ref="dialogFormRef" :rules="dialogFormRules" label-width="55"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="dialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="dialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import type { FormInstance, FormRules } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | import type { PropType } from 'vue'; |
| | | import { ref, onMounted, computed } from 'vue'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { useTableSort } from '/@/hooks/useTableSort'; |
| | | import { |
| | | DeleteAFlag, |
| | | GetTypeListTreeData, |
| | | GetAllFlagByID, |
| | | GetIsExistFlagName, |
| | | InsertAFlag, |
| | | UpdateAFlag, |
| | | UpdateFlagSorter, |
| | | } from '/@/api/basic/flagInfo'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | import type { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import { MODULE_CODE } from '/@/constants'; |
| | | |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | //#region ====================== å·¦ä¾§æ æ°æ®ï¼tree with select init ====================== |
| | | const treeLoading = ref(false); |
| | | |
| | | const currentTreeNode = ref(null); |
| | | |
| | | const listTreeData = ref([]); |
| | | const currentListID = ref(''); |
| | | const handleClickNode = (data) => { |
| | | currentTreeNode.value = data; |
| | | currentListID.value = data.LogicalID; |
| | | |
| | | if (data.LogicalType === MODULE_CODE) { |
| | | tableData.value = []; |
| | | return; |
| | | } |
| | | |
| | | getTableData(); |
| | | }; |
| | | const getListTreeData = async () => { |
| | | treeLoading.value = true; |
| | | const res = await GetTypeListTreeData(props.request).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | listTreeData.value = res.Data || []; |
| | | const firstListTreeNode = listTreeData.value[0]?.Children[0]; |
| | | if (firstListTreeNode) { |
| | | handleClickNode(firstListTreeNode); |
| | | } else { |
| | | tableData.value = []; |
| | | currentTreeNode.value = null; |
| | | currentListID.value = null; |
| | | } |
| | | } else { |
| | | ElMessage.error('è·åç±»åå表失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ°æ®ï¼table init ====================== |
| | | const tableLoading = ref(false); |
| | | const tableData = ref([]); |
| | | const isDragStatus = ref(false); |
| | | const getTableData = async () => { |
| | | tableLoading.value = true; |
| | | const res = await GetAllFlagByID({ TypeID: currentListID.value }, props.request).finally(() => { |
| | | tableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | tableData.value = res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·åæ ç¾å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å 餿 ç¾ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAFlag( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å 餿 ç¾æå'); |
| | | getTableData(); |
| | | } else { |
| | | ElMessage.error('å 餿 ç¾å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å 餿 ç¾å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ¥è¯¢ãæåºï¼search form init ====================== |
| | | const queryParams = ref({ |
| | | Name: '', |
| | | }); |
| | | const { handleDragStatus, draggableTableRef } = useTableSort( |
| | | tableData, |
| | | UpdateFlagSorter, |
| | | getTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(tableData, queryParams, getTableData); |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è®°å½æä½, dialog init====================== |
| | | const isEditDialog = ref(false); |
| | | const dialogTitle = computed(() => { |
| | | return isEditDialog.value ? 'ä¿®æ¹æ ç¾' : 'æ·»å æ ç¾'; |
| | | }); |
| | | const dialogHeaderIcon = computed(() => { |
| | | return isEditDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const dialogFormValue = ref({ |
| | | Name: '', |
| | | Description: '', |
| | | }) as any; |
| | | const dialogIsShow = ref(false); |
| | | const dialogFormRef = ref<FormInstance>(null); |
| | | |
| | | const initialValue = ref(''); |
| | | |
| | | const { uniquenessValidator: nameValidator } = useValidateUniqueness( |
| | | GetIsExistFlagName, |
| | | initialValue, |
| | | 'æ ç¾åç§°', |
| | | 'Name', |
| | | { |
| | | TypeID: currentListID, |
| | | }, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | //#endregion |
| | | |
| | | const dialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, validator: nameValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const currentRow = ref(null); |
| | | const openOperateDialog = (row?) => { |
| | | if (!currentListID.value) { |
| | | return ElMessage.warning('请å
éæ©ç±»åï¼'); |
| | | } |
| | | if (row) { |
| | | isEditDialog.value = true; |
| | | initialValue.value = row.Name; |
| | | currentRow.value = row; |
| | | const { ID, Name, Description } = row; |
| | | dialogFormValue.value = deepClone({ ID, Name, Description }); |
| | | } else { |
| | | if (currentTreeNode.value.LogicalType === MODULE_CODE) return ElMessage.warning('请å
éæ©ç³»ç»ç±»ååæ·»å ï¼'); |
| | | initialValue.value = ''; |
| | | isEditDialog.value = false; |
| | | dialogFormValue.value = { Name: '', Description: '' }; |
| | | } |
| | | dialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeDialog = () => { |
| | | dialogIsShow.value = false; |
| | | dialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitFormValue = async () => { |
| | | const valid = await dialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditDialog.value) { |
| | | const res = await UpdateAFlag(dialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('ä¿®æ¹æ ç¾æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹æ ç¾å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹æ ç¾å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAFlag({ ...dialogFormValue.value, TypeID: currentListID.value }, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('æ·»å æ ç¾æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å æ ç¾å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å æ ç¾å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | //#endregion |
| | | |
| | | onMounted(() => { |
| | | getListTreeData(); |
| | | }); |
| | | </script> |
| | | <style scoped lang="scss"></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row :gutter="8" class="h100"> |
| | | <el-col :span="4" :xs="24" class="h100"> |
| | | <el-card shadow="hover" class="h100 left-tree-card" v-loading="treeLoading"> |
| | | <LeftTreeByMgr |
| | | ref="leftTreeRef" |
| | | title-name="屿§ç»å表" |
| | | :show-add="true" |
| | | :select-is-show="true" |
| | | :showSelectNodeIcon="true" |
| | | :selectFolderIcon="(_, data) => data.LogicalType === MODULE_CODE" |
| | | :select-data="selectTreeData" |
| | | :show-more-operate="true" |
| | | :select-props="{ |
| | | id: 'LogicalID', |
| | | label: 'LogicalName', |
| | | children: 'Children', |
| | | }" |
| | | :default-select-value="currentSelectID" |
| | | :folder-icon="() => false" |
| | | @selectchange="selectNodeChange" |
| | | :treedata="listTreeData" |
| | | :current-node-key="currentListID" |
| | | :show-sorter="true" |
| | | @click="handleClickNode" |
| | | @node-drag-end="dragNodeEnd" |
| | | @tree-edit="openOperatePropertyGroupDialog" |
| | | @tree-delete="deleteCurrentPropertyGroup" |
| | | @tree-add="openOperatePropertyGroupDialog" |
| | | > |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="20" :xs="24" class="flex-column h100"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <el-form :inline="true" :model="queryParams"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input v-model="queryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input v-model="queryParams.Code" style="width: 226.4px" placeholder="ç¼ç " clearable /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperatePropertyDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | v-model="isDragStatus" |
| | | @change="handleDragStatus" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <el-table |
| | | v-loading="tableLoading" |
| | | ref="draggableTableRef" |
| | | border |
| | | row-key="ID" |
| | | :row-class-name="isDragStatus ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="displayTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column type="index" label="åºå·" width="55" align="center" /> |
| | | <el-table-column prop="Name" label="åç§°" show-overflow-tooltip /> |
| | | <el-table-column prop="Code" label="ç¼ç " show-overflow-tooltip /> |
| | | <el-table-column prop="Format" label="æ ¼å¼" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | {{ FORMAT_MAP[scope.row.Format] }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="UnitName" label="åä½" show-overflow-tooltip /> |
| | | <el-table-column prop="DefaultValue" label="é»è®¤å¼" align="center" show-overflow-tooltip> </el-table-column> |
| | | <el-table-column prop="IsNull" label="å¯ç©º" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-tag type="success" v-if="scope.row.IsNull">æ¯</el-tag> |
| | | <el-tag type="danger" v-else>å¦</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="Description" label="说æ" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" width="240" fixed="right" align="center" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperatePropertyDialog(scope.row)"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button icon="ele-Grid" size="small" text type="primary" @click="openDrawer(scope.row)"> 屿§é项 </el-button> |
| | | |
| | | <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentRow(scope.row)"> å é¤ </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | <!-- property å¢å ãä¿®æ¹æ°æ®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="propertyDialogIsShow" |
| | | width="500" |
| | | :close-on-click-modal="false" |
| | | @closed="closePropertyDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="propertyDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ propertyDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="propertyDialogFormValue" ref="propertyDialogFormRef" :rules="propertyDialogFormRules" label-width="80"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="propertyDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input placeholder="请è¾å
¥å¯ä¸ç¼ç " v-model="propertyDialogFormValue.Code"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="屿§æ ¼å¼" prop="Format"> |
| | | <el-select v-model="propertyDialogFormValue.Format" class="w100" filterable @change="selectFormatChange"> |
| | | <el-option |
| | | v-for="item of Object.keys(FORMAT_MAP)" |
| | | :key="item" |
| | | :label="FORMAT_MAP[item]" |
| | | :value="parseInt(item)" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åä½åç§°" prop="UnitName"> |
| | | <el-input v-model="propertyDialogFormValue.UnitName" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="é»è®¤å¼" prop="DefaultValue"> |
| | | <el-radio-group |
| | | class="w100" |
| | | v-if="propertyDialogFormValue.Format === PropertyFormatEnum.Boolean" |
| | | v-model="propertyDialogFormValue.DefaultValue" |
| | | > |
| | | <el-radio label="true" value="true"></el-radio> |
| | | <el-radio label="false" value="false"></el-radio> |
| | | </el-radio-group> |
| | | <el-input v-else v-model="propertyDialogFormValue.DefaultValue"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å¯ç©º" prop="IsNull"> |
| | | <el-checkbox v-model="propertyDialogFormValue.IsNull" /> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input v-model="propertyDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closePropertyDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitPropertyFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- propertyGroup å¢å ãä¿®æ¹æ°æ®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="propertyGroupDialogIsShow" |
| | | width="400" |
| | | :close-on-click-modal="false" |
| | | @closed="closePropertyGroupDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon |
| | | :name="propertyGroupDialogHeaderIcon" |
| | | :size="16" |
| | | style="margin-right: 3px; display: inline; vertical-align: middle" |
| | | /> |
| | | <span> {{ propertyGroupDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form |
| | | :model="propertyGroupDialogFormValue" |
| | | ref="propertyGroupDialogFormRef" |
| | | :rules="propertyGroupDialogFormRules" |
| | | label-width="55" |
| | | > |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="propertyGroupDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="propertyGroupDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closePropertyGroupDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitPropertyGroupFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 屿§é项修æ¹ãç¼è¾dialog --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="choiceDialogIsShow" |
| | | width="400" |
| | | :close-on-click-modal="false" |
| | | @closed="closeChoiceDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="choiceDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ choiceDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="choiceDialogFormValue" ref="choiceDialogFormRef" :rules="choiceDialogFormRules" label-width="55"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="choiceDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é项" prop="Choice"> |
| | | <el-input placeholder="请è¾å
¥é项" v-model="choiceDialogFormValue.Choice"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="choiceDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template v-slot:footer> |
| | | <div> |
| | | <el-button @click="closeChoiceDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitChoiceFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- æ½å±è¡¨æ ¼ --> |
| | | <div class="custom-drawer"> |
| | | <el-drawer v-model="drawerIsShow" direction="rtl" size="30%"> |
| | | <template #header> |
| | | <div> |
| | | <SvgIcon name="ele-Grid" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ currentProp?.Name + ' - 屿§é项é
ç½®' }} </span> |
| | | </div> |
| | | </template> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <!-- æ¥è¯¢ãéç½®ãæåºãå¢å 表å --> |
| | | <el-form :inline="true" :model="choiceQueryParams"> |
| | | <el-form-item> |
| | | <el-button icon="ele-Plus" @click="openOperateChoiceDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | v-model="isChoiceTableDrag" |
| | | @change="handleChoiceTableDrag" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <!-- æ°æ®å±ç¤ºè¡¨æ ¼ --> |
| | | <el-table |
| | | v-loading="choiceTableLoading" |
| | | class="h100" |
| | | ref="draggableChoiceTableRef" |
| | | border |
| | | size="small" |
| | | row-key="ID" |
| | | :row-class-name="isChoiceTableDrag ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="choiceTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Choice" label="é项" show-overflow-tooltip /> |
| | | <el-table-column prop="Description" label="说æ" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" fixed="right" width="180" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateChoiceDialog(scope.row)"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentChoiceRow(scope.row)"> |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-drawer> |
| | | </div> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import type { FormInstance, FormRules } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | import type { PropType } from 'vue'; |
| | | import { ref, onMounted, computed, nextTick } from 'vue'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { updateSort, useTableSort } from '/@/hooks/useTableSort'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | import { |
| | | // è·åç³»ç»ç±»å |
| | | GetSysTypeSelectTreeData, |
| | | // 屿§æ¥å£ |
| | | DeleteAProperty, |
| | | GetAllPropertyByID, |
| | | GetIsExistPropertyCode, |
| | | InsertAProperty, |
| | | UpdateAProperty, |
| | | UpdatePropertySorter, |
| | | // 屿§ç»æ¥å£ |
| | | GetPropertyGroupListTreeData, |
| | | DeleteAPropertyGroup, |
| | | InsertAPropertyGroup, |
| | | UpdateAPropertyGroup, |
| | | UpdatePropertyGroupSorter, |
| | | } from '/@/api/basic/property/propertyManage'; |
| | | import { |
| | | DeleteAPropChoice, |
| | | GetAllPropChoice, |
| | | InsertAPropChoice, |
| | | UpdateAPropChoice, |
| | | UpdatePropChoiceSorter, |
| | | } from '/@/api/basic/property/propChoice'; |
| | | |
| | | import { FORMAT_MAP, PropertyFormatEnum } from '/@/projectCom/basic/types'; |
| | | |
| | | import { booleanRegex, dateRegex, integerRegex, numberRegex } from '/@/utils/toolsValidate'; |
| | | import type { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import { MODULE_CODE } from '/@/constants'; |
| | | import { arrayIsEmpty } from '/@/utils/util'; |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | |
| | | //#region ====================== å·¦ä¾§æ æ°æ®ï¼tree with select init ====================== |
| | | const treeLoading = ref(false); |
| | | |
| | | const selectTreeData = ref([]); |
| | | const currentSelectID = ref(''); |
| | | const selectNodeChange = (data) => { |
| | | currentSelectID.value = data.LogicalID; |
| | | if (data.LogicalType === MODULE_CODE) { |
| | | listTreeData.value = []; |
| | | tableData.value = []; |
| | | return; |
| | | } |
| | | getListTreeData(true); |
| | | }; |
| | | |
| | | const getSelectTreeData = async () => { |
| | | treeLoading.value = true; |
| | | const res = await GetSysTypeSelectTreeData(props.request).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | selectTreeData.value = res.Data || []; |
| | | const firstSelectTreeNode = selectTreeData.value[0]?.Children[0]; |
| | | if (firstSelectTreeNode) { |
| | | selectNodeChange(firstSelectTreeNode); |
| | | } else { |
| | | listTreeData.value = []; |
| | | tableData.value = []; |
| | | } |
| | | } else { |
| | | ElMessage.error('è·åç³»ç»ç±»åå表失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const leftTreeRef = ref(null); |
| | | const listTreeData = ref([]); |
| | | const currentListID = ref(''); |
| | | const currentTreeNode = ref(null); |
| | | |
| | | const handleClickNode = (data) => { |
| | | currentTreeNode.value = data; |
| | | nextTick(() => { |
| | | leftTreeRef.value?.treeRef.setCurrentKey(data.ID); |
| | | }); |
| | | |
| | | currentListID.value = data.ID; |
| | | getTableData(); |
| | | }; |
| | | const getListTreeData = async (selectFirst = false) => { |
| | | treeLoading.value = true; |
| | | const res = await GetPropertyGroupListTreeData( |
| | | { |
| | | TypeID: currentSelectID.value, |
| | | }, |
| | | props.request |
| | | ).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | listTreeData.value = res.Data || []; |
| | | if (selectFirst) { |
| | | const firstListTreeNode = listTreeData.value[0]; |
| | | if (firstListTreeNode) { |
| | | handleClickNode(firstListTreeNode); |
| | | } else { |
| | | tableData.value = []; |
| | | currentTreeNode.value = null; |
| | | currentListID.value = null; |
| | | } |
| | | } else { |
| | | currentTreeNode.value && handleClickNode(currentTreeNode.value); |
| | | } |
| | | } else { |
| | | ElMessage.error('è·å屿§ç»å表失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å·¦ä¾§æ ææ½ ====================== |
| | | const dragNodeEnd = async (draggingNode, dropNode, dropType, ev, originTreeData) => { |
| | | updateSort( |
| | | listTreeData, |
| | | listTreeData.value, |
| | | originTreeData, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | getListTreeData(); |
| | | }, |
| | | UpdatePropertyGroupSorter, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | }, |
| | | undefined, |
| | | props.request |
| | | ); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ°æ®ï¼table init ====================== |
| | | const tableLoading = ref(false); |
| | | const tableData = ref([]); |
| | | const isDragStatus = ref(false); |
| | | const getTableData = async () => { |
| | | tableLoading.value = true; |
| | | const res = await GetAllPropertyByID({ GroupID: currentListID.value }, props.request).finally(() => { |
| | | tableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | tableData.value = res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·å屿§å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤å±æ§ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAProperty( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤å±æ§æå'); |
| | | getTableData(); |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ¥è¯¢ãæåºï¼search form init ====================== |
| | | const queryParams = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }); |
| | | const { handleDragStatus, draggableTableRef } = useTableSort( |
| | | tableData, |
| | | UpdatePropertySorter, |
| | | getTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(tableData, queryParams, getTableData); |
| | | |
| | | //#endregion |
| | | |
| | | const selectFormatChange = () => { |
| | | propertyDialogFormValue.value.DefaultValue = ''; |
| | | propertyDialogFormRef.value.clearValidate(['DefaultValue']); |
| | | }; |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è®°å½æä½, dialog init====================== |
| | | const isEditPropertyDialog = ref(false); |
| | | const propertyDialogTitle = computed(() => { |
| | | return isEditPropertyDialog.value ? 'ä¿®æ¹å±æ§' : 'æ·»å 屿§'; |
| | | }); |
| | | const propertyDialogHeaderIcon = computed(() => { |
| | | return isEditPropertyDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const propertyDialogFormValue = ref(null); |
| | | const propertyDialogIsShow = ref(false); |
| | | const propertyDialogFormRef = ref<FormInstance>(null); |
| | | const propertyInitialCode = ref(''); |
| | | |
| | | const { uniquenessValidator: propertyCodeValidator } = useValidateUniqueness( |
| | | GetIsExistPropertyCode, |
| | | propertyInitialCode, |
| | | 'ç¼ç ', |
| | | 'Code', |
| | | { |
| | | TypeID: currentSelectID, |
| | | }, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const defaultValueValidator = (rule: any, value: any, callback: any) => { |
| | | if (!value) { |
| | | callback(); |
| | | } else if (!propertyDialogFormValue.value.Format) { |
| | | callback('请å
鿩屿§æ ¼å¼ï¼åå¡«åé»è®¤å¼'); |
| | | } else { |
| | | if (propertyDialogFormValue.value.Format === PropertyFormatEnum.Numeric && !numberRegex.test(value)) { |
| | | callback('请è¾å
¥æ°å'); |
| | | } else if ( |
| | | [PropertyFormatEnum.Bigint, PropertyFormatEnum.Integer].includes(propertyDialogFormValue.value.Format) && |
| | | !integerRegex.test(value) |
| | | ) { |
| | | callback('请è¾å
¥æ´æ°'); |
| | | } else if (PropertyFormatEnum.Time === propertyDialogFormValue.value.Format && !dateRegex.test(value)) { |
| | | callback('请è¾å
¥æ£ç¡®çæ¥ææ ¼å¼ï¼yyyy-MM-dd HH:mm:ss æ yyyy-MM-ddï¼'); |
| | | } else if (PropertyFormatEnum.Boolean === propertyDialogFormValue.value.Format && !booleanRegex.test(value)) { |
| | | callback('è¯·éæ© true æ false'); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | const propertyDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Code: [{ required: true, validator: propertyCodeValidator as any, trigger: 'blur' }], |
| | | Format: [{ required: true, message: 'è¯·éæ©æ ¼å¼', trigger: 'change' }], |
| | | DefaultValue: [{ validator: defaultValueValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const openOperatePropertyDialog = (row?) => { |
| | | if (!currentListID.value) { |
| | | return ElMessage.warning('请å
鿩屿§ç»ï¼'); |
| | | } |
| | | if (row) { |
| | | isEditPropertyDialog.value = true; |
| | | const { ID, Name, Format, UnitName, IsNull, DefaultValue, Code, Description } = row; |
| | | propertyInitialCode.value = Code; |
| | | propertyDialogFormValue.value = deepClone({ ID, Name, Format, UnitName, IsNull, DefaultValue, Code, Description }); |
| | | } else { |
| | | isEditPropertyDialog.value = false; |
| | | propertyInitialCode.value = ''; |
| | | propertyDialogFormValue.value = { |
| | | GroupID: currentListID.value, |
| | | Name: '', |
| | | Format: null, |
| | | UnitName: '', |
| | | IsNull: true, |
| | | DefaultValue: '', |
| | | Code: '', |
| | | Description: '', |
| | | }; |
| | | } |
| | | propertyDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closePropertyDialog = () => { |
| | | propertyDialogIsShow.value = false; |
| | | propertyDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitPropertyFormValue = async () => { |
| | | const valid = await propertyDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditPropertyDialog.value) { |
| | | const res = await UpdateAProperty(propertyDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closePropertyDialog(); |
| | | ElMessage.success('ä¿®æ¹å±æ§æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAProperty(propertyDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closePropertyDialog(); |
| | | ElMessage.success('æ·»å 屿§æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãå é¤å±æ§ç»æä½, dialog init====================== |
| | | const isEditPropertyGroupDialog = ref(false); |
| | | const propertyGroupDialogTitle = computed(() => { |
| | | return isEditPropertyGroupDialog.value ? 'ä¿®æ¹å±æ§ç»' : 'æ·»å 屿§ç»'; |
| | | }); |
| | | const propertyGroupDialogHeaderIcon = computed(() => { |
| | | return isEditPropertyGroupDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const propertyGroupDialogFormValue = ref(null); |
| | | const propertyGroupDialogIsShow = ref(false); |
| | | const propertyGroupDialogFormRef = ref<FormInstance>(null); |
| | | |
| | | const propertyGroupDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | }); |
| | | const openOperatePropertyGroupDialog = (data?) => { |
| | | if (data) { |
| | | isEditPropertyGroupDialog.value = true; |
| | | const { ID, Name, Description } = data; |
| | | propertyGroupDialogFormValue.value = deepClone({ ID, Name, Description }); |
| | | } else { |
| | | isEditPropertyGroupDialog.value = false; |
| | | propertyGroupDialogFormValue.value = { TypeID: currentSelectID.value, Name: '', Description: '' }; |
| | | } |
| | | propertyGroupDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closePropertyGroupDialog = () => { |
| | | propertyGroupDialogIsShow.value = false; |
| | | propertyGroupDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitPropertyGroupFormValue = async () => { |
| | | const valid = await propertyGroupDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditPropertyGroupDialog.value) { |
| | | const res = await UpdateAPropertyGroup(propertyGroupDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(); |
| | | closePropertyGroupDialog(); |
| | | ElMessage.success('ä¿®æ¹å±æ§ç»æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§ç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§ç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAPropertyGroup(propertyGroupDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(); |
| | | closePropertyGroupDialog(); |
| | | ElMessage.success('æ·»å 屿§ç»æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§ç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§ç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å é¤å·¦ä¾§æ 屿§ç»æ°æ® ====================== |
| | | |
| | | const deleteCurrentPropertyGroup = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤å±æ§ç»ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAPropertyGroup( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤å±æ§ç»æå'); |
| | | getListTreeData(true); |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§ç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§ç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | //#region ====================== 屿§é项 drawer ====================== |
| | | const drawerIsShow = ref(false); |
| | | const currentProp = ref(null); |
| | | |
| | | const openDrawer = (row: any) => { |
| | | drawerIsShow.value = true; |
| | | currentProp.value = row; |
| | | getChoiceTableData(); |
| | | }; |
| | | //#endregion |
| | | //#region ====================== 屿§é项CRUD ====================== |
| | | //#region ====================== è·åãå é¤è¡¨æ ¼æ°æ® ====================== |
| | | const choiceTableLoading = ref(false); |
| | | const choiceTableData = ref([]); |
| | | const isChoiceTableDrag = ref(false); |
| | | const nextChoiceValue = computed(() => { |
| | | if (arrayIsEmpty(choiceTableData.value)) { |
| | | return '0'; |
| | | } else { |
| | | const lastItem = choiceTableData.value.at(-1); |
| | | if (integerRegex.test(lastItem.Choice)) { |
| | | return Number(lastItem.Choice) + 1 + ''; |
| | | } else { |
| | | return ''; |
| | | } |
| | | } |
| | | }); |
| | | const getChoiceTableData = async () => { |
| | | choiceTableLoading.value = true; |
| | | const res = await GetAllPropChoice({ PropID: currentProp.value.ID }, props.request).finally(() => { |
| | | choiceTableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | choiceTableData.value = res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·å屿§é项失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentChoiceRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤å±æ§é项ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAPropChoice( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤å±æ§é项æå'); |
| | | getChoiceTableData(); |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§é项失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤å±æ§é项失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | const choiceQueryParams = ref({ |
| | | Name: '', |
| | | }); |
| | | const { handleDragStatus: handleChoiceTableDrag, draggableTableRef: draggableChoiceTableRef } = useTableSort( |
| | | choiceTableData, |
| | | UpdatePropChoiceSorter, |
| | | getChoiceTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è®°å½æä½, dialog init====================== |
| | | const isEditChoiceDialog = ref(false); |
| | | const choiceDialogTitle = computed(() => { |
| | | return isEditChoiceDialog.value ? 'ä¿®æ¹å±æ§é项' : 'æ·»å 屿§é项'; |
| | | }); |
| | | const choiceDialogHeaderIcon = computed(() => { |
| | | return isEditChoiceDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const choiceDialogFormValue = ref(null); |
| | | const choiceDialogIsShow = ref(false); |
| | | const choiceDialogFormRef = ref<FormInstance>(null); |
| | | |
| | | const choiceDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Choice: [{ required: true, message: '请è¾å
¥å±æ§é项', trigger: 'blur' }], |
| | | DefaultValue: [{ validator: defaultValueValidator, trigger: 'blur' }], |
| | | }); |
| | | const openOperateChoiceDialog = (row?) => { |
| | | if (row) { |
| | | isEditChoiceDialog.value = true; |
| | | const { ID, Name, Choice, Description } = row; |
| | | choiceDialogFormValue.value = deepClone({ ID, Name, Choice, Description }); |
| | | } else { |
| | | isEditChoiceDialog.value = false; |
| | | choiceDialogFormValue.value = { PropID: currentProp.value.ID, Name: '', Choice: nextChoiceValue.value, Description: '' }; |
| | | } |
| | | choiceDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeChoiceDialog = () => { |
| | | choiceDialogIsShow.value = false; |
| | | choiceDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitChoiceFormValue = async () => { |
| | | const valid = await choiceDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditChoiceDialog.value) { |
| | | const res = await UpdateAPropChoice(choiceDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getChoiceTableData(); |
| | | closeChoiceDialog(); |
| | | ElMessage.success('ä¿®æ¹å±æ§é项æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§é项失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹å±æ§é项失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAPropChoice(choiceDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getChoiceTableData(); |
| | | closeChoiceDialog(); |
| | | ElMessage.success('æ·»å 屿§é项æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§é项失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å 屿§é项失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | onMounted(() => { |
| | | getSelectTreeData(); |
| | | }); |
| | | </script> |
| | | <style scoped lang="scss"></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="h100 flex-column"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <el-form :inline="true" :model="queryParams"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input v-model="queryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperateDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch v-model="isDragStatus" @change="handleDragStatus" inline-prompt active-icon="ele-Check" inactive-icon="ele-Close"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <el-table |
| | | v-loading="tableLoading" |
| | | ref="draggableTableRef" |
| | | border |
| | | row-key="ID" |
| | | :row-class-name="isDragStatus ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="displayTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" width="220" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Color" label="é¢è²" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <div class="w100 h100 flex-center"> |
| | | <div style="width: 65px; height: 25px" :style="'background-color:' + scope.row.Color"></div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="Grade" label="æ¥è¦ç级" show-overflow-tooltip /> |
| | | <el-table-column prop="Description" width="550" label="说æ" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" width="150" fixed="right" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateDialog(scope.row)"> ç¼è¾ </el-button> |
| | | <el-button |
| | | icon="ele-Delete" |
| | | size="small" |
| | | text |
| | | type="danger" |
| | | @click=" |
| | | deleteCurrentRow(scope.row, 'æ¥è¦ç级', alarmLevelApi.DeleteABasicSysAlarmLevel, () => { |
| | | getTableData(); |
| | | }) |
| | | " |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | <el-dialog :destroy-on-close="true" v-model="dialogIsShow" width="450" :close-on-click-modal="false" @closed="closeDialog"> |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="dialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ dialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | <el-form :model="dialogFormValue" ref="dialogFormRef" :rules="dialogFormRules" label-width="78"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="dialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é¢è²" prop="Color"> |
| | | <el-color-picker v-model="dialogFormValue.Color" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥è¦ç级" prop="Grade"> |
| | | <el-input-number class="w100" placeholder="请è¾å
¥æ¥è¦ç级" v-model="dialogFormValue.Grade"></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="dialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ElMessage, FormInstance, FormRules } from 'element-plus'; |
| | | |
| | | import { ref, onMounted, computed, PropType } from 'vue'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { useTableSort } from '/@/hooks/useTableSort'; |
| | | |
| | | import * as alarmLevelApi from '/@/api/basic/alarmLevel'; |
| | | import { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import { deleteCurrentRow } from '/@/utils/util'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | |
| | | //#region ====================== è¡¨æ ¼æ°æ®ï¼table init ====================== |
| | | const tableLoading = ref(false); |
| | | const tableData = ref([]); |
| | | const isDragStatus = ref(false); |
| | | const getTableData = async () => { |
| | | tableLoading.value = true; |
| | | const res = await alarmLevelApi.GetAllBasicSysAlarmLevel(props.request).finally(() => { |
| | | tableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | const resData = (res.Data || []) as []; |
| | | tableData.value = resData; |
| | | } else { |
| | | ElMessage.error('è·åæ¥è¦ç级失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== è¡¨æ ¼æ¥è¯¢ãæåºï¼search form init ====================== |
| | | |
| | | const queryParams = ref({ |
| | | Name: '', |
| | | }); |
| | | const { handleDragStatus, draggableTableRef } = useTableSort( |
| | | tableData, |
| | | alarmLevelApi.UpdateBasicSysAlarmLevelSorter, |
| | | getTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(tableData, queryParams, getTableData); |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è®°å½æä½, dialog init====================== |
| | | const isEditDialog = ref(false); |
| | | const dialogTitle = computed(() => { |
| | | return isEditDialog.value ? 'ä¿®æ¹æ¥è¦ç级' : 'æ·»å æ¥è¦ç级'; |
| | | }); |
| | | const dialogHeaderIcon = computed(() => { |
| | | return isEditDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const dialogFormValue = ref(null); |
| | | const dialogIsShow = ref(false); |
| | | const dialogFormRef = ref<FormInstance>(null); |
| | | const initialGrade = ref(null); |
| | | const { uniquenessValidator } = useValidateUniqueness( |
| | | alarmLevelApi.IsExistBasicSysAlarmLevelGrade, |
| | | initialGrade, |
| | | 'æ¥è¦ç级', |
| | | 'Grade', |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | const dialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Color: [{ required: true, message: 'è¯·éæ©é¢è²', trigger: 'blur' }], |
| | | Grade: [{ required: true, validator: uniquenessValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const openOperateDialog = (row?) => { |
| | | if (row) { |
| | | isEditDialog.value = true; |
| | | const { ID, Name, Color, Grade, Description } = row; |
| | | initialGrade.value = Grade; |
| | | dialogFormValue.value = deepClone({ ID, Name, Color, Grade, Description }); |
| | | } else { |
| | | isEditDialog.value = false; |
| | | initialGrade.value = null; |
| | | dialogFormValue.value = { Name: '', Color: '', Grade: null, Description: '' }; |
| | | } |
| | | dialogIsShow.value = true; |
| | | }; |
| | | const closeDialog = () => { |
| | | dialogIsShow.value = false; |
| | | dialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitFormValue = async () => { |
| | | const valid = await dialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditDialog.value) { |
| | | const res = await alarmLevelApi.UpdateABasicSysAlarmLevel(dialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('ä¿®æ¹æ¥è¦ç级æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹æ¥è¦ç级失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹æ¥è¦ç级失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await alarmLevelApi.InsertABasicSysAlarmLevel(dialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTableData(); |
| | | closeDialog(); |
| | | ElMessage.success('æ·»å æ¥è¦ç级æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å æ¥è¦ç级失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å æ¥è¦ç级失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | //#endregion |
| | | |
| | | onMounted(() => { |
| | | getTableData(); |
| | | }); |
| | | </script> |
| | | <style scoped lang="scss"></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const enum AlarmStatusEnum { |
| | | Creation = 0, |
| | | Processing = 1, |
| | | FeedBack = 2, |
| | | } |
| | | |
| | | export const alarmStatusMap: Record<AlarmStatusEnum, string> = { |
| | | [AlarmStatusEnum.Creation]: 'å建', |
| | | [AlarmStatusEnum.Processing]: 'å¤ç', |
| | | [AlarmStatusEnum.FeedBack]: 'åé¦', |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- 左侧åç±»ç®å½æ ï¼ä¸é¨è¡¨æ ¼æä½ cardï¼ä¸é¨ table æ°æ®å±ç¤º --> |
| | | <div class="h100"> |
| | | <el-row :gutter="8" class="h100"> |
| | | <el-col :span="4" :xs="24" class="h100"> |
| | | <el-card shadow="hover" class="h100" v-loading="treeLoading"> |
| | | <!-- ç®å½æ --> |
| | | <LeftTreeByMgr |
| | | class="h100 left-tree-card" |
| | | ref="leftTreeRef" |
| | | :treedata="listTreeData" |
| | | title-name="åç»å表" |
| | | :show-more-operate="true" |
| | | :show-add="true" |
| | | :folderIcon="() => false" |
| | | :current-node-key="currentListID" |
| | | :expand-on-click-node="false" |
| | | :default-expand-all="true" |
| | | :show-sorter="true" |
| | | @click="handleClickNode" |
| | | :customDropdown="true" |
| | | @tree-add="openOperateGroupDialog" |
| | | @node-drag-end="dragNodeEnd" |
| | | > |
| | | <template #customDropdown="{ data, node }"> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item> |
| | | <el-button |
| | | @click.stop="() => openOperateGroupDialog(data)" |
| | | link |
| | | type="primary" |
| | | icon="ele-Edit" |
| | | style="cursor: pointer" |
| | | > |
| | | ç¼è¾ |
| | | </el-button> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item> |
| | | <el-button link type="danger" @click.stop="() => deleteCurrentGroup(data)" icon="ele-Delete" style="cursor: pointer"> |
| | | å é¤ |
| | | </el-button> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item> |
| | | <el-button @click.stop="() => openParentDlg(data)" link type="primary" icon="ele-Menu" style="cursor: pointer"> |
| | | ç¶çº§ |
| | | </el-button> |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="20" :xs="24" class="flex-column h100"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <!-- æ¥è¯¢ãéç½®ãæåºãå¢å 表å --> |
| | | <el-form :inline="true" :model="parasQueryParams"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input v-model="parasQueryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input v-model="parasQueryParams.Code" style="width: 226.4px" placeholder="ç¼ç " clearable /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryParasTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetParasQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperateParasDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | :disabled="displayParasTableData !== parasTableData" |
| | | v-model="isParasTableDrag" |
| | | @change="handleParasTableDrag" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <!-- æ°æ®å±ç¤ºè¡¨æ ¼ --> |
| | | <el-table |
| | | v-loading="parasTableLoading" |
| | | ref="draggableTypeTableRef" |
| | | border |
| | | row-key="ID" |
| | | :row-class-name="isParasTableDrag ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="displayParasTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" width="240" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Code" width="300" label="ç¼ç " show-overflow-tooltip /> |
| | | <el-table-column prop="Format" label="æ ¼å¼" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | {{ FORMAT_MAP[scope.row.Format] }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="PValue" label="åæ°å¼" show-overflow-tooltip /> |
| | | <el-table-column prop="Description" label="说æ" width="550" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" width="160" fixed="right" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateParasDialog(scope.row)"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentTypeRow(scope.row)"> |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="groupDialogIsShow" |
| | | width="400" |
| | | :close-on-click-modal="false" |
| | | @closed="closeGroupDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="groupDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ groupDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="groupDialogFormValue" ref="groupDialogFormRef" :rules="groupDialogFormRules" label-width="55"> |
| | | <el-form-item label="ç¶çº§" v-if="!isEditGroupDialog" prop="ParentID"> |
| | | <el-tree-select |
| | | default-expand-all |
| | | filterable |
| | | style="width: 100%" |
| | | v-model="groupDialogFormValue.ParentID" |
| | | :props="{ |
| | | id: 'ID', |
| | | label: 'Name', |
| | | children: 'Children', |
| | | }" |
| | | :data="listTreeData" |
| | | node-key="ID" |
| | | :clearable="true" |
| | | :accordion="true" |
| | | :expandNode="false" |
| | | :check-strictly="true" |
| | | placeholder="è¯·éæ©ç¶çº§" |
| | | > |
| | | </el-tree-select> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="groupDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="groupDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeGroupDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitGroupFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <!-- å¢å ãä¿®æ¹æ°æ®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="parasDialogIsShow" |
| | | width="400" |
| | | :close-on-click-modal="false" |
| | | @closed="closeParasDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="parasDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ parasDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="parasDialogFormValue" ref="parasDialogFormRef" :rules="parasDialogFormRules" label-width="78"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="parasDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input placeholder="请è¾å
¥å¯ä¸ç¼ç " v-model="parasDialogFormValue.Code"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ ¼å¼" prop="Format"> |
| | | <el-select v-model="parasDialogFormValue.Format" class="w100" filterable @change="parasFormatChange"> |
| | | <el-option |
| | | v-for="item of Object.keys(FORMAT_MAP)" |
| | | :key="item" |
| | | :label="FORMAT_MAP[item]" |
| | | :value="parseInt(item)" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åæ°å¼" prop="PValue"> |
| | | <!-- ææ¬ã夿æ¬ãæ°å¼ãæ´æ°ãé¿æ´æ° --> |
| | | <el-input |
| | | v-if="INPUT_FORMAT.includes(parasDialogFormValue.Format)" |
| | | v-model="parasDialogFormValue.PValue" |
| | | v-bind="getInputProps(parasDialogFormValue.Format)" |
| | | ></el-input> |
| | | <!-- æ¶é´è¾å
¥ï¼å
æ¬æ choiceï¼ --> |
| | | <el-date-picker |
| | | class="w100" |
| | | v-else-if="parasDialogFormValue.Format === PropertyFormatEnum.Time" |
| | | value-format="YYYY-MM-DD" |
| | | v-model="parasDialogFormValue.PValue" |
| | | > |
| | | </el-date-picker> |
| | | <!-- å¸å°å¼è¾å
¥ --> |
| | | <el-radio-group |
| | | class="w100" |
| | | v-else-if="parasDialogFormValue.Format === PropertyFormatEnum.Boolean" |
| | | v-model="parasDialogFormValue.PValue" |
| | | > |
| | | <el-radio label="true" :value="true">æ¯</el-radio> |
| | | <el-radio label="false" :value="false">å¦</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="parasDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeParasDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitParasFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <ParentDialog |
| | | v-model="parentDlgIsShow" |
| | | :data="listTreeData" |
| | | :api="parasGroupApi.UpdateBasicSysParasGroupTreeSortCode" |
| | | :rowData="parentDlgMapRow" |
| | | @submitSuccess="submitParentForm" |
| | | > |
| | | </ParentDialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import type { PropType } from 'vue'; |
| | | import { ref, computed, onMounted, nextTick } from 'vue'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | |
| | | import * as parasApi from '/@/api/basic/sys/sysParas'; |
| | | import * as parasGroupApi from '/@/api/basic/sys/sysParasGroup'; |
| | | import { FORMAT_MAP, PropertyFormatEnum, INPUT_FORMAT } from '/@/projectCom/basic/types'; |
| | | |
| | | import type { FormInstance, FormRules } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { updateSort, useTableSort } from '/@/hooks/useTableSort'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | import { EXTEND_TYPE_MAP } from '/@/projectCom/basic/types'; |
| | | import type { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import ParentDialog from '/@/components/dialog/parentDialog/ParentDialog.vue'; |
| | | import { arrayIsEmpty, convertListToTree, flatten } from '/@/utils/util'; |
| | | import { booleanRegex, dateRegex, integerRegex, numberRegex } from '/@/utils/toolsValidate'; |
| | | |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | //#region ====================== å·¦ä¾§æ æ°æ®ï¼tree init ====================== |
| | | const leftTreeRef = ref(null); |
| | | const treeLoading = ref(false); |
| | | const listTreeData = ref([]); |
| | | const currentListID = ref(''); |
| | | const currentNode = ref(null); |
| | | const handleClickNode = (data) => { |
| | | nextTick(() => { |
| | | leftTreeRef.value?.treeRef.setCurrentKey(data.ID); |
| | | }); |
| | | currentListID.value = data.ID; |
| | | currentNode.value = data; |
| | | getTypeTableData(); |
| | | }; |
| | | const getListTreeData = async (selectFirst = false) => { |
| | | treeLoading.value = true; |
| | | const res = await parasGroupApi.GetAllBasicSysParasGroup(props.request).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | listTreeData.value = convertListToTree(res.Data) || []; |
| | | if (selectFirst) { |
| | | const firstListTreeNode = listTreeData.value[0]; |
| | | if (firstListTreeNode) { |
| | | handleClickNode(firstListTreeNode); |
| | | } else { |
| | | parasTableData.value = []; |
| | | currentNode.value = null; |
| | | currentListID.value = null; |
| | | } |
| | | } else { |
| | | currentNode.value && handleClickNode(currentNode.value); |
| | | } |
| | | } else { |
| | | ElMessage.error('è·ååç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | //#region ====================== è·åãå é¤è¡¨æ ¼æ°æ® ====================== |
| | | const parasTableLoading = ref(false); |
| | | const parasTableData = ref([]); |
| | | const isParasTableDrag = ref(false); |
| | | const getTypeTableData = async () => { |
| | | parasTableLoading.value = true; |
| | | const res = await parasApi.GetBasicSysParasByGroupID({ GroupID: currentListID.value }, props.request).finally(() => { |
| | | parasTableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | parasTableData.value = res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·åç³»ç»åæ°å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentTypeRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤ç³»ç»åæ°ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await parasApi.DeleteABasicSysParas( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤ç³»ç»åæ°æå'); |
| | | getTypeTableData(); |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»åæ°å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»åæ°å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== æç´¢è¡¨æ ¼ï¼å¯¹è¡¨æ ¼æåº ====================== |
| | | const parasQueryParams = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }); |
| | | const { handleDragStatus: handleParasTableDrag, draggableTableRef: draggableTypeTableRef } = useTableSort( |
| | | parasTableData, |
| | | parasApi.UpdateBasicSysParasSorter, |
| | | getTypeTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const { |
| | | resetQuery: resetParasQuery, |
| | | handleQueryTable: handleQueryParasTable, |
| | | displayTableData: displayParasTableData, |
| | | } = useQueryTable(parasTableData, parasQueryParams, getTypeTableData); |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è¡¨æ ¼è®°å½æä½, dialog init====================== |
| | | const isEditTypeDialog = ref(false); |
| | | const parasDialogTitle = computed(() => { |
| | | return isEditTypeDialog.value ? 'ä¿®æ¹ç³»ç»åæ°' : 'æ·»å ç³»ç»åæ°'; |
| | | }); |
| | | const parasDialogHeaderIcon = computed(() => { |
| | | return isEditTypeDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const parasDialogFormValue = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }) as any; |
| | | const parasDialogIsShow = ref(false); |
| | | const parasDialogFormRef = ref<FormInstance>(null); |
| | | const parasInitialCode = ref(''); |
| | | const { uniquenessValidator: parasCodeValidator } = useValidateUniqueness( |
| | | parasApi.GetIsExistBasicSysParasCode, |
| | | parasInitialCode, |
| | | 'ç¼ç ', |
| | | 'Code', |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const pValueValidator = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback('å¿
填项ï¼'); |
| | | } else if (value && parasDialogFormValue.value.Format === PropertyFormatEnum.Numeric && !numberRegex.test(value)) { |
| | | callback('请è¾å
¥æ°åï¼'); |
| | | } else if ( |
| | | value && |
| | | [PropertyFormatEnum.Bigint, PropertyFormatEnum.Integer].includes(parasDialogFormValue.value.Format) && |
| | | !integerRegex.test(value) |
| | | ) { |
| | | callback('请è¾å
¥æ´æ°!'); |
| | | } else if (value && PropertyFormatEnum.Time === parasDialogFormValue.value.Format && !dateRegex.test(value)) { |
| | | callback('请è¾å
¥æ£ç¡®çæ¥ææ ¼å¼ï¼yyyy-MM-dd HH:mm:ss æ yyyy-MM-ddï¼'); |
| | | } else if (value && PropertyFormatEnum.Boolean === parasDialogFormValue.value.Format && !booleanRegex.test(value)) { |
| | | callback('请è¾å
¥ true æ false'); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | |
| | | const parasDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Code: [{ required: true, validator: parasCodeValidator as any, trigger: 'blur' }], |
| | | Format: [{ required: true, message: 'è¯·éæ©æ ¼å¼', trigger: 'change' }], |
| | | PValue: [{ required: true, validator: pValueValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const openOperateParasDialog = (row?) => { |
| | | if (!currentListID.value) { |
| | | return ElMessage.warning('请å
éæ©åç»ï¼'); |
| | | } |
| | | if (row) { |
| | | isEditTypeDialog.value = true; |
| | | const { ID, Name, Code, Description, Format, PValue } = row; |
| | | parasInitialCode.value = Code; |
| | | parasDialogFormValue.value = deepClone({ ID, Name, Code, Description, Format, PValue }); |
| | | } else { |
| | | isEditTypeDialog.value = false; |
| | | parasInitialCode.value = ''; |
| | | |
| | | parasDialogFormValue.value = { |
| | | GroupID: currentListID.value, |
| | | Name: '', |
| | | Code: '', |
| | | Description: '', |
| | | Format: PropertyFormatEnum.Integer, |
| | | PValue: '', |
| | | }; |
| | | } |
| | | parasDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeParasDialog = () => { |
| | | parasDialogIsShow.value = false; |
| | | parasDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitParasFormValue = async () => { |
| | | const valid = await parasDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditTypeDialog.value) { |
| | | const res = await parasApi.UpdateABasicSysParas(parasDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTypeTableData(); |
| | | parasDialogIsShow.value = false; |
| | | ElMessage.success('ä¿®æ¹ç³»ç»åæ°æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»åæ°å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»åæ°å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await parasApi.InsertABasicSysParas(parasDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTypeTableData(); |
| | | parasDialogIsShow.value = false; |
| | | ElMessage.success('æ·»å ç³»ç»åæ°æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»åæ°å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»åæ°å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å é¤å·¦ä¾§æ ç³»ç»åç»æ°æ® ====================== |
| | | |
| | | const deleteCurrentGroup = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤ç³»ç»åç»ï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await parasGroupApi.DeleteABasicSysParasGroup( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤ç³»ç»åç»æå'); |
| | | getListTreeData(true); |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»åç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»åç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãå é¤ç³»ç»åç»æä½, dialog init====================== |
| | | const isEditGroupDialog = ref(false); |
| | | const groupDialogTitle = computed(() => { |
| | | return isEditGroupDialog.value ? 'ä¿®æ¹ç³»ç»åç»' : 'æ·»å ç³»ç»åç»'; |
| | | }); |
| | | const groupDialogHeaderIcon = computed(() => { |
| | | return isEditGroupDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const groupDialogFormValue = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | Description: '', |
| | | }) as any; |
| | | const groupDialogIsShow = ref(false); |
| | | const groupDialogFormRef = ref<FormInstance>(null); |
| | | |
| | | const groupDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | }); |
| | | const openOperateGroupDialog = (data?) => { |
| | | if (data) { |
| | | isEditGroupDialog.value = true; |
| | | const { ID, Name, Code, Description } = data; |
| | | groupDialogFormValue.value = deepClone({ ID, Name, Code, Description }); |
| | | } else { |
| | | isEditGroupDialog.value = false; |
| | | groupDialogFormValue.value = { Name: '', Code: '', Description: '' }; |
| | | } |
| | | groupDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeGroupDialog = () => { |
| | | groupDialogIsShow.value = false; |
| | | groupDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitGroupFormValue = async () => { |
| | | const valid = await groupDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditGroupDialog.value) { |
| | | const res = await parasGroupApi.UpdateABasicSysParasGroup(groupDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(); |
| | | groupDialogIsShow.value = false; |
| | | ElMessage.success('ä¿®æ¹ç³»ç»åç»æå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»åç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»åç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await parasGroupApi.InsertABasicSysParasGroup(groupDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(arrayIsEmpty(listTreeData.value)); |
| | | groupDialogIsShow.value = false; |
| | | ElMessage.success('æ·»å ç³»ç»åç»æå'); |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»åç»å¤±è´¥'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»åç»å¤±è´¥' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å·¦ä¾§æ ææ½ ====================== |
| | | const dragNodeEnd = async (draggingNode, dropNode, dropType, ev, originTreeData) => { |
| | | updateSort( |
| | | listTreeData, |
| | | flatten(listTreeData.value), |
| | | originTreeData, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | getListTreeData(); |
| | | }, |
| | | parasGroupApi.UpdateBasicSysParasGroupSorter, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | }, |
| | | undefined, |
| | | props.request |
| | | ); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== æè½½æ¶è·ååå§æ°æ® ====================== |
| | | onMounted(() => { |
| | | getListTreeData(true); |
| | | }); |
| | | //#endregion |
| | | |
| | | //#region ====================== ä¿®æ¹ç¶çº§ ====================== |
| | | const parentDlgIsShow = ref(false); |
| | | const parentDlgMapRow = ref(null); |
| | | const openParentDlg = (row?) => { |
| | | parentDlgMapRow.value = row; |
| | | parentDlgIsShow.value = true; |
| | | }; |
| | | const submitParentForm = (res) => { |
| | | getListTreeData(); |
| | | }; |
| | | //#endregion |
| | | const getInputProps = (format: PropertyFormatEnum) => { |
| | | let inputProps = {}; |
| | | switch (format) { |
| | | case PropertyFormatEnum.MultiText: |
| | | inputProps = { |
| | | type: 'textarea', |
| | | row: 3, |
| | | }; |
| | | } |
| | | return { |
| | | ...inputProps, |
| | | } as any; |
| | | }; |
| | | |
| | | const parasFormatChange = () => { |
| | | parasDialogFormValue.value.PValue = ''; |
| | | }; |
| | | </script> |
| | | <style scoped lang="scss"></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- 左侧åç±»ç®å½æ ï¼ä¸é¨è¡¨æ ¼æä½ cardï¼ä¸é¨ table æ°æ®å±ç¤º --> |
| | | <div class="h100"> |
| | | <el-row :gutter="8" class="h100"> |
| | | <el-col :span="4" :xs="24" class="h100"> |
| | | <el-card shadow="hover" class="h100" v-loading="treeLoading"> |
| | | <!-- ç®å½æ --> |
| | | <LeftTreeByMgr |
| | | class="h100 left-tree-card" |
| | | ref="leftTreeRef" |
| | | :treedata="listTreeData" |
| | | title-name="模åå表" |
| | | :show-more-operate="true" |
| | | :show-add="true" |
| | | :show-sorter="true" |
| | | :current-node-key="currentListID" |
| | | :node-icon="() => 'ele-Document'" |
| | | :tooltip="(_, data) => data.Code" |
| | | @click="handleClickNode" |
| | | @tree-edit="openOperateModuleDialog" |
| | | @tree-delete="deleteCurrentModule" |
| | | @tree-add="openOperateModuleDialog" |
| | | @node-drag-end="dragNodeEnd" |
| | | > |
| | | </LeftTreeByMgr> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="20" :xs="24" class="flex-column h100"> |
| | | <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> |
| | | <!-- æ¥è¯¢ãéç½®ãæåºãå¢å 表å --> |
| | | <el-form :inline="true" :model="typeQueryParams"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input v-model="typeQueryParams.Name" style="width: 226.4px" placeholder="åç§°" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input v-model="typeQueryParams.Code" style="width: 226.4px" placeholder="ç¼ç " clearable /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTypeTable"> æ¥è¯¢ </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetTypeQuery">éç½® </el-button> |
| | | <el-button icon="ele-Plus" @click="openOperateTypeDialog()"> å¢å </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="æåº"> |
| | | <el-switch |
| | | :disabled="displayTypeTableData !== typeTableData" |
| | | v-model="isTypeTableDrag" |
| | | @change="handleTypeTableDrag" |
| | | inline-prompt |
| | | active-icon="ele-Check" |
| | | inactive-icon="ele-Close" |
| | | > |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card class="flex-auto scroll-table-card" shadow="hover" style="margin-top: 8px"> |
| | | <!-- æ°æ®å±ç¤ºè¡¨æ ¼ --> |
| | | <el-table |
| | | v-loading="typeTableLoading" |
| | | ref="draggableTypeTableRef" |
| | | border |
| | | row-key="ID" |
| | | :row-class-name="isTypeTableDrag ? 'cursor-move' : 'cursor-pointer'" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ textAlign: 'center' }" |
| | | :data="displayTypeTableData" |
| | | style="width: 100%" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column prop="Name" label="åç§°" fixed="left" show-overflow-tooltip /> |
| | | <el-table-column prop="Code" label="ç¼ç " show-overflow-tooltip /> |
| | | |
| | | <el-table-column prop="ExtendType" label="æå±ç±»å" align="center" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-tag> |
| | | {{ EXTEND_TYPE_MAP[scope.row.ExtendType] }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="Description" label="说æ" width="550" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" fixed="right" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <el-button icon="ele-Edit" size="small" text type="primary" @click="openOperateTypeDialog(scope.row)"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentTypeRow(scope.row)"> |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- å¢å ãä¿®æ¹æ°æ®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :destroy-on-close="true" |
| | | v-model="moduleDialogIsShow" |
| | | width="400" |
| | | :close-on-click-modal="false" |
| | | @closed="closeModuleDialog" |
| | | > |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="moduleDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ moduleDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="moduleDialogFormValue" ref="moduleDialogFormRef" :rules="moduleDialogFormRules" label-width="55"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="moduleDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input placeholder="请è¾å
¥å¯ä¸ç¼ç " v-model="moduleDialogFormValue.Code"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="moduleDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeModuleDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitModuleFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <!-- å¢å ãä¿®æ¹æ°æ®å¯¹è¯æ¡ --> |
| | | <el-dialog :destroy-on-close="true" v-model="typeDialogIsShow" width="400" :close-on-click-modal="false" @closed="closeTypeDialog"> |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <SvgIcon :name="typeDialogHeaderIcon" :size="16" style="margin-right: 3px; display: inline; vertical-align: middle" /> |
| | | <span> {{ typeDialogTitle }} </span> |
| | | </div> |
| | | </template> |
| | | |
| | | <el-form :model="typeDialogFormValue" ref="typeDialogFormRef" :rules="typeDialogFormRules" label-width="78"> |
| | | <el-form-item label="åç§°" prop="Name"> |
| | | <el-input placeholder="请è¾å
¥åç§°" v-model="typeDialogFormValue.Name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="Code"> |
| | | <el-input placeholder="请è¾å
¥å¯ä¸ç¼ç " v-model="typeDialogFormValue.Code"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå±ç±»å" prop="ExtendType"> |
| | | <el-select placeholder="è¯·éæ©æå±ç±»å" v-model="typeDialogFormValue.ExtendType" class="w100" filterable> |
| | | <el-option |
| | | v-for="item of Object.keys(EXTEND_TYPE_MAP)" |
| | | :key="item" |
| | | :value="parseInt(item)" |
| | | :label="EXTEND_TYPE_MAP[item]" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="说æ" prop="Description"> |
| | | <el-input placeholder="请è¾å
¥è¯´æ" v-model="typeDialogFormValue.Description" type="textarea" :rows="3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div> |
| | | <el-button @click="closeTypeDialog">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitTypeFormValue">ç¡® å®</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import type { PropType } from 'vue'; |
| | | import { computed, nextTick, onMounted, ref } from 'vue'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | |
| | | import type { AxiosRequestConfig, AxiosResponse } from 'axios'; |
| | | import type { FormInstance, FormRules } from 'element-plus'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { |
| | | // ç³»ç»æ¨¡å |
| | | DeleteAModule, |
| | | // ç³»ç»ç±»å |
| | | DeleteAType, |
| | | GetAllModule, |
| | | GetAllTypeByID, |
| | | GetIsExistModuleCode, |
| | | GetIsExistTypeCode, |
| | | InsertAModule, |
| | | InsertAType, |
| | | UpdateAModule, |
| | | UpdateAType, |
| | | UpdateModuleSorter, |
| | | UpdateTypeSorter, |
| | | } from '/@/api/basic/dataManage/typeManage'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { updateSort, useTableSort } from '/@/hooks/useTableSort'; |
| | | import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; |
| | | import { EXTEND_TYPE_MAP } from '/@/projectCom/basic/types'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | const props = defineProps({ |
| | | request: { |
| | | type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, |
| | | }, |
| | | }); |
| | | //#region ====================== å·¦ä¾§æ æ°æ®ï¼tree init ====================== |
| | | const leftTreeRef = ref(null); |
| | | const treeLoading = ref(false); |
| | | const listTreeData = ref([]); |
| | | const currentListID = ref(''); |
| | | const currentNode = ref(null); |
| | | const handleClickNode = (data) => { |
| | | nextTick(() => { |
| | | leftTreeRef.value?.treeRef.setCurrentKey(data.ID); |
| | | }); |
| | | currentListID.value = data.ID; |
| | | currentNode.value = data; |
| | | getTypeTableData(); |
| | | }; |
| | | const getListTreeData = async (selectFirst = false) => { |
| | | treeLoading.value = true; |
| | | const res = await GetAllModule(props.request).finally(() => { |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | listTreeData.value = res.Data || []; |
| | | if (selectFirst) { |
| | | const firstListTreeNode = listTreeData.value[0]; |
| | | if (firstListTreeNode) { |
| | | handleClickNode(firstListTreeNode); |
| | | } else { |
| | | typeTableData.value = []; |
| | | currentNode.value = null; |
| | | currentListID.value = null; |
| | | } |
| | | } else { |
| | | currentNode.value && handleClickNode(currentNode.value); |
| | | } |
| | | } else { |
| | | ElMessage.error('è·å模å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | //#endregion |
| | | //#region ====================== è·åãå é¤è¡¨æ ¼æ°æ® ====================== |
| | | const typeTableLoading = ref(false); |
| | | const typeTableData = ref([]); |
| | | const isTypeTableDrag = ref(false); |
| | | const getTypeTableData = async () => { |
| | | typeTableLoading.value = true; |
| | | const res = await GetAllTypeByID({ ModuleID: currentListID.value }, props.request).finally(() => { |
| | | typeTableLoading.value = false; |
| | | }); |
| | | if (res?.Code === 0) { |
| | | typeTableData.value = res.Data || []; |
| | | } else { |
| | | ElMessage.error('è·åç³»ç»ç±»å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }; |
| | | const deleteCurrentTypeRow = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤ç³»ç»ç±»åï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAType( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤ç³»ç»ç±»åæå'); |
| | | getTypeTableData(); |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»ç±»å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»ç±»å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== æç´¢è¡¨æ ¼ï¼å¯¹è¡¨æ ¼æåº ====================== |
| | | const typeQueryParams = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }); |
| | | const { handleDragStatus: handleTypeTableDrag, draggableTableRef: draggableTypeTableRef } = useTableSort( |
| | | typeTableData, |
| | | UpdateTypeSorter, |
| | | getTypeTableData, |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const { |
| | | resetQuery: resetTypeQuery, |
| | | handleQueryTable: handleQueryTypeTable, |
| | | displayTableData: displayTypeTableData, |
| | | } = useQueryTable(typeTableData, typeQueryParams, getTypeTableData); |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãä¿®æ¹è¡¨æ ¼è®°å½æä½, dialog init====================== |
| | | const isEditTypeDialog = ref(false); |
| | | const typeDialogTitle = computed(() => { |
| | | return isEditTypeDialog.value ? 'ä¿®æ¹ç³»ç»ç±»å' : 'æ·»å ç³»ç»ç±»å'; |
| | | }); |
| | | const typeDialogHeaderIcon = computed(() => { |
| | | return isEditTypeDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const typeDialogFormValue = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | }) as any; |
| | | const typeDialogIsShow = ref(false); |
| | | const typeDialogFormRef = ref<FormInstance>(null); |
| | | const typeInitialCode = ref(''); |
| | | const { uniquenessValidator: typeCodeValidator } = useValidateUniqueness( |
| | | GetIsExistTypeCode, |
| | | typeInitialCode, |
| | | 'ç¼ç ', |
| | | 'Code', |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const typeDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Code: [{ required: true, validator: typeCodeValidator as any, trigger: 'blur' }], |
| | | ExtendType: [{ required: true, message: 'è¯·éæ©æå±ç±»å', trigger: 'blur' }], |
| | | }); |
| | | const openOperateTypeDialog = (row?) => { |
| | | if (!currentListID.value) { |
| | | return ElMessage.warning('请å
éæ©æ¨¡åï¼'); |
| | | } |
| | | if (row) { |
| | | isEditTypeDialog.value = true; |
| | | const { ID, Name, Code, Description, ExtendType } = row; |
| | | typeInitialCode.value = Code; |
| | | typeDialogFormValue.value = deepClone({ ID, Name, Code, Description, ExtendType }); |
| | | } else { |
| | | isEditTypeDialog.value = false; |
| | | typeInitialCode.value = ''; |
| | | |
| | | typeDialogFormValue.value = { ModuleID: currentListID.value, Name: '', Code: '', Description: '', ExtendType: null }; |
| | | } |
| | | typeDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeTypeDialog = () => { |
| | | typeDialogIsShow.value = false; |
| | | typeDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitTypeFormValue = async () => { |
| | | const valid = await typeDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditTypeDialog.value) { |
| | | const res = await UpdateAType(typeDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTypeTableData(); |
| | | typeDialogIsShow.value = false; |
| | | ElMessage.success('ä¿®æ¹ç³»ç»ç±»åæå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»ç±»å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»ç±»å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAType(typeDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getTypeTableData(); |
| | | typeDialogIsShow.value = false; |
| | | ElMessage.success('æ·»å ç³»ç»ç±»åæå'); |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»ç±»å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»ç±»å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å é¤å·¦ä¾§æ ç³»ç»æ¨¡åæ°æ® ====================== |
| | | |
| | | const deleteCurrentModule = (row: any) => { |
| | | ElMessageBox.confirm(`ç¡®å®å é¤ç³»ç»æ¨¡åï¼ã${row.Name}ã?`, 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | const res = await DeleteAModule( |
| | | { |
| | | ID: row.ID, |
| | | }, |
| | | props.request |
| | | ); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | ElMessage.success('å é¤ç³»ç»æ¨¡åæå'); |
| | | getListTreeData(true); |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»æ¨¡å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('å é¤ç³»ç»æ¨¡å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å¢å ãå é¤ç³»ç»æ¨¡åæä½, dialog init====================== |
| | | const isEditModuleDialog = ref(false); |
| | | const moduleDialogTitle = computed(() => { |
| | | return isEditModuleDialog.value ? 'ä¿®æ¹ç³»ç»æ¨¡å' : 'æ·»å ç³»ç»æ¨¡å'; |
| | | }); |
| | | const moduleDialogHeaderIcon = computed(() => { |
| | | return isEditModuleDialog.value ? 'ele-Edit' : 'ele-Plus'; |
| | | }); |
| | | const moduleDialogFormValue = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | Description: '', |
| | | }) as any; |
| | | const moduleDialogIsShow = ref(false); |
| | | const moduleDialogFormRef = ref<FormInstance>(null); |
| | | const moduleInitialCode = ref(''); |
| | | const { uniquenessValidator: moduleCodeValidator } = useValidateUniqueness( |
| | | GetIsExistModuleCode, |
| | | moduleInitialCode, |
| | | 'ç¼ç ', |
| | | 'Code', |
| | | undefined, |
| | | false, |
| | | props.request |
| | | ); |
| | | |
| | | const moduleDialogFormRules = ref<FormRules>({ |
| | | Name: [{ required: true, message: '请è¾å
¥åç§°', trigger: 'blur' }], |
| | | Code: [{ required: true, validator: moduleCodeValidator as any, trigger: 'blur' }], |
| | | }); |
| | | const openOperateModuleDialog = (data?) => { |
| | | if (data) { |
| | | isEditModuleDialog.value = true; |
| | | const { ID, Name, Code, Description } = data; |
| | | moduleInitialCode.value = Code; |
| | | moduleDialogFormValue.value = deepClone({ ID, Name, Code, Description }); |
| | | } else { |
| | | isEditModuleDialog.value = false; |
| | | moduleInitialCode.value = ''; |
| | | moduleDialogFormValue.value = { Name: '', Code: '', Description: '' }; |
| | | } |
| | | moduleDialogIsShow.value = true; |
| | | }; |
| | | |
| | | const closeModuleDialog = () => { |
| | | moduleDialogIsShow.value = false; |
| | | moduleDialogFormRef.value.clearValidate(); |
| | | }; |
| | | |
| | | const submitModuleFormValue = async () => { |
| | | const valid = await moduleDialogFormRef.value.validate().catch(() => {}); |
| | | if (!valid) return; |
| | | |
| | | if (isEditModuleDialog.value) { |
| | | const res = await UpdateAModule(moduleDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(); |
| | | moduleDialogIsShow.value = false; |
| | | ElMessage.success('ä¿®æ¹ç³»ç»æ¨¡åæå'); |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»æ¨¡å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('ä¿®æ¹ç³»ç»æ¨¡å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } else { |
| | | const res = await InsertAModule(moduleDialogFormValue.value, props.request); |
| | | if (res?.Code === 0) { |
| | | if (res.Data) { |
| | | getListTreeData(); |
| | | moduleDialogIsShow.value = false; |
| | | ElMessage.success('æ·»å ç³»ç»æ¨¡åæå'); |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»æ¨¡å失败'); |
| | | } |
| | | } else { |
| | | ElMessage.error('æ·»å ç³»ç»æ¨¡å失败' + (res?.Message ? `ï¼${JSON.stringify(res.Message)}` : '')); |
| | | } |
| | | } |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== å·¦ä¾§æ ææ½ ====================== |
| | | const dragNodeEnd = async (draggingNode, dropNode, dropType, ev, originTreeData) => { |
| | | updateSort( |
| | | listTreeData, |
| | | listTreeData.value, |
| | | originTreeData, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | getListTreeData(); |
| | | }, |
| | | UpdateModuleSorter, |
| | | () => { |
| | | handleClickNode(draggingNode.data); |
| | | }, |
| | | undefined, |
| | | props.request |
| | | ); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== æè½½æ¶è·ååå§æ°æ® ====================== |
| | | onMounted(() => { |
| | | getListTreeData(true); |
| | | }); |
| | | //#endregion |
| | | </script> |
| | | <style scoped lang="scss"></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export enum PropertyFormatEnum { |
| | | // æ´æ° |
| | | Integer = 1, |
| | | |
| | | // é¿æ´æ° |
| | | Bigint = 2, |
| | | |
| | | // æ°å¼ |
| | | Numeric = 3, |
| | | |
| | | // ææ¬ |
| | | Text = 4, |
| | | |
| | | // å¤ææ¬ |
| | | MultiText = 5, |
| | | |
| | | // æ¶é´ |
| | | Time = 6, |
| | | |
| | | // å¸å°å¼ |
| | | Boolean = 7, |
| | | } |
| | | export const FORMAT_MAP = { |
| | | [PropertyFormatEnum.Integer]: 'æ´æ°', |
| | | [PropertyFormatEnum.Bigint]: 'é¿æ´æ°', |
| | | [PropertyFormatEnum.Numeric]: 'æ°å¼', |
| | | [PropertyFormatEnum.Text]: 'ææ¬', |
| | | [PropertyFormatEnum.MultiText]: '夿æ¬', |
| | | [PropertyFormatEnum.Time]: 'æ¶é´', |
| | | [PropertyFormatEnum.Boolean]: 'å¸å°å¼', |
| | | } as const; |
| | | |
| | | // ä½¿ç¨ input ç»ä»¶ç format |
| | | export const INPUT_FORMAT = [ |
| | | PropertyFormatEnum.Integer, |
| | | PropertyFormatEnum.Bigint, |
| | | PropertyFormatEnum.Numeric, |
| | | PropertyFormatEnum.Text, |
| | | PropertyFormatEnum.MultiText, |
| | | ]; |
| | | |
| | | export enum ExtendTypeEnum { |
| | | // æ |
| | | None = 0, |
| | | // åºæ |
| | | Innate = 1, |
| | | // ç»§æ¿ |
| | | Inherit = 2, |
| | | } |
| | | |
| | | export const EXTEND_TYPE_MAP = { |
| | | [ExtendTypeEnum.None]: 'æ ', |
| | | [ExtendTypeEnum.Innate]: 'åºæ', |
| | | [ExtendTypeEnum.Inherit]: 'ç»§æ¿', |
| | | }; |
| | | |
| | | export const enum CronTypeEnum { |
| | | RealTime = 0, |
| | | Hourly = 1, |
| | | Daily = 2, |
| | | Monthly = 3, |
| | | Yearly = 4, |
| | | } |
| | | |
| | | export const CRON_TYPE_MAP = { |
| | | [CronTypeEnum.RealTime]: '宿¶', |
| | | [CronTypeEnum.Hourly]: 'æ¯æ¶', |
| | | [CronTypeEnum.Daily]: 'æ¯æ¥', |
| | | [CronTypeEnum.Monthly]: 'æ¯æ', |
| | | [CronTypeEnum.Yearly]: 'æ¯å¹´', |
| | | }; |
| | | |
| | | // æ¥æºç±»å |
| | | export enum SourceTypeEnum { |
| | | Docking = 0, |
| | | Analyse = 1, |
| | | Input = 2, |
| | | Custom = 3, |
| | | } |
| | | export const SOURCE_TYPE_MAP = { |
| | | [SourceTypeEnum.Docking]: '对æ¥', |
| | | [SourceTypeEnum.Analyse]: 'åæ', |
| | | [SourceTypeEnum.Input]: 'å½å
¥', |
| | | [SourceTypeEnum.Custom]: 'å®å¶', |
| | | }; |
| | | // 计éç±»å |
| | | export enum MeasureTypeEnum { |
| | | Instant = 1, |
| | | Accumulate = 2, |
| | | } |
| | | export const MEASURE_TYPE_MAP = { |
| | | [MeasureTypeEnum.Instant]: 'ç¬æ¶', |
| | | [MeasureTypeEnum.Accumulate]: '累积', |
| | | }; |
| | | |
| | | export enum SignalTypeFormatEnum { |
| | | // æ°å¼ |
| | | Numeric = 1, |
| | | |
| | | // æä¸¾ |
| | | Enumeration = 2, |
| | | |
| | | // éå |
| | | Collection = 3, |
| | | |
| | | // éæ |
| | | Integration = 4, |
| | | |
| | | // ææ¬ |
| | | Text = 5, |
| | | |
| | | // å¾è°± |
| | | Graph = 6, |
| | | } |
| | | // æ ¼å¼ç±»å |
| | | export const formatTypeEnum = { |
| | | [SignalTypeFormatEnum.Numeric]: 'æ°å¼', |
| | | [SignalTypeFormatEnum.Enumeration]: 'æä¸¾', |
| | | [SignalTypeFormatEnum.Collection]: ' éå', |
| | | [SignalTypeFormatEnum.Integration]: 'éæ', |
| | | [SignalTypeFormatEnum.Text]: ' ææ¬', |
| | | [SignalTypeFormatEnum.Graph]: ' å¾è°±', |
| | | }; |
| | | |
| | | export type TreeProps = { |
| | | id: string; |
| | | label: string; |
| | | children?: string; |
| | | }; |
| | | |
| | | export const enum TimeEnum { |
| | | Second = 1, |
| | | Minute = 2, |
| | | Hour = 3, |
| | | Day = 4, |
| | | } |
| | | export const timeEnumMap = { |
| | | [TimeEnum.Day]: '天', |
| | | [TimeEnum.Hour]: 'å°æ¶', |
| | | [TimeEnum.Minute]: 'åé', |
| | | [TimeEnum.Second]: 'ç§', |
| | | }; |
| | | |
| | | export const timeEnumMapCount = { |
| | | [TimeEnum.Day]: 3600 * 24, |
| | | [TimeEnum.Hour]: 3600, |
| | | [TimeEnum.Minute]: 60, |
| | | [TimeEnum.Second]: 1, |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import type { Ref } from 'vue'; |
| | | import { computed } from 'vue'; |
| | | import type { TimeEnum } from '../types'; |
| | | import { timeEnumMapCount } from '../types'; |
| | | |
| | | export const getComputedTime = (formValue: Ref<any>, timeProp: string, toType: Ref<TimeEnum>) => { |
| | | const displayTimeData = computed({ |
| | | get: () => { |
| | | return formValue.value?.[timeProp] && Number((formValue.value[timeProp] / timeEnumMapCount[toType.value]).toFixed(4)); |
| | | }, |
| | | set: (value) => { |
| | | formValue.value[timeProp] = value && Number((value * timeEnumMapCount[toType.value]).toFixed(4)); |
| | | }, |
| | | }); |
| | | |
| | | return displayTimeData |
| | | }; |
| | | |
| | | |