king
2023-06-28 f07c42a322f41e14ef5b1bf8f2fd66fc5d338cdd
src/menu/components/form/formaction/formconfig.jsx
@@ -1,21 +1,18 @@
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
const Formdict = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
/**
 * @description 获取表单按钮配置信息
 * @param {*} card           编辑按钮
 * @param {*} type           按钮类型,用于区分可选的打开方式
 */
export function getActionForm (card, functip, tableName, usefulFields, modules) {
export function getActionForm (card, functip, tableName, usefulFields, modules, anchors) {
  const appType = sessionStorage.getItem('appType')
  let _type = '提交'
  if (card.type === 'prev') {
    _type = '上一步'
  } else if (card.type === 'next') {
    _type = '下一步'
  } else if (card.type === 'close') {
    _type = '关闭'
  }
  let menulist = []
@@ -25,19 +22,19 @@
      try {
        menulist = JSON.parse(menulist)
        menulist = menulist.map(item => ({value: item.MenuID, text: item.MenuName}))
      } catch {
      } catch (e) {
        menulist = []
      }
    } else {
      menulist = []
    }
    menulist.unshift({value: '', text: '无'})
    menulist.push({value: 'goback', text: '返回(上一页)'})
  } else {
    menulist = sessionStorage.getItem('fstMenuList')
    if (menulist) {
      try {
        menulist = JSON.parse(menulist)
      } catch {
      } catch (e) {
        menulist = []
      }
    } else {
@@ -62,19 +59,34 @@
    },
    {
      type: 'radio',
      key: 'actionType',
      label: '执行操作',
      initVal: card.actionType || 'default',
      tooltip: '关闭功能:管理系统中会关闭当前标签,子应用中为返回上一页。',
      required: true,
      options: [{
        value: 'default',
        text: '默认'
      }, {
        value: 'close',
        text: '关闭'
      }]
    },
    {
      type: 'radio',
      key: 'intertype',
      label: Formdict['header.form.intertype'],
      label: '接口类型',
      initVal: card.intertype || 'system',
      required: true,
      options: [{
        value: 'system',
        text: Formdict['model.interface.system']
        text: '系统'
      }, {
        value: 'inner',
        text: Formdict['model.interface.inner']
        text: '内部'
      }, {
        value: 'outer',
        text: Formdict['model.interface.outer']
        text: '外部'
      }, {
        value: 'custom',
        text: '自定义'
@@ -85,6 +97,7 @@
      key: 'procMode',
      label: '参数处理',
      initVal: card.procMode || 'system',
      tooltip: '当返回值存在 mk_ex_invoke 且值为 false 时,不会调用外部接口。注:当选“无”时,按钮选行时会传递主键,存在表单时会传递表单字段,存在BID时会传BID字段。',
      required: true,
      options: [{
        value: 'system',
@@ -92,41 +105,44 @@
      }, {
        value: 'inner',
        text: '内部函数'
      }, {
        value: 'none',
        text: '无'
      }]
    },
    {
      type: 'radio',
      key: 'sqlType',
      label: Formdict['header.form.action.type'],
      initVal: card.sqlType || 'update',
      label: '操作类型',
      initVal: card.sqlType || '',
      required: true,
      options: [{
        value: 'insert',
        text: Formdict['header.form.action.insert']
        text: '添加'
      }, {
        value: 'update',
        text: Formdict['header.form.action.update']
        text: '修改'
      }, {
        value: 'audit',
        text: Formdict['header.form.action.audit']
        text: '审核'
      }]
    },
    {
      type: 'text',
      key: 'sql',
      label: Formdict['model.form.tablename'],
      label: '表名',
      initVal: card.sql || tableName || '',
      required: true
    },
    {
      type: 'text',
      key: 'innerFunc',
      label: Formdict['header.form.innerFunc'],
      label: '内部函数',
      initVal: card.innerFunc || '',
      tooltip: functip,
      fields: usefulFields,
      tooltipClass: 'middle',
      required: card.intertype === 'inner',
      required: true,
      readonly: false
    },
    {
@@ -140,28 +156,29 @@
    {
      type: 'text',
      key: 'url',
      label: Formdict['model.pageUrl'],
      label: '页面地址',
      initVal: card.url || '',
      required: true
    },
    {
      type: 'radio',
      key: 'sysInterface',
      label: Formdict['header.form.sysInterface'],
      label: '系统类型',
      initVal: card.sysInterface || 'false',
      tooltip: '业务系统指同一sso下的其他业务系统',
      required: true,
      options: [{
        value: 'true',
        text: Formdict['model.true']
        text: '单点'
      }, {
        value: 'false',
        text: Formdict['model.false']
        text: '业务'
      }]
    },
    {
      type: 'text',
      key: 'outerFunc',
      label: Formdict['header.form.outerFunc'],
      label: '外部函数',
      initVal: card.outerFunc || '',
      required: false,
      readonly: false
@@ -184,6 +201,42 @@
    },
    {
      type: 'radio',
      key: 'callbackType',
      label: '回调方式',
      initVal: card.callbackType || 'script',
      tooltip: '使用后台脚本执行时,需要配合计划任务。',
      required: true,
      options: [{
        value: 'script',
        text: '自定义脚本'
      }, {
        value: 'default',
        text: '后台脚本'
      }, {
        value: 'func',
        text: '回调函数'
      }, {
        value: 'none',
        text: '无'
      }]
    },
    {
      type: 'text',
      key: 'cbTable',
      label: '回调表名',
      initVal: card.cbTable || '',
      required: true
    },
    {
      type: 'text',
      key: 'callbackFunc',
      label: '回调函数',
      initVal: card.callbackFunc || '',
      required: true,
      readonly: false
    },
    {
      type: 'radio',
      key: 'method',
      label: '请求方式',
      initVal: card.method || 'post',
@@ -199,7 +252,7 @@
    {
      type: 'radio',
      key: 'cross',
      label: '跨域请求',
      label: '接口跨域',
      initVal: card.cross || 'true',
      tooltip: '如果自定义接口不支持跨域请求,会通过当前系统转发。',
      required: false,
@@ -213,42 +266,70 @@
    },
    {
      type: 'radio',
      key: 'callbackType',
      label: '回调方式',
      initVal: card.callbackType || 'script',
      tooltip: '使用后台脚本执行时,需要配合计划任务。',
      required: true,
      key: 'stringify',
      label: '序列化',
      initVal: card.stringify || 'text',
      required: false,
      options: [{
        value: 'script',
        text: '自定义脚本'
        value: 'text',
        text: 'Text'
      }, {
        value: 'default',
        text: '后台脚本'
        value: 'JSON',
        text: 'JSON'
      }, {
        value: 'qs',
        text: 'qs'
      }]
    },
    {
      type: 'text',
      key: 'cbTable',
      label: '回调表名',
      initVal: card.cbTable || '',
      required: true
      type: 'radio',
      key: 'Ot',
      label: '行设置',
      initVal: card.Ot,
      required: true,
      options: [{
        value: 'notRequired',
        text: '不选择行'
      }, {
        value: 'requiredSgl',
        text: '选择单行'
      }]
    },
    {
      type: 'text',
      key: 'callbackFunc',
      label: Formdict['header.form.callbackFunc'],
      initVal: card.callbackFunc || '',
      required: false,
      readonly: false
      type: 'select',
      key: 'execSuccess',
      label: '成功后',
      initVal: card.execSuccess || 'grid',
      required: true,
      options: [{
        value: 'never',
        text: '不刷新'
      }, {
        value: 'grid',
        text: '刷新当前组件'
      }, {
        value: 'mainline',
        text: '刷新上级组件 - 行'
      }]
    },
    {
      type: (appType === 'pc' || appType === 'mob') ? 'select' : 'cascader',
      key: 'linkmenu',
      label: '打开菜单',
      label: '下一步操作',
      tooltip: '执行成功后需要打开的菜单。',
      initVal: card.linkmenu,
      help: appType === 'pc' || appType === 'mob' ? '可返回上一页。' : null,
      required: false,
      allowClear: true,
      options: menulist
    },
    {
      type: 'text',
      key: 'output',
      label: '返回值',
      tooltip: '执行成功后的返回值。系统函数可指定返回的变量(以@符开头,返回id时可使用@id@);自定义函数可指定返回字段(如id)。',
      initVal: card.output || '',
      required: false
    },
    {
      type: 'radio',
@@ -256,37 +337,44 @@
      label: '打开方式',
      initVal: card.open || 'blank',
      required: false,
      forbid: appType !== 'pc',
      options: [{
        value: 'blank',
        text: '新窗口'
      }, {
        value: 'self',
        text: '当前窗口'
      }]
      forbid: appType !== 'pc' && appType !== 'mob',
      options: [
        {value: 'blank', text: appType !== 'mob' ? '新窗口' : '新页面'},
        {value: 'self', text: appType !== 'mob' ? '当前窗口' : '当前页面'},
      ]
    },
    {
      type: 'cascader',
      key: 'syncComponent',
      label: '同步刷新',
      initVal: card.syncComponent,
      tooltip: '执行成功后需要刷新的组件。',
      tooltip: '执行成功后需要刷新的组件。注:选择当前组件的上级组件无效,刷新上级组件请选择成功后“刷新上级组件 - 行”。',
      required: false,
      options: modules
    },
    // {
    //   type: 'radio',
    //   key: 'enable',
    //   label: '是否显示',
    //   initVal: card.enable || 'true',
    //   required: false,
    //   options: [{
    //     value: 'true',
    //     text: '显示'
    //   }, {
    //     value: 'false',
    //     text: '隐藏'
    //   }]
    // }
    {
      type: 'cascader',
      key: 'anchors',
      label: '跳转锚点',
      initVal: card.anchors || [],
      tooltip: '执行成功后,需要跳转的锚点。' + (appType === 'mob' ? '注:小程序中无效' : ''),
      required: false,
      options: anchors
    },
    {
      type: 'radio',
      key: 'reload',
      label: '上一页',
      initVal: card.reload || 'false',
      tooltip: '成功后是否刷新上页的数据。注:在明科云APP或小程序中有效。',
      forbid: appType !== 'mob',
      options: [{
        value: 'false',
        text: '不刷新'
      }, {
        value: 'true',
        text: '刷新'
      }]
    },
  ]
}