返回 AiToEarn
pubStroe.ts
根目录 / project / aitoearn-electron / src / store / pubStroe.ts
1 import { createPersistStore } from '@/utils/createPersistStore';
2 import { StoreKey } from '@/utils/StroeEnum';
3 import { IVideoPageStore } from '@/views/publish/children/videoPage/useVideoPageStore';
4 import {
5 IPubParams,
6 IVideoChooseItem,
7 } from '@/views/publish/children/videoPage/videoPage';
8 import { IImagePageStore } from '@/views/publish/children/imagePage/useImagePageStore';
9 import { IImgFile } from '@/components/Choose/ImgChoose';
10 import { IImageAccountItem } from '@/views/publish/children/imagePage/imagePage.type';
11
12 export interface IPubStore {
13 // 视频发布保存的数据
14 videoPubSaveData: string;
15 // 图文发布保存的数据
16 imgTexPubtSaveData: string;
17 // 视频发布是否开启填写更多参数
18 moreParamsOpen: boolean;
19 }
20
21 const state: IPubStore = {
22 imgTexPubtSaveData: '',
23 videoPubSaveData: '',
24 moreParamsOpen: false,
25 };
26
27 export const usePubStroe = createPersistStore(
28 {
29 ...state,
30 },
31 (set, _get) => {
32 return {
33 clear() {
34 set({
35 ...state,
36 });
37 },
38
39 setMoreParamsOpen(moreParamsOpen: boolean) {
40 set({
41 moreParamsOpen,
42 });
43 },
44
45 // 设置图文发布保存的数据
46 setImgTextPubSaveData(data: Partial<IImagePageStore>) {
47 set({
48 imgTexPubtSaveData: JSON.stringify({
49 images: data.images,
50 commonPubParams: data.commonPubParams,
51 imageAccounts: data.imageAccounts,
52 }),
53 });
54 },
55 // 获取图文发布保存的数据
56 getImgTextPubSaveData():
57 | {
58 images?: IImgFile[];
59 commonPubParams?: IPubParams;
60 imageAccounts?: IImageAccountItem[];
61 }
62 | undefined {
63 if (_get().imgTexPubtSaveData) {
64 return JSON.parse(_get().imgTexPubtSaveData);
65 }
66 },
67 // 清空图文发布保存的数据
68 clearImgTextPubSave() {
69 set({
70 imgTexPubtSaveData: '',
71 });
72 },
73
74 // 设置视频发布保存的数据
75 setVideoPubSaveData(data: Partial<IVideoPageStore>) {
76 if (data.videoListChoose && data.videoListChoose.length !== 0) {
77 set({
78 videoPubSaveData: JSON.stringify({
79 videoListChoose: data.videoListChoose,
80 commonPubParams: data.commonPubParams,
81 operateId: data.operateId,
82 }),
83 });
84 }
85 },
86 // 获取视频发布保存的数据
87 getVideoPubSaveData():
88 | {
89 videoListChoose: IVideoChooseItem[];
90 commonPubParams?: IPubParams;
91 operateId?: string;
92 }
93 | undefined {
94 if (_get().videoPubSaveData) {
95 return JSON.parse(_get().videoPubSaveData);
96 }
97 },
98 // 清空视频发布保存的数据
99 clearVideoPubSaveData() {
100 set({
101 videoPubSaveData: '',
102 });
103 },
104 };
105 },
106 {
107 name: StoreKey.VideoPub,
108 },
109 );
110
110 lines TYPESCRIPT