Browse Source

阿米巴资金管理

dev01 2 years ago
parent
commit
0f7fe48967

+ 4 - 2
js/component/common/imgList/index.js

@@ -106,8 +106,9 @@ class ImgList extends Component {
         }
     }
 
+    // 删除绑定的图片
     async onRemove(info) {
-        const { orderNo, sign, deleteApi } = this.props
+        const { orderNo, bindId, sign, deleteApi } = this.props
         if (!deleteApi) {
             return
         }
@@ -125,7 +126,8 @@ class ImgList extends Component {
                         crossDomain: false,
                         url: globalConfig.context + deleteApi,
                         data: {
-                            orderNo,
+                            id: bindId, // 编号 (没有不用传)
+                            orderNo, // 绑定的订单号
                             sign,
                             fileName: name
                         }

+ 131 - 0
js/component/common/logPopup/investmentlog.jsx

@@ -0,0 +1,131 @@
+import React, { Component } from "react";
+import { Button, message, Modal, Spin, Table } from "antd";
+import { ShowModal } from "../../tools";
+import $ from "jquery/src/ajax";
+
+
+// 投资审核日志弹窗
+class InvestmentLog extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      loading: false,
+      visible: false,
+      columnsDate: [
+        {
+          title: "操作人",
+          dataIndex: "operator",
+          key: "operator",
+          width: 150,
+        },
+        {
+          title: "操作",
+          dataIndex: "status",
+          key: "status",
+          width: 150,
+          render: (text, record) => {
+            return (
+              <span style={{ color: ["black", "black", "green", "red"][text] }}>
+                {["草稿", "发起", "同意", "驳回"][text]}
+              </span>
+            );
+          },
+        },
+        {
+          title: "操作时间",
+          dataIndex: "createTimes",
+          key: "createTimes",
+          width: 150,
+        },
+        {
+          title: "备注",
+          dataIndex: "comment",
+          key: "comment",
+        },
+      ],
+      recordData: [],
+    };
+  }
+
+  componentDidMount() { }
+
+  // 日志
+  getData() {
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/InvestLog?",
+      data: {
+        id: this.props.id,
+      },
+      success: function (data) {
+        ShowModal(this);
+        if (!data.data) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+        } else {
+          this.setState({
+            recordData: data.data,
+          });
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  }
+
+  render() {
+    return (
+      <span>
+        <Button
+          type="primary"
+          onClick={(e) => {
+            e.stopPropagation();
+            this.getData();
+            this.setState({
+              visible: true,
+            })
+          }}
+          style={{ margin: 5 }}
+        >
+          日志
+        </Button>
+        <Modal
+          maskClosable={false}
+          visible={this.state.visible}
+          footer=""
+          title="操作日志"
+          className="admin-desc-content"
+          width="800px"
+          onCancel={(e) => {
+            this.setState({
+              visible: false,
+            });
+          }}
+          style={{ zIndex: 10 }}
+        >
+          <Spin spinning={this.state.loading}>
+            <div className="patent-table">
+              <Table
+                columns={this.state.columnsDate}
+                dataSource={this.state.recordData || []}
+                pagination={false}
+              />
+            </div>
+          </Spin>
+        </Modal>
+      </span>
+    );
+  }
+}
+
+export default InvestmentLog;

+ 226 - 0
js/component/manageCenter/amiba/amibapage/fundmanagement.jsx

@@ -0,0 +1,226 @@
+import React, { Component } from "react";
+import { Tabs, Button, Card, Col, Row, Modal, } from "antd";
+import $ from "jquery/src/ajax";
+import ShowModalDiv from "@/showModal.jsx";
+import { ShowModal } from "@/tools";
+import "./index.less"
+import LaunchInvest from "../component/launchinvest"; // 发起投资
+import InvestmentList from "../component/investmentlist"; // 投资明细
+import Payment from "../component/payment"; // 发起付款
+
+const TabPane = Tabs.TabPane;
+
+// 资金管理
+class FundManagement extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      visible: "",
+      navList: [],
+      details: {},
+      type: 0,
+    };
+    this.onCancel = this.onCancel.bind(this);
+  }
+
+
+  componentWillMount() {
+    this.getData()
+  }
+
+  onCancel(e) {
+    if (e) {
+      this.getData()
+    }
+    this.setState({
+      visible: "",
+    })
+  }
+
+  getData() {
+    const { type } = this.state
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/getMyambDtails",
+      data: {},
+      success: function (data) {
+        ShowModal(this);
+        if (!data.data) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+        } else {
+          this.setState({
+            navList: data.data,
+            details: data.data[type] || {},
+          });
+        }
+      }.bind(this),
+    }).always(
+      function () {
+
+      }.bind(this)
+    );
+  }
+
+  render() {
+    const { visible, navList, details } = this.state
+    const gridStyle1 = {
+      height: '80px',
+      background: 'green',
+      fontSize: '20px',
+      fontWeight: 'bold',
+      color: '#fff',
+      display: 'flex',
+      flexDirection: 'column',
+      alignItems: 'center',
+      justifyContent: 'center',
+      textAlign: 'center',
+    };
+    const gridStyle2 = {
+      height: '80px',
+      background: 'green',
+      fontSize: '20px',
+      color: '#fff',
+      display: 'flex',
+      flexDirection: 'column',
+      alignItems: 'center',
+      justifyContent: 'center',
+      textAlign: 'center',
+    };
+    const gridStyle3 = {
+      height: '170px',
+      background: 'rgba(255,102,0,1)',
+      fontSize: '20px',
+      color: '#fff',
+      display: 'flex',
+      flexDirection: 'column',
+      alignItems: 'center',
+      justifyContent: 'center',
+      textAlign: 'center',
+    };
+    const buttonstyle = {
+      fontSize: '18px',
+      display: 'block',
+      margin: ' 0 auto',
+    }
+    return (
+      <div className="user-content">
+        <ShowModalDiv ShowModal={this.state.showModal} />
+        <div className="card-container">
+          <Tabs type="card"
+            onChange={(e) => {
+              this.setState({
+                type: e,
+                details: navList[e]
+              }, () => {
+                this.getData()
+              })
+            }}>
+            {
+              navList.map((item, index) =>
+                <TabPane tab={item.name} key={index}>
+                </TabPane>
+              )
+            }
+          </Tabs>
+        </div>
+        <Row gutter={8}>
+          <Col span={3}>
+            <Card style={gridStyle1}>核算单位</Card>
+            <div style={{ height: 10 }}></div>
+            <Card style={gridStyle2}>{details.name}</Card>
+          </Col>
+          <Col span={6}>
+            <Card style={gridStyle2}>实收投资款(万元)<br />{details.received}</Card>
+            <div style={{ height: 10 }}></div>
+            <Row gutter={8}>
+              <Col span={12}>
+                <Card style={gridStyle2}>对外投资款(万元)<br />{details.foreign}</Card>
+              </Col>
+              <Col span={12}>
+                <Card style={gridStyle2}>剩余投资款(万元)<br />{details.surplus}</Card>
+              </Col>
+            </Row>
+          </Col>
+          <Col span={6}>
+            <Card bordered={false} style={gridStyle3}>当前资金池(万元)<br />{details.totalAmount}</Card>
+          </Col>
+        </Row>
+        <div style={{ marginTop: 20 }}>
+          <Row gutter={8}>
+            <Col span={3} offset={3}>
+              <Button
+                type="primary"
+                size="large"
+                style={buttonstyle}
+                onClick={() => { this.setState({ visible: "investdetails" }) }}
+              >投资明细</Button>
+            </Col>
+            <Col span={3}>
+              <Button
+                type="primary"
+                size="large"
+                style={buttonstyle}
+                onClick={() => { this.setState({ visible: "invest" }) }}
+              >发起投资</Button>
+            </Col>
+            <Col span={3}>
+              <Button
+                type="primary"
+                size="large"
+                style={buttonstyle}
+              >收支明细</Button>
+            </Col>
+            <Col span={3}>
+              <Button
+                type="primary"
+                size="large"
+                style={buttonstyle}
+                onClick={() => { this.setState({ visible: "pay" }) }}
+              >发起付款</Button>
+            </Col>
+          </Row>
+        </div>
+        {
+          // 发起投资
+          visible == "invest" &&
+          <LaunchInvest
+            myAmbId={details.id}
+            visible={visible}
+            onCancel={this.onCancel}
+          />
+        }
+        {
+          // 投资明细
+          visible == "investdetails" &&
+          <Modal
+            maskClosable={false}
+            visible={visible == "investdetails"}
+            title="投资明细"
+            footer=""
+            width="70%"
+            onCancel={() => { this.onCancel(false) }}
+          >
+            <InvestmentList
+              myAmbId={details.id}
+            />
+          </Modal>
+        }
+        {
+          // 发起付款
+          visible == "pay" &&
+          <Payment
+            myAmbId={details.id}
+            visible={visible}
+            onCancel={this.onCancel}
+          />
+        }
+      </div>
+    );
+  }
+}
+
+export default FundManagement;

+ 3 - 1
js/component/manageCenter/amiba/amibapage/index.jsx

@@ -28,6 +28,7 @@ class Fundpool extends Component {
     super(props);
     this.state = {
       loading: false,
+      searchValues: {},
     };
   }
 
@@ -36,6 +37,7 @@ class Fundpool extends Component {
   }
 
   render() {
+    const { searchValues } = this.state
     return (
       <div className="user-content">
         <ShowModalDiv ShowModal={this.state.showModal} />
@@ -44,7 +46,7 @@ class Fundpool extends Component {
         </div>
         <Tabs
           defaultActiveKey="1"
-          onChange={() => {}}
+          onChange={() => { }}
         >
           <TabPane tab="搜索" key="1">
           </TabPane>

+ 23 - 0
js/component/manageCenter/amiba/amibapage/index.less

@@ -0,0 +1,23 @@
+.card-container > .ant-tabs-card > .ant-tabs-content {
+  margin-top: -15px;
+}
+
+.card-container > .ant-tabs-card > .ant-tabs-content > .ant-tabs-tabpane {
+  background: #fff;
+  padding: 5px;
+}
+
+.card-container > .ant-tabs-card > .ant-tabs-bar {
+  border-color: #fff;
+}
+
+.card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab {
+  border-color: transparent;
+  background: transparent;
+}
+
+.card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active {
+  border-color: green;
+  background: green;
+  color: #fff;
+}

+ 185 - 0
js/component/manageCenter/amiba/component/investmentlist.jsx

@@ -0,0 +1,185 @@
+import React, { Component } from "react";
+import { message, Spin, Table, Tabs } from "antd";
+import $ from "jquery/src/ajax";
+import InvestmentLog from "../../../common/logPopup/investmentlog"; //日志
+
+const TabPane = Tabs.TabPane;
+
+// 投资明细
+class InvestmentList extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      roleType: 2,
+      loading: false, // 加载动画
+      dataSource: [], // 列表数据
+      pagination: {
+        defaultCurrent: 1,
+        defaultPageSize: 10,
+        showQuickJumper: true,
+        pageSize: 10,
+        onChange: function (page) {
+          this.loadData(page);
+        }.bind(this),
+        showTotal: function (total) {
+          return "共" + total + "条数据";
+        },
+      },
+      columns: [
+        {
+          title: "投资时间",
+          dataIndex: "createTimes",
+          key: "createTimes",
+          width: "12%",
+        },
+        {
+          title: "金额(万元)",
+          dataIndex: "amount",
+          key: "amount",
+          width: "10%",
+        },
+        {
+          title: "累计金额(万元)",
+          dataIndex: "countAmount",
+          key: "countAmount",
+          width: "10%",
+        },
+        {
+          title: "投资方",
+          dataIndex: "initiateName",
+          key: "initiateName",
+          width: "12%",
+        },
+        {
+          title: "接收方",
+          dataIndex: "acceptName",
+          key: "acceptName",
+          width: "12%",
+        },
+        {
+          title: "操作人",
+          dataIndex: "operator",
+          key: "operator",
+          width: "14%",
+        },
+        {
+          title: "状态",
+          dataIndex: "status",
+          key: "status",
+          width: "6%",
+          render: (text, record) =>
+            <span style={{ color: text === 3 && "red" }}>
+              {["草稿", "待审核", "同意", "驳回"][text]}
+            </span>
+        },
+        {
+          title: "备注",
+          dataIndex: "comment",
+          key: "comment",
+          width: "20%",
+        },
+        {
+          title: "操作",
+          dataIndex: "operate",
+          key: "operate",
+          width: "6%",
+          render: (text, record) =>
+            <div>
+              <InvestmentLog id={record.id} />
+            </div>
+        }
+      ],
+    };
+
+  }
+
+  // 列表接口
+  loadData(pageNo) {
+    const { roleType, pagination } = this.state
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/InvestList",
+      data: {
+        pageNo: pageNo || 1,
+        pageSize: pagination.pageSize,
+        initiateAmbId: roleType == '2' ? this.props.myAmbId : undefined, // 发起阿米巴
+        acceptAmbId: roleType == "3" ? this.props.myAmbId : undefined, // 接受阿米巴
+      },
+      success: function (data) {
+        this.setState({
+          loading: false,
+        });
+        if (data.error && data.error.length === 0) {
+          if (data.data.list) {
+            pagination.current = data.data.pageNo;
+            pagination.total = data.data.totalCount;
+            if (data.data && data.data.list && !data.data.list.length) {
+              pagination.current = 0;
+              pagination.total = 0;
+            }
+            this.setState({
+              dataSource: data.data.list,
+              pagination: this.state.pagination,
+              pageNo: data.data.pageNo,
+            });
+          } else {
+            this.setState({
+              dataSource: data.data,
+              pagination: false,
+            });
+          }
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  }
+
+  componentDidMount() {
+    this.loadData()
+  }
+
+
+  render() {
+    const { columns } = this.state
+    return (
+      <div className="user-content">
+        <Tabs onChange={e => {
+          this.setState({
+            roleType: e
+          }, () => {
+            this.loadData()
+          })
+        }}
+        >
+          <TabPane tab="我投资的" key={2}></TabPane>
+          <TabPane tab="投资我的" key={3}></TabPane>
+        </Tabs>
+        <div className="patent-table">
+          <Spin spinning={this.state.loading}>
+            <Table
+              bordered
+              size="middle"
+              columns={columns}
+              dataSource={this.state.dataSource}
+              pagination={this.state.pagination}
+            />
+          </Spin>
+        </div>
+      </div>
+    );
+  }
+}
+
+export default InvestmentList;

+ 255 - 0
js/component/manageCenter/amiba/component/launchinvest.jsx

@@ -0,0 +1,255 @@
+import React, { Component } from "react";
+import { message, Modal, Spin, Form, Select, Input, Button, Tag } from "antd";
+import $ from "jquery/src/ajax";
+
+
+// 发起投资
+class LaunchInvest extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      loading: false,
+      alist: [
+        { lable: "100万", value: "100" },
+        { lable: "50万", value: "50" },
+        { lable: "30万", value: "30" },
+        { lable: "20万", value: "20" },
+        { lable: "10万", value: "10" },
+      ],
+      list: [],
+    };
+    this.onChange = this.onChange.bind(this);
+    this.onBlur = this.onBlur.bind(this);
+  }
+
+  componentDidMount() {
+    const { details = false } = this.props
+    this.getList()
+    if (!!details) {
+      this.setState({
+        otherAmbId: details.acceptAmbId, // 对方阿米巴
+        amount: details.amount.toString(), // 金额
+        comment: details.comment, // 备注
+      })
+    }
+  }
+
+
+  // 获取下级列表信息
+  getList() {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/getInvestAmbList",
+      data: {
+        id: this.props.myAmbId
+      },
+      success: function (data) {
+        if (data.error && data.error.length === 0) {
+          if (data.data) {
+            this.setState({
+              list: data.data || []
+            });
+          }
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+
+      }.bind(this)
+    );
+  }
+
+  onChange(e) {
+    const { value } = e.target;
+    const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/;
+    if ((!isNaN(value) && reg.test(value)) || value === '') {
+      this.setState({
+        amount: value
+      })
+    }
+  }
+
+  onBlur() {
+    const { amount } = this.state
+    if (!!amount && amount.charAt(amount.length - 1) === '.') {
+      this.setState({
+        amount: amount.slice(0, -1)
+      })
+    }
+  }
+
+  onSubmit() {
+    const { myAmbId, onCancel, details = false } = this.props
+    const { otherAmbId, amount, comment } = this.state
+    if (!otherAmbId) {
+      message.warning("请选择您需投人的下级单位");
+      return
+    }
+    if (!amount) {
+      message.warning("请填写您的投资款");
+      return
+    }
+    if (!comment) {
+      message.warning("请填写备注说明");
+      return
+    }
+    this.setState({
+      loading: true
+    })
+    // 发起
+    let infor = {
+      myAmbId, // 我的阿米巴
+      otherAmbId, // 对方阿米巴
+      amount, // 金额
+      comment, // 备注
+      status: 1, // 状态 0草稿 1发起
+    }
+    // 重新发起
+    let infor1 = {
+      myAmbId, // 我的阿米巴
+      otherAmbId, // 对方阿米巴
+      amount, // 金额
+      comment, // 备注
+      status: 1, // 状态 0草稿 1发起
+      id: details.id,
+    }
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context +
+        (
+          !!details
+            ? "/api/admin/amb/Invest/updateTransfer"
+            : "/api/admin/amb/Invest/addTransfer"
+        ),
+      data: !!details ? infor1 : infor,
+    }).done(
+      function (data) {
+        this.setState({
+          loading: false,
+        });
+        if (!data.error.length) {
+          message.success("发起成功!");
+          onCancel(true)
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    );
+  }
+
+  render() {
+    const { alist, list } = this.state
+    const { visible, onCancel, details = false } = this.props
+    const FormItem = Form.Item;
+    const formItemLayout = {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 16 },
+    };
+    return (
+      <Modal
+        maskClosable={false}
+        visible={visible == "invest"}
+        title=""
+        footer=""
+        width="800px"
+        onCancel={() => { onCancel(false) }}
+      >
+        <Spin spinning={this.state.loading}>
+          <div>
+            <div style={{ textAlign: "center", fontSize: "20px", marginBottom: 40 }}>发起投资</div>
+            <Form>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>投入单位</span>}
+              >
+                <Select
+                  showSearch
+                  style={{ width: 200 }}
+                  placeholder="请选择您需投人的下级单位"
+                  value={this.state.otherAmbId}
+                  optionFilterProp="children"
+                  onChange={e => { this.setState({ otherAmbId: e }) }}
+                  filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
+                >
+                  {
+                    list.map((item) =>
+                      <Option value={item.id} key={item.id}>{item.name}</Option>
+                    )
+                  }
+                </Select>
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>投资款(万元)</span>}
+              >
+                <Input
+                  placeholder="请填写您的投资款"
+                  style={{ width: 200, marginRight: 20 }}
+                  value={this.state.amount}
+                  onChange={this.onChange}
+                  onBlur={this.onBlur}
+                />
+                {
+                  alist.map((item) =>
+                    <Tag
+                      key={item.value}
+                      color={this.state.amount == item.value && "#108ee9"}
+                      onClick={() => {
+                        this.setState({
+                          amount: item.value
+                        })
+                      }}
+                    >{item.lable}</Tag>
+                  )
+                }
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>备注</span>}
+              >
+                <Input
+                  type="textarea"
+                  placeholder="备注说明"
+                  autosize={{ minRows: 4 }}
+                  value={this.state.comment}
+                  onChange={(e) => {
+                    this.setState({ comment: e.target.value });
+                  }}
+                />
+              </FormItem>
+              <FormItem
+                wrapperCol={{ span: 12, offset: 9 }}
+              >
+                <div style={{ marginTop: 30 }}>
+                  <Button
+                    type="primary"
+                    onClick={() => {
+                      this.onSubmit();
+                    }}
+                  >
+                    {!!details ? "重新发起" : "确定投资"}
+                  </Button>
+                  <Button
+                    type="ghost"
+                    style={{ marginLeft: 20 }}
+                    onClick={() => { onCancel(false) }}
+                  >
+                    取消
+                  </Button>
+                </div>
+              </FormItem>
+            </Form>
+          </div>
+        </Spin>
+      </Modal>
+    );
+  }
+}
+
+export default LaunchInvest;

+ 309 - 0
js/component/manageCenter/amiba/component/payment.jsx

@@ -0,0 +1,309 @@
+import React, { Component } from "react";
+import { message, Modal, Spin, Form, Select, Input, Button, Tabs } from "antd";
+import $ from "jquery/src/ajax";
+import PicturesWall from "../../order/orderNew/changeComponent/picturesWall";
+
+
+// 发起付款
+class Payment extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      loading: false,
+      list: [],
+    };
+    this.onChange = this.onChange.bind(this);
+    this.onBlur = this.onBlur.bind(this);
+  }
+
+  componentDidMount() {
+
+  }
+
+
+  // 获取下级列表信息
+  getList() {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/getInvestAmbList",
+      data: {
+        id: this.props.myAmbId
+      },
+      success: function (data) {
+        if (data.error && data.error.length === 0) {
+          if (data.data) {
+            this.setState({
+              list: data.data || []
+            });
+          }
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+
+      }.bind(this)
+    );
+  }
+
+  onChange(e) {
+    const { value } = e.target;
+    const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/;
+    if ((!isNaN(value) && reg.test(value)) || value === '') {
+      this.setState({
+        amount: value
+      })
+    }
+  }
+
+  onBlur() {
+    const { amount } = this.state
+    if (!!amount && amount.charAt(amount.length - 1) === '.') {
+      this.setState({
+        amount: amount.slice(0, -1)
+      })
+    }
+  }
+
+  getOrgCodeUrl(e) {
+    this.setState({ orgCodeUrl: e });
+  }
+
+  onSubmit() {
+    return
+    const { myAmbId, onCancel, details = false } = this.props
+    const { otherAmbId, amount, comment } = this.state
+    if (!otherAmbId) {
+      message.warning("请选择您需投人的下级单位");
+      return
+    }
+    if (!amount) {
+      message.warning("请填写您的投资款");
+      return
+    }
+    if (!comment) {
+      message.warning("请填写备注说明");
+      return
+    }
+    let theorgCodeUrl = [];
+    if (this.state.orgCodeUrl.length) {
+      let picArr = [];
+      this.state.orgCodeUrl.map(function (item) {
+        if (
+          item.response &&
+          item.response.data &&
+          item.response.data.length
+        ) {
+          picArr.push(item.response.data);
+        }
+      });
+      theorgCodeUrl = picArr.join(",");
+    } else {
+      message.info("请上传附件")
+      return
+    }
+    this.setState({
+      loading: true
+    })
+    // 发起
+    let infor = {
+      myAmbId, // 我的阿米巴
+      otherAmbId, // 对方阿米巴
+      amount, // 金额
+      comment, // 备注
+      status: 1, // 状态 0草稿 1发起
+    }
+    // 重新发起
+    let infor1 = {
+      myAmbId, // 我的阿米巴
+      otherAmbId, // 对方阿米巴
+      amount, // 金额
+      comment, // 备注
+      status: 1, // 状态 0草稿 1发起
+      id: details.id,
+    }
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context +
+        (
+          !!details
+            ? "/api/admin/amb/Invest/updateTransfer"
+            : "/api/admin/amb/Invest/addTransfer"
+        ),
+      data: !!details ? infor1 : infor,
+    }).done(
+      function (data) {
+        this.setState({
+          loading: false,
+        });
+        if (!data.error.length) {
+          message.success("发起成功!");
+          onCancel(true)
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    );
+  }
+
+  render() {
+    const { list } = this.state
+    const { visible, onCancel } = this.props
+    const FormItem = Form.Item;
+    const TabPane = Tabs.TabPane;
+    const formItemLayout = {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 16 },
+    };
+    const tabstyle = {
+      marginBottom: 15,
+      padding: "0 20px",
+      color: "red",
+    }
+    return (
+      <Modal
+        maskClosable={false}
+        visible={visible == "pay"}
+        title="填写付款申请单"
+        footer=""
+        width="60%"
+        onCancel={() => { onCancel(false) }}
+      >
+        <Spin spinning={this.state.loading}>
+          <div>
+            {/* <div style={{ textAlign: "center", fontSize: "20px", marginBottom: 40 }}>发起投资</div> */}
+            <div style={{ width: "80%", margin: "0 auto" }}>
+              <Tabs>
+                <TabPane tab="内部结算" key={0}>
+                  <div style={tabstyle}>内部划拨:公共费用分摊或巴与巴之间的合作</div>
+                </TabPane>
+                <TabPane tab="费用报销(共对私报销)" key={1}>
+                  <div style={tabstyle}>费用报销:包括员工销款(如差旅费等等)</div>
+                </TabPane>
+                <TabPane tab="招待费" key={2}>
+                  <div style={tabstyle}></div>
+                </TabPane>
+                <TabPane tab="其他费用" key={3}>
+                  <div style={tabstyle}></div>
+                </TabPane>
+                <TabPane tab="借款" key={4}>
+                  <div style={tabstyle}></div>
+                </TabPane>
+                <TabPane tab="工资奖金" key={5}>
+                  <div style={tabstyle}></div>
+                </TabPane>
+              </Tabs>
+            </div>
+            <Form>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>付款巴</span>}
+              >
+                <Select
+                  showSearch
+                  style={{ width: 200 }}
+                  placeholder="请选择您需投人的下级单位"
+                  value={this.state.otherAmbId}
+                  optionFilterProp="children"
+                  onChange={e => { this.setState({ otherAmbId: e }) }}
+                  filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
+                >
+                  {
+                    list.map((item) =>
+                      <Option value={item.id} key={item.id}>{item.name}</Option>
+                    )
+                  }
+                </Select>
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>金额(万元)</span>}
+              >
+                <Input
+                  placeholder="请填写您的金额"
+                  style={{ width: 200, marginRight: 20 }}
+                  value={this.state.amount}
+                  onChange={this.onChange}
+                  onBlur={this.onBlur}
+                />
+                <span style={{ color: "red" }}>注:请填写本次费用金额</span>
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label="内容及说明"
+              >
+                <Input
+                  type="textarea"
+                  style={{ width: "60%" }}
+                  placeholder="内容及说明"
+                  autosize={{ minRows: 3 }}
+                  value={this.state.comment}
+                  onChange={(e) => {
+                    this.setState({ comment: e.target.value });
+                  }}
+                />
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>备注</span>}
+              >
+                <Input
+                  type="textarea"
+                  style={{ width: "60%" }}
+                  placeholder="备注"
+                  autosize={{ minRows: 3 }}
+                  value={this.state.comment}
+                  onChange={(e) => {
+                    this.setState({ comment: e.target.value });
+                  }}
+                />
+              </FormItem>
+              <FormItem
+                {...formItemLayout}
+                label={<span><span style={{ color: "red" }}>*</span>上传附件</span>}
+              >
+                <PicturesWall
+                  fileList={this.getOrgCodeUrl}
+                  pictureUrl={this.state.orgCodeUrl}
+                  url="/api/admin/uploadImg"
+                  bindId={""}
+                  sign="amb_payment"
+                  deleteApi="/api/admin/deleteImg"
+                />
+                <p>图片建议:要清晰。</p>
+              </FormItem>
+              <FormItem
+                wrapperCol={{ span: 12, offset: 9 }}
+              >
+                <div style={{ marginTop: 30 }}>
+                  <Button
+                    type="primary"
+                    onClick={() => {
+                      this.onSubmit();
+                    }}
+                  >
+                    提交申请
+                  </Button>
+                  <Button
+                    type="ghost"
+                    style={{ marginLeft: 20 }}
+                    onClick={() => { onCancel(false) }}
+                  >
+                    取消
+                  </Button>
+                </div>
+              </FormItem>
+            </Form>
+          </div>
+        </Spin>
+      </Modal>
+    );
+  }
+}
+
+export default Payment;

+ 18 - 8
js/component/manageCenter/amiba/content.jsx

@@ -40,14 +40,24 @@ class Content extends Component {
           });
         });
         break;
-      // case "ff":
-      //   require.ensure([], () => {
-      //     const Module = require("../module").default;
-      //     this.setState({
-      //       component: <Module />,
-      //     });
-      //   });
-      //   break;
+      //我的投资
+      case "myinvestment":
+        require.ensure([], () => {
+          let MyInvestment = require("../financialManage/amiba/investment").default;
+          this.setState({
+            component: <MyInvestment type="my" />,
+          });
+        });
+        break;
+      // 资金管理
+      case "fundmanagement":
+        require.ensure([], () => {
+          const FundManagement = require("./amibapage/fundmanagement").default;
+          this.setState({
+            component: <FundManagement />,
+          });
+        });
+        break;
       //空白
       default:
         require.ensure([], () => {

+ 82 - 77
js/component/manageCenter/amiba/content.less

@@ -1,102 +1,107 @@
 .user-content {
-    background: #fff;
-    padding: 20px;
-    .content-title {
-        color: #333;
-        font-size: 16px;
+  background: #fff;
+  padding: 20px;
+
+  .content-title {
+    color: #333;
+    font-size: 16px;
+  }
+
+  .user-search {
+    margin-bottom: 10px;
+
+    >input {
+      width: 140px;
     }
-    .user-search {
-        margin: 10px 0;
-        >input {
-            width: 140px;
-        }
-        >input,
-        >button,
-        .ant-select {
-            margin-top: 10px;
-            margin-right: 10px;
-        }
-        .ant-switch {
-            margin-left: 10px;
-        }
-        .search-more {
-            margin: 10px 0;
-        }
-        .search-div {
-            display: inline-block;
-            margin-top: 10px;
-            margin-right: 10px;
-        }
+
+    >input,
+    >button,
+    .ant-select {
+      margin-top: 10px;
+      margin-right: 10px;
+    }
+
+    .ant-switch {
+      margin-left: 10px;
     }
+
+    .search-more {
+      margin: 10px 0;
+    }
+
+    .search-div {
+      display: inline-block;
+      margin-top: 10px;
+      margin-right: 10px;
+    }
+  }
 }
 
 .ant-modal-body {
-    .modal-box {
-        overflow: hidden;
-        line-height: 28px;
-        margin-bottom: 10px;
-        .modal-box-title {
-            float: left;
-            width: 84px;
-            text-align: right;
-            margin-right: 20px;
-        }
-        .modal-box-detail {
-            float: left;
-            width: 400px;
-            >span {
-                margin-right: 6px;
-            }
-        }
-        >button {
-            margin-right: 20px;
-        }
+  .modal-box {
+    overflow: hidden;
+    line-height: 28px;
+    margin-bottom: 10px;
+
+    .modal-box-title {
+      float: left;
+      width: 84px;
+      text-align: right;
+      margin-right: 20px;
+    }
+
+    .modal-box-detail {
+      float: left;
+      width: 400px;
+
+      >span {
+        margin-right: 6px;
+      }
+    }
+
+    >button {
+      margin-right: 20px;
     }
+  }
 }
 
 .no-all-select {
-    .ant-table-selection {
-        .ant-checkbox {
-            display: none;
-        }
+  .ant-table-selection {
+    .ant-checkbox {
+      display: none;
     }
+  }
 }
-.addButton{float: right;margin-right: 50px!important;}
 
-.tip{
-	color: red;
-	font-size: 12px;
+.addButton {
+  float: right;
+  margin-right: 50px !important;
 }
-.division{
-	margin: 0 auto;
-	margin-top: 25px;
-	width: 80%;
+
+.tip {
+  color: red;
+  font-size: 12px;
+}
+
+.division {
+  margin: 0 auto;
+  margin-top: 25px;
+  width: 80%;
 }
 
-.fa{
-	display: flex;
-	justify-content: space-around;
+.fa {
+  display: flex;
+  justify-content: space-around;
 }
 
 // .ant-upload-select{
 // 	vertical-align: top;
 // }
 
-.ant-upload.ant-upload-select{
-	vertical-align: top;
+.ant-upload.ant-upload-select {
+  vertical-align: top;
 }
 
-.ant-upload-list-item{
-	font-size: 14px;
-}
-.ant-modal-close-x {
-    display: block;
-    font-style: normal;
-    text-align: center;
-    text-transform: none;
-    text-rendering: auto;
-    width: 22px;
-    height: 23px;
-    line-height: 28px;
-    font-size: 21px;
+.ant-upload-list-item {
+  font-size: 14px;
 }

+ 5 - 0
js/component/manageCenter/content.less

@@ -33,3 +33,8 @@
 .acc-top-user-name>a {
     color: #58a3ff !important;
 }
+
+// .user-content>.ant-tabs.ant-tabs-top.ant-tabs-line {
+//     background-color: #F5F5F5;
+//     margin-bottom: 10px;
+//   }

+ 1 - 1
js/component/manageCenter/customerService/administration/order.jsx

@@ -768,7 +768,7 @@ const Order = Form.create()(
             title: "流程状态",
             dataIndex: "processStatus",
             key: "processStatus",
-            render: (text) => {
+            render: (text, record) => {
               return getProcessStatus(text, record.examineName, record.approval);
             },
           },

+ 11 - 0
js/component/manageCenter/financialManage/amiba/index.less

@@ -0,0 +1,11 @@
+.ant-select-search__field__mirror{
+  display: none;
+}
+
+:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open:after{
+  font-size: 24px;
+}
+
+:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close:after{
+  font-size: 24px;
+}

+ 708 - 0
js/component/manageCenter/financialManage/amiba/investment.jsx

@@ -0,0 +1,708 @@
+import React from "react";
+import $ from "jquery/src/ajax";
+import {
+  Button, Input, Spin, Table, DatePicker, TreeSelect,
+  Form, message, Tabs, Modal, Select, AutoComplete,
+} from "antd";
+import { ShowModal } from "@/tools";
+import moment from "moment";
+import "./index.less";
+import ShowModalDiv from "@/showModal.jsx";
+import { ChooseList } from "../../order/orderNew/chooseList"
+import InvestmentLog from "../../../common/logPopup/investmentlog";
+import LaunchInvest from "../../amiba/component/launchinvest"; // 发起投资
+
+const { TabPane } = Tabs;
+const { RangePicker } = DatePicker;
+const FormItem = Form.Item;
+
+// 投资列表
+const Investment = React.createClass({
+
+  //
+  getInitialState() {
+    return {
+      searchValues: {}, // 列表筛选条件
+      loading: false, //加载动画
+      changeList: undefined, // 更改后的表格显示数据
+      dataSource: [], // 列表数据
+      pagination: {
+        defaultCurrent: 1,
+        defaultPageSize: 10,
+        showQuickJumper: true,
+        pageSize: 10,
+        onChange: function (page) {
+          this.loadData(page);
+        }.bind(this),
+        showTotal: function (total) {
+          return "共" + total + "条数据";
+        },
+      },
+      columns: [
+        {
+          title: "投资时间",
+          dataIndex: "createTimes",
+          key: "createTimes",
+          width: "10%",
+        },
+        {
+          title: "金额(万元)",
+          dataIndex: "amount",
+          key: "amount",
+          width: "10%",
+        },
+        {
+          title: "累计金额(万元)",
+          dataIndex: "countAmount",
+          key: "countAmount",
+          width: "10%",
+        },
+        {
+          title: "投资方",
+          dataIndex: "initiateName",
+          key: "initiateName",
+          width: "10%",
+        },
+        {
+          title: "接收方",
+          dataIndex: "acceptName",
+          key: "acceptName",
+          width: "10%",
+        },
+        {
+          title: "操作人",
+          dataIndex: "operator",
+          key: "operator",
+          width: "10%",
+        },
+        {
+          title: "状态",
+          dataIndex: "status",
+          key: "status",
+          width: "8%",
+          render: (text, record) =>
+            <span style={{ color: text === 3 && "red" }}>
+              {["草稿", "待审核", "同意", "驳回"][text]}
+            </span>
+        },
+        {
+          title: "备注",
+          dataIndex: "comment",
+          key: "comment",
+          width: "20%",
+        },
+        {
+          title: "操作",
+          dataIndex: "operate",
+          key: "operate",
+          width: "12%",
+          render: (text, record) =>
+            <div>
+              {
+                record.status === 1 && this.props.type == "cwzy" &&
+                <Button
+                  type="primary"
+                  onClick={() => {
+                    this.setState({
+                      checkVisible: true,
+                      rowData: record
+                    })
+                  }}
+                >审核</Button>
+              }
+              {
+                record.status === 3 && this.props.type == "my" &&
+                <Button
+                  type="primary"
+                  onClick={() => {
+                    this.setState({
+                      visible: "invest",
+                      rowData: record
+                    })
+                  }}
+                >重新发起</Button>
+              }
+              <InvestmentLog id={record.id} />
+            </div >
+        }
+      ],
+      checkVisible: false,
+      rowData: {},
+      visible: "",
+    };
+  },
+
+
+  componentWillMount() {
+    const { searchValues } = this.state
+    this.getList();
+    if (this.props.type == "cwzy") {
+      searchValues.status = 1
+      this.setState({
+        searchValues,
+      }, () => {
+        this.loadData();
+      })
+    } else {
+      this.loadData();
+    }
+  },
+
+
+  // 导出当前列表
+  exportAll() {
+    const { searchValues } = this.state
+    message.config({
+      duration: 20,
+    });
+    let loading = message.loading("下载中...");
+    this.setState({
+      exportPendingLoading: true,
+    });
+    let data = Object.assign(searchValues, {
+      pageNo: 1,
+      pageSize: 9999,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: "/api/admin/orderProject/selectProjectStop/export",
+      data,
+      success: function (data) {
+        if (data.error.length === 0) {
+          this.download(data.data);
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        loading();
+        this.setState({
+          exportPendingLoading: false,
+        });
+      }.bind(this)
+    );
+  },
+  // 下载
+  download(fileName) {
+    window.location.href =
+      globalConfig.context + "/open/download?fileName=" + fileName;
+  },
+  // 更改表格显示数据
+  changeList(arr) {
+    const newArr = [];
+    this.state.columns.forEach((item) => {
+      arr.forEach((val) => {
+        if (val === item.title) {
+          newArr.push(item);
+        }
+      });
+    });
+    this.setState({
+      changeList: newArr,
+    });
+  },
+  // 搜索
+  search() {
+    this.loadData();
+  },
+  // 重置
+  reset() {
+    this.setState({
+      auto: "",
+      searchValues: JSON.parse(JSON.stringify({})),
+    }, () => {
+      this.loadData();
+    })
+  },
+  // 列表接口
+  loadData(pageNo) {
+    const { searchValues, pagination } = this.state;
+    this.setState({
+      loading: true,
+    });
+    let datas = Object.assign(searchValues, {
+      pageNo: pageNo || 1,
+      pageSize: pagination.pageSize,
+      roleType: this.props.type == "cwzy" ? 1
+        : this.props.type == "my" && 0, //0 巴主发起列表 1财务审核列表
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/InvestList",
+      data: datas,
+      success: function (data) {
+        ShowModal(this);
+        this.setState({
+          loading: false,
+        });
+        if (data.error && data.error.length === 0) {
+          if (data.data.list) {
+            pagination.current = data.data.pageNo;
+            pagination.total = data.data.totalCount;
+            if (data.data && data.data.list && !data.data.list.length) {
+              pagination.current = 0;
+              pagination.total = 0;
+            }
+            this.setState({
+              dataSource: data.data.list,
+              pagination: this.state.pagination,
+              pageNo: data.data.pageNo,
+            });
+          } else {
+            this.setState({
+              dataSource: data.data,
+              pagination: false,
+            });
+          }
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+  // 双击行
+  rowClick(record) {
+    if (this.props.type == "cwzy") {
+      this.setState({
+        checkVisible: true,
+        rowData: record
+      })
+    }
+  },
+  // 审核
+  examineTransfer(status) {
+    if (!this.state.emReason) {
+      message.warning("请填写审核说明~");
+      return;
+    }
+    if (!this.state.emReason.replace(/\s+/g, '')) {
+      message.warning("请填写审核说明~");
+      return;
+    }
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/Invest/examineTransfer",
+      data: {
+        id: this.state.rowData.id,
+        comment: this.state.emReason,
+        status,
+      },
+    }).done(
+      function (data) {
+        if (!data.error.length) {
+          this.setState({
+            loading: false,
+          })
+          message.success("审核成功!");
+          this.loadData()
+          this.setState({
+            checkVisible: false,
+            emReason: "",
+          })
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    );
+  },
+  // 关闭重新发起
+  onCancel(e) {
+    if (e) {
+      this.loadData()
+    }
+    this.setState({
+      visible: "",
+    })
+  },
+  // 树状默认数据处理
+  handleTreeData(treeData) {
+    let nodeDta = [];
+    treeData.map(item => {
+      let treeObj = {};
+      treeObj.key = item.id
+      treeObj.id = item.id
+      treeObj.value = item.id
+      treeObj.label = item.name
+      treeObj.title = item.name
+      treeObj.lvl = item.lvl
+      treeObj.parentId = item.parentId
+      item.list ? treeObj.children = this.handleTreeData(item.list) : null;
+      nodeDta.push(treeObj)
+    })
+    return nodeDta
+  },
+  // 巴筛选数据
+  getList() {
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/amb/selectAll",
+      success: function (data) {
+        this.setState({
+          loading: false,
+        });
+        if (data.error && data.error.length === 0) {
+          let menuList = data.data
+          this.setState({
+            level1Data: menuList ? this.handleTreeData(menuList) : []
+          });
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+
+  supervisor(e) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/customer/listAdminByName",
+      data: {
+        adminName: e,
+        status: "0",
+      },
+      success: function (data) {
+        if (data.error && data.error.length === 0) {
+          this.setState({
+            customerArr: data.data,
+          });
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(function () { }.bind(this));
+  },
+
+  httpChange(e) {
+    if (e.length >= 1) {
+      this.supervisor(e);
+    }
+    this.setState({
+      auto: e,
+    })
+  },
+
+  blurChange(e) {
+    let contactLists = this.state.customerArr || [];
+    if (e) {
+      let id = ""
+      contactLists.map(function (item) {
+        if (item.name == e.toString()) {
+          id = item.id;
+        }
+      });
+      this.setState({
+        searchValues: Object.assign(this.state.searchValues, {
+          operator: id,
+        }),
+      })
+    }
+  },
+
+  selectAuto(value, options) {
+    this.setState({
+      auto: value,
+    })
+  },
+
+  render() {
+    const { searchValues, rowData, level1Data } = this.state
+    const formItemLayout = {
+      labelCol: { span: 8 },
+      wrapperCol: { span: 14 },
+    };
+    const dataSources = this.state.customerArr || [];
+    const options = dataSources.map((group) => (
+      <Select.Option key={group.id} value={group.name}>
+        {group.name}
+      </Select.Option>
+    ));
+    return (
+      <div className="user-content">
+        <ShowModalDiv ShowModal={this.state.showModal} />
+        <div className="content-title" style={{ marginBottom: 10 }}>
+          <span style={{ fontWeight: 900, fontSize: 16 }}>
+            {this.props.type == "cwzy" ? "投资审核" : "我的投资"}
+          </span>
+        </div>
+        <Tabs defaultActiveKey="1" onChange={this.callback}>
+          <TabPane tab="搜索" key="1">
+            <div className="user-search" style={{ marginLeft: 10 }}>
+              <TreeSelect
+                style={{ width: 200 }}
+                value={searchValues.initiateAmbId}
+                dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
+                treeData={level1Data}
+                placeholder="投资方"
+                showSearch
+                treeNodeFilterProp="title"
+                onChange={(e) => {
+                  searchValues["initiateAmbId"] = e;
+                  this.setState({
+                    searchValues: searchValues,
+                  });
+                }}
+              />
+              <TreeSelect
+                style={{ width: 200 }}
+                value={searchValues.acceptAmbId}
+                dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
+                treeData={level1Data}
+                placeholder="接收方"
+                showSearch
+                treeNodeFilterProp="title"
+                onChange={(e) => {
+                  searchValues["acceptAmbId"] = e;
+                  this.setState({
+                    searchValues: searchValues,
+                  });
+                }}
+              />
+              <AutoComplete
+                className="certain-category-search"
+                dropdownClassName="certain-category-search-dropdown"
+                dropdownMatchSelectWidth={false}
+                style={{ width: "200px" }}
+                dataSource={options}
+                placeholder="操作投资人"
+                value={this.state.auto}
+                onChange={this.httpChange}
+                filterOption={true}
+                onBlur={this.blurChange}
+                onSelect={this.selectAuto}
+              >
+                <Input />
+              </AutoComplete>
+              <Select
+                placeholder="选择状态"
+                style={{ width: 200 }}
+                value={searchValues.status}
+                onChange={e => {
+                  this.setState({
+                    searchValues: Object.assign(searchValues, {
+                      status: e,
+                    }),
+                  })
+                }}
+              >
+                <Select.Option value={1}>待审核</Select.Option>
+                <Select.Option value={2}>已同意</Select.Option>
+                <Select.Option value={3}>已驳回</Select.Option>
+              </Select>
+              <RangePicker
+                style={{ width: 300 }}
+                value={[
+                  searchValues.startTime ? moment(searchValues.startTime) : null,
+                  searchValues.endTime ? moment(searchValues.endTime) : null,
+                ]}
+                onChange={(data, dataString) => {
+                  this.setState({
+                    searchValues: Object.assign(searchValues, {
+                      startTime: dataString[0],
+                      endTime: dataString[1],
+                    }),
+                  });
+                }}
+              />
+              <Button
+                type="primary"
+                onClick={this.search}
+                style={{ marginLeft: 10 }}
+              >
+                搜索
+              </Button>
+              <Button
+                onClick={this.reset}
+              >重置</Button>
+            </div>
+          </TabPane>
+          <TabPane tab="更改表格显示数据" key="2">
+            <div style={{ marginLeft: 10 }}>
+              <ChooseList
+                columns={this.state.columns}
+                changeFn={this.changeList}
+                changeList={this.state.changeList}
+                top={55}
+                margin={11}
+              />
+            </div>
+          </TabPane>
+          <TabPane tab="导出Excel" key="3">
+            <Button
+              type="primary"
+              style={{ margin: "11px 0px 10px 10px" }}
+              onClick={this.exportAll}
+            >
+              导出当前列表
+            </Button>
+          </TabPane>
+        </Tabs>
+        <div className="patent-table">
+          <Spin spinning={this.state.loading}>
+            <Table
+              bordered
+              size="middle"
+              columns={
+                this.state.changeList == undefined
+                  ? this.state.columns
+                  : this.state.changeList
+              }
+              dataSource={this.state.dataSource}
+              pagination={this.state.pagination}
+              onRowDoubleClick={this.rowClick}
+            />
+          </Spin>
+        </div>
+        {
+          //审核弹窗
+          this.state.checkVisible &&
+          <Modal
+            visible={this.state.checkVisible}
+            width="33%"
+            title=""
+            footer=""
+            onCancel={() => { this.setState({ checkVisible: false }) }}
+          >
+            <Spin spinning={this.state.loading}>
+              <div>
+                <div style={{ textAlign: "center", fontSize: "20px", marginBottom: 40 }}>拨款</div>
+                <Form>
+                  <FormItem
+                    className="half-item"
+                    {...formItemLayout}
+                    label="投资方"
+                  >
+                    <span>{rowData.initiateName}</span>
+                  </FormItem>
+                  <FormItem
+                    className="half-item"
+                    {...formItemLayout}
+                    label="接受方"
+                  >
+                    <span>{rowData.acceptName}</span>
+                  </FormItem>
+                  <FormItem
+                    className="half-item"
+                    {...formItemLayout}
+                    label="投资款(万元)"
+                  >
+                    <span>{rowData.amount}</span>
+                  </FormItem>
+                  <FormItem
+                    labelCol={{ span: 4 }}
+                    wrapperCol={{ span: 16 }}
+                    label="投资备注"
+                  >
+                    <span>{rowData.comment}</span>
+                  </FormItem>
+                  <FormItem
+                    className="half-item"
+                    {...formItemLayout}
+                    label="发起人"
+                  >
+                    <span>{rowData.operator}</span>
+                  </FormItem>
+                  <FormItem
+                    className="half-item"
+                    {...formItemLayout}
+                    label="发起时间"
+                  >
+                    <span>{rowData.createTimes}</span>
+                  </FormItem>
+                  {
+                    rowData.status === 1 && this.props.type == "cwzy" &&
+                    <div>
+                      <FormItem
+                        labelCol={{ span: 4 }}
+                        wrapperCol={{ span: 16 }}
+                        label={
+                          <span>
+                            <strong style={{ color: "#f00" }}>*</strong>
+                            备注
+                          </span>
+                        }
+                      >
+                        <Input
+                          type="textarea"
+                          rows={4}
+                          placeholder="请填写审核说明"
+                          value={this.state.emReason}
+                          onChange={(e) => {
+                            this.setState({ emReason: e.target.value });
+                          }}
+                        />
+                      </FormItem>
+                      <FormItem wrapperCol={{ span: 12, offset: 7 }}>
+                        <Button
+                          type="primary"
+                          onClick={() => { this.examineTransfer(2) }}
+                          style={{ marginRight: 20 }}
+                        >
+                          确定拨款
+                        </Button>
+                        <Button
+                          type="primary"
+                          onClick={() => { this.examineTransfer(3) }}
+                          style={{ marginRight: 20 }}
+                        >
+                          驳回
+                        </Button>
+                        <Button
+                          type="default"
+                          onClick={() => { this.setState({ checkVisible: false }) }}
+                        >
+                          取消
+                        </Button>
+                      </FormItem>
+                    </div>
+                  }
+                </Form>
+              </div>
+            </Spin>
+          </Modal>
+        }
+
+        {
+          // 重新发起投资
+          this.state.visible == "invest" &&
+          <LaunchInvest
+            myAmbId={this.state.rowData.initiateAmbId} //发起方的阿米巴id
+            details={this.state.rowData}
+            visible={this.state.visible}
+            onCancel={this.onCancel.bind(this)}
+          />
+        }
+      </div>
+    );
+  },
+});
+
+export default Investment;

+ 12 - 4
js/component/manageCenter/financialManage/content.jsx

@@ -31,19 +31,27 @@ class Content extends Component {
   }
   getKey(key) {
     switch (key) {
+      case "investment": //投资审核
+        require.ensure([], () => {
+          let Investment = require("./amiba/investment").default;
+          this.setState({
+            component: <Investment type="cwzy" />,
+          });
+        });
+        break;
       case "projectvip": //会员项目审核
         require.ensure([], () => {
-          let Module = require("./distribute/projectvip").default;
+          let ProjectVip = require("./distribute/projectvip").default;
           this.setState({
-            component: <Module />,
+            component: <ProjectVip />,
           });
         });
         break;
       case "projectvipall": //会员项目
         require.ensure([], () => {
-          let Module = require("./distribute/projectvipall").default;
+          let ProjectVipAll = require("./distribute/projectvipall").default;
           this.setState({
-            component: <Module />,
+            component: <ProjectVipAll />,
           });
         });
         break;

+ 4 - 3
js/component/manageCenter/order/orderNew/changeComponent/picturesWall.js

@@ -26,12 +26,13 @@ class PicturesWall extends Component {
 
   render() {
     const { fileList } = this.state;
-    const { orderNo = undefined, deleteApi = "", sign = "" } = this.props
+    const { orderNo = undefined, bindId = undefined, deleteApi = "", sign = "" } = this.props
     return (
       <div style={{ display: "inline-block" }}>
         <ImgList
-          deleteApi={deleteApi}
-          orderNo={orderNo}
+          deleteApi={deleteApi} // 删除图片接口
+          orderNo={orderNo} // 用于订单上传绑定,不是订单上传不需要传
+          bindId={bindId} // 绑定的编号
           sign={sign}
           domId={this.props.domId}
           uploadConfig={{

+ 145 - 137
js/component/manageCenter/order/orderNew/inquiry.jsx

@@ -56,9 +56,11 @@ import ContentUrl from "./contentUrl.jsx";
 import Order from "../../customerService/administration/order.jsx";
 import LogPopup from "../../../common/logPopup";
 import Cascaders from "../../../common/cascaders";
+import NewPicturesWall from "./changeComponent/picturesWall.js";
 
 const { Option } = Select;
 const { TabPane } = Tabs;
+
 const PicturesWall = React.createClass({
   getInitialState() {
     return {
@@ -2049,6 +2051,12 @@ const IntentionCustomer = Form.create()(
     getOrgCodeUrl(e) {
       this.setState({ orgCodeUrl: e });
     },
+    getReplenishUrl(e) {
+      this.setState({ replenishUrl: e });
+    },
+    getContentUrl(e) {
+      this.setState({ contentUrl: e });
+    },
     search() {
       this.setState({
         signBillVisible: false,
@@ -2380,6 +2388,85 @@ const IntentionCustomer = Form.create()(
       }
     },
 
+    // 管理员上传图片
+    updateOrderUrl() {
+      // 合同扫描件
+      let orgCodeUrl = [];
+      if (this.state.orgCodeUrl.length) {
+        let picArr = [];
+        this.state.orgCodeUrl.map(function (item) {
+          if (
+            item.response &&
+            item.response.data &&
+            item.response.data.length
+          ) {
+            picArr.push(item.response.data);
+          }
+        });
+        orgCodeUrl = picArr.join(",");
+      } else {
+        message.info("请上传合同扫描件")
+        return
+      }
+      // 补充协议
+      let replenishUrl = [];
+      if (this.state.replenishUrl.length) {
+        let picArr = [];
+        this.state.replenishUrl.map(function (item) {
+          if (
+            item.response &&
+            item.response.data &&
+            item.response.data.length
+          ) {
+            picArr.push(item.response.data);
+          }
+        });
+        replenishUrl = picArr.join(",");
+      }
+      // 服务内容
+      let contentUrl = [];
+      if (this.state.contentUrl.length) {
+        let picArr = [];
+        this.state.contentUrl.map(function (item) {
+          if (
+            item.response &&
+            item.response.data &&
+            item.response.data.length
+          ) {
+            picArr.push(item.response.data);
+          }
+        });
+        contentUrl = picArr.join(",");
+      } else {
+        message.info("请上传服务内容")
+        return
+      }
+      this.setState({
+        loading: true,
+      });
+      $.ajax({
+        url: globalConfig.context + "/api/admin/newOrder/updateOrderUrl",
+        method: "post",
+        data: {
+          orderNo: this.state.orderNo,
+          contractPictureUrl: orgCodeUrl.length ? orgCodeUrl : "",
+          agreementUrl: replenishUrl.length ? replenishUrl : "",
+          serviceContent: contentUrl.length ? contentUrl : "",
+        },
+      }).done(
+        function (data) {
+          this.setState({
+            loading: false,
+          });
+          if (!data.error.length) {
+            message.success("修改成功!");
+          } else {
+            message.warning(data.error[0].message);
+          }
+        }.bind(this)
+      );
+    },
+
 
     render() {
       const expandedRowRenderVip = (e) => {
@@ -4486,73 +4573,22 @@ const IntentionCustomer = Form.create()(
                           wrapperCol={{ span: 18 }}
                           label={"合同扫描件"}
                         >
-                          <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
-                            {this.state.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'} /> : <div />}
-                          </div>
-                          {/*<Upload*/}
-                          {/*  className="demandDetailShow-upload"*/}
-                          {/*  listType="picture-card"*/}
-                          {/*  fileList={this.state.orgCodeUrl}*/}
-                          {/*  onPreview={(file) => {*/}
-                          {/*    this.setState({*/}
-                          {/*      previewImage: file.url || file.thumbUrl,*/}
-                          {/*      previewVisible: true,*/}
-                          {/*    });*/}
-                          {/*  }}*/}
-                          {/*/>*/}
-                          <Modal
-                            maskClosable={false}
-                            footer={null}
-                            width={"50%"}
-                            visible={this.state.previewVisible}
-                            onCancel={() => {
-                              this.setState({
-                                previewVisible: false,
-                                rotateDeg: 0,
-                              });
-                            }}
-                          >
-                            <img
-                              alt=""
-                              style={{
-                                width: "100%",
-                                transform: `rotate(${this.state.rotateDeg}deg)`,
-                              }}
-                              src={this.state.previewImage || ""}
-                            />
-                            <Button
-                              onClick={this.rotate}
-                              style={{
-                                position: "relative",
-                                left: "50%",
-                                transform: "translateX(-50%)",
-                              }}
-                            >
-                              旋转
-                            </Button>
-                            <Button
-                              onClick={this.upImg}
-                              style={{
-                                position: "absolute",
-                                left: -81,
-                                top: "50%",
-                                transform: "translateY(-50%)",
-                              }}
-                            >
-                              上一张
-                            </Button>
-                            <Button
-                              onClick={this.downImg}
-                              style={{
-                                position: "absolute",
-                                right: -81,
-                                top: "50%",
-                                transform: "translateY(-50%)",
-                              }}
-                            >
-                              下一张
-                            </Button>
-                          </Modal>
+                          {
+                            window.adminData.isSuperAdmin
+                              ? <NewPicturesWall
+                                domId={"addService1"}
+                                fileList={this.getOrgCodeUrl}
+                                pictureUrl={this.state.orgCodeUrl}
+                                url="/api/admin/order/uploadOrderImg"
+                                orderNo={this.state.orderNo}
+                                sign="contract"
+                                deleteApi="/api/admin/order/deleteOrderImg"
+                              />
+                              : <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
+                                {this.state.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'} /> : <div />}
+                              </div>
+                          }
+
                           <Button
                             style={{
                               float: "right",
@@ -4569,78 +4605,50 @@ const IntentionCustomer = Form.create()(
                           wrapperCol={{ span: 18 }}
                           label="补充协议"
                         >
-                          {/*<Upload*/}
-                          {/*  className="demandDetailShow-upload"*/}
-                          {/*  listType="picture-card"*/}
-                          {/*  fileList={this.state.replenishUrl}*/}
-                          {/*  onPreview={(file) => {*/}
-                          {/*    this.setState({*/}
-                          {/*      previewImage: file.url || file.thumbUrl,*/}
-                          {/*      previewVisibles: true,*/}
-                          {/*    });*/}
-                          {/*  }}*/}
-                          {/*/>*/}
-                          <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
-                            {this.state.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'} /> : <div />}
-                          </div>
-                          <Modal
-                            maskClosable={false}
-                            footer={null}
-                            width={"50%"}
-                            visible={this.state.previewVisibles}
-                            onCancel={() => {
-                              this.setState({ previewVisibles: false, rotateDeg: 0 });
-                            }}
-                          >
-                            <img
-                              alt=""
-                              style={{
-                                width: "100%",
-                                transform: `rotate(${this.state.rotateDeg}deg)`,
-                              }}
-                              src={this.state.previewImage || ""}
-                            />
-                            <Button
-                              onClick={this.rotate}
-                              style={{
-                                position: "relative",
-                                left: "50%",
-                                transform: "translateX(-50%)",
-                              }}
-                            >
-                              旋转
-                            </Button>
-                            <Button
-                              onClick={this.upImgs}
-                              style={{
-                                position: "absolute",
-                                left: -81,
-                                top: "50%",
-                                transform: "translateY(-50%)",
-                              }}
-                            >
-                              上一张
-                            </Button>
-                            <Button
-                              onClick={this.downImgs}
-                              style={{
-                                position: "absolute",
-                                right: -81,
-                                top: "50%",
-                                transform: "translateY(-50%)",
-                              }}
-                            >
-                              下一张
-                            </Button>
-                          </Modal>
+                          {
+                            window.adminData.isSuperAdmin
+                              ? <NewPicturesWall
+                                domId={"addService2"}
+                                fileList={this.getReplenishUrl}
+                                pictureUrl={this.state.replenishUrl}
+                                url="/api/admin/order/uploadOrderImg"
+                                orderNo={this.state.orderNo}
+                                sign="supplement"
+                                deleteApi="/api/admin/order/deleteOrderImg"
+                              />
+                              : <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
+                                {this.state.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'} /> : <div />}
+                              </div>
+                          }
                         </FormItem>
                       </div>
-                      <ContentUrl
-                        processStatus={1}
-                        domId={"inquiryContents"}
-                        contentUrl={this.state.contentUrl}
-                        imgId={"inquiryContentsImg"}
-                      />
+                      {/* 服务内容 */}
+                      {
+                        window.adminData.isSuperAdmin
+                          ? <div class="clearfix">
+                            <FormItem
+                              labelCol={{ span: 4 }}
+                              wrapperCol={{ span: 18 }}
+                              label='服务内容'
+                            >
+                              <NewPicturesWall
+                                domId={"addServiceContent"}
+                                fileList={this.getContentUrl}
+                                pictureUrl={this.state.contentUrl}
+                                url="/api/admin/order/uploadOrderImg"
+                                orderNo={this.state.orderNo}
+                                sign="content"
+                                deleteApi="/api/admin/order/deleteOrderImg"
+                              />
+                            </FormItem>
+                          </div>
+                          : <ContentUrl
+                            processStatus={1}
+                            domId={"inquiryContents"}
+                            contentUrl={this.state.contentUrl}
+                            imgId={"inquiryContentsImg"}
+                          />
+                      }
                       <div className="clearfix">
                         <FormItem
                           className="half-item"

+ 18 - 46
js/component/manageCenter/order/orderNew/reject.jsx

@@ -44,45 +44,7 @@ import NewAddProject from "../../../common/projectOperation/newAddProject"
 import NewEditProject from "../../../common/projectOperation/newEditProject"
 import ContentUrl from './contentUrl';
 import UpdateSales from './updatesales';//修改销售类型
-//图片组件
-const PicturesWall = React.createClass({
-  getInitialState() {
-    return {
-      fileList: [],
-    }
-  },
-  handleChange(info) {
-    let fileList = info.fileList;
-    this.setState({
-      fileList
-    });
-    this.props.fileList(fileList);
-  },
-  componentWillReceiveProps(nextProps) {
-    this.state.fileList = nextProps.pictureUrl;
-    this.state.pojectApplicationUrl = undefined;
-  },
-  render() {
-    const { fileList } = this.state;
-    return (
-      <div style={{ display: "inline-block" }}>
-        <ImgList
-          domId={this.props.domId}
-          uploadConfig={{
-            action: globalConfig.context + "/api/admin/customer/uploadCustomerImg",
-            data: { 'sign': '' },
-            multiple: true,
-            listType: "picture-card",
-          }}
-          onChange={(infor) => {
-            this.handleChange(infor)
-          }}
-          fileList={fileList}
-        />
-      </div>
-    );
-  }
-});
+import PicturesWall from "./changeComponent/picturesWall.js";
 
 
 const IntentionCustomer = Form.create()(
@@ -1115,7 +1077,6 @@ const IntentionCustomer = Form.create()(
         }.bind(this)
       );
     },
-
     // 拆分详细
     showRes(record) {
       this.setState({
@@ -1128,7 +1089,6 @@ const IntentionCustomer = Form.create()(
         resVisible: false,
       });
     },
-
     //项目列表
     xiangmu(orderNos) {
       $.ajax({
@@ -1565,11 +1525,11 @@ const IntentionCustomer = Form.create()(
         this.refs.signFirstPayment.focus();
         return false;
       }
-      if (!theorgCodeUrl) {
-        message.warning("企业负责人不能为空");
-        this.refs.signFirstPayment.focus();
-        return false;
-      }
+      // if (!theorgCodeUrl) {
+      //   message.warning("企业负责人不能为空");
+      //   this.refs.signFirstPayment.focus();
+      //   return false;
+      // }
       if (
         this.state.approval == "特批通过" ||
         this.state.approval == "特批驳回"
@@ -2514,6 +2474,10 @@ const IntentionCustomer = Form.create()(
                           domId={'reject1'}
                           fileList={this.getOrgCodeUrl}
                           pictureUrl={this.state.orgCodeUrl}
+                          url="/api/admin/order/uploadOrderImg"
+                          orderNo={this.state.orderNo}
+                          sign="contract"
+                          deleteApi="/api/admin/order/deleteOrderImg"
                         />
                         <p>图片建议:要清晰。</p>
                       </FormItem>
@@ -2530,6 +2494,10 @@ const IntentionCustomer = Form.create()(
                           domId={'reject2'}
                           fileList={this.getReplenishUrl}
                           pictureUrl={this.state.replenishUrl}
+                          url="/api/admin/order/uploadOrderImg"
+                          orderNo={this.state.orderNo}
+                          sign="supplement"
+                          deleteApi="/api/admin/order/deleteOrderImg"
                         />
                         <p>图片建议:要清晰。</p>
                         <Button
@@ -2567,6 +2535,10 @@ const IntentionCustomer = Form.create()(
                           domId={'rejectContent'}
                           fileList={this.getContentUrl}
                           pictureUrl={this.state.contentUrl}
+                          url="/api/admin/order/uploadOrderImg"
+                          orderNo={this.state.orderNo}
+                          sign="content"
+                          deleteApi="/api/admin/order/deleteOrderImg"
                         />
                         <p><span style={{ color: "red", display: "inline-block" }}>(请将合同中的服务内容,截图上传!含服务年限,时间节点等;)</span>图片建议:要清晰。</p>
                       </FormItem>

+ 114 - 114
js/component/manageCenter/set/userManagementS/jurisdiction.jsx

@@ -21,8 +21,8 @@ import {
 } from 'antd';
 import Addjurisdiction from "./addjurisdiction.jsx"
 import './userMangagement.less'
-import { techAuditStatusList, station, post,urlType } from '../../../dataDic.js';
-import {ChooseList} from "../../order/orderNew/chooseList";
+import { techAuditStatusList, station, post, urlType } from '../../../dataDic.js';
+import { ChooseList } from "../../order/orderNew/chooseList";
 
 const TabPane = Tabs.TabPane;
 
@@ -37,10 +37,10 @@ const Jurisdiction = Form.create()(React.createClass({
 			dataType: "json",
 			crossDomain: false,
 			url: globalConfig.context + '/api/admin/permissions',
-			success: function(data) {
+			success: function (data) {
 				// console.log(data)
-				if(!data.data || !data.data.one) {
-					if(data.error && data.error.length) {
+				if (!data.data || !data.data.one) {
+					if (data.error && data.error.length) {
 						message.warning(data.error[0].message);
 					};
 				} else {
@@ -49,7 +49,7 @@ const Jurisdiction = Form.create()(React.createClass({
 					});
 				}
 			}.bind(this),
-		}).always(function() {
+		}).always(function () {
 			this.setState({
 				loading: false
 			});
@@ -76,18 +76,18 @@ const Jurisdiction = Form.create()(React.createClass({
 				dataIndex: 'id',
 				key: 'id',
 				render: (text, recard) => {
-					return(
+					return (
 						<div>
-							{recard.url.indexOf('.html#')<=0&&<Button type="primary" onClick={(e)=>{e.stopPropagation(),this.addNextURL(recard)}} style={{marginRight:'15px'}}>新建下级权限</Button>}
-	                        <Popconfirm
-	                                title={"是否真的删除?"}
-	                                onConfirm={(e)=>{this.delectRow(recard)}}
-	                                okText="确认"
-	                                cancelText="取消"
-	                                placement="topLeft">
-	                                <Button type="danger" onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-	                        </Popconfirm>
-                        </div>
+							{recard.url.indexOf('.html#') <= 0 && <Button type="primary" onClick={(e) => { e.stopPropagation(), this.addNextURL(recard) }} style={{ marginRight: '15px' }}>新建下级权限</Button>}
+							<Popconfirm
+								title={"是否真的删除?"}
+								onConfirm={(e) => { this.delectRow(recard) }}
+								okText="确认"
+								cancelText="取消"
+								placement="topLeft">
+								<Button type="danger" onClick={(e) => { e.stopPropagation() }}>删除</Button>
+							</Popconfirm>
+						</div>
 					)
 				}
 			}],
@@ -101,7 +101,7 @@ const Jurisdiction = Form.create()(React.createClass({
 		this.state.userDetaile = true;
 		this.state.datauser = record;
 		this.setState({
-			ids:record.id,
+			ids: record.id,
 			showDesc: true
 		});
 	},
@@ -118,8 +118,8 @@ const Jurisdiction = Form.create()(React.createClass({
 			data: {
 				id: ids.id
 			}
-		}).done(function(data) {
-			if(!data.error.length) {
+		}).done(function (data) {
+			if (!data.error.length) {
 				message.success('删除成功!');
 				this.setState({
 					loading: false,
@@ -139,7 +139,7 @@ const Jurisdiction = Form.create()(React.createClass({
 	closeDesc(e, s) {
 		this.state.userDetaile = false;
 		this.state.showDesc = e;
-		if(s) {
+		if (s) {
 			this.loadData();
 		};
 	},
@@ -165,25 +165,25 @@ const Jurisdiction = Form.create()(React.createClass({
 		})
 	},
 	//项目任务旧数据处理
-	 handles(){
+	handles() {
 		$.ajax({
-      method: "get",
-      dataType: "json",
-      crossDomain: false,
-      url: globalConfig.context + "/open/pushOrderArrearsDun",
-      data: {},
-      success: function (data) {
-		  if(data.error.length) {
-			  message.warning(data.error[0].message)
-		  }else {
-			  message.warning("调用成功!")
-		  }
-	  }.bind(this),
-    }).always(
-      function () {
-      }.bind(this)
-    );
-    },
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/open/pushOrderArrearsDun",
+			data: {},
+			success: function (data) {
+				if (data.error.length) {
+					message.warning(data.error[0].message)
+				} else {
+					message.warning("调用成功!")
+				}
+			}.bind(this),
+		}).always(
+			function () {
+			}.bind(this)
+		);
+	},
 	//新建二级接口保存
 	nextSubmit(e) {
 		e.preventDefault();
@@ -198,14 +198,14 @@ const Jurisdiction = Form.create()(React.createClass({
 			data: {
 				superId: this.state.preName,
 				name: this.state.name, //接口名称
-				type:this.state.urlType,//接口类型
+				type: this.state.urlType,//接口类型
 				url: this.state.url //接口路径
 			}
-		}).done(function(data) {
+		}).done(function (data) {
 			this.setState({
 				loading: false
 			});
-			if(!data.error.length) {
+			if (!data.error.length) {
 				message.success('保存成功!');
 				this.addNext();
 				this.loadData();
@@ -234,14 +234,14 @@ const Jurisdiction = Form.create()(React.createClass({
 			wrapperCol: { span: 14 },
 		};
 		const hasSelected = this.state.selectedRowKeys.length > 0;
-		return(
+		return (
 			<div className="user-content" >
-                <div className="content-title">
+				<div className="content-title">
 					<Tabs defaultActiveKey="1" className="test">
 						<TabPane tab="操作" key="1">
 							<div className="user-search">
 								{/*<Button type="primary" onClick={this.handles} style={{marginLeft:'10px',float:'right'}}>测试欠款催发</Button>*/}
-								<Button type="primary" className="addButton" onClick={this.addClick} style={{marginBottom:'15px'}}>新增权限<Icon type="user"/></Button>
+								<Button type="primary" className="addButton" onClick={this.addClick} style={{ marginBottom: '15px' }}>新增权限<Icon type="user" /></Button>
 							</div>
 						</TabPane>
 						<TabPane tab="更改表格显示数据" key="2">
@@ -256,78 +256,78 @@ const Jurisdiction = Form.create()(React.createClass({
 							</div>
 						</TabPane>
 					</Tabs>
-	                <div className="patent-table">
-	                    <Spin spinning={this.state.loading}>
-	                        <Table columns={
+					<div className="patent-table">
+						<Spin spinning={this.state.loading}>
+							<Table columns={
 								this.state.changeList
 									? this.state.changeList
 									: this.state.columns
-								}
-							    style={{
-								   cursor: 'pointer',
-							    }}
-	                            dataSource={this.state.dataSource}
-	                            pagination={false}
-	                            onRowClick={this.tableRowClick} />
-	                    </Spin>
-	                </div>
-	                <Addjurisdiction
-	                    userDetaile={this.state.userDetaile}
-	                    datauser={this.state.datauser}
-	                    showDesc={this.state.showDesc}
-	                    closeDesc={this.closeDesc} />
-	            </div >
-	            <Modal maskClosable={false} visible={this.state.addnextVisible}
-                        onOk={this.addNext} onCancel={this.nextCancel}
-                        width='600px'
-                        title='新建下级权限模块'
-                        footer=''
-                        className="admin-desc-content">
-			            <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
-			                <Spin spinning={this.state.loading}>
-			                        <div className="clearfix">
-				                    	<FormItem className="half-middle"
-					                            {...formItemLayout}
-					                            label="接口名称" >
-				                                    <Input placeholder="接口名称" value={this.state.name} style={{width:'230px'}}
-				                                    onChange={(e)=>{this.setState({name:e.target.value})}} required="required"/>
-					                   			<span className="mandatory">*</span>
-					                   </FormItem>
-					                    <FormItem className="half-middle"
-					                            {...formItemLayout}
-					                            label="接口路径" >
-				                                    <Input placeholder="接口路径" value={this.state.url} style={{width:'230px'}}
-				                                    onChange={(e)=>{this.setState({url:e.target.value})}} required="required"/>
-					                    		<span className="mandatory">*</span>
-					                    </FormItem>
-					                     <FormItem className="half-middle"
-					                            {...formItemLayout}
-					                            label="接口类型" >
-			                                    <Select placeholder="选择接口类型" style={{width:'230px'}}
-						                            value={this.state.urlType}
-						                            onChange={(e) => { this.setState({ urlType: e }) }}>
-						                            {
-					                                    urlType.map(function (item) {
-					                                            return <Select.Option key={item.value} >{item.key}</Select.Option>
-					                                    })
-					                                }
-							                    </Select>
-					                    		<span className="mandatory">*</span>
-					                    </FormItem>
-			                   		    <FormItem className="half-middle"
-					                            {...formItemLayout}
-					                            label="上级功能模块" >
-				                                   <span>{this.state.preName}</span>
-					                    </FormItem>
-				                    </div>
-			                    <FormItem wrapperCol={{ span: 12, offset: 4 }} className="half-middle">
-			                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
-			                        <Button className="set-submit" type="ghost" onClick={this.nextCancel}>取消</Button>
-			                    </FormItem>
-			                </Spin>
-			            </Form >
-			        </Modal>
-            </div>
+							}
+								style={{
+									cursor: 'pointer',
+								}}
+								dataSource={this.state.dataSource}
+								pagination={false}
+								onRowClick={this.tableRowClick} />
+						</Spin>
+					</div>
+					<Addjurisdiction
+						userDetaile={this.state.userDetaile}
+						datauser={this.state.datauser}
+						showDesc={this.state.showDesc}
+						closeDesc={this.closeDesc} />
+				</div >
+				<Modal maskClosable={false} visible={this.state.addnextVisible}
+					onOk={this.addNext} onCancel={this.nextCancel}
+					width='600px'
+					title='新建下级权限模块'
+					footer=''
+					className="admin-desc-content">
+					<Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
+						<Spin spinning={this.state.loading}>
+							<div className="clearfix">
+								<FormItem className="half-middle"
+									{...formItemLayout}
+									label="接口名称" >
+									<Input placeholder="接口名称" value={this.state.name} style={{ width: '230px' }}
+										onChange={(e) => { this.setState({ name: e.target.value }) }} required="required" />
+									<span className="mandatory">*</span>
+								</FormItem>
+								<FormItem className="half-middle"
+									{...formItemLayout}
+									label="接口路径" >
+									<Input placeholder="接口路径" value={this.state.url} style={{ width: '230px' }}
+										onChange={(e) => { this.setState({ url: e.target.value }) }} required="required" />
+									<span className="mandatory">*</span>
+								</FormItem>
+								<FormItem className="half-middle"
+									{...formItemLayout}
+									label="接口类型" >
+									<Select placeholder="选择接口类型" style={{ width: '230px' }}
+										value={this.state.urlType}
+										onChange={(e) => { this.setState({ urlType: e }) }}>
+										{
+											urlType.map(function (item) {
+												return <Select.Option key={item.value} >{item.key}</Select.Option>
+											})
+										}
+									</Select>
+									<span className="mandatory">*</span>
+								</FormItem>
+								<FormItem className="half-middle"
+									{...formItemLayout}
+									label="上级功能模块" >
+									<span>{this.state.preName}</span>
+								</FormItem>
+							</div>
+							<FormItem wrapperCol={{ span: 12, offset: 4 }} className="half-middle">
+								<Button className="set-submit" type="primary" htmlType="submit">保存</Button>
+								<Button className="set-submit" type="ghost" onClick={this.nextCancel}>取消</Button>
+							</FormItem>
+						</Spin>
+					</Form >
+				</Modal>
+			</div>
 		);
 	}
 }));

+ 1 - 1
package.json

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

File diff suppressed because it is too large
+ 6826 - 6973
yarn.lock