projectQuery.jsx 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  1. import React,{Component} from 'react';
  2. import ajax from 'jquery/src/ajax/xhr.js';
  3. import $ from 'jquery/src/ajax';
  4. import moment from 'moment';
  5. import '@/manageCenter/financialManage/distribute/public.less';
  6. import { Icon, Button,Form, Input, Select, Spin, Table, Switch, message, DatePicker, Modal,Upload ,Col} from 'antd';
  7. import OrderDesc from '@/manageCenter/financialManage/orderDetail/orderDesc'
  8. import Assign from '@/manageCenter/publicComponent/assign';
  9. import {
  10. getProcessStatus,
  11. getApproval,
  12. getLiquidationStatus,
  13. getApprovedState,
  14. splitUrl,
  15. getjiedian,
  16. getboutique,
  17. ShowModal
  18. } from "@/tools";
  19. import ShowModalDiv from "@/showModal.jsx";
  20. const PaiDan = React.createClass({
  21. loadData(pageNo) {
  22. this.state.data = [];
  23. this.setState({
  24. page:pageNo,
  25. loading: true
  26. });
  27. $.ajax({
  28. method: "get",
  29. dataType: "json",
  30. crossDomain: false,
  31. url: globalConfig.context +"/api/admin/newOrder/orderNewList",
  32. data: {
  33. pageNo: pageNo || 1,
  34. pageSize: this.state.pagination.pageSize,
  35. specially: 4,//咨询师管理列表
  36. distribution:this.state.distribution,//全部列表
  37. name: this.state.customerName,//名称
  38. depId: this.state.departmenttSearch,//订单部门
  39. orderNo: this.state.orderNoSearch,//订单编号
  40. starTime: this.state.releaseDate[0],//开始时间
  41. endTime: this.state.releaseDate[1],//结束时间
  42. },
  43. success: function (data) {
  44. ShowModal(this);
  45. let theArr = [];
  46. if (!data.data || !data.data.list) {
  47. if (data.error && data.error.length) {
  48. message.warning(data.error[0].message);
  49. };
  50. } else {
  51. for (let i = 0; i < data.data.list.length; i++) {
  52. let thisdata = data.data.list[i];
  53. theArr.push({
  54. key: i,
  55. id:thisdata.id,//任务ID
  56. orderNo: thisdata.orderNo,//订单编号
  57. totalAmount:thisdata.totalAmount,//签单金额
  58. processStatus:thisdata.processStatus,//流程状态
  59. liquidationStatus:thisdata.liquidationStatus,//结算状态
  60. approval:thisdata.approval,//特批状态
  61. signDate:thisdata.signDate,//签单时间
  62. userName:thisdata.userName,//客户名称
  63. salesmanName:thisdata.salesmanName,//营销员名称
  64. financeName:thisdata.financeName,//财务名称
  65. consultantName:thisdata.consultantName,//项目负责人
  66. createDate:thisdata.createDate,//下单时间
  67. depName:thisdata.depName,//部门名称
  68. });
  69. };
  70. }
  71. this.state.pagination.current = data.data.pageNo;
  72. this.state.pagination.total = data.data.totalCount;
  73. if(data.data&&data.data.list&&!data.data.list.length){
  74. this.state.pagination.current=0
  75. this.state.pagination.total=0
  76. }
  77. this.setState({
  78. dataSource: theArr,
  79. pagination: this.state.pagination
  80. });
  81. }.bind(this),
  82. }).always(function () {
  83. this.setState({
  84. loading: false
  85. });
  86. }.bind(this));
  87. },
  88. getInitialState() {
  89. return {
  90. searchMore: true,
  91. assignVisible:false,
  92. releaseDate: [],
  93. boHuivisible:false,
  94. selectedRowKeys: [],
  95. selectedRows: [],
  96. loading: false,
  97. paginations:false,
  98. pagination: {
  99. defaultCurrent: 1,
  100. defaultPageSize: 10,
  101. showQuickJumper: true,
  102. pageSize: 10,
  103. onChange: function (page) {
  104. this.loadData(page);
  105. }.bind(this),
  106. showTotal: function (total) {
  107. return '共' + total + '条数据';
  108. }
  109. },
  110. columns: [
  111. {
  112. title: '订单编号',
  113. dataIndex: 'orderNo',
  114. key: 'orderNo',
  115. },
  116. {
  117. title: '签单客户',
  118. dataIndex: 'userName',
  119. key: 'userName',
  120. }, {
  121. title: '下单时间',
  122. dataIndex: 'createDate',
  123. key: 'createDate',
  124. }, {
  125. title: '签单时间',
  126. dataIndex: 'signDate',
  127. key: 'signDate',
  128. },
  129. {
  130. title: '订单总金额(万)',
  131. dataIndex: 'totalAmount',
  132. key: 'totalAmount'
  133. },
  134. {
  135. title: '是否特批',
  136. dataIndex: 'approval',
  137. key: 'approval',
  138. render: text => { return getApproval(text)}
  139. },
  140. {
  141. title: '订单负责人',
  142. dataIndex: 'salesmanName',
  143. key: 'salesmanName'
  144. },
  145. {
  146. title: '财务负责人',
  147. dataIndex: 'financeName',
  148. key: 'financeName'
  149. },
  150. {
  151. title: '项目负责人',
  152. dataIndex: 'consultantName',
  153. key: 'consultantName'
  154. },
  155. {
  156. title: '订单部门',
  157. dataIndex: 'depName',
  158. key: 'depName'
  159. },
  160. {
  161. title: '分派状态',
  162. dataIndex: 'processStatus',
  163. key: 'processStatus',
  164. render: text => { return text==5||text==6?getProcessStatus(text):'未分配'}
  165. }
  166. ],
  167. columnsrizhi:[
  168. {
  169. title:'流程',
  170. dataIndex: 'processName',
  171. key: 'processName'
  172. },
  173. {
  174. title:'操作人',
  175. dataIndex: 'adminName',
  176. key: 'adminName'
  177. },{
  178. title:'时间',
  179. dataIndex: 'createDate',
  180. key: 'createDate'
  181. }
  182. ],
  183. dataSource: [],
  184. searchTime: [],
  185. columnsX: [
  186. {
  187. title: '业务项目名称',
  188. dataIndex: 'commodityName',
  189. key: 'commodityName'
  190. }, {
  191. title: '项目类别',
  192. dataIndex: 'cname',
  193. key: 'cname',
  194. },{
  195. title: '项目数量',
  196. dataIndex: 'commodityQuantity',
  197. key: 'commodityQuantity'
  198. }, {
  199. title: '金额(万元)',
  200. dataIndex: 'commodityPrice',
  201. key: 'commodityPrice'
  202. }, {
  203. title: '负责人',
  204. dataIndex: 'contacts',
  205. key: 'contacts'
  206. }, {
  207. title: '负责人电话',
  208. dataIndex: 'contactsMobile',
  209. key: 'contactsMobile'
  210. }, {
  211. title: '主要项目',
  212. dataIndex: 'main',
  213. key: 'main',
  214. render:(text)=>{
  215. return (text?'是':'否')
  216. }
  217. }, {
  218. title: '项目说明',
  219. dataIndex: 'taskComment',
  220. key: 'taskComment',
  221. render:(text)=>{
  222. return (text&&text.length>8?text.substr(0,8)+'…':text)
  223. }
  224. }
  225. ],
  226. dataSourceX: [],
  227. }
  228. },
  229. /* 分派 */
  230. evaluate(record){
  231. this.state.assignData=record;
  232. this.setState({
  233. assignVisible:true
  234. })
  235. },
  236. componentWillMount() {
  237. this.departmentList();
  238. this.loadData();
  239. },
  240. tableRowClick(record, index) {
  241. this.state.RowData = record;
  242. this.setState({
  243. visible: true,
  244. });
  245. this.xiangqing(record.orderNo);
  246. this.xiangmu(record.orderNo);
  247. },
  248. //订单详情
  249. xiangqing(orderNos) {
  250. $.ajax({
  251. method: "get",
  252. dataType: "json",
  253. crossDomain: false,
  254. url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
  255. data: {
  256. orderNo:orderNos
  257. },
  258. success: function(data) {
  259. let theArr = [];
  260. if(data.error.length || data.data.list == "") {
  261. if(data.error && data.error.length) {
  262. message.warning(data.error[0].message);
  263. };
  264. } else {
  265. let thisdata=data.data;
  266. this.setState({
  267. orderNo: thisdata.orderNo, //订单编号
  268. contractNo: thisdata.contractNo, //合同编号
  269. userName: thisdata.userName, //客户名称
  270. signDate: thisdata.signDate, //签单时间
  271. processStatus: thisdata.processStatus, //流程状态
  272. liquidationStatus: thisdata.liquidationStatus, //结算状态
  273. contacts: thisdata.contacts, //企业联系人
  274. contactMobile: thisdata.contactMobile, //联系人电话
  275. legalPerson: thisdata.legalPerson, //法人
  276. legalPersonTel: thisdata.legalPersonTel, //法人电话
  277. firstAmount: thisdata.firstAmount, //签单金额
  278. totalAmount: thisdata.totalAmount, //首付金额
  279. approval: thisdata.approval, //特批状态
  280. settlementAmount: thisdata.settlementAmount, //已收款项
  281. orderRemarks: thisdata.orderRemarks, //订单留言
  282. orgCodeUrl: thisdata.contractPictureUrl
  283. ? splitUrl(
  284. thisdata.contractPictureUrl,
  285. ",",
  286. globalConfig.avatarHost + "/upload"
  287. )
  288. : [], //图片地址
  289. salesmanName: thisdata.salesmanName, //营销员名称
  290. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  291. financeName: thisdata.financeName, //财务名称
  292. financeMobile: thisdata.financeMobile, //财务电话
  293. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  294. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  295. nowFinance: thisdata.nowFinance, //财务名称
  296. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  297. depName: thisdata.depName, //订单部门
  298. outsource: thisdata.outsource == 0 ? "否" : "是"
  299. });
  300. };
  301. }.bind(this),
  302. }).always(function() {
  303. this.setState({
  304. loading: false
  305. });
  306. }.bind(this));
  307. },
  308. //项目列表
  309. xiangmu(orderNos) {
  310. $.ajax({
  311. method: "get",
  312. dataType: "json",
  313. crossDomain: false,
  314. url: globalConfig.context +"/api/admin/newOrder/getOrderTask",
  315. data: {
  316. orderNo:orderNos
  317. },
  318. success: function(data) {
  319. let theArr = [];
  320. if(data.error.length || data.data.list == "") {
  321. if(data.error && data.error.length) {
  322. message.warning(data.error[0].message);
  323. };
  324. } else {
  325. for (let i = 0; i < data.data.length; i++) {
  326. let thisdata = data.data[i];
  327. theArr.push({
  328. key: i,
  329. id:thisdata.id,
  330. orderNo:thisdata.orderNo,//订单编号
  331. commodityId:thisdata.commodityId,//项目ID
  332. commodityName:thisdata.commodityName,//项目名称
  333. cname:thisdata.cname,//项目类别
  334. commodityPrice:thisdata.commodityPrice,//项目价格
  335. commodityQuantity:thisdata.commodityQuantity,//项目数量
  336. main:thisdata.main,//是否为主要任务
  337. taskComment:thisdata.taskComment,//任务说明
  338. contacts:thisdata.contacts,//联系人
  339. contactsMobile:thisdata.contactsMobile,//联系人电话
  340. taskStatus:thisdata.taskStatus,//是否分配
  341. });
  342. };
  343. };
  344. this.setState({
  345. dataSourceX: theArr,
  346. });
  347. }.bind(this),
  348. }).always(function() {
  349. this.setState({
  350. loading: false
  351. });
  352. }.bind(this));
  353. },
  354. closeDesc(e, s) {
  355. this.state.showDesc = e;
  356. if (s) {
  357. this.loadData(this.state.page);
  358. };
  359. },
  360. closeAssign(e, s) {
  361. this.state.assignVisible = e;
  362. if (s) {
  363. this.loadData(this.state.page);
  364. this.xiangmu(this.state.orderNo);
  365. };
  366. },
  367. search() {
  368. this.loadData();
  369. },
  370. reset() {
  371. this.state.nameSearch = '';
  372. this.state.customerName='';
  373. this.state.releaseDate = [];
  374. this.state.orderNoSearch='';
  375. this.state.departmenttSearch=undefined;
  376. this.state.distribution=undefined;
  377. this.loadData(this.state.page);
  378. },
  379. searchSwitch() {
  380. this.setState({
  381. searchMore: !this.state.searchMore
  382. });
  383. },
  384. rizhi(){
  385. console.log(this.state.orderNo)
  386. this.setState({
  387. loading:true
  388. })
  389. $.ajax({
  390. method: "get",
  391. dataType: "json",
  392. crossDomain: false,
  393. url: '/api/admin/newOrder/selectOrderLog',
  394. data: {
  395. orderNo:this.state.orderNo
  396. },
  397. success: function (data) {
  398. let theArr = [];
  399. let thisData = data.data;
  400. if (!thisData.length) {
  401. if (data.error && data.error.length) {
  402. message.warning(data.error[0].message);
  403. };
  404. thisData = {};
  405. }else{
  406. for(let i = 0; i < data.data.length; i++) {
  407. let thisdata = data.data[i];
  408. theArr.push({
  409. processName:thisdata.processName,
  410. adminName:thisdata.adminName,
  411. createDate:thisdata.createDate,
  412. });
  413. };
  414. };
  415. this.setState({
  416. dataSourcerizhi: theArr
  417. })
  418. }.bind(this),
  419. }).always(function () {
  420. this.setState({
  421. loading: false
  422. });
  423. }.bind(this));
  424. },
  425. //查看订单日志
  426. getOrderLog(){
  427. this.setState({
  428. rizhivisible:true
  429. })
  430. this.rizhi()
  431. },
  432. closeOrderLog(){
  433. this.setState({
  434. rizhivisible:false
  435. })
  436. },
  437. //关闭详情
  438. visitCancel(e){
  439. this.setState({
  440. visible:false
  441. })
  442. this.reset();
  443. },
  444. visitOk(e){
  445. this.setState({
  446. visible:false
  447. })
  448. this.reset();
  449. },
  450. nextCancel() {
  451. this.setState({
  452. addnextVisible: false
  453. })
  454. },
  455. //点击打卡项目详情
  456. tableRowClickX(record, index) {
  457. this.setState({
  458. jid:record.id,//项目ID
  459. kid:record.commodityId,//商品ID
  460. commodityName:record.commodityName,//金额
  461. commodityPrice:record.commodityPrice,//金额
  462. commodityQuantity:record.commodityQuantity,//数量
  463. taskComment:record.taskComment,//备注
  464. main:record.main.toString(),//是否为主要
  465. addnextVisible:true,
  466. addState:0,
  467. });
  468. },
  469. resets(){
  470. this.state.orderNo='';
  471. this.state.customerName='';
  472. this.state.departmenttSearch=undefined;
  473. this.state.releaseDate[0] = undefined;
  474. this.state.releaseDate[1] = undefined;
  475. },
  476. //部门
  477. departmentList() {
  478. this.setState({
  479. loading: true
  480. });
  481. $.ajax({
  482. method: "get",
  483. dataType: "json",
  484. crossDomain: false,
  485. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  486. data: {
  487. },
  488. success: function(data) {
  489. let thedata = data.data;
  490. let theArr = [];
  491. if(!thedata) {
  492. if(data.error && data.error.length) {
  493. message.warning(data.error[0].message);
  494. };
  495. thedata = {};
  496. } else {
  497. thedata.map(function(item, index) {
  498. theArr.push({
  499. key: index,
  500. name: item.name,
  501. id: item.id,
  502. })
  503. })
  504. }
  505. this.setState({
  506. departmentArr: theArr,
  507. })
  508. }.bind(this),
  509. }).always(function() {
  510. this.setState({
  511. loading: false
  512. });
  513. }.bind(this));
  514. },
  515. render() {
  516. const rowSelection = {
  517. selectedRowKeys: this.state.selectedRowKeys,
  518. onChange: (selectedRowKeys, selectedRows) => {
  519. this.setState({
  520. selectedRows: selectedRows.slice(-1),
  521. selectedRowKeys: selectedRowKeys.slice(-1)
  522. });
  523. }
  524. };
  525. const formItemLayout = {
  526. labelCol: { span: 8 },
  527. wrapperCol: { span: 14 },
  528. };
  529. const FormItem = Form.Item;
  530. let departmentArr = this.state.departmentArr || [];
  531. const hasSelected = this.state.selectedRowKeys.length > 0;
  532. const { RangePicker } = DatePicker;
  533. return (
  534. <div className="user-content">
  535. <ShowModalDiv ShowModal={this.state.showModal} />
  536. <div className="content-title">
  537. <span>项目派单管理</span>
  538. </div>
  539. <div className="user-search">
  540. <Input
  541. placeholder="客户名称"
  542. value={this.state.customerName}
  543. onChange={e => {
  544. this.setState({ customerName: e.target.value });
  545. }}
  546. />
  547. <Input
  548. placeholder="订单编号"
  549. value={this.state.orderNoSearch}
  550. onChange={e => {
  551. this.setState({ orderNoSearch: e.target.value });
  552. }}
  553. />
  554. <Select
  555. placeholder="选择部门"
  556. style={{ width: 150, marginRight: "10px" }}
  557. value={this.state.departmenttSearch}
  558. onChange={e => {
  559. this.setState({ departmenttSearch: e });
  560. }}
  561. >
  562. {departmentArr.map(function(item) {
  563. return (
  564. <Select.Option key={item.id}>{item.name}</Select.Option>
  565. );
  566. })}
  567. </Select>
  568. <Select
  569. onChange={e => {
  570. this.setState({ distribution: e });
  571. }}
  572. style={{ width: 160, marginRight: 5 }}
  573. placeholder="分派状态"
  574. value={this.state.distribution}
  575. >
  576. <Option value="0">未分配</Option>
  577. <Option value="1">部分分配</Option>
  578. <Option value="2">全部分配</Option>
  579. </Select>
  580. <Button type="primary" onClick={this.search}>
  581. 搜索
  582. </Button>
  583. <Button onClick={this.reset}>重置</Button>
  584. <span>
  585. 更多搜索
  586. <Switch
  587. defaultChecked={false}
  588. onChange={this.searchSwitch.bind(this)}
  589. />
  590. </span>
  591. <div
  592. className="search-more"
  593. style={this.state.searchMore ? { display: "none" } : {}}
  594. >
  595. <span>订单时间 :</span>
  596. <RangePicker
  597. value={[
  598. this.state.releaseDate[0]
  599. ? moment(this.state.releaseDate[0])
  600. : null,
  601. this.state.releaseDate[1]
  602. ? moment(this.state.releaseDate[1])
  603. : null
  604. ]}
  605. onChange={(data, dataString) => {
  606. this.setState({ releaseDate: dataString });
  607. }}
  608. />
  609. </div>
  610. </div>
  611. <div className="patent-table">
  612. <Spin spinning={this.state.loading}>
  613. <Table
  614. columns={this.state.columns}
  615. dataSource={this.state.dataSource}
  616. rowSelection={rowSelection}
  617. pagination={this.state.pagination}
  618. onRowClick={this.tableRowClick.bind(this)}
  619. />
  620. </Spin>
  621. </div>
  622. <Assign
  623. title="项目"
  624. selApi="/api/admin/orderProject/projectDistribution"
  625. data={this.state.assignData}
  626. showDesc={this.state.assignVisible}
  627. closeDesc={this.closeAssign.bind(this)}
  628. fenpaiData={8}
  629. specially={1}
  630. roleName={"咨询师经理"}
  631. />
  632. <Modal
  633. className="customeDetails"
  634. footer=""
  635. title="订单详情"
  636. width="900px"
  637. visible={this.state.visible}
  638. onOk={this.visitOk}
  639. onCancel={this.visitCancel}
  640. >
  641. <Form
  642. layout="horizontal"
  643. onSubmit={this.handleSubmit}
  644. id="demand-form"
  645. style={{ paddingBottom: "40px" }}
  646. >
  647. <Spin spinning={this.state.loading}>
  648. <div className="clearfix">
  649. <FormItem
  650. className="half-item"
  651. {...formItemLayout}
  652. label="订单编号"
  653. >
  654. <span>{this.state.orderNo}</span>
  655. </FormItem>
  656. <FormItem
  657. className="half-item"
  658. {...formItemLayout}
  659. label="合同编号"
  660. >
  661. <span>{this.state.contractNo}</span>
  662. </FormItem>
  663. <FormItem
  664. className="half-item"
  665. {...formItemLayout}
  666. label="客户名称"
  667. >
  668. <span>{this.state.userName}</span>
  669. </FormItem>
  670. <FormItem
  671. className="half-item"
  672. {...formItemLayout}
  673. label="合同签订时间"
  674. >
  675. <span>{this.state.signDate}</span>
  676. </FormItem>
  677. <FormItem
  678. className="half-item"
  679. {...formItemLayout}
  680. label="流程状态"
  681. >
  682. <span>{getProcessStatus(this.state.processStatus)}</span>
  683. </FormItem>
  684. <FormItem
  685. className="half-item"
  686. {...formItemLayout}
  687. label="结算状态"
  688. >
  689. <span>
  690. {getLiquidationStatus(this.state.liquidationStatus)}
  691. </span>
  692. </FormItem>
  693. <FormItem
  694. className="half-item"
  695. {...formItemLayout}
  696. label="企业联系人"
  697. >
  698. <span>{this.state.contacts}</span>
  699. </FormItem>
  700. <FormItem
  701. className="half-item"
  702. {...formItemLayout}
  703. label="联系人电话"
  704. >
  705. <span>{this.state.contactMobile}</span>
  706. </FormItem>
  707. <FormItem
  708. className="half-item"
  709. {...formItemLayout}
  710. label="企业法人"
  711. >
  712. <span>{this.state.legalPerson}</span>
  713. </FormItem>
  714. <FormItem
  715. className="half-item"
  716. {...formItemLayout}
  717. label="法人电话"
  718. >
  719. <span>{this.state.legalPersonTel}</span>
  720. </FormItem>
  721. <FormItem
  722. className="half-item"
  723. {...formItemLayout}
  724. label="签单金额(万元)"
  725. >
  726. <span>{this.state.totalAmount}</span>
  727. </FormItem>
  728. <FormItem
  729. className="half-item"
  730. {...formItemLayout}
  731. label="首付金额(万元)"
  732. >
  733. <span>{this.state.firstAmount}</span>
  734. </FormItem>
  735. <FormItem
  736. className="half-item"
  737. {...formItemLayout}
  738. label="特批立项"
  739. >
  740. <span>{getApprovedState(this.state.approval)}</span>
  741. </FormItem>
  742. <FormItem
  743. className="half-item"
  744. {...formItemLayout}
  745. label="已收款项(万元)"
  746. >
  747. <span>{this.state.settlementAmount}</span>
  748. </FormItem>
  749. <FormItem
  750. className="half-item"
  751. {...formItemLayout}
  752. label="是否外包"
  753. >
  754. <span>{this.state.outsource}</span>
  755. </FormItem>
  756. <div className="clearfix">
  757. <FormItem
  758. labelCol={{ span: 4 }}
  759. wrapperCol={{ span: 16 }}
  760. label="订单留言"
  761. >
  762. <span>{this.state.orderRemarks}</span>
  763. </FormItem>
  764. </div>
  765. <div className="clearfix">
  766. <FormItem
  767. labelCol={{ span: 4 }}
  768. wrapperCol={{ span: 18 }}
  769. label="合同扫描件"
  770. >
  771. <Upload
  772. className="demandDetailShow-upload"
  773. listType="picture-card"
  774. fileList={this.state.orgCodeUrl}
  775. onPreview={file => {
  776. this.setState({
  777. previewImage: file.url || file.thumbUrl,
  778. previewVisible: true
  779. });
  780. }}
  781. ></Upload>
  782. <Modal
  783. maskClosable={false}
  784. footer={null}
  785. visible={this.state.previewVisible}
  786. onCancel={() => {
  787. this.setState({ previewVisible: false });
  788. }}
  789. >
  790. <img
  791. alt=""
  792. style={{ width: "100%" }}
  793. src={this.state.previewImage || ""}
  794. />
  795. </Modal>
  796. <Button
  797. style={{
  798. float: "right",
  799. marginRight: "140px",
  800. marginTop: "20px"
  801. }}
  802. onClick={this.getOrderLog}
  803. >
  804. 查看订单 日志
  805. </Button>
  806. </FormItem>
  807. </div>
  808. <div className="clearfix">
  809. <FormItem
  810. className="half-item"
  811. {...formItemLayout}
  812. label="订单负责人"
  813. >
  814. <span>{this.state.salesmanName}</span>
  815. </FormItem>
  816. <FormItem
  817. className="half-item"
  818. {...formItemLayout}
  819. label="订单负责人电话"
  820. >
  821. <span>{this.state.salesmanMobile}</span>
  822. </FormItem>
  823. <FormItem
  824. className="half-item"
  825. {...formItemLayout}
  826. label="订单部门"
  827. >
  828. <span>{this.state.depName}</span>
  829. </FormItem>
  830. </div>
  831. <div className="clearfix">
  832. <FormItem
  833. className="half-item"
  834. {...formItemLayout}
  835. label="当前财务负责人"
  836. >
  837. <span>{this.state.nowFinance}</span>
  838. </FormItem>
  839. <FormItem
  840. className="half-item"
  841. {...formItemLayout}
  842. label="当前财务负责人电话"
  843. >
  844. <span>{this.state.nowFinanceMobile}</span>
  845. </FormItem>
  846. </div>
  847. <div className="clearfix">
  848. <FormItem
  849. className="half-item"
  850. {...formItemLayout}
  851. style={{ opacity: ".5" }}
  852. label="原订单负责人"
  853. >
  854. <span>{this.state.oldSalesmanName}</span>
  855. </FormItem>
  856. <FormItem
  857. className="half-item"
  858. {...formItemLayout}
  859. style={{ opacity: ".5" }}
  860. label="原订单负责人电话"
  861. >
  862. <span>{this.state.oldSalesmanMobile}</span>
  863. </FormItem>
  864. </div>
  865. <div className="clearfix">
  866. <FormItem
  867. className="half-item"
  868. {...formItemLayout}
  869. style={{ opacity: ".5" }}
  870. label="实际财务操作人"
  871. >
  872. <span>{this.state.financeName}</span>
  873. </FormItem>
  874. <FormItem
  875. className="half-item"
  876. {...formItemLayout}
  877. style={{ opacity: ".5" }}
  878. label="实际财务操作人电话"
  879. >
  880. <span>{this.state.financeMobile}</span>
  881. </FormItem>
  882. </div>
  883. <div>
  884. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  885. 项目业务
  886. </span>
  887. {this.state.processStatus == 0 ? (
  888. <Button
  889. type="primary"
  890. onClick={this.addDetailed}
  891. style={{
  892. float: "right",
  893. marginRight: "50px",
  894. marginBottom: "15px"
  895. }}
  896. >
  897. 添加项目明细
  898. </Button>
  899. ) : (
  900. ""
  901. )}
  902. </div>
  903. <div className="patent-table">
  904. <Spin spinning={this.state.loading}>
  905. <Table
  906. columns={this.state.columnsX}
  907. dataSource={this.state.dataSourceX}
  908. pagination={this.state.paginations}
  909. onRowClick={this.tableRowClickX}
  910. />
  911. </Spin>
  912. </div>
  913. </div>
  914. </Spin>
  915. </Form>
  916. </Modal>
  917. <Modal
  918. maskClosable={false}
  919. visible={this.state.addnextVisible}
  920. onOk={this.nextCancel}
  921. onCancel={this.nextCancel}
  922. width="800px"
  923. title="项目任务详情"
  924. footer=""
  925. className="admin-desc-content"
  926. >
  927. <Form
  928. layout="horizontal"
  929. onSubmit={this.nextSubmit}
  930. id="demand-form"
  931. >
  932. <Spin spinning={this.state.loading}>
  933. <div className="clearfix">
  934. <FormItem
  935. className="half-item"
  936. {...formItemLayout}
  937. label="项目名称"
  938. >
  939. <span>{this.state.commodityName}</span>
  940. </FormItem>
  941. <FormItem
  942. className="half-item"
  943. {...formItemLayout}
  944. label="项目数量"
  945. >
  946. <span>{this.state.commodityQuantity}</span>
  947. </FormItem>
  948. <FormItem
  949. className="half-item"
  950. {...formItemLayout}
  951. label="金额(万元)"
  952. >
  953. <span>{this.state.commodityPrice}</span>
  954. </FormItem>
  955. <FormItem
  956. className="half-item"
  957. {...formItemLayout}
  958. label="主要项目"
  959. >
  960. <span>{getboutique(this.state.main)}</span>
  961. </FormItem>
  962. <div className="clearfix">
  963. <FormItem
  964. labelCol={{ span: 4 }}
  965. wrapperCol={{ span: 16 }}
  966. label="服务说明"
  967. >
  968. <span>{this.state.taskComment}</span>
  969. </FormItem>
  970. </div>
  971. </div>
  972. </Spin>
  973. </Form>
  974. </Modal>
  975. <Modal
  976. visible={this.state.rizhivisible}
  977. className="admin-desc-content"
  978. width="800px"
  979. maskClosable={false}
  980. title="订单日志"
  981. footer={null}
  982. onCancel={this.closeOrderLog}
  983. >
  984. <div className="patent-table">
  985. <Spin spinning={this.state.loading}>
  986. <Table
  987. columns={this.state.columnsrizhi}
  988. dataSource={this.state.dataSourcerizhi}
  989. pagination={false}
  990. />
  991. </Spin>
  992. </div>
  993. </Modal>
  994. </div>
  995. );
  996. }
  997. })
  998. export default PaiDan;