enter.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import { ElMessage } from "element-plus";
  2. import { params, preventReload } from "../env";
  3. import * as platform from "./enter-shared";
  4. import { asyncTimeout } from "@/utils/shared";
  5. import { getEmptyStoreData } from "@/core/store/store";
  6. import { defaultLayer } from "@/constant";
  7. import { tableTitleKey } from "../constant";
  8. import { getBaseItem } from "@/core/components/util";
  9. import { getRealPixel } from "./views/tabulation/gen-tab";
  10. import { getPaperConfig, paperConfigs } from "../components/slide/actions";
  11. window.platform = { ...platform };
  12. let isLoging = false;
  13. window.platform.login = (isBack = true) => {
  14. if (isLoging) {
  15. throw "登录中";
  16. }
  17. isLoging = true;
  18. if (import.meta.env.DEV) {
  19. platform
  20. .post("/service/manage/login", {
  21. password: "JwiuK95dExMjM0NTY=7nHGf5ySQWSuC4G1An",
  22. username: "super-admin",
  23. userName: "super-admin",
  24. })
  25. .then((res) => {
  26. params.value.token = res.token;
  27. setTimeout(() => location.reload(), 1000);
  28. isLoging = false;
  29. });
  30. return;
  31. }
  32. return platform.login(isBack);
  33. };
  34. // 场景码+楼层 转绘图id
  35. const sceneTransform = async (m: string, subGroup: string = "0") => {
  36. const data = await platform.get("fusion/caseOverview/info", {
  37. num: m,
  38. subGroup,
  39. });
  40. if (data?.id) {
  41. params.value.overviewId = data.id;
  42. delete params.value.m;
  43. delete params.value.floor;
  44. preventReload();
  45. }
  46. await asyncTimeout(10);
  47. };
  48. const m = params.value.m;
  49. const subgroup = params.value.floor;
  50. window.platform.sceneDraw = m && !!params.value.sceneDraw;
  51. if (window.platform.sceneDraw) {
  52. sceneTransform(m, subgroup).then(() => {
  53. /* @vite-ignore */
  54. import(import.meta.env.VITE_ENTRY_EXAMPLE);
  55. });
  56. window.platform.saveOverviewData = async (id: any, data: any) => {
  57. const result = await platform.saveOverviewData(id, {
  58. ...data,
  59. num: m,
  60. subGroup: subgroup,
  61. });
  62. const key = `${m}-${subgroup}-draw-kankan-cover`;
  63. localStorage.setItem(key, data.kankanCover);
  64. return result;
  65. };
  66. } else {
  67. /* @vite-ignore */
  68. import(import.meta.env.VITE_ENTRY_EXAMPLE);
  69. }
  70. window.platform.getTabulationData = async (...args: any[]) => {
  71. const result = await platform.getTabulationData.apply(this, args as any);
  72. if (!result.title && platform.getTableTemp().title) {
  73. result.title = platform.getTableTemp().title;
  74. }
  75. if (!result.store) {
  76. result.store = {
  77. ...getEmptyStoreData(),
  78. };
  79. }
  80. if (result.title) {
  81. let texts = result.store.layers[defaultLayer].text;
  82. if (!texts) {
  83. texts = result.store.layers[defaultLayer].text = []
  84. }
  85. let title = texts.find((title: any) => title.key === tableTitleKey);
  86. if (title) {
  87. title.content = result.title;
  88. } else {
  89. const { margin, size } = getPaperConfig(
  90. (paperConfigs as any)[result.paperKey].size,
  91. (paperConfigs as any)[result.paperKey].scale
  92. );
  93. const title = {
  94. ...getBaseItem(),
  95. content: result.title,
  96. width: getRealPixel(90, result.paperKey),
  97. heihgt: getRealPixel(14.4, result.paperKey),
  98. fontSize: getRealPixel(12, result.paperKey),
  99. key: tableTitleKey,
  100. align: "center",
  101. mat: [1, 0, 0, 1, 0, 0],
  102. };
  103. const pos = {
  104. x:
  105. (size.width - margin[3]) / 2 -
  106. getRealPixel(40, result.paperKey) +
  107. margin[3],
  108. y: getRealPixel(15, result.paperKey) + margin[0],
  109. };
  110. title.mat[4] = pos.x;
  111. title.mat[5] = pos.y;
  112. texts.push(title)
  113. }
  114. }
  115. return result;
  116. };
  117. window.platform.saveTabulationData = (id: any, data: any) => {
  118. const texts = data.store.layers[defaultLayer].text;
  119. let title = texts.find((title: any) => title.key === tableTitleKey);
  120. let content = title ? title.content : ''
  121. return platform.saveTabulationData(id, {...data, title: content})
  122. }
  123. // 登录检测
  124. setTimeout(() => {
  125. if (!platform.getHeaders().token) {
  126. ElMessage.error("当前用户未登录");
  127. window.platform.login();
  128. } else {
  129. console.log("0.0");
  130. platform.getSceneList("").next();
  131. }
  132. }, 500);