king
2021-08-26 e9c48bd7356462ba9257540b130a47a65ad1861d
src/mob/components/menubar/normal-menubar/menucomponent/options.jsx
New file
@@ -0,0 +1,179 @@
/**
 * @description Setting表单配置信息
 */
export default function (setting) {
  let menulist = sessionStorage.getItem('appMenus')
  if (menulist) {
    try {
      menulist = JSON.parse(menulist)
    } catch {
      menulist = []
    }
  } else {
    menulist = []
  }
  const menuWrapForm = [
    {
      type: 'text',
      field: 'name',
      label: '菜单名称',
      initval: setting.name || '',
      required: true
    },
    {
      type: 'text',
      field: 'MenuNo',
      label: '菜单参数',
      initval: setting.MenuNo || '',
      required: true
    },
    {
      type: 'number',
      field: 'width',
      label: '宽度',
      initval: setting.width || 24,
      tooltip: '栅格布局,每行等分为24列。',
      min: 1,
      max: 24,
      precision: 0,
      required: true
    },
    {
      type: 'select',
      field: 'type',
      label: '菜单属性',
      initval: setting.type || 'menu',
      required: true,
      options: [
        {value: 'menu', label: '菜单'},
        {value: 'linkmenu', label: '关联菜单'},
        {value: 'sysmenu', label: '系统页'},
        {value: 'link', label: '链接'},
      ],
      controlFields: [
        {field: 'sysmenu', values: ['sysmenu']},
        {field: 'copyMenuId', values: ['menu']},
        {field: 'linkMenuId', values: ['linkmenu']},
        {field: 'linkurl', values: ['link']},
      ]
    },
    {
      type: 'select',
      field: 'sysmenu',
      label: '系统页面',
      initval: setting.sysmenu || '',
      required: true,
      options: [
        {value: 'AIService', label: '智能客服'},
      ]
    },
    {
      type: 'select',
      field: 'copyMenuId',
      label: '复制菜单',
      initval: setting.copyMenuId || '',
      tooltip: '复制菜单仅在当前菜单初始化时有效。',
      required: false,
      options: menulist
    },
    {
      type: 'select',
      field: 'linkMenuId',
      label: '关联菜单',
      initval: setting.linkMenuId || '',
      required: true,
      options: menulist
    },
    {
      type: 'textarea',
      field: 'linkurl',
      label: '链接',
      initval: setting.linkurl || '',
      required: true,
      span: 24
    },
    {
      type: 'radio',
      field: 'sign',
      label: '标志',
      initval: setting.sign || 'icon',
      required: true,
      options: [
        {value: 'icon', label: '图标'},
        {value: 'image', label: '图片'},
      ],
      controlFields: [
        {field: 'icon', values: ['icon']},
        {field: 'iconFont', values: ['icon']},
        {field: 'padding', values: ['icon']},
        {field: 'color', values: ['icon']},
        {field: 'background', values: ['icon']},
        {field: 'url', values: ['image']},
        {field: 'imgWidth', values: ['image']},
      ]
    },
    {
      type: 'mkicon',
      field: 'icon',
      label: '图标',
      initval: setting.icon || '',
      required: true
    },
    {
      type: 'number',
      field: 'iconFont',
      label: '字体大小',
      initval: setting.iconFont || 20,
      min: 12,
      max: 200,
      precision: 0,
      required: true
    },
    {
      type: 'number',
      field: 'padding',
      label: '内边距',
      initval: setting.padding || 12,
      min: 0,
      max: 200,
      precision: 0,
      required: true
    },
    {
      type: 'color',
      field: 'color',
      label: '字体颜色',
      initval: setting.color || '#ffffff',
      required: false
    },
    {
      type: 'color',
      field: 'background',
      label: '背景色',
      initval: setting.background || '#1890ff',
      required: false
    },
    {
      type: 'source',
      field: 'url',
      label: '图片地址',
      initval: setting.url || '',
      required: true
    },
    {
      type: 'number',
      field: 'imgWidth',
      label: '图片宽度',
      initval: setting.imgWidth || 36,
      tooltip: '图片宽度与高度相当,使用的图片比例应为1:1。',
      min: 10,
      max: 500,
      precision: 0,
      required: false
    },
  ]
  return menuWrapForm
}