king
2023-08-29 4366981fbe7d406e90487fd94450fab6eb31120d
Merge branch 'master' into positec
18个文件已修改
284 ■■■■■ 已修改文件
src/api/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/index.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/excelInbutton/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/funcMegvii/index.jsx 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/funczip/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/normalbutton/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/printbutton/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/topSearch/index.jsx 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/design/header/index.jsx 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/design/sidemenu/thdmenuplus/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.jsx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobdesign/index.jsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/pcdesign/index.jsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/printTemplate/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sso/index.jsx 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js
@@ -670,7 +670,7 @@
    if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      return Promise.resolve({ErrCode: 'S', ErrMesg: '', LongParam: '', message: '', status: false})
      return Promise.resolve({ErrCode: 'S', LongParam: '', message: '', status: false})
    }
  }
@@ -774,7 +774,7 @@
      token = JSON.parse(window.decodeURIComponent(window.atob(token)))
    } catch (e) {
      token = null
      _resolve({status: false, ErrCode: 'E', message: '接口信息解析失败!', ErrMesg: 'token_error'})
      _resolve({status: false, ErrCode: 'token_error', message: '接口信息解析失败!'})
    }
    if (!token) return
@@ -877,7 +877,7 @@
    param.appkey = window.GLOB.appkey || ''
    if (param.$token === '') {
      return Promise.resolve({status: false, ErrCode: 'E', message: '接口地址尚未设置!', ErrMesg: 'token_error'})
      return Promise.resolve({status: false, ErrCode: 'token_error', message: '接口地址尚未设置!'})
    } else if (param.$token) {
      return new Promise(resolve => this.visitOuterSystem(param, resolve))
    }
src/index.js
@@ -168,6 +168,16 @@
        GLOB.navBar = _systemMsg.navBar || 'shutter'
        GLOB.appVersion = _systemMsg.app_version || ''
        let levels = [30, 10, 20, 40, 50, 60, 70, 80, 90, 100]
        levels.some(m => {
          if (_systemMsg.Member_Level === md5('mksoft' + GLOB.appkey + m)) {
            GLOB.memberLevel = m
            return true
          }
          return false
        })
        if (GLOB.favicon) {
          let link = document.querySelector("link[rel*='icon']") || document.createElement('link')
          link.type = 'image/x-icon'
@@ -223,19 +233,6 @@
    let lang = localStorage.getItem(_href + 'lang') || (config.defaultLang !== 'en-US' ? 'zh-CN' : 'en-US')
    sessionStorage.setItem('lang', lang)
    let _level = 0
    let _Mlevel = sessionStorage.getItem('Member_Level')
    if (_Mlevel) {
      if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 10)) {
        _level = 10
      } else if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 20)) {
        _level = 20
      } else if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 30)) {
        _level = 30
      }
    }
    GLOB.memberLevel = _level
    GLOB.mkThdMenus = [] // 三级菜单
    GLOB.mkActions = {}  // 按钮权限集
@@ -268,6 +265,15 @@
      value: GLOB.cloudServiceApi || ''
    })
    if (GLOB.memberLevel) {
      Object.defineProperty(GLOB, 'memberLevel', {
        writable: false,
        value: GLOB.memberLevel
      })
    } else {
      GLOB.memberLevel = 0
    }
    if (GLOB.sysType === 'cloud') {
      Object.defineProperty(GLOB, 'debugger', {
        writable: false,
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
@@ -1727,12 +1727,12 @@
    if (res && res.ErrCode === 'S') { // 执行成功
      notification.success({
        top: 92,
        message: res.ErrMesg || '执行成功',
        message: res.message || '执行成功',
        duration: submit.stime ? submit.stime : 2
      })
    } else if (res && res.ErrCode === 'Y') { // 执行成功
      Modal.success({
        title: res.ErrMesg || '执行成功'
        title: res.message || '执行成功'
      })
    } else if (res && res.ErrCode === '-1') { // 完成后不提示
@@ -1768,23 +1768,23 @@
    if (res.ErrCode === 'E') {
      Modal.error({
        title: res.message || res.ErrMesg,
        title: res.message || '执行失败!',
      })
    } else if (res.ErrCode === 'N') {
      notification.error({
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: submit.ntime ? submit.ntime : 10
      })
    } else if (res.ErrCode === 'F') {
      notification.error({
        className: 'notification-custom-error',
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: submit.ftime ? submit.ftime : 10
      })
    } else if (res.ErrCode === 'NM') {
      message.error(res.message || res.ErrMesg)
      message.error(res.message || '执行失败!')
    }
    
    this.setState({
src/tabviews/zshare/actionList/excelInbutton/index.jsx
@@ -526,7 +526,8 @@
      }).then(response => {
        if (!response || response.ErrCode === 'LoginError') return
        // 回调请求
        if (ver_token && response.ErrMesg === 'token_error') {
        if (ver_token && response.ErrCode === 'token_error') {
          response.ErrCode = 'E'
          this.execError(response)
        } else if (btn.callbackFunc ) {
          // 存在回调函数时,调用
src/tabviews/zshare/actionList/funcMegvii/index.jsx
@@ -292,7 +292,7 @@
    }
    if (error) {
      this.execError({ErrCode: 'E', ErrMesg: error})
      this.execError({ErrCode: 'E', message: error})
      return
    }
@@ -312,7 +312,7 @@
      if (datas.length > 0) {
        this.addUser(ip, datas, sessionId)
      } else {
        this.execSuccess({ErrCode: 'S', ErrMesg: '执行成功。'})
        this.execSuccess({ErrCode: 'S', message: '执行成功。'})
      }
    }, (err) => {
      this.execPreError(err, data)
@@ -333,12 +333,12 @@
    if (res && (res.ErrCode === 'S' || !res.ErrCode)) { // 执行成功
      notification.success({
        top: 92,
        message: res.ErrMesg || '执行成功',
        message: res.message || '执行成功',
        duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2
      })
    } else if (res && res.ErrCode === 'Y') { // 执行成功
      Modal.success({
        title: res.ErrMesg || '执行成功'
        title: res.message || '执行成功'
      })
    } else if (res && res.ErrCode === '-1') { // 完成后不提示
@@ -409,23 +409,23 @@
    if (res.ErrCode === 'E') {
      Modal.error({
        title: res.message || res.ErrMesg,
        title: res.message || '执行失败!',
      })
    } else if (res.ErrCode === 'N') {
      notification.error({
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: btn.verify && btn.verify.ntime ? btn.verify.ntime : 10
      })
    } else if (res.ErrCode === 'F') {
      notification.error({
        className: 'notification-custom-error',
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: btn.verify && btn.verify.ftime ? btn.verify.ftime : 10
      })
    } else if (res.ErrCode === 'NM') {
      message.error(res.message || res.ErrMesg)
      message.error(res.message || '执行失败!')
    }
    
    this.setState({
src/tabviews/zshare/actionList/funczip/index.jsx
@@ -381,23 +381,23 @@
      return
    } else if (res.ErrCode === 'E') {
      Modal.error({
        title: res.message || res.ErrMesg,
        title: res.message || '执行失败!',
      })
    } else if (res.ErrCode === 'N') {
      notification.error({
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: 10
      })
    } else if (res.ErrCode === 'F') {
      notification.error({
        className: 'notification-custom-error',
        top: 92,
        message: res.message || res.ErrMesg,
        message: res.message || '执行失败!',
        duration: 10
      })
    } else if (res.ErrCode === 'NM') {
      message.error(res.message || res.ErrMesg)
      message.error(res.message || '执行失败!')
    }
    if (btn.execError !== 'never') {
src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -1438,7 +1438,6 @@
        result.status = false
        result.message = result.$ErrMesg
        result.ErrCode = 'E'
        result.ErrMesg = result.$ErrMesg
      } else {
        result.status = result.status !== false
        result.ErrCode = result.ErrCode || '-1'
@@ -1890,7 +1889,8 @@
    Api.genericInterface(result).then(res => {
      if (!res) return // LoginError时中断请求
      if (ver_token && res.ErrMesg === 'token_error') {
      if (ver_token && res.ErrCode === 'token_error') {
        res.ErrCode = 'E'
        this.execError(res)
        return
      }
src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -405,7 +405,6 @@
            errorMsg = {
              ErrCode: 'N',
              message: _temp.error,
              ErrMesg: _temp.error,
              status: false
            }
          } else {
@@ -1264,7 +1263,8 @@
    }).then(response => {
      if (!response || response.ErrCode === 'LoginError') return
      if (ver_token && response.ErrMesg === 'token_error') {
      if (ver_token && response.ErrCode === 'token_error') {
        response.ErrCode = 'E'
        this.execError(response)
        _resolve({next: false, list: []})
      } else if (btn.callbackFunc) {
src/tabviews/zshare/topSearch/index.jsx
@@ -114,22 +114,11 @@
      if (item.advanced && !forbid) {
        _setting.showAdv = true
        if (!['group', 'check', 'switch'].includes(item.type)) {
          item.signValue = true
        }
      } else {
        item.advanced = false
      }
      if (item.advanced && item.initval) {
        let val = item.initval
        if (item.precision === 'hour') {
          if (/,/ig.test(val)) {
            val = val.split(',').map(m => m + ':00').join(',')
          } else {
            val = val + ':00'
          }
        }
        if (['text', 'date', 'datemonth', 'dateweek', 'daterange'].includes(item.type)) {
          advanceValues.push({field: item.field, type: item.type, label: item.label, value: val})
        }
      }
      if (item.type === 'group') {
@@ -179,6 +168,29 @@
        if (item.type === 'checkcard' && item.multiple === 'dropdown' && item.resourceType === '0') {
          this.resetCheckcard(item)
        }
      }
      if (item.signValue && item.initval) {
        let val = item.initval
        if (item.precision === 'hour') {
          if (/,/ig.test(val)) {
            val = val.split(',').map(m => m + ':00').join(',')
          } else {
            val = val + ':00'
          }
        }
        let text = val
        if (item.type === 'select' || item.type === 'link' || item.type === 'radio') {
          item.oriOptions.forEach(cell => {
            if (cell.Value === val) {
              text = cell.Text
            }
          })
        }
        advanceValues.push({field: item.field, type: item.type, label: item.label, value: val, text})
      }
      fieldMap.set(item.field, item)
@@ -621,7 +633,7 @@
      if (visible) {
        let advanceValues = []
        this.state.searchlist.forEach(item => {
          if (!item.advanced) return
          if (!item.signValue) return
    
          let val = this.record[item.field]
          if (val || val === 0) {
@@ -632,9 +644,18 @@
                val = val + ':00'
              }
            }
            if (['text', 'date', 'datemonth', 'dateweek', 'daterange'].includes(item.type)) {
              advanceValues.push({field: item.field, type: item.type, label: item.label, value: val})
            let text = val
            if (item.type === 'select' || item.type === 'link' || item.type === 'radio') {
              item.oriOptions.forEach(cell => {
                if (cell.Value === val) {
                  text = cell.Text
                }
              })
            }
            advanceValues.push({field: item.field, type: item.type, label: item.label, value: val, text})
          }
        })
        this.setState({advanceValues})
@@ -720,7 +741,7 @@
      } else {
        record[item.field] = item.initval
      }
      if (item.advanced && item.initval) {
      if (item.signValue && item.initval) {
        let val = item.initval
        if (item.precision === 'hour') {
          if (/,/ig.test(val)) {
@@ -729,9 +750,18 @@
            val = val + ':00'
          }
        }
        if (['text', 'date', 'datemonth', 'dateweek', 'daterange'].includes(item.type)) {
          advanceValues.push({field: item.field, type: item.type, label: item.label, value: val})
        let text = val
        if (item.type === 'select' || item.type === 'link' || item.type === 'radio') {
          item.oriOptions.forEach(cell => {
            if (cell.Value === val) {
              text = cell.Text
            }
          })
        }
        advanceValues.push({field: item.field, type: item.type, label: item.label, value: val, text})
      }
      return item
@@ -835,7 +865,7 @@
    let advanceValues = []
    this.state.searchlist.forEach(item => {
      if (!item.advanced) return
      if (!item.signValue) return
      let val = this.record[item.field]
      if (val || val === 0) {
@@ -846,9 +876,18 @@
            val = val + ':00'
          }
        }
        if (['text', 'date', 'datemonth', 'dateweek', 'daterange'].includes(item.type)) {
          advanceValues.push({field: item.field, type: item.type, label: item.label, value: val})
        let text = val
        if (item.type === 'select' || item.type === 'link' || item.type === 'radio') {
          item.oriOptions.forEach(cell => {
            if (cell.Value === val) {
              text = cell.Text
            }
          })
        }
        advanceValues.push({field: item.field, type: item.type, label: item.label, value: val, text})
      }
    })
@@ -886,7 +925,7 @@
                return (
                  <div key={index}>
                    <span>{item.label}: </span>
                    <span className="advance-value">{item.value}</span>
                    <span className="advance-value">{item.text}</span>
                    <CloseOutlined onClick={() => this.closeAdvanceForm(item)} />
                  </div>)
              })}
src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
@@ -1,6 +1,6 @@
import React from 'react'
import { useDrag, useDrop } from 'react-dnd'
import { Select, DatePicker, Input, Popover, Form } from 'antd'
import { Select, DatePicker, Input, Popover, Form, Switch, Radio, Checkbox } from 'antd'
import { EditOutlined, CopyOutlined, CloseOutlined } from '@ant-design/icons'
import moment from 'moment'
@@ -113,6 +113,18 @@
  } else if (card.type === 'checkcard') {
    type = 'checkcard'
    formItem = <CheckCard config={card} />
  } else if (card.type === 'switch') {
    formItem = (<Switch checkedChildren={card.openText || ''} unCheckedChildren={card.closeText || ''} checked={card.initval === card.openVal}/>)
  } else if (card.type === 'radio') {
    let options = card.options
    if (options.length === 0) {
      options = [{Value: '1', Text: '选项1'}, {Value: '2', Text: '选项2'}]
    }
    formItem = (<Radio.Group value={card.initval} style={{lineHeight: '36px'}}>
      {options.map((item, i) => (<Radio key={i} value={item.Value}> {item.Text} </Radio>))}
    </Radio.Group>)
  } else if (card.type === 'check') {
    formItem = <Checkbox style={{lineHeight: '36px'}} checked={card.initval === card.openVal}>{card.checkTip || ''}</Checkbox>
  }
  let labelwidth = card.labelwidth || 33.3
src/utils/utils.js
@@ -39,26 +39,6 @@
export default class Utils {
  /**
   * @description 获取会员等级
   * @return {String}  level
   */
  static getMemberLevel () {
    let _level = 10
    let _Mlevel = sessionStorage.getItem('Member_Level')
    if (_Mlevel) {
      if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 10)) {
        _level = 10
      } else if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 20)) {
        _level = 20
      } else if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 30)) {
        _level = 30
      }
    }
    return _level
  }
  /**
   * @description 获取图表高度
   */
  static getHeight (val) {
src/views/design/header/index.jsx
@@ -23,7 +23,6 @@
    menulist: null, // 一级菜单
    userName: sessionStorage.getItem('CloudUserName'),
    avatar: Utils.getrealurl(sessionStorage.getItem('CloudAvatar')),
    memberLevel: Utils.getMemberLevel(),
    visible: false,
    loading: false
  }
@@ -154,7 +153,7 @@
                trdItem.PageParam = {OpenType: 'newtab'}
              }
              if (trdItem.type === 'CustomPage' && this.state.memberLevel < 20) { // 会员等级大于等于20时,有编辑权限
              if (trdItem.type === 'CustomPage' && window.GLOB.memberLevel < 20) { // 会员等级大于等于20时,有编辑权限
                trdItem.forbidden = true
              }
@@ -408,7 +407,7 @@
  render () {
    const { mainMenu, editLevel } = this.props
    const { menulist, memberLevel, visible, loading } = this.state
    const { menulist, visible, loading } = this.state
    return (
      <header className={'sys-header-container ant-menu-dark ' + (['level2', 'level3'].includes(editLevel) ? 'mask' : '')} id="main-header-container">
@@ -450,7 +449,7 @@
              <div className="icon"><HomeOutlined /></div>
              <div className="title">首页</div>
              <div className="detail">基于自定义页面的首页设计,可实现灵活的元素配置及样式调整,展现当前系统的风格。</div>
              <Button type="primary" disabled={!(memberLevel >= 20)} title={memberLevel >= 20 ? '' : '会员等级不够,无开发权限。'} onClick={() => {window.open('#/menudesign/JTdCJTIyTWVudVR5cGUlMjIlM0ElMjJob21lJTIyJTJDJTIyTWVudUlkJTIyJTNBJTIyaG9tZV9wYWdlX2lkJTIyJTJDJTIyTWVudU5hbWUlMjIlM0ElMjIlRTklQTYlOTYlRTklQTElQjUlMjIlN0Q=')}}>
              <Button type="primary" disabled={window.GLOB.memberLevel < 20} title={window.GLOB.memberLevel < 20 ? '会员等级不够,无开发权限。' : ''} onClick={() => {window.open('#/menudesign/JTdCJTIyTWVudVR5cGUlMjIlM0ElMjJob21lJTIyJTJDJTIyTWVudUlkJTIyJTNBJTIyaG9tZV9wYWdlX2lkJTIyJTJDJTIyTWVudU5hbWUlMjIlM0ElMjIlRTklQTYlOTYlRTklQTElQjUlMjIlN0Q=')}}>
                编辑
              </Button>
            </div> : null
@@ -459,7 +458,7 @@
            <div className="icon"><ApiOutlined /></div>
            <div className="title">接口调试</div>
            <div className="detail">可自动处理登录接口的参数加密,以及业务接口的签名计算,方便开发人员的接口测试工作。</div>
            <Button type="primary" disabled={!(memberLevel >= 20)} title={memberLevel >= 20 ? '' : '会员等级不够,无开发权限。'} onClick={() => {window.open('#/interface')}}>
            <Button type="primary" disabled={window.GLOB.memberLevel < 20} title={window.GLOB.memberLevel < 20 ? '会员等级不够,无开发权限。' : ''} onClick={() => {window.open('#/interface')}}>
              编辑
            </Button>
          </div>
@@ -468,10 +467,10 @@
            <div className="title">应用管理</div>
            <div className="detail">可创建及管理PC、pad及移动端等不同设备的应用,实现明科云APP、微信公众号、小程序等多平台的应用共享。</div>
            {window.GLOB.systemType !== 'production' ? 
              <Button type="primary" disabled={!(memberLevel >= 20)} title={memberLevel >= 20 ? '' : '会员等级不够,无开发权限。'} onClick={() => {window.open('#/appmanage')}}>
              <Button type="primary" disabled={window.GLOB.memberLevel < 20} title={window.GLOB.memberLevel < 20 ? '会员等级不够,无开发权限。' : ''} onClick={() => {window.open('#/appmanage')}}>
                编辑
              </Button> :
              <Button type="primary" disabled={!(memberLevel >= 20)} title={memberLevel >= 20 ? '' : '会员等级不够,无开发权限。'} onClick={() => {window.open('#/appcheck')}}>
              <Button type="primary" disabled={window.GLOB.memberLevel < 20} title={window.GLOB.memberLevel < 20 ? '会员等级不够,无开发权限。' : ''} onClick={() => {window.open('#/appcheck')}}>
                查看
              </Button>
            }
src/views/design/sidemenu/thdmenuplus/index.jsx
@@ -49,7 +49,7 @@
  getUsedTemplate = () => {
    let { sysTemplates } = this.state
    let memberLevel = Utils.getMemberLevel()
    const illust = { // 模板图片,用于已使用模板
      BaseTable: mainsubtable,
      TreePage: treepage,
@@ -63,7 +63,7 @@
      res.UserTemp.forEach(temp => {
        if (!['BaseTable', 'CustomPage'].includes(temp.Template)) {
          return
        } else if (temp.Template === 'CustomPage' && memberLevel < 20) {
        } else if (temp.Template === 'CustomPage' && window.GLOB.memberLevel < 20) {
          temp.disabled = true
          temp.disTitle = '会员等级不够,无开发权限。'
        }
@@ -80,7 +80,7 @@
      })
      sysTemplates = sysTemps.map(temp => {
        if (temp.type === 'CustomPage' && memberLevel < 20) {
        if (temp.type === 'CustomPage' && window.GLOB.memberLevel < 20) {
          temp.disabled = true
          temp.disTitle = '会员等级不够,无开发权限。'
        }
src/views/login/index.jsx
@@ -625,7 +625,18 @@
              showline: res.split_line_show || 'true',
              webSite: res.WebSite || '',
              navBar: res.menu_type, // shutter 百叶窗、linkage_navigation 联动菜单、linkage 联动菜单_无导航栏、menu_board 菜单面板、menu_board_navigation 菜单面板_标签页
              app_version: res.app_version
              app_version: res.app_version,
              Member_Level: 0
            }
            if ([10, 20, 30, 40, 50, 60, 70, 80, 90, 100].includes(res.member_level)) {
              systemMsg.Member_Level = md5('mksoft' + window.GLOB.appkey + res.member_level)
              if (!window.GLOB.memberLevel) {
                Object.defineProperty(window.GLOB, 'memberLevel', {
                  writable: false,
                  value: res.member_level
                })
              }
            }
            let level = res.pwd_level || ''
@@ -713,13 +724,6 @@
              link.rel = 'shortcut icon'
              link.href = res.titlelogo
              document.getElementsByTagName('head')[0].appendChild(link)
            }
            let memberLevel = res.member_level
            if (typeof(memberLevel) === 'number' && memberLevel > 0 && parseInt(memberLevel / 10) * 10 === memberLevel) {
              sessionStorage.setItem('Member_Level', md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + memberLevel))
              window.GLOB.memberLevel = memberLevel
            }
            // positecgroup
src/views/mobdesign/index.jsx
@@ -57,8 +57,6 @@
window.GLOB.urlFields = []               // url变量
window.GLOB.customMenu = null            // 保存菜单信息
const memberLevel = Utils.getMemberLevel()
class MobDesign extends Component {
  state = {
    loading: true,
@@ -94,7 +92,7 @@
      return
    }
    
    if (memberLevel < 30) return
    if (window.GLOB.memberLevel < 30) return
    window.GLOB.developing = true
@@ -157,7 +155,7 @@
  componentDidMount () {
    if (!sessionStorage.getItem('UserID')) return
    if (memberLevel < 30) {
    if (window.GLOB.memberLevel < 30) {
      document.getElementById('mk-mob-design-view').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh; height: 100vh; background: #fff;">本应用没有PC端页面的编辑权限,请联系管理员!</div>'
      return
    }
src/views/pcdesign/index.jsx
@@ -52,8 +52,6 @@
sessionStorage.setItem('typename', 'pc')
document.body.className = ''
const memberLevel = Utils.getMemberLevel()
class MenuDesign extends Component {
  state = {
    loading: true,
@@ -87,7 +85,7 @@
      return
    }
    
    if (memberLevel < 30) return
    if (window.GLOB.memberLevel < 30) return
    sessionStorage.setItem('editMenuType', 'menu') // 编辑菜单类型
@@ -137,7 +135,7 @@
  componentDidMount () {
    if (!sessionStorage.getItem('UserID')) return
    if (memberLevel < 30) {
    if (window.GLOB.memberLevel < 30) {
      document.getElementById('mk-pc-design-view').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh; height: 100vh; background: #fff;">本应用没有PC端页面的编辑权限,请联系管理员!</div>'
      return
    }
src/views/printTemplate/index.jsx
@@ -413,7 +413,7 @@
    } else {
      notification.warning({
        top: 92,
        message: result.ErrMesg,
        message: result.message,
        duration: 5
      })
    }
@@ -489,7 +489,7 @@
      if (error) {
        notification.warning({
          top: 92,
          message: error.ErrMesg,
          message: error.message,
          duration: 5
        })
        return
@@ -787,7 +787,7 @@
          } else {
            notification.warning({
              top: 92,
              message: result.ErrMesg,
              message: result.message,
              duration: 5
            })
            this.setState({
@@ -814,7 +814,7 @@
      } else {
        notification.warning({
          top: 92,
          message: res.ErrMesg,
          message: res.message,
          duration: 5
        })
      }
src/views/sso/index.jsx
@@ -82,7 +82,18 @@
          showline: res.split_line_show || 'true',
          webSite: res.WebSite || '',
          navBar: res.menu_type,
          app_version: res.app_version
          app_version: res.app_version,
          Member_Level: 0
        }
        if ([10, 20, 30, 40, 50, 60, 70, 80, 90, 100].includes(res.member_level)) {
          systemMsg.Member_Level = md5('mksoft' + window.GLOB.appkey + res.member_level)
          if (!window.GLOB.memberLevel) {
            Object.defineProperty(window.GLOB, 'memberLevel', {
              writable: false,
              value: res.member_level
            })
          }
        }
        let level = res.pwd_level || ''
@@ -133,12 +144,6 @@
          document.getElementsByTagName('head')[0].appendChild(link)
        }
        let memberLevel = res.member_level
        if (typeof(memberLevel) === 'number' && memberLevel > 0 && parseInt(memberLevel / 10) * 10 === memberLevel) {
          sessionStorage.setItem('Member_Level', md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + memberLevel))
          window.GLOB.memberLevel = memberLevel
        }
        this.props.history.replace('/main')
      } else {
        notification.warning({