king
2025-05-08 400fee62fb40006a9839f1c3a8244b82566b5057
src/views/design/header/index.jsx
@@ -26,20 +26,19 @@
    userName: sessionStorage.getItem('CloudUserName'),
    avatar: Utils.getrealurl(sessionStorage.getItem('CloudAvatar')),
    logo: sessionStorage.getItem('CloudLogo') || MainLogo,
    subLang: sessionStorage.getItem('subLangList') !== null,
    visible: false,
    loading: false
  }
  logout = () => {
    // 退出登录
    let _this = this
    let that = this
    confirm({
      title: '您确定要退出吗?',
      content: '',
      onOk() {
        sessionStorage.clear()
        _this.props.history.replace('/login')
        that.props.history.replace('/login')
        window.location.reload()
      },
      onCancel() {}
@@ -158,6 +157,9 @@
              } catch (e) {
                trdItem.PageParam = {OpenType: 'newtab'}
              }
              if (trdItem.PageParam.Template === 'RolePermission' || trdItem.PageParam.Template === 'NewPage') {
                trdItem.PageParam.backend = 'level1'
              }
              if (trdItem.type === 'CustomPage' && window.GLOB.memberLevel < 20) { // 会员等级大于等于20时,有编辑权限
                trdItem.forbidden = true
@@ -233,69 +235,69 @@
    }, () => {})
  }
  setSystemFuncs = () => {
    if (!window.GLOB.IndexDB) {
      return
    }
    this.getfuncTime().then(res => {
      Api.getSystemFuncs(res.createDate).then(result => {
        if (!result.status) {
          notification.error({
            top: 92,
            message: result.message,
            duration: 10
          })
        } else if (result.func_detail && result.func_detail.length > 0) {
          this.writeFuncs(result.func_detail)
        }
      })
    })
  }
  // setSystemFuncs = () => {
  //   if (!window.GLOB.IndexDB) {
  //     return
  //   }
  //   this.getfuncTime().then(res => {
  //     Api.getSystemFuncs(res.createDate).then(result => {
  //       if (!result.status) {
  //         notification.error({
  //           top: 92,
  //           message: result.message,
  //           duration: 10
  //         })
  //       } else if (result.func_detail && result.func_detail.length > 0) {
  //         this.writeFuncs(result.func_detail)
  //       }
  //     })
  //   })
  // }
  writeFuncs = (funcs) => {
    let shim = +sessionStorage.getItem('sys_time_shim')
    let timestamp = moment().add(shim, 'seconds').format('YYYY-MM-DD HH:mm:ss')
  // writeFuncs = (funcs) => {
  //   let shim = +sessionStorage.getItem('sys_time_shim')
  //   let timestamp = moment().add(shim, 'seconds').format('YYYY-MM-DD HH:mm:ss')
    let objectStore = window.GLOB.IndexDB.transaction(['funcs'], 'readwrite').objectStore('funcs')
  //   let objectStore = window.GLOB.IndexDB.transaction(['funcs'], 'readwrite').objectStore('funcs')
    objectStore.clear()
  //   objectStore.clear()
    funcs.forEach(item => {
      if (!item.key_sql) return
      item.id = item.func_code
      objectStore.add(item)
    })
  //   funcs.forEach(item => {
  //     if (!item.key_sql) return
  //     item.id = item.func_code
  //     objectStore.add(item)
  //   })
    let funcStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
    funcStore.put({id: 'funcs', version: '1.0', createDate: timestamp})
  }
  //   let funcStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
  //   funcStore.put({id: 'funcs', version: '1.0', createDate: timestamp})
  // }
  getfuncTime = () => {
    return new Promise((resolve, reject) => {
      let objectStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
      let request = objectStore.get('funcs')
  // getfuncTime = () => {
  //   return new Promise((resolve, reject) => {
  //     let objectStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
  //     let request = objectStore.get('funcs')
      request.onerror = (event) => {
        console.warn(event)
        reject()
      }
  //     request.onerror = (event) => {
  //       console.warn(event)
  //       reject()
  //     }
      request.onsuccess = () => {
        if (request.result) {
          resolve(request.result)
        } else {
          let add = objectStore.add({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
  //     request.onsuccess = () => {
  //       if (request.result) {
  //         resolve(request.result)
  //       } else {
  //         let add = objectStore.add({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
  
          add.onerror = () => {
            reject()
          }
          add.onsuccess = () => {
            resolve({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
          }
        }
      }
    })
  }
  //         add.onerror = () => {
  //           reject()
  //         }
  //         add.onsuccess = () => {
  //           resolve({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
  //         }
  //       }
  //     }
  //   })
  // }
  getSmStemp = () => {
    if (!sessionStorage.getItem('msgTemplate')) {
@@ -344,10 +346,6 @@
    window.addEventListener('storage', (e) => {
      if (e.key === 'menuUpdate') {
        this.reload()
      } else if (e.key === 'wxTemplates') {
        if (e.newValue) {
          sessionStorage.setItem('wxTemplates', e.newValue)
        }
      }
    })
    MKEmitter.addListener('mkUpdateMenuList', this.reload)
@@ -385,7 +383,7 @@
      }, 100)
      setTimeout(() => {
        this.setSystemFuncs()
        // this.setSystemFuncs()
        this.getSmStemp()
      }, 500)
    }
@@ -413,7 +411,7 @@
  render () {
    const { mainMenu, editLevel } = this.props
    const { menulist, visible, loading, logo, subLang } = this.state
    const { menulist, visible, loading, logo } = this.state
    return (
      <header className={'sys-header-container ant-menu-dark ' + (['level2', 'level3'].includes(editLevel) ? 'mask' : '')} id="main-header-container">
@@ -497,7 +495,7 @@
              编辑
            </Button>
          </div> : null}
          {window.GLOB.systemType !== 'production' && subLang ? <div className="entrance">
          {window.GLOB.systemType !== 'production' && sessionStorage.getItem('lang') !== 'zh-CN' ? <div className="entrance">
            <div className="icon"><PlusOutlined /></div>
            <div className="title">菜单转换</div>
            <div className="detail">可选择母语系统的菜单,快速转换到当前语言。打印模板请在HS下复制后,在此处选择指定模板进行语言转换。</div>