businessName.jsx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import React from 'react'
  2. import ajax from 'jquery/src/ajax/xhr.js';
  3. import $ from 'jquery/src/ajax';
  4. import { Radio, Form, Modal, message, layout, Spin, Button } from 'antd';
  5. const BusName = React.createClass({
  6. loadData(ids) {
  7. this.setState({
  8. loading: true
  9. })
  10. $.ajax({
  11. method: "post",
  12. dataType: "json",
  13. url: globalConfig.context + '/api/admin/ProjectSize/listProject',
  14. data: {
  15. pageNo: 1,
  16. pageSize: 100,
  17. cid: ids,
  18. },
  19. success: function(data) {
  20. let listArr = [];
  21. let thedata = data.data;
  22. if(!thedata) {
  23. if(data.error && data.error.length) {
  24. message.warning(data.error[0].message);
  25. };
  26. thedata = {};
  27. };
  28. if(data.data&&data.data.list){
  29. for(let i = 0; i < data.data.list.length; i++) {
  30. let thisdata = data.data.list[i];
  31. listArr.push({
  32. id: thisdata.id,
  33. name: thisdata.bname,
  34. });
  35. };
  36. }
  37. this.setState({
  38. projectData: listArr,
  39. });
  40. }.bind(this),
  41. }).always(function() {
  42. this.setState({
  43. loading: false
  44. });
  45. }.bind(this));
  46. },
  47. getLockedProject(ids){
  48. this.setState({
  49. loading:true
  50. })
  51. $.ajax({
  52. method: "get",
  53. dataType: "json",
  54. url: globalConfig.context + '/api/admin/customer/getLockedProject',
  55. data:{
  56. uid:ids
  57. },
  58. success:function(data){
  59. let theData=data.data
  60. if(!theData){
  61. if(data.err&&data.err.length){
  62. message.warning(data.error[0].message);
  63. }
  64. }
  65. console.log(theData);
  66. this.setState({
  67. businessData:theData.businessProjectName
  68. })
  69. }.bind(this)
  70. }).always(function(){
  71. this.setState({
  72. loading:false
  73. })
  74. }.bind(this));
  75. },
  76. getInitialState() {
  77. return {
  78. busModul: false
  79. }
  80. },
  81. visitCancel() {
  82. this.setState({
  83. busModul: false
  84. })
  85. this.props.closeBus(null,false,false)
  86. },
  87. selFn() {
  88. this.setState({
  89. busModul: false
  90. });
  91. let idData={};
  92. idData.id=this.state.contactType;
  93. this.state.projectData.map(item=>{
  94. if(this.state.contactType==item.id){
  95. idData.name=item.name
  96. }
  97. })
  98. this.props.closeBus(idData, false, true);
  99. },
  100. componentWillReceiveProps(nextProps) {
  101. if(nextProps.busModul) {
  102. this.setState({
  103. busModul: true,
  104. loading: false
  105. })
  106. this.getLockedProject(nextProps.businessId);
  107. this.loadData(nextProps.businessId);
  108. };
  109. },
  110. render() {
  111. const formItemLayout = {
  112. labelCol: {
  113. span: 4
  114. },
  115. wrapperCol: {
  116. span: 18
  117. },
  118. };
  119. const projectData = this.state.projectData ||[];
  120. return(
  121. <Modal
  122. className="customeDetails"
  123. footer=''
  124. title="项目名称"
  125. width='600px'
  126. visible={this.state.busModul}
  127. onOk={this.visitCancel}
  128. onCancel={this.visitCancel}
  129. >
  130. <Form layout="horizontal" id="demand-form" >
  131. <Spin spinning={this.state.loading}>
  132. <div className="clearfix">
  133. <Form.Item
  134. {...formItemLayout}
  135. label="已签单业务" >
  136. <span>{this.state.businessData}</span>
  137. </Form.Item>
  138. <Form.Item
  139. {...formItemLayout}
  140. label="项目名称" >
  141. <Radio.Group value={this.state.contactType} onChange={(e) => {
  142. this.setState({ contactType: e.target.value })
  143. }}>
  144. {
  145. projectData.map((item,index)=>{
  146. return <Radio key={index} value={item.id}>{item.name}</Radio>
  147. })
  148. }
  149. </Radio.Group>
  150. </Form.Item>
  151. <Form.Item wrapperCol={{ span: 12, offset: 4 }}>
  152. <Button onClick={this.selFn} type='primary'>选定</Button>
  153. <Button onClick={this.visitCancel} style={{marginLeft:'40px'}}>取消</Button>
  154. </Form.Item>
  155. </div>
  156. </Spin>
  157. </Form>
  158. </Modal>
  159. )
  160. }
  161. })
  162. export default BusName;