1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { defineStore } from "pinia";
- import { computed, ref, watch } from "vue";
- import {
- convertUniverData2ObjectList,
- array2mindmapData,
- } from "@/utils/convert";
- import type { Workbook, FUniver, Univer } from "@univerjs/presets";
- import { ElMessage } from "element-plus";
- export const useEditBomStore = defineStore("editBom", () => {
- const BpmTools = ref<any>(null);
- const workbook = ref<Workbook | null>(null);
- const univerApi = ref<FUniver | null>(null);
- const univer = ref<Univer | null>(null);
- /**
- * 思维导图数据与excel数据转换
- * 拦截思维导图数据 转换成excel数据
- */
- const mindmapData = computed({
- get() {
- const fWorkbook = univerApi.value?.getActiveWorkbook();
- const fWorksheet = fWorkbook?.getActiveSheet();
- const rows = fWorksheet?.getLastRow() || 0;
- const columns = fWorksheet?.getLastColumn() || 0;
- const range = fWorksheet?.getRange(0, 0, rows + 1, columns + 1);
- // 获取表格数据
- const rowData = range?.getValues();
- if (!rowData) {
- ElMessage.error("数据异常");
- return [];
- }
- // 表格数据转换成对象列表
- const json = convertUniverData2ObjectList(rowData);
- // 转换成mindmap数据
- const list = array2mindmapData(json);
- return {
- id: "root",
- data: {
- type: "root",
- },
- children: list,
- };
- },
- set(value: any) {
- console.log("修改mindmap:", value);
- // 1、移动行数据 sheet.moveRows(要移动的行(范围), 目标位置)
- // 2、新增行数据 sheet.insertRowAfter(目标行)
- // 3、修改行数据
- // 3.1 获取范围
- // 3.2 设置范围值
- if (!workbook.value) return;
- },
- });
- watch(
- () => univerApi.value,
- (api) => {
- if(api) {
- // 开始编辑事件 params.cancel = true 阻止编辑
- api.addEvent(api.Event.BeforeSheetEditStart, params => {
- console.log('BeforeSheetEditStart', params)
- // params.cancel = true
- });
- api.addEvent(api.Event.SheetEditChanging, params => {
- console.log('SheetEditChanging', params)
- });
- }
- }
- );
- return {
- workbook,
- mindmapData,
- univer,
- univerApi,
- BpmTools,
- };
- });
|