king
2023-09-06 d2fd67a1bcec35db7870f55a83a25c043ae854f8
src/menu/components/table/base-table/options.jsx
@@ -2,58 +2,7 @@
 * @description Wrap表单配置信息
 */
export default function (wrap, action = [], columns = []) {
  let roleList = sessionStorage.getItem('sysRoles')
  let appType = sessionStorage.getItem('appType')
  if (roleList) {
    try {
      roleList = JSON.parse(roleList)
    } catch (e) {
      roleList = []
    }
  } else {
    roleList = []
  }
  const wrapForm = [
    // {
    //   type: 'text',
    //   field: 'title',
    //   label: '标题',
    //   initval: wrap.title || '',
    //   required: false
    // },
    // {
    //   type: 'text',
    //   field: 'name',
    //   label: '组件名称',
    //   initval: wrap.name || '',
    //   tooltip: '用于组件间的区分。',
    //   required: true
    // },
    // {
    //   type: 'number',
    //   field: 'width',
    //   label: '宽度',
    //   initval: wrap.width || 24,
    //   tooltip: '栅格布局,每行等分为24列。',
    //   min: 1,
    //   max: 24,
    //   precision: 0,
    //   required: true
    // },
    {
      type: 'number',
      field: 'height',
      label: '表格高度',
      initval: wrap.height || '',
      tooltip: '表格高度,空值时高度自适应。',
      min: 10,
      max: 3000,
      precision: 0,
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'radio',
      field: 'tableType',
@@ -82,26 +31,25 @@
    },
    {
      type: 'radio',
      field: 'tableHeader',
      label: '表头',
      initval: wrap.tableHeader || 'show',
      required: false,
      options: [
        {value: 'show', label: '显示'},
        {value: 'hidden', label: '隐藏'},
      ]
    },
    {
      type: 'radio',
      field: 'collapse',
      label: '可收起',
      initval: wrap.collapse || 'false',
      field: 'actionfixed',
      label: '固定按钮',
      initval: wrap.actionfixed !== 'true' ? 'false' : 'true',
      required: false,
      options: [
        {value: 'true', label: '是'},
        {value: 'false', label: '否'},
      ],
      forbid: appType === 'mob' || appType === 'pc'
      ]
    },
    {
      type: 'checkbox',
      field: 'colfixed',
      label: '固定列',
      initval: wrap.colfixed || [],
      required: false,
      options: [
        {value: 'first', label: '首列'},
        {value: 'last', label: '尾列'},
      ]
    },
    {
      type: 'radio',
@@ -118,27 +66,42 @@
      ]
    },
    {
      type: 'radio',
      field: 'mode',
      label: '模式',
      initval: wrap.mode || 'default',
      required: false,
      options: [
        {value: 'default', label: '常规'},
        {value: 'ghost', label: '透明'},
      ]
    },
    {
      type: 'radio',
      type: 'select',
      field: 'selected',
      label: '首行选中',
      label: '数据选中',
      initval: wrap.selected || 'false',
      tooltip: '当按钮执行完成并返回主键值时,默认选中主键值对应行。',
      tooltip: '初始化:数据加载时选中首行数据,仅执行一次。数据加载:每次数据加载时均选中首行(当按钮执行完成并返回主键值时,默认选中主键值对应行)。选中标记:返回数据中存在 selected 字段,且值为 true 的数据被选中。注:启用无人值守时无效。',
      required: false,
      options: [
        {value: 'false', label: '无'},
        {value: 'init', label: '初始化'},
        {value: 'always', label: '数据加载'},
        {value: 'sign', label: '选中标记'}
      ],
    },
    // {
    //   type: 'radio',
    //   field: 'selected',
    //   label: '首行选中',
    //   initval: wrap.selected || 'false',
    //   tooltip: '当按钮执行完成并返回主键值时,默认选中主键值对应行。',
    //   required: false,
    //   options: [
    //     {value: 'false', label: '无'},
    //     {value: 'init', label: '初始化'},
    //     {value: 'always', label: '数据加载'},
    //   ]
    // },
    {
      type: 'radio',
      field: 'tableMode',
      label: '加载模式',
      initval: wrap.tableMode || 'compatible',
      tooltip: '使用急速模式时,表格中的标记、双击事件、格式化、行合并、列合并、前缀、后缀、字段透视等效果将无效,且数据都会以文本格式显示。',
      required: false,
      options: [
        {value: 'compatible', label: '兼容'},
        {value: 'fast', label: '急速'},
      ]
    },
    {
@@ -162,6 +125,41 @@
      required: false
    },
    {
      type: 'radio',
      field: 'vertical',
      label: '垂直对齐',
      initval: wrap.vertical || 'middle',
      tooltip: '单元格的垂直对齐方式。',
      required: false,
      options: [
        {value: 'top', label: '向上'},
        {value: 'middle', label: '居中'},
        {value: 'bottom', label: '向下'},
      ]
    },
    {
      type: 'number',
      field: 'btnlimit',
      label: '按钮限制',
      initval: wrap.btnlimit || '',
      tooltip: '按钮数量限制,超出的按钮会在更多中下拉显示,注:更多中的按钮不要绑定双击事件。',
      min: 3,
      max: 3000,
      precision: 0,
      required: false
    },
    {
      type: 'number',
      field: 'height',
      label: '表格高度',
      initval: wrap.height || '',
      tooltip: '表格高度,空值时高度自适应。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
      required: false,
    },
    {
      type: 'select',
      field: 'doubleClick',
      label: '双击事件',
@@ -170,7 +168,16 @@
      required: false,
      allowClear: true,
      options: action.map(item => ({value: item.uuid, label: item.label})),
      forbid: appType === 'mob'
    },
    {
      type: 'select',
      field: 'tipField',
      label: '信息提示',
      initval: wrap.tipField || '',
      tooltip: '鼠标悬浮于行上方时的提示信息。',
      required: false,
      allowClear: true,
      options: columns
    },
    {
      type: 'select',
@@ -195,48 +202,15 @@
    },
    {
      type: 'radio',
      field: 'empty',
      label: '空值隐藏',
      initval: wrap.empty || 'show',
      tooltip: '当查询数据为空时,隐藏该组件。',
      required: false,
      options: [
        {value: 'show', label: '否'},
        {value: 'hidden', label: '是'},
      ],
    },
    {
      type: 'radio',
      field: 'supKey',
      label: '上级主键',
      initval: wrap.supKey || 'true',
      tooltip: '当设置上级组件时,上级主键值为空是否进行数据查询。',
      required: false,
      options: [
        {value: 'true', label: '验证'},
        {value: 'false', label: '忽略'},
      ],
    },
    {
      type: 'radio',
      field: 'permission',
      label: '权限验证',
      initval: wrap.permission || 'false',
      field: 'cacheSearch',
      label: '搜索缓存',
      initval: wrap.cacheSearch || 'false',
      tooltip: '启用搜索条件缓存后,在菜单刷新时搜索条件不变。',
      required: false,
      options: [
        {value: 'true', label: '启用'},
        {value: 'false', label: '禁用'},
      ],
      forbid: !appType
    },
    {
      type: 'multiselect',
      field: 'blacklist',
      label: '黑名单',
      initval: wrap.blacklist || [],
      required: false,
      options: roleList,
      forbid: !!appType
      ]
    },
  ]