- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
import Check from "../Core/Check.js";
|
|
|
|
/**
|
|
* Gets a GLSL snippet that clips a fragment using the `clip` function from {@link getClippingFunction} and styles it.
|
|
*
|
|
* @param {string} samplerUniformName Name of the uniform for the clipping planes texture sampler.
|
|
* @param {string} matrixUniformName Name of the uniform for the clipping planes matrix.
|
|
* @param {string} styleUniformName Name of the uniform for the clipping planes style, a vec4.
|
|
* @returns {string} A string containing GLSL that clips and styles the current fragment.
|
|
* @private
|
|
*/
|
|
function getClipAndStyleCode(
|
|
samplerUniformName,
|
|
matrixUniformName,
|
|
styleUniformName,
|
|
) {
|
|
//>>includeStart('debug', pragmas.debug);
|
|
Check.typeOf.string("samplerUniformName", samplerUniformName);
|
|
Check.typeOf.string("matrixUniformName", matrixUniformName);
|
|
Check.typeOf.string("styleUniformName", styleUniformName);
|
|
//>>includeEnd('debug');
|
|
|
|
const shaderCode =
|
|
` float clipDistance = clip(gl_FragCoord, ${samplerUniformName}, ${matrixUniformName}); \n` +
|
|
` vec4 clippingPlanesEdgeColor = vec4(1.0); \n` +
|
|
` clippingPlanesEdgeColor.rgb = ${styleUniformName}.rgb; \n` +
|
|
` float clippingPlanesEdgeWidth = ${styleUniformName}.a; \n` +
|
|
` if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) \n` +
|
|
` { \n` +
|
|
` out_FragColor = clippingPlanesEdgeColor;\n` +
|
|
` } \n`;
|
|
return shaderCode;
|
|
}
|
|
export default getClipAndStyleCode;
|