invoiceApplyListQuery.jsx 29 KB

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