king
2024-08-20 58826d6f4eab9f8c9acf9fa8696f60039c645cfe
src/views/design/index.jsx
@@ -1,67 +1,69 @@
import React, {Component} from 'react'
import { withRouter } from 'react-router-dom'
import { ConfigProvider } from 'antd'
import enUS from 'antd/es/locale/en_US'
// import enUS from 'antd/es/locale/en_US'
import zhCN from 'antd/es/locale/zh_CN'
import Api from '@/api'
import asyncComponent from '@/utils/asyncComponent'
import Header from './header'
import { setGLOBFuncs } from '@/utils/utils.js'
import Sidemenu from './sidemenu'
// import { setGLOBFuncs } from '@/utils/utils.js'
import '@/assets/css/design.scss'
import './index.scss'
const Tabview = asyncComponent(() => import('@/components/tabview'))
const _locale = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
class Design extends Component {
  componentDidMount() {
    setGLOBFuncs()
  state = {
    editLevel: false,
    mainMenu: null,
    unvalid: !sessionStorage.getItem('UserID'),
    menuTree: []
  }
    // 获取微信公众号及小程序消息模板
    if (window.GLOB.systemType !== 'production' && window.GLOB.WXAppID && !sessionStorage.getItem('wxTemplates')) {
      Api.wxAccessToken().then(res => {
        let wxtoken = res.oa_access_token || ''
        let minitoken = res.mini_access_token || ''
        if (wxtoken) {
          Api.wxNginxRequest(`cgi-bin/template/get_all_private_template?access_token=${wxtoken}`, 'get').then(res => {
            if (res.template_list) {
              let temps = res.template_list.filter(item => item.primary_industry)
              sessionStorage.setItem('wxTemplates', JSON.stringify(temps))
            } else {
              sessionStorage.setItem('wxTemplates', JSON.stringify([]))
            }
          })
        } else {
          sessionStorage.setItem('wxTemplates', JSON.stringify([]))
        }
        if (minitoken) {
          Api.wxNginxRequest(`wxaapi/newtmpl/gettemplate?access_token=${minitoken}`, 'get').then(res => {
            if (res.errmsg === 'ok' && res.data) {
              sessionStorage.setItem('wxMiniTemplates', JSON.stringify(res.data))
            } else {
              sessionStorage.setItem('wxMiniTemplates', JSON.stringify([]))
            }
          })
        } else {
          sessionStorage.setItem('wxMiniTemplates', JSON.stringify([]))
        }
      })
  componentDidMount() {
    if (!sessionStorage.getItem('UserID')) {
      this.props.history.replace('/login')
      return
    }
    if (sessionStorage.getItem('isEditState') === 'true') {
      sessionStorage.removeItem('isEditState')
      this.props.history.replace('/main')
      window.location.reload()
    } else {
      sessionStorage.setItem('isEditState', 'true')
      window.GLOB.breakpoint = false
      window.GLOB.designView = true
      sessionStorage.removeItem('breakpoint')
      // setGLOBFuncs()
    }
  }
  resetEditLevel = (level) => {
    this.setState({editLevel: level})
  }
  modifyMenuTree = (menulist) => {
    this.setState({menuTree: menulist})
  }
  modifyMainMenu = (menu) => {
    this.setState({mainMenu: menu})
  }
  
  render () {
    const { editLevel, menuTree, mainMenu, unvalid } = this.state
    if (unvalid) return null
    return (
      <div className="mk-main-view mk-design-view">
        <ConfigProvider locale={_locale}>
          <Sidemenu key="sidemenu"/>
          <Tabview key="tabview"/>
          <Header key="header"/>
      <div className={'mk-main-view ' + (window.GLOB.systemType || '')}>
        <ConfigProvider locale={zhCN}>
          <Sidemenu key="sidemenu" editLevel={editLevel} menuTree={menuTree} mainMenu={mainMenu} resetEditLevel={this.resetEditLevel}/>
          <Header key="header" editLevel={editLevel} mainMenu={mainMenu} resetEditLevel={this.resetEditLevel} modifyMenuTree={this.modifyMenuTree} modifyMainMenu={this.modifyMainMenu}/>
        </ConfigProvider>
      </div>
    )
  }
}
export default Design
export default withRouter(Design)