瀏覽代碼

公司详情编辑

caipin 5 年之前
父節點
當前提交
988a11354e

+ 47 - 26
src/common/popupsCompany/company.js

@@ -1,23 +1,19 @@
 import React, { PureComponent, Fragment } from 'react';
 import { connect } from 'react-redux';
-import { Input, Cascader,message } from 'antd';
+import { Input, Cascader, message } from 'antd';
 import { actionCreators } from './store';
 
 import options from '../popups/districtOptions.json';
 
-const error = (msg) => {
-    message.error({
-      content: msg,
-    });
-  };
+
 
 class company extends PureComponent {
 
     render() {
-        const { companyDetail,natureOptions,handleModifyCompany } = this.props;
+        const { companyDetail, natureOptions, handleModifyCompany } = this.props;
         let companyDetail2 = companyDetail.toJS();
         let natureOptions2 = natureOptions.toJS();
-      
+
         return (
             <Fragment>
 
@@ -58,17 +54,18 @@ class company extends PureComponent {
                                 <div className="cldform-label">公司全称</div>
                                 <div className="cldform-control">
 
-                                {/* {false ?(<Input id="2"
+                                    {/* {false ?(<Input id="2"
                                         value={companyDetail2.companyname}
                                         onClick={() => console.log('false')}
                                         onChange={() => console.log('sdf')}
                                     />):(<div onClick={() => console.log('false')} className="cldform-contarl-box cldform-contarl-textareabox"><span>张三</span></div>)} */}
 
-                                
-
                                     <Input id="2"
                                         value={companyDetail2.companyname}
-                                        onChange={(e) => handleModifyCompany('companyname',e,'公司全称')}
+                                        onChange={(e) => handleModifyCompany({
+                                            'field': 'companyname', 'value': e.target.value
+                                            , 'key': companyDetail2.key, 'title': '公司全称'
+                                        })}
                                     />
                                 </div>
                             </div>
@@ -76,8 +73,13 @@ class company extends PureComponent {
                             <div className="cldform-item cldform-item-wauto">
                                 <div className="cldform-label">公司地区</div>
                                 <div className="cldform-control">
-                                {/* {["19","292","3066"]} */}
-                                    <Cascader options={options} value={companyDetail2.district} style={{ width: '100%' }} placeholder="公司地区" />
+                                    {/* {["19","292","3066"]} */}
+                                    <Cascader options={options} value={companyDetail2.district} style={{ width: '100%' }} placeholder="公司地区"
+                                        onChange={(e, selectedOptions) => handleModifyCompany({
+                                            'field': 'district', 'value': e
+                                            , 'key': companyDetail2.key, 'title': '公司地区', 'lable': selectedOptions
+                                        })}
+                                    />
 
                                 </div>
                             </div>
@@ -85,15 +87,21 @@ class company extends PureComponent {
                             <div className="cldform-item cldform-item-wauto">
                                 <div className="cldform-label">公司性质</div>
                                 <div className="cldform-control">
-                                    <Cascader options={natureOptions2} value={[companyDetail2.nature]} placeholder="公司性质" style={{ width: '100%' }} />
+                                    <Cascader options={natureOptions2} value={[companyDetail2.nature]} placeholder="公司性质" style={{ width: '100%' }}
+                                        onChange={(e, selectedOptions) => handleModifyCompany({
+                                            'field': 'nature', 'value': e
+                                            , 'key': companyDetail2.key, 'title': '公司性质', 'lable': selectedOptions
+                                        })}
+                                    />
                                 </div>
                             </div>
                             <div className="cldform-line"></div>
                             <div className="cldform-item">
                                 <div className="cldform-label">公司地址</div>
                                 <div className="cldform-control">
-                                    <Input id="2"
-                                        value={companyDetail2.address}
+                                    <Input id="2" value={companyDetail2.address}
+                                    onChange={(e) => handleModifyCompany({ 'field': 'address', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '公司地址' })}
                                     />
                                 </div>
                             </div>
@@ -103,6 +111,8 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.fax}
+                                        onChange={(e) => handleModifyCompany({ 'field': 'fax', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '公司传真' })}
                                     />
                                 </div>
                             </div>
@@ -111,6 +121,8 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.webservice}
+                                        onChange={(e) => handleModifyCompany({ 'field': 'webservice', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '网址' })}
                                     />
                                 </div>
                             </div>
@@ -120,6 +132,9 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.ride}
+
+                                        onChange={(e) => handleModifyCompany({ 'field': 'ride', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '乘车路线' })}
                                     />
                                 </div>
                             </div>
@@ -129,6 +144,8 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.landmarks}
+                                        onChange={(e) => handleModifyCompany({ 'field': 'landmarks', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '地标建筑' })}
                                     />
                                 </div>
                             </div>
@@ -138,6 +155,8 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.stay}
+                                        onChange={(e) => handleModifyCompany({ 'field': 'stay', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '参考住宿' })}
                                     />
                                 </div>
                             </div>
@@ -147,6 +166,8 @@ class company extends PureComponent {
                                 <div className="cldform-control">
                                     <Input id="2"
                                         value={companyDetail2.remarks}
+                                        onChange={(e) => handleModifyCompany({ 'field': 'remarks', 'value': e.target.value
+                                    , 'key': companyDetail2.key, 'title': '备注' })}
                                     />
                                 </div>
                             </div>
@@ -163,22 +184,22 @@ let delaySwitch = null;//延迟检索开关
 
 const mapStateToProps = (state) => {
     return {
-        companyDetail: state.getIn(['popups', 'companyDetail']),
-        natureOptions: state.getIn(['popups', 'natureOptions']),
+        companyDetail: state.getIn(['companyPopups', 'companyDetail']),
+        natureOptions: state.getIn(['companyPopups', 'natureOptions']),
     }
 }
 
 const mapDispathToProps = (dispatch) => {
     return {
-        handleModifyCompany(name, e,title) {
-            let value=e.target.value;
+        handleModifyCompany(parameter) {
+            dispatch(actionCreators.changeInputValue(parameter));
             if (delaySwitch != null) {
                 clearTimeout(delaySwitch);
-              }
-              delaySwitch = setTimeout(() => {
-                dispatch(actionCreators.modifyCompany(name, value,title,error));
-              }, 350);
-          },
+            }
+            delaySwitch = setTimeout(() => {
+                dispatch(actionCreators.modifyCompany(parameter));
+            }, 800);
+        },
     }
 }
 

+ 36 - 15
src/common/popupsCompany/store/actionCreators.js

@@ -4,10 +4,23 @@ import * as config from '../../../common/config.js';
 import axios from '../../../common/axios_auth.js';
 import qs from 'qs';
 
+import { message } from 'antd';
+
+const error = (msg) => {
+    message.error({
+        content: msg,
+    });
+};
+
+const success = (msg) => {
+    message.success(msg);
+};
+
+
 //获得公司详情
-export const getCompanyDetail = (key,error) => {
+export const getCompanyDetail = (key, error) => {
     return (dispatch) => {
-        axios.get(config.CLD2API + '/contact/companyDetail/'+key).then((res) => {
+        axios.get(config.CLD2API + '/contact/companyDetail/' + key).then((res) => {
             const data = res.data;
             if (data.code === 200) {
                 dispatch({
@@ -31,27 +44,35 @@ export const changeLoading = () => {
         });
     }
 }
-//
-export const modifyCompany = (name,value,title,error) => {
+
+//改变input值
+export const changeInputValue = (parameter) => {
     return (dispatch) => {
+        dispatch({
+            type: constants.CHANGE_INPUT_VALUE,
+            data: parameter,
+        });
 
-        let data = {
-            'field':name,
-            'value': value,
-        };
-        
+    }
+}
+//更新公司详情
+export const modifyCompany = (parameter) => {
+    return (dispatch) => {
+        let data = {...parameter};
         axios.post(config.CLD2API + '/contact/modifyCompany', qs.stringify(data)).then((res) => {
             const data = res.data;
             if (data.code === 200) {
-                // dispatch({
-                //     type: constants.CHANGE_COMPANY_DETAIL,
-                //     data: data.data,
-                // });
+                if(parameter.field==='district'){
+                    let result = parameter.lable.map(item => { return item.label; })
+                    success(`"${parameter.title}"已保存为"${result.join(',')}"`);
+                }else{
+                    success(`"${parameter.title}"已保存为"${parameter.value}"`);
+                }
             } else {
-                error(`更新${title}失败`);
+                error(`更新${parameter.title}失败`);
             }
         }).catch((e) => {
-            error(`更新${title}失败`);
+            error(`更新${parameter.title}失败`);
         })
     }
 }

+ 1 - 0
src/common/popupsCompany/store/constants.js

@@ -1,5 +1,6 @@
 export const CHANGE_COMPANY_DETAIL = 'popups/change_company_detail';
 export const CHANGE_COMPANYDETAIL_LOADING = 'popups/change_companydetail_loading';
+export const CHANGE_INPUT_VALUE = 'popups/change_input_value';
 
 
 

+ 21 - 29
src/common/popupsCompany/store/reducer.js

@@ -8,26 +8,27 @@ const defaultState = fromJS({
 	loading: true,
 	districtOptions: [],
 	natureOptions: [
-		{ "value": '设计', "label": "设计" }, 
-		{ "value": '造价管理', "label": "造价管理" }, 
-		{ "value": '业主', "label": "业主" }, 
-		{ "value": '交通局', "label": "交通局" }, 
-		{ "value": '公路局', "label": "公路局" }, 
-		{ "value": '审计', "label": "审计" }, 
-		{ "value": '财政', "label": "财政" }, 
-		{ "value": '审核', "label": "审核" }, 
-		{ "value": '施工', "label": "施工" }, 
-		{ "value": '咨询', "label": "咨询" }, 
-		{ "value": '招标代理', "label": "招标代理" }, 
-		{ "value": '监理', "label": "监理" }, 
-		{ "value": '学校', "label": "学校" }, 
-		{ "value": '个人', "label": "个人" }, 
-		{ "value": '合作伙伴', "label": "合作伙伴" }, 
+		{ "value": '设计', "label": "设计" },
+		{ "value": '造价管理', "label": "造价管理" },
+		{ "value": '业主', "label": "业主" },
+		{ "value": '交通局', "label": "交通局" },
+		{ "value": '公路局', "label": "公路局" },
+		{ "value": '审计', "label": "审计" },
+		{ "value": '财政', "label": "财政" },
+		{ "value": '审核', "label": "审核" },
+		{ "value": '施工', "label": "施工" },
+		{ "value": '咨询', "label": "咨询" },
+		{ "value": '招标代理', "label": "招标代理" },
+		{ "value": '监理', "label": "监理" },
+		{ "value": '学校', "label": "学校" },
+		{ "value": '个人', "label": "个人" },
+		{ "value": '合作伙伴', "label": "合作伙伴" },
 	],
 });
 
 export default (state = defaultState, action) => {
-
+	let companyDetail = state.get('companyDetail').toJS();
+	
 	switch (action.type) {
 		case constants.CHANGE_COMPANY_DETAIL:
 			return state.merge({
@@ -36,19 +37,10 @@ export default (state = defaultState, action) => {
 			});
 		case constants.CHANGE_COMPANYDETAIL_LOADING:
 			return state.set('loading', action.data);
-		// 	case constants.SEARCH_BLUR:
-		// 		return state.set('focused', false);
-		// 	case constants.CHANGE_LIST:
-		// 		return state.merge({
-		// 			list: action.data,
-		// 			totalPage: action.totalPage
-		// 		});
-		// 	case constants.MOUSE_ENTER:
-		// 		return state.set('mouseIn', true);
-		// 	case constants.MOUSE_LEAVE:
-		// 		return state.set('mouseIn', false);
-		// 	case constants.CHANGE_PAGE:
-		// 		return state.set('page', action.page);
+		case constants.CHANGE_INPUT_VALUE:
+			let condition={[action.data.field]:action.data.value};
+			Object.assign(companyDetail, condition);
+			return state.set('companyDetail', fromJS(companyDetail));
 		default:
 			return state;
 	}

+ 2 - 0
src/contact/store/reducer.js

@@ -3,6 +3,7 @@ import { reducer as clientReducer } from '../client/store';
 import { reducer as companyReducer } from '../company/store';
 import { reducer as commonContactReducer } from '../common/store';
 import { reducer as popupsReducer } from '../../common/popups/store';
+import { reducer as popupsCompanyReducer } from '../../common/popupsCompany/store';
 import { reducer as commonStore } from '../../common/store';
 
 
@@ -11,6 +12,7 @@ const reducer = combineReducers({
     client: clientReducer,
     company: companyReducer,
     popups:popupsReducer,
+    companyPopups:popupsCompanyReducer,
     common:commonStore,
 });