king
2021-01-15 40436544f55558d2c8d1c14c68cce79546c60dff
src/templates/zshare/formconfig.jsx
@@ -210,7 +210,7 @@
      key: 'mark',
      label: '顶级标识',
      initVal: setting.mark || '',
      tooltip: '父级字段值与顶级标识(默认值为空)相同时,视为顶级节点。',
      tooltip: '父级字段值与顶级标识相同时,视为顶级节点。',
      required: false,
      readonly: false,
      rules: [
@@ -284,10 +284,20 @@
/**
 * @description 获取搜索条件表单配置信息
 * @param {object} card           // 搜索条件对象
 * @param {Array}  roleList       // 角色列表
 * @param {Array}  linkableFields // 可关联字段
 */
export function getSearchForm (card, roleList, linkableFields) {
export function getSearchForm (card, linkableFields) {
  let roleList = sessionStorage.getItem('sysRoles')
  if (roleList) {
    try {
      roleList = JSON.parse(roleList)
    } catch {
      roleList = []
    }
  } else {
    roleList = []
  }
  return [
    {
      type: 'text',
@@ -375,7 +385,7 @@
      type: 'radio',
      key: 'setAll',
      label: Formdict['header.form.setAll'],
      initVal: card.setAll || 'false',
      initVal: card.setAll || 'true',
      options: [{
        value: 'true',
        text: Formdict['model.true']
@@ -496,20 +506,20 @@
        text: '>='
      }]
    },
    {
      type: 'select',
      key: 'display',
      label: Formdict['header.form.display'],
      initVal: card.display || 'dropdown',
      required: true,
      options: [{
        value: 'dropdown',
        text: Formdict['header.form.dropdown']
      // }, {
      //   value: 'button',
      //   text: Formdict['header.form.button']
      }]
    },
    // {
    //   type: 'select',
    //   key: 'display',
    //   label: Formdict['header.form.display'],
    //   initVal: card.display || 'dropdown',
    //   required: true,
    //   options: [{
    //     value: 'dropdown',
    //     text: Formdict['header.form.dropdown']
    //   // }, {
    //   //   value: 'button',
    //   //   text: Formdict['header.form.button']
    //   }]
    // },
    {
      type: 'radio',
      key: 'database',
@@ -574,6 +584,19 @@
      }]
    },
    {
      type: 'radio',
      key: 'labelShow',
      label: '显示名称',
      initVal: card.labelShow || 'true',
      options: [{
        value: 'true',
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['model.false']
      }]
    },
    {
      type: 'multiselect',
      key: 'blacklist',
      label: Formdict['header.form.blacklist'],
@@ -589,10 +612,10 @@
 * @param {*} card           编辑按钮
 * @param {*} functip        生成存储过程提示
 * @param {*} config         页面配置
 * @param {*} permFuncField  存储过程可用的开始字段
 * @param {*} usefulFields   存储过程可用的开始字段
 * @param {*} type           按钮类型,用于区分可选的打开方式
 */
export function getActionForm (card, functip, config, permFuncField, type, menulist = []) {
export function getActionForm (card, functip, config, usefulFields, type, menulist = [], printTemps = []) {
  let opentypes = [
    {
      value: 'pop',
@@ -633,6 +656,16 @@
    tabTems = []
  }
  if (card.execSuccess === 'view' || card.execSuccess === 'refresh') { // refresh为表单标签页
    card.execSuccess = 'grid'
  }
  if (card.execError === 'view' || card.execSuccess === 'refresh') {
    card.execError = 'grid'
  }
  if (card.popClose === 'view') {
    card.popClose = 'grid'
  }
  let refresh = []
  if (type === 'subtable') { // 子表页面,可设置刷新主表及同级标签
    refresh.push({
@@ -641,9 +674,6 @@
    }, {
      value: 'equaltab',
      text: Formdict['header.form.refresh.equaltab']
    // }, {
    //   value: 'mainline',
    //   text: Formdict['header.form.refresh.mainline']
    })
  }
@@ -667,7 +697,7 @@
        text: Formdict['header.form.func.changeuser']
      }, {
        value: 'print',
        text: Formdict['header.form.func.print']
        text: '标签打印'
      }]
    },
    {
@@ -733,7 +763,7 @@
      label: Formdict['header.form.innerFunc'],
      initVal: card.innerFunc || '',
      tooltip: functip,
      fields: permFuncField,
      fields: usefulFields,
      tooltipClass: 'middle',
      required: card.intertype === 'inner',
      readonly: false
@@ -764,8 +794,14 @@
      initVal: card.pageTemplate || '',
      required: true,
      options: [{
        value: 'print',
        text: Formdict['header.menu.printTemplate']
      //   value: 'print',
      //   text: '标签打印模板'
      // }, {
      //   value: 'billprintTemp',
      //   text: '单据打印模板'
      // }, {
        value: 'billprint',
        text: '单据打印'
      }, {
        value: 'pay',
        text: Formdict['model.pay']
@@ -773,6 +809,14 @@
        value: 'custom',
        text: Formdict['header.form.custom']
      }]
    },
    {
      type: 'select',
      key: 'printTemp',
      label: '打印模板',
      initVal: card.printTemp || '',
      required: true,
      options: printTemps
    },
    {
      type: 'text',
@@ -864,7 +908,7 @@
      options: menulist
    },
    {
      type: 'select',
      type: 'radio',
      key: 'afterExecSuccess',
      label: Formdict['header.form.afterExecSuccess'],
      initVal: card.afterExecSuccess || 'close',
@@ -878,7 +922,7 @@
      }]
    },
    {
      type: 'select',
      type: 'radio',
      key: 'afterExecError',
      label: Formdict['header.form.afterExecError'],
      initVal: card.afterExecError || 'notclose',
@@ -892,7 +936,7 @@
      }]
    },
    {
      type: 'select',
      type: refresh.length === 0 ? 'radio' : 'select',
      key: 'execSuccess',
      label: Formdict['model.form.afterSuccess'],
      initVal: card.execSuccess || 'never',
@@ -903,14 +947,11 @@
      }, {
        value: 'grid',
        text: Formdict['header.form.refresh.grid']
      }, {
        value: 'view',
        text: Formdict['header.form.refresh.view']
      },
      ...refresh]
    },
    {
      type: 'select',
      type: refresh.length === 0 ? 'radio' : 'select',
      key: 'execError',
      label: Formdict['model.form.afterError'],
      initVal: card.execError || 'never',
@@ -921,13 +962,11 @@
      }, {
        value: 'grid',
        text: Formdict['header.form.refresh.grid']
      }, {
        value: 'view',
        text: Formdict['header.form.refresh.view']
      }]
      },
      ...refresh]
    },
    {
      type: 'select',
      type: refresh.length === 0 ? 'radio' : 'select',
      key: 'popClose',
      label: Formdict['header.form.popClose'],
      initVal: card.popClose || 'never',
@@ -938,11 +977,22 @@
      }, {
        value: 'grid',
        text: Formdict['header.form.refresh.grid']
      }, {
        value: 'view',
        text: Formdict['header.form.refresh.view']
      },
      ...refresh]
    },
    {
      type: 'radio',
      key: 'resetPageIndex',
      label: '刷新时',
      initVal: card.resetPageIndex || 'true',
      required: false,
      options: [{
        value: 'true',
        text: '重置页码'
      }, {
        value: 'false',
        text: '不重置'
      }]
    },
    {
      type: 'select',
@@ -1015,10 +1065,20 @@
/**
 * @description 获取显示列表单配置信息
 * @param {object} card       // 搜索条件对象
 * @param {Array}  roleList   // 角色列表-黑名单
 * @param {Array}  menulist   // 菜单列表-用于字段透视
 */
export function getColumnForm (card, roleList = [], menulist = []) {
export function getColumnForm (card, menulist = []) {
  let roleList = sessionStorage.getItem('sysRoles')
  if (roleList) {
    try {
      roleList = JSON.parse(roleList)
    } catch {
      roleList = []
    }
  } else {
    roleList = []
  }
  return [
    {
      type: 'text',
@@ -1140,7 +1200,7 @@
      key: 'rowspan',
      label: '行合并',
      initVal: card.rowspan || 'false',
      tooltip: '相邻行信息相同时,单元格合并。注:为防止表格信息错乱,行合并只能添加一个字段。',
      tooltip: '相邻行信息相同时,单元格合并。',
      required: false,
      options: [{
        value: 'true',
@@ -1196,6 +1256,9 @@
      }, {
        value: 'percent',
        text: '百分比'
      }, {
        value: 'abs',
        text: '绝对值'
      }],
      required: false
    },
@@ -1260,12 +1323,32 @@
      }]
    },
    {
      type: 'radio',
      key: 'perspective',
      label: '字段透视',
      initVal: card.perspective || 'linkmenu',
      options: [{
        value: 'linkmenu',
        text: '菜单'
      }, {
        value: 'linkurl',
        text: '链接'
      }]
    },
    {
      type: 'cascader',
      key: 'linkmenu',
      label: Formdict['model.form.linkmenu'],
      label: Formdict['model.menu'],
      initVal: card.linkmenu || [],
      required: false,
      options: menulist
    },
    {
      type: 'text',
      key: 'linkurl',
      label: '链接地址',
      initVal: card.linkurl || '',
      required: false
    },
    {
      type: 'multiselect',
@@ -1281,12 +1364,22 @@
/**
 * @description 获取图表视图外部配置表单
 * @param {object} card         // 搜索条件对象
 * @param {Array}  roleList     // 角色列表-黑名单
 * @param {Array}  columns      // 显示列
 * @param {Array}  actions      // 按钮组excel
 * @param {Array}  extraActions // 常规按钮
 */
export function getChartViewForm (card, roleList = [], _columns, actions, extraActions) {
export function getChartViewForm (card, _columns, actions, extraActions) {
  let roleList = sessionStorage.getItem('sysRoles')
  if (roleList) {
    try {
      roleList = JSON.parse(roleList)
    } catch {
      roleList = []
    }
  } else {
    roleList = []
  }
  let _charts = [{
    value: 'line',
    text: '折线图'
@@ -1707,13 +1800,13 @@
      required: true
    }, {
      type: 'number',
      key: 'correction',
      label: '数据修正',
      tooltip: '当数据项少于设置值时,系统会自动修正(避免柱形图过宽),在自定义中,设置为折线图时失效。',
      key: 'barSize',
      label: '柱形宽度',
      tooltip: '空值时,宽度自适应。',
      min: 5,
      max: 30,
      max: 100,
      decimal: 0,
      initVal: card.correction,
      initVal: card.barSize,
      forbid: !['bar'].includes(card.chartType),
      required: false
    }
@@ -1724,12 +1817,30 @@
 * @description 获取表单配置信息
 * @param {*} card            // 表单对象
 * @param {*} inputfields     // 可关联表单
 * @param {*} tabfields       // 可切换表单
 * @param {*} linkableFields  // 可关联表单
 * @param {*} linksupFields   // 上级表单
 * @param {*} subtable        // 是否为子表表单
 * @param {*} roleList        // 角色列表-黑名单
 */
export function getModalForm (card, inputfields, linkableFields, linksupFields, subtable = false, roleList = []) {
export function getModalForm (card, inputfields = [], tabfields = [], linkableFields, linksupFields, subtable = false) {
  let roleList = sessionStorage.getItem('sysRoles')
  if (roleList) {
    try {
      roleList = JSON.parse(roleList)
      roleList = roleList.map(role => {
        return {
          uuid: role.uuid,
          field: role.value,
          label: role.text
        }
      })
    } catch {
      roleList = []
    }
  } else {
    roleList = []
  }
  let _openType = []
  let _fieldlength = 50
@@ -1852,6 +1963,20 @@
      required: true
    },
    {
      type: 'text',
      key: 'openText',
      label: '开启提示',
      initVal: card.openText || '',
      required: false
    },
    {
      type: 'text',
      key: 'closeText',
      label: '关闭提示',
      initVal: card.closeText || '',
      required: false
    },
    {
      type: 'radio',
      key: 'resourceType',
      label: Formdict['header.form.resourceType'],
@@ -1926,7 +2051,7 @@
    {
      type: 'radio',
      key: 'setAll',
      label: Formdict['header.form.setAll'],
      label: '设置空值',
      initVal: card.setAll || 'false',
      options: [{
        value: 'true',
@@ -2193,6 +2318,15 @@
      }]
    },
    {
      type: 'text',
      key: 'suffix',
      label: '后缀名',
      tooltip: '可以上传文件的后缀名,多个类型用逗号分隔,空值时不校验。',
      initVal: card.suffix || '',
      required: false,
      readonly: false
    },
    {
      type: 'radio',
      key: 'encryption',
      label: '加密传输',
@@ -2239,20 +2373,53 @@
      readonly: false
    },
    {
      type: 'text',
      key: 'tooltip',
      label: '悬浮提示',
      tooltip: '鼠标悬浮于提示文字上方时,显示提示信息。',
      initVal: card.tooltip || '',
      required: false
    },
    {
      type: 'text',
      key: 'emptyText',
      label: '空值文本',
      tooltip: '空值的提示文本,选择设置空值时有效,默认值为《空》。',
      initVal: card.emptyText || '',
      required: false
    },
    {
      type: 'radio',
      key: 'enter',
      label: '回车事件',
      initVal: (card.type === 'text' || card.type === 'number') ? (card.enter || 'sub') : (card.enter || 'false'),
      tooltip: '点击Enter键,或文本类表单输入回车符。',
      options: [{
        value: 'sub',
        text: '提交'
      }, {
        value: 'tab',
        text: '切换'
      }, {
        value: 'false',
        text: '无动作'
      }]
    },
    {
      type: 'select',
      key: 'tabField',
      label: '切换字段',
      initVal: card.tabField || '',
      options: tabfields,
      required: false
    },
    {
      type: 'multiselect',
      key: 'linkSubField',
      label: Formdict['model.form.linkform'],
      tooltip: '在切换选项时会把信息自动填入关联的表单(文本或数字表单)中。',
      initVal: card.linkSubField || [],
      options: inputfields
    },
    {
      type: 'text',
      key: 'tooltip',
      label: '表单注释',
      tooltip: '鼠标悬浮于提示文字上方时,显示注释。',
      initVal: card.tooltip || '',
      required: false
    },
    {
      type: 'multiselect',