hujie123456 5 yıl önce
ebeveyn
işleme
8e3bc79ef1

+ 347 - 52
js/component/manageCenter/financialManage/distribute/huiKuan.jsx

@@ -54,17 +54,17 @@ const HuiKuan = React.createClass({
         // 订单编号
         orderNo: this.state.orderNoSearch,
         // 合同编号
-        contractNo: this.state.contractSearch,
+        contractNo: this.state.nameSearch,
         // 付款方
-        corporateName: this.state.corporateName,
+        corporateName: this.state.payFrom,
         // 营销员名字
         adminName: this.state.adminName,
         // 客户名称
         nickname: this.state.nickname,
         // 订单所属部门id
-        orderDepId: this.state.orderDepId,
+        orderDepId: this.state.orderBranch,
         // 管理员部门id
-        adminDepId: this.state.adminDepId
+        adminDepId: this.state.principalList
       },
       success: function(data) {
         let theArr = [];
@@ -87,7 +87,8 @@ const HuiKuan = React.createClass({
               amount: thisdata.amount,
               receivablesTimes: thisdata.receivablesTimes,
               createTimes: thisdata.createTimes,
-              remarks: thisdata.remarks
+              remarks: thisdata.remarks,
+              financialPayNo: thisdata.financialPayNo
             });
           }
         }
@@ -109,9 +110,7 @@ const HuiKuan = React.createClass({
           amount: data.data.count.amount
         });
 
-          console.log(this.state.dataSource);
-
-        
+        console.log(this.state.dataSource);
       }.bind(this)
     }).always(
       function() {
@@ -207,7 +206,17 @@ const HuiKuan = React.createClass({
           key: "orderNo"
         },
         {
+          title: "流水编号",
+          dataIndex: "financialPayNo",
+          key: "financialPayNo"
+        },
+        {
           title: "客户名称",
+          dataIndex: "nickname",
+          key: "nickname"
+        },
+        {
+          title: "付款方",
           dataIndex: "corporateName",
           key: "corporateName"
         },
@@ -236,11 +245,11 @@ const HuiKuan = React.createClass({
             if (status == 0) {
               str = "正常";
               color = "#87d068";
-            } else if(status == 1) {
+            } else if (status == 1) {
               str = "重复";
               color = "#f50";
-            }else {
-              str = "异常"
+            } else {
+              str = "异常";
               color = "#000";
             }
             return <Tag color={color}>{str}</Tag>;
@@ -292,7 +301,7 @@ const HuiKuan = React.createClass({
       upLoadFlag: false,
       upLoad: {
         name: "file",
-        action: "https://www.mocky.io/v2/5cc8019d300000980a055e76",
+        action: globalConfig.context + "/api/admin/receivables/import",
         headers: {
           authorization: "authorization-text"
         },
@@ -307,8 +316,9 @@ const HuiKuan = React.createClass({
 
             this.setState({
               upLoadFlag: this.state.upLoadFlag,
-              dataSource
             });
+            // window.location.reload()
+            this.loadData()
           } else if (info.file.status === "error") {
             message.error(`${info.file.name} 文件上传失败`);
 
@@ -353,13 +363,15 @@ const HuiKuan = React.createClass({
     this.state.nameSearch = "";
     this.state.releaseDate = [];
     this.state.orderNoSearch = "";
-    this.state.userName = "";
+    this.state.adminName = "";
     this.state.departmenttList = [];
-    this.state.orderUserName = "";
+    this.state.nickname = "";
     this.state.principalList = [];
     this.state.payFrom = "";
-    this.state.orderStatus = [];
-    // this.loadData();
+    this.state.statusSearch = [];
+    this.state.orderBranch = [];
+    this.state.statusSearch = [];
+    this.loadData();
   },
 
   changeList(arr) {
@@ -381,22 +393,92 @@ const HuiKuan = React.createClass({
   },
   showModal() {
     this.setState({
-      visible: true
+      visible: true,
+      choose: true
     });
     this.state.dataSource.forEach((item) => {
       if(item.key == this.state.selectedRowKeys[0]) {
         this.setState({
-          modalData: item
+          modalData: JSON.parse(JSON.stringify(item))
         })
+        console.log(this.state.modalData);
       }
     })
+    
+    
   },
 
   handleOk() {
     this.setState({ loading: true });
-    setTimeout(() => {
-      this.setState({ loading: false, visible: false });
-    }, 3000);
+
+    if(!this.state.choose) {
+      $.ajax({
+        method: "POST",
+        dataType: "json",
+        crossDomain: false,
+        url: globalConfig.context + "/api/admin/receivables/addReceivables",
+        data: {
+          orderNo: this.state.modalData.orderNo,
+          amount: this.state.modalData.amount,
+          receivablesTimes: this.state.modalData.receivablesTimes,
+          // totalAmount: this.state.modalData.totalAmount,
+          // contractNo: this.state.modalData.contractNo,
+          // nickname: this.state.modalData.nickname,
+          remarks: this.state.modalData.remarks,
+          corporateName: this.state.modalData.corporateName,
+          financialPayNo: this.state.modalData.financialPayNo
+        },
+        success: function(data) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          } else {
+            console.log("成功", data);
+            this.loadData();
+            this.setState({ loading: false, visible: false });
+          }
+        }.bind(this)
+      }).always(
+        function() {
+          this.setState({
+            loading: false
+          });
+        }.bind(this)
+      );
+    }else{
+      $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/receivables/updateReceivables",
+      data: {
+        orderNo: this.state.modalData.orderNo,
+        amount: this.state.modalData.amount,
+        receivablesTimes: this.state.modalData.receivablesTimes,
+        // totalAmount: this.state.modalData.totalAmount,
+        // contractNo: this.state.modalData.contractNo,
+        // nickname: this.state.modalData.nickname,
+        remarks: this.state.modalData.remarks,
+        id: this.state.modalData.key
+      },
+      success: function(data) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }else {
+            console.log("成功",data);
+            this.loadData()
+            this.setState({ loading: false, visible: false });
+          }
+      }.bind(this)
+    }).always(
+      function() {
+        this.setState({
+          loading: false
+        });
+      }.bind(this)
+    );}
+
+      // this.setState({ loading: false, visible: false });
+
   },
 
   handleCancel() {
@@ -407,10 +489,49 @@ const HuiKuan = React.createClass({
   },
   delChecked() {
     console.log("被删除列表",this.state.selectedRowKeys);
+    let ids = this.state.selectedRowKeys.join(",")
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/receivables/deleteReceivables",
+      data: {
+        ids,
+        type: 0
+      },
+      success: function(data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    }).always(
+      function() {
+        this.loadData()
+      }.bind(this)
+    );
     // this.loadData()
+
   },
   delAllChecked() {
     console.log("删除全部");
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/receivables/deleteReceivables",
+      data: {
+        type: 1
+      },
+      success: function(data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    }).always(
+      function() {
+        this.loadData();
+      }.bind(this)
+    );
     // this.loadData()
     // console.log("aaa", $(".ant-modal-content"));
     
@@ -418,9 +539,47 @@ const HuiKuan = React.createClass({
   },
   mergeAll() {
     console.log("合并全部");
-    // this.loadData()
-    
+    $.ajax({
+      method: "POST",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/receivables/batchImport",
+      data: {},
+      success: function(data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        }else {
+          message.success("合并成功!请在收款列表中,查看已收款情况。");
+        }
+      }.bind(this)
+    }).always(
+      function() {
+        this.loadData();
+      }.bind(this)
+    );
+    // message.success("合并成功!请在收款列表中,查看已收款情况。");
   },
+  addModal() {
+    this.state.modalData = {}
+    this.setState({
+      modalData: this.state.modalData,
+      visible: true,
+      choose: false
+    })
+  },
+
+  download() {
+    window.location.href =
+      globalConfig.context +
+      "/api/admin/receivables/downloadTemplate?" +
+      "sign=receivbles_template";
+  },
+  // daoHui() {
+  //   window.location.href =
+  //     globalConfig.context +
+  //     "/api/admin/receivables/exportReceivables"
+  // },
+
   render() {
     const formItemLayout = {
       labelCol: { span: 8 },
@@ -459,19 +618,18 @@ const HuiKuan = React.createClass({
               />
               <Input
                 placeholder="客户名称"
-                value={this.state.userName}
+                value={this.state.nickname}
                 onChange={e => {
-                  this.setState({ userName: e.target.value });
+                  this.setState({ nickname: e.target.value });
                 }}
               />
               <Select
                 placeholder="状态"
                 style={{ width: 150, marginRight: 10 }}
-                value={this.state.orderStatus}
+                value={this.state.statusSearch}
                 onChange={e => {
-                  this.setState({ orderStatus: e });
-                  console.log("状态",e);
-                  
+                  this.setState({ statusSearch: e });
+                  console.log("状态", e);
                 }}
               >
                 <Select.Option key={0}>正常</Select.Option>
@@ -481,13 +639,28 @@ const HuiKuan = React.createClass({
 
               <Input
                 placeholder="订单负责人"
-                value={this.state.orderUserName}
+                value={this.state.adminName}
                 onChange={e => {
-                  this.setState({ userName: e.target.value });
+                  this.setState({ adminName: e.target.value });
                 }}
               />
 
               <Select
+                placeholder="订单所属部门"
+                style={{ width: 150, marginRight: 10 }}
+                value={this.state.orderBranch}
+                onChange={e => {
+                  this.setState({ orderBranch: e });
+                }}
+              >
+                {departmentArr.map(function(item) {
+                  return (
+                    <Select.Option key={item.id}>{item.name}</Select.Option>
+                  );
+                })}
+              </Select>
+
+              <Select
                 placeholder="负责人所属部门"
                 style={{ width: 150, marginRight: 10 }}
                 value={this.state.principalList}
@@ -541,7 +714,10 @@ const HuiKuan = React.createClass({
                 // zIndex: 99,
                 // left: 400,
                 // transform: "translateX(-50%)",
-                display:"inline-block"
+                display: "inline-block",
+                width: 119,
+                height: 28,
+                overflow: "hidden"
               }}
             >
               <Upload {...this.state.upLoad}>
@@ -558,15 +734,39 @@ const HuiKuan = React.createClass({
             <Button
               type="primary"
               style={{ marginBottom: 20, marginLeft: 15 }}
+              onClick={this.download}
+            >
+              下载回款列表模板
+            </Button>
+
+            {/* <Button
+              type="primary"
+              style={{ marginBottom: 20, marginLeft: 15 }}
+              onClick={this.daoHui}
+            >
+              导出回款列表
+            </Button> */}
+
+            <Button
+              type="primary"
+              style={{ marginBottom: 20, marginLeft: 15 }}
               disabled={this.state.selectedRowKeys.length == 1 ? false : true}
               onClick={this.showModal}
             >
               修改单条数据
             </Button>
 
+            <Button
+              type="primary"
+              style={{ marginBottom: 20, marginLeft: 15 }}
+              onClick={this.addModal}
+            >
+              添加单条数据
+            </Button>
+
             <Popconfirm
               placement="top"
-              title={"您确定要删除选中项的回款信息吗?删除后,不可以修改!"}
+              title={"您确定要删除选中项的回款信息吗?删除后,不可以恢复!"}
               onConfirm={this.delChecked}
               okText="确定"
               cancelText="取消"
@@ -583,7 +783,7 @@ const HuiKuan = React.createClass({
 
             <Popconfirm
               placement="top"
-              title={"您确定要删除全部的回款信息吗?删除后,不可以修改!"}
+              title={"您确定要删除全部的回款信息吗?删除后,不可以恢复!"}
               onConfirm={this.delAllChecked}
               okText="确定"
               cancelText="取消"
@@ -606,7 +806,7 @@ const HuiKuan = React.createClass({
               <Button
                 type="danger"
                 style={{ marginBottom: 20, marginLeft: 15 }}
-                disabled={this.state.dataSource.length != 0}
+                disabled={this.state.dataSource.length == 0}
               >
                 确认合并回款
               </Button>
@@ -632,7 +832,7 @@ const HuiKuan = React.createClass({
         </div>
 
         <Modal
-          width={800}
+          width={500}
           visible={visible}
           title="收款记录"
           onOk={this.handleOk}
@@ -651,23 +851,99 @@ const HuiKuan = React.createClass({
             </Button>
           ]}
         >
-          <p style={{ marginBottom: 10 }}>
-            合同编号:{this.state.modalData.name}
+          <p
+            style={{
+              marginBottom: 10,
+              display: this.state.choose ? "block" : "none"
+            }}
+          >
+            合同编号:
+            <Input
+              style={{
+                width: "auto"
+              }}
+              disabled={this.state.choose}
+              value={this.state.modalData.contractNo}
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.contractNo = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
           </p>
           <p style={{ marginBottom: 10 }}>
-            订单编号:{this.state.modalData.name}
+            订单编号:
+            <Input
+              style={{ width: "auto" }}
+              value={this.state.modalData.orderNo}
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.orderNo = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
           </p>
           <p style={{ marginBottom: 10 }}>
-            客户名称:{this.state.modalData.name}
+            流水编号:
+            <Input
+              style={{ width: "auto" }}
+              value={this.state.modalData.financialPayNo}
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.financialPayNo = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
           </p>
           <p style={{ marginBottom: 10 }}>
-            合同额(万元):
+            付款方
             <Input
               style={{ width: "auto" }}
-              value={this.state.modalData.hetong}
+              value={this.state.modalData.corporateName}
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.corporateName = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
+          </p>
+          <p
+            style={{
+              marginBottom: 10,
+              display: this.state.choose ? "block" : "none"
+            }}
+          >
+            客户名称:
+            <Input
+              style={{
+                width: "auto"
+              }}
+              disabled={this.state.choose}
+              value={this.state.modalData.nickname}
               onChange={e => {
                 let val = e.target.value;
-                this.state.modalData.hetong = val;
+                this.state.modalData.nickname = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
+          </p>
+          <p
+            style={{
+              marginBottom: 10,
+              display: this.state.choose ? "block" : "none"
+            }}
+          >
+            合同额(万元):
+            <Input
+              style={{
+                width: "auto",
+                display: this.state.choose ? "inline-block" : "none"
+              }}
+              disabled={this.state.choose}
+              value={this.state.modalData.totalAmount}
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.totalAmount = val;
                 this.setState({ modalData: this.state.modalData });
               }}
             />
@@ -676,10 +952,10 @@ const HuiKuan = React.createClass({
             本次回款(万元):
             <Input
               style={{ width: "auto" }}
-              value={this.state.modalData.benci}
+              value={this.state.modalData.amount}
               onChange={e => {
                 let val = e.target.value;
-                this.state.modalData.benci = val;
+                this.state.modalData.amount = val;
                 this.setState({ modalData: this.state.modalData });
               }}
             />
@@ -689,9 +965,13 @@ const HuiKuan = React.createClass({
             <DatePicker
               showTime
               placeholder="选择回款时间"
-              value={moment(this.state.modalData.huiTime, "YYYY-MM-DD")}
+              value={
+                this.state.modalData.receivablesTimes
+                  ? moment(this.state.modalData.receivablesTimes, "YYYY-MM-DD")
+                  : ""
+              }
               onChange={(v, e) => {
-                this.state.modalData.huiTime = e;
+                this.state.modalData.receivablesTimes = e;
                 console.log(e);
 
                 this.setState({ modalData: this.state.modalData });
@@ -699,8 +979,23 @@ const HuiKuan = React.createClass({
               onOk={() => {}}
             />
           </p>
-          <p style={{ marginBottom: 10 }}>
-            批量导入时间:{this.state.modalData.daoTime}
+          <p
+            style={{
+              marginBottom: 10,
+              display: this.state.choose ? "block" : "none"
+            }}
+          >
+            批量导入时间:
+            <Input
+              style={{ width: "auto" }}
+              value={this.state.modalData.createTimes}
+              disabled
+              onChange={e => {
+                let val = e.target.value;
+                this.state.modalData.createTimes = val;
+                this.setState({ modalData: this.state.modalData });
+              }}
+            />
           </p>
           <p style={{ marginBottom: 10 }}>
             <span style={{ display: "inline-block", marginBottom: 20 }}>
@@ -708,9 +1003,9 @@ const HuiKuan = React.createClass({
             </span>
             <TextArea
               style={{ width: "70%" }}
-              value={this.state.modalData.remake}
+              value={this.state.modalData.remarks}
               onChange={e => {
-                this.state.modalData.remake = e.target.value;
+                this.state.modalData.remarks = e.target.value;
                 console.log(e);
 
                 this.setState({ modalData: this.state.modalData });

+ 8 - 2
js/component/manageCenter/financialManage/distribute/shouKuang.jsx

@@ -375,6 +375,11 @@ const ShouKuang = React.createClass({
           }
         },
         {
+          title: "收款类型",
+          dataIndex: "type",
+          key: "type"
+        },
+        {
           title: "财务流水时间",
           dataIndex: "financialPayTimes",
           key: "financialPayTimes"
@@ -398,7 +403,7 @@ const ShouKuang = React.createClass({
           title: "创建时间",
           dataIndex: "createTimes",
           key: "createTimes"
-        },
+        }
       ],
       waterData: []
     };
@@ -658,7 +663,8 @@ const ShouKuang = React.createClass({
               financialPayNo: thisdata.financialPayNo,
               createrName: thisdata.createrName,
               saleName: thisdata.saleName,
-              createTimes: thisdata.createTimes
+              createTimes: thisdata.createTimes,
+              type: thisdata.type == 0 ? "手工" : "批量"
             });
           }
         }

+ 7 - 1
js/component/manageCenter/financialManage/flowWater/myWater.jsx

@@ -95,7 +95,8 @@ const MyWater = React.createClass({
               financialPayNo: thisdata.financialPayNo,
               createrName: thisdata.createrName,
               saleName: thisdata.saleName,
-              createTimes: thisdata.createTimes
+              createTimes: thisdata.createTimes,
+              type: thisdata.type == 0 ? "手工" : "批量"
             });
           }
         }
@@ -171,6 +172,11 @@ const MyWater = React.createClass({
           }
         },
         {
+          title: "收款类型",
+          dataIndex: "type",
+          key: "type"
+        },
+        {
           title: "财务流水时间",
           dataIndex: "financialPayTimes",
           key: "financialPayTimes"

+ 6 - 1
js/component/manageCenter/order/orderNew/changeComponent/changeDetailJsjl.js

@@ -172,6 +172,11 @@ class ChangeDetail extends Component {
     this.setState({
       buttonStatus: !this.state.buttonStatus
     });
+    window.setTimeout(() => {
+      this.setState({
+        reason: ""
+      });
+    }, 100);
   }
 
   // loadData() {
@@ -622,7 +627,7 @@ class ChangeDetail extends Component {
           )} */}
         </div>
         {this.props.processState === this.props.data.processState ? (
-          this.state.buttonStatus ? (
+          1 ? (
             <div
               style={{
                 display: this.props.data.isExamine == 0 ? "block" : "none"

+ 7 - 2
js/component/manageCenter/order/orderNew/changeComponent/changeDetailYxgly.js

@@ -204,8 +204,13 @@ class ChangeDetail extends Component {
   //同意拒绝按钮的有无
   changeButtonStatus() {
     this.setState({
-      buttonStatus: !this.state.buttonStatus
+      buttonStatus: !this.state.buttonStatus,
     });
+    window.setTimeout(() => {
+      this.setState({
+        reason: ""
+      })
+    },100)
   }
 
   render() {
@@ -560,7 +565,7 @@ class ChangeDetail extends Component {
         </div>
 
         {this.props.processState === this.props.data.processState ? (
-          this.state.buttonStatus ? (
+          1 ? (
             <div>
               <div className="clearfix">
                 <FormItem