3 changed files with 162 additions and 0 deletions
			
			
		@ -0,0 +1,153 @@ | 
			
		|||||
 | 
				<template> | 
			
		||||
 | 
				  <div> | 
			
		||||
 | 
				    <el-dialog | 
			
		||||
 | 
				      title="清选择导入方式" | 
			
		||||
 | 
				      :visible.sync="dialogVisible1" | 
			
		||||
 | 
				      width="50%" | 
			
		||||
 | 
				    > | 
			
		||||
 | 
				      <div class="selectby"> | 
			
		||||
 | 
				        <el-radio v-model="radio" label="1">从Excle导入</el-radio> | 
			
		||||
 | 
				        <el-radio v-model="radio" label="2">备选项</el-radio> | 
			
		||||
 | 
				      </div> | 
			
		||||
 | 
				      <span slot="footer" class="dialog-footer"> | 
			
		||||
 | 
				        <el-button @click="dialogVisible1 = false">取 消</el-button> | 
			
		||||
 | 
				        <el-button type="primary" @click="nextTick">下一步</el-button> | 
			
		||||
 | 
				      </span> | 
			
		||||
 | 
				    </el-dialog> | 
			
		||||
 | 
				    <!-- dialog2 --> | 
			
		||||
 | 
				    <el-dialog title="批量预登记" :visible.sync="dialogVisible2" width="50%"> | 
			
		||||
 | 
				      <div class="heading">导入EXCEL注意事项</div> | 
			
		||||
 | 
				      <div class="mainbody"> | 
			
		||||
 | 
				        <div class="boxtitle"> | 
			
		||||
 | 
				          <div> | 
			
		||||
 | 
				            导入Excel时,Excel的格式必须符合一定规范,该格式的模板文件放在程序 | 
			
		||||
 | 
				          </div> | 
			
		||||
 | 
				          <div>的执行目录下,文件名为:"单位体检人员名单导入模板.xls"</div> | 
			
		||||
 | 
				          <div>注意事项如下:</div> | 
			
		||||
 | 
				          <div>1:姓名不能为空,其余数据可根据实际情况选择是否填写。</div> | 
			
		||||
 | 
				          <div> | 
			
		||||
 | 
				            2:部门、单位分组、性别、婚姻状况、人员类别、体检类别、民族必须与本软件 | 
			
		||||
 | 
				          </div> | 
			
		||||
 | 
				          <div>系统中的名称完全一致。</div> | 
			
		||||
 | 
				          <div> | 
			
		||||
 | 
				            3:年龄和出生日期可以只填一栏,系统将自动对年龄和出生日期进行相互转换。 | 
			
		||||
 | 
				          </div> | 
			
		||||
 | 
				          <div>4:Excel的实际列数不能超过20列。</div> | 
			
		||||
 | 
				        </div> | 
			
		||||
 | 
				      </div> | 
			
		||||
 | 
				      <span slot="footer" class="dialog-footer"> | 
			
		||||
 | 
				        <el-button @click="back2">上一步</el-button> | 
			
		||||
 | 
				        <el-button type="primary" @click="nextstep">下一步</el-button> | 
			
		||||
 | 
				      </span> | 
			
		||||
 | 
				    </el-dialog> | 
			
		||||
 | 
				    <!--  --> | 
			
		||||
 | 
				    <el-dialog title="批量预约登记" :visible.sync="dialogVisible3" width="50%"> | 
			
		||||
 | 
				      <div class="selectfile"> | 
			
		||||
 | 
				        <div> | 
			
		||||
 | 
				          <div><input type="file" accept=".xlsx" @change="onFileChange" /></div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				          <div></div> | 
			
		||||
 | 
				        </div> | 
			
		||||
 | 
				      </div> | 
			
		||||
 | 
				      <span slot="footer" class="dialog-footer"> | 
			
		||||
 | 
				        <el-button @click="back3">上一步</el-button> | 
			
		||||
 | 
				        <el-button type="primary" @click="dialogVisible3 = false" | 
			
		||||
 | 
				          >确 定</el-button | 
			
		||||
 | 
				        > | 
			
		||||
 | 
				      </span> | 
			
		||||
 | 
				    </el-dialog> | 
			
		||||
 | 
				    <!--  --> | 
			
		||||
 | 
				  </div> | 
			
		||||
 | 
				</template> | 
			
		||||
 | 
				<script> | 
			
		||||
 | 
				import ExcelJS from "exceljs"; | 
			
		||||
 | 
				export default { | 
			
		||||
 | 
				  data() { | 
			
		||||
 | 
				    return { | 
			
		||||
 | 
				      radio: "1", | 
			
		||||
 | 
				      dialogVisible1: true, | 
			
		||||
 | 
				      dialogVisible2: false, | 
			
		||||
 | 
				      dialogVisible3: false, | 
			
		||||
 | 
				    }; | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				  methods: { | 
			
		||||
 | 
				    onFileChange(event) { | 
			
		||||
 | 
				      // 获取上传的文件 | 
			
		||||
 | 
				      const file = event.target.files[0]; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      // 调用导入Excel文件的方法 | 
			
		||||
 | 
				      this.importExcelFile(file); | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    importExcelFile(file) { | 
			
		||||
 | 
				      this.filepopupdialogVisible = true; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      console.log("333"); | 
			
		||||
 | 
				      // 创建一个工作簿 | 
			
		||||
 | 
				      const workbook = new ExcelJS.Workbook(); | 
			
		||||
 | 
				      // 读取Excel文件 | 
			
		||||
 | 
				      const reader = new FileReader(); | 
			
		||||
 | 
				      console.log(reader); | 
			
		||||
 | 
				      reader.onload = () => { | 
			
		||||
 | 
				        const buffer = reader.result; | 
			
		||||
 | 
				        const typedArray = new Uint8Array(buffer); | 
			
		||||
 | 
				        const blob = new Blob([typedArray], { | 
			
		||||
 | 
				          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", | 
			
		||||
 | 
				        }); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        // 从Blob中读取Excel文件 | 
			
		||||
 | 
				        workbook.xlsx.load(blob).then((workbook) => { | 
			
		||||
 | 
				          // 获取第一个工作表 | 
			
		||||
 | 
				          const worksheet = workbook.getWorksheet(1); | 
			
		||||
 | 
				          // 处理Excel文件内容 | 
			
		||||
 | 
				          worksheet.eachRow((row, rowNumber) => { | 
			
		||||
 | 
				            // this.importData.push(row.values); | 
			
		||||
 | 
				            // console.log(`第${rowNumber}行的数据:${rowData}`); | 
			
		||||
 | 
				          }); | 
			
		||||
 | 
				        }); | 
			
		||||
 | 
				      }; | 
			
		||||
 | 
				      reader.readAsArrayBuffer(file); | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    nextTick() { | 
			
		||||
 | 
				      if (this.radio == 1) { | 
			
		||||
 | 
				        this.dialogVisible1 = false; | 
			
		||||
 | 
				        this.dialogVisible2 = true; | 
			
		||||
 | 
				      } | 
			
		||||
 | 
				      console.log(this.radio); | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    back3() { | 
			
		||||
 | 
				      this.dialogVisible3 = false; | 
			
		||||
 | 
				      this.dialogVisible2 = true; | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    // 上一步 | 
			
		||||
 | 
				    back2() { | 
			
		||||
 | 
				      this.dialogVisible2 = false; | 
			
		||||
 | 
				      this.dialogVisible1 = true; | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    //下一步 | 
			
		||||
 | 
				    nextstep() { | 
			
		||||
 | 
				      this.dialogVisible3 = true; | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				    loading() {}, | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				}; | 
			
		||||
 | 
				</script> | 
			
		||||
 | 
				<style scoped> | 
			
		||||
 | 
				.selectfile { | 
			
		||||
 | 
				  display: flex; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				.boxtitle { | 
			
		||||
 | 
				  margin-left: 25%; | 
			
		||||
 | 
				  margin-top: 20px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				.mainbody { | 
			
		||||
 | 
				  width: 100%; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				.heading { | 
			
		||||
 | 
				  text-align: center; | 
			
		||||
 | 
				  font-size: 18px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				.selectby { | 
			
		||||
 | 
				  display: flex; | 
			
		||||
 | 
				  justify-content: center; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				</style> | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue