Bläddra i källkod

对接脉诊报告地址

cc12458 3 månader sedan
förälder
incheckning
f232604909

+ 5 - 4
src/components/AnalysisPulseComponent.vue

@@ -42,7 +42,7 @@ const stringifyUrl = (panel: 'left' | 'right', simple = false, overall = true) =
 };
 
 const { data: agent, loading, send: getPulseAgent } = useRequest(() => getPulseAgentMethod(), {
-  initialData: void 0,
+  initialData: parseUrl(report.value?.url),
   immediate: false,
 });
 
@@ -78,12 +78,13 @@ const load = async (panel: 'left' | 'right' | boolean = true, simple = false) =>
 
   if (!agent.value) {
     try {
+      if (__FORBID_AUTO_PROCESS_PULSE_AGENCY__) throw { _: `禁止从设备中获取代理地址` };
       const { promise, ...resolvers } = Promise.withResolvers<string>();
       await window.bridge.postMessage('pulse:url:get', report.value?.measureId, resolvers);
       agent.value = parseUrl(await promise);
-    } catch (e) {
-      const value = await getPulseAgent().catch(() => void 0);
-      if (!value) agent.value = parseUrl();
+    } catch (e: any) {
+      if (e._) console.info(`log: ${e._}`);
+      agent.value = await getPulseAgent().catch(() => void 0);
     }
   }
 

+ 13 - 0
src/platform/index.ts

@@ -21,6 +21,19 @@ export function getSerialNumberSync() {
   )();
 }
 
+let getNetworkWall = async (): Promise<"exterior" | "interior"> => {
+  const controller = new AbortController();
+  setTimeout(() => controller.abort(), 1000);
+
+  const wall = await fetch(`https://wx.hzliuzhi.com/aio/`, { method: 'HEAD', mode: 'no-cors', signal: controller.signal }).then(
+    () => 'exterior' as const,
+    () => 'interior' as const,
+  );
+  return (getNetworkWall = () => Promise.resolve(wall), wall);
+};
+
+export { getNetworkWall };
+
 export * from './dialog.ui';
 export * from './notify.ui';
 export * from './toast.ui';

+ 9 - 9
src/request/api/pulse.api.ts

@@ -1,5 +1,6 @@
 import HTTP from '@/request/alova';
 import { fromAnalysisModel, type PulseAnalysisModel } from '@/request/model';
+import { getNetworkWall } from '@/platform';
 
 const getSummary = (value?: string[]) => (Array.isArray(value) && value.length ? value : void 0);
 
@@ -11,7 +12,8 @@ export function putPulseMethod(patientId: string, result: PulseAnalysisModel) {
     [];
   const data = Object.assign(result, { patientId, results: summary.join(',') });
   return HTTP.Post<PulseAnalysisModel, any>(`/fdhb-tablet/analysisManage/savePulseAnalysisReport`, data, {
-    transform() {
+    async transform() {
+      const network = await getNetworkWall();
       return {
         measureId: data.measureId,
         hand: [
@@ -21,7 +23,7 @@ export function putPulseMethod(patientId: string, result: PulseAnalysisModel) {
         summaryValue: data.summaryValue,
         summaryLabel: data.summaryLabel,
         results: data.results,
-        url: __FORBID_AUTO_PROCESS_PULSE_AGENCY__ ? void 0 : data.url,
+        url: network === 'interior' ? (console.info('log: 判定内网环境 舍弃脉诊报告 url'),void 0) : data.url,
       };
     },
   });
@@ -42,18 +44,16 @@ export function getPulseMethod(id: string) {
   });
 }
 
-/**
- * 暂未实现
- * @deprecated
- */
 export function getPulseAgentMethod() {
   return HTTP.Post(
-    `/fdhb-tablet/warrantManage/getPageSets`,
+    `/fdhb-tablet/analysisManage/getPulseSupport`,
     {},
     {
       transform(data: any) {
-        if (data?.origin == null && data?.url == null) return void 0;
-        const origin = data.origin.endsWith('/report.html') ? data.origin : `${data.origin}/taiyi/report.html`;
+        const url = data?.origin ?? data?.url;
+        if (!url) return void 0;
+
+        const origin = url.endsWith('/report.html') ? url : `${url}/taiyi/report.html`;
         return {
           appId: data.appId ?? 'hJn5D3rr',
           token: data.token,

+ 1 - 1
src/request/model/analysis.model.ts

@@ -58,7 +58,7 @@ function fromPulseAnalysisModel(data: Record<string, any>): PulseAnalysisModel {
         value = JSON.parse(value);
       } catch (e) {}
     return typeof value === 'object' ? value : {};
-  })(data.pulse);
+  })(data.pulseReport);
 
   const getSummary = (value?: string[]) => (Array.isArray(value) && value.length ? value : void 0);
   const summary =