addorders.js 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352
  1. import React from "react";
  2. import {
  3. Table,
  4. Modal,
  5. message,
  6. Spin,
  7. Input,
  8. Select,
  9. Button,
  10. Form,
  11. Upload,
  12. Popconfirm,
  13. AutoComplete,
  14. DatePicker,
  15. Col
  16. } from "antd";
  17. import $ from "jquery/src/ajax";
  18. import "../userMangagement.less";
  19. import moment from "moment";
  20. import Picture from "@/manageCenter/publicComponent/picture";
  21. import { jiedian, tepi, boutique } from "../../../dataDic.js";
  22. import {
  23. splitUrl,
  24. getProcessStatus,
  25. getLiquidationStatus,
  26. getboutique,
  27. getApprovedState,
  28. getjiedian,
  29. getCuikuan,
  30. getProjectStatus
  31. } from "../../../tools.js";
  32. import PicturesWall from "./changeComponent/picturesWall.js";
  33. const Addorders = Form.create()(
  34. React.createClass({
  35. //查看项目列表
  36. loadData(orderNo) {
  37. this.state.data = [];
  38. this.setState({
  39. loading: true
  40. });
  41. $.ajax({
  42. method: "get",
  43. dataType: "json",
  44. crossDomain: false,
  45. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  46. data: {
  47. orderNo: orderNo
  48. },
  49. success: function(data) {
  50. let theArr = [];
  51. if (!data.data) {
  52. if (data.error && data.error.length) {
  53. message.warning(data.error[0].message);
  54. }
  55. } else {
  56. for (let i = 0; i < data.data.length; i++) {
  57. let thisdata = data.data[i];
  58. theArr.push({
  59. key: i,
  60. id: thisdata.id,
  61. orderNo: thisdata.orderNo, //订单编号
  62. commodityId: thisdata.commodityId, //项目ID
  63. commodityName: thisdata.commodityName, //项目名称
  64. cname: thisdata.cname, //项目类别
  65. commodityPrice: thisdata.commodityPrice, //项目价格
  66. commodityQuantity: thisdata.commodityQuantity, //项目数量
  67. main: thisdata.main, //是否为主要任务
  68. taskComment: thisdata.taskComment, //任务说明
  69. contacts: thisdata.contacts, //联系人
  70. contactsMobile: thisdata.contactsMobile, //联系人电话
  71. projectStatus: thisdata.projectStatus //项目状态
  72. });
  73. }
  74. }
  75. this.departmentList();
  76. this.setState({
  77. dataSource: theArr,
  78. pagination: false
  79. });
  80. }.bind(this)
  81. }).always(
  82. function() {
  83. this.setState({
  84. loading: false
  85. });
  86. }.bind(this)
  87. );
  88. },
  89. //收款节点
  90. loadDatas(orderNo) {
  91. this.state.data = [];
  92. this.setState({
  93. loading: true
  94. });
  95. $.ajax({
  96. method: "get",
  97. dataType: "json",
  98. crossDomain: false,
  99. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  100. data: {
  101. orderNo: orderNo
  102. },
  103. success: function(data) {
  104. let theArr = [];
  105. if (!data.data) {
  106. if (data.error && data.error.length) {
  107. message.warning(data.error[0].message);
  108. }
  109. } else {
  110. for (let i = 0; i < data.data.length; i++) {
  111. let thisdata = data.data[i];
  112. theArr.push({
  113. key: i,
  114. id: thisdata.id
  115. });
  116. }
  117. }
  118. this.setState({
  119. dataSource: theArr,
  120. pagination: false
  121. });
  122. }.bind(this)
  123. }).always(
  124. function() {
  125. this.setState({
  126. loading: false
  127. });
  128. }.bind(this)
  129. );
  130. },
  131. getInitialState() {
  132. return {
  133. loading: false,
  134. visible: false,
  135. orgCodeUrl: [],
  136. voucherUrl: [],
  137. customerArr: [],
  138. mark: false,
  139. activeKey: "1",
  140. buttonStatus: true,
  141. typeChange: 0,
  142. bussStats: false,
  143. checkedKeys: [],
  144. lookflowList: [],
  145. contractUrl: [],
  146. applicationUrl: [],
  147. active: {
  148. applySign: false
  149. },
  150. lookState: false,
  151. signBillVisible: false,
  152. commod: "",
  153. columns: [
  154. {
  155. title: "业务项目名称",
  156. dataIndex: "commodityName",
  157. key: "commodityName"
  158. },
  159. {
  160. title: "项目类别",
  161. dataIndex: "cname",
  162. key: "cname"
  163. },
  164. {
  165. title: "项目数量",
  166. dataIndex: "commodityQuantity",
  167. key: "commodityQuantity"
  168. },
  169. {
  170. title: "金额(万元)",
  171. dataIndex: "commodityPrice",
  172. key: "commodityPrice"
  173. },
  174. {
  175. title: "负责人",
  176. dataIndex: "contacts",
  177. key: "contacts"
  178. },
  179. {
  180. title: "负责人电话",
  181. dataIndex: "contactsMobile",
  182. key: "contactsMobile"
  183. },
  184. {
  185. title: "项目状态",
  186. dataIndex: "projectStatus",
  187. key: "projectStatus",
  188. render: text => {
  189. return getProjectStatus(text);
  190. }
  191. },
  192. {
  193. title: "主要项目",
  194. dataIndex: "main",
  195. key: "main",
  196. render: text => {
  197. return text ? "是" : "否";
  198. }
  199. },
  200. {
  201. title: "项目说明",
  202. dataIndex: "taskComment",
  203. key: "taskComment",
  204. render: text => {
  205. return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
  206. }
  207. },
  208. {
  209. title: "操作",
  210. dataIndex: "ABC",
  211. key: "ABC",
  212. render: (_text, record) => {
  213. return (
  214. <div>
  215. {this.state.processStatus == 0 ? (
  216. <Popconfirm
  217. title="是否删除?"
  218. onConfirm={() => {
  219. this.delectRow(record);
  220. }}
  221. okText="是"
  222. cancelText="否"
  223. >
  224. <Button
  225. onClick={e => {
  226. e.stopPropagation();
  227. }}
  228. type="danger"
  229. >
  230. 删除
  231. </Button>
  232. </Popconfirm>
  233. ) : (
  234. ""
  235. )}
  236. </div>
  237. );
  238. }
  239. }
  240. ],
  241. columnsrizhi: [
  242. {
  243. title: "流程",
  244. dataIndex: "processName",
  245. key: "processName"
  246. },
  247. {
  248. title: "操作人",
  249. dataIndex: "adminName",
  250. key: "adminName"
  251. },
  252. {
  253. title: "时间",
  254. dataIndex: "createDate",
  255. key: "createDate"
  256. }
  257. ],
  258. contactList: [],
  259. loading: false,
  260. ContactsLists: [
  261. {
  262. title: "催款科目",
  263. dataIndex: "dunSubject",
  264. key: "dunSubject",
  265. render: (text, record) => {
  266. return (
  267. <div>
  268. {this.props.deleteSign === 3 ||
  269. this.state.processStatus == 0 ? (
  270. <Select
  271. placeholder="请选择催款科目"
  272. value={record.dunSubject}
  273. style={{ width: "150px" }}
  274. onChange={e => {
  275. record.dunSubject = e;
  276. this.setState({ contactList: this.state.contactList });
  277. }}
  278. >
  279. {jiedian.map(function(item) {
  280. return (
  281. <Select.Option key={item.value}>
  282. {item.key}
  283. </Select.Option>
  284. );
  285. })}
  286. </Select>
  287. ) : (
  288. getjiedian(text)
  289. )}
  290. </div>
  291. );
  292. }
  293. },
  294. {
  295. title: "金额(万)",
  296. dataIndex: "money",
  297. key: "money",
  298. render: (text, record) => {
  299. return (
  300. <div>
  301. {this.props.deleteSign === 3 ||
  302. this.state.processStatus == 0 ? (
  303. <Input
  304. value={record.money}
  305. placeholder="请输入金额(必填项)"
  306. key={record.id}
  307. required="required"
  308. onChange={e => {
  309. record.money = e.target.value;
  310. this.setState({ contactList: this.state.contactList });
  311. }}
  312. style={{ width: "120px" }}
  313. />
  314. ) : (
  315. <span>{text}</span>
  316. )}
  317. </div>
  318. );
  319. }
  320. },
  321. {
  322. title: "催款状态",
  323. dataIndex: "dunStatus",
  324. key: "dunStatus",
  325. render: text => {
  326. return getCuikuan(text);
  327. }
  328. },
  329. {
  330. title: "操作",
  331. dataIndex: "dels",
  332. key: "dels",
  333. render: (_text, record, index) => {
  334. return (
  335. <div>
  336. {this.props.deleteSign === 3 ||
  337. this.state.processStatus == 0 ? (
  338. <Popconfirm
  339. title="是否删除?"
  340. onConfirm={() => {
  341. this.confirmDelet(record);
  342. }}
  343. okText="删除"
  344. cancelText="不删除"
  345. >
  346. <Button
  347. style={{
  348. marginRight: "10px",
  349. color: "#ffffff",
  350. background: "#f00",
  351. border: "none"
  352. }}
  353. >
  354. 删除
  355. </Button>
  356. </Popconfirm>
  357. ) : (
  358. ""
  359. )}
  360. {!record.id && index == this.state.contactList.length - 1 ? (
  361. <Button type="primary" onClick={this.contactSave}>
  362. 保存
  363. </Button>
  364. ) : (
  365. ""
  366. )}
  367. </div>
  368. );
  369. }
  370. }
  371. ]
  372. };
  373. },
  374. departmentList() {
  375. this.setState({
  376. loading: true
  377. });
  378. $.ajax({
  379. method: "get",
  380. dataType: "json",
  381. crossDomain: false,
  382. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  383. data: {},
  384. success: function(data) {
  385. let thedata = data.data;
  386. let theArr = [];
  387. if (!thedata) {
  388. if (data.error && data.error.length) {
  389. message.warning(data.error[0].message);
  390. }
  391. thedata = {};
  392. } else {
  393. thedata.map(function(item, index) {
  394. theArr.push({
  395. key: index,
  396. name: item.name,
  397. id: item.id,
  398. depNo: item.depNo
  399. });
  400. });
  401. }
  402. this.setState({
  403. departmentArr: theArr
  404. });
  405. }.bind(this)
  406. }).always(
  407. function() {
  408. this.setState({
  409. loading: false
  410. });
  411. }.bind(this)
  412. );
  413. },
  414. //新建订单、编辑订单保存
  415. handleSubmit() {
  416. let theorgCodeUrl = [];
  417. if (this.state.orgCodeUrl.length) {
  418. let picArr = [];
  419. this.state.orgCodeUrl.map(function(item) {
  420. if (
  421. item.response &&
  422. item.response.data &&
  423. item.response.data.length
  424. ) {
  425. picArr.push(item.response.data);
  426. }
  427. });
  428. theorgCodeUrl = picArr.join(",");
  429. }
  430. if (this.props.data) {
  431. if (!theorgCodeUrl) {
  432. message.warning("图片过大,上传失败");
  433. return false;
  434. }
  435. if (!this.state.signDate) {
  436. message.warning("签单日期不能为空");
  437. return false;
  438. }
  439. if (!this.state.orderRemarks) {
  440. message.warning("订单留言不能为空");
  441. return false;
  442. }
  443. } else {
  444. }
  445. this.setState({
  446. loading: true
  447. });
  448. let api = "/api/admin/newOrder/updateServiceOrderNew";
  449. $.ajax({
  450. method: "POST",
  451. dataType: "json",
  452. crossDomain: false,
  453. url: globalConfig.context + api,
  454. data:
  455. {
  456. orderNo: this.state.orderNo, //订单编号
  457. totalAmount: this.state.totalAmount, //总金额
  458. firstAmount: this.state.firstAmount, //首付
  459. isSubmit: this.state.isSubmit, //保存草稿还是提交
  460. signDate: this.state.signDate, //签单日期
  461. contacts: this.state.contacts, //企业负责人
  462. contactMobile: this.state.contactMobile, //负责人联系方式
  463. legalPerson: this.state.legalPerson, //企业法人
  464. legalPersonTel: this.state.legalPersonTel, //企业法人联系电话
  465. approval: this.state.approval, //特批状态
  466. orderRemarks: this.state.orderRemarks, //订单备注
  467. contractPictureUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
  468. orderDep: this.state.organizationSearch,
  469. deleteSign: this.props.deleteSign === 3 ? 0 : undefined
  470. }
  471. }).done(
  472. function(data) {
  473. this.setState({
  474. loading: false
  475. });
  476. if (!data.error.length) {
  477. message.success("保存成功!");
  478. this.handleOk();
  479. if (this.state.autoId) {
  480. this.loadData(this.props.data);
  481. }
  482. } else {
  483. message.warning(data.error[0].message);
  484. }
  485. }.bind(this)
  486. );
  487. },
  488. //订单详情修改
  489. xiangqingClick(e) {
  490. e.preventDefault();
  491. this.setState({
  492. loading: true
  493. });
  494. $.ajax({
  495. url: globalConfig.context + "/api/admin/newOrder/updateServiceOrderNew",
  496. method: "post",
  497. data: {
  498. orderNo: this.state.orderNo, //订单编号
  499. totalAmount: this.state.totalAmount, //总金额
  500. firstAmount: this.state.firstAmount, //首付
  501. isSubmit: this.state.isSubmit, //保存草稿还是提交
  502. signDate: this.state.selTime, //签单日期
  503. contacts: this.state.contacts, //企业负责人
  504. contactMobile: this.state.contactMobile, //负责人联系方式
  505. legalPerson: this.state.legalPerson, //企业法人
  506. legalPersonTel: this.state.legalPersonTel, //企业法人联系电话
  507. approval: this.state.approval, //特批状态
  508. orderRemarks: this.state.orderRemarks //订单备注
  509. }
  510. }).done(
  511. function(data) {
  512. this.setState({
  513. loading: false
  514. });
  515. if (!data.error.length) {
  516. message.success("保存成功!");
  517. this.loaduser(this.props.data);
  518. } else {
  519. message.warning(data.error[0].message);
  520. }
  521. }.bind(this)
  522. );
  523. },
  524. //查看基本详情基本信息
  525. loaduser(orderNo) {
  526. this.state.orderList = [];
  527. $.ajax({
  528. method: "get",
  529. dataType: "json",
  530. crossDomain: false,
  531. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  532. data: {
  533. orderNo: orderNo
  534. },
  535. success: function(data) {
  536. let thisData = data.data;
  537. if (!thisData) {
  538. if (data.error && data.error.length) {
  539. message.warning(data.error[0].message);
  540. }
  541. thisData = {};
  542. }
  543. // this.props.getPrimaryOrder(thisData.primaryOrder);
  544. // this.props.getAdditionalOrder(thisData.additionalOrder);
  545. this.setState({
  546. id: thisData.id,
  547. kehuId: thisData.buyerId,
  548. orderNo: thisData.orderNo, //订单编号
  549. orderType: thisData.orderType, //订单类型
  550. firstAmount: thisData.firstAmount, //首付金额
  551. totalAmount: thisData.totalAmount, //总金额
  552. settlementAmount: thisData.settlementAmount, //结算金额
  553. liquidationStatus: thisData.liquidationStatus, //清算状态
  554. processStatus: thisData.processStatus, //流程状态
  555. approval: thisData.approval.toString(), //特批状态
  556. orderRemarks: thisData.orderRemarks, //订单备注
  557. contractNo: thisData.contractNo, //合同编号
  558. contacts: thisData.contacts, //联系人
  559. contactMobile: thisData.contactMobile, //联系人电话
  560. legalPerson: thisData.legalPerson, //法人
  561. legalPersonTel: thisData.legalPersonTel, //法人电话
  562. contractNo: thisData.contractNo, //合同编号
  563. orgCodeUrl: thisData.contractPictureUrl
  564. ? splitUrl(
  565. thisData.contractPictureUrl,
  566. ",",
  567. globalConfig.avatarHost + "/upload"
  568. )
  569. : [], //图片地址
  570. signDate: thisData.signDate, //签单时间
  571. userName: thisData.userName, //客户名称
  572. salesmanName: thisData.salesmanName, //营销员名称
  573. salesmanMobile: thisData.salesmanMobile, //营销员电话
  574. financeName: thisData.financeName, //财务名称
  575. financeMobile: thisData.financeMobile, //财务电话
  576. contractNo: thisData.contractNo, //合同编号
  577. approval:
  578. thisData.approval == 0
  579. ? thisData.approval.toString()
  580. : thisData.approval,
  581. organizationSearch: thisData.orderDep,
  582. depName: thisData.depName
  583. });
  584. }.bind(this)
  585. }).always(
  586. function() {
  587. this.setState({
  588. loading: false
  589. });
  590. }.bind(this)
  591. );
  592. },
  593. //查看催款节点
  594. loaduserss(orderNo) {
  595. this.state.orderList = [];
  596. this.setState({
  597. orderNoss: orderNo
  598. });
  599. $.ajax({
  600. method: "get",
  601. dataType: "json",
  602. crossDomain: false,
  603. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  604. data: {
  605. orderNo: orderNo
  606. },
  607. success: function(data) {
  608. let theArr = [];
  609. let thisData = [];
  610. if (!thisData) {
  611. if (data.error && data.error.length) {
  612. message.warning(data.error[0].message);
  613. }
  614. thisData = {};
  615. } else {
  616. for (let i = 0; i < data.data.length; i++) {
  617. thisData = data.data[i];
  618. theArr.push({
  619. key: i,
  620. dunStatus: thisData.dunStatus,
  621. dunSubject: thisData.dunSubject
  622. ? thisData.dunSubject.toString()
  623. : "", //催款科目
  624. id: thisData.id, //节点Id
  625. money: thisData.money, //催款金额
  626. orderNo: orderNo
  627. });
  628. }
  629. this.setState({
  630. contactList: theArr
  631. });
  632. }
  633. }.bind(this)
  634. }).always(
  635. function() {
  636. this.setState({
  637. loading: false
  638. });
  639. }.bind(this)
  640. );
  641. },
  642. //催款节点保存
  643. contactSave() {
  644. if (this.state.contactList) {
  645. let cuiData = this.state.contactList;
  646. for (var a = 0; a < cuiData.length; a++) {
  647. if (cuiData[a].money == "") {
  648. message.warning("催款金额不能为空");
  649. this.refs.signFirstPayment.focus();
  650. return false;
  651. } else if (!cuiData[a].dunSubject) {
  652. message.warning("催款科目不能为空");
  653. this.refs.signFirstPayment.focus();
  654. return false;
  655. }
  656. }
  657. }
  658. this.setState({
  659. loading: true
  660. });
  661. $.ajax({
  662. url: globalConfig.context + "/api/admin/newOrder/createOrderDun",
  663. method: "post",
  664. data: {
  665. orderNo: this.state.orderNoss,
  666. orderDun: JSON.stringify(this.state.contactList)
  667. }
  668. }).done(
  669. function(data) {
  670. this.setState({
  671. loading: false
  672. });
  673. if (!data.error.length) {
  674. message.success("保存成功!");
  675. this.loaduserss(this.props.data);
  676. } else {
  677. message.warning(data.error[0].message);
  678. }
  679. }.bind(this)
  680. );
  681. },
  682. //点击新增催款节点
  683. addcontact() {
  684. this.state.contactList.push({
  685. key: this.state.contactList.length,
  686. money: "",
  687. dunSubject: undefined,
  688. orderNo: this.state.orderNoss,
  689. dunTarget: this.state.kehuId
  690. });
  691. this.setState({
  692. contactList: this.state.contactList
  693. });
  694. },
  695. //删除收款节点
  696. confirmDelet(index) {
  697. if (index.id) {
  698. this.state.contactList.splice(index.key, 1);
  699. this.setState({
  700. contactList: this.state.contactList
  701. });
  702. this.contactSave();
  703. } else {
  704. this.state.contactList.splice(index.key, 1);
  705. this.setState({
  706. contactList: this.state.contactList
  707. });
  708. }
  709. },
  710. handleOk() {
  711. this.setState({
  712. visible: false
  713. });
  714. this.props.closeDesc(false, true);
  715. },
  716. handleCancel() {
  717. if (this.state.orderType == undefined) {
  718. return false;
  719. }
  720. if (!this.state.autoId) {
  721. return false;
  722. }
  723. this.setState({
  724. visible: false
  725. });
  726. this.props.closeDesc(false);
  727. },
  728. handleCancelclose() {
  729. this.setState(
  730. {
  731. visible: false
  732. },
  733. () => {
  734. this.setState({
  735. activeKey: "1"
  736. });
  737. }
  738. );
  739. this.props.closeDesc(false);
  740. this.reset();
  741. },
  742. //点击签单
  743. handleCancels() {
  744. this.setState(
  745. {
  746. isSubmit: 1
  747. },
  748. () => {
  749. this.handleSubmit();
  750. }
  751. );
  752. },
  753. //点击签单
  754. handleCancelq() {
  755. this.setState(
  756. {
  757. isSubmit: 0
  758. },
  759. () => {
  760. this.handleSubmit();
  761. }
  762. );
  763. },
  764. //删除
  765. delectRow(record) {
  766. this.setState({
  767. loading: true
  768. });
  769. $.ajax({
  770. method: "post",
  771. dataType: "json",
  772. crossDomain: false,
  773. url: globalConfig.context + "/api/admin/newOrder/deleteOrderTask",
  774. data: {
  775. id: record.id
  776. }
  777. }).done(
  778. function(data) {
  779. if (!data.error.length) {
  780. message.success("删除成功!");
  781. this.setState({
  782. loading: false
  783. });
  784. //this.loaduser()
  785. this.loadData(this.props.data);
  786. } else {
  787. message.warning(data.error[0].message);
  788. }
  789. }.bind(this)
  790. );
  791. },
  792. nextCancel() {
  793. this.setState({
  794. addnextVisible: false
  795. });
  796. },
  797. rizhi() {
  798. this.setState({
  799. loading: true
  800. });
  801. $.ajax({
  802. method: "get",
  803. dataType: "json",
  804. crossDomain: false,
  805. url: "/api/admin/newOrder/selectOrderLog",
  806. data: {
  807. orderNo: this.props.data
  808. },
  809. success: function(data) {
  810. let theArr = [];
  811. let thisData = data.data;
  812. if (!thisData.length) {
  813. if (data.error && data.error.length) {
  814. message.warning(data.error[0].message);
  815. }
  816. thisData = {};
  817. } else {
  818. for (let i = 0; i < data.data.length; i++) {
  819. let thisdata = data.data[i];
  820. theArr.push({
  821. processName: thisdata.processName,
  822. adminName: thisdata.adminName,
  823. createDate: thisdata.createDate
  824. });
  825. }
  826. }
  827. this.setState({
  828. dataSourcerizhi: theArr
  829. });
  830. }.bind(this)
  831. }).always(
  832. function() {
  833. this.setState({
  834. loading: false
  835. });
  836. }.bind(this)
  837. );
  838. },
  839. //查看订单日志
  840. getOrderLog() {
  841. this.setState({
  842. rizhivisible: true
  843. });
  844. this.rizhi();
  845. },
  846. closeOrderLog() {
  847. this.setState({
  848. rizhivisible: false
  849. });
  850. },
  851. callback(key) {
  852. this.setState({
  853. activeKey: key
  854. });
  855. },
  856. getOrgCodeUrl(e) {
  857. this.setState({ orgCodeUrl: e });
  858. },
  859. getVoucherUrl(e) {
  860. this.setState({ voucherUrl: e });
  861. },
  862. //加载(自动补全)
  863. supervisor(e, state) {
  864. //客户名称与服务名称自动补全
  865. let api = state
  866. ? "/api/admin/customer/getCustomerByName"
  867. : "/api/admin/order/getBusinessProjectByName";
  868. $.ajax({
  869. method: "get",
  870. dataType: "json",
  871. crossDomain: false,
  872. url: globalConfig.context + api,
  873. data: state
  874. ? {
  875. name: e,
  876. type: this.state.customType
  877. }
  878. : {
  879. businessName: e
  880. },
  881. success: function(data) {
  882. let thedata = data.data;
  883. if (!thedata) {
  884. if (data.error && data.error.length) {
  885. message.warning(data.error[0].message);
  886. }
  887. thedata = {};
  888. }
  889. this.setState({
  890. states: state,
  891. customerArr: thedata
  892. });
  893. }.bind(this)
  894. }).always(
  895. function() {
  896. this.setState({
  897. loading: false
  898. });
  899. }.bind(this)
  900. );
  901. },
  902. //上级主管输入框失去焦点是判断客户是否存在
  903. selectAuto(value) {
  904. let kid = [];
  905. let fwList = this.state.customerArr;
  906. fwList.map(function(item) {
  907. if (value == item.bname) {
  908. kid = item;
  909. }
  910. });
  911. this.setState({
  912. commodityName: value,
  913. gid: kid.id,
  914. //commodityPrice:kid.price==0?kid.price.toString():kid.price,
  915. commodityFirstPayment:
  916. kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment
  917. });
  918. },
  919. //客户
  920. selectAutoCUT(value) {
  921. let autoIds;
  922. let fwList = this.state.customerArr;
  923. fwList.map(function(item) {
  924. if (value == item.name) {
  925. autoIds = item.id;
  926. }
  927. });
  928. this.setState({
  929. customerName: value,
  930. autoId: autoIds
  931. });
  932. },
  933. //服务值改变时请求客户名称
  934. httpChange(e) {
  935. this.state.gid = "";
  936. if (e.length >= 1) {
  937. this.supervisor(e, false);
  938. }
  939. this.setState({
  940. commodityName: e
  941. });
  942. },
  943. //客户名称自动补全
  944. customerChange(e) {
  945. if (this.state.customType) {
  946. this.state.autoId = "";
  947. if (e.length >= 2) {
  948. this.supervisor(e, true);
  949. }
  950. this.setState({
  951. customerName: e
  952. });
  953. } else {
  954. this.setState({
  955. customerName: ""
  956. });
  957. message.warning("客户所属类型必须指定");
  958. }
  959. },
  960. //点击添加项目明细
  961. addDetailed() {
  962. this.setState({
  963. gid: "",
  964. customerArr: [],
  965. commodityName: "",
  966. commodityQuantity: "",
  967. commodityId: "",
  968. taskComment: "",
  969. main: undefined,
  970. commodityPrice: "",
  971. addState: 1,
  972. addnextVisible: true
  973. });
  974. },
  975. //新建项目明细保存
  976. nextSubmit(e) {
  977. e.preventDefault();
  978. if (this.state.gid == undefined || !this.state.gid) {
  979. message.warning("服务名称不匹配!");
  980. return false;
  981. }
  982. if (!this.state.commodityPrice) {
  983. message.warning("请输入金额!");
  984. this.refs.commodityPrice.focus();
  985. return false;
  986. }
  987. if (!this.state.commodityQuantity) {
  988. message.warning("请输入商品数量!");
  989. this.refs.commodityQuantity.focus();
  990. return false;
  991. }
  992. if (!this.state.main) {
  993. message.warning("请选择是否为主要项目!");
  994. this.refs.commodityQuantity.focus();
  995. return false;
  996. }
  997. this.setState({
  998. loading: true
  999. });
  1000. let api = this.state.addState
  1001. ? "/api/admin/newOrder/addOrderTask"
  1002. : "/api/bianji";
  1003. $.ajax({
  1004. method: "POST",
  1005. dataType: "json",
  1006. crossDomain: false,
  1007. url: globalConfig.context + api,
  1008. data: {
  1009. commodityId: this.state.gid, //商品ID
  1010. orderNo: this.props.data, //订单编号
  1011. commodityName: this.state.commodityName, //商品名称
  1012. commodityQuantity: this.state.commodityQuantity, //商品数量
  1013. commodityPrice: this.state.commodityPrice, //签单总价
  1014. taskComment: this.state.taskComment, //服务说明
  1015. main: this.state.main //是否为主要项目
  1016. }
  1017. }).done(
  1018. function(data) {
  1019. this.setState({
  1020. loading: false
  1021. });
  1022. if (!data.error.length) {
  1023. message.success("保存成功!");
  1024. this.nextCancel();
  1025. //this.loaduser(this.props.datauser);
  1026. this.loadData(this.props.data);
  1027. } else {
  1028. message.warning(data.error[0].message);
  1029. }
  1030. }.bind(this)
  1031. );
  1032. },
  1033. //点击打卡项目详情
  1034. tableRowClick(record) {
  1035. this.setState({
  1036. jid: record.id, //项目ID
  1037. kid: record.commodityId, //商品ID
  1038. commodityName: record.commodityName, //金额
  1039. commodityPrice: record.commodityPrice, //金额
  1040. commodityQuantity: record.commodityQuantity, //数量
  1041. taskComment: record.taskComment, //备注
  1042. main: record.main.toString(), //是否为主要
  1043. addnextVisible: true,
  1044. addState: 0
  1045. });
  1046. },
  1047. //修改项目详情
  1048. tabRowSave(e) {
  1049. e.preventDefault();
  1050. if (!this.state.commodityPrice) {
  1051. message.warning("金额不能为空!");
  1052. return false;
  1053. }
  1054. if (!this.state.commodityQuantity) {
  1055. message.warning("数量不能为空!");
  1056. return false;
  1057. }
  1058. if (!this.state.main) {
  1059. message.warning("请选择是否为主要项目!");
  1060. this.refs.commodityQuantity.focus();
  1061. return false;
  1062. }
  1063. $.ajax({
  1064. method: "POST",
  1065. dataType: "json",
  1066. crossDomain: false,
  1067. url: globalConfig.context + "/api/admin/newOrder/updateOrderTask",
  1068. data: {
  1069. id: this.state.jid, //项目ID
  1070. commodityId: this.state.kid, //商品ID
  1071. orderNo: this.props.data, //订单编号
  1072. main: this.state.main, //是否为主要
  1073. commodityPrice: this.state.commodityPrice, //金额
  1074. commodityQuantity: this.state.commodityQuantity, //数量
  1075. taskComment: this.state.taskComment //备注
  1076. }
  1077. }).done(
  1078. function(data) {
  1079. this.setState({
  1080. loading: false
  1081. });
  1082. if (!data.error.length) {
  1083. message.success("保存成功!");
  1084. this.nextCancel();
  1085. //this.loaduser(this.props.datauser);
  1086. this.loadData(this.props.data);
  1087. } else {
  1088. message.warning(data.error[0].message);
  1089. }
  1090. }.bind(this)
  1091. );
  1092. },
  1093. //签单时间选择
  1094. selTime(e, index) {
  1095. this.setState({
  1096. entryTime: e,
  1097. signDate: e,
  1098. selTime: index
  1099. });
  1100. },
  1101. //退单操作
  1102. //点击退单
  1103. tuikuan() {
  1104. this.setState({
  1105. lookVisible: true,
  1106. contractUrl: [],
  1107. applicationUrl: [],
  1108. reason: ""
  1109. });
  1110. },
  1111. //关闭退单
  1112. noCancel() {
  1113. this.setState({
  1114. lookVisible: false
  1115. });
  1116. },
  1117. //点击确认退单
  1118. tuidanOk() {
  1119. let contractUrls = [];
  1120. let applicationUrls = [];
  1121. if (this.state.contractUrl.length) {
  1122. let picArr = [];
  1123. this.state.contractUrl.map(function(item) {
  1124. if (
  1125. item.response &&
  1126. item.response.data &&
  1127. item.response.data.length
  1128. ) {
  1129. picArr.push(item.response.data);
  1130. }
  1131. });
  1132. contractUrls = picArr.join(",");
  1133. }
  1134. if (this.state.applicationUrl.length) {
  1135. let picArr = [];
  1136. this.state.applicationUrl.map(function(item) {
  1137. if (
  1138. item.response &&
  1139. item.response.data &&
  1140. item.response.data.length
  1141. ) {
  1142. picArr.push(item.response.data);
  1143. }
  1144. });
  1145. applicationUrls = picArr.join(",");
  1146. }
  1147. $.ajax({
  1148. method: "POST",
  1149. dataType: "json",
  1150. crossDomain: false,
  1151. url: globalConfig.context + "/api/admin/newOrder/addOrderRefund",
  1152. data: {
  1153. orderNo: this.state.orderNo, //订单编号
  1154. contractUrl: contractUrls.length ? contractUrls : "", //终止合同
  1155. applicationUrl: applicationUrls.length ? applicationUrls : "", //退单申请表
  1156. reason: this.state.reason //退单原因
  1157. }
  1158. }).done(
  1159. function(data) {
  1160. this.setState({
  1161. loading: false
  1162. });
  1163. if (!data.error.length) {
  1164. message.success("退单成功!");
  1165. this.noCancel();
  1166. this.handleCancelclose();
  1167. } else {
  1168. message.warning(data.error[0].message);
  1169. }
  1170. }.bind(this)
  1171. );
  1172. },
  1173. //开单选择订单类型骚操作
  1174. orderTypeFn(e) {
  1175. if (e == 0) {
  1176. this.setState({
  1177. bussStats: true,
  1178. orderType: e
  1179. });
  1180. this.category();
  1181. } else {
  1182. this.setState({
  1183. contractType: undefined,
  1184. bussStats: false,
  1185. orderType: e
  1186. });
  1187. }
  1188. },
  1189. //品类数据获取
  1190. category() {
  1191. $.ajax({
  1192. method: "get",
  1193. dataType: "json",
  1194. crossDomain: false,
  1195. url: globalConfig.context + "/api/admin/Varieties/getSuperList",
  1196. data: {},
  1197. success: function(data) {
  1198. let thedata = data.data;
  1199. let theArr = [];
  1200. if (!thedata) {
  1201. if (data.error && data.error.length) {
  1202. message.warning(data.error[0].message);
  1203. }
  1204. thedata = {};
  1205. } else {
  1206. thedata.map(function(item, index) {
  1207. theArr.push({
  1208. key: index,
  1209. name: item.cname,
  1210. id: item.id
  1211. });
  1212. });
  1213. }
  1214. this.setState({
  1215. contractType: undefined,
  1216. categoryArr: theArr
  1217. });
  1218. }.bind(this)
  1219. });
  1220. },
  1221. //变更申请
  1222. changeApply() {
  1223. let theorgCodeUrl = [];
  1224. if (this.state.voucherUrl.length) {
  1225. let picArr = [];
  1226. this.state.voucherUrl.map(function(item) {
  1227. if (
  1228. item.response &&
  1229. item.response.data &&
  1230. item.response.data.length
  1231. ) {
  1232. picArr.push(item.response.data);
  1233. }
  1234. });
  1235. theorgCodeUrl = picArr.join(",");
  1236. }
  1237. $.ajax({
  1238. method: "post",
  1239. dataType: "json",
  1240. crossDomain: false,
  1241. url: globalConfig.context + "/api/admin/orderChange/addOrderChange",
  1242. data: {
  1243. orderNo: this.state.orderNo, //订单编号
  1244. processState: 0,
  1245. status: 1,
  1246. remarks: this.state.remarksC,
  1247. voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
  1248. totalAmount: this.state.totalAmountC,
  1249. settlementAmount: this.state.settlementAmountC,
  1250. changeAmount: this.state.changeAmount,
  1251. applicant: this.state.applicant,
  1252. depName: this.state.depNameChange,
  1253. type: this.state.typeChange
  1254. }
  1255. }).done(
  1256. function(data) {
  1257. this.setState({
  1258. loading: false
  1259. });
  1260. if (!data.error.length) {
  1261. message.success("变更成功!");
  1262. this.setState({
  1263. mark: true
  1264. });
  1265. this.noCancel();
  1266. this.handleCancelclose();
  1267. } else {
  1268. message.warning(data.error[0].message);
  1269. }
  1270. }.bind(this)
  1271. );
  1272. },
  1273. reset() {
  1274. this.setState({
  1275. remarksC: undefined,
  1276. voucherUrl: [],
  1277. totalAmountC: undefined,
  1278. settlementAmountC: undefined,
  1279. changeAmount: undefined,
  1280. applicant: undefined,
  1281. depNameChange: undefined,
  1282. typeChange: 0
  1283. });
  1284. },
  1285. componentDidMount() {
  1286. this.loaduser(this.props.data);
  1287. this.loaduserss(this.props.data);
  1288. this.loadData(this.props.data);
  1289. },
  1290. componentWillReceiveProps(nextProps) {
  1291. if (nextProps.mark) {
  1292. this.setState({
  1293. buttonStatus: true
  1294. });
  1295. } else {
  1296. this.setState({
  1297. buttonStatus: false
  1298. });
  1299. }
  1300. if (nextProps.activeKey === "4") {
  1301. this.loaduser(this.props.data);
  1302. this.loaduserss(this.props.data);
  1303. this.loadData(this.props.data);
  1304. }
  1305. },
  1306. render() {
  1307. const FormItem = Form.Item;
  1308. const formItemLayout = {
  1309. labelCol: { span: 8 },
  1310. wrapperCol: { span: 14 }
  1311. };
  1312. const formItemList = [
  1313. {
  1314. label: "企业联系人",
  1315. content: <span>{this.state.contacts}</span>
  1316. },
  1317. {
  1318. label: "联系人电话",
  1319. content: <span>{this.state.contactMobile}</span>
  1320. },
  1321. {
  1322. label: "企业法人",
  1323. content: <span>{this.state.legalPerson}</span>
  1324. },
  1325. {
  1326. label: "法人电话",
  1327. content: <span>{this.state.legalPersonTel}</span>
  1328. },
  1329. {
  1330. label: "签单金额(万元)",
  1331. content: <span>{this.state.totalAmount}</span>
  1332. },
  1333. {
  1334. label: "首付金额(万元)",
  1335. content: <span>{this.state.firstAmount}</span>
  1336. },
  1337. {
  1338. label: "特批立项",
  1339. content: <span>{getApprovedState(this.state.approval)}</span>
  1340. },
  1341. {
  1342. label: "合同签订时间",
  1343. content: <span>{this.state.signDate}</span>
  1344. },
  1345. {
  1346. label: "订单部门",
  1347. content: <span>{this.state.depName}</span>
  1348. }
  1349. ];
  1350. const dataSources = this.state.customerArr || [];
  1351. let departmentArr = this.state.departmentArr || [];
  1352. const options = this.state.states
  1353. ? dataSources.map(group => (
  1354. <Select.Option key={group.id} value={group.name}>
  1355. {group.name}
  1356. </Select.Option>
  1357. ))
  1358. : dataSources.map((group, index) => (
  1359. <Select.Option key={index} value={group.bname}>
  1360. {group.bname}
  1361. </Select.Option>
  1362. ));
  1363. return (
  1364. <div>
  1365. <Spin spinning={this.state.loading}>
  1366. <div className="clearfix">
  1367. <FormItem
  1368. className="half-item"
  1369. {...formItemLayout}
  1370. label="合同编号"
  1371. >
  1372. {<span>{this.state.contractNo}</span>}
  1373. </FormItem>
  1374. <FormItem
  1375. className="half-item"
  1376. {...formItemLayout}
  1377. label="订单编号"
  1378. >
  1379. <span>{this.state.orderNo}</span>
  1380. </FormItem>
  1381. <FormItem
  1382. className="half-item"
  1383. {...formItemLayout}
  1384. label="流程状态"
  1385. >
  1386. <span>{getProcessStatus(this.state.processStatus)}</span>
  1387. </FormItem>
  1388. <FormItem
  1389. className="half-item"
  1390. {...formItemLayout}
  1391. label="结算状态"
  1392. >
  1393. <span>
  1394. {getLiquidationStatus(this.state.liquidationStatus)}
  1395. </span>
  1396. </FormItem>
  1397. {this.props.deleteSign === 3 ||
  1398. this.state.processStatus === 0 ? (
  1399. <div className="clearfix">
  1400. <FormItem
  1401. className="half-item"
  1402. {...formItemLayout}
  1403. label="特批立项"
  1404. >
  1405. <Select
  1406. placeholder="请选择客户所属类型"
  1407. style={{ width: "240px" }}
  1408. value={this.state.approval}
  1409. onChange={e => {
  1410. this.setState({ approval: e });
  1411. }}
  1412. >
  1413. {tepi.map(function(item) {
  1414. return (
  1415. <Select.Option key={item.value}>
  1416. {item.key}
  1417. </Select.Option>
  1418. );
  1419. })}
  1420. </Select>
  1421. </FormItem>
  1422. <FormItem
  1423. className="half-item"
  1424. {...formItemLayout}
  1425. label="合同签订时间"
  1426. >
  1427. <DatePicker
  1428. style={{
  1429. marginTop: "2px",
  1430. width: "240px",
  1431. height: "32px"
  1432. }}
  1433. showTime
  1434. format="YYYY-MM-DD"
  1435. onOk={() => {}}
  1436. value={
  1437. this.state.signDate
  1438. ? moment(this.state.signDate)
  1439. : null
  1440. }
  1441. onChange={(_data, dataString) => {
  1442. this.setState({ signDate: dataString });
  1443. }}
  1444. />
  1445. <span className="mandatory">*</span>
  1446. </FormItem>
  1447. <FormItem
  1448. className="half-item"
  1449. {...formItemLayout}
  1450. label="订单部门"
  1451. >
  1452. <Select
  1453. placeholder="请输入订单部门"
  1454. style={{ width: 240 }}
  1455. value={this.state.organizationSearch}
  1456. onChange={e => {
  1457. this.setState({ organizationSearch: e });
  1458. }}
  1459. >
  1460. {departmentArr.map(function(item) {
  1461. return (
  1462. <Select.Option key={item.id}>
  1463. {item.name}
  1464. </Select.Option>
  1465. );
  1466. })}
  1467. </Select>
  1468. </FormItem>
  1469. </div>
  1470. ) : (
  1471. <div className="clearfix">
  1472. <FormItem
  1473. className="half-item"
  1474. {...formItemLayout}
  1475. label="特批立项"
  1476. >
  1477. <span>{getApprovedState(this.state.approval)}</span>
  1478. </FormItem>
  1479. <FormItem
  1480. className="half-item"
  1481. {...formItemLayout}
  1482. label="合同签订时间"
  1483. >
  1484. <span>{this.state.signDate}</span>
  1485. </FormItem>
  1486. <FormItem
  1487. className="half-item"
  1488. {...formItemLayout}
  1489. label="订单部门"
  1490. >
  1491. <span>{this.state.depName}</span>
  1492. </FormItem>
  1493. </div>
  1494. )}
  1495. </div>
  1496. <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}>
  1497. 收款项目
  1498. </h3>
  1499. {this.props.deleteSign === 3 || this.state.processStatus === 0 ? (
  1500. <div className="clearfix">
  1501. <FormItem
  1502. className="half-item"
  1503. {...formItemLayout}
  1504. label="签单金额(万元)"
  1505. >
  1506. <Input
  1507. placeholder="签单金额"
  1508. ref="signTotalAmount"
  1509. value={this.state.totalAmount}
  1510. onChange={e => {
  1511. this.setState({ totalAmount: e.target.value });
  1512. }}
  1513. style={{ width: "240px" }}
  1514. />
  1515. <span className="mandatory">*</span>
  1516. </FormItem>
  1517. <FormItem
  1518. className="half-item"
  1519. {...formItemLayout}
  1520. label="首付金额(万元)"
  1521. >
  1522. <Input
  1523. placeholder="请输入实签首款金额"
  1524. ref="signFirstPayment"
  1525. value={this.state.firstAmount}
  1526. onChange={e => {
  1527. this.setState({ firstAmount: e.target.value });
  1528. }}
  1529. style={{ width: "240px" }}
  1530. />
  1531. <span className="mandatory">*</span>
  1532. </FormItem>
  1533. <FormItem
  1534. className="half-item"
  1535. {...formItemLayout}
  1536. label="已收款项"
  1537. >
  1538. <span>{this.state.settlementAmount + "万元"}</span>
  1539. {/* {this.state.settlementAmount ? (
  1540. <Button
  1541. type="primary"
  1542. onClick={this.tuikuan}
  1543. style={{
  1544. float: "right",
  1545. marginRight: "50px",
  1546. marginBottom: "15px"
  1547. }}
  1548. >
  1549. 退单
  1550. </Button>
  1551. ) : (
  1552. ""
  1553. )} */}
  1554. </FormItem>
  1555. </div>
  1556. ) : (
  1557. <div className="clearfix">
  1558. <FormItem
  1559. className="half-item"
  1560. {...formItemLayout}
  1561. label="签单金额(万元)"
  1562. >
  1563. <span>{this.state.totalAmount}</span>
  1564. </FormItem>
  1565. <FormItem
  1566. className="half-item"
  1567. {...formItemLayout}
  1568. label="首付金额(万元)"
  1569. >
  1570. <span>{this.state.firstAmount}</span>
  1571. </FormItem>
  1572. <FormItem
  1573. className="half-item"
  1574. {...formItemLayout}
  1575. label="已收款项"
  1576. >
  1577. <span>{this.state.settlementAmount + "万元"}</span>
  1578. {/* {this.state.settlementAmount ? (
  1579. <Button
  1580. type="primary"
  1581. onClick={this.tuikuan}
  1582. style={{
  1583. float: "right",
  1584. marginRight: "50px",
  1585. marginBottom: "15px"
  1586. }}
  1587. >
  1588. 退单
  1589. </Button>
  1590. ) : (
  1591. ""
  1592. )} */}
  1593. </FormItem>
  1594. </div>
  1595. )}
  1596. <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}>
  1597. 联系信息
  1598. </h3>
  1599. {this.props.deleteSign === 3 || this.state.processStatus == 0 ? (
  1600. <div className="clearfix">
  1601. <div className="clearfix">
  1602. <FormItem
  1603. className="half-item"
  1604. {...formItemLayout}
  1605. label="客户名称"
  1606. >
  1607. <span>{this.state.userName}</span>
  1608. </FormItem>
  1609. </div>
  1610. <FormItem
  1611. className="half-item"
  1612. {...formItemLayout}
  1613. label="企业联系人"
  1614. >
  1615. <Input
  1616. placeholder="请输入联系人"
  1617. ref="signTotalAmount"
  1618. value={this.state.contacts}
  1619. onChange={e => {
  1620. this.setState({ contacts: e.target.value });
  1621. }}
  1622. style={{ width: "240px" }}
  1623. />
  1624. </FormItem>
  1625. <FormItem
  1626. className="half-item"
  1627. {...formItemLayout}
  1628. label="联系人电话"
  1629. >
  1630. <Input
  1631. placeholder="请输入联系人电话"
  1632. ref="signTotalAmount"
  1633. value={this.state.contactMobile}
  1634. onChange={e => {
  1635. this.setState({ contactMobile: e.target.value });
  1636. }}
  1637. style={{ width: "240px" }}
  1638. />
  1639. </FormItem>
  1640. <FormItem
  1641. className="half-item"
  1642. {...formItemLayout}
  1643. label="企业法人"
  1644. >
  1645. <Input
  1646. placeholder="请输入法人"
  1647. ref="signTotalAmount"
  1648. value={this.state.legalPerson}
  1649. onChange={e => {
  1650. this.setState({ legalPerson: e.target.value });
  1651. }}
  1652. style={{ width: "240px" }}
  1653. />
  1654. </FormItem>
  1655. <FormItem
  1656. className="half-item"
  1657. {...formItemLayout}
  1658. label="法人电话"
  1659. >
  1660. <Input
  1661. placeholder="请输入法人电话"
  1662. ref="signTotalAmount"
  1663. value={this.state.legalPersonTel}
  1664. onChange={e => {
  1665. this.setState({ legalPersonTel: e.target.value });
  1666. }}
  1667. style={{ width: "240px" }}
  1668. />
  1669. </FormItem>
  1670. </div>
  1671. ) : (
  1672. <div className="clearfix">
  1673. {formItemList.map((data, index) => {
  1674. return (
  1675. <FormItem
  1676. className="half-item"
  1677. {...formItemLayout}
  1678. key={index}
  1679. label={data.label}
  1680. >
  1681. {data.content}
  1682. </FormItem>
  1683. );
  1684. })}
  1685. </div>
  1686. )}
  1687. <div className="clearfix">
  1688. {this.props.deleteSign === 3 ||
  1689. this.state.processStatus == 0 ? (
  1690. <FormItem
  1691. labelCol={{ span: 4 }}
  1692. wrapperCol={{ span: 18 }}
  1693. label={
  1694. <span>
  1695. <strong style={{ color: "#f00" }}>*</strong>合同扫描件
  1696. </span>
  1697. }
  1698. >
  1699. <PicturesWall
  1700. fileList={this.getOrgCodeUrl}
  1701. pictureUrl={this.state.orgCodeUrl}
  1702. url="/api/admin/order/uploadOrderImg"
  1703. sign=""
  1704. />
  1705. <p>图片建议:要清晰。</p>
  1706. <Button
  1707. style={{
  1708. float: "right",
  1709. marginRight: "140px",
  1710. marginTop: "20px"
  1711. }}
  1712. onClick={this.getOrderLog}
  1713. >
  1714. 查看订单日志
  1715. </Button>
  1716. </FormItem>
  1717. ) : (
  1718. <FormItem
  1719. labelCol={{ span: 4 }}
  1720. wrapperCol={{ span: 18 }}
  1721. label="合同扫描件"
  1722. >
  1723. <Upload
  1724. className="demandDetailShow-upload"
  1725. listType="picture-card"
  1726. fileList={this.state.orgCodeUrl}
  1727. onPreview={file => {
  1728. this.setState({
  1729. previewImage: file.url || file.thumbUrl,
  1730. previewVisible: true
  1731. });
  1732. }}
  1733. ></Upload>
  1734. <Modal
  1735. maskClosable={false}
  1736. footer={null}
  1737. visible={this.state.previewVisible}
  1738. onCancel={() => {
  1739. this.setState({ previewVisible: false });
  1740. }}
  1741. >
  1742. <img
  1743. alt=""
  1744. style={{ width: "100%" }}
  1745. src={this.state.previewImage || ""}
  1746. />
  1747. </Modal>
  1748. <Button
  1749. style={{
  1750. float: "right",
  1751. marginRight: "140px",
  1752. marginTop: "20px"
  1753. }}
  1754. onClick={this.getOrderLog}
  1755. >
  1756. 查看订单日志
  1757. </Button>
  1758. </FormItem>
  1759. )}
  1760. </div>
  1761. <div className="clearfix">
  1762. {this.props.deleteSign === 3 ||
  1763. this.state.processStatus == 0 ? (
  1764. <div className="clearfix">
  1765. <FormItem
  1766. labelCol={{ span: 4 }}
  1767. wrapperCol={{ span: 16 }}
  1768. label="订单留言"
  1769. >
  1770. <Input
  1771. type="textarea"
  1772. placeholder="请输入订单留言"
  1773. rows={4}
  1774. value={this.state.orderRemarks}
  1775. onChange={e => {
  1776. this.setState({ orderRemarks: e.target.value });
  1777. }}
  1778. style={{ width: "95%" }}
  1779. />
  1780. <span className="mandatory">*</span>
  1781. </FormItem>
  1782. </div>
  1783. ) : (
  1784. <FormItem
  1785. labelCol={{ span: 4 }}
  1786. wrapperCol={{ span: 16 }}
  1787. label="订单留言"
  1788. >
  1789. <p style={{ width: 500, wordWrap: "break-word" }}>
  1790. {this.state.orderRemarks}
  1791. </p>
  1792. </FormItem>
  1793. )}
  1794. </div>
  1795. <div className="clearfix">
  1796. <FormItem
  1797. className="half-item"
  1798. {...formItemLayout}
  1799. label="订单负责人"
  1800. >
  1801. <span>{this.state.salesmanName}</span>
  1802. </FormItem>
  1803. <FormItem
  1804. className="half-item"
  1805. {...formItemLayout}
  1806. label="订单负责人电话"
  1807. >
  1808. <span>{this.state.salesmanMobile}</span>
  1809. </FormItem>
  1810. </div>
  1811. <div className="clearfix">
  1812. <FormItem
  1813. className="half-item"
  1814. {...formItemLayout}
  1815. label="财务负责人"
  1816. >
  1817. <span>{this.state.financeName}</span>
  1818. </FormItem>
  1819. <FormItem
  1820. className="half-item"
  1821. {...formItemLayout}
  1822. label="财务负责人电话"
  1823. >
  1824. <span>{this.state.financeMobile}</span>
  1825. </FormItem>
  1826. </div>
  1827. <div>
  1828. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  1829. 催款节点
  1830. </span>
  1831. {this.props.deleteSign === 3 ||
  1832. this.state.processStatus == 0 ? (
  1833. <Button
  1834. type="primary"
  1835. onClick={this.addcontact}
  1836. style={{
  1837. float: "right",
  1838. marginRight: "50px",
  1839. marginBottom: "15px"
  1840. }}
  1841. >
  1842. 添加催款节点
  1843. </Button>
  1844. ) : (
  1845. ""
  1846. )}
  1847. </div>
  1848. <div className="clearfix">
  1849. <Spin spinning={this.state.loading}>
  1850. <Form layout="horizontal" id="demand-form">
  1851. <Table
  1852. pagination={false}
  1853. columns={this.state.ContactsLists}
  1854. dataSource={this.state.contactList}
  1855. />
  1856. <Col
  1857. span={24}
  1858. offset={9}
  1859. style={{ marginTop: "15px" }}
  1860. ></Col>
  1861. </Form>
  1862. </Spin>
  1863. </div>{" "}
  1864. <div>
  1865. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  1866. 项目业务
  1867. </span>
  1868. {this.props.deleteSign === 3 ||
  1869. this.state.processStatus == 0 ? (
  1870. <Button
  1871. type="primary"
  1872. onClick={this.addDetailed}
  1873. style={{
  1874. float: "right",
  1875. marginRight: "50px",
  1876. marginBottom: "15px"
  1877. }}
  1878. >
  1879. 添加项目明细
  1880. </Button>
  1881. ) : (
  1882. ""
  1883. )}
  1884. </div>
  1885. <div className="patent-table">
  1886. <Spin spinning={this.state.loading}>
  1887. <Table
  1888. columns={this.state.columns}
  1889. dataSource={this.state.dataSource}
  1890. pagination={this.state.pagination}
  1891. onRowClick={this.tableRowClick}
  1892. />
  1893. </Spin>
  1894. </div>{" "}
  1895. {this.props.deleteSign === 3 || this.state.processStatus == 0 ? (
  1896. <div
  1897. className="addSave"
  1898. style={{
  1899. marginTop: "15px",
  1900. display: "flex",
  1901. justifyContent: "flex-end"
  1902. }}
  1903. >
  1904. {!this.state.buttonStatus ? (
  1905. <Button
  1906. className="cancel"
  1907. type="primary"
  1908. onClick={this.handleCancels}
  1909. style={{ marginRight: 20 }}
  1910. htmlType="submit"
  1911. >
  1912. 签单
  1913. </Button>
  1914. ) : (
  1915. ""
  1916. )}
  1917. <Button
  1918. className="cancel"
  1919. type="primary"
  1920. onClick={this.handleCancelq}
  1921. style={{ marginRight: 40 }}
  1922. htmlType="submit"
  1923. >
  1924. 保存
  1925. </Button>
  1926. </div>
  1927. ) : (
  1928. ""
  1929. )}
  1930. </Spin>
  1931. <Modal
  1932. maskClosable={false}
  1933. visible={this.state.addnextVisible}
  1934. onOk={this.nextCancel}
  1935. onCancel={this.nextCancel}
  1936. width="800px"
  1937. title={this.state.addState ? "添加项目任务" : "项目任务详情"}
  1938. footer=""
  1939. className="admin-desc-content"
  1940. >
  1941. <Form
  1942. layout="horizontal"
  1943. onSubmit={this.nextSubmit}
  1944. id="demand-form"
  1945. >
  1946. <Spin spinning={this.state.loading}>
  1947. {this.state.addState ? (
  1948. <div className="clearfix">
  1949. <FormItem
  1950. className="half-item"
  1951. {...formItemLayout}
  1952. label="服务名称"
  1953. >
  1954. <AutoComplete
  1955. className="certain-category-search"
  1956. dropdownClassName="certain-category-search-dropdown"
  1957. dropdownMatchSelectWidth={false}
  1958. dropdownStyle={{ width: 200 }}
  1959. style={{ width: "200px" }}
  1960. dataSource={options}
  1961. placeholder="输入服务名称"
  1962. value={this.state.commodityName}
  1963. onChange={this.httpChange}
  1964. filterOption={true}
  1965. onSelect={this.selectAuto}
  1966. >
  1967. <Input />
  1968. </AutoComplete>
  1969. <span className="mandatory">*</span>
  1970. </FormItem>
  1971. <FormItem
  1972. className="half-item"
  1973. {...formItemLayout}
  1974. label="服务数量"
  1975. >
  1976. <Input
  1977. placeholder="请输入服务数量"
  1978. value={this.state.commodityQuantity}
  1979. style={{ width: "200px" }}
  1980. onChange={e => {
  1981. this.setState({ commodityQuantity: e.target.value });
  1982. }}
  1983. ref="commodityQuantity"
  1984. />
  1985. <span className="mandatory">*</span>
  1986. </FormItem>
  1987. <FormItem
  1988. className="half-item"
  1989. {...formItemLayout}
  1990. label="实签价格(万元)"
  1991. >
  1992. <Input
  1993. placeholder="请输入实签价格"
  1994. value={this.state.commodityPrice}
  1995. style={{ width: "200px" }}
  1996. onChange={e => {
  1997. this.setState({ commodityPrice: e.target.value });
  1998. }}
  1999. ref="commodityPrice"
  2000. />
  2001. <span className="mandatory">*</span>
  2002. </FormItem>
  2003. <FormItem
  2004. className="half-item"
  2005. {...formItemLayout}
  2006. label="主要业务"
  2007. >
  2008. <Select
  2009. placeholder="选择是否为主要业务"
  2010. style={{ width: "200px" }}
  2011. value={this.state.main}
  2012. onChange={e => {
  2013. this.setState({ main: e });
  2014. }}
  2015. >
  2016. {boutique.map(function(item) {
  2017. return (
  2018. <Select.Option key={item.value}>
  2019. {item.key}
  2020. </Select.Option>
  2021. );
  2022. })}
  2023. </Select>
  2024. <span className="mandatory">*</span>
  2025. </FormItem>
  2026. <div className="clearfix">
  2027. <FormItem
  2028. labelCol={{ span: 4 }}
  2029. wrapperCol={{ span: 16 }}
  2030. label="服务说明"
  2031. >
  2032. <Input
  2033. type="textarea"
  2034. placeholder="请输入服务说明"
  2035. value={this.state.taskComment}
  2036. onChange={e => {
  2037. this.setState({ taskComment: e.target.value });
  2038. }}
  2039. />
  2040. </FormItem>
  2041. </div>
  2042. <FormItem
  2043. wrapperCol={{ span: 12, offset: 4 }}
  2044. className="half-middle"
  2045. >
  2046. <Button
  2047. className="submitSave"
  2048. type="primary"
  2049. htmlType="submit"
  2050. >
  2051. 保存
  2052. </Button>
  2053. <Button
  2054. className="submitSave"
  2055. type="ghost"
  2056. onClick={this.nextCancel}
  2057. >
  2058. 取消
  2059. </Button>
  2060. </FormItem>
  2061. </div>
  2062. ) : (
  2063. <div className="clearfix">
  2064. {this.props.deleteSign === 3 ||
  2065. this.state.processStatus == 0 ? (
  2066. <div className="clearfix">
  2067. <FormItem
  2068. className="half-item"
  2069. {...formItemLayout}
  2070. label="项目名称"
  2071. >
  2072. <span>{this.state.commodityName}</span>
  2073. </FormItem>
  2074. <FormItem
  2075. className="half-item"
  2076. {...formItemLayout}
  2077. label="项目数量"
  2078. >
  2079. <Input
  2080. placeholder="请输入数量"
  2081. value={this.state.commodityQuantity}
  2082. style={{ width: "200px" }}
  2083. onChange={e => {
  2084. this.setState({
  2085. commodityQuantity: e.target.value
  2086. });
  2087. }}
  2088. />
  2089. <span className="mandatory">*</span>
  2090. </FormItem>
  2091. <FormItem
  2092. className="half-item"
  2093. {...formItemLayout}
  2094. label="金额(万元)"
  2095. >
  2096. <Input
  2097. placeholder="请输入签单金额"
  2098. value={this.state.commodityPrice}
  2099. style={{ width: "200px" }}
  2100. onChange={e => {
  2101. this.setState({ commodityPrice: e.target.value });
  2102. }}
  2103. />
  2104. <span className="mandatory">*</span>
  2105. </FormItem>
  2106. <FormItem
  2107. className="half-item"
  2108. {...formItemLayout}
  2109. label="主要项目"
  2110. >
  2111. <Select
  2112. placeholder="选择是否为主要业务"
  2113. style={{ width: "200px" }}
  2114. value={this.state.main}
  2115. onChange={e => {
  2116. this.setState({ main: e });
  2117. }}
  2118. >
  2119. {boutique.map(function(item) {
  2120. return (
  2121. <Select.Option key={item.value}>
  2122. {item.key}
  2123. </Select.Option>
  2124. );
  2125. })}
  2126. </Select>
  2127. <span className="mandatory">*</span>
  2128. </FormItem>
  2129. <div className="clearfix">
  2130. <FormItem
  2131. labelCol={{ span: 4 }}
  2132. wrapperCol={{ span: 16 }}
  2133. label="服务说明"
  2134. >
  2135. <Input
  2136. type="textarea"
  2137. placeholder="请输入服务说明"
  2138. value={this.state.taskComment}
  2139. onChange={e => {
  2140. this.setState({ taskComment: e.target.value });
  2141. }}
  2142. />
  2143. </FormItem>
  2144. </div>
  2145. <FormItem
  2146. wrapperCol={{ span: 12, offset: 4 }}
  2147. className="half-middle"
  2148. >
  2149. <Button
  2150. className="submitSave"
  2151. type="primary"
  2152. onClick={this.tabRowSave}
  2153. >
  2154. 保存
  2155. </Button>
  2156. <Button
  2157. className="submitSave"
  2158. type="ghost"
  2159. onClick={this.nextCancel}
  2160. >
  2161. 取消
  2162. </Button>
  2163. </FormItem>
  2164. </div>
  2165. ) : (
  2166. <div className="clearfix">
  2167. <FormItem
  2168. className="half-item"
  2169. {...formItemLayout}
  2170. label="项目名称"
  2171. >
  2172. <span>{this.state.commodityName}</span>
  2173. </FormItem>
  2174. <FormItem
  2175. className="half-item"
  2176. {...formItemLayout}
  2177. label="项目数量"
  2178. >
  2179. <span>{this.state.commodityQuantity}</span>
  2180. </FormItem>
  2181. <FormItem
  2182. className="half-item"
  2183. {...formItemLayout}
  2184. label="金额(万元)"
  2185. >
  2186. <span>{this.state.commodityPrice}</span>
  2187. </FormItem>
  2188. <FormItem
  2189. className="half-item"
  2190. {...formItemLayout}
  2191. label="主要项目"
  2192. >
  2193. <span>{getboutique(this.state.main)}</span>
  2194. </FormItem>
  2195. <div className="clearfix">
  2196. <FormItem
  2197. labelCol={{ span: 4 }}
  2198. wrapperCol={{ span: 16 }}
  2199. label="服务说明"
  2200. >
  2201. <span>{this.state.taskComment}</span>
  2202. </FormItem>
  2203. </div>
  2204. </div>
  2205. )}
  2206. </div>
  2207. )}
  2208. </Spin>
  2209. </Form>
  2210. </Modal>
  2211. <Modal
  2212. maskClosable={false}
  2213. visible={this.state.lookVisible}
  2214. onOk={this.noCancel}
  2215. onCancel={this.noCancel}
  2216. width="800px"
  2217. title={"退单申请"}
  2218. footer=""
  2219. className="admin-desc-content"
  2220. >
  2221. <Form layout="horizontal" id="demand-form">
  2222. <Spin spinning={this.state.loading}>
  2223. <div className="clearfix">
  2224. <FormItem
  2225. labelCol={{ span: 4 }}
  2226. wrapperCol={{ span: 16 }}
  2227. label="终止合同"
  2228. >
  2229. <Picture
  2230. fileList={e => {
  2231. this.setState({ contractUrl: e });
  2232. }}
  2233. pictureUrl={this.state.contractUrl}
  2234. visible={this.props.visible}
  2235. data={{
  2236. sign: "order_refund_file",
  2237. url: "/api/admin/newOrder/uploadRefundOrderFile",
  2238. number: 8
  2239. }}
  2240. />
  2241. </FormItem>
  2242. </div>
  2243. <div className="clearfix">
  2244. <FormItem
  2245. labelCol={{ span: 4 }}
  2246. wrapperCol={{ span: 16 }}
  2247. label="退单申请表"
  2248. >
  2249. <Picture
  2250. fileList={e => {
  2251. this.setState({ applicationUrl: e });
  2252. }}
  2253. pictureUrl={this.state.applicationUrl}
  2254. visible={this.props.visible}
  2255. data={{
  2256. sign: "order_refund_file",
  2257. url: "/api/admin/newOrder/uploadRefundOrderFile",
  2258. number: 8
  2259. }}
  2260. />
  2261. </FormItem>
  2262. </div>
  2263. <div className="clearfix">
  2264. <FormItem
  2265. labelCol={{ span: 4 }}
  2266. wrapperCol={{ span: 16 }}
  2267. label="退单理由"
  2268. >
  2269. <Input
  2270. type="textarea"
  2271. placeholder="请输入退单理由"
  2272. rows={4}
  2273. value={this.state.reason}
  2274. onChange={e => {
  2275. this.setState({ reason: e.target.value });
  2276. }}
  2277. />
  2278. </FormItem>
  2279. </div>
  2280. <div className="clearfix">
  2281. <Button
  2282. className="cancel"
  2283. type="primary"
  2284. onClick={this.tuidanOk}
  2285. style={{ marginLeft: "50px" }}
  2286. htmlType="submit"
  2287. >
  2288. 确定退单
  2289. </Button>
  2290. <Button
  2291. className="cancel"
  2292. type="ghost"
  2293. onClick={this.noCancel}
  2294. style={{ marginLeft: "50px" }}
  2295. >
  2296. 取消
  2297. </Button>
  2298. </div>
  2299. </Spin>
  2300. </Form>
  2301. </Modal>
  2302. <Modal
  2303. visible={this.state.rizhivisible}
  2304. className="admin-desc-content"
  2305. width="800px"
  2306. maskClosable={false}
  2307. title="订单日志"
  2308. footer={null}
  2309. onCancel={this.closeOrderLog}
  2310. >
  2311. <div className="patent-table">
  2312. <Spin spinning={this.state.loading}>
  2313. <Table
  2314. columns={this.state.columnsrizhi}
  2315. dataSource={this.state.dataSourcerizhi}
  2316. pagination={false}
  2317. />
  2318. </Spin>
  2319. </div>
  2320. </Modal>
  2321. </div>
  2322. );
  2323. }
  2324. })
  2325. );
  2326. export default Addorders;