| | |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" style="width:100px" |
| | | @keyup.enter.native="handleQuery" /> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" style="width: 100px" @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="体检号" prop="tjNum"> |
| | | <el-input style="width:170px" v-model="queryParams.tjNum" placeholder="请输入体检号" clearable |
| | | @keyup.enter.native="handleQuery" ref="inputName" @blur="handleQuery" /> |
| | | <el-input style="width: 170px" v-model="queryParams.tjNum" placeholder="请输入体检号" clearable |
| | | @keyup.enter.native="handleQuery" ref="inputName" @blur="hb" /> |
| | | </el-form-item> |
| | | <el-form-item label="报告时间" prop="reportTimeList"> |
| | | <el-date-picker clearable v-model="queryParams.reportTimeList" type="daterange" range-separator="-" |
| | | start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" value-format="yyyy-MM-dd" |
| | | placeholder="请选择出报告时间" style="width: 240px"> |
| | | <el-form-item label="报告时间" prop="createTimeList"> |
| | | <el-date-picker clearable v-model="createTimeList" type="daterange" range-separator="-" |
| | | start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" :default-time="['00:00:00', '23:00:00']" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择出报告时间" @change="dateChangebirthday1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="单位名称" prop="firmId"> |
| | |
| | | </el-select> |
| | | </el-form-item> --> |
| | | |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8" style="margin-left: 10px;"> |
| | | <el-row :gutter="10" class="mb8" style="margin-left: 10px"> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport" |
| | | v-hasPermi="['hosp:order:export']">导出</el-button> |
| | |
| | | <el-button type="primary" size="mini" :disabled="multiple" @click="viewReport">批量体检报告打印</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" :disabled="multiple" @click="jiankangReport">健康检查表打印</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" :disabled="single" @click="baogaoyulan">报告预览</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div id="main111"> |
| | | <el-input style="width: 920px;" v-model="form.name"></el-input> |
| | | <el-input style="width: 920px" v-model="form.name"></el-input> |
| | | </div> |
| | | |
| | | </el-col> |
| | | <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> --> |
| | | </el-row> |
| | |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.tjCustomerSex == '0'">男</span> |
| | | <span v-if="scope.row.tjCustomerSex == '1'">女</span> |
| | | <span v-if="scope.row.tjCustomerSex == '2'">未知</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="年龄" align="center" prop="tjCustomerAge" height="10px" width="60px" |
| | |
| | | width="140px" /> |
| | | <el-table-column label="登记人" align="center" prop="createBy" height="10px" :show-overflow-tooltip="true" |
| | | width="100px" /> |
| | | <el-table-column label="登记时间" align="center" prop="createTime" width="155px" height="10px" |
| | | <el-table-column label="登记时间" align="center" prop="createTime" width="155px" height="10px" |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | |
| | | |
| | | <el-dialog title="导诊单" :visible.sync="daoZhenDan" :close-on-click-modal="false"> |
| | | <div class="main"> |
| | | <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | |
| | | <div style=" |
| | | position: absolute; |
| | | bottom: 100px; |
| | | left: 500px; |
| | | width: 700px; |
| | | display: none; |
| | | "> |
| | | position: absolute; |
| | | bottom: 100px; |
| | | left: 500px; |
| | | width: 700px; |
| | | display: none; |
| | | "> |
| | | <div id="printBill"> |
| | | <barcode :value="barcode" :height="40" :width="2" :margin="0">条形码加载失败</barcode> |
| | | <div style="font-size: 13px; color: #000000" v-for="(item, index) in DataList1" :key="index"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog class="dia" title="PDF 预览" :visible.sync="dialogVisibles" :close-on-click-modal="false"> |
| | | <div class="main"> |
| | | <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe> |
| | | </div> |
| | | </el-dialog> |
| | | <!--:before-close="handleClose" --> |
| | | <el-dialog title="提示" :visible.sync="dialogVisiblese" width="30%" > |
| | | <el-radio v-model="radios" label="1">食品从业人员健康检查表</el-radio> |
| | | <el-radio v-model="radios" label="2">公共场所从业人员检查表</el-radio> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="timjiao">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import print from "print-js"; |
| | | import { getInfo } from "@/api/login"; |
| | | import { |
| | | isPdfOrJimu |
| | | } from "@/api/doctor/checkAll"; |
| | | import { |
| | | listOrder, |
| | | getNumber, |
| | |
| | | hasReport, |
| | | hasPrintCode, |
| | | getOrderListOO, |
| | | getNewDateList |
| | | } from "@/api/hosp/order"; |
| | | import moment from "moment"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | import { SubmitCompany, getCompany, queryCompany } from "@/api/team/tuanti"; |
| | | import { chownSync } from "fs"; |
| | |
| | | name: "Order", |
| | | data() { |
| | | return { |
| | | radios: '1', |
| | | dialogVisiblese: false, |
| | | createTimeList: "", |
| | | // printObj: { |
| | | // id: "box", //打印的区域 |
| | |
| | | label: "空号", |
| | | }, |
| | | ], |
| | | url: "", |
| | | dialogVisibles: false, |
| | | barcode: null, |
| | | value: "", |
| | | dialogVisible: false, |
| | |
| | | dialogVisible: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | tjNumber: "", |
| | | tjNum: "", |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | |
| | | djbeginTime: undefined, |
| | | djendTime: undefined, |
| | | name: undefined, |
| | | tjNum:undefined, |
| | | tjNum: undefined, |
| | | }, |
| | | startTime: "", |
| | | // 表单参数 |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getNowTime(); |
| | | this.getList(); |
| | | // this.getNowTime(); |
| | | |
| | | this.Company(); |
| | | this.getdate(); |
| | | }, |
| | | mounted() { |
| | | this.$nextTick(() => { |
| | |
| | | }); |
| | | }, |
| | | methods: { |
| | | getdate() { |
| | | getNewDateList().then((res) => { |
| | | this.createTimeList= [ |
| | | moment(res.data).format("YYYY-MM-DD 00:00:00"), |
| | | moment(res.data).format("YYYY-MM-DD 23:59:00"), |
| | | ]; |
| | | this.getList(); |
| | | }); |
| | | }, |
| | | // / 处理默认选中当前日期 |
| | | getNowTime() { |
| | | var curDate = new Date().getTime(); |
| | |
| | | // }); |
| | | // }, |
| | | |
| | | jiankangReport() { |
| | | this.dialogVisiblese = true; |
| | | |
| | | }, |
| | | timjiao() { |
| | | if (this.radios == "1") { |
| | | this.mobanId = "912502827716915200"; |
| | | } else { |
| | | this.mobanId = "912519857543262208"; |
| | | } |
| | | const tjNum = this.report; |
| | | const viewNum = this.mobanId; |
| | | const params = { viewNum, tjNum }; |
| | | this.$tab.openPage("健康证检查表", "/report/jiankangzheng", params); |
| | | }, |
| | | baogaoyulan() { |
| | | const tjNumber = this.report[0]; |
| | | console.log(tjNumber) |
| | | isPdfOrJimu(tjNumber).then((response) => { |
| | | if (response.data.flag == "0") { |
| | | const flag = true; |
| | | getPdf(tjNumber, flag).then((response) => { |
| | | if (response.size === 0) { |
| | | const loading = this.$loading({ |
| | | lock: true, |
| | | text: "Loading", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | setTimeout(() => { |
| | | loading.close(); |
| | | }, 3000); |
| | | // this.$message.msgSuccess("报告正在生成,请两分钟后预览!"); |
| | | this.$message({ |
| | | message: "报告正在生成,请两分钟后预览!", |
| | | type: "warning", |
| | | }); |
| | | } else { |
| | | this.dialogVisible = true; |
| | | |
| | | this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | } |
| | | }); |
| | | } else { |
| | | let url = response.data.url |
| | | const params = { url }; |
| | | this.$tab.openPage("健康证检查表", "/report/zongjianjiankangzheng", params); |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | //打印小票 |
| | | printHandle() { |
| | | setTimeout(function () { |
| | |
| | | // 体检报告 |
| | | viewReport() { |
| | | const flag = true; |
| | | this.failList = [] |
| | | this.form.name = "报告打印失败:" |
| | | |
| | | this.failList = []; |
| | | this.form.name = "报告打印失败:"; |
| | | |
| | | if (this.report.length == 1) { |
| | | this.report.forEach(item => { |
| | | this.report.forEach((item) => { |
| | | this.tjNumber = item; |
| | | }) |
| | | }); |
| | | getPdf(this.tjNumber, flag).then((response) => { |
| | | if (response.size == 0) { |
| | | // this.$message.error("该用户体检报告暂未完成!"); |
| | | this.dialogVisible = false; |
| | | this.DataList1.forEach(item => { |
| | | this.DataList1.forEach((item) => { |
| | | if (item.tjNumber === this.tjNumber) { |
| | | this.userId = item.tjCustomerName |
| | | this.form.name += item.tjCustomerName |
| | | this.userId = item.tjCustomerName; |
| | | this.form.name += item.tjCustomerName; |
| | | } |
| | | }) |
| | | this.failList.push( |
| | | { |
| | | tjNumber: this.tjNumber, |
| | | printStatus: 0, |
| | | printBy: this.userId, |
| | | createBy: this.userIds |
| | | }) |
| | | }); |
| | | this.failList.push({ |
| | | tjNumber: this.tjNumber, |
| | | printStatus: 0, |
| | | printBy: this.userId, |
| | | createBy: this.userIds, |
| | | }); |
| | | } else { |
| | | this.dialogVisible = true; |
| | | this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | this.DataList1.forEach(item => { |
| | | this.DataList1.forEach((item) => { |
| | | if (item.tjNumber === this.tjNumber) { |
| | | this.userId = item.tjCustomerName |
| | | this.userId = item.tjCustomerName; |
| | | // this.form.name += item.tjCustomerName |
| | | } |
| | | }) |
| | | this.failList.push( |
| | | { |
| | | tjNumber: this.tjNumber, |
| | | printStatus: 1, |
| | | printBy: this.userId, |
| | | createBy: this.userIds |
| | | }) |
| | | }); |
| | | this.failList.push({ |
| | | tjNumber: this.tjNumber, |
| | | printStatus: 1, |
| | | printBy: this.userId, |
| | | createBy: this.userIds, |
| | | }); |
| | | } |
| | | this.joggle(this.failList) |
| | | this.getList() |
| | | this.joggle(this.failList); |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | for (let i = 0; i < this.report.length; i++) { |
| | |
| | | this.tjNumber = this.report[i]; |
| | | getPdf(this.tjNumber, flag).then((response) => { |
| | | if (response.size == 0) { |
| | | this.failList = [] |
| | | this.DataList1.forEach(item => { |
| | | this.failList = []; |
| | | this.DataList1.forEach((item) => { |
| | | if (item.tjNumber === this.report[i]) { |
| | | this.userId = item.tjCustomerName |
| | | this.userId = item.tjCustomerName; |
| | | if (this.form.name) { |
| | | this.form.name = this.form.name + "," + item.tjCustomerName |
| | | } |
| | | |
| | | this.form.name = |
| | | this.form.name + "," + item.tjCustomerName; |
| | | } |
| | | } |
| | | }) |
| | | this.failList.push( |
| | | { |
| | | tjNumber: this.report[i], |
| | | printStatus: 0, |
| | | printBy: this.userId, |
| | | createBy: this.userIds |
| | | |
| | | }) |
| | | this.joggle(this.failList) |
| | | this.getList() |
| | | }); |
| | | this.failList.push({ |
| | | tjNumber: this.report[i], |
| | | printStatus: 0, |
| | | printBy: this.userId, |
| | | createBy: this.userIds, |
| | | }); |
| | | this.joggle(this.failList); |
| | | this.getList(); |
| | | // this.$message.error("该用户体检报告暂未完成!"); |
| | | this.dialogVisible = false; |
| | | } else { |
| | | this.failList = [] |
| | | this.DataList1.forEach(item => { |
| | | this.failList = []; |
| | | this.DataList1.forEach((item) => { |
| | | if (item.tjNumber === this.report[i]) { |
| | | this.userId = item.tjCustomerName |
| | | this.userId = item.tjCustomerName; |
| | | } |
| | | }) |
| | | this.failList.push( |
| | | { |
| | | tjNumber: this.report[i], |
| | | printStatus: 1, |
| | | printBy: this.userId, |
| | | createBy: this.userIds |
| | | }) |
| | | this.joggle(this.failList) |
| | | this.getList() |
| | | }); |
| | | this.failList.push({ |
| | | tjNumber: this.report[i], |
| | | printStatus: 1, |
| | | printBy: this.userId, |
| | | createBy: this.userIds, |
| | | }); |
| | | this.joggle(this.failList); |
| | | this.getList(); |
| | | // this.dialogVisible = true; |
| | | // this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | const newBlob = []; |
| | | newBlob.push(response) |
| | | const blob = new Blob(newBlob, { type: 'application/pdf' }) |
| | | var date = (new Date()).getTime() |
| | | var ifr = document.createElement('iframe') |
| | | ifr.style.frameborder = 'no' |
| | | ifr.style.display = 'none' |
| | | ifr.style.pageBreakBefore = 'always' |
| | | ifr.setAttribute('id', 'printPdf' + date) |
| | | ifr.setAttribute('name', 'printPdf' + date) |
| | | ifr.src = window.URL.createObjectURL(blob) |
| | | document.body.appendChild(ifr) |
| | | this.doPrint('printPdf' + date) |
| | | window.URL.revokeObjectURL(ifr.src) // 释放URL 对象 |
| | | newBlob.push(response); |
| | | const blob = new Blob(newBlob, { type: "application/pdf" }); |
| | | var date = new Date().getTime(); |
| | | var ifr = document.createElement("iframe"); |
| | | ifr.style.frameborder = "no"; |
| | | ifr.style.display = "none"; |
| | | ifr.style.pageBreakBefore = "always"; |
| | | ifr.setAttribute("id", "printPdf" + date); |
| | | ifr.setAttribute("name", "printPdf" + date); |
| | | ifr.src = window.URL.createObjectURL(blob); |
| | | document.body.appendChild(ifr); |
| | | this.doPrint("printPdf" + date); |
| | | window.URL.revokeObjectURL(ifr.src); // 释放URL 对象 |
| | | } |
| | | }); |
| | | } |
| | |
| | | }, |
| | | |
| | | doPrint(val) { |
| | | var ordonnance = document.getElementById(val).contentWindow |
| | | var ordonnance = document.getElementById(val).contentWindow; |
| | | setTimeout(() => { |
| | | ordonnance.print() |
| | | }, 100) |
| | | ordonnance.print(); |
| | | }, 100); |
| | | }, |
| | | |
| | | |
| | | joggle(failList) { |
| | | getprint(failList).then((res) => { |
| | | }); |
| | | getprint(failList).then((res) => { }); |
| | | }, |
| | | |
| | | // 最近一次体检报告 |
| | |
| | | }, |
| | | /** 查询体检记录列表 */ |
| | | getList() { |
| | | this.queryParams.djbeginTime = this.startTime[0]; |
| | | this.queryParams.djendTime = this.startTime[1]; |
| | | console.log(this.queryParams) |
| | | this.queryParams.djbeginTime = this.createTimeList[0]; |
| | | this.queryParams.djendTime = this.createTimeList[1]; |
| | | this.loading = true; |
| | | getInfo().then((response) => { |
| | | this.userIds = response.user.userId |
| | | this.userIds = response.user.userId; |
| | | }); |
| | | getOrderListOO(this.queryParams).then((response) => { |
| | | this.orderList = response.data.list; |
| | |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | |
| | | this.form = { |
| | | orderId: null, |
| | | tjType: null, |
| | |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | hb() { |
| | | if (this.queryParams.tjNum != undefined) { |
| | | this.handleQuery(); |
| | | } |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.createTimeList =[] |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | |
| | | this.report = selection.map((item) => item.tjNumber); |
| | | }, |
| | | |
| | | |
| | | |
| | | investigation(row) { |
| | | this.gation = row; |
| | | this.drawer = true; |
| | | }, |
| | | |
| | | |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | |
| | | } |
| | | |
| | | #main111 .el-input__inner { |
| | | border: none !important; |
| | | |
| | | border: none !important; |
| | | box-shadow: none !important; |
| | | |
| | | box-shadow: none !important; |
| | | |
| | | padding: 0px; //前边边距去掉 |
| | | |
| | | padding: 0px; //前边边距去掉 |
| | | } |
| | | |
| | | #printIframe::-webkit-scrollbar { |