king
2021-06-24 95afd40fc2741ac0ce59c2091f6cfce1f98877d4
src/templates/zshare/formconfig.jsx
@@ -298,6 +298,59 @@
    roleList = []
  }
  let typeOptions = []
  if (sessionStorage.getItem('appType') === 'mob') {
    typeOptions = [{
      value: 'text',
      text: Formdict['model.form.text']
    }, {
      value: 'checkcard',
      text: '选项卡'
    }, {
      value: 'date',
      text: Formdict['model.form.dateday']
    }, {
      value: 'datemonth',
      text: Formdict['model.form.datemonth']
    }]
    if (!['text', 'checkcard', 'date', 'datemonth'].includes(card.type)) {
      card.type = 'text'
    }
  } else {
    typeOptions = [{
      value: 'text',
      text: Formdict['model.form.text']
    }, {
      value: 'select',
      text: Formdict['model.form.select']
    }, {
      value: 'multiselect',
      text: Formdict['model.form.multiselect']
    }, {
      value: 'link',
      text: Formdict['model.form.link']
    }, {
      value: 'checkcard',
      text: '选项卡'
    }, {
      value: 'date',
      text: Formdict['model.form.dateday']
    }, {
      value: 'dateweek',
      text: Formdict['model.form.dateweek']
    }, {
      value: 'datemonth',
      text: Formdict['model.form.datemonth']
    }, {
      value: 'daterange',
      text: Formdict['model.form.daterange']
    }, {
      value: 'group',
      text: Formdict['model.form.dategroup']
    }]
  }
  return [
    {
      type: 'text',
@@ -322,34 +375,7 @@
      label: Formdict['model.form.type'],
      initVal: card.type,
      required: true,
      options: [{
        value: 'text',
        text: Formdict['model.form.text']
      }, {
        value: 'select',
        text: Formdict['model.form.select']
      }, {
        value: 'multiselect',
        text: Formdict['model.form.multiselect']
      }, {
        value: 'link',
        text: Formdict['model.form.link']
      }, {
        value: 'date',
        text: Formdict['model.form.dateday']
      }, {
        value: 'dateweek',
        text: Formdict['model.form.dateweek']
      }, {
        value: 'datemonth',
        text: Formdict['model.form.datemonth']
      }, {
        value: 'daterange',
        text: Formdict['model.form.daterange']
      }, {
        value: 'group',
        text: Formdict['model.form.dategroup']
      }]
      options: typeOptions
    },
    {
      type: 'text',
@@ -395,6 +421,75 @@
      }]
    },
    {
      type: 'radio',
      key: 'display',
      label: '显示',
      initVal: card.display || 'text',
      required: true,
      options: [{
        value: 'text',
        text: '文本'
      }, {
        value: 'picture',
        text: '图片'
      }]
    },
    {
      type: 'number',
      key: 'width',
      min: 1,
      max: 24,
      precision: 0,
      label: '卡片宽度',
      initVal: card.width || 4,
      tooltip: '栅格布局,每行等分为24列。',
      required: true
    },
    {
      type: 'text',
      key: 'cardValField',
      label: Formdict['header.form.valueField'],
      initVal: card.cardValField || 'Value',
      required: true,
      readonly: false
    },
    {
      type: 'text',
      key: 'urlField',
      label: '地址字段',
      initVal: card.urlField || '',
      required: true,
      readonly: false
    },
    {
      type: 'radio',
      key: 'picratio',
      label: '图片比例',
      initVal: card.picratio || '1:1',
      required: true,
      options: [{
        value: '1:1',
        text: '1:1'
      }, {
        value: '3:2',
        text: '3:2'
      }, {
        value: '4:3',
        text: '4:3'
      }, {
        value: '16:9',
        text: '16:9'
      }]
    },
    {
      type: 'fields',
      key: 'fields',
      label: '字段集',
      initVal: card.fields || [],
      required: true,
      readonly: false
    },
    {
      type: 'textarea',
      key: 'dataSource',
      label: Formdict['header.form.datasource'],
@@ -405,7 +500,7 @@
    {
      type: 'options',
      key: 'options',
      label: '',
      label: '选项',
      initVal: card.options || [],
      required: true,
      readonly: false
@@ -531,6 +626,20 @@
    },
    {
      type: 'radio',
      key: 'multiple',
      label: '可多选',
      initVal: card.multiple || 'false',
      required: true,
      options: [{
        value: 'true',
        text: '是'
      }, {
        value: 'false',
        text: '否'
      }]
    },
    {
      type: 'radio',
      key: 'required',
      label: Formdict['model.required'],
      initVal: card.required || 'false',
@@ -596,6 +705,20 @@
      }]
    },
    {
      type: 'color',
      key: 'backgroundColor',
      label: '背景色',
      initVal: card.backgroundColor || '',
      required: false
    },
    {
      type: 'color',
      key: 'borderColor',
      label: '边框颜色',
      initVal: card.borderColor || '',
      required: false
    },
    {
      type: 'multiselect',
      key: 'blacklist',
      label: Formdict['header.form.blacklist'],
@@ -615,6 +738,8 @@
 * @param {*} type           按钮类型,用于区分可选的打开方式
 */
export function getActionForm (card, functip, config, usefulFields, type, menulist = [], printTemps = []) {
  let columns = (config.columns || []).filter(col => col.field)
  let opentypes = [
    {
      value: 'pop',
@@ -1125,6 +1250,23 @@
        value: 'false',
        text: '非必填'
      }]
    },
    {
      type: 'select',
      key: 'controlField',
      label: '控制字段',
      tooltip: '禁用控制字段,可根据数据控制按钮是否禁用。',
      initVal: card.controlField || '',
      required: false,
      options: [{label: '无', field: ''}, ...columns]
    },
    {
      type: 'text',
      key: 'controlVal',
      label: '控制值',
      tooltip: '当选择控制字段,且字段值与控制值相等时,按钮会禁用,多个值用逗号分隔。',
      initVal: card.controlVal || '',
      required: false
    }
  ]
}
@@ -1908,6 +2050,7 @@
 * @param {*} subtable        // 是否为子表表单
 */
export function getModalForm (card, inputfields = [], tabfields = [], linkableFields, linksupFields, subtable = false) {
  let appType = sessionStorage.getItem('appType')
  let roleList = sessionStorage.getItem('sysRoles')
  if (roleList) {
    try {
@@ -1926,10 +2069,118 @@
    roleList = []
  }
  
  let _openType = []
  let _openType = [{
    value: 'text',
    text: Formdict['model.form.text']
  }, {
    value: 'number',
    text: Formdict['model.form.number']
  }, {
    value: 'select',
    text: Formdict['model.form.select']
  }, {
    value: 'multiselect',
    text: Formdict['model.form.multiselect']
  }, {
    value: 'link',
    text: Formdict['model.form.link']
  }, {
    value: 'switch',
    text: '开关'
  }, {
    value: 'checkbox',
    text: '多选框'
  }, {
    value: 'radio',
    text: '单选框'
  }, {
    value: 'checkcard',
    text: '选项卡'
  }, {
    value: 'fileupload',
    text: Formdict['header.form.fileupload']
  }, {
    value: 'date',
    text: Formdict['model.form.dateday']
  }, {
    value: 'datemonth',
    text: Formdict['model.form.datemonth']
  }, {
    value: 'datetime',
    text: Formdict['model.form.datetime']
  }, {
    value: 'textarea',
    text: Formdict['model.form.textarea']
  }, {
    value: 'color',
    text: Formdict['model.form.color']
  }, {
    value: 'brafteditor',
    text: '富文本'
  }, {
    value: 'funcvar',
    text: Formdict['header.form.funcvar']
  }, {
    value: 'hint',
    text: '提示'
  }, {
    value: 'split',
    text: '分隔线'
  }]
  let _fieldlength = 50
  if (subtable) {
  if (appType === 'mob') {
    _openType = [{
      value: 'text',
      text: Formdict['model.form.text']
    }, {
      value: 'number',
      text: Formdict['model.form.number']
    }, {
      value: 'select',
      text: '选择器'
    }, {
      value: 'link',
      text: Formdict['model.form.link']
    }, {
      value: 'switch',
      text: '开关'
    }, {
      value: 'checkbox',
      text: '多选框'
    }, {
      value: 'radio',
      text: '单选框'
    }, {
      value: 'checkcard',
      text: '选项卡'
    }, {
      value: 'fileupload',
      text: Formdict['header.form.fileupload']
    }, {
      value: 'date',
      text: Formdict['model.form.dateday']
    }, {
      value: 'datemonth',
      text: Formdict['model.form.datemonth']
    }, {
      value: 'datetime',
      text: Formdict['model.form.datetime']
    }, {
      value: 'textarea',
      text: Formdict['model.form.textarea']
    }, {
      value: 'funcvar',
      text: Formdict['header.form.funcvar']
    }, {
      value: 'hint',
      text: '提示'
    }, {
      value: 'split',
      text: '分隔线'
    }]
  } else if (subtable) {
    _openType.push({
      value: 'linkMain',
      text: Formdict['header.form.linkMain']
@@ -1965,65 +2216,7 @@
      label: Formdict['model.form.type'],
      initVal: card.type,
      required: true,
      options: [{
        value: 'text',
        text: Formdict['model.form.text']
      }, {
        value: 'number',
        text: Formdict['model.form.number']
      }, {
        value: 'select',
        text: Formdict['model.form.select']
      }, {
        value: 'multiselect',
        text: Formdict['model.form.multiselect']
      }, {
        value: 'link',
        text: Formdict['model.form.link']
      }, {
        value: 'switch',
        text: '开关'
      }, {
        value: 'checkbox',
        text: '多选框'
      }, {
        value: 'radio',
        text: '单选框'
      }, {
        value: 'checkcard',
        text: '选项卡'
      }, {
        value: 'fileupload',
        text: Formdict['header.form.fileupload']
      }, {
        value: 'date',
        text: Formdict['model.form.dateday']
      }, {
        value: 'datemonth',
        text: Formdict['model.form.datemonth']
      }, {
        value: 'datetime',
        text: Formdict['model.form.datetime']
      }, {
        value: 'textarea',
        text: Formdict['model.form.textarea']
      }, {
        value: 'color',
        text: Formdict['model.form.color']
      }, {
        value: 'brafteditor',
        text: '富文本'
      }, {
        value: 'funcvar',
        text: Formdict['header.form.funcvar']
      }, {
        value: 'hint',
        text: '提示'
      }, {
        value: 'split',
        text: '分隔线'
      },
      ..._openType]
      options: _openType
    },
    {
      type: 'text',
@@ -2060,14 +2253,16 @@
      key: 'openText',
      label: '开启提示',
      initVal: card.openText || '',
      required: false
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'text',
      key: 'closeText',
      label: '关闭提示',
      initVal: card.closeText || '',
      required: false
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'radio',
@@ -2279,11 +2474,12 @@
    {
      type: 'number',
      key: 'maxRows',
      min: 2,
      min: 1,
      max: 100,
      precision: 0,
      label: Formdict['header.form.maxRows'],
      initVal: card.maxRows || 6,
      label: appType === 'mob' ? '行数' : Formdict['header.form.maxRows'],
      tooltip: appType === 'mob' ? '行数为空时,高度自适应' : '',
      initVal: card.maxRows || (appType === 'mob' ? '' : 6),
      required: false
    },
    {
@@ -2309,26 +2505,27 @@
      type: 'select',
      key: 'fileType',
      label: '显示方式',
      initVal: card.fileType || 'text',
      initVal: card.fileType || (appType === 'mob' ? 'picture-card' : 'text'),
      options: [{
        value: 'text',
        text: '文件'
      }, {
        value: 'picture',
        text: '图文信息'
      }, {
        value: 'picture-card',
        text: '图片卡'
      }, {
        value: 'text',
        text: '文件'
      }]
    },
    {
      type: 'number',
      key: 'maxfile',
      min: 1,
      max: 1000000,
      min: 0,
      max: 1000,
      precision: 0,
      label: '最大文件数',
      initVal: card.maxfile || '',
      tooltip: '等于0时不做限制。',
      required: false
    },
    {
@@ -2398,6 +2595,34 @@
    },
    {
      type: 'radio',
      key: 'cursor',
      label: '光标',
      initVal: card.cursor || 'left',
      options: [{
        value: 'right',
        text: '右对齐'
      }, {
        value: 'left',
        text: '左对齐'
      }],
      forbid: appType !== 'mob'
    },
    {
      type: 'radio',
      key: 'scan',
      label: '扫码',
      initVal: card.scan || 'false',
      options: [{
        value: 'true',
        text: '启用'
      }, {
        value: 'false',
        text: '不启用'
      }],
      forbid: appType !== 'mob'
    },
    {
      type: 'radio',
      key: 'readin',
      label: Formdict['header.form.readin'],
      tooltip: Formdict['header.form.readin.tooltip'],
@@ -2425,6 +2650,20 @@
      }]
    },
    {
      type: 'color',
      key: 'backgroundColor',
      label: '背景色',
      initVal: card.backgroundColor || '',
      required: false
    },
    {
      type: 'color',
      key: 'borderColor',
      label: '边框颜色',
      initVal: card.borderColor || '',
      required: false
    },
    {
      type: 'radio',
      key: 'declareType',
      label: '数据类型',
@@ -2439,6 +2678,20 @@
      }]
    },
    {
      type: 'radio',
      key: 'mode',
      label: '模式',
      initVal: card.mode || 'picker',
      options: [{
        value: 'picker',
        text: '选择器'
      }, {
        value: 'calendar',
        text: '日历'
      }],
      forbid: appType !== 'mob'
    },
    {
      type: 'number',
      key: 'span',
      min: 1,
@@ -2447,7 +2700,8 @@
      label: '表单宽度',
      initVal: card.span || (['textarea', 'hint', 'checkcard', 'brafteditor'].includes(card.type) ? 24 : 12),
      tooltip: '栅格布局整行24等分。',
      required: true
      required: true,
      forbid: appType === 'mob'
    },
    {
      type: 'number',
@@ -2458,7 +2712,53 @@
      label: '名称宽度',
      initVal: card.labelwidth || 33.3,
      tooltip: '名称占据表单宽度的百分比。注:存在多列表单时,当前表单如果想要占据整行可参照以下比例,两列(16.2)、三列(10.5)、四列(7.7)',
      required: true,
      forbid: appType === 'mob'
    },
    {
      type: 'radio',
      key: 'compress',
      label: '压缩',
      initVal: card.compress || 'false',
      tooltip: '文件压缩必须为图片,图片格式为jpg、png、gif 或 jpeg',
      options: [{
        value: 'true',
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['model.false']
      }]
    },
    {
      type: 'number',
      key: 'limit',
      min: 0.01,
      max: 1000,
      precision: 2,
      label: '起点(M)',
      initVal: card.limit || 2,
      tooltip: '压缩起点,小于起点值的文件不进行压缩。',
      required: true
    },
    {
      type: 'textarea',
      key: 'rduri',
      label: '转存接口',
      rows: 1,
      initVal: card.rduri || '',
      tooltip: '图片转存在同一单点服务器下的其他业务系统。',
      required: false,
      readonly: false
    },
    {
      type: 'textarea',
      key: 'proRduri',
      label: '正式接口',
      rows: 1,
      initVal: card.proRduri || '',
      tooltip: '正式系统转存接口,图片转存在同一单点服务器下的其他业务系统。',
      required: false,
      readonly: false
    },
    {
      type: 'text',
@@ -2497,6 +2797,21 @@
      }]
    },
    {
      type: 'radio',
      key: 'count',
      label: '计数功能',
      initVal: card.count || 'false',
      tooltip: '显示输入的字符数,设置行数时生效,注:加密传输时最大值与字段长度不等。',
      options: [{
        value: 'true',
        text: '开启'
      }, {
        value: 'false',
        text: '关闭'
      }],
      forbid: appType !== 'mob'
    },
    {
      type: 'select',
      key: 'supField',
      label: '上级表单',
@@ -2521,7 +2836,8 @@
      label: '悬浮提示',
      tooltip: '鼠标悬浮于提示文字上方时,显示提示信息。',
      initVal: card.tooltip || '',
      required: false
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'text',
@@ -2529,7 +2845,8 @@
      label: '底部提示',
      tooltip: '显示于表单底部。',
      initVal: card.extra || '',
      required: false
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'text',
@@ -2568,7 +2885,7 @@
      type: 'multiselect',
      key: 'linkSubField',
      label: Formdict['model.form.linkform'],
      tooltip: '在切换选项时会把信息自动填入关联的表单(文本或数字表单)中。',
      tooltip: '在切换选项时会把信息自动填入关联的表单(文本或数字表单)中。注:使用选项卡且设为可多选时无效。',
      initVal: card.linkSubField || [],
      options: inputfields
    },