releaseExpert.jsx 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055
  1. import React from 'react';
  2. import ReactDom from 'react-dom';
  3. import ajax from 'jquery/src/ajax/xhr.js';
  4. import $ from 'jquery/src/ajax';
  5. import './content.less';
  6. import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload,Popconfirm,AutoComplete } from 'antd';
  7. import {patternOrganization,conditionOrganization,client,stick,auditStatusL,industry } from '../../../dataDic.js';
  8. import {getPattern,getAchievementCategory,getboutique,getClient,getSocialAttribute,getCertification,getAuditStatus,getWhether,getStick,getIndustry} from '../../../tools.js';
  9. const Organization=Form.create()(React.createClass({
  10. loadData(pageNo) {
  11. this.state.data = [];
  12. this.setState({
  13. loading: true,
  14. ispage:pageNo,
  15. });
  16. let nameText=this.state.SuperArr;
  17. let superText=(this.state.superId)?nameText[parseInt(this.state.superId)].id:undefined;
  18. let nameTexts=this.state.SuperArrs;
  19. let superTexts=(this.state.publishPage)?nameTexts[parseInt(this.state.publishPage)].id:undefined;
  20. $.ajax({
  21. method: "get",
  22. dataType: "json",
  23. crossDomain: false,
  24. url: globalConfig.context + '/api/admin/expert/listPublish',
  25. data: {
  26. pageNo: pageNo || 1,
  27. pageSize: this.state.pagination.pageSize,
  28. name: this.state.name, //成果名称
  29. publishPlatform:superText,//发布子平台
  30. publishClient:this.state.publishClient,//发布客户端
  31. publishPage:superTexts,//发布页面
  32. ifTop:this.state.ifTop,//是否置顶
  33. },
  34. success: function (data) {
  35. let theArr = [];
  36. if (!data.data || !data.data.list) {
  37. if (data.error && data.error.length) {
  38. message.warning(data.error[0].message);
  39. };
  40. } else {
  41. for (let i = 0; i < data.data.list.length; i++) {
  42. let thisdata = data.data.list[i];
  43. theArr.push({
  44. key: i,
  45. id: thisdata.id,//发布成果ID
  46. achievementId:thisdata.expertId,//成果ID
  47. publishPlatform:thisdata.publishPlatform,//发布子平台ID
  48. platformName:thisdata.platformName,//发布子平台
  49. publishClient:thisdata.publishClient.toString(),//发布客户端
  50. publishPage:thisdata.publishPage,//发布页面
  51. publishPageName:thisdata.publishPageName,//发布页面
  52. ifTop:thisdata.ifTop.toString(),//是否置顶
  53. industry:thisdata.industry,//行业
  54. topNumber:thisdata.topNumber,//置顶编号
  55. showNumber:thisdata.showNumber,//显示编号
  56. publisher:thisdata.publisher,//发布人ID
  57. publishTime:thisdata.publishTime,//发布时间
  58. name:thisdata.name,//成果名称
  59. publisherName:thisdata.publisherName,//发布人名称
  60. publishTimeFormattedDate:thisdata.publishTimeFormattedDate,//发布时间
  61. });
  62. };
  63. this.state.pagination.current = data.data.pageNo;
  64. this.state.pagination.total = data.data.totalCount;
  65. };
  66. this.setState({
  67. dataSource: theArr,
  68. pagination: this.state.pagination
  69. });
  70. }.bind(this),
  71. }).always(function () {
  72. this.setState({
  73. loading: false
  74. });
  75. }.bind(this));
  76. },
  77. loadDatas(pageNo, apiUrl) {
  78. this.state.data = [];
  79. this.setState({
  80. loading: true,
  81. });
  82. $.ajax({
  83. method: "post",
  84. dataType: "json",
  85. crossDomain: false,
  86. url: globalConfig.context + '/api/admin/customer/listAllPersonalCustomer',
  87. data: {
  88. pageNo: pageNo || 1,
  89. pageSize: this.state.pagination.pageSize,
  90. expertAudit:2,
  91. type: this.state.typeSearch, //名称1
  92. name: this.state.nameSearch,
  93. status: this.state.statusSearch,
  94. industry: this.state.industrySearch,
  95. businessAudit: this.state.serviceCertificationSearch,
  96. auditStatus: this.state.userCertificationSearch,
  97. currentMemberStatus: this.state.currentMemberStatusSearch,
  98. lvl: this.state.lvlSearch,
  99. listed: this.state.listedSearch, //是否上市
  100. highTechZone: this.state.highTechZoneSearch, //是否高新
  101. startDate: this.state.releaseDate[0],
  102. endDate: this.state.releaseDate[1],
  103. isMember: this.state.isMemberSearch,
  104. international: this.state.internationalSearch,
  105. celebrity: this.state.celebritySearch,
  106. expert: this.state.expertSearch,
  107. industry: this.state.industrySearch,
  108. shareType: this.state.shareTypeSearch,
  109. },
  110. success: function(data) {
  111. let theArr = [];
  112. if(data.error.length || data.data.list == "") {
  113. if(data.error && data.error.length) {
  114. message.warning(data.error[0].message);
  115. };
  116. } else {
  117. for(let i = 0; i < data.data.list.length; i++) {
  118. let thisdata = data.data.list[i];
  119. theArr.push({
  120. key: i,
  121. id: thisdata.uid,
  122. type: thisdata.type,
  123. name: thisdata.name,
  124. status: thisdata.status,
  125. contacts: thisdata.contacts,
  126. contactMobile: thisdata.contactMobile,
  127. industry: thisdata.industry,
  128. createTime: thisdata.createTime,
  129. businessAudit: thisdata.businessAudit,
  130. auditStatus: thisdata.auditStatus,
  131. lvl: thisdata.lvl,
  132. shareType: thisdata.shareType,
  133. isMember: thisdata.isMember,
  134. consultant: thisdata.consultant,
  135. societyTag: thisdata.societyTag,
  136. currentMemberStatus: thisdata.currentMemberStatus,
  137. international: thisdata.international,
  138. listed: thisdata.listed,
  139. international: thisdata.international,
  140. expert: thisdata.expert,
  141. celebrity: thisdata.celebrity,
  142. adminName: thisdata.adminName,
  143. releaseStatus: thisdata.releaseStatus,
  144. highTechZone: thisdata.highTechZone,
  145. locationProvince: thisdata.province ? thisdata.province + '-' + thisdata.city || '' + '-' + thisdata.area : '--'
  146. });
  147. };
  148. this.state.paginations.current = data.data.pageNo ;
  149. this.state.paginations.total = data.data.totalCount ;
  150. };
  151. this.setState({
  152. dataSourcesli: theArr,
  153. paginations: this.state.paginations,
  154. selectedRowKeys:[]
  155. });
  156. }.bind(this),
  157. }).always(function() {
  158. this.setState({
  159. loading: false,
  160. visible: true
  161. });
  162. }.bind(this));
  163. },
  164. getInitialState() {
  165. return {
  166. searchMore: true,
  167. selectedRowKeys: [],
  168. selectedRowKeysli:[],
  169. selectedRows: [],
  170. releaseDate: [],
  171. releaseDateS: [],
  172. loading: false,
  173. pagination: {
  174. defaultCurrent: 1,
  175. defaultPageSize: 10,
  176. showQuickJumper: true,
  177. pageSize: 10,
  178. onChange: function (page) {
  179. this.loadData(page);
  180. }.bind(this),
  181. showTotal: function (total) {
  182. return '共' + total + '条数据';
  183. }
  184. },
  185. paginations: {
  186. defaultCurrent: 1,
  187. defaultPageSize: 10,
  188. showQuickJumper: true,
  189. pageSize: 10,
  190. onChange: function (page) {
  191. this.loadDatas(page);
  192. }.bind(this),
  193. showTotal: function (total) {
  194. return '共' + total + '条数据';
  195. }
  196. },
  197. columns: [
  198. {
  199. title: '专家名称',
  200. dataIndex: 'name',
  201. key: 'name',
  202. },{
  203. title: '行业',
  204. dataIndex: 'industry',
  205. key: 'industry',
  206. render: text => { return getIndustry(text) }
  207. }, {
  208. title: '发布子平台',
  209. dataIndex: 'platformName',
  210. key: 'platformName',
  211. },{
  212. title: '发布客户端',
  213. dataIndex: 'publishClient',
  214. key: 'publishClient',
  215. render: text => { return getClient(text) }
  216. }, {
  217. title: '发布页面',
  218. dataIndex: 'publishPageName',
  219. key: 'publishPageName',
  220. },{
  221. title: '是否置顶',
  222. dataIndex: 'ifTop',
  223. key: 'ifTop',
  224. render: text => { return getStick(text) }
  225. }, {
  226. title: '展示序号',
  227. dataIndex: 'showNumber',
  228. key: 'showNumber',
  229. }, {
  230. title: '置顶序号',
  231. dataIndex: 'topNumber',
  232. key: 'topNumber',
  233. }, {
  234. title: '发布人',
  235. dataIndex: 'publisherName',
  236. key: 'publisherName',
  237. }, {
  238. title: '发布时间',
  239. dataIndex: 'publishTimeFormattedDate',
  240. key: 'publishTimeFormattedDate',
  241. }, {
  242. title: '操作',
  243. dataIndex: 'ee',
  244. key: 'ee',
  245. render: (text, record, index) => {
  246. return <div>
  247. <Popconfirm title={'请确认撤销发布专家【'+record.name+'】'} onConfirm={(e)=>{this.examine(record)}} okText="确认" cancelText="取消">
  248. <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="danger">撤销发布</Button>
  249. </Popconfirm>
  250. </div>
  251. }
  252. }
  253. ],
  254. dataSource: [],
  255. searchTime: [,],
  256. column: [{
  257. title: '专家姓名',
  258. dataIndex: 'name',
  259. key: 'name',
  260. },
  261. {
  262. title: '公共客户',
  263. dataIndex: 'shareType',
  264. key: 'shareType',
  265. render: (text, record) => { return record.shareType == '1' ? <span>公共客户</span> : <span>个人客户</span> }
  266. },
  267. {
  268. title: '行业',
  269. dataIndex: 'industry',
  270. key: 'industry',
  271. },
  272. {
  273. title: '社会性质',
  274. dataIndex: 'societyTag',
  275. key: 'societyTag',
  276. render: text => { return getSocialAttribute(text) }
  277. },
  278. {
  279. title: '创建时间',
  280. dataIndex: 'createTime',
  281. key: 'createTime',
  282. },{
  283. title: '所属人',
  284. dataIndex: 'adminName',
  285. key: 'adminName',
  286. },
  287. {
  288. title: '业务认证',
  289. dataIndex: 'businessAudit',
  290. key: 'businessAudit',
  291. render: text => { return getCertification(text) }
  292. },
  293. {
  294. title: '实名认证',
  295. dataIndex: 'auditStatus',
  296. key: 'auditStatus',
  297. render: text => { return getAuditStatus(text) }
  298. },
  299. {
  300. title: '是否国际',
  301. dataIndex: 'international',
  302. key: 'international',
  303. render: text => { return getWhether(text) }
  304. }
  305. ],
  306. dataSourcesli: [],
  307. searchTime: [,]
  308. };
  309. },
  310. componentWillMount() {
  311. this.selectSuperIds();
  312. //行业
  313. let intentionalArr = [];
  314. industry.map(function(item) {
  315. intentionalArr.push(
  316. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  317. )
  318. });
  319. this.state.intentionalOption = intentionalArr;
  320. },
  321. examine(record) {
  322. this.setState({
  323. selectedRowKeys: [],
  324. });
  325. $.ajax({
  326. method: "get",
  327. dataType: "json",
  328. crossDomain: false,
  329. url: globalConfig.context + '/api/admin/expert/deletePublish',
  330. data: {
  331. id:record.id,
  332. }
  333. }).done(function (data) {
  334. if (!data.error.length) {
  335. message.success('操作成功');
  336. this.setState({
  337. loading: false,
  338. });
  339. } else {
  340. message.warning(data.error[0].message);
  341. };
  342. this.loadData(this.state.ispage);
  343. }.bind(this));
  344. },
  345. //获取发布子平台
  346. selectSuperId() {
  347. this.state.data = []
  348. $.ajax({
  349. method: "get",
  350. dataType: "json",
  351. crossDomain: false,
  352. url: globalConfig.context + "/api/admin/achievement/getBranchInformation",
  353. data:{
  354. },
  355. success: function (data) {
  356. let theArr = [];
  357. let thedata=data.data;
  358. if (!thedata) {
  359. if (data.error && data.error.length) {
  360. message.warning(data.error[0].message);
  361. };
  362. thedata = {};
  363. };
  364. var contactIds=[];
  365. for(var i=0;i<data.data.length;i++){
  366. let theData = data.data[i];
  367. theArr.push(
  368. <Select.Option value={i.toString()} key={theData.platformName}>{theData.platformName}</Select.Option>
  369. );
  370. };
  371. this.setState({
  372. SuperArr:thedata,
  373. contactsOption: theArr,
  374. orderStatusOptions:data.data,
  375. });
  376. }.bind(this),
  377. }).always(function () {
  378. this.loadData();
  379. this.setState({
  380. loading: false
  381. });
  382. }.bind(this));
  383. },
  384. //获取发布页面
  385. selectSuperIds() {
  386. this.state.data = []
  387. $.ajax({
  388. method: "get",
  389. dataType: "json",
  390. crossDomain: false,
  391. url: globalConfig.context + "/api/admin/expert/getPublishPage",
  392. data:{
  393. },
  394. success: function (data) {
  395. let theArr = [];
  396. let thedata=data.data;
  397. if (!thedata) {
  398. if (data.error && data.error.length) {
  399. message.warning(data.error[0].message);
  400. };
  401. thedata = {};
  402. };
  403. var contactIds=[];
  404. for(var i=0;i<data.data.length;i++){
  405. let theData = data.data[i];
  406. theArr.push(
  407. <Select.Option value={i.toString()} key={theData.name}>{theData.name}</Select.Option>
  408. );
  409. };
  410. this.setState({
  411. SuperArrs:thedata,
  412. contactsOptions: theArr,
  413. orderStatusOptions:data.data,
  414. });
  415. }.bind(this),
  416. }).always(function () {
  417. this.selectSuperId();
  418. this.setState({
  419. loading: false
  420. });
  421. }.bind(this));
  422. },
  423. //编辑部门,保存
  424. edithandleSubmit(e){
  425. e.preventDefault();
  426. if(!this.state.editifTop){
  427. message.warning('请确认是否置顶');
  428. return false;
  429. }
  430. let topNumbers=(this.state.edittopNumber==9999999)?undefined:this.state.edittopNumber;
  431. topNumbers=topNumbers?topNumbers:undefined;
  432. if(this.state.editifTop==0){
  433. if(!topNumbers){
  434. message.warning('请输入置顶序号');
  435. return false;
  436. }
  437. let b=this.state.edittopNumber.toString().split('');
  438. for(var i=0;i<b.length;i++){
  439. if(parseInt(b[i]).toString()=='NaN'){
  440. message.warning('置顶序号请输入数字');
  441. return false;
  442. };
  443. }
  444. }else{
  445. if(topNumbers){
  446. message.warning('请清空置顶序号');
  447. return false;
  448. }
  449. if(!this.state.editshowNumber){
  450. message.warning('请输入展示序号');
  451. return false;
  452. }
  453. let b=this.state.editshowNumber.toString().split('');
  454. for(var i=0;i<b.length;i++){
  455. if(parseInt(b[i]).toString()=='NaN'){
  456. message.warning('展示序号请输入数字');
  457. return false;
  458. };
  459. }
  460. }
  461. //上级组织字典
  462. let nameText=this.state.SuperArr;
  463. let nameTexts=this.state.SuperArrs;
  464. let superText=(parseInt(this.state.editpublishPlatform).toString()=='NaN')?undefined:nameText[parseInt(this.state.editpublishPlatform)].id;
  465. let superTexts=(parseInt(this.state.editpublishPage).toString()=='NaN')?undefined:nameTexts[parseInt(this.state.editpublishPage)].id;
  466. $.ajax({
  467. method: "get",
  468. dataType: "json",
  469. crossDomain: false,
  470. url:globalConfig.context + '/api/admin/expert/updatePublish',
  471. data:{
  472. id:this.state.editid,//成果发布ID
  473. expertId:this.state.editachievementId, //成果ID
  474. publishPlatform:superText,//发布平台
  475. publishClient:this.state.editpublishClient,//发布客户端
  476. publishPage:superTexts,//发布页面
  477. ifTop:this.state.editifTop,//是否置顶
  478. topNumber:topNumbers,//置顶序号
  479. showNumber:this.state.editshowNumber,//展示序号
  480. }
  481. }).done(function (data) {
  482. this.setState({
  483. loading: false
  484. });
  485. if (!data.error.length) {
  486. message.success('保存成功!');
  487. this.edithandleCancel();
  488. this.selectSuperId();
  489. } else {
  490. message.warning(data.error[0].message);
  491. }
  492. }.bind(this));
  493. },
  494. //整行点击
  495. tableRowClick(record, index) {
  496. this.selectSuperIds();
  497. this.state.RowData = record;
  498. this.setState({
  499. editvisible: true,
  500. selectedRowKeys:[],
  501. editid:record.id,
  502. editachievementId:record.achievementId,
  503. editpublishPlatform:record.platformName,
  504. editpublishClient:record.publishClient,
  505. editpublishPage:record.publishPageName,
  506. editifTop:record.ifTop,
  507. edittopNumber:record.topNumber,
  508. editshowNumber:record.showNumber,
  509. editserialNumber:record.serialNumber,
  510. editname:record.name,
  511. edituserName:record.userName,
  512. })
  513. },
  514. //新增一个部门,保存
  515. addhandleSubmit(e){
  516. e.preventDefault();
  517. if(!this.state.publishPlatform){
  518. message.warning('请选择发布子平台');
  519. return false;
  520. }
  521. if(!this.state.publishClient){
  522. message.warning('请选择发布客户端');
  523. return false;
  524. }
  525. if(!this.state.publishPage){
  526. message.warning('请选择发布页面');
  527. return false;
  528. }
  529. if(!this.state.ifTop){
  530. message.warning('请确认是否置顶');
  531. return false;
  532. }
  533. if(this.state.ifTop==0){
  534. if(!this.state.topNumber){
  535. message.warning('请输入置顶序号');
  536. return false;
  537. }
  538. let b=this.state.topNumber.split('');
  539. for(var i=0;i<b.length;i++){
  540. if(parseInt(b[i]).toString()=='NaN'){
  541. message.warning('置顶序号请输入数字');
  542. return false;
  543. };
  544. }
  545. }else{
  546. if(this.state.topNumber){
  547. message.warning('请清空置顶序号');
  548. return false;
  549. }
  550. if(!this.state.showNumber){
  551. message.warning('请输入展示序号');
  552. return false;
  553. }
  554. let b=this.state.showNumber.split('');
  555. for(var i=0;i<b.length;i++){
  556. if(parseInt(b[i]).toString()=='NaN'){
  557. message.warning('展示序号请输入数字');
  558. return false;
  559. };
  560. }
  561. }
  562. this.props.form.validateFields((err, values) => {
  563. if (!err) {
  564. this.setState({
  565. loading: true
  566. });
  567. let nameText=this.state.SuperArr;
  568. let superText=nameText[parseInt(this.state.publishPlatform)].id;
  569. let nameTexts=this.state.SuperArrs;
  570. let superTexts=nameTexts[parseInt(this.state.publishPage)].id;
  571. $.ajax({
  572. method: "post",
  573. dataType: "json",
  574. crossDomain: false,
  575. url:globalConfig.context + '/api/admin/expert/addExpertPublish',
  576. data:{
  577. ExpertId:this.state.selectedRowKeysli?this.state.selectedRowKeysli.join(","):undefined,//成果ID
  578. publishPlatform:superText,//发布平台
  579. publishClient:this.state.publishClient,//发布客户端
  580. publishPage:superTexts, //发布页面
  581. ifTop:this.state.ifTop,//是否置顶
  582. topNumber:this.state.topNumber,//置顶序号
  583. showNumber:this.state.showNumber,//展示序号
  584. }
  585. }).done(function (data) {
  586. this.setState({
  587. loading: false
  588. });
  589. if (!data.error.length) {
  590. message.success('保存成功!');
  591. this.handleCancel();
  592. this.reset();
  593. } else {
  594. message.warning(data.error[0].message);
  595. }
  596. }.bind(this));
  597. }
  598. });
  599. },
  600. //主管初始加载(自动补全)
  601. supervisor(e){
  602. $.ajax({
  603. method: "post",
  604. dataType: "json",
  605. crossDomain: false,
  606. url: globalConfig.context + "/api/admin/organization/selectName",
  607. data:{
  608. name:e
  609. },
  610. success: function (data) {
  611. let thedata=data.data;
  612. if (!thedata) {
  613. if (data.error && data.error.length) {
  614. message.warning(data.error[0].message);
  615. };
  616. thedata = {};
  617. };
  618. this.setState({
  619. customerArr:thedata,
  620. });
  621. }.bind(this),
  622. }).always(function () {
  623. this.setState({
  624. loading: false
  625. });
  626. }.bind(this));
  627. },
  628. //上级主管输入框失去焦点是判断客户是否存在
  629. selectAuto(value,options){
  630. this.setState({
  631. managerIdOrganization:value
  632. })
  633. },
  634. //失去焦点时
  635. blurChange(e){
  636. // let theType='';
  637. // let contactLists=this.state.customerArr||[];
  638. // if (e) {
  639. // contactLists.map(function (item) {
  640. // if (item.name == e.toString()) {
  641. // theType = item.id;
  642. // }
  643. // });
  644. // }
  645. this.setState({
  646. theTypes:e
  647. })
  648. },
  649. //值改变时请求客户名称
  650. httpChange(e){
  651. if(e.length>=2){
  652. this.supervisor(e);
  653. }
  654. this.setState({
  655. managerIdOrganization:e
  656. })
  657. },
  658. addClick() {
  659. this.state.name = undefined;//成果名称清零
  660. this.state.publishPlatform = undefined;//发布子平台清零
  661. this.state.publishClient = undefined;//发布客户端清零
  662. this.state.publishPage = undefined;//发布页面清零
  663. this.state.ifTop = undefined;//是否置顶清零
  664. this.state.topNumber = undefined;//置顶序号清零
  665. this.state.showNumber = undefined;//展示序号清零
  666. this.state.selectedRowKeysli=undefined;//选定的成果ID清零
  667. this.state.RowData = {};
  668. this.selectSuperId();
  669. this.loadDatas();
  670. },
  671. editClick() {
  672. this.state.RowData = {};
  673. this.setState({
  674. editvisible: true
  675. });
  676. },
  677. handleCancel() {
  678. this.setState({ visible: false })
  679. },
  680. edithandleCancel() {
  681. this.setState({ editvisible: false })
  682. },
  683. search() {
  684. this.loadData();
  685. },
  686. searchs() {
  687. this.loadDatas();
  688. },
  689. //把搜索的部分置零
  690. reset() {
  691. this.state.name = undefined;//成果名称清零
  692. this.state.superId = undefined;//发布子平台清零
  693. this.state.publishClient = undefined;//发布客户端清零
  694. this.state.publishPage = undefined;//发布页面清零
  695. this.state.ifTop = undefined;//是否置顶清零
  696. this.selectSuperId();
  697. },
  698. resets() {
  699. this.state.expertSearch = undefined;
  700. this.state.celebritySearch = undefined;
  701. this.state.shareTypeSearch = undefined;
  702. this.state.typeSearch = undefined; //名称1
  703. this.state.nameSearch = '';
  704. this.state.addressSearch = [];
  705. this.state.provinceSearch = undefined;
  706. this.state.citySearch = undefined;
  707. this.state.statusSearch = undefined;
  708. this.state.contactsSearch = undefined;
  709. this.state.contactMobileSearch = undefined;
  710. this.state.industrySearch = undefined;
  711. this.state.serviceCertificationSearch = undefined;
  712. this.state.userCertificationSearch = undefined;
  713. this.state.currentMemberStatusSearch = undefined;
  714. this.state.lvlSearch = undefined;
  715. this.state.listedSearch = undefined;
  716. this.state.highTechZoneSearch = undefined;
  717. this.state.releaseDate[0] = undefined;
  718. this.state.releaseDate[1] = undefined;
  719. this.loadDatas();
  720. },
  721. searchSwitch() {
  722. this.setState({
  723. searchMore: !this.state.searchMore
  724. });
  725. },
  726. render() {
  727. const FormItem = Form.Item
  728. const rowSelection = {
  729. selectedRowKeys: this.state.selectedRowKeys,
  730. onChange: (selectedRowKeys, selectedRows) => {
  731. this.setState({
  732. selectedRows: selectedRows.slice(-1),
  733. selectedRowKeys: selectedRowKeys.slice(-1)
  734. });
  735. },
  736. onSelect: (recordt, selected, selectedRows) => {
  737. this.setState({
  738. recordt:recordt.id
  739. })
  740. },
  741. };
  742. const rowSelections = {
  743. selectedRowKeysli: this.state.selectedRowKeysli,
  744. onChange: (selectedRowKeysli, selectedRows) => {
  745. this.setState({
  746. selectedRows: selectedRows,
  747. selectedRowKeysli: selectedRowKeysli
  748. });
  749. },
  750. onSelect: (recordt, selected, selectedRows) => {
  751. this.setState({
  752. recordt:recordt.id
  753. })
  754. },
  755. };
  756. const formItemLayout = {
  757. labelCol: { span: 8 },
  758. wrapperCol: { span: 14 },
  759. };
  760. const { getFieldDecorator } = this.props.form;
  761. const hasSelected = this.state.selectedRowKeys.length > 0;
  762. const { RangePicker } = DatePicker;
  763. const dataSources=this.state.customerArr || [];
  764. const options = dataSources.map((group,index) =>
  765. <Option key={index} value={group.name}>{group.name}</Option>
  766. )
  767. return (
  768. <div className="user-content" >
  769. <div className="content-title">
  770. <div className="user-search">
  771. <Input placeholder="专家名称" style={{width:'150px',marginRight:'10px',marginBottom:'10px'}}
  772. value={this.state.name}
  773. onChange={(e) => { this.setState({ name: e.target.value }); }} />
  774. <Select placeholder="发布子平台"
  775. style={{ width:'200px',marginRight:'10px' }}
  776. value={this.state.superId}
  777. onChange={(e) => { this.setState({ superId: e }) }} notFoundContent="未获取到上级组织列表">
  778. {this.state.contactsOption}
  779. </Select>
  780. <Select placeholder="发布客户端"
  781. style={{width:'150px',marginRight:'20px'}}
  782. value={this.state.publishClient}
  783. onChange={(e) => { this.setState({ publishClient: e }) }}>
  784. <Select.Option value="0" >网站</Select.Option>
  785. <Select.Option value="1" >APP</Select.Option>
  786. </Select>
  787. <Button type="primary" onClick={this.search} style={{marginRight:'10px'}}>搜索</Button>
  788. <Button onClick={this.reset} style={{marginRight:'10px'}}>重置</Button>
  789. <span style={{marginRight:'20px'}}>更多搜索 <Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  790. <div style={this.state.searchMore ? { display: 'none' } : {display: 'inline-block'}}>
  791. <Select placeholder="发布页面"
  792. style={{ width:'200px',marginRight:'10px' }}
  793. value={this.state.publishPage}
  794. onChange={(e) => { this.setState({ publishPage: e }) }} notFoundContent="未获取到发布页面">
  795. {this.state.contactsOptions}
  796. </Select>
  797. <Select placeholder="是否置顶"
  798. style={{width:'150px',marginRight:'50px'}}
  799. value={this.state.ifTop}
  800. onChange={(e) => { this.setState({ ifTop: e }) }}>
  801. <Select.Option value="0" >置顶</Select.Option>
  802. <Select.Option value="1" >不置顶</Select.Option>
  803. </Select>
  804. </div>
  805. <Button type="primary" className="addButton" onClick={this.addClick} style={{marginBottom:'10px'}}>发布专家<Icon type="plus" /></Button>
  806. </div>
  807. <div className="patent-table">
  808. <Spin spinning={this.state.loading}>
  809. <Table columns={this.state.columns}
  810. dataSource={this.state.dataSource}
  811. rowSelection={rowSelection}
  812. pagination={this.state.pagination}
  813. onRowClick={this.tableRowClick} />
  814. </Spin>
  815. </div>
  816. <div className="patent-desc">
  817. <Modal maskClosable={false} visible={this.state.visible}
  818. onOk={this.checkPatentProcess} onCancel={this.handleCancel}
  819. width='1200px'
  820. title='发布专家'
  821. footer=''
  822. className="admin-desc-content">
  823. <Form horizontal onSubmit={this.addhandleSubmit} id="add-form">
  824. <Spin spinning={this.state.loading}>
  825. <div className="clearfix">
  826. <FormItem className="half-item"
  827. labelCol={{ span: 7 }}
  828. wrapperCol={{ span: 12 }}
  829. label="发布子平台"
  830. >
  831. <Select placeholder="请选择子平台" value={this.state.publishPlatform} onChange={(e)=>{this.setState({publishPlatform:e})}}
  832. notFoundContent="未获取到子平台">
  833. {this.state.contactsOption}
  834. </Select>
  835. </FormItem>
  836. <FormItem className="half-item"
  837. labelCol={{ span: 7 }}
  838. wrapperCol={{ span: 12 }}
  839. label="发布客户端"
  840. >
  841. <Select placeholder="选择客户端" value={this.state.publishClient}
  842. onChange={(e)=>{this.setState({publishClient:e})}}>
  843. {
  844. client.map(function (item) {
  845. return <Select.Option key={item.value} >{item.key}</Select.Option>
  846. })
  847. }
  848. </Select>
  849. </FormItem>
  850. </div>
  851. <div className="clearfix">
  852. <FormItem className="half-item"
  853. labelCol={{ span: 7 }}
  854. wrapperCol={{ span: 12 }}
  855. label="发布页面位置"
  856. >
  857. <Select placeholder="请选择页面位置" value={this.state.publishPage} onChange={(e)=>{this.setState({publishPage:e})}}
  858. notFoundContent="未获取到页面位置">
  859. {this.state.contactsOptions}
  860. </Select>
  861. </FormItem>
  862. <FormItem className="half-item"
  863. labelCol={{ span: 7 }}
  864. wrapperCol={{ span: 12 }}
  865. label="是否置顶"
  866. >
  867. <Select placeholder="选择是否置顶" value={this.state.ifTop}
  868. onChange={(e)=>{this.setState({ifTop:e})}}>
  869. {
  870. stick.map(function (item) {
  871. return <Select.Option key={item.value} >{item.key}</Select.Option>
  872. })
  873. }
  874. </Select>
  875. </FormItem>
  876. </div>
  877. <div className="clearfix">
  878. <FormItem className="half-item"
  879. labelCol={{ span: 7 }}
  880. wrapperCol={{ span: 12 }}
  881. label="置顶序号" >
  882. <Input placeholder="请输入置顶序号" value={this.state.topNumber}
  883. onChange={(e)=>{this.setState({topNumber:e.target.value})}}/>
  884. </FormItem>
  885. <FormItem className="half-item"
  886. labelCol={{ span: 7 }}
  887. wrapperCol={{ span: 12}}
  888. label="展示序号" >
  889. <Input placeholder="请输入展示序号" value={this.state.showNumber}
  890. onChange={(e)=>{this.setState({showNumber:e.target.value})}}/>
  891. </FormItem>
  892. </div>
  893. <div className="user-search">
  894. <Input placeholder="专家姓名" style={{"width":"150px","display":"inlineBlock","marginRight":"10px",'marginBottom':"5px"}}
  895. value={this.state.nameSearch}
  896. onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} />
  897. <Select placeholder="行业" style={{"width":"150px","display":"inlineBlock","marginRight":"10px"}}
  898. value={this.state.industrySearch}
  899. onChange={(e) => { this.setState({ industrySearch: e }) }}>
  900. {this.state.intentionalOption}
  901. </Select>
  902. <Select placeholder="实名认证" style={{"width":"130px","display":"inlineBlock","marginRight":"10px"}}
  903. value={this.state.userCertificationSearch}
  904. onChange={(e) => { this.setState({ userCertificationSearch: e }) }}>
  905. {
  906. auditStatusL.map(function (item) {
  907. return <Select.Option key={item.value} >{item.key}</Select.Option>
  908. })
  909. }
  910. </Select>
  911. <Select placeholder="国际" style={{"width":"100px","display":"inlineBlock","marginRight":"10px"}}
  912. value={this.state.internationalSearch}
  913. onChange={(e) => { this.setState({ internationalSearch: e }) }}>
  914. <Select.Option value="0" >否</Select.Option>
  915. <Select.Option value="1" >是</Select.Option>
  916. </Select>
  917. <span style={{"marginRight":"5px"}}>创建时间 :</span>
  918. <RangePicker style={{"marginRight":"10px"}}
  919. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  920. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  921. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  922. <Button type="primary" onClick={this.searchs} style={{"display":"inlineBlock",'marginRight':'10px'}}>搜索</Button>
  923. <Button onClick={this.resets} style={{"display":"inlineBlock"}}>重置</Button>
  924. </div>
  925. <div className="patent-table">
  926. <Spin spinning={this.state.loading}>
  927. <Table columns={this.state.column}
  928. dataSource={this.state.dataSourcesli}
  929. rowSelection={rowSelections}
  930. pagination={this.state.paginations}
  931. />
  932. </Spin>
  933. </div>
  934. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  935. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  936. <Button className="set-submit" type="ghost" onClick={this.handleCancel} style={{marginLeft:'100px'}}>取消</Button>
  937. </FormItem>
  938. </Spin>
  939. </Form >
  940. </Modal>
  941. </div>
  942. <div className="patent-desc">
  943. <Modal maskClosable={false} visible={this.state.editvisible}
  944. onOk={this.checkPatentProcess} onCancel={this.edithandleCancel}
  945. width='900px'
  946. title='编辑发布'
  947. footer=''
  948. className="admin-desc-content">
  949. <Form horizontal onSubmit={this.edithandleSubmit} id="edit-form">
  950. <Spin spinning={this.state.loading}>
  951. <div className="clearfix">
  952. <FormItem className="half-item"
  953. labelCol={{ span: 6 }}
  954. wrapperCol={{ span: 12 }}
  955. label="发布子平台"
  956. >
  957. <Select placeholder="请选择子平台" value={this.state.editpublishPlatform} onChange={(e)=>{this.setState({editpublishPlatform:e})}}
  958. notFoundContent="未获取到子平台">
  959. {this.state.contactsOption}
  960. </Select>
  961. </FormItem>
  962. <FormItem className="half-item"
  963. labelCol={{ span: 6 }}
  964. wrapperCol={{ span: 12 }}
  965. label="发布客户端"
  966. >
  967. <Select placeholder="选择客户端" value={this.state.editpublishClient}
  968. onChange={(e)=>{this.setState({editpublishClient:e})}}>
  969. {
  970. client.map(function (item) {
  971. return <Select.Option key={item.value} >{item.key}</Select.Option>
  972. })
  973. }
  974. </Select>
  975. </FormItem>
  976. </div>
  977. <div className="clearfix">
  978. <FormItem className="half-item"
  979. labelCol={{ span: 6 }}
  980. wrapperCol={{ span: 12 }}
  981. label="发布页面位置"
  982. >
  983. <Select placeholder="请选择页面位置" value={this.state.editpublishPage} onChange={(e)=>{this.setState({editpublishPage:e})}}
  984. notFoundContent="未获取到页面位置">
  985. {this.state.contactsOptions}
  986. </Select>
  987. </FormItem>
  988. <FormItem className="half-item"
  989. labelCol={{ span: 6 }}
  990. wrapperCol={{ span: 12 }}
  991. label="是否置顶"
  992. >
  993. <Select placeholder="选择是否置顶" value={this.state.editifTop}
  994. onChange={(e)=>{this.setState({editifTop:e})}}>
  995. {
  996. stick.map(function (item) {
  997. return <Select.Option key={item.value} >{item.key}</Select.Option>
  998. })
  999. }
  1000. </Select>
  1001. </FormItem>
  1002. </div>
  1003. <div className="clearfix">
  1004. <FormItem className="half-item"
  1005. labelCol={{ span: 6 }}
  1006. wrapperCol={{ span: 12 }}
  1007. label="置顶序号" >
  1008. <Input placeholder="请输入置顶序号" value={this.state.edittopNumber}
  1009. onChange={(e)=>{this.setState({edittopNumber:e.target.value})}}/>
  1010. </FormItem>
  1011. <FormItem className="half-item"
  1012. labelCol={{ span: 6 }}
  1013. wrapperCol={{ span: 12}}
  1014. label="展示序号" >
  1015. <Input placeholder="请输入展示序号" value={this.state.editshowNumber}
  1016. onChange={(e)=>{this.setState({editshowNumber:e.target.value})}}/>
  1017. </FormItem>
  1018. </div>
  1019. <div className="clearfix">
  1020. <FormItem
  1021. labelCol={{ span: 3 }}
  1022. wrapperCol={{ span: 18 }}
  1023. label="专家名称"
  1024. >
  1025. <span>{this.state.editname}</span>
  1026. </FormItem>
  1027. </div>
  1028. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  1029. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  1030. <Button className="set-submit" type="ghost" onClick={this.edithandleCancel} style={{marginLeft:'100px'}}>取消</Button>
  1031. </FormItem>
  1032. </Spin>
  1033. </Form >
  1034. </Modal>
  1035. </div>
  1036. </div>
  1037. </div>
  1038. );
  1039. }
  1040. }));
  1041. export default Organization;