king
2022-04-15 21d92eff0e23974d76e3e5a79ba50e3fc1c0b879
src/views/mobdesign/index.jsx
@@ -264,6 +264,7 @@
    let param = {
      MenuID: menu.MenuID,
      copyMenuId: menu.copyMenuId || '',
      clearMenu: menu.clearMenu !== 'false',
      type: 'view'
    }
@@ -747,7 +748,7 @@
          }
        }
      } else {
        config.components = MenuUtils.resetConfig(config.components)
        config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu)
        config.enabled = false
        message.success('复制成功,保存后生效。')
      }
@@ -856,34 +857,58 @@
    const { config } = this.state
    
    let traversal = (components) => {
      let list = components.map(item => {
      let list = []
      components.forEach(item => {
        let m = {
          key: item.uuid,
          title: item.name,
          children: []
        }
        if (item.type === 'topbar' || item.type === 'login' || item.type === 'navbar') {
        if (item.type === 'topbar' || item.type === 'login' || item.type === 'navbar' || (item.type === 'menubar' && item.subtype === 'commonbar')) {
          return null
        } else if (item.type === 'tabs') {
          let tabs = []
          let mm = []
          item.subtabs.forEach(tab => {
            let s = traversal(tab.components)
            if (s.length === 0) return
            tabs.push({
              key: tab.uuid,
              title: tab.label,
              children: s
            })
            mm.push(...s)
          })
          if (tabs.length > 0) {
            m.children = tabs
          }
          if (item.setting.permission === 'true') {
            list.push(m)
          } else if (mm.length) {
            list.push(...mm)
          }
          return null
        } else if (item.type === 'group') {
          m.children = traversal(item.components)
          if (item.setting.permission === 'true') {
            list.push(m)
          } else if (m.children.length) {
            list.push(...m.children)
          }
          return null
        } if (item.plot && item.plot.permission !== 'true') {
          return null
        } if (item.wrap && item.wrap.permission !== 'true') {
          return null
        } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) {
          item.action && item.action.forEach(btn => {
            this.checkBtn(btn)
@@ -960,10 +985,8 @@
          })
        }
        return m
        list.push(m)
      })
      list = list.filter(Boolean)
      return list
    }
@@ -1100,14 +1123,20 @@
        config.enabled = false
      }
      let roleParam = {type: 'view', key: config.uuid, title: config.MenuName, children: []}
      let roleParam = {type: 'view', version: '1.0', key: config.uuid, title: config.MenuName, children: []}
      roleParam.children = this.getMenuMessage()
      config.loginview = false
      config.tabview = false
      if (config.permission !== 'true') {
        roleParam.pass = true
        roleParam.children = []
      }
      config.components.forEach(item => {
        if (item.type === 'login') {
          roleParam.login = true
          roleParam.children = []
          config.loginview = true
        } else if (item.type === 'navbar') {
          config.tabview = true
@@ -1171,17 +1200,22 @@
              let roles = {
                type: 'navbar',
                version: '1.0',
                key: item.uuid,
                title: item.name,
                children: []
              }
      
              roles.children = item.menus.map(menu => {
                return {
                  key: menu.MenuID,
                  title: menu.name
                }
              })
              if (item.wrap.permission === 'true') {
                roles.children = item.menus.map(menu => {
                  return {
                    key: menu.MenuID,
                    title: menu.name
                  }
                })
              } else {
                roles.pass = true
              }
              let _param = {
                func: 'sPC_TrdMenu_AddUpt',
@@ -1368,7 +1402,7 @@
  }
  verifyConfig = (show) => {
    const { config, viewType } = this.state
    const { config } = this.state
    let error = ''
    let searchSum = 0
    let swipes = []
@@ -1436,9 +1470,9 @@
    check(config.components)
    if (!error && viewType === 'userbind' && config.components.filter(item => item.type === 'login').length === 0) {
      error = '用户绑定页面必须添加登录。'
    }
    // if (!error && viewType === 'userbind' && config.components.filter(item => item.type === 'login').length === 0) {
    //   error = '用户绑定页面必须添加登录。'
    // }
    if (!error && searchSum > 1) {
      error = '搜索组件与导航栏的搜索功能不可同时使用。'