| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 | 
							- import React from "react";
 
- import {
 
-   Spin,
 
-   Button,
 
-   Tabs,
 
-   Table,
 
-   message,
 
-   Modal,
 
-   Input,
 
-   Tag,
 
-   Popconfirm
 
- } from "antd";
 
- import img from "./example.png"
 
- import $ from "jquery/src/ajax";
 
- const ResolutionPro = React.createClass({
 
-   getInitialState() {
 
-     return {
 
-       visible: false,
 
-       proArr: [
 
-           {
 
-               name: "子项目1",
 
-               number: 0
 
-           },
 
-           {
 
-               name: "子项目2",
 
-               number: 0
 
-           },
 
-           {
 
-               name: "子项目3",
 
-               number: 0
 
-           },
 
-       ],
 
-       inputArr: []
 
-     };
 
-   },
 
-   componentWillReceiveProps(nextProps) {
 
-     this.setState({
 
-       visible: nextProps.resolutionVisible
 
-     });
 
-     const arr = [
 
-       {
 
-         name: "子项目1",
 
-         number: 0
 
-       },
 
-       {
 
-         name: "子项目2",
 
-         number: 0
 
-       },
 
-       {
 
-         name: "子项目3",
 
-         number: 0
 
-       }
 
-     ];
 
-     this.setState({
 
-       proArr: arr
 
-     });
 
-   },
 
-   handleOk() {
 
-     const arr = [
 
-       {
 
-         name: "子项目1",
 
-         number: 0
 
-       },
 
-       {
 
-         name: "子项目2",
 
-         number: 0
 
-       },
 
-       {
 
-         name: "子项目3",
 
-         number: 0
 
-       }
 
-     ];
 
-     this.setState({
 
-       visible: false,
 
-       proArr: arr
 
-     });
 
-   },
 
-   addPro() {
 
-     const obj = {
 
-         name: "子项目" + (this.state.proArr.length + 1),
 
-         number: 0
 
-     }
 
-     this.state.proArr.push(obj)
 
-     this.setState({
 
-         proArr: this.state.proArr
 
-     })
 
-   },
 
-   deletePro() {
 
-     if(this.state.proArr.length == 2) {
 
-         message.warning("不能继续删除子项目!")
 
-         return
 
-     }
 
-     this.state.proArr.splice(this.state.proArr.length - 1, 1)
 
-     this.setState({
 
-         proArr: this.state.proArr
 
-     })
 
-   },
 
-   submit() {
 
-     const arr = this.state.proArr
 
-     const numArr = []
 
-     arr.forEach(item => {
 
-       let num = +item.number
 
-       if(num != 0) {
 
-         numArr.push(num);
 
-       }
 
-     });
 
-     let sum = 0
 
-     numArr.forEach( item => {
 
-       sum += item
 
-     })
 
-     if(sum != this.props.number) {
 
-       message.warning("拆分数量总和与原项目数量不匹配,请重新填写数量!")
 
-       return
 
-     }
 
-     let str = numArr.join(",")
 
-     this.setState({
 
-       loading: true
 
-     });
 
-     $.ajax({
 
-       method: "post",
 
-       dataType: "json",
 
-       crossDomain: false,
 
-       url: globalConfig.context + "/api/admin/orderProject/addSplitProject",
 
-       data: {
 
-         tid: this.props.id,
 
-         splitList: str
 
-       },
 
-       success: function(data) {
 
-         let thedata = data.data;
 
-         if (!thedata) {
 
-           if (data.error && data.error.length) {
 
-             message.warning(data.error[0].message);
 
-           }
 
-           thedata = {};
 
-         } else {
 
-           message.success("拆分成功!")
 
-           this.props.cancel()
 
-           this.props.loadData()
 
-         }
 
-       }.bind(this)
 
-     }).always(
 
-       function() {
 
-         this.setState({
 
-           loading: false
 
-         });
 
-       }.bind(this)
 
-     );
 
-   },
 
-   changeNum() {
 
-     let sum = 0
 
-     this.state.proArr.forEach(item => {
 
-       sum += (+item.number)
 
-     })
 
-     return sum
 
-   },
 
-   render() {
 
-     return (
 
-       <div>
 
-         <Modal
 
-           style={{ position: "relative" }}
 
-           title="拆分项目"
 
-           visible={this.state.visible}
 
-           onCancel={this.props.cancel}
 
-           footer={null}
 
-           destroyOnClose={true}
 
-         >
 
-           <div style={{ marginBottom: 10 }}>
 
-             当前项目名称:{this.props.name}
 
-           </div>
 
-           <div style={{ marginBottom: 10 }}>
 
-             当前项目数量:{this.props.number}
 
-           </div>
 
-           <div style={{ marginBottom: 10 }}>
 
-             选项:
 
-             <Button type="primary" onClick={this.addPro}>
 
-               +增加子项目
 
-             </Button>
 
-             <Button
 
-               type="primary"
 
-               style={{ marginLeft: 10 }}
 
-               onClick={this.deletePro}
 
-             >
 
-               -删除子项目
 
-             </Button>
 
-           </div>
 
-           <div style={{ width: "250px", marginBottom: "10px" }}>
 
-             {this.state.proArr.map((item, index) => {
 
-               return (
 
-                 <div style={{ display: "inline-block" }}>
 
-                   <span style={{ display: "block" }}>{item.name}</span>
 
-                   <Input
 
-                     value={item.number}
 
-                     style={{ width: 40 }}
 
-                     onBlur={e => {
 
-                       if (e.target.value.trim() == "") {
 
-                         this.state.proArr[index].number = 0;
 
-                         this.setState({
 
-                           proArr: this.state.proArr
 
-                         });
 
-                       }
 
-                     }}
 
-                     onChange={e => {
 
-                       const reg = /^[0-9]\d*$/;
 
-                       if (!reg.test(+e.target.value)) {
 
-                         return;
 
-                       }
 
-                       this.state.proArr[index].number = e.target.value;
 
-                       this.setState(
 
-                         {
 
-                           proArr: this.state.proArr
 
-                         },
 
-                         () => {
 
-                           console.log(this.state.proArr);
 
-                         }
 
-                       );
 
-                     }}
 
-                   />
 
-                   <span color={"#2db7f5"} style={{ marginLeft: 5 }}>
 
-                     {index == this.state.proArr.length - 1 ? "=" : "+"}
 
-                   </span>
 
-                   <span style={{ marginLeft: 5 }}>
 
-                     {index == this.state.proArr.length - 1
 
-                       ? this.changeNum()
 
-                       : ""}
 
-                   </span>
 
-                 </div>
 
-               );
 
-             })}
 
-           </div>
 
-           <img
 
-             src={img}
 
-             style={{
 
-               position: "absolute",
 
-               width: "150px",
 
-               right: "20px",
 
-               top: "50%",
 
-               transform: "translateY(-50%)"
 
-             }}
 
-           />
 
-           <p style={{ color: "red" }}>各子项目相加需等于当前项目数量!</p>
 
-           <Popconfirm
 
-             placement="top"
 
-             title={
 
-               <span style={{ color: "red", fontWeight: 900 }}>
 
-                 系统提示:请确定将当前项目数量按选项,进行拆分,拆分为子项目后,不可修改!!!
 
-               </span>
 
-             }
 
-             onConfirm={this.submit}
 
-             okText="确定"
 
-             cancelText="取消"
 
-           >
 
-             <Button
 
-               loading={this.state.loading}
 
-               type="primary"
 
-               style={{
 
-                 position: "relative",
 
-                 left: "50%",
 
-                 bottom: -20,
 
-                 transform: "translate(-50%, -50%)"
 
-               }}
 
-             >
 
-               确认拆分
 
-             </Button>
 
-           </Popconfirm>
 
-         </Modal>
 
-       </div>
 
-     );
 
-   }
 
- });
 
- export default ResolutionPro;
 
 
  |