From 4edefedb1150f290ec9f5b282aebf93137810aac Mon Sep 17 00:00:00 2001 From: liufei Date: Mon, 26 Aug 2024 16:47:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=B8=85=E9=99=A4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liufei --- ide/src/trace/component/SpFlags.ts | 8 +++--- .../trace/component/chart/SpChartManager.ts | 2 +- ide/src/trace/component/chart/SpHangChart.ts | 14 +++++------ .../trace/component/chart/SpProcessChart.ts | 8 +++--- .../trace/component/trace/base/ColorUtils.ts | 10 ++++---- .../trace/component/trace/base/TraceSheet.ts | 1 + .../component/trace/base/TraceSheetConfig.ts | 2 +- .../trace/sheet/TabPaneCurrentSelection.ts | 21 ++++++++-------- .../component/trace/sheet/hang/TabPaneHang.ts | 20 +++++++-------- .../trace/sheet/hang/TabPaneHangSummary.ts | 20 +++++++-------- .../trace/sheet/hilog/TabPaneHiLogs.ts | 4 +-- .../database/data-trafic/HangDataReceiver.ts | 19 ++++++++++++-- .../database/data-trafic/HangDataSender.ts | 13 ++++++++-- ide/src/trace/database/sql/Hang.sql.ts | 10 ++++---- .../database/ui-worker/ProcedureWorkerHang.ts | 25 +++++++++++-------- 15 files changed, 103 insertions(+), 74 deletions(-) diff --git a/ide/src/trace/component/SpFlags.ts b/ide/src/trace/component/SpFlags.ts index 4f971dd0..3e511e95 100644 --- a/ide/src/trace/component/SpFlags.ts +++ b/ide/src/trace/component/SpFlags.ts @@ -26,7 +26,7 @@ const CAT_SORT = { 'Thread first': 'thread' }; -const CONFIG_STATE:unknown = { +const CONFIG_STATE: unknown = { 'VSync': ['vsyncValue', 'VsyncGeneratior'], 'Start&Finish Trace Category': ['catValue', 'Business first'], 'Hangs': ['hangsSelect', 'Instant'], @@ -231,9 +231,9 @@ export class SpFlags extends BaseElement { hangsTypeEl.setAttribute('id', 'hangsSelect'); hangsTypeEl.className = 'flag-select'; - let hangOptions: Array = []; + let hangOptions: Array = []; for (const settings of [ - { value: '33', content: "Instant" }, + { value: '33', content: 'Instant' }, { value: '100', content: 'Circumstantial' }, { value: '250', content: 'Micro' }, { value: '500', content: 'Severe' } @@ -255,7 +255,7 @@ export class SpFlags extends BaseElement { let flagsItem = window.localStorage.getItem(FlagsConfig.FLAGS_CONFIG_KEY); let flagsItemJson = JSON.parse(flagsItem!); - let hangs = flagsItemJson['Hangs']; + let hangs = flagsItemJson.Hangs; if (hangs === 'Enabled') { hangsTypeEl.removeAttribute('disabled'); } else { diff --git a/ide/src/trace/component/chart/SpChartManager.ts b/ide/src/trace/component/chart/SpChartManager.ts index d93a8310..4acfe42a 100644 --- a/ide/src/trace/component/chart/SpChartManager.ts +++ b/ide/src/trace/component/chart/SpChartManager.ts @@ -189,7 +189,7 @@ export class SpChartManager { await this.spHiSysEvent.init(); let idAndNameArr = await queryDmaFenceIdAndCat(); this.handleDmaFenceName(idAndNameArr as { id: number; cat: string; seqno: number; driver: string; context: string }[]); - if (FlagsConfig.getFlagsConfigEnableStatus("Hangs")) { + if (FlagsConfig.getFlagsConfigEnableStatus('Hangs')) { progress('Hang init', 80); await this.hangChart.init(); } diff --git a/ide/src/trace/component/chart/SpHangChart.ts b/ide/src/trace/component/chart/SpHangChart.ts index ab58a519..a8f6b2e1 100644 --- a/ide/src/trace/component/chart/SpHangChart.ts +++ b/ide/src/trace/component/chart/SpHangChart.ts @@ -24,7 +24,7 @@ import { hangDataSender } from '../../database/data-trafic/HangDataSender'; import { BaseStruct } from '../../bean/BaseStruct'; import { Utils } from '../trace/base/Utils'; -export type HangType = "Instant" | "Circumstantial" | "Micro" | "Severe" | ""; +export type HangType = 'Instant' | 'Circumstantial' | 'Micro' | 'Severe' | ''; /// Hangs聚合泳道 export class SpHangChart { @@ -38,19 +38,19 @@ export class SpHangChart { static calculateHangType(dur: number): HangType { const durMS = dur / 1000000; if (durMS < 33) { - return ""; + return ''; } else if (durMS < 100) { - return "Instant"; + return 'Instant'; } else if (durMS < 250) { - return "Circumstantial"; + return 'Circumstantial'; } else if (durMS < 500) { - return "Micro"; + return 'Micro'; } else { - return "Severe"; + return 'Severe'; } } @@ -69,7 +69,7 @@ export class SpHangChart { } ): void { traceRow.supplierFrame = (): Promise => { - let promiseData = hangDataSender(it.id, traceRow) + let promiseData = hangDataSender(it.id, traceRow); if (promiseData === null) { return new Promise>((resolve) => resolve([])); } else { diff --git a/ide/src/trace/component/chart/SpProcessChart.ts b/ide/src/trace/component/chart/SpProcessChart.ts index fcfbcd7f..92bb4a38 100644 --- a/ide/src/trace/component/chart/SpProcessChart.ts +++ b/ide/src/trace/component/chart/SpProcessChart.ts @@ -906,12 +906,12 @@ export class SpProcessChart { }, row: TraceRow ): TraceRow | null { - if (!this.hangProcessSet.has(data.pid) || !FlagsConfig.getFlagsConfigEnableStatus("Hangs")) { + if (!this.hangProcessSet.has(data.pid) || !FlagsConfig.getFlagsConfigEnableStatus('Hangs')) { return null; } let hangsRow = TraceRow.skeleton(); hangsRow.rowType = TraceRow.ROW_TYPE_HANG_INNER; - hangsRow.rowId = `${data.processName ?? 'Process'} ${data.pid}` + hangsRow.rowId = `${data.processName ?? 'Process'} ${data.pid}`; hangsRow.rowParentId = `${data.pid}`; hangsRow.rowHidden = !row.expansion; hangsRow.style.width = '100%'; @@ -926,7 +926,7 @@ export class SpProcessChart { return promiseData.then((resultHang: Array) => resultHang.map(hangItem => ({ ...hangItem, - pname: data.processName ?? "process", + pname: data.processName ?? 'process', type: SpHangChart.calculateHangType(hangItem.dur!), content: SpHangChart.funcNameMap.get(hangItem.id!) })) @@ -937,7 +937,7 @@ export class SpProcessChart { hangsRow.selectChangeHandler = this.trace.selectChangeHandler; hangsRow.findHoverStruct = (): void => { HangStruct.hoverHangStruct = hangsRow.getHoverStruct(); - } + }; hangsRow.onThreadHandler = rowThreadHandler( 'hang', 'context', diff --git a/ide/src/trace/component/trace/base/ColorUtils.ts b/ide/src/trace/component/trace/base/ColorUtils.ts index b66f7a47..6a8ff8ca 100644 --- a/ide/src/trace/component/trace/base/ColorUtils.ts +++ b/ide/src/trace/component/trace/base/ColorUtils.ts @@ -124,11 +124,11 @@ export class ColorUtils { public static getHangColor(hangType: HangType): string { return ({ - "Instant": "#559CFF", - "Circumstantial": "#FFE44D", - "Micro": "#FEB354", - "Severe": "#FC7470", - "": "#000000", + 'Instant': '#559CFF', + 'Circumstantial': '#FFE44D', + 'Micro': '#FEB354', + 'Severe': '#FC7470', + '': '#000000', })[hangType]; } diff --git a/ide/src/trace/component/trace/base/TraceSheet.ts b/ide/src/trace/component/trace/base/TraceSheet.ts index 00903414..f31a8305 100644 --- a/ide/src/trace/component/trace/base/TraceSheet.ts +++ b/ide/src/trace/component/trace/base/TraceSheet.ts @@ -133,6 +133,7 @@ export class TraceSheet extends BaseElement { pane.hidden = true; // @ts-ignore pane.key = `${tabConfig[key].key || index}`; // @ts-ignore let cls = tabConfig[key].type; + // @ts-ignore let node = new cls(); pane.append(node); this.fragment?.appendChild(pane); diff --git a/ide/src/trace/component/trace/base/TraceSheetConfig.ts b/ide/src/trace/component/trace/base/TraceSheetConfig.ts index a3f29daf..7de95703 100644 --- a/ide/src/trace/component/trace/base/TraceSheetConfig.ts +++ b/ide/src/trace/component/trace/base/TraceSheetConfig.ts @@ -142,7 +142,7 @@ import { TabPaneSliceChild } from '../sheet/process/TabPaneSliceChild'; export let tabConfig: { [key: string]: { title: string - type: any + type: unknown require?: (param: SelectionParam) => boolean } } = { diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts index 8bfb89ce..be3a9290 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts @@ -823,16 +823,16 @@ export class TabPaneCurrentSelection extends BaseElement { }); data.content!.split(',').map((item, index) => ({ name: [ - "Sender tid", - "Send time", - "Expect handle time", - "Task name/ID", - "Sender" + 'Sender tid', + 'Send time', + 'Expect handle time', + 'Task name/ID', + 'Sender' ][index], value: item, })).forEach((item, index) => { if (index === 0) { - item.value = item.value.split(':').at(-1)! + item.value = item.value.split(':').at(-1)!; } list.push(item); }) @@ -847,7 +847,7 @@ export class TabPaneCurrentSelection extends BaseElement { } private hangScrollHandler(data: HangStruct, sp: SpSystemTrace) { - return () => { + return (): void => { const rowId = `${data.pname ?? 'Process'} ${data.pid}`; const rowParentId = `${data.pid}`; const rowType = TraceRow.ROW_TYPE_HANG_INNER; @@ -858,8 +858,9 @@ export class TabPaneCurrentSelection extends BaseElement { const innerHangRow = row.childrenList.find((childRow) => childRow.rowType === TraceRow.ROW_TYPE_HANG_INNER) as TraceRow; sp.currentRow = innerHangRow; - async function completeEntry(t: TabPaneCurrentSelection) { - if (!innerHangRow.dataListCache || innerHangRow.dataListCache.length == 0) { + // @ts-ignore + async function completeEntry(t: TabPaneCurrentSelection): Promise { + if (!innerHangRow.dataListCache || innerHangRow.dataListCache.length === 0) { await innerHangRow.supplierFrame!(); } @@ -879,7 +880,7 @@ export class TabPaneCurrentSelection extends BaseElement { } else { sp.scrollToProcess(rowId, rowParentId, rowType); - innerHangRow.onComplete = () => completeEntry(this); + innerHangRow.onComplete = (): unknown => completeEntry(this); } } }; diff --git a/ide/src/trace/component/trace/sheet/hang/TabPaneHang.ts b/ide/src/trace/component/trace/sheet/hang/TabPaneHang.ts index 247ad3ef..661dd9ba 100644 --- a/ide/src/trace/component/trace/sheet/hang/TabPaneHang.ts +++ b/ide/src/trace/component/trace/sheet/hang/TabPaneHang.ts @@ -59,14 +59,14 @@ export class TabPaneHang extends BaseElement { } window.clearTimeout(this.timeOutId); queryAllHangs().then((ret) => { - const filter = new Set([...selectionParam.hangMapData.keys()].map(key => key.split(' ').at(-1))) + const filter = new Set([...selectionParam.hangMapData.keys()].map(key => key.split(' ').at(-1))); ret = ret.filter(struct => ( - filter.has(`${struct.pid ?? 0}`) - && ((struct.startNS ?? 0) <= selectionParam.rightNs) - && (selectionParam.leftNs <= ((struct.startNS ?? 0) + (struct.dur ?? 0))) + filter.has(`${struct.pid ?? 0}`) && + ((struct.startNS ?? 0) <= selectionParam.rightNs) && + (selectionParam.leftNs <= ((struct.startNS ?? 0) + (struct.dur ?? 0))) )); - - if (ret.length == 0) { + + if (ret.length === 0) { this.progressEL!.loading = false; } this.systemHangSource = ret.map(HangStructInPane.new); @@ -156,7 +156,7 @@ export class TabPaneHang extends BaseElement { let tbl = this.hangTbl?.shadowRoot?.querySelector('.table'); let height = 0; if (tbl) { - const trs = tbl.querySelectorAll('.tr') + const trs = tbl.querySelectorAll('.tr'); trs.forEach((trEl: HTMLElement, index: number): void => { if (index === 0) { let frontTotalRowSize = Math.round((tbl!.scrollTop / trEl.clientHeight) * 100) / 100; @@ -166,9 +166,9 @@ export class TabPaneHang extends BaseElement { } } let allTdEl = trEl.querySelectorAll('.td'); - allTdEl[0].style.color = "#3D88C7"; + allTdEl[0].style.color = '#3D88C7'; allTdEl[0].style.textDecoration = 'underline'; - allTdEl[0].style.textDecorationColor = "#3D88C7"; + allTdEl[0].style.textDecorationColor = '#3D88C7'; }); } } @@ -286,7 +286,7 @@ export class HangStructInPane { this.dur = getTimeString(parent.dur ?? 0); this.pname = `${parent.pname ?? this.pname} ${parent.pid ?? ''}`.trim(); this.type = SpHangChart.calculateHangType(parent.dur ?? 0); - [this.sendEventTid, this.sendTime, this.expectHandleTime, this.taskNameId, this.caller] = (parent.content ?? ",0,0,,").split(',').map(i => i.trim()); + [this.sendEventTid, this.sendTime, this.expectHandleTime, this.taskNameId, this.caller] = (parent.content ?? ',0,0,,').split(',').map(i => i.trim()); this.sendEventTid = this.sendEventTid.split(':').at(-1)!; } diff --git a/ide/src/trace/component/trace/sheet/hang/TabPaneHangSummary.ts b/ide/src/trace/component/trace/sheet/hang/TabPaneHangSummary.ts index cb5977a6..4304bd25 100644 --- a/ide/src/trace/component/trace/sheet/hang/TabPaneHangSummary.ts +++ b/ide/src/trace/component/trace/sheet/hang/TabPaneHangSummary.ts @@ -53,9 +53,9 @@ export class TabPaneHangSummary extends BaseElement { queryAllHangs().then((ret) => { const filter = new Set([...selectionParam.hangMapData.keys()].map(key => key.split(' ').at(-1))); ret = ret.filter(struct => ( - filter.has(`${struct.pid ?? 0}`) - && ((struct.startNS ?? 0) <= selectionParam.rightNs) - && (selectionParam.leftNs <= ((struct.startNS ?? 0) + (struct.dur ?? 0))) + filter.has(`${struct.pid ?? 0}`) && + ((struct.startNS ?? 0) <= selectionParam.rightNs) && + (selectionParam.leftNs <= ((struct.startNS ?? 0) + (struct.dur ?? 0))) )); this.systemHangSource = ret; if (filter.size > 0 && selectionParam) { @@ -118,7 +118,7 @@ export class TabPaneHangSummary extends BaseElement { } this.refreshSelectDepth(this.hangTreeNodes); this.refreshRowNodeTable(true); - } + }; private refreshSelectDepth(hangTreeNodes: HangTreeNode[]): void { hangTreeNodes.forEach((item): void => { @@ -158,8 +158,8 @@ export class TabPaneHangSummary extends BaseElement { countEL.textContent = rowNode.count.toString(); countEL.className = 'count-column-td'; if (rowNode.depth === 0) { - rowNodeTextEL.style.color = ColorUtils.getHangColor((rowNode.name as HangType) ?? ""); - countEL.style.color = ColorUtils.getHangColor((rowNode.name as HangType) ?? ""); + rowNodeTextEL.style.color = ColorUtils.getHangColor((rowNode.name as HangType) ?? ''); + countEL.style.color = ColorUtils.getHangColor((rowNode.name as HangType) ?? ''); } else { rowNodeTextEL.style.color = rowColor; countEL.style.color = rowColor; @@ -185,7 +185,7 @@ export class TabPaneHangSummary extends BaseElement { let scrollTop = this.hangSummaryTable?.scrollTop ?? 0; this.changeNode(rowNode.id); this.hangSummaryTable!.scrollTop = scrollTop; - }) + }); } tableRowEl.appendChild(toggleIconEl); } @@ -248,7 +248,7 @@ export class TabPaneHangSummary extends BaseElement { } else { typeNode = { id: id += 1, depth: 0, children: [], count: 1, - name: item.type ?? "Undefined Type?", + name: item.type ?? 'Undefined Type?', }; root.children.push(typeNode); } @@ -259,14 +259,14 @@ export class TabPaneHangSummary extends BaseElement { } else { processNode = { id: id += 1, depth: 1, children: [], count: 1, - name: item.pname ?? "Process", + name: item.pname ?? 'Process', }; typeNode.children.push(processNode); } let contentNode = { id: id += 1, depth: 2, children: [], count: 1, - name: item.content ?? "", + name: item.content ?? '', }; processNode.children.push(contentNode); } diff --git a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts index dba01ffc..9d08c068 100644 --- a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts +++ b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts @@ -203,9 +203,9 @@ export class TabPaneHiLogs extends BaseElement { } } let allTdEl = trEl.querySelectorAll('.td'); - allTdEl[0].style.color = "#3D88C7"; + allTdEl[0].style.color = '#3D88C7'; allTdEl[0].style.textDecoration = 'underline'; - allTdEl[0].style.textDecorationColor = "#3D88C7"; + allTdEl[0].style.textDecorationColor = '#3D88C7'; trEl.addEventListener('mouseout', (): void => { this.traceSheetEl!.systemLogFlag = undefined; this.spSystemTrace?.refreshCanvas(false); diff --git a/ide/src/trace/database/data-trafic/HangDataReceiver.ts b/ide/src/trace/database/data-trafic/HangDataReceiver.ts index 699388fe..10c53027 100644 --- a/ide/src/trace/database/data-trafic/HangDataReceiver.ts +++ b/ide/src/trace/database/data-trafic/HangDataReceiver.ts @@ -45,20 +45,26 @@ export interface HangSQLStruct { pid: number; } -export function hangDataReceiver(data: any, proc: Function): void { +export function hangDataReceiver(data: unknown, proc: Function): void { + // @ts-ignore if (data.params.trafic === TraficEnum.Memory) { let res: HangSQLStruct[]; let list: HangSQLStruct[]; + // @ts-ignore if (!hangList.has(data.params.pid)) { + // @ts-ignore let sql = chartHangDataSql(data.params); list = proc(sql); + // @ts-ignore hangList.set(data.params.pid, list); } else { + // @ts-ignore list = hangList.get(data.params.pid) || []; } + // @ts-ignore if (data.params.queryAll) { res = list.filter( //@ts-ignore @@ -72,17 +78,24 @@ export function hangDataReceiver(data: any, proc: Function): void { arrayBufferHandler(data, res, true); } else { + // @ts-ignore let sql = chartHangDataSql(data.params); let res: HangSQLStruct[] = proc(sql); + // @ts-ignore arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); } } -function arrayBufferHandler(data: any, res: HangSQLStruct[], transfer: boolean = true): void { +function arrayBufferHandler(data: unknown, res: HangSQLStruct[], transfer: boolean = true): void { + // @ts-ignore let id = new Int32Array(transfer ? res.length : data.params.sharedArrayBuffers.id); + // @ts-ignore let startNS = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.startNS); + // @ts-ignore let dur = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.dur); + // @ts-ignore let tid = new Int32Array(transfer ? res.length : data.params.sharedArrayBuffers.tid); + // @ts-ignore let pid = new Int32Array(transfer ? res.length : data.params.sharedArrayBuffers.pid); res.forEach((it, i) => { id[i] = it.id; @@ -92,7 +105,9 @@ function arrayBufferHandler(data: any, res: HangSQLStruct[], transfer: boolean = }); let arg1 = { + // @ts-ignore id: data.id, + // @ts-ignore action: data.action, results: { id: id.buffer, diff --git a/ide/src/trace/database/data-trafic/HangDataSender.ts b/ide/src/trace/database/data-trafic/HangDataSender.ts index 660bed27..91ec3a2a 100644 --- a/ide/src/trace/database/data-trafic/HangDataSender.ts +++ b/ide/src/trace/database/data-trafic/HangDataSender.ts @@ -22,7 +22,7 @@ import { FlagsConfig } from '../../component/SpFlags'; export function hangDataSender( processId: number = 0, row: TraceRow, - args?: any, + args?: unknown, ): Promise { let trafic: number = TraficEnum.Memory; let width = row.clientWidth - CHART_OFFSET_LEFT; @@ -34,9 +34,13 @@ export function hangDataSender( { pid: processId, minDur: minDur, + // @ts-ignore queryAll: args && args.queryAll, + // @ts-ignore selectStartNS: args ? args.startNS : 0, + // @ts-ignore selectEndNS: args ? args.endNS : 0, + // @ts-ignore selectTotalNS: args ? args.endNS - args.startNS : 0, trafic: trafic, width: width, @@ -48,12 +52,17 @@ export function hangDataSender( }); } -function arrayBufferHandler(buffers: any, len: number): HangStruct[] { +function arrayBufferHandler(buffers: unknown, len: number): HangStruct[] { let outArr: HangStruct[] = []; + // @ts-ignore let id = new Int32Array(buffers.id); + // @ts-ignore let startNS = new Float64Array(buffers.startNS); + // @ts-ignore let dur = new Float64Array(buffers.dur); + // @ts-ignore let tid = new Int32Array(buffers.tid); + // @ts-ignore let pid = new Int32Array(buffers.pid); for (let i = 0; i < len; i += 1) { outArr.push({ diff --git a/ide/src/trace/database/sql/Hang.sql.ts b/ide/src/trace/database/sql/Hang.sql.ts index f1a856d1..35181e4b 100644 --- a/ide/src/trace/database/sql/Hang.sql.ts +++ b/ide/src/trace/database/sql/Hang.sql.ts @@ -18,9 +18,9 @@ import { query } from '../SqlLite'; import { HangStruct } from '../ui-worker/ProcedureWorkerHang'; function getMinDur(): string { - let flagsItemJson = JSON.parse(window.localStorage.getItem(FlagsConfig.FLAGS_CONFIG_KEY)!) - let minDur = flagsItemJson.hangValue - return minDur + let flagsItemJson = JSON.parse(window.localStorage.getItem(FlagsConfig.FLAGS_CONFIG_KEY)!); + let minDur = flagsItemJson.hangValue; + return minDur; } export const queryHangData = (): Promise> => query( @@ -72,4 +72,4 @@ WHERE AND t.is_main_thread = 1 AND c.name LIKE 'H:Et:%' `.trim() -) \ No newline at end of file +); \ No newline at end of file diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerHang.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerHang.ts index 4c916874..282af5f1 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerHang.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerHang.ts @@ -41,7 +41,7 @@ export class HangRender extends Render { frame: row.frame, paddingTop: 2, useCache: hangReq.useCache || !(TraceRow.range?.refresh ?? false), - } + }; dataFilterHandler(hangList, hangFilter, filterConfig); drawLoadingFrame(hangReq.context, hangFilter, row); hangReq.context.beginPath(); @@ -83,17 +83,20 @@ export class HangStruct extends BaseStruct { dur: number | undefined; tid: number | undefined; pid: number | undefined; - type: HangType | undefined; // 手动补充 按时间分类 - pname: string | undefined; // 手动补充 - content: string | undefined; // 手动补充 在tab页中需要手动解析内容 + // 手动补充 按时间分类 + type: HangType | undefined; + // 手动补充 + pname: string | undefined; + // 手动补充 在tab页中需要手动解析内容 + content: string | undefined; static getFrameColor(data: HangStruct): string { return ({ - "Instant": "#559CFF", - "Circumstantial": "#FFE44D", - "Micro": "#FEB354", - "Severe": "#FC7470", - "": "", + 'Instant': '#559CFF', + 'Circumstantial': '#FFE44D', + 'Micro': '#FEB354', + 'Severe': '#FC7470', + '': '', })[data.type!]; } @@ -104,7 +107,7 @@ export class HangStruct extends BaseStruct { ctx.globalAlpha = 1; ctx.lineWidth = 1; - + if (data === HangStruct.hoverHangStruct) { ctx.globalAlpha = 0.7; } @@ -125,7 +128,7 @@ export class HangStruct extends BaseStruct { data.frame.height - 2, ); } - + ctx.globalAlpha = 1; } } -- Gitee