|
|
<template> <div> <!--组件主体--> <div style="display: flex"> <div :style="'width:' + (window.pageWidth - 200 - 145) + 'px;'" @contextmenu.prevent="onContextmenu"> <div> <el-table @body-scrolling="load" :data="tableData" border :height="window.pageHeight < 600 ? 248 : Math.floor(((window.pageHeight - 250) * 2) / 3)" highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" size="small" row-key="id" @selection-change="handleSelectionChange" ref="info" id="info" :row-class-name="handleRowClassName"> <!-- 取消勾选,改为选中 <el-table-column type="selection" width="40" show-overflow-tooltip/> :height="window.pageHeight < 600 ? 202 : Math.floor(((window.pageHeight - 302) * 2) / 3)" --> <el-table-column v-for="(item, index) in headerCols" :key="`col_${index}`" :min-width="dropCol[index].minWidth" :align="dropCol[index].align" :label="item.label" :prop="dropCol[index].prop" :sortable="dropCol[index].prop == 'sn' ? false : true"> <template slot-scope="scope"> <div v-if="dropCol[index].prop == 'sn'"> {{ scope.$index + 1 }} </div> <div v-else-if="dropCol[index].prop == 'completeFlag'"> {{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }} </div> <div v-else-if="dropCol[index].prop == 'guidePrintTimes'"> <i class="el-icon-printer" v-if="scope.row.guidePrintTimes > 0" style="font-size: 20px; color: green" /> </div> <div v-else-if="dropCol[index].prop == 'isLock' || dropCol[index].prop == 'isVip' || dropCol[index].prop == 'isUpload' "> {{ scope.row[dropCol[index].prop] == "Y" ? "是" : "否" }} </div> <div v-else-if="dropCol[index].prop == 'customerOrgParentName'"> {{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }} </div> <div v-else-if="dropCol[index].prop == 'sexId'"> {{ dddw(dict.sex, "id", scope.row[dropCol[index].prop], "displayName") }} </div> <div v-else-if="dropCol[index].prop == 'groupPack'"> <div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId"> {{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }} </div> <div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId"> {{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }} </div> </div> <div v-else-if="dropCol[index].prop == 'nationId'"> {{ dddw(dict.nation, "id", scope.row[dropCol[index].prop], "displayName") }} </div> <div v-else-if="dropCol[index].prop == 'birthDate' || dropCol[index].prop == 'creationTime'"> {{ scope.row[dropCol[index].prop] ? moment(scope.row[dropCol[index].prop]).format('yyyy-MM-DD') : '' }} </div> <div v-else-if="dropCol[index].prop == 'maritalStatusId'"> {{ dddw(dict.maritalStatus, "id", scope.row[dropCol[index].prop], "displayName") }} </div> <div v-else-if="dropCol[index].prop == 'medicalTypeId'"> {{ dddw(dict.medicalType, "id", scope.row[dropCol[index].prop], "displayName") }} </div> <div v-else-if="dropCol[index].prop == 'personnelTypeId'"> {{ dddw(dict.personnelType, "id", scope.row[dropCol[index].prop], "displayName") }} </div> <div v-else> {{ scope.row[dropCol[index].prop] }} </div> </template> </el-table-column> <!-- "sexHormoneTermId": "00000000-0000-0000-0000-000000000000", "interposeMeasure": null, "medicalConclusionId": "00000000-0000-0000-0000-000000000000", "reportPrintTimes": 0, "isMedicalStart": "N", "medicalStartDate": "6/28/2023", "isRecoverGuide": "N", "summaryDate": "", "summaryDoctor": null, "isAudit": "N", "auditDoctor": null, "auditDate": "", "isNameHide": "N", "isPhoneFollow": "N", "thirdInfo": null, "guidePrintTimes": null, "remark": null, "medicalCenterId": "00000000-0000-0000-0000-000000000000", "customerOrgRegisterId": "00000000-0000-0000-0000-000000000000", "lastModifierName": "", "lastModificationTime": null, "lastModifierId": null, "creatorId": null, "id": "3a0c196d-a6d0-37fe-5c32-4806bdc4530f" --> </el-table> <div style="display: flex;justify-content:space-between;"> <div></div> <div> <span style="font-size:12px;">共:{{ loadOpts.totalCount }} 条记录,当前显示:{{ tableData.length }} 条。</span> </div> </div> </div> <!-- 给合项目 基本信息 --> <el-tabs v-model="tabChoosed" style="margin-top: -22px;"> <!-- 给合项目 --> <el-tab-pane label="预览" name="1"> <PatientRegisterAsbItem /> </el-tab-pane> </el-tabs> </div> <div style="margin-left: 10px;"> <div v-show="checkPagePriv(pagePriv.privs, '全选')" class="listBtn"> <el-button type="success" class="commonbutton" @click="btnChooseAll(1)">全选</el-button> </div> <div v-show="checkPagePriv(pagePriv.privs, '取消全选')" class="listBtn"> <el-button type="success" class="commonbutton" @click="btnChooseAll(0)">取消全选</el-button> </div> <div v-show="checkPagePriv(pagePriv.privs, '预览设置')" class="listBtn"> <el-button type="primary" class="commonbutton" @click="btnPrintPre">预览设置</el-button> </div> <div v-show="checkPagePriv(pagePriv.privs, '打印')" class="listBtn"> <el-button type="danger" class="commonbutton" @click="btnPrint">打印</el-button> </div> <div v-show="checkPagePriv(pagePriv.privs, '发送申请')" class="listBtn"> <el-button type="" class="commonbutton" @click="btnSendLis">发送申请</el-button> </div> <div v-show="checkPagePriv(pagePriv.privs, '撤消申请')" class="listBtn"> <el-button type="" class="commonbutton" @click="btnUndoLis">撤消申请</el-button> </div> </div> </div> <!--组件弹窗--> <div> <!-- 通用进度条 --> <el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false" :close-on-click-modal="false" :append-to-body="true"> <ElProgressOCX /> </el-dialog> </div> </div></template><script>import moment from "moment";import { mapState, mapActions } from "vuex";import { getapi, postapi, putapi, deletapi } from "@/api/api";import Sortable from "sortablejs";import FileSaver from 'file-saver';import html2canvas from 'html2canvas';
import { getPagePriv, checkPagePriv, dddw, objCopy, arrayReduce, arrayExistObj, deepCopy,} from "../../utlis/proFunc";
import ElProgressOCX from "../../components/report/ElProgressOCX.vue";
export default { components: { ElProgressOCX, }, data() { return { pagePriv: { routeUrlorPageName: 'patientLis', //当前页面归属路由或归属页面权限名称
privs: [] // 页面权限
}, peisid: null, startPoint: -1, // 多选起点 -1 表示选择
endPoint: -1, // 多选终点 -1 表示未选择
tableData: [], //表格数据
tableDataCurrentRow: {}, // 当前被选中的行
multipleSelection: [], //选中的数据列表
tabChoosed: "1", rClickRow: null, //右击的行
rClickColumn: null, //右击的列(预留)
//动态列
headerCols: [], //拖动列
dropCol: [ { label: "序号", prop: "sn", minWidth: 40, align: "center" }, { label: "体检进度", prop: "completeFlag", minWidth: 80, align: "center" }, { label: "打印", prop: "guidePrintTimes", minWidth: 55, align: "center" }, { label: "锁住", prop: "isLock", minWidth: 55, align: "center" }, { label: "单位", prop: "customerOrgParentName", minWidth: 180, align: "center" }, { label: "部门", prop: "customerOrgName", minWidth: 120, align: "center" }, { label: "姓名", prop: "patientName", minWidth: 80, align: "center" }, { label: "性别", prop: "sexId", minWidth: 55, align: "center" }, { label: "年龄", prop: "age", minWidth: 55, align: "center" },
{ label: "颜色", prop: "lisrequest", minWidth: 120, align: "center" }, { label: "容器", prop: "lisrequest", minWidth: 120, align: "center" }, { label: "项目分组", prop: "lisrequest", minWidth: 120, align: "center" }, { label: "申请项目", prop: "lisrequest", minWidth: 120, align: "center" }, { label: "检验码号", prop: "lisrequest", minWidth: 120, align: "center" },
{ label: "人员条码号", prop: "patientRegisterNo", minWidth: 150, align: "center" }, { label: "档案号", prop: "patientNo", minWidth: 100, align: "center" }, { label: "体检次数", prop: "medicalTimes", minWidth: 80, align: "center" }, { label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" }, { label: "民族", prop: "nationId", minWidth: 55, align: "center" }, { label: "身份证", prop: "idNo", minWidth: 150, align: "center" }, { label: "出生日期", prop: "birthDate", minWidth: 80, align: "center" }, { label: "邮箱", prop: "email", minWidth: 150, align: "center" }, { label: "手机", prop: "mobileTelephone", minWidth: 100, align: "center" }, { label: "电话", prop: "telephone", minWidth: 100, align: "center" }, { label: "地址", prop: "address", minWidth: 300, align: "" }, { label: "体检卡号", prop: "medicalCardNo", minWidth: 80, align: "center" }, { label: "工卡号", prop: "jobCardNo", minWidth: 80, align: "center" }, { label: "婚姻状况", prop: "maritalStatusId", minWidth: 80, align: "center" }, { label: "体检类别", prop: "medicalTypeId", minWidth: 80, align: "center" }, { label: "人员类别", prop: "personnelTypeId", minWidth: 80, align: "center" }, { label: "职务", prop: "jobPost", minWidth: 80, align: "center" }, { label: "职称", prop: "jobTitle", minWidth: 80, align: "center" }, { label: "介绍人", prop: "salesman", minWidth: 80, align: "center" }, { label: "是否VIP", prop: "isVip", minWidth: 80, align: "center" }, { label: "登记人", prop: "creatorName", minWidth: 80, align: "center" }, { label: "登记日期", prop: "creationTime", minWidth: 80, align: "center" }, { label: "是否上传", prop: "isUpload", minWidth: 80, align: "center" }, ],
dom: null, //用于滚动加载数据
lazyLoading: false, //是否懒加载中
loadOpts: { totalCount: 0, skipCount: 0, maxResultCount: 100, }, loadOptsInit: {},
oneClick: 0, // 1 表示行单击一次
DbClick: 0, // 1 表示行有单击第二次
}; },
created() { //获取用户当前页面的权限
let userPriv = window.sessionStorage.getItem('userPriv') if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
this.loadOptsInit = Object.assign({}, this.loadOpts) },
//挂载完成
mounted() { // 初始化可以拖动的列
this.headerCols = deepCopy(this.dropCol) this.dropCol = this.columnDrop(this.dropCol);
this.$nextTick(() => { this.scrollFull() }) }, computed: { ...mapState([ "window", "dataTransOpts", "dialogWin", "dict", "elProgress", "patientRegister", "customerOrg", ]), }, methods: { ...mapActions(["getCustomerOrgGroup", "getPatientRegisterAbs"]), moment, dddw, deepCopy, checkPagePriv,
// 扩展定义表格行样式
handleRowClassName({ row, rowIndex }) { // highLightBg 为 'selected'的高亮
//console.log(rowIndex, row)
//return row.highLightBg == 'selected' ? 'high-light-bg' : '';
if (row.choosed) { return "current-row"; } else { return ""; } },
// 全选 取消全选
btnChooseAll(type){ if(type == 1){ // 全选
}else{
} },
// 行选择
rowSelected(rows) { rows.forEach((e) => { this.$refs["info"].toggleRowSelection(e, true); }); },
refFuncSetData(item, v) { setData(this, item, v) },
handleSelectionChange(rows) { //this.multipleSelection = rows;
//console.log('this.multipleSelection',this.multipleSelection)
rows.forEach((item) => { item.highLightBg = "selected"; }); // 取消全选
if (!rows.length) { this.tableData.forEach((item) => { item.highLightBg = ""; }); } this.multipleSelection = JSON.parse(JSON.stringify(rows)); },
//点击体检次数行
rowClick(row) { if (this.oneClick == 0) { this.oneClick = 1; } else { this.DbClick = 1; }
//双击事件
if (this.DbClick == 1) { //第一次点击的节点和第二次点击的节点id相同
this.rowClickRetrieve(row) return; }
setTimeout(() => { //300ms内没有第二次点击,执行单击事件
if (this.oneClick == 1 && this.DbClick == 0) this.rowClickRetrieve(row) }, 300)
},
rowClickRetrieve(row) { this.oneClick = 0; this.DbClick = 0;
// 按住了shift键
if (this.window.shift) { //清除所有选择
this.tableData.forEach((e, index) => { e.choosed = false; e.index = index; });
if (this.startPoint == -1) { this.tableData[row.index].choosed = true; this.startPoint = row.index; } else { if (this.startPoint > row.index) { for (let i = row.index; i <= this.startPoint; i++) { this.tableData[i].choosed = true; } } else if (this.startPoint <= row.index) { for (let i = this.startPoint; i <= row.index; i++) { this.tableData[i].choosed = true; } } } } else if (this.window.ctrl) { // 按住了ctrl 键
this.tableData[row.index].choosed = true; if (this.startPoint == -1) { this.startPoint = row.index; } } else { // 未按住了ctrl 、shift 键
//清除所有选择
console.log("清除所有选择"); this.tableData.forEach((e, index) => { e.choosed = false; e.index = index; }); console.log(this.tableData, row.index); console.log(this.tableData[row.index].choosed);
this.tableData[row.index].choosed = true; this.startPoint = row.index; }
//选中了多个点编辑时,排序最前的作为当前选中的
console.log('row.index <= this.startPoint', row.index, this.startPoint) let lfind = -1 for (let i = 0; i < this.tableData.length; i++) { if (this.tableData[i].choosed) { lfind = i break } }
if (lfind > -1) { // 弹出编辑框,只有在编辑框显示时,才去触发获取数据
this.dataTransOpts.tableS.patient_register.id = this.tableData[lfind].id this.tableDataCurrentRow = deepCopy(this.tableData[lfind]) this.dataTransOpts.refresh.register_check_asbitem.M++ //触发所选组合项目刷新
} },
// 双击
rowDblclick(row) { this.rowClick(row) this.btnEdit() }, //查询
async Query() { // 查询时,清掉明细数据 (滚动时不清)
this.dataTransOpts.tableS.patient_register.id = '' this.tableDataCurrentRow = {} // 清除选择
this.tableData = [] setTimeout(() => { this.dataTransOpts.refresh.register_check_asbitem.M++ //触发所选组合项目刷新
}, 10);
this.loadOpts = Object.assign(this.loadOpts, this.loadOptsInit) await this.getPrList() },
//数据量多时,滚动加载
async load() { this.loadOpts.skipCount++ await this.getPrList() },
// 获取列表数据
async getPrList() {
if (this.loadOpts.skipCount != 0 && this.loadOpts.skipCount * this.loadOpts.maxResultCount >= this.loadOpts.totalCount) return console.log('getPrList', this.loadOpts)
let body = { skipCount: this.loadOpts.skipCount, maxResultCount: this.loadOpts.maxResultCount };
console.log(`this.patientRegister.query`, this.patientRegister.query); if (this.patientRegister.query.customerOrgFlag) { // if (this.patientRegister.query.CustomerOrgParentId) {
// body.customerOrgId = this.patientRegister.query.CustomerOrgParentId;
// } else {
// if (this.patientRegister.query.customerOrgId)
// body.customerOrgId = this.patientRegister.query.customerOrgId;
// }
if (this.patientRegister.query.customerOrgId) body.customerOrgId = this.patientRegister.query.customerOrgId; if (this.patientRegister.query.customerOrgId && this.patientRegister.query.customerOrgId != this.dict.personOrgId && this.patientRegister.query.customerOrgRegister.id) { body.customerOrgRegisterId = this.patientRegister.query.customerOrgRegister.id }
}
if (this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex;
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName;
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag;
//StartDate EndDate
if ( this.patientRegister.query.startDate && this.patientRegister.query.endDate ) { body.startDate = moment(this.patientRegister.query.startDate).format( "yyyy-MM-DD" ); body.endDate = moment(this.patientRegister.query.endDate).format( "yyyy-MM-DD" ); if (body.startDate > body.endDate) { this.$message.warning("起始日期不能大于截止日期,数据校验不通过!"); return; } }
if (this.patientRegister.query.phone) body.phone = this.patientRegister.query.phone;
if (this.patientRegister.query.idCardNo) body = { idNo: this.patientRegister.query.idCardNo };
if (this.patientRegister.query.patientNo) body = { patientNo: this.patientRegister.query.patientNo };
if (this.patientRegister.query.patientRegisterNo) body = { patientRegisterNo: this.patientRegister.query.patientRegisterNo, };
console.log("/api/app/patientregister/getlistinfilter", body);
postapi("/api/app/patientregister/getlistinfilter", body) .then(res => { if (res.code != -1) { // 刷新最大记录数
this.loadOpts.totalCount = res.data.totalCount let curLoad = res.data.items let oldCount = 0
if (body.skipCount == 0) { //查询
this.tableData = []; } else { // 懒加载 ,原数据集不用清空
oldCount = this.tableData.length } curLoad.forEach((e, index) => { this.tableData.push(Object.assign({ index: Number(oldCount) + Number(index), choosed: false }, e)) })
//如果 有选中 记录,则刷新其对应的组合项目
if (this.dataTransOpts.tableS.patient_register.id) { this.dataTransOpts.refresh.register_check_asbitem.M++ } } })
},
//滚动加载数据
scrollFull() { this.dom = this.$refs['info'].bodyWrapper console.log('this.dom', this.dom)
this.dom.addEventListener('scroll', async () => { // console.log('scrollTop',this.dom.scrollTop,'clientHeight',this.dom.clientHeight,'scrollHeight',this.dom.scrollHeight);
if (this.dom.scrollTop + this.dom.clientHeight + 20 > this.dom.scrollHeight && !this.lazyLoading) { // 获取到的不是全部数据 当滚动到底部
console.log('scrollTop', this.dom.scrollTop, 'clientHeight', this.dom.clientHeight, 'scrollHeight', this.dom.scrollHeight); if ((Number(this.loadOpts.skipCount) + 1) * Number(this.loadOpts.maxResultCount) >= Number(this.loadOpts.totalCount)) { this.lazyLoading = false } else { this.lazyLoading = true await this.load() this.lazyLoading = false // this.dom.scrollTop = this.dom.scrollTop - 100
} } }) }, // 预览设置
btnPrintPre(){
},
// 打印
btnPrint(){
},
// 发送检验申请
btnSendLis(){ console.log('btnSendLis') },
// 撤消检验申请
btnUndoLis(){ console.log('btnUndoLis') },
//检验申请
async lisRequest(prId) { let isPrintLisRequest = false; let res = null; if (prId.length < 1) { this.$message.info("人员信息尚未保存,不可执行此操作!"); return; }
try { res = await postapi( `/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}` ); console.log( `/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`, res ); } catch (error) { return; } if (res.code != -1) { this.$message.info("发送检验申请成功!"); isPrintLisRequest = true; }
//重复申请,重打
if (res.code == -1 && res.message.indexOf("已申请") > -1) { isPrintLisRequest = true; }
if (!isPrintLisRequest) return;
try { await this.$confirm("是否打印检验申请单?", "提示", { confirmButtonText: "是", cancelButtonText: "否", type: "info", showClose: false, closeOnClickModal: false, closeOnPressEscape: false, }); } catch (error) { return; } //打印检验申请单
this.lisPrint(prId, "0003", false); },
//检验条码打印
lisPrint(prId, ReportCode, isPreview) { if (!this.$peisAPI) { this.$message.info("此功能,需要在壳客户端才可运行!"); return; }
let token = window.sessionStorage.getItem("token"); let user = window.sessionStorage.getItem("user"); let toOutShell = { ReportCode, token, preViewCanPrint: "N", Parameters: [ { Name: "printer", Value: user }, { Name: "hisLog", Value: "pic/hisLog.jpg" }, ], BusinessCode:prId };
if (isPreview) { /* postapi( `/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}` ) .then((res) => { if (res.code != -1) { toOutShell.ReportTable = { lisRequest: res.data }; console.log( "JSON.stringify(toOutShell)", JSON.stringify(toOutShell) ); return this.$peisAPI.printPre(JSON.stringify(toOutShell)); } }) .catch((err) => { this.$message.warning(err); }); */ this.$peisAPI.printPre(JSON.stringify(toOutShell)) .then(res => { if (JSON.parse(res).code < 0) { this.$message.warning({ showClose: true, message: JSON.parse(res).message }); } }) .catch((err) => { console.log('打印检验条码错误', err) this.$message.warning({ showClose: true, message: `${err}` }); });
} else { /* postapi( `/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}` ) .then((res) => { if (res.code != -1) { toOutShell.ReportTable = { lisRequest: res.data }; console.log( "JSON.stringify(toOutShell)", JSON.stringify(toOutShell) ); return this.$peisAPI.print(JSON.stringify(toOutShell)); } }) .then((res) => { //console.log("res", res);
if (JSON.parse(res).code >= 0) { //更新打印状态 /api/app/lisrequest/updatelisrequestisprint
// {
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId)
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
return postapi("/api/app/lisrequest/updatelisrequestisprint", { operateType: 1, patientRegisterId: prId, }); } }) .catch((err) => { this.$message.warning(err); }); */ this.$peisAPI.print(JSON.stringify(toOutShell)) .then(res => { if (JSON.parse(res).code < 0) { this.$message.warning({ showClose: true, message: JSON.parse(res).message }); }else{ return postapi("/api/app/lisrequest/updatelisrequestisprint", { operateType: 1, patientRegisterId: prId, }); } }) .then(res => { if(res && res.code < 0){ this.$message.error({ showClose: true, message: `${res.message}` }); } }) .catch((err) => { console.log('打印检验条码错误', err) this.$message.error({ showClose: true, message: `${err}` }); }); } },
//pacs条码打印
pacsPrint(prId, ReportCode, isPreview) { if (!this.$peisAPI) { this.$message.info("此功能,需要在壳客户端才可运行!"); return; } let token = window.sessionStorage.getItem("token"); let user = window.sessionStorage.getItem("user"); let toOutShell = { ReportCode, token, preViewCanPrint: "Y", Parameters: [ { Name: "printer", Value: user }, { Name: "hisLog", Value: "pic/hisLog.jpg" }, ], BusinessCode:prId };
if (isPreview) { /* postapi( `/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}` ) .then((res) => { if (res.code != -1) { toOutShell.ReportTable = { lisRequest: res.data }; console.log( "JSON.stringify(toOutShell)", JSON.stringify(toOutShell) ); return this.$peisAPI.printPre(JSON.stringify(toOutShell)); } }) .catch((err) => { this.$message.warning(err); }); */ this.$peisAPI.printPre(JSON.stringify(toOutShell)) .then(res => { if (JSON.parse(res).code < 0) { this.$message.warning({ showClose: true, message: JSON.parse(res).message }); } }) .catch((err) => { console.log('打印pacs条码错误', err) this.$message.warning({ showClose: true, message: `${err}` }); }); } else { /* postapi( `/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}` ) .then((res) => { if (res.code != -1) { toOutShell.ReportTable = { lisRequest: res.data }; console.log( "JSON.stringify(toOutShell)", JSON.stringify(toOutShell) ); return this.$peisAPI.print(JSON.stringify(toOutShell)); } }) .then((res) => { if (JSON.parse(res).code >= 0) { //更新打印状态 /api/app/lisrequest/updatelisrequestisprint
// {
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId)
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
return postapi("/api/app/lisrequest/updatelisrequestisprint", { operateType: 1, patientRegisterId: prId, }); } }) .catch((err) => { this.$message.warning(err); }); */ this.$peisAPI.print(JSON.stringify(toOutShell)) .then(res => { if (JSON.parse(res).code < 0) { this.$message.warning({ showClose: true, message: JSON.parse(res).message }); }else{ return postapi("/api/app/lisrequest/updatelisrequestisprint", { operateType: 1, patientRegisterId: prId, }); } }) .then(res => { if(res && res.code < 0){ this.$message.error({ showClose: true, message: `${res.message}` }); } }) .catch((err) => { console.log('打印pacs条码错误', err) this.$message.error({ showClose: true, message: `${err}` }); }); } },
columnDrop(dropCol) { //获取dom节点
const wrapperTr = document.querySelector(".el-table__header-wrapper tr"); Sortable.create(wrapperTr, { animation: 180, delay: 0, // 元素被选中
onChoose: function (/**Event*/ evt) { //console.log('onChoose',evt,evt.oldIndex)
evt.oldIndex; // element index within parent
},
// 元素未被选中的时候(从选中到未选中)
onUnchoose: function (/**Event*/ evt) { // same properties as onEnd
},
// 开始拖拽的时候
onStart: function (/**Event*/ evt) { //console.log('onStart',evt,evt.oldIndex)
evt.oldIndex; // element index within parent
}, onEnd: (evt) => { const oldItem = dropCol[evt.oldIndex]; // dropCol[evt.oldIndex - 1];
if (oldItem) { dropCol.splice(evt.oldIndex, 1); dropCol.splice(evt.newIndex, 0, oldItem); } //console.log(this.headerCols, oldItem, dropCol);
}, }); return dropCol; },
//通用导出
btnExport(elId) { // 获取HTML元素(表格)
// let table = document.getElementById(elId); //.cloneNode(true)
this.$nextTick(() => { let refsTable = this.$refs[elId] //.cloneNode(true) true
let table = document.getElementById(elId) console.log('table,refsTable', table, refsTable)
let tableData = table.innerHTML let fileName = moment(new Date()).format('yyyyMMDDHHmmss') let blob = new Blob([tableData], { type: "text/plain;charset=utf-8" });
FileSaver.saveAs(blob, fileName + '.xls');
// 导出图片
// 使用html2canvas将HTML元素转换为画布
// let cloneTable = table.cloneNode(true) //[elId]
html2canvas(table).then(canvas => {
// 创建一个a元素用于下载
const link = document.createElement('a'); link.href = canvas.toDataURL('image/jpeg'); link.download = fileName + '.jpg'; document.body.appendChild(link); link.click(); //document.body.removeChild(link);
// // 创建一个PDF对象
// var pdf = new jsPDF();
// // 设置PDF的尺寸
// pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, canvas.width, canvas.height);
// // 导出PDF
// pdf.save('员工信息表.pdf');
}); }) },
},
//监听事件
watch: { "patientRegister.query.customerOrgId": { // immediate: true, // 立即执行
// deep: true, // 深度监听复杂类型内变化
handler(newVal, oldVal) { //console.log('watch:patientRegister.query.customerOrgId:',newVal,oldVal)
// 单位变化时,清除当前列表信息
if (newVal && newVal != oldVal) { this.tableData = [] this.dataTransOpts.tableM.register_check_asbitem = [] } } },
//触发查询事件
"patientRegister.query.times"(newVal, oldVal) { if (newVal != oldVal) { //alert('触发查询事件')
this.Query(); } },
//新增后,触发赋值
// "patientRegister.patientRegisterRd.id"(newVal, oldVal) {
// if (newVal != oldVal) {
// //console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId)
// objCopy(this.patientRegister.patientRegisterRd, this.form);
// }
// },
},};</script><style scoped>@import "../../assets/css/global_input.css";@import "../../assets/css/global_table.css";@import "../../assets/css/global.css";
.box { display: flex;}
.listBtn { margin-top: 5px; text-align: center;}
.btnClass { width: 100px;}</style>
|