| | |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | style="width: 120px" |
| | | v-model="queryParams.name" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="idCard"> |
| | | <el-input |
| | | v-model="queryParams.idCard" |
| | | placeholder="请输入身份证号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="phoe"> |
| | | <el-input |
| | | v-model="queryParams.phoe" |
| | | placeholder="请输入联系电话" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | style="width: 140px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="所在地" prop="szd"> |
| | | <el-input |
| | | style="width: 120px" |
| | | v-model="queryParams.szd" |
| | | placeholder="请输入所在地" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select |
| | | :remote-method="getRemoteData" |
| | | v-model="queryParams.company" |
| | | remote |
| | | default-first-option |
| | | allow-create |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择单位名称" |
| | | clearable |
| | | @change="idFn1" |
| | | > |
| | | <el-option |
| | | v-for="dict in CompanyList" |
| | | :key="dict.cnName" |
| | | :label="dict.cnName" |
| | | :value="dict.drugManufacturerId" |
| | | /> |
| | | </el-select> |
| | | <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> |
| | | </el-form-item> |
| | | <el-form-item label="预约超期" prop="isExpire"> |
| | | <el-select |
| | | v-model="queryParams.isExpire" |
| | | placeholder="请选择是否超期" |
| | | clearable |
| | | style="width: 140px" |
| | | > |
| | | <el-option |
| | | v-for="dict in options" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </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-row> |
| | | <el-col> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | style="width: 120px" |
| | | v-model="queryParams.name" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="idCard"> |
| | | <el-input |
| | | v-model="queryParams.idCard" |
| | | placeholder="请输入身份证号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select |
| | | :remote-method="getRemoteData" |
| | | v-model="queryParams.company" |
| | | remote |
| | | default-first-option |
| | | allow-create |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择单位名称" |
| | | clearable |
| | | @change="idFn1" |
| | | > |
| | | <el-option |
| | | v-for="dict in CompanyList" |
| | | :key="dict.cnName" |
| | | :label="dict.cnName" |
| | | :value="dict.drugManufacturerId" |
| | | /> |
| | | </el-select> |
| | | <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> |
| | | </el-form-item> |
| | | <el-form-item label="预约时间"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="createTimeList" |
| | | @change="dateChangebirthday2" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择出预约时间" |
| | | style="width: 300px" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col> |
| | | <el-form-item label="联系电话" prop="phoe"> |
| | | <el-input |
| | | v-model="queryParams.phoe" |
| | | placeholder="请输入联系电话" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | style="width: 140px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="所在地" prop="szd"> |
| | | <el-input |
| | | style="width: 120px" |
| | | v-model="queryParams.szd" |
| | | placeholder="请输入所在地" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="预约超期" prop="isExpire"> |
| | | <el-select |
| | | v-model="queryParams.isExpire" |
| | | placeholder="请选择是否超期" |
| | | clearable |
| | | style="width: 140px" |
| | | > |
| | | <el-option |
| | | v-for="dict in options" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </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-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" style="margin: 10px 15px"> |
| | | <el-col :span="1.5"> |
| | |
| | | " |
| | | > |
| | | <el-table :data="tableData1" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180" align="center"> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proType" label="性别" width="50" align="center"> |
| | | <el-table-column |
| | | prop="proType" |
| | | label="性别" |
| | | width="50" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <template v-if="isAll(scope.row.proType)"> |
| | | 全部 |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="ordPrice" label="应收金额" align="center"> |
| | | <el-table-column |
| | | prop="ordPrice" |
| | | label="应收金额" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column label="折扣" width="160px" align="center"> |
| | | <template slot-scope="scope"> |
| | |
| | | :step="0.1" |
| | | :max="10" |
| | | :min="0" |
| | | :disabled="true" |
| | | :disabled="true" |
| | | > |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额" align="center"> |
| | | <el-table-column |
| | | prop="nowPrice" |
| | | label="实收金额" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proCheckMethod" label="是否空腹" align="center"> |
| | | <el-table-column |
| | | prop="proCheckMethod" |
| | | label="是否空腹" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_yes_no" |
| | |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <el-dialog |
| | | title="导检单预览" |
| | | :visible.sync="dialogVisibles" |
| | |
| | | </div> |
| | | </template> |
| | | </el-drawer> |
| | | |
| | | |
| | | <el-dialog |
| | | title="PDF 预览" |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer2"> |
| | | <el-button type="primary" @click="submitType" >确 定</el-button> |
| | | <el-button type="primary" @click="submitType">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | " |
| | | > |
| | | <el-table :data="tableData1" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180" align="center"> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proType" label="性别" width="50" align="center"> |
| | | <el-table-column |
| | | prop="proType" |
| | | label="性别" |
| | | width="50" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <template v-if="isAll(scope.row.proType)"> |
| | | 全部 |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="ordPrice" label="应收金额" align="center"> |
| | | <el-table-column |
| | | prop="ordPrice" |
| | | label="应收金额" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column label="折扣" width="160px" align="center"> |
| | | <template slot-scope="scope"> |
| | |
| | | :step="0.1" |
| | | :max="10" |
| | | :min="0" |
| | | :disabled="true" |
| | | :disabled="true" |
| | | > |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额" align="center"> |
| | | <el-table-column |
| | | prop="nowPrice" |
| | | label="实收金额" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proCheckMethod" label="是否空腹" align="center"> |
| | | <el-table-column |
| | | prop="proCheckMethod" |
| | | label="是否空腹" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_yes_no" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { addComp, |
| | | addPlOrderAndDetail } from "@/api/system/comp"; |
| | | import { addComp, addPlOrderAndDetail } from "@/api/system/comp"; |
| | | import Big from "big.js"; |
| | | import { Loading } from 'element-ui'; |
| | | import { Loading } from "element-ui"; |
| | | import { |
| | | listReservation, |
| | | gettjCancel, |
| | |
| | | url: "", |
| | | open2: false, |
| | | forms: { |
| | | tjCategory:"12" |
| | | tjCategory: "12", |
| | | }, |
| | | dialogVisible: false, |
| | | /** 照相机弹窗模块-start */ |
| | |
| | | // 是否显示弹出层 |
| | | |
| | | pacId: "", |
| | | cusIds:[], |
| | | cusIds: [], |
| | | // 结果 |
| | | result: "", |
| | | proIds: [], |
| | |
| | | label: "proName", |
| | | }, |
| | | formPacId: "", |
| | | createTimeList: "", |
| | | startTime: "", |
| | | dXData: [], |
| | | // 查询参数 |
| | | queryParam: { |
| | |
| | | // }, |
| | | // ], |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | }); |
| | | } |
| | | }, |
| | | dateChangebirthday2(val) { |
| | | this.startTime = val; |
| | | }, |
| | | /** 查询体检预约列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.startTime) { |
| | | this.queryParams.yykssj = this.startTime[0]; |
| | | this.queryParams.yyjssj = this.startTime[1]; |
| | | } else if (this.createTimeList) { |
| | | this.queryParams.yykssj = this.createTimeList[0]; |
| | | this.queryParams.yyjssj = this.createTimeList[1]; |
| | | } else if (this.createTimeList == null) { |
| | | this.queryParams.yykssj = null; |
| | | this.queryParams.yyjssj = null; |
| | | } |
| | | listReservation(this.queryParams).then((response) => { |
| | | this.reservationList = response.rows; |
| | | // response.rows.forEach((item, index) => |
| | |
| | | this.open2 = true; |
| | | }, |
| | | |
| | | |
| | | submitType() { |
| | | // let cusIds = []; |
| | | // this.selectList.forEach((item) => { |
| | | // cusIds.push(item.idCard); |
| | | // }); |
| | | let loadingInstance1 = Loading.service({ fullscreen: true,text:"签到中" }); |
| | | let loadingInstance1 = Loading.service({ |
| | | fullscreen: true, |
| | | text: "签到中", |
| | | }); |
| | | let data = { |
| | | cusIds: this.cusIds, |
| | | tjCategory: this.forms.tjCategory, |
| | | }; |
| | | this.open2 = false; |
| | | addPlOrderAndDetail(data).then((res) => { |
| | | if(res.code == 200){ |
| | | if (res.code == 200) { |
| | | this.open2 = false; |
| | | this.$modal.msgSuccess("签到成功"); |
| | | if (res.file) { |
| | | let base64 = res.file; |
| | | this.base64ToBlob({ |
| | | b64data: base64, |
| | | contentType: "application/pdf", |
| | | }).then((res) => { |
| | | this.dialogVisible = true; |
| | | // 转后后的blob对象 |
| | | try { |
| | | this.url = res.preview; |
| | | } catch (error) { |
| | | this.url = window.webkitURL.createObjectURL(res.preview); |
| | | this.$modal.msgSuccess("签到成功"); |
| | | if (res.file) { |
| | | let base64 = res.file; |
| | | this.base64ToBlob({ |
| | | b64data: base64, |
| | | contentType: "application/pdf", |
| | | }).then((res) => { |
| | | this.dialogVisible = true; |
| | | // 转后后的blob对象 |
| | | try { |
| | | this.url = res.preview; |
| | | } catch (error) { |
| | | this.url = window.webkitURL.createObjectURL(res.preview); |
| | | } |
| | | }); |
| | | } else { |
| | | let _this = this; |
| | | this.$nextTick(() => { |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | loadingInstance1.close(); |
| | | }); |
| | | var websocket = null; |
| | | var url = _this.valueUrls; |
| | | if ("WebSocket" in window) { |
| | | websocket = new WebSocket(url); |
| | | } else if ("MozWebSocket" in window) { |
| | | websocket = new MozWebSocket(url); |
| | | } else { |
| | | } |
| | | }); |
| | | }else{ |
| | | let _this = this; |
| | | this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | loadingInstance1.close(); |
| | | }); |
| | | var websocket = null; |
| | | var url = _this.valueUrls; |
| | | if ("WebSocket" in window) { |
| | | websocket = new WebSocket(url); |
| | | } else if ("MozWebSocket" in window) { |
| | | websocket = new MozWebSocket(url); |
| | | } else { |
| | | } |
| | | if (websocket == null) { |
| | | alert("11111"); |
| | | } |
| | | websocket.onopen = function () { |
| | | try { |
| | | // 连接设备 |
| | | var jsonObjs = { |
| | | type: 4, |
| | | data: res, |
| | | }; |
| | | var jStrs = JSON.stringify(jsonObjs); |
| | | websocket.send(jStrs); |
| | | } catch (err) { |
| | | var tryTime = 0; |
| | | // 重试10次,每次之间间隔3秒 |
| | | if (tryTime < 1) { |
| | | var t1 = setTimeout(function () { |
| | | tryTime++; |
| | | if (websocket == null) { |
| | | alert("11111"); |
| | | } |
| | | websocket.onopen = function () { |
| | | try { |
| | | // 连接设备 |
| | | var jsonObjs = { |
| | | type: 4, |
| | | data: res, |
| | | }; |
| | | var jStrs = JSON.stringify(jsonObjs); |
| | | websocket.send(jStrs); |
| | | }, 1 * 1000); |
| | | } else { |
| | | console.error("重连失败."); |
| | | } |
| | | } |
| | | }; |
| | | websocket.onclose = function () { |
| | | alert("连接关闭"); |
| | | }; |
| | | websocket.onmessage = function (event) { |
| | | var resultObj = JSON.parse(event.data); |
| | | _this.cardreader = false; |
| | | }; |
| | | } catch (err) { |
| | | var tryTime = 0; |
| | | // 重试10次,每次之间间隔3秒 |
| | | if (tryTime < 1) { |
| | | var t1 = setTimeout(function () { |
| | | tryTime++; |
| | | var jsonObjs = { |
| | | type: 4, |
| | | data: res, |
| | | }; |
| | | var jStrs = JSON.stringify(jsonObjs); |
| | | websocket.send(jStrs); |
| | | }, 1 * 1000); |
| | | } else { |
| | | console.error("重连失败."); |
| | | } |
| | | } |
| | | }; |
| | | websocket.onclose = function () { |
| | | alert("连接关闭"); |
| | | }; |
| | | websocket.onmessage = function (event) { |
| | | var resultObj = JSON.parse(event.data); |
| | | _this.cardreader = false; |
| | | }; |
| | | |
| | | //连接发生错误的回调方法 |
| | | websocket.onerror = function () { |
| | | alert("请检查连接是否正常"); |
| | | }; |
| | | |
| | | |
| | | this.getList() |
| | | } |
| | | }else{ |
| | | this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | //连接发生错误的回调方法 |
| | | websocket.onerror = function () { |
| | | alert("请检查连接是否正常"); |
| | | }; |
| | | |
| | | this.getList(); |
| | | } |
| | | } else { |
| | | this.$nextTick(() => { |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | loadingInstance1.close(); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | |
| | | |
| | | base64ToBlob({ b64data = "", contentType = "", sliceSize = 512 } = {}) { |
| | | return new Promise((resolve, reject) => { |
| | |
| | | height: 700px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | |
| | | |
| | | #printIframe::-webkit-scrollbar { |
| | | width: 6px; |