- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
96 lines
2.7 KiB
JavaScript
96 lines
2.7 KiB
JavaScript
import Check from "../Core/Check.js";
|
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
|
|
/**
|
|
* A bit flag describing whether a variable should be added to the
|
|
* vertex shader, the fragment shader, or both (or none).
|
|
*
|
|
* @enum {number}
|
|
* @private
|
|
*/
|
|
const ShaderDestination = {
|
|
NONE: 0,
|
|
VERTEX: 1,
|
|
FRAGMENT: 2,
|
|
BOTH: 3,
|
|
};
|
|
|
|
/**
|
|
* Check if a variable should be included in the vertex shader.
|
|
*
|
|
* @param {ShaderDestination} destination The ShaderDestination to check
|
|
* @return {boolean} <code>true</code> if the variable appears in the vertex shader, or <code>false</code> otherwise
|
|
* @private
|
|
*/
|
|
ShaderDestination.includesVertexShader = function (destination) {
|
|
//>>includeStart('debug', pragmas.debug);
|
|
Check.typeOf.number("destination", destination);
|
|
//>>includeEnd('debug');
|
|
|
|
return (destination & ShaderDestination.VERTEX) !== 0;
|
|
};
|
|
|
|
/**
|
|
* Check if a variable should be included in the vertex shader.
|
|
*
|
|
* @param {ShaderDestination} destination The ShaderDestination to check
|
|
* @return {boolean} <code>true</code> if the variable appears in the vertex shader, or <code>false</code> otherwise
|
|
* @private
|
|
*/
|
|
ShaderDestination.includesFragmentShader = function (destination) {
|
|
//>>includeStart('debug', pragmas.debug);
|
|
Check.typeOf.number("destination", destination);
|
|
//>>includeEnd('debug');
|
|
//
|
|
|
|
return (destination & ShaderDestination.FRAGMENT) !== 0;
|
|
};
|
|
|
|
/**
|
|
* Compute the union of multiple ShaderDestinations (e.g., VERTEX | FRAGMENT yields BOTH)
|
|
* @param {...ShaderDestination} destinations
|
|
* @returns {ShaderDestination} The union of the provided destinations
|
|
* @private
|
|
*/
|
|
ShaderDestination.union = function (...destinations) {
|
|
//>>includeStart('debug', pragmas.debug);
|
|
if (destinations.length === 0) {
|
|
throw new DeveloperError(
|
|
"ShaderDestination.union requires at least one destination.",
|
|
);
|
|
}
|
|
//>>includeEnd('debug');
|
|
|
|
let result = 0;
|
|
for (let i = 0; i < destinations.length; i++) {
|
|
result |= destinations[i];
|
|
}
|
|
return result;
|
|
};
|
|
|
|
/**
|
|
* Compute the intersection of multiple ShaderDestinations (e.g., VERTEX & FRAGMENT yields NONE)
|
|
* @param {...ShaderDestination} destinations
|
|
* @returns {ShaderDestination} The intersection of the provided destinations
|
|
* @private
|
|
*/
|
|
ShaderDestination.intersection = function (...destinations) {
|
|
//>>includeStart('debug', pragmas.debug);
|
|
if (destinations.length === 0) {
|
|
throw new DeveloperError(
|
|
"ShaderDestination.intersection requires at least one destination.",
|
|
);
|
|
}
|
|
//>>includeEnd('debug');
|
|
|
|
let result = destinations[0];
|
|
for (let i = 1; i < destinations.length; i++) {
|
|
result &= destinations[i];
|
|
}
|
|
return result;
|
|
};
|
|
|
|
Object.freeze(ShaderDestination);
|
|
|
|
export default ShaderDestination;
|