setSystem.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { ref } from "vue";
  2. import { title } from "./store/system";
  3. import { appConstant } from "./app";
  4. import {
  5. caseFileTypes,
  6. caseFiles,
  7. insertCaseFile,
  8. deleteCaseFile,
  9. updateCaseFile,
  10. axios,
  11. caseFileInfo,
  12. saveCaseFileInfo,
  13. getSysSetting,
  14. updateSysSetting,
  15. } from "@/request";
  16. const modules = import.meta.glob("@/assets/style/theme/*.scss", {
  17. query: "?inline",
  18. });
  19. axios.get(getSysSetting).then((data) => {
  20. systemData.value.name = data.data.title;
  21. systemData.value.color = data.data.themeColour;
  22. refresh();
  23. });
  24. const update = () => {
  25. axios.post(updateSysSetting, {
  26. title: systemData.value.name,
  27. themeColour: systemData.value.color,
  28. });
  29. };
  30. export const themeColors = [
  31. "d8000a",
  32. "0960bd",
  33. "0084f4",
  34. "009688",
  35. "536dfe",
  36. "ff5c93",
  37. "ee4f12",
  38. "0096c7",
  39. "9c27b0",
  40. "ff9800",
  41. ];
  42. export const systemData = ref({
  43. name: appConstant.name,
  44. color: themeColors[0],
  45. });
  46. const $style = document.createElement("style");
  47. $style.setAttribute("type", "text/css");
  48. document.body.appendChild($style);
  49. const refresh = async () => {
  50. title.value = systemData.value.name;
  51. const key = Object.keys(modules).find((key) =>
  52. key.includes(systemData.value.color)
  53. );
  54. if (key) {
  55. const res1: any = await modules[key]();
  56. const res2: any = await import("@/assets/style/public.scss?inline");
  57. $style.innerHTML = res1.default + res2.default;
  58. }
  59. };
  60. export const setTheme = async (color: string) => {
  61. systemData.value.color = color;
  62. await update();
  63. refresh();
  64. };
  65. export const setTitle = async (d: string) => {
  66. systemData.value.name = d;
  67. await update();
  68. refresh();
  69. };