Browse Source

预约登记报表

master
mch 2 years ago
parent
commit
f05a712ba9
  1. 5
      src/router/index.js
  2. 4
      src/views/Home.vue
  3. 153
      src/views/doctorCheck/personnelBatch.vue

5
src/router/index.js

@ -244,6 +244,11 @@ const routes = [
name: "总检医生诊台", name: "总检医生诊台",
component: () => import("../views/doctorCheck/sumDoctorCheck.vue"), component: () => import("../views/doctorCheck/sumDoctorCheck.vue"),
}, },
{
path: "/personnelBatch",
name: "人员预约登记",
component: () => import("../views/doctorCheck/personnelBatch.vue"),
},
//---------------------- 体 检 end ---------------------- //---------------------- 体 检 end ----------------------
], ],
}, },

4
src/views/Home.vue

@ -247,6 +247,10 @@
<el-dropdown-item <el-dropdown-item
@click.native="$router.push({ path: '/sumDoctorCheck' })" @click.native="$router.push({ path: '/sumDoctorCheck' })"
>总检医生诊台</el-dropdown-item >总检医生诊台</el-dropdown-item
>
<el-dropdown-item
@click.native="$router.push({ name: '/personnelBatch' }.catch(()=>{}))"
>人员预约登记</el-dropdown-item
> >
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>

153
src/views/doctorCheck/personnelBatch.vue

@ -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",
});
// BlobExcel
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>
Loading…
Cancel
Save