invoiceApplyListWai.jsx 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. import React from "react";
  2. import $ from "jquery/src/ajax";
  3. import "./public.less";
  4. import {
  5. Form,
  6. Button,
  7. Input,
  8. Select,
  9. Spin,
  10. Table,
  11. message,
  12. Modal,
  13. Upload,
  14. Tabs,
  15. Popconfirm,
  16. Tooltip,
  17. } from "antd";
  18. import {
  19. getProvinceA,
  20. getInvoiceStatus,
  21. getProcessStatus,
  22. getprovince,
  23. getStatus,
  24. getPeople,
  25. splitUrl,
  26. } from "@/tools";
  27. const FormItem = Form.Item;
  28. const { TabPane } = Tabs;
  29. import OrderDesc from "../orderDetail/orderDesc";
  30. import { ChooseList } from "../../order/orderNew/chooseList";
  31. import { getProjectName } from "../../../tools";
  32. import DepartmentList from "../../../common/departmentList";
  33. import LogPopup from "../../../common/logPopup";
  34. const invoiceApplyListWai = React.createClass({
  35. loadData(pageNo) {
  36. this.state.data = [];
  37. this.setState({
  38. loading: true,
  39. });
  40. $.ajax({
  41. method: "get",
  42. dataType: "json",
  43. crossDomain: false,
  44. url:
  45. globalConfig.context +
  46. "/api/admin/orderInvoice/financeOrderInvoiceList",
  47. data: {
  48. pageNo: pageNo || 1,
  49. pageSize: this.state.pagination.pageSize,
  50. name: this.state.nameSearch, //客户名称
  51. orderNo: this.state.orderNoSearch,
  52. orderDep: this.state.departmenttList,
  53. type: 1,
  54. },
  55. success: function (data) {
  56. let theArr = [];
  57. if (!data.data || !data.data.list) {
  58. if (data.error && data.error.length) {
  59. message.warning(data.error[0].message);
  60. }
  61. } else {
  62. for (let i = 0; i < data.data.list.length; i++) {
  63. let thisdata = data.data.list[i];
  64. theArr.push({
  65. key: i,
  66. id: thisdata.id,
  67. status: thisdata.status,
  68. unitName: thisdata.unitName,
  69. orderNo: thisdata.orderno,
  70. name: thisdata.name,
  71. projectStatus: thisdata.projectStatus,
  72. processStatus: thisdata.processStatus,
  73. amount: thisdata.amount,
  74. sumAmount: thisdata.sumAmount,
  75. createTime: thisdata.createTime
  76. ? new Date(thisdata.createTime).toLocaleString()
  77. : "",
  78. settlementAmount: thisdata.settlementAmount,
  79. notAmount: thisdata.notAmount,
  80. });
  81. }
  82. }
  83. this.state.pagination.current = data.data.pageNo;
  84. this.state.pagination.total = data.data.totalCount;
  85. if (data.data && data.data.list && !data.data.list.length) {
  86. this.state.pagination.current = 0;
  87. this.state.pagination.total = 0;
  88. }
  89. this.setState({
  90. totalPage: data.data.totalPage,
  91. dataSource: theArr,
  92. pagination: this.state.pagination,
  93. });
  94. }.bind(this),
  95. }).always(
  96. function () {
  97. this.setState({
  98. loading: false,
  99. });
  100. }.bind(this)
  101. );
  102. },
  103. tableRowClick(record) {
  104. this.state.RowData = record;
  105. this.setState({
  106. showDesc: true,
  107. });
  108. },
  109. closeDesc(e, s) {
  110. this.state.showDesc = e;
  111. if (s) {
  112. this.loadData(this.state.page);
  113. }
  114. },
  115. invoiceData() {
  116. this.setState({
  117. loading: true,
  118. });
  119. $.ajax({
  120. method: "get",
  121. dataType: "json",
  122. crossDomain: false,
  123. url:
  124. globalConfig.context + "/api/admin/orderInvoice/selectByIdOrderInvoice",
  125. data: {
  126. id: this.state.id,
  127. },
  128. success: function (data) {
  129. let thisdata = data.data;
  130. this.setState({
  131. contractNo: thisdata.contractNo,
  132. orderNo: thisdata.orderNo,
  133. approval: thisdata.approval,
  134. type: thisdata.type,
  135. status: thisdata.status,
  136. remarks: thisdata.remarks,
  137. invoiceType: thisdata.invoiceType,
  138. unitName: thisdata.unitName,
  139. taxNumber: thisdata.taxNumber,
  140. amount: thisdata.amount,
  141. banks: thisdata.banks,
  142. content: thisdata.content,
  143. unitAddress: thisdata.unitAddress,
  144. invoiceRemarks: thisdata.invoiceRemarks,
  145. unitMobile: thisdata.unitMobile,
  146. post: thisdata.post,
  147. addressee: thisdata.addressee,
  148. addresseeMobile: thisdata.addresseeMobile,
  149. addresseeProvince: thisdata.addresseeProvince,
  150. addresseeCity: thisdata.addresseeCity,
  151. addresseeArea: thisdata.addresseeArea,
  152. alreadyAmount: thisdata.alreadyAmount,
  153. recipientAddress: thisdata.recipientAddress,
  154. orgCodeUrl: thisdata.voucherUrl
  155. ? splitUrl(
  156. thisdata.voucherUrl,
  157. ",",
  158. globalConfig.avatarHost + "/upload"
  159. )
  160. : [],
  161. });
  162. }.bind(this),
  163. }).done(
  164. function () {
  165. this.setState({
  166. loading: false,
  167. });
  168. }.bind(this)
  169. );
  170. },
  171. getInitialState() {
  172. return {
  173. searchMore: true,
  174. assignVisible: false,
  175. releaseDate: [],
  176. totalPage: 0,
  177. boHuivisible: false,
  178. selectedRowKeys: [],
  179. selectedRows: [],
  180. loading: false,
  181. contractNo: "",
  182. reason: "",
  183. foo: 0,
  184. pagination: {
  185. defaultCurrent: 1,
  186. defaultPageSize: 10,
  187. showQuickJumper: true,
  188. pageSize: 10,
  189. onChange: function (page) {
  190. this.loadData(page);
  191. }.bind(this),
  192. showTotal: function (total) {
  193. return "共" + total + "条数据";
  194. },
  195. },
  196. columns: [
  197. {
  198. title: "编号",
  199. dataIndex: "id",
  200. key: "id",
  201. },
  202. {
  203. title: "客户",
  204. dataIndex: "unitName",
  205. key: "unitName",
  206. width: 100,
  207. render: (text) => {
  208. return (
  209. <Tooltip title={text}>
  210. <div
  211. style={{
  212. maxWidth: "100px",
  213. overflow: "hidden",
  214. textOverflow: "ellipsis",
  215. whiteSpace: "nowrap",
  216. }}
  217. >
  218. {text}
  219. </div>
  220. </Tooltip>
  221. );
  222. },
  223. },
  224. {
  225. title: "跟单人/签单人",
  226. dataIndex: "name",
  227. key: "name",
  228. },
  229. {
  230. title: "开票状态",
  231. dataIndex: "status",
  232. key: "status",
  233. render: (text, record) => {
  234. // return getStatus(text);
  235. return getInvoiceStatus(text, record);
  236. },
  237. },
  238. {
  239. title: "流程状态",
  240. dataIndex: "processStatus",
  241. key: "processStatus",
  242. render: (text) => {
  243. return getProcessStatus(text);
  244. },
  245. },
  246. {
  247. title: "项目状态",
  248. dataIndex: "projectStatus",
  249. key: "projectStatus",
  250. render: (text) => {
  251. return getProjectName(text);
  252. },
  253. },
  254. {
  255. title: "申请开票(万)",
  256. dataIndex: "amount",
  257. key: "amount",
  258. },
  259. {
  260. title: "已开票(万)",
  261. dataIndex: "sumAmount",
  262. key: "sumAmount",
  263. },
  264. {
  265. title: "已收款",
  266. dataIndex: "settlementAmount",
  267. key: "settlementAmount",
  268. },
  269. {
  270. title: "未收款",
  271. dataIndex: "notAmount",
  272. key: "notAmount",
  273. },
  274. {
  275. title: "申请时间",
  276. dataIndex: "createTime",
  277. key: "createTime",
  278. },
  279. {
  280. title: "操作",
  281. dataIndex: "caozuo",
  282. key: "caouzo",
  283. render: (_text, record, index) => {
  284. return (
  285. <div>
  286. {
  287. <Button
  288. type="primary"
  289. onClick={(e) => {
  290. e.stopPropagation(), this.visit(index);
  291. }}
  292. style={{ background: "deepskyblue", border: "none" }}
  293. >
  294. 申请内容
  295. </Button>
  296. }
  297. {record.status !== 2 ? (
  298. <Popconfirm
  299. placement="top"
  300. title="确定要通过吗?"
  301. onConfirm={(e) => {
  302. e.stopPropagation();
  303. this.setState({ examine: 2 }, () => {
  304. this.sende(record);
  305. });
  306. }}
  307. okText="确定"
  308. cancelText="取消"
  309. >
  310. <Button
  311. type="primary"
  312. style={{ marginLeft: "10px" }}
  313. onClick={(e) => {
  314. e.stopPropagation();
  315. }}
  316. >
  317. 通过
  318. </Button>
  319. </Popconfirm>
  320. ) : (
  321. ""
  322. )}
  323. {record.status !== 2 ? (
  324. <Popconfirm
  325. placement="top"
  326. title="确定要拒绝吗?"
  327. onConfirm={(e) => {
  328. e.stopPropagation();
  329. this.setState({ examine: 3 }, () => {
  330. this.reject(record);
  331. });
  332. }}
  333. okText="确定"
  334. cancelText="取消"
  335. >
  336. <Button
  337. type="danger"
  338. onClick={(e) => {
  339. e.stopPropagation();
  340. }}
  341. style={{ marginLeft: "10px" }}
  342. >
  343. 拒绝
  344. </Button>
  345. </Popconfirm>
  346. ) : (
  347. ""
  348. )}
  349. {record.status === 2 ? (
  350. <Button
  351. style={{ marginLeft: "10px", color: "black" }}
  352. disabled={true}
  353. >
  354. 已通过
  355. </Button>
  356. ) : (
  357. ""
  358. )}
  359. {
  360. <Button
  361. type="primary"
  362. style={{
  363. marginLeft: "10px",
  364. background: "orangered",
  365. border: "none",
  366. }}
  367. onClick={(e) => {
  368. e.stopPropagation(), this.inRecord(record, index);
  369. }}
  370. >
  371. 开票记录
  372. </Button>
  373. }
  374. </div>
  375. );
  376. },
  377. },
  378. ],
  379. columnsDate: [
  380. {
  381. title: "编号",
  382. dataIndex: "id",
  383. key: "id",
  384. },
  385. {
  386. title: "订单编号",
  387. dataIndex: "orderno",
  388. key: "orderno",
  389. },
  390. {
  391. title: "开票金额(万元)",
  392. dataIndex: "amount",
  393. key: "amount",
  394. },
  395. {
  396. title: "申请时间",
  397. dataIndex: "createTime",
  398. key: "createTime",
  399. },
  400. {
  401. title: "开票状态",
  402. dataIndex: "status",
  403. key: "status",
  404. render: (text, record) => {
  405. return (
  406. <div>
  407. {getInvoiceStatus(text, record)} <LogPopup id={record.id} />
  408. </div>
  409. );
  410. },
  411. },
  412. ],
  413. dataSource: [],
  414. searchTime: [,],
  415. };
  416. },
  417. loadSend(record) {
  418. this.setState({
  419. loading: true,
  420. });
  421. if (this.state.examine === 3 && this.state.reason === "") {
  422. message.warning("拒绝理由不能为空!");
  423. return;
  424. }
  425. $.ajax({
  426. method: "post",
  427. dataType: "json",
  428. crossDomain: false,
  429. url: globalConfig.context + "/api/admin/orderInvoice/financeExamine",
  430. data: {
  431. id: this.state.examine === 2 ? record.id : this.state.id,
  432. examine: this.state.examine,
  433. reason: this.state.reason,
  434. },
  435. success: function () {}.bind(this),
  436. }).done(
  437. function () {
  438. this.setState({
  439. loading: false,
  440. });
  441. if (this.state.examine === 2) {
  442. message.success("通过成功!");
  443. this.loadData();
  444. } else {
  445. message.success("拒绝成功!");
  446. this.resetReason();
  447. this.rejectCancels();
  448. this.loadData();
  449. }
  450. }.bind(this)
  451. );
  452. },
  453. //重置拒绝理由
  454. resetReason() {
  455. this.setState({
  456. reason: "",
  457. });
  458. },
  459. sende(record) {
  460. this.loadSend(record);
  461. },
  462. commit() {
  463. this.loadSend();
  464. this.setState({
  465. avisible: false,
  466. });
  467. },
  468. visit(index) {
  469. this.setState(
  470. {
  471. id: this.state.dataSource[index].id,
  472. avisible: true,
  473. },
  474. () => {
  475. this.invoiceData();
  476. }
  477. );
  478. },
  479. visitCancels() {
  480. this.setState({
  481. avisible: false,
  482. });
  483. },
  484. reject(record) {
  485. this.setState({
  486. visibleR: true,
  487. id: record.id,
  488. });
  489. },
  490. rejectCancels() {
  491. this.setState({
  492. visibleR: false,
  493. });
  494. },
  495. inRecordData() {
  496. this.setState({
  497. loading: true,
  498. });
  499. $.ajax({
  500. method: "get",
  501. dataType: "json",
  502. crossDomain: false,
  503. url:
  504. globalConfig.context +
  505. "/api/admin/orderInvoice/salesmanOrderInvoiceList",
  506. data: {
  507. orderNo: this.state.orderNo2,
  508. },
  509. success: function (data) {
  510. let theArr = [];
  511. let sum = 0;
  512. if (!data.data) {
  513. if (data.error && data.error.length) {
  514. message.warning(data.error[0].message);
  515. }
  516. } else {
  517. for (let i = 0; i < data.data.list.length; i++) {
  518. let thisdata = data.data.list[i];
  519. sum += parseFloat(thisdata.amount);
  520. theArr.push({
  521. id: thisdata.id,
  522. orderno: thisdata.orderno, //订单编号
  523. amount: thisdata.amount, //签单金额
  524. createTime: thisdata.createTime, //流程状态
  525. status: thisdata.status, //结算状态
  526. rejectReason: thisdata.rejectReason,
  527. approval: thisdata.approval, //0非特批 1待审核 2审核通过
  528. });
  529. }
  530. }
  531. this.setState({
  532. recordData: theArr,
  533. sum: sum.toFixed(6),
  534. });
  535. }.bind(this),
  536. }).done(
  537. function () {
  538. this.setState({
  539. loading: false,
  540. });
  541. }.bind(this)
  542. );
  543. },
  544. inRecord(record) {
  545. this.setState(
  546. {
  547. bvisible: true,
  548. orderNo2: record.orderNo,
  549. },
  550. () => {
  551. this.inRecordData();
  552. }
  553. );
  554. },
  555. inRecordCanl() {
  556. this.setState({
  557. bvisible: false,
  558. });
  559. },
  560. search() {
  561. this.loadData();
  562. },
  563. componentWillMount() {
  564. this.loadData();
  565. },
  566. reset() {
  567. this.state.nameSearch = "";
  568. this.state.releaseDate = [];
  569. this.state.orderNoSearch = "";
  570. this.state.processStatus = [];
  571. this.state.departmenttList = [];
  572. this.loadData();
  573. },
  574. changeList(arr) {
  575. const newArr = [];
  576. this.state.columns.forEach((item) => {
  577. arr.forEach((val) => {
  578. if (val === item.title) {
  579. newArr.push(item);
  580. }
  581. });
  582. });
  583. this.setState({
  584. changeList: newArr,
  585. });
  586. },
  587. render() {
  588. const formItemLayout = {
  589. labelCol: { span: 8 },
  590. wrapperCol: { span: 14 },
  591. };
  592. return (
  593. <div className="user-content">
  594. <div className="content-title">
  595. <span>省外开票审核</span>
  596. </div>
  597. <Tabs defaultActiveKey="1" onChange={this.callback} className="test">
  598. <TabPane tab="搜索" key="1">
  599. <div className="user-search">
  600. <Input
  601. placeholder="营销员名称"
  602. value={this.state.nameSearch}
  603. onChange={(e) => {
  604. this.setState({ nameSearch: e.target.value });
  605. }}
  606. />
  607. <Input
  608. placeholder="订单编号"
  609. value={this.state.orderNoSearch}
  610. onChange={(e) => {
  611. this.setState({ orderNoSearch: e.target.value });
  612. }}
  613. />
  614. <DepartmentList
  615. value={this.state.departmenttList}
  616. onChange={(e) => {
  617. this.setState({ departmenttList: e });
  618. }}
  619. />
  620. <Button
  621. type="primary"
  622. onClick={this.search}
  623. style={{ marginLeft: 10 }}
  624. >
  625. 搜索
  626. </Button>
  627. <Button onClick={this.reset}>重置</Button>
  628. </div>
  629. </TabPane>
  630. <TabPane tab="更改表格显示数据" key="2">
  631. <div style={{ marginLeft: 10 }}>
  632. <ChooseList
  633. columns={this.state.columns}
  634. changeFn={this.changeList}
  635. changeList={this.state.changeList}
  636. top={55}
  637. margin={11}
  638. />
  639. </div>
  640. </TabPane>
  641. </Tabs>
  642. <div className="patent-table">
  643. <Spin spinning={this.state.loading}>
  644. <Table
  645. columns={
  646. this.state.changeList
  647. ? this.state.changeList
  648. : this.state.columns
  649. }
  650. scroll={{ x: 1500, y: 0 }}
  651. onRowClick={this.tableRowClick}
  652. dataSource={this.state.dataSource}
  653. pagination={this.state.pagination}
  654. bordered
  655. size="small"
  656. />
  657. </Spin>
  658. </div>
  659. <Modal
  660. visible={this.state.visibleR}
  661. className="admin-desc-content"
  662. footer=""
  663. title="拒绝理由"
  664. width="400px"
  665. onCancel={this.rejectCancels}
  666. >
  667. <Spin spinning={this.state.Loading}>
  668. <Input.TextArea
  669. placeholder="请输入拒绝理由"
  670. rows={4}
  671. value={this.state.reason}
  672. onChange={(e) => {
  673. this.setState({ reason: e.target.value });
  674. }}
  675. />
  676. <div className="clearfix" style={{ marginTop: "20px" }}>
  677. <Button
  678. loading={this.state.loading}
  679. type="primary"
  680. onClick={(e) => {
  681. e.stopPropagation();
  682. this.commit();
  683. }}
  684. style={{ float: "right" }}
  685. >
  686. 提交
  687. </Button>
  688. </div>
  689. </Spin>
  690. </Modal>
  691. <Modal
  692. className="admin-desc-content"
  693. footer=""
  694. title="开具发票申请单"
  695. width="900px"
  696. visible={this.state.avisible}
  697. onOk={this.visitOks}
  698. onCancel={this.visitCancels}
  699. >
  700. <Form
  701. layout="horizontal"
  702. id="demand-form"
  703. style={{ paddingBottom: "40px" }}
  704. >
  705. <Spin spinning={this.state.loading}>
  706. <div className="clearfix">
  707. <div className="clearfix">
  708. <FormItem
  709. className="half-item"
  710. {...formItemLayout}
  711. label="合同编号"
  712. >
  713. <span>{this.state.contractNo}</span>
  714. </FormItem>
  715. <FormItem
  716. className="half-item"
  717. {...formItemLayout}
  718. label="备注"
  719. >
  720. <span>{this.state.remarks}</span>
  721. </FormItem>
  722. </div>
  723. <div className="clearfix">
  724. <FormItem
  725. className="half-item"
  726. {...formItemLayout}
  727. label={
  728. <span>
  729. <strong style={{ color: "#f00" }}>*</strong>省内/外
  730. </span>
  731. }
  732. >
  733. <span>{getProvinceA(this.state.type)}</span>
  734. </FormItem>
  735. <FormItem
  736. className="half-item"
  737. {...formItemLayout}
  738. label={
  739. <span>
  740. <strong style={{ color: "#f00" }}>*</strong>特批
  741. </span>
  742. }
  743. >
  744. <span>{this.state.approval === 0 ? "否" : "是"}</span>
  745. </FormItem>
  746. </div>
  747. <hr
  748. style={{
  749. border: "1px dashed #aaa",
  750. width: "90%",
  751. margin: "auto",
  752. }}
  753. />
  754. <div style={{ marginTop: "13px", marginLeft: "16px" }}>
  755. <span style={{ fontSize: "14px" }}>发票内容</span>
  756. </div>
  757. <div className="clearfix">
  758. <FormItem
  759. className="half-item"
  760. {...formItemLayout}
  761. label={
  762. <span>
  763. <strong style={{ color: "#f00" }}>*</strong>发票类型
  764. </span>
  765. }
  766. >
  767. <span>
  768. {this.state.invoiceType === 0
  769. ? "增值税专用发票"
  770. : this.state.invoiceType === 1
  771. ? "增值税普通发票"
  772. : "其他"}
  773. </span>
  774. </FormItem>
  775. </div>
  776. <div className="clearfix">
  777. <FormItem
  778. className="half-item"
  779. {...formItemLayout}
  780. label={
  781. <span>
  782. <strong style={{ color: "#f00" }}>*</strong>单位名称
  783. </span>
  784. }
  785. >
  786. <span>{this.state.unitName}</span>
  787. </FormItem>
  788. <FormItem
  789. className="half-item"
  790. {...formItemLayout}
  791. label={
  792. <span>
  793. <strong style={{ color: "#f00" }}>*</strong>税号
  794. </span>
  795. }
  796. >
  797. <span>{this.state.taxNumber}</span>
  798. </FormItem>
  799. <FormItem
  800. className="half-item"
  801. {...formItemLayout}
  802. label={
  803. <span>
  804. <strong style={{ color: "#f00" }}>*</strong>
  805. 开票金额(万元)
  806. </span>
  807. }
  808. >
  809. <span>{this.state.amount}</span>
  810. </FormItem>
  811. <FormItem
  812. className="half-item"
  813. {...formItemLayout}
  814. label={
  815. <span>
  816. <strong style={{ color: "#f00" }}>*</strong>
  817. 开户行银行账号
  818. </span>
  819. }
  820. >
  821. <span>{this.state.banks}</span>
  822. </FormItem>
  823. <FormItem
  824. className="half-item"
  825. {...formItemLayout}
  826. label={
  827. <span>
  828. <strong style={{ color: "#f00" }}>*</strong>
  829. 开票内容及说明
  830. </span>
  831. }
  832. >
  833. <span>{this.state.content}</span>
  834. </FormItem>
  835. <FormItem
  836. className="half-item"
  837. {...formItemLayout}
  838. label={
  839. <span>
  840. <strong style={{ color: "#f00" }}>*</strong>单位地址
  841. </span>
  842. }
  843. >
  844. <span>{this.state.unitAddress}</span>
  845. </FormItem>
  846. <FormItem
  847. className="half-item"
  848. {...formItemLayout}
  849. label="备注"
  850. >
  851. <span>{this.state.invoiceRemarks}</span>
  852. </FormItem>
  853. <FormItem
  854. className="half-item"
  855. {...formItemLayout}
  856. label={
  857. <span>
  858. <strong style={{ color: "#f00" }}>*</strong>单位电话
  859. </span>
  860. }
  861. >
  862. <span>{this.state.unitMobile}</span>
  863. </FormItem>
  864. </div>
  865. <div className="clearfix">
  866. <FormItem
  867. labelCol={{ span: 4 }}
  868. wrapperCol={{ span: 18 }}
  869. label={
  870. <span>
  871. <strong style={{ color: "#f00" }}>*</strong>附件
  872. </span>
  873. }
  874. >
  875. <Upload
  876. className="demandDetailShow-upload"
  877. listType="picture-card"
  878. fileList={this.state.orgCodeUrl}
  879. onPreview={(file) => {
  880. this.setState({
  881. previewImage: file.url || file.thumbUrl,
  882. previewVisible: true,
  883. });
  884. }}
  885. ></Upload>
  886. <Modal
  887. maskClosable={false}
  888. footer={null}
  889. visible={this.state.previewVisible}
  890. onCancel={() => {
  891. this.setState({ previewVisible: false });
  892. }}
  893. >
  894. <img
  895. alt=""
  896. style={{ width: "100%" }}
  897. src={this.state.previewImage || ""}
  898. />
  899. </Modal>
  900. </FormItem>
  901. </div>
  902. <hr
  903. style={{
  904. border: "1px dashed #aaa",
  905. width: "90%",
  906. margin: "auto",
  907. }}
  908. />
  909. <div className="clearfix" style={{ marginTop: "10px" }}>
  910. <FormItem
  911. className="half-item"
  912. {...formItemLayout}
  913. label="发票是否邮寄:"
  914. >
  915. <span>{this.state.post === 0 ? "是" : "否"}</span>
  916. </FormItem>
  917. </div>
  918. {this.state.post === 0 ? (
  919. <div>
  920. <div className="clearfix">
  921. <FormItem
  922. className="half-item"
  923. {...formItemLayout}
  924. label="收信人姓名"
  925. >
  926. <span>{this.state.addressee}</span>
  927. </FormItem>
  928. <FormItem
  929. className="half-item"
  930. {...formItemLayout}
  931. label="电话"
  932. >
  933. <span>{this.state.addresseeMobile}</span>
  934. </FormItem>
  935. </div>
  936. <div className="clearfix">
  937. <FormItem
  938. className="half-item"
  939. {...formItemLayout}
  940. label="省-市-区"
  941. >
  942. <span>
  943. {getprovince(this.state.addresseeProvince)}/
  944. {getprovince(this.state.addresseeCity)}/
  945. {getprovince(this.state.addresseeArea)}
  946. </span>
  947. </FormItem>
  948. </div>
  949. <div className="clearfix">
  950. <FormItem
  951. className="half-item"
  952. {...formItemLayout}
  953. label="详细地址"
  954. >
  955. <span>{this.state.recipientAddress}</span>
  956. </FormItem>
  957. </div>
  958. </div>
  959. ) : (
  960. ""
  961. )}
  962. {/* <FormItem
  963. className="half-item"
  964. {...formItemLayout}
  965. label={
  966. <span>
  967. <strong style={{ color: "#f00" }}>*</strong>开票金额总计
  968. </span>
  969. }
  970. >
  971. <span>{this.state.alreadyAmount}万元</span>
  972. </FormItem> */}
  973. </div>
  974. </Spin>
  975. </Form>
  976. </Modal>
  977. <Modal
  978. visible={this.state.bvisible}
  979. footer=""
  980. title="开票历史记录"
  981. className="admin-desc-content"
  982. width="900px"
  983. onCancel={this.inRecordCanl}
  984. >
  985. <Spin spinning={this.state.loading}>
  986. <div className="patent-table">
  987. <Table
  988. columns={this.state.columnsDate}
  989. dataSource={this.state.recordData}
  990. pagination={false}
  991. bordered
  992. size="small"
  993. />
  994. <div className="clearfix" style={{ marginTop: "20px" }}>
  995. <FormItem
  996. className="half-item"
  997. {...formItemLayout}
  998. label={<span style={{ fontSize: "14px" }}>开票总计</span>}
  999. >
  1000. <span>{this.state.sum + "(万元)"}</span>
  1001. </FormItem>
  1002. </div>
  1003. </div>
  1004. </Spin>
  1005. </Modal>
  1006. <OrderDesc
  1007. data={this.state.RowData}
  1008. showDesc={this.state.showDesc}
  1009. closeDesc={this.closeDesc.bind(this)}
  1010. />
  1011. </div>
  1012. );
  1013. },
  1014. });
  1015. export default invoiceApplyListWai;