king
2022-04-15 21d92eff0e23974d76e3e5a79ba50e3fc1c0b879
src/menu/components/tabs/antv-tabs/options.jsx
@@ -1,3 +1,5 @@
import MenuUtils from '@/utils/utils-custom.js'
/**
 * @description tab表单配置信息
 */
@@ -23,7 +25,6 @@
      initval: tab.label || '',
      required: true,
      focus: true,
      span: 22
    },
    {
      type: 'mkicon',
@@ -32,20 +33,46 @@
      initval: tab.icon || '',
      required: false,
      allowClear: true,
      span: 22
    },
    // {
    //   type: 'radio',
    //   field: 'hasSearch',
    //   label: '搜索',
    //   initval: tab.hasSearch || 'false',
    //   required: false,
    //   options: [
    //     {value: 'false', label: '无'},
    //     {value: 'icon', label: '有'},
    //   ],
    //   forbid: appType !== 'mob' || setting.position !== 'top' || setting.display !== 'inline-block',
    //   span: 22
    // },
    {
      type: 'text',
      field: 'controlVal',
      label: '隐藏标记',
      initval: tab.controlVal || '',
      tooltip: '当禁用字段值与隐藏标记相等时,标签页会隐藏。',
      required: false,
      // forbid: appType === 'mob',
    },
    {
      type: 'color',
      field: 'backgroundColor',
      label: '背景(内容区)',
      initval: tab.backgroundColor || 'transparent',
      required: false,
    },
    {
      type: 'radio',
      field: 'hasSearch',
      label: '搜索',
      initval: tab.hasSearch || 'false',
      field: 'hide',
      label: '隐藏',
      initval: tab.hide || 'false',
      required: false,
      options: [
        {value: 'false', label: '无'},
        {value: 'icon', label: '有'},
        {value: 'false', label: '否'},
        {value: 'true', label: '是'},
      ],
      forbid: appType !== 'mob' || setting.position !== 'top' || setting.display !== 'inline-block',
      span: 22
    },
    {
      type: 'multiselect',
@@ -55,7 +82,6 @@
      required: false,
      options: roleList,
      forbid: !!appType,
      span: 22
    },
  ]
@@ -65,9 +91,11 @@
/**
 * @description tabs表单配置信息
 */
export function getTabsSetForm(setting) {
export function getTabsSetForm(setting, uuid) {
  let appType = sessionStorage.getItem('appType')
  let roleList = sessionStorage.getItem('sysRoles')
  let modules = MenuUtils.getSupModules(window.GLOB.customMenu.components, uuid) || []
  if (roleList) {
    try {
@@ -126,19 +154,85 @@
        {value: 'line', label: 'line'},
        {value: 'card', label: 'card'},
      ],
      forbid: appType === 'mob'
    },
    {
      type: 'radio',
      field: 'display',
      label: '标签显示',
      initval: setting.display || 'flex',
      field: 'autoSwitch',
      label: '自动切换',
      initval: setting.autoSwitch || 'false',
      tooltip: '存在两个及以上标签时有效。',
      required: false,
      options: [
        {value: 'flex', label: '弹性布局'},
        {value: 'inline-block', label: '定宽'},
        {value: 'true', label: '是'},
        {value: 'false', label: '否'},
      ],
      forbid: appType !== 'mob'
      controlFields: [
        {field: 'interval', values: ['true']},
        {field: 'tabLabel', values: ['true']},
      ]
    },
    {
      type: 'number',
      field: 'interval',
      label: '间隔(s)',
      initval: setting.interval || 5,
      min: 1,
      max: 1000,
      precision: 0,
      required: true
    },
    {
      type: 'radio',
      field: 'tabLabel',
      label: '标签栏',
      initval: setting.tabLabel || 'show',
      required: false,
      options: [
        {value: 'show', label: '显示'},
        {value: 'hide', label: '隐藏'},
      ]
    },
    {
      type: 'cascader',
      field: 'supModule',
      label: '上级组件',
      initval: setting.supModule || [],
      tooltip: '标签组可以选择上级组件,填入禁用字段,用于控制标签隐藏。',
      required: false,
      allowClear: true,
      options: modules,
      controlFields: [
        {field: 'controlField', notNull: true},
      ],
      // forbid: appType === 'mob',
    },
    {
      type: 'text',
      field: 'controlField',
      label: '禁用字段',
      initval: setting.controlField || '',
      tooltip: '用于控制标签隐藏的字段,在标签中填入隐藏标记。',
      required: true,
      // forbid: appType === 'mob',
    },
    {
      type: 'color',
      field: 'backgroundColor',
      label: '背景(标题栏)',
      initval: setting.backgroundColor || 'transparent',
      required: false
    },
    {
      type: 'radio',
      field: 'permission',
      label: '权限验证',
      initval: setting.permission || 'false',
      required: false,
      options: [
        {value: 'true', label: '启用'},
        {value: 'false', label: '禁用'},
      ],
      forbid: !appType
    },
    {
      type: 'multiselect',