提示词保存

This commit is contained in:
2025-11-13 01:06:28 +08:00
parent fc7d2ccea5
commit c652d0ddf3
49 changed files with 4072 additions and 2452 deletions

View File

@@ -0,0 +1,80 @@
import { ref, reactive } from 'vue'
import storage from '@/utils/storage'
import { mapFromDouyin, mapFromXhs } from '../utils/benchmarkUtils'
const TABLE_DATA_STORAGE_KEY = 'benchmark_table_data'
export function useBenchmarkData() {
const data = ref([])
const selectedRowKeys = ref([])
const expandedRowKeys = ref([])
/**
* 保存表格数据到 session
*/
async function saveTableDataToSession() {
try {
// 过滤掉不需要持久化的临时字段(如 _analyzing
const persistData = (data.value || []).map((item) => {
const rest = { ...(item || {}) }
delete rest._analyzing
return rest
})
await storage.setJSON(TABLE_DATA_STORAGE_KEY, persistData)
} catch (error) {
console.warn('保存表格数据到session失败:', error)
}
}
/**
* 从 session 加载表格数据
*/
async function loadTableDataFromSession() {
try {
const savedData = await storage.getJSON(TABLE_DATA_STORAGE_KEY)
if (savedData && Array.isArray(savedData) && savedData.length > 0) {
// 强制恢复临时字段的初始状态
data.value = savedData.map((item) => ({ ...item, _analyzing: false }))
console.log('从session加载了表格数据:', savedData.length, '条')
}
} catch (error) {
console.warn('从session加载表格数据失败:', error)
}
}
/**
* 处理 API 响应数据
*/
function processApiResponse(resp, platform) {
if (platform === '抖音') {
const awemeList = resp?.data?.aweme_list || []
console.log('抖音返回的原始数据:', awemeList[0])
data.value = mapFromDouyin(awemeList)
console.log('映射后的第一条数据:', data.value[0])
} else {
const notes = resp?.data?.notes || resp?.data?.data || []
data.value = mapFromXhs(notes)
}
}
/**
* 清空数据
*/
async function clearData() {
data.value = []
selectedRowKeys.value = []
expandedRowKeys.value = []
await storage.remove(TABLE_DATA_STORAGE_KEY)
}
return {
data,
selectedRowKeys,
expandedRowKeys,
saveTableDataToSession,
loadTableDataFromSession,
processApiResponse,
clearData,
}
}