ai对话缓存
This commit is contained in:
@@ -360,6 +360,30 @@ const AppLayout: React.FC = () => {
|
||||
|
||||
localStorage.setItem('siteInfo', JSON.stringify({ siteName: name, siteLogo: logo }));
|
||||
}).catch(() => { });
|
||||
|
||||
getUser().then((res: any) => {
|
||||
// console.log('[Storage] getUser 返回:', res);
|
||||
|
||||
const rc = res?.resourceCapacity;
|
||||
if (rc) {
|
||||
setResourceCapacity({
|
||||
enabled: !!rc.enabled,
|
||||
usedBytes: Number(rc.usedBytes) || 0,
|
||||
totalBytes: Number(rc.totalBytes) || 0,
|
||||
availableBytes: Number(rc.availableBytes) || 0,
|
||||
usagePercent: Number(rc.usagePercent) || 0,
|
||||
exceeded: !!rc.exceeded,
|
||||
limitValue: rc.limitValue ?? '',
|
||||
limitUnit: rc.limitUnit || 'GB',
|
||||
});
|
||||
}
|
||||
// 没数据时不显示
|
||||
}).catch((err: any) => {
|
||||
// console.error('[Storage] getUser 失败:', err);
|
||||
// 接口失败也不显示
|
||||
});
|
||||
|
||||
|
||||
}, []);
|
||||
|
||||
const handleContactMouseDown = (e: React.MouseEvent) => {
|
||||
|
||||
@@ -111,11 +111,7 @@ const AIChatPage: React.FC = () => {
|
||||
const [conversations, setConversations] = useState<Conversation[]>([
|
||||
]);
|
||||
|
||||
|
||||
|
||||
const [inputValue, setInputValue] = useState<string>('');
|
||||
|
||||
// 从 store 读取生成配置状态
|
||||
// 从 store 读取生成配置状态(包括输入框内容)
|
||||
const {
|
||||
mediaType,
|
||||
countType,
|
||||
@@ -128,6 +124,7 @@ const AIChatPage: React.FC = () => {
|
||||
videoResolution,
|
||||
engineOptions,
|
||||
enginesele,
|
||||
inputValue,
|
||||
setMediaType,
|
||||
setCountType,
|
||||
setSelectedRatio,
|
||||
@@ -139,6 +136,7 @@ const AIChatPage: React.FC = () => {
|
||||
setVideoResolution,
|
||||
setEngineOptions,
|
||||
setEnginesele,
|
||||
setInputValue,
|
||||
} = useAppStore();
|
||||
|
||||
const [uploading, setUploading] = useState<boolean>(false);
|
||||
@@ -2222,6 +2220,7 @@ const AIChatPage: React.FC = () => {
|
||||
<span style={{ fontSize: 12, color: '#9ca3af' }}>秒</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{/* 选择分辨率 */}
|
||||
|
||||
@@ -45,7 +45,6 @@ const HomePage: React.FC = () => {
|
||||
try {
|
||||
|
||||
getmedit(5).then((res) => {
|
||||
console.log('getmedit:', res);
|
||||
for (let item in res) {
|
||||
res[item].forEach(element => {
|
||||
// 给每条 element 标记它所属的模块(item 是接口返回的 key)
|
||||
@@ -56,13 +55,11 @@ const HomePage: React.FC = () => {
|
||||
}
|
||||
// 最终再打印一次汇总(state 异步更新,这里打印的是本次追加的累计长度)
|
||||
setMockVideos(prev => {
|
||||
console.log('mockVideos 最终条数:', prev.length);
|
||||
return prev;
|
||||
});
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
console.error('HomePage fetch error:', err);
|
||||
}
|
||||
};
|
||||
fetchAll();
|
||||
@@ -701,17 +698,8 @@ const HomePage: React.FC = () => {
|
||||
<div style={{
|
||||
padding: '10px 12px',
|
||||
background: '#f8fafc',
|
||||
paddingTop: 0,
|
||||
}}>
|
||||
{/* <div style={{
|
||||
fontSize: 13,
|
||||
color: '#334155',
|
||||
fontWeight: 500,
|
||||
whiteSpace: 'nowrap',
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
}}>
|
||||
{video.title || video.name || video.originalPrompt || video.prompt || '未命名作品'}
|
||||
</div> */}
|
||||
<div style={{
|
||||
marginTop: 6,
|
||||
display: 'flex',
|
||||
|
||||
@@ -116,7 +116,6 @@ function RemoveInfo() {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('轮询获取拆镜列表失败:', error);
|
||||
}
|
||||
}, 30000); // 30秒轮询
|
||||
}
|
||||
@@ -155,7 +154,6 @@ function RemoveInfo() {
|
||||
if (!taskDetail) return;
|
||||
|
||||
if (taskDetail.analysisStatus === 'processing') {
|
||||
console.log("开始轮询");
|
||||
|
||||
analysisPollingRef.current = window.setInterval(async () => {
|
||||
try {
|
||||
@@ -236,7 +234,6 @@ function RemoveInfo() {
|
||||
material_image_url: buildAssetUrl(productImage),
|
||||
idempotency_key: `replication_${Date.now()}`,
|
||||
};
|
||||
console.log(currentSegment,params);
|
||||
|
||||
|
||||
setLoading(true);
|
||||
@@ -245,10 +242,8 @@ function RemoveInfo() {
|
||||
message.success('视频生成任务创建成功');
|
||||
handleCloseDrawer();
|
||||
Removelist(creatID).then((res: any) => {
|
||||
console.log('123123123123',res);
|
||||
|
||||
const targetItem = res.items.find((item: any) => item.id === currentSegment);
|
||||
console.log(targetItem);
|
||||
message.loading('创建中...', 3);
|
||||
|
||||
setTimeout(() => {
|
||||
@@ -355,7 +350,6 @@ function RemoveInfo() {
|
||||
render: (_: any, record: any) => (
|
||||
<div style={{ position: 'relative', width: 120, height: 80, borderRadius: 6, overflow: 'hidden', background: '#f1f5f9', cursor: 'pointer' }}
|
||||
onClick={() => {
|
||||
console.log('video clicked:', record.segmentVideoUrl);
|
||||
if (record.segmentVideoUrl) {
|
||||
setPreviewVideoUrl(buildAssetUrl(record.segmentVideoUrl));
|
||||
setPreviewModalVisible(true);
|
||||
|
||||
@@ -194,7 +194,6 @@ function InitialInfo() {
|
||||
// 获取任务详情数据
|
||||
useEffect(() => {
|
||||
|
||||
console.log('creatID', creatID);
|
||||
|
||||
if (creatID) {
|
||||
removeDetail(creatID).then((res: any) => {
|
||||
|
||||
@@ -31,6 +31,7 @@ interface AppState {
|
||||
durations: number[];
|
||||
};
|
||||
enginesele: any;
|
||||
inputValue: string;
|
||||
|
||||
fetchProjects: () => Promise<void>;
|
||||
createProject: (name: string, industry: Industry) => Promise<Project>;
|
||||
@@ -56,6 +57,7 @@ interface AppState {
|
||||
setVideoAspectRatio: (aspectRatio: string) => void;
|
||||
setVideoResolution: (resolution: string) => void;
|
||||
setEnginesele: (enginesele: any) => void;
|
||||
setInputValue: (inputValue: string) => void;
|
||||
resetGenerationConfig: () => void;
|
||||
}
|
||||
|
||||
@@ -80,6 +82,7 @@ export const useAppStore = create<AppState>((set, get) => ({
|
||||
durations: [5, 8, 10, 12, 15],
|
||||
},
|
||||
enginesele: [],
|
||||
inputValue: '',
|
||||
|
||||
fetchProjects: async () => {
|
||||
set({ loading: true });
|
||||
@@ -168,6 +171,7 @@ export const useAppStore = create<AppState>((set, get) => ({
|
||||
setVideoAspectRatio: (aspectRatio) => set({ videoAspectRatio: aspectRatio }),
|
||||
setVideoResolution: (resolution) => set({ videoResolution: resolution }),
|
||||
setEnginesele: (enginesele) => set({ enginesele }),
|
||||
setInputValue: (inputValue) => set({ inputValue }),
|
||||
resetGenerationConfig: () => set({
|
||||
mediaType: 'image',
|
||||
countType: '请选择',
|
||||
@@ -184,5 +188,6 @@ export const useAppStore = create<AppState>((set, get) => ({
|
||||
durations: [5, 8, 10, 12, 15],
|
||||
},
|
||||
enginesele: [],
|
||||
inputValue: '',
|
||||
}),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user