a.vue 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <template>
  2. <div class="main-contain">
  3. <div class="position">
  4. <bread-crumb :crumbs="crumbs"></bread-crumb>
  5. </div>
  6. <div class="app-container">
  7. <div class="cell clearfix">
  8. <label class="title">
  9. <span class="name">转归状态</span> :
  10. </label>
  11. <div class="time">
  12. <ul class>
  13. <li
  14. :class="item.state == stateType ? 'active' : ''"
  15. @click="selectLapseTo(item.state)"
  16. v-for="item in month"
  17. :key="item.value"
  18. >{{ item.label }}</li>
  19. </ul>
  20. </div>
  21. <el-date-picker
  22. v-model="listQuery.start_time"
  23. prefix-icon="el-icon-date"
  24. @change="changeTime"
  25. :editable="false"
  26. style="width: 196px;"
  27. type="date"
  28. placeholder="选择日期时间"
  29. align="right"
  30. format="yyyy-MM-dd"
  31. value-format="yyyy-MM-dd"
  32. :picker-options="pickerOptions"
  33. ></el-date-picker>
  34. <span class>-</span>
  35. <el-date-picker
  36. v-model="listQuery.end_time"
  37. prefix-icon="el-icon-date"
  38. @change="changeEndTime"
  39. :editable="false"
  40. style="width: 196px;"
  41. type="date"
  42. placeholder="选择日期时间"
  43. align="right"
  44. format="yyyy-MM-dd"
  45. value-format="yyyy-MM-dd"
  46. :picker-options="pickerOptions"
  47. ></el-date-picker>
  48. </div>
  49. <el-container>
  50. <div style="width:150px">
  51. <div class="tableTitle">患者列表</div>
  52. <el-table :data="patientsData" border style="width: 100%;" height="500" :row-style="{ color: '#303133' }"
  53. :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
  54. highlight-current-row
  55. @current-change="handleChange">
  56. <el-table-column prop="dialysis_no" label="透析号" width="80">
  57. <template slot-scope="scope">{{scope.row.dialysis_no}}</template>
  58. </el-table-column>
  59. <el-table-column prop="name" label="姓名" width="80">
  60. <template slot-scope="scope">{{ scope.row.name }}</template>
  61. </el-table-column>
  62. </el-table>
  63. </div>
  64. <div style="padding-left:10px;flex:1">
  65. <div class="tableTitle">统计图</div>
  66. <div>
  67. <line-chart :options="chart"></line-chart>
  68. </div>
  69. </div>
  70. </el-container>
  71. </div>
  72. </div>
  73. </template>
  74. <script>
  75. const moment = require('moment')
  76. import { GetOICData } from "@/api/qcd";
  77. import PieChart from "../qcd/components/BarChart";
  78. import { uParseTime } from "@/utils/tools";
  79. import BreadCrumb from "@/xt_pages/components/bread-crumb";
  80. export default {
  81. name: "dialysisTotal",
  82. components: {
  83. PieChart,
  84. BreadCrumb
  85. },
  86. data() {
  87. return {
  88. pickerOptions: {
  89. disabledDate(time) {
  90. let threeMonths = new Date(new Date().setFullYear(new Date().getFullYear()-1)).getTime() - 24 * 3600 * 1000;
  91. return time.getTime() > Date.now() || time.getTime() < threeMonths;;
  92. }
  93. },
  94. crumbs: [
  95. { path: false, name: "质控管理" },
  96. { path: false, name: "基本信息统计" }
  97. ],
  98. listQuery: {
  99. start_time: "",
  100. end_time: "",
  101. page: 1,
  102. limit: 10
  103. },
  104. stateType: 0,
  105. month: [
  106. { value: 0, label: "本月", state: 0 },
  107. { value: 1, label: "近三个月", state: 1 },
  108. { value: 2, label: "近半年", state: 2 },
  109. { value: 3, label: "近一年", state: 3 },
  110. { value:4,label:"自定义",state:4}
  111. ],
  112. };
  113. },
  114. methods: {
  115. },
  116. created() {
  117. },
  118. };
  119. </script>
  120. <style rel="stylesheet/scss" lang="scss" scoped>
  121. .tableTitle {
  122. font-size: 16px;
  123. color: #000;
  124. font-weight: bold;
  125. margin-bottom: 10px;
  126. }
  127. .infoBox {
  128. display: flex;
  129. flex-wrap: wrap;
  130. .infoOne {
  131. margin-right: 30px;
  132. margin-top: 30px;
  133. .titleBox {
  134. display: flex;
  135. align-items: center;
  136. }
  137. .point {
  138. display: inline-block;
  139. width: 7px;
  140. height: 7px;
  141. background: linear-gradient(
  142. 90deg,
  143. rgba(169, 224, 243, 1),
  144. rgba(159, 189, 252, 1)
  145. );
  146. border-radius: 50%;
  147. }
  148. .point1 {
  149. width: 7px;
  150. height: 7px;
  151. background: linear-gradient(
  152. 90deg,
  153. rgba(255, 215, 192, 1),
  154. rgba(255, 153, 148, 1)
  155. );
  156. border-radius: 50%;
  157. }
  158. .point2 {
  159. width: 7px;
  160. height: 7px;
  161. background: linear-gradient(
  162. 90deg,
  163. rgba(215, 195, 253, 1),
  164. rgba(179, 168, 247, 1)
  165. );
  166. border-radius: 50%;
  167. }
  168. .infoTitle {
  169. font-size: 16px;
  170. font-weight: bold;
  171. margin-left: 5px;
  172. color: #000;
  173. }
  174. .borderBox {
  175. width: 340px;
  176. min-height: 140px;
  177. background: rgba(255, 255, 255, 1);
  178. border: 1px solid rgba(229, 229, 229, 1);
  179. border-radius: 10px;
  180. padding: 0 14px 20px;
  181. margin-top: 10px;
  182. p {
  183. font-size: 14px;
  184. color: #000;
  185. margin: 10px 0 3px;
  186. }
  187. }
  188. .borderBox1 {
  189. width: 340px;
  190. min-height: 140px;
  191. background: rgba(255, 255, 255, 1);
  192. border: 1px solid rgba(229, 229, 229, 1);
  193. border-radius: 10px;
  194. padding: 0 14px 20px;
  195. margin-top: 10px;
  196. p {
  197. font-size: 14px;
  198. color: #000;
  199. margin: 10px 0 3px;
  200. }
  201. }
  202. .borderBox2 {
  203. width: 340px;
  204. min-height: 140px;
  205. background: rgba(255, 255, 255, 1);
  206. border: 1px solid rgba(229, 229, 229, 1);
  207. border-radius: 10px;
  208. padding: 0 14px 20px;
  209. margin-top: 10px;
  210. p {
  211. font-size: 14px;
  212. color: #000;
  213. margin: 10px 0 3px;
  214. }
  215. }
  216. }
  217. }
  218. </style>
  219. <style lang="scss">
  220. .infoBox {
  221. .infoOne {
  222. .borderBox {
  223. .el-progress-bar__inner {
  224. background: linear-gradient(
  225. 90deg,
  226. rgba(169, 224, 243, 1),
  227. rgba(159, 189, 252, 1)
  228. );
  229. }
  230. .el-progress-bar{
  231. margin-right: -59px;
  232. padding-right: 60px;
  233. }
  234. }
  235. .borderBox1 {
  236. .el-progress-bar__inner {
  237. background: linear-gradient(
  238. 90deg,
  239. rgba(255, 215, 192, 1),
  240. rgba(255, 153, 148, 1)
  241. );
  242. }
  243. .el-progress-bar{
  244. margin-right: -59px;
  245. padding-right: 60px;
  246. }
  247. }
  248. .borderBox2 {
  249. .el-progress-bar__inner {
  250. background: linear-gradient(
  251. 90deg,
  252. rgba(215, 195, 253, 1),
  253. rgba(179, 168, 247, 1)
  254. );
  255. }
  256. .el-progress-bar{
  257. margin-right: -59px;
  258. padding-right: 60px;
  259. }
  260. }
  261. }
  262. }
  263. </style>