chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names

This commit is contained in:
SunYF
2026-08-27 10:09:54 +08:00
commit 1f0ee844a4
408 changed files with 102201 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
import React, {useEffect, useMemo} from 'react'
import '@douyinfe/semi-ui/react19-adapter'
import {LocaleProvider, Notification, Toast} from '@douyinfe/semi-ui'
import {HashRouter} from 'react-router-dom'
import {IntlProvider} from 'react-intl'
import {localeConfig} from '@/locales'
import zhCN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN'
import enUS from '@douyinfe/semi-ui/lib/es/locale/source/en_US'
import {Locale} from '@douyinfe/semi-ui/lib/es/locale/interface'
import useGlobalStore from '@/stores'
import useLocalStore from '@/stores/local'
import RenderRouter from '@/router'
import {NoticeReactProps} from '@douyinfe/semi-ui/lib/es/notification'
import {ToastReactProps} from '@douyinfe/semi-ui/lib/es/toast'
import sse from '@/sse'
const App = () => {
const { isDark, locale } = useLocalStore(state => state)
const { setConnected } = useGlobalStore(state => state)
const onNotify = (e: MessageEvent) => {
const opts = {
...JSON.parse(e.data)
} as NoticeReactProps
if (opts.duration === -1) {
opts.duration = 0
}
Notification.addNotice(opts)
}
const onToast = (e: MessageEvent) => {
const opts = {
...JSON.parse(e.data)
} as ToastReactProps
Toast.create(opts)
}
useEffect(() => {
if (sse.readyState === EventSource.OPEN) {
setConnected(true)
}
sse.onopen = () => {
console.log('sse connected')
setConnected(true)
}
sse.onmessage = e => {
console.log('message: ', e)
}
sse.onerror = e => {
console.log('sse error', e)
setConnected(false)
// sse.close()
}
sse.addEventListener('notify', onNotify)
sse.addEventListener('toast', onToast)
return () => {
console.log('sse close')
sse.onopen = null
sse.onmessage = null
sse.onerror = null
sse.removeEventListener('notify', onNotify)
sse.removeEventListener('toast', onToast)
}
}, [])
const getLocale = useMemo(() => {
switch (locale) {
case 'en-US':
return enUS
case 'zh-CN':
return zhCN
default:
return {} as Locale
}
}, [locale])
useEffect(() => {
if (isDark) {
document.body.setAttribute('theme-mode', 'dark')
} else {
document.body.removeAttribute('theme-mode')
}
}, [])
return (
<LocaleProvider locale={getLocale}>
<IntlProvider locale={locale} messages={localeConfig[locale]}>
<HashRouter>
<RenderRouter />
</HashRouter>
</IntlProvider>
</LocaleProvider>
)
}
export default App