pengjun 4 weeks ago
parent
commit
dca7b7748a
  1. 47
      package-lock.json
  2. 1
      package.json
  3. 8
      src/components/doctorCheck/PatientRegisterBase2.vue
  4. 1
      src/views/customerReport/unitSettlement.vue
  5. 14
      src/views/doctorCheck/sumDoctorCheck.vue
  6. 117
      src/views/report/report.vue

47
package-lock.json

@ -18,6 +18,7 @@
"markdown-it": "^14.1.0",
"moment": "^2.29.4",
"node-polyfill-webpack-plugin": "^2.0.1",
"pinyin": "^4.0.0",
"print-js": "^1.6.0",
"qrcode": "^1.5.4",
"sortablejs": "^1.15.0",
@ -7824,6 +7825,11 @@
"safe-buffer": "~5.1.0"
}
},
"node_modules/keypress": {
"version": "0.1.0",
"resolved": "https://registry.npmmirror.com/keypress/-/keypress-0.1.0.tgz",
"integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA=="
},
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
@ -9374,6 +9380,47 @@
"node": ">=8.6"
}
},
"node_modules/pinyin": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/pinyin/-/pinyin-4.0.0.tgz",
"integrity": "sha512-vHpV5K+vpp6XUUpZNGRDuHoN+1xcmieM3EWlH4QjSX2kkpG/gVOwpqwV9EOJ9x9c9UERFKeLml5XVSukE/PLgQ==",
"dependencies": {
"commander": "~1.1.1"
},
"bin": {
"pinyin": "bin/pinyin"
},
"engines": {
"install-node": "^18.0.0"
},
"peerDependencies": {
"@node-rs/jieba": "^1.6.0",
"nodejieba": "^3.4.4",
"segmentit": "^2.0.3"
},
"peerDependenciesMeta": {
"@node-rs/jieba": {
"optional": true
},
"nodejieba": {
"optional": true
},
"segmentit": {
"optional": true
}
}
},
"node_modules/pinyin/node_modules/commander": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-1.1.1.tgz",
"integrity": "sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA==",
"dependencies": {
"keypress": "0.1.x"
},
"engines": {
"node": ">= 0.6.x"
}
},
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",

1
package.json

@ -22,6 +22,7 @@
"markdown-it": "^14.1.0",
"moment": "^2.29.4",
"node-polyfill-webpack-plugin": "^2.0.1",
"pinyin": "^4.0.0",
"print-js": "^1.6.0",
"qrcode": "^1.5.4",
"sortablejs": "^1.15.0",

8
src/components/doctorCheck/PatientRegisterBase2.vue

@ -289,10 +289,10 @@ export default {
this.prBase = res.data
// ----------
// if (this.prBase.completeFlag != '3') this.prBase.summaryDoctorId = this.userId
// if (this.prBase.completeFlag == '3' && this.prBase.isAudit == 'N') {
// this.prBase.auditDoctorId = this.userId
// }
if (this.prBase.completeFlag != '3') this.prBase.summaryDoctorId = this.prBase.summaryDoctorId || this.userId
if (this.prBase.completeFlag == '3' && this.prBase.isAudit == 'N') {
this.prBase.auditDoctorId = this.prBase.auditDoctorId || this.userId
}
// ----------
// console.log('res.data',res.data)
// console.log('this.prBase',this.prBase)

1
src/views/customerReport/unitSettlement.vue

@ -365,6 +365,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
//
forceStringFormatter(row, column, cellValue) {
console.log('row, column, cellValue',row, column.property, cellValue)
// cellValue
return cellValue ? "\u200C" + String(cellValue) : cellValue
},

14
src/views/doctorCheck/sumDoctorCheck.vue

@ -619,6 +619,7 @@ export default {
historySummary: '', //
},
patient_registerInit: {}, //
userId:'', // ID
//
summaryList: [],
@ -754,7 +755,7 @@ export default {
//
mounted() {
this.userId = window.sessionStorage.getItem("userId")
this.dictInit();
// Electron
@ -1216,7 +1217,7 @@ export default {
let body = {
patientRegisterId: this.patient_register.id,
summaryDoctorId: this.patient_register.summaryDoctorId || null,
summaryDoctorId: this.patient_register.summaryDoctorId ||this.userId || null,
summaryDate: this.patient_register.summaryDate || moment(new Date()).format("yyyy-MM-DD HH:mm:ss"),
medicalConclusionId: this.patient_register.medicalConclusionId || null,
summaryHistoricalReview: this.patient_register.historySummary,
@ -1288,6 +1289,9 @@ export default {
.then((res) => {
if (res.code > -1) {
//this.patient_register.completeFlag = '3';
this.patient_register.completeFlag = '3'
this.patient_register.summaryDoctorId = body.summaryDoctorId
this.patient_register.summaryDate = moment(new Date()).format("yyyy-MM-DD HH:mm:ss")
this.getInfoByPatientRegisterNo(this.patient_register.patientRegisterNo)
.then(() => {
this.refParamsQuery.brushSummary++
@ -1400,7 +1404,7 @@ export default {
// patient_register.summaryDoctorId
// patient_register.auditDoctorId
let auditDoctorId = this.patient_register.auditDoctorId
if (!auditDoctorId) auditDoctorId = window.sessionStorage.getItem("userId")
if (!auditDoctorId) auditDoctorId = this.userId||null
let body = {
patientRegisterId: this.patient_register.id,
auditDoctorId, //
@ -1438,8 +1442,10 @@ export default {
postapi(`/api/app/patientregister/updatepatientregisterauditordoctor`, body)
.then((res) => {
console.log("unAudit", res.data);
if (res.code != -1) {
if (res.code > -1) {
this.patient_register.isAudit = body.isAudit;
this.patient_register.auditDoctorId = body.auditDoctorId
this.patient_register.auditDate = moment(new Date()).format("yyyy-MM-DD HH:mm:ss")
}
})
.catch((err) => {

117
src/views/report/report.vue

@ -20,7 +20,7 @@
Math.floor(((window.pageWidth - 110 - 60) * 3) / 4) +
'px;'
">
<div @contextmenu.prevent="onContextmenu">
<div @contextmenu.prevent="onContextmenu" id="report_tjbg">
<u-table :data="tableDatas" border ref="info" id="info"
:height="(window.pageHeight < 600) ? 230 : (window.pageHeight - 370)" highlight-current-row
@row-click="rowClick" size="small" row-key="patientRegisterId"
@ -33,8 +33,8 @@
:type="dragCol[index].type" :min-width="dragCol[index].minWidth" :align="dragCol[index].align"
:label="dragCol[index].type ? '' : item.label" :prop="dragCol[index].prop"
:sortable="dragCol[index].type || dragCol[index].prop == 'sn' ? false : true"
:sort-method="(a, b) => chineseSort(a, b, dragCol[index].prop)"
:show-overflow-tooltip="dragCol[index].showTooltip">
<template slot-scope="scope">
<div v-if="dragCol[index].prop == 'sn'">
{{ scope.$index + 1 }}
@ -53,16 +53,13 @@
<div v-else-if="dragCol[index].prop == 'isLock'">
<i class="el-icon-lock" v-if="scope.row.isLock == 'Y'" style="font-size: 20px; color: red" />
</div>
<div v-else-if="
dragCol[index].prop == 'isVip' ||
dragCol[index].prop == 'isUpload' ||
dragCol[index].prop == 'isUploadAppoint' ||
dragCol[index].prop == 'isReceiveReport'
">
<div
v-else-if="['isVip', 'isUpload', 'isUploadAppoint', 'isReceiveReport', 'isPushThirdResult'].includes(dragCol[index].prop)">
<el-checkbox :value="scope.row[dragCol[index].prop] == 'Y'" true-label="Y" false-label="N" />
</div>
<!-- String(scope.row[dragCol[index]?.prop]||'') 屏蔽没有字段-->
<div v-else>
{{ scope.row[dragCol[index].prop] }}
{{ '\u200C' + String(scope.row[dragCol[index]?.prop]||'') }}
</div>
</template>
@ -128,7 +125,7 @@
导出/推送<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="exp" @click="btnExport">人员信息导出</el-dropdown-item>
<el-dropdown-item command="exp" @click="btnExport('report_tjbg')">人员信息导出</el-dropdown-item>
<el-dropdown-item command="zip" @click="exportZip">导出Zip</el-dropdown-item>
<el-dropdown-item command="jpg" @click="exportJpg">导出Jpg</el-dropdown-item>
<el-dropdown-item command="pdf" @click="btnReportExport(false)">导出 pdf 报告</el-dropdown-item>
@ -136,6 +133,9 @@
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="listBtn" v-if="false">
<el-button type="primary" class="commonbutton" @click="btnTest">test</el-button>
</div>
</div>
</div>
</div>
@ -199,6 +199,8 @@
import moment from "moment";
import { mapState, mapActions } from "vuex";
import Sortable from "sortablejs";
import FileSaver from 'file-saver';
import pinyin from 'pinyin';
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import {
tcdate,
@ -304,6 +306,7 @@ export default {
{ label: "序号", prop: "sn", minWidth: 40, align: "center" },
{ label: "打印", prop: "isReportPrint", minWidth: 60, align: "center" },
{ label: "领取", prop: "isReceiveReport", minWidth: 60, align: "center" },
{ label: "上传", prop: "isUpload", minWidth: 60, align: "center" },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "单位名称", prop: "org", minWidth: 180, align: "left", showTooltip: true },
@ -342,7 +345,6 @@ export default {
{ label: "领取时间", prop: "reportReceiveDate", minWidth: 140, align: "center" },
{ label: "锁住", prop: "isLock", minWidth: 60, align: "center" },
{ label: "预约备单", prop: "isUploadAppoint", minWidth: 90, align: "center" },
{ label: "上传", prop: "isUpload", minWidth: 60, align: "center" },
{ label: "检后推送", prop: "isPushThirdResult", minWidth: 90, align: "center" },
// { label: "", prop: "standardAmount", minWidth: 80, align: "center" },
@ -408,6 +410,42 @@ export default {
},
methods: {
dddw, setPrStatusColor,
//
// forceStringFormatter(row, column, cellValue) {
// //console.log('row, column, cellValue',row, column.property, cellValue)
// // cellValue
// if(['idNo','patientRegisterNo','patientNo','mobileTelephone','telephone'].includes(column.property)){
// return cellValue ? "\u200C" + String(cellValue) : cellValue
// }else{
// return cellValue
// }
// },
//
chineseSort(a, b, colName) {
// console.log('a, b', a, b)
// const pinyinA = pinyin(a[colName], { style: pinyin.STYLE_NORMAL }).join('');
// const pinyinB = pinyin(b[colName], { style: pinyin.STYLE_NORMAL }).join('');
let valA = a[colName],valB = b[colName]
if (typeof valA == 'string'){
//
if(['patientName','org','dept','address','remark'].includes(colName)){
return valA.localeCompare(valB,'zh');
}else{
return valA.localeCompare(valB);
}
}else{
return valA - valB
}
},
btnTest() {
console.log('this.tableDatas3', this.tableDatas)
},
//
dictInit() {
//
@ -1086,7 +1124,7 @@ export default {
this.upTsjh()
break;
default: //lis
this.btnExport()
this.btnExport('report_tjbg')
break;
}
},
@ -1610,56 +1648,13 @@ export default {
//
btnExport(elId) {
require.ensure([], () => {
const tHeader = [];
const filterVal = [];
this.dragCol.forEach((e) => {
tHeader.push(e.label);
filterVal.push(e.prop);
});
const list = this.tableDatas.map((row, index) => {
const newRow = { ...row }; //
// 使
newRow.sn = index + 1;
if (newRow.completeFlag)
newRow.completeFlag =
newRow.isAudit == "Y"
? "已审核"
: dddw(
this.dict.completeFlag,
"id",
newRow.completeFlag,
"displayName"
);
newRow.isReportPrint = newRow.isReportPrint == "Y" ? "√" : "";
if (newRow.idNo) newRow.idNo = "\u200C" + newRow.idNo;
if (newRow.patientRegisterNo)
newRow.patientRegisterNo = "\u200C" + newRow.patientRegisterNo;
if (newRow.patientNo) newRow.patientNo = "\u200C" + newRow.patientNo;
if (newRow.isLock) newRow.isLock = newRow.isLock == "Y" ? "√" : "";
if (newRow.isVip) newRow.isVip = newRow.isVip == "Y" ? "√" : "";
if (newRow.isUpload)
newRow.isUpload = newRow.isUpload == "Y" ? "√" : "";
if (newRow.isUploadAppoint)
newRow.isUploadAppoint = newRow.isUploadAppoint == "Y" ? "√" : "";
if (newRow.isReceiveReport)
newRow.isReceiveReport = newRow.isReceiveReport == "Y" ? "√" : "";
if (newRow.birthDate)
newRow.birthDate = moment(newRow.birthDate).format("yyyy-MM-DD");
return newRow;
});
const data = list.map((v) => filterVal.map((j) => v[j]));
exportJsonToExcel(
tHeader,
data,
"人员列表" + moment(new Date()).format("yyyyMMDDHHmmss")
); //"excel"
});
let table = document.getElementById(elId);
let tableData = table.innerHTML
let fileName = moment(new Date()).format('yyyyMMDDHHmmss') + '.xls'
let blob = new Blob([tableData], { type: "text/plain;charset=utf-8" });
FileSaver.saveAs(blob, fileName);
},
},
//

Loading…
Cancel
Save