dev01 11 months ago
parent
commit
edf25e431e

+ 464 - 11
js/component/manageCenter/financialManage/account/accountTotal.jsx

@@ -15,7 +15,10 @@ import {
 } from "antd";
 import { ChooseList } from "../../order/orderNew/chooseList";
 import { ShowModal, getAccountName, getSecondaryAccountName } from "../../../tools"
+import { accountType, accountStatus } from "@/dataDic";
 import ShowModalDiv from "@/showModal.jsx";
+import OrderDetail from '../../order/orderNew/changeComponent/orderDetail';
+import './index.less';
 
 const FormItem = Form.Item;
 const { RangePicker } = DatePicker;
@@ -60,26 +63,65 @@ const AccountTotal = React.createClass({
           },
         },
         {
-          title: "合同总额/已收款",
+          title: "合同总额/已收款(万元)",
           dataIndex: "totalAmount",
           key: "totalAmount",
           render: (text, record) => {
             return (
-              <div>
+              <div
+                className='receiveCount'
+                onClick={(e) => {
+                  e.stopPropagation();
+                  this.xiangqing(record.orderNo)
+                  this.xiangmu(record.orderNo)
+                  this.jiedian(record.orderNo)
+                  this.jiedianNew(record.orderNo)
+                  this.setState({
+                    visibleD: true,
+                    orderNo: record.orderNo,
+                  })
+                }}
+              >
                 {text + " / " + record.settlementAmount}
               </div>
             );
           },
         },
         {
-          title: "报销总额",
+          title: "报销总额(元)",
           dataIndex: "expenseAmount",
           key: "expenseAmount",
+          render: (text, record) => {
+            return (
+              <div
+                className='receiveCount'
+                onClick={(e) => {
+                  e.stopPropagation();
+                  this.tableRowClick(record)
+                }}
+              >
+                {text}
+              </div>
+            );
+          },
         },
         {
-          title: "已付成本",
+          title: "已付成本(万元)",
           dataIndex: "paymentAmount",
           key: "paymentAmount",
+          render: (text, record) => {
+            return (
+              <div
+                className='receiveCount'
+                onClick={(e) => {
+                  e.stopPropagation();
+                  this.tableRowClick(record)
+                }}
+              >
+                {text}
+              </div>
+            );
+          },
         },
         {
           title: "报销人数/天数/报销次数",
@@ -87,7 +129,13 @@ const AccountTotal = React.createClass({
           key: "peopleCount",
           render: (text, record) => {
             return (
-              <div>
+              <div
+                className='receiveCount'
+                onClick={(e) => {
+                  e.stopPropagation();
+                  this.tableRowClick(record)
+                }}
+              >
                 {text + " / " + record.days + " / " + record.expenseCount}
               </div>
             );
@@ -99,14 +147,130 @@ const AccountTotal = React.createClass({
           key: "notExamine",
           render: (text, record) => {
             return (
-              <div>
+              <div
+                className='receiveCount'
+                onClick={(e) => {
+                  e.stopPropagation();
+                  this.tableRowClick(record)
+                }}
+              >
                 {text + " / " + record.rejectCount}
               </div>
             );
           },
         },
       ],
+      visible: false,
+      columnsA: [
+        {
+          title: "类型",
+          dataIndex: "type",
+          key: "type",
+          render: (text, record) => {
+            return (
+              <span>
+                {(text == 0 && !record.typeOther)
+                  ? getAccountName(record.sonType, record.sonTypeOther)
+                  : getSecondaryAccountName(text, record.typeOther)}
+              </span>
+            );
+          },
+        },
+        {
+          title: "报销时间",
+          dataIndex: "releaseStart",
+          key: "releaseStart",
+          render: (text, record) => {
+            return (
+              <div>
+                <div style={{ textAlign: "center" }}>{text}</div>
+                <div style={{ textAlign: "center" }}>至</div>
+                <div style={{ textAlign: "center" }}>{record.releaseEnd}</div>
+              </div>
+            );
+          },
+        },
+        {
+          title: "工时",
+          dataIndex: "duration",
+          key: "duration",
+        },
+        {
+          title: "报销金额(元)",
+          dataIndex: "amount",
+          key: "amount",
+          width: 70,
+        },
+        {
+          title: "实报金额(元)",
+          dataIndex: "realAmount",
+          key: "realAmount",
+          width: 70,
+        },
+        {
+          title: "天数",
+          dataIndex: "days",
+          key: "days",
+        },
+        {
+          title: "报销编号",
+          dataIndex: "checkNo",
+          key: "checkNo",
+        },
+        {
+          title: "报销合同",
+          dataIndex: "contractNo",
+          key: "contractNo",
+        },
+        {
+          title: "客户",
+          dataIndex: "buyerName",
+          key: "buyerName",
+        },
+        {
+          title: "报销人",
+          dataIndex: "aname",
+          key: "aname",
+        },
 
+        {
+          title: "财务负责人",
+          dataIndex: "financeName",
+          key: "financeName",
+        },
+        {
+          title: "报销公司/支付公司",
+          dataIndex: "payDepName",
+          key: "payDepName",
+          render: (text, record) => {
+            return (
+              <div>
+                <div>{record.applyDepName || ""}</div>
+                <div>{text || ""}</div>
+              </div>
+            );
+          },
+        },
+        {
+          title: "发起时间",
+          dataIndex: "createTimeStr",
+          key: "createTimeStr",
+        },
+        {
+          title: "状态",
+          dataIndex: "status",
+          key: "status",
+          render: (text, record) => {
+            return (
+              <span style={{ color: accountStatus[text].color }}>
+                {accountStatus[text].label}
+              </span>
+            );
+          },
+        },
+      ],
+      dataSourceA: [],
+      visibleD: false,
     };
   },
 
@@ -197,12 +361,10 @@ const AccountTotal = React.createClass({
       }.bind(this)
     );
   },
-
   // 搜索
   search() {
     this.loadData();
   },
-
   // 重置
   reset() {
     this.setState({
@@ -228,7 +390,6 @@ const AccountTotal = React.createClass({
     });
   },
 
-
   export() {
     this.setState({
       exportExecLoading: true
@@ -255,12 +416,11 @@ const AccountTotal = React.createClass({
       })
     }.bind(this));
   },
-
   // 下载
   download(fileName) {
     window.location.href = globalConfig.context + "/open/download?fileName=" + fileName
   },
-
+  // 清理缓存
   getCountsClear() {
     this.setState({
       loading: true,
@@ -291,6 +451,260 @@ const AccountTotal = React.createClass({
     );
   },
 
+  tableRowClick(e) {
+    this.setState({
+      visible: true,
+      contractNo: e.contractNo,
+    }, () => {
+      this.getListA()
+    })
+  },
+
+  getListA() {
+    this.setState({
+      loading: true,
+    });
+    let data = {
+      pageNo: 1,
+      pageSize: 9999,
+      contractNo: this.state.contractNo,
+    };
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/expenseAccount/detailsList",
+      data: data,
+      success: function (data) {
+        ShowModal(this);
+        this.setState({
+          loading: false,
+        });
+        if (data.error && data.error.length === 0) {
+          if (data.data.list) {
+            this.setState({
+              dataSourceA: data.data.list,
+              totalAmountA: data.data.totalAmount,
+            });
+          }
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+  //订单详情
+  xiangqing(orderNos) {
+    this.setState({
+      orderData: {}
+    }, () => {
+      $.ajax({
+        method: "get",
+        dataType: "json",
+        crossDomain: false,
+        url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
+        data: {
+          orderNo: orderNos
+        },
+        success: function (data) {
+          if (data.error.length || data.data.list == "") {
+            if (data.error && data.error.length) {
+              message.warning(data.error[0].message);
+            }
+          } else {
+            let thisdata = data.data;
+            this.setState({
+              orderUid: thisdata.uid,
+              userName: thisdata.userName,
+              primaryOrderNo: thisdata.primaryOrder,
+              additionalOrder: thisdata.additionalOrder,
+              contractNo: thisdata.contractNo,
+              // arrears: thisdata.arrears,
+              orderData: thisdata,
+              isAddition: thisdata.additionalOrder ? true : false,
+              deleteSign: thisdata.deleteSign,
+            });
+          }
+        }.bind(this)
+      });
+    });
+  },
+  //项目列表
+  xiangmu(orderNos) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
+      data: {
+        orderNo: orderNos
+      },
+      success: function (data) {
+        let theArr = [];
+
+        if (data.error.length || data.data.list == "") {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+        } else {
+          for (let i = 0; i < data.data.length; i++) {
+            let thisdata = data.data[i];
+            thisdata.key = i;
+            thisdata.sort = thisdata.cSort;
+            theArr.push(thisdata);
+          }
+        }
+        this.setState({
+          dataSourceX: theArr
+        });
+      }.bind(this)
+    });
+  },
+  //节点列表
+  jiedian(orderNos) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
+      data: {
+        orderNo: orderNos
+      },
+      success: function (data) {
+        let theArr = [];
+        let thisData = [];
+        if (data.error.length || data.data.list == "") {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+        } else {
+          for (let i = 0; i < data.data.length; i++) {
+            thisData = data.data[i];
+            theArr.push({
+              key: i,
+              dunSubject: thisData.dunSubject
+                ? thisData.dunSubject.toString()
+                : "", //催款科目
+              id: thisData.id, //节点Id
+              money: thisData.money, //催款金额
+              dunStatus: thisData.dunStatus //催款状态
+            });
+          }
+          this.setState({
+            contactList: theArr
+          });
+        }
+      }.bind(this)
+    });
+  },
+  jiedianNew(orderNos) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url:
+        globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
+      data: {
+        orderNo: orderNos
+      },
+      success: function (data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          let theArr = [];
+          let thisData = [];
+          let arr = data.data || [];
+          let totalCui = 0;
+          for (let i = 0; i < arr.length; i++) {
+            thisData = arr[i];
+            totalCui += +thisData.money;
+            theArr.push({
+              key: i,
+              dunSubject: thisData.dunSubject
+                ? thisData.dunSubject.toString()
+                : "", //催款科目
+              id: thisData.id, //节点Id
+              money: thisData.money, //催款金额
+              // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
+              commodityName: thisData.commodityName,
+              projectType: thisData.projectType,
+              dunTypeName: thisData.dunTypeName,
+              status: thisData.status,
+              waitDay: thisData.waitDay,
+              effectiveCount: thisData.effectiveCount,
+              startDate: thisData.startDate,
+              dunType: thisData.dunType,
+              appropriationRatio: thisData.appropriationRatio,
+              customizeName: thisData.customizeName,
+              customizeTimes: thisData.customizeTimes,
+              tid: thisData.tid,
+            });
+          }
+          if (!totalCui) {
+            totalCui = 0;
+          }
+          totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
+          this.setState({
+            contactListNew: theArr,
+            totalCui
+          });
+        }
+      }.bind(this)
+    }).always(
+      function () {
+        this.setState({
+          loading: false
+        });
+      }.bind(this)
+    );
+  },
+  getOrderLog(orderNo) {
+    this.setState({
+      rizhivisible: true
+    });
+    this.rizhi(orderNo);
+  },
+  rizhi(orderNo) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: "/api/admin/newOrder/selectOrderLog",
+      data: {
+        orderNo: orderNo
+      },
+      success: function (data) {
+        let theArr = [];
+        let thisData = data.data;
+        if (!thisData.length) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+          thisData = {};
+        } else {
+          for (let i = 0; i < data.data.length; i++) {
+            let thisdata = data.data[i];
+            theArr.push({
+              processName: thisdata.processName,
+              adminName: thisdata.adminName,
+              createDate: thisdata.createDate,
+              remarks: thisdata.remarks
+            });
+          }
+        }
+        this.setState({
+          dataSourcerizhi: theArr
+        });
+      }.bind(this)
+    });
+  },
+
   render() {
     const { searchValues, } = this.state
     return (
@@ -429,6 +843,45 @@ const AccountTotal = React.createClass({
             />
           </Spin>
         </div>
+        <Modal
+          visible={this.state.visible}
+          maskClosable={false}
+          footer={false}
+          width={1400}
+          onCancel={() => { this.setState({ visible: false }) }}
+        >
+          <Spin spinning={this.state.loading}>
+            <Table
+              columns={this.state.columnsA}
+              dataSource={this.state.dataSourceA}
+              bordered
+              size="middle"
+              pagination={false}
+            />
+          </Spin>
+        </Modal>
+        {
+          this.state.visibleD &&
+          <Modal
+            title="订单详情"
+            visible={this.state.visibleD}
+            maskClosable={false}
+            footer={false}
+            width={1200}
+            onCancel={() => { this.setState({ visibleD: false }) }}
+          >
+            <OrderDetail
+              orderData={this.state.orderData}
+              orderUid={this.state.orderUid}
+              getOrderLog={this.getOrderLog}
+              dataSourceX={this.state.dataSourceX}
+              contactList={this.state.contactList}
+              orderNo={this.state.orderNo}
+              totalCui={this.state.totalCui}
+              contactListNew={this.state.contactListNew}
+            />
+          </Modal>
+        }
       </div>
     );
   },

+ 9 - 0
js/component/manageCenter/financialManage/account/index.less

@@ -0,0 +1,9 @@
+.receiveCount{
+  cursor: pointer;
+  padding: 6px;
+}
+.receiveCount:hover{
+  background: #0e77ca;
+  color: #FFFFFF;
+  font-weight: bolder;
+}

+ 1 - 1
package.json

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