releaseResults.jsx 45 KB

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