mock平台

CaseReport.js 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { Row, Col, Tabs } from 'antd';
  4. const TabPane = Tabs.TabPane;
  5. function jsonFormat(json) {
  6. // console.log('json',json)
  7. if (json && typeof json === 'object') {
  8. return JSON.stringify(json, null, ' ');
  9. }
  10. return json;
  11. }
  12. const CaseReport = function(props) {
  13. let params = jsonFormat(props.data);
  14. let headers = jsonFormat(props.headers, null, ' ');
  15. let res_header = jsonFormat(props.res_header, null, ' ');
  16. let res_body = jsonFormat(props.res_body);
  17. let httpCode = props.status;
  18. let validRes;
  19. if (props.validRes && Array.isArray(props.validRes)) {
  20. validRes = props.validRes.map((item, index) => {
  21. return <div key={index}>{item.message}</div>;
  22. });
  23. }
  24. return (
  25. <div className="report">
  26. <Tabs defaultActiveKey="request">
  27. <TabPane className="case-report-pane" tab="Request" key="request">
  28. <Row className="case-report">
  29. <Col className="case-report-title" span="6">
  30. Url
  31. </Col>
  32. <Col span="18">{props.url}</Col>
  33. </Row>
  34. {props.query ? (
  35. <Row className="case-report">
  36. <Col className="case-report-title" span="6">
  37. Query
  38. </Col>
  39. <Col span="18">{props.query}</Col>
  40. </Row>
  41. ) : null}
  42. {props.headers ? (
  43. <Row className="case-report">
  44. <Col className="case-report-title" span="6">
  45. Headers
  46. </Col>
  47. <Col span="18">
  48. <pre>{headers}</pre>
  49. </Col>
  50. </Row>
  51. ) : null}
  52. {params ? (
  53. <Row className="case-report">
  54. <Col className="case-report-title" span="6">
  55. Body
  56. </Col>
  57. <Col span="18">
  58. <pre style={{ whiteSpace: 'pre-wrap' }}>{params}</pre>
  59. </Col>
  60. </Row>
  61. ) : null}
  62. </TabPane>
  63. <TabPane className="case-report-pane" tab="Response" key="response">
  64. <Row className="case-report">
  65. <Col className="case-report-title" span="6">
  66. HttpCode
  67. </Col>
  68. <Col span="18">
  69. <pre>{httpCode}</pre>
  70. </Col>
  71. </Row>
  72. {props.res_header ? (
  73. <Row className="case-report">
  74. <Col className="case-report-title" span="6">
  75. Headers
  76. </Col>
  77. <Col span="18">
  78. <pre>{res_header}</pre>
  79. </Col>
  80. </Row>
  81. ) : null}
  82. {props.res_body ? (
  83. <Row className="case-report">
  84. <Col className="case-report-title" span="6">
  85. Body
  86. </Col>
  87. <Col span="18">
  88. <pre>{res_body}</pre>
  89. </Col>
  90. </Row>
  91. ) : null}
  92. </TabPane>
  93. <TabPane className="case-report-pane" tab="验证结果" key="valid">
  94. {props.validRes ? (
  95. <Row className="case-report">
  96. <Col className="case-report-title" span="6">
  97. 验证结果
  98. </Col>
  99. <Col span="18"><pre>
  100. {validRes}
  101. </pre></Col>
  102. </Row>
  103. ) : null}
  104. </TabPane>
  105. </Tabs>
  106. </div>
  107. );
  108. };
  109. CaseReport.propTypes = {
  110. url: PropTypes.string,
  111. data: PropTypes.any,
  112. headers: PropTypes.object,
  113. res_header: PropTypes.object,
  114. res_body: PropTypes.any,
  115. query: PropTypes.string,
  116. validRes: PropTypes.array,
  117. status: PropTypes.number
  118. };
  119. export default CaseReport;