| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import { ref } from "vue";
- import { title } from "./store/system";
- import { appConstant } from "./app";
- import {
- caseFileTypes,
- caseFiles,
- insertCaseFile,
- deleteCaseFile,
- updateCaseFile,
- axios,
- caseFileInfo,
- saveCaseFileInfo,
- getSysSetting,
- updateSysSetting,
- } from "@/request";
- import { isOfflineMode, getOfflineDataPath, fetchOfflineJson } from "@/util/offline";
- const modules = import.meta.glob("@/assets/style/theme/*.scss", {
- query: "?inline",
- });
- const appId = import.meta.env.VITE_APP_APP;
- const initSysSetting = async () => {
- console.log(isOfflineMode(), import.meta.env.VITE_OFFLINE, 77777777)
- if (isOfflineMode()) {
- try {
- const base = getOfflineDataPath();
- console.log(base, 88888888)
- const dict = await fetchOfflineJson<Record<string, any>>([
- `${base}/package/data.json`,
- `/package/data.json`,
- ]);
- const entry = dict["/fusion/systemSetting/list"];
- const list: any[] = Array.isArray(entry?.data) ? entry.data : (Array.isArray(entry?.list) ? entry.list : []);
- let params = window.location.hash;
- let query = params.indexOf('?') > -1 ? params.split('?')[1] : '';
- let fromRoute = (new URLSearchParams(query).get('fromRoute') || appId).toLowerCase();
- const item = list.find((it) => it.platformKey === fromRoute);
- if (item) {
- systemData.value.name = item.title;
- systemData.value.color = item.themeColour;
- localStorage.setItem('f-themeColour', item.themeColour);
- refresh();
- return;
- }
- } catch (e) {
- }
- }
- axios.get(getSysSetting, { params: { platformKey: appId } }).then((data) => {
- systemData.value.name = data.data.title;
- systemData.value.color = data.data.themeColour;
- localStorage.setItem('f-themeColour', data.data.themeColour);
- refresh();
- });
- };
- initSysSetting();
- const update = () => {
- axios.post(updateSysSetting, {
- title: systemData.value.name,
- themeColour: systemData.value.color,
- });
- };
- export const themeColors = [
- "d8000a",
- "0960bd",
- "0084f4",
- "009688",
- "536dfe",
- "ff5c93",
- "ee4f12",
- "0096c7",
- "9c27b0",
- "ff9800",
- ];
- export const systemData = ref({
- name: appConstant.name,
- color: themeColors[0],
- });
- const $style = document.createElement("style");
- $style.setAttribute("type", "text/css");
- document.body.appendChild($style);
- const refresh = async () => {
- title.value = systemData.value.name;
- const key = Object.keys(modules).find((key) =>
- key.includes(systemData.value.color)
- );
- if (key) {
- const res1: any = await modules[key]();
- const res2: any = await import("@/assets/style/public.scss?inline");
- $style.innerHTML = res1.default + res2.default;
- }
- };
- export const setTheme = async (color: string) => {
- systemData.value.color = color;
- await update();
- refresh();
- };
- export const setTitle = async (d: string) => {
- systemData.value.name = d;
- await update();
- refresh();
- };
- export const setSettings = async (title: string, color: string) => {
- systemData.value.name = title;
- systemData.value.color = color;
- await update();
- refresh();
- };
|