风险测评小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

222 lines
5.3 KiB

  1. <template>
  2. <view class="page__view">
  3. <navbar title="报告" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="title">2025年9月16日xxx公司风险测评报告</view>
  5. <view class="section">
  6. <view class="flex section-header">
  7. <view class="line"></view>
  8. <view>总概述</view>
  9. </view>
  10. <view class="section-content">
  11. <view class="summary">
  12. <view class="text">
  13. 经过本次问答信息收集的综合分析检测出风险点共<text class="highlight">12</text>其中极高风险4项高风险2项中风险4项低风险2项
  14. </view>
  15. <view class="flex charts">
  16. <progressCircle label="极高风险" value="4" color="#B81C1C"></progressCircle>
  17. <progressCircle label="高风险" value="2" color="#FF0000"></progressCircle>
  18. <progressCircle label="中风险" value="4" color="#FFA800"></progressCircle>
  19. <progressCircle label="低风险" value="2" color="#014FA2"></progressCircle>
  20. </view>
  21. </view>
  22. <view class="table">
  23. <reportTableView :list="tableList"></reportTableView>
  24. </view>
  25. </view>
  26. </view>
  27. <view class="flex flex-column contact">
  28. <view>扫下方二维码联系我们给你1V1解决方案</view>
  29. <!-- todo: check key -->
  30. <image class="qr" :src="configList.service" :show-menu-by-longpress="true"></image>
  31. </view>
  32. <view>
  33. <uv-parse :content="content"></uv-parse>
  34. </view>
  35. </view>
  36. </template>
  37. <script>
  38. import progressCircle from './progressCircle.vue';
  39. import reportTableView from './reportTableView.vue';
  40. export default {
  41. components: {
  42. progressCircle,
  43. reportTableView,
  44. },
  45. data() {
  46. return {
  47. tableList: [],
  48. content: '',
  49. }
  50. },
  51. onLoad(arg) {
  52. const { batchNo } = arg
  53. this.getData(batchNo)
  54. },
  55. methods: {
  56. async getData(batchNo) {
  57. // todo: delete
  58. this.tableList = [
  59. {
  60. id: '001',
  61. title: '风险文字内容文字内',
  62. children: [
  63. {
  64. id: '0011',
  65. reason: '风险原因文字',
  66. level: 0,
  67. result: '可能导致的结果文字内容文字内容',
  68. },
  69. {
  70. id: '0012',
  71. reason: '风险原因文字',
  72. level: 2,
  73. result: '文字内容',
  74. },
  75. ],
  76. },
  77. {
  78. id: '002',
  79. title: '风险文字内容文字内文字内文字内文字内文字内文字内',
  80. children: [
  81. {
  82. id: '0021',
  83. reason: '风险原因文字',
  84. level: 3,
  85. result: '可能导致的结果文字内容文字内容',
  86. },
  87. {
  88. id: '0022',
  89. reason: '风险原因文字',
  90. level: 0,
  91. result: '',
  92. },
  93. {
  94. id: '0023',
  95. reason: '风险原因文字',
  96. level: 1,
  97. result: '',
  98. },
  99. {
  100. id: '0024',
  101. reason: '风险原因文字',
  102. level: 2,
  103. result: '文字内容',
  104. },
  105. ],
  106. },
  107. {
  108. id: '003',
  109. title: '风险文字内容文字内',
  110. children: [
  111. {
  112. id: '0031',
  113. reason: '风险原因文字',
  114. level: 3,
  115. result: '',
  116. },
  117. {
  118. id: '0032',
  119. reason: '风险原因文字',
  120. level: 2,
  121. result: '',
  122. },
  123. {
  124. id: '0033',
  125. reason: '风险原因文字',
  126. level: 3,
  127. result: '',
  128. },
  129. ],
  130. },
  131. ]
  132. try {
  133. await this.$fetch('queryReportById', { batchNo })
  134. } catch (err) {
  135. }
  136. },
  137. },
  138. }
  139. </script>
  140. <style scoped lang="scss">
  141. .title {
  142. width: 100%;
  143. padding: 42rpx 0 40rpx 0;
  144. box-sizing: border-box;
  145. text-align: center;
  146. font-size: 30rpx;
  147. font-weight: 600;
  148. color: #000000;
  149. }
  150. .section {
  151. padding: 0 12rpx;
  152. &-header {
  153. justify-content: flex-start;
  154. column-gap: 9rpx;
  155. padding: 0 17rpx;
  156. font-size: 28rpx;
  157. font-weight: 600;
  158. color: #014FA2;
  159. .line {
  160. width: 9rpx;
  161. height: 33rpx;
  162. background: #014FA2;
  163. border-radius: 6rpx;
  164. }
  165. }
  166. &-content {
  167. margin-top: 30rpx;
  168. }
  169. }
  170. .summary {
  171. .text {
  172. padding: 20rpx 10rpx;
  173. font-size: 26rpx;
  174. color: #014FA2;
  175. background: rgba($color: #014FA2, $alpha: 0.16);
  176. .highlight {
  177. color: #DB5742;
  178. }
  179. }
  180. .charts {
  181. margin-top: 54rpx;
  182. justify-content: space-between;
  183. padding: 0 42rpx;
  184. }
  185. }
  186. .table {
  187. margin-top: 49rpx;
  188. }
  189. .contact {
  190. margin-top: 53rpx;
  191. row-gap: 40rpx;
  192. width: 100%;
  193. padding: 30rpx 0 22rpx 0;
  194. box-sizing: border-box;
  195. font-size: 28rpx;
  196. color: #014FA2;
  197. border: 1rpx dashed #014FA2;
  198. .qr {
  199. width: 157rpx;
  200. height: auto;
  201. }
  202. }
  203. </style>