|
@@ -0,0 +1,1277 @@
|
|
|
+<template>
|
|
|
+ <div class="table_wrap">
|
|
|
+ <div
|
|
|
+ :key="'comKey' + comKey"
|
|
|
+ class="container"
|
|
|
+ :style="{
|
|
|
+ marginTop: marginTop + 'px'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <svg width="100%" height="100%"></svg>
|
|
|
+ </div>
|
|
|
+ <table class="temperatureChart">
|
|
|
+ <caption>
|
|
|
+ <p style="font-size: 20px; font-weight: bold">长沙泰和医院</p>
|
|
|
+ <p style="font-size: 20px; font-weight: bold">体温单</p>
|
|
|
+ <p style="position: relative; text-align: left">
|
|
|
+ <span class="tbale-label">  姓名:</span
|
|
|
+ ><span
|
|
|
+ style="display: inline-block; width: 75px; text-align: left"
|
|
|
+ >{{ patientInfo.name }}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">年龄:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 60px; text-align: left"
|
|
|
+ >{{ patientInfo.age + "岁" }}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">性别:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 60px; text-align: left"
|
|
|
+ >{{ patientInfo.sexName }}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">入院日期:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 100px; text-align: left"
|
|
|
+ >{{patientInfo.admissDate}}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">科室:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 65px; text-align: left"
|
|
|
+ >{{ patientInfo.admissWardName }}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">床号:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 60px; text-align: left"
|
|
|
+ >{{ patientInfo.bedNo }}</span
|
|
|
+ >
|
|
|
+ <span class="tbale-label">住院号:</span>
|
|
|
+ <span
|
|
|
+ style="display: inline-block; width: 100px; text-align: left"
|
|
|
+ >{{ patientInfo.inpatientNo }}</span
|
|
|
+ >
|
|
|
+ </p>
|
|
|
+ </caption>
|
|
|
+
|
|
|
+ <thead></thead>
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ ref="topTd"
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ :class="[index && 'redLineTd', !index && 'table-just']"
|
|
|
+ v-for="(item, index) in inHospitalTime"
|
|
|
+ :key="index + '|indays'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "日 期"
|
|
|
+ : item
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ :class="[index && 'redLineTd', !index && 'table-just']"
|
|
|
+ v-for="(item, index) in inHospitalDays"
|
|
|
+ :key="index + '|inHospitalDays'"
|
|
|
+ >
|
|
|
+ {{ index === 0 ? "住院天数" : item }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ :class="[index && 'redLineTd', !index && 'table-just']"
|
|
|
+ v-for="(item, index) in surgeryDays"
|
|
|
+ :key="index + '|surgeryDays'"
|
|
|
+ >
|
|
|
+ {{ index === 0 ? "手术后天数" : item }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="table-just" rowspan="2" colspan="8">
|
|
|
+ 时 间
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText redLineTd">23</td>
|
|
|
+ <td class="focusText">3</td>
|
|
|
+ <td>7</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td class="focusText">19</td>
|
|
|
+ <td class="focusText">23</td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <!-- <record></record> -->
|
|
|
+ <tr class="recorde temperature_mark">
|
|
|
+ <td colspan="2" rowspan="45" style="border-right: 1px solid white">
|
|
|
+ <div style="margin-top: 476px;height: 31px">
|
|
|
+ <p style="width:35px;">
|
|
|
+ <span>口表•</span>
|
|
|
+ <span style="color: blue">腋表x</span>
|
|
|
+ <span>肛表o</span>
|
|
|
+ <span style="color: red">脉搏•</span>
|
|
|
+ <span style="color: red">心率o</span>
|
|
|
+ </p>
|
|
|
+ <p></p>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td colspan="3" rowspan="45">
|
|
|
+ <div style="color: red" class="num_wrapper">
|
|
|
+ <p style="margin-top: 0;text-align: right">脉搏次/分</p>
|
|
|
+ <p style="margin-top: 32px">180</p>
|
|
|
+ <p style="margin-top: 55px">160</p>
|
|
|
+ <p style="margin-top: 55px">140</p>
|
|
|
+ <p style="margin-top: 55px">120</p>
|
|
|
+ <p style="margin-top: 55px">100</p>
|
|
|
+ <p style="margin-top: 55px">80</p>
|
|
|
+ <p style="margin-top: 56px">60</p>
|
|
|
+ <p style="margin-top: 56px">40</p>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td colspan="3" rowspan="45">
|
|
|
+ <div style="color: blue" class="num_wrapper">
|
|
|
+ <p style="margin-top: 0">体温<br />x</p>
|
|
|
+ <p style="margin-top: 32px">41</p>
|
|
|
+ <p style="margin-top: 55px">40</p>
|
|
|
+ <p style="margin-top: 55px">39</p>
|
|
|
+ <p style="margin-top: 55px">38</p>
|
|
|
+ <p style="margin-top: 55px">37</p>
|
|
|
+ <p style="margin-top: 55px">36</p>
|
|
|
+ <p style="margin-top: 56px">35</p>
|
|
|
+ <p style="margin-top: 56px">34</p>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td0'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ >
|
|
|
+ <div class="recorde-text">{{ getSymbolTextArr(y) }}</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0]"
|
|
|
+ :key="index + 'tr1'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td1'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td2'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td2'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr2'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td3'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td4'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td4'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr3'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td5'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td6'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td6'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr4'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td7'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td8'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td8'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr5'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td9'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td10'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td10'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr6'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td11'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td11'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td11'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr7'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td12'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td12'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr8'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td13'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+ <tr class="recorde">
|
|
|
+ <template v-for="(item, index) of tdList">
|
|
|
+ <td
|
|
|
+ :key="index + 'td14'"
|
|
|
+ v-if="index % 6 === 5 && index != tdList.length"
|
|
|
+ style="
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ border-bottom: 1px solid #7e7eff;
|
|
|
+ "
|
|
|
+ ></td>
|
|
|
+ <td
|
|
|
+ :key="index + 'td14'"
|
|
|
+ v-else
|
|
|
+ style="border-bottom: 1px solid #7e7eff"
|
|
|
+ ></td>
|
|
|
+ </template>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ class="recorde"
|
|
|
+ v-for="(tr, index) in [0, 0, 0, 0, 0]"
|
|
|
+ :key="index + 'tr9'"
|
|
|
+ >
|
|
|
+ <td
|
|
|
+ v-for="(item, y) in tdList"
|
|
|
+ :key="y + 'td15'"
|
|
|
+ :class="[y % 6 === 5 && y != tdList.length && 'redLineTd']"
|
|
|
+ ></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr></tr>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+
|
|
|
+ :colspan="index === 0 ? 8 : 1"
|
|
|
+ v-for="(item, index) in array42"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|098'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "呼吸(次/分)"
|
|
|
+ : typesViewData["098"] && typesViewData["098"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+
|
|
|
+ :colspan="index === 0 ? 8 : 1"
|
|
|
+ v-for="(item, index) in array42"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|099'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "疼痛强度"
|
|
|
+ : typesViewData["099"] && typesViewData["099"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|005'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "大便(次/日)"
|
|
|
+ : typesViewData["005"] && typesViewData["005"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|004'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "小便(ml)"
|
|
|
+ : typesViewData["004"] && typesViewData["004"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|008'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "血压(mmHg)"
|
|
|
+ : typesViewData["008"] && typesViewData["008"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr >
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|030'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "身高(cm)"
|
|
|
+ : typesViewData["030"] && typesViewData["030"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|009'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "体重(kg)"
|
|
|
+ : typesViewData["009"] && typesViewData["009"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|006'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "入量"
|
|
|
+ : typesViewData["006"] && typesViewData["006"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|011'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "出量"
|
|
|
+ : typesViewData["011"] && typesViewData["011"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td
|
|
|
+ :colspan="index === 0 ? 8 : 6"
|
|
|
+ v-for="(item, index) in [0, 1, 2, 3, 4, 5, 6, 7]"
|
|
|
+ :class="[index && 'redLineTd']"
|
|
|
+ :key="index + '|010'"
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ index === 0
|
|
|
+ ? "过敏药物"
|
|
|
+ : typesViewData["010"] && typesViewData["010"][index - 1]
|
|
|
+ }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <div style="text-align: center">
|
|
|
+ <div style="font-size: 20px; font-weight: bold">
|
|
|
+ {{ `第${info.pageNo}页` }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import * as d3 from 'd3'
|
|
|
+import dayjs from 'dayjs'
|
|
|
+import { getKeyMap, SectionToChinese } from './utils'
|
|
|
+import {getChartData} from "@/api/medical-advice/nursing-manage";
|
|
|
+import { getFormatDatetime } from "@/utils/date"
|
|
|
+
|
|
|
+export default {
|
|
|
+ props: {
|
|
|
+ patientInfo: Object,
|
|
|
+ queryParam: Object,
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ marginTop: 0,
|
|
|
+ keyMap: getKeyMap(),
|
|
|
+ info: {
|
|
|
+ age: 0,
|
|
|
+ beginDate: '',
|
|
|
+ potNo: '',
|
|
|
+ hospDate: 0,
|
|
|
+ admissDate:'',
|
|
|
+ bedNo:'',
|
|
|
+ inDate: 0,
|
|
|
+ inDiagName: null,
|
|
|
+ name: '',
|
|
|
+ dept: '',
|
|
|
+ sex: '',
|
|
|
+ pageNo: '1',
|
|
|
+ operaDays:[]
|
|
|
+ },
|
|
|
+ xyList: [],
|
|
|
+ typesInfo: [],
|
|
|
+ typesViewData: {},
|
|
|
+ breathData: [],
|
|
|
+ tdList: new Array(42).fill(0),
|
|
|
+ comKey: 1,
|
|
|
+ symbolTextArr: [],
|
|
|
+ array42:[],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 日期
|
|
|
+ inHospitalTime () {
|
|
|
+ const initday = dayjs(this.info.beginDate)
|
|
|
+ console.log('initday',initday)
|
|
|
+ return [
|
|
|
+ null, // 文案天
|
|
|
+ initday.format('YYYY-MM-DD'),
|
|
|
+ initday.add(1, 'day').format('MM-DD'),
|
|
|
+ initday.add(2, 'day').format('MM-DD'),
|
|
|
+ initday.add(3, 'day').format('MM-DD'),
|
|
|
+ initday.add(4, 'day').format('MM-DD'),
|
|
|
+ initday.add(5, 'day').format('MM-DD'),
|
|
|
+ initday.add(6, 'day').format('MM-DD')
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ // 住院天数
|
|
|
+ inHospitalDays () {
|
|
|
+ const initday = this.info.hospDays || 0
|
|
|
+ return [
|
|
|
+ null, // 文案天
|
|
|
+ initday + 1,
|
|
|
+ initday + 2,
|
|
|
+ initday + 3,
|
|
|
+ initday + 4,
|
|
|
+ initday + 5,
|
|
|
+ initday + 6,
|
|
|
+ initday + 7
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ // 手术天数
|
|
|
+ surgeryDays () {
|
|
|
+ const initday = this.info.operaDays
|
|
|
+ if (initday.length <=0) {
|
|
|
+ return new Array(8).fill(null)
|
|
|
+ } else {
|
|
|
+ return initday
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted () {
|
|
|
+ for (let i = 0; i < 43; i++) {
|
|
|
+ this.array42.push(i)
|
|
|
+ }
|
|
|
+ console.log('this.queryParam',this.queryParam)
|
|
|
+ this.initData()
|
|
|
+ console.log('this.info',this.info)
|
|
|
+ const marginTop =
|
|
|
+ (Math.round(this.$refs.topTd[0].getBoundingClientRect().height) - 18) *
|
|
|
+ 10 +
|
|
|
+ 28
|
|
|
+ this.marginTop = marginTop
|
|
|
+ // setTimeout(() => {
|
|
|
+ // this.$emit('done')
|
|
|
+ // })
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ SectionToChinese,
|
|
|
+ getSymbolTextArr (index) {
|
|
|
+ const current = this.symbolTextArr.find(i => i.x === index)
|
|
|
+ if (current) {
|
|
|
+ return current.y
|
|
|
+ } else {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ temperatureConverter (c) {
|
|
|
+ const value = (c * 9) / 5 + 32
|
|
|
+ return value.toFixed(1)
|
|
|
+ },
|
|
|
+ initData () {
|
|
|
+ // this.info = dataModel.grParamBOS
|
|
|
+ this.info.pageNo = this.queryParam.week
|
|
|
+ this.info.beginDate =this.queryParam.startRecTime
|
|
|
+ this.info.hospDays = (Number(this.queryParam.week)-1)*7
|
|
|
+ // this.rowsInfo = dataModel.rows || []
|
|
|
+ // this.typesInfo = dataModel.types || []
|
|
|
+ let param = {
|
|
|
+ inpatientNo:this.patientInfo.inpatientNo,
|
|
|
+ admissTimes:this.patientInfo.admissTimes,
|
|
|
+ week:this.queryParam.week,
|
|
|
+ startRecTime:this.queryParam.startRecTime,
|
|
|
+ endRecTime:this.queryParam.endRecTime,
|
|
|
+ mbFlag:this.queryParam.checkBoxFlag.mbFlag,
|
|
|
+ hxFlag:this.queryParam.checkBoxFlag.hxFlag,
|
|
|
+ xyFlag:this.queryParam.checkBoxFlag.xyFlag,
|
|
|
+ wcyRqFlag:this.queryParam.checkBoxFlag.wcyRqFlag,
|
|
|
+ }
|
|
|
+ getChartData(param).then((res)=>{
|
|
|
+ console.log('resChar', res)
|
|
|
+ this.rowsInfo = res.rows
|
|
|
+ this.typesInfo = res.types
|
|
|
+ this.info.operaDays = res.operaDays
|
|
|
+ this.init()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ init () {
|
|
|
+ //800 758
|
|
|
+ var width = 690
|
|
|
+ var height = 682
|
|
|
+ // SVG画布边缘与图表内容的距离
|
|
|
+ var padding = { top: 50, right: 0, bottom: 50, left: 50 }
|
|
|
+ // 创建一个分组用来组合要画的图表元素
|
|
|
+ var main = d3
|
|
|
+ .select('.container svg')
|
|
|
+ .append('g')
|
|
|
+ .classed('main', true)
|
|
|
+ .attr('transform', 'translate(' + 80 + ',' + 80 + ')')
|
|
|
+ // 模拟数据 体温
|
|
|
+ var dataset = getTypeData('003', this.rowsInfo)
|
|
|
+ console.log(dataset, '腋表')
|
|
|
+ var datasetAnus = getTypeData('015', this.rowsInfo)
|
|
|
+ console.log(datasetAnus, '肛表【黑空圆】')
|
|
|
+ var datasetHeartrate = getTypeData('014', this.rowsInfo)
|
|
|
+ console.log(datasetHeartrate, '心率【红空圆】')
|
|
|
+ var datasetPulse = getTypeData('002', this.rowsInfo)
|
|
|
+ console.log(datasetPulse, '脉搏【红实圆】')
|
|
|
+ var symbolTextArr = getTypeData('012', this.rowsInfo, false)
|
|
|
+ this.symbolTextArr = symbolTextArr
|
|
|
+ console.log(symbolTextArr, '【特殊标记】')
|
|
|
+ // 口表【黑实圆】
|
|
|
+ var datasetPain = getTypeData('001', this.rowsInfo)
|
|
|
+ this.breathData = datasetPain
|
|
|
+ console.log(datasetPain, '口表【黑实圆】')
|
|
|
+ // const circleNode = document.createElement('circle')
|
|
|
+ // circleNode.setAttribute('cx', '179.2439024390244')
|
|
|
+ // circleNode.setAttribute('cy', '582')
|
|
|
+ // circleNode.setAttribute('r', '4')
|
|
|
+ // circleNode.setAttribute('stroke', '#000000')
|
|
|
+ // circleNode.setAttribute('stroke-width', '1')
|
|
|
+ // circleNode.setAttribute('fill', '#FFFFFF')
|
|
|
+ // document.querySelector('.main').appendChild(circleNode)
|
|
|
+ // 创建x轴的比例尺(线性比例尺)
|
|
|
+ var xScale = d3.scaleLinear()
|
|
|
+ .domain([0, 41])
|
|
|
+ .range([9, width - padding.left - padding.right +75])
|
|
|
+ // 创建y轴的比例尺(线性比例尺)
|
|
|
+
|
|
|
+ /* var yScale = d3.scale.linear()
|
|
|
+ .domain([0, d3.max(dataset,function(d) {
|
|
|
+ return d.y;
|
|
|
+ })])
|
|
|
+ .range([height - padding.top - padding.bottom, 0]); */
|
|
|
+ // 体温
|
|
|
+ var yScale = d3.scaleLinear()
|
|
|
+ .domain([33, 42])
|
|
|
+ .range([height - padding.top - padding.bottom , -56])
|
|
|
+ // 脉搏
|
|
|
+ var yScale1 = d3.scaleLinear()
|
|
|
+ .domain([20, 200])
|
|
|
+ .range([height - padding.top - padding.bottom , -55])
|
|
|
+ // 呼吸
|
|
|
+ var yScale2 = d3.scaleLinear()
|
|
|
+ .domain([0, 40])
|
|
|
+ .range([height - padding.top + 22, -55])
|
|
|
+
|
|
|
+ // 创建x轴
|
|
|
+ var xAxis = d3.axisBottom()
|
|
|
+ .scale(xScale)
|
|
|
+ // 创建y轴
|
|
|
+ var yAxis = d3.axisLeft()
|
|
|
+ .scale(yScale)
|
|
|
+ var yAxis1 = d3.axisLeft()
|
|
|
+ .scale(yScale1)
|
|
|
+ var yAxis2 = d3.axisLeft()
|
|
|
+ .scale(yScale2)
|
|
|
+
|
|
|
+ // 添加SVG元素并与x轴进行“绑定”
|
|
|
+ main
|
|
|
+ .append('g')
|
|
|
+ .attr('class', 'axis')
|
|
|
+ .attr(
|
|
|
+ 'transform',
|
|
|
+ 'translate(0,' + (height - padding.top - padding.bottom) + ')'
|
|
|
+ )
|
|
|
+ .call(xAxis)
|
|
|
+
|
|
|
+ // 添加SVG元素并与y轴进行“绑定”
|
|
|
+ main
|
|
|
+ .append('g')
|
|
|
+ .attr('class', 'axis')
|
|
|
+ .call(yAxis)
|
|
|
+ main
|
|
|
+ .append('g')
|
|
|
+ .attr('class', 'axis')
|
|
|
+ .call(yAxis1)
|
|
|
+ main
|
|
|
+ .append('g')
|
|
|
+ .attr('class', 'axis')
|
|
|
+ .call(yAxis2)
|
|
|
+
|
|
|
+ // 添加折线
|
|
|
+ var line = d3.line()
|
|
|
+ .x(function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .y(function (d) {
|
|
|
+ return yScale(d.y)
|
|
|
+ })
|
|
|
+ var line1 = d3
|
|
|
+ .line()
|
|
|
+ .x(function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .y(function (d) {
|
|
|
+ return yScale1(d.y)
|
|
|
+ })
|
|
|
+ var line2 = d3
|
|
|
+ .line()
|
|
|
+ .x(function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .y(function (d) {
|
|
|
+ return yScale(d.y)
|
|
|
+ })
|
|
|
+ // .interpolate('linear')
|
|
|
+ // 选择线条的类型
|
|
|
+
|
|
|
+ // 添加path元素,并通过line()计算出值来赋值
|
|
|
+ main
|
|
|
+ .append('path')
|
|
|
+ .attr('class', 'line tiwenline')
|
|
|
+ .attr('d', line(dataset))
|
|
|
+ main
|
|
|
+ .append('path')
|
|
|
+ .attr('class', 'line')
|
|
|
+ .attr('d', line(datasetAnus))
|
|
|
+ main
|
|
|
+ .append('path')
|
|
|
+ .attr('class', 'line')
|
|
|
+ .attr('d', line2(datasetPain))
|
|
|
+ main
|
|
|
+ .append('path')
|
|
|
+ .attr('class', 'line redColor')
|
|
|
+ .attr('d', line1(datasetHeartrate))
|
|
|
+ main
|
|
|
+ .append('path')
|
|
|
+ .attr('class', 'line redColor')
|
|
|
+ .attr('d', line1(datasetPulse))
|
|
|
+ // main.append('path').attr('class', 'line').attr('d', line3(dataset))
|
|
|
+
|
|
|
+ // 添加点
|
|
|
+
|
|
|
+ /* 黑实圆--start */
|
|
|
+ // main
|
|
|
+ // .selectAll('rect')
|
|
|
+ // .data(dataset_mouth)
|
|
|
+ // .enter()
|
|
|
+ // .append('circle')
|
|
|
+ // .attr('cx', function (d) {
|
|
|
+ // return xScale(d.x)
|
|
|
+ // })
|
|
|
+ // .attr('cy', function (d) {
|
|
|
+ // return yScale(d.y)
|
|
|
+ // })
|
|
|
+ // .attr('r', 4)
|
|
|
+ // .attr('fill', function (d, i) {
|
|
|
+ // return 'black'
|
|
|
+ // })
|
|
|
+ /* 黑实圆--end */
|
|
|
+
|
|
|
+ /* 黑空圆--start */
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(datasetAnus)
|
|
|
+ .enter()
|
|
|
+ .append('circle')
|
|
|
+ .attr('cx', function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .attr('cy', function (d) {
|
|
|
+ return yScale(d.y)
|
|
|
+ })
|
|
|
+ .attr('r', 4)
|
|
|
+ .attr('stroke', '#000000')
|
|
|
+ .attr('stroke-width', 1)
|
|
|
+ .attr('fill', '#FFFFFF')
|
|
|
+ /* 黑空圆--end */
|
|
|
+
|
|
|
+ /* 红空圆--start */
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(datasetHeartrate)
|
|
|
+ .enter()
|
|
|
+ .append('circle')
|
|
|
+ .attr('cx', function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .attr('cy', function (d) {
|
|
|
+ return yScale1(d.y)
|
|
|
+ })
|
|
|
+ .attr('r', 4)
|
|
|
+ .attr('stroke', '#EE0000')
|
|
|
+ .attr('stroke-width', 1)
|
|
|
+ .attr('fill', '#FFFFFF')
|
|
|
+ /* 红空圆--end */
|
|
|
+
|
|
|
+ /* 红实圆--start */
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(datasetPulse)
|
|
|
+ .enter()
|
|
|
+ .append('circle')
|
|
|
+ .attr('cx', function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .attr('cy', function (d) {
|
|
|
+ return yScale1(d.y)
|
|
|
+ })
|
|
|
+ .attr('r', 4)
|
|
|
+ .attr('fill', '#EE0000')
|
|
|
+ // .on('mouseover', function (d) {
|
|
|
+ // // (1)取得提示显示的位置
|
|
|
+ // var xPosition = parseFloat(d3.select(this).attr('cx')) + 698
|
|
|
+ // var yPosition = parseFloat(d3.select(this).attr('cy')) + 24
|
|
|
+ //
|
|
|
+ // // (2)创建提示条SVG
|
|
|
+ // d3.select('.container svg')
|
|
|
+ // .append('text')
|
|
|
+ // .attr('id', 'tooltip') // 设置id便于移除提示
|
|
|
+ // .attr('x', xPosition)
|
|
|
+ // .attr('y', yPosition)
|
|
|
+ // .attr('text-anchor', 'middle')
|
|
|
+ // .attr('font-family', 'sans-setif')
|
|
|
+ // .attr('font-size', '11px')
|
|
|
+ // .attr('font-weight', 'bold')
|
|
|
+ // .attr('fill', 'white')
|
|
|
+ // .text(d.value)
|
|
|
+ // })
|
|
|
+ // (3)移除提示条SVG
|
|
|
+
|
|
|
+ /* 红实圆--end */
|
|
|
+ /* 黑实圆--start */
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(datasetPain)
|
|
|
+ .enter()
|
|
|
+ .append('circle')
|
|
|
+ .attr('cx', function (d) {
|
|
|
+ return xScale(d.x)
|
|
|
+ })
|
|
|
+ .attr('cy', function (d) {
|
|
|
+ return yScale(d.y)
|
|
|
+ })
|
|
|
+ .attr('r', 4)
|
|
|
+ .attr('stroke', '#000000')
|
|
|
+ .attr('fill', '#000000')
|
|
|
+ /* 黑实圆--end */
|
|
|
+ this.drawx(main, dataset, xScale, yScale)
|
|
|
+ this.initTypes()
|
|
|
+ // this.hoverEvent(main)
|
|
|
+ },
|
|
|
+ drawx (main, dataset, xScale, yScale) {
|
|
|
+ /* 【叉形】--start */
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(dataset)
|
|
|
+ .enter()
|
|
|
+ .append('line')
|
|
|
+ .attr('x1', function (d) {
|
|
|
+ return xScale(d.x) - 4
|
|
|
+ })
|
|
|
+ .attr('y1', function (d) {
|
|
|
+ return yScale(d.y) - 4
|
|
|
+ })
|
|
|
+ .attr('x2', function (d) {
|
|
|
+ return xScale(d.x) + 4
|
|
|
+ })
|
|
|
+ .attr('y2', function (d) {
|
|
|
+ return yScale(d.y) + 4
|
|
|
+ })
|
|
|
+ .attr('stroke', function (d, i) {
|
|
|
+ return 'blue'
|
|
|
+ })
|
|
|
+
|
|
|
+ main
|
|
|
+ .selectAll('rect')
|
|
|
+ .data(dataset)
|
|
|
+ .enter()
|
|
|
+ .append('line')
|
|
|
+ .attr('x1', function (d) {
|
|
|
+ return xScale(d.x) + 4
|
|
|
+ })
|
|
|
+ .attr('y1', function (d) {
|
|
|
+ return yScale(d.y) - 4
|
|
|
+ })
|
|
|
+ .attr('x2', function (d) {
|
|
|
+ return xScale(d.x) -4
|
|
|
+ })
|
|
|
+ .attr('y2', function (d) {
|
|
|
+ return yScale(d.y) + 4
|
|
|
+ })
|
|
|
+ .attr('stroke', function (d,i) {
|
|
|
+ return 'blue'
|
|
|
+ })
|
|
|
+ /* 体温【叉形】--end */
|
|
|
+ },
|
|
|
+ hoverEvent (main) {
|
|
|
+ ///* 鼠标悬停直线--start
|
|
|
+ // var dataset_line = [{x: 0,y: 0}]
|
|
|
+ // main.selectAll('rect')
|
|
|
+ // .data(dataset_line)
|
|
|
+ // .enter()
|
|
|
+ // .append('line')
|
|
|
+ // .attr({
|
|
|
+ // 'x1':100,'y1':-56,
|
|
|
+ // 'x2':100,'y2':582
|
|
|
+ // })
|
|
|
+ // .attr('stroke', function(d, i) {
|
|
|
+ // return 'black';
|
|
|
+ // });
|
|
|
+ // 鼠标悬停直线--end */
|
|
|
+ document.querySelector('.lineColor').style.stroke = 'red'
|
|
|
+ const recordeNode = document.createElement('div')
|
|
|
+ recordeNode.setAttribute('class', 'recorde-text')
|
|
|
+ document.querySelector('.recorde td').append(recordeNode)
|
|
|
+ const allTrtd = document.querySelectorAll('.temperatureChart tr td');
|
|
|
+ [...allTrtd].map(ele => {
|
|
|
+ ele.setAttribute('title', ele.innerText)
|
|
|
+ })
|
|
|
+ /* 鼠标悬停提示框 */
|
|
|
+ var tooltip = d3
|
|
|
+ .select('body')
|
|
|
+ .append('div')
|
|
|
+ .attr('class', 'tooltip')
|
|
|
+ .style('opacity', 0.0)
|
|
|
+
|
|
|
+ main
|
|
|
+ .on('mouseover', function (d) {
|
|
|
+ console.log(d3.event, 'dinfo')
|
|
|
+ console.log(this, d, this.data, 'this dinfo')
|
|
|
+ /*
|
|
|
+ 鼠标移入时,
|
|
|
+ (1)通过 selection.html() 来更改提示框的文字
|
|
|
+ (2)通过更改样式 left 和 top 来设定提示框的位置
|
|
|
+ (3)设定提示框的透明度为1.0(完全不透明)
|
|
|
+ */
|
|
|
+ tooltip
|
|
|
+ .html('呼吸:19次/分<br/>录入信息:2017-11-02<br/>姓名:张三')
|
|
|
+ .style('left', d3.event.pageX + 'px')
|
|
|
+ .style('top', d3.event.pageY + 20 + 'px')
|
|
|
+ .style('opacity', 1.0)
|
|
|
+ console.log(d3.event.target)
|
|
|
+ })
|
|
|
+ .on('mousemove', function (d) {
|
|
|
+ /* 鼠标移动时,更改样式 left 和 top 来改变提示框的位置 */
|
|
|
+ tooltip
|
|
|
+ .style('left', d3.event.pageX + 'px')
|
|
|
+ .style('top', d3.event.pageY + 20 + 'px')
|
|
|
+ // console.log(d3.event.target);
|
|
|
+ })
|
|
|
+ .on('mouseout', function (d) {
|
|
|
+ /* 鼠标移出时,将透明度设定为0.0(完全透明) */
|
|
|
+
|
|
|
+ tooltip.style('opacity', 0.0)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initTypes () {
|
|
|
+ const keyMap = {}
|
|
|
+ this.typesInfo.map(item => {
|
|
|
+ const key = item.typeCode
|
|
|
+ if (keyMap[key]) {
|
|
|
+ keyMap[key].push(item.typeValue)
|
|
|
+ } else {
|
|
|
+ keyMap[key] = [item.typeValue]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.typesViewData = keyMap
|
|
|
+ console.log('this.typesViewData',this.typesViewData)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function getTypeData (type, allData = [], isNumber = true) {
|
|
|
+ return allData
|
|
|
+ .map((rowBOSItem, index) => {
|
|
|
+ const rowBOS = rowBOSItem.rowBOS
|
|
|
+ const cur =
|
|
|
+ rowBOS.find(item => {
|
|
|
+ return item.typeCode === type
|
|
|
+ }) || {}
|
|
|
+ return { x: index, y: (isNumber ? +cur.typeValue : cur.typeValue) || '' }
|
|
|
+ })
|
|
|
+ .filter(item => {
|
|
|
+ return item.y !== ''
|
|
|
+ })
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+ .table_wrap {
|
|
|
+ line-height: normal;
|
|
|
+ }
|
|
|
+ table {
|
|
|
+ font-weight: normal;
|
|
|
+ border-collapse: collapse;
|
|
|
+ font-size: 8px;
|
|
|
+ text-align: center;
|
|
|
+ width: 100%;
|
|
|
+ table-layout: fixed;
|
|
|
+ border: 2px #2f4f4f solid;
|
|
|
+ }
|
|
|
+ td {
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ width: 12px;
|
|
|
+ height: 11px;
|
|
|
+ }
|
|
|
+ .redLineTd {
|
|
|
+ border-right: 1px solid #ff6e71;
|
|
|
+ }
|
|
|
+ .recorde-text {
|
|
|
+ width: 13px;
|
|
|
+ height: 8px;
|
|
|
+ color: #ff0000;
|
|
|
+ font-size: 10px;
|
|
|
+ position: relative;
|
|
|
+ top: -4px;
|
|
|
+ }
|
|
|
+ .table_wrap {
|
|
|
+ position: relative;
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 835px;
|
|
|
+ }
|
|
|
+ .container {
|
|
|
+ /* 高度最好动态计算,不然很容易错位*/
|
|
|
+
|
|
|
+ margin: 30px auto;
|
|
|
+ margin-top: 28px;
|
|
|
+ width: 805px;
|
|
|
+ height: 758px;
|
|
|
+ position: absolute;
|
|
|
+ top: 142px;
|
|
|
+ left: 28px;
|
|
|
+ }
|
|
|
+ .temperature_mark td p {
|
|
|
+ position: relative;
|
|
|
+ top: 0;
|
|
|
+ margin-top: 58px;
|
|
|
+ }
|
|
|
+ .num_wrapper {
|
|
|
+ width: 35px;
|
|
|
+ height: 636px;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+ .pain_wrapper {
|
|
|
+ position: absolute;
|
|
|
+ width: 100%;
|
|
|
+ height: 70px;
|
|
|
+ right: 0;
|
|
|
+ bottom: -3px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ }
|
|
|
+ .zeroline {
|
|
|
+ fill: none;
|
|
|
+ stroke: red;
|
|
|
+ stroke-width: 0.5px;
|
|
|
+ stroke-dasharray: 5 5;
|
|
|
+ }
|
|
|
+ .zerolinetext {
|
|
|
+ fill: red;
|
|
|
+ }
|
|
|
+ .overlay {
|
|
|
+ fill: none;
|
|
|
+ stroke: none;
|
|
|
+ pointer-events: all;
|
|
|
+ }
|
|
|
+ .tooltip {
|
|
|
+ font-family: "宋体";
|
|
|
+ font-size: 10px;
|
|
|
+ line-height: 16px;
|
|
|
+ color: #736269;
|
|
|
+ width: auto;
|
|
|
+ height: auto;
|
|
|
+ padding: 4px;
|
|
|
+ position: absolute;
|
|
|
+ text-align: left;
|
|
|
+ border: 1px solid #736269;
|
|
|
+ background-color: #e7e9f3;
|
|
|
+ border-radius: 2px;
|
|
|
+ background: linear-gradient(#fefdff, #e5e5f1);
|
|
|
+ /* 标准的语法(必须放在最后) */
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+</style>
|
|
|
+<style >
|
|
|
+ .table_wrap {
|
|
|
+ font-family: "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
|
+ }
|
|
|
+ .table_wrap .tick,
|
|
|
+ .table_wrap .domain {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .table_wrap .tbale-label {
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
+ .table_wrap .focusLine {
|
|
|
+ fill: none;
|
|
|
+ stroke: red;
|
|
|
+ stroke-width: 0.5px;
|
|
|
+ }
|
|
|
+ .table_wrap .focusText {
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+ .table_wrap .breath_td_odd {
|
|
|
+ vertical-align: top;
|
|
|
+ font-size: 10px;
|
|
|
+ }
|
|
|
+ .table_wrap .breath_td_even {
|
|
|
+ vertical-align: bottom;
|
|
|
+ font-size: 10px;
|
|
|
+ }
|
|
|
+ .table_wrap .line {
|
|
|
+ fill: none;
|
|
|
+ stroke: black;
|
|
|
+ stroke-width: 2px;
|
|
|
+ }
|
|
|
+ .table_wrap .line.tiwenline {
|
|
|
+ stroke: blue;
|
|
|
+ fill: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .table_wrap .line.redColor{
|
|
|
+ stroke: red;
|
|
|
+ fill: none;
|
|
|
+ }
|
|
|
+ .table_wrap .axis path,
|
|
|
+ .table_wrap .axis line,
|
|
|
+ .table_wrap .line {
|
|
|
+ stroke: #000;
|
|
|
+ fill: none;
|
|
|
+ }
|
|
|
+ .table_wrap .legend {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+ .table_wrap .legend .legend-text {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+ .table_wrap .legend .legend-item {
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+</style>
|