releaseExpert.jsx 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056
  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. //上级组织字典
  568. let nameText=this.state.SuperArr;
  569. let superText=nameText[parseInt(this.state.publishPlatform)].id;
  570. let nameTexts=this.state.SuperArrs;
  571. let superTexts=nameTexts[parseInt(this.state.publishPage)].id;
  572. $.ajax({
  573. method: "post",
  574. dataType: "json",
  575. crossDomain: false,
  576. url:globalConfig.context + '/api/admin/expert/addExpertPublish',
  577. data:{
  578. ExpertId:this.state.selectedRowKeysli?this.state.selectedRowKeysli.join(","):undefined,//成果ID
  579. publishPlatform:superText,//发布平台
  580. publishClient:this.state.publishClient,//发布客户端
  581. publishPage:superTexts, //发布页面
  582. ifTop:this.state.ifTop,//是否置顶
  583. topNumber:this.state.topNumber,//置顶序号
  584. showNumber:this.state.showNumber,//展示序号
  585. }
  586. }).done(function (data) {
  587. this.setState({
  588. loading: false
  589. });
  590. if (!data.error.length) {
  591. message.success('保存成功!');
  592. this.handleCancel();
  593. this.selectSuperId();
  594. } else {
  595. message.warning(data.error[0].message);
  596. }
  597. }.bind(this));
  598. }
  599. });
  600. },
  601. //主管初始加载(自动补全)
  602. supervisor(e){
  603. $.ajax({
  604. method: "post",
  605. dataType: "json",
  606. crossDomain: false,
  607. url: globalConfig.context + "/api/admin/organization/selectName",
  608. data:{
  609. name:e
  610. },
  611. success: function (data) {
  612. let thedata=data.data;
  613. if (!thedata) {
  614. if (data.error && data.error.length) {
  615. message.warning(data.error[0].message);
  616. };
  617. thedata = {};
  618. };
  619. this.setState({
  620. customerArr:thedata,
  621. });
  622. }.bind(this),
  623. }).always(function () {
  624. this.setState({
  625. loading: false
  626. });
  627. }.bind(this));
  628. },
  629. //上级主管输入框失去焦点是判断客户是否存在
  630. selectAuto(value,options){
  631. this.setState({
  632. managerIdOrganization:value
  633. })
  634. },
  635. //失去焦点时
  636. blurChange(e){
  637. // let theType='';
  638. // let contactLists=this.state.customerArr||[];
  639. // if (e) {
  640. // contactLists.map(function (item) {
  641. // if (item.name == e.toString()) {
  642. // theType = item.id;
  643. // }
  644. // });
  645. // }
  646. this.setState({
  647. theTypes:e
  648. })
  649. },
  650. //值改变时请求客户名称
  651. httpChange(e){
  652. if(e.length>=2){
  653. this.supervisor(e);
  654. }
  655. this.setState({
  656. managerIdOrganization:e
  657. })
  658. },
  659. addClick() {
  660. this.state.name = undefined;//成果名称清零
  661. this.state.publishPlatform = undefined;//发布子平台清零
  662. this.state.publishClient = undefined;//发布客户端清零
  663. this.state.publishPage = undefined;//发布页面清零
  664. this.state.ifTop = undefined;//是否置顶清零
  665. this.state.topNumber = undefined;//置顶序号清零
  666. this.state.showNumber = undefined;//展示序号清零
  667. this.state.selectedRowKeysli=undefined;//选定的成果ID清零
  668. this.state.RowData = {};
  669. this.selectSuperId();
  670. this.loadDatas();
  671. },
  672. editClick() {
  673. this.state.RowData = {};
  674. this.setState({
  675. editvisible: true
  676. });
  677. },
  678. handleCancel() {
  679. this.setState({ visible: false })
  680. },
  681. edithandleCancel() {
  682. this.setState({ editvisible: false })
  683. },
  684. search() {
  685. this.loadData();
  686. },
  687. searchs() {
  688. this.loadDatas();
  689. },
  690. //把搜索的部分置零
  691. reset() {
  692. this.state.name = undefined;//成果名称清零
  693. this.state.superId = undefined;//发布子平台清零
  694. this.state.publishClient = undefined;//发布客户端清零
  695. this.state.publishPage = undefined;//发布页面清零
  696. this.state.ifTop = undefined;//是否置顶清零
  697. this.loadData();
  698. },
  699. resets() {
  700. this.state.expertSearch = undefined;
  701. this.state.celebritySearch = undefined;
  702. this.state.shareTypeSearch = undefined;
  703. this.state.typeSearch = undefined; //名称1
  704. this.state.nameSearch = '';
  705. this.state.addressSearch = [];
  706. this.state.provinceSearch = undefined;
  707. this.state.citySearch = undefined;
  708. this.state.statusSearch = undefined;
  709. this.state.contactsSearch = undefined;
  710. this.state.contactMobileSearch = undefined;
  711. this.state.industrySearch = undefined;
  712. this.state.serviceCertificationSearch = undefined;
  713. this.state.userCertificationSearch = undefined;
  714. this.state.currentMemberStatusSearch = undefined;
  715. this.state.lvlSearch = undefined;
  716. this.state.listedSearch = undefined;
  717. this.state.highTechZoneSearch = undefined;
  718. this.state.releaseDate[0] = undefined;
  719. this.state.releaseDate[1] = undefined;
  720. this.loadDatas();
  721. },
  722. searchSwitch() {
  723. this.setState({
  724. searchMore: !this.state.searchMore
  725. });
  726. },
  727. render() {
  728. const FormItem = Form.Item
  729. const rowSelection = {
  730. selectedRowKeys: this.state.selectedRowKeys,
  731. onChange: (selectedRowKeys, selectedRows) => {
  732. this.setState({
  733. selectedRows: selectedRows.slice(-1),
  734. selectedRowKeys: selectedRowKeys.slice(-1)
  735. });
  736. },
  737. onSelect: (recordt, selected, selectedRows) => {
  738. this.setState({
  739. recordt:recordt.id
  740. })
  741. },
  742. };
  743. const rowSelections = {
  744. selectedRowKeysli: this.state.selectedRowKeysli,
  745. onChange: (selectedRowKeysli, selectedRows) => {
  746. this.setState({
  747. selectedRows: selectedRows,
  748. selectedRowKeysli: selectedRowKeysli
  749. });
  750. },
  751. onSelect: (recordt, selected, selectedRows) => {
  752. this.setState({
  753. recordt:recordt.id
  754. })
  755. },
  756. };
  757. const formItemLayout = {
  758. labelCol: { span: 8 },
  759. wrapperCol: { span: 14 },
  760. };
  761. const { getFieldDecorator } = this.props.form;
  762. const hasSelected = this.state.selectedRowKeys.length > 0;
  763. const { RangePicker } = DatePicker;
  764. const dataSources=this.state.customerArr || [];
  765. const options = dataSources.map((group,index) =>
  766. <Option key={index} value={group.name}>{group.name}</Option>
  767. )
  768. return (
  769. <div className="user-content" >
  770. <div className="content-title">
  771. <div className="user-search">
  772. <Input placeholder="专家名称" style={{width:'150px',marginRight:'10px',marginBottom:'10px'}}
  773. value={this.state.name}
  774. onChange={(e) => { this.setState({ name: e.target.value }); }} />
  775. <Select placeholder="发布子平台"
  776. style={{ width:'200px',marginRight:'10px' }}
  777. value={this.state.superId}
  778. onChange={(e) => { this.setState({ superId: e }) }} notFoundContent="未获取到上级组织列表">
  779. {this.state.contactsOption}
  780. </Select>
  781. <Select placeholder="发布客户端"
  782. style={{width:'150px',marginRight:'20px'}}
  783. value={this.state.publishClient}
  784. onChange={(e) => { this.setState({ publishClient: e }) }}>
  785. <Select.Option value="0" >网站</Select.Option>
  786. <Select.Option value="1" >APP</Select.Option>
  787. </Select>
  788. <Button type="primary" onClick={this.search} style={{marginRight:'10px'}}>搜索</Button>
  789. <Button onClick={this.reset} style={{marginRight:'10px'}}>重置</Button>
  790. <span style={{marginRight:'20px'}}>更多搜索 <Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  791. <div style={this.state.searchMore ? { display: 'none' } : {display: 'inline-block'}}>
  792. <Select placeholder="发布页面"
  793. style={{ width:'200px',marginRight:'10px' }}
  794. value={this.state.publishPage}
  795. onChange={(e) => { this.setState({ publishPage: e }) }} notFoundContent="未获取到发布页面">
  796. {this.state.contactsOptions}
  797. </Select>
  798. <Select placeholder="是否置顶"
  799. style={{width:'150px',marginRight:'50px'}}
  800. value={this.state.ifTop}
  801. onChange={(e) => { this.setState({ ifTop: e }) }}>
  802. <Select.Option value="0" >置顶</Select.Option>
  803. <Select.Option value="1" >不置顶</Select.Option>
  804. </Select>
  805. </div>
  806. <Button type="primary" className="addButton" onClick={this.addClick} style={{marginBottom:'10px'}}>发布专家<Icon type="plus" /></Button>
  807. </div>
  808. <div className="patent-table">
  809. <Spin spinning={this.state.loading}>
  810. <Table columns={this.state.columns}
  811. dataSource={this.state.dataSource}
  812. rowSelection={rowSelection}
  813. pagination={this.state.pagination}
  814. onRowClick={this.tableRowClick} />
  815. </Spin>
  816. </div>
  817. <div className="patent-desc">
  818. <Modal maskClosable={false} visible={this.state.visible}
  819. onOk={this.checkPatentProcess} onCancel={this.handleCancel}
  820. width='1200px'
  821. title='发布专家'
  822. footer=''
  823. className="admin-desc-content">
  824. <Form horizontal onSubmit={this.addhandleSubmit} id="add-form">
  825. <Spin spinning={this.state.loading}>
  826. <div className="clearfix">
  827. <FormItem className="half-item"
  828. labelCol={{ span: 7 }}
  829. wrapperCol={{ span: 12 }}
  830. label="发布子平台"
  831. >
  832. <Select placeholder="请选择子平台" value={this.state.publishPlatform} onChange={(e)=>{this.setState({publishPlatform:e})}}
  833. notFoundContent="未获取到子平台">
  834. {this.state.contactsOption}
  835. </Select>
  836. </FormItem>
  837. <FormItem className="half-item"
  838. labelCol={{ span: 7 }}
  839. wrapperCol={{ span: 12 }}
  840. label="发布客户端"
  841. >
  842. <Select placeholder="选择客户端" value={this.state.publishClient}
  843. onChange={(e)=>{this.setState({publishClient:e})}}>
  844. {
  845. client.map(function (item) {
  846. return <Select.Option key={item.value} >{item.key}</Select.Option>
  847. })
  848. }
  849. </Select>
  850. </FormItem>
  851. </div>
  852. <div className="clearfix">
  853. <FormItem className="half-item"
  854. labelCol={{ span: 7 }}
  855. wrapperCol={{ span: 12 }}
  856. label="发布页面位置"
  857. >
  858. <Select placeholder="请选择页面位置" value={this.state.publishPage} onChange={(e)=>{this.setState({publishPage:e})}}
  859. notFoundContent="未获取到页面位置">
  860. {this.state.contactsOptions}
  861. </Select>
  862. </FormItem>
  863. <FormItem className="half-item"
  864. labelCol={{ span: 7 }}
  865. wrapperCol={{ span: 12 }}
  866. label="是否置顶"
  867. >
  868. <Select placeholder="选择是否置顶" value={this.state.ifTop}
  869. onChange={(e)=>{this.setState({ifTop:e})}}>
  870. {
  871. stick.map(function (item) {
  872. return <Select.Option key={item.value} >{item.key}</Select.Option>
  873. })
  874. }
  875. </Select>
  876. </FormItem>
  877. </div>
  878. <div className="clearfix">
  879. <FormItem className="half-item"
  880. labelCol={{ span: 7 }}
  881. wrapperCol={{ span: 12 }}
  882. label="置顶序号" >
  883. <Input placeholder="请输入置顶序号" value={this.state.topNumber}
  884. onChange={(e)=>{this.setState({topNumber:e.target.value})}}/>
  885. </FormItem>
  886. <FormItem className="half-item"
  887. labelCol={{ span: 7 }}
  888. wrapperCol={{ span: 12}}
  889. label="展示序号" >
  890. <Input placeholder="请输入展示序号" value={this.state.showNumber}
  891. onChange={(e)=>{this.setState({showNumber:e.target.value})}}/>
  892. </FormItem>
  893. </div>
  894. <div className="user-search">
  895. <Input placeholder="专家姓名" style={{"width":"150px","display":"inlineBlock","marginRight":"10px",'marginBottom':"5px"}}
  896. value={this.state.nameSearch}
  897. onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} />
  898. <Select placeholder="行业" style={{"width":"150px","display":"inlineBlock","marginRight":"10px"}}
  899. value={this.state.industrySearch}
  900. onChange={(e) => { this.setState({ industrySearch: e }) }}>
  901. {this.state.intentionalOption}
  902. </Select>
  903. <Select placeholder="实名认证" style={{"width":"130px","display":"inlineBlock","marginRight":"10px"}}
  904. value={this.state.userCertificationSearch}
  905. onChange={(e) => { this.setState({ userCertificationSearch: e }) }}>
  906. {
  907. auditStatusL.map(function (item) {
  908. return <Select.Option key={item.value} >{item.key}</Select.Option>
  909. })
  910. }
  911. </Select>
  912. <Select placeholder="国际" style={{"width":"100px","display":"inlineBlock","marginRight":"10px"}}
  913. value={this.state.internationalSearch}
  914. onChange={(e) => { this.setState({ internationalSearch: e }) }}>
  915. <Select.Option value="0" >否</Select.Option>
  916. <Select.Option value="1" >是</Select.Option>
  917. </Select>
  918. <span style={{"marginRight":"5px"}}>创建时间 :</span>
  919. <RangePicker style={{"marginRight":"10px"}}
  920. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  921. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  922. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  923. <Button type="primary" onClick={this.searchs} style={{"display":"inlineBlock",'marginRight':'10px'}}>搜索</Button>
  924. <Button onClick={this.resets} style={{"display":"inlineBlock"}}>重置</Button>
  925. </div>
  926. <div className="patent-table">
  927. <Spin spinning={this.state.loading}>
  928. <Table columns={this.state.column}
  929. dataSource={this.state.dataSourcesli}
  930. rowSelection={rowSelections}
  931. pagination={this.state.paginations}
  932. />
  933. </Spin>
  934. </div>
  935. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  936. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  937. <Button className="set-submit" type="ghost" onClick={this.handleCancel} style={{marginLeft:'100px'}}>取消</Button>
  938. </FormItem>
  939. </Spin>
  940. </Form >
  941. </Modal>
  942. </div>
  943. <div className="patent-desc">
  944. <Modal maskClosable={false} visible={this.state.editvisible}
  945. onOk={this.checkPatentProcess} onCancel={this.edithandleCancel}
  946. width='900px'
  947. title='编辑发布'
  948. footer=''
  949. className="admin-desc-content">
  950. <Form horizontal onSubmit={this.edithandleSubmit} id="edit-form">
  951. <Spin spinning={this.state.loading}>
  952. <div className="clearfix">
  953. <FormItem className="half-item"
  954. labelCol={{ span: 6 }}
  955. wrapperCol={{ span: 12 }}
  956. label="发布子平台"
  957. >
  958. <Select placeholder="请选择子平台" value={this.state.editpublishPlatform} onChange={(e)=>{this.setState({editpublishPlatform:e})}}
  959. notFoundContent="未获取到子平台">
  960. {this.state.contactsOption}
  961. </Select>
  962. </FormItem>
  963. <FormItem className="half-item"
  964. labelCol={{ span: 6 }}
  965. wrapperCol={{ span: 12 }}
  966. label="发布客户端"
  967. >
  968. <Select placeholder="选择客户端" value={this.state.editpublishClient}
  969. onChange={(e)=>{this.setState({editpublishClient:e})}}>
  970. {
  971. client.map(function (item) {
  972. return <Select.Option key={item.value} >{item.key}</Select.Option>
  973. })
  974. }
  975. </Select>
  976. </FormItem>
  977. </div>
  978. <div className="clearfix">
  979. <FormItem className="half-item"
  980. labelCol={{ span: 6 }}
  981. wrapperCol={{ span: 12 }}
  982. label="发布页面位置"
  983. >
  984. <Select placeholder="请选择页面位置" value={this.state.editpublishPage} onChange={(e)=>{this.setState({editpublishPage:e})}}
  985. notFoundContent="未获取到页面位置">
  986. {this.state.contactsOptions}
  987. </Select>
  988. </FormItem>
  989. <FormItem className="half-item"
  990. labelCol={{ span: 6 }}
  991. wrapperCol={{ span: 12 }}
  992. label="是否置顶"
  993. >
  994. <Select placeholder="选择是否置顶" value={this.state.editifTop}
  995. onChange={(e)=>{this.setState({editifTop:e})}}>
  996. {
  997. stick.map(function (item) {
  998. return <Select.Option key={item.value} >{item.key}</Select.Option>
  999. })
  1000. }
  1001. </Select>
  1002. </FormItem>
  1003. </div>
  1004. <div className="clearfix">
  1005. <FormItem className="half-item"
  1006. labelCol={{ span: 6 }}
  1007. wrapperCol={{ span: 12 }}
  1008. label="置顶序号" >
  1009. <Input placeholder="请输入置顶序号" value={this.state.edittopNumber}
  1010. onChange={(e)=>{this.setState({edittopNumber:e.target.value})}}/>
  1011. </FormItem>
  1012. <FormItem className="half-item"
  1013. labelCol={{ span: 6 }}
  1014. wrapperCol={{ span: 12}}
  1015. label="展示序号" >
  1016. <Input placeholder="请输入展示序号" value={this.state.editshowNumber}
  1017. onChange={(e)=>{this.setState({editshowNumber:e.target.value})}}/>
  1018. </FormItem>
  1019. </div>
  1020. <div className="clearfix">
  1021. <FormItem
  1022. labelCol={{ span: 3 }}
  1023. wrapperCol={{ span: 18 }}
  1024. label="专家名称"
  1025. >
  1026. <span>{this.state.editname}</span>
  1027. </FormItem>
  1028. </div>
  1029. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  1030. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  1031. <Button className="set-submit" type="ghost" onClick={this.edithandleCancel} style={{marginLeft:'100px'}}>取消</Button>
  1032. </FormItem>
  1033. </Spin>
  1034. </Form >
  1035. </Modal>
  1036. </div>
  1037. </div>
  1038. </div>
  1039. );
  1040. }
  1041. }));
  1042. export default Organization;