AiPublicRiskDialog.vue 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. <template>
  2. <div class="ai-public-risk">
  3. <div class="ai-public-header">
  4. <div class="brid-box"></div>
  5. <div class="close-box" @click="handleClose"></div>
  6. AI应急助手
  7. </div>
  8. <el-scrollbar class="ai-public-content">
  9. <div class="title-box" @click="showBigContent = !showBigContent">
  10. <div class="content">疾病判断</div>
  11. <div class="arrow-box">
  12. <el-icon v-if="showBigContent" color="#67f6fe"><ArrowDownBold /></el-icon>
  13. <el-icon v-else color="#67f6fe"><ArrowUpBold /></el-icon>
  14. </div>
  15. </div>
  16. <transition name="Bigfade">
  17. <div class="content-box" v-if="showBigContent">
  18. <div class="text-content">
  19. <span>根据病例的临床表现和检测结果,初步排除了常见的呼吸道传染病病原体,考虑不明原因肺炎的可能性大,包括:</span>
  20. </div>
  21. <div class="show-content">
  22. <span class="content">1.罕见或新发的病原体感染:如SARS、人感染动物源性流感、MERS等</span>
  23. </div>
  24. <div class="show-content">
  25. <span class="content">2.细菌性或真菌性肺炎:如肺炎克雷伯菌感染、肺炎链球菌感染、肺孢子菌感染等</span>
  26. </div>
  27. </div>
  28. </transition>
  29. <div class="title-box" @click="showBigContent1 = !showBigContent1">
  30. <div class="content">疾病概述</div>
  31. <div class="arrow-box">
  32. <el-icon v-if="showBigContent1" color="#67f6fe"><ArrowDownBold /></el-icon>
  33. <el-icon v-else color="#67f6fe"><ArrowUpBold /></el-icon>
  34. </div>
  35. </div>
  36. <transition name="Bigfade">
  37. <div class="content-box" v-if="showBigContent1">
  38. <div class="show-content" @click="showContent = !showContent">
  39. <span class="content">1.罕见或新发的病原体感染:如SARS、人感染动物源性流感、MERS等</span>
  40. <div class="arrow-box">
  41. <el-icon v-if="showContent"><CaretTop /></el-icon>
  42. <el-icon v-else><CaretBottom /></el-icon>
  43. </div>
  44. </div>
  45. <transition name="fade">
  46. <div class="bottom-content-box" v-if="showContent">
  47. SARS(传染性非典型肺炎)是由SARS冠状病毒(SARS-CoV)引起的一种急性呼吸道传染病。
  48. <br />
  49. (1) 法定传染病:乙类传染病,按照甲类传染病管理。 (2)
  50. <br />
  51. 病原体:SARS冠状病毒,属于冠状病毒科,是一种单链RNA病毒。 (3) 流行病学
  52. <br />
  53. · 传染源:病人是最主要的传染源。
  54. <br />
  55. · 传播途径:近距离呼吸道飞沫传播、密切接触传播。
  56. <br />
  57. · 易感人群:青壮年、医护人员、免疫力低下者。 (4) 临床表现:
  58. <br />
  59. · 潜伏期:1-16天,常见为3-5天。
  60. <br />
  61. · 症状:起病急,以高热(体温常超过38℃)为首发症状,可伴有头痛、肌肉酸痛、乏力、腹泻等。发病3-7天后出现干咳、少痰,部分患者有血丝痰。重症患者可出现呼吸窘迫综合征(ARDS)、休克和多器官功能衰竭。
  62. <br />
  63. (5) 流行特征
  64. <br />
  65. · 地区分布:2002年11月至2003年7月全球首次SARS流行中,全球共报告SARS临床诊断病例8096例,死亡774例,发病波及29个国家和地区。病例主要分布于亚洲、欧洲、美洲等地区。中国内地总发病数达5327例,死亡349例,病死率为6.6%,病例主要集中在北京、广东、山西、内蒙古、河北、天津等地。
  66. <br />
  67. · 时间分布:发病主要集中在2003年3月中旬至5月中。
  68. <br />
  69. · 人群分布:主要发病年龄
  70. <br />
  71. 在20~60岁之间。男女性别间发病无显著差异。人群职业分布有医务人员明显高发的特点。
  72. <br />
  73. </div>
  74. </transition>
  75. <div class="show-content">
  76. <span class="content">2.细菌性或真菌性肺炎:如肺炎克雷伯菌感染、肺炎链球菌感染、肺孢子菌感染等</span>
  77. </div>
  78. </div>
  79. </transition>
  80. </el-scrollbar>
  81. </div>
  82. </template>
  83. <script setup>
  84. import { ref } from 'vue'
  85. import { CaretTop, CaretBottom, ArrowUpBold, ArrowDownBold } from '@element-plus/icons-vue'
  86. import { useDialogStore } from '@/store/dialog'
  87. let dialogStore = useDialogStore()
  88. import { right } from '@antv/x6/lib/registry/port-layout/line'
  89. const emit = defineEmits(['closeClick'])
  90. const handleClose = () => {
  91. dialogStore.setRiskAIDialogOpen(false)
  92. }
  93. const showBigContent = ref(false);
  94. const showBigContent1 = ref(false);
  95. const showContent = ref(false);
  96. </script>
  97. <style lang="scss" scoped>
  98. .ai-public-risk {
  99. position: absolute;
  100. right: -1420px;
  101. top: 30px;
  102. background-image: url('@/assets/img/ai-bg.png');
  103. background-size: 100% 100%;
  104. width: 790px;
  105. height: 547px;
  106. z-index: 29;
  107. overflow: hidden;
  108. .ai-public-header {
  109. position: relative;
  110. display: flex;
  111. align-items: center;
  112. padding-top: 15px;
  113. padding-left: 65px;
  114. box-sizing: border-box;
  115. width: 100%;
  116. height: 57px;
  117. font-family: YouSheBiaoTiHei;
  118. font-weight: 400;
  119. font-size: 24px;
  120. line-height: 30px;
  121. text-shadow: 0px 3px 4px rgba(0, 40, 62, 0.25);
  122. text-align: left;
  123. font-style: normal;
  124. text-transform: none;
  125. background: linear-gradient(89.99999804120293deg, #ffffff 0%, #a4e9ff 100%);
  126. -webkit-background-clip: text;
  127. -webkit-text-fill-color: transparent;
  128. .brid-box {
  129. position: absolute;
  130. top: 0px;
  131. left: 0;
  132. width: 75px;
  133. height: 60px;
  134. background-image: url('@/assets/img/brid-icon.png');
  135. background-size: 100% 100%;
  136. }
  137. .close-box {
  138. position: absolute;
  139. top: 0px;
  140. right: 0;
  141. width: 75px;
  142. height: 60px;
  143. cursor: pointer;
  144. }
  145. }
  146. .ai-public-content {
  147. height: calc(100% - 90px);
  148. padding: 10px 30px;
  149. box-sizing: border-box;
  150. .title-box {
  151. position: relative;
  152. height: 32px;
  153. margin-top: 15px;
  154. background: linear-gradient(to right, rgba(60, 161, 255, 0.1) 0%, rgba(60, 161, 255, 0) 50%);
  155. padding-left: 15px;
  156. border-bottom: 1px solid;
  157. border-image: linear-gradient(90deg, rgba(255, 255, 255, 0.7) 0%, rgba(0, 240, 255, 0) 47%) 2 2;
  158. display: flex;
  159. justify-content: space-between;
  160. align-items: center;
  161. padding-right: 10px;
  162. .content {
  163. border-radius: 0px 0px 0px 0px;
  164. height: 100%;
  165. font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
  166. font-weight: normal;
  167. font-size: 18px;
  168. color: #ffffff;
  169. text-shadow: 0px 0px 9px #158eff;
  170. font-style: normal;
  171. text-transform: none;
  172. }
  173. &::after {
  174. content: '';
  175. position: absolute;
  176. width: 7px;
  177. height: 7px;
  178. left: 0;
  179. top: 50%;
  180. transform: translateY(-55%);
  181. background-color: rgba(33, 231, 251, 1);
  182. }
  183. }
  184. .content-box {
  185. background: rgba(60, 161, 255, 0.15);
  186. border-radius: 0px 0px 0px 0px;
  187. padding: 10px;
  188. margin-top: 10px;
  189. .text-content {
  190. font-family: Alibaba PuHuiTi;
  191. font-weight: normal;
  192. font-size: 14px;
  193. color: #a4deff;
  194. line-height: 16px;
  195. text-align: left;
  196. font-style: normal;
  197. text-transform: none;
  198. }
  199. .show-content {
  200. position: relative;
  201. display: flex;
  202. align-items: center;
  203. height: 32px;
  204. padding-left: 15px;
  205. margin-top: 10px;
  206. background: linear-gradient(to right, rgba(0, 178, 255, 0.4) 0%, rgba(0, 178, 255, 0.1) 100%);
  207. border-radius: 0px 0px 0px 0px;
  208. border-bottom: 1px solid;
  209. border-image: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(0, 240, 255, 0) 20%) 2 2;
  210. .arrow-box {
  211. position: absolute;
  212. right: 0;
  213. top: 50%;
  214. transform: translateY(-50%);
  215. color: rgba(0, 209, 255, 1);
  216. }
  217. &::after {
  218. box-sizing: border-box;
  219. position: absolute;
  220. content: '';
  221. top: 0;
  222. left: 0;
  223. // background: #25D8FF;
  224. border-top: 4px solid #25d8ff;
  225. border-bottom: 4px solid transparent;
  226. border-left: 4px solid #25d8ff;
  227. border-right: 4px solid transparent;
  228. }
  229. .content {
  230. font-family: Alibaba PuHuiTi;
  231. font-weight: normal;
  232. font-size: 14px;
  233. color: #ffffff;
  234. line-height: 16px;
  235. text-align: left;
  236. font-style: normal;
  237. text-transform: none;
  238. }
  239. }
  240. .bottom-content-box {
  241. padding: 5px 15px;
  242. font-family: Alibaba PuHuiTi;
  243. font-weight: normal;
  244. font-size: 14px;
  245. color: #ffffff;
  246. line-height: 16px;
  247. text-align: left;
  248. font-style: normal;
  249. text-transform: none;
  250. line-height: 1.5;
  251. background: linear-gradient(90deg, rgba(0, 133, 255, 0) 0%, rgba(0, 163, 255, 0.5) 16%, rgba(0, 117, 255, 0.1) 100%);
  252. border-radius: 0px 0px 0px 0px;
  253. }
  254. }
  255. }
  256. .fade-evnter-active,
  257. .fade-leave-active {
  258. transition: all 0.3s;
  259. max-height: 300px;
  260. }
  261. .fade-enter,
  262. .fade-leave-to {
  263. max-height: 0px;
  264. opacity: 0;
  265. }
  266. }
  267. </style>