|
@@ -1,4 +1,5 @@
|
|
|
-import React, { useRef, useState, useEffect } from 'react'
|
|
|
|
|
|
|
+import React, { useRef, useState, useEffect, useCallback } from 'react'
|
|
|
|
|
+import { useSelector } from 'react-redux'
|
|
|
import http from '@/utils/axios'
|
|
import http from '@/utils/axios'
|
|
|
import styles from './index.module.scss'
|
|
import styles from './index.module.scss'
|
|
|
import { echPageBackFu } from '@/components/MenuSider/data'
|
|
import { echPageBackFu } from '@/components/MenuSider/data'
|
|
@@ -8,8 +9,10 @@ import Panel from './components/Panel'
|
|
|
import Panel2 from './components/Panel2'
|
|
import Panel2 from './components/Panel2'
|
|
|
import ModelPanel from './components/ModelPanel'
|
|
import ModelPanel from './components/ModelPanel'
|
|
|
import { DotLoading } from 'antd-mobile'
|
|
import { DotLoading } from 'antd-mobile'
|
|
|
|
|
+import { RootState } from '@/store'
|
|
|
|
|
|
|
|
function A9knowlege() {
|
|
function A9knowlege() {
|
|
|
|
|
+ const { myLangue } = useSelector((state: RootState) => state.A0Layout)
|
|
|
// 控制 sidebar 显示
|
|
// 控制 sidebar 显示
|
|
|
const [sidebarVisible, setSidebarVisible] = useState(true)
|
|
const [sidebarVisible, setSidebarVisible] = useState(true)
|
|
|
const [detail, setDetail] = useState<any>(null)
|
|
const [detail, setDetail] = useState<any>(null)
|
|
@@ -34,6 +37,17 @@ function A9knowlege() {
|
|
|
setSidebarVisible(!sidebarVisible)
|
|
setSidebarVisible(!sidebarVisible)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 将 myLangue 传递给 iframe:URL 参数 + load 后及语言变化时 postMessage
|
|
|
|
|
+ const sendLangueToIframe = useCallback(() => {
|
|
|
|
|
+ iframeRef.current?.contentWindow?.postMessage({ action: 'setLangue', langue: myLangue }, '*')
|
|
|
|
|
+ }, [myLangue])
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ sendLangueToIframe()
|
|
|
|
|
+ }, [sendLangueToIframe])
|
|
|
|
|
+ const onIframeLoad = useCallback(() => {
|
|
|
|
|
+ sendLangueToIframe()
|
|
|
|
|
+ }, [sendLangueToIframe])
|
|
|
|
|
+
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
const handleMessage = (event: MessageEvent) => {
|
|
const handleMessage = (event: MessageEvent) => {
|
|
|
if (event.data && event.data.id) {
|
|
if (event.data && event.data.id) {
|
|
@@ -67,7 +81,10 @@ function A9knowlege() {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const { label, name, rtf } = response.data
|
|
|
|
|
|
|
+ const isEn = myLangue === 'EN'
|
|
|
|
|
+ const label = isEn ? response.data.enLabel : response.data.label
|
|
|
|
|
+ const name = isEn ? response.data.enName : response.data.name
|
|
|
|
|
+ const rtf = isEn ? response.data.enRtf : response.data.rtf
|
|
|
let detailData: any = { name }
|
|
let detailData: any = { name }
|
|
|
|
|
|
|
|
// 存在 label 显示 Panel
|
|
// 存在 label 显示 Panel
|
|
@@ -123,8 +140,9 @@ function A9knowlege() {
|
|
|
<iframe
|
|
<iframe
|
|
|
ref={iframeRef}
|
|
ref={iframeRef}
|
|
|
className={styles.iframe}
|
|
className={styles.iframe}
|
|
|
- src='knowlege/index.html'
|
|
|
|
|
|
|
+ src={`knowlege/index.html?lang=${myLangue}`}
|
|
|
title='knowlege'
|
|
title='knowlege'
|
|
|
|
|
+ onLoad={onIframeLoad}
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<div
|
|
<div
|