feat: 实现供水运营专题大屏BI可视化
- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* A utility for dynamically-generating a GLSL struct.
|
||||
*
|
||||
* @alias ShaderStruct
|
||||
* @constructor
|
||||
*
|
||||
* @see {@link ShaderBuilder}
|
||||
* @param {string} name The name of the struct as it will appear in the shader.
|
||||
* @example
|
||||
* // Generate the struct:
|
||||
* //
|
||||
* // struct Attributes
|
||||
* // {
|
||||
* // vec3 position;
|
||||
* // vec3 normal;
|
||||
* // vec2 texCoord;
|
||||
* // };
|
||||
* const struct = new ShaderStruct("Attributes");
|
||||
* struct.addField("vec3", "position");
|
||||
* struct.addField("vec3", "normal");
|
||||
* struct.addField("vec2", "texCoord");
|
||||
* const generatedLines = struct.generateGlslLines();
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function ShaderStruct(name) {
|
||||
this.name = name;
|
||||
this.fields = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the struct
|
||||
* @param {string} type The type of the struct field
|
||||
* @param {string} identifier The identifier of the struct field
|
||||
*/
|
||||
ShaderStruct.prototype.addField = function (type, identifier) {
|
||||
const field = ` ${type} ${identifier};`;
|
||||
this.fields.push(field);
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate a list of lines of GLSL code for use with {@link ShaderBuilder}
|
||||
* @return {string[]} The generated GLSL code.
|
||||
*/
|
||||
ShaderStruct.prototype.generateGlslLines = function () {
|
||||
let fields = this.fields;
|
||||
if (fields.length === 0) {
|
||||
// GLSL requires structs to have at least one field
|
||||
fields = [" float _empty;"];
|
||||
}
|
||||
|
||||
return [].concat(`struct ${this.name}`, "{", fields, "};");
|
||||
};
|
||||
|
||||
export default ShaderStruct;
|
||||
Reference in New Issue
Block a user