| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="打印" prop="dyzt"> |
| | | <el-select |
| | | v-model="queryParams.dyzt" |
| | | placeholder="请选择" |
| | | @change="handleDyztChange" |
| | | style="width: 100px" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsOne" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-select v-model="queryParams.dyzt" placeholder="请选择" @change="handleDyztChange" style="width: 100px"> |
| | | <el-option v-for="item in optionsOne" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <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="hb" |
| | | /> |
| | | <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="tjCompName" |
| | | style="margin-left: 20px" |
| | | > |
| | | <el-select |
| | | :remote-method="getRemoteData" |
| | | v-model="queryParams.tjCompName" |
| | | value-key="drugManufacturerId" |
| | | style="width: 180px" |
| | | remote |
| | | filterable |
| | | placeholder="请选择单位名称" |
| | | clearable |
| | | @change="searchSelect" |
| | | > |
| | | <el-option |
| | | v-for="dict in CompanyList" |
| | | :key="dict.drugManufacturerId" |
| | | :label="dict.cnName" |
| | | :value="dict" |
| | | /> |
| | | <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px"> |
| | | <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId" |
| | | style="width: 180px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect"> |
| | | <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <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 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-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-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> |
| | | |
| | |
| | | v-hasPermi="['hosp:order:export']">导出</el-button> |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="viewReport" |
| | | >批量体检报告打印</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="single" |
| | | @click="jiankangReport" |
| | | >健康检查表打印</el-button |
| | | > |
| | | <el-button type="primary" size="mini" :disabled="single" @click="jiankangReport">健康检查表打印</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" |
| | | :loading="isLoading" |
| | | @click="baogaoyulan" |
| | | >报告预览</el-button |
| | | > |
| | | <el-button type="primary" size="mini" :disabled="single" :loading="isLoading" |
| | | @click="baogaoyulan">报告预览</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | :disabled="single" |
| | | :loading="isChexiao" |
| | | @click="chexiao" |
| | | >撤销报告</el-button |
| | | > |
| | | <el-button type="primary" size="mini" :disabled="single" :loading="isChexiao" @click="chexiao">撤销报告</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div id="main111"> |
| | |
| | | </div> --> |
| | | |
| | | <template> |
| | | <el-table |
| | | border |
| | | style="margin: 14px; width: 77%" |
| | | v-loading="loading" |
| | | :default-sort="{ prop: 'reportTime', order: 'descending' }" |
| | | :data="orderList" |
| | | @selection-change="handleSelectionChange" |
| | | ref="multipleTable" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="40px" |
| | | align="center" |
| | | height="10px" |
| | | fixed="left" |
| | | /> |
| | | <el-table border style="margin: 14px; width: 77%" v-loading="loading" |
| | | :default-sort="{ prop: 'reportTime', order: 'descending' }" :data="orderList" |
| | | @selection-change="handleSelectionChange" ref="multipleTable"> |
| | | <el-table-column type="selection" width="40px" align="center" height="10px" fixed="left" /> |
| | | <!-- <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" height="10px" /> --> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | prop="tjCustomerName" |
| | | height="10px" |
| | | width="90px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="性别" |
| | | align="center" |
| | | prop="tjCustomerSex" |
| | | width="55px" |
| | | height="10px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <el-table-column label="姓名" align="center" prop="tjCustomerName" height="10px" width="90px" |
| | | :show-overflow-tooltip="true" /> |
| | | <el-table-column label="性别" align="center" prop="tjCustomerSex" width="55px" height="10px" |
| | | :show-overflow-tooltip="true"> |
| | | <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" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="电话" |
| | | align="center" |
| | | prop="tjCustomerPhone" |
| | | :show-overflow-tooltip="true" |
| | | height="10px" |
| | | width="110px" |
| | | /> |
| | | <el-table-column |
| | | label="体检类型" |
| | | align="center" |
| | | prop="tjType" |
| | | height="10px" |
| | | width="80px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <el-table-column label="年龄" align="center" prop="tjCustomerAge" height="10px" width="60px" |
| | | :show-overflow-tooltip="true" /> |
| | | <el-table-column label="电话" align="center" prop="tjCustomerPhone" :show-overflow-tooltip="true" height="10px" |
| | | width="110px" /> |
| | | <el-table-column label="体检类型" align="center" prop="tjType" height="10px" width="80px" |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.dict_team" |
| | | :value="scope.row.tjType" |
| | | /> |
| | | <dict-tag :options="dict.type.dict_team" :value="scope.row.tjType" /> |
| | | </template> |
| | | <!-- <template slot-scope="scope"> |
| | | <span v-if="scope.row.tjType == '1'">团队</span> |
| | | <span v-if="scope.row.tjType == '2'">个人</span> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="体检号" |
| | | align="center" |
| | | prop="tjNumber" |
| | | :show-overflow-tooltip="true" |
| | | width="160px" |
| | | /> |
| | | <el-table-column |
| | | label="所选套餐" |
| | | align="center" |
| | | prop="pacName" |
| | | height="10px" |
| | | :show-overflow-tooltip="true" |
| | | 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" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <el-table-column label="体检号" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px" /> |
| | | <el-table-column label="所选套餐" align="center" prop="pacName" height="10px" :show-overflow-tooltip="true" |
| | | 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" |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="报告时间" |
| | | align="center" |
| | | prop="reportTime" |
| | | width="155px" |
| | | height="10px" |
| | | sortable |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <el-table-column label="报告时间" align="center" prop="reportTime" width="155px" height="10px" sortable |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.reportTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="打印时间" |
| | | align="center" |
| | | prop="printLastTime" |
| | | width="155px" |
| | | height="10px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <el-table-column label="打印时间" align="center" prop="printLastTime" width="155px" height="10px" |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.printLastTime) }}</span> |
| | | </template> |
| | |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-drawer title="我是标题" :visible.sync="drawer" :with-header="false"> |
| | | <div class="drawer1"> |
| | | <div class="drawer2"> |
| | | <span>体检人:{{ gation.tjCustomerName }}</span |
| | | ><br /> |
| | | <span>体检人:{{ gation.tjCustomerName }}</span><br /> |
| | | <span>联系电话:{{ gation.tjCustomerPhone }}</span> |
| | | </div> |
| | | <span class="drawer6">基本信息</span> |
| | |
| | | <span>体检号:{{ gation.tjNumber }}</span> |
| | | <span>报告时间:{{ gation.createTime }}</span> |
| | | <span>体检时间:{{ gation.finishTime }}</span> |
| | | <el-button type="primary" plain size="mini" @click="viewReport1" |
| | | >最近一次体检报告</el-button |
| | | > |
| | | <el-button type="primary" plain size="mini" @click="viewReport1">最近一次体检报告</el-button> |
| | | </div> |
| | | </div> |
| | | <span class="drawer6">调查问卷</span> |
| | | <div> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | label-width="80px" |
| | | style="margin-top: 20px" |
| | | > |
| | | <el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px"> |
| | | <el-form-item label="调查结果:"> |
| | | <el-select v-model="value" placeholder="请选择调查结果"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="血压:" style="width: 300px" prop="pressure"> |
| | | <el-input |
| | | v-model="form.pressure" |
| | | placeholder="请输入血压" |
| | | ></el-input> |
| | | <el-input v-model="form.pressure" placeholder="请输入血压"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="低压:" |
| | | placeholder="请输入低压" |
| | | style="width: 300px" |
| | | prop="lowPressure" |
| | | > |
| | | <el-input |
| | | v-model="form.lowPressure" |
| | | placeholder="请输入低压" |
| | | ></el-input> |
| | | <el-form-item label="低压:" placeholder="请输入低压" style="width: 300px" prop="lowPressure"> |
| | | <el-input v-model="form.lowPressure" placeholder="请输入低压"></el-input> |
| | | </el-form-item> |
| | | <div style="margin-left: 20px"> |
| | | <el-form-item label="1.是否吸烟"> |
| | |
| | | </div> |
| | | </el-drawer> |
| | | |
| | | <el-dialog |
| | | title="PDF 预览" |
| | | :visible.sync="dialogVisible" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-dialog title="PDF 预览" :visible.sync="dialogVisible" :close-on-click-modal="false"> |
| | | <div class="main"> |
| | | <iframe |
| | | id="printIframe" |
| | | :src="url" |
| | | frameborder="0" |
| | | style="width: 100%; height: 100%" |
| | | ></iframe> |
| | | <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | title="导诊单" |
| | | :visible.sync="daoZhenDan" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <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> |
| | | <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <div |
| | | style=" |
| | | <div style=" |
| | | 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" |
| | | > |
| | | <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 style="width: 48%; margin-top: 10px"> |
| | | 姓名:{{ item.tjCustomerName }} |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | class="dia" |
| | | title="PDF 预览" |
| | | :visible.sync="dialogVisibles" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <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> |
| | | <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> |
| | | <el-form :model="forms" ref="form" :inline="true" label-width="76px" style="margin-top: 10px"> |
| | | <el-form-item label="" prop="radios"> |
| | | <el-select filterable v-model="forms.radios" placeholder="请选择打印健康检查表类型" clearable |
| | | > |
| | | <el-option v-for="dict in radiosList" :key="dict.dictValue" :label="dict.dictLabel" |
| | | :value="dict.dictValue" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- <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="dialogVisiblese = false">取 消</el-button> |
| | | <el-button type="primary" @click="timjiao">确 定</el-button> |
| | |
| | | queryCompany, |
| | | addbatch, |
| | | } from "@/api/team/tuanti"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import { chownSync } from "fs"; |
| | | export default { |
| | | dicts: ["dict_team"], |
| | |
| | | DataList: [], |
| | | DataList1: [], |
| | | CheckBox: {}, |
| | | forms:{ |
| | | radios:"" |
| | | }, |
| | | // 打印失败 |
| | | failList: [], |
| | | // 打印成功 |
| | |
| | | orderList: [], |
| | | CompanyList: [], |
| | | ordersList: [], |
| | | radiosList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | |
| | | |
| | | jiankangReport() { |
| | | this.dialogVisiblese = true; |
| | | let dictType = "jimu_lx" |
| | | getDicts(dictType).then(res => { |
| | | console.log(res.data) |
| | | this.radiosList = res.data |
| | | }) |
| | | }, |
| | | timjiao() { |
| | | if (this.radios == "1") { |
| | | this.mobanId = "912502827716915200"; |
| | | } else { |
| | | this.mobanId = "912519857543262208"; |
| | | } |
| | | // if (this.radios == "1") { |
| | | // this.mobanId = "912502827716915200"; |
| | | // } else { |
| | | // this.mobanId = "912519857543262208"; |
| | | // } |
| | | const tjNum = this.report; |
| | | const viewNum = this.mobanId; |
| | | const viewNum = this.forms.radios; |
| | | const params = { viewNum, tjNum }; |
| | | this.$tab.openPage("健康证检查表", "/report/jiankangzheng", params); |
| | | let tjNumber = this.report[0]; |
| | |
| | | // 已打印 -> 设置默认登记时间 |
| | | this.getdate(); |
| | | } |
| | | this.handleQuery(); |
| | | // this.handleQuery(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |