king
2024-08-20 58826d6f4eab9f8c9acf9fa8696f60039c645cfe
src/views/design/header/index.jsx
@@ -16,6 +16,8 @@
const VersionsUp = asyncComponent(() => import('./versions'))
const ThawMenu = asyncComponent(() => import('@/components/thawmenu'))
const MenuForm = asyncComponent(() => import('./editfirstmenu/menuform'))
const TransMenu = asyncComponent(() => import('./transmenu'))
const { confirm } = Modal
class Header extends Component {
@@ -23,6 +25,8 @@
    menulist: null, // 一级菜单
    userName: sessionStorage.getItem('CloudUserName'),
    avatar: Utils.getrealurl(sessionStorage.getItem('CloudAvatar')),
    logo: sessionStorage.getItem('CloudLogo') || MainLogo,
    subLang: sessionStorage.getItem('subLangList') !== null,
    visible: false,
    loading: false
  }
@@ -36,6 +40,7 @@
      onOk() {
        sessionStorage.clear()
        _this.props.history.replace('/login')
        window.location.reload()
      },
      onCancel() {}
    })
@@ -228,69 +233,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')) {
@@ -298,17 +303,18 @@
        inner join (select openid from sapp where id='${window.GLOB.appkey}') b 
        on a.openid=b.openid`
  
      _sql = Utils.formatOptions(_sql)
      _sql = Utils.formatOptions(_sql, 'x')
  
      let param = {
        func: 'sPC_Get_SelectedList',
        LText: _sql,
        obj_name: 'data',
        arr_field: 'ID,TemplateCode,SignName'
        arr_field: 'ID,TemplateCode,SignName',
        exec_type: 'x'
      }
      
      param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
      param.secretkey = Utils.encrypt(param.LText, param.timestamp)
      param.secretkey = Utils.encrypt('', param.timestamp)
      param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) // 云端数据验证
      
      Api.getCloudConfig(param).then(res => {
@@ -338,10 +344,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)
@@ -379,7 +381,7 @@
      }, 100)
      setTimeout(() => {
        this.setSystemFuncs()
        // this.setSystemFuncs()
        this.getSmStemp()
      }, 500)
    }
@@ -407,11 +409,11 @@
  render () {
    const { mainMenu, editLevel } = this.props
    const { menulist, visible, loading } = this.state
    const { menulist, visible, loading, logo, subLang } = this.state
    return (
      <header className={'sys-header-container ant-menu-dark ' + (['level2', 'level3'].includes(editLevel) ? 'mask' : '')} id="main-header-container">
        <div className="header-logo"><img src={MainLogo} alt=""/></div>
        <div className="header-logo"><img src={logo} alt=""/></div>
        <div className="header-collapse">
          <MenuFoldOutlined/>
        </div>
@@ -491,6 +493,12 @@
              编辑
            </Button>
          </div> : null}
          {window.GLOB.systemType !== 'production' && subLang ? <div className="entrance">
            <div className="icon"><PlusOutlined /></div>
            <div className="title">菜单转换</div>
            <div className="detail">可选择母语系统的菜单,快速转换到当前语言。打印模板请在HS下复制后,在此处选择指定模板进行语言转换。</div>
            <TransMenu reload={this.reload} menulist={menulist}/>
          </div> : null}
        </div>
        {/* 编辑菜单 */}
        {editLevel === 'level1' ? <EditMenu menulist={this.state.menulist} reload={this.reload} exitEdit={this.exitEdit}/> : null}