
@@ -92,7 +102,7 @@ import { exists } from "@tauri-apps/plugin-fs";
import { platform } from "@tauri-apps/plugin-os";
import TGLogger from "@utils/TGLogger.js";
import { storeToRefs } from "pinia";
-import { nextTick, onMounted, ref, shallowRef, watch } from "vue";
+import { nextTick, onMounted, ref, shallowRef, triggerRef, watch } from "vue";
import { WikiMaterialData } from "@/data/index.js";
@@ -202,6 +212,15 @@ function searchMaterial(): void {
//TODO:搜索材料
}
+function handleUpdate(info: MaterialInfo): void {
+ let find = materialList.value.find((i) => i.info.id === info.info.id);
+ if (find !== undefined) {
+ find = info;
+ curMaterial.value = info;
+ triggerRef(materialList);
+ }
+}
+
/**
* 尝试导入材料(通过Yae)
*/
diff --git a/src/plugins/Sqlite/modules/userBagMaterial.ts b/src/plugins/Sqlite/modules/userBagMaterial.ts
index b543ea74..638f8338 100644
--- a/src/plugins/Sqlite/modules/userBagMaterial.ts
+++ b/src/plugins/Sqlite/modules/userBagMaterial.ts
@@ -43,6 +43,7 @@ function getInsertSql(tb: TGApp.Sqlite.UserBag.TableMaterialRaw): string {
* @param {number} itemId - 材料ID
* @param {number} count - 材料数量
* @param {Array
} [records] - 更新记录
+ * @param {boolean} manual - 是否手动
* @returns {Promise}
*/
async function insertMaterial(
@@ -50,12 +51,14 @@ async function insertMaterial(
itemId: number,
count: number,
records: Array = [],
+ manual: boolean = false,
): Promise {
const now = Date.now();
const newRecord: TGApp.Sqlite.UserBag.MaterialRecord = {
count: count,
time: Math.floor(now / 1000),
};
+ if (manual) newRecord.manual = true;
const newRecords = [...records, newRecord];
const newTable: TGApp.Sqlite.UserBag.TableMaterialRaw = {
uid: uid,
@@ -100,7 +103,9 @@ function parseMaterial(
): TGApp.Sqlite.UserBag.TableMaterial {
return {
...raw,
- records: JSON.parse(raw.records),
+ records: (>JSON.parse(raw.records)).sort(
+ (a, b) => b.time - a.time,
+ ),
};
}
diff --git a/src/types/Sqlite/UserBag.d.ts b/src/types/Sqlite/UserBag.d.ts
index b6775344..7368521e 100644
--- a/src/types/Sqlite/UserBag.d.ts
+++ b/src/types/Sqlite/UserBag.d.ts
@@ -47,5 +47,10 @@ declare namespace TGApp.Sqlite.UserBag {
count: number;
/** 时间戳(秒) */
time: number;
+ /**
+ * 是否是手动更新
+ * @remarks 该字段默认不存在,手动更新时添加该字段
+ */
+ manual?: boolean;
};
}