king
2022-03-24 26d0fa42ea8c63a87e8ef93d0915f75f46fb1f9c
src/menu/components/share/actioncomponent/formconfig.jsx
@@ -15,7 +15,8 @@
export function getActionForm (card, functip, config, usefulFields, type, menulist = [], modules = []) {
  let appType = sessionStorage.getItem('appType')
  let viewType = sessionStorage.getItem('editMenuType') // 弹窗 popview
  let printTemps = sessionStorage.getItem('printTemps') || []
  let printTemps = sessionStorage.getItem('printTemps')
  printTemps = printTemps ? JSON.parse(printTemps) : []
  let setting = config.setting || {}
  let columns = config.columns || []
  let appMenus = []
@@ -62,17 +63,17 @@
    })
  }
  if (type === 'editable') {
    opentypes = [
      {
        value: 'excelIn',
        text: Formdict['model.form.excelIn']
      }, {
        value: 'excelOut',
        text: Formdict['model.form.excelOut']
      }
    ]
  }
  // if (type === 'editable') {
  //   opentypes = [
  //     {
  //       value: 'excelIn',
  //       text: Formdict['model.form.excelIn']
  //     }, {
  //       value: 'excelOut',
  //       text: Formdict['model.form.excelOut']
  //     }
  //   ]
  // }
  let tabs = getTabs(JSON.parse(JSON.stringify(modules)))
@@ -100,33 +101,33 @@
    } else {
      appMenus = []
    }
    if (appType === 'mob') {
      opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'].includes(item.value))
      funTypes = [
        { value: 'scan', text: '扫码' },
        { value: 'logout', text: '退出' },
        { value: 'mkBinding', text: '开通扫码登录' },
        { value: 'mkUnBinding', text: '用户解绑' },
        { value: 'reAuth', text: '切换系统(清空缓存-小程序)' },
        { value: 'goBack', text: '返回' },
      ]
      pageTemps = [
        { value: 'linkpage', text: '关联菜单' },
        { value: 'custom', text: '链接' }
      ]
    } else {
      pageTemps = [
        { value: 'linkpage', text: '关联菜单' },
        { value: 'billprint', text: '单据打印' },
        { value: 'pay', text: Formdict['model.pay'] },
        { value: 'custom', text: '链接' }
      ]
      funTypes = [
        { value: 'changeuser', text: '切换用户' },
      ]
      opentypes = opentypes.filter(item => item.value !== 'tab')
    }
  }
  if (appType === 'mob') {
    opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'].includes(item.value))
    funTypes = [
      { value: 'scan', text: '扫码' },
      { value: 'logout', text: '退出' },
      { value: 'mkBinding', text: '开通扫码登录' },
      { value: 'mkUnBinding', text: '用户解绑' },
      { value: 'mkUnsubscribe', text: '注销账户' },
      { value: 'reAuth', text: '切换系统(清空缓存-小程序)' },
      { value: 'goBack', text: '返回' },
    ]
    pageTemps = [
      { value: 'linkpage', text: '关联菜单' },
      { value: 'custom', text: '链接' }
    ]
  } else if (appType === 'pc') {
    opentypes = opentypes.filter(item => item.value !== 'tab')
    funTypes = [
      { value: 'changeuser', text: '切换用户' },
    ]
    pageTemps = [
      { value: 'linkpage', text: '关联菜单' },
      { value: 'billprint', text: '单据打印' },
      { value: 'pay', text: Formdict['model.pay'] },
      { value: 'custom', text: '链接' }
    ]
  }
  
  if (type === 'chart' && appType !== 'mob') {
@@ -143,6 +144,13 @@
    refresh.push({
      value: 'popclose',  // 执行弹窗关闭时的刷新
      text: '刷新源组件'
    })
  }
  if (type === 'card') {
    opentypes.push({
      value: 'form',
      text: '表单(开关或勾选框)'
    })
  }
@@ -169,6 +177,20 @@
      initVal: card.funcType || '',
      required: true,
      options: funTypes
    },
    {
      type: 'radio',
      key: 'formType',
      label: '表单类型',
      initVal: card.formType || 'switch',
      required: true,
      options: [{
        value: 'switch',
        text: '开关'
      }, {
        value: 'radio',
        text: '勾选框'
      }]
    },
    {
      type: 'select',
@@ -257,13 +279,12 @@
      options: printTemps
    },
    {
      type: 'select',
      type: isApp ? 'select' : 'cascader',
      key: 'linkmenu',
      label: '关联菜单',
      initVal: card.linkmenu || '',
      initVal: card.linkmenu || (isApp ? '' : []),
      required: true,
      forbid: !isApp,
      options: appMenus
      options: isApp ? appMenus : menulist
    },
    {
      type: 'textarea',
@@ -376,19 +397,10 @@
      options: []
    },
    {
      type: 'cascader',
      key: 'linkmenu',
      label: Formdict['model.form.linkmenu'],
      initVal: card.linkmenu || [],
      required: true,
      forbid: isApp,
      options: menulist
    },
    {
      type: 'select',
      key: 'execSuccess',
      label: Formdict['model.form.afterSuccess'],
      initVal: card.execSuccess || 'never',
      initVal: card.execSuccess || 'grid',
      tooltip: refresh.length ? '执行刷新源组件时,请在源按钮中设置关闭后刷新那一项,注:此时会同步刷新当前组件和上级组件-行。' : '刷新上级组件-行时,会同步刷新当前组件,注:上级组件在数据源中添加。',
      required: true,
      options: [{
@@ -631,15 +643,6 @@
      options: menulist
    },
    {
      type: 'cascader',
      key: 'linkmenu',
      label: Formdict['model.form.linkmenu'],
      initVal: card.linkmenu || [],
      required: true,
      forbid: isApp,
      options: menulist
    },
    {
      type: !appType ? 'cascader' : 'select',
      key: 'openmenu',
      label: '打开菜单',
@@ -647,7 +650,7 @@
      initVal: card.openmenu || (!appType ? [] : ''),
      required: false,
      allowClear: true,
      options: appType === 'mob' ? [...appMenus, {value: 'goback', text: '返回'}] : (appType === 'pc' ? appMenus : menulist),
      options: appType === 'mob' ? [...appMenus, {value: 'goback', text: '返回(上一页)'}] : (appType === 'pc' ? appMenus : menulist),
      forbid: viewType === 'popview'
    },
    {
@@ -658,6 +661,14 @@
      initVal: card.output || '',
      required: false,
      forbid: viewType === 'popview'
    },
    {
      type: 'text',
      key: 'tipTitle',
      label: '确认提示',
      initVal: card.tipTitle || '',
      tooltip: '注:弹窗(表单)在显示为是否框时有效。',
      required: false
    },
    {
      type: 'radio',
@@ -736,9 +747,9 @@
    {
      type: 'radio',
      key: 'reload',
      label: '返回后',
      label: '上一页',
      initVal: card.reload || 'false',
      tooltip: '按钮成功后返回上一页面或使用功能按钮-返回功能时,返回后是否刷新数据。注:在明科云app中(应用模式为app)有效。',
      tooltip: '成功后是否刷新上页的数据。注:在明科云APP或小程序中有效。',
      forbid: appType !== 'mob',
      options: [{
        value: 'false',
@@ -746,6 +757,22 @@
      }, {
        value: 'true',
        text: '刷新'
      }]
    },
    {
      type: 'radio',
      key: 'position',
      label: '显示位置',
      initVal: card.position || 'middle',
      tooltip: '注:弹窗(表单)在显示为是否框时有效。',
      required: false,
      forbid: appType !== 'mob',
      options: [{
        value: 'middle',
        text: '中部'
      }, {
        value: 'bottom',
        text: '底部'
      }]
    },
    {
@@ -785,6 +812,63 @@
      initVal: card.controlVal || '',
      required: false
    },
    {
      type: 'splitLine',
      key: 'title',
      label: '表单',
      initVal: ''
    },
    {
      type: 'text',
      key: 'field',
      label: Formdict['model.form.field'],
      initVal: card.field || '',
      required: true,
      readonly: false
    },
    {
      type: 'radio',
      key: 'size',
      label: '开关尺寸',
      initVal: card.size || 'default',
      options: [{
        value: 'default',
        text: '大'
      }, {
        value: 'small',
        text: '小'
      }]
    },
    {
      type: 'text',
      key: 'openVal',
      label: '开启值',
      initVal: card.openVal === undefined ? '' : card.openVal + '',
      tooltip: '当开启与关闭值均为正整数时,默认转换为INT类型。',
      required: false
    },
    {
      type: 'text',
      key: 'closeVal',
      label: '关闭值',
      initVal: card.closeVal === undefined ? '' : card.closeVal + '',
      tooltip: '当开启与关闭值均为正整数时,默认转换为INT类型。',
      required: false
    },
    {
      type: 'text',
      key: 'openText',
      label: '开启提示',
      initVal: card.openText || '',
      required: false,
    },
    {
      type: 'text',
      key: 'closeText',
      label: '关闭提示',
      initVal: card.closeText || '',
      required: false,
    },
  ]
  return forms