invoiceApplyListQuery.jsx 29 KB

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