刘光辉
11 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
import { ref } from 'vue';
 
import { defineStore } from 'pinia';
 
import { getAlphabetFromIndexRule, isNullOrUndefined } from '../univer/utils';
 
// 初始状态的默认值
const defaultFocusFloatDomData = {
  domId: undefined,
  drawingId: undefined,
  option: {},
};
 
export const useJnpfUniverStore = (id: string) => {
  return defineStore(id, () => {
    const jnpfUniverApiCache: any = ref(null); // 整个api实例
    const univerCreateModeCache: any = ref(null); // univer创建模式
 
    const focusedFloatEchartDataCache = ref({ ...defaultFocusFloatDomData }); // 已聚焦的悬浮图表数据
    const floatEchartDataCaches: Record<string, any> = ref({}); // 工作表中所有悬浮图表的数据
    const floatEchartToUniverImgDataCaches: Record<string, any> = ref({}); // 工作表中所有悬浮图表转成univer图片后的数据
 
    const focusedFloatImageDataCache = ref({ ...defaultFocusFloatDomData }); // 已聚焦的悬浮图片数据
    const floatImageDataCaches: Record<string, any> = ref({}); // 工作表中所有悬浮图片的数据
    const floatImageToUniverImgDataCaches: Record<string, any> = ref({}); // 工作表中所有悬浮图片转成univer图片后的数据
 
    const dialogSelectCellDataCache: any = ref(null); // 弹窗选择区域的单元格信息
    const dialogSelectCellStateCache: any = ref(null); // 弹窗选择单元格状态 --- 值为时间戳,用于触发页面的状态更新
 
    // 重置存储状态为初始值
    const resetStore = () => {
      jnpfUniverApiCache.value = null;
      univerCreateModeCache.value = null;
 
      focusedFloatEchartDataCache.value = { ...defaultFocusFloatDomData };
      floatEchartDataCaches.value = {};
      floatEchartToUniverImgDataCaches.value = {};
 
      focusedFloatImageDataCache.value = { ...defaultFocusFloatDomData };
      floatImageDataCaches.value = {};
      floatImageToUniverImgDataCaches.value = {};
 
      dialogSelectCellDataCache.value = null;
      dialogSelectCellStateCache.value = null;
    };
 
    // 存储univer创建模式
    const setUniverCreateModeCache = (type: string) => {
      univerCreateModeCache.value = type;
    };
 
    // 存储jnpfUniverApi
    const setJnpfUniverApiCache = (value: any) => {
      jnpfUniverApiCache.value = value ?? null;
    };
 
    // 根据drawingId获取悬浮图表信息
    const getFloatEchartDataByDrawingId = (drawingId: string) => {
      return floatEchartDataCaches.value?.[drawingId] ?? null;
    };
 
    // 更新已聚焦的悬浮图表数据
    const updateFocusedFloatEchartDataCache = (value: any = {}) => {
      focusedFloatEchartDataCache.value = value;
    };
 
    // 存储工作本中所有悬浮图表的数据
    const setFloatEchartDataCaches = (value: any = {}) => {
      floatEchartDataCaches.value = value;
 
      jnpfUniverApiCache.value?.getSheetsFloatDom()?.saveFloatEchartItems(value);
    };
 
    // 存储工作本中所有悬浮图表转成univer图片后的数据
    const setFloatEchartToUniverImgDataCaches = (value: any = {}) => {
      floatEchartToUniverImgDataCaches.value = value;
    };
 
    // 根据drawingId获取悬浮图片信息
    const getFloatImageDataByDrawingId = (drawingId: string) => {
      return floatImageDataCaches.value?.[drawingId] ?? null;
    };
 
    // 更新已聚焦的悬浮图片数据
    const updateFocusedFloatImageDataCache = (deliverConfig: any = {}) => {
      focusedFloatImageDataCache.value = deliverConfig;
    };
 
    // 存储工作本中所有悬浮图片的数据
    const setFloatImageDataCaches = (value: any = {}) => {
      floatImageDataCaches.value = value;
 
      jnpfUniverApiCache.value?.getSheetsFloatDom()?.saveFloatImageItems(value);
    };
 
    // 存储工作本中所有悬浮图片转成univer图片后的数据
    const setFloatImageToUniverImgDataCaches = (value: any) => {
      floatImageToUniverImgDataCaches.value = value;
    };
 
    // 存储弹窗选择单元格的值
    const setDialogSelectCellDataCache = (value: any) => {
      if (!value || isNullOrUndefined(value?.startRow) || isNullOrUndefined(value?.startColumn)) {
        dialogSelectCellDataCache.value = null;
        return;
      }
 
      dialogSelectCellDataCache.value = `${getAlphabetFromIndexRule(value.startColumn)}${value.startRow + 1}`;
    };
 
    // 取消弹窗选择单元格结果
    const cancelDialogSelectCell = () => {
      setDialogSelectCellDataCache(null);
 
      dialogSelectCellStateCache.value = Date.now();
    };
 
    // 确认弹窗选择单元格结果
    const confirmDialogSelectCell = () => {
      dialogSelectCellStateCache.value = Date.now();
    };
 
    return {
      cancelDialogSelectCell,
 
      confirmDialogSelectCell,
      dialogSelectCellDataCache,
      dialogSelectCellStateCache,
 
      floatEchartDataCaches,
      floatEchartToUniverImgDataCaches,
      floatImageDataCaches,
 
      floatImageToUniverImgDataCaches,
      focusedFloatEchartDataCache,
 
      focusedFloatImageDataCache,
      getFloatEchartDataByDrawingId,
 
      getFloatImageDataByDrawingId,
      resetStore,
      setDialogSelectCellDataCache,
      setFloatEchartDataCaches,
 
      setFloatEchartToUniverImgDataCaches,
      setFloatImageDataCaches,
      setFloatImageToUniverImgDataCaches,
      setJnpfUniverApiCache,
 
      setUniverCreateModeCache,
      univerCreateModeCache,
      updateFocusedFloatEchartDataCache,
 
      updateFocusedFloatImageDataCache,
    };
  })();
};