view.vue 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352
  1. <template>
  2. <div class="mys" style="" v-if="i">
  3. <div class="mx-1 mb-5 position-relative" v-if="propData.patient">
  4. <div class="centerY">
  5. <div class="bule_line"></div>
  6. <span class="font-bold text-dark ml-2 fs-14 py-2">基本信息</span>
  7. </div>
  8. <!-- 基本信息 -->
  9. <div class="card fs-12 p-3" style="color: #818181;position: relative;">
  10. <div class="w-50 mb-1 d-inline-block">
  11. 姓名:
  12. <span class="font-bold text-dark fs-14">{{ propData.patient.username || '' }}</span>
  13. </div>
  14. <div class="w-50 mb-1 d-inline-block">性别:
  15. <span class="font-bold text-dark fs-14">{{ propData.patient.sex == 1 ? '男' : '女' || '' }}</span>
  16. </div>
  17. <div class="w-50 mb-1 d-inline-block">年龄:
  18. <span class="font-bold text-dark fs-14">{{ getAge(propData.patient.birthday) || '0' }}岁</span>
  19. </div>
  20. <div class="w-50 mb-1 d-inline-block">
  21. 慢病类型:
  22. <span class="font-bold text-dark fs-14">{{ CHRONIC_DISEASE_TYPE[propData.patient.chronicDiseaseType - 1].label
  23. }}</span>
  24. </div>
  25. <div class="w-50 mb-1 d-inline-block" v-if="1">
  26. 糖尿病病龄:
  27. <span class="font-bold text-dark fs-14">
  28. {{ propData.patient.tnbIllTime ? ((new Date().getTime() - new Date(propData.patient.tnbIllTime).getTime()) /
  29. 31536000000).toFixed(0) : '' }}年
  30. </span>
  31. </div>
  32. <div class="w-50 d-inline-block" v-if="1">
  33. 高血压病龄:
  34. <span class="font-bold text-dark fs-14">
  35. {{ propData.patient.gxyIllTime ? ((new Date().getTime() - new Date(propData.patient.gxyIllTime).getTime()) /
  36. 31536000000).toFixed(0) : '' }}年
  37. </span>
  38. </div>
  39. <div class="position-absolute d-flex " style="right: 15%;top:-30%;transform: rotate(31deg);z-index:1">
  40. <div v-show="propData.patient.healthIndex !== 0" class="centerd position-absolute "
  41. :style="{ width: '70px', height: '70px', borderRadius: '50%', opacity: 1, ...selectColor(propData.patient.healthIndex) }">
  42. <div class="text-center">
  43. <div class="fs-12">健康指数</div>
  44. <div class="font-bold fs-16">{{ propData.patient.healthIndex ? 1000 - propData.patient.healthIndex || 0 :
  45. '1000' }}</div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <!-- 管理等级 -->
  51. <div class="centerY mt-2">
  52. <div class="w-50 pr-2" v-if="propData.gljb.gxyVisit && propData.gljb.gxyVisit.id">
  53. <div class="centerY py-2" >
  54. <div class="bule_line"></div>
  55. <span class="font-bold text-dark ml-2 fs-14 line-height1">高血压管理等级</span>
  56. </div>
  57. <div class="">
  58. <div class="fs-12 w-100 mr-2 border-box overflow"
  59. style="line-height:1.5;border: 1px solid #1890ff;border-radius:4px;background:#fff;">
  60. <div class="text-center fs-12 font-bold "
  61. style="line-height:1;padding:8px 0;background-color:#1890ff;color:#fff">{{
  62. propData.gljb.gxyVisit.gljb }}</div>
  63. <div class="bg-white overflow fs-12 p-2 border-box " style="border-top: 1px solid #1890ff;">
  64. <div class="w-100 centerY">
  65. <div class="pr-1">下次预约</div>
  66. <div class=" text-dark">{{ propData.gljb.gxyVisit.xcyy }}</div>
  67. </div>
  68. <div class="w-100 centerY">
  69. <div class="pr-1">随访医生</div>
  70. <div class=" text-dark">{{ propData.gljb.gxyVisit.sfys }}</div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="w-50" v-if="propData.gljb.tnbVisit && propData.gljb.tnbVisit.id">
  77. <div class="centerY py-2" >
  78. <div class="bule_line"></div>
  79. <span class="font-bold text-dark ml-2 fs-14 line-height1">糖尿病管理等级</span>
  80. </div>
  81. <div class="">
  82. <div class="fs-12 w-100 border-box overflow"
  83. style="line-height:1.5;border: 1px solid #1890ff;border-radius:4px;background:#fff;">
  84. <div class="fs-12" style="line-height:1">
  85. <div class="text-center fs-12 font-bolds" style="padding:8px 0;background-color:#1890ff;color:#fff">{{
  86. propData.gljb.tnbVisit.gljb }}</div>
  87. </div>
  88. <div class="bg-white overflow p-2 border-box " style="border-top: 1px solid #1890ff;">
  89. <div class="w-100 centerY">
  90. <div class="pr-1">下次预约</div>
  91. <div class="text-dark">{{ propData.gljb.tnbVisit.xcyy }}</div>
  92. </div>
  93. <div class="w-100 centerY">
  94. <div class="pr-1">随访医生</div>
  95. <div class="text-dark">{{ propData.gljb.tnbVisit.sfys }}</div>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. <el-collapse class="mt-3" @change="collapsechange">
  103. <!-- 体征 -->
  104. <el-collapse-item title="" name="1" v-if="propData.physical && propData.physical.length > 0">
  105. <template #title>
  106. <div class="centerY px-2 w-100">
  107. <div class="bule_line"></div>
  108. <span class="font-bold text-dark ml-2 fs-14 line-height1">体征</span>
  109. <span class="text-gry fs-12">(最近七次)</span>
  110. </div>
  111. </template>
  112. <div class="card fs-14 mt-n2 p-2" style="color: #818181;">
  113. <div class="" style="background-color: #F5F9FF;border-radius: 8px;">
  114. <div id="echarts1" class="echarts"></div>
  115. <div id="echarts2" class="echarts"></div>
  116. </div>
  117. <div class="fs-10 d-flex mt-2" style="color: #909092;">
  118. <div class="space-nowrap w-25">提示:</div>
  119. <div class="">
  120. <div class="">1、身体体质指数范围 偏瘦 &lt = 18.4,正常 18.5 ~ 23.9,过重 24.0 ~ 27.9,肥胖>= 28.0</div>
  121. <div class="mt-1">2、血压心率 收缩压成人 65岁以上 90~149(mmHg)65岁以下 90~139(mmHg),舒张压 60~90(mmHg)</div>
  122. </div>
  123. </div>
  124. <div class="p-2 mt-2" style="background-color: #F5F9FF;border-radius: 8px;">
  125. <span class="text-gry fs-12 centerY"><span class="iconfont Clock"></span>{{
  126. propData.physical[propData.physical.length - 1].createTime }}</span>
  127. <div class="centerY mt-1">
  128. <div class="card-boxshow px-2 py-1 mr-2 w-40 fs-10"
  129. v-if="propData.physical[propData.physical.length - 1].bloodGlucose">
  130. <div class="text-dark">血糖</div>
  131. <div class="text-dark">
  132. {{ propData.physical[propData.physical.length - 1].bloodGlucose || '未测量' }}
  133. <span v-if="propData.physical[propData.physical.length - 1].bloodGlucose"
  134. style="color:#A7A7A7 ">mmol/L</span>
  135. </div>
  136. </div>
  137. <div class="card-boxshow px-2 py-1 mr-2 w-30 fs-10"
  138. v-if="propData.physical[propData.physical.length - 1].spo2">
  139. <div class="text-dark">血氧</div>
  140. <div class="text-dark">
  141. {{ propData.physical[propData.physical.length - 1].spo2 || '未测量' }}
  142. <span v-if="propData.physical[propData.physical.length - 1].spo2" style="color:#A7A7A7 ">%</span>
  143. </div>
  144. </div>
  145. <div class="card-boxshow px-2 py-1 w-30 fs-10"
  146. v-if="propData.physical[propData.physical.length - 1].waist">
  147. <div class="text-dark">腰围</div>
  148. <div class="text-dark">
  149. {{ propData.physical[propData.physical.length - 1].waist || '未测量' }}
  150. <span v-if="propData.physical[propData.physical.length - 1].waist" style="color:#A7A7A7 ">cm</span>
  151. </div>
  152. </div>
  153. <!-- <div class="card-boxshow centerY px-2 py-1 w-33 fs-12"
  154. v-if="propData.check[propData.check.length - 1].bloodGlucose">
  155. <div class="">
  156. <div class="text-dark">空腹血糖</div>
  157. <div class="text-dark">
  158. {{ propData.check[propData.check.length - 1].bloodGlucose || '未测量' }}
  159. <span v-if="propData.check[propData.check.length - 1].bloodGlucose" style="color:#A7A7A7 ">mmol/L</span>
  160. </div>
  161. </div>
  162. </div> -->
  163. </div>
  164. </div>
  165. </div>
  166. </el-collapse-item>
  167. <!-- 随访 -->
  168. <el-collapse-item title="" name="2" v-if="propData.gljb?.gxyVisit?.id || propData.gljb?.tnbVisit?.id">
  169. <template #title>
  170. <div class="centerY px-2">
  171. <div class="bule_line"></div>
  172. <span class="font-bold ml-2 fs-14 line-height1">随访</span>
  173. <span class="text-gry fs-12">(最近一次)</span>
  174. </div>
  175. </template>
  176. <div class="card fs-12 p-2 mt-n2" style="color: #818181;">
  177. <div>
  178. <div class="centerY">
  179. <div class="w-45">日吸烟量:
  180. <span class="text-dark">{{ propData.gljb.tnbVisit?.rxyl || propData.gljb.gxyVisit?.rxyl || '0' }}
  181. (支)</span>
  182. </div>
  183. <div class="w-55">日饮酒量:
  184. <span class="text-dark">{{ propData.gljb.tnbVisit?.ryjl || propData.gljb.gxyVisit?.ryjl || '0' }} (两)
  185. </span>
  186. </div>
  187. </div>
  188. <div class="centerY">
  189. <div class="w-45">运动次数:
  190. <span class="text-dark">{{ propData.gljb.tnbVisit?.ydcs || propData.gljb.gxyVisit?.ydcs || '0' }}
  191. /周</span>
  192. </div>
  193. <div class="w-55">运动时间:
  194. <span class="text-dark">{{ propData.gljb.tnbVisit?.ydsj || propData.gljb.gxyVisit?.ydsj || '0' }}
  195. 分/次</span>
  196. </div>
  197. </div>
  198. <div class="centerY">
  199. <div class="w-45">腰围指导:
  200. <span class="text-dark">{{ propData.gljb.tnbVisit?.ywzd || propData.gljb.gxyVisit?.ywzd || '暂无' }}
  201. (CM)</span>
  202. </div>
  203. <div class="w-55">体重指导:
  204. <span class="text-dark">{{ propData.gljb.tnbVisit?.tzzd || propData.gljb.gxyVisit?.tzzd || '暂无' }}
  205. (KG)</span>
  206. </div>
  207. </div>
  208. <div class="centerY">
  209. <div class="w-55">体质指数指导:
  210. <span class="text-dark">{{ propData.gljb.tnbVisit?.bmizd || propData.gljb.gxyVisit?.bmizd || '暂无'
  211. }}</span>
  212. </div>
  213. </div>
  214. </div>
  215. <div v-if="propData.gljb?.gxyVisit?.id">
  216. <div class="centerY text-dark"><span class="iconfont gonggaotongzhi mr-1"></span>高血压随访</div>
  217. <div class="centerY">
  218. <div class="w-50">摄盐程度:
  219. <span class="text-dark">{{ propData.gljb.gxyVisit.sycd || '暂无' }}</span>
  220. </div>
  221. <div class="w-50">随访分类:
  222. <span class="text-dark">{{ propData.gljb.gxyVisit.sffl || '暂无' }}</span>
  223. </div>
  224. </div>
  225. <div class="centerY">
  226. <div class="w-100">下次预约:
  227. <span class="text-dark">{{ propData.gljb.gxyVisit.xcyy || '暂无' }}</span>
  228. </div>
  229. </div>
  230. <div class="d-flex" v-if="propData.gljb.gxyVisit.mqzz">
  231. <div class="w-100">目前症状:
  232. <span class="text-dark">{{ JSON.parse(propData.gljb.gxyVisit.mqzz).join('、') || '暂无' }}</span>
  233. </div>
  234. </div>
  235. <div class="d-flex" v-if="propData.gljb.gxyVisit.qttz1">
  236. <div class="w-100">其他体征:
  237. <span class="text-dark">{{ propData.gljb.gxyVisit.qttz1 || '暂无' }}</span>
  238. </div>
  239. </div>
  240. </div>
  241. <div v-if="propData.gljb?.tnbVisit?.id">
  242. <div class="centerY text-dark"><span class="iconfont gonggaotongzhi mr-1"></span>糖尿病随访</div>
  243. <div class="centerY">
  244. <div class="w-45">主食:
  245. <span class="text-dark">{{ propData.gljb.tnbVisit.zs || '暂无' }}(克/天)</span>
  246. </div>
  247. <div class="w-55">体质指数指导:
  248. <span class="text-dark">{{ propData.gljb.tnbVisit.bmizd || '暂无' }}</span>
  249. </div>
  250. </div>
  251. <div class="centerY">
  252. <div class="w-45">腰围指导:
  253. <span class="text-dark">{{ propData.gljb.tnbVisit.ywzd || '暂无' }}(CM)</span>
  254. </div>
  255. <div class="w-55">体重指导:
  256. <span class="text-dark">{{ propData.gljb.tnbVisit.tzzd || '暂无' }}(KG) </span>
  257. </div>
  258. </div>
  259. <div class="centerY">
  260. <div class="w-100">血糖类型:
  261. <span class="text-dark">{{ propData.gljb.tnbVisit.xtlx || '暂无' }}</span>
  262. <span class="text-dark">{{ propData.gljb.tnbVisit.tzzd || '暂无' }} </span>
  263. </div>
  264. </div>
  265. <div class="centerY">
  266. <div class="w-45">随访分类:
  267. <span class="text-dark">{{ propData.gljb.tnbVisit.sffl || '暂无' }}</span>
  268. </div>
  269. <div class="w-55">下次预约:
  270. <span class="text-dark">{{ propData.gljb.tnbVisit.xcyy || '暂无' }}</span>
  271. </div>
  272. </div>
  273. <div class="d-flex" v-if="propData.gljb.tnbVisit.mqzz">
  274. <div class="w-100">目前症状:
  275. <span class="text-dark">{{ JSON.parse(propData.gljb.tnbVisit.mqzz).join('、') || '暂无' }}</span>
  276. </div>
  277. </div>
  278. <div class="d-flex">
  279. <div class="w-100">足背动脉搏动:
  280. <span class="text-dark">{{ propData.gljb.tnbVisit.zdmbd || '暂无' }}</span>
  281. </div>
  282. </div>
  283. <div class="d-flex" v-if="propData.gljb.tnbVisit.qttz1">
  284. <div class="w-100">其他体征:
  285. <span class="text-dark">{{ propData.gljb.tnbVisit.qttz1 || '暂无' }}</span>
  286. </div>
  287. </div>
  288. </div>
  289. </div>
  290. </el-collapse-item>
  291. <!-- 监测指标 -->
  292. <el-collapse-item title="" name="6">
  293. <template #title>
  294. <div class="centerY px-2 fs-14">
  295. <div class="bule_line"></div>
  296. <div>
  297. <span class="font-bold text-dark ml-2 fs-14 line-height1">监测指标</span>
  298. <span class="ml-1 text-gry fs-12"> (<span
  299. class="iconfont CheckMark fs-10 font-blod text-white bg-green"
  300. style="height: 14px;width: 14px;text-align: center; border-radius: 50%;">
  301. </span>已检查 /
  302. <span
  303. class="iconfont CheckMark fs-10 font-blod text-white bg-gry"
  304. style="height: 14px;width: 14px;text-align: center; border-radius: 50%;">
  305. </span>
  306. 未检查)</span>
  307. </div>
  308. </div>
  309. </template>
  310. <div class="p-2 fs-14 mt-n2" style="color: #818181;">
  311. <CheckModel :pdata="propData" :alldata="propData" />
  312. </div>
  313. </el-collapse-item>
  314. <!-- 眼底 -->
  315. <el-collapse-item title="" v-if="propData.eye.eyeData && propData.eye.eyeData.id" name="3">
  316. <template #title>
  317. <div class="centerY px-2 fs-14">
  318. <div class="bule_line"></div>
  319. <span class="font-bold text-dark ml-2 fs-14 line-height1">眼底检查</span>
  320. <div class="centerY text-gry fs-12 ml-2">
  321. <span class="iconfont Clock"></span>
  322. <div>{{ propData.eye.eyeData.createTime }}</div>
  323. <div>
  324. <span :class="{ 'text-green': propData.eye.eyeData.isRead == 1 }">({{ propData.eye.eyeData.isRead == 0 ?
  325. '未阅片' : '已阅片' }})</span>
  326. </div>
  327. </div>
  328. </div>
  329. </template>
  330. <div class="p-2 fs-14 mt-n2" style="color: #818181;">
  331. <div class="mt-1 p-2" style="box-shadow: 0px 2px 13px 2px rgba(211,212,214,0.45);border-radius: 8px;">
  332. <div class="centerY">
  333. <div class="fs-12 font-bold space-nowrap w-20">检测医院</div>
  334. <div class="fs-12 text-dark w-80 pl-1">{{ hospitalinfo.hospitalName || '暂无医院信息' }}</div>
  335. </div>
  336. <div class="d-flex mt-2">
  337. <div class="fs-12 font-bold space-nowrap w-20">眼底筛查</div>
  338. <div class="fs-12 text-dark w-80 pl-1">
  339. <div>
  340. (左眼) <span v-if="propData.eye.eyeData.leftMaculaLutea">{{ propData.eye.eyeData.leftMaculaLutea
  341. }}、</span> <span v-if="propData.eye.eyeData.leftPathology">{{
  342. JSON.parse(propData.eye.eyeData.leftPathology).join('、') }};</span>
  343. <span v-if="propData.eye.eyeData.isRead == 0">
  344. 未阅片
  345. </span>
  346. </div>
  347. <div>
  348. (右眼) <span v-if="propData.eye.eyeData.rightMaculaLutea">{{ propData.eye.eyeData.rightMaculaLutea
  349. }}、</span>
  350. <span v-if="propData.eye.eyeData.rightPathology">{{
  351. JSON.parse(propData.eye.eyeData.rightPathology).join('、') }};</span>
  352. <span v-if="propData.eye.eyeData.isRead == 0">
  353. 未阅片
  354. </span>
  355. </div>
  356. </div>
  357. </div>
  358. <div class="d-flex mt-2">
  359. <div class="fs-12 font-bold space-nowrap w-20">专家建议</div>
  360. <div v-if="propData.eye.eyeData.isRead == 1" class="fs-12 text-dark w-80 pl-1">
  361. <div>
  362. (左眼) {{ propData.eye.eyeData.leftNote || (propData.eye.aiEyeData && propData.eye.aiEyeData.leftNote)
  363. || '无' }};</div>
  364. <div>
  365. (右眼) {{ propData.eye.eyeData.rightNote || (propData.eye.aiEyeData &&
  366. propData.eye.aiEyeData.rightNote) || '无' }};
  367. </div>
  368. </div>
  369. <div v-if="propData.eye.eyeData.isRead == 0" class="fs-12 text-dark w-80 pl-1">暂未阅片</div>
  370. </div>
  371. </div>
  372. <div class="text-gry2 fs-10 mt-2">注:本报告内容只针对眼底照片可见范围</div>
  373. </div>
  374. </el-collapse-item>
  375. <!-- 用药 -->
  376. <el-collapse-item title="" v-if="propData.medicinal && propData.medicinal.length > 0" name="4">
  377. <template #title>
  378. <div class="centerY px-2">
  379. <div class="bule_line"></div>
  380. <span class="font-bold text-dark ml-2 fs-14 line-height1">用药情况</span>
  381. <span class="text-gry fs-12">(最近随访用药)</span>
  382. </div>
  383. </template>
  384. <div class="card fs-12 p-2 mt-n2" style="color: #818181;">
  385. <div class="">
  386. <div class="mtable-title centerY bg-primary text-white fs-10">
  387. <div class="text-left" style="width: 23%;">药名</div>
  388. <div class=" text-center" style="width: 15%;">剂量</div>
  389. <div class="w-10 text-center">用法</div>
  390. <div class="text-center" style="width: 17%;">用药频次</div>
  391. <div class="text-center" style="width: 17%;">不良反应</div>
  392. <div class=" text-center" style="width: 17%;">用药类型</div>
  393. </div>
  394. <div v-if="propData.medicinal && propData.medicinal.length == 0">
  395. <el-empty description="此次随访没有用药"></el-empty>
  396. </div>
  397. <div v-if="propData.medicinal && propData.medicinal.length > 0" class="mtable-body-item centerY fs-10"
  398. v-for="(item2, index2) in propData.medicinal" style="color: #868687;">
  399. <!-- <uni-tooltip :content="item2.name" style="color: #818181;width: 23%;"> -->
  400. <div class="text-left text-div2" style="color: #818181;width: 23%;">{{ item2.name }}</div>
  401. <!-- </uni-tooltip> -->
  402. <div class=" text-center" style="width: 15%;">{{ item2.unit + item2.medicinalUnit }}</div>
  403. <div class="w-10 text-center">{{ item2.medicinalUse || '未知' }}</div>
  404. <div class="text-center" style="width: 17%;">{{ item2.medicinalInterval || '未知' }}</div>
  405. <div class="text-center" style="width: 17%;">{{ item2.untowardReaction || '无' }}</div>
  406. <div class="text-center" style="width: 17%;">{{ item2.type == 'Tnb' ? '糖尿病' : item2.type == 'Gxy' ? '高血压'
  407. :
  408. '未知类型' }}</div>
  409. </div>
  410. </div>
  411. </div>
  412. </el-collapse-item>
  413. <!-- 居家检测 -->
  414. <el-collapse-item title=""
  415. v-if="homedata.gxyList && homedata.gxyList.length > 0 || homedata.tnbList && homedata.tnbList.length > 0"
  416. name="5">
  417. <template #title>
  418. <div class="centerY px-2">
  419. <div class="bule_line"></div>
  420. <span class="font-bold text-dark ml-2 fs-14 line-height1">居家检测</span>
  421. <span class="text-gry fs-12">(最近七次)</span>
  422. </div>
  423. </template>
  424. <div class="card fs-12 p-2 mt-n2" style="color: #818181;">
  425. <div>
  426. <div id="echarts3" class="echarts"></div>
  427. <div id="echarts4" class="echarts"></div>
  428. <div id="echarts5" class="echarts"></div>
  429. </div>
  430. </div>
  431. </el-collapse-item>
  432. </el-collapse>
  433. <div class="centerY fs-12 mt-2">
  434. <div class="ml-auto text-primary cursor-pointer" v-if="wwwurl"
  435. @click="open(wwwurl + '/index?idCard=' + propData.patient.idCard)">
  436. 去网页版查看患者更多信息 >
  437. </div>
  438. </div>
  439. </div>
  440. </div>
  441. </template>
  442. <script>
  443. import conf from '@/config/index'
  444. import { getAge, timeTrans } from '@/utils/common'
  445. import * as echarts from 'echarts';
  446. const { keyValue, healthIndex, CHRONIC_DISEASE_TYPE } = conf;
  447. import { ipcRenderer } from "electron";
  448. import CheckModel from './check.vue'
  449. export default {
  450. name: 'modelview',
  451. components: { CheckModel },
  452. props: {
  453. propData: {
  454. type: Object,
  455. default() {
  456. return {
  457. patient: {},
  458. check: {},
  459. checkResult: {},
  460. eye: { eyeData: {} },
  461. medicinal: [],
  462. physical: {},
  463. yearCheck: [],
  464. echarts1data: {}
  465. };
  466. }
  467. },
  468. hospitalinfo: {
  469. type: Object,
  470. default() {
  471. return {
  472. };
  473. }
  474. },
  475. homedata: {
  476. type: Object,
  477. default() {
  478. return {};
  479. }
  480. },
  481. },
  482. data() {
  483. return {
  484. getAge,
  485. CHRONIC_DISEASE_TYPE,
  486. keyValue,
  487. echarts1data: {},
  488. accessType: 1,
  489. img_host: '',
  490. i: 0,
  491. wwwurl: ''
  492. };
  493. },
  494. watch: {
  495. propData: {
  496. handler(val) {
  497. this.wwwurl = localStorage.getItem('locationpath') ? JSON.parse(localStorage.getItem('locationpath')).webURL : ''
  498. // console.log(val)
  499. this.i = 0;
  500. this.i = 1;
  501. this.settingData()
  502. }
  503. }
  504. },
  505. mounted() {
  506. },
  507. beforeDestroy() {
  508. },
  509. methods: {
  510. open(link) {
  511. ipcRenderer.send('openUrl', link)
  512. },
  513. collapsechange(val) {
  514. val.map((item) => {
  515. if (item == 1) {
  516. if (this.propData.physical && this.propData.physical.length) {
  517. this.chartOption1(this.echarts1data, 'echarts1');
  518. this.chartOption2(this.echarts1data, 'echarts2');
  519. }
  520. } else if (item == 5) {
  521. if (this.homedata.gxyList && this.homedata.gxyList.length) {
  522. this.chartOption3(this.homedata.gxyList, 'echarts3')
  523. this.chartOption4(this.homedata.gxyList, 'echarts4')
  524. }
  525. if (this.homedata.tnbList && this.homedata.tnbList.length) {
  526. this.chartOption5(this.homedata.tnbList, 'echarts5')
  527. }
  528. }
  529. })
  530. },
  531. settingData() {
  532. let physical = this.propData.physical;
  533. this.echarts1data = {
  534. time: [],
  535. data1: [],
  536. data2: [],
  537. data3: [],
  538. data4: [],
  539. data5: [],
  540. data6: [],
  541. data7: [],
  542. data8: [],
  543. data9: []
  544. };
  545. if (physical && physical.length) {
  546. physical.reverse().map((item, index) => {
  547. if (index > 6) {
  548. return false
  549. }
  550. this.echarts1data['data1'].push(item.height);
  551. this.echarts1data['data2'].push(item.weight);
  552. this.echarts1data['data3'].push(item.bmi);
  553. this.echarts1data['data4'].push(item.shrink);
  554. this.echarts1data['data5'].push(item.diastole);
  555. this.echarts1data['data6'].push(item.pulse);
  556. this.echarts1data['time'].push(item.createTime);
  557. });
  558. }
  559. },
  560. initChart(dom, option) {
  561. this.$nextTick(() => {
  562. let chart = echarts.init(document.getElementById(dom))
  563. chart.setOption(option)
  564. chart.resize()
  565. })
  566. },
  567. selectColor(val) {
  568. // console.log(this.information.info)
  569. val = healthIndex.success - val;
  570. return {
  571. color:
  572. val > healthIndex.warning && val <= healthIndex.success
  573. ? '#13ce66'
  574. : val > healthIndex.error && val < healthIndex.warning
  575. ? '#ffba00'
  576. : val <= healthIndex.error
  577. ? '#ff4d4f'
  578. : '',
  579. border:
  580. val > healthIndex.warning && val <= healthIndex.success
  581. ? '2px solid #13ce66'
  582. : val > healthIndex.error && val < healthIndex.warning
  583. ? '2px solid #ffba00'
  584. : val <= healthIndex.error
  585. ? '2px solid #ff4d4f'
  586. : '',
  587. backgroundColor:
  588. val > healthIndex.warning && val <= healthIndex.success
  589. ? 'rgba(19, 206, 102, .1)'
  590. : val > healthIndex.error && val < healthIndex.warning
  591. ? 'rgba(255, 186,0, .1)'
  592. : val <= healthIndex.error
  593. ? 'rgba(255, 77, 79, .1)'
  594. : ''
  595. };
  596. },
  597. // updateEcharts(newValue, oldValue, ownerInstance, instance) {
  598. // // 监听 service 层数据变更
  599. // myChart.setOption(newValue)
  600. // },
  601. check({ type, value, age, sex }) {
  602. let msg = this.propData.patient
  603. let arr = this.keyValue
  604. if (type == 'shrink' && age) {
  605. if (msg.age > 65) {
  606. if (value > arr['shrinktop'][1]) {
  607. return true
  608. }
  609. if (value < arr['shrinktop'][0]) {
  610. return true
  611. }
  612. } else {
  613. if (value > arr['shrinklow'][1]) {
  614. return true
  615. }
  616. if (value < arr['shrinklow'][0]) {
  617. return true
  618. }
  619. }
  620. }
  621. if (sex) {
  622. if (msg.sex == 1) {
  623. if (value > arr[type][0][1]) {
  624. return true
  625. }
  626. if (value < arr[type][0][0]) {
  627. return true
  628. }
  629. } else {
  630. if (value > arr[type][1][1]) {
  631. return true
  632. }
  633. if (value < arr[type][1][0]) {
  634. return true
  635. }
  636. }
  637. }
  638. if (value > arr[type][1]) {
  639. return true
  640. }
  641. if (value < arr[type][0]) {
  642. return true
  643. }
  644. return false
  645. },
  646. chartOption1({ time, data1, data2, data3 }, dom) {
  647. let arr = []
  648. time = time.map((res) => timeTrans({
  649. time: res,
  650. format: 'M-D'
  651. }))
  652. time.map((item, index) => {
  653. if (this.check({
  654. type: 'bmi',
  655. value: data3[index]
  656. })) {
  657. arr.push({
  658. value: [item, data3[index]],
  659. symbolSize: 8
  660. })
  661. }
  662. })
  663. var option = (option = {
  664. legend: {
  665. data: ['身高', '体重', 'BMI'],
  666. textStyle: {
  667. fontSize: 10
  668. },
  669. lineStyle: {
  670. width: 1
  671. },
  672. itemHeight: 8,
  673. itemStyle: {
  674. borderWidth: 0
  675. }
  676. },
  677. tooltip: {
  678. trigger: 'axis',
  679. axisPointer: {
  680. type: 'cross',
  681. label: {
  682. backgroundColor: '#6a7985',
  683. },
  684. },
  685. },
  686. grid: {
  687. top: '25%',
  688. left: '3%',
  689. right: '5%',
  690. bottom: '3%',
  691. containLabel: true,
  692. },
  693. xAxis: [{
  694. type: 'category',
  695. data: time,
  696. axisPointer: {
  697. type: 'shadow',
  698. },
  699. },],
  700. yAxis: [{
  701. type: 'value',
  702. },],
  703. series: [{
  704. name: 'BMI',
  705. label: {
  706. show: true,
  707. formatter: '{@score}',
  708. position: 'bottom',
  709. },
  710. smooth: true,
  711. type: 'line',
  712. data: data3,
  713. itemStyle: {
  714. // fontSize:'10px',
  715. color: '#9c5045'
  716. },
  717. },
  718. {
  719. name: '体重',
  720. label: {
  721. show: true,
  722. formatter: '{@score}',
  723. position: 'top',
  724. },
  725. smooth: true,
  726. type: 'line',
  727. barWidth: '60%',
  728. data: data2,
  729. itemStyle: {
  730. color: '#e74a2d'
  731. },
  732. },
  733. {
  734. name: '身高',
  735. label: {
  736. show: true,
  737. formatter: '{@score}',
  738. position: 'top'
  739. },
  740. type: 'line',
  741. data: data1,
  742. smooth: true,
  743. barWidth: '60%',
  744. itemStyle: {
  745. color: '#89b87b'
  746. },
  747. },
  748. {
  749. type: 'effectScatter',
  750. coordinateSystem: 'cartesian2d',
  751. data: arr,
  752. showEffectOn: 'render',
  753. // zlevel:1,
  754. rippleEffect: {
  755. // 波纹的绘制方式,可选'stroke'和'fill'
  756. brushType: 'fill',
  757. },
  758. hoverAnimation: false,
  759. itemStyle: {
  760. color: 'red'
  761. }
  762. },
  763. ],
  764. })
  765. this.$nextTick(() => {
  766. if (document.getElementById(dom)) {
  767. console.log(1)
  768. this.initChart(dom, option)
  769. }
  770. })
  771. },
  772. chartOption2({ time, data4, data5, data6 }, dom) {
  773. // console.log(time, data4, data5, data6)
  774. let arr = []
  775. time = time.map((res) => timeTrans({
  776. time: res,
  777. format: 'M-D'
  778. }))
  779. time.map((item, index) => {
  780. if (this.check({
  781. type: 'shrink',
  782. value: data4[index],
  783. age: true
  784. })) {
  785. arr.push({
  786. value: [item, data4[index]],
  787. symbolSize: 8
  788. })
  789. }
  790. if (this.check({
  791. type: 'diastole',
  792. value: data5[index]
  793. })) {
  794. arr.push({
  795. value: [item, data5[index]],
  796. symbolSize: 8
  797. })
  798. }
  799. if (this.check({
  800. type: 'pulse',
  801. value: data6[index]
  802. })) {
  803. arr.push({
  804. value: [item, data6[index]],
  805. symbolSize: 8
  806. })
  807. }
  808. })
  809. var option = (option = {
  810. legend: {
  811. data: ['收缩压', '舒张压', '心率'],
  812. textStyle: {
  813. fontSize: 10
  814. },
  815. lineStyle: {
  816. width: 1
  817. },
  818. itemHeight: 8,
  819. itemStyle: {
  820. borderWidth: 0
  821. }
  822. },
  823. tooltip: {
  824. trigger: 'axis',
  825. axisPointer: {
  826. type: 'cross',
  827. label: {
  828. backgroundColor: '#6a7985',
  829. },
  830. },
  831. },
  832. grid: {
  833. top: '25%',
  834. left: '3%',
  835. right: '5%',
  836. bottom: '3%',
  837. containLabel: true,
  838. },
  839. xAxis: [{
  840. type: 'category',
  841. axisPointer: {
  842. type: 'shadow',
  843. },
  844. textStyle: {
  845. fontSize: 8
  846. },
  847. data: time,
  848. },],
  849. yAxis: [{
  850. type: 'value',
  851. },],
  852. series: [{
  853. smooth: true,
  854. name: '收缩压',
  855. label: {
  856. show: true,
  857. formatter: '{@score}',
  858. position: 'top'
  859. },
  860. smooth: true,
  861. type: 'line',
  862. data: data4,
  863. itemStyle: {
  864. color: '#8e3e1f'
  865. },
  866. },
  867. {
  868. smooth: true,
  869. name: '舒张压',
  870. label: {
  871. show: true,
  872. formatter: '{@score}',
  873. position: 'top',
  874. },
  875. smooth: true,
  876. type: 'line',
  877. data: data5,
  878. itemStyle: {
  879. color: '#3c3645',
  880. fontSize: 8
  881. },
  882. textStyle: {
  883. color: '#3c3645',
  884. fontSize: 8
  885. },
  886. },
  887. {
  888. name: '心率',
  889. label: {
  890. show: true,
  891. formatter: '{@score}',
  892. },
  893. smooth: true,
  894. type: "bar",
  895. data: data6,
  896. itemStyle: {
  897. color: '#33a3dc',
  898. fontSize: 8
  899. },
  900. },
  901. {
  902. type: 'effectScatter',
  903. coordinateSystem: 'cartesian2d',
  904. data: arr,
  905. showEffectOn: 'render',
  906. // zlevel:1,
  907. rippleEffect: {
  908. // 波纹的绘制方式,可选'stroke'和'fill'
  909. brushType: 'fill',
  910. },
  911. hoverAnimation: false,
  912. itemStyle: {
  913. color: 'red'
  914. }
  915. },
  916. ],
  917. })
  918. this.$nextTick(() => {
  919. if (document.getElementById(dom)) {
  920. this.initChart(dom, option)
  921. }
  922. })
  923. },
  924. chartOption3(data, dom) {
  925. // console.log(data)
  926. let data1 = [],
  927. data2 = [],
  928. data3 = [],
  929. time = []
  930. data.map((item) => {
  931. time.push(timeTrans({
  932. time: item.uploadTime,
  933. format: 'M/D'
  934. }))
  935. data1.push(item.sbp)
  936. data2.push(item.rbp)
  937. data3.push(item.pulse)
  938. })
  939. let arr = []
  940. data.map((item, index) => {
  941. if (this.check({
  942. type: 'shrink',
  943. value: data1[index],
  944. age: true
  945. })) {
  946. arr.push({
  947. name: '收缩压',
  948. value: [item.uploadTime, data1[index]],
  949. symbolSize: 8,
  950. })
  951. }
  952. if (this.check({
  953. type: 'diastole',
  954. value: data2[index]
  955. })) {
  956. arr.push({
  957. name: '舒张压',
  958. value: [item.uploadTime, data2[index]],
  959. symbolSize: 8,
  960. })
  961. }
  962. })
  963. // console.log(arr)
  964. var option = (option = {
  965. legend: {
  966. data: ['收缩压', '舒张压', '心率'],
  967. },
  968. tooltip: {
  969. formatter: function (params) {
  970. console.log(params)
  971. let str = ''
  972. if (params.length > 0) {
  973. str =
  974. '<view style="padding:0px;width:140px"><view>' +
  975. params[0].name +
  976. '</view><view class="centerY" style="margin-top:6px"><view style="background:#5470c6;width:10px;height:10px;border-radius: 50%;" ></view><view class="" style="margin-left:4px">' +
  977. params[0].seriesName +
  978. '</view> <view class="ml-auto font-bold">' +
  979. params[0].value +
  980. '</view></view> <view class="centerY" style="margin-top:6px"><view style="background:#91cc75;width:10px;height:10px;border-radius: 50%;" ></view><view class="" style="margin-left:4px">' +
  981. params[1].seriesName +
  982. '</view><view class="ml-auto font-bold">' +
  983. params[1].value +
  984. '</view></view><view class="centerY" style="margin-top:6px"><view style="background:#fac858;width:10px;height:10px;border-radius: 50%;" ></view><view class="" style="margin-left:4px">' +
  985. params[2].seriesName +
  986. '</view><view class="ml-auto font-bold">' +
  987. params[2].value +
  988. '</view></view></view>'
  989. }
  990. return str
  991. },
  992. trigger: 'axis',
  993. axisPointer: {
  994. type: 'cross',
  995. label: {
  996. backgroundColor: '#6a7985',
  997. },
  998. },
  999. },
  1000. grid: {
  1001. top: '20%',
  1002. left: '3%',
  1003. right: '5%',
  1004. bottom: '3%',
  1005. containLabel: true,
  1006. },
  1007. xAxis: [{
  1008. type: 'category',
  1009. axisPointer: {
  1010. type: 'shadow',
  1011. },
  1012. data: time.reverse(),
  1013. },],
  1014. yAxis: [{
  1015. type: 'value',
  1016. },],
  1017. series: [{
  1018. name: '收缩压',
  1019. label: {
  1020. show: true,
  1021. formatter: '{@score}',
  1022. position: 'top'
  1023. },
  1024. smooth: true,
  1025. type: 'line',
  1026. data: data1.reverse(),
  1027. },
  1028. {
  1029. name: '舒张压',
  1030. label: {
  1031. show: true,
  1032. formatter: '{@score}',
  1033. position: 'bottom',
  1034. },
  1035. smooth: true,
  1036. type: 'line',
  1037. data: data2.reverse(),
  1038. },
  1039. {
  1040. type: 'effectScatter',
  1041. coordinateSystem: 'cartesian2d',
  1042. data: arr,
  1043. showEffectOn: 'render',
  1044. // zlevel:1,
  1045. rippleEffect: {
  1046. // 波纹的绘制方式,可选'stroke'和'fill'
  1047. brushType: 'fill',
  1048. },
  1049. itemStyle: {
  1050. color: '#F2597F'
  1051. },
  1052. hoverAnimation: false,
  1053. },
  1054. ],
  1055. })
  1056. this.$nextTick(() => {
  1057. if (document.getElementById(dom)) {
  1058. this.initChart(dom, option)
  1059. }
  1060. })
  1061. },
  1062. chartOption4(data, dom) {
  1063. // console.log(data)
  1064. let data1 = [],
  1065. time = []
  1066. data.map((item) => {
  1067. time.push(timeTrans({
  1068. time: item.uploadTime,
  1069. format: 'M/D'
  1070. }))
  1071. data1.push(item.glu)
  1072. })
  1073. let arr = []
  1074. data.map((item, index) => {
  1075. if (this.check({
  1076. type: 'bloodGlucose',
  1077. value: data1[index],
  1078. age: true
  1079. })) {
  1080. arr.push({
  1081. name: '血糖',
  1082. value: [item.uploadTime, data1[index]],
  1083. symbolSize: 8,
  1084. })
  1085. }
  1086. })
  1087. var option = (option = {
  1088. legend: {
  1089. data: ['血糖'],
  1090. },
  1091. tooltip: {
  1092. trigger: 'axis',
  1093. axisPointer: {
  1094. type: 'cross',
  1095. label: {
  1096. backgroundColor: '#6a7985',
  1097. },
  1098. },
  1099. },
  1100. grid: {
  1101. top: '20%',
  1102. left: '3%',
  1103. right: '5%',
  1104. bottom: '3%',
  1105. containLabel: true,
  1106. },
  1107. xAxis: [{
  1108. type: 'category',
  1109. axisPointer: {
  1110. type: 'shadow',
  1111. },
  1112. data: time.reverse(),
  1113. },],
  1114. yAxis: [{
  1115. type: 'value',
  1116. },],
  1117. series: [{
  1118. name: '血糖',
  1119. label: {
  1120. show: true,
  1121. formatter: '{@score}',
  1122. position: 'top'
  1123. },
  1124. smooth: true,
  1125. type: 'line',
  1126. data: data1.reverse(),
  1127. itemStyle: {
  1128. color: '#369FE5'
  1129. },
  1130. },
  1131. {
  1132. type: 'effectScatter',
  1133. coordinateSystem: 'cartesian2d',
  1134. data: arr,
  1135. showEffectOn: 'render',
  1136. // zlevel:1,
  1137. rippleEffect: {
  1138. // 波纹的绘制方式,可选'stroke'和'fill'
  1139. brushType: 'fill',
  1140. },
  1141. itemStyle: {
  1142. color: '#F2597F'
  1143. },
  1144. hoverAnimation: false,
  1145. },
  1146. ],
  1147. })
  1148. this.$nextTick(() => {
  1149. if (document.getElementById(dom)) {
  1150. this.initChart(dom, option)
  1151. }
  1152. })
  1153. },
  1154. chartOption5(data, dom) {
  1155. // console.log(data)
  1156. let data1 = [],
  1157. data2 = [],
  1158. data3 = [],
  1159. time = []
  1160. data.map((item) => {
  1161. time.push(timeTrans({
  1162. time: item.uploadTime,
  1163. format: 'M/D'
  1164. }))
  1165. data3.push(item.pulse)
  1166. })
  1167. let arr = []
  1168. data.map((item, index) => {
  1169. if (this.check({
  1170. type: 'pulse',
  1171. value: data3[index]
  1172. })) {
  1173. arr.push({
  1174. name: '心率',
  1175. value: [item.uploadTime, data3[index]],
  1176. symbolSize: 10,
  1177. })
  1178. }
  1179. })
  1180. // console.log(arr)
  1181. var option = (option = {
  1182. legend: {
  1183. data: ['心率'],
  1184. },
  1185. tooltip: {
  1186. trigger: 'axis',
  1187. axisPointer: {
  1188. type: 'cross',
  1189. label: {
  1190. backgroundColor: '#6a7985',
  1191. },
  1192. },
  1193. },
  1194. grid: {
  1195. top: '20%',
  1196. left: '3%',
  1197. right: '5%',
  1198. bottom: '3%',
  1199. containLabel: true,
  1200. },
  1201. xAxis: [{
  1202. type: 'category',
  1203. axisPointer: {
  1204. type: 'shadow',
  1205. },
  1206. data: time.reverse(),
  1207. },],
  1208. yAxis: [{
  1209. type: 'value',
  1210. },],
  1211. series: [{
  1212. name: '心率',
  1213. label: {
  1214. show: true,
  1215. formatter: '{@score}',
  1216. position: 'top',
  1217. },
  1218. itemStyle: {
  1219. color: '#35B79C'
  1220. },
  1221. smooth: true,
  1222. type: 'line',
  1223. data: data3.reverse(),
  1224. areaStyle: {
  1225. color: {
  1226. type: 'linear',
  1227. x: 0,
  1228. y: 0,
  1229. x2: 0,
  1230. y2: 1,
  1231. global: false,
  1232. colorStops: [{
  1233. offset: 0,
  1234. color: 'rgba(53,183,156,.7)'
  1235. },
  1236. {
  1237. offset: 0.5,
  1238. color: 'rgba(53,183,156,0.3)'
  1239. },
  1240. {
  1241. offset: 1,
  1242. color: 'rgba(53,183,156,0)'
  1243. }
  1244. ]
  1245. }
  1246. },
  1247. },
  1248. {
  1249. type: 'effectScatter',
  1250. coordinateSystem: 'cartesian2d',
  1251. data: arr,
  1252. showEffectOn: 'render',
  1253. // zlevel:1,
  1254. rippleEffect: {
  1255. // 波纹的绘制方式,可选'stroke'和'fill'
  1256. brushType: 'fill',
  1257. },
  1258. itemStyle: {
  1259. color: '#F2597F'
  1260. },
  1261. hoverAnimation: false,
  1262. },
  1263. ],
  1264. })
  1265. if (document.getElementById(dom)) {
  1266. this.initChart(dom, option)
  1267. }
  1268. },
  1269. }
  1270. };
  1271. </script>
  1272. <style lang="less" >
  1273. .bule_line {
  1274. width: 5px;
  1275. height: 15px;
  1276. background-color: #1e8ff9;
  1277. border-radius: 3px;
  1278. box-shadow: 0px 2px 4px 0px rgba(121, 190, 254, 0.59);
  1279. }
  1280. .card {
  1281. background: #ffffff;
  1282. border-radius: 8px;
  1283. }
  1284. .card-boxshow {
  1285. box-shadow: 0px 2px 5px 1px rgba(215, 232, 255, 0.5);
  1286. border-radius: 8px;
  1287. background: #ffffff;
  1288. }
  1289. .mtable {
  1290. &-title {
  1291. border-radius: 25px;
  1292. padding: 10px 0 10px 10px;
  1293. box-shadow: 0px 1px 3px 1px rgba(45, 142, 255, 0.5);
  1294. }
  1295. &-body {
  1296. &-item {
  1297. margin-top: 10px;
  1298. border-radius: 25px;
  1299. padding: 7px 0 7px 10px;
  1300. background-color: #f6f9fe;
  1301. color: #868687;
  1302. }
  1303. }
  1304. }
  1305. .picbox1 {
  1306. width: 100% !important;
  1307. height: 0;
  1308. padding-bottom: 70%;
  1309. margin: 0;
  1310. position: relative;
  1311. overflow: hidden;
  1312. }
  1313. .picbox1 .picimg1 {
  1314. width: 100%;
  1315. height: 100%;
  1316. position: absolute;
  1317. }
  1318. .echarts {
  1319. width: 100%;
  1320. height: 180px;
  1321. }
  1322. .el-collapse-item__content {
  1323. padding-bottom: 0 !important;
  1324. }
  1325. </style>