king
2022-04-26 5046d0d13dc6a8563b8e54e31913bc44cfa1072f
src/mob/components/topbar/normal-navbar/options.jsx
@@ -1,8 +1,17 @@
import React from 'react'
import MkIcon from '@/components/mk-icon'
/**
 * @description Wrap表单配置信息
 */
export default function (wrap) {
  let menulist = sessionStorage.getItem('appMenus')
  let searchable = true
  window.GLOB.customMenu.components.forEach(item => {
    if (item.type === 'search') {
      searchable = false
    }
  })
  if (menulist) {
    try {
@@ -14,6 +23,21 @@
    menulist = []
  }
  let funs = []
  if (wrap.back === 'true') {
    funs.push('back')
  }
  if (wrap.logout === 'true') {
    funs.push('logout')
  }
  if (wrap.scan === 'true') {
    funs.push('scan')
  }
  if (wrap.refresh === 'true') {
    funs.push('refresh')
  }
  const topbarWrapForm = [
    {
      type: 'radio',
@@ -23,8 +47,8 @@
      required: false,
      options: [
        {value: 'navbar', label: '导航栏'},
        {value: 'search', label: '搜索框'},
        {value: 'searchIcon', label: '搜索标'},
        {value: 'search', label: '搜索框', disabled: !searchable},
        {value: 'searchIcon', label: '搜索标', disabled: !searchable},
      ],
    },
    {
@@ -37,76 +61,101 @@
    },
    {
      type: 'radio',
      field: 'back',
      label: '返回',
      initval: wrap.back || 'true',
      field: 'menuPosition',
      label: '菜单位置',
      initval: wrap.menuPosition || 'right',
      tooltip: '自定义菜单的位置。',
      required: false,
      options: [
        {value: 'true', label: '显示'},
        {value: 'false', label: '隐藏'},
        {value: 'left', label: '左侧'},
        {value: 'right', label: '右侧'},
      ],
      controlFields: [
        {field: 'reload', values: ['true']},
        {field: 'back', values: ['right']},
      ]
    },
    {
      type: 'radio',
      field: 'mode',
      label: '弹框背景',
      initval: wrap.mode || 'dark',
      required: false,
      options: [
        {value: 'light', label: '白色'},
        {value: 'dark', label: '黑色'},
      ]
    },
    {
      type: 'checkbox',
      field: 'funs',
      label: '扩展功能',
      tooltip: '1、返回上一页;2、绑定公众号后可分享当前页面;3、二维码以“login”开头时为扫码登录,二维码以“http”开头为页面跳转,二维码以“mkbid”开头为菜单跳转,且设置有关联菜单;4、当前页面刷新;5、退出系统,返回第一个页面。',
      initval: funs,
      required: false,
      options: [
        {value: 'back', label: '返回'},
        {value: 'scan', label: '扫一扫'},
        {value: 'refresh', label: '刷新'},
        {value: 'logout', label: '退出'},
      ],
      controlFields: [
        {field: 'reload', values: ['back']},
        {field: 'linkmenu', values: ['scan']},
      ],
      span: 24
    },
    // {
    //   type: 'radio',
    //   field: 'search',
    //   label: '搜索',
    //   initval: wrap.search || 'false',
    //   field: 'back',
    //   label: '返回',
    //   initval: wrap.back || 'true',
    //   required: false,
    //   options: [
    //     {value: 'true', label: '显示'},
    //     {value: 'false', label: '隐藏'},
    //   ],
    //   controlFields: [
    //     {field: 'reload', values: ['true']},
    //   ]
    // },
    // {
    //   type: 'radio',
    //   field: 'logout',
    //   label: '退出',
    //   initval: wrap.logout || 'false',
    //   tooltip: '点击退出时,返回第一个页面。',
    //   required: false,
    //   options: [
    //     {value: 'true', label: '显示'},
    //     {value: 'false', label: '隐藏'},
    //   ]
    // },
    {
      type: 'radio',
      field: 'logout',
      label: '退出',
      initval: wrap.logout || 'false',
      tooltip: '点击退出时,返回第一个页面。',
      required: false,
      options: [
        {value: 'true', label: '显示'},
        {value: 'false', label: '隐藏'},
      ]
    },
    {
      type: 'radio',
      field: 'scan',
      label: '扫一扫',
      initval: wrap.scan || 'false',
      tooltip: '系统功能:1、扫码登录,二维码以“login”开头,2、页面跳转,二维码以“http”开头,3、菜单跳转,二维码以“mkbid”开头,且设置关联菜单',
      required: false,
      options: [
        {value: 'true', label: '显示'},
        {value: 'false', label: '隐藏'},
      ],
      controlFields: [
        {field: 'linkmenu', values: ['true']},
      ]
    },
    {
      type: 'radio',
      field: 'refresh',
      label: '刷新',
      initval: wrap.refresh || 'false',
      required: false,
      options: [
        {value: 'true', label: '显示'},
        {value: 'false', label: '隐藏'},
      ]
    },
    {
      type: 'select',
      field: 'linkmenu',
      label: '关联菜单',
      initval: wrap.linkmenu || '',
      tooltip: '使用扫码登录功能或菜单跳转功能时,需选择跳转的菜单。',
      required: false,
      options: menulist
    },
    // {
    //   type: 'radio',
    //   field: 'scan',
    //   label: '扫一扫',
    //   initval: wrap.scan || 'false',
    //   tooltip: '系统功能:1、扫码登录,二维码以“login”开头,2、页面跳转,二维码以“http”开头,3、菜单跳转,二维码以“mkbid”开头,且设置关联菜单',
    //   required: false,
    //   options: [
    //     {value: 'true', label: '显示'},
    //     {value: 'false', label: '隐藏'},
    //   ],
    //   controlFields: [
    //     {field: 'linkmenu', values: ['true']},
    //   ]
    // },
    // {
    //   type: 'radio',
    //   field: 'refresh',
    //   label: '刷新',
    //   initval: wrap.refresh || 'false',
    //   required: false,
    //   options: [
    //     {value: 'true', label: '显示'},
    //     {value: 'false', label: '隐藏'},
    //   ]
    // },
    {
      type: 'radio',
      field: 'reload',
@@ -122,6 +171,54 @@
        label: '刷新'
      }]
    },
    {
      type: 'select',
      field: 'linkmenu',
      label: '关联菜单',
      initval: wrap.linkmenu || '',
      tooltip: '使用扫码登录功能或菜单跳转功能时,需选择跳转的菜单。',
      required: false,
      options: menulist
    },
    {
      type: 'table',
      field: 'menus',
      label: '自定义菜单',
      initval: wrap.menus || [],
      required: false,
      span: 24,
      actions: ['view'],
      columns: [
        {
          title: '图标',
          dataIndex: 'icon',
          inputType: 'icon',
          editable: true,
          required: true,
          render: (text, record) => <MkIcon type={text}/>,
          width: '23%'
        },
        {
          title: '自定义名称',
          dataIndex: 'name',
          inputType: 'text',
          editable: true,
          required: false,
          width: '23%'
        },
        {
          title: '菜单',
          dataIndex: 'menu',
          inputType: 'select',
          editable: true,
          required: true,
          extends: [{key: 'label', value: 'label'}],
          width: '23%',
          render: (text, record) => record.label,
          options: menulist
        }
      ]
    }
  ]
  return topbarWrapForm