poi-plugin-kai-planner 1.0.11 → 1.0.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
@@ -41,10 +41,12 @@
41
41
  - Wishlist 展开明细中的“当前持有”计数会去除改修星数大于 0 的装备以及计划起点装备
42
42
  - 页面顶部 tab、上一次数据源更新、检查更新与更新提示统一使用 `14px` 字号
43
43
  - Daily 与 Wishlist 主表的折叠箭头统一为:未展开 `▶`、已展开 `▼`
44
+ - Daily 与 Wishlist 中的类型 filter 已调整为更接近 `poi-plugin-item-info` 的 `checkbox + icon` 轻量布局
44
45
 
45
46
  ## 装备类型 icon 兼容性说明
46
47
 
47
48
  - 当前所有装备类型 icon 均直接使用 POI 宿主的 `SlotitemIcon` 默认渲染尺寸
49
+ - Daily 表格、Wishlist 表格、类型 filter 现在都直接从 `views/components/etc/icon` 引入宿主 `SlotitemIcon`
48
50
  - 插件侧不再对 `SlotitemIcon` 做 `zoom`、`transform: scale(...)` 或其它自定义缩放处理
49
51
  - 原因是不同用户的 POI / Electron / 系统缩放环境下,非宿主默认缩放可能导致 icon 错位、放大或整页异常
50
- - 若后续仍需优化观感,优先通过 icon 外层容器的间距、行高、按钮 padding 等布局参数处理,不再恢复 icon 本体缩放
52
+ - 若后续仍需优化观感,优先参考 `poi-plugin-item-info` 的宿主友好结构,通过 checkbox / label 布局、外层 gap 、margin 等轻量样式调整观感
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poi-plugin-kai-planner",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "main": "index.js",
5
5
  "author": "aulu",
6
6
  "contributors": ["aulu"],
@@ -2,13 +2,6 @@
2
2
 
3
3
  const React = require("react");
4
4
 
5
- let SlotitemIcon = null;
6
- try {
7
- ({ SlotitemIcon } = require("views/components/etc/icon"));
8
- } catch {}
9
-
10
- const { EquipTypeIconFilter } = require("../../components/EquipTypeIconFilter");
11
-
12
5
  const { loadStaticData } = require("../../../data/loaders/loadStaticData");
13
6
 
14
7
  const {
@@ -281,9 +274,7 @@ class DailyTab extends React.Component {
281
274
 
282
275
  error: null,
283
276
 
284
- search: "",
285
-
286
- selectedEquipTypes: [],
277
+ search: ""
287
278
  };
288
279
 
289
280
  this.refresh = this.refresh.bind(this);
@@ -505,39 +496,9 @@ class DailyTab extends React.Component {
505
496
  .trim()
506
497
  .toLowerCase();
507
498
 
508
- const selectedEquipTypes = Array.isArray(this.state.selectedEquipTypes)
509
- ? this.state.selectedEquipTypes.map(String)
510
- : [];
511
-
512
- const selectedEquipTypeSet = new Set(selectedEquipTypes);
513
-
514
499
  const allRows = vm && vm.rows ? vm.rows : [];
515
500
 
516
- const equipTypeOptions = [];
517
-
518
- const seenEquipTypes = new Set();
519
-
520
- for (const row of allRows) {
521
- const key = row && row.iconType != null ? String(row.iconType) : "";
522
-
523
- if (!key || seenEquipTypes.has(key)) continue;
524
-
525
- seenEquipTypes.add(key);
526
-
527
- equipTypeOptions.push({
528
- key,
529
-
530
- iconType: row.iconType,
531
-
532
- name: String(row && row.equipTypeName ? row.equipTypeName : ""),
533
- });
534
- }
535
-
536
501
  const rows = allRows.filter((r) => {
537
- const typeKey = r && r.iconType != null ? String(r.iconType) : "";
538
-
539
- if (selectedEquipTypeSet.size && !selectedEquipTypeSet.has(typeKey))
540
- return false;
541
502
 
542
503
  if (
543
504
  q &&
@@ -602,36 +563,6 @@ class DailyTab extends React.Component {
602
563
  ),
603
564
  ),
604
565
 
605
- equipTypeOptions.length
606
- ? React.createElement(
607
- "div",
608
-
609
- { style: { marginTop: 10 } },
610
-
611
- React.createElement(EquipTypeIconFilter, {
612
- options: equipTypeOptions,
613
-
614
- selectedKeys: selectedEquipTypes,
615
-
616
- onToggle: (key) =>
617
- this.setState((prev) => {
618
- const current = new Set(
619
- Array.isArray(prev.selectedEquipTypes)
620
- ? prev.selectedEquipTypes.map(String)
621
- : [],
622
- );
623
-
624
- if (current.has(key)) current.delete(key);
625
- else current.add(key);
626
-
627
- return { selectedEquipTypes: Array.from(current) };
628
- }),
629
-
630
- onClear: () => this.setState({ selectedEquipTypes: [] })
631
- }),
632
- )
633
- : null,
634
-
635
566
  React.createElement(
636
567
  "div",
637
568
 
@@ -711,7 +642,7 @@ class DailyTab extends React.Component {
711
642
 
712
643
  { style: { margin: "0 0 10px", opacity: 0.8 } },
713
644
 
714
- `今日可改修装备:${rows.length} 条${selectedEquipTypes.length ? `(类型筛选:${selectedEquipTypes.length})` : ""}${q ? `(搜索:${this.state.search})` : ""}`,
645
+ `今日可改修装备:${rows.length} 条${q ? `(搜索:${this.state.search})` : ""}`,
715
646
  ),
716
647
 
717
648
  React.createElement(
@@ -831,9 +762,6 @@ React.createElement("th", { style: { ...thStyle, ...upgradeColStyle } }, "可进
831
762
  foldIcon,
832
763
  ),
833
764
 
834
- SlotitemIcon && r.iconType
835
- ? React.createElement(SlotitemIcon, { slotitemId: r.iconType })
836
- : null,
837
765
 
838
766
  React.createElement(
839
767
  "div",
@@ -31,7 +31,6 @@ const {
31
31
  upsertLastResult,
32
32
  } = require("../../../storage/userPlans/planStore");
33
33
  const { CreatePlanForm } = require("./CreatePlanForm");
34
- const { EquipTypeIconFilter } = require("../../components/EquipTypeIconFilter");
35
34
  const { WishlistTable } = require("./components/WishlistTable");
36
35
  const { WishlistExpandedDetail } = require("./components/WishlistExpandedDetail");
37
36
  const { buildWishlistViewModel } = require("../../../services/wishlist/buildWishlistViewModel");
@@ -108,7 +107,6 @@ class WishlistTab extends React.Component {
108
107
  rebindInputById: {},
109
108
  editById: {},
110
109
  filterTargetName: "",
111
- selectedTargetEquipTypes: [],
112
110
  activePlanTab: "unfinished",
113
111
  showCreateForm: false,
114
112
  create: {
@@ -632,37 +630,7 @@ class WishlistTab extends React.Component {
632
630
  masterEquipsById,
633
631
  masterEquipTypesById: state.const.$equipTypes || {},
634
632
  });
635
- const selectedTargetEquipTypes = Array.isArray(this.state.selectedTargetEquipTypes)
636
- ? this.state.selectedTargetEquipTypes.map(String)
637
- : [];
638
- const selectedTargetEquipTypeSet = new Set(selectedTargetEquipTypes);
639
- const targetEquipTypeOptions = [];
640
- const seenTargetEquipTypes = new Set();
641
- for (const rowVm of vm.rows || []) {
642
- const key = rowVm && rowVm.targetIconType != null ? String(rowVm.targetIconType) : "";
643
- if (!key || seenTargetEquipTypes.has(key)) continue;
644
- seenTargetEquipTypes.add(key);
645
- targetEquipTypeOptions.push({
646
- key,
647
- iconType: rowVm.targetIconType,
648
- name: String(rowVm && rowVm.targetEquipTypeName ? rowVm.targetEquipTypeName : ""),
649
- });
650
- }
651
- const matchesSelectedTargetType = (rowVm) => {
652
- const key = rowVm && rowVm.targetIconType != null ? String(rowVm.targetIconType) : "";
653
- return !selectedTargetEquipTypeSet.size || selectedTargetEquipTypeSet.has(key);
654
- };
655
- const filteredVm = {
656
- ...vm,
657
- rows: (vm.rows || []).filter(matchesSelectedTargetType),
658
- unfinishedRows: (vm.unfinishedRows || []).filter(matchesSelectedTargetType),
659
- completedRows: (vm.completedRows || []).filter(matchesSelectedTargetType),
660
- };
661
- filteredVm.counts = {
662
- total: filteredVm.rows.length,
663
- unfinished: filteredVm.unfinishedRows.length,
664
- completed: filteredVm.completedRows.length,
665
- };
633
+ const filteredVm = vm;
666
634
  const activePlanTab = this.state.activePlanTab || "unfinished";
667
635
  const activeRows = activePlanTab === "completed" ? filteredVm.completedRows : filteredVm.unfinishedRows;
668
636
 
@@ -691,26 +659,6 @@ class WishlistTab extends React.Component {
691
659
  React.createElement("button", { onClick: () => this.setState({ showCreateForm: true }) }, "新增改修计划"),
692
660
  React.createElement("button", { onClick: this.refreshPlans }, "刷新")
693
661
  ),
694
- targetEquipTypeOptions.length
695
- ? React.createElement(
696
- "div",
697
- { style: { marginTop: 10 } },
698
- React.createElement(EquipTypeIconFilter, {
699
- options: targetEquipTypeOptions,
700
- selectedKeys: selectedTargetEquipTypes,
701
- onToggle: (key) =>
702
- this.setState((prev) => {
703
- const current = new Set(
704
- Array.isArray(prev.selectedTargetEquipTypes) ? prev.selectedTargetEquipTypes.map(String) : []
705
- );
706
- if (current.has(key)) current.delete(key);
707
- else current.add(key);
708
- return { selectedTargetEquipTypes: Array.from(current) };
709
- }),
710
- onClear: () => this.setState({ selectedTargetEquipTypes: [] }),
711
- })
712
- )
713
- : null,
714
662
  React.createElement(
715
663
  "div",
716
664
  { style: planTabBar },
@@ -1,10 +1,6 @@
1
1
  /* src/app/tabs/wishlist/components/WishlistTable.js */
2
2
 
3
3
  const React = require("react");
4
- let SlotitemIcon = null;
5
- try {
6
- ({ SlotitemIcon } = require("views/components/etc/icon"));
7
- } catch {}
8
4
 
9
5
  const PRIORITY_STYLE_MAP = {
10
6
  P0: { color: "#fecaca", borderColor: "rgba(239,68,68,0.55)", background: "rgba(239,68,68,0.16)" },
@@ -111,7 +107,7 @@ function WishlistTable({
111
107
  },
112
108
  React.createElement(
113
109
  "td",
114
- { style: { ...td, ...actionColStyle } },
110
+ { style: td },
115
111
  React.createElement(
116
112
  "div",
117
113
  { style: { display: "flex", gap: 8, alignItems: "center" } },
@@ -136,9 +132,6 @@ function WishlistTable({
136
132
  },
137
133
  expandIcon
138
134
  ),
139
- SlotitemIcon && rowVm.targetIconType
140
- ? React.createElement(SlotitemIcon, { slotitemId: rowVm.targetIconType })
141
- : null,
142
135
  React.createElement(
143
136
  "div",
144
137
  null,