47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
// models/TabsModel.js
|
|
import db from '../lib/db.js';
|
|
|
|
class TabsModel {
|
|
static async getAllTabs() {
|
|
await db.read();
|
|
return db.data.tabs;
|
|
}
|
|
static async getTabById(id){
|
|
await db.read();
|
|
return db.data.tabs.find(tab => tab.id === id);
|
|
}
|
|
static async addTab(tab) {
|
|
await db.read();
|
|
db.data.tabs.push(tab);
|
|
await db.write();
|
|
}
|
|
static async findTabByTitle(title) {
|
|
await db.read();
|
|
return db.data.tabs.find(tab => tab.title === title);
|
|
}
|
|
static async updateTab(tabKey, updatedTab) {
|
|
await db.read();
|
|
const tab = db.data.tabs.find(tab => tab.id === tabKey);
|
|
if (tab) {
|
|
console.log(tab,updatedTab)
|
|
// 仅更新传入的字段
|
|
Object.keys(updatedTab).forEach(key => {
|
|
// 确保只更新存在的字段,防止意外修改
|
|
if (tab.hasOwnProperty(key)) {
|
|
console.log(key)
|
|
tab[key] = updatedTab[key];
|
|
}
|
|
});
|
|
await db.write();
|
|
}
|
|
}
|
|
|
|
static async deleteTab(tabKey) {
|
|
await db.read();
|
|
db.data.tabs = db.data.tabs.filter(tab => tab.id !== tabKey);
|
|
await db.write();
|
|
}
|
|
}
|
|
|
|
export default TabsModel;
|