Просмотр исходного кода

Merge branch 'master' of FrontEnd/kede-client into test

dev01 1 год назад
Родитель
Сommit
9151f5ea38
100 измененных файлов с 8271 добавлено и 1408 удалено
  1. 28 18
      js/component/common/flowchart/index.jsx
  2. 84 84
      js/component/common/staffSearch/index.jsx
  3. 30 8
      js/component/dataDic.js
  4. 1 1
      js/component/manageCenter/amiba/amibapage/fundmanagement.jsx
  5. 1 1
      js/component/manageCenter/amiba/amibapage/index.jsx
  6. 1 1
      js/component/manageCenter/channelList/channelunit/index.jsx
  7. 1 1
      js/component/manageCenter/channelList/channelunit/publist.jsx
  8. 1 1
      js/component/manageCenter/customer/NEW/crm/crm.jsx
  9. 1 1
      js/component/manageCenter/customer/NEW/crm/patentPayment.jsx
  10. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/channel.jsx
  11. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/channelStatistics.jsx
  12. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionCustomer.jsx
  13. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/limit.jsx
  14. 1 1
      js/component/manageCenter/customer/NEW/publicCustomer/publicCustomer.jsx
  15. 1 1
      js/component/manageCenter/customer/NEW/query/queryCutomer.jsx
  16. 220 11
      js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx
  17. 173 172
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/intentionDetail.jsx
  18. 35 1
      js/component/manageCenter/customer/NEW/signCustomer/signCustomer.jsx
  19. 1 1
      js/component/manageCenter/customer/individualCustomer/myReject.jsx
  20. 1 1
      js/component/manageCenter/customer/managementFollow/customerFollow/index.jsx
  21. 1 1
      js/component/manageCenter/customer/managementFollow/followUpSummary/index.jsx
  22. 1 1
      js/component/manageCenter/customer/operationalData/finalFollowup/index.jsx
  23. 11 0
      js/component/manageCenter/customer/publicSummary/index.jsx
  24. 1 1
      js/component/manageCenter/customerService/administration/followUp.jsx
  25. 1 1
      js/component/manageCenter/customerService/administration/order.jsx
  26. 1 1
      js/component/manageCenter/financialManage/account/accountDetaillist.jsx
  27. 1 1
      js/component/manageCenter/financialManage/account/accountReview.jsx
  28. 1 1
      js/component/manageCenter/financialManage/account/accountStatistics.jsx
  29. 1 1
      js/component/manageCenter/financialManage/account/accountTotal.jsx
  30. 1 1
      js/component/manageCenter/financialManage/account/accountlist.jsx
  31. 4 4
      js/component/manageCenter/financialManage/account/publicityAccount.jsx
  32. 1 1
      js/component/manageCenter/financialManage/amiba/investment.jsx
  33. 1 1
      js/component/manageCenter/financialManage/bonus/yxBonus.jsx
  34. 1 1
      js/component/manageCenter/financialManage/distribute/inSpecial.jsx
  35. 1 1
      js/component/manageCenter/financialManage/distribute/invoiceApplyList.jsx
  36. 1 1
      js/component/manageCenter/financialManage/distribute/invoiceApplyListQuery.jsx
  37. 1 1
      js/component/manageCenter/financialManage/distribute/outInvoiceQuery.jsx
  38. 1 1
      js/component/manageCenter/financialManage/distribute/projectvip.jsx
  39. 1 1
      js/component/manageCenter/financialManage/distribute/projectvipall.jsx
  40. 81 43
      js/component/manageCenter/financialManage/distribute/shouKuanAll.jsx
  41. 37 2
      js/component/manageCenter/financialManage/distribute/shouKuang.jsx
  42. 1 1
      js/component/manageCenter/financialManage/flowWater/departWater.jsx
  43. 1 1
      js/component/manageCenter/financialManage/flowWater/myWater.jsx
  44. 7 3
      js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx
  45. 1 1
      js/component/manageCenter/idea/policy/inquiry.jsx
  46. 1 1
      js/component/manageCenter/index/statistics/cw.jsx
  47. 1 1
      js/component/manageCenter/index/statistics/yxy.jsx
  48. 1 1
      js/component/manageCenter/index/statistics/zxs.jsx
  49. 95 94
      js/component/manageCenter/leftTab.jsx
  50. 1 1
      js/component/manageCenter/order/bonus/yxBonus.jsx
  51. 19 0
      js/component/manageCenter/order/content.jsx
  52. 1 1
      js/component/manageCenter/order/myOrder/servicesOrder/myService.jsx
  53. 105 43
      js/component/manageCenter/order/orderNew/addService.jsx
  54. 69 5
      js/component/manageCenter/order/orderNew/approveds.jsx
  55. 40 7
      js/component/manageCenter/order/orderNew/approvedvipproject.jsx
  56. 1 1
      js/component/manageCenter/order/orderNew/arrearsList.jsx
  57. 122 88
      js/component/manageCenter/order/orderNew/billing.jsx
  58. 770 0
      js/component/manageCenter/order/orderNew/changeComponent/changeDetailYybz.js
  59. 1 1
      js/component/manageCenter/order/orderNew/chargeback.jsx
  60. 1 1
      js/component/manageCenter/order/orderNew/contractChangeDsz.jsx
  61. 1 1
      js/component/manageCenter/order/orderNew/contractChangeFzc.jsx
  62. 19 0
      js/component/manageCenter/order/orderNew/contractChangeYybz.jsx
  63. 1 1
      js/component/manageCenter/order/orderNew/contractChangeZc.jsx
  64. 1 1
      js/component/manageCenter/order/orderNew/contractCwjl.js
  65. 1 1
      js/component/manageCenter/order/orderNew/contractCwzj.js
  66. 1 1
      js/component/manageCenter/order/orderNew/contractCwzy.js
  67. 1 1
      js/component/manageCenter/order/orderNew/contractJsjl.js
  68. 1 1
      js/component/manageCenter/order/orderNew/contractJsy.js
  69. 1 1
      js/component/manageCenter/order/orderNew/contractJszj.js
  70. 1 1
      js/component/manageCenter/order/orderNew/contractYxgly.js
  71. 1 1
      js/component/manageCenter/order/orderNew/contractYxjl.js
  72. 1 1
      js/component/manageCenter/order/orderNew/contractYxy.js
  73. 1510 0
      js/component/manageCenter/order/orderNew/contractYybz.js
  74. 45 7
      js/component/manageCenter/order/orderNew/examine.jsx
  75. 45 7
      js/component/manageCenter/order/orderNew/examinejl.jsx
  76. 2577 0
      js/component/manageCenter/order/orderNew/examineyybz.jsx
  77. 38 3
      js/component/manageCenter/order/orderNew/inquiry.jsx
  78. 39 5
      js/component/manageCenter/order/orderNew/myprojectvip.jsx
  79. 3 2
      js/component/manageCenter/order/orderNew/mysuspend.jsx
  80. 1 1
      js/component/manageCenter/order/orderNew/outsourcingList.jsx
  81. 1 1
      js/component/manageCenter/order/orderNew/outsourcingPro.jsx
  82. 86 26
      js/component/manageCenter/order/orderNew/reject.jsx
  83. 3 2
      js/component/manageCenter/order/orderNew/suspendexamine.jsx
  84. 15 10
      js/component/manageCenter/order/orderNew/updatesales.jsx
  85. 1 1
      js/component/manageCenter/order/source/index.jsx
  86. 1 1
      js/component/manageCenter/personnel/personnel/personnelAll.jsx
  87. 1 1
      js/component/manageCenter/povertyInquiry/component/gx.jsx
  88. 1 1
      js/component/manageCenter/povertyInquiry/component/nationwide.jsx
  89. 1 1
      js/component/manageCenter/project/patent/list.jsx
  90. 714 679
      js/component/manageCenter/project/project/enterpriseProjectQuery.jsx
  91. 1 1
      js/component/manageCenter/project/project/outsourceTaskAssignment.jsx
  92. 46 8
      js/component/manageCenter/project/project/projectAssignment.jsx
  93. 1 1
      js/component/manageCenter/project/project/projectQuery.jsx
  94. 1 1
      js/component/manageCenter/project/project/zxsglyOutSourcingPaiDan.jsx
  95. 26 5
      js/component/manageCenter/project/summary/highTech.jsx
  96. 92 1
      js/component/manageCenter/project/summary/highTechConfig.jsx
  97. 934 0
      js/component/manageCenter/project/summary/projecData.jsx
  98. 44 2
      js/component/manageCenter/project/task/myTask.jsx
  99. 42 5
      js/component/manageCenter/project/task/myTaskOutsource.jsx
  100. 0 0
      js/component/manageCenter/project/task/taskAssignment.jsx

+ 28 - 18
js/component/common/flowchart/index.jsx

@@ -72,9 +72,10 @@ class FlowChart extends Component {
               { status: 1, title: "经理审核", name: !info.yxjl ? "-" : info.yxjl, time: "" },
               { status: 2, title: "营销管理员审核", name: info.yxgly, time: "" },
               { status: 3, title: "财务/复审/技术总监审核", name: info.cwzy, time: "" },
-              { status: 4, title: "特批审核", name: tpname, time: "" },
-              { status: 5, title: "技术总监派单", name: info.zxsgly, time: "" },
-              { status: 6, title: "技术接单", name: "", time: "" },
+              { status: 4, title: "运营保障审核 ", name: info.yybz, time: "" },
+              { status: 5, title: "特批审核", name: tpname, time: "" },
+              { status: 6, title: "技术总监派单", name: info.zxsgly, time: "" },
+              { status: 7, title: "技术接单", name: "", time: "" },
             ]
             // name为“-”不需要显示
             let list = theArr.filter(v => {
@@ -88,7 +89,7 @@ class FlowChart extends Component {
             })
 
             // 状态为7就是全部分配 同样显示技术接单
-            if (info.processStatus == 7) {
+            if (info.processStatus == 8) {
               pstatus = list.length - 1
             }
 
@@ -139,8 +140,9 @@ class FlowChart extends Component {
               { status: 5, title: "技术总监审核", name: info.zxsgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.special == 1 ? "-" : info.approvalName },
-              { status: 9, title: "董事长审核", name: info.special == 1 ? info.dsz : (info.changeAmount > 0.2 ? info.dsz : "-"), time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.special == 1 ? "-" : info.approvalName },
+              { status: 10, title: "董事长审核", name: info.special == 1 ? info.dsz : (info.changeAmount > 0.2 ? info.dsz : "-"), time: "" },
             ]
             // 1 项目&金额
             let theArr1 = [
@@ -152,7 +154,8 @@ class FlowChart extends Component {
               { status: 5, title: "技术总监审核", name: info.zxsgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 2 仅项目
             let theArr2 = [
@@ -164,7 +167,8 @@ class FlowChart extends Component {
               { status: 5, title: "技术总监审核", name: info.zxsgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 3 仅金额
             let theArr3 = [
@@ -174,7 +178,8 @@ class FlowChart extends Component {
               { status: 5, title: "技术总监审核", name: info.zxsgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 4 重报
             let theArr4 = [
@@ -185,7 +190,8 @@ class FlowChart extends Component {
               // { status: 4, title: "技术经理审核", name: info.zxsjl, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 5 赠送
             let theArr5 = [
@@ -193,7 +199,8 @@ class FlowChart extends Component {
               { status: 1, title: "经理审核", name: !info.yxjl ? "-" : info.yxjl, time: "" },
               { status: 2, title: "营销管理员审核", name: info.yxgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 6 退单不退款
             let theArr6 = [
@@ -205,12 +212,14 @@ class FlowChart extends Component {
               { status: 5, title: "技术总监审核", name: info.zxsgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
               { status: 7, title: "财务总监审核", name: info.cwgly, time: "" },
-              { status: 8, title: "公司/部门管理审核", name: info.approvalName, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
+              { status: 9, title: "公司/部门管理审核", name: info.approvalName, time: "" },
             ]
             // 7 仅变更合同
             let theArr7 = [
               { status: 0, title: "营销员发起", name: info.yxy, time: "" },
               { status: 2, title: "营销管理员审核", name: info.yxgly, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
             ]
 
             // 8 框架协议
@@ -219,6 +228,7 @@ class FlowChart extends Component {
               { status: 1, title: "经理审核", name: !info.yxjl ? "-" : info.yxjl, time: "" },
               { status: 2, title: "营销管理员审核", name: info.yxgly, time: "" },
               { status: 6, title: "财务专员审核", name: info.cwzy, time: "" },
+              { status: 8, title: "运营保障审核", name: info.yybz, time: "" },
             ]
 
             theArr = info.type == 0
@@ -245,8 +255,8 @@ class FlowChart extends Component {
                   list.splice(9, 1);
                 }
                 // 把 总裁审核 改成 董事长审核
-                if (list[i].status == 8) {
-                  list[i].status = 9;
+                if (list[i].status == 9) {
+                  list[i].status = 10;
                   list[i].title = "董事长审核";
                   list[i].name = info.dsz;
                 }
@@ -254,17 +264,17 @@ class FlowChart extends Component {
             }
 
             if (info.type == 0 || info.type == 6) {
-              list.push({ status: 10, title: "财务退票", name: info.cwzy, time: "" },)
+              list.push({ status: 11, title: "财务退票", name: info.cwzy, time: "" },)
             }
 
-            list.push({ status: 11, title: "完成", name: "", time: "" },)
+            list.push({ status: 12, title: "完成", name: "", time: "" },)
 
             // 显示当前流程处理
             if (info.status == 0 || info.status == 1 || info.status == 3) {
               list.forEach((item, index) => {
-                if (info.processState == 10 && item.status == 8) { // 副总裁审核processState == 10 
+                if (info.processState == 11 && item.status == 8) { // 副总裁审核processState == 11 
                   pstatus = index
-                } else if ((item.status == info.processState) && info.processState != 10) {
+                } else if ((item.status == info.processState) && info.processState != 11) {
                   pstatus = index
                 }
               })

+ 84 - 84
js/component/common/staffSearch/index.jsx

@@ -3,98 +3,98 @@ import { AutoComplete, Input, message, Select } from "antd";
 import $ from "jquery/src/ajax";
 
 class StaffSearch extends Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            superior: '',
-            customerArr: [],
-            loading: false,
-        }
-        this.httpChange = this.httpChange.bind(this);
-        this.supervisor = this.supervisor.bind(this);
-        this.selectAuto = this.selectAuto.bind(this);
+  constructor(props) {
+    super(props);
+    this.state = {
+      superior: '',
+      customerArr: [],
+      loading: false,
     }
+    this.httpChange = this.httpChange.bind(this);
+    this.supervisor = this.supervisor.bind(this);
+    this.selectAuto = this.selectAuto.bind(this);
+  }
 
-    httpChange(e) {
-        if (e.length >= 1) {
-            this.supervisor(e);
-        }
-        this.setState({
-            superior: e
-        })
-        this.props.onBlurText({ title: e });
-        if (!e) {
-            this.props.onBlurChange({ title: e, value: null });
-        }
+  httpChange(e) {
+    if (e.length >= 1) {
+      this.supervisor(e);
     }
-
-    supervisor(e) {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "post",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/organization/selectName",
-            data: {
-                name: e
-            },
-            success: function (data) {
-                if (data.error.length === 0) {
-                    this.setState({
-                        customerArr: data.data,
-                    });
-                } else {
-                    message.error(data.error[0].message)
-                }
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
-            });
-        }.bind(this));
+    this.setState({
+      superior: e
+    })
+    this.props.onBlurText({ title: e });
+    if (!e) {
+      this.props.onBlurChange({ title: e, value: null });
     }
+  }
 
-    selectAuto(value) {
-        let theType = '';
-        let contactLists = this.state.customerArr || [];
-        if (value) {
-            contactLists.map(function (item) {
-                if (item.name == value.toString()) {
-                    theType = item.id;
-                }
-            });
+  supervisor(e) {
+    this.setState({
+      loading: true
+    });
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/organization/selectName",
+      data: {
+        name: e
+      },
+      success: function (data) {
+        if (data.error.length === 0) {
+          this.setState({
+            customerArr: data.data,
+          });
+        } else {
+          message.error(data.error[0].message)
         }
-        this.setState({
-            superior: value
-        })
-        this.props.onBlurChange({ title: value, value: theType });
-    }
+      }.bind(this),
+    }).always(function () {
+      this.setState({
+        loading: false
+      });
+    }.bind(this));
+  }
 
-    render() {
-        const options = this.state.customerArr.map((group, index) =>
-            <Select.Option key={index} value={group.name}>{group.name}</Select.Option>
-        )
-        return (
-            <AutoComplete
-                className="certain-category-search"
-                dropdownClassName="certain-category-search-dropdown"
-                dropdownMatchSelectWidth={false}
-                size="large"
-                style={{ width: '200px' }}
-                dataSource={options}
-                placeholder={this.props.placeholder}
-                value={this.props.valueName}
-                // value={this.state.superior ? this.state.superior : this.props.valueName}
-                onChange={this.httpChange}
-                filterOption={true}
-                onSelect={this.selectAuto}
-            >
-                <Input />
-            </AutoComplete>
-        )
+  selectAuto(value) {
+    let theType = '';
+    let contactLists = this.state.customerArr || [];
+    if (value) {
+      contactLists.map(function (item) {
+        if (item.name == value.toString()) {
+          theType = item.id;
+        }
+      });
     }
+    this.setState({
+      superior: value
+    })
+    this.props.onBlurChange({ title: value, value: theType });
+  }
+
+  render() {
+    const options = this.state.customerArr.map((group, index) =>
+      <Select.Option key={index} value={group.name}>{group.name}</Select.Option>
+    )
+    return (
+      <AutoComplete
+        className="certain-category-search"
+        dropdownClassName="certain-category-search-dropdown"
+        dropdownMatchSelectWidth={false}
+        size="large"
+        style={{ width: this.props.width || '200px' }}
+        dataSource={options}
+        placeholder={this.props.placeholder}
+        value={this.props.valueName}
+        // value={this.state.superior ? this.state.superior : this.props.valueName}
+        onChange={this.httpChange}
+        filterOption={true}
+        onSelect={this.selectAuto}
+      >
+        <Input />
+      </AutoComplete>
+    )
+  }
 }
 
 export default StaffSearch;

+ 30 - 8
js/component/dataDic.js

@@ -1419,10 +1419,10 @@ module.exports = {
       value: "1",
       key: "已签单客户",
     },
-    // {
-    //   value: "2",
-    //   key: "外联客户",
-    // },
+    {
+      value: "2",
+      key: "渠道客户",
+    },
     {
       value: "3",
       key: "限定项目",
@@ -1466,6 +1466,12 @@ module.exports = {
       key: "其他复购",
     },
   ],
+  wsalesType: [
+    {
+      value: "8",
+      key: "渠道/私有",
+    },
+  ],
   //
   salesList: [
     "电话新开发",
@@ -1476,6 +1482,7 @@ module.exports = {
     "其他",
     "高新复购",
     "其他复购",
+    "渠道/私有",
   ],
   //性别
   sex: [
@@ -3074,18 +3081,22 @@ module.exports = {
     },
     {
       value: "4",
-      key: "已派特批审核",
+      key: "运营保障审核",
     },
     {
       value: "5",
-      key: "已派技术总监",
+      key: "已派特批审核",
     },
     {
       value: "6",
-      key: "部分分配咨询师经理",
+      key: "已派技术总监",
     },
     {
       value: "7",
+      key: "部分分配咨询师经理",
+    },
+    {
+      value: "8",
       key: "全部分配咨询师经理",
     },
   ],
@@ -4267,6 +4278,17 @@ module.exports = {
     { value: 2, label: '完成', color: '#34de38' },
     { value: 3, label: '已驳回', color: '#f31212' },
     { value: 4, label: '已删除', color: '#A9A9A9' },
-  ]
+  ],
+
+  approvalOptions: [
+    { label: '无前期款', value: 1 },
+    { label: '暂无合同款', value: 2 },
+    { label: '含高风险条款', value: 3 },
+    { label: '新产品首单', value: 4 },
+    { label: '通过率低于80%', value: 5 },
+    { label: '3万以下会员', value: 6 },
+    { label: '认证首期5K以下', value: 7 },
+    { label: '其他', value: 0 },
+  ],
 
 };

+ 1 - 1
js/component/manageCenter/amiba/amibapage/fundmanagement.jsx

@@ -108,7 +108,7 @@ class FundManagement extends Component {
     }
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="card-container">
           <Tabs type="card"
             onChange={(e) => {

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

@@ -40,7 +40,7 @@ class Fundpool extends Component {
     const { searchValues } = this.state
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>待开放      阿米巴-资金池</span>
         </div>

+ 1 - 1
js/component/manageCenter/channelList/channelunit/index.jsx

@@ -639,7 +639,7 @@ class ChannelUnit extends Component {
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>私有渠道列表</span>
         </div>

+ 1 - 1
js/component/manageCenter/channelList/channelunit/publist.jsx

@@ -277,7 +277,7 @@ class ChannelUnit extends Component {
     const hasSelected = this.state.selectedRowKeys.length > 0;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>公共渠道列表</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/crm/crm.jsx

@@ -1941,7 +1941,7 @@ const IntentionCustomer = Form.create()(React.createClass({
     this.saveInputRef1 = input => this.input1 = input
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>客户资料维护</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/crm/patentPayment.jsx

@@ -654,7 +654,7 @@ const PatentPayment = Form.create()(React.createClass({
 
 		return (
 			<div className="user-content">
-				<ShowModalDiv ShowModal={this.state.showModal} />
+				<ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
 				<div className="content-title" style={{ marginBottom: 10 }}>
 					<span style={{ fontWeight: 900, fontSize: 16 }}>客户专利提醒</span>
 					<Tabs

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/channel.jsx

@@ -815,7 +815,7 @@ class Channel extends Component{
         const hasSelected = this.state.selectedRowKeys.length > 0;
         return (
             <div className="user-content channel">
-                <ShowModalDiv ShowModal={this.state.showModal} />
+                <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
                 <div className="content-title" style={{ marginBottom: 10 }}>
                     <span style={{ fontWeight: 900, fontSize: 16 }}>外联客户</span>
                 </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/channelStatistics.jsx

@@ -234,7 +234,7 @@ class ChannelStatistics extends Component{
     render() {
         return (
             <div className="user-content">
-                <ShowModalDiv ShowModal={this.state.showModal} />
+                <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
                 <div className="content-title" style={{ marginBottom: 10 }}>
                     <span style={{ fontWeight: 900, fontSize: 16 }}>外联客户统计</span>
                 </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/intentionCustomer.jsx

@@ -947,7 +947,7 @@ const IntentionCustomer = Form.create()(
       const intentionState = this.props.intentionState || "";
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>{!intentionState ? "私有单位客户" : "私有专家客户"}</span>
           </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/limit.jsx

@@ -578,7 +578,7 @@ const LimitedProject = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>限定项目</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/publicCustomer/publicCustomer.jsx

@@ -291,7 +291,7 @@ const QueryCustomer = React.createClass({
     };
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>{!intentionState ? "单位公共客户" : "个人公共客户"}</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/NEW/query/queryCutomer.jsx

@@ -463,7 +463,7 @@ const QueryCustomer = React.createClass({
     const hasSelected = this.state.selectedRowKeys.length > 0;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>{!intentionState ? "单位客户查询" : "个人客户查询"}</span>
         </div>

+ 220 - 11
js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx

@@ -6,6 +6,8 @@ import { intentionalService, newFollow, customerStatus } from '@/dataDic.js';
 import { getCompanyIntention, getfllowSituation, getcustomerStatue } from '@/tools.js';
 const FormItem = Form.Item;
 import AddContact from './followDetail/addContact.jsx';
+import BusName from '../intentionCustomer/followDetail/businessName';
+
 
 const FollowDetail = React.createClass({
   getInitialState() {
@@ -19,50 +21,225 @@ const FollowDetail = React.createClass({
           title: '业务名称',
           dataIndex: 'businessVarietiesName',
           width: 120,
-          key: 'businessVarietiesName'
+          key: 'businessVarietiesName',
+          render: (text, record, index) => {
+            return (
+              <div>
+                {!record.id ? (
+                  <Select
+                    placeholder="选择业务名称"
+                    value={record.businessGlossoryId}
+                    onChange={(e) => {
+                      record.businessGlossoryId = e;
+                      this.setState({ data: this.state.data });
+                    }}
+                  >
+                    {this.props.categoryArr.map(function (item) {
+                      return (
+                        <Select.Option key={item.value}>
+                          {item.key}
+                        </Select.Option>
+                      );
+                    })}
+                  </Select>
+                ) : (
+                  <span>{record.businessVarietiesName}</span>
+                )}
+              </div>
+            );
+          },
         },
         {
           title: '项目名称',
           dataIndex: 'businessProjectName',
           key: 'businessProjectName',
-          width: 120
+          width: 120,
+          render: (text, record, index) => {
+            return (
+              <div>
+                {!record.id ? (
+                  <div>
+                    <Button
+                      onClick={(e) => {
+                        e.stopPropagation(), this.businessFn(record, index);
+                      }}
+                      type="small"
+                    >
+                      {record.projectName}
+                    </Button>
+                  </div>
+                ) : (
+                  <span>{record.businessProjectName}</span>
+                )}
+              </div>
+            );
+          },
         },
         {
           title: '最新进度',
           width: 120,
           dataIndex: 'followSituation',
           key: 'followSituation',
-          render: text => { return getfllowSituation(text) }
-        }, {
+          render: (text, record, index) => {
+            if (text == 5 && !record.isEdit) {
+              return newFollow.map(function (item) {
+                if (item.value == text) {
+                  return item.key;
+                }
+              });
+            } else {
+              return (
+                <Select
+                  placeholder="选择最新进度"
+                  value={record.followSituation}
+                  onChange={(e) => {
+                    record.followSituation = e;
+                    record.isEdit = true;
+                    this.setState({ data: this.state.data });
+                  }}
+                >
+                  {newFollow
+                    .filter((v) => {
+                      return v.value !== "5";
+                    })
+                    .map(function (item) {
+                      return (
+                        <Select.Option key={item.value}>
+                          {item.key}
+                        </Select.Option>
+                      );
+                    })}
+                </Select>
+              );
+            }
+          },
+        },
+        {
           title: '最新状态',
           width: 120,
           dataIndex: 'customerStatus',
           key: 'customerStatus',
-          render: text => { return getcustomerStatue(text) }
-        }, {
+          render: (text, record, index) => {
+            if (record.followSituation == 5 && !record.isEdit) {
+              return customerStatus.map(function (item) {
+                if (item.value == text) {
+                  return item.key;
+                }
+              });
+            } else {
+              return (
+                <Select
+                  value={record.customerStatus}
+                  placeholder="选择最新状态"
+                  onChange={(e) => {
+                    record.customerStatus = e;
+                    this.setState({ data: this.state.data });
+                  }}
+                >
+                  {customerStatus.map(function (item) {
+                    return (
+                      <Select.Option key={item.value}>{item.key}</Select.Option>
+                    );
+                  })}
+                </Select>
+              );
+            }
+          },
+        },
+        {
           title: '跟进说明',
           width: 120,
           dataIndex: 'remarks',
           key: 'remarks',
-
-        }, {
+          render: (text, record, index) => {
+            if (record.followSituation == 5 && !record.isEdit) {
+              return text;
+            } else {
+              return (
+                <Input
+                  value={record.remarks}
+                  placeholder="跟进说明"
+                  onChange={(e) => {
+                    record.remarks = e.target.value;
+                    this.setState({ data: this.state.data });
+                  }}
+                />
+              );
+            }
+          },
+        },
+        {
           title: '操作',
           width: 120,
           dataIndex: 'rrr',
           key: 'rrr',
           render: (text, record, index) => {
             return <div>
-              <Popconfirm title="再次签单?" onConfirm={(e) => { this.intentionDelet(record, index) }} okText="再次签单" cancelText="取消">
-                <Button style={{ marginRight: '10px', color: '#ffffff', background: '#58a3ff', border: 'none' }}>签单</Button>
-              </Popconfirm>
+              {!record.id ? (
+                <Popconfirm
+                  title="是否删除?"
+                  onConfirm={(e) => {
+                    this.intentionDelet(record, index);
+                  }}
+                  okText="删除"
+                  cancelText="不删除"
+                >
+                  <Button
+                    style={{
+                      marginRight: "10px",
+                      color: "#ffffff",
+                      background: "#f00",
+                      border: "none",
+                    }}
+                  >
+                    删除
+                  </Button>
+                </Popconfirm>
+              ) :
+                <Popconfirm title="再次签单?" onConfirm={(e) => { this.againProjectTask(record, index) }} okText="再次签单" cancelText="取消">
+                  <Button style={{ marginRight: '10px', color: '#ffffff', background: '#58a3ff', border: 'none' }}>签单</Button>
+                </Popconfirm>
+              }
             </div>
           }
         }
       ],
     }
   },
+  //选择子项目
+  businessFn(record, index) {
+    if (!record.businessGlossoryId) {
+      message.warn("请先选择业务名称!");
+      return;
+    }
+    this.setState({
+      businessId: record.businessGlossoryId,
+      busModul: true,
+      index: index,
+      addcontactModul: false,
+    });
+  },
+  closeBus(datas, e, s) {
+    this.state.addcontactModul = e;
+    this.state.busModul = false;
+    if (s) {
+      this.state.data[this.state.index].businessName = datas.id;
+      this.state.data[this.state.index].projectName = datas.name;
+      this.setState({
+        busModul: false,
+        data: this.state.data,
+      });
+    }
+  },
   //拜访意向服务列表单个删除
   intentionDelet(e, index) {
+    let deteluserBusinessList = this.state.data.splice(index, 1);
+    this.setState({
+      selectedRowKeys: [],
+    });
+  },
+  //签单
+  againProjectTask(e, index) {
     this.setState({
       loading: true,
       selectedRowKeys: [],
@@ -304,6 +481,22 @@ const FollowDetail = React.createClass({
       }
     }.bind(this));
   },
+  //添加新业务
+  addNew() {
+    this.state.data.push({
+      isEdit: true,
+      projectName: "选择",
+      businessName: "",
+      customerStatus: undefined,
+      businessGlossoryId: undefined,
+      followSituation: undefined,
+      remarks: "",
+    });
+    this.setState({
+      addcontactModul: false,
+      data: this.state.data,
+    });
+  },
   componentWillReceiveProps(nextProps) {
     if (nextProps.visitModul && nextProps.followData.id) {
       this.setState({
@@ -437,6 +630,16 @@ const FollowDetail = React.createClass({
                     }}
                   >
                     业务意向
+                    <Button
+                      onClick={this.addNew}
+                      style={{
+                        marginLeft: "420px",
+                        background: "green",
+                        color: "#ffffff",
+                      }}
+                    >
+                      添加新业务
+                    </Button>
                   </div>
                   <div className="clearfix">
                     <Spin spinning={this.state.loading}>
@@ -471,6 +674,12 @@ const FollowDetail = React.createClass({
           uids={this.state.uids}
           closeFollow={this.closeFollow}
         />
+        <BusName
+          businessId={this.state.businessId}
+          mid={this.props.followData ? this.props.followData.id : ""}
+          busModul={this.state.busModul}
+          closeBus={this.closeBus}
+        />
       </div>
     );
   }

+ 173 - 172
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/intentionDetail.jsx

@@ -12,173 +12,174 @@ import LockBusiness from './detail/lockBusiness.jsx';
 import BasicPerson from './detail/basicPerson.jsx';//基本信息
 
 const IntentionDetail = React.createClass({
-	getInitialState() {
-		return {
-			modalVisible: false,
-			switchState: false,
-			contactData: [],
-			contactState: true,
-			IntentionState: false,
-			businessState: false,
-			visitState: false,
-			accountState: false,
-			basicState: false
-		}
-	},
-	detailsModal() {
-		this.setState({
-			basicState: false,
-			modalVisible: false,
-			callnub: 1,
-		});
-		this.props.closeDesc(false, true);
-	},
-	//详情tab切换数据处理
-	callback(e) {
-		if (e == '1') {
-			this.setState({
-				IntentionState: true,
-				contactState: false,
-				accountState: false,
-				visitState: false,
-				businessState: false,
-				basicState: true
-			})
-		}
-		if (e == '2') {
-			this.setState({
-				IntentionState: false,
-				contactState: true,
-				accountState: false,
-				visitState: false,
-				businessState: false,
-				basicState: false
-			})
-		}
-		// if(e == '3') {
-		// 	this.setState({
-		// 		IntentionState:false,
-		// 		contactState:false,
-		// 		accountState:true,
-		// 		visitState:false,
-		// 		businessState:false,
-		// 		basicState:false
-		// 	})
-		// }
-		if (e == '4') {
-			this.setState({
-				IntentionState: false,
-				contactState: false,
-				accountState: false,
-				visitState: true,
-				businessState: false,
-				basicState: false
-			})
-		}
-		if (e == '5') {
-			this.setState({
-				IntentionState: false,
-				contactState: false,
-				accountState: false,
-				visitState: false,
-				businessState: true,
-				basicState: false
-			})
-		}
-		this.setState({
-			callnub: e,
-		})
-	},
-	//取消函数
-	closeDetail(e, s) {
-		this.setState({
-			basicState: false,
-			//contactState:true,
-			modalVisible: e,
-		})
-		//		if(s){
-		//			this.props.closeDesc(false,true)
-		//		}
-	},
-	componentWillReceiveProps(nextProps) {
-		if (nextProps.modalVisible && nextProps.IntentionData.id) {
-			this.setState({
-				modalVisible: true,
-				callnub: this.props.defaultActiveKey ? String(this.props.defaultActiveKey) : (this.props.detailApi.indexOf('Organization')) > 0 ? "2" : '1',
-			})
-		};
-		this.setState({
-			basicState: nextProps.basicState,
-			contactState: nextProps.contactState,
-		})
-	},
-	render() {
-		return (
-			<div>
-				{this.state.modalVisible ? <Modal
-					className="customeDetails"
-					title="签单客户详情"
-					width="1300px"
-					maskClosable={false}
-					visible={this.state.modalVisible}
-					onOk={this.detailsModal}
-					onCancel={this.detailsModal}
-					footer=""
-				>
-					<Tabs onChange={this.callback} activeKey={this.state.callnub}>
-						{this.props.detailApi.indexOf("Organization") > 0 ? (
-							""
-						) : (
-							<TabPane tab="基本信息" key="1">
-								<BasicPerson
-									detailApi={this.props.detailApi}
-									closeDetail={this.closeDetail}
-									data={this.props.IntentionData}
-									IntentionState={this.state.IntentionState}
-									basicState={this.state.basicState}
-								/>
-							</TabPane>
-						)}
-						<TabPane tab="企业&联系人详情" key="2">
-							<ContactPerson
-								closeDetail={this.closeDetail}
-								name={this.props.name}
-								data={this.props.IntentionData}
-								contactState={this.state.contactState}
-								onCancel={this.detailsModal}
-							/>
-						</TabPane>
-						{/*<TabPane tab="账户信息" key="3">*/}
-						{/*  <Account*/}
-						{/*    closeDetail={this.closeDetail}*/}
-						{/*    data={this.props.IntentionData}*/}
-						{/*    accountState={this.state.accountState}*/}
-						{/*  />*/}
-						{/*</TabPane>*/}
-						<TabPane tab="客户跟进" key="4">
-							<Visit
-								loadData={this.props.loadData}
-								closeDetail={this.closeDetail}
-								data={this.props.IntentionData}
-								visitState={this.state.visitState}
-							/>
-						</TabPane>
-						<TabPane tab="业务意向" key="5">
-							<Business
-								closeDesc={this.props.closeDesc}
-								closeDetail={this.closeDetail}
-								data={this.props.IntentionData}
-								businessState={this.state.businessState}
-							/>
-						</TabPane>
-						<TabPane tab="锁定业务" key="6">
-							{
-								this.state.callnub === '6' ?
-									<LockBusiness uid={this.props.IntentionData && this.props.IntentionData.uid} id={this.props.IntentionData && this.props.IntentionData.id} /> :
-									<div />
-							}
-						</TabPane>
-						{/*
+  getInitialState() {
+    return {
+      modalVisible: false,
+      switchState: false,
+      contactData: [],
+      contactState: true,
+      IntentionState: false,
+      businessState: false,
+      visitState: false,
+      accountState: false,
+      basicState: false
+    }
+  },
+  detailsModal() {
+    this.setState({
+      basicState: false,
+      modalVisible: false,
+      callnub: 1,
+    });
+    this.props.closeDesc(false, true);
+  },
+  //详情tab切换数据处理
+  callback(e) {
+    if (e == '1') {
+      this.setState({
+        IntentionState: true,
+        contactState: false,
+        accountState: false,
+        visitState: false,
+        businessState: false,
+        basicState: true
+      })
+    }
+    if (e == '2') {
+      this.setState({
+        IntentionState: false,
+        contactState: true,
+        accountState: false,
+        visitState: false,
+        businessState: false,
+        basicState: false
+      })
+    }
+    // if(e == '3') {
+    // 	this.setState({
+    // 		IntentionState:false,
+    // 		contactState:false,
+    // 		accountState:true,
+    // 		visitState:false,
+    // 		businessState:false,
+    // 		basicState:false
+    // 	})
+    // }
+    if (e == '4') {
+      this.setState({
+        IntentionState: false,
+        contactState: false,
+        accountState: false,
+        visitState: true,
+        businessState: false,
+        basicState: false
+      })
+    }
+    if (e == '5') {
+      this.setState({
+        IntentionState: false,
+        contactState: false,
+        accountState: false,
+        visitState: false,
+        businessState: true,
+        basicState: false
+      })
+    }
+    this.setState({
+      callnub: e,
+    })
+  },
+  //取消函数
+  closeDetail(e, s) {
+    this.setState({
+      basicState: false,
+      //contactState:true,
+      modalVisible: e,
+    })
+    //		if(s){
+    //			this.props.closeDesc(false,true)
+    //		}
+  },
+  componentWillReceiveProps(nextProps) {
+    if (nextProps.modalVisible && nextProps.IntentionData.id) {
+      this.setState({
+        modalVisible: true,
+        callnub: this.props.defaultActiveKey ? String(this.props.defaultActiveKey) : (this.props.detailApi.indexOf('Organization')) > 0 ? "2" : '1',
+      })
+    };
+    this.setState({
+      basicState: nextProps.basicState,
+      contactState: nextProps.contactState,
+    })
+  },
+  render() {
+    return (
+      <div>
+        {this.state.modalVisible ? <Modal
+          className="customeDetails"
+          title="签单客户详情"
+          width="1300px"
+          maskClosable={false}
+          visible={this.state.modalVisible}
+          onOk={this.detailsModal}
+          onCancel={this.detailsModal}
+          footer=""
+        >
+          <Tabs onChange={this.callback} activeKey={this.state.callnub}>
+            {this.props.detailApi.indexOf("Organization") > 0 ? (
+              ""
+            ) : (
+              <TabPane tab="基本信息" key="1">
+                <BasicPerson
+                  detailApi={this.props.detailApi}
+                  closeDetail={this.closeDetail}
+                  data={this.props.IntentionData}
+                  IntentionState={this.state.IntentionState}
+                  basicState={this.state.basicState}
+                />
+              </TabPane>
+            )}
+            <TabPane tab="企业&联系人详情" key="2">
+              <ContactPerson
+                closeDetail={this.closeDetail}
+                name={this.props.name}
+                data={this.props.IntentionData}
+                contactState={this.state.contactState}
+                onCancel={this.detailsModal}
+              />
+            </TabPane>
+            {/*<TabPane tab="账户信息" key="3">*/}
+            {/*  <Account*/}
+            {/*    closeDetail={this.closeDetail}*/}
+            {/*    data={this.props.IntentionData}*/}
+            {/*    accountState={this.state.accountState}*/}
+            {/*  />*/}
+            {/*</TabPane>*/}
+            <TabPane tab="客户跟进" key="4">
+              <Visit
+                categoryArr={this.props.categoryArr}
+                loadData={this.props.loadData}
+                closeDetail={this.closeDetail}
+                data={this.props.IntentionData}
+                visitState={this.state.visitState}
+              />
+            </TabPane>
+            <TabPane tab="业务意向" key="5">
+              <Business
+                closeDesc={this.props.closeDesc}
+                closeDetail={this.closeDetail}
+                data={this.props.IntentionData}
+                businessState={this.state.businessState}
+              />
+            </TabPane>
+            <TabPane tab="锁定业务" key="6">
+              {
+                this.state.callnub === '6' ?
+                  <LockBusiness uid={this.props.IntentionData && this.props.IntentionData.uid} id={this.props.IntentionData && this.props.IntentionData.id} /> :
+                  <div />
+              }
+            </TabPane>
+            {/*
 							<TabPane tab="业务订单" key="6">
 
 							</TabPane>
@@ -192,10 +193,10 @@ const IntentionDetail = React.createClass({
 
 							</TabPane>
 							*/}
-					</Tabs>
-				</Modal> : <div />}
-			</div>
-		);
-	}
+          </Tabs>
+        </Modal> : <div />}
+      </div>
+    );
+  }
 })
 export default IntentionDetail;

+ 35 - 1
js/component/manageCenter/customer/NEW/signCustomer/signCustomer.jsx

@@ -94,9 +94,40 @@ const IntentionCustomer = Form.create()(React.createClass({
       });
     }.bind(this));
   },
+  //品类数据获取
+  category() {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/Varieties/getSuperList",
+      data: {},
+      success: function (data) {
+        let thedata = data.data;
+        let theArr = [];
+        if (!thedata) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+          thedata = {};
+        } else {
+          thedata.map(function (item, index) {
+            theArr.push({
+              value: item.id,
+              key: item.cname,
+            });
+          });
+        }
+        this.setState({
+          categoryArr: theArr,
+        });
+      }.bind(this),
+    });
+  },
 
   getInitialState() {
     return {
+      categoryArr: [],
       addressSearch: [],
       orgCodeUrl: [],
       companyLogoUrl: [],
@@ -361,6 +392,7 @@ const IntentionCustomer = Form.create()(React.createClass({
     this.state.Provinces = Province;
     this.state.intentionalOption = intentionalArr;
     this.loadData();
+    this.category();
   },
   closeDesc(e, s) {
     this.state.visitD = e
@@ -621,7 +653,7 @@ const IntentionCustomer = Form.create()(React.createClass({
     const intentionState = this.props.intentionState || '';
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         {this.state.zhuanjiaoVisible ? (
           <ZhuanjiaoDetail
             cancel={this.zhuanjiaoDetailCancel}
@@ -791,12 +823,14 @@ const IntentionCustomer = Form.create()(React.createClass({
           </Spin>
         </div>
         <FollowDetail
+          categoryArr={this.state.categoryArr}
           followData={this.state.followData}
           visitModul={this.state.visitModul}
           closeDesc={this.closeDesc}
           loadData={this.loadData}
         />
         <IntentionDetail
+          categoryArr={this.state.categoryArr}
           detailApi={this.props.detailApi}
           IntentionData={this.state.RowData}
           loadData={() => { this.loadData(this.state.pagination.current) }}

+ 1 - 1
js/component/manageCenter/customer/individualCustomer/myReject.jsx

@@ -412,7 +412,7 @@ const PublicCustomer = Form.create()(React.createClass({
 		const contacts = this.state.contacts || '';
 		return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title">
           <span>我的被拒绝客户</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/managementFollow/customerFollow/index.jsx

@@ -407,7 +407,7 @@ class CustomerFollow extends Component {
     let { sortedInfo, filteredInfo, columns } = this.state;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title">
           <span>指导意见</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/managementFollow/followUpSummary/index.jsx

@@ -460,7 +460,7 @@ class FollowUpSummary extends Component {
   render() {
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>客户跟进汇总</span>
         </div>

+ 1 - 1
js/component/manageCenter/customer/operationalData/finalFollowup/index.jsx

@@ -306,7 +306,7 @@ class FinalFollowup extends Component {
     ));
     return (
       <div className="user-content finalfollowup">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>客户最后跟进表</span>
         </div>

+ 11 - 0
js/component/manageCenter/customer/publicSummary/index.jsx

@@ -62,6 +62,17 @@ class PublicSummary extends Component {
             );
           },
         },
+        // {
+        //   title: "公出地址",
+        //   dataIndex: "addressName",
+        //   key: "addressName",
+        //   width: 130,
+        //   render: (text) => {
+        //     return (
+        //       <div>{text}</div>
+        //     );
+        //   },
+        // },
         {
           title: "公出地点",
           dataIndex: "districtName",

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

@@ -447,7 +447,7 @@ class FollowUp extends Component {
   render() {
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title">
           <span style={{ fontWeight: 900, fontSize: 16 }}>客服跟进详情</span>
         </div>

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

@@ -2297,7 +2297,7 @@ const Order = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title">
             <span
               style={{

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

@@ -586,7 +586,7 @@ const AccountDetaillist = React.createClass({
 
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>报销明细列表</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/account/accountReview.jsx

@@ -568,7 +568,7 @@ const AccountReview = React.createClass({
 
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>{this.props.isOperate ? "报销审核" : "报销列表"}</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/account/accountStatistics.jsx

@@ -267,7 +267,7 @@ const AccountReview = React.createClass({
 
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>费用统计</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/account/accountTotal.jsx

@@ -1009,7 +1009,7 @@ const AccountTotal = React.createClass({
     const { searchValues, } = this.state
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>报销总计</span>
         </div>

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

@@ -528,7 +528,7 @@ const AccountList = React.createClass({
 
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>费用单列表</span>
         </div>

+ 4 - 4
js/component/manageCenter/financialManage/account/publicityAccount.jsx

@@ -396,7 +396,7 @@ const PublicityAccount = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>公出&报销</span>
         </div>
@@ -405,11 +405,11 @@ const PublicityAccount = React.createClass({
             <div className="user-search" style={{ marginLeft: 10 }}>
               <Input
                 placeholder="合同编号"
-                value={searchValues["contactNo"]
-                  ? searchValues["contactNo"]
+                value={searchValues["contractNo"]
+                  ? searchValues["contractNo"]
                   : ""}
                 onChange={(e) => {
-                  searchValues["contactNo"] = e.target.value;
+                  searchValues["contractNo"] = e.target.value;
                   this.setState({
                     searchValues: searchValues,
                   });

+ 1 - 1
js/component/manageCenter/financialManage/amiba/investment.jsx

@@ -447,7 +447,7 @@ const Investment = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>
             {this.props.type == "cwzy" ? "投资审核" : "我的投资"}

+ 1 - 1
js/component/manageCenter/financialManage/bonus/yxBonus.jsx

@@ -419,7 +419,7 @@ const YxBonus = React.createClass({
     let departmentArr = this.state.departmentArr || [];
     return (
       <div className="user-content">
-        {/* <ShowModalDiv ShowModal={this.state.showModal} /> */}
+        {/* <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} /> */}
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>营销员奖金</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/inSpecial.jsx

@@ -621,7 +621,7 @@ const inSpecial = React.createClass({
     };
     return (
       <div className="user-content" style={{ position: "relative" }}>
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>省内特批</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/invoiceApplyList.jsx

@@ -697,7 +697,7 @@ const invoiceApplyList = React.createClass({
     };
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>省内开票审核</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/invoiceApplyListQuery.jsx

@@ -656,7 +656,7 @@ const invoiceApplyListQuery = React.createClass({
     };
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>省内开票查询</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/outInvoiceQuery.jsx

@@ -594,7 +594,7 @@ const outInvoiceQuery = React.createClass({
     };
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>省外开票查询</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/projectvip.jsx

@@ -592,7 +592,7 @@ const ProjectVip = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>会员项目审核</span>
         </div>

+ 1 - 1
js/component/manageCenter/financialManage/distribute/projectvipall.jsx

@@ -535,7 +535,7 @@ const ProjectVipAll = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>会员项目(All)</span>
         </div>

+ 81 - 43
js/component/manageCenter/financialManage/distribute/shouKuanAll.jsx

@@ -38,11 +38,12 @@ import {
   getApprovalTag,
   getProjectName,
   getClockState,
+  getApprovedType,
 } from "@/tools";
 import { ChooseList } from "../../order/orderNew/chooseList";
 import Project from "../../../../component/project";
 import LogPopup from "../../../common/logPopup";
-import { clockState, salesList } from "@/dataDic";
+import { clockState, salesList, approvalOptions } from "@/dataDic";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import Cascaders from "../../../common/cascaders";
 
@@ -153,6 +154,7 @@ const ShouKuang = React.createClass({
         amountStatus: this.state.amountStatus,
         approval: this.state.approval,
         projectType: this.state.projectType,
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         let theArr = [];
@@ -195,6 +197,7 @@ const ShouKuang = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       isDisplay: true,
       cuiTabKey: "1",
       pubVisible: false,
@@ -1033,6 +1036,21 @@ const ShouKuang = React.createClass({
           },
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          className: "title-table",
+          fixed: "left",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "合同编号",
           dataIndex: "contractNo",
           key: "contractNo",
@@ -1691,6 +1709,7 @@ const ShouKuang = React.createClass({
     this.state.contractNoSearch = "";
     this.state.liquidationStatus = [];
     this.state.contractNo = "";
+    this.state.approvaType = [];
     this.Cascaders.empty();
     this.loadData();
   },
@@ -1923,6 +1942,7 @@ const ShouKuang = React.createClass({
       amountStatus: this.state.amountStatus,
       approval: this.state.approval,
       projectType: this.state.projectType,
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     }
     $.ajax({
       method: "get",
@@ -2620,6 +2640,9 @@ const ShouKuang = React.createClass({
         {group.name}
       </Select.Option>
     ));
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.state.resVisible ? (
@@ -2694,7 +2717,7 @@ const ShouKuang = React.createClass({
                 onChange={(e) => {
                   this.setState({ processStatusSearch: e });
                 }}
-                style={{ width: 120, marginRight: 5 }}
+                style={{ width: 140, marginRight: 5 }}
                 value={this.state.processStatusSearch}
               >
                 <Option value="3">未分配</Option>
@@ -2706,7 +2729,7 @@ const ShouKuang = React.createClass({
                 onChange={(e) => {
                   this.setState({ liquidationStatus: e });
                 }}
-                style={{ width: 120, marginRight: 5 }}
+                style={{ width: 140, marginRight: 5 }}
                 value={this.state.liquidationStatus}
               >
                 <Option value="0">首付待付清</Option>
@@ -2714,7 +2737,7 @@ const ShouKuang = React.createClass({
                 <Option value="2">已付清</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 140 }}
                 placeholder="签单金额"
                 value={this.state.amountStatus}
                 onChange={(e) => {
@@ -2730,7 +2753,7 @@ const ShouKuang = React.createClass({
                 <Option value="4">40万元以上</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 140 }}
                 placeholder="特批状态"
                 value={this.state.approval}
                 onChange={(e) => {
@@ -2745,7 +2768,7 @@ const ShouKuang = React.createClass({
                 <Option value="4">全部特批</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 140 }}
                 placeholder="会员状态"
                 value={this.state.projectType}
                 onChange={(e) => {
@@ -2757,45 +2780,60 @@ const ShouKuang = React.createClass({
                 <Option value="1">会员</Option>
                 <Option value="0">非会员</Option>
               </Select>
-              <span style={{}}>下单日期:</span>
-              <RangePicker
-                style={{ width: 170, marginRight: 10 }}
-                value={[
-                  this.state.releaseDate[0]
-                    ? moment(this.state.releaseDate[0])
-                    : null,
-                  this.state.releaseDate[1]
-                    ? moment(this.state.releaseDate[1])
-                    : null,
-                ]}
-                onChange={(data, dataString) => {
-                  this.setState({ releaseDate: dataString });
-                }}
-              />
-              <span style={{}}>最近收款:</span>
-              <RangePicker
-                style={{ width: 170 }}
-                value={[
-                  this.state.shouKuanDate[0]
-                    ? moment(this.state.shouKuanDate[0])
-                    : null,
-                  this.state.shouKuanDate[1]
-                    ? moment(this.state.shouKuanDate[1])
-                    : null,
-                ]}
-                onChange={(data, dataString) => {
-                  this.setState({ shouKuanDate: dataString });
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
                 }}
-              />
-              <Button
-                type="primary"
-                onClick={this.search}
-                style={{ marginLeft: 10 }}
-                disabled={this.state.loadingA ? true : false}
               >
-                搜索
-              </Button>
-              <Button onClick={this.reset}>重置</Button>
+                {approvaChildren}
+              </Select>
+              <div>
+                <span style={{}}>下单日期:</span>
+                <RangePicker
+                  style={{ width: 170, marginRight: 10 }}
+                  value={[
+                    this.state.releaseDate[0]
+                      ? moment(this.state.releaseDate[0])
+                      : null,
+                    this.state.releaseDate[1]
+                      ? moment(this.state.releaseDate[1])
+                      : null,
+                  ]}
+                  onChange={(data, dataString) => {
+                    this.setState({ releaseDate: dataString });
+                  }}
+                />
+                <span style={{}}>最近收款:</span>
+                <RangePicker
+                  style={{ width: 170 }}
+                  value={[
+                    this.state.shouKuanDate[0]
+                      ? moment(this.state.shouKuanDate[0])
+                      : null,
+                    this.state.shouKuanDate[1]
+                      ? moment(this.state.shouKuanDate[1])
+                      : null,
+                  ]}
+                  onChange={(data, dataString) => {
+                    this.setState({ shouKuanDate: dataString });
+                  }}
+                />
+                <Button
+                  type="primary"
+                  onClick={this.search}
+                  style={{ marginLeft: 10 }}
+                  disabled={this.state.loadingA ? true : false}
+                >
+                  搜索
+                </Button>
+                <Button onClick={this.reset}>重置</Button>
+              </div>
             </div>
           </TabPane>
           <TabPane tab="打印" key="3">

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

@@ -40,12 +40,13 @@ import {
   getApprovalTag,
   getProjectName,
   getClockState,
+  getApprovedType,
 } from "@/tools";
 import { ChooseList } from "../../order/orderNew/chooseList"
 import Project from "../../../../component/project"
 import LogPopup from "../../../common/logPopup";
 import { throws } from "assert";
-import { clockState, salesList } from "@/dataDic";
+import { clockState, salesList, approvalOptions } from "@/dataDic";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import Cascaders from "../../../common/cascaders";
 
@@ -158,6 +159,7 @@ const ShouKuang = React.createClass({
         approval: this.state.approval,
         projectType: this.state.projectType,
         myExamine: this.state.myExamine,
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         let theArr = [];
@@ -202,8 +204,8 @@ const ShouKuang = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       cuiTabKey: "1",
-
       pubVisible: false,
       pubDataList: [],
       pubpageNo: 1,
@@ -1055,6 +1057,21 @@ const ShouKuang = React.createClass({
           },
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          className: "title-table",
+          fixed: "left",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "合同编号",
           dataIndex: "contractNo",
           key: "contractNo",
@@ -1721,6 +1738,7 @@ const ShouKuang = React.createClass({
     this.state.liquidationStatus = [];
     this.state.processStatusSearch = [];
     this.state.contractNo = "";
+    this.state.approvaType = [];
     this.Cascaders.empty();
     this.loadData();
   },
@@ -1955,6 +1973,7 @@ const ShouKuang = React.createClass({
       amountStatus: this.state.amountStatus,
       approval: this.state.approval,
       projectType: this.state.projectType,
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     };
     $.ajax({
       method: "get",
@@ -2681,6 +2700,9 @@ const ShouKuang = React.createClass({
         {group.name}
       </Select.Option>
     ));
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.state.resVisible ? (
@@ -2832,6 +2854,19 @@ const ShouKuang = React.createClass({
                 <Option value="1">会员</Option>
                 <Option value="0">非会员</Option>
               </Select>
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <span style={{}}>下单日期:</span>
               <RangePicker
                 value={[

+ 1 - 1
js/component/manageCenter/financialManage/flowWater/departWater.jsx

@@ -262,7 +262,7 @@ const MyWater = React.createClass({
         let departmentArr = this.state.departmentArr || [];
         return (
           <div className="user-content">
-            <ShowModalDiv ShowModal={this.state.showModal} />
+            <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
             <div className="content-title">
               <span>部门流水订单</span>
             </div>

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

@@ -272,7 +272,7 @@ const MyWater = React.createClass({
     var departmentArr = this.state.departmentArr || [];
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>我的流水订单</span>
         </div>

+ 7 - 3
js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx

@@ -18,6 +18,7 @@ import {
   getNewOrderType,
   getProcessStatus,
   getApproval,
+  getApprovedType,
   getLiquidationStatus,
   getboutique,
   getCuikuan,
@@ -451,7 +452,6 @@ const OrderDetail = Form.create()(
             depName: thisData.depName,
             outsource: thisData.outsource == 0 ? "否" : "是",
             deleteSign: thisData.deleteSign,
-
             // 高新纯咨询合同说明
             knowledgeServices: thisData.knowledgeServices, //知识产权服务
             auditServices: thisData.auditServices, //审计服务
@@ -459,8 +459,9 @@ const OrderDetail = Form.create()(
             knowledgeOther: thisData.knowledgeOther, //知识产权服务其他描述
             auditOther: thisData.auditOther, //审计服务其他描述
             addDeductionOther: thisData.addDeductionOther, //加计扣除服务其他描述
-
             patentStatus: thisData.patentStatus, //知识产权情况
+            type: thisData.type,// 特批类型
+            typeExplain: thisData.typeExplain, // 特批类型
 
           });
         }.bind(this),
@@ -978,7 +979,10 @@ const OrderDetail = Form.create()(
                   {...formItemLayout}
                   label="是否特批"
                 >
-                  <span>{getApproval(theData.approval)}</span>
+                  <span>
+                    {getApproval(theData.approval)}
+                    {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
+                  </span>
                 </FormItem>
                 <FormItem
                   className="half-item"

+ 1 - 1
js/component/manageCenter/idea/policy/inquiry.jsx

@@ -430,7 +430,7 @@ const Inquiry=React.createClass({
         const hasSelected = this.state.selectedRowKeys.length > 0;
         return (
           <div className="admin-content">
-            <ShowModalDiv ShowModal={this.state.showModal} />
+            <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
             <div className="admin-content-search">
               <Input
                 placeholder="标题"

+ 1 - 1
js/component/manageCenter/index/statistics/cw.jsx

@@ -233,7 +233,7 @@ const Statistics = React.createClass({
     }
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} seeInfo={() => { this.props.handlekey("normal") }} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>数据统计</span>
         </div>

+ 1 - 1
js/component/manageCenter/index/statistics/yxy.jsx

@@ -234,7 +234,7 @@ const Statistics = React.createClass({
     }
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} seeInfo={() => { this.props.handlekey("normal") }} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>数据统计</span>
         </div>

+ 1 - 1
js/component/manageCenter/index/statistics/zxs.jsx

@@ -238,7 +238,7 @@ const Statistics = React.createClass({
     }
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} seeInfo={() => { this.props.handlekey("normal") }} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>数据统计</span>
         </div>

+ 95 - 94
js/component/manageCenter/leftTab.jsx

@@ -3,103 +3,104 @@ import { Menu, Icon } from 'antd';
 import './leftTab.less';
 const SubMenu = Menu.SubMenu;
 const MenuItemGroup = Menu.ItemGroup;
-import {getMenu} from './publicMenu.js'
+import { getMenu } from './publicMenu.js'
 
 const LeftTab = React.createClass({
-    getInitialState() {
-        return {
-            current: '',
-            subKey: '',
-        };
-    },
-    handleClick(e) {
-        this.props.handlekey(e.key);
-        this.setState({
-            current: e.key,
-        });
-    },
-    componentWillMount() {
-    	let me_=this;
-        var ids=window.location.href.indexOf('rid=')
-        var idk=window.location.href.substr(ids+4)
-        var rid=idk.split('#')
-        var menu=getMenu(rid);
-        let cur,sub,sut;
-        if(rid.length>1){
-        	for(var h=0;h<menu.length;h++){
-        		if(menu[h].subMenus.length){
-        			menu[h].subMenus.map(function(atem){
-        				let urls=atem.url.split('#')
-        				if(rid[1]==urls[1]){
-        					sut=menu[h].url;
-        					return false
-        				}
-        			})
-        		}
-        	}
-        };
-        if(menu[0].subMenus.length){
-        	 cur=menu[0].subMenus[0].url.split('#');
-        	 sub=menu[0].url;
-        }else{
-        	 cur=menu[0].url.split('#');
-        	 sub=''
-        };
-        this.setState({
-        	current:rid.length>1?rid[1]:cur[1],
-        	subKey:rid.length>1?sut:sub
-        });
-        var htmlMenu=[];
-        for(var j=0;j<menu.length;j++){
-        	if(menu[j].subMenus.length){
-        		htmlMenu.push(
-				<SubMenu key={menu[j].url} title={<span>{menu[j].name}</span>}>
-					{
-						menu[j].subMenus.map(function(item){
-							let urls=item.url.split('#');
-							return <Menu.Item key={urls[1]}>{item.name}</Menu.Item>
-						})
-					}
-				</SubMenu>
-				);
-        	}else{
-        		let urlt=menu[j].url.split('#');
-        		htmlMenu.push(
-        			<Menu.Item key={urlt[1]}>{menu[j].name}</Menu.Item>
-        		)
-        	}
-        };
-        this.setState({
-        	htmlMenus:htmlMenu
-	    })
-        const _me = this;
-        if (window.location.hash&&menu[0].subMenus.length) {
-            let theKey = window.location.hash.substr(1);
-            menu.map(function (item1) {
-	                item1.subMenus.map(function (item2) {
-	                	let urls=item2.url.split('#')
-	                    if (theKey == urls[1]) {
-	                        _me.state.subKey = item1.url
-	                    };
-	                });
-            });
-            this.state.current = theKey;
-        }else{
-        	this.state.current = window.location.hash.substr(1);
-        };
-    },
-    render() {
-        return (
-            <Menu onClick={this.handleClick}
-                selectedKeys={[this.state.current]}
-                defaultOpenKeys={[this.state.subKey]}
-                mode="vertical"
-                className="account-left"  
-                mode="inline">
-                {this.state.htmlMenus}
-            </Menu>
+  getInitialState() {
+    return {
+      current: '',
+      subKey: '',
+    };
+  },
+  handleClick(e) {
+    this.props.handlekey(e.key);
+    this.setState({
+      current: e.key,
+    });
+  },
+  componentWillMount() {
+    let me_ = this;
+    var ids = window.location.href.indexOf('rid=')
+    var idk = window.location.href.substr(ids + 4)
+    var rid = idk.split('#')
+    var menu = getMenu(rid);
+    let cur, sub, sut;
+    if (rid.length > 1) {
+      for (var h = 0; h < menu.length; h++) {
+        if (menu[h].subMenus.length) {
+          menu[h].subMenus.map(function (atem) {
+            let urls = atem.url.split('#')
+            if (rid[1] == urls[1]) {
+              sut = menu[h].url;
+              return false
+            }
+          })
+        }
+      }
+    };
+    if (menu[0].subMenus.length) {
+      cur = menu[0].subMenus[0].url.split('#');
+      sub = menu[0].url;
+    } else {
+      cur = menu[0].url.split('#');
+      sub = ''
+    };
+    this.setState({
+      current: rid.length > 1 ? rid[1] : cur[1],
+      subKey: rid.length > 1 ? sut : sub
+    });
+    var htmlMenu = [];
+    for (var j = 0; j < menu.length; j++) {
+      if (menu[j].subMenus.length) {
+        htmlMenu.push(
+          <SubMenu key={menu[j].url} title={<span>{menu[j].name}</span>}>
+            {
+              menu[j].subMenus.map(function (item) {
+                let urls = item.url.split('#');
+                return <Menu.Item key={urls[1]}>{item.name}</Menu.Item>
+              })
+            }
+          </SubMenu>
         );
-    },
+      } else {
+        let urlt = menu[j].url.split('#');
+        htmlMenu.push(
+          <Menu.Item key={urlt[1]}>{menu[j].name}</Menu.Item>
+        )
+      }
+    };
+    this.setState({
+      htmlMenus: htmlMenu
+    })
+    const _me = this;
+    if (window.location.hash && menu[0].subMenus.length) {
+      let theKey = window.location.hash.substr(1);
+      menu.map(function (item1) {
+        item1.subMenus.map(function (item2) {
+          let urls = item2.url.split('#')
+          if (theKey == urls[1]) {
+            _me.state.subKey = item1.url
+          };
+        });
+      });
+      this.state.current = theKey;
+    } else {
+      this.state.current = window.location.hash.substr(1);
+    };
+  },
+  render() {
+    return (
+      <Menu onClick={this.handleClick}
+        selectedKeys={[this.state.current]}
+        defaultOpenKeys={[this.state.subKey]}
+        // mode="vertical"
+        className="account-left"
+        mode="inline"
+      >
+        {this.state.htmlMenus}
+      </Menu>
+    );
+  },
 });
 
 export default LeftTab;

+ 1 - 1
js/component/manageCenter/order/bonus/yxBonus.jsx

@@ -304,7 +304,7 @@ const YxBonus = React.createClass({
     let departmentArr = this.state.departmentArr || [];
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title">
           <span>营销员奖金</span>
         </div>

+ 19 - 0
js/component/manageCenter/order/content.jsx

@@ -123,6 +123,15 @@ class Content extends Component {
           });
         });
         break;
+      //订单审核-运营保障
+      case "examineyybz":
+        require.ensure([], () => {
+          const ExamineYybz = require("./orderNew/examineyybz").default;
+          this.setState({
+            component: <ExamineYybz />,
+          });
+        });
+        break;
       //外包审核列表
       case "outsourcingList":
         require.ensure([], () => {
@@ -207,6 +216,16 @@ class Content extends Component {
           });
         });
         break;
+      //合同变更审核(运营保障)
+      case "contractChangeYybz":
+        require.ensure([], () => {
+          const ContractChangeYybz = require("./orderNew/contractChangeYybz")
+            .default;
+          this.setState({
+            component: <ContractChangeYybz />,
+          });
+        });
+        break;
       //合同变更审核
       case "contractChangeYxjl":
         require.ensure([], () => {

+ 1 - 1
js/component/manageCenter/order/myOrder/servicesOrder/myService.jsx

@@ -448,7 +448,7 @@ const MyService = Form.create()(React.createClass({
     const { RangePicker } = DatePicker;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>科技服务订单</span>
         </div>

+ 105 - 43
js/component/manageCenter/order/orderNew/addService.jsx

@@ -20,6 +20,7 @@ import {
   Icon,
   Tooltip,
   Switch,
+  Checkbox,
 } from "antd";
 // import $ from "jquery/src/ajax";
 import "../userMangagement.less";
@@ -39,6 +40,7 @@ import {
   boutique,
   ssalesType,
   qsalesType,
+  wsalesType,
   cuiJieDian,
   salesList,
   vipYear,
@@ -52,6 +54,8 @@ import {
   getLiquidationStatus,
   getboutique,
   getApprovedState,
+  getApprovedType,
+  compare,
   getjiedian,
   getCuikuan,
   getProjectName,
@@ -76,6 +80,7 @@ import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同
 import Property from '../../../common/orderDetail/property' // 知识产权情况
 
 const Option = AutoComplete.Option;
+const CheckboxGroup = Checkbox.Group;
 const confirm = Modal.confirm;
 const RadioButton = Radio.Button;
 const RadioGroup = Radio.Group;
@@ -181,6 +186,9 @@ const NewService = Form.create()(
     },
     getInitialState() {
       return {
+        type: "",
+        approvaType: [],
+        typeExplain: "",
         isShow: true, // 高新纯咨询合同默认填写
         knowledgeOther: "",
         auditOther: "",
@@ -1181,7 +1189,6 @@ const NewService = Form.create()(
               }
               if (this.state.getLoad) {
                 let arr = record.arr || [];
-                // console.log("record==", record)
                 return (
                   <div>
                     <Select
@@ -2181,6 +2188,16 @@ const NewService = Form.create()(
           this.refs.orderRemarksRef.focus();
           return false;
         }
+        if (this.state.approval == 1) {
+          if (this.state.approvaType && this.state.approvaType.length == 0) {
+            message.warning("请勾选特批状态!");
+            return false;
+          }
+          if (this.state.approvaType.indexOf(0) !== -1 && !this.state.typeExplain) {
+            message.warning("请填写特批其他说明!");
+            return false;
+          }
+        }
       }
       const arr = this.state.contactListNew || [];
       for (let i = 0; i < arr.length; i++) {
@@ -2228,7 +2245,7 @@ const NewService = Form.create()(
           channelId: channelid,
           other: channelname,
         })
-      } else if (selectSales == "4" || selectSales == "5") { //3,4要传描述
+      } else if (selectSales == "4" || selectSales == "5") { //4,5要传描述
         datas = Object.assign(datas, {
           other: other,
         })
@@ -2258,15 +2275,16 @@ const NewService = Form.create()(
             agreementUrl: theReplenishUrl.length ? theReplenishUrl : "",
             serviceContent: contentUrl.length ? contentUrl : "",
             orderDep: this.state.organizationSearch,
-
             knowledgeServices: this.state.isShow ? this.state.knowledgeServices : undefined, //知识产权服务
             auditServices: this.state.isShow ? this.state.auditServices : undefined, //审计服务
             addDeductionServices: this.state.isShow ? this.state.addDeductionServices : undefined, //加计扣除服务
             knowledgeOther: this.state.isShow ? this.state.knowledgeOther : undefined, //知识产权服务其他描述
             auditOther: this.state.isShow ? this.state.auditOther : undefined, //审计服务其他描述
             addDeductionOther: this.state.isShow ? this.state.addDeductionOther : undefined, //加计扣除服务其他描述
-
             patentStatus: this.state.patentStatus, //知识产权情况
+
+            type: this.state.approvaType.sort(compare).toString(), // 特批类型
+            typeExplain: this.state.approvaType.indexOf(0) === -1 ? "" : this.state.typeExplain, // 其他备注
           },
       }).done(
         function (data) {
@@ -2410,17 +2428,18 @@ const NewService = Form.create()(
             contactMobile: thisData.contactMobile, //联系人电话
             legalPerson: thisData.legalPerson, //法人
             legalPersonTel: thisData.legalPersonTel, //法人电话
-
             knowledgeServices: thisData.knowledgeServices, //知识产权服务
             auditServices: thisData.auditServices, //审计服务
             addDeductionServices: thisData.addDeductionServices, //加计扣除服务
             knowledgeOther: thisData.knowledgeOther, //知识产权服务其他描述
             auditOther: thisData.auditOther, //审计服务其他描述
             addDeductionOther: thisData.addDeductionOther, //加计扣除服务其他描述
-
             patentStatus: thisData.patentStatus, // 知识产权情况
             isProperty: thisData.patentStatus == null ? null : thisData.patentStatus == 0 ? 1 : 2,
 
+            approvaType: thisData.type ? thisData.type.split(",").map(Number) : [], // 特批类型
+            typeExplain: thisData.typeExplain,
+
             orgCodeUrl: thisData.contractPictureUrl
               ? splitUrl(
                 thisData.contractPictureUrl,
@@ -3755,7 +3774,7 @@ const NewService = Form.create()(
           return;
         }
       }
-      if (this.state.processStatus != 6 && this.state.processStatus != 7) {
+      if (this.state.processStatus != 7 && this.state.processStatus != 8) {
         message.warning("当前订单流程不能发起变更!");
         return false;
       }
@@ -3990,7 +4009,6 @@ const NewService = Form.create()(
         });
       }
     },
-
     // componentWillReceiveProps(nextProps) {
     //   //props改变时触发
     // },
@@ -4482,7 +4500,7 @@ const NewService = Form.create()(
           return;
         }
       }
-      if (this.state.processStatus != 6 && this.state.processStatus != 7) {
+      if (this.state.processStatus != 7 && this.state.processStatus != 8) {
         message.warning("当前订单流程不能发起变更!");
         return false;
       }
@@ -5838,6 +5856,31 @@ const NewService = Form.create()(
       let children = vipYear.map(its => (
         <Option key={its}>{its}</Option>
       ));
+
+      let approvalOptions = [
+        { label: '无前期款', value: 1 },
+        { label: '暂无合同款', value: 2 },
+        { label: '含高风险条款', value: 3 },
+        { label: '新产品首单', value: 4 },
+        { label: '通过率低于80%', value: 5 },
+        { label: '3万以下会员', value: 6 },
+        { label: '认证首期5K以下', value: 7 },
+        {
+          label: <Input
+            type="text"
+            style={{ width: 150, borderStyle: "none none solid none" }}
+            value={this.state.typeExplain}
+            disabled={this.state.approvaType.indexOf(0) === -1 ? true : false}
+            placeholder="其他"
+            onChange={e => {
+              this.setState({
+                typeExplain: e.target.value
+              })
+            }}
+          />, value: 0
+        },
+      ];
+
       let { closable } = this.state;
       let assistList = this.assistList;
       const { addPop = "" } = this.props
@@ -5952,14 +5995,15 @@ const NewService = Form.create()(
                         >
                           {(this.state.userType == "0"
                             ? ssalesType : this.state.userType == "1"
-                              ? qsalesType : this.state.userType == "3"
-                                ? qsalesType : []).map(function (item) {
-                                  return (
-                                    <Select.Option key={item.value} disabled={item.value == "5"}>
-                                      {item.key}
-                                    </Select.Option>
-                                  );
-                                })}
+                              ? qsalesType : this.state.userType == "2"
+                                ? wsalesType : this.state.userType == "3"
+                                  ? qsalesType : []).map(function (item) {
+                                    return (
+                                      <Select.Option key={item.value} disabled={item.value == "5"}>
+                                        {item.key}
+                                      </Select.Option>
+                                    );
+                                  })}
                         </Select>
                         <span className="mandatory">*</span>
                       </FormItem>
@@ -6001,12 +6045,12 @@ const NewService = Form.create()(
                           </FormItem>
                         </div>
                       }
-                      <div className="addSave" style={{ marginTop: "15px" }}>
+                      <div className="addSave" style={{ marginTop: "30px" }}>
                         <Button
                           className="cancel"
                           type="primary"
                           // onClick={this.handleCancel}
-                          style={{ marginLeft: "150px" }}
+                          style={{ marginLeft: "220px" }}
                           htmlType="submit"
                         >
                           开单
@@ -6130,6 +6174,20 @@ const NewService = Form.create()(
                                       <Select.Option key={0}>非特批</Select.Option>
                                       <Select.Option key={1}>特批</Select.Option>
                                     </Select>
+                                    {
+                                      this.state.approval == 1 &&
+                                      <div>
+                                        <CheckboxGroup
+                                          options={approvalOptions}
+                                          value={this.state.approvaType}
+                                          onChange={e => {
+                                            this.setState({
+                                              approvaType: e
+                                            })
+                                          }}
+                                        />
+                                      </div>
+                                    }
                                   </FormItem>
                                   <FormItem
                                     className="half-item"
@@ -6161,28 +6219,31 @@ const NewService = Form.create()(
                                       }}
                                     />
                                   </FormItem>
-                                  <FormItem
-                                    className="half-item"
-                                    {...formItemLayout}
-                                    label="订单部门"
-                                  >
-                                    <Select
-                                      placeholder="请选择订单部门"
-                                      style={{ width: 240 }}
-                                      value={this.state.organizationSearch}
-                                      onChange={(e) => {
-                                        this.setState({ organizationSearch: e });
-                                      }}
+                                  <div className="clearfix">
+                                    <FormItem
+                                      className="half-item"
+                                      {...formItemLayout}
+                                      label="订单部门"
                                     >
-                                      {departmentArr.map(function (item) {
-                                        return (
-                                          <Select.Option key={item.id}>
-                                            {item.name}
-                                          </Select.Option>
-                                        );
-                                      })}
-                                    </Select>
-                                  </FormItem>
+                                      <Select
+                                        placeholder="请选择订单部门"
+                                        style={{ width: 240 }}
+                                        value={this.state.organizationSearch}
+                                        onChange={(e) => {
+                                          this.setState({ organizationSearch: e });
+                                        }}
+                                      >
+                                        {departmentArr.map(function (item) {
+                                          return (
+                                            <Select.Option key={item.id}>
+                                              {item.name}
+                                            </Select.Option>
+                                          );
+                                        })}
+                                      </Select>
+                                    </FormItem>
+                                  </div>
+
                                 </div>
                               ) : (
                                 <div className="clearfix">
@@ -6194,6 +6255,7 @@ const NewService = Form.create()(
                                     <span>
                                       {/* {["非特批", "特批待审核", "特批通过", "特批驳回"][this.state.approval]} */}
                                       {getApprovedState(this.state.approval)}
+                                      {getApprovedType(this.state.approvaType, this.state.typeExplain, 1)}
                                     </span>
                                   </FormItem>
                                   <FormItem
@@ -7159,7 +7221,7 @@ const NewService = Form.create()(
                                     </Button>
                                   }
                                   {
-                                    (this.state.processStatus == 6 || this.state.processStatus == 7) &&
+                                    (this.state.processStatus == 7 || this.state.processStatus == 8) &&
                                     <Button
                                       type="primary"
                                       style={{
@@ -7182,7 +7244,7 @@ const NewService = Form.create()(
                                     </Button>
                                   }
                                   {
-                                    (this.state.processStatus == 6 || this.state.processStatus == 7) &&
+                                    (this.state.processStatus == 7 || this.state.processStatus == 8) &&
                                     <Button
                                       type="primary"
                                       style={{
@@ -7434,7 +7496,7 @@ const NewService = Form.create()(
                             this.state.activeKey == "2" &&
                             <div className="contractchange">
                               {
-                                !(this.state.processStatus == 6 || this.state.processStatus == 7) &&
+                                !(this.state.processStatus == 7 || this.state.processStatus == 8) &&
                                 <div className="cmask">当前状态不能发起合同变更</div>
                               }
                               <div className="clearfix">

+ 69 - 5
js/component/manageCenter/order/orderNew/approveds.jsx

@@ -32,24 +32,28 @@ import {
   getTaskStatus,
   getProjectStatus,
   getNewOrderStatus,
-  getInvoiceStatus
+  getInvoiceStatus,
+  getProjectName,
+  getApprovedType,
 } from "@/tools.js";
 import './customer.less';
 import { ChooseList } from "../orderNew/chooseList";
 import ShowModalDiv from "@/showModal.jsx";
 import Project from "../../../../component/project";
 import ImgList from "../../../common/imgList";
-import { getProjectName } from "../../../tools";
 import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
 import NewEditProject from "../../../common/projectOperation/newEditProject";
 import DepartmentList from "../../../common/departmentList";
 import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
 import OrderCoor from './changeComponent/orderCoor';
+import { approvalOptions } from "@/dataDic.js";
 import ContentUrl from './contentUrl';
 import LogPopup from "../../../common/logPopup";
 import Cascaders from "../../../common/cascaders";
 import FlowChart from '../../../common/flowchart'; // 流程图
+import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
+import Property from '../../../common/orderDetail/property' // 知识产权情况
 
 const { TabPane } = Tabs;
 const { TextArea } = Input;
@@ -126,6 +130,7 @@ const IntentionCustomer = Form.create()(
           endTime: this.state.releaseDate[1], //结束时间
           approval: this.state.approvalSearch ? this.state.approvalSearch : 0, //审批状态
           liquidationStatus: this.state.liquidationStatusSearch, //结算状态
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
         },
         success: function (data) {
           ShowModal(this);
@@ -158,6 +163,9 @@ const IntentionCustomer = Form.create()(
                 invoiceAmount: thisdata.invoiceAmount,
                 totalAmount: thisdata.totalAmount,
                 financeName: thisdata.financeName,
+
+                type: thisdata.type || "", // 特批类型
+                typeExplain: thisdata.typeExplain,
               });
             }
             this.state.pagination.total = data.data.totalCount;
@@ -182,6 +190,7 @@ const IntentionCustomer = Form.create()(
     },
     getInitialState() {
       return {
+        approvaType: [],
         page: 1,
         declarationBatch: 1,
         orderNos: '',
@@ -236,6 +245,19 @@ const IntentionCustomer = Form.create()(
         ],
         columns: [
           {
+            title: "特批类型",
+            dataIndex: "type",
+            key: "type",
+            width: 110,
+            render: (text, record) => {
+              return (
+                <span>
+                  {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+                </span>
+              );
+            },
+          },
+          {
             title: "合同编号",
             dataIndex: "contractNo",
             key: "contractNo",
@@ -1064,6 +1086,16 @@ const IntentionCustomer = Form.create()(
               financeMobile: thisdata.financeMobile, //财务电话
               outsource: thisdata.outsource == 0 ? "否" : "是",
               deleteSign: thisdata.deleteSign,
+              // 高新纯咨询合同说明
+              knowledgeServices: thisdata.knowledgeServices, //知识产权服务
+              auditServices: thisdata.auditServices, //审计服务
+              addDeductionServices: thisdata.addDeductionServices, //加计扣除服务
+              knowledgeOther: thisdata.knowledgeOther, //知识产权服务其他描述
+              auditOther: thisdata.auditOther, //审计服务其他描述
+              addDeductionOther: thisdata.addDeductionOther, //加计扣除服务其他描述
+              patentStatus: thisdata.patentStatus, //知识产权情况
+              type: thisdata.type,// 特批类型
+              typeExplain: thisdata.typeExplain, // 特批类型
             });
           }
         }.bind(this),
@@ -1401,6 +1433,7 @@ const IntentionCustomer = Form.create()(
       this.state.releaseDate[1] = undefined;
       this.state.approvalSearch = "1";
       this.Cascaders.empty();
+      this.state.approvaType = [];
       this.loadData();
     },
     resets() {
@@ -2058,6 +2091,9 @@ const IntentionCustomer = Form.create()(
           });
         },
       };
+      const approvaChildren = approvalOptions.map(i => (
+        <Option key={i.value}>{i.label}</Option>
+      ));
       return (
         <div className="user-content">
           {this.state.resVisible ? (
@@ -2070,7 +2106,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>特批订单审核</span>
           </div>
@@ -2152,6 +2188,19 @@ const IntentionCustomer = Form.create()(
                   <Option value="1">尾款待付清</Option>
                   <Option value="2">已付清</Option>
                 </Select>
+                <Select
+                  mode="multiple"
+                  style={{ width: 200 }}
+                  placeholder="特批类型"
+                  value={this.state.approvaType}
+                  onChange={e => {
+                    this.setState({
+                      approvaType: e
+                    })
+                  }}
+                >
+                  {approvaChildren}
+                </Select>
                 <span style={{}}>下单日期:</span>
                 <RangePicker
                   value={[
@@ -2521,7 +2570,10 @@ const IntentionCustomer = Form.create()(
                       {...formItemLayout}
                       label="特批立项"
                     >
-                      <span>{getApprovedState(this.state.approval)}</span>
+                      <span>
+                        {getApprovedState(this.state.approval)}
+                        {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
+                      </span>
                     </FormItem>
                     <FormItem
                       className="half-item"
@@ -2571,9 +2623,18 @@ const IntentionCustomer = Form.create()(
                           }}
                           onClick={this.getOrderLog}
                         >
-                          查看订单 日志
+                          查看订单日志
                         </Button>
                       </FormItem>
+                      {/* 高新纯咨询合同说明详情 */}
+                      <Gxczx
+                        knowledgeServices={this.state.knowledgeServices}
+                        auditServices={this.state.auditServices}
+                        addDeductionServices={this.state.addDeductionServices}
+                        knowledgeOther={this.state.knowledgeOther}
+                        auditOther={this.state.auditOther}
+                        addDeductionOther={this.state.addDeductionOther}
+                      />
                       <FormItem
                         labelCol={{ span: 4 }}
                         wrapperCol={{ span: 18 }}
@@ -2599,6 +2660,9 @@ const IntentionCustomer = Form.create()(
                       contentUrl={this.state.contentUrl}
                       imgId={"approContentsImg"}
                     />
+                    <Property
+                      patentStatus={this.state.patentStatus}
+                    />
                     <div className="clearfix">
                       <FormItem
                         className="half-item"

+ 40 - 7
js/component/manageCenter/order/orderNew/approvedvipproject.jsx

@@ -6,10 +6,10 @@ import ResolutionDetail from "@/resolutionDetail";
 import { ChooseList } from "../../order/orderNew/chooseList"
 import ReactToPrint from "react-to-print";
 import OrderItemStatus from "../../../common/orderItemStatus";
-import { salesList } from "@/dataDic.js";
+import { salesList, approvalOptions } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
 import VipLogs from "../../../common/logPopup/viplogs";//会员日志
-import { splitUrl, getApprovalTag } from "@/tools";
+import { splitUrl, getApprovalTag, getApprovedType } from "@/tools";
 import ImgList from "../../../common/imgList";
 import Cascaders from "../../../common/cascaders";
 const { TabPane } = Tabs;
@@ -20,6 +20,7 @@ const ApprovedVipProject = React.createClass({
   //
   getInitialState() {
     return {
+      approvaType: [],
       dvisible: false,
       pageNo: 1,
       totalPage: 0,
@@ -61,6 +62,19 @@ const ApprovedVipProject = React.createClass({
           },
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "合同编号",
           dataIndex: "contractNo",
           key: "contractNo",
@@ -330,6 +344,7 @@ const ApprovedVipProject = React.createClass({
       pageNo: pageNo || 1,
       pageSize: pageSize || 10,
       shiroType: 3, //特批审核
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     });
     $.ajax({
       method: "get",
@@ -397,7 +412,8 @@ const ApprovedVipProject = React.createClass({
   // 重置
   reset() {
     this.setState({
-      searchValues: JSON.parse(JSON.stringify({})),
+      searchValues: JSON.parse(JSON.stringify({ status: "2" })),
+      approvaType: [],
     }, () => {
       this.Cascaders.empty();
       this.loadData();
@@ -473,6 +489,7 @@ const ApprovedVipProject = React.createClass({
     });
     let data = {
       shiroType: 3, //特批审核
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     };
     let obj1 = JSON.parse(JSON.stringify(this.state.searchValues));
     data = Object.assign(data, obj1);
@@ -587,9 +604,12 @@ const ApprovedVipProject = React.createClass({
         {group.name}
       </Select.Option>
     ));
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>特批会员项目</span>
         </div>
@@ -703,7 +723,7 @@ const ApprovedVipProject = React.createClass({
                 }}
               />
               <Select
-                style={{ width: 120 }}
+                style={{ width: 100 }}
                 placeholder="签单金额"
                 value={searchValues["amountStatus"]
                   ? searchValues["amountStatus"]
@@ -722,7 +742,7 @@ const ApprovedVipProject = React.createClass({
                 <Option value="4">40万元以上</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 100 }}
                 placeholder="特批状态"
                 value={searchValues["approval"]
                   ? searchValues["approval"]
@@ -740,7 +760,7 @@ const ApprovedVipProject = React.createClass({
                 <Option value="4">全部特批</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 100 }}
                 placeholder="审核状态"
                 value={searchValues["status"]
                   ? searchValues["status"]
@@ -757,6 +777,19 @@ const ApprovedVipProject = React.createClass({
                 <Option value="3">通过</Option>
                 <Option value="5">全部</Option>
               </Select>
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <Button
                 type="primary"
                 onClick={this.search}

+ 1 - 1
js/component/manageCenter/order/orderNew/arrearsList.jsx

@@ -477,7 +477,7 @@ const ArrearsList = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>欠款催收列表</span>
           </div>

+ 122 - 88
js/component/manageCenter/order/orderNew/billing.jsx

@@ -39,8 +39,9 @@ import {
   getProjectStatus,
   getProjectName,
   getApprovalTag,
+  getApprovedType,
 } from "../../../tools.js";
-import { salesList, processStatus } from "@/dataDic.js";
+import { salesList, processStatus, approvalOptions } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
 import { ChooseList } from "../orderNew/chooseList";
 import ReactToPrint from "react-to-print";
@@ -113,93 +114,9 @@ const PicturesWall = React.createClass({
 });
 const MyService = Form.create()(
   React.createClass({
-    loadData(pageNo) {
-      this.state.data = [];
-      this.setState({
-        loading: true,
-      });
-      $.ajax({
-        method: "get",
-        dataType: "json",
-        crossDomain: false,
-        url: globalConfig.context + "/api/admin/newOrder/orderNewList",
-        data: {
-          pageNo: pageNo || 1,
-          pageSize: this.state.pagination.pageSize,
-          specially: 0,
-          name: this.state.customerName,
-          orderNo: this.state.searchOrderNo,
-          depId: this.state.departmenttSearch,
-          starTime: this.state.releaseDate[0],
-          endTime: this.state.releaseDate[1],
-          liquidationStatus: this.state.liquidationStatusSearch,
-          contractNo: this.state.contractNoSearch,
-          deps: JSON.stringify(this.state.departmenttList),
-          approval: this.state.approvalSearch,
-          amountStatus: this.state.amountStatus,
-          projectType: this.state.projectType,
-          processStatus: this.state.processStatus,
-        },
-        success: function (data) {
-          ShowModal(this);
-          let theArr = [];
-          if (!data.data) {
-            if (data.error && data.error.length) {
-              message.warning(data.error[0].message);
-            }
-          } else {
-            for (let i = 0; i < data.data.list.length; i++) {
-              let thisdata = data.data.list[i];
-              theArr.push({
-                key: thisdata.orderNo,
-                id: thisdata.id,
-                orderNo: thisdata.orderNo, //订单编号
-                totalAmount: thisdata.totalAmount, //签单金额
-                projectType: thisdata.projectType, // 会员状态
-                examineName: thisdata.examineName,
-                processStatus: thisdata.processStatus, //流程状态
-                liquidationStatus: thisdata.liquidationStatus, //结算状态
-                approval: thisdata.approval, //特批状态
-                signDate: thisdata.signDate, //签单时间
-                userName: thisdata.userName, //客户名称
-                salesmanName: thisdata.salesmanName, //营销员名称
-                financeName: thisdata.financeName, //财务名称
-                createDate: thisdata.createDate, //下单时间
-                orderStatus: thisdata.orderStatus, //订单状态
-                depName: thisdata.depName, //部门名称
-                contractNo: thisdata.contractNo, //合同编号
-                invoiceAmount: thisdata.invoiceAmount, //开票金额
-                settlementAmount: thisdata.settlementAmount, //已收款
-                deleteSign: thisdata.deleteSign,
-                salesType: thisdata.salesType,
-                other: thisdata.other,
-                stopProject: thisdata.stopProject, //暂停项目  0无 1有
-              });
-            }
-            this.state.pagination.current = data.data.pageNo;
-            this.state.pagination.total = data.data.totalCount;
-          }
-          if (!data.data.list.length) {
-            this.state.pagination.current = 0;
-            this.state.pagination.total = 0;
-          }
-          this.setState({
-            pageNo: pageNo,
-            dataSource: theArr,
-            pagination: this.state.pagination,
-            selectedRowKeys: [],
-          });
-        }.bind(this),
-      }).always(
-        function () {
-          this.setState({
-            loading: false,
-          });
-        }.bind(this)
-      );
-    },
     getInitialState() {
       return {
+        approvaType: [],
         kaiData: {
           remarks: "",
           type: undefined,
@@ -478,6 +395,19 @@ const MyService = Form.create()(
             },
           },
           {
+            title: "特批类型",
+            dataIndex: "type",
+            key: "type",
+            width: 110,
+            render: (text, record) => {
+              return (
+                <span>
+                  {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+                </span>
+              );
+            },
+          },
+          {
             title: "合同编号",
             dataIndex: "contractNo",
             key: "contractNo",
@@ -810,7 +740,94 @@ const MyService = Form.create()(
         dataSource: [],
       };
     },
-
+    loadData(pageNo) {
+      this.state.data = [];
+      this.setState({
+        loading: true,
+      });
+      $.ajax({
+        method: "get",
+        dataType: "json",
+        crossDomain: false,
+        url: globalConfig.context + "/api/admin/newOrder/orderNewList",
+        data: {
+          pageNo: pageNo || 1,
+          pageSize: this.state.pagination.pageSize,
+          specially: 0,
+          name: this.state.customerName,
+          orderNo: this.state.searchOrderNo,
+          depId: this.state.departmenttSearch,
+          starTime: this.state.releaseDate[0],
+          endTime: this.state.releaseDate[1],
+          liquidationStatus: this.state.liquidationStatusSearch,
+          contractNo: this.state.contractNoSearch,
+          deps: JSON.stringify(this.state.departmenttList),
+          approval: this.state.approvalSearch,
+          amountStatus: this.state.amountStatus,
+          projectType: this.state.projectType,
+          processStatus: this.state.processStatus,
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
+        },
+        success: function (data) {
+          ShowModal(this);
+          let theArr = [];
+          if (!data.data) {
+            if (data.error && data.error.length) {
+              message.warning(data.error[0].message);
+            }
+          } else {
+            for (let i = 0; i < data.data.list.length; i++) {
+              let thisdata = data.data.list[i];
+              theArr.push({
+                key: thisdata.orderNo,
+                id: thisdata.id,
+                orderNo: thisdata.orderNo, //订单编号
+                totalAmount: thisdata.totalAmount, //签单金额
+                projectType: thisdata.projectType, // 会员状态
+                examineName: thisdata.examineName,
+                processStatus: thisdata.processStatus, //流程状态
+                liquidationStatus: thisdata.liquidationStatus, //结算状态
+                approval: thisdata.approval, //特批状态
+                signDate: thisdata.signDate, //签单时间
+                userName: thisdata.userName, //客户名称
+                salesmanName: thisdata.salesmanName, //营销员名称
+                financeName: thisdata.financeName, //财务名称
+                createDate: thisdata.createDate, //下单时间
+                orderStatus: thisdata.orderStatus, //订单状态
+                depName: thisdata.depName, //部门名称
+                contractNo: thisdata.contractNo, //合同编号
+                invoiceAmount: thisdata.invoiceAmount, //开票金额
+                settlementAmount: thisdata.settlementAmount, //已收款
+                deleteSign: thisdata.deleteSign,
+                salesType: thisdata.salesType,
+                other: thisdata.other,
+                stopProject: thisdata.stopProject, //暂停项目  0无 1有
+                type: thisdata.type || "", // 特批类型
+                typeExplain: thisdata.typeExplain,
+              });
+            }
+            this.state.pagination.current = data.data.pageNo;
+            this.state.pagination.total = data.data.totalCount;
+          }
+          if (!data.data.list.length) {
+            this.state.pagination.current = 0;
+            this.state.pagination.total = 0;
+          }
+          this.setState({
+            pageNo: pageNo,
+            dataSource: theArr,
+            pagination: this.state.pagination,
+            selectedRowKeys: [],
+          });
+        }.bind(this),
+      }).always(
+        function () {
+          this.setState({
+            loading: false,
+          });
+        }.bind(this)
+      );
+    },
     invoiceData(record) {
       if (this.state.flagA) return;
       this.setState({
@@ -1629,6 +1646,7 @@ const MyService = Form.create()(
       this.state.projectType = undefined;
       this.state.processStatus = undefined;
       this.Cascaders.empty();
+      this.state.approvaType = [];
       this.loadData();
     },
     //部门
@@ -1864,9 +1882,12 @@ const MyService = Form.create()(
         hideDefaultSelections: true,
         // type: "radio"
       };
+      const approvaChildren = approvalOptions.map(i => (
+        <Option key={i.value}>{i.label}</Option>
+      ));
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title">
             <span
               style={{
@@ -2051,6 +2072,19 @@ const MyService = Form.create()(
                     }
                   </Row>
                   <Row style={{ marginTop: 10 }}>
+                    <Select
+                      mode="multiple"
+                      style={{ width: 200 }}
+                      placeholder="特批类型"
+                      value={this.state.approvaType}
+                      onChange={e => {
+                        this.setState({
+                          approvaType: e
+                        })
+                      }}
+                    >
+                      {approvaChildren}
+                    </Select>
                     <span style={{ marginRight: "10px" }}>下单时间 :</span>
                     <RangePicker
                       style={{ width: 200 }}

+ 770 - 0
js/component/manageCenter/order/orderNew/changeComponent/changeDetailYybz.js

@@ -0,0 +1,770 @@
+import React, { Component } from "react";
+import { Form, Upload, Modal, Button, message, Input, Table, Tooltip } from "antd";
+import AgreeButton from "./agreeButton.js";
+import Rizhi from "./rizhi.js";
+import { getProcessStatusNew } from "../../../../tools.js";
+import { shenghePeo, changeColor } from "@/tools.js";
+import { typeList } from '@/dataDic.js'
+import $ from "jquery/src/ajax";
+import tongguo from "../../../../../../image/tongguo.png";
+import quxiao from "../../../../../../image/quxiao.png";
+import ProAndCuiList from "./proAndCuiList.jsx";
+// import OrderCoor from "./orderCoor";
+import ReactToPrint from "react-to-print";
+const FormItem = Form.Item;
+import Refund from "./refund.js"
+import ImgList from "../../../../common/imgList/index";
+import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
+import FlowChart from '../../../../common/flowchart'; // 流程图
+
+const { TextArea } = Input;
+
+const formItemLayout = {
+  labelCol: { span: 8 },
+  wrapperCol: { span: 14 }
+};
+
+const getChangeType = function (e) {
+  if (e || e == 0) {
+    let str = e.toString();
+    let theType = "";
+    typeList.map(function (item) {
+      if (item.value == str) {
+        theType = item.key;
+      }
+    });
+    return theType;
+  }
+};
+
+class Itemlist extends Component {
+  constructor(props) {
+    super(props);
+  }
+
+  render() {
+    let pageData = this.props.pageData;
+    return (
+      <div className="clearfix">
+        {pageData.labelA === '客户名称' ? <Form.Item
+          label={pageData.labelA}
+          {...pageData.formItemLayoutA}
+          className="half-item"
+        >
+          <div>
+            {pageData.dataA}
+            <EnterpriseNameChange
+              type='journal'
+              style={{ marginLeft: 10 }}
+              enterpriseId={this.props.orderUid} />
+          </div>
+        </Form.Item> : pageData.labelA === '变更原因' ? <Form.Item
+          label={pageData.labelA}
+          {...pageData.formItemLayoutA}
+          className="half-item"
+        >
+          <Tooltip placement="topLeft" title={pageData.dataA}>
+            <div style={{
+              width: '350px !important',
+              whiteSpace: 'nowrap',
+              wordBreak: 'break-all',
+              overflow: 'hidden',
+              textOverflow: 'ellipsis',
+            }}>{pageData.dataA}</div>
+          </Tooltip>
+        </Form.Item> : <Form.Item
+          label={pageData.labelA}
+          {...pageData.formItemLayoutA}
+          className="half-item"
+        >
+          <div>{pageData.dataA}
+            {
+              pageData.labelA === '当前进度' &&
+              <FlowChart id={this.props.id} />
+            }
+          </div>
+        </Form.Item>}
+        <Form.Item
+          label={pageData.labelB}
+          {...pageData.formItemLayoutB}
+          className="half-item"
+        >
+          <span>{pageData.dataB}</span>
+        </Form.Item>
+      </div>
+    );
+  }
+}
+
+class ChangeDetail extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      rotateDeg: 0,
+      previewVisible: false,
+      buttonStatus: true,
+      dataSource: [],
+      reason: "",
+      rejectState: 0,
+      // 累计回收退票
+      refundInvoice: 0,
+      // 收款信息
+      proceedsData: [],
+      proceedsTotal: this.props.proceedsTotal,
+      // 开票信息
+      invoiceData: [],
+      invoiceTotal: this.props.invoiceTotal,
+      cost: 10,
+      refund: 8,
+      // 测试添加退票
+      contactList: this.props.contactList,
+      ContactsLists: [
+        {
+          title: "金额(万元)",
+          dataIndex: "amount",
+          key: "amount",
+          render: (text, record) => {
+            return (
+              <div>
+                实际回收退票(万元)
+                <Input
+                  value={record.amount}
+                  placeholder="请输入金额(必填项)"
+                  disabled={record.load}
+                  key={record.id}
+                  required="required"
+                  onChange={(e) => {
+                    record.amount = e.target.value;
+                    this.setState({ contactList: this.state.contactList });
+                  }}
+                  style={{ width: "120px" }}
+                />
+              </div>
+            );
+          },
+        },
+        {
+          title: "时间",
+          dataIndex: "createTimes",
+          key: "createTimes",
+          render: (text, record) => {
+            return <div>{record.createTimes}</div>;
+          },
+        },
+      ],
+    };
+    this.getOrgCodeUrl = this.getOrgCodeUrl.bind(this);
+    this.changeButtonStatus = this.changeButtonStatus.bind(this);
+    this.moneyOld = this.moneyOld.bind(this);
+    this.downImg = this.downImg.bind(this);
+    this.upImg = this.upImg.bind(this);
+    this.rotate = this.rotate.bind(this);
+  }
+  // componentWillUpdate() {
+  //   this.loadDataChange();
+  //   console.log(this.props);
+  // }
+  // componentDidUpdate() {
+  //     this.loadDataChange();
+  //   console.log(this.props);
+  // }
+
+  // loadDataChange() {
+  //   console.log(this.props);
+
+  //   $.ajax({
+  //     method: "get",
+  //     dataType: "json",
+  //     crossDomain: false,
+  //     url: globalConfig.context + "/api/admin/orderChange/orderChangeLogList",
+  //     data: {
+  //       changeId: this.props.data.id
+  //     },
+  //     success: function(data) {
+  //       if (data.error.length || data.data.list == "") {
+  //         if (data.error && data.error.length) {
+  //           message.warning(data.error[0].message);
+  //         }
+  //       } else {
+  //         this.setState({
+  //           dataSource: data.data
+  //         });
+  //       }
+  //     }.bind(this)
+  //   });
+  // }
+  downImg() {
+    let num = 0;
+    for (let i = 0; i < this.props.pictureUrl.length; i++) {
+      if (this.props.pictureUrl[i].url == this.state.previewImage) {
+        num = i;
+      }
+    }
+    if (num == this.props.pictureUrl.length - 1) {
+      return message.warning("已经是最后一张了哦");
+    }
+    this.state.previewImage = this.props.pictureUrl[num + 1].url;
+    this.setState({
+      previewImage: this.state.previewImage,
+      rotateDeg: 0,
+    });
+  }
+  upImg() {
+    let num = 0;
+    for (let i = 0; i < this.props.pictureUrl.length; i++) {
+      if (this.props.pictureUrl[i].url == this.state.previewImage) {
+        num = i;
+      }
+    }
+    if (num == 0) {
+      return message.warning("已经是第一张了哦");
+    }
+    this.state.previewImage = this.props.pictureUrl[num - 1].url;
+    this.setState({
+      previewImage: this.state.previewImage,
+      rotateDeg: 0,
+    });
+  }
+  rotate() {
+    let rotateDeg = this.state.rotateDeg + 90;
+    this.setState({
+      rotateDeg,
+    });
+  }
+
+  moneyOld(str, money) {
+    if (money) {
+      return (
+        <span style={{ color: "red", fontWeight: 900, fontSize: 16 }}>
+          {str}(原合同金额{money}万元)
+        </span>
+      );
+    } else {
+      return (
+        <span style={{ color: "red", fontWeight: 900, fontSize: 16 }}>
+          {str}
+        </span>
+      );
+    }
+  }
+
+  componentWillReceiveProps(nextProps) {
+    this.setState({
+      paymentTimes: nextProps.data.paymentTimes,
+      paymentAmount: nextProps.data.paymentAmount,
+      invoiceTimes: nextProps.data.invoiceTimes,
+      invoiceAmount: nextProps.data.invoiceAmount,
+      cwCost: nextProps.data.cwCost,
+      refundableAmount: nextProps.data.refundableAmount,
+      cwRemarks: nextProps.data.cwRemarks,
+      contactList: nextProps.contactList,
+      refundInvoice: nextProps.data.refundInvoice,
+    });
+  }
+
+  getOrgCodeUrl(e) {
+    this.setState({
+      orgCodeUrl: e,
+    });
+  }
+
+  //同意拒绝按钮的有无
+  changeButtonStatus() {
+    this.setState({
+      buttonStatus: !this.state.buttonStatus,
+    });
+    window.setTimeout(() => {
+      this.setState({
+        reason: "",
+      });
+    }, 100);
+  }
+
+  render() {
+    const pageData = [
+      {
+        labelA: "客户名称",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.userName,
+        labelB: "合同编号",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.contractNo,
+      },
+      {
+        labelA: "时间",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.createTimes,
+        labelB: "发起人",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.applicant,
+      },
+      {
+        labelA: "当前进度",
+        formItemLayoutA: formItemLayout,
+        // 当前是咨询师以及咨询师经理时使用shenhePeo函数,其他流程正常显示
+        dataA:
+          this.props.data.processState == 3 || this.props.data.processState == 4
+            ? shenghePeo(this.props.data.examineName, this.props.data.processState)
+            : getProcessStatusNew(
+              this.props.data.examineName,
+              this.props.data.processState,
+              this.props.data.status
+            ),
+        labelB: "变更类型",
+        formItemLayoutB: formItemLayout,
+        dataB: getChangeType(this.props.data.type),
+      },
+
+      {
+        labelA: this.props.data.type == 0 ? "企业总经理姓名" : "",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.managerContacts,
+        labelB: "企业总经理联系电话",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.managerContactMobile,
+      },
+
+      {
+        labelA: this.props.data.type == 0 ? "企业联系人姓名" : "",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.contacts,
+        labelB: "企业联系人联系方式",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.contactMobile,
+      },
+
+      {
+        labelA: "合同额(万元)",
+        formItemLayoutA: formItemLayout,
+        dataA: this.moneyOld(this.props.data.totalAmount, this.props.money),
+        labelB: "已收款(万元)",
+        formItemLayoutB: formItemLayout,
+        dataB: changeColor(this.props.data.settlementAmount),
+      },
+      {
+        labelA: "欠款(万元)",
+        formItemLayoutA: formItemLayout,
+        dataA: changeColor(this.props.data.arrears),
+        labelB: "申请退款(万元)",
+        formItemLayoutB: formItemLayout,
+        dataB: changeColor(this.props.data.changeAmount),
+      },
+      {
+        labelA: "首付款(万元)",
+        formItemLayoutA: formItemLayout,
+        dataA: changeColor(this.props.data.firstAmount),
+      },
+      {
+        labelA: "变更原因",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.remarks,
+      },
+    ];
+    const planData = [
+      {
+        labelA: "项目进度",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.projectState,
+        labelB: "发生成本费用(万元)",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.zxsCost,
+      },
+      {
+        labelA: "变更原因",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.zxsRemarks,
+      },
+    ];
+    const financeData = [
+
+      {
+        labelA: "发生直接成本(万元)",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.cwCost,
+        labelB: "发生间接成本(万元)",
+        formItemLayoutB: formItemLayout,
+        dataB: this.props.data.cwIndirectCost
+      },
+      {
+        labelA: "应退金额(万元)",
+        formItemLayoutA: formItemLayout,
+        dataA: this.props.data.refundableAmount
+      }
+    ];
+    const buttonData = [
+      {
+        name: "同意",
+        title: "理由",
+        placeholder: "请输入理由",
+        type: "primary",
+        status: 2,
+        onChange: (value) => {
+          this.setState({
+            remarks: value,
+          });
+        },
+      },
+      {
+        name: "拒绝",
+        title: "理由",
+        placeholder: "请输入理由",
+        type: "danger",
+        status: 3,
+        onChange: (value) => {
+          this.setState({
+            remarks: value,
+          });
+        },
+      },
+    ];
+    const orgCodeUrl = this.props.pictureUrl;
+    const attachment = this.props.attachment
+    // console.log(this.props.attachment);
+    // console.log(this.props.orderUid);
+    return (
+      <div className="clearfix changeDetail">
+        <div
+          className="clearfix"
+          ref={(e) => {
+            this.refs = e;
+          }}
+        >
+          <div
+            style={{
+              borderRadius: "50%",
+              width: 300,
+              height: 300,
+              position: "absolute",
+              top: 230,
+              left: 525,
+              transform: "rotate(-5deg)",
+              zIndex: 1,
+              display:
+                this.props.data.status == 4
+                  ? "block"
+                  : "none",
+            }}
+          >
+            <img src={tongguo} style={{ width: "100%" }} />
+          </div>
+          <div
+            style={{
+              borderRadius: "50%",
+              width: 300,
+              height: 300,
+              position: "absolute",
+              top: 284,
+              left: 586,
+              transform: "rotate(-5deg)",
+              zIndex: 1,
+              display: this.props.data.status == 5 ? "block" : "none",
+            }}
+          >
+            <img src={quxiao} style={{ width: "63%" }} />
+          </div>
+
+          <h2 style={{ textAlign: "center", marginBottom: 10, marginTop: 20 }}>
+            合同变更记录
+          </h2>
+          {pageData.map((item, index) => {
+            return !!item.labelA && <Itemlist orderUid={this.props.orderUid} key={index} pageData={item} id={this.props.id} />;
+          })}
+          <Form.Item
+            label="变更凭证"
+            labelCol={{ span: 4 }}
+            wrapperCol={{ span: 18 }}
+          >
+            <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
+              <ImgList domId={"bfpz"} fileList={orgCodeUrl} ItemWidth={'96px'} />
+            </div>
+            <Rizhi changeId={this.props.id} />
+          </Form.Item>
+          {
+            this.props.contractPictureUrl && this.props.contractPictureUrl.length != 0 &&
+            <div className="clearfix">
+              <Form.Item
+                labelCol={{ span: 4 }}
+                wrapperCol={{ span: 18 }}
+                label="最新合同"
+              >
+                <div style={{ paddingTop: 10 }}>
+                  <ImgList
+                    domId={"zxht"}
+                    fileList={
+                      this.props.contractPictureUrl
+                    }
+                    ItemWidth={"96px"}
+                  />
+                </div>
+              </Form.Item>
+            </div>
+          }
+          {/* <h2 style={{ textAlign: "center", marginBottom: 0 }}>变更日志</h2> */}
+          <ul
+            style={{
+              width: "868px",
+              overflow: "hidden",
+              paddingLeft: "90px",
+              position: "relative",
+            }}
+          >
+            {/* <span>操作人:</span> */}
+            {this.props.dataSource.map((item, index) => {
+              if (item.status == 0) {
+                item.status = "发起";
+              } else if (item.status == 1) {
+                item.status = "审核中";
+              } else if (item.status == 2) {
+                item.status = "通过";
+              } else if (item.status == 3) {
+                item.status = "驳回";
+              } else if (item.status == 4) {
+                item.status = "完成";
+              } else if (item.status == 5) {
+                item.status = "撤销";
+              }
+              return (
+                <li
+                  key={index}
+                  style={{
+                    width: "100%",
+                    height: "auto",
+                    wordBreak: "break-all",
+                    marginBottom: "10px",
+                  }}
+                >
+                  {item.aname + ":" + "【" + item.status + "】" + item.remarks + "(" + item.createTimes + ")"}
+                </li>
+              );
+            })}
+          </ul>
+          <ProAndCuiList id={this.props.id} />
+          {/* 收款情况 */}
+          <div className="clearfix">
+            <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
+              收款情况
+            </h3>
+            <div style={{ marginLeft: "90px" }}>
+              <ul>
+                {(this.props.proceedsData.bill || []).map((item, index) => (
+                  <li key={index}>
+                    {item.payTime +
+                      " " +
+                      item.aName +
+                      " 收款:" +
+                      item.transactionAmount +
+                      "万元"}
+                  </li>
+                ))}
+              </ul>
+
+              <div>收款总计:{this.props.proceedsTotal}万元</div>
+            </div>
+            <br />
+            <div style={{ marginLeft: "90px" }}>
+              <ul>
+                {(this.props.proceedsData.invoice || []).map((item, index) => (
+                  <li key={index}>
+                    {item.createTime + " " + " 开票:" + item.amount + "万元"}
+                  </li>
+                ))}
+              </ul>
+              <div>开票总计:{this.props.invoiceTotal}万元</div>
+            </div>
+
+            <p style={{ marginLeft: "90px", color: "red" }}>
+              系统预估 产生成本(万元):
+              {this.props.data.estimateCost
+                ? this.props.data.estimateCost
+                : "0"}{" "}
+              &nbsp;应退金额(万元):
+              {this.props.data.estimateRefundable
+                ? this.props.data.estimateRefundable
+                : "0"}
+            </p>
+          </div>
+          {/* 当前财务状态 */}
+          <div
+            style={{
+              display: this.props.data.processState > 6 ? "block" : "none",
+            }}
+          >
+            <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
+              当前财务状态(财务填写)
+            </h3>
+            {financeData.map((item, index) => {
+              return <Itemlist orderUid={this.props.orderUid} key={index} pageData={item} id={this.props.id} />;
+            })}
+          </div>
+          {/* 回收退票 */}
+          <div
+            style={{
+              display:
+                (this.props.data.processState == 9 ||
+                  this.props.data.processState == 8 ||
+                  this.props.data.processState == 10) &&
+                  (this.props.data.status == 2 || this.props.data.status == 4 || this.props.data.status == 3 || this.props.data.status == 6)
+                  ? "block"
+                  : "none",
+            }}
+          >
+            <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
+              回收退票
+            </h3>
+
+            <Table
+              size="middle"
+              pagination={false}
+              bordered
+              columns={this.state.ContactsLists}
+              dataSource={this.state.contactList}
+            />
+          </div>
+          {/* 完成审核,上传附件 */}
+          <div style={{
+            position: "relative",
+            display:
+              (this.props.data.processState == 8 ||
+                this.props.data.processState == 9 ||
+                this.props.data.processState == 10) &&
+                this.props.data.status == 2 || this.props.data.status == 4 || this.props.data.status == 3 || this.props.data.status == 6
+                ? "block"
+                : "none",
+            marginTop: 10,
+          }}
+          >
+            <hr
+              style={{
+                marginTop: 12,
+                marginBottom: 10,
+                backgroundColor: "black",
+                height: 1,
+                border: "none",
+              }}
+            />
+            <h3
+              style={{
+                marginLeft: 20,
+                fontWeight: 800,
+                marginBottom: 10,
+                display: "inline-block",
+              }}
+            >
+              完成审核,上传附件{" "}
+              <span
+                style={{ fontSize: 12, fontWeight: "normal", color: "red" }}
+              >
+                (注:由营销员上传变更后附件,全变更流程完成。)
+              </span>
+            </h3>
+            <div>
+              <Form.Item
+                label="变更附件"
+                labelCol={{ span: 4 }}
+                wrapperCol={{ span: 18 }}
+              >
+                <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
+                  {attachment.length > 0 ? <ImgList domId={this.props.domId + 2 ? this.props.domId + 2 : 'changeDetailyxgly1'} fileList={attachment} ItemWidth={'96px'} /> : '无附件'}
+                </div>
+              </Form.Item>
+            </div>
+          </div>
+
+          <div
+            style={{
+              display:
+                (this.props.data.processState == 8 ||
+                  this.props.data.processState == 9 ||
+                  this.props.data.processState == 10) &&
+                  this.props.data.status == 4 &&
+                  this.props.data.refundStatus
+                  ? "block"
+                  : "none",
+            }}
+          >
+            <Refund data={this.props.data} id={this.props.id} />
+          </div>
+        </div>
+        {
+          ((this.props.processState == this.props.data.processState) &&
+            (this.props.data.status == 1 || this.props.data.status == 3)) &&
+          <div>
+            <div className="clearfix">
+              <FormItem
+                style={{ height: "auto" }}
+                labelCol={{ span: 4 }}
+                wrapperCol={{ span: 18 }}
+                label="备注"
+              >
+                <TextArea
+                  rows={4}
+                  placeholder="请输入备注信息"
+                  style={{ width: "95%" }}
+                  value={this.state.reason}
+                  onChange={(e) => {
+                    let reason = e.target.value;
+                    this.setState({ reason });
+                  }}
+                />
+              </FormItem>
+            </div>
+
+            <div
+              className="clearfix"
+              style={{ display: "flex", justifyContent: "space-around" }}
+            >
+              {buttonData.map((item, index) => {
+                return (
+                  <AgreeButton
+                    data={item}
+                    key={index}
+                    backData={this.props.data}
+                    processState={this.props.processState}
+                    visible={this.changeButtonStatus}
+                    loadData={this.props.loadData}
+                    reason={this.state.reason}
+                    ajaxData={this.state}
+                    rejectState={this.state.rejectState}
+                    onCancel={this.props.onCancel}
+                  />
+                );
+              })}
+            </div>
+          </div>
+        }
+        {/* <ReactToPrint
+          trigger={() => (
+            <div className="clearfix">
+              <Button type="primary" style={{ float: "right", marginTop: 10 }}>
+                打印
+              </Button>
+            </div>
+          )}
+          content={() => this.refs}
+        /> */}
+        {/* <OrderCoor 
+        orderNo={this.props.orderNo}
+        /> */}
+        <ReactToPrint
+          trigger={() => (
+            <Button
+              type="primary"
+              style={{
+                float: "right",
+                marginTop: 10,
+                position: "absolute",
+                top: 0,
+                right: 30,
+              }}
+            >
+              打印
+            </Button>
+          )}
+          content={() => this.refs}
+        />
+      </div>
+    );
+  }
+}
+
+export { ChangeDetail, getChangeType };

+ 1 - 1
js/component/manageCenter/order/orderNew/chargeback.jsx

@@ -1037,7 +1037,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>退单管理</span>
           </div>

+ 1 - 1
js/component/manageCenter/order/orderNew/contractChangeDsz.jsx

@@ -5,7 +5,7 @@ class ContractChangeDsz extends Component {
   constructor(props) {
     super(props);
     this.state = {
-      processState: 9
+      processState: 10
     };
   }
 

+ 1 - 1
js/component/manageCenter/order/orderNew/contractChangeFzc.jsx

@@ -5,7 +5,7 @@ class ContractChangeFzc extends Component {
   constructor(props) {
     super(props);
     this.state = {
-      processState: 10
+      processState: 11
     };
   }
 

+ 19 - 0
js/component/manageCenter/order/orderNew/contractChangeYybz.jsx

@@ -0,0 +1,19 @@
+import React, { Component } from "react";
+import ContractChange from "./contractYybz.js";
+
+class ContractChangeYybz extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+          processState:8
+        };
+    }
+
+    render() {
+        return (
+            <ContractChange processState={this.state.processState}/>
+        )
+    }
+}
+
+export default ContractChangeYybz;

+ 1 - 1
js/component/manageCenter/order/orderNew/contractChangeZc.jsx

@@ -5,7 +5,7 @@ class ContractChangeZc extends Component {
   constructor(props) {
     super(props);
     this.state = {
-      processState: 8
+      processState: 9
     };
   }
 

+ 1 - 1
js/component/manageCenter/order/orderNew/contractCwjl.js

@@ -1319,7 +1319,7 @@ const contractChange = Form.create()(
       const departmentArr = this.state.departmentArr || [];
       return (
         <div className="user-content" style={{ position: "relative" }}>
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更查看订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractCwzj.js

@@ -1197,7 +1197,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractCwzy.js

@@ -1338,7 +1338,7 @@ const contractChange = Form.create()(
       const departmentArr = this.state.departmentArr || [];
       return (
         <div className="user-content" style={{ position: "relative" }}>
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractJsjl.js

@@ -1193,7 +1193,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractJsy.js

@@ -1138,7 +1138,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractJszj.js

@@ -1188,7 +1188,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractYxgly.js

@@ -1197,7 +1197,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractYxjl.js

@@ -1197,7 +1197,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content">
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

+ 1 - 1
js/component/manageCenter/order/orderNew/contractYxy.js

@@ -1209,7 +1209,7 @@ const contractChange = Form.create()(
       const { TabPane } = Tabs;
       return (
         <div className="user-content" style={{ position: "relative" }}>
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>
               合同变更审核订单

Разница между файлами не показана из-за своего большого размера
+ 1510 - 0
js/component/manageCenter/order/orderNew/contractYybz.js


+ 45 - 7
js/component/manageCenter/order/orderNew/examine.jsx

@@ -30,7 +30,8 @@ import {
   moneyVerify,
   ShowModal,
   getProjectName,
-  getApprovalTag
+  getApprovalTag,
+  getApprovedType,
 } from "@/tools.js";
 import "./customer.less";
 import ShowModalDiv from "@/showModal.jsx";
@@ -44,7 +45,7 @@ import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
 import OrderCoor from "./changeComponent/orderCoor";
 import ContentUrl from "./contentUrl";
-import { salesList, processStatus } from "@/dataDic.js";
+import { salesList, processStatus, approvalOptions } from "@/dataDic.js";
 import FlowChart from '../../../common/flowchart'; // 流程图
 import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
 import Property from '../../../common/orderDetail/property' // 知识产权情况
@@ -139,7 +140,7 @@ const IntentionCustomer = Form.create()(
         data: {
           pageNo: pageNo || 1,
           pageSize: this.state.pagination.pageSize,
-          specially: 1, //营销管理员审核 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单 10 营销经理
+          specially: 1, //营销管理员审核 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9复审订单 10营销经理 11运营保障
           name: this.state.customerName, //名称
           orderNo: this.state.orderNoSearch, //订单编号
           starTime: this.state.releaseDate[0], //开始时间
@@ -148,6 +149,7 @@ const IntentionCustomer = Form.create()(
           processStatus: this.state.processStatusSearch,
           amountStatus: this.state.amountStatus,
           projectType: this.state.projectType,//会员
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
         },
         success: function (data) {
           ShowModal(this);
@@ -180,6 +182,8 @@ const IntentionCustomer = Form.create()(
                 createDate: thisdata.createDate, //下单时间
                 depName: thisdata.depName,
                 orderStatus: thisdata.orderStatus,
+                type: thisdata.type || "", // 特批类型
+                typeExplain: thisdata.typeExplain,
               });
             }
             this.state.pagination.total = data.data.totalCount;
@@ -205,6 +209,7 @@ const IntentionCustomer = Form.create()(
     },
     getInitialState() {
       return {
+        approvaType: [],
         rotateDeg: 0,
         page: 1,
         resVisible: false,
@@ -249,6 +254,19 @@ const IntentionCustomer = Form.create()(
             },
           },
           {
+            title: "特批类型",
+            dataIndex: "type",
+            key: "type",
+            width: 110,
+            render: (text, record) => {
+              return (
+                <span>
+                  {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+                </span>
+              );
+            },
+          },
+          {
             title: "合同编号",
             dataIndex: "contractNo",
             key: "contractNo",
@@ -770,7 +788,6 @@ const IntentionCustomer = Form.create()(
               depName: thisdata.depName,
               outsource: thisdata.outsource == 0 ? "否" : "是",
               deleteSign: thisdata.deleteSign,
-
               // 高新纯咨询合同说明
               knowledgeServices: thisdata.knowledgeServices, //知识产权服务
               auditServices: thisdata.auditServices, //审计服务
@@ -778,8 +795,9 @@ const IntentionCustomer = Form.create()(
               knowledgeOther: thisdata.knowledgeOther, //知识产权服务其他描述
               auditOther: thisdata.auditOther, //审计服务其他描述
               addDeductionOther: thisdata.addDeductionOther, //加计扣除服务其他描述
-
               patentStatus: thisdata.patentStatus, //知识产权情况
+              type: thisdata.type,// 特批类型
+              typeExplain: thisdata.typeExplain, // 特批类型
             });
           }
         }.bind(this),
@@ -1355,6 +1373,7 @@ const IntentionCustomer = Form.create()(
       this.state.amountStatus = undefined;
       this.state.processStatusSearch = undefined;
       this.state.projectType = undefined;
+      this.state.approvaType = [];
       this.loadData(1);
     },
     outReset() {
@@ -1619,6 +1638,9 @@ const IntentionCustomer = Form.create()(
       const { TextArea } = Input;
       const { RangePicker } = DatePicker;
       const cuiDataList = this.state.contactList || [];
+      const approvaChildren = approvalOptions.map(i => (
+        <Option key={i.value}>{i.label}</Option>
+      ));
       return (
         <div className="user-content">
           {this.state.resVisible ? (
@@ -1631,7 +1653,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>订单审核</span>
           </div>
@@ -1719,6 +1741,19 @@ const IntentionCustomer = Form.create()(
                     )
                   }
                 </Select>
+                <Select
+                  mode="multiple"
+                  style={{ width: 200 }}
+                  placeholder="特批类型"
+                  value={this.state.approvaType}
+                  onChange={e => {
+                    this.setState({
+                      approvaType: e
+                    })
+                  }}
+                >
+                  {approvaChildren}
+                </Select>
                 <span style={{ marginRight: "10px" }}>下单时间 :</span>
                 <RangePicker
                   value={[
@@ -1914,7 +1949,10 @@ const IntentionCustomer = Form.create()(
                             {...formItemLayout}
                             label="特批立项"
                           >
-                            <span>{getApprovedState(this.state.approval)}</span>
+                            <span>
+                              {getApprovedState(this.state.approval)}
+                              {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
+                            </span>
                           </FormItem>
                           <FormItem
                             className="half-item"

+ 45 - 7
js/component/manageCenter/order/orderNew/examinejl.jsx

@@ -31,7 +31,8 @@ import {
   moneyVerify,
   ShowModal,
   getProjectName,
-  getApprovalTag
+  getApprovalTag,
+  getApprovedType,
 } from "@/tools.js";
 import "./customer.less";
 import ShowModalDiv from "@/showModal.jsx";
@@ -45,7 +46,7 @@ import OrderItemStatus from "../../../common/orderItemStatus";
 import EnterpriseNameChange from "../../../common/enterpriseNameChange";
 import OrderCoor from "./changeComponent/orderCoor";
 import ContentUrl from "./contentUrl";
-import { salesList, processStatus } from "@/dataDic.js";
+import { salesList, processStatus, approvalOptions } from "@/dataDic.js";
 import FlowChart from '../../../common/flowchart'; // 流程图
 import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
 import Property from '../../../common/orderDetail/property' // 知识产权情况
@@ -142,7 +143,7 @@ const IntentionCustomer = Form.create()(
         data: {
           pageNo: pageNo || 1,
           pageSize: this.state.pagination.pageSize,
-          specially: 10, //营销经理审核 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单 10 营销经理
+          specially: 10, //营销经理审核 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9复审订单 10营销经理 11运营保障
           name: this.state.customerName, //名称
           orderNo: this.state.orderNoSearch, //订单编号
           starTime: this.state.releaseDate[0], //开始时间
@@ -151,6 +152,7 @@ const IntentionCustomer = Form.create()(
           processStatus: this.state.processStatusSearch,
           amountStatus: this.state.amountStatus,
           projectType: this.state.projectType,//会员
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
         },
         success: function (data) {
           ShowModal(this);
@@ -183,6 +185,8 @@ const IntentionCustomer = Form.create()(
                 createDate: thisdata.createDate, //下单时间
                 depName: thisdata.depName,
                 orderStatus: thisdata.orderStatus,
+                type: thisdata.type || "", // 特批类型
+                typeExplain: thisdata.typeExplain,
               });
             }
             this.state.pagination.total = data.data.totalCount;
@@ -208,6 +212,7 @@ const IntentionCustomer = Form.create()(
     },
     getInitialState() {
       return {
+        approvaType: [],
         rotateDeg: 0,
         page: 1,
         resVisible: false,
@@ -252,6 +257,19 @@ const IntentionCustomer = Form.create()(
             },
           },
           {
+            title: "特批类型",
+            dataIndex: "type",
+            key: "type",
+            width: 110,
+            render: (text, record) => {
+              return (
+                <span>
+                  {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+                </span>
+              );
+            },
+          },
+          {
             title: "合同编号",
             dataIndex: "contractNo",
             key: "contractNo",
@@ -773,7 +791,6 @@ const IntentionCustomer = Form.create()(
               depName: thisdata.depName,
               outsource: thisdata.outsource == 0 ? "否" : "是",
               deleteSign: thisdata.deleteSign,
-
               // 高新纯咨询合同说明
               knowledgeServices: thisdata.knowledgeServices, //知识产权服务
               auditServices: thisdata.auditServices, //审计服务
@@ -781,8 +798,9 @@ const IntentionCustomer = Form.create()(
               knowledgeOther: thisdata.knowledgeOther, //知识产权服务其他描述
               auditOther: thisdata.auditOther, //审计服务其他描述
               addDeductionOther: thisdata.addDeductionOther, //加计扣除服务其他描述
-
               patentStatus: thisdata.patentStatus, //知识产权情况
+              type: thisdata.type,// 特批类型
+              typeExplain: thisdata.typeExplain, // 特批类型
 
             });
           }
@@ -1362,6 +1380,7 @@ const IntentionCustomer = Form.create()(
       this.state.amountStatus = undefined;
       this.state.processStatusSearch = undefined;
       this.state.projectType = undefined;
+      this.state.approvaType = [];
       this.loadData(1);
     },
     outReset() {
@@ -1626,6 +1645,9 @@ const IntentionCustomer = Form.create()(
       const { TextArea } = Input;
       const { RangePicker } = DatePicker;
       const cuiDataList = this.state.contactList || [];
+      const approvaChildren = approvalOptions.map(i => (
+        <Option key={i.value}>{i.label}</Option>
+      ));
       return (
         <div className="user-content">
           {this.state.resVisible ? (
@@ -1638,7 +1660,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>订单审核</span>
           </div>
@@ -1726,6 +1748,19 @@ const IntentionCustomer = Form.create()(
                     )
                   }
                 </Select>
+                <Select
+                  mode="multiple"
+                  style={{ width: 200 }}
+                  placeholder="特批类型"
+                  value={this.state.approvaType}
+                  onChange={e => {
+                    this.setState({
+                      approvaType: e
+                    })
+                  }}
+                >
+                  {approvaChildren}
+                </Select>
                 <span style={{ marginRight: "10px" }}>下单时间 :</span>
                 <RangePicker
                   value={[
@@ -1921,7 +1956,10 @@ const IntentionCustomer = Form.create()(
                             {...formItemLayout}
                             label="特批立项"
                           >
-                            <span>{getApprovedState(this.state.approval)}</span>
+                            <span>
+                              {getApprovedState(this.state.approval)}
+                              {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
+                            </span>
                           </FormItem>
                           <FormItem
                             className="half-item"

Разница между файлами не показана из-за своего большого размера
+ 2577 - 0
js/component/manageCenter/order/orderNew/examineyybz.jsx


+ 38 - 3
js/component/manageCenter/order/orderNew/inquiry.jsx

@@ -42,8 +42,9 @@ import {
   getjiedian,
   getProjectName,
   getApprovalTag,
+  getApprovedType,
 } from "../../../tools.js";
-import { salesList, processStatus } from "@/dataDic.js";
+import { salesList, processStatus, approvalOptions } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
 import { ChooseList } from "../orderNew/chooseList";
 import ReactToPrint from "react-to-print";
@@ -161,7 +162,8 @@ const IntentionCustomer = Form.create()(
           amountStatus: this.state.amountStatus,
           approval: this.state.approvalSearch,
           projectType: this.state.projectType,
-          processStatus: this.state.processStatusSearch
+          processStatus: this.state.processStatusSearch,
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
         },
         success: function (data) {
           ShowModal(this);
@@ -196,6 +198,8 @@ const IntentionCustomer = Form.create()(
                 contractNo: thisdata.contractNo, //合同编号
                 invoiceAmount: thisdata.invoiceAmount, //开票金额
                 settlementAmount: thisdata.settlementAmount, //已收款
+                type: thisdata.type || "", // 特批类型
+                typeExplain: thisdata.typeExplain,
               });
             }
             this.state.pagination.current = data.data.pageNo;
@@ -222,6 +226,7 @@ const IntentionCustomer = Form.create()(
     },
     getInitialState() {
       return {
+        approvaType: [],
         rotateDeg: 0,
         orderNos: '',
         kaiData: {
@@ -745,6 +750,19 @@ const IntentionCustomer = Form.create()(
             },
           },
           {
+            title: "特批类型",
+            dataIndex: "type",
+            key: "type",
+            width: 110,
+            render: (text, record) => {
+              return (
+                <span>
+                  {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+                </span>
+              );
+            },
+          },
+          {
             title: "合同编号",
             dataIndex: "contractNo",
             key: "contractNo",
@@ -2086,6 +2104,7 @@ const IntentionCustomer = Form.create()(
       this.state.approvalSearch = undefined;
       this.state.processStatusSearch = undefined;
       this.state.projectType = undefined;
+      this.state.approvaType = [];
       this.Cascaders.empty();
       this.loadData();
     },
@@ -2612,6 +2631,9 @@ const IntentionCustomer = Form.create()(
         hideDefaultSelections: true,
         type: "radio",
       };
+      const approvaChildren = approvalOptions.map(i => (
+        <Option key={i.value}>{i.label}</Option>
+      ));
       return (
         <div className="user-content">
           {this.state.resVisible ? (
@@ -2624,7 +2646,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title">
             <span
               style={{
@@ -2792,6 +2814,19 @@ const IntentionCustomer = Form.create()(
                     重置 <Icon type="reload" />
                   </Button>
                   <div style={{ marginTop: 10 }}>
+                    <Select
+                      mode="multiple"
+                      style={{ width: 200 }}
+                      placeholder="特批类型"
+                      value={this.state.approvaType}
+                      onChange={e => {
+                        this.setState({
+                          approvaType: e
+                        })
+                      }}
+                    >
+                      {approvaChildren}
+                    </Select>
                     <span style={{ marginRight: "10px" }}>下单时间 :</span>
                     <RangePicker
                       value={[

+ 39 - 5
js/component/manageCenter/order/orderNew/myprojectvip.jsx

@@ -6,11 +6,11 @@ import ResolutionDetail from "@/resolutionDetail";
 import { ChooseList } from "../../order/orderNew/chooseList"
 import ReactToPrint from "react-to-print";
 import OrderItemStatus from "../../../common/orderItemStatus";
-import { salesList } from "@/dataDic.js";
+import { salesList, approvalOptions } from "@/dataDic.js";
 import ProjectOperationVip from "../../../common/projectOperation/vip";
 import ShowModalDiv from "@/showModal.jsx";
 import VipLogs from "../../../common/logPopup/viplogs";//会员日志
-import { splitUrl, getApprovalTag } from "@/tools";
+import { splitUrl, getApprovalTag, getApprovedType } from "@/tools";
 import ImgList from "../../../common/imgList";
 import Cascaders from "../../../common/cascaders";
 const { TabPane } = Tabs;
@@ -21,6 +21,7 @@ const MyProjectVip = React.createClass({
   //
   getInitialState() {
     return {
+      approvaType: [],
       dvisible: false,
       pageNo: 1,
       totalPage: 0,
@@ -60,6 +61,19 @@ const MyProjectVip = React.createClass({
           },
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "合同编号",
           dataIndex: "contractNo",
           key: "contractNo",
@@ -354,6 +368,7 @@ const MyProjectVip = React.createClass({
       pageNo: pageNo || 1,
       pageSize: pageSize || 10,
       shiroType: 1, //营销员
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     });
     $.ajax({
       method: "get",
@@ -422,6 +437,7 @@ const MyProjectVip = React.createClass({
   reset() {
     this.setState({
       searchValues: JSON.parse(JSON.stringify({})),
+      approvaType: [],
     }, () => {
       this.Cascaders.empty();
       this.loadData();
@@ -452,6 +468,8 @@ const MyProjectVip = React.createClass({
     });
     let data = {
       shiroType: 1, //我的
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
+
     };
     let obj1 = JSON.parse(JSON.stringify(this.state.searchValues));
     data = Object.assign(data, obj1);
@@ -566,9 +584,12 @@ const MyProjectVip = React.createClass({
         {group.name}
       </Select.Option>
     ));
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>我的会员项目</span>
         </div>
@@ -701,7 +722,7 @@ const MyProjectVip = React.createClass({
                 <Option value="4">40万元以上</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 100 }}
                 placeholder="特批状态"
                 value={searchValues["approval"]
                   ? searchValues["approval"]
@@ -719,7 +740,7 @@ const MyProjectVip = React.createClass({
                 <Option value="4">全部特批</Option>
               </Select>
               <Select
-                style={{ width: 120 }}
+                style={{ width: 100 }}
                 placeholder="审核状态"
                 value={searchValues["status"]
                   ? searchValues["status"]
@@ -737,6 +758,19 @@ const MyProjectVip = React.createClass({
                 <Option value="4">驳回</Option>
                 <Option value="5">全部</Option>
               </Select>
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <Button
                 type="primary"
                 onClick={this.search}

+ 3 - 2
js/component/manageCenter/order/orderNew/mysuspend.jsx

@@ -4,7 +4,7 @@ import { AutoComplete, Button, Input, Spin, Table, DatePicker, Select, message,
 import { ChooseList } from "../../order/orderNew/chooseList"
 import moment from "moment";
 import ShowModalDiv from "@/showModal.jsx";
-import { getStopStatus } from '@/tools';
+import { ShowModal, getStopStatus } from '@/tools';
 import Cascaders from "../../../common/cascaders";
 import MySuspend from '../../../common/mysuspend';
 import MySuspendLog from '../../../common/logPopup/mysuspendlog';
@@ -215,6 +215,7 @@ const MySuspendList = React.createClass({
       url: globalConfig.context + "/api/admin/orderProject/selectProjectStop",
       data: datas,
       success: function (data) {
+        ShowModal(this);
         this.setState({
           loading: false,
         });
@@ -402,7 +403,7 @@ const MySuspendList = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>我的暂停项目</span>
         </div>

+ 1 - 1
js/component/manageCenter/order/orderNew/outsourcingList.jsx

@@ -1545,7 +1545,7 @@ const outsourcingList = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>外包订单列表</span>
           </div>

+ 1 - 1
js/component/manageCenter/order/orderNew/outsourcingPro.jsx

@@ -1441,7 +1441,7 @@ const outsourcingPro = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>外包项目列表</span>
           </div>

+ 86 - 26
js/component/manageCenter/order/orderNew/reject.jsx

@@ -16,7 +16,8 @@ import {
   Col,
   Tag,
   Tabs,
-  Radio
+  Radio,
+  Checkbox,
 } from 'antd';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
@@ -29,6 +30,8 @@ import {
   moneyVerify,
   ShowModal,
   getProjectName,
+  getApprovedType,
+  compare,
 } from "@/tools.js";
 import './customer.less';
 import ShowModalDiv from "@/showModal.jsx"
@@ -49,6 +52,7 @@ import FlowChart from '../../../common/flowchart'; // 流程图
 import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
 import Property from '../../../common/orderDetail/property' // 知识产权情况
 
+const CheckboxGroup = Checkbox.Group;
 
 const IntentionCustomer = Form.create()(
   React.createClass({
@@ -110,6 +114,7 @@ const IntentionCustomer = Form.create()(
     },
     getInitialState() {
       return {
+        approvaType: [],
         isShow: true, // 高新纯咨询合同默认填写
         page: 1,
         orderNos: '',
@@ -1084,6 +1089,9 @@ const IntentionCustomer = Form.create()(
               patentStatus: thisdata.patentStatus, // 知识产权情况
               isProperty: thisdata.patentStatus == null ? null : thisdata.patentStatus == 0 ? 1 : 2,
 
+              approvaType: thisdata.type ? thisdata.type.split(",").map(Number) : [], // 特批类型
+              typeExplain: thisdata.typeExplain,
+
             });
           }
         }.bind(this),
@@ -1585,6 +1593,16 @@ const IntentionCustomer = Form.create()(
         message.warning("订单留言不能为空");
         return false;
       }
+      if (this.state.approval == 1) {
+        if (this.state.approvaType && this.state.approvaType.length == 0) {
+          message.warning("请勾选特批状态!");
+          return false;
+        }
+        if (this.state.approvaType.indexOf(0) !== -1 && !this.state.typeExplain) {
+          message.warning("请填写特批其他说明!");
+          return false;
+        }
+      }
       // if (!theorgCodeUrl) {
       //   message.warning("图片过大,上传失败");
       //   this.refs.signFirstPayment.focus();
@@ -1663,6 +1681,9 @@ const IntentionCustomer = Form.create()(
 
           patentStatus: this.state.patentStatus, //知识产权情况
 
+          type: this.state.approvaType.sort(compare).toString(), // 特批类型
+          typeExplain: this.state.approvaType.indexOf(0) === -1 ? "" : this.state.typeExplain, // 其他备注
+
         },
         success: function (data) {
           if (data.error.length || data.data.list == "") {
@@ -2010,8 +2031,6 @@ const IntentionCustomer = Form.create()(
       }
     },
 
-
-
     render() {
       const expandedRowRenderVip = (e) => {
         const data = e.splitList;
@@ -2146,6 +2165,31 @@ const IntentionCustomer = Form.create()(
           </Select.Option>
         ));
       const { TabPane } = Tabs;
+
+      let approvalOptions = [
+        { label: '无前期款', value: 1 },
+        { label: '暂无合同款', value: 2 },
+        { label: '含高风险条款', value: 3 },
+        { label: '新产品首单', value: 4 },
+        { label: '通过率低于80%', value: 5 },
+        { label: '3万以下会员', value: 6 },
+        { label: '认证首期5K以下', value: 7 },
+        {
+          label: <Input
+            type="text"
+            style={{ width: 150, borderStyle: "none none solid none" }}
+            value={this.state.typeExplain}
+            disabled={this.state.approvaType.indexOf(0) === -1 ? true : false}
+            placeholder="其他"
+            onChange={e => {
+              this.setState({
+                typeExplain: e.target.value
+              })
+            }}
+          />, value: 0
+        },
+      ];
+
       return (
         <div className="user-content">
           {this.state.resVisible ? (
@@ -2158,7 +2202,7 @@ const IntentionCustomer = Form.create()(
           ) : (
             ""
           )}
-          <ShowModalDiv ShowModal={this.state.showModal} />
+          <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
           <div className="content-title" style={{ marginBottom: 10 }}>
             <span style={{ fontWeight: 900, fontSize: 16 }}>驳回订单列表</span>
           </div>
@@ -2466,31 +2510,47 @@ const IntentionCustomer = Form.create()(
                         style={{ width: "240px" }}
                       />
                     </FormItem>
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label="特批立项"
-                    >
-                      <Select
-                        placeholder="请选择客户所属类型"
-                        style={{ width: "240px" }}
-                        value={this.state.approval}
-                        onChange={(e) => {
-                          this.setState({ approval: e });
-                        }}
+                    <div className="clearfix">
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="特批立项"
                       >
+                        <Select
+                          placeholder="请选择客户所属类型"
+                          style={{ width: "240px" }}
+                          value={this.state.approval}
+                          onChange={(e) => {
+                            this.setState({ approval: e });
+                          }}
+                        >
+                          {
+                            [{ id: 0, name: "非特批" },
+                            { id: 1, name: "特批" }].map(function (item) {
+                              return (
+                                <Select.Option key={item.id} value={item.id}>
+                                  {item.name}
+                                </Select.Option>
+                              );
+                            })
+                          }
+                        </Select>
                         {
-                          [{ id: 0, name: "非特批" },
-                          { id: 1, name: "特批" }].map(function (item) {
-                            return (
-                              <Select.Option key={item.id} value={item.id}>
-                                {item.name}
-                              </Select.Option>
-                            );
-                          })
+                          this.state.approval == 1 &&
+                          <div>
+                            <CheckboxGroup
+                              options={approvalOptions}
+                              value={this.state.approvaType}
+                              onChange={e => {
+                                this.setState({
+                                  approvaType: e
+                                })
+                              }}
+                            />
+                          </div>
                         }
-                      </Select>
-                    </FormItem>
+                      </FormItem>
+                    </div>
                     <FormItem
                       className="half-item"
                       {...formItemLayout}

+ 3 - 2
js/component/manageCenter/order/orderNew/suspendexamine.jsx

@@ -4,7 +4,7 @@ import { AutoComplete, Button, Input, Spin, Table, DatePicker, Select, message,
 import { ChooseList } from "../../order/orderNew/chooseList"
 import moment from "moment";
 import ShowModalDiv from "@/showModal.jsx";
-import { getStopStatus } from '@/tools';
+import { ShowModal, getStopStatus } from '@/tools';
 import Cascaders from "../../../common/cascaders";
 import MySuspend from '../../../common/mysuspend';
 import MySuspendLog from '../../../common/logPopup/mysuspendlog';
@@ -191,6 +191,7 @@ const SuspendExamine = React.createClass({
       url: globalConfig.context + "/api/admin/orderProject/selectProjectStop",
       data: datas,
       success: function (data) {
+        ShowModal(this);
         this.setState({
           loading: false,
         });
@@ -337,7 +338,7 @@ const SuspendExamine = React.createClass({
     ));
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>审核暂停&重启项目</span>
         </div>

+ 15 - 10
js/component/manageCenter/order/orderNew/updatesales.jsx

@@ -13,6 +13,7 @@ import {
   customerType,
   ssalesType,
   qsalesType,
+  wsalesType,
 } from "@/dataDic.js";
 
 const FormItem = Form.Item;
@@ -164,9 +165,9 @@ class UpdateSales extends Component {
     //     this.isArray(qsalesType, updatas.salesType, "value") && (defaults.userType = 1);//有销售类型(以签单客户)
     //   }
     // }
-    if (updatas.userType == null) {//无客户所属类型时--可让其选择所有销售类型
-      defaults.userType = 2
-    }
+    // if (updatas.userType == null) {//无客户所属类型时--可让其选择所有销售类型
+    //   defaults.userType = 2
+    // }
     this.setState({
       datas: defaults,
       channelName: defaults.salesType == "3" ? defaults.other : "",//销售类型为渠道的时候给编辑出的渠道名称赋值
@@ -217,6 +218,9 @@ class UpdateSales extends Component {
                   </Select>
                 </FormItem>
               }
+              {
+                console.log("====", datas.userType)
+              }
               <FormItem {...formItemLayout} label="销售类型">
                 <Select
                   placeholder="请选择销售类型"
@@ -235,13 +239,14 @@ class UpdateSales extends Component {
                   {(datas.userType == "0"
                     ? ssalesType : datas.userType == "1"
                       ? qsalesType : datas.userType == "2"
-                        ? [...ssalesType, ...qsalesType] : []).map(function (item) {
-                          return (
-                            <Select.Option key={item.value} disabled={item.value == "5"}>
-                              {item.key}
-                            </Select.Option>
-                          );
-                        })}
+                        ? wsalesType : datas.userType == "3"
+                          ? qsalesType : []).map(function (item) {
+                            return (
+                              <Select.Option key={item.value} disabled={item.value == "5"}>
+                                {item.key}
+                              </Select.Option>
+                            );
+                          })}
                 </Select>
               </FormItem>
               {

+ 1 - 1
js/component/manageCenter/order/source/index.jsx

@@ -489,7 +489,7 @@ class Source extends Component {
     const { searchValues, onelist, columns, changeList, contactsOption, visible, datas, params } = this.state;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16, }}>销售来源统计表
             &nbsp;<spn style={{ color: "rgb(49,49,255)", fontSize: 15, }}>注:可通过签单数、签单金额查询统计</spn>

+ 1 - 1
js/component/manageCenter/personnel/personnel/personnelAll.jsx

@@ -859,7 +859,7 @@ const PersonnelAll = React.createClass({
           id={this.state.resolutionId}
           loadData={this.loadData}
         />
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title">
           <span>外包任务派单</span>
         </div>

+ 1 - 1
js/component/manageCenter/povertyInquiry/component/gx.jsx

@@ -241,7 +241,7 @@ class GxPage extends Component {
     const { columns, dataSource, totalcount, effectiveCount, id, type } = this.state;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>建档立卡脱贫户-批量查询</span>
         </div>

+ 1 - 1
js/component/manageCenter/povertyInquiry/component/nationwide.jsx

@@ -189,7 +189,7 @@ class Complete extends Component {
     const { columns, dataSource, totalcount, effectiveCount, id, type } = this.state;
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>建档立卡脱贫户-批量查询</span>
         </div>

+ 1 - 1
js/component/manageCenter/project/patent/list.jsx

@@ -718,7 +718,7 @@ class List extends Component {
   render() {
     return (
       <div className="user-content patentList">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>专利列表</span>
         </div>

Разница между файлами не показана из-за своего большого размера
+ 714 - 679
js/component/manageCenter/project/project/enterpriseProjectQuery.jsx


+ 1 - 1
js/component/manageCenter/project/project/outsourceTaskAssignment.jsx

@@ -1042,7 +1042,7 @@ const OutsourceTaskAssignment = React.createClass({
           id={this.state.resolutionId}
           loadData={this.loadData}
         />
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>外包任务派单</span>
         </div>

+ 46 - 8
js/component/manageCenter/project/project/projectAssignment.jsx

@@ -29,6 +29,7 @@ import {
   getboutique,
   ShowModal,
   getProjectName,
+  getApprovedType,
 } from "@/tools";
 import ImgList from "../../../common/imgList";
 import PicturesWall from "../../order/orderNew/changeComponent/picturesWall";
@@ -40,7 +41,7 @@ import NewAddProject from "../../../common/projectOperation/newAddProject"
 import NewEditProject from "../../../common/projectOperation/newEditProject"
 import OrderCoor from "../../order/orderNew/changeComponent/orderCoor";
 import ContentUrl from "../../order/orderNew/contentUrl";
-import { salesList } from "@/dataDic.js";
+import { salesList, approvalOptions } from "@/dataDic.js";
 import Cascaders from "../../../common/cascaders";
 import FlowChart from '../../../common/flowchart'; // 流程图
 import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
@@ -72,7 +73,8 @@ const PaiDan = React.createClass({
         starTime: this.state.releaseDate[0], //开始时间
         endTime: this.state.releaseDate[1], //结束时间
         tag: this.state.tag, // 标签
-        outsource: 0
+        outsource: 0,
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         ShowModal(this);
@@ -102,7 +104,9 @@ const PaiDan = React.createClass({
               settlementAmount: thisdata.settlementAmount, //已交款项
               depName: thisdata.depName, //部门名称
               tag: thisdata.tag, // 标签
-              ischange: thisdata.ischange //是否通过变更生成的
+              ischange: thisdata.ischange, //是否通过变更生成的
+              type: thisdata.type || "", // 特批类型
+              typeExplain: thisdata.typeExplain,
             });
           }
         }
@@ -128,6 +132,7 @@ const PaiDan = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       orderNo: [], // 
       distribution: "0",
       activeKey: "1",
@@ -161,6 +166,19 @@ const PaiDan = React.createClass({
       },
       columns: [
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "订单编号",
           dataIndex: "orderNo",
           key: "orderNo",
@@ -415,7 +433,7 @@ const PaiDan = React.createClass({
           render: (text, record) => {
             return (
               <div>
-                {(this.state.processStatus == 5 || this.state.processStatus == 6) &&
+                {(this.state.processStatus == 6 || this.state.processStatus == 7) &&
                   record.taskStatus == 0 && record.cSort != 6 &&
                   <Button
                     type="primary"
@@ -657,7 +675,6 @@ const PaiDan = React.createClass({
             oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
             nowFinance: thisdata.nowFinance, //财务名称
             nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
-
             // 高新纯咨询合同说明
             knowledgeServices: thisdata.knowledgeServices, //知识产权服务
             auditServices: thisdata.auditServices, //审计服务
@@ -665,8 +682,9 @@ const PaiDan = React.createClass({
             knowledgeOther: thisdata.knowledgeOther, //知识产权服务其他描述
             auditOther: thisdata.auditOther, //审计服务其他描述
             addDeductionOther: thisdata.addDeductionOther, //加计扣除服务其他描述
-
             patentStatus: thisdata.patentStatus, //知识产权情况
+            type: thisdata.type,// 特批类型
+            typeExplain: thisdata.typeExplain, // 特批类型
           });
         }
       }.bind(this)
@@ -928,6 +946,7 @@ const PaiDan = React.createClass({
     this.state.orderNo = [];
     this.state.distribution = "0";
     this.Cascaders.empty();
+    this.state.approvaType = [];
     this.loadData(this.state.page);
   },
 
@@ -1308,6 +1327,9 @@ const PaiDan = React.createClass({
     const FormItem = Form.Item;
     const { RangePicker } = DatePicker;
     let departmentArr = this.state.departmentArr || [];
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.state.resVisible ? (
@@ -1320,7 +1342,7 @@ const PaiDan = React.createClass({
         ) : (
           ""
         )}
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>项目派单管理</span>
         </div>
@@ -1397,6 +1419,19 @@ const PaiDan = React.createClass({
                 <Option value="4">已过期</Option>
                 <Option value="5">已作废</Option>
               </Select>
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <Button type="primary" onClick={this.search}>
                 搜索
               </Button>
@@ -1614,7 +1649,10 @@ const PaiDan = React.createClass({
                     {...formItemLayout}
                     label="特批立项"
                   >
-                    <span>{getApprovedState(this.state.approval)}</span>
+                    <span>
+                      {getApprovedState(this.state.approval)}
+                      {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
+                    </span>
                   </FormItem>
                   <FormItem
                     className="half-item"

+ 1 - 1
js/component/manageCenter/project/project/projectQuery.jsx

@@ -780,7 +780,7 @@ const PaiDan = React.createClass({
         ) : (
           ""
         )}
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>项目派单管理</span>
         </div>

+ 1 - 1
js/component/manageCenter/project/project/zxsglyOutSourcingPaiDan.jsx

@@ -1130,7 +1130,7 @@ const zxsglyOutSourcingPaiDan = React.createClass({
     let departmentArr = this.state.departmentArr || [];
     return (
       <div className="user-content">
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>外包项目派单</span>
         </div>

+ 26 - 5
js/component/manageCenter/project/summary/highTech.jsx

@@ -11,7 +11,7 @@ import {
   Cascader,
   AutoComplete,
 } from "antd";
-import { ShowModal } from "@/tools";
+import { ShowModal, getApprovedType } from "@/tools";
 import { ChooseList } from "../../order/orderNew/chooseList";
 import $ from "jquery/src/ajax";
 import moment from "moment";
@@ -24,7 +24,7 @@ import {
   audit,
   currency,
 } from "./highTechConfig";
-import { projectStatusList } from "@/dataDic";
+import { projectStatusList, approvalOptions } from "@/dataDic";
 import ProjectDetails from "./projectDetails";
 import Cascaders from "../../../common/cascaders";
 
@@ -36,6 +36,7 @@ class HighTech extends Component {
   constructor(props) {
     super(props);
     this.state = {
+      approvaType: [],
       tbaindex: 1,
       loading: false,
       changeList: undefined,
@@ -143,6 +144,7 @@ class HighTech extends Component {
           thchId: this.state.thchId || undefined, //咨询师/咨询经理id
           taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态
           sdStatus: this.state.sdStatus,//满意度
+          type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
         },
       success: function (data) {
         ShowModal(this);
@@ -200,12 +202,13 @@ class HighTech extends Component {
         auto: "",
         taskProjectStatus: "",
         sdStatus: undefined,
+        approvaType: [],
       },
       () => {
         this.Cascaders1.empty();
         this.Cascaders2.empty();
         this.defaultcolumns();
-        this.loadData();
+        // this.loadData();
       }
     );
   }
@@ -303,6 +306,7 @@ class HighTech extends Component {
       thchId: this.state.thchId || undefined, //咨询师/咨询经理id
       taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态
       sdStatus: this.state.sdStatus,//满意度
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     };
     $.ajax({
       method: "get",
@@ -441,6 +445,9 @@ class HighTech extends Component {
         {group.name}
       </Select.Option>
     ));
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.props.introduce ? (
@@ -836,7 +843,7 @@ class HighTech extends Component {
                     </span>
                     <RangePicker
                       allowClear={false}
-                      style={{ marginRight: "10px" }}
+                      style={{ marginRight: "10px", width: 250 }}
                       value={[
                         this.state.releaseDate[0]
                           ? moment(this.state.releaseDate[0])
@@ -850,6 +857,19 @@ class HighTech extends Component {
                       }}
                     />
                   </span>
+                  <Select
+                    mode="multiple"
+                    style={{ width: 200 }}
+                    placeholder="特批类型"
+                    value={this.state.approvaType}
+                    onChange={e => {
+                      this.setState({
+                        approvaType: e
+                      })
+                    }}
+                  >
+                    {approvaChildren}
+                  </Select>
                   <Button
                     type="primary"
                     onClick={() => {
@@ -881,7 +901,7 @@ class HighTech extends Component {
                   </div>
                 }
               </TabPane>
-              <TabPane tab="导出EXCEL" key="3">
+              {adminData.isSuperAdmin ? <TabPane tab="导出EXCEL" key="3">
                 <Button
                   type="primary"
                   style={{ margin: "10px" }}
@@ -890,6 +910,7 @@ class HighTech extends Component {
                   导出excel
                 </Button>
               </TabPane>
+                : ""}
             </Tabs>
           </div>
         )}

+ 92 - 1
js/component/manageCenter/project/summary/highTechConfig.jsx

@@ -1,6 +1,6 @@
 import { Tooltip } from 'antd';
 import React from 'react';
-import { getProjectName, getFormRetrieves } from '@/tools';
+import { getProjectName, getFormRetrieves, getApprovedType } from '@/tools';
 import { Button } from 'antd';
 
 
@@ -13,6 +13,19 @@ const member = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime",
@@ -193,6 +206,19 @@ const highTechColumns = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime"
@@ -378,6 +404,19 @@ const doubleSoft = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime"
@@ -530,6 +569,19 @@ const softWriting = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime"
@@ -721,6 +773,19 @@ const patent = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime"
@@ -924,6 +989,19 @@ const audit = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime",
@@ -1107,6 +1185,19 @@ const currency = [
     isNoD: true,
   },
   {
+    title: "特批类型",
+    dataIndex: "type",
+    key: "type",
+    width: 110,
+    render: (text, record) => {
+      return (
+        <span>
+          {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+        </span>
+      );
+    },
+  },
+  {
     title: "派单时间",
     dataIndex: "distributionTime",
     key: "distributionTime",

+ 934 - 0
js/component/manageCenter/project/summary/projecData.jsx

@@ -0,0 +1,934 @@
+// import React, { Component } from "react";
+// import {
+//   Button,
+//   DatePicker,
+//   Input,
+//   message,
+//   Select,
+//   Spin,
+//   Table,
+//   Tabs,
+//   Cascader,
+//   AutoComplete,
+// } from "antd";
+// import { ShowModal } from "@/tools";
+// import { ChooseList } from "../../order/orderNew/chooseList";
+// import $ from "jquery/src/ajax";
+// import moment from "moment";
+// import {
+//   member,
+//   highTechColumns,
+//   doubleSoft,
+//   softWriting,
+//   patent,
+//   audit,
+//   currency,
+// } from "./highTechConfig";
+// import { projectStatusList } from "@/dataDic";
+// import ProjectDetails from "./projectDetails";
+// import Cascaders from "../../../common/cascaders";
+
+// const { TabPane } = Tabs;
+// const { RangePicker } = DatePicker;
+// const { Option } = Select;
+
+// class HighTech extends Component {
+//   constructor(props) {
+//     super(props);
+//     this.state = {
+//       tbaindex: 1,
+//       searchValues: {},
+//       loading: false,
+//       changeList: undefined,
+//       columns: currency,
+//       status: 0,
+//       page: 1,
+//       pagination: {
+//         defaultCurrent: 1,
+//         defaultPageSize: 10,
+//         showQuickJumper: true,
+//         pageSize: 10,
+//         onChange: function (page) {
+//           this.loadData(page);
+//         }.bind(this),
+//         showTotal: function (total) {
+//           return "共" + total + "条数据";
+//         },
+//       },
+//       dataSource: [],
+//       releaseDate: [],
+//       searchOrderNo: "",
+//       searchContractNo: "",
+//       searchEnterpriseName: "",
+//       declarationBatch: "",
+//       projectSituation: "",
+//       projectAmount: "",
+//       deps: "",
+//       thchDeps: "",
+//       projectType: "",
+//       projectStatus: "",
+//       departmentArr: [],
+//       contactsOption: [],
+//       contactsOptionData: [],
+//       visible: false,
+//     };
+//     this.resetAll = this.resetAll.bind(this);
+//     this.changeList = this.changeList.bind(this);
+//     this.loadData = this.loadData.bind(this);
+//     this.selectSuperId = this.selectSuperId.bind(this);
+
+//     this.supervisor = this.supervisor.bind(this);
+//     this.httpChange = this.httpChange.bind(this);
+//     this.selectAuto = this.selectAuto.bind(this);
+//     this.blurChange = this.blurChange.bind(this);
+
+//   }
+
+//   changeList(arr) {
+//     const newArr = [];
+//     this.state.columns.forEach((item) => {
+//       arr.forEach((val) => {
+//         if (val === item.title) {
+//           newArr.push(item);
+//         }
+//       });
+//     });
+//     this.setState({
+//       changeList: newArr,
+//     });
+//   }
+
+//   loadData(pageNo = "") {
+//     this.setState({
+//       loading: true,
+//     });
+//     $.ajax({
+//       method: "get",
+//       dataType: "json",
+//       crossDomain: false,
+//       url: globalConfig.context + "/api/admin/statistis/selectTaskList",
+//       data: this.props.searchData
+//         ? Object.assign(
+//           {
+//             pageNo: pageNo || 1,
+//             pageSize: this.state.pagination.pageSize || 10,
+//           },
+//           this.props.searchData
+//         )
+//         :
+//         {
+//           pageNo: pageNo || 1,
+//           pageSize: this.state.pagination.pageSize || 10,
+//           startDate:
+//             this.state.releaseDate.length > 0
+//               ? this.state.releaseDate[0]
+//               : undefined, //开始时间
+//           endDate:
+//             this.state.releaseDate.length > 0
+//               ? this.state.releaseDate[1]
+//               : undefined, //结束时间
+//           deps: this.state.deps || undefined, //部门ID
+//           thchDeps: this.state.thchDeps || undefined, //责任部门ID
+//           projectStatus: this.state.projectStatus || undefined, //项目类别
+//           projectType: !this.state.projectType ? undefined : this.state.projectType, //项目分类
+//           orderNo: this.state.searchOrderNo || undefined, //订单编号
+//           contractNo: this.state.searchContractNo || undefined, //合同编号
+//           userName: this.state.searchEnterpriseName || undefined, //企业名称
+//           declarationBatch: this.state.declarationBatch || undefined, //申报批次
+//           projectSituation:
+//             typeof this.state.projectSituation === "number"
+//               ? this.state.projectSituation
+//               : undefined, //项目分类
+//           projectAmount: this.state.projectAmount || undefined, //项目金额
+//           status: this.state.status,
+//           thchId: this.state.thchId || undefined, //咨询师/咨询经理id
+//           taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态
+//           sdStatus: this.state.sdStatus,//满意度
+//         },
+//       success: function (data) {
+//         ShowModal(this);
+//         let theArr = [];
+//         if (!data.data || !data.data.list) {
+//           if (data.error && data.error.length) {
+//             message.warning(data.error[0].message);
+//           }
+//         } else {
+//           for (let i = 0; i < data.data.list.length; i++) {
+//             let thisdata = data.data.list[i];
+//             thisdata.key = (data.data.pageNo - 1) * data.data.pageSize + i + 1;
+//             theArr.push(thisdata);
+//           }
+//           this.state.pagination.current = data.data.pageNo;
+//           this.state.pagination.total = data.data.totalCount;
+//           if (data.data && data.data.list && !data.data.list.length) {
+//             this.state.pagination.current = 0;
+//             this.state.pagination.total = 0;
+//           }
+//           this.setState({
+//             pagination: this.state.pagination,
+//             page: pageNo,
+//             dataSource: theArr,
+//           });
+//         }
+//       }.bind(this),
+//     }).always(
+//       function () {
+//         this.setState({
+//           loading: false,
+//         });
+//       }.bind(this)
+//     );
+//   }
+
+//   resetAll() {
+//     this.setState(
+//       {
+//         newArray: [],
+//         releaseDate: [],
+//         searchOrderNo: "",
+//         searchContractNo: "",
+//         searchEnterpriseName: "",
+//         declarationBatch: "",
+//         projectSituation: "",
+//         projectAmount: "",
+//         projectType: "",
+//         deps: "",
+//         thchDeps: "",
+//         projectStatus: "",
+//         columns: currency,
+//         status: 0,
+//         thchId: "",
+//         auto: "",
+//         taskProjectStatus: "",
+//         sdStatus: undefined,
+//       },
+//       () => {
+//         this.Cascaders1.empty();
+//         this.Cascaders2.empty();
+//         this.defaultcolumns();
+//         this.loadData();
+//       }
+//     );
+//   }
+//   //项目类别
+//   selectSuperId() {
+//     $.ajax({
+//       method: "get",
+//       dataType: "json",
+//       crossDomain: false,
+//       url: globalConfig.context + "/api/admin/ProjectSize/getAllCname",
+//       data: {
+//         flag: 0,
+//       },
+//       success: function (data) {
+//         let theArr = [];
+//         let newTheArr = []
+//         let thedata = data.data;
+//         if (!thedata) {
+//           if (data.error && data.error.length) {
+//             message.warning(data.error[0].message);
+//           }
+//         }
+//         for (let i = 0; i < data.data.length; i++) {
+//           let theData = data.data[i];
+//           theArr.push(
+//             <Select.Option value={theData.id} key={theData.cname}>
+//               {theData.cname}
+//             </Select.Option>
+//           );
+//           let newChildren = []
+//           for (let j = 0; j < theData.typeList.length; j++) {
+//             newChildren.push({
+//               label: theData.typeList[j].name,
+//               value: theData.typeList[j].id,
+//             })
+//           }
+//           newTheArr.push({
+//             label: theData.cname,
+//             value: theData.id,
+//             children: newChildren
+//           })
+//         }
+//         this.setState({
+//           contactsOption: theArr,
+//           contactsOptionData: newTheArr,
+//           // contactsOptionData: data.data,
+//         });
+//       }.bind(this),
+//     }).always();
+//   }
+//   // 设置默认table(用来默认不显示某列数据 isNoD:true)
+//   defaultcolumns() {
+//     const newArr = [];
+//     this.state.columns.forEach((item) => {
+//       if (item.isNoD) {
+//         return
+//       } else {
+//         newArr.push(item);
+//       }
+//     });
+//     this.setState({
+//       changeList: newArr,
+//     }, () => {
+//       this.loadData();
+//     });
+//   }
+//   // 导出excel
+//   exportExec() {
+//     message.config({
+//       duration: 20,
+//     });
+//     let loading = message.loading("下载中...");
+//     this.setState({
+//       exportPendingLoading: true,
+//     });
+//     let data = {
+//       startDate:
+//         this.state.releaseDate.length > 0
+//           ? this.state.releaseDate[0]
+//           : undefined, //开始时间
+//       endDate:
+//         this.state.releaseDate.length > 0
+//           ? this.state.releaseDate[1]
+//           : undefined, //结束时间
+//       deps: this.state.deps || undefined, //部门ID
+//       thchDeps: this.state.thchDeps || undefined, //责任部门ID
+//       projectStatus: this.state.projectStatus || undefined, //项目类别
+//       projectType: !this.state.projectType ? undefined : this.state.projectType, //项目分类
+//       status: this.state.status,
+//       orderNo: this.state.searchOrderNo || undefined, //订单编号
+//       contractNo: this.state.searchContractNo || undefined, //合同编号
+//       userName: this.state.searchEnterpriseName || undefined, //企业名称
+//       declarationBatch: this.state.declarationBatch || undefined, //申报批次
+//       projectAmount: this.state.projectAmount || undefined, //项目金额
+//       thchId: this.state.thchId || undefined, //咨询师/咨询经理id
+//       taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态
+//       sdStatus: this.state.sdStatus,//满意度
+//     };
+//     $.ajax({
+//       method: "get",
+//       dataType: "json",
+//       crossDomain: false,
+//       url: "/api/admin/statistis/exporTaskList",
+//       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;
+//   }
+//   // 查询用户
+//   supervisor(e) {
+//     $.ajax({
+//       method: "get",
+//       dataType: "json",
+//       crossDomain: false,
+//       url: globalConfig.context + "/api/admin/customer/listAdminByName",
+//       data: {
+//         adminName: e,
+//       },
+//       success: function (data) {
+//         let thedata = data.data;
+//         if (!thedata) {
+//           if (data.error && data.error.length) {
+//             message.warning(data.error[0].message);
+//           }
+//           thedata = {};
+//         }
+//         this.setState({
+//           customerArr: thedata,
+//         });
+//       }.bind(this),
+//     }).always(
+//       function () {
+
+//       }.bind(this)
+//     );
+//   }
+//   // 输入触发
+//   httpChange(e) {
+//     if (e.length >= 1) {
+//       this.supervisor(e);
+//     }
+//     this.setState({
+//       auto: e,
+//     });
+//   }
+//   // 选中
+//   selectAuto(value, options) {
+//     let thchId = ""
+//     let contactLists = this.state.customerArr || [];
+//     if (value) {
+//       contactLists.map(function (item) {
+//         if (item.name == value.toString()) {
+//           thchId = item.id;
+//         }
+//       });
+//     }
+//     this.setState({
+//       auto: value,
+//       thchId: thchId,
+//     });
+//   }
+//   // 失去焦点
+//   blurChange(e) {
+//     let thchId = ""
+//     let contactLists = this.state.customerArr || [];
+//     if (e) {
+//       contactLists.map(function (item) {
+//         if (item.name == e.toString()) {
+//           thchId = item.id;
+//         }
+//       });
+//     }
+//     this.setState({
+//       thchId: thchId,
+//     });
+//   }
+
+//   componentWillMount() {
+//     // 
+//     if (!this.props.introduce) {
+//       this.defaultcolumns();
+//       this.selectSuperId();
+//     }
+//     if (this.props.searchData) {
+//       let e = this.props.searchData.projectType;
+//       this.setState({
+//         columns:
+//           e == "0"
+//             ? currency : e == "1"
+//               ? patent : e == "2"
+//                 ? softWriting : e == "3"
+//                   ? audit : e == "4"
+//                     ? doubleSoft : e == "5"
+//                       ? highTechColumns : e == "6"
+//                         ? currency : e == "7"
+//                           ? member : currency,
+//       }, () => {
+//         this.defaultcolumns();
+//       });
+//     }
+//   }
+
+//   // 暂停项目 颜色
+//   suspendColor(record) {
+//     if (record.projectStatus == 29) {
+//       return 'light'
+//     } else {
+//       return 'dark'
+//     }
+//   }
+
+//   render() {
+//     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">
+//         <div>
+//           <div className="content-title" style={{ marginBottom: 10 }}>
+//             <span style={{ fontWeight: 900, fontSize: 16 }}>
+//               项目数据统计
+//             </span>
+//           </div>
+//           <Tabs defaultActiveKey="1" className="test">
+//             <TabPane tab="搜索" key="1">
+//               <div
+//                 className="user-search"
+//                 style={{
+//                   marginTop: "10px",
+//                   marginLeft: "10px",
+//                   marginRight: "10px",
+//                 }}
+//               >
+//                 <Input
+//                   placeholder="订单编号"
+//                   style={{
+//                     width: 220,
+//                     marginRight: "10px",
+//                   }}
+//                   value={this.state.searchOrderNo}
+//                   onChange={(e) => {
+//                     this.setState({ searchOrderNo: e.target.value });
+//                   }}
+//                 />
+//                 <Input
+//                   placeholder="合同编号"
+//                   style={{
+//                     width: 220,
+//                     marginRight: "10px",
+//                   }}
+//                   value={this.state.searchContractNo}
+//                   onChange={(e) => {
+//                     this.setState({ searchContractNo: e.target.value });
+//                   }}
+//                 />
+//                 <Input
+//                   placeholder="企业名称"
+//                   style={{
+//                     width: 220,
+//                     marginRight: "10px",
+//                   }}
+//                   value={this.state.searchEnterpriseName}
+//                   onChange={(e) => {
+//                     this.setState({ searchEnterpriseName: e.target.value });
+//                   }}
+//                 />
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px" }}>项目分类:</span>
+//                   <Cascader
+//                     options={this.state.contactsOptionData}
+//                     value={this.state.newArray}
+//                     placeholder="请选择"
+//                     style={{ width: 150, marginRight: 10 }}
+//                     onChange={(e, pre) => {
+//                       let first = e[0];
+//                       let two = e[1];
+//                       this.setState({
+//                         newArray: e,
+//                         projectStatus: first,
+//                         projectType: two,
+//                         changeList: undefined,
+//                         dataSource: [],
+//                         status:
+//                           two == "4"
+//                             ? 2 : two == "3"
+//                               ? 6 : two == "2"
+//                                 ? 3 : two == "1"
+//                                   ? 4 : two == "5"
+//                                     ? 1 : two == "7"
+//                                       ? 5 : 0,
+//                         columns:
+//                           two == "0"
+//                             ? currency : two == "1"
+//                               ? patent : two == "2"
+//                                 ? softWriting : two == "3"
+//                                   ? audit : two == "4"
+//                                     ? doubleSoft : two == "5"
+//                                       ? highTechColumns : two == "6"
+//                                         ? currency : two == "7"
+//                                           ? member : currency,
+//                       }, () => {
+//                         this.defaultcolumns()
+//                       })
+//                     }}
+//                   />
+//                 </span>
+//                 {/* <span style={{ display: "inline-block" }}>
+//                     <span style={{ marginRight: "10px" }}>
+//                       项目类别 :
+//                     </span>
+//                     <Select
+//                       value={this.state.projectStatus || undefined}
+//                       placeholder="请选择项目类别"
+//                       notFoundContent="未获取到上级品类列表"
+//                       style={{
+//                         width: 150,
+//                         marginRight: "10px",
+//                       }}
+//                       onChange={(e) => {
+//                         let infor = this.state.contactsOptionData.filter(
+//                           (v) => v.id === e
+//                         );
+//                         this.setState(
+//                           {
+//                             projectStatus: e,
+//                           },
+//                           // () => {
+//                           //   if (infor[0].cname === '高新会员服务' && typeof this.state.projectType !== 'number') {
+//                           //     this.setState({
+//                           //       columns: highTechColumns,
+//                           //       dataSource: [],
+//                           //       changeList: [],
+//                           //       status: 1,
+//                           //     }, () => {
+//                           //       this.loadData();
+//                           //     })
+//                           //   } else if (typeof this.state.projectType !== 'number') {
+//                           //     this.setState({
+//                           //       columns: currency,
+//                           //       dataSource: [],
+//                           //       changeList: [],
+//                           //       status: 0,
+//                           //     }, () => {
+//                           //       this.loadData();
+//                           //     })
+//                           //   } else {
+//                           //     this.loadData();
+//                           //   }
+//                           // }
+//                         );
+//                       }}
+//                     >
+//                       {this.state.contactsOption}
+//                     </Select>
+//                   </span>
+//                   <span style={{ display: "inline-block" }}>
+//                     <span style={{ marginRight: "10px", marginBottom: "10px" }}>
+//                       项目分类 :
+//                     </span>
+//                     <Select
+//                       value={
+//                         typeof this.state.projectType === "number"
+//                           ? this.state.projectType
+//                           : undefined
+//                       }
+//                       placeholder="请选择项目分类"
+//                       style={{
+//                         width: 150,
+//                         marginRight: "10px",
+//                       }}
+//                       onChange={(e) => {
+//                         this.setState(
+//                           {
+//                             columns:
+//                               e === 0
+//                                 ? currency : e === 1
+//                                   ? patent : e === 2
+//                                     ? softWriting : e === 3
+//                                       ? currency : e === 4
+//                                         ? doubleSoft : e === 5
+//                                           ? highTechColumns : e === 6
+//                                             ? currency : currency,
+//                             changeList: [],
+//                             projectType: e,
+//                             status:
+//                               e === 4
+//                                 ? 2 : e === 2
+//                                   ? 3 : e === 1
+//                                     ? 4 : e === 5
+//                                       ? 1 : 0,
+//                             dataSource: [],
+//                           },
+//                           () => {
+//                             this.defaultcolumns();
+//                             this.loadData();
+//                           }
+//                         );
+//                       }}
+//                     >
+//                       <Option value={0}>通用</Option>
+//                       <Option value={1}>专利</Option>
+//                       <Option value={2}>软著</Option>
+//                       <Option value={3}>审计</Option>
+//                       <Option value={4}>双软</Option>
+//                       <Option value={5}>高新</Option>
+//                       <Option value={6}>商标</Option>
+//                       <Option value={7}>会员</Option>
+//                     </Select>
+//                   </span> */}
+//                 <span
+//                   style={{
+//                     display: "inline-block",
+//                   }}
+//                 >
+//                   <span style={{ marginBottom: "10px" }}>订单部门:</span>
+//                   <Cascaders
+//                     ref={ref => this.Cascaders1 = ref}
+//                     placeholder="请选择订单部门"
+//                     height={28}
+//                     width={150}
+//                     onSel={(e) => {
+//                       this.setState({
+//                         deps: JSON.stringify(e)
+//                       })
+//                     }}
+//                   />
+//                 </span>
+//                 <span
+//                   style={{
+//                     display: "inline-block",
+//                   }}
+//                 >
+//                   <span style={{ marginBottom: "10px" }}>负责部门:</span>
+//                   <Cascaders
+//                     ref={ref => this.Cascaders2 = ref}
+//                     placeholder="请选择负责部门"
+//                     height={28}
+//                     width={150}
+//                     onSel={(e) => {
+//                       this.setState({
+//                         thchDeps: JSON.stringify(e)
+//                       })
+//                     }}
+//                   />
+//                 </span>
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px", marginBottom: "10px" }}>
+//                     咨询师/经理:
+//                   </span>
+//                   <AutoComplete
+//                     className="certain-category-search"
+//                     dropdownClassName="certain-category-search-dropdown"
+//                     dropdownMatchSelectWidth={false}
+//                     style={{ width: 130 }}
+//                     dataSource={options}
+//                     placeholder='请输入姓名'
+//                     value={this.state.auto}
+//                     onChange={this.httpChange}
+//                     filterOption={true}
+//                     onBlur={this.blurChange}
+//                     onSelect={this.selectAuto}
+//                   >
+//                     <Input />
+//                   </AutoComplete>
+//                 </span>
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px", marginBottom: "10px" }}>
+//                     申报批次:
+//                   </span>
+//                   <Select
+//                     value={this.state.declarationBatch || undefined}
+//                     placeholder="请选择批次"
+//                     style={{
+//                       width: 150,
+//                       marginRight: "10px",
+//                     }}
+//                     onChange={(e) => {
+//                       this.setState({
+//                         declarationBatch: e,
+//                       });
+//                     }}
+//                   >
+//                     <Option value={1}>第一批</Option>
+//                     <Option value={2}>第二批</Option>
+//                     <Option value={3}>第三批</Option>
+//                     <Option value={4}>第四批</Option>
+//                   </Select>
+//                 </span>
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px" }}>
+//                     项目金额:
+//                   </span>
+//                   <Select
+//                     value={this.state.projectAmount || undefined}
+//                     placeholder="请选择项目金额"
+//                     style={{
+//                       width: 150,
+//                       marginRight: "10px",
+//                     }}
+//                     onChange={(e) => {
+//                       this.setState({
+//                         projectAmount: e,
+//                       });
+//                     }}
+//                   >
+//                     <Option value={1}>0~0.5万</Option>
+//                     <Option value={2}>0.5~1万</Option>
+//                     <Option value={3}>1~2万</Option>
+//                     <Option value={4}>2~5万</Option>
+//                     <Option value={5}>5~10万</Option>
+//                     <Option value={6}>10~30万</Option>
+//                     <Option value={7}>30~50万</Option>
+//                     <Option value={8}>50~80万</Option>
+//                     <Option value={9}>80万上</Option>
+//                   </Select>
+//                 </span>
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px" }}>
+//                     项目状态:
+//                   </span>
+//                   <Select
+//                     value={this.state.taskProjectStatus || undefined}
+//                     placeholder="请选择项目状态"
+//                     style={{
+//                       width: 150,
+//                       marginRight: "10px",
+//                     }}
+//                     onChange={(e) => {
+//                       this.setState({
+//                         taskProjectStatus: e,
+//                       });
+//                     }}
+//                   >
+//                     {
+//                       projectStatusList.map((item) =>
+//                         <Option value={item.value} key={item.value}>{item.label}</Option>
+//                       )
+//                     }
+//                   </Select>
+//                 </span>
+//                 {/*    <span style={{display:"inline-block"}}>*/}
+//                 {/*    <span style={{marginRight:'10px',marginBottom:'10px'}}>项目情况 :</span>*/}
+//                 {/*    <Select*/}
+//                 {/*        value={typeof this.state.projectSituation === 'number' ? this.state.projectSituation : undefined}*/}
+//                 {/*        placeholder="请选择项目情况"*/}
+//                 {/*        style={{ width: 200,marginRight:'10px',marginBottom:'10px' }}*/}
+//                 {/*        onChange={(e) => {*/}
+//                 {/*            this.setState({*/}
+//                 {/*                projectSituation: e,*/}
+//                 {/*            });*/}
+//                 {/*        }}*/}
+//                 {/*    >*/}
+//                 {/*        <Option value={0}>未开始</Option>*/}
+//                 {/*        <Option value={1}>进行中</Option>*/}
+//                 {/*        <Option value={2}>已暂停</Option>*/}
+//                 {/*        <Option value={3}>已驳回(专利、软著项目编写)</Option>*/}
+//                 {/*        <Option value={4}>已完成</Option>*/}
+//                 {/*        <Option value={5}>项目已完成 已退单</Option>*/}
+//                 {/*        <Option value={6}>项目未完成 已退单</Option>*/}
+//                 {/*    </Select>*/}
+//                 {/*</span>*/}
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px" }}>
+//                     满&nbsp;&nbsp;意&nbsp;&nbsp;度:
+//                   </span>
+//                   <Select
+//                     value={this.state.sdStatus}
+//                     placeholder="请选择满意度"
+//                     style={{
+//                       width: 150,
+//                       marginRight: "10px",
+//                     }}
+//                     onChange={(e) => {
+//                       this.setState({
+//                         sdStatus: e,
+//                       });
+//                     }}
+//                   >
+//                     <Option value={0}>未发放</Option>
+//                     <Option value={1}>已发放</Option>
+//                     <Option value={2}>已回收(非常满意)</Option>
+//                     <Option value={3}>已回收(满意)</Option>
+//                     <Option value={4}>已回收(一般)</Option>
+//                     <Option value={5}>已回收(不满意)</Option>
+//                   </Select>
+//                 </span>
+
+//                 <span style={{ display: "inline-block" }}>
+//                   <span style={{ marginRight: "10px" }}>
+//                     派单时间:
+//                   </span>
+//                   <RangePicker
+//                     allowClear={false}
+//                     style={{ marginRight: "10px" }}
+//                     value={[
+//                       this.state.releaseDate[0]
+//                         ? moment(this.state.releaseDate[0])
+//                         : null,
+//                       this.state.releaseDate[1]
+//                         ? moment(this.state.releaseDate[1])
+//                         : null,
+//                     ]}
+//                     onChange={(data, dataString) => {
+//                       this.setState({ releaseDate: dataString });
+//                     }}
+//                   />
+//                 </span>
+//                 <Button
+//                   type="primary"
+//                   onClick={() => {
+//                     this.loadData();
+//                   }}
+//                   style={{ marginRight: "10px", marginBottom: "10px" }}
+//                 >
+//                   搜索
+//                 </Button>
+//                 <Button
+//                   onClick={this.resetAll}
+//                   style={{ marginRight: "10px", marginBottom: "10px" }}
+//                 >
+//                   重置
+//                 </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: "10px" }}
+//                 onClick={this.exportExec.bind(this)}
+//               >
+//                 导出excel
+//               </Button>
+//             </TabPane>
+//           </Tabs>
+//         </div>
+//         <div className="patent-table">
+//           <Spin spinning={this.state.loading}>
+//             <Table
+//               bordered
+//               size="middle"
+//               scroll={{
+//                 x:
+//                   this.state.status === 4 || this.state.status === 3
+//                     ? 1800
+//                     : 1000,
+//                 y: 0,
+//               }}
+//               columns={
+//                 (this.state.changeList && this.state.changeList.length != 0)
+//                   ? this.state.changeList
+//                   : this.state.columns
+//               }
+//               dataSource={this.state.dataSource}
+//               pagination={this.state.pagination}
+//               style={{
+//                 cursor: "pointer",
+//               }}
+//               rowClassName={this.suspendColor}
+//               onRowClick={(record) => {
+//                 this.setState({
+//                   projectdetailsId: record.id,
+//                   projectdetailsOrderNo: record.orderNo,
+//                   pname: record.pname,
+//                   visible: true,
+//                 });
+//               }}
+//             />
+//           </Spin>
+//         </div>
+//         {this.state.visible ? (
+//           <ProjectDetails
+//             visible={this.state.visible}
+//             id={this.state.projectdetailsId}
+//             orderNo={this.state.projectdetailsOrderNo}
+//             taskName={this.state.pname}
+//             visitOk={() => {
+//               this.setState({
+//                 visible: false,
+//               });
+//             }}
+//             visitCancel={() => {
+//               this.loadData(this.state.page);
+//               this.setState({
+//                 visible: false,
+//               });
+//             }}
+//           />
+//         ) : null}
+//       </div>
+//     );
+//   }
+// }
+
+// export default HighTech;

+ 44 - 2
js/component/manageCenter/project/task/myTask.jsx

@@ -44,8 +44,9 @@ import {
   getRefundStatus,
   getProjectName,
   getFormRetrieve,
+  getApprovedType,
 } from '@/tools'
-import { cuiJieDian, projectStatusCascader } from '@/dataDic.js'
+import { cuiJieDian, projectStatusCascader, approvalOptions } from '@/dataDic.js'
 import ShowModalDiv from '@/showModal.jsx';
 import NowProjectStatus from '../../../common/nowProjectStatus';
 import DeclarationProgress from '../../../../component/common/declarationProgress';
@@ -139,6 +140,7 @@ const Task = React.createClass({
             ? undefined
             : this.state.outsourceStatusSearch, //外包状态搜索
         projectName: this.state.projectName, // 项目名称
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         ShowModal(this)
@@ -185,6 +187,7 @@ const Task = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       satisfactionDegreeUrl: [], // 满意度调查表
       satisfactionDegree: "", // 满意度
       formRetrieve: "",// 满意调查表上传状态
@@ -308,6 +311,20 @@ const Task = React.createClass({
           width: 50,
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          fixed: 'left',
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: '订单编号',
           dataIndex: 'orderNo',
           key: 'orderNo',
@@ -1912,6 +1929,7 @@ const Task = React.createClass({
           ? undefined
           : this.state.outsourceStatusSearch, //外包状态搜索
       projectName: this.state.projectName, // 项目名称
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     }
     for (let key in data) {
       if (!data[key]) {
@@ -2215,6 +2233,7 @@ const Task = React.createClass({
         category: undefined,
         outsourceStatusSearch: [],
         projectName: undefined,
+        approvaType: [],
       })
     }
     this.setState({
@@ -3797,6 +3816,9 @@ const Task = React.createClass({
     }
     let departmentArr = this.state.departmentArr || []
     let categoryArr = this.state.categoryArr || []
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.state.resVisible ? (
@@ -3809,7 +3831,7 @@ const Task = React.createClass({
         ) : (
           ''
         )}
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>我的项目任务</span>
         </div>
@@ -3913,6 +3935,19 @@ const Task = React.createClass({
                   this.setState({ projectName: e.target.value })
                 }}
               />
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <Button type="primary" onClick={this.search}>
                 搜索
               </Button>
@@ -5075,6 +5110,13 @@ const Task = React.createClass({
                             disabled={this.state.payNodeLoading || this.state.thirdInfoLoading}
                             value={this.state.patentNameType}
                             onChange={(e) => {
+                              Modal.info({
+                                title: '系统提示',
+                                content: (
+                                  <div>
+                                    <span style={{ color: "red" }}>请再次确定“对应的项目”与右上角的“项目名称”保持一致!</span>
+                                  </div>),
+                              });
                               this.detectDeletion(0, () => {
                                 this.setState({ patentNameType: e.target.value }, () => {
                                   this.projectTypeTabContent(this.state.projectType);

+ 42 - 5
js/component/manageCenter/project/task/myTaskOutsource.jsx

@@ -44,9 +44,10 @@ import {
   moneyVerify,
   ShowModal,
   getRefundStatus,
-  getProjectName
+  getProjectName,
+  getApprovedType,
 } from "@/tools";
-import { projectStatus, projectStatusCascader } from "@/dataDic.js";
+import { projectStatus, projectStatusCascader, approvalOptions, } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
 import CheckProject from "../../components/checkProject";
 import ImgList from "../../../common/imgList";
@@ -128,8 +129,12 @@ const MyTaskOutsource = React.createClass({
         adminName: this.state.adminName, //项目受理人
         outsource: 1,
         approval: this.state.approvalSearch, //特批状态搜索
-        projectStatus: this.state.projectStatusSearch && this.state.projectStatusSearch.length > 0 ?
-          (typeof this.state.projectStatusSearch[0] === 'string' ? this.state.projectStatusSearch[1] : this.state.projectStatusSearch[0]) : undefined  //项目状态
+        projectStatus: this.state.projectStatusSearch && this.state.projectStatusSearch.length > 0
+          ? (typeof this.state.projectStatusSearch[0] === 'string'
+            ? this.state.projectStatusSearch[1]
+            : this.state.projectStatusSearch[0])
+          : undefined,  //项目状态
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         ShowModal(this);
@@ -268,6 +273,7 @@ const MyTaskOutsource = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       PayNodeCompany: [],
       containOfficialFees: 0,//官费缴费情况
       oldInfor: {},
@@ -362,6 +368,19 @@ const MyTaskOutsource = React.createClass({
           key: "commodityQuantity",
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "订单编号",
           dataIndex: "orderNo",
           key: "orderNo",
@@ -1289,6 +1308,7 @@ const MyTaskOutsource = React.createClass({
       startTime: this.state.releaseDate[0],
       endTime: this.state.releaseDate[1],
       grantStatus: this.state.grantStatus,
+      type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
     };
     window.location.href =
       globalConfig.context +
@@ -1721,6 +1741,7 @@ const MyTaskOutsource = React.createClass({
     this.loadData();
   },
   reset(page) {
+    this.state.approvaType = [];
     this.state.id = ""; //项目编号
     this.state.orderNo = ""; //订单编号
     this.state.contractNoSearch = undefined; //订单编号
@@ -3227,6 +3248,9 @@ const MyTaskOutsource = React.createClass({
       wrapperCol: { span: 14 },
     };
     let departmentArr = this.state.departmentArr || [];
+    const approvaChildren = approvalOptions.map(i => (
+      <Option key={i.value}>{i.label}</Option>
+    ));
     return (
       <div className="user-content">
         {this.state.resVisible ? (
@@ -3239,7 +3263,7 @@ const MyTaskOutsource = React.createClass({
         ) : (
           ""
         )}
-        <ShowModalDiv ShowModal={this.state.showModal} />
+        <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
         <div className="content-title" style={{ marginBottom: 10 }}>
           <span style={{ fontWeight: 900, fontSize: 16 }}>我的外包项目</span>
         </div>
@@ -3322,6 +3346,19 @@ const MyTaskOutsource = React.createClass({
                 <Select.Option key={1}>总裁特批</Select.Option>
                 <Select.Option key={2}>董事长特批</Select.Option>
               </Select>
+              <Select
+                mode="multiple"
+                style={{ width: 200 }}
+                placeholder="特批类型"
+                value={this.state.approvaType}
+                onChange={e => {
+                  this.setState({
+                    approvaType: e
+                  })
+                }}
+              >
+                {approvaChildren}
+              </Select>
               <Button type="primary" onClick={this.search}>
                 搜索
               </Button>

+ 0 - 0
js/component/manageCenter/project/task/taskAssignment.jsx


Некоторые файлы не были показаны из-за большого количества измененных файлов