businessName.jsx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. this.setState({
  66. businessData:theData.businessProjectName
  67. })
  68. }.bind(this)
  69. }).always(function(){
  70. this.setState({
  71. loading:false
  72. })
  73. }.bind(this));
  74. },
  75. getInitialState() {
  76. return {
  77. busModul: false
  78. }
  79. },
  80. visitCancel() {
  81. this.setState({
  82. busModul: false
  83. })
  84. this.props.closeBus(null,false,false)
  85. },
  86. selFn() {
  87. this.setState({
  88. busModul: false
  89. });
  90. let idData={};
  91. idData.id=this.state.contactType;
  92. this.state.projectData.map(item=>{
  93. if(this.state.contactType==item.id){
  94. idData.name=item.name
  95. }
  96. })
  97. this.props.closeBus(idData, false, true);
  98. },
  99. componentWillReceiveProps(nextProps) {
  100. if(nextProps.busModul) {
  101. this.setState({
  102. busModul: true,
  103. loading: false
  104. })
  105. this.getLockedProject(nextProps.businessId);
  106. this.loadData(nextProps.businessId);
  107. };
  108. },
  109. render() {
  110. const formItemLayout = {
  111. labelCol: {
  112. span: 4
  113. },
  114. wrapperCol: {
  115. span: 18
  116. },
  117. };
  118. const projectData = this.state.projectData ||[];
  119. return(
  120. <Modal
  121. className="customeDetails"
  122. footer=''
  123. title="项目名称"
  124. width='600px'
  125. visible={this.state.busModul}
  126. onOk={this.visitCancel}
  127. onCancel={this.visitCancel}
  128. >
  129. <Form layout="horizontal" id="demand-form" >
  130. <Spin spinning={this.state.loading}>
  131. <div className="clearfix">
  132. <Form.Item
  133. {...formItemLayout}
  134. label="已签单业务" >
  135. <span>{this.state.businessData}</span>
  136. </Form.Item>
  137. <Form.Item
  138. {...formItemLayout}
  139. label="项目名称" >
  140. <Radio.Group value={this.state.contactType} onChange={(e) => {
  141. this.setState({ contactType: e.target.value })
  142. }}>
  143. {
  144. projectData.map((item,index)=>{
  145. return <Radio key={index} value={item.id}>{item.name}</Radio>
  146. })
  147. }
  148. </Radio.Group>
  149. </Form.Item>
  150. <Form.Item wrapperCol={{ span: 12, offset: 4 }}>
  151. <Button onClick={this.selFn} type='primary'>选定</Button>
  152. <Button onClick={this.visitCancel} style={{marginLeft:'40px'}}>取消</Button>
  153. </Form.Item>
  154. </div>
  155. </Spin>
  156. </Form>
  157. </Modal>
  158. )
  159. }
  160. })
  161. export default BusName;