index.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { EditorModule } from "..";
  2. import { getOption } from "../config/compUIOptions/create";
  3. import { DesignTemp } from "../defines/DesignTemp";
  4. import { DesignComp } from "../defines/DesignTemp/DesignComp";
  5. import { ICompKeys } from "../typings";
  6. export const store = EditorModule.store({
  7. state: () => ({
  8. editMode: "edit",
  9. currCompId: "",
  10. designData: new DesignTemp(),
  11. }),
  12. getters: {
  13. currComp(state) {
  14. const comp = state.designData.content.find(
  15. (d) => d.id === state.currCompId
  16. );
  17. return comp;
  18. },
  19. },
  20. actions: {
  21. setEditMode(v: string) {
  22. this.store.editMode = v;
  23. },
  24. initDesignData(data: Partial<DesignTemp>) {
  25. this.store.designData = new DesignTemp(data);
  26. },
  27. insertDesignContent(compKey: ICompKeys, index?: number) {
  28. index || (index = this.store.designData.content.length);
  29. const comp = new DesignComp({
  30. compKey,
  31. value: getOption(this.config.compUIOptions, compKey)?.defaultValue,
  32. });
  33. this.store.designData.content.splice(index, 0, comp);
  34. return comp;
  35. },
  36. setCurrComp(compId: string) {
  37. this.store.currCompId = compId;
  38. },
  39. deleteComp(compId: string) {
  40. const index = this.store.designData.content.findIndex(
  41. (d) => d.id === compId
  42. );
  43. if (index !== -1) {
  44. this.store.designData.content.splice(index, 1);
  45. }
  46. },
  47. },
  48. });