| | |
| | | values.$fixed = card.$fixed || false |
| | | |
| | | if (card.OpenType === 'excelOut' && values.OpenType === 'excelIn') { |
| | | if (values.verify && values.verify.columns && values.verify.columns.length > 0) { |
| | | values.verify.columns = values.verify.columns.map(col => { |
| | | values.verify = {columns: [], scripts: [], sheet: 'Sheet1', default: 'true', range: 1, uniques: []} |
| | | if (card.verify && card.verify.columns) { |
| | | values.verify.columns = card.verify.columns.map(col => { |
| | | col.required = col.required || 'true' |
| | | col.type = col.type || 'Nvarchar(50)' |
| | | col.import = col.import || 'true' |
| | | col.import = 'true' |
| | | |
| | | if (col.type === 'text' || col.type === 'image') { |
| | | col.type = 'Nvarchar(50)' |
| | |
| | | return col |
| | | }) |
| | | |
| | | values.verify.sheet = values.verify.sheet || 'Sheet1' |
| | | } |
| | | |
| | | if (values.verify) { |
| | | values.verify.scripts = [] |
| | | values.verify.sheet = card.verify.sheet || 'Sheet1' |
| | | } |
| | | } else if (card.OpenType === 'excelIn' && values.OpenType === 'excelOut') { |
| | | if (values.verify && values.verify.columns && values.verify.columns.length > 0) { |
| | | values.verify.columns = values.verify.columns.map(col => { |
| | | values.verify = {columns: [], scripts: [], dataType: 'default'} |
| | | if (card.verify && card.verify.columns) { |
| | | values.verify.columns = card.verify.columns.map(col => { |
| | | col.type = col.type || 'text' |
| | | col.output = col.output || 'true' |
| | | col.required = col.required || 'false' |
| | |
| | | |
| | | return col |
| | | }) |
| | | } |
| | | |
| | | if (values.verify) { |
| | | values.verify.scripts = [] |
| | | } |
| | | } |
| | | |
| | |
| | | onImportExcel = file => { |
| | | const { btn } = this.props |
| | | |
| | | let columns = btn.verify.columns.map(option => option.Column) |
| | | let btnColumns = btn.verify.columns.filter(option => option.import !== 'init') |
| | | let columns = btnColumns.map(option => option.Column) |
| | | let range = btn.verify.range || 0 |
| | | |
| | | // excel数据处理 |
| | |
| | | errors = 'empty' |
| | | } else { |
| | | let iserror = false |
| | | btn.verify.columns.forEach(op => { |
| | | btnColumns.forEach(op => { |
| | | let _name = typeof(header[op.Column]) === 'string' ? header[op.Column].replace(/(^\s*|\s*$)/g, '') : header[op.Column] |
| | | let _text = op.Text ? op.Text.replace(/(^\s*|\s*$)/g, '') : op.Text |
| | | |
| | |
| | | <Radio.Group> |
| | | <Radio value="true">是</Radio> |
| | | <Radio value="false">否</Radio> |
| | | <Radio value="init">初始化</Radio> |
| | | </Radio.Group> |
| | | )} |
| | | </Form.Item> |
| | |
| | | width: '14%', |
| | | inputType: 'input', |
| | | unique: true, |
| | | strict: true, |
| | | editable: true |
| | | }, |
| | | { |
| | |
| | | dataIndex: 'import', |
| | | width: '10%', |
| | | editable: true, |
| | | inputType: 'switch', |
| | | render: (text, record) => record.import !== 'false' ? '是' : '否' |
| | | inputType: 'radio', |
| | | render: (text, record) => { |
| | | if (record.import === 'init') { |
| | | return '初始化' |
| | | } else if (record.import === 'false') { |
| | | return '否' |
| | | } |
| | | return '是' |
| | | }, |
| | | options: [ |
| | | { value: 'true', text: '是' }, |
| | | { value: 'false', text: '否' }, |
| | | { value: 'init', text: '初始化' } |
| | | ] |
| | | }, |
| | | { |
| | | title: '最小值', |
| | |
| | | const { card } = this.props |
| | | let _verify = fromJS(card.verify || {}).toJS() |
| | | let _columns = _verify.columns || [] |
| | | |
| | | delete _verify.dataresource |
| | | |
| | | // 旧数据兼容 |
| | | _columns = _columns.map(col => { |
| | |
| | | if (!err) { |
| | | let _verify = {...verify, ...values} |
| | | |
| | | let cols = _verify.columns.map(col => col.Column) |
| | | let cols = _verify.columns.map(col => col.Column.toLowerCase()) |
| | | cols = Array.from(new Set(cols)) |
| | | |
| | | if (_verify.columns.length === 0) { |
| | |
| | | return |
| | | } |
| | | } |
| | | |
| | | _verify.columns.sort((a, b) => { |
| | | if (a.import === 'init' && b.import !== 'init') { |
| | | return 1 |
| | | } else if (a.import !== 'init' && b.import === 'init') { |
| | | return -1 |
| | | } |
| | | return 0 |
| | | }) |
| | | |
| | | let _loading = false |
| | | if (this.scriptsForm && this.scriptsForm.state.editItem) { |
| | |
| | | <Button className="excel-col-add mk-red" title="清空Excel列" onClick={this.clearField}> |
| | | 清空Excel列 |
| | | </Button> |
| | | <Col style={{fontSize: '12px', color: '#757575', paddingLeft: '10px'}} span={24}>注:数值类型(int 或 decimal),内容为必填;最大值和最小值在类型为数值时有效。</Col> |
| | | <Col style={{fontSize: '12px', color: '#757575', paddingLeft: '10px'}} span={24}>注:数值类型(int 或 decimal),内容为必填;最大值和最小值在类型为数值时有效。导入-初始化:用于excel中不存在,导入时需要初始化的字段</Col> |
| | | <EditTable actions={['edit', 'move', 'copy', 'del', 'extra:required:是否必填']} type="excelcolumn" data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/> |
| | | </TabPane> |
| | | {card.intertype === 'system' ? <TabPane tab={ |
| | |
| | | let _colindex = cols[cindex] || (cindex + 1) |
| | | let _position = (_topline + lindex + 1) + '行 ' + _colindex + '列 ' |
| | | |
| | | if (/^Nvarchar/ig.test(col.type)) { |
| | | if (col.import === 'init') { |
| | | if (/^Nvarchar/ig.test(col.type)) { |
| | | val = '' |
| | | } else if (/^Decimal/ig.test(col.type) || /^int/ig.test(col.type)) { |
| | | val = 0 |
| | | } else if (col.type === 'date') { |
| | | val = '1949-10-01' |
| | | } |
| | | } else if (/^Nvarchar/ig.test(col.type)) { |
| | | val = val + '' |
| | | |
| | | if (/'/.test(val)) { |