king
2021-11-18 c98e45bfac25e9110ad0383faac54a54d98ea9d5
src/menu/components/card/cardcomponent/options.jsx
@@ -1,8 +1,9 @@
/**
 * @description Setting表单配置信息
 */
export default function (setting, hasPrimaryKey) {
export default function (setting, subtype, buttons = [], cardType, columns) {
  let appType = sessionStorage.getItem('appType')
  let hasMenus = subtype === 'datacard' && cardType !== 'extendCard'
  let menulist = []
  let appmenulist = []
@@ -12,7 +13,7 @@
    if (appmenulist) {
      try {
        appmenulist = JSON.parse(appmenulist)
      } catch {
      } catch (e) {
        appmenulist = []
      }
    } else {
@@ -23,12 +24,17 @@
    if (menulist) {
      try {
        menulist = JSON.parse(menulist)
      } catch {
      } catch (e) {
        menulist = []
      }
    } else {
      menulist = []
    }
  }
  let ops = []
  if (hasMenus) {
    ops = [{value: 'menus', label: '菜单组'}]
  }
  const cardSettingForm = [
@@ -82,48 +88,48 @@
      field: 'primaryId',
      label: '主键值',
      initval: setting.primaryId || '',
      tooltip: '卡片点击时,向其他组件传递的ID值。',
      tooltip: '设置一个属性卡静态ID,向其他组件传递的指定静态ID值',
      required: false,
      forbid: !hasPrimaryKey
      forbid: subtype !== 'propcard'
    },
    {
      type: 'radio',
      type: !hasMenus ? 'radio' : 'select',
      field: 'click',
      label: '点击事件',
      initval: setting.click || '',
      tooltip: '当选择触发按钮时,只有当卡片中只存在一个按钮时有效。',
      tooltip: '当绑定点击事件时,卡片的切换功能将失效。',
      required: false,
      options: [
        {value: '', label: '无'},
        {value: 'menu', label: '菜单'},
        {value: 'link', label: '链接'},
        {value: 'button', label: '按钮'},
        ...ops
      ],
      controlFields: [
        {field: 'menu', values: ['menu']},
        {field: 'appmenu', values: ['menu']},
        {field: 'linkurl', values: ['link']},
        {field: 'open', values: ['menu', 'link']},
        {field: 'joint', values: ['menu', 'link']},
        {field: 'open', values: ['menu', 'link', 'menus']},
        {field: 'joint', values: ['menu', 'link', 'menus']},
        {field: 'linkbtn', values: ['button']},
        {field: 'menuType', values: ['menus']},
      ]
    },
    {
      type: 'cascader',
      field: 'menu',
      label: '菜单',
      initval: setting.menu || [],
      type: 'select',
      field: 'menuType',
      label: '菜单类型',
      initval: setting.menuType || '',
      required: true,
      options: menulist,
      forbid: !!appType
      options: columns,
    },
    {
      type: 'select',
      field: 'appmenu',
      type: appType ? 'select' : 'cascader',
      field: 'menu',
      label: '关联菜单',
      initval: setting.menu || '',
      initval: setting.menu || (appType ? '' : []),
      required: true,
      options: appmenulist,
      forbid: !appType
      options: appType ? appmenulist : menulist,
    },
    {
      type: 'textarea',
@@ -157,6 +163,27 @@
        {value: 'false', label: '否'},
      ],
    },
    {
      type: 'select',
      field: 'linkbtn',
      label: '关联按钮',
      initval: setting.linkbtn || '',
      required: true,
      options: buttons
    },
    {
      type: 'radio',
      field: 'btnControl',
      label: '按钮控制',
      initval: setting.btnControl || 'show',
      tooltip: '可设置按钮显示规则,一直显示或鼠标悬浮时显示。',
      required: false,
      options: [
        {value: 'show', label: '正常显示'},
        {value: 'hover', label: '悬浮显示'},
      ],
      forbid: appType === 'mob'
    }
  ]
  return cardSettingForm