irr-gh 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -401,7 +401,7 @@ interface IrrigationData {
401
401
  /** 河渠沟列表 */
402
402
  canals: CanalEntity[]
403
403
  /** 点位实体列表 */
404
- points: PointEntityUnion[]
404
+ points: PointNodeUnion[]
405
405
  /** 连接关系(可选,如不提供则自动生成) */
406
406
  connections?: ConnectionData[]
407
407
  }
@@ -441,7 +441,7 @@ interface CanalEntity {
441
441
  #### 点位实体基础结构
442
442
 
443
443
  ```typescript
444
- interface PointEntity {
444
+ interface PointNode {
445
445
  id: string // 唯一标识
446
446
  name: string // 名称
447
447
  type: EntityType // 实体类型
@@ -563,14 +563,12 @@ interface IrrigationNodeData extends NodeData {
563
563
  businessData?: IrrigationEntity // 原始业务数据
564
564
  nodeShape?: 'rect' | 'circle' | 'ellipse' | 'diamond' | 'image'
565
565
  styleConfig?: NodeStyleConfig
566
- labelConfig?: LabelStyleConfig
567
566
  }
568
567
 
569
568
  interface IrrigationEdgeData extends EdgeData {
570
569
  edgeShape?: 'line' | 'polyline' | 'quadratic' | 'cubic' | 'arc'
571
570
  connectionType?: 'flow' | 'control' | 'supply'
572
571
  styleConfig?: EdgeStyleConfig
573
- labelConfig?: LabelStyleConfig
574
572
  }
575
573
  ```
576
574
 
@@ -1051,9 +1049,9 @@ const demoData: IrrigationData = {
1051
1049
  points: [
1052
1050
  // 总干渠上的点位
1053
1051
  { id: 'intake', name: '进水闸', type: 'sluice', canalId: 'main', chainage: 0 },
1054
- { id: 'fork-A', name: 'A分叉', type: 'auxiliary', auxiliaryType: 'fork', canalId: 'main', chainage: 100, branchCanalId: 'branch-A' },
1052
+ { id: 'fork-A', name: 'A分叉', type: 'auxiliary', auxiliaryType: 'fork', canalId: 'main', chainage: 100, branchId: 'branch-A' },
1055
1053
  { id: 'pump-1', name: '1号泵站', type: 'pumpStation', canalId: 'main', chainage: 200 },
1056
- { id: 'fork-B', name: 'B分叉', type: 'auxiliary', auxiliaryType: 'fork', canalId: 'main', chainage: 300, branchCanalId: 'branch-B' },
1054
+ { id: 'fork-B', name: 'B分叉', type: 'auxiliary', auxiliaryType: 'fork', canalId: 'main', chainage: 300, branchId: 'branch-B' },
1057
1055
  { id: 'outlet', name: '出水闸', type: 'sluice', canalId: 'main', chainage: 400 },
1058
1056
 
1059
1057
  // A支渠上的点位
@@ -1135,13 +1133,13 @@ import type {
1135
1133
  // 业务数据类型
1136
1134
  IrrigationData,
1137
1135
  CanalEntity,
1138
- PointEntityUnion,
1136
+ PointNodeUnion,
1139
1137
  SluiceEntity,
1140
1138
  PumpStationEntity,
1141
1139
  ReservoirEntity,
1142
1140
  DispatchUnitEntity,
1143
1141
  DispatchNodeEntity,
1144
- AuxiliaryNodeEntity,
1142
+ AuxNode,
1145
1143
  ConnectionData,
1146
1144
  EntityType,
1147
1145
 
package/dist/irr-gh.css CHANGED
@@ -1 +1 @@
1
- .irrigation-toolbar[data-v-d8adffac]{position:absolute;top:12px;left:12px;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:24px;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1)}.irrigation-toolbar__section[data-v-d8adffac]{display:flex;align-items:center;gap:8px}.irrigation-toolbar__label[data-v-d8adffac]{color:#666;font-size:14px;white-space:nowrap}.irrigation-toolbar button[data-v-d8adffac]{padding:8px 12px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;gap:4px;min-height:32px}.irrigation-toolbar button[data-v-d8adffac]:hover:not(:disabled){border-color:#1890ff;color:#1890ff;background:#f0f9ff}.irrigation-toolbar button[data-v-d8adffac]:active:not(:disabled){background:#e6f7ff}.irrigation-toolbar button[data-v-d8adffac]:disabled{opacity:.5;cursor:not-allowed}.irrigation-toolbar__icon[data-v-d8adffac]{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.irrigation-toolbar__btn-text[data-v-d8adffac]{font-size:12px;white-space:nowrap}@media(max-width:768px){.irrigation-toolbar__btn-text[data-v-d8adffac]{display:none}.irrigation-toolbar button[data-v-d8adffac]{padding:8px;min-height:auto}.irrigation-toolbar[data-v-d8adffac]{gap:12px;padding:8px}.irrigation-toolbar__section[data-v-d8adffac]{gap:6px}}.evolution-timeline[data-v-e89b8bda]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid #d9d9d9;border-radius:8px;padding:12px 16px;box-shadow:0 2px 8px #00000026;z-index:100;min-width:400px;-webkit-user-select:none;user-select:none}.timeline-controls[data-v-e89b8bda]{display:flex;align-items:center;gap:8px}.control-btn[data-v-e89b8bda]{width:32px;height:32px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.control-btn[data-v-e89b8bda]:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.control-btn[data-v-e89b8bda]:disabled{opacity:.5;cursor:not-allowed}.control-btn.active[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff;color:#fff}.play-btn[data-v-e89b8bda]{width:40px;background:#1890ff;border-color:#1890ff;color:#fff}.play-btn[data-v-e89b8bda]:hover{background:#40a9ff;border-color:#40a9ff;color:#fff}.icon-play[data-v-e89b8bda],.icon-pause[data-v-e89b8bda]{font-size:14px}.timeline-track[data-v-e89b8bda]{flex:1;height:24px;position:relative;cursor:pointer;padding:8px 0}.track-bg[data-v-e89b8bda]{position:absolute;top:50%;left:0;right:0;height:4px;background:#e8e8e8;border-radius:2px;transform:translateY(-50%)}.track-progress[data-v-e89b8bda]{position:absolute;top:50%;left:0;height:4px;background:#1890ff;border-radius:2px;transform:translateY(-50%);transition:width .2s}.track-points[data-v-e89b8bda]{position:absolute;inset:0}.track-point[data-v-e89b8bda]{position:absolute;transform:translate(-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center}.point-dot[data-v-e89b8bda]{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #d9d9d9;transition:all .2s;margin-top:6px}.track-point:hover .point-dot[data-v-e89b8bda]{border-color:#1890ff;transform:scale(1.2)}.track-point.passed .point-dot[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff}.track-point.active .point-dot[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff;transform:scale(1.3);box-shadow:0 0 0 3px #1890ff33}.point-label[data-v-e89b8bda]{font-size:10px;color:#666;margin-top:4px;white-space:nowrap}.track-point.active .point-label[data-v-e89b8bda]{color:#1890ff;font-weight:700}.speed-control select[data-v-e89b8bda]{height:32px;padding:0 8px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;cursor:pointer;font-size:12px}.speed-control select[data-v-e89b8bda]:hover{border-color:#1890ff}.loop-btn[data-v-e89b8bda]{font-size:14px}.timeline-info[data-v-e89b8bda]{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:12px;color:#666}.current-label[data-v-e89b8bda]{color:#1890ff;font-weight:500}.irrigation-graph[data-v-33a93b4b]{position:relative;width:100%;height:100%;overflow:hidden}.irrigation-graph__canvas[data-v-33a93b4b]{width:100%;height:100%}.irrigation-graph__loading[data-v-33a93b4b]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fffc;z-index:20}
1
+ .irrigation-toolbar[data-v-d8adffac]{position:absolute;top:12px;left:12px;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:24px;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1)}.irrigation-toolbar__section[data-v-d8adffac]{display:flex;align-items:center;gap:8px}.irrigation-toolbar__label[data-v-d8adffac]{color:#666;font-size:14px;white-space:nowrap}.irrigation-toolbar button[data-v-d8adffac]{padding:8px 12px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;gap:4px;min-height:32px}.irrigation-toolbar button[data-v-d8adffac]:hover:not(:disabled){border-color:#1890ff;color:#1890ff;background:#f0f9ff}.irrigation-toolbar button[data-v-d8adffac]:active:not(:disabled){background:#e6f7ff}.irrigation-toolbar button[data-v-d8adffac]:disabled{opacity:.5;cursor:not-allowed}.irrigation-toolbar__icon[data-v-d8adffac]{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.irrigation-toolbar__btn-text[data-v-d8adffac]{font-size:12px;white-space:nowrap}@media(max-width:768px){.irrigation-toolbar__btn-text[data-v-d8adffac]{display:none}.irrigation-toolbar button[data-v-d8adffac]{padding:8px;min-height:auto}.irrigation-toolbar[data-v-d8adffac]{gap:12px;padding:8px}.irrigation-toolbar__section[data-v-d8adffac]{gap:6px}}.evolution-timeline[data-v-e89b8bda]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid #d9d9d9;border-radius:8px;padding:12px 16px;box-shadow:0 2px 8px #00000026;z-index:100;min-width:400px;-webkit-user-select:none;user-select:none}.timeline-controls[data-v-e89b8bda]{display:flex;align-items:center;gap:8px}.control-btn[data-v-e89b8bda]{width:32px;height:32px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.control-btn[data-v-e89b8bda]:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.control-btn[data-v-e89b8bda]:disabled{opacity:.5;cursor:not-allowed}.control-btn.active[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff;color:#fff}.play-btn[data-v-e89b8bda]{width:40px;background:#1890ff;border-color:#1890ff;color:#fff}.play-btn[data-v-e89b8bda]:hover{background:#40a9ff;border-color:#40a9ff;color:#fff}.icon-play[data-v-e89b8bda],.icon-pause[data-v-e89b8bda]{font-size:14px}.timeline-track[data-v-e89b8bda]{flex:1;height:24px;position:relative;cursor:pointer;padding:8px 0}.track-bg[data-v-e89b8bda]{position:absolute;top:50%;left:0;right:0;height:4px;background:#e8e8e8;border-radius:2px;transform:translateY(-50%)}.track-progress[data-v-e89b8bda]{position:absolute;top:50%;left:0;height:4px;background:#1890ff;border-radius:2px;transform:translateY(-50%);transition:width .2s}.track-points[data-v-e89b8bda]{position:absolute;inset:0}.track-point[data-v-e89b8bda]{position:absolute;transform:translate(-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center}.point-dot[data-v-e89b8bda]{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #d9d9d9;transition:all .2s;margin-top:6px}.track-point:hover .point-dot[data-v-e89b8bda]{border-color:#1890ff;transform:scale(1.2)}.track-point.passed .point-dot[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff}.track-point.active .point-dot[data-v-e89b8bda]{background:#1890ff;border-color:#1890ff;transform:scale(1.3);box-shadow:0 0 0 3px #1890ff33}.point-label[data-v-e89b8bda]{font-size:10px;color:#666;margin-top:4px;white-space:nowrap}.track-point.active .point-label[data-v-e89b8bda]{color:#1890ff;font-weight:700}.speed-control select[data-v-e89b8bda]{height:32px;padding:0 8px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;cursor:pointer;font-size:12px}.speed-control select[data-v-e89b8bda]:hover{border-color:#1890ff}.loop-btn[data-v-e89b8bda]{font-size:14px}.timeline-info[data-v-e89b8bda]{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:12px;color:#666}.current-label[data-v-e89b8bda]{color:#1890ff;font-weight:500}.irrigation-graph[data-v-4f919e03]{position:relative;width:100%;height:100%;overflow:hidden}.irrigation-graph__canvas[data-v-4f919e03]{width:100%;height:100%}.irrigation-graph__loading[data-v-4f919e03]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fffc;z-index:20}