dev01 1 year ago
parent
commit
3281e3f729

+ 1 - 0
js/component/dataDic.js

@@ -4244,6 +4244,7 @@ module.exports = {
     { value: 1, label: "审核中", color: '#f1662f' },
     { value: 2, label: '完成', color: '#34de38' },
     { value: 3, label: '已驳回', color: '#f31212' },
+    { value: 4, label: '已删除', color: '#A9A9A9' },
   ]
 
 };

+ 45 - 1
js/component/manageCenter/financialManage/account/accountDetaillist.jsx

@@ -58,6 +58,7 @@ const AccountDetaillist = React.createClass({
           title: "类型",
           dataIndex: "type",
           key: "type",
+          width: 140,
           render: (text, record) => {
             return (
               <span>
@@ -190,7 +191,7 @@ const AccountDetaillist = React.createClass({
                       this.setState({
                         logvisible: true
                       })
-                      this.getLogData(record.mainId)
+                      this.getLogData(record.mainId || record.sonId)
                     }}>日志</Button>}
                 </div>
               </div>
@@ -512,6 +513,37 @@ const AccountDetaillist = React.createClass({
     });
   },
 
+  export() {
+    this.setState({
+      exportExecLoading: true
+    })
+    let loading = message.loading('加载中...');
+    let data = this.state.searchValues;
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/expenseAccount/detailsListExport",
+      data,
+      success: function (data) {
+        if (data.error.length === 0) {
+          this.download(data.data.data);
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(function () {
+      loading();
+      this.setState({
+        exportExecLoading: false
+      })
+    }.bind(this));
+  },
+
+  // 下载
+  download(fileName) {
+    window.location.href = globalConfig.context + "/open/download?fileName=" + fileName
+  },
 
   render() {
     const { TextArea } = Input
@@ -722,6 +754,18 @@ const AccountDetaillist = React.createClass({
               />
             </div>
           </TabPane>
+          <TabPane tab="导出" key="3">
+            <div style={{ float: "left" }}>
+              <Button
+                type="primary"
+                loading={this.state.exportPendingLoading}
+                onClick={this.export}
+                style={{ margin: 10 }}
+              >
+                导出excel
+              </Button>
+            </div>
+          </TabPane>
         </Tabs>
         <div className="patent-table">
           <Spin spinning={this.state.loading}>

+ 39 - 8
js/component/manageCenter/financialManage/account/accountDetails.jsx

@@ -137,7 +137,9 @@ class AccountDetails extends Component {
           width: "6%",
           render: (text, record) => {
             return (
-              <div>{getAccountName(text, record.typesOther)}</div>
+              <div style={{ color: record.publicReleaseType != null && "red" }}>
+                {getAccountName(text, record.typesOther)}
+              </div>
             )
           }
         },
@@ -254,16 +256,17 @@ class AccountDetails extends Component {
             let dlist = allData.sonList[i].detList
             for (var j = 0; j < dlist.length; j++) {
               let obj = dlist[j]
-              allData.sonList[0].detList[0].contractNo = allData.contractNo; // 合同编号
-              allData.sonList[0].detList[0].orderNo = allData.orderNo; // 订单号
               allData.sonList[0].detList[0].applyDepName = allData.applyDepName; // 部门
               allData.sonList[0].detList[0].remarks = allData.remarks; // 报销事由
+              dlist[0].contractNo = allData.sonList[i].contractNo; // 合同编号
+              dlist[0].orderNo = allData.sonList[i].orderNo; // 订单号
               dlist[0].releaseStart = allData.sonList[i].releaseStart;
               dlist[0].releaseEnd = allData.sonList[i].releaseEnd; // 公出时间
               dlist[0].duration = allData.sonList[i].duration;  // 费用时间
               dlist[0].districtName = allData.sonList[i].districtName; // 出差地址
               dlist[0].userNames = allData.sonList[i].userNames; // 出差企业
               dlist[0].plan = allData.sonList[i].plan; // 出差事由
+              dlist[0].publicReleaseType = allData.sonList[i].publicReleaseType; // 公出关联
               dlist[0].types = allData.sonList[i].type; // 报销类型
               dlist[0].typesOther = allData.sonList[i].typeOther;
               if (allData.sonList[i].type == 2) { // 非业务报销
@@ -561,7 +564,7 @@ class AccountDetails extends Component {
                   <div style={{ width: "100%", marginTop: 8 }}>审核日志:
                     {
                       this.state.logdataSour.map(item =>
-                        !!item.createTimeStr && <span key={item.id}>{item.auditorName + " " + item.createTimeStr + " " + item.remarks + " "}&nbsp;&nbsp;&nbsp;</span>
+                        !!item.createTimeStr && <span key={item.id}>【{item.auditorName}&nbsp;&nbsp;{item.createTimeStr}&nbsp;&nbsp;{item.remarks}】&nbsp;&nbsp;</span>
                       )
                     }
                   </div>
@@ -585,7 +588,7 @@ class AccountDetails extends Component {
                       <span>{data.totalAmount}</span>
                     </FormItem>
                   </div> */}
-                  <div className="clearfix">
+                  {/* <div className="clearfix">
                     <FormItem
 
                       {...formItemLayout}
@@ -596,7 +599,7 @@ class AccountDetails extends Component {
                         <div>{data.contractNo}</div>
                       </div>
                     </FormItem>
-                  </div>
+                  </div> */}
                   <div className="clearfix">
                     <FormItem
                       {...formItemLayout}
@@ -698,12 +701,40 @@ class AccountDetails extends Component {
                             {...formItemLayout}
                             label="报销类型"
                           >
-                            <span>
+                            <span style={{ fontWeight: "bold" }}>
                               {getAccountName(it.type, it.typeOther)}
                               {it.type == 2 && (" - " + getSecondaryAccountName(it.secondaryType, it.secondaryTypeOther))}
                             </span>
                           </FormItem>
                         </div>
+                        {
+                          !!it.publicReleaseType &&
+                          <div className="clearfix">
+                            <FormItem
+                              {...formItemLayout}
+                              label="报销来源"
+                            >
+                              <span style={{ fontWeight: "bold" }}>
+                                {["业务公出", "技术公出", "行政公出", "技术协单", "技术助手"][it.publicReleaseType]}
+                              </span>
+                            </FormItem>
+                          </div>
+                        }
+                        {
+                          !!it.contractNo ?
+                            <div className="clearfix">
+                              <FormItem
+                                {...formItemLayout}
+                                label="报销至订单"
+                              >
+                                <span style={{ fontWeight: "bold" }}>{it.contractNo}</span>
+                              </FormItem>
+                            </div>
+                            : <FormItem
+                              {...formItemLayout}
+                              label=" "
+                            ><span style={{ fontWeight: "bold" }}>报销至部门</span></FormItem>
+                        }
                         {/* 差旅费显示 */}
                         {it.type == 1 &&
                           it.detList.map(item =>
@@ -949,7 +980,7 @@ class AccountDetails extends Component {
                     </Button>
                   </div>
 
-                  {this.props.isOperate && data.examine == 1 &&
+                  {false && this.props.isOperate && data.examine == 1 &&
                     <div className="clearfix"
                       style={{ width: 500, margin: "20px auto" }}>
                       <TextArea

+ 50 - 0
js/component/manageCenter/financialManage/account/accountReview.jsx

@@ -13,6 +13,7 @@ import {
   AutoComplete,
   DatePicker,
   Modal,
+  Radio,
 } from "antd";
 import { ChooseList } from "../../order/orderNew/chooseList";
 import { ShowModal, getVehicleName, getTypeName, commonAdd, dealBigMoney } from "../../../tools"
@@ -23,11 +24,13 @@ import { accountType, accountStatus } from "@/dataDic";
 const FormItem = Form.Item;
 const { RangePicker } = DatePicker;
 const { TabPane } = Tabs;
+const RadioGroup = Radio.Group;
 
 const AccountReview = React.createClass({
 
   getInitialState() {
     return {
+      info: {},
       showDetails: false,
       data: {},
       logvisible: false,
@@ -60,6 +63,7 @@ const AccountReview = React.createClass({
           title: "类型",
           dataIndex: "type",
           key: "type",
+          width: 140,
           render: (text, record) => {
             return (
               <span>
@@ -167,6 +171,7 @@ const AccountReview = React.createClass({
                       style={{ margin: 4 }}
                       onClick={(e) => {
                         e.stopPropagation();
+                        this.getConfig(record.id)
                         this.setState({
                           visible: "adopt",
                           checkData: record,
@@ -244,6 +249,29 @@ const AccountReview = React.createClass({
     this.loadData();
   },
 
+  getConfig(id) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/expenseAccount/getDepDetails",
+      data: { id },
+      success: function (data) {
+        if (data.error.length === 0) {
+          this.setState({
+            info: data.data
+          });
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    }).always(
+      function () {
+
+      }.bind(this)
+    );
+  },
+
   // 列表接口
   loadData(pageNo) {
     const { searchValues, pagination } = this.state;
@@ -398,6 +426,12 @@ const AccountReview = React.createClass({
       message.warning("请填写审核说明~");
       return;
     }
+    if (num == 1 && this.state.info.ceoExamine == 1) {
+      if (!this.state.approval && this.state.approval != 0) {
+        message.warning("是否需要董事长审核");
+        return;
+      }
+    }
     this.setState({
       loading: true,
     });
@@ -410,6 +444,7 @@ const AccountReview = React.createClass({
         id: checkData.id,
         reason,
         status: num,//1同意 3驳回
+        approval: this.state.approval,
       },
     }).done(
       function (data) {
@@ -769,6 +804,21 @@ const AccountReview = React.createClass({
                 }}
                 placeholder="请填写审核内容"
               />
+              {
+                this.state.visible == "adopt" && this.state.info.ceoExamine == 1 &&
+                <div style={{ marginTop: 10 }}>
+                  <RadioGroup
+                    value={this.state.approval}
+                    onChange={(e) => {
+                      this.setState({
+                        approval: e.target.value
+                      })
+                    }} >
+                    <Radio value={0}>不需要董事长审核</Radio>
+                    <Radio value={1}>需要董事长审核</Radio>
+                  </RadioGroup>
+                </div>
+              }
             </div>
           </Modal>
         }

+ 3 - 1
js/component/manageCenter/financialManage/account/accountlist.jsx

@@ -58,6 +58,7 @@ const AccountList = React.createClass({
           title: "类型",
           dataIndex: "type",
           key: "type",
+          width: 140,
           render: (text, record) => {
             return (
               <span>
@@ -188,7 +189,7 @@ const AccountList = React.createClass({
                       this.setState({
                         logvisible: true
                       })
-                      this.getLogData(record.mainId)
+                      this.getLogData(record.mainId || record.id)
                     }}>日志</Button>}
                 </div>
               </div>
@@ -660,6 +661,7 @@ const AccountList = React.createClass({
                 <Option value="1">待审核</Option>
                 <Option value="2">已审核</Option>
                 <Option value="3">已驳回</Option>
+                <Option value="4">已删除</Option>
               </Select>
               <Input
                 placeholder="报销编号"

+ 562 - 124
js/component/manageCenter/set/organization/organization.jsx

@@ -7,7 +7,7 @@ import { citySelect } from '../../../NewDicProvinceList';
 import {
   getNewDiccityArr,
 } from "@/tools.js";
-import { Form, Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload, Popconfirm, AutoComplete, Tabs } from 'antd';
+import { Form, Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload, Popconfirm, AutoComplete, Tabs, Tag } from 'antd';
 import { patternOrganization, conditionOrganization } from '../../../dataDic.js';
 import { getPattern, getCondition } from '../../../tools.js';
 import { ChooseList } from "../../order/orderNew/chooseList";
@@ -275,6 +275,11 @@ const Organization = Form.create()(React.createClass({
                     hideSign: _this.state.hideSign,//显示标识
                     depNo: _this.state.depNo,//组织编号
                     approval: _this.state.approval, //是否需要特批审核
+                    expenseRetrialFinanceExamine: _this.state.expenseRetrialFinanceExamine, // 财务复审
+                    ceoExamine: _this.state.ceoExamine, // 董事长审核
+                    cfoExamine: _this.state.cfoExamine, // 财务总监审核
+                    viceCeoExamine: _this.state.viceCeoExamine, // 集团副总审核
+                    cashierExamine: _this.state.cashierExamine, // 出纳审核
                   }
                 }).done(
                   function (data) {
@@ -328,6 +333,11 @@ const Organization = Form.create()(React.createClass({
                 hideSign: _this.state.hideSign,//显示标识
                 depNo: _this.state.depNo,//组织编号
                 approval: _this.state.approval, //是否需要特批审核
+                expenseRetrialFinanceExamine: _this.state.expenseRetrialFinanceExamine, // 财务复审
+                ceoExamine: _this.state.ceoExamine, // 董事长审核
+                cfoExamine: _this.state.cfoExamine, // 财务总监审核
+                viceCeoExamine: _this.state.viceCeoExamine, // 集团副总审核
+                cashierExamine: _this.state.cashierExamine, // 出纳审核
               }
             }).done(
               function (data) {
@@ -386,6 +396,11 @@ const Organization = Form.create()(React.createClass({
                 hideSign: _this.state.hideSign,//显示标识
                 depNo: _this.state.depNo,//组织编号
                 approval: _this.state.approval, //是否需要特批审核
+                expenseRetrialFinanceExamine: _this.state.expenseRetrialFinanceExamine, // 财务复审
+                ceoExamine: _this.state.ceoExamine, // 董事长审核
+                cfoExamine: _this.state.cfoExamine, // 财务总监审核
+                viceCeoExamine: _this.state.viceCeoExamine, // 集团副总审核
+                cashierExamine: _this.state.cashierExamine, // 出纳审核
               }
             }).done(
               function (data) {
@@ -439,7 +454,12 @@ const Organization = Form.create()(React.createClass({
             workingHoursType: _this.state.workingHoursType,
             hideSign: _this.state.hideSign,//显示标识
             depNo: _this.state.depNo,//组织编号
-            approval: _this.state.approval,
+            approval: _this.state.approval, // 是否需要特批
+            expenseRetrialFinanceExamine: _this.state.expenseRetrialFinanceExamine, // 财务复审
+            ceoExamine: _this.state.ceoExamine, // 董事长审核
+            cfoExamine: _this.state.cfoExamine, // 财务总监审核
+            viceCeoExamine: _this.state.viceCeoExamine, // 集团副总审核
+            cashierExamine: _this.state.cashierExamine, // 出纳审核
           }
         }).done(
           function (data) {
@@ -500,6 +520,16 @@ const Organization = Form.create()(React.createClass({
             accountrName: thisdata.expenseFinanceName,
             hideSign: thisdata.hideSign,//显示标识
             approval: thisdata.approval, // 特批审核
+            expenseRetrialFinanceExamine: thisdata.expenseRetrialFinanceExamine, //财务复审
+            expenseRetrialFinanceExamineList: thisdata.expenseRetrialFinanceExamineList,
+            ceoExamine: thisdata.ceoExamine, //董事长审核
+            ceoExamineList: thisdata.ceoExamineList,
+            cfoExamine: thisdata.cfoExamine, //财务总监审核
+            cfoExamineList: thisdata.cfoExamineList,
+            viceCeoExamine: thisdata.viceCeoExamine, //集团副总审核
+            viceCeoExamineList: thisdata.viceCeoExamineList,
+            cashierExamine: thisdata.cashierExamine, //出纳审核
+            cashierExamineList: thisdata.cashierExamineList,
           });
           this.setState({
             editId: thisdata.id, //每一条记录的ID
@@ -527,6 +557,16 @@ const Organization = Form.create()(React.createClass({
             abbreviation: thisdata.abbreviation,
             hideSign: thisdata.hideSign,//显示标识
             approval: thisdata.approval, // 特批审核
+            expenseRetrialFinanceExamine: thisdata.expenseRetrialFinanceExamine, //财务复审
+            expenseRetrialFinanceExamineList: thisdata.expenseRetrialFinanceExamineList,
+            ceoExamine: thisdata.ceoExamine, //董事长审核
+            ceoExamineList: thisdata.ceoExamineList,
+            cfoExamine: thisdata.cfoExamine, //财务总监审核
+            cfoExamineList: thisdata.cfoExamineList,
+            viceCeoExamine: thisdata.viceCeoExamine, //集团副总审核
+            viceCeoExamineList: thisdata.viceCeoExamineList,
+            cashierExamine: thisdata.cashierExamine, //出纳审核
+            cashierExamineList: thisdata.cashierExamineList,
           });
         } else {
           message.warning(data.error[0].message);
@@ -625,7 +665,6 @@ const Organization = Form.create()(React.createClass({
       }
     });
   },
-
   //主管初始加载(自动补全)
   supervisor(e) {
     $.ajax({
@@ -654,6 +693,23 @@ const Organization = Form.create()(React.createClass({
       });
     }.bind(this));
   },
+  selectAutosel(value) {
+    this.setState({
+      adminName: value
+    })
+    let theType = '';
+    let contactLists = this.state.customerArr || [];
+    if (value) {
+      contactLists.map(function (item) {
+        if (item.name == value.toString()) {
+          theType = item.id;
+        }
+      });
+    }
+    this.setState({
+      aid: theType
+    })
+  },
   //上级主管输入框失去焦点是判断客户是否存在
   selectAuto(value, options) {
     this.setState({
@@ -759,6 +815,14 @@ const Organization = Form.create()(React.createClass({
       theTypes3: theType,
     })
   },
+  httpChangesel(e) {
+    if (e.length >= 1) {
+      this.supervisor(e);
+    }
+    this.setState({
+      adminName: e
+    })
+  },
   //值改变时请求客户名称
   httpChange(e) {
     if (e.length >= 1) {
@@ -869,6 +933,114 @@ const Organization = Form.create()(React.createClass({
       changeList: newArr
     });
   },
+
+
+  handleOk() {
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + '/api/admin/expenseConfig/addDeTails',
+      data: {
+        type: this.state.addtype, // 类型
+        aid: this.state.aid, // 管理员编号
+        adminName: this.state.adminName, // 管理员名称
+        depId: this.state.editId, // 部门编号
+      }
+    }).done(function (data) {
+      this.setState({
+        loading: false
+      });
+      if (!data.error.length) {
+        message.success('添加成功!');
+        let list = this.state.addtype == 1
+          ? this.state.expenseRetrialFinanceExamineList : this.state.addtype == 2
+            ? this.state.ceoExamineList : this.state.addtype == 3
+              ? this.state.cfoExamineList : this.state.addtype == 4
+                ? this.state.viceCeoExamineList : this.state.addtype == 5
+                  ? this.state.cashierExamineList : []
+        list.push(data.data)
+        if (this.state.addtype == 1) {
+          this.setState({
+            expenseRetrialFinanceExamineList: list
+          })
+        } else if (this.state.addtype == 2) {
+          this.setState({
+            ceoExamineList: list
+          })
+        } if (this.state.addtype == 3) {
+          this.setState({
+            cfoExamineList: list
+          })
+        } if (this.state.addtype == 4) {
+          this.setState({
+            viceCeoExamineList: list
+          })
+        } if (this.state.addtype == 5) {
+          this.setState({
+            cashierExamineList: list
+          })
+        }
+        this.handleNo()
+      } else {
+        message.warning(data.error[0].message);
+      }
+    }.bind(this));
+  },
+
+  handleNo() {
+    this.setState({
+      addtype: -1,
+      aid: "",
+      adminName: "",
+    })
+  },
+
+  deleteDeTails(type, dataList, id) {
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + '/api/admin/expenseConfig/deleteDeTails',
+      data: {
+        id, // 
+      }
+    }).done(function (data) {
+      this.setState({
+        loading: false
+      });
+      if (!data.error.length) {
+        message.success('移除成功!');
+        let lx = dataList.findIndex(item => item.id === id)
+        dataList.splice(lx, 1)
+        if (type == 1) {
+          this.setState({
+            expenseRetrialFinanceExamineList: dataList
+          })
+        } else if (type == 2) {
+          this.setState({
+            ceoExamineList: dataList
+          })
+        } if (type == 3) {
+          this.setState({
+            cfoExamineList: dataList
+          })
+        } if (type == 4) {
+          this.setState({
+            viceCeoExamineList: dataList
+          })
+        } if (type == 5) {
+          this.setState({
+            cashierExamineList: dataList
+          })
+        }
+      } else {
+        message.warning(data.error[0].message);
+      }
+    }.bind(this));
+  },
+
+
   render() {
     const FormItem = Form.Item
     const rowSelection = {
@@ -886,8 +1058,8 @@ const Organization = Form.create()(React.createClass({
       },
     };
     const formItemLayout = {
-      labelCol: { span: 8 },
-      wrapperCol: { span: 14 },
+      labelCol: { span: 6 },
+      wrapperCol: { span: 18 },
     };
     const { getFieldDecorator } = this.props.form;
     const hasSelected = this.state.selectedRowKeys.length > 0;
@@ -1125,11 +1297,10 @@ const Organization = Form.create()(React.createClass({
             </Modal>
           </div>
 
-
           <div className="patent-desc">
             <Modal maskClosable={false} visible={this.state.editvisible}
               onOk={this.checkPatentProcess} onCancel={this.edithandleCancel}
-              width='600px'
+              width='1000px'
               title='编辑组织'
               footer=''
               className="admin-desc-content">
@@ -1137,17 +1308,34 @@ const Organization = Form.create()(React.createClass({
                 <Spin spinning={this.state.loading}>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="组织名称" >
                       <Input placeholder="组织名称" value={this.state.editName}
+                        style={{ width: '70%' }}
                         onChange={(e) => { this.setState({ editName: e.target.value }) }} />
                     </FormItem>
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="特批审核"
+                    >
+                      <Select placeholder="特批审核"
+                        value={this.state.approval}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ approval: e }) }}
+                        required="required"
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <span style={{ color: "red" }}> 订单/合同特批</span>
+                    </FormItem>
                   </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="负责人"
                     >
                       <AutoComplete
@@ -1161,35 +1349,16 @@ const Organization = Form.create()(React.createClass({
                         filterOption={true}
                         // onBlur={this.blurChange}
                         onSelect={this.selectAuto}
-                      // style={{ width: '95%' }}
+                        style={{ width: '70%' }}
                       >
                         <Input />
                       </AutoComplete>
                       {/* <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span> */}
                     </FormItem>
-                  </div>
 
-                  <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
-                      label="特批审核"
-                    >
-                      <Select placeholder="特批审核"
-                        value={this.state.approval}
-                        onChange={(e) => { this.setState({ approval: e }) }}
-                        required="required"
-                      >
-                        <Option value={0}>不需要</Option>
-                        <Option value={1}>需要</Option>
-                      </Select>
-                    </FormItem>
-                  </div>
-
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="审核人"
                     >
                       <AutoComplete
@@ -1204,6 +1373,7 @@ const Organization = Form.create()(React.createClass({
                         filterOption={true}
                         // onBlur={this.blurChange}
                         onSelect={this.selectAuto1}
+                        style={{ width: '70%' }}
                       >
                         <Input />
                       </AutoComplete>
@@ -1213,11 +1383,14 @@ const Organization = Form.create()(React.createClass({
 
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="组织类型"
                     >
-                      <Select placeholder="组织类型" value={this.state.editType}
+                      <Select
+                        placeholder="组织类型"
+                        value={this.state.editType}
+                        style={{ width: '70%' }}
                         onChange={(e) => { this.setState({ editType: e }) }}>
                         {
                           patternOrganization.map(function (item) {
@@ -1226,71 +1399,10 @@ const Organization = Form.create()(React.createClass({
                         }
                       </Select>
                     </FormItem>
-                  </div>
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
-                      label="组织状态"
-                    >
-                      <Select placeholder="组织状态" value={this.state.editStatus}
-                        onChange={(e) => { this.setState({ editStatus: e }) }}>
-                        {
-                          conditionOrganization.map(function (item) {
-                            return <Select.Option key={item.value} >{item.key}</Select.Option>
-                          })
-                        }
-                      </Select>
-                    </FormItem>
-                  </div>
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
-                      label="省份"
-                    >
-                      <Select
-                        placeholder="请选择省份"
-                        value={getNewDiccityArr(this.state.province)}
-                        onChange={e => {
-                          this.setState({ province: e });
-                        }}
-                      >
-                        {citySelect().map(function (item) {
-                          return (
-                            <Select.Option key={item.value} value={item.value}>{item.label}</Select.Option>
-                          );
-                        })}
-                      </Select>
-                    </FormItem>
-                  </div>
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
-                      label="上级组织"
-                    >
-                      <Select placeholder="请选择上级组织"
-                        value={this.state.editSuperId}
-                        onChange={(e) => { this.setState({ editSuperId: e }) }}
-                        notFoundContent="未获取到上级组织列表">
-                        {this.state.contactsOption}
-                      </Select>
-                    </FormItem>
-                  </div>
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
-                      label="缩写" >
-                      <Input placeholder="缩写" value={this.state.abbreviation}
-                        onChange={(e) => { this.setState({ abbreviation: e.target.value }) }} />
-                    </FormItem>
-                  </div>
-                  <div className="clearfix">
+
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="财务负责人"
                     >
                       <AutoComplete
@@ -1304,18 +1416,35 @@ const Organization = Form.create()(React.createClass({
                         filterOption={true}
                         // onBlur={this.blurChange}
                         onSelect={this.selectAuto2}
-                      // style={{ width: '95%' }}
+                        style={{ width: '70%' }}
                       >
                         <Input />
                       </AutoComplete>
                       {/* <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span> */}
                     </FormItem>
                   </div>
-
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
+                      label="组织状态"
+                    >
+                      <Select
+                        placeholder="组织状态"
+                        value={this.state.editStatus}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ editStatus: e }) }}>
+                        {
+                          conditionOrganization.map(function (item) {
+                            return <Select.Option key={item.value} >{item.key}</Select.Option>
+                          })
+                        }
+                      </Select>
+                    </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
                       label="财务复审"
                     >
                       <AutoComplete
@@ -1329,18 +1458,38 @@ const Organization = Form.create()(React.createClass({
                         filterOption={true}
                         onBlur={this.blurChange}
                         onSelect={this.selectAuto3}
-                      // style={{ width: '95%' }}
+                        style={{ width: '70%' }}
                       >
                         <Input />
                       </AutoComplete>
-                      {/* <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span> */}
+                      <span style={{ color: 'red' }}> 订单/合同复审</span>
                     </FormItem>
                   </div>
-
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
+                      label="省份"
+                    >
+                      <Select
+                        placeholder="请选择省份"
+                        value={getNewDiccityArr(this.state.province)}
+                        style={{ width: '70%' }}
+                        onChange={e => {
+                          this.setState({ province: e });
+                        }}
+                      >
+                        {citySelect().map(function (item) {
+                          return (
+                            <Select.Option key={item.value} value={item.value}>{item.label}</Select.Option>
+                          );
+                        })}
+                      </Select>
+                    </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
                       label="报销审核人"
                     >
                       <AutoComplete
@@ -1354,22 +1503,142 @@ const Organization = Form.create()(React.createClass({
                         filterOption={true}
                         // onBlur={this.blurChange}
                         onSelect={this.selectAuto4}
-                      // style={{ width: '95%' }}
+                        style={{ width: '70%' }}
                       >
                         <Input />
                       </AutoComplete>
                       {/* <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span> */}
                     </FormItem>
                   </div>
+                  <div className="clearfix">
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="上级组织"
+                    >
+                      <Select placeholder="请选择上级组织"
+                        value={this.state.editSuperId}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ editSuperId: e }) }}
+                        notFoundContent="未获取到上级组织列表">
+                        {this.state.contactsOption}
+                      </Select>
+                    </FormItem>
 
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="报销财务复审"
+                    >
+                      <Select placeholder="请选择"
+                        value={this.state.expenseRetrialFinanceExamine}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ expenseRetrialFinanceExamine: e }) }}
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <div>
+                        {
+                          this.state.expenseRetrialFinanceExamine == 1 &&
+                          !!this.state.expenseRetrialFinanceExamineList &&
+                          this.state.expenseRetrialFinanceExamineList.map(item =>
+                            <Popconfirm
+                              title="是否确认删除?"
+                              okText="确定"
+                              onConfirm={() => {
+                                this.deleteDeTails(1, this.state.expenseRetrialFinanceExamineList, item.id);
+                              }}
+                              cancelText="取消"
+                            >
+                              <Tag key={item.id}>
+                                {item.adminName + " "}<Icon type="close" />
+                              </Tag>
+                            </Popconfirm>
+                          )
+                        }
+                        {
+                          this.state.expenseRetrialFinanceExamine == 1 &&
+                          <Button
+                            type="primary"
+                            style={{ marginTop: 10 }}
+                            onClick={() => {
+                              this.setState({
+                                addtype: 1
+                              })
+                            }}>添加</Button>
+                        }
+                      </div>
+                    </FormItem>
+                  </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
+                      label="缩写" >
+                      <Input placeholder="缩写"
+                        value={this.state.abbreviation}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ abbreviation: e.target.value }) }} />
+                    </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="董事长特批"
+                    >
+                      <Select placeholder="请选择"
+                        value={this.state.ceoExamine}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ ceoExamine: e }) }}
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <div>
+                        {
+                          this.state.ceoExamine == 1 &&
+                          !!this.state.ceoExamineList &&
+                          this.state.ceoExamineList.map(item =>
+                            <Popconfirm
+                              title="是否确认删除?"
+                              okText="确定"
+                              onConfirm={() => {
+                                this.deleteDeTails(2, this.state.ceoExamineList, item.id);
+                              }}
+                              cancelText="取消"
+                            >
+                              <Tag key={item.id}>
+                                {item.adminName + " "}<Icon type="close" />
+                              </Tag>
+                            </Popconfirm>
+                          )
+                        }
+                        {
+                          this.state.ceoExamine == 1 &&
+                          <Button
+                            type="primary"
+                            style={{ marginTop: 10 }}
+                            onClick={() => {
+                              this.setState({
+                                addtype: 2
+                              })
+                            }}>添加</Button>
+                        }
+                      </div>
+                      <div style={{ color: "red" }}>注:启用董事长审核后,还需要财务指向,是否需要董事长特批</div>
+                    </FormItem>
+                  </div>
+
+                  <div className="clearfix">
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
                       label="选择作息时间类型"
                     >
                       <Select placeholder="请选择作息时间类型"
                         value={this.state.workingHoursType}
+                        style={{ width: '70%' }}
                         onChange={(e) => { this.setState({ workingHoursType: e }) }}
                         notFoundContent="未获取到作息时间类型">
                         {this.state.workTimeList.map((v, k) => (
@@ -1377,16 +1646,63 @@ const Organization = Form.create()(React.createClass({
                         ))}
                       </Select>
                     </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="财务总监审核"
+                    >
+                      <Select placeholder="请选择"
+                        value={this.state.cfoExamine}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ cfoExamine: e }) }}
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <div>
+                        {
+                          this.state.cfoExamine == 1 &&
+                          !!this.state.cfoExamineList &&
+                          this.state.cfoExamineList.map(item =>
+                            <Popconfirm
+                              title="是否确认删除?"
+                              okText="确定"
+                              onConfirm={() => {
+                                this.deleteDeTails(3, this.state.cfoExamineList, item.id);
+                              }}
+                              cancelText="取消"
+                            >
+                              <Tag key={item.id}>
+                                {item.adminName + " "}<Icon type="close" />
+                              </Tag>
+                            </Popconfirm>
+                          )
+                        }
+                        {
+                          this.state.cfoExamine == 1 &&
+                          <Button
+                            type="primary"
+                            style={{ marginTop: 10 }}
+                            onClick={() => {
+                              this.setState({
+                                addtype: 3
+                              })
+                            }}>添加</Button>
+                        }
+                      </div>
+                    </FormItem>
                   </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="组织编号"
                     >
                       <Input
                         placeholder='组织编号'
                         value={this.state.depNo}
+                        style={{ width: '70%' }}
                         onChange={(e) => {
                           this.setState({
                             depNo: e.target.value
@@ -1394,20 +1710,112 @@ const Organization = Form.create()(React.createClass({
                         }}
                       />
                     </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="集团副总复审"
+                    >
+                      <Select placeholder="请选择"
+                        value={this.state.viceCeoExamine}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ viceCeoExamine: e }) }}
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <div>
+                        {
+                          this.state.viceCeoExamine == 1 &&
+                          !!this.state.viceCeoExamineList &&
+                          this.state.viceCeoExamineList.map(item =>
+                            <Popconfirm
+                              title="是否确认删除?"
+                              okText="确定"
+                              onConfirm={() => {
+                                this.deleteDeTails(3, this.state.viceCeoExamineList, item.id);
+                              }}
+                              cancelText="取消"
+                            >
+                              <Tag key={item.id}>
+                                {item.adminName + " "}<Icon type="close" />
+                              </Tag>
+                            </Popconfirm>
+                          )
+                        }
+                        {
+                          this.state.viceCeoExamine == 1 &&
+                          <Button
+                            type="primary"
+                            style={{ marginTop: 10 }}
+                            onClick={() => {
+                              this.setState({
+                                addtype: 4
+                              })
+                            }}>添加</Button>
+                        }
+                      </div>
+                    </FormItem>
                   </div>
                   <div className="clearfix" >
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="创建人"
                     >
                       <span>{this.state.editCreateId}</span>
                     </FormItem>
+
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="报销出纳"
+                    >
+                      <Select placeholder="请选择"
+                        value={this.state.cashierExamine}
+                        style={{ width: '70%' }}
+                        onChange={(e) => { this.setState({ cashierExamine: e }) }}
+                      >
+                        <Option value={0}>不需要</Option>
+                        <Option value={1}>需要</Option>
+                      </Select>
+                      <div>
+                        {
+                          this.state.cashierExamine == 1 &&
+                          !!this.state.cashierExamineList &&
+                          this.state.cashierExamineList.map(item =>
+                            <Popconfirm
+                              title="是否确认删除?"
+                              okText="确定"
+                              onConfirm={() => {
+                                this.deleteDeTails(3, this.state.cashierExamineList, item.id);
+                              }}
+                              cancelText="取消"
+                            >
+                              <Tag key={item.id}>
+                                {item.adminName + " "}<Icon type="close" />
+                              </Tag>
+                            </Popconfirm>
+                          )
+                        }
+                        {
+                          this.state.cashierExamine == 1 &&
+                          <Button
+                            type="primary"
+                            style={{ marginTop: 10 }}
+                            onClick={() => {
+                              this.setState({
+                                addtype: 5
+                              })
+                            }}>添加</Button>
+                        }
+                      </div>
+                    </FormItem>
                   </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="创建时间"
                     >
                       <span>{this.state.editTime}</span>
@@ -1415,23 +1823,27 @@ const Organization = Form.create()(React.createClass({
                   </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="组织职能说明" >
-                      <Input type="textarea" rows={4} placeholder="组织职能说明" value={this.state.editRemarks}
+                      <Input type="textarea"
+                        rows={4}
+                        placeholder="组织职能说明"
+                        value={this.state.editRemarks}
+                        style={{ width: '70%' }}
                         onChange={(e) => { this.setState({ editRemarks: e.target.value }) }} />
                     </FormItem>
                   </div>
                   <div className="clearfix">
                     <FormItem
-                      labelCol={{ span: 7 }}
-                      wrapperCol={{ span: 12 }}
+                      className="half-item"
+                      {...formItemLayout}
                       label="显示标识"
                     >
                       <Select placeholder="显示标识"
                         value={this.state.hideSign}
+                        style={{ width: '70%' }}
                         onChange={(e) => { this.setState({ hideSign: e }) }}
-                        style={{ width: '95%' }}
                         required="required"
                       >
                         <Option value={0}>不显示</Option>
@@ -1447,6 +1859,32 @@ const Organization = Form.create()(React.createClass({
               </Form >
             </Modal>
           </div>
+
+          <Modal
+            title="设置审核名单"
+            width='300px'
+            visible={this.state.addtype > 0}
+            onOk={this.handleOk}
+            onCancel={this.handleNo}
+            okText="确认"
+            cancelText="取消"
+          >
+            <AutoComplete
+              className="certain-category-search"
+              dropdownClassName="certain-category-search-dropdown"
+              style={{ width: 250 }}
+              dropdownMatchSelectWidth={false}
+              dataSource={options}
+              placeholder="输入名称"
+              value={this.state.adminName}
+              onChange={this.httpChangesel}
+              filterOption={true}
+              onSelect={this.selectAutosel}
+            >
+              <Input />
+            </AutoComplete>
+          </Modal>
+
         </div>
       </div>
     );

+ 16 - 0
js/component/manageCenter/set/userManagementS/newUser.jsx

@@ -158,6 +158,7 @@ const Newuser = Form.create()(React.createClass({
           entryTime: this.state.selTime,
           ambId: !!this.state.ambId ? this.state.ambId : null,
           managerId: this.state.managerId,
+          expenseSuperExamine: this.state.expenseSuperExamine, // 报销是否需要上级审核
         })
       }
     }).done(function (data) {
@@ -277,6 +278,7 @@ const Newuser = Form.create()(React.createClass({
             entryTime: thisdata.entryTime ? moment(thisdata.entryTime, 'YYYY-MM-DD') : undefined,
             selTime: thisdata.entryTime,
             ambId: !!thisdata.ambId && Number(thisdata.ambId), // 分巴id
+            expenseSuperExamine: thisdata.expenseSuperExamine, // 报销是否需要上级主管审核
           });
         }.bind(this),
       }).always(function () {
@@ -538,6 +540,20 @@ const Newuser = Form.create()(React.createClass({
                   </AutoComplete>
                   <span className="mandatory">*</span>
                 </FormItem>
+                <FormItem className="half-item"
+                  {...formItemLayout}
+                  label="报销是否需上级主管审核"
+                >
+                  <Select
+                    placeholder="请选择"
+                    value={this.state.expenseSuperExamine}
+                    style={{ width: '200px' }}
+                    onChange={(e) => { this.setState({ expenseSuperExamine: e }) }}
+                  >
+                    <Select.Option value={0} >否</Select.Option>
+                    <Select.Option value={1} >是</Select.Option>
+                  </Select>
+                </FormItem>
                 {this.props.userDetaile ?
                   <FormItem className="half-item"
                     {...formItemLayout}

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.3.02",
+  "version": "1.3.03",
   "description": "",
   "main": "index.js",
   "scripts": {