outInvoiceQuery.jsx 29 KB

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