dialyze_after.vue 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. <template>
  2. <div class="main-contain">
  3. <div class="position">
  4. <div>
  5. <span>
  6. <el-button @click="return_click" type="text" icon="el-icon-arrow-left">返回</el-button>
  7. </span>&nbsp;&nbsp;
  8. <span>患者透后体重分析</span>
  9. </div>
  10. </div>
  11. <div class="app-container">
  12. <div class="page_patientControlAnalysis">
  13. <div style="display: flex;">
  14. <div>
  15. 日期:
  16. <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
  17. <el-option
  18. v-for="item in date_options"
  19. :key="item.value"
  20. :label="item.label"
  21. :value="item.value">
  22. </el-option>
  23. </el-select>
  24. </div>
  25. <div style="margin: 0 10px;">
  26. <el-date-picker
  27. v-model="start_date"
  28. type="date"
  29. value-format="yyyy-MM-dd"
  30. placeholder="选择日期"
  31. style="width: 150px;">
  32. </el-date-picker>
  33. <span>-</span>
  34. <el-date-picker
  35. v-model="end_date"
  36. type="date"
  37. value-format="yyyy-MM-dd"
  38. placeholder="选择日期"
  39. style="width: 150px;">
  40. </el-date-picker>
  41. </div>
  42. <div>
  43. <el-button type="primary" @click="sete_click">查询</el-button>
  44. <el-button type="primary" @click="Download_click">下载</el-button>
  45. </div>
  46. </div>
  47. <!-- 图表 -->
  48. <div ref="mychart">
  49. <div class="echart" id="mychart" style="width:100%;height:60vh"></div>
  50. </div>
  51. <div style="position: fixed;right: 5%;top: 50vh;">
  52. <el-popover
  53. placement="left"
  54. title="提示"
  55. width="500"
  56. trigger="click"
  57. content="1.统计时间段内所有患者每次透析后,透后体重是否在干体重的±0.3范围内。">
  58. <img src="@/assets/img/xiang.png" alt="" style="height: 20px;width: 20px;" slot="reference">
  59. <!-- <el-button slot="reference">click 激活</el-button> -->
  60. </el-popover>
  61. </div>
  62. </div>
  63. </div>
  64. <!-- 弹窗 -->
  65. <div>
  66. <el-dialog
  67. title="详情"
  68. :visible.sync="dialyze_dialog"
  69. width="80%">
  70. <div>
  71. <div style="display: flex;margin-bottom: 20px;">
  72. <div style="flex: 2;display: flex;flex-wrap:wrap">
  73. <div>
  74. 日期:
  75. <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
  76. <el-option
  77. v-for="item in date_options"
  78. :key="item.value"
  79. :label="item.label"
  80. :value="item.value">
  81. </el-option>
  82. </el-select>
  83. </div>
  84. <div style="margin:0 10px;">
  85. <el-date-picker
  86. v-model="start_date"
  87. type="date"
  88. value-format="yyyy-MM-dd"
  89. placeholder="选择日期"
  90. style="width: 150px;">
  91. </el-date-picker>
  92. <span>-</span>
  93. <el-date-picker
  94. v-model="end_date"
  95. type="date"
  96. value-format="yyyy-MM-dd"
  97. placeholder="选择日期"
  98. style="width: 150px;">
  99. </el-date-picker>
  100. </div>
  101. <div>
  102. 体重增长:
  103. <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
  104. <el-option :key="0" label="不限" :value="0"></el-option>
  105. <el-option
  106. v-for="item in dialyze_options"
  107. :key="item.id"
  108. :label="item.name"
  109. :value="item.id">
  110. </el-option>
  111. </el-select>
  112. </div>
  113. <div>
  114. 干体重:
  115. <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
  116. <el-option :key="0" label="不限" :value="0"></el-option>
  117. <el-option
  118. v-for="item in dialyze_options"
  119. :key="item.id"
  120. :label="item.name"
  121. :value="item.id">
  122. </el-option>
  123. </el-select>
  124. </div>
  125. <div>
  126. 透后体重:
  127. <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
  128. <el-option :key="0" label="不限" :value="0"></el-option>
  129. <el-option
  130. v-for="item in dialyze_options"
  131. :key="item.id"
  132. :label="item.name"
  133. :value="item.id">
  134. </el-option>
  135. </el-select>
  136. </div>
  137. <div >
  138. <el-input v-model="input" placeholder="搜索患者姓名"></el-input>
  139. </div>
  140. </div>
  141. <div style="flex: 1;">
  142. <div>
  143. <el-button type="primary" @click="deil_click">查询</el-button>
  144. <el-button type="primary" @click="exportExcel">导出</el-button>
  145. </div>
  146. </div>
  147. </div>
  148. <el-table :data="tableData" border style="width: 100%"
  149. :header-cell-style="{textAlign: 'center'}"
  150. :cell-style="{ textAlign: 'center' }"
  151. height="380">
  152. <el-table-column
  153. prop="index"
  154. label="序号"
  155. width="">
  156. </el-table-column>
  157. <el-table-column
  158. prop="dialysis_no"
  159. label="透析号"
  160. width="">
  161. </el-table-column>
  162. <el-table-column
  163. prop="name"
  164. label="患者姓名">
  165. </el-table-column>
  166. <el-table-column
  167. prop="name"
  168. label="性别"
  169. width="">
  170. </el-table-column>
  171. <el-table-column
  172. prop="name"
  173. label="年龄"
  174. width="">
  175. </el-table-column>
  176. <el-table-column
  177. prop="date"
  178. label="透析日期"
  179. width="">
  180. </el-table-column>
  181. <el-table-column
  182. prop="mode_name"
  183. label="干体重"
  184. width="">
  185. </el-table-column>
  186. <el-table-column
  187. prop="dialyszers"
  188. label="前次透后体重">
  189. </el-table-column>
  190. <el-table-column
  191. prop="date"
  192. label="透前体重"
  193. width="">
  194. </el-table-column>
  195. <el-table-column
  196. prop="mode_name"
  197. label="体重增加"
  198. width="">
  199. </el-table-column>
  200. <el-table-column
  201. prop="dialyszers"
  202. label="透后体重">
  203. </el-table-column>
  204. </el-table>
  205. <div style="text-align: right;margin-top: 10px;">
  206. <el-pagination
  207. @size-change="handleSizeChange"
  208. @current-change="handleCurrentChange"
  209. :current-page="currentPage"
  210. :page-sizes="[50,100, 200, 300, 400]"
  211. :page-size="limit"
  212. layout="total, sizes, prev, pager, next, jumper"
  213. :total="total">
  214. </el-pagination>
  215. </div>
  216. </div>
  217. <span slot="footer" class="dialog-footer">
  218. <el-button @click="dialyze_dialog = false">取 消</el-button>
  219. <el-button type="primary" @click="dialyze_dialog = false">确 定</el-button>
  220. </span>
  221. </el-dialog>
  222. </div>
  223. </div>
  224. </template>
  225. <script>
  226. import * as echarts from 'echarts';
  227. import XLSX from 'xlsx';
  228. import { uParseTime } from "@/utils/tools";
  229. import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
  230. import { forEach } from 'jszip';
  231. import html2canvas from "html2canvas"
  232. export default {
  233. components:{
  234. },
  235. data(){
  236. return{
  237. date_value:4,
  238. start_date:'',
  239. end_date:this.getTime(new Date()),
  240. mode:'',
  241. date_mode:'',
  242. source:'',
  243. dialyze_value:0,
  244. dialyze_dialog:false,
  245. currentPage:1,
  246. limit:50,
  247. total:0,
  248. tableData:[],
  249. dialyze_options:[],
  250. date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
  251. {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
  252. ],
  253. modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
  254. { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
  255. { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
  256. { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
  257. { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
  258. { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
  259. { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
  260. ],
  261. date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
  262. source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
  263. input:'',
  264. }
  265. },
  266. methods:{
  267. // 返回
  268. return_click(){
  269. this.$router.push('/Dialysisanalysis/qualitycontrol/weightblood')
  270. },
  271. // 数据源
  272. getecharts(){
  273. var chartDom = document.getElementById('mychart')
  274. var myChart = echarts.init(chartDom);
  275. const params ={
  276. start_date:this.start_date,
  277. end_date:this.end_date,
  278. }
  279. Getdialyzer(params).then(response =>{
  280. console.log('ressponse',response.data.data);
  281. if(response.data.state ==1){
  282. console.log('bbbbbbbbb',response.data.data);
  283. const list = response.data.data.data
  284. const xAxis =[]
  285. const yAxis = []
  286. list.forEach(item =>{
  287. xAxis.push(item.name)
  288. yAxis.push(item.count)
  289. })
  290. this.bar_xAxis = xAxis
  291. const options = []
  292. for(let i in xAxis){
  293. const arr ={
  294. id:i+1,
  295. name:xAxis[i]
  296. }
  297. options.push(arr)
  298. }
  299. this.dialyze_options = options
  300. const option = {
  301. xAxis: {
  302. type: 'category',
  303. data: xAxis,
  304. axisLabel:{
  305. interval:0,
  306. }
  307. },
  308. yAxis: {
  309. type: 'value'
  310. },
  311. series: [
  312. {
  313. data:yAxis ,
  314. type: 'bar',
  315. barWidth: '25%',
  316. label: {
  317. normal: {
  318. show: true,
  319. position: 'top',
  320. formatter: '{c}',
  321. textStyle:{
  322. color: 'black',//字体颜色
  323. fontSize: 13//字体大小
  324. }
  325. },
  326. },
  327. itemStyle:{
  328. normal:{
  329. color:function (params){
  330. // const colorarr=['#FFA333','#A155E8','#6D91FF','#A233A2'];
  331. var colorarr = [["#A9E0F3", "#9FBDFC"],["#FFD7C0", "#FF9994"]]
  332. var index = params.dataIndex;
  333. if (params.dataIndex >= colorarr.length) {
  334. index = params.dataIndex % colorarr.length;
  335. }
  336. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  337. { offset: 0, color: colorarr[index][0] },
  338. // { offset: 0.5, color: colorList[index][1] },
  339. { offset: 1, color: colorarr[index][1] }
  340. ]);
  341. }
  342. }
  343. }
  344. }
  345. ]
  346. }
  347. myChart.setOption(option);
  348. myChart.on('click',params =>{
  349. this.dialyze_dialog = true
  350. console.log('vvvvv',params);
  351. this.Getdialyzerdetail(params.name)
  352. })
  353. }
  354. })
  355. },
  356. // 导出excel
  357. exportExcel(){
  358. let tableData = [
  359. ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
  360. ]
  361. this.tableData.forEach((item,index) =>{
  362. let rowdata=[]
  363. rowdata=[
  364. item.index,
  365. item.dialysis_no,
  366. item.name,
  367. item.date,
  368. item.mode_name,
  369. item.dialyszers,
  370. ]
  371. tableData.push(rowdata)
  372. })
  373. let workSheet = XLSX.utils.aoa_to_sheet(tableData);
  374. let bookNew = XLSX.utils.book_new();
  375. XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
  376. let name = '透析器使用统计'+ '.xlsx'
  377. XLSX.writeFile(bookNew, name) // 保存的文件名
  378. },
  379. // 查询
  380. sete_click(){
  381. this.getecharts()
  382. },
  383. // 详情查询
  384. deil_click(){
  385. this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
  386. },
  387. // 下载
  388. Download_click(){
  389. const options ={
  390. allowTaint: true,
  391. useCORS: true
  392. }
  393. html2canvas(this.$refs.mychart,options).then(canvas =>{
  394. // const imageSrc = canvas.toDataURL();
  395. const imageUrl = canvas.toDataURL("image/png");
  396. // console.log('5555',imageUrl);
  397. // // const base = this.url.split(',')[1]
  398. // // console.log('2222',base);
  399. const blob = this.dataURLtoBlob(imageUrl)
  400. // console.log('4444',blob);
  401. const url = URL.createObjectURL(blob);
  402. // const file = (this.url).blob();
  403. // console.log('1111',url);
  404. var link= document.createElement("a");
  405. // //将生成的图片url赋值给a标签的href属性
  406. link.href = url;
  407. // //设置下载的文件名
  408. link.download = "透析器使用统计.jpg";
  409. // // 将a标签插入dom中
  410. console.log('link',link);
  411. document.body.appendChild(link);
  412. //模拟点击事件触发下载
  413. link.click();
  414. // 完成之后销毁创建的a标签
  415. document.body.removeChild(link);
  416. })
  417. },
  418. // 选择日期
  419. datachange(eve){
  420. if(eve ==1){
  421. this.start_date = this.getPreviousDate(7)
  422. this.end_date = this.getTime(new Date())
  423. }else if(eve==2){
  424. this.start_date = this.getFirstDayOfWeek(new Date())
  425. this.end_date = this.getTime(new Date())
  426. console.log('this.start_date', this.start_date);
  427. }else if(eve ==3){
  428. var date=new Date()
  429. date.setDate(date.getDate()-7 - date.getDay() + 1);
  430. var m =''
  431. var d = ''
  432. if(date.getMonth() + 1<10){
  433. m = '0'+(date.getMonth() + 1)
  434. }else{
  435. m = date.getMonth() + 1
  436. }
  437. if(date.getDate()<10){
  438. d = '0'+date.getDate()
  439. }else{
  440. d = date.getDate()
  441. }
  442. // this.start_date = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() ;
  443. this.start_date = date.getFullYear() + "-" + m + "-" + d ;
  444. date.setDate(date.getDate() +6);
  445. var mm = ''
  446. var dd = ''
  447. if(date.getMonth() + 1<10){
  448. mm = '0'+(date.getMonth() + 1)
  449. }else{
  450. mm = date.getMonth() + 1
  451. }
  452. if(date.getDate()<10){
  453. dd = '0'+date.getDate()
  454. }else{
  455. dd = date.getDate()
  456. }
  457. // if(date.getMonth() + 1<10)
  458. // this.end_date = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
  459. this.end_date = date.getFullYear() + "-" + mm + "-" + dd ;
  460. console.log('this.end_date',this.end_date);
  461. }else if(eve ==4){
  462. this.start_date = this.getFirstDayOfMonth(new Date())
  463. this.end_date = this.getTime(new Date())
  464. }else if(eve ==5){
  465. this.getLastMonthFirstDay()
  466. this.getLastMonthLastDay()
  467. }else if(eve == 6){
  468. this.start_date = this.getFirstDayOfYear(new Date())
  469. this.end_date = this.getTime(new Date())
  470. }else if(eve == 7){
  471. this.getLastYearFirstDay()
  472. this.getLastYearLastDay()
  473. }
  474. console.log('eve',eve);
  475. },
  476. // 详情数据源
  477. Getdialyzerdetail(name){
  478. const params={
  479. dialyzer:name,
  480. start_date:this.start_date,
  481. end_date:this.end_date,
  482. page:this.currentPage,
  483. limit:this.limit,
  484. }
  485. Getdialyzerdetail(params).then(response =>{
  486. if(response.data.state == 1){
  487. const list = response.data.data.prescriptions
  488. const table=[]
  489. list.forEach((item,index)=>{
  490. const obj ={
  491. index:index+1,
  492. dialysis_no:item.patient.dialysis_no,
  493. name:item.patient.name,
  494. date:this.getTime(item.record_date),
  495. mode_name:this.getmode(item.mode_id),
  496. dialyszers:item.dialysis_dialyszers +' '+ item.dialysis_irrigation+' '+item.dialysis_strainer
  497. // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
  498. }
  499. table.push(obj)
  500. })
  501. this.tableData = table
  502. this.total = response.data.data.total
  503. }
  504. console.log('77777',response);
  505. })
  506. },
  507. // 首先定义一个getPreviousDate函数,方便调用
  508. getPreviousDate(numOfDays) {
  509. var date = new Date();
  510. date.setDate(date.getDate() - numOfDays);
  511. var year = date.getFullYear();
  512. if(date.getMonth() + 1<10){
  513. var month = '0'+(date.getMonth() + 1);
  514. }else{
  515. var month = date.getMonth() + 1;
  516. }
  517. if(date.getDate()<10){
  518. var day = '0'+date.getDate();
  519. }else{
  520. var day = date.getDate();
  521. }
  522. return year + "-" + month + "-" + day;
  523. },
  524. // 本周
  525. getFirstDayOfWeek(date){
  526. var weekday = date.getDay()
  527. date.setDate(date.getDate()-weekday+1);//往前算(weekday-1)天,年份、月份会自动变化
  528. return this.timeFormat(date);
  529. },
  530. // 本月
  531. getFirstDayOfMonth (date) {
  532. date.setDate(1);
  533. return this.timeFormat(date);
  534. },
  535. //上个月第一天
  536. getLastMonthFirstDay() {
  537. var date = new Date();
  538. date.setDate(0);
  539. var y = date.getFullYear(); //获取年份
  540. var m = date.getMonth() + 1; //获取月份
  541. m = m < 10 ? "0" + m : m;
  542. this.start_date = [y, m, '01'].join("-")
  543. // return [y, m, '01'].join("-");
  544. },
  545. // 上个月最后一天
  546. getLastMonthLastDay() {
  547. var date = new Date();
  548. date.setDate(0);
  549. var y = date.getFullYear(); //获取年份
  550. var m = date.getMonth() + 1; //获取月份
  551. var d = new Date(y, m, 0).getDate(); //获取当月最后一日
  552. m = m < 10 ? "0" + m : m; //月份补 0
  553. d = d < 10 ? "0" + d : d; //日数补 0
  554. this.end_date = [y, m, d].join("-")
  555. // return [y, m, d].join("-");
  556. },
  557. // 本年
  558. getFirstDayOfYear (date) {
  559. date.setDate(1);
  560. date.setMonth(0);
  561. return this.timeFormat(date);
  562. },
  563. // 上一年第一天
  564. getLastYearFirstDay() {
  565. let date = new Date();
  566. const year= date.setFullYear(date.getFullYear() - 1); // 设置年份为前一年
  567. const start_month= date.setMonth(0); // 设置月份为1月(注意月份是从0开始的)
  568. const start_day = date.setDate(1); // 设置日期为1日
  569. // const last_month = date.setMonth(11); // 设置月份为12月
  570. // const last_day = date.setDate(0); // 设置日期为0,这将自动设置为该月的最后一天
  571. // this.start_date = year+ "-" +start_month+ "-" +start_day
  572. this.start_date = this.getTime(start_day)
  573. // return this.start_date
  574. },
  575. // 上一年最后一天
  576. getLastYearLastDay() {
  577. let date = new Date();
  578. const year= date.setFullYear(date.getFullYear() - 1); // 设置年份为前一年
  579. const last_month = date.setMonth(12); // 设置月份为12月
  580. const last_day = date.setDate(0);// 设置日期为0,这将自动设置为该月的最后一天
  581. // this.end_date = year+ "-" +last_month+ "-" +last_day
  582. this.end_date = this.getTime(last_day)
  583. console.log('this.end_date',this.end_date);
  584. // return this.end_date;
  585. },
  586. // 日期格式化
  587. timeFormat(date) {
  588. if (!date || typeof(date) === "string") {
  589. this.error("参数异常,请检查...");
  590. }
  591. var y = date.getFullYear(); //年
  592. if(date.getMonth() + 1<10){
  593. var m ='0'+(date.getMonth() + 1); //月
  594. }else{
  595. var m =date.getMonth() + 1; //月
  596. }
  597. if(date.getDate() + 1<10){
  598. var d ='0'+date.getDate(); //日
  599. }else{
  600. var d = date.getDate(); //日
  601. }
  602. // var d = date.getDate(); //日
  603. return y + "-" + m + "-" + d;
  604. },
  605. handleCurrentChange(val){
  606. this.currentPage = val
  607. this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
  608. },
  609. handleSizeChange(val){
  610. this.limit = val
  611. this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
  612. },
  613. // 透析模式
  614. getmode(ids){
  615. const modes=this.modearr
  616. for(let i in modes){
  617. if(ids == modes[i].id){
  618. return modes[i].name
  619. }
  620. }
  621. },
  622. // 转换时间
  623. getTime(val) {
  624. if(val < 0){
  625. return ""
  626. }
  627. if(val == ""){
  628. return ""
  629. }else {
  630. return uParseTime(val, '{y}-{m}-{d}')
  631. }
  632. },
  633. dataURLtoBlob(dataURL) {
  634. const arr = dataURL.split(',');
  635. const mime = arr[0].match(/:(.*?);/)[1];
  636. const bstr = atob(arr[1]);
  637. let n = bstr.length;
  638. const u8arr = new Uint8Array(n);
  639. while (n--) {
  640. u8arr[n] = bstr.charCodeAt(n);
  641. }
  642. return new Blob([u8arr], { type: mime });
  643. },
  644. // 全部透析器
  645. Getdialyzerconfig(){
  646. Getdialyzerconfig().then(response =>{
  647. console.log('666666',response);
  648. })
  649. },
  650. getdialyze(val){
  651. const option = this.dialyze_options
  652. for(let i in option){
  653. if(val == option[i].id){
  654. return option[i].name
  655. }
  656. }
  657. }
  658. },
  659. mounted(){
  660. this.getecharts()
  661. },
  662. created(){
  663. this.start_date = this.getFirstDayOfMonth(new Date())
  664. this.Getdialyzerconfig()
  665. },
  666. }
  667. </script>