- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
import { EVENT_CODE } from "../../constants/aria.mjs";
|
|
import { isAndroid } from "../browser.mjs";
|
|
//#region ../../packages/utils/dom/event.ts
|
|
const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
|
|
const handleEvent = (event) => {
|
|
const shouldPrevent = theirsHandler?.(event);
|
|
if (checkForDefaultPrevented === false || !shouldPrevent) return oursHandler?.(event);
|
|
};
|
|
return handleEvent;
|
|
};
|
|
const whenMouse = (handler) => {
|
|
return (e) => e.pointerType === "mouse" ? handler(e) : void 0;
|
|
};
|
|
const getEventCode = (event) => {
|
|
if (event.code && event.code !== "Unidentified") return event.code;
|
|
const key = getEventKey(event);
|
|
if (key) {
|
|
if (Object.values(EVENT_CODE).includes(key)) return key;
|
|
switch (key) {
|
|
case " ": return EVENT_CODE.space;
|
|
default: return "";
|
|
}
|
|
}
|
|
return "";
|
|
};
|
|
const getEventKey = (event) => {
|
|
let key = event.key && event.key !== "Unidentified" ? event.key : "";
|
|
if (!key && event.type === "keyup" && isAndroid()) {
|
|
const target = event.target;
|
|
key = target.value.charAt(target.selectionStart - 1);
|
|
}
|
|
return key;
|
|
};
|
|
//#endregion
|
|
export { composeEventHandlers, getEventCode, getEventKey, whenMouse };
|
|
|
|
//# sourceMappingURL=event.mjs.map
|