9 changed files with 2300 additions and 1167 deletions
-
32src/components/itemSet/ReferenceRange.vue
-
384src/components/report/StatisticsOCX.vue
-
789src/router/index.js
-
5src/views/Home.vue
-
270src/views/doctorCheck/personnelPositive.vue
-
518src/views/doctorCheck/positiveresults.vue
-
369src/views/doctorCheck/unitphysicalexamination.vue
-
648src/views/fee-settings/Item.vue
-
452src/views/fee-settings/diseaseStatistics.vue
@ -0,0 +1,384 @@ |
|||
<template> |
|||
<div style="display: flex; margin-top: -30px;"> |
|||
<div style="width:230px;"> |
|||
<div style="display: flex;"> |
|||
<span>项目类别</span> |
|||
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" style="margin-left: 3px;width:160px;" |
|||
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :show-all-levels="false" |
|||
clearable filterable @change="parseAsbitem" size="small"> |
|||
</el-cascader> |
|||
</div> |
|||
<div class="mainareaBox"> |
|||
<el-table :data="asbItems" :height="400" @row-dblclick="dbClickChoosedAsb" |
|||
@selection-change="handleSelectionChange" size="small"> |
|||
<el-table-column type="selection" align="center" width="60" /> |
|||
<el-table-column prop="displayName" label="未选诊断" width="160" /> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
|
|||
<div style="width:100px;margin-top: 70px;"> |
|||
<div class="btnList"> |
|||
<el-button type="primary" @click="addAbs(asbItemChoosed)" style="width:90px;">添加 <i class="el-icon-right"></i> |
|||
</el-button> |
|||
</div> |
|||
<div class="btnList"> |
|||
<el-button type="primary" @click="delAbs(asbItemOCXChoosed)" style="width:90px;">移除 <i class="el-icon-back"></i> |
|||
</el-button> |
|||
</div> |
|||
</div> |
|||
|
|||
<div style="display: block; width:230px;"> |
|||
|
|||
<div class="disTotal"> |
|||
<el-select v-model="asbItemId" placeholder="快速选择诊断" size="small" filterable clearable remote automatic-dropdown |
|||
:remote-method="remoteMethod" @change="quickChoosedAsb" default-first-option ref="asbItemId" |
|||
style="width:150px;text-align: left;padding-right: 15px;"> |
|||
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" /> |
|||
</el-select> |
|||
</div> |
|||
|
|||
<div class="mainareaBox"> |
|||
<el-table :data="report.dataAsbitemOCX" height="400" width="100%" @row-dblclick="removeAbs" |
|||
@selection-change="selecteditems" size="small"> |
|||
<!-- temporaryselection personnelUnit.nogroupselected--> |
|||
<el-table-column type="selection" align="center" width="60" /> |
|||
<el-table-column label="已选诊断" width="160" prop="displayName" /> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
|
|||
<div style="width:100px;margin-top: 70px;"> |
|||
<!-- <div class="btnList"> |
|||
<el-button type="primary" @click="medicalPackageVisble = true" style="width:90px;">复制模板</el-button> |
|||
</div> --> |
|||
<div class="btnList"> |
|||
<el-button type="primary" @click="btnOk('close')" style="width:90px;">确定 <i class="el-icon-check"></i> |
|||
</el-button> |
|||
</div> |
|||
<!-- <div class="btnList" |
|||
style="text-align: center;background-color: rgb(192, 192, 192);border-radius: 5%;padding: 5px 0;"> |
|||
已选组合项<br> |
|||
目为空时即<br> |
|||
表示选择所<br> |
|||
有组合项自 |
|||
</div> --> |
|||
</div> |
|||
|
|||
<!--复制套餐--> |
|||
<el-dialog title="诊断模板" :visible.sync="medicalPackageVisble" width="600px" height="400" |
|||
:show-close="false" :close-on-click-modal="false" :append-to-body="true"> |
|||
<el-table :data="dict.medicalPackage" border height="350" row-key="id" size="small" |
|||
highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="patientList" style="margin-top: -30px;"> |
|||
|
|||
<!-- "displayName": "健康体检套餐", |
|||
"price": 20.00, |
|||
"forSexId": "0", |
|||
"isActive": "Y", |
|||
"remark": "2", |
|||
"displayOrder": 1, |
|||
"simpleCode": "JKTJTC", |
|||
"creatorName": "admin", |
|||
"lastModifierName": "users", |
|||
"lastModificationTime": "2023-08-04T16:34:02.94408", |
|||
"lastModifierId": "3a0ca83b-3116-da05-3916-dfd4c0c548cb", |
|||
"creationTime": "2023-07-10T19:53:30.210553", |
|||
"creatorId": "3a0c4180-107c-0c89-b25b-0bd34666dcec", |
|||
"id": "3a0c51d3-2345-38df-ba0b-1862a3c3606f" --> |
|||
<el-table-column type="index" width="50" /> |
|||
<el-table-column prop="displayName" label="套餐名称" width="180"/> |
|||
<el-table-column prop="price" label="价格" width="80"/> |
|||
<el-table-column prop="forSexId" label="适用性别" width="80"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="remark" label="备注" width="100"/> |
|||
<el-table-column prop="creatorName" label="创建人员" width="80"/> |
|||
<el-table-column prop="creationTime" label="创建日期" width="100"> |
|||
<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="lastModifierName" label="修改人员" width="80"/> |
|||
<el-table-column prop="lastModificationTime" label="修改日期" width="100"> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.lastModificationTime"> |
|||
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="medicalPackageVisble = false" style="width:90px;">取消</el-button> |
|||
<el-button type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
|
|||
</div> |
|||
</template> |
|||
<script> |
|||
|
|||
import { mapState, mapActions } from "vuex"; |
|||
import moment from "moment"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw,arrayFilter, arrayReduce, arrayExistObj, deepCopy } from "../../utlis/proFunc"; |
|||
|
|||
|
|||
export default { |
|||
components: { |
|||
|
|||
}, |
|||
props: ["patientRegisterForm", "payTypeFlag"], |
|||
data() { |
|||
return { |
|||
itemTypeIds: [], //项目类别 |
|||
|
|||
asbItems: [], //可被选的 asbItem |
|||
asbItemChoosed: [], //勾选的 未选组合项目 |
|||
|
|||
asbItemOCXChoosed: [], //勾选的 已选组合项目 |
|||
|
|||
asbItemQuick: [], //可供 快速选择的组合项目 |
|||
quickAsb: [], //快速选择当前显的下拉数据 |
|||
asbItemId: '', //快速选择的组合项目ID |
|||
|
|||
medicalPackageVisble:false, |
|||
curPackageId:'', //当前选中套餐ID |
|||
packageAsbitems:[], //套餐中包含的组合项目 |
|||
|
|||
}; |
|||
}, |
|||
computed: { |
|||
...mapState(["dict", "customerOrg", "patientRegister", "personnelUnit", "report"]), |
|||
}, |
|||
|
|||
created() { |
|||
|
|||
}, |
|||
|
|||
mounted() { |
|||
this.dictInit(); |
|||
}, |
|||
|
|||
methods: { |
|||
moment,dddw, |
|||
|
|||
dictInit() { |
|||
this.parseAsbitem(); |
|||
}, |
|||
|
|||
//分析可选组合项目,及快速可选组合项目的数据 |
|||
parseAsbitem() { |
|||
this.asbItemQuick = deepCopy(this.dict.asbItemAll); |
|||
arrayReduce(this.asbItemQuick, this.report.dataAsbitemOCX, 'id'); |
|||
this.asbItems = deepCopy(this.asbItemQuick); |
|||
if (this.itemTypeIds && this.itemTypeIds.length > 0) { |
|||
this.asbItems = arrayFilter(this.asbItems, 'itemTypeId', this.itemTypeIds[this.itemTypeIds.length - 1]) |
|||
} |
|||
}, |
|||
|
|||
|
|||
|
|||
//未选组合项目 勾选情况 |
|||
handleSelectionChange(val) { |
|||
// this.selecteddata = val; |
|||
this.asbItemChoosed = val; |
|||
//console.log(this.asbItemChoosed); |
|||
}, |
|||
|
|||
// 添加组合项目 |
|||
///api/app/register-asbitem/many/3fa85f64-5717-4562-b3fc-2c963f66afa6' |
|||
addAbs(asbItemChoosed) { |
|||
|
|||
if (asbItemChoosed.length < 1) { |
|||
alert("请选择要添加的组合项目") |
|||
return |
|||
} |
|||
arrayReduce(this.asbItems, asbItemChoosed, 'id') |
|||
arrayReduce(this.asbItemQuick, asbItemChoosed, 'id') |
|||
this.report.dataAsbitemOCX = this.report.dataAsbitemOCX.concat(asbItemChoosed) |
|||
|
|||
this.btnOk(); |
|||
}, |
|||
|
|||
//人员已选组合项目 勾选情况 |
|||
selecteditems(val) { |
|||
this.asbItemOCXChoosed = val |
|||
}, |
|||
|
|||
//删除 人员已选中的组合项目 |
|||
///api/app/register-asbitem/many?RegisterAsbitemIds=3fa85f64-5717-4562-b3fc-2c963f66afa6 |
|||
delAbs(absForDel) { |
|||
if (absForDel.length < 1) { |
|||
alert("请选择要移除的组合项目") |
|||
return |
|||
} |
|||
arrayReduce(this.report.dataAsbitemOCX, absForDel, 'id'); |
|||
this.asbItems = this.asbItems.concat(absForDel) |
|||
this.asbItemQuick = this.asbItemQuick.concat(absForDel) |
|||
this.btnOk(); |
|||
}, |
|||
|
|||
//双击删除已选项目 |
|||
removeAbs(row) { |
|||
this.delAbs([row]); |
|||
}, |
|||
|
|||
|
|||
//双击选择组合项目 |
|||
dbClickChoosedAsb(row) { |
|||
this.addAbs([row]); |
|||
}, |
|||
|
|||
//快速选择组合项目 |
|||
quickChoosedAsb(v) { |
|||
//远程查询时,设置了 value-key 也不管用,只能取到value console.log('quickChoosedAsb',v) |
|||
let lfind = -1 |
|||
if (v) { |
|||
lfind = arrayExistObj(this.asbItemQuick, 'id', v) |
|||
if (lfind > -1) { |
|||
this.addAbs([this.asbItemQuick[lfind]]) |
|||
} |
|||
} |
|||
}, |
|||
|
|||
//快速选择组合项目时,调整可按拼间简码及简称查找 |
|||
remoteMethod(keyWords) { |
|||
//console.log('remoteMethod',this.dict.asbItemQuick) |
|||
if (keyWords) { |
|||
this.quickAsb = []; |
|||
this.asbItemQuick.forEach(item => { |
|||
if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 |
|||
|| item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 |
|||
// || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 |
|||
) { |
|||
this.quickAsb.push(item); |
|||
} |
|||
}); |
|||
} else { |
|||
this.quickAsb = deepCopy(this.asbItemQuick); |
|||
} |
|||
}, |
|||
|
|||
//选中套餐 |
|||
async rowClick(row){ |
|||
this.curPackageId = row.id |
|||
this.packageAsbitems = [] |
|||
try { |
|||
let res = await getapi(`/api/app/medical-package-detail/medical-package-in-asbitem?MedicalPackageId=${row.id}`) |
|||
this.packageAsbitems = res.data |
|||
} catch (error) { |
|||
console.log(error) |
|||
} |
|||
}, |
|||
|
|||
//双击选套餐,并确认复制 |
|||
async rowDblclick(row){ |
|||
await this.rowClick(row) |
|||
this.copyMedicalPackage() |
|||
}, |
|||
|
|||
//复制套餐(确认选中套餐) |
|||
copyMedicalPackage(){ |
|||
if(!this.curPackageId){ |
|||
this.$message.warning("请先选择要复制的套餐!") |
|||
return |
|||
} |
|||
console.log('this.packageAsbitems',this.packageAsbitems) |
|||
this.addAbs(this.packageAsbitems) |
|||
this.medicalPackageVisble = false |
|||
}, |
|||
|
|||
btnOk(closed){ |
|||
if(this.report.dataAsbitemOCX && this.report.dataAsbitemOCX.length > 0){ |
|||
switch (this.report.dataAsbitemOCX.length) { |
|||
case 1: |
|||
this.patientRegister.query.asbitemOCX = this.report.dataAsbitemOCX[0].displayName |
|||
break; |
|||
default: |
|||
this.patientRegister.query.asbitemOCX = this.report.dataAsbitemOCX[0].displayName + ',… + ' + this.report.dataAsbitemOCX.length |
|||
break; |
|||
} |
|||
}else{ |
|||
this.patientRegister.query.asbitemOCX = '' |
|||
} |
|||
|
|||
if(closed){ |
|||
this.report.dialogAsbitemOCX = false |
|||
} |
|||
} |
|||
|
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../assets/css/global.css"; |
|||
|
|||
.mainareaBox { |
|||
border: 1px solid #000; |
|||
height: 400px; |
|||
margin-top: 5px; |
|||
} |
|||
|
|||
.btnList { |
|||
margin-top: 5px; |
|||
margin-left: 5px; |
|||
margin-right: 5px; |
|||
} |
|||
|
|||
.disTotal { |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
::v-deep .el-input__inner { |
|||
/*text-align: center;*/ |
|||
padding-left: 2px; |
|||
padding-right: 15px; |
|||
} |
|||
|
|||
::v-deep .el-input__icon { |
|||
width: 15px; |
|||
/* 输入框下拉箭头或清除图标 默认 25 */ |
|||
} |
|||
|
|||
/* 表格 表头 列间距控制 */ |
|||
::v-deep .el-table th.el-table__cell>.cell { |
|||
text-align: center; |
|||
/* 表格 表头 对齐方式,默认 left */ |
|||
padding-right: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
padding-left: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 表体 首列左间距控制 */ |
|||
::v-deep .el-table--border .el-table__cell:first-child .cell { |
|||
padding-left: 2px; |
|||
/* 表格 表体 首列左间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 行列间距控制 ,默认 10 px*/ |
|||
::v-deep .el-table__cell { |
|||
padding: 2px 2px 2px 2px; |
|||
/* 上,右,下,左 */ |
|||
} |
|||
|
|||
|
|||
::v-deep .cell { |
|||
padding-left: 2px; |
|||
padding-right: 2px; |
|||
} |
|||
|
|||
::v-deep .el-icon-date:before { |
|||
content: "" |
|||
}</style> |
|||
@ -0,0 +1,270 @@ |
|||
<template> |
|||
<div> |
|||
<el-card> |
|||
<div class="publiccss">人员阳性结果</div> |
|||
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'"> |
|||
<div style="display: flex; flex-wrap: wrap; height:35px;margin-bottom: 10px;"> |
|||
<div class="query"> |
|||
<span>体检单位:</span> |
|||
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>检查状态:</span> |
|||
<el-select v-model="completeFlag" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="正式登记" value="正式登记" /> |
|||
<el-option label="部份已检" value="部份已检" /> |
|||
<el-option label="已总检" value="已总检" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<el-checkbox v-model="classification" true-label="Y" false-label="N"/> |
|||
<span style="margin-left:5px;">审核状态</span> |
|||
</div> |
|||
<!-- <div class="query"> |
|||
<span>疾病来源:</span> |
|||
<el-select v-model="patientRegister.query.isCharge" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="综述" value="0" /> |
|||
<el-option label="建议" value="1" /> |
|||
<el-option label="疾病列表" value="2" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<el-checkbox v-model="classification" true-label="Y" false-label="N"/> |
|||
<span>分类统计</span> |
|||
</div> --> |
|||
<div class="query"> |
|||
<el-button type="primary" @click="btnQuery" size="small">查询</el-button> |
|||
</div> |
|||
</div> |
|||
<el-table :data="dataList" border width="45%" :height="window.pageHeight < 600 ? 360 : window.pageHeight - 240" |
|||
row-key="id" size="small" highlight-current-row ref="dataList" :row-class-name="tableRowClassName"> |
|||
<el-table-column prop="patientNo" label="档案号" /> |
|||
<el-table-column prop="patientName" label="姓名" /> |
|||
<el-table-column prop="sexName" label="性别" /> |
|||
<el-table-column prop="age" label="年龄" /> |
|||
<el-table-column prop="diagnosisNames" label="诊断名称" /> |
|||
</el-table> |
|||
</div> |
|||
</el-card> |
|||
<!--通用选单位、体检次数、分组的控件--> |
|||
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|||
:close-on-click-modal="false" width="840px" height="600px"> |
|||
<CusOrgOCX/> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import moment from "moment"; |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc"; |
|||
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"; |
|||
|
|||
export default { |
|||
components: { |
|||
CusOrgOCX |
|||
}, |
|||
data() { |
|||
return { |
|||
dataList: [], //列表数据 |
|||
completeFlag:"", |
|||
classification:"Y" |
|||
}; |
|||
}, |
|||
|
|||
created() { |
|||
this.dictInit(); |
|||
}, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.btnQuery(); |
|||
}, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict","patientRegister","report"]), |
|||
}, |
|||
|
|||
methods: { |
|||
moment,dddw, |
|||
//数据初始化 |
|||
dictInit() { |
|||
//体检中心 |
|||
getapi("/api/app/organization-units/organization-unit-by-is-peis").then( |
|||
(res) => { |
|||
if (res.code == 1) { |
|||
this.dict.organization = res.data; |
|||
} |
|||
} |
|||
); |
|||
|
|||
//体检单位树 |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
if (res.code == 1) { |
|||
this.patientRegister.customerOrgTreeAll = res.data; |
|||
tcdate(this.patientRegister.customerOrgTreeAll); |
|||
} |
|||
}); |
|||
|
|||
// //体检类别 |
|||
// getapi("/api/app/medical-type/in-filter").then((res) => { |
|||
// if (res.code == 1) { |
|||
// this.dict.medicalType = res.data.items; |
|||
// } |
|||
// }); |
|||
|
|||
// //体检类别 树结构 |
|||
// getapi("/api/app/item-type/by-code-all").then((res) => { |
|||
// if (res.code == 1) { |
|||
// this.dict.itemTypeTree = res.data; |
|||
// tcdate(this.dict.itemTypeTree); |
|||
// } |
|||
// }); |
|||
|
|||
// postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => { |
|||
// if (res.code == 1) { |
|||
// this.dict.asbItemAll = res.data; |
|||
// } |
|||
// }); |
|||
|
|||
console.log("dict", this.dict); |
|||
}, |
|||
|
|||
tableRowClassName({ row, rowIndex }) { |
|||
switch (row.isCharge) { |
|||
case 'N': |
|||
return 'danger'; |
|||
default: |
|||
return ''; |
|||
} |
|||
}, |
|||
|
|||
//查询 |
|||
btnQuery() { |
|||
let body = {}, customerOrgs = [], diagnosisIds = []; |
|||
if (this.report.dataCusOrgOCX.length > 0) { |
|||
this.report.dataCusOrgOCX.forEach(e => { |
|||
let rd = { |
|||
startDate: moment(e.startDate).format('yyyy-MM-DD'), |
|||
endDate: moment(e.endDate).format('yyyy-MM-DD'), |
|||
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1') |
|||
} |
|||
|
|||
if (e.customerOrgId) { |
|||
rd.customerOrgId = e.customerOrgId |
|||
if (e.customerOrgId == this.dict.personOrgId) { |
|||
rd.customerOrgRegisterId = null |
|||
rd.customerOrgGroupId = [] |
|||
} else { |
|||
rd.customerOrgRegisterId = e.customerOrgRegister.id |
|||
rd.customerOrgGroupId = e.customerOrgGroupIds |
|||
} |
|||
} |
|||
customerOrgs.push(rd) |
|||
}) |
|||
} |
|||
|
|||
// if (this.report.dataAsbitemOCX.length > 0) { |
|||
// this.report.dataAsbitemOCX.forEach(e => { |
|||
// diagnosisIds.push(e.id) |
|||
// }) |
|||
// } |
|||
|
|||
body.customerOrgs = customerOrgs |
|||
// body.diagnosisIds = diagnosisIds |
|||
body.completeFlag = this.completeFlag |
|||
body.isAudit=this.classification |
|||
|
|||
|
|||
// if (this.patientRegister.query.isCharge) body.isCharge = this.patientRegister.query.isCharge |
|||
|
|||
//console.log('/api/app/peisreport/getregisterasbitemchargestatus',body) |
|||
|
|||
postapi('/api/customerreport/getpatientregisterpositivereport', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataList = res.data; |
|||
} |
|||
}) |
|||
}, |
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//触发查询事件 |
|||
// "patientRegister.query.times"(newVal, oldVal) { |
|||
// if (newVal != oldVal) { |
|||
// //alert('触发查询事件') |
|||
// this.query(); |
|||
// } |
|||
// }, |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
::v-deep .el-input__inner { |
|||
/*text-align: center;*/ |
|||
padding-left: 5px; |
|||
padding-right: 15px; |
|||
} |
|||
|
|||
::v-deep .el-input-group__append { |
|||
padding: 0 5px; |
|||
/* 控件默认 0 20px;*/ |
|||
} |
|||
|
|||
/* 表格 表头 列间距控制 */ |
|||
::v-deep .el-table th.el-table__cell>.cell { |
|||
text-align: center; |
|||
/* 表格 表头 对齐方式,默认 left */ |
|||
padding-right: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
padding-left: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 表体 首列左间距控制 */ |
|||
::v-deep .el-table--border .el-table__cell:first-child .cell { |
|||
padding-left: 2px; |
|||
/* 表格 表体 首列左间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 行列间距控制 ,默认 10 px*/ |
|||
::v-deep .el-table__cell { |
|||
padding: 2px 2px 2px 2px; |
|||
/* 上,右,下,左 */ |
|||
} |
|||
|
|||
/* 表格单元格 .el-table .cell ,默认 10 px*/ |
|||
::v-deep .cell { |
|||
padding-left: 2px; |
|||
padding-right: 2px; |
|||
} |
|||
|
|||
.query { |
|||
margin-left: 10px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
|
|||
.listBtn { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
</style> |
|||
@ -1,273 +1,319 @@ |
|||
<template> |
|||
<div class="box" :style="CustomerOrgRightStyle"> |
|||
<el-card class="cards"> |
|||
<div class="publiccss">阳性结果人员</div> |
|||
<el-row> |
|||
<el-form ref="form" :model="form" label-width="120px" style="margin-top:20px"> |
|||
<el-col :span="4"> |
|||
<el-form-item label="单位"> |
|||
<el-select |
|||
v-model="form.unit" |
|||
placeholder="请选择" |
|||
@focus="unitchang" |
|||
> |
|||
<el-option |
|||
v-for="item in customerorgdatas" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item style="margin-left: -80px"> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">疾病</el-radio> |
|||
<el-radio :label="6">综述</el-radio> |
|||
<el-radio :label="9">综述建议</el-radio> |
|||
<el-radio :label="12">综述建议疾病</el-radio> |
|||
</el-radio-group> |
|||
<!-- <el-select v-model="form.diagnosis" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in diagnosisdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> --> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="疾病来源" style="margin-left: -50px"> |
|||
<el-select v-model="form.diagnosis" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in diagnosisdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-button type="primary" style="margin-left: 10px">查询</el-button> |
|||
</el-col> |
|||
</el-form> |
|||
</el-row> |
|||
<!-- tab区域 --> |
|||
<h3 class="tabtitle">人员体检结果清单</h3> |
|||
<el-table :data="tableData" style="width: 100%"> |
|||
<el-table-column prop="disease" label="档案号" width="180"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="numberofpeople" |
|||
label="姓名" |
|||
width="180" |
|||
></el-table-column> |
|||
<el-table-column prop="numberofpeople" label="性别" width="180"> |
|||
</el-table-column> |
|||
<el-table-column prop="shareintotal" label="年龄" width="180"> |
|||
</el-table-column> |
|||
<el-table-column prop="shareintotal" label="体检结果"> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- --> |
|||
<!-- 单位显示隐藏 --> |
|||
<div class="showbox"> |
|||
<el-popover |
|||
placement="bottom" |
|||
width="600" |
|||
trigger="manual" |
|||
content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。" |
|||
v-model="visible" |
|||
> |
|||
<div> |
|||
<span>单位查找</span> |
|||
<el-select |
|||
v-model="form.unit" |
|||
placeholder="请选择" |
|||
style="margin-left: 10px" |
|||
> |
|||
<el-option |
|||
v-for="item in customerorgdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
<div> |
|||
<el-card> |
|||
<div class="publiccss">阳性结果人员</div> |
|||
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'"> |
|||
<div style="display: flex; flex-wrap: wrap; height:35px;margin-bottom: 10px;"> |
|||
<div class="query"> |
|||
<span>体检单位:</span> |
|||
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>诊断:</span> |
|||
<el-input placeholder="请选择诊断" v-model="patientRegister.query.asbitemOCX" style="width:240px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>检查状态:</span> |
|||
<el-select v-model="completeFlag" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="正式登记" value="正式登记" /> |
|||
<el-option label="部份已检" value="部份已检" /> |
|||
<el-option label="已总检" value="已总检" /> |
|||
</el-select> |
|||
</div> |
|||
<!-- 标题 --> |
|||
<div class="biaoti"> |
|||
双击单位下的体检次数或部门可增加查询条件双击列表中的行可删除查询条件 |
|||
<div class="query"> |
|||
<el-checkbox v-model="classification" true-label="Y" false-label="N"/> |
|||
<span style="margin-left:5px;">审核状态</span> |
|||
</div> |
|||
<div class="query"> |
|||
<span>报表格式:</span> |
|||
<el-select v-model="format" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="标准格式" value="0" /> |
|||
<el-option label="精简格式" value="1" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="boxflex"> |
|||
<div class="leftbox"> |
|||
<el-tree :data="customerorgdata" :props="defaultProps"></el-tree> |
|||
</div> |
|||
<div class="rigtbox"> |
|||
<el-table :data="tableData" style="width: 100%"> |
|||
<el-table-column prop="numberofpeople" label="单位"> |
|||
</el-table-column> |
|||
<el-table-column prop="numberofpeople" label="次数"> |
|||
</el-table-column> |
|||
<el-table-column prop="shareintotal" label="日期"> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div style="margin-top: 10px">登记日期方式</div> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">登记日期</el-radio> |
|||
<el-radio :label="6">体检日期</el-radio> |
|||
<el-radio :label="9">总检日期</el-radio> |
|||
</el-radio-group> |
|||
<div style="margin-top: 10px">单位选择方式</div> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">选择单位</el-radio> |
|||
<el-radio :label="6">不选单位</el-radio> |
|||
</el-radio-group> |
|||
<!-- --> |
|||
<div> |
|||
<el-button style="margin-left: 100%" @click="close" |
|||
>关闭</el-button |
|||
> |
|||
</div> |
|||
</div> |
|||
<div class="query"> |
|||
<el-button type="primary" @click="btnQuery" size="small">查询</el-button> |
|||
</div> |
|||
</el-popover> |
|||
</div> |
|||
<template v-if="format == 0"> |
|||
<div v-for="item,index in dataList" :key="index"> |
|||
<div>{{item.diagnosisName}}</div> |
|||
<el-table :data="item.patientRegisters" border width="45%" :height="dataList.length>1?'':window.pageHeight < 600 ? 360 : window.pageHeight - 240" |
|||
row-key="id" size="small" highlight-current-row ref="dataList" :row-class-name="tableRowClassName"> |
|||
<el-table-column prop="departmentName" label="部门" /> |
|||
<el-table-column prop="patientName" label="姓名" /> |
|||
<el-table-column prop="sexName" label="性别" /> |
|||
<el-table-column prop="age" label="年龄" /> |
|||
<el-table-column prop="patientRegisterNo" label="条码号" /> |
|||
<el-table-column prop="patientNo" label="档案号" /> |
|||
<el-table-column prop="medicalTimes" label="体检次数" /> |
|||
<el-table-column prop="telephone" label="电话" /> |
|||
<el-table-column prop="mobileTelephone" label="手机号" /> |
|||
</el-table> |
|||
</div> |
|||
<el-table :data="dataList" border width="45%" :height="dataList.length>1?'':window.pageHeight < 600 ? 360 : window.pageHeight - 240" |
|||
row-key="id" size="small" highlight-current-row ref="dataList" :row-class-name="tableRowClassName" v-if="dataList.length==0"> |
|||
<el-table-column prop="departmentName" label="部门" /> |
|||
<el-table-column prop="patientName" label="姓名" /> |
|||
<el-table-column prop="sexName" label="性别" /> |
|||
<el-table-column prop="age" label="年龄" /> |
|||
<el-table-column prop="patientRegisterNo" label="条码号" /> |
|||
<el-table-column prop="patientNo" label="档案号" /> |
|||
<el-table-column prop="medicalTimes" label="体检次数" /> |
|||
<el-table-column prop="telephone" label="电话" /> |
|||
<el-table-column prop="mobileTelephone" label="手机号" /> |
|||
</el-table> |
|||
</template> |
|||
<template v-else-if="format==1"> |
|||
<div> |
|||
<el-table :data="dataLists" border width="45%" :height="window.pageHeight < 600 ? 360 : window.pageHeight - 240" |
|||
row-key="id" size="small" highlight-current-row ref="dataList" :row-class-name="tableRowClassName"> |
|||
<el-table-column prop="diagnosisName" label="诊断名称" /> |
|||
<el-table-column prop="patientNames" label="人员" /> |
|||
<el-table-column prop="patientCount" label="人数" /> |
|||
<el-table-column prop="percentage" label="占百分比" /> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
</div> |
|||
|
|||
<!-- --> |
|||
</el-card> |
|||
<!--通用选单位、体检次数、分组的控件--> |
|||
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|||
:close-on-click-modal="false" width="840px" height="600px"> |
|||
<CusOrgOCX/> |
|||
</el-dialog> |
|||
<!--通用选组合项目的控件--> |
|||
<el-dialog title="诊断选择" :visible.sync="report.dialogAsbitemOCX" :close-on-click-modal="false" width="700px" |
|||
height="600px"> |
|||
<StatisticsOCX /> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getapi, postapi } from "@/api/api"; |
|||
import { mapState } from "vuex"; |
|||
import moment from "moment"; |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc"; |
|||
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"; |
|||
import StatisticsOCX from "../../components/report/StatisticsOCX.vue" |
|||
|
|||
export default { |
|||
components: { |
|||
CusOrgOCX, |
|||
StatisticsOCX |
|||
}, |
|||
data() { |
|||
return { |
|||
radio: "", |
|||
defaultProps: { |
|||
label: "displayName", |
|||
children: "treeChildren", |
|||
}, |
|||
visible: false, |
|||
form: { |
|||
unit: "", |
|||
diagnosis: "", |
|||
}, |
|||
CustomerOrgTreeStyle: "", |
|||
CustomerOrgRightStyle: "", |
|||
customerorgdatas: [], |
|||
tableData: [ |
|||
{ |
|||
disease: "是,否", |
|||
numberofpeople: "20", |
|||
shareintotal: "30", |
|||
}, |
|||
], |
|||
customerorgdata: [], |
|||
diagnosisdata: [], |
|||
return { |
|||
dataList: [], //列表数据 |
|||
dataLists:[], |
|||
completeFlag:"", |
|||
classification:"Y", |
|||
format:"0" |
|||
}; |
|||
}, |
|||
computed: { |
|||
...mapState(["window", "dict", "patientRegister", "customerOrg"]), |
|||
}, |
|||
|
|||
created() { |
|||
// this.resize(); |
|||
this.dictInit(); |
|||
}, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.obtainingunits(); |
|||
this.getdiagnosis(); |
|||
this.btnQuery(); |
|||
}, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict","patientRegister","report"]), |
|||
}, |
|||
methods: { |
|||
resize() { |
|||
//console.log(this.window.pageHeight,this.window.pageWidth) |
|||
let headerHeight = Number(150); |
|||
|
|||
this.CustomerOrgTreeStyle = |
|||
"overflow: scroll;border: 1px solid;width:200px; height:" + |
|||
(this.window.pageHeight - headerHeight) + |
|||
"px;"; |
|||
this.CustomerOrgRightStyle = |
|||
"margin-left: 10px;width:" + |
|||
(this.window.pageWidth - 200 - 60) + |
|||
"px; height:" + |
|||
(this.window.pageHeight - headerHeight) + |
|||
"px;"; |
|||
methods: { |
|||
moment,dddw, |
|||
//数据初始化 |
|||
dictInit() { |
|||
//体检中心 |
|||
getapi("/api/app/organization-units/organization-unit-by-is-peis").then( |
|||
(res) => { |
|||
if (res.code == 1) { |
|||
this.dict.organization = res.data; |
|||
} |
|||
} |
|||
); |
|||
|
|||
if (this.window.pageHeight < 600) { |
|||
this.CustomerOrgTreeStyle = |
|||
"overflow: scroll;border: 1px solid;width:200px; height:" + |
|||
(600 - headerHeight) + |
|||
"px;"; |
|||
} |
|||
}, |
|||
close() { |
|||
this.visible = false; |
|||
}, |
|||
// /api/app/customerorg/getbycodeall |
|||
unitchang() { |
|||
console.log("1"); |
|||
this.visible = true; |
|||
console.log(this.visible); |
|||
//体检单位树 |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
this.customerorgdata = res.data; |
|||
if (res.code == 1) { |
|||
this.patientRegister.customerOrgTreeAll = res.data; |
|||
tcdate(this.patientRegister.customerOrgTreeAll); |
|||
} |
|||
}); |
|||
}, |
|||
//获取单位 |
|||
obtainingunits() { |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
this.customerorgdata = res.data; |
|||
|
|||
//体检类别 |
|||
getapi("/api/app/medical-type/in-filter").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.medicalType = res.data.items; |
|||
} |
|||
}); |
|||
}, |
|||
//获取诊断 |
|||
getdiagnosis() { |
|||
postapi("/api/app/diagnosis/getlistinfilter").then((res) => { |
|||
this.diagnosisdata = res.data.items; |
|||
console.log(res); |
|||
|
|||
//体检类别 树结构 |
|||
getapi("/api/app/item-type/by-code-all").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.itemTypeTree = res.data; |
|||
tcdate(this.dict.itemTypeTree); |
|||
} |
|||
}); |
|||
|
|||
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.asbItemAll = res.data; |
|||
} |
|||
}); |
|||
|
|||
console.log("dict", this.dict); |
|||
}, |
|||
|
|||
tableRowClassName({ row, rowIndex }) { |
|||
switch (row.isCharge) { |
|||
case 'N': |
|||
return 'danger'; |
|||
default: |
|||
return ''; |
|||
} |
|||
}, |
|||
|
|||
//查询 |
|||
btnQuery() { |
|||
let body = {}, customerOrgs = [], diagnosisIds = []; |
|||
if (this.report.dataCusOrgOCX.length > 0) { |
|||
this.report.dataCusOrgOCX.forEach(e => { |
|||
let rd = { |
|||
startDate: moment(e.startDate).format('yyyy-MM-DD'), |
|||
endDate: moment(e.endDate).format('yyyy-MM-DD'), |
|||
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1') |
|||
} |
|||
|
|||
if (e.customerOrgId) { |
|||
rd.customerOrgId = e.customerOrgId |
|||
if (e.customerOrgId == this.dict.personOrgId) { |
|||
rd.customerOrgRegisterId = null |
|||
rd.customerOrgGroupId = [] |
|||
} else { |
|||
rd.customerOrgRegisterId = e.customerOrgRegister.id |
|||
rd.customerOrgGroupId = e.customerOrgGroupIds |
|||
} |
|||
} |
|||
customerOrgs.push(rd) |
|||
}) |
|||
} |
|||
|
|||
if (this.report.dataAsbitemOCX.length > 0) { |
|||
this.report.dataAsbitemOCX.forEach(e => { |
|||
diagnosisIds.push(e.id) |
|||
}) |
|||
} |
|||
|
|||
body.customerOrgs = customerOrgs |
|||
body.diagnosisIds = diagnosisIds |
|||
body.completeFlag = this.completeFlag |
|||
body.isAudit=this.classification |
|||
|
|||
//console.log('/api/app/peisreport/getregisterasbitemchargestatus',body) |
|||
if(this.format==0){ |
|||
postapi('/api/customerreport/getpositivepatientregisterreportstandard', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataList = res.data; |
|||
} |
|||
}) |
|||
}else{ |
|||
postapi('/api/customerreport/getpositivepatientregisterreportreduce', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataLists = res.data; |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//触发查询事件 |
|||
// "patientRegister.query.times"(newVal, oldVal) { |
|||
// if (newVal != oldVal) { |
|||
// //alert('触发查询事件') |
|||
// this.query(); |
|||
// } |
|||
// }, |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.rigtbox { |
|||
margin-left: 10px; |
|||
<style scoped> |
|||
::v-deep .el-input__inner { |
|||
/*text-align: center;*/ |
|||
padding-left: 5px; |
|||
padding-right: 15px; |
|||
} |
|||
.leftbox { |
|||
width: 30%; |
|||
border: 1px solid #ccc; |
|||
|
|||
::v-deep .el-input-group__append { |
|||
padding: 0 5px; |
|||
/* 控件默认 0 20px;*/ |
|||
} |
|||
.boxflex { |
|||
display: flex; |
|||
|
|||
/* 表格 表头 列间距控制 */ |
|||
::v-deep .el-table th.el-table__cell>.cell { |
|||
text-align: center; |
|||
/* 表格 表头 对齐方式,默认 left */ |
|||
padding-right: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
padding-left: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
} |
|||
.biaoti { |
|||
margin-top: 10px; |
|||
|
|||
/* 表格 表体 首列左间距控制 */ |
|||
::v-deep .el-table--border .el-table__cell:first-child .cell { |
|||
padding-left: 2px; |
|||
/* 表格 表体 首列左间距控制,默认 10px */ |
|||
} |
|||
/* .el-select-dropdown__empty::v-deep { |
|||
display: none; |
|||
} */ |
|||
.el-popover .el-popper .el-popover--plain { |
|||
width: 600px; |
|||
|
|||
/* 表格 行列间距控制 ,默认 10 px*/ |
|||
::v-deep .el-table__cell { |
|||
padding: 2px 2px 2px 2px; |
|||
/* 上,右,下,左 */ |
|||
} |
|||
.showbox { |
|||
width: 600px; |
|||
height: 300px; |
|||
/* border: 1px solid #ccc; */ |
|||
position: absolute; |
|||
left: 8.5%; |
|||
top: 140px; |
|||
|
|||
/* 表格单元格 .el-table .cell ,默认 10 px*/ |
|||
::v-deep .cell { |
|||
padding-left: 2px; |
|||
padding-right: 2px; |
|||
} |
|||
|
|||
.query { |
|||
margin-left: 10px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.cards { |
|||
height: 800px; |
|||
|
|||
.listBtn { |
|||
margin-top: 20px; |
|||
} |
|||
.tabtitle { |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
text-align: center; |
|||
margin-top: 20px; |
|||
} |
|||
</style> |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
</style> |
|||
@ -1,128 +1,285 @@ |
|||
<template> |
|||
<div class="box"> |
|||
<el-card> |
|||
<el-row> |
|||
<el-form :model="form"> |
|||
<el-col :span="4"> |
|||
<el-form-item label="单位"> |
|||
<el-select v-model="form.customerorg" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in customerorgdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="疾病来源"> |
|||
<el-select |
|||
v-model="form.diseasesource" |
|||
placeholder="请选择" |
|||
style="width: 60%" |
|||
> |
|||
<el-option |
|||
v-for="item in diseasesourcedata" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="2"> |
|||
<el-checkbox v-model="checked">备选项</el-checkbox> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-radio v-model="radio" label="1">疾病</el-radio> |
|||
<el-radio v-model="radio" label="2">综述</el-radio> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="报表格式"> |
|||
<el-select v-model="form.report" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in reportdata" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-button type="primary">查询</el-button> |
|||
</el-col> |
|||
</el-form> |
|||
</el-row> |
|||
<!-- --> |
|||
<div class="mainarea"></div> |
|||
<div> |
|||
<el-card> |
|||
<div class="publiccss">单位体检报表</div> |
|||
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'"> |
|||
<div style="display: flex; flex-wrap: wrap; height:35px;margin-bottom: 10px;"> |
|||
<div class="query"> |
|||
<span>体检单位:</span> |
|||
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>报表格式:</span> |
|||
<el-select v-model="format" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="标准格式" value="0" /> |
|||
<el-option label="精简格式" value="1" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<el-button type="primary" @click="btnQuery" size="small">查询</el-button> |
|||
</div> |
|||
</div> |
|||
<template v-if="format == 0"> |
|||
<div> |
|||
<div> |
|||
<h2>北京神豚软件开发有限公司体检报告</h2> |
|||
<div> |
|||
<span>单位名称</span> |
|||
<span>{{dataList.customerOrgs.customerOrgName}}</span> |
|||
</div> |
|||
<div> |
|||
<span>体检次数</span> |
|||
<span>{{dataList.customerOrgs.medicalTimes}}</span> |
|||
</div> |
|||
<div> |
|||
<span>开始月份</span> |
|||
<span>{{dataList.customerOrgs.beginTime}}</span> |
|||
</div> |
|||
<div> |
|||
<span>结束月份</span> |
|||
<span>{{dataList.customerOrgs.endTime}}</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<template v-else-if="format==1"> |
|||
|
|||
</template> |
|||
</div> |
|||
</el-card> |
|||
<!--通用选单位、体检次数、分组的控件--> |
|||
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|||
:close-on-click-modal="false" width="840px" height="600px"> |
|||
<CusOrgOCX/> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getapi } from "@/api/api"; |
|||
import moment from "moment"; |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc"; |
|||
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"; |
|||
|
|||
export default { |
|||
components: { |
|||
CusOrgOCX |
|||
}, |
|||
data() { |
|||
return { |
|||
radio: "1", |
|||
checked: false, |
|||
form: { |
|||
customerorg: "", |
|||
diseasesource: "", |
|||
report: "", |
|||
}, |
|||
customerorgdata: [], |
|||
reportdata: [ |
|||
{ |
|||
value: "1", |
|||
label: "标准格式", |
|||
}, |
|||
{ |
|||
value: "2", |
|||
label: "精简格式", |
|||
}, |
|||
{ |
|||
value: "3", |
|||
label: "Word格式", |
|||
}, |
|||
], //报表格式 |
|||
diseasesourcedata: [ |
|||
{ |
|||
value: "1", |
|||
label: "综述", |
|||
}, |
|||
return { |
|||
dataList: [ |
|||
{ |
|||
value: "2", |
|||
label: "建议", |
|||
}, |
|||
"patientRegisterPositiveReports": [ |
|||
{ |
|||
"patientNo": "string", |
|||
"patientName": "string", |
|||
"sexName": "string", |
|||
"age": 0, |
|||
"diagnosisNames": "string" |
|||
} |
|||
], |
|||
"positivePatientRegisterReportStandards": [ |
|||
{ |
|||
"diagnosisName": "string", |
|||
"patientRegisters": [ |
|||
{ |
|||
value: "3", |
|||
label: "疾病列表", |
|||
}, |
|||
], // |
|||
"departmentName": "string", |
|||
"patientName": "string", |
|||
"sexName": "string", |
|||
"age": 0, |
|||
"patientRegisterNo": "string", |
|||
"patientNo": "string", |
|||
"medicalTimes": 0, |
|||
"telephone": "string", |
|||
"mobileTelephone": "string" |
|||
} |
|||
] |
|||
} |
|||
], |
|||
"diseaseCountStatisticsReports": [ |
|||
{ |
|||
"diagnosisName": "string", |
|||
"patientNames": "string", |
|||
"patientCount": 0, |
|||
"percentage": "string" |
|||
} |
|||
], |
|||
"customerOrgs": [ |
|||
{ |
|||
"customerOrgName": "string", |
|||
"medicalTimes": 0, |
|||
"beginTime": "string", |
|||
"endTime": "string" |
|||
} |
|||
] |
|||
} |
|||
], //列表数据 |
|||
dataLists:[], |
|||
format:"0" |
|||
}; |
|||
}, |
|||
|
|||
created() { |
|||
this.dictInit(); |
|||
}, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.obtainingunits(); |
|||
// this.btnQuery(); |
|||
}, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict","patientRegister","report"]), |
|||
}, |
|||
|
|||
methods: { |
|||
//获取单位 |
|||
obtainingunits() { |
|||
moment,dddw, |
|||
//数据初始化 |
|||
dictInit() { |
|||
//体检中心 |
|||
getapi("/api/app/organization-units/organization-unit-by-is-peis").then( |
|||
(res) => { |
|||
if (res.code == 1) { |
|||
this.dict.organization = res.data; |
|||
} |
|||
} |
|||
); |
|||
|
|||
//体检单位树 |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
this.customerorgdata = res.data; |
|||
if (res.code == 1) { |
|||
this.patientRegister.customerOrgTreeAll = res.data; |
|||
tcdate(this.patientRegister.customerOrgTreeAll); |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
|
|||
//查询 |
|||
btnQuery() { |
|||
let body = {}, customerOrgs = []; |
|||
if (this.report.dataCusOrgOCX.length > 0) { |
|||
this.report.dataCusOrgOCX.forEach(e => { |
|||
let rd = { |
|||
startDate: moment(e.startDate).format('yyyy-MM-DD'), |
|||
endDate: moment(e.endDate).format('yyyy-MM-DD'), |
|||
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1') |
|||
} |
|||
|
|||
if (e.customerOrgId) { |
|||
rd.customerOrgId = e.customerOrgId |
|||
if (e.customerOrgId == this.dict.personOrgId) { |
|||
rd.customerOrgRegisterId = null |
|||
rd.customerOrgGroupId = [] |
|||
} else { |
|||
rd.customerOrgRegisterId = e.customerOrgRegister.id |
|||
rd.customerOrgGroupId = e.customerOrgGroupIds |
|||
} |
|||
} |
|||
customerOrgs.push(rd) |
|||
}) |
|||
} |
|||
|
|||
if (this.report.dataAsbitemOCX.length > 0) { |
|||
this.report.dataAsbitemOCX.forEach(e => { |
|||
diagnosisIds.push(e.id) |
|||
}) |
|||
} |
|||
|
|||
body.customerOrgs = customerOrgs |
|||
if(this.format==0){ |
|||
postapi('/api/customerreport/getunitphysicalexaminationreportstandard', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataList = res.data; |
|||
} |
|||
}) |
|||
}else{ |
|||
postapi('/api/customerreport/getunitphysicalexaminationreportreduce', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataLists = res.data; |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//触发查询事件 |
|||
// "patientRegister.query.times"(newVal, oldVal) { |
|||
// if (newVal != oldVal) { |
|||
// //alert('触发查询事件') |
|||
// this.query(); |
|||
// } |
|||
// }, |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.mainarea { |
|||
width: 60%; |
|||
height: 600px; |
|||
border: 1px solid #ccc; |
|||
::v-deep .el-input__inner { |
|||
/*text-align: center;*/ |
|||
padding-left: 5px; |
|||
padding-right: 15px; |
|||
} |
|||
|
|||
::v-deep .el-input-group__append { |
|||
padding: 0 5px; |
|||
/* 控件默认 0 20px;*/ |
|||
} |
|||
|
|||
/* 表格 表头 列间距控制 */ |
|||
::v-deep .el-table th.el-table__cell>.cell { |
|||
text-align: center; |
|||
/* 表格 表头 对齐方式,默认 left */ |
|||
padding-right: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
padding-left: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 表体 首列左间距控制 */ |
|||
::v-deep .el-table--border .el-table__cell:first-child .cell { |
|||
padding-left: 2px; |
|||
/* 表格 表体 首列左间距控制,默认 10px */ |
|||
} |
|||
|
|||
/* 表格 行列间距控制 ,默认 10 px*/ |
|||
::v-deep .el-table__cell { |
|||
padding: 2px 2px 2px 2px; |
|||
/* 上,右,下,左 */ |
|||
} |
|||
|
|||
/* 表格单元格 .el-table .cell ,默认 10 px*/ |
|||
::v-deep .cell { |
|||
padding-left: 2px; |
|||
padding-right: 2px; |
|||
} |
|||
|
|||
.query { |
|||
margin-left: 10px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
|
|||
.listBtn { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
</style> |
|||
</style> |
|||
@ -1,260 +1,266 @@ |
|||
<template> |
|||
<div class="box" :style="CustomerOrgRightStyle"> |
|||
<el-card class="cards"> |
|||
<div> |
|||
<el-card> |
|||
<div class="publiccss">疾病人数统计</div> |
|||
<el-row style="margin-top: 20px"> |
|||
<el-form ref="form" :model="form" label-width="120px"> |
|||
<el-col :span="4"> |
|||
<el-form-item label="单位"> |
|||
<el-select |
|||
v-model="form.unit" |
|||
placeholder="请选择" |
|||
@focus="unitchang" |
|||
> |
|||
<el-option |
|||
v-for="item in customerorgdatas" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="诊断" style="margin-left: -50px"> |
|||
<el-select v-model="form.diagnosis" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in diagnosisdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="疾病来源" style="margin-left: -50px"> |
|||
<el-select v-model="form.diagnosis" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in diagnosisdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-button type="primary" style="margin-left: 10px">查询</el-button> |
|||
</el-col> |
|||
</el-form> |
|||
</el-row> |
|||
<!-- tab区域 --> |
|||
<h3 class="tabtitle">疾病人数统计</h3> |
|||
<el-table :data="tableData" style="width: 100%"> |
|||
<el-table-column prop="disease" label="疾病" width="180"> |
|||
</el-table-column> |
|||
<el-table-column prop="numberofpeople" label="人数" width="180"> |
|||
</el-table-column> |
|||
<el-table-column prop="shareintotal" label="占总检人数百分比"> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- --> |
|||
<!-- 单位显示隐藏 --> |
|||
<div class="showbox"> |
|||
<el-popover |
|||
placement="bottom" |
|||
width="600" |
|||
trigger="manual" |
|||
content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。" |
|||
v-model="visible" |
|||
> |
|||
<div> |
|||
<span>单位查找</span> |
|||
<el-select |
|||
v-model="form.unit" |
|||
placeholder="请选择" |
|||
style="margin-left: 10px" |
|||
> |
|||
<el-option |
|||
v-for="item in customerorgdata" |
|||
:key="item.id" |
|||
:label="item.displayName" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'"> |
|||
<div style="display: flex; flex-wrap: wrap; height:35px;margin-bottom: 10px;"> |
|||
<div class="query"> |
|||
<span>体检单位:</span> |
|||
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>诊断:</span> |
|||
<el-input placeholder="请选择诊断" v-model="patientRegister.query.asbitemOCX" style="width:240px;" size="small" |
|||
disabled> |
|||
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true" |
|||
style="font-size: 20px;"></el-button> |
|||
</el-input> |
|||
</div> |
|||
<!-- <div class="query"> |
|||
<span>疾病来源:</span> |
|||
<el-select v-model="patientRegister.query.isCharge" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option label="综述" value="0" /> |
|||
<el-option label="建议" value="1" /> |
|||
<el-option label="疾病列表" value="2" /> |
|||
</el-select> |
|||
</div> |
|||
<!-- 标题 --> |
|||
<div class="biaoti"> |
|||
双击单位下的体检次数或部门可增加查询条件双击列表中的行可删除查询条件 |
|||
<div class="query"> |
|||
<el-checkbox v-model="classification" true-label="Y" false-label="N"/> |
|||
<span>分类统计</span> |
|||
</div> --> |
|||
<div class="query"> |
|||
<el-button type="primary" @click="btnQuery" size="small">查询</el-button> |
|||
</div> |
|||
<div class="boxflex"> |
|||
<div class="leftbox"> |
|||
<el-tree :data="customerorgdata" :props="defaultProps"></el-tree> |
|||
</div> |
|||
<div class="rigtbox"> |
|||
<el-table :data="tableData" style="width: 100%"> |
|||
<el-table-column prop="numberofpeople" label="单位"> |
|||
</el-table-column> |
|||
<el-table-column prop="numberofpeople" label="次数"> |
|||
</el-table-column> |
|||
<el-table-column prop="shareintotal" label="日期"> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div style="margin-top: 10px">登记日期方式</div> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">登记日期</el-radio> |
|||
<el-radio :label="6">体检日期</el-radio> |
|||
<el-radio :label="9">总检日期</el-radio> |
|||
</el-radio-group> |
|||
<div style="margin-top: 10px">单位选择方式</div> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">选择单位</el-radio> |
|||
<el-radio :label="6">不选单位</el-radio> |
|||
</el-radio-group> |
|||
<!-- --> |
|||
<div> |
|||
<el-button style="margin-left: 100%" @click="close" |
|||
>关闭</el-button |
|||
> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</el-popover> |
|||
</div> |
|||
<el-table :data="dataList" border width="45%" :height="window.pageHeight < 600 ? 360 : window.pageHeight - 240" |
|||
row-key="id" size="small" highlight-current-row ref="dataList" :row-class-name="tableRowClassName"> |
|||
<el-table-column prop="diagnosisName" label="疾病" /> |
|||
<el-table-column prop="patientCount" label="人数" /> |
|||
<el-table-column prop="percentage" label="占总检人员百分比" /> |
|||
</el-table> |
|||
</div> |
|||
|
|||
<!-- --> |
|||
</el-card> |
|||
<!--通用选单位、体检次数、分组的控件--> |
|||
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|||
:close-on-click-modal="false" width="840px" height="600px"> |
|||
<CusOrgOCX/> |
|||
</el-dialog> |
|||
<!--通用选组合项目的控件--> |
|||
<el-dialog title="诊断选择" :visible.sync="report.dialogAsbitemOCX" :close-on-click-modal="false" width="700px" |
|||
height="600px"> |
|||
<StatisticsOCX /> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getapi, postapi } from "@/api/api"; |
|||
import { mapState } from "vuex"; |
|||
import moment from "moment"; |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc"; |
|||
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"; |
|||
import StatisticsOCX from "../../components/report/StatisticsOCX.vue" |
|||
|
|||
export default { |
|||
components: { |
|||
CusOrgOCX, |
|||
StatisticsOCX |
|||
}, |
|||
data() { |
|||
return { |
|||
radio: "", |
|||
defaultProps: { |
|||
label: "displayName", |
|||
children: "treeChildren", |
|||
}, |
|||
visible: false, |
|||
form: { |
|||
unit: "", |
|||
diagnosis: "", |
|||
}, |
|||
CustomerOrgTreeStyle: "", |
|||
CustomerOrgRightStyle: "", |
|||
customerorgdatas: [], |
|||
tableData: [ |
|||
{ |
|||
disease: "是,否", |
|||
numberofpeople: "20", |
|||
shareintotal: "30", |
|||
}, |
|||
], |
|||
customerorgdata: [], |
|||
diagnosisdata: [], |
|||
return { |
|||
dataList: [], //列表数据 |
|||
// classification:'Y' |
|||
}; |
|||
}, |
|||
computed: { |
|||
...mapState(["window", "dict", "patientRegister", "customerOrg"]), |
|||
}, |
|||
|
|||
created() { |
|||
// this.resize(); |
|||
this.dictInit(); |
|||
}, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.obtainingunits(); |
|||
this.getdiagnosis(); |
|||
this.btnQuery(); |
|||
}, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict","patientRegister","report"]), |
|||
}, |
|||
methods: { |
|||
resize() { |
|||
//console.log(this.window.pageHeight,this.window.pageWidth) |
|||
let headerHeight = Number(150); |
|||
|
|||
this.CustomerOrgTreeStyle = |
|||
"overflow: scroll;border: 1px solid;width:200px; height:" + |
|||
(this.window.pageHeight - headerHeight) + |
|||
"px;"; |
|||
this.CustomerOrgRightStyle = |
|||
"margin-left: 10px;width:" + |
|||
(this.window.pageWidth - 200 - 60) + |
|||
"px; height:" + |
|||
(this.window.pageHeight - headerHeight) + |
|||
"px;"; |
|||
methods: { |
|||
moment,dddw, |
|||
//数据初始化 |
|||
dictInit() { |
|||
//体检中心 |
|||
getapi("/api/app/organization-units/organization-unit-by-is-peis").then( |
|||
(res) => { |
|||
if (res.code == 1) { |
|||
this.dict.organization = res.data; |
|||
} |
|||
} |
|||
); |
|||
|
|||
if (this.window.pageHeight < 600) { |
|||
this.CustomerOrgTreeStyle = |
|||
"overflow: scroll;border: 1px solid;width:200px; height:" + |
|||
(600 - headerHeight) + |
|||
"px;"; |
|||
} |
|||
}, |
|||
close() { |
|||
this.visible = false; |
|||
}, |
|||
// /api/app/customerorg/getbycodeall |
|||
unitchang() { |
|||
console.log("1"); |
|||
this.visible = true; |
|||
console.log(this.visible); |
|||
//体检单位树 |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
this.customerorgdata = res.data; |
|||
if (res.code == 1) { |
|||
this.patientRegister.customerOrgTreeAll = res.data; |
|||
tcdate(this.patientRegister.customerOrgTreeAll); |
|||
} |
|||
}); |
|||
}, |
|||
//获取单位 |
|||
obtainingunits() { |
|||
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
|||
this.customerorgdata = res.data; |
|||
|
|||
//体检类别 |
|||
getapi("/api/app/medical-type/in-filter").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.medicalType = res.data.items; |
|||
} |
|||
}); |
|||
}, |
|||
//获取诊断 |
|||
getdiagnosis() { |
|||
postapi("/api/app/diagnosis/getlistinfilter").then((res) => { |
|||
this.diagnosisdata = res.data.items; |
|||
console.log(res); |
|||
|
|||
//体检类别 树结构 |
|||
getapi("/api/app/item-type/by-code-all").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.itemTypeTree = res.data; |
|||
tcdate(this.dict.itemTypeTree); |
|||
} |
|||
}); |
|||
|
|||
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => { |
|||
if (res.code == 1) { |
|||
this.dict.asbItemAll = res.data; |
|||
} |
|||
}); |
|||
|
|||
console.log("dict", this.dict); |
|||
}, |
|||
|
|||
tableRowClassName({ row, rowIndex }) { |
|||
switch (row.isCharge) { |
|||
case 'N': |
|||
return 'danger'; |
|||
default: |
|||
return ''; |
|||
} |
|||
}, |
|||
|
|||
//查询 |
|||
btnQuery() { |
|||
let body = {}, customerOrgs = [], diagnosisIds = []; |
|||
if (this.report.dataCusOrgOCX.length > 0) { |
|||
this.report.dataCusOrgOCX.forEach(e => { |
|||
let rd = { |
|||
startDate: moment(e.startDate).format('yyyy-MM-DD'), |
|||
endDate: moment(e.endDate).format('yyyy-MM-DD'), |
|||
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1') |
|||
} |
|||
|
|||
if (e.customerOrgId) { |
|||
rd.customerOrgId = e.customerOrgId |
|||
if (e.customerOrgId == this.dict.personOrgId) { |
|||
rd.customerOrgRegisterId = null |
|||
rd.customerOrgGroupId = [] |
|||
} else { |
|||
rd.customerOrgRegisterId = e.customerOrgRegister.id |
|||
rd.customerOrgGroupId = e.customerOrgGroupIds |
|||
} |
|||
} |
|||
customerOrgs.push(rd) |
|||
}) |
|||
} |
|||
|
|||
if (this.report.dataAsbitemOCX.length > 0) { |
|||
this.report.dataAsbitemOCX.forEach(e => { |
|||
diagnosisIds.push(e.id) |
|||
}) |
|||
} |
|||
|
|||
body.customerOrgs = customerOrgs |
|||
body.diagnosisIds = diagnosisIds |
|||
|
|||
// if (this.patientRegister.query.isCharge) body.isCharge = this.patientRegister.query.isCharge |
|||
|
|||
//console.log('/api/app/peisreport/getregisterasbitemchargestatus',body) |
|||
|
|||
postapi('/api/customerreport/getdiseasecountstatisticsreport', body).then(res => { |
|||
if (res.code != -1) { |
|||
console.log(res.data) |
|||
this.dataList = res.data; |
|||
} |
|||
}) |
|||
}, |
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//触发查询事件 |
|||
// "patientRegister.query.times"(newVal, oldVal) { |
|||
// if (newVal != oldVal) { |
|||
// //alert('触发查询事件') |
|||
// this.query(); |
|||
// } |
|||
// }, |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.rigtbox { |
|||
margin-left: 10px; |
|||
<style scoped> |
|||
::v-deep .el-input__inner { |
|||
/*text-align: center;*/ |
|||
padding-left: 5px; |
|||
padding-right: 15px; |
|||
} |
|||
.leftbox { |
|||
width: 30%; |
|||
border: 1px solid #ccc; |
|||
|
|||
::v-deep .el-input-group__append { |
|||
padding: 0 5px; |
|||
/* 控件默认 0 20px;*/ |
|||
} |
|||
.boxflex { |
|||
display: flex; |
|||
|
|||
/* 表格 表头 列间距控制 */ |
|||
::v-deep .el-table th.el-table__cell>.cell { |
|||
text-align: center; |
|||
/* 表格 表头 对齐方式,默认 left */ |
|||
padding-right: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
padding-left: 2px; |
|||
/* 表格 表头 列间距控制,默认 10px */ |
|||
} |
|||
.biaoti { |
|||
margin-top: 10px; |
|||
|
|||
/* 表格 表体 首列左间距控制 */ |
|||
::v-deep .el-table--border .el-table__cell:first-child .cell { |
|||
padding-left: 2px; |
|||
/* 表格 表体 首列左间距控制,默认 10px */ |
|||
} |
|||
/* .el-select-dropdown__empty::v-deep { |
|||
display: none; |
|||
} */ |
|||
.el-popover .el-popper .el-popover--plain { |
|||
width: 600px; |
|||
|
|||
/* 表格 行列间距控制 ,默认 10 px*/ |
|||
::v-deep .el-table__cell { |
|||
padding: 2px 2px 2px 2px; |
|||
/* 上,右,下,左 */ |
|||
} |
|||
.showbox { |
|||
width: 600px; |
|||
height: 300px; |
|||
/* border: 1px solid #ccc; */ |
|||
position: absolute; |
|||
left: 8.5%; |
|||
top: 140px; |
|||
|
|||
/* 表格单元格 .el-table .cell ,默认 10 px*/ |
|||
::v-deep .cell { |
|||
padding-left: 2px; |
|||
padding-right: 2px; |
|||
} |
|||
|
|||
.query { |
|||
margin-left: 10px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.cards { |
|||
height: 800px; |
|||
|
|||
.listBtn { |
|||
margin-top: 20px; |
|||
} |
|||
.tabtitle { |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
text-align: center; |
|||
margin-top: 20px; |
|||
} |
|||
</style> |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue