yuwandanmian 1 年之前
父节点
当前提交
bb265677b4

+ 20 - 0
src/api/excel.js

@@ -9,3 +9,23 @@ export function userSearchLogExport(data) {
     data: data
   })
 }
+
+// 疾病库模板导出
+export function illnessTemplateExport(data) {
+  return request_blob({
+    url: `/disease/templateExport`,
+    method: 'post',
+    responseType: 'blob',
+    data: data
+  })
+}
+
+// 疾病库导出
+export function illnessExport(data) {
+  return request_blob({
+    url: `/disease/diseaseExport`,
+    method: 'post',
+    responseType: 'blob',
+    data: data
+  })
+}

+ 11 - 1
src/views/knowledge/illness/components/SearchBox.vue

@@ -25,6 +25,8 @@
             <el-checkbox label="JJ">检验</el-checkbox>
             <el-checkbox label="BFZ">并发症</el-checkbox>
             <el-checkbox label="CKWX">参考文献</el-checkbox>
+            <el-checkbox label="SSMC">手术名称</el-checkbox>
+            <el-checkbox label="SSBM">手术编码</el-checkbox>
             <el-checkbox label="created_at">创建时间</el-checkbox>
             <el-checkbox label="updated_at">更新时间</el-checkbox>
           </el-checkbox-group>
@@ -79,6 +81,12 @@
           <el-form-item label="">
             <el-input v-model="data.CKWX" placeholder="参考文献" />
           </el-form-item>
+          <el-form-item label="">
+            <el-input v-model="data.SSMC" placeholder="手术名称" />
+          </el-form-item>
+          <el-form-item label="">
+            <el-input v-model="data.SSBM" placeholder="手术编码" />
+          </el-form-item>
           <el-form-item label="">
             <el-date-picker
               v-model="data.createStartTime"
@@ -148,7 +156,9 @@ export default {
           createStartTime: '',
           createEndTime: '',
           updateStartTime: '',
-          updateEndTime: ''
+          updateEndTime: '',
+          SSMC: '',
+          SSBM: ''
         }
       }
     },

+ 64 - 0
src/views/knowledge/illness/components/TableBox.vue

@@ -1,5 +1,10 @@
 <template>
   <div class="app-container">
+    <div class="btn-box">
+      <el-button type="primary" icon="el-icon-upload" @click="onExcelDownload">导入</el-button>
+      <el-button type="primary" icon="el-icon-download" @click="onExport">导出</el-button>
+      <el-button type="primary" plain icon="el-icon-download" @click="onTemplateExport">模板导出</el-button>
+    </div>
     <el-table
       v-loading="loading"
       :data="data"
@@ -105,6 +110,20 @@
         width="200"
         show-overflow-tooltip
       />
+      <el-table-column
+        v-if="codes.includes('SSMC')"
+        prop="SSMC"
+        label="手术名称"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        v-if="codes.includes('SSBM')"
+        prop="SSBM"
+        label="手术编码"
+        width="200"
+        show-overflow-tooltip
+      />
       <el-table-column
         v-if="codes.includes('created_at')"
         prop="created_at"
@@ -134,6 +153,7 @@
 
 <script>
 import { illnessDelete } from '@/api/knowledge'
+import { illnessTemplateExport, illnessExport } from '@/api/excel'
 
 export default {
   props: {
@@ -177,10 +197,54 @@ export default {
     // 编辑
     onEdit(row) {
       this.$emit('edit', row)
+    },
+    // 模板导出
+    onTemplateExport() {
+      illnessTemplateExport().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)
+        }
+      })
+    },
+    // 模板导出
+    onExport() {
+      illnessExport().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)
+        }
+      })
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
+.btn-box {
+  text-align: right;
+  margin-bottom: 15px;
+}
 </style>

+ 15 - 13
src/views/knowledge/illness/index.vue

@@ -20,7 +20,7 @@ import TableBoxVue from './components/TableBox.vue'
 import { userSearchLogExport } from '@/api/excel'
 import { illnessList } from '@/api/knowledge'
 import CreateDaialogVue from './components/CreateDaialog.vue'
-// import { dateFormat } from '@/filters/index'
+import { dateFormat } from '@/filters/index'
 
 export default {
   components: {
@@ -49,7 +49,9 @@ export default {
         createStartTime: '',
         createEndTime: '',
         updateStartTime: '',
-        updateEndTime: ''
+        updateEndTime: '',
+        SSMC: '',
+        SSBM: ''
       },
       tableData: [],
       tableShowCode: [
@@ -68,7 +70,9 @@ export default {
         'BFZ',
         'CKWX',
         'created_at',
-        'updated_at'
+        'updated_at',
+        'SSMC',
+        'SSBM'
       ],
       paginationData: {
         total: 0,
@@ -111,10 +115,10 @@ export default {
         JJ,
         BFZ,
         CKWX,
-        // createStartTime,
-        // createEndTime,
-        // updateStartTime,
-        // updateEndTime,
+        createStartTime,
+        createEndTime,
+        updateStartTime,
+        updateEndTime,
         SSMC,
         SSBM
       } = this.searchData
@@ -134,17 +138,15 @@ export default {
         JJ,
         BFZ,
         CKWX,
-        // createStartTime,
-        // createEndTime,
-        // updateStartTime,
-        // updateEndTime,
         SSMC,
         SSBM,
         page,
         page_size
       }
-      // params.start_time = start_time ? dateFormat(start_time, 'YYYYMMDD') : ''
-      // params.end_time = end_time ? dateFormat(end_time, 'YYYYMMDD') : ''
+      params.createStartTime = createStartTime ? dateFormat(createStartTime, 'YYYYMMDD') : ''
+      params.createEndTime = createEndTime ? dateFormat(createEndTime, 'YYYYMMDD') : ''
+      params.updateStartTime = updateStartTime ? dateFormat(updateStartTime, 'YYYYMMDD') : ''
+      params.updateEndTime = updateEndTime ? dateFormat(updateEndTime, 'YYYYMMDD') : ''
       this.loading = true
       illnessList(params).then(res => {
         const { p } = res