Browse Source

其他统计数据+导出

yuwandanmian 1 year ago
parent
commit
d30893321b
2 changed files with 136 additions and 70 deletions
  1. 11 0
      src/api/excel.js
  2. 125 70
      src/views/otherStatisticsData/index.vue

+ 11 - 0
src/api/excel.js

@@ -118,3 +118,14 @@ export function otherStatisticsDataExport(data) {
     data
   })
 }
+
+
+// 其他统计数据详情导出
+export function otherStatisticsMenuExport(data) {
+  return request_blob({
+    url: `/api/ssbfz/exportAll`,
+    method: 'post',
+    responseType: 'blob',
+    data
+  })
+}

+ 125 - 70
src/views/otherStatisticsData/index.vue

@@ -4,6 +4,29 @@
       <!-- 左侧菜单 -->
       <el-col :span="8">
         <div class="box_wrapper">
+          <el-form :inline="true" :model="exportData" class="demo-form-inline">
+            <el-form-item label="">
+              <el-date-picker
+                v-model="exportData.start_time"
+                type="date"
+                format="yyyy年MM月dd日"
+                value-format="yyyyMMdd"
+                placeholder="开始日期"
+                style="margin-right: 10px; width: 168px;"
+              />
+              <el-date-picker
+                v-model="exportData.end_time"
+                type="date"
+                format="yyyy年MM月dd日"
+                value-format="yyyyMMdd"
+                placeholder="结束日期"
+                style=" width: 168px;"
+              />
+            </el-form-item>
+            <el-form-item style="margin-right: 0;">
+              <el-button type="primary" class="export-btn" @click="onExport">导出所有指标</el-button>
+            </el-form-item>
+          </el-form>
           <el-input placeholder="输入关键字进行过滤" v-model="filterText"></el-input>
           <el-tree
             class="filter-tree"
@@ -64,9 +87,15 @@
 </template>
 
 <script>
+import { otherStatisticsMenuExport } from '@/api/excel'
+
 export default {
   data() {
     return {
+      exportData: {
+        start_time: '',
+        end_time: ''
+      },
       menus: [
         {
           id: 'SSHFSS',
@@ -124,74 +153,66 @@ export default {
           id: 'SSHJXSSJ',
           name: '2.3.14 手术后急性肾衰竭发生例数和发生率',
         },
-        // {
-        //   id: 2315,
-        //   name: '2.3.15 各系统/器官术后并发症发生例数和发生率',
-        //   children: [
-        //     {
-        //       id: 'XTQGXH',
-        //       name: '消化系统术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGXUNHUAN',
-        //       name: '循环系统术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGSJ',
-        //       name: '神经系统术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGYHFQ',
-        //       name: '眼和附器术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGEHRC',
-        //       name: '耳和乳突术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGJRGG',
-        //       name: '肌肉骨骼术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGMNSZ',
-        //       name: '泌尿生殖系统术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 'XTQGKQ',
-        //       name: '口腔术后并发症发生例数',
-        //     },
-        //     {
-        //       id: 23152,
-        //       name: '同期出院患者手术人次数',
-        //     },
-        //   ],
-        // },
-        // {
-        //   id: 2316,
-        //   name: '2.3.16 植入物的并发症(不包括脓毒症)发生例数和发生率',
-        //   children: [
-        //     {
-        //       id: 'ZRWXZHXG',
-        //       name: '(心脏和血管)植入物的并发症(不包括脓毒症)发生例数',
-        //     },
-        //     {
-        //       id: 'ZRWMNSZD',
-        //       name: '(泌尿生殖道)植入物的并发症(不包括脓毒症)发生例数',
-        //     },
-        //     {
-        //       id: 'ZRWGK',
-        //       name: '(骨科)植入物的并发症(不包括脓毒症)发生例数',
-        //     },
-        //     {
-        //       id: 'ZRWQT',
-        //       name: '(其他)植入物的并发症(不包括脓毒症)发生例数',
-        //     },
-        //     {
-        //       id: 23162,
-        //       name: '同期出院患者手术人次数',
-        //     },
-        //   ],
-        // },
+        {
+          id: 'GSTQG',
+          name: '2.3.15 各系统/器官术后并发症发生例数和发生率',
+          children: [
+            {
+              id: 'XTQGXH',
+              name: '消化系统术后并发症发生例数',
+            },
+            {
+              id: 'XTQGXUNHUAN',
+              name: '循环系统术后并发症发生例数',
+            },
+            {
+              id: 'XTQGSJ',
+              name: '神经系统术后并发症发生例数',
+            },
+            {
+              id: 'XTQGYHFQ',
+              name: '眼和附器术后并发症发生例数',
+            },
+            {
+              id: 'XTQGEHRC',
+              name: '耳和乳突术后并发症发生例数',
+            },
+            {
+              id: 'XTQGJRGG',
+              name: '肌肉骨骼术后并发症发生例数',
+            },
+            {
+              id: 'XTQGMNSZ',
+              name: '泌尿生殖系统术后并发症发生例数',
+            },
+            {
+              id: 'XTQGKQ',
+              name: '口腔术后并发症发生例数',
+            }
+          ],
+        },
+        {
+          id: 'ZRW',
+          name: '2.3.16 植入物的并发症(不包括脓毒症)发生例数和发生率',
+          children: [
+            {
+              id: 'ZRWXZHXG',
+              name: '(心脏和血管)植入物的并发症(不包括脓毒症)发生例数',
+            },
+            {
+              id: 'ZRWMNSZD',
+              name: '(泌尿生殖道)植入物的并发症(不包括脓毒症)发生例数',
+            },
+            {
+              id: 'ZRWGK',
+              name: '(骨科)植入物的并发症(不包括脓毒症)发生例数',
+            },
+            {
+              id: 'ZRWQT',
+              name: '(其他)植入物的并发症(不包括脓毒症)发生例数',
+            },
+          ],
+        },
         {
           id: 'YZBFZ',
           name: '2.3.17 移植的并发症发生例数和发生率',
@@ -237,11 +258,11 @@ export default {
   },
   computed: {
     cloumn1() {
-      const str = this.ruleName.split(' ')[1]
+      const str = this.ruleName.split(' ').length === 2 ? this.ruleName.split(' ')[1] : this.ruleName
       return str.replace('发生例数和', '')
     },
     cloumn2() {
-      const str = this.ruleName.split(' ')[1]
+      const str = this.ruleName.split(' ').length === 2 ? this.ruleName.split(' ')[1] : this.ruleName
       return str.replace('和发生率', '')
     }
   },
@@ -251,6 +272,33 @@ export default {
     },
   },
   methods: {
+    // 导出
+    onExport() {
+      const { start_time, end_time } = this.exportData
+      if (!start_time || !end_time) {
+        this.$message.error('请选择导出日期!')
+        return
+      }
+      otherStatisticsMenuExport(this.exportData).then(res => {
+        const content = res.data; // 后台返回二进制数据
+        const blob = new Blob([content]);
+        const fileName = `其他统计数据.csv`;
+        if ('download' in document.createElement('a')) {
+          // 非IE下载
+          const elink = document.createElement('a');
+          elink.download = fileName;
+          elink.style.display = 'none';
+          elink.href = URL.createObjectURL(blob);
+          document.body.appendChild(elink);
+          elink.click();
+          URL.revokeObjectURL(elink.href); // 释放URL 对象
+          document.body.removeChild(elink);
+        } else {
+          // IE10+下载
+          navigator.msSaveBlob(blob, fileName);
+        }
+      });
+    },
     // 列表跳转
     toListPage(row) {
       console.log(row);
@@ -263,6 +311,7 @@ export default {
       return data.name.indexOf(value) !== -1;
     },
     handleNodeClick(data) {
+      console.log(data)
       const { id, name } = data;
       this.ruleId = id;
       this.ruleName = name;
@@ -356,4 +405,10 @@ export default {
 .green {
   color: #67c23a;
 }
+.custom-tree-node {
+  width: 80%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: inline-block;
+}
 </style>