CustomerInfo.js
5.65 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/* eslint-disable array-callback-return,no-undef */
import React, { Component } from 'react';
import { Form } from '@ant-design/compatible';
// import '@ant-design/compatible/assets/index.css';
import { Layout, Tabs, Spin, Avatar } from 'antd-v4';
import styles from '../../index.less';
import Toolbar from '../Common/ToolBar/ToolBarNew';
import * as commonFunc from '../Common/commonFunc';
import CommonBase from '../Common/CommonBase';
import CommonElementEvent from '../Common/CommonElementEvent';
import StaticEditTable from '../Common/CommonTable';/* 可编辑表格 */
import CommonView from '../Common/CommonView';
import * as commonBusiness from '../Common/commonBusiness';
import * as commonUtils from '../../utils/utils';/* 单据业务功能 */
const { Header, Content } = Layout;
const { TabPane } = Tabs;
class CustomerInfoComponent extends Component {
constructor(props) {
super(props);
this.state = {
};
this.form = {}; /* 表单对象 */
}
onTabChange = (key) => {
this.props.onSaveState({ activeKey: key });
};
render() {
const { pageLoading } = this.props;
return (
<div>
<Spin spinning={pageLoading}>
<div>
<CustomerComponent
{...this.props}
{...this.state}
onTabChange={this.onTabChange}
/>
</div>
</Spin>
</div>
);
}
}
const CustomerComponent = Form.create({
mapPropsToFields(props) {
const { masterData } = props;
const obj = commonFunc.mapPropsToFields(masterData, Form);
return obj;
},
})((props) => {
const {
form, onReturnForm, AutoTableHeight, app, masterConfig,
} = props;
/* 回带表单 */
onReturnForm(form);
const masterShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '') : [];
const tableConfigTypeArr = [];
masterShowConfig.map((child) => {
if (child.sControlName.indexOf('_') > -1) {
const tableType = child.sControlName.split('_')[1];
const isIndex = tableConfigTypeArr.findIndex(item => item === tableType);
if (isIndex === -1) {
tableConfigTypeArr.push(child);
}
}
});
const firstTableConfigTypeIndex = commonUtils.isNotEmptyArr(tableConfigTypeArr) ? tableConfigTypeArr[0].sControlName.replace(/[^\d]/g, ' ') : '0';
const tabContact = commonFunc.showMessage(app.commonConst, 'tabContact');/* 联系人 */
const tabAddress = commonFunc.showMessage(app.commonConst, 'tabAddress');/* 地址 */
const tabEleCustomerFinance = commonFunc.showMessage(app.commonConst, 'tabEleCustomerFinance');/* 财务 */
return (
<Form>
<Layout>
<Header className={styles.header}>
<Toolbar {...props} />
</Header>
<Layout className={`${styles.clayout} ${styles.setHeight}`}>
<Content className={styles.content}>
<div className="bill-search-group">
<CommonView {...props} />
</div>
<div id="slaveTabs" className={`${styles.bShow} ${styles.slaveTabHight}`} >
<div>
<Avatar src={props.imgSrc} />
</div>
<Tabs
onChange={props.onTabChange}
activeKey={props.activeKey === undefined ? '2' : props.activeKey}
className={`${styles.slaveTabs} basicInfo`}
tabBarStyle={{ margin: '0 10px' }}
>
<TabPane tab={tabContact} key={2} className="xly-bill-list" style={{ height: `calc( ${AutoTableHeight} - 105px)` }}>
<div className="TabPaneStyle">
<StaticEditTable {...commonBusiness.getTableTypes('contact', props)} footer="hidden" setOpterationColumn="Y" />
</div>
</TabPane>
<TabPane tab={tabAddress} key={3} className="xly-bill-list" style={{ height: `calc( ${AutoTableHeight} - 105px)` }}>
<div className="TabPaneStyle">
<StaticEditTable {...commonBusiness.getTableTypes('address', props)} footer="hidden" setOpterationColumn="Y" />
</div>
</TabPane>
{
commonUtils.isNotEmptyArr(tableConfigTypeArr) ?
<TabPane
tab={tabEleCustomerFinance}
key={firstTableConfigTypeIndex}
className="xly-bill-list"
style={{ height: AutoTableHeight }}
>
{
commonUtils.isNotEmptyArr(tableConfigTypeArr) ?
tableConfigTypeArr.map((item) => {
// // 匹配数字
// const num = item.sControlName.replace(/[^\d]/g, ' ');
const selfControl = item.sControlName.split('_')[1];
return (
<div className="bill-search-group">
<CommonView
{...props}
// 使高度和从表高度一直
// isAutoHeight="ture"
tableConfigType={selfControl}
tableConfigTypeArr={tableConfigTypeArr}
/>
</div>);
})
: ''
}
</TabPane> : ''
}
</Tabs>
</div>
</Content>
</Layout>
</Layout>
</Form>
);
});
export default CommonBase(CommonElementEvent(CustomerInfoComponent));