Commit 3ca7b704d3448c3d3301b846f78cf5572d09563b

Authored by ww
1 parent 3d766336

fix: 修复组态创建链接的代理路径不一致

  1 +import { Platform } from './center.data';
  2 +import { ConfigurationCenterItemsModal } from '/@/api/configuration/center/model/configurationCenterModal';
  3 +import { useGlobSetting } from '/@/hooks/setting';
  4 +
  5 +export enum ScadaModeEnum {
  6 + LIGHTBOX = 'lightbox',
  7 + DESIGN = 'design',
  8 + SHARE = 'share',
  9 +}
  10 +
  11 +interface ScadaLinkParamsType {
  12 + configurationId: string;
  13 + organizationId: string;
  14 + mode: ScadaModeEnum;
  15 + platform: Platform;
  16 + publicId?: string;
  17 +}
  18 +
1 19 const getRandomString = () => Number(Math.random().toString().substring(2)).toString(36);
2 20
3 21 export const encode = (record: Recordable) => {
... ... @@ -13,3 +31,27 @@ export const encode = (record: Recordable) => {
13 31 hash = window.btoa(hash);
14 32 return hash;
15 33 };
  34 +
  35 +export const createScadaPageLink = (
  36 + record: ConfigurationCenterItemsModal,
  37 + mode: ScadaModeEnum = ScadaModeEnum.DESIGN,
  38 + open = true
  39 +) => {
  40 + const { configurationPrefix } = useGlobSetting();
  41 + const params: ScadaLinkParamsType = {
  42 + configurationId: record.id,
  43 + organizationId: record.organizationId!,
  44 + mode: mode,
  45 + platform: record.platform as Platform,
  46 + };
  47 +
  48 + if (mode === ScadaModeEnum.SHARE) {
  49 + params.publicId = record.publicId;
  50 + }
  51 +
  52 + const href = new URL(location.origin);
  53 + href.pathname = configurationPrefix;
  54 + href.hash = encode(params);
  55 + open && window.open(href.href);
  56 + return href.href;
  57 +};
... ...
... ... @@ -14,14 +14,12 @@
14 14 import { ConfigurationPermission, Platform, searchFormSchema } from './center.data';
15 15 import { useMessage } from '/@/hooks/web/useMessage';
16 16 import { Authority } from '/@/components/Authority';
17   - import { isDevMode } from '/@/utils/env';
18 17 import ConfigurationCenterDrawer from './ConfigurationCenterDrawer.vue';
19 18 import { useDrawer } from '/@/components/Drawer';
20 19 import { getBoundingClientRect } from '/@/utils/domUtils';
21 20 import configurationSrc from '/@/assets/icons/configuration.svg';
22 21 import { cloneDeep } from 'lodash';
23 22 import { usePermission } from '/@/hooks/web/usePermission';
24   - import { useGlobSetting } from '/@/hooks/setting';
25 23 import { AuthIcon, CardLayoutButton } from '/@/components/Widget';
26 24 import AuthDropDown from '/@/components/Widget/AuthDropDown.vue';
27 25 import { ShareModal } from '/@/views/common/ShareModal';
... ... @@ -31,7 +29,7 @@
31 29 import { useRole } from '/@/hooks/business/useRole';
32 30 import { useClipboard } from '@vueuse/core';
33 31 import { Icon } from '/@/components/Icon';
34   - import { encode } from './help';
  32 + import { createScadaPageLink, ScadaModeEnum } from './help';
35 33
36 34 const listColumn = ref(5);
37 35
... ... @@ -131,49 +129,15 @@
131 129 }
132 130 };
133 131
134   - const { configurationPrefix } = useGlobSetting();
135   - const isDev = isDevMode();
136   -
137 132 const handlePreview = (record: ConfigurationCenterItemsModal) => {
138 133 if (!unref(getPreviewFlag)) return;
139   - // window.open(
140   - // `${configurationPrefix}/${isDev ? '?dev=1&' : '?'}configurationId=${
141   - // record!.id
142   - // }&lightbox=1&organizationId=${record.organizationId}`
143   - // );
144   -
145   - const params = {
146   - configurationId: record.id,
147   - organizationId: record.organizationId,
148   - mode: 'lightbox',
149   - platform: record.platform,
150   - };
151   -
152   - const href = new URL(location.origin);
153   - href.pathname = '/drawio';
154   - href.hash = encode(params);
155   - window.open(href.href);
  134 + createScadaPageLink(record, ScadaModeEnum.LIGHTBOX);
156 135 };
157 136
158 137 const handleDesign = (record: ConfigurationCenterItemsModal) => {
159 138 if (!unref(getDesignFlag)) return;
160   - // window.open(
161   - // `${configurationPrefix}/${isDev ? '?dev=1&' : '?'}configurationId=${
162   - // record!.id
163   - // }&organizationId=${record.organizationId}`
164   - // );
165   -
166   - const params = {
167   - configurationId: record.id,
168   - organizationId: record.organizationId,
169   - mode: 'design',
170   - platform: record.platform,
171   - };
172   -
173   - const href = new URL(location.origin);
174   - href.pathname = '/drawio';
175   - href.hash = encode(params);
176   - window.open(href.href);
  139 +
  140 + createScadaPageLink(record, ScadaModeEnum.DESIGN);
177 141 };
178 142
179 143 const handleDelete = async (record: ConfigurationCenterItemsModal) => {
... ... @@ -190,14 +154,7 @@
190 154 };
191 155
192 156 const createShareUrl = (record: ConfigurationCenterItemsModal) => {
193   - const searchParams = new URLSearchParams();
194   - isDev && searchParams.set('dev', '1');
195   - searchParams.set('share', 'SCADA');
196   - searchParams.set('configurationId', record.id);
197   - searchParams.set('publicId', record.publicId || '');
198   - searchParams.set('lightbox', '1');
199   - searchParams.set('organizationId', record!.organizationId || '');
200   - return `${origin}${configurationPrefix}/?${searchParams.toString()}`;
  157 + return createScadaPageLink(record, ScadaModeEnum.SHARE, false);
201 158 };
202 159
203 160 const { copied, copy } = useClipboard({ legacy: true });
... ...