businessName.jsx 4.2 KB

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