- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
105 lines
4.0 KiB
TypeScript
105 lines
4.0 KiB
TypeScript
import type { Supercompression, VKFormat } from './constants.js';
|
|
/**
|
|
* Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in
|
|
* the `.levels` array, typically compressed in Basis Universal formats. Additional properties
|
|
* provide metadata required to process, transcode, and upload these textures.
|
|
*/
|
|
export interface KTX2Container {
|
|
/**
|
|
* Specifies the image format using Vulkan VkFormat enum values. When using Basis Universal
|
|
* texture formats, `vkFormat` must be VK_FORMAT_UNDEFINED.
|
|
*/
|
|
vkFormat: VKFormat;
|
|
/**
|
|
* Size of the data type in bytes used to upload the data to a graphics API. When `vkFormat` is
|
|
* VK_FORMAT_UNDEFINED, `typeSize` must be 1.
|
|
*/
|
|
typeSize: number;
|
|
/** Width of the texture image for level 0, in pixels. */
|
|
pixelWidth: number;
|
|
/** Height of the texture image for level 0, in pixels. */
|
|
pixelHeight: number;
|
|
/** Depth of the texture image for level 0, in pixels (3D textures only). */
|
|
pixelDepth: number;
|
|
/** Number of array elements (array textures only). */
|
|
layerCount: number;
|
|
/**
|
|
* Number of cubemap faces. For cubemaps and cubemap arrays, `faceCount` must be 6. For all
|
|
* other textures, `faceCount` must be 1. Cubemap faces are stored in +X, -X, +Y, -Y, +Z, -Z
|
|
* order.
|
|
*/
|
|
faceCount: number;
|
|
/**
|
|
* Number of levels in the mipmap level array. Mipmap pyramid may not necessarily be complete.
|
|
* `levelCount = 1` implies that the file contains only the base level, and is not meant to have
|
|
* other levels. `levelCount = 0` implies that the file contains only the base level, and that
|
|
* other levels should be generated by the loader at runtime. For block-compressed formats,
|
|
* `levelCount = 0` is disallowed.
|
|
*/
|
|
levelCount: number;
|
|
/** Indicates which supercompression scheme has been applied to mip level images, if any. */
|
|
supercompressionScheme: Supercompression;
|
|
/** Mip levels, ordered largest (original) to smallest (~1px). */
|
|
levels: KTX2Level[];
|
|
/** Data Format Descriptor. */
|
|
dataFormatDescriptor: KTX2DataFormatDescriptorBasicFormat[];
|
|
/** Key/Value Data. */
|
|
keyValue: {
|
|
[key: string]: string | Uint8Array;
|
|
};
|
|
/** Supercompression Global Data. */
|
|
globalData: KTX2GlobalDataBasisLZ | null;
|
|
}
|
|
export interface KTX2Level {
|
|
/** Compressed data of the mip level. */
|
|
levelData: Uint8Array;
|
|
/**
|
|
* Size of the mip level after reflation from supercompression, if applicable. When
|
|
* `supercompressionType` is BASISLZ, `uncompressedByteLength` must be 0. When
|
|
* `supercompressionType` is `NONE`, `uncompressedByteLength` must match the `levelData` byte
|
|
* length.
|
|
*
|
|
* _**NOTICE:** this implies that for formats such as UASTC, `uncompressedByteLength` may
|
|
* indicate size after ZSTD reflation (and of transcoded ASTC data), but does _not_ indicate
|
|
* size of decoded RGBA32 pixels._
|
|
*/
|
|
uncompressedByteLength: number;
|
|
}
|
|
export interface KTX2DataFormatDescriptorBasicFormat {
|
|
vendorId: number;
|
|
descriptorType: number;
|
|
versionNumber: number;
|
|
colorModel: number;
|
|
colorPrimaries: number;
|
|
transferFunction: number;
|
|
flags: number;
|
|
texelBlockDimension: [number, number, number, number];
|
|
bytesPlane: [number, number, number, number, number, number, number, number];
|
|
samples: KTX2BasicFormatSample[];
|
|
}
|
|
export interface KTX2BasicFormatSample {
|
|
bitOffset: number;
|
|
bitLength: number;
|
|
channelType: number;
|
|
samplePosition: number[];
|
|
sampleLower: number;
|
|
sampleUpper: number;
|
|
}
|
|
export interface KTX2GlobalDataBasisLZ {
|
|
endpointCount: number;
|
|
selectorCount: number;
|
|
imageDescs: KTX2GlobalDataBasisLZImageDesc[];
|
|
endpointsData: Uint8Array;
|
|
selectorsData: Uint8Array;
|
|
tablesData: Uint8Array;
|
|
extendedData: Uint8Array;
|
|
}
|
|
interface KTX2GlobalDataBasisLZImageDesc {
|
|
imageFlags: number;
|
|
rgbSliceByteOffset: number;
|
|
rgbSliceByteLength: number;
|
|
alphaSliceByteOffset: number;
|
|
alphaSliceByteLength: number;
|
|
}
|
|
export {};
|