Browse Source

导入导出

morphone1995 4 years ago
parent
commit
fee9e5c790

+ 13 - 0
src/api/config.js

@@ -25,36 +25,47 @@ export default {
     'deleteDiseaseRecord': '/tran/diseaseConfig/deleteRecord',   //诊断-删除映射关系
     'exportDiseaseRecord': '/tran/diseaseConfig/exportExcel',   //诊断-数据导出
     'importDiseaseRecord': '/tran/diseaseConfig/importExcel',   //诊断-数据导入
+    'exportDiseaseModule': '/tran/diseaseConfig/exportExcelModule',   //诊断-数据导入模板导出
+
     'getLisPage': '/tran/lisConfig/getPage',   //检验列表
     'lisIsExistRecord': '/tran/lisConfig/isExistRecord',   //检验-映射关系是否已存在
     'saveOrUpdateLisRecord': '/tran/lisConfig/saveOrUpdateRecord',   //检验-保存或修改映射关系
     'deleteLisRecord': '/tran/lisConfig/deleteRecord',   //检验-删除映射关系
     'exportLisRecord': '/tran/lisConfig/exportExcel',   //检验-数据导出
     'importLisRecord': '/tran/lisConfig/importExcel',   //检验-数据导入
+    'exportLisModule': '/tran/lisConfig/exportExcelModule',   //科室-数据导入模板导出
+
     'getpacsPage': '/tran/pacsConfig/getPage',   //检查列表
     'pacsIsExistRecord': '/tran/pacsConfig/isExistRecord',   //检查-映射关系是否已存在
     'saveOrUpdatePacsRecord': '/tran/pacsConfig/saveOrUpdateRecord',   //检查-保存或修改映射关系
     'deletePacsRecord': '/tran/pacsConfig/deleteRecord',   //检查-删除映射关系
     'exportPacsRecord': '/tran/pacsConfig/exportExcel',   //检查-数据导出
     'importPacsRecord': '/tran/pacsConfig/importExcel',   //检查-数据导入
+    'exportPacsModule': '/tran/pacsConfig/exportExcelModule',   //科室-数据导入模板导出
+
     'getDrugPage': '/tran/drugConfig/getPage',   //药品列表
     'drugIsExistRecord': '/tran/drugConfig/isExistRecord',   //药品-映射关系是否已存在
     'saveOrUpdateDrugRecord': '/tran/drugConfig/saveOrUpdateRecord',   //药品-保存或修改映射关系
     'deleteDrugRecord': '/tran/drugConfig/deleteRecord',   //药品-删除映射关系
     'exportDrugRecord': '/tran/drugConfig/exportExcel',   //药品-数据导出
     'importDrugRecord': '/tran/drugConfig/importExcel',   //药品-数据导入
+    'exportDrugModule': '/tran/drugConfig/exportExcelModule',   //科室-数据导入模板导出
+
     'getOperationPage': '/tran/operationConfig/getPage',   //手术/操作列表
     'operationIsExistRecord': '/tran/operationConfig/isExistRecord',   //手术/操作-映射关系是否已存在
     'saveOrUpdateOperationRecord': '/tran/operationConfig/saveOrUpdateRecord',   //手术/操作-保存或修改映射关系
     'deleteOperationRecord': '/tran/operationConfig/deleteRecord',   //手术/操作-删除映射关系
     'exportOperationRecord': '/tran/operationConfig/exportExcel',   //手术/操作-数据导出
     'importOperationRecord': '/tran/operationConfig/importExcel',   //手术/操作-数据导入
+    'exportOperationModule': '/tran/operationConfig/exportExcelModule',   //科室-数据导入模板导出
+
     'getFusionPage': '/tran/transfusionConfig/getPage',   //输血列表
     'fusionIsExistRecord': '/tran/transfusionConfig/isExistRecord',   //输血-映射关系是否已存在
     'saveOrUpdateFusionRecord': '/tran/transfusionConfig/saveOrUpdateRecord',   //输血-保存或修改映射关系
     'deleteFusionRecord': '/tran/transfusionConfig/deleteRecord',   //输血-删除映射关系
     'exportFusionRecord': '/tran/transfusionConfig/exportExcel',   //输血-数据导出
     'importFusionRecord': '/tran/transfusionConfig/importExcel',   //输血-数据导入
+    'exportFusionModule': '/tran/transfusionConfig/exportExcelModule',   //科室-数据导入模板导出
 
     'getDeptPage': '/tran/deptConfig/getPage',   //科室列表
     'deptIsExistRecord': '/tran/deptConfig/isExistRecord',   //科室-映射关系是否已存在
@@ -62,6 +73,8 @@ export default {
     'deleteDeptRecord': '/tran/deptConfig/deleteRecord',   //科室-删除映射关系
     'exportDeptRecord': '/tran/deptConfig/exportExcel',   //科室-数据导出
     'importDeptRecord': '/tran/deptConfig/importExcel',   //科室-数据导入
+    'exportDeptModule': '/tran/deptConfig/exportExcelModule',   //科室-数据导入模板导出
+
 
     'getHospitalInfo': '/tran/hospitalInfo/getHospitalInfo',   //医院信息——获取医院信息
     'saveHospitalInfoRecord': '/tran/hospitalInfo/saveRecord',   //医院信息——修改医院信息

+ 38 - 0
src/api/icss.js

@@ -189,6 +189,44 @@ export default {
   importDeptRecord(param) {
     return axios.post(urls.importDeptRecord, param);
   },
+  exportDeptModule(param) {
+    return axios.post(urls.exportDeptModule, param, {
+      responseType: 'blob',
+    });
+  },
+
+  exportDiseaseModule(param) {
+    return axios.post(urls.exportDiseaseModule, param, {
+      responseType: 'blob',
+    });
+  },
+  exportLisModule(param) {
+    return axios.post(urls.exportLisModule, param, {
+      responseType: 'blob',
+    });
+  },
+  exportPacsModule(param) {
+    return axios.post(urls.exportPacsModule, param, {
+      responseType: 'blob',
+    });
+  },
+  exportDrugModule(param) {
+    return axios.post(urls.exportDrugModule, param, {
+      responseType: 'blob',
+    });
+  },
+  exportOperationModule(param) {
+    return axios.post(urls.exportOperationModule, param, {
+      responseType: 'blob',
+    });
+  },
+  exportFusionModule(param) {
+    return axios.post(urls.exportFusionModule, param, {
+      responseType: 'blob',
+    });
+  },
+
+
 
   getHospitalInfo(param) {
     return axios.post(urls.getHospitalInfo, param);

+ 4 - 4
src/components/common/HomePage.vue

@@ -33,7 +33,7 @@
           width="600"
           top="20vh"
           center>
-          <el-form :model="ruleForm2" status-icon :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm">
+          <el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm">
             <el-form-item label="旧密码:" prop="oldpass">
               <el-input type="password" placeholder="请输入旧密码" @keyup.enter.native="submitForm('ruleForm2')" v-model.trim="ruleForm2.oldpass" auto-complete="off"></el-input>
             </el-form-item>            
@@ -376,9 +376,9 @@
       margin-left: 15px;
     }
     .changewords{
-      /deep/ .el-icon-circle-close{
-        display: none;
-      }
+      // /deep/ .el-icon-circle-close{
+      //   display: none;
+      // }
       .dialog-footer{
         .el-button{
           // float: right;

+ 88 - 15
src/components/icss/dept/DeptManage.vue

@@ -3,8 +3,15 @@
     <crumbs title="科室关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button type="text" class="downTemplate">导入模板下载</el-button>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="医院科室名称:">
@@ -74,7 +81,11 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      fileName: '',
+      formData: {},
+      headers: {},
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -286,17 +297,71 @@ export default {
         });
     },
 
-    // 跳转至导入页面
+    // 导入模板
+    exportModule() {
+      api.exportDeptModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '科室导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
+
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportDeptRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      // this.fileName = e.target.files[0].name; // 表单同步显示
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importDeptRecord(formData, header).then(res => {
+        // console.log('导入文件结果', '===================', res);
+        if (res.data === ''  &&  res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList(); // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -316,9 +381,12 @@ export default {
 }
 .downTemplate {
   margin-right: 8px;
- span{
+  span {
     color: #02a7f0;
- }
+  }
+}
+#upFile {
+  display: none !important;
 }
 .el-message-box {
   /deep/.cancelBtn {
@@ -342,4 +410,9 @@ export default {
     border-color: transparent;
   }
 }
+.exportConfirm {
+  .cancelSure {
+    display: none;
+  }
+}
 </style>

+ 82 - 12
src/components/icss/disease/ChemicalAndCommonMapping.vue

@@ -3,7 +3,15 @@
     <crumbs title="诊断关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="医院诊断名称:">
@@ -79,7 +87,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -291,17 +300,69 @@ export default {
         });
     },
 
-    // 跳转至导入页面
+    // 导入模板
+    exportModule() {
+      api.exportDiseaseModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '诊断导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
+
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportDiseaseRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importDiseaseRecord(formData, header).then(res => {
+        if (res.data === ''  &&  res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList()  // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -319,6 +380,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 82 - 12
src/components/icss/drug/DrugManage.vue

@@ -3,7 +3,15 @@
     <crumbs title="药品关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="医院药品名称:">
@@ -74,7 +82,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -286,17 +295,69 @@ export default {
         });
     },
 
-    // 跳转至导入页面
+    // 导入模板
+    exportModule() {
+      api.exportDrugModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '药品导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
+
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportDrugRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importDrugRecord(formData, header).then(res => {
+        if (res.data === ''  &&  res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList()  // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -314,6 +375,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 81 - 12
src/components/icss/fusion/Fusion.vue

@@ -3,7 +3,15 @@
     <crumbs title="输血关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="医院用血类型:">
@@ -74,7 +82,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -285,18 +294,69 @@ export default {
           // this.$message({ message: '导出失败', type: 'waring' });
         });
     },
+    // 导入模板
+    exportModule() {
+      api.exportFusionModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '输血导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
 
-    // 跳转至导入页面
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportFusionRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importFusionRecord(formData, header).then(res => {
+        if (res.data === '' && res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList(); // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -314,6 +374,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 81 - 12
src/components/icss/lis/Lis.vue

@@ -3,7 +3,15 @@
     <crumbs title="检验关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="检验套餐:">
@@ -78,7 +86,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -291,18 +300,69 @@ export default {
           // this.$message({ message: '导出失败', type: 'waring' });
         });
     },
+    // 导入模板
+    exportModule() {
+      api.exportLisModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '检验导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
 
-    // 跳转至导入页面
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportLisRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importLisRecord(formData, header).then(res => {
+        if (res.data === '' && res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList(); // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -320,6 +380,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 82 - 11
src/components/icss/operation/Operation.vue

@@ -3,6 +3,15 @@
     <crumbs title="手术/操作关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="importPage">导入</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
@@ -79,7 +88,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -291,17 +301,69 @@ export default {
         });
     },
 
-    // 跳转至导入页面
+    // 导入模板
+    exportModule() {
+      api.exportOperationModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '手术/操作导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
+
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportOperationRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importOperationRecord(formData, header).then(res => {
+        if (res.data === '' && res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList(); // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -319,6 +381,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 81 - 12
src/components/icss/pacs/Pacs.vue

@@ -3,7 +3,15 @@
     <crumbs title="检查关联维护" style="min-width: 980px">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item>
-          <el-button size="mini" @click="importPage">导入</el-button>
+          <el-button type="text" class="downTemplate" @click="exportModule">导入模板下载</el-button>
+          <input
+            type="file"
+            name="uploadfile "
+            id="upFile"
+            @change="uploadFile($event)"
+            accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+          />
+          <el-button size="mini" @click="importPage">{{uploadInfo}}</el-button>
           <el-button size="mini" @click="exportData">导出</el-button>
         </el-form-item>
         <el-form-item label="医院检查项目:">
@@ -74,7 +82,8 @@ export default {
       pageSize: config.pageSize,
       pageSizeArr: config.pageSizeArr,
       pageLayout: config.pageLayout,
-      total: 0
+      total: 0,
+      uploadInfo: '导入'
     };
   },
   created() {
@@ -285,18 +294,69 @@ export default {
           // this.$message({ message: '导出失败', type: 'waring' });
         });
     },
+    // 导入模板
+    exportModule() {
+      api.exportPacsModule().then(res => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, '检查导入模板.xls');
+          }, 1500);
+        }
+      });
+    },
 
-    // 跳转至导入页面
+    // 点击导入
     importPage() {
-      const pam = this.searched
-        ? {
-            currentPage: this.currentPage,
-            pageSize: this.pageSize,
-            filter: this.filter
-          }
-        : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'ImportPacsRecord', params: pam });
-      // this.$router.push({ name: 'ImportDiseaseRecord'});
+      let inp = document.getElementById('upFile');
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        }
+      };
+      this.uploadInfo = '导入中...';
+      api.importPacsRecord(formData, header).then(res => {
+        if (res.data === '' && res.status === 200) {
+          this.$confirm(`导入成功`, '', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm'
+          })
+            .then(() => {})
+            .catch(() => {});
+          this.getDataList(); // 重新获取列表
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        } else {
+          this.$confirm(`${res.data.msg}`, '提示', {
+            confirmButtonText: '确定',
+            // cancelButtonText: '取消',
+            cancelButtonClass: 'cancelSure',
+            confirmButtonClass: 'sure',
+            customClass: 'exportConfirm',
+            type: 'warning'
+          })
+            .then(() => {})
+            .catch(() => {});
+
+          setTimeout(() => {
+            this.uploadInfo = '导入';
+          }, 300);
+        }
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
     }
   }
 };
@@ -314,6 +374,15 @@ export default {
 .pagination {
   min-width: 1010px;
 }
+.downTemplate {
+  margin-right: 8px;
+  span {
+    color: #02a7f0;
+  }
+}
+#upFile {
+  display: none !important;
+}
 .el-message-box {
   /deep/.cancelBtn {
     background-color: #d7d7d7;

+ 1 - 1
src/components/icss/plan/AddPlan.vue

@@ -435,7 +435,7 @@ export default {
           }
         ], // 方案配置信息
         planName: this.form.planName,
-        planStatus: 0
+        planStatus: 1   // 1 启用    默认启用
       };
       if (this.isEdit) {
         // 编辑状态,需要额外添加ID