pengjun 4 months ago
parent
commit
4ff4249e35
  1. 12
      src/components/patientRegister/PatientRegisterForChoose.vue
  2. 460
      src/components/patientRegister/PatientRegisterList.vue
  3. 73
      src/components/report/BtnReport.vue
  4. 62
      src/components/report/PatientRegisterListNobtn.vue
  5. 92
      src/components/sumDoctorCheck/SumSug.vue

12
src/components/patientRegister/PatientRegisterForChoose.vue

@ -3,6 +3,11 @@
<div>
<el-table :data="patientRegisters" border width="800" height="480" highlight-current-row
@row-click="registerRowClick" @row-dblclick="rowDblclick" size="small">
<el-table-column prop="creationTime" label="登记日期" width="100" align="center" sortable>
<template slot-scope="scope">
<div v-if="scope.row.creationTime">{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="patientRegisterNo" label="条码号" min-width="110" align="center"/>
<el-table-column prop="patientNo" label="档案号" sortable align="center"/>
<el-table-column prop="medicalTimes" label="次数" width="50" align="center" />
@ -48,12 +53,7 @@
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" align="center" />
<el-table-column prop="creationTime" label="登记日期" width="100" align="center" >
<template slot-scope="scope">
<div v-if="scope.row.creationTime">{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" align="center" />
<el-table-column prop="isUpload" label="上传" align="center">
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>

460
src/components/patientRegister/PatientRegisterList.vue

@ -309,15 +309,206 @@
</el-dialog>
<!-- 修改信息 -->
<el-dialog :title="`修改信息--${upBaseInfo.label}`" :visible.sync="upBaseInfo.visble" width="400" :show-close="false"
<el-dialog title="修改人员信息" :visible.sync="upBaseInfo.visble" width="800px" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<div>
<div style="display: flex; margin-bottom: 20px">
<span style="padding: 5px 0 0 10px; width: 100px">{{
upBaseInfo.label
}}</span>
<el-input v-model="upBaseInfo.value" size="small"></el-input>
<el-form ref="form" :model="upBaseInfo" label-width="80px" size="medium">
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="patientName">
<el-input id="patientName" v-model="upBaseInfo.patientName" size="small"
autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="idNo">
<el-input v-model="upBaseInfo.idNo" placeholder="身份证号" @change="changeIdNo('N')"
size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker v-model="upBaseInfo.birthDate" type="date" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" placeholder="出生日期" style="width: 180px;" @change="changeBirthDate"
size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="性别" prop="sexId">
<el-select v-model="upBaseInfo.sexId" placeholder="请选择" size="small" filterable>
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄" prop="age">
<el-input v-model="upBaseInfo.age" size="small" @change="changeAge"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="婚姻" prop="maritalStatusId">
<el-select v-model="upBaseInfo.maritalStatusId" placeholder="请选择" size="small" filterable>
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="手机号" prop="mobileTelephone">
<el-input v-model="upBaseInfo.mobileTelephone" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="telephone">
<el-input v-model="upBaseInfo.telephone" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="籍贯" prop="birthPlaceId">
<el-select v-model="upBaseInfo.birthPlaceId" placeholder="请选择" filterable clearable size="small">
<el-option v-for="item in dict.birthPlace" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="地址" prop="address">
<el-input v-model="upBaseInfo.address" size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="邮编" prop="postalCode">
<el-input v-model="upBaseInfo.postalCode" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮箱" prop="email">
<el-input v-model="upBaseInfo.email" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="upBaseInfo.medicalCardNo" size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="性激素期" prop="sexHormoneTermId">
<el-select v-model="upBaseInfo.sexHormoneTermId" placeholder="请选择" filterable clearable
size="small">
<el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="民族" prop="nationId">
<el-select v-model="upBaseInfo.nationId" placeholder="请选择" filterable clearable default-first-option
:filter-method="filterMethod" size="small">
<el-option v-for="item in nation" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="体检类别" prop="medicalTypeId">
<el-select v-model="upBaseInfo.medicalTypeId" placeholder="请选择" filterable clearable size="small">
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="人员类别" prop="personnelTypeId">
<el-select v-model="upBaseInfo.personnelTypeId" placeholder="请选择" filterable clearable size="small">
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="介绍人" prop="salesman">
<el-input v-model="upBaseInfo.salesman" size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工卡号" prop="jobCardNo">
<el-input v-model="upBaseInfo.jobCardNo" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职务" prop="jobPost">
<el-input v-model="upBaseInfo.jobPost" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职称" prop="jobTitle">
<el-input v-model="upBaseInfo.jobTitle" size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="门诊号" prop="hisPatientId">
<el-input v-model="upBaseInfo.hisPatientId" size="small" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话随访" prop="isPhoneFollow">
<el-checkbox v-model="upBaseInfo.isPhoneFollow" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="VIP" prop="isVip">
<el-checkbox v-model="upBaseInfo.isVip" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="隐藏姓名" prop="isNameHide">
<el-checkbox v-model="upBaseInfo.isNameHide" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="锁住" prop="isLock">
<el-checkbox v-model="upBaseInfo.isLock" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="体检开始" prop="isMedicalStart">
<el-checkbox v-model="upBaseInfo.isMedicalStart" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="upBaseInfo.remark" type="textarea" :rows="1" placeholder="请输入备注"
size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div style="display: flex; justify-content: space-between">
<div></div>
<div>
@ -435,12 +626,12 @@
<!---->
<el-dialog title="扫/输入条码回收体检表(指引单)" :visible.sync="dialogRecover" width="400px" :append-to-body="true"
:close-on-click-modal="false">
<div class="query" >
<div class="query">
<span class="spanClass">条码号</span> <!-- @change="signByPatientRegisterNo" -->
<el-input ref="tmh" v-model="patientRegisterNo" @keyup.native.enter="signByPatientRegisterNo"></el-input>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="signByPatientRegisterNo" class="commonbutton">确定</el-button>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="signByPatientRegisterNo" class="commonbutton">确定</el-button>
<el-button @click="dialogRecover = false" class="commonbutton">关闭</el-button>
</div>
</el-dialog>
@ -464,7 +655,7 @@ import {
objCopy,
arrayReduce,
arrayExistObj,
deepCopy,
deepCopy, birthdayToAge, ageToBirthday, parseID,
setPrStatusColor,
} from "../../utlis/proFunc";
import { savePeoplePhoto } from "../../utlis/proApi";
@ -489,7 +680,7 @@ export default {
components: {
PatientRegisterEdit,
Camera,
PatientRegisterAsbItem,
PatientRegisterAsbItem,
PatientRegisterEditGroupBatch, //
PatientRegisterEditItemBatch, //
PatientRegisterEditDoctorBatch, //
@ -660,21 +851,93 @@ export default {
colName: "patientName",
patientRegisterId: "",
medicalStartDate: "", //
registerManType: 'customer', //customer doctor
id: "", //id
photo: '', //
patientId: "00000000-0000-0000-0000-000000000000", //ID 00000-0000...
patientNo: "", //
customerOrgId: ["00000000-0000-0000-0000-000000000001"], //
customerOrgParentId: "00000000-0000-0000-0000-000000000001",
customerOrgName: "个人体检",
customerOrgRegisterId: "00000000-0000-0000-0000-000000000001", //
customerOrgGroupId: null, //
medicalPackageId: null, //
patientName: "", //
birthDate: null, //
sexId: "U", // U
age: null, //
jobCardNo: "", //
medicalCardNo: "", //
maritalStatusId: "9", //
medicalTypeId: null, //
personnelTypeId: null, //
jobPost: "", //
jobTitle: "", //
salesman: "", //
sexHormoneTermId: null, //
isNameHide: "N", //
isPhoneFollow: "N", //访
isVip: "N", //vip
remark: "", //
isLock: "N", //
completeFlag: "1", // 0:123
isMedicalStart: "N", //
patientRegisterNo: "", //
medicalTimes: 1, //
medicalCenterId: null, //
address: "", //
email: "", //email
idNo: "", //
telephone: "", //
mobileTelephone: "", //
nationId: null, //
birthPlaceId: null, //
postalCode: "", //
creatorId: null,
creationTime: "",
lastModificationTime: "",
lastModifierId: null,
isMaxMedicalTimes: 'N',
//medicalStartDate: null,
hisPatientId: '', // hisid
registerCheckAsbitems: [], //
//
qztlType: '0', // /
qztlIsCw: 'N', //
qztlIsCy: 'N', //
qztlIsGt: 'N', //
qztlIsMain: 'N', //
qztlIsWh: 'N', //
qztlIsFj: 'N', //
isQztlImport: 'N', //
uploadQztlFlag: 'N', //
planuserid: '', //
//
ocCheckTypeId: null, //
jobType: '', //
poisonIds: [], // IDs
isPatientOccupationalDisease: 'Y', //
appointPatientRegisterId: "",
thirdBookingId: "",
occupationalDiseaseNumber: "",
},
nation: [],
dialogEditMedicalStartDate: false, //
queueParams: {}, //
LocalConfig: {
normal: {
maxResultCount: 100, //
},
},
},
tableName: "", //
doctorType: "check", //check: audit
merge_lis_pacs_label: "0", //0 01
qrCode: {
winDisplay: false, //
url: 'https://ccjktj.cn:5081/', //
personUrl:'', //
personUrl: '', //
barcodeNo: '条码号',
patientName: '姓 名'
},
@ -697,11 +960,11 @@ export default {
getPagePriv(this.pagePriv.routeUrlorPageName)
);
try {
try {
let LocalConfig = JSON.parse(window.localStorage.getItem("LocalConfig") || null)
if (LocalConfig?.normal?.maxResultCount){
if (LocalConfig?.normal?.maxResultCount) {
this.LocalConfig.normal.maxResultCount = LocalConfig.normal.maxResultCount
}
}
} catch (error) {
console.log('window.localStorage.getItem("LocalConfig")', error);
@ -1699,42 +1962,110 @@ export default {
this.upBaseInfo.visble = false;
this.close_dialogWin_PatientRegisterEdit();
},
btnUpBaseInfo() {
let body = {
patientRegisterId: this.upBaseInfo.patientRegisterId,
// "patientName": "string",
// "mobileTelephone": "string",
// "idNo": "string"
};
body[this.upBaseInfo.colName] = this.upBaseInfo.value;
// let body = {
// patientRegisterId: this.upBaseInfo.patientRegisterId,
// };
// {
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "patientName": "string",
// "mobileTelephone": "string",
// "idNo": "string",
// "remark": "string",
// "medicalTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "personnelTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "sexHormoneTermId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
// body[this.upBaseInfo.colName] = this.upBaseInfo.value;
postapi(
"/api/app/PatientRegister/UpdatePatientRegisterBaseInfoByPatientRegisterId",
body
// /api/app/PatientRegister/UpdatePatientRegisterBaseInfoByPatientRegisterId
postapi("/api/app/PatientRegister/UpdatePatientRegisterBySumCheck",
this.upBaseInfo
).then((res) => {
if (res.code > -1) {
this.close_dialogWin_upBaseInfo();
}
});
},
//
changeBirthDate() {
this.upBaseInfo.age = birthdayToAge(this.upBaseInfo.birthDate)
},
//
changeAge() {
this.upBaseInfo.birthDate = ageToBirthday(this.upBaseInfo.age)
},
//
// isNameContinue
changeIdNo(isNameContinue) {
if (!this.upBaseInfo.idNo) return
let ret = parseID(this.upBaseInfo.idNo)
// console.log('changeIdNo',ret)
if (ret.age != -1) {
this.upBaseInfo.birthDate = new Date(ret.birthday)
this.upBaseInfo.age = ret.age
this.upBaseInfo.sexId = ret.sex
}
},
//
filterMethod(keyWords) {
//// console.log('filterMethod',this.asbItemQuick)
if (keyWords) {
this.nation = [];
this.dict.nation.forEach(item => {
if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
|| item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) {
this.nation.push(item);
}
});
} else {
this.nation = deepCopy(this.dict.nation);
}
},
//
fnUpBaseInfo(row, baseInfoType) {
fnUpBaseInfo(row) {
//
getapi("/api/app/MaritalStatus/GetMaritalStatusList").then((res) => {
if (res.code == 1) {
this.dict.maritalStatus = res.data;
}
});
//
getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
if (res.code == 1) {
this.dict.sexHormoneTerm = res.data;
}
});
//
getapi("/api/app/nation/in-filter").then((res) => {
if (res.code != -1) {
this.dict.nation = res.data;
this.nation = deepCopy(res.data)
}
});
//
getapi("/api/app/birth-place/in-filter").then((res) => {
if (res.code == 1) {
this.dict.birthPlace = res.data;
}
});
this.dataTransOpts.tableS.patient_register.id = row.id;
this.upBaseInfo.visble = true;
this.dataTransOpts.tableS.patient_register.patientRegisterNo = row.patientRegisterNo
this.upBaseInfo = Object.assign(this.upBaseInfo, row)
this.upBaseInfo.patientRegisterId = row.id;
this.upBaseInfo.colName = baseInfoType;
switch (baseInfoType) {
case "idNo":
this.upBaseInfo.label = "新身份证号";
break;
case "mobileTelephone":
this.upBaseInfo.label = "新手机号";
break;
default:
this.upBaseInfo.label = "新姓名";
break;
}
this.upBaseInfo.value = row[baseInfoType];
this.upBaseInfo.visble = true;
},
editMedicalStartDate() {
@ -1804,50 +2135,25 @@ export default {
// items.push({
// label: "",
// children: [
// { label: "", onClick: () => { this.fnUpBaseInfo(row, 'patientName'); } }
// { label: "", onClick: () => { ; } }
// ]
// })
let subMenumedical = [];
// })
if (checkPagePriv(this.pagePriv.privs, "修改人员信息")) {
items.push({
label: "修改人员信息", onClick: () => {
this.fnUpBaseInfo(row);
},
});
}
if (checkPagePriv(this.pagePriv.privs, "修改体检日期"))
subMenumedical.push({
items.push({
label: "修改体检日期",
onClick: () => {
this.editMedicalStartDate();
},
});
if (
checkPagePriv(this.pagePriv.privs, "修改姓名") &&
row.completeFlag != "0"
)
subMenumedical.push({
label: "修改姓名",
onClick: () => {
this.fnUpBaseInfo(row, "patientName");
},
});
if (
checkPagePriv(this.pagePriv.privs, "修改手机号") &&
row.completeFlag != "0"
)
subMenumedical.push({
label: "修改手机号",
onClick: () => {
this.fnUpBaseInfo(row, "mobileTelephone");
},
});
if (
checkPagePriv(this.pagePriv.privs, "修改身份证号") &&
row.completeFlag != "0"
)
subMenumedical.push({
label: "修改身份证号",
onClick: () => {
this.fnUpBaseInfo(row, "idNo");
},
});
if (subMenumedical.length > 0)
items.push({ label: "修改体检信息", children: subMenumedical });
if (
checkPagePriv(this.pagePriv.privs, "分诊排队") &&

73
src/components/report/BtnReport.vue

@ -77,8 +77,9 @@
<el-tabs v-model="tabChoosed">
<!---->
<el-tab-pane label="明细结果" name="2">
<CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id" :refParams="{ place: 'doctor' }" />
</el-tab-pane>
<CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id"
:refParams="{ place: 'doctor' }" />
</el-tab-pane>
<el-tab-pane label="本次图文报告" name="4">
<ImageTextReport :refParams="{ place: 'doctor' }" />
</el-tab-pane>
@ -86,10 +87,12 @@
<SumItemsType :patientId="doctorCheck.prBase.patientId" />
</el-tab-pane> -->
<el-tab-pane label="横向对比" name="5">
<SumItems :patientId="dataTransOpts.tableS.patient_register.id" :refParams="{ place: 'doctor' }" />
<SumItems :patientId="dataTransOpts.tableS.patient_register.id"
:refParams="{ place: 'doctor' }" />
</el-tab-pane>
<el-tab-pane label="历次综述" name="6">
<SumHistory :patientId="dataTransOpts.tableS.patient_register.id" :refParams="{ place: 'doctor' }" />
<SumHistory :patientId="dataTransOpts.tableS.patient_register.id"
:refParams="{ place: 'doctor' }" />
</el-tab-pane>
</el-tabs>
</div>
@ -126,7 +129,7 @@ export default {
return {
dialogGetReport: false,
dialogVisibleCheckHistory: false,
tabChoosed:'2',
tabChoosed: '2',
receiveReport: {
patientRegisterIds: [
],
@ -148,10 +151,10 @@ export default {
{ label: "姓名", prop: "patientName", minWidth: 60, align: "center" },
{ label: "性别", prop: "sexName", minWidth: 60, align: "center" },
{ label: "年龄", prop: "age", minWidth: 60, align: "center" },
{ label: "分组/套餐", prop: "packGroup", minWidth: 150, align: "center" },
{ label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" },
{ label: "体检次数", prop: "medicalTimes", minWidth: 90, align: "center" },
{ label: "单位名称", prop: "customerOrgName", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "departmentName", minWidth: 180, align: "left", showTooltip: true },
{ label: "单位名称", prop: "org", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "dept", minWidth: 180, align: "left", showTooltip: true },
{ label: "手机", prop: "mobileTelephone", minWidth: 130, align: "center" },
{ label: "电话", prop: "telephone", minWidth: 130, align: "center" },
{ label: "档案号", prop: "patientNo", minWidth: 80, align: "center" },
@ -715,34 +718,62 @@ export default {
//
btnExport(elId) {
this.dragCol.forEach((e) => {
this.jsonFields[e.label] = e.prop;
switch (e.prop) {
case 'medicalStartDate': //
case 'birthDate':
case 'summaryDate':
case 'auditDate':
case 'registerDate':
case 'reportReceiveDate':
case 'idNo':
case 'patientRegisterNo':
case 'patientNo':
case 'mobileTelephone':
case 'telephone':
this.jsonFields[e.label] = {
field: e.prop,
callback: value => {
return value ? `\u200C${value}`:'';
}
}
break;
default:
this.jsonFields[e.label] = e.prop;
break;
}
});
let tableDatas = deepCopy(this.patientRegister.prList)
tableDatas.forEach((e, index) => {
e.sn = index + 1
if (e.completeFlag) e.completeFlag = e.isAudit == "Y" ? "已审核" : dddw(this.dict.completeFlag, "id", e.completeFlag, "displayName")
e.isReportPrint = e.isReportPrint == 'Y' ? '√' : ''
if (e.isLock) e.isLock = e.isLock == 'Y' ? '√' : ''
if (e.isVip) e.isVip = e.isVip == 'Y' ? '√' : ''
if (e.isUpload) e.isUpload = e.isUpload == 'Y' ? '√' : ''
if (e.isUploadAppoint) e.isUploadAppoint = e.isUploadAppoint == 'Y' ? '√' : ''
if (e.isReceiveReport) e.isReceiveReport = e.isReceiveReport == 'Y' ? '√' : ''
//if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName")
// if (e.patientRegisterNo) e.patientRegisterNo = " " + e.patientRegisterNo
if (e.patientNo) e.patientNo = e.patientNo
if (e.idNo) e.idNo = e.idNo + '&'
if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) {
e.packGroup = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
} else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) {
e.packGroup = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
}
// if (e.patientNo) e.patientNo = " " + e.patientNo
// if (e.idNo) e.idNo = " " + e.idNo
// if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) {
// e.packGroup = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
// } else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) {
// e.packGroup = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
// }
//if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName")
// if (e.idNo) e.idNo = " " + e.idNo
// if (e.mobileTelephone) e.mobileTelephone = " " + e.mobileTelephone
// if (e.telephone) e.telephone = " " + e.telephone
if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD")
//if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName")
//if (e.medicalTypeId) e.medicalTypeId = dddw(this.dict.medicalType, "id", e.medicalTypeId, "displayName")
//if (e.personnelTypeId) e.personnelTypeId = dddw(this.dict.personnelType, "id", e.personnelTypeId, "displayName")
if (e.isVip) e.isVip = e.isVip == "Y" ? "是" : "否"
if (e.isUpload) e.isUpload = e.isUpload == "Y" ? "是" : "否"
})
this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls'

62
src/components/report/PatientRegisterListNobtn.vue

@ -9,7 +9,8 @@
<el-table-column v-for="(item, index) in dragCol" v-if="index != 0" :key="`${item.label + index}`"
: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" :show-overflow-tooltip="dragCol[index].showTooltip">
:sortable="dragCol[index].type || dragCol[index].prop == 'sn' ? false : true"
:show-overflow-tooltip="dragCol[index].showTooltip">
<template slot-scope="scope">
<div v-if="dragCol[index].prop == 'sn'">
@ -35,14 +36,7 @@
dragCol[index].prop == 'isUploadAppoint' ||
dragCol[index].prop == 'isReceiveReport'
">
<el-checkbox :value="scope.row[dragCol[index].prop]=='Y'" true-label="Y"
false-label="N" />
</div>
<div v-else-if="dragCol[index].prop == 'packGroup'">
{{ scope.row.medicalPackageName || scope.row.customerOrgGroupName }}
</div>
<div v-else-if="dragCol[index].prop == 'departmentName'">
{{ scope.row.customerOrgName == scope.row.departmentName ? '' : scope.row.departmentName }}
<el-checkbox :value="scope.row[dragCol[index].prop] == 'Y'" true-label="Y" false-label="N" />
</div>
<div v-else>
{{ scope.row[dragCol[index].prop] }}
@ -112,10 +106,10 @@ 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: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "单位名称", prop: "customerOrgName", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "departmentName", minWidth: 150, align: "left", showTooltip: true },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "单位名称", prop: "org", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "dept", minWidth: 150, align: "left", showTooltip: true },
{ label: "姓名", prop: "patientName", minWidth: 60, align: "center" },
{ label: "性别", prop: "sexName", minWidth: 60, align: "center" },
{ label: "年龄", prop: "age", minWidth: 60, align: "center" },
@ -125,11 +119,11 @@ export default {
{ label: "档案号", prop: "patientNo", minWidth: 80, align: "center" },
{ label: "次数", prop: "medicalTimes", minWidth: 60, align: "center" },
{ label: "备注", prop: "remark", minWidth: 150, align: "left" },
{ label: "分组/套餐", prop: "packGroup", minWidth: 150, align: "center" },
{ label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" },
{ label: "手机", prop: "mobileTelephone", minWidth: 130, align: "center" },
{ label: "电话", prop: "telephone", minWidth: 130, align: "center" },
{ label: "出生日期", prop: "birthDate", minWidth: 90, align: "center" },
{ label: "婚姻", prop: "maritalStatusName", minWidth: 70, align: "center" },
{ label: "婚姻", prop: "maritalStatusName", minWidth: 70, align: "center" },
{ label: "地址", prop: "address", minWidth: 400, align: "left", showTooltip: true },
{ label: "体检卡号", prop: "medicalCardNo", minWidth: 90, align: "center" },
{ label: "工卡号", prop: "jobCardNo", minWidth: 90, align: "center" },
@ -278,12 +272,12 @@ export default {
//
items.push({
label:'取消领取报告',
onClick: () => {
this.canselGetReport();
label: '取消领取报告',
onClick: () => {
this.canselGetReport();
}
})
//
this.$contextmenu({
items,
@ -295,7 +289,7 @@ export default {
minWidth: 80,
});
return false;
},
@ -404,15 +398,23 @@ export default {
postapi('/api/app/patientregister/getlistinfilter', body)
.then((res) => {
if (res.code != -1) {
this.patientRegister.prList = res.data.items;
this.patientRegister.prList = this.prListTrans(res.data.items);
}
})
// try {
// let res =await postapi('/api/app/patientregister/getlistinfilter', body);
// this.patientRegister.prList = res.data;
// } catch (error) {
// console.log("query error",error);
// }
},
//
prListTrans(items) {
let arr = []
if (Array.isArray(items) && items.length > 0) {
arr = items
arr.forEach(e => {
e.groupPack = e.medicalPackageName || e.customerOrgGroupName
e.org = e.customerOrgName || e.departmentName
e.dept = e.customerOrgName == e.departmentName ? '' : e.departmentName
});
}
return arr
},
//
@ -488,13 +490,13 @@ export default {
if (this.patientRegister.query.isSeries == 'Y' && this.patientRegister.query.patientRegisterNo) {
if (this.dataTransOpts.tableM.patient_register.length == 0) {
this.patientRegister.prList = res.data.items
this.patientRegister.prList = this.prListTrans(res.data.items)
// this.dataTransOpts.tableM.patient_register = res.data.items
} else {
// console.log('isSeries',this.patientRegister.prList,res.data.items[0].patientRegisterId)
// console.log('isSeries',arrayExistObj(this.patientRegister.prList,'patientRegisterId',res.data.items[0].patientRegisterId))
if (res.data.items.length > 0 && arrayExistObj(this.patientRegister.prList, 'patientRegisterId', res.data.items[0].patientRegisterId) == -1) {
this.patientRegister.prList = this.patientRegister.prList.concat(res.data.items)
this.patientRegister.prList = this.patientRegister.prList.concat(this.prListTrans(res.data.items))
// this.dataTransOpts.tableM.patient_register.push(res.data.items[0])
}
}
@ -522,7 +524,7 @@ export default {
if (body.skipCount == 0) { //
this.patientRegister.prList = [];
}
this.patientRegister.prList = this.patientRegister.prList.concat(res.data.items)
this.patientRegister.prList = this.patientRegister.prList.concat(this.prListTrans(res.data.items))
if (body.skipCount == 0 && this.patientRegister.prList.length > 0) {
this.rowClick(this.patientRegister.prList[0])

92
src/components/sumDoctorCheck/SumSug.vue

@ -3,13 +3,13 @@
<!--组件-->
<div style="display: flex;">
<div
:style="`position: absolute; top: 0px; left: ${Math.floor((window.pageWidth - 120) / 2) - 110}px; display: flex;z-index: 3;`">
:style="`position: absolute; top: 0px; left: ${dragging.sugWidthLeft - 110}px; display: flex;z-index: 3;`">
<div v-show="checkPagePriv(pagePriv.privs, '新增综述')">
<el-button style="height: 28px;" class="commonbutton" @click="addSummary"
:disabled="sumBtnDisabledAddSummary">新增综述</el-button>
</div>
</div>
<div :style="`width:${sugWidth - 200}px;background-color: #B9CEE9;`" @contextmenu="onContextmenu">
<div :style="`width:${dragging.sugWidthLeft}px;background-color: #B9CEE9;`" @contextmenu="onContextmenu">
<el-table id="tableSummary" row-key="id" :data="sumDoctorCheck.summaryList" width="100%"
:height="sumHeight - (history_summary_years_limit == '0' ? 0 : 94)" border size="small">
<el-table-column type="index" width="30" align="center" />
@ -90,7 +90,8 @@
</div>
</div>
</div>
<div :style="`width:${sugWidth}px;background-color: #B9CEE9;`" @contextmenu="onContextmenuSug">
<div style="width: 5px;cursor: col-resize;" @mousedown="startDrag">&nbsp;</div>
<div :style="`width:${dragging.sugWidthRight}px;background-color: #B9CEE9;`" @contextmenu="onContextmenuSug">
<el-table id="tableSuggestion" row-key="id" :data="sumDoctorCheck.suggestionList" width="100%"
:height="sumHeight" border size="small" ref="tableSuggestion" @row-contextmenu="onCellRightClick">
<el-table-column width="30" align="center">
@ -257,20 +258,7 @@
</template>
</el-table-column>
</el-table>
</div>
<div style="width:200px;">
<el-table id="tableSuggestionEasy" row-key="id" :data="sumDoctorCheck.suggestionList" width="100%"
:height="sumHeight" border size="small" ref="tableSuggestionEasy" @row-contextmenu="onCellRightClick">
<el-table-column width="30" align="center">
<template slot-scope="scope">
<el-tag class="moveTag" style="cursor: move;background-color: #EEEEEE;">
<div style="width: 16px;">{{ scope.$index + 1 }}</div>
</el-tag>
</template>
</el-table-column>
<el-table-column prop="suggestionTitle" label="诊断目录索引" show-overflow-tooltip/>
</el-table>
</div>
</div>
</div>
<!--弹窗-->
<div>
@ -309,6 +297,7 @@
</span>
</el-dialog>
<!--模拟弹窗-->
<!-- AI诊断所有小结信息-->
<div v-show="AI.visible"
:style="`z-index:3;border-radius: 10px;border: 1px solid #ddd;background-color:#FFF; position: absolute;top:0px;left:0px;width:${AI.width}px;height: ${AI.height}px;opacity:1;`">
@ -330,6 +319,31 @@
<el-button class="commonbutton" @click="AI.visible = false">关闭</el-button>
</div>
</div>
<!-- 诊断目录 -->
<div v-show="dialogIndexVisible"
:style="`z-index:2;border-radius: 10px;border: 1px solid #ddd;background-color:#FFF; position: absolute;top:40px;right:0px;width:200px;height: ${sumHeight - 40}px;opacity:1;`">
<div style="display: flex;justify-content:space-between;">
<div style="margin-left: 5px;">诊断目录</div>
<div>
<el-tooltip content="关闭历次明细窗口" placement="bottom" effect="light">
<i class="el-icon-close" @click="dialogIndexVisible = false"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</el-tooltip>
</div>
</div>
<el-table id="tableSuggestionEasy" row-key="id" :data="sumDoctorCheck.suggestionList" width="100%"
:height="sumHeight" border size="small" ref="tableSuggestionEasy" @row-contextmenu="onCellRightClick">
<el-table-column width="30" align="center">
<template slot-scope="scope">
<el-tag class="moveTag2" style="cursor: move;background-color: #EEEEEE;">
<div class="moveTag2div">{{ scope.$index + 1 }}</div>
</el-tag>
</template>
</el-table-column>
<el-table-column prop="suggestionTitle" label="诊断目录索引" show-overflow-tooltip />
</el-table>
</div>
</div>
</div>
@ -393,10 +407,21 @@ export default {
//cutRows: [] //
}, //
//autosize:{ minRows: 1, maxRows: 1 }
dialogIndexVisible: false,
//
dragging: {
state: false, //
startX: 0, // X
sugWidthLeft: 0,
sugWidthRight: 0
},
};
},
created() {
this.dragging.sugWidthLeft = Math.floor((this.window.pageWidth - 120) / 2)
this.dragging.sugWidthRight = this.dragging.sugWidthLeft
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
@ -1350,7 +1375,7 @@ export default {
console.log('tbody', el)
const that = this;
Sortable.create(el, {
handle: ".moveTag",
handle: ".moveTag2",
animation: 150, // ms, number ms
//
onEnd({ newIndex, oldIndex }) {
@ -1610,7 +1635,7 @@ export default {
let menus = [
// { type: 'separator' },
{ label: '显示诊断目录', itemId: '显示诊断目录', enabled: true },
// { label: '', itemId: '', enabled: true },
// { label: '', itemId: '', enabled: true }
// { label: '', itemId: '', enabled: true },
@ -1668,6 +1693,9 @@ export default {
//this.$message({showClose:true,message:data})
console.log('onContextMenuDIY', data)
switch (data) {
case '显示诊断目录':
this.dialogIndexVisible = true
break;
case '粘贴诊断到当前行前面':
this.insRows(0)
break;
@ -1700,6 +1728,32 @@ export default {
break;
}
},
//
startDrag(e) {
console.log('startDrag', e.clientX)
//
this.dragging.startX = e.clientX
this.dragging.state = true
document.addEventListener('mousemove', this.onDrag);
document.addEventListener('mouseup', this.stopDrag);
},
onDrag(e) {
if (this.dragging.state) {
let X = this.dragging.startX - e.clientX
this.dragging.sugWidthRight += X
this.dragging.sugWidthLeft = this.dragging.sugWidthLeft - X
this.dragging.startX = e.clientX
//console.log('onDrag',e.clientX)
}
},
stopDrag(e) {
this.dragging.state = false
console.log('stopDrag', e.clientX)
},
},
//

Loading…
Cancel
Save