dev01 1 年之前
父節點
當前提交
c496d6cfb4
共有 100 個文件被更改,包括 7243 次插入1307 次删除
  1. 28 18
      js/component/common/flowchart/index.jsx
  2. 19 4
      js/component/dataDic.js
  3. 1 1
      js/component/manageCenter/amiba/amibapage/fundmanagement.jsx
  4. 1 1
      js/component/manageCenter/amiba/amibapage/index.jsx
  5. 1 1
      js/component/manageCenter/channelList/channelunit/index.jsx
  6. 1 1
      js/component/manageCenter/channelList/channelunit/publist.jsx
  7. 1 1
      js/component/manageCenter/customer/NEW/crm/crm.jsx
  8. 1 1
      js/component/manageCenter/customer/NEW/crm/patentPayment.jsx
  9. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/channel.jsx
  10. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/channelStatistics.jsx
  11. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionCustomer.jsx
  12. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/limit.jsx
  13. 1 1
      js/component/manageCenter/customer/NEW/publicCustomer/publicCustomer.jsx
  14. 1 1
      js/component/manageCenter/customer/NEW/query/queryCutomer.jsx
  15. 220 11
      js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx
  16. 173 172
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/intentionDetail.jsx
  17. 35 1
      js/component/manageCenter/customer/NEW/signCustomer/signCustomer.jsx
  18. 1 1
      js/component/manageCenter/customer/individualCustomer/myReject.jsx
  19. 1 1
      js/component/manageCenter/customer/managementFollow/customerFollow/index.jsx
  20. 1 1
      js/component/manageCenter/customer/managementFollow/followUpSummary/index.jsx
  21. 1 1
      js/component/manageCenter/customer/operationalData/finalFollowup/index.jsx
  22. 11 0
      js/component/manageCenter/customer/publicSummary/index.jsx
  23. 1 1
      js/component/manageCenter/customerService/administration/followUp.jsx
  24. 1 1
      js/component/manageCenter/customerService/administration/order.jsx
  25. 1 1
      js/component/manageCenter/financialManage/account/accountDetaillist.jsx
  26. 1 1
      js/component/manageCenter/financialManage/account/accountReview.jsx
  27. 1 1
      js/component/manageCenter/financialManage/account/accountStatistics.jsx
  28. 1 1
      js/component/manageCenter/financialManage/account/accountTotal.jsx
  29. 1 1
      js/component/manageCenter/financialManage/account/accountlist.jsx
  30. 1 1
      js/component/manageCenter/financialManage/account/publicityAccount.jsx
  31. 1 1
      js/component/manageCenter/financialManage/amiba/investment.jsx
  32. 1 1
      js/component/manageCenter/financialManage/bonus/yxBonus.jsx
  33. 1 1
      js/component/manageCenter/financialManage/distribute/inSpecial.jsx
  34. 1 1
      js/component/manageCenter/financialManage/distribute/invoiceApplyList.jsx
  35. 1 1
      js/component/manageCenter/financialManage/distribute/invoiceApplyListQuery.jsx
  36. 1 1
      js/component/manageCenter/financialManage/distribute/outInvoiceQuery.jsx
  37. 1 1
      js/component/manageCenter/financialManage/distribute/projectvip.jsx
  38. 1 1
      js/component/manageCenter/financialManage/distribute/projectvipall.jsx
  39. 81 43
      js/component/manageCenter/financialManage/distribute/shouKuanAll.jsx
  40. 37 2
      js/component/manageCenter/financialManage/distribute/shouKuang.jsx
  41. 1 1
      js/component/manageCenter/financialManage/flowWater/departWater.jsx
  42. 1 1
      js/component/manageCenter/financialManage/flowWater/myWater.jsx
  43. 7 3
      js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx
  44. 1 1
      js/component/manageCenter/idea/policy/inquiry.jsx
  45. 1 3
      js/component/manageCenter/index/statistics/cw.jsx
  46. 1 3
      js/component/manageCenter/index/statistics/yxy.jsx
  47. 1 3
      js/component/manageCenter/index/statistics/zxs.jsx
  48. 95 94
      js/component/manageCenter/leftTab.jsx
  49. 1 1
      js/component/manageCenter/order/bonus/yxBonus.jsx
  50. 19 0
      js/component/manageCenter/order/content.jsx
  51. 1 1
      js/component/manageCenter/order/myOrder/servicesOrder/myService.jsx
  52. 95 35
      js/component/manageCenter/order/orderNew/addService.jsx
  53. 69 5
      js/component/manageCenter/order/orderNew/approveds.jsx
  54. 40 7
      js/component/manageCenter/order/orderNew/approvedvipproject.jsx
  55. 1 1
      js/component/manageCenter/order/orderNew/arrearsList.jsx
  56. 122 88
      js/component/manageCenter/order/orderNew/billing.jsx
  57. 770 0
      js/component/manageCenter/order/orderNew/changeComponent/changeDetailYybz.js
  58. 1 1
      js/component/manageCenter/order/orderNew/chargeback.jsx
  59. 1 1
      js/component/manageCenter/order/orderNew/contractChangeDsz.jsx
  60. 1 1
      js/component/manageCenter/order/orderNew/contractChangeFzc.jsx
  61. 19 0
      js/component/manageCenter/order/orderNew/contractChangeYybz.jsx
  62. 1 1
      js/component/manageCenter/order/orderNew/contractChangeZc.jsx
  63. 1 1
      js/component/manageCenter/order/orderNew/contractCwjl.js
  64. 1 1
      js/component/manageCenter/order/orderNew/contractCwzj.js
  65. 1 1
      js/component/manageCenter/order/orderNew/contractCwzy.js
  66. 1 1
      js/component/manageCenter/order/orderNew/contractJsjl.js
  67. 1 1
      js/component/manageCenter/order/orderNew/contractJsy.js
  68. 1 1
      js/component/manageCenter/order/orderNew/contractJszj.js
  69. 1 1
      js/component/manageCenter/order/orderNew/contractYxgly.js
  70. 1 1
      js/component/manageCenter/order/orderNew/contractYxjl.js
  71. 1 1
      js/component/manageCenter/order/orderNew/contractYxy.js
  72. 1510 0
      js/component/manageCenter/order/orderNew/contractYybz.js
  73. 45 7
      js/component/manageCenter/order/orderNew/examine.jsx
  74. 45 7
      js/component/manageCenter/order/orderNew/examinejl.jsx
  75. 2577 0
      js/component/manageCenter/order/orderNew/examineyybz.jsx
  76. 38 3
      js/component/manageCenter/order/orderNew/inquiry.jsx
  77. 39 5
      js/component/manageCenter/order/orderNew/myprojectvip.jsx
  78. 1 1
      js/component/manageCenter/order/orderNew/mysuspend.jsx
  79. 1 1
      js/component/manageCenter/order/orderNew/outsourcingList.jsx
  80. 1 1
      js/component/manageCenter/order/orderNew/outsourcingPro.jsx
  81. 86 26
      js/component/manageCenter/order/orderNew/reject.jsx
  82. 1 1
      js/component/manageCenter/order/orderNew/suspendexamine.jsx
  83. 1 1
      js/component/manageCenter/order/source/index.jsx
  84. 1 1
      js/component/manageCenter/personnel/personnel/personnelAll.jsx
  85. 1 1
      js/component/manageCenter/povertyInquiry/component/gx.jsx
  86. 1 1
      js/component/manageCenter/povertyInquiry/component/nationwide.jsx
  87. 1 1
      js/component/manageCenter/project/patent/list.jsx
  88. 714 679
      js/component/manageCenter/project/project/enterpriseProjectQuery.jsx
  89. 1 1
      js/component/manageCenter/project/project/outsourceTaskAssignment.jsx
  90. 46 8
      js/component/manageCenter/project/project/projectAssignment.jsx
  91. 1 1
      js/component/manageCenter/project/project/projectQuery.jsx
  92. 1 1
      js/component/manageCenter/project/project/zxsglyOutSourcingPaiDan.jsx
  93. 26 5
      js/component/manageCenter/project/summary/highTech.jsx
  94. 92 1
      js/component/manageCenter/project/summary/highTechConfig.jsx
  95. 37 2
      js/component/manageCenter/project/task/myTask.jsx
  96. 42 5
      js/component/manageCenter/project/task/myTaskOutsource.jsx
  97. 1 1
      js/component/manageCenter/project/task/taskAssignment.jsx
  98. 1 1
      js/component/manageCenter/project/task/taskCount.jsx
  99. 38 2
      js/component/manageCenter/project/task/taskQuery.jsx
  100. 0 0
      js/component/manageCenter/set/amoeba/barList.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
                 }
               })

+ 19 - 4
js/component/dataDic.js

@@ -3081,18 +3081,22 @@ module.exports = {
     },
     {
       value: "4",
-      key: "已派特批审核",
+      key: "运营保障审核",
     },
     {
       value: "5",
-      key: "已派技术总监",
+      key: "已派特批审核",
     },
     {
       value: "6",
-      key: "部分分配咨询师经理",
+      key: "已派技术总监",
     },
     {
       value: "7",
+      key: "部分分配咨询师经理",
+    },
+    {
+      value: "8",
       key: "全部分配咨询师经理",
     },
   ],
@@ -4274,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>

+ 1 - 1
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>

+ 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 - 3
js/component/manageCenter/index/statistics/cw.jsx

@@ -233,9 +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 - 3
js/component/manageCenter/index/statistics/yxy.jsx

@@ -234,9 +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 - 3
js/component/manageCenter/index/statistics/zxs.jsx

@@ -238,9 +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>

+ 95 - 35
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";
@@ -53,6 +54,8 @@ import {
   getLiquidationStatus,
   getboutique,
   getApprovedState,
+  getApprovedType,
+  compare,
   getjiedian,
   getCuikuan,
   getProjectName,
@@ -77,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;
@@ -182,6 +186,9 @@ const NewService = Form.create()(
     },
     getInitialState() {
       return {
+        type: "",
+        approvaType: [],
+        typeExplain: "",
         isShow: true, // 高新纯咨询合同默认填写
         knowledgeOther: "",
         auditOther: "",
@@ -1182,7 +1189,6 @@ const NewService = Form.create()(
               }
               if (this.state.getLoad) {
                 let arr = record.arr || [];
-                // console.log("record==", record)
                 return (
                   <div>
                     <Select
@@ -2182,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++) {
@@ -2229,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,
         })
@@ -2259,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) {
@@ -2411,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,
@@ -3756,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;
       }
@@ -3991,7 +4009,6 @@ const NewService = Form.create()(
         });
       }
     },
-
     // componentWillReceiveProps(nextProps) {
     //   //props改变时触发
     // },
@@ -4483,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;
       }
@@ -5839,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
@@ -6003,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"
                         >
                           开单
@@ -6132,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"
@@ -6163,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">
@@ -6196,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
@@ -7161,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={{
@@ -7184,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={{
@@ -7436,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}

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

@@ -403,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}

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

@@ -338,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>

+ 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",

+ 37 - 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>

+ 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>

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

@@ -1144,7 +1144,7 @@ const Task = 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>

+ 1 - 1
js/component/manageCenter/project/task/taskCount.jsx

@@ -1274,7 +1274,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>

+ 38 - 2
js/component/manageCenter/project/task/taskQuery.jsx

@@ -32,10 +32,12 @@ import {
   getboutique,
   getprovince,
   ShowModal,
-  getProjectName
+  getProjectName,
+  getApprovedType,
 } from "@/tools";
 const FormItem = Form.Item;
 const { TabPane } = Tabs
+import { approvalOptions } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
 import ImgList from "../../../common/imgList";
 import { ChooseList } from "../../order/orderNew/chooseList";
@@ -68,6 +70,7 @@ const Task = React.createClass({
         taskId: this.state.taskNoSearch, //任务编号
         adminName: this.state.adminName, //任务受理人
         thchId: this.state.thchId,//咨询师id
+        type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
       },
       success: function (data) {
         ShowModal(this);
@@ -105,6 +108,8 @@ const Task = React.createClass({
               splitSuper: thisdata.splitSuper,
               splitId: thisdata.splitId,
               serviceYear: thisdata.serviceYear, //本次服务年限
+              type: thisdata.type || "", // 特批类型
+              typeExplain: thisdata.typeExplain,
             });
           }
         }
@@ -130,6 +135,7 @@ const Task = React.createClass({
   },
   getInitialState() {
     return {
+      approvaType: [],
       orderData: [],
       orderNo: "",
       jiedian: [],
@@ -188,6 +194,19 @@ const Task = React.createClass({
           key: "orderNo",
         },
         {
+          title: "特批类型",
+          dataIndex: "type",
+          key: "type",
+          width: 110,
+          render: (text, record) => {
+            return (
+              <span>
+                {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
+              </span>
+            );
+          },
+        },
+        {
           title: "业务类别",
           dataIndex: "cname",
           key: "cname",
@@ -974,6 +993,7 @@ const Task = React.createClass({
     this.state.orderNoSearch = undefined;
     this.state.taskNoSearch = undefined;
     this.state.departmenttSearch = undefined;
+    this.state.approvaType = [];
     this.setState({
       urgentDay: '', //有无材料
       ifMaterial: '', //加急情况
@@ -1314,9 +1334,12 @@ const Task = 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">
-        <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>
@@ -1374,6 +1397,19 @@ const Task = React.createClass({
               >
                 <Input />
               </AutoComplete>
+              <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/set/amoeba/barList.jsx


部分文件因文件數量過多而無法顯示