1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { defineStore } from 'pinia';
- import { Oss } from '@/api/models';
- import { toRaw } from 'vue';
- export interface DocState {
- file: Oss | any;
- messages:
- | {
- id: string;
- list: any[];
- }[]
- | any[];
- curMessage: any[];
- }
- export const useDocStore = defineStore({
- id: 'doc-store',
- state: (): DocState => ({
- file: {},
- messages: [],
- curMessage: [],
- }),
- actions: {
- onSelect(item: Oss) {
- this.file = item;
- const list = this.messages.filter((i) => i.id == this.file.id);
- if (list.length > 0) {
- this.curMessage = list[0].list;
- } else {
- this.curMessage = [];
- }
- console.log(this.curMessage);
- },
- addMessage(item: any) {
- const list = this.messages.filter((i) => i.id == this.file.id);
- if (list.length > 0) {
- list[0].list.push(toRaw(item));
- } else {
- this.messages.push({
- id: this.file.id,
- list: [toRaw(item)],
- });
- }
- },
- },
- });
|