king
2020-09-07 27eb6c35533be910488869c393e2c89e3c0a5b20
src/templates/zshare/formconfig.jsx
@@ -5,241 +5,6 @@
const Formdict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
/**
 * @description 获取页面设置表单配置信息
 * @param {object} setting       // 菜单全局设置信息
 * @param {array}  usefulFields  // 内部函数可用的开头字符
 * @param {string} MenuID        // 菜单ID
 * @param {string} primaryKey    // 主键
 * @param {zrray}  columns       // 显示列
 * @param {string} type          // 菜单类型,main(主表)
 */
export function getSettingForm (setting, usefulFields = [], MenuID, primaryKey, columns, type) {
  let str = '^(' + usefulFields.join('|') + ')'
  let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g')
  return [
    {
      type: 'text',
      key: 'tableName',
      label: '表名',
      initVal: setting.tableName || '',
      required: true,
      readonly: false,
      rules: [
        {
          max: formRule.input.max,
          message: formRule.input.message
        }
      ]
    },
    {
      type: 'select',
      key: 'tableType',
      label: '表格属性',
      initVal: setting.tableType,
      required: false,
      readonly: false,
      options: [
        { value: '', text: '不可选' },
        { value: 'radio', text: '单选' },
        { value: 'checkbox', text: '多选' }
      ]
    },
    {
      type: 'radio',
      key: 'interType',
      label: Formdict['header.form.intertype'],
      initVal: setting.interType || 'inner',
      required: false,
      readonly: false,
      options: [
        { value: 'inner', text: Formdict['header.form.interface.inner'] },
        { value: 'outer', text: Formdict['header.form.interface.outer'] }
      ]
    },
    {
      type: 'radio',
      key: 'sysInterface',
      label: Formdict['header.form.sysInterface'],
      initVal: setting.sysInterface || 'false',
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
      type: 'text',
      key: 'interface',
      label: Formdict['header.form.interface'],
      initVal: setting.sysInterface === 'true' ? (window.GLOB.mainSystemApi || '') : (setting.interface || ''),
      required: true,
      readonly: setting.sysInterface === 'true',
      rules: [
        {
          max: formRule.input.max,
          message: formRule.input.message
        }
      ]
    },
    {
      type: 'text',
      key: 'outerFunc',
      label: Formdict['header.form.outerFunc'],
      initVal: setting.outerFunc || '',
      required: false,
      readonly: false,
      rules: [
        {
          pattern: formRule.func.pattern,
          message: formRule.func.message
        }, {
          max: formRule.func.max,
          message: formRule.func.maxMessage
        }
      ]
    },
    {
      type: 'text',
      key: 'innerFunc',
      label: Formdict['header.form.innerFunc'],
      initVal: setting.innerFunc || '',
      tooltip: '开头可用字符:' + usefulFields.join(', '),
      required: false,
      readonly: false,
      rules: [
        {
          pattern: _patten,
          message: formRule.func.innerMessage
        }, {
          max: formRule.func.max,
          message: formRule.func.maxMessage
        }
      ]
    },
    {
      type: 'datasource',
      key: 'dataresource',
      label: '数据源',
      initVal: setting.dataresource || '',
      tooltip: '使用系统函数时,需填写数据源。注:数据权限替换符 $@ -> /* 或 \'\'、 @$ -> */ 或 \'\'',
      help: '数据ID:' + MenuID,
      required: false,
      readonly: false,
      rules: [
        {
          pattern: _patten,
          message: formRule.func.innerMessage
        }, {
          max: formRule.func.max,
          message: formRule.func.maxMessage
        }
      ]
    },
    {
      type: 'select',
      key: 'primaryKey',
      label: '主键',
      initVal: primaryKey,
      required: false,
      readonly: false,
      options: columns
    },
    {
      type: 'text',
      key: 'order',
      label: '默认排序',
      initVal: setting.order || (primaryKey ? primaryKey + ' desc' : ''),
      placeholder: 'ID asc, UID desc',
      required: true,
      readonly: false,
      rules: [
        {
          max: formRule.input.max,
          message: formRule.input.message
        }
      ]
    },
    {
      type: 'radio',
      key: 'queryType',
      label: Formdict['header.form.queryType'],
      initVal: setting.queryType || 'query',
      tooltip: '查询时,搜索条件以where条件拼接进入sql,统计时,将数据源中以“@+搜索字段+@”的内容,以搜索条件中的值进行替换后,提交查询,注:查询类型仅在使用系统函数时有效。',
      required: false,
      readonly: false,
      options: [
        { value: 'query', text: Formdict['header.form.query'] },
        { value: 'statistics', text: Formdict['header.form.statistics'] }
      ]
    },
    {
      type: 'radio',
      key: 'actionfixed',
      label: '按钮固定',
      initVal: setting.actionfixed ? 'true' : 'false',
      required: false,
      readonly: false,
      forbid: type !== 'main',
      options: [
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
      type: 'radio',
      key: 'columnfixed',
      label: '表头固定',
      initVal: setting.columnfixed ? 'true' : 'false',
      required: false,
      readonly: false,
      forbid: type !== 'main',
      options: [
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
      type: 'radio',
      key: 'onload',
      label: '初始化',
      initVal: setting.onload || 'true',
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: '加载数据' },
        { value: 'false', text: '不加载数据' }
      ]
    },
    {
      type: 'radio',
      key: 'laypage',
      label: '是否分页',
      initVal: setting.laypage || 'true',
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
      type: 'radio',
      key: 'default',
      label: '默认sql',
      initVal: setting.default || 'true',
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: '执行' },
        { value: 'false', text: '不执行' }
      ]
    },
  ]
}
/**
 * @description 获取树形页面设置表单配置信息
 * @param {object} setting       // 菜单全局设置信息
 * @param {array}  usefulFields  // 可用开始字符