CommobileView.js
2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* Created by mar105 on 2019-02-27.
*/
/* eslint-disable object-curly-newline,prefer-destructuring */
import React, { Component } from 'react';
import { List } from 'antd-mobile';
import ShowType from './CommobileComponent';
import * as commonUtils from '../../utils/utils'; /* 通用方法 */
export default class CommobileView extends Component {
shouldComponentUpdate(nextProps) {
const { masterData, enabled } = this.props;
return masterData !== nextProps.masterData || enabled !== nextProps.enabled;
}
render() {
const { masterConfig, sModelsId, enabled, sUseInfo, app } = this.props;
let { masterData } = this.props;
masterData = masterData === undefined ? {} : masterData;
const masterShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '') : [];
const formItemLayout = { labelCol: { span: 2 }, wrapperCol: { span: 18 } };
return (
<List>
{
masterShowConfig.map((child) => {
const sMemo = child.sName.toLowerCase().endsWith('memo');
// sUseInfo是指被其他单据调用,或者被审核
let enabledNew = (enabled && !child.bReadonly && !child.specialControl && commonUtils.isEmpty(sUseInfo));
if (child.iTag === 1) {
enabledNew = false;
} else if (child.iTag === 3) {
enabledNew = true;
}
const showTypeProps = {
app,
record: masterData,
name: 'master',
form: this.props.form,
formId: sModelsId,
getSqlDropDownData: this.props.getSqlDropDownData,
getSqlCondition: this.props.getSqlCondition,
handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
getFloatNum: this.props.getFloatNum,
getDateFormat: this.props.getDateFormat,
onChange: this.props.onChange,
showConfig: child,
formItemLayout: sMemo ? formItemLayout : {},
textArea: sMemo,
enabled: enabledNew,
dataValue: masterData[child.sName],
bTable: false,
onFilterDropDownData: this.props.onFilterDropDownData,
onSaveState: this.props.onSaveState,
};
return (
<ShowType {...showTypeProps} />
);
})
}
</List>
);
}
}