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:
+81
@@ -0,0 +1,81 @@
|
||||
import PathProxy from '../core/PathProxy.js';
|
||||
import { applyTransform as v2ApplyTransform } from '../core/vector.js';
|
||||
var CMD = PathProxy.CMD;
|
||||
var points = [[], [], []];
|
||||
var mathSqrt = Math.sqrt;
|
||||
var mathAtan2 = Math.atan2;
|
||||
export default function transformPath(path, m) {
|
||||
if (!m) {
|
||||
return;
|
||||
}
|
||||
var data = path.data;
|
||||
var len = path.len();
|
||||
var cmd;
|
||||
var nPoint;
|
||||
var i;
|
||||
var j;
|
||||
var k;
|
||||
var p;
|
||||
var M = CMD.M;
|
||||
var C = CMD.C;
|
||||
var L = CMD.L;
|
||||
var R = CMD.R;
|
||||
var A = CMD.A;
|
||||
var Q = CMD.Q;
|
||||
for (i = 0, j = 0; i < len;) {
|
||||
cmd = data[i++];
|
||||
j = i;
|
||||
nPoint = 0;
|
||||
switch (cmd) {
|
||||
case M:
|
||||
nPoint = 1;
|
||||
break;
|
||||
case L:
|
||||
nPoint = 1;
|
||||
break;
|
||||
case C:
|
||||
nPoint = 3;
|
||||
break;
|
||||
case Q:
|
||||
nPoint = 2;
|
||||
break;
|
||||
case A:
|
||||
var x = m[4];
|
||||
var y = m[5];
|
||||
var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);
|
||||
var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);
|
||||
var angle = mathAtan2(-m[1] / sy, m[0] / sx);
|
||||
data[i] *= sx;
|
||||
data[i++] += x;
|
||||
data[i] *= sy;
|
||||
data[i++] += y;
|
||||
data[i++] *= sx;
|
||||
data[i++] *= sy;
|
||||
data[i++] += angle;
|
||||
data[i++] += angle;
|
||||
i += 2;
|
||||
j = i;
|
||||
break;
|
||||
case R:
|
||||
p[0] = data[i++];
|
||||
p[1] = data[i++];
|
||||
v2ApplyTransform(p, p, m);
|
||||
data[j++] = p[0];
|
||||
data[j++] = p[1];
|
||||
p[0] += data[i++];
|
||||
p[1] += data[i++];
|
||||
v2ApplyTransform(p, p, m);
|
||||
data[j++] = p[0];
|
||||
data[j++] = p[1];
|
||||
}
|
||||
for (k = 0; k < nPoint; k++) {
|
||||
var p_1 = points[k];
|
||||
p_1[0] = data[i++];
|
||||
p_1[1] = data[i++];
|
||||
v2ApplyTransform(p_1, p_1, m);
|
||||
data[j++] = p_1[0];
|
||||
data[j++] = p_1[1];
|
||||
}
|
||||
}
|
||||
path.increaseVersion();
|
||||
}
|
||||
Reference in New Issue
Block a user