releaseResults.jsx 45 KB

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