king
2025-01-24 e1cee96b38805bcccf48e7bcb9d296f2bc54c720
src/menu/components/tabs/antv-tabs/options.jsx
@@ -3,7 +3,7 @@
/**
 * @description tab表单配置信息
 */
export function getTabForm(tab, setting) {
export function getTabForm(tab) {
  let appType = sessionStorage.getItem('appType')
  let roleList = sessionStorage.getItem('sysRoles')
@@ -35,34 +35,21 @@
      allowClear: true,
    },
    // {
    //   type: 'radio',
    //   field: 'hasSearch',
    //   label: '搜索',
    //   initval: tab.hasSearch || 'false',
    //   type: 'text',
    //   field: 'controlVal',
    //   label: '隐藏标记',
    //   initval: tab.controlVal || '',
    //   tooltip: '当禁用字段值与隐藏标记相等时,标签页会隐藏。注:1、多个值请用逗号分隔,2、@pass@值表示忽略此设置(始终显示),2、@pass_empty@值表示忽略空值,即未获取上级组件信息时显示(可与其他值拼接)。',
    //   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,
    },
    {
      type: 'text',
      field: 'selectVal',
      label: '选中标记',
      initval: tab.selectVal || '',
      tooltip: '当选中字段值与选中标记相等时,标签页默认选中。',
      required: false
    },
    // {
    //   type: 'text',
    //   field: 'selectVal',
    //   label: '选中标记',
    //   initval: tab.selectVal || '',
    //   tooltip: '当选中字段值与选中标记相等时,标签页默认选中。',
    //   required: false
    // },
    {
      type: 'color',
      field: 'backgroundColor',
@@ -98,11 +85,11 @@
/**
 * @description tabs表单配置信息
 */
export function getTabsSetForm(setting, uuid) {
export function getTabsSetForm(setting, uuid, subtabs) {
  let appType = sessionStorage.getItem('appType')
  let roleList = sessionStorage.getItem('sysRoles')
  let modules = MenuUtils.getSupModules(window.GLOB.customMenu.components, uuid)
  let modules = MenuUtils.getSupModules(window.GLOB.customMenu.components, uuid, window.GLOB.customMenu.interfaces)
  modules.push({
    value: 'preview',
    label: '上一页(url参数)'
@@ -117,6 +104,11 @@
  } else {
    roleList = []
  }
  let controlVals = subtabs.map(item => ({uuid: item.uuid, label: item.label, value: item.controlVal || ''}))
  let selectVals = subtabs.map(item => ({uuid: item.uuid, label: item.label, value: item.selectVal || ''}))
  let tabStyle = setting.cusClass || setting.tabStyle
  const tabForm = [
    {
@@ -151,21 +143,51 @@
        {value: 'right', label: 'right'},
      ],
      controlFields: [
        {field: 'display', values: ['top', 'bottom']},
        // {field: 'cusClass', values: ['top']},
        {field: 'tabStyle', values: ['top']},
      ]
    },
    {
      type: 'radio',
      type: 'select',
      field: 'tabStyle',
      label: '页签样式',
      initval: setting.tabStyle || 'line',
      tooltip: '标签位置为top时有效,默认值为line。',
      initval: tabStyle || 'line',
      tooltip: '按钮样式在运行时可见',
      required: true,
      options: [
        {value: 'line', label: 'line'},
        {value: 'card', label: 'card'},
        {value: 'mk-tab-button', label: '按钮(左)'},
        {value: 'mk-tab-button tab-right', label: '按钮(右)'},
      ],
      controlFields: [
        {field: 'tabAlign', values: ['line']},
      ]
    },
    {
      type: 'select',
      field: 'tabAlign',
      label: '对齐方式',
      initval: setting.tabAlign || 'left',
      required: true,
      options: [
        {value: 'left', label: '左对齐'},
        {value: 'center', label: '居中对齐'},
        {value: 'right', label: '右对齐'},
      ],
    },
    // {
    //   type: 'select',
    //   field: 'cusClass',
    //   label: '自定义样式',
    //   initval: setting.cusClass || '',
    //   required: false,
    //   options: [
    //     {value: '', label: '无'},
    //     {value: 'mk-tab-button', label: '按钮(左)'},
    //     {value: 'mk-tab-button tab-right', label: '按钮(右)'},
    //   ]
    // },
    {
      type: 'radio',
      field: 'autoSwitch',
@@ -215,6 +237,7 @@
      options: modules,
      controlFields: [
        {field: 'controlField', notNull: true},
        {field: 'controlVals', notNull: true},
      ],
    },
    {
@@ -222,7 +245,7 @@
      field: 'controlField',
      label: '禁用字段',
      initval: setting.controlField || '',
      tooltip: '用于控制标签隐藏的字段,在标签中填入隐藏标记。',
      tooltip: '用于控制标签隐藏的字段。注:树形组件中不同层级会自动生成mk_floor(层级字段1、2、3...)。',
      required: true,
    },
    {
@@ -230,8 +253,11 @@
      field: 'selectField',
      label: '选中字段',
      initval: setting.selectField || '',
      tooltip: '用于控制标签页初始化选中,在标签中填入选中标记,注:数据源于url参数。',
      required: false
      tooltip: '用于控制标签页初始化选中,在标签中填入选中标记,注:数据来源于url参数。',
      required: false,
      controlFields: [
        {field: 'selectVals', notNull: true},
      ]
    },
    {
      type: 'color',
@@ -250,7 +276,7 @@
        {value: 'true', label: '启用'},
        {value: 'false', label: '禁用'},
      ],
      forbid: !appType
      forbid: !appType || sessionStorage.getItem('editMenuType') === 'popview'
    },
    {
      type: 'multiselect',
@@ -261,6 +287,60 @@
      options: roleList,
      forbid: !!appType
    },
    {
      type: 'table',
      field: 'controlVals',
      label: '标签组(禁用)',
      initval: controlVals,
      tooltip: '当禁用字段值与隐藏标记相等时,标签页会隐藏。注:1、多个值请用逗号分隔,2、@pass@值表示忽略此设置(始终显示),2、@pass_empty@值表示忽略空值,即未获取上级组件信息时显示(可与其他值拼接)。',
      required: false,
      actions: ['edit'],
      span: 24,
      columns: [
        {
          title: '标签名称',
          dataIndex: 'label',
          editable: false,
          required: false,
          width: '30%'
        },
        {
          title: '隐藏标记',
          dataIndex: 'value',
          inputType: 'input',
          editable: true,
          required: false,
          width: '50%'
        }
      ]
    },
    {
      type: 'table',
      field: 'selectVals',
      label: '标签组(选中)',
      initval: selectVals,
      tooltip: '当选中字段值与选中标记相等时,标签页默认选中。',
      required: false,
      actions: ['edit'],
      span: 24,
      columns: [
        {
          title: '标签名称',
          dataIndex: 'label',
          editable: false,
          required: false,
          width: '30%'
        },
        {
          title: '选中标记',
          dataIndex: 'value',
          inputType: 'input',
          editable: true,
          required: false,
          width: '50%'
        }
      ]
    }
  ]
  return tabForm