pengjun 2 years ago
parent
commit
00b88dd37d
  1. 32
      src/components/itemSet/ReferenceRange.vue
  2. 384
      src/components/report/StatisticsOCX.vue
  3. 789
      src/router/index.js
  4. 5
      src/views/Home.vue
  5. 270
      src/views/doctorCheck/personnelPositive.vue
  6. 518
      src/views/doctorCheck/positiveresults.vue
  7. 369
      src/views/doctorCheck/unitphysicalexamination.vue
  8. 648
      src/views/fee-settings/Item.vue
  9. 452
      src/views/fee-settings/diseaseStatistics.vue

32
src/components/itemSet/ReferenceRange.vue

@ -229,7 +229,6 @@ export default {
},
methods: {
getlist(itemId, ReferenceRangeTypeFlag) {
//http://81.70.217.145:9529/api/app/reference-range/in-type/3a0bcedc-328c-9322-e75d-343c3ce557fb?ReferenceRangeTypeFlag=1
getapi(
`/api/app/reference-range/in-type/${itemId}?ReferenceRangeTypeFlag=${ReferenceRangeTypeFlag}`
).then((res) => {
@ -250,12 +249,12 @@ export default {
//
addtoedit() {
//
examinationgender().then((res) => {
getapi("/api/app/sex").then((res) => {
this.forSexId = res.data;
});
//
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.diagnosis = res.data.items;
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
this.diagnosis = res.data;
});
},
@ -292,9 +291,11 @@ export default {
return deletapi(`/api/app/reference-range/${this.id}`, this.form);
})
.then((res) => {
this.$message.success("删除成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
this.id = "";
if(res.code!=-1){
this.$message.success("删除成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
this.id = "";
}
})
.catch(() => {
this.$message({
@ -310,16 +311,21 @@ export default {
if (v) {
if (!this.id) {
postapi("/api/app/reference-range", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
console.log("res", res);
this.id = res.data.id;
if(res.code!=-1){
this.$message.success("新增成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
this.id = res.data.id;
this.dialogVisible=false
}
});
} else {
putapi(`/api/app/reference-range/${this.id}`, this.form).then(
(res) => {
this.$message.success("修改成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
if(res.code!=-1){
this.$message.success("修改成功");
this.dialogVisible=false
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
}
}
);
}

384
src/components/report/StatisticsOCX.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>

789
src/router/index.js

@ -8,383 +8,444 @@ Vue.use(VueRouter);
// VueRouter.prototype.push = function (location) {
// return originalpush.call(this, location).catch(err => err)
// }
const routes = [
{
path: "/",
component: login,
},
{
path: "/login",
name: "login",
const routes = [{
path: "/",
component: login,
},
{
path: "/login",
name: "login",
component: () => import("../views/login/Login.vue"),
},
{
path: "/home",
name: "home",
component: () =>
import(/* webpackChunkName: "about" */ "../views/Home.vue"),
children: [
{
path: "/role",
component: () => import("../views/user-list/Role.vue"),
},
{
path: "/user-list",
component: () => import("../views/user-list/UserList.vue"),
},
{
path: "/organization-units",
component: () => import("../views/user-list/OrganizationUnits.vue"),
},
{
path: "/audit-log",
component: () => import("../views/user-list/AuditLog.vue"),
},
{
path: "/guide-type",
component: () => import("../views/basic-dictionary/GuideType.vue"),
},
{
path: "/medical-report-type",
component: () =>
import("../views/basic-dictionary/MedicalReportType.vue"),
},
{
path: "/sex",
component: () => import("../views/basic-dictionary/Sex.vue"),
},
{
path: "/marital-status",
component: () => import("../views/basic-dictionary/MaritalStatus.vue"),
},
{
path: "/nation",
component: () => import("../views/basic-dictionary/Nation.vue"),
},
{
path: "/birth-place",
component: () => import("../views/basic-dictionary/BirthPlace.vue"),
},
{
path: "/result-status",
component: () => import("../views/basic-dictionary/ResultStatus.vue"),
},
{
path: "/medical-type",
component: () => import("../views/basic-dictionary/MedicalType.vue"),
},
{
path: "/personnel-type",
component: () => import("../views/basic-dictionary/PersonnelType.vue"),
},
{
path: "/device-type",
component: () => import("../views/basic-dictionary/DeviceType.vue"),
},
{
path: "/sample-type",
component: () => import("../views/basic-dictionary/SampleType.vue"),
},
{
path: "/unit",
component: () => import("../views/basic-dictionary/Unit.vue"),
},
{
path: "/diagnosis-postfix",
component: () =>
import("../views/basic-dictionary/DiagnosisPostfix.vue"),
},
{
path: "/medical-conclusion-type",
component: () =>
import("../views/basic-dictionary/MedicalConclusionType.vue"),
},
{
path: "/medical-conclusion",
import ("../views/login/Login.vue"),
},
{
path: "/home",
name: "home",
component: () =>
import("../views/basic-dictionary/MedicalConclusion.vue"),
},
{
path: "/sample-container",
component: () =>
import("../views/basic-dictionary/SampleContainer.vue"),
},
{
path: "/common-char-type",
component: () => import("../views/basic-dictionary/CommonCharType.vue"),
},
{
path: "/common-char",
component: () => import("../views/basic-dictionary/CommonChar.vue"),
},
{
path: "/customer-org-type",
component: () =>
import("../views/basic-dictionary/CustomerOrgType.vue"),
},
{
path: "/item-default-result",
component: () =>
import("../views/basic-dictionary/ItemDefaultResult.vue"),
},
{
path: "/diagnosis-level",
component: () => import("../views/basic-dictionary/DiagnosisLevel.vue"),
},
//---------------------- 收费设置 start ----------------------
{
path: "/invoice-item-type",
component: () => import("../views/fee-settings/InvoiceItemType.vue"),
},
{
path: "/pay-mode",
component: () => import("../views/fee-settings/PayMode.vue"),
},
{
path: "/cardType",
name: "会员卡类别",
component: () => import("../views/fee-settings/cardType.vue"),
},
{
path: "/cardRegister",
name: "会员卡登记",
component: () => import("../views/fee-settings/cardRegister.vue"),
},
{
path: "/cardBill",
name: "会员卡记账",
component: () => import("../views/fee-settings/cardBill.vue"),
},
//---------------------- 收费设置 start ----------------------
import ( /* webpackChunkName: "about" */ "../views/Home.vue"),
children: [{
path: "/role",
component: () =>
import ("../views/user-list/Role.vue"),
},
{
path: "/user-list",
component: () =>
import ("../views/user-list/UserList.vue"),
},
{
path: "/organization-units",
component: () =>
import ("../views/user-list/OrganizationUnits.vue"),
},
{
path: "/audit-log",
component: () =>
import ("../views/user-list/AuditLog.vue"),
},
{
path: "/guide-type",
component: () =>
import ("../views/basic-dictionary/GuideType.vue"),
},
{
path: "/medical-report-type",
component: () =>
import ("../views/basic-dictionary/MedicalReportType.vue"),
},
{
path: "/sex",
component: () =>
import ("../views/basic-dictionary/Sex.vue"),
},
{
path: "/marital-status",
component: () =>
import ("../views/basic-dictionary/MaritalStatus.vue"),
},
{
path: "/nation",
component: () =>
import ("../views/basic-dictionary/Nation.vue"),
},
{
path: "/birth-place",
component: () =>
import ("../views/basic-dictionary/BirthPlace.vue"),
},
{
path: "/result-status",
component: () =>
import ("../views/basic-dictionary/ResultStatus.vue"),
},
{
path: "/medical-type",
component: () =>
import ("../views/basic-dictionary/MedicalType.vue"),
},
{
path: "/personnel-type",
component: () =>
import ("../views/basic-dictionary/PersonnelType.vue"),
},
{
path: "/device-type",
component: () =>
import ("../views/basic-dictionary/DeviceType.vue"),
},
{
path: "/sample-type",
component: () =>
import ("../views/basic-dictionary/SampleType.vue"),
},
{
path: "/unit",
component: () =>
import ("../views/basic-dictionary/Unit.vue"),
},
{
path: "/diagnosis-postfix",
component: () =>
import ("../views/basic-dictionary/DiagnosisPostfix.vue"),
},
{
path: "/medical-conclusion-type",
component: () =>
import ("../views/basic-dictionary/MedicalConclusionType.vue"),
},
{
path: "/medical-conclusion",
component: () =>
import ("../views/basic-dictionary/MedicalConclusion.vue"),
},
{
path: "/sample-container",
component: () =>
import ("../views/basic-dictionary/SampleContainer.vue"),
},
{
path: "/common-char-type",
component: () =>
import ("../views/basic-dictionary/CommonCharType.vue"),
},
{
path: "/common-char",
component: () =>
import ("../views/basic-dictionary/CommonChar.vue"),
},
{
path: "/customer-org-type",
component: () =>
import ("../views/basic-dictionary/CustomerOrgType.vue"),
},
{
path: "/item-default-result",
component: () =>
import ("../views/basic-dictionary/ItemDefaultResult.vue"),
},
{
path: "/diagnosis-level",
component: () =>
import ("../views/basic-dictionary/DiagnosisLevel.vue"),
},
//---------------------- 收费设置 start ----------------------
{
path: "/invoice-item-type",
component: () =>
import ("../views/fee-settings/InvoiceItemType.vue"),
},
{
path: "/pay-mode",
component: () =>
import ("../views/fee-settings/PayMode.vue"),
},
{
path: "/cardType",
name: "会员卡类别",
component: () =>
import ("../views/fee-settings/cardType.vue"),
},
{
path: "/cardRegister",
name: "会员卡登记",
component: () =>
import ("../views/fee-settings/cardRegister.vue"),
},
{
path: "/cardBill",
name: "会员卡记账",
component: () =>
import ("../views/fee-settings/cardBill.vue"),
},
//---------------------- 收费设置 start ----------------------
{
path: "/item-type",
component: () => import("../views/common-settings/ItemType.vue"),
},
{
path: "/sample-group",
component: () => import("../views/common-settings/SampleGroup.vue"),
},
{
path: "/asbitem",
component: () => import("../views/fee-settings/Asbitem.vue"),
},
{
path: "/item",
component: () => import("../views/fee-settings/Item.vue"),
},
{
path: "/reference-range",
component: () => import("../views/fee-settings/ReferenceRange.vue"),
},
{
path: "/diagnosis",
component: () => import("../views/fee-settings/Diagnosis.vue"),
hidden: true,
// meta: {
// title: '诊断',
// menu
// }
meat: {
title: "诊断",
noCache: true,
menus: ["diagosis:advertDemandRelease"],
},
},
{
path: "/item-result-template",
component: () => import("../views/fee-settings/ItemResultTemplate.vue"),
},
{
path: "/item-result-match",
component: () => import("../views/fee-settings/ItemResultMatch.vue"),
},
{
path: "/item-template",
component: () => import("../views/fee-settings/ItemTemplate.vue"),
},
{
path: "/medical-package",
component: () => import("../views/fee-settings/MedicalPackage.vue"),
},
{
path: "/sex-hormone-reference-range",
component: () =>
import("../views/fee-settings/SexHormoneReferenceRange.vue"),
},
{
path: "/diagnosis-template",
component: () => import("../views/fee-settings/DiagnosisTemplate.vue"),
},
{
path: "/sys-parm-type",
component: () => import("../views/fee-settings/SysParmSet.vue"), //../views/fee-settings/SysParmType.vue
},
//---------------------- 体检登记 start ----------------------
{
path: "/customerOrg",
name: "体检单位设置",
component: () => import("../views/customerOrg/customerOrg.vue"),
},
{
path: "/customerOrgGroup",
name: "单位分组设置",
component: () => import("../views/customerOrg/customerOrgGroup.vue"),
},
{
path: "/patientRegister",
name: "体检人员登记",
component: () => import("../views/customerOrg/patientRegister.vue"),
},
{
path: "/patientRegisterSign",
name: "体检人员签到",
component: () => import("../views/customerOrg/patientRegisterSign.vue"),
},
{
path: "/personnelBatch",
name: "人员批量登记",
component: () => import("../views/doctorCheck/personnelBatch.vue"),
},
{
path: "/patientRegisterRecover",
name: "体检表回收",
component: () =>
import("../views/customerOrg/patientRegisterRecover.vue"),
},
{
path: "/patientRegisterRefuse",
name: "弃检登记",
component: () =>
import("../views/customerOrg/patientRegisterRefuse.vue"),
},
{
path: "/charge",
name: "体检收费",
component: () =>
import("../views/charge/charge.vue"),
},
//---------------------- 体检登记 start ----------------------
//---------------------- 体 检 start ----------------------
{
path: "/doctorCheck",
name: "体检医生诊台",
component: () => import("../views/doctorCheck/doctorCheck.vue"),
},
{
path: "/sumDoctorCheck",
name: "总检医生诊台",
component: () => import("../views/doctorCheck/sumDoctorCheck.vue"),
{
path: "/item-type",
component: () =>
import ("../views/common-settings/ItemType.vue"),
},
{
path: "/sample-group",
component: () =>
import ("../views/common-settings/SampleGroup.vue"),
},
{
path: "/asbitem",
component: () =>
import ("../views/fee-settings/Asbitem.vue"),
},
{
path: "/item",
component: () =>
import ("../views/fee-settings/Item.vue"),
},
{
path: "/reference-range",
component: () =>
import ("../views/fee-settings/ReferenceRange.vue"),
},
{
path: "/diagnosis",
component: () =>
import ("../views/fee-settings/Diagnosis.vue"),
hidden: true,
// meta: {
// title: '诊断',
// menu
// }
meat: {
title: "诊断",
noCache: true,
menus: ["diagosis:advertDemandRelease"],
},
},
{
path: "/item-result-template",
component: () =>
import ("../views/fee-settings/ItemResultTemplate.vue"),
},
{
path: "/item-result-match",
component: () =>
import ("../views/fee-settings/ItemResultMatch.vue"),
},
{
path: "/item-template",
component: () =>
import ("../views/fee-settings/ItemTemplate.vue"),
},
{
path: "/medical-package",
component: () =>
import ("../views/fee-settings/MedicalPackage.vue"),
},
{
path: "/sex-hormone-reference-range",
component: () =>
import ("../views/fee-settings/SexHormoneReferenceRange.vue"),
},
{
path: "/diagnosis-template",
component: () =>
import ("../views/fee-settings/DiagnosisTemplate.vue"),
},
{
path: "/sys-parm-type",
component: () =>
import ("../views/fee-settings/SysParmSet.vue"), //../views/fee-settings/SysParmType.vue
},
//---------------------- 体检登记 start ----------------------
{
path: "/customerOrg",
name: "体检单位设置",
component: () =>
import ("../views/customerOrg/customerOrg.vue"),
},
{
path: "/customerOrgGroup",
name: "单位分组设置",
component: () =>
import ("../views/customerOrg/customerOrgGroup.vue"),
},
{
path: "/patientRegister",
name: "体检人员登记",
component: () =>
import ("../views/customerOrg/patientRegister.vue"),
},
{
path: "/patientRegisterSign",
name: "体检人员签到",
component: () =>
import ("../views/customerOrg/patientRegisterSign.vue"),
},
{
path: "/personnelBatch",
name: "人员批量登记",
component: () =>
import ("../views/doctorCheck/personnelBatch.vue"),
},
{
path: "/patientRegisterRecover",
name: "体检表回收",
component: () =>
import ("../views/customerOrg/patientRegisterRecover.vue"),
},
{
path: "/patientRegisterRefuse",
name: "弃检登记",
component: () =>
import ("../views/customerOrg/patientRegisterRefuse.vue"),
},
{
path: "/charge",
name: "体检收费",
component: () =>
import ("../views/charge/charge.vue"),
},
//---------------------- 体检登记 start ----------------------
//---------------------- 体 检 start ----------------------
{
path: "/doctorCheck",
name: "体检医生诊台",
component: () =>
import ("../views/doctorCheck/doctorCheck.vue"),
},
{
path: "/sumDoctorCheck",
name: "总检医生诊台",
component: () =>
import ("../views/doctorCheck/sumDoctorCheck.vue"),
},
//---------------------- 体 检 end ----------------------
//---------------------- 体检查询 start ----------------------
{
path: "/report",
name: "体检报告",
component: () => import("../views/report/report.vue"),
},
{
path: "/checkStatus",
name: "组合项目检查状态",
component: () => import("../views/report/checkStatus.vue"),
},
{
path: "/chargeAsbitem",
name: "人员费用组合项目",
component: () => import("../views/report/chargeAsbitem.vue"),
},
{
path: "/unCheckAsbitem",
name: "人员未检组合项目",
component: () => import("../views/report/unCheckAsbitem.vue"),
},
//---------------------- 体检查询 end ----------------------
},
//---------------------- 体 检 end ----------------------
//---------------------- 体检查询 start ----------------------
{
path: "/report",
name: "体检报告",
component: () =>
import ("../views/report/report.vue"),
},
{
path: "/checkStatus",
name: "组合项目检查状态",
component: () =>
import ("../views/report/checkStatus.vue"),
},
{
path: "/chargeAsbitem",
name: "人员费用组合项目",
component: () =>
import ("../views/report/chargeAsbitem.vue"),
},
{
path: "/unCheckAsbitem",
name: "人员未检组合项目",
component: () =>
import ("../views/report/unCheckAsbitem.vue"),
},
//---------------------- 体检查询 end ----------------------
//---------------------- 体 检 end ----------------------
//---------------------- 疾病人数登记 ----------------------
{
path: "/diseaseStatistics",
name: "疾病人数统计",
component: () => import("../views/fee-settings/diseaseStatistics.vue"),
},
{
path: "/positiveresults",
name: "阳性结果清单",
component: () => import("../views/doctorCheck/positiveresults.vue"),
},
{
path: "/unitphysicalexamination",
name: "单位体检报表",
component: () => import("../views/doctorCheck/unitphysicalexamination.vue"),
},
//---------------------- 工作量登记 ----------------------
{
path: "/registrar",
name: "登记员工作量",
component: () => import("../views/workload/registrar.vue"),
},
{
path: "/doctorstaionworkload",
name: "登记员工作量",
component: () => import("../views/workload/doctorstaionworkload.vue"),
},
{
path: "/directordoctor",
name: "总检医生工作量",
component: () => import("../views/workload/directordoctor.vue"),
},
{
path: "/deskwork",
name: "总检医生工作量",
component: () => import("../views/workload/deskwork.vue"),
},
{
path: "/tollcollector",
name: "收费员",
component: () => import("../views/workload/tollcollector.vue"),
},
{
path: "/individualfeedetails",
name: "个人收费明细",
component: () => import("../views/workload/individualfeedetails.vue"),
},
{
path: "/membershipcard",
name: "会员卡分类统计",
component: () => import("../views/workload/membershipcard.vue"),
},
],
},
//---------------------- 体 检 end ----------------------
//---------------------- 疾病人数登记 ----------------------
{
path: "/diseaseStatistics",
name: "疾病人数统计",
component: () =>
import ("../views/fee-settings/diseaseStatistics.vue"),
},
{
path: "/positiveresults",
name: "阳性结果清单",
component: () =>
import ("../views/doctorCheck/positiveresults.vue"),
},
{
path: "/unitphysicalexamination",
name: "单位体检报表",
component: () =>
import ("../views/doctorCheck/unitphysicalexamination.vue"),
},
{
path: "/personnelPositive",
name: "人员阳性结果",
component: () =>
import ("../views/doctorCheck/personnelPositive.vue")
},
//---------------------- 工作量登记 ----------------------
{
path: "/registrar",
name: "登记员工作量",
component: () =>
import ("../views/workload/registrar.vue"),
},
{
path: "/doctorstaionworkload",
name: "登记员工作量",
component: () =>
import ("../views/workload/doctorstaionworkload.vue"),
},
{
path: "/directordoctor",
name: "总检医生工作量",
component: () =>
import ("../views/workload/directordoctor.vue"),
},
{
path: "/deskwork",
name: "总检医生工作量",
component: () =>
import ("../views/workload/deskwork.vue"),
},
{
path: "/tollcollector",
name: "收费员",
component: () =>
import ("../views/workload/tollcollector.vue"),
},
{
path: "/individualfeedetails",
name: "个人收费明细",
component: () =>
import ("../views/workload/individualfeedetails.vue"),
},
{
path: "/membershipcard",
name: "会员卡分类统计",
component: () =>
import ("../views/workload/membershipcard.vue"),
},
],
},
];
const router = new VueRouter({
//mode: "history",
//base: process.env.BASE_URL,
routes,
//mode: "history",
//base: process.env.BASE_URL,
routes,
});
router.beforeEach((to, form, next) => {
let token = localStorage.getItem("token");
let tokentype = localStorage.getItem("tokentype");
if (to.path === "/login") {
if (token != null) {
next({
path: "/",
});
} else {
next();
}
} else {
if (token == null) {
next({
path: "/login",
});
let token = localStorage.getItem("token");
let tokentype = localStorage.getItem("tokentype");
if (to.path === "/login") {
if (token != null) {
next({
path: "/",
});
} else {
next();
}
} else {
next();
if (token == null) {
next({
path: "/login",
});
} else {
next();
}
}
}
});
export default router;
export default router;

5
src/views/Home.vue

@ -394,6 +394,11 @@
class="dropdownmain"
>单位体检报表</el-dropdown-item
>
<el-dropdown-item
command="personnelPositive"
class="dropdownmain"
>人员阳性结果</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</div>

270
src/views/doctorCheck/personnelPositive.vue

@ -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>

518
src/views/doctorCheck/positiveresults.vue

@ -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>

369
src/views/doctorCheck/unitphysicalexamination.vue

@ -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>

648
src/views/fee-settings/Item.vue

@ -8,7 +8,7 @@
<div class="publiccss">项目设置</div>
<el-row style="margin-top: 20px; margin-left: 15px">
<el-col :span="4">
<el-autocomplete
<!-- <el-autocomplete
class="inline-input"
v-model="pages.Filter"
:fetch-suggestions="querySearch"
@ -23,26 +23,16 @@
{{ item.displayName }}
</div>
</template></el-autocomplete
>
</el-col>
<el-col :span="7" style="margin-left: 5%">
<el-col :span="6" style="margin-top: 10px; margin-left: 10px"
>类别选择</el-col
>
<el-select
filterable
v-model="Selectvalue"
placeholder="请选择"
@change="isselctvalue"
>
<el-option
v-for="item in Selectacategory"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
> -->
<el-select v-model="department" placeholder="请选择" filterable :filter-method="remoteMethodes" default-first-option @change="quckDepartments" clearable>
<el-option
v-for="item in quckDepartment"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-col>
</el-row>
<div style="display: flex">
@ -51,6 +41,10 @@
:data="itemTypeId"
:props="treeprops"
@node-click="treeclick"
node-key="id"
ref="itemType"
highlight-current
auto-expand-parent
></el-tree>
</div>
<div style="width: 85%; margin-top: 15px">
@ -450,39 +444,56 @@
:close-on-click-modal="false"
>
<div style="display: flex">
<div style="width: 95%">
<div style="width: 90%">
<el-table
border=""
:data="reusttableData"
@row-click="reustclick"
highlight-current-row
style="width: 100%"
:height="window.pageHeight < 600 ? 280 : window.pageHeight - 320"
>
<el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="项目编号" prop="itemId"></el-table-column>
<el-table-column label="创建时间" width="200">
<!-- <el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="项目编号" prop="itemId"></el-table-column> -->
<el-table-column label="结果" prop="result" width="300"></el-table-column>
<el-table-column label="诊断" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
{{getChangeDiagnosis(scope.row.diagnosisId)}}
</template>
</el-table-column>
<el-table-column label="修改时间" width="200">
<el-table-column label="小结前加名称" width="120">
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
<el-checkbox v-model="scope.row.isNameIntoSummary" true-label="Y" false-label="N"/>
</template>
</el-table-column>
<el-table-column label="结果" prop="result"></el-table-column>
<el-table-column label="项目结果">
<el-table-column label="结果状态" width="100">
<template slot-scope="scope">
{{getChangeResult(scope.row.resultStatusId)}}
</template>
</el-table-column>
<el-table-column label="结果进入小结" width="120">
<template slot-scope="scope">
{{ scope.row.id }}
<el-checkbox v-model="scope.row.isResultIntoSummary" true-label="Y" false-label="N"/>
</template>
</el-table-column>
<el-table-column label="诊断">
<el-table-column label="最后修改者" width="100">
<template slot-scope="scope">
{{scope.row.diagnosisId}}
{{ scope.row.lastModifierName}}
</template>
</el-table-column>
<!-- <el-table-column label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column> -->
<el-table-column label="修改时间" width="200">
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
</el-table>
</div>
<div style="margin-top: 5px; margin-left: 15px">
<div style="margin-top: 5px; margin-left: 15px;width:10%;">
<el-button type="primary" @click="increase" style="width:100%;">添加</el-button>
<div style="margin-top: 5px">
<el-button type="primary" @click="resultediting" style="width:100%;">编辑</el-button>
@ -503,8 +514,8 @@
</div>
<el-divider></el-divider>
<span slot="footer" class="dialog-footer">
<el-button @click="rurestdialogVisible = false"> </el-button>
<el-button type="primary" @click="rurestdialogVisible = false"
<el-button @click="rurestdialogVisible = false,rusetform={},curRows={}"> </el-button>
<el-button type="primary" @click="rurestdialogVisible = false,rusetform={},curRows={}"
> </el-button
>
</span>
@ -516,7 +527,7 @@
width="80%"
:close-on-click-modal="false"
>
<el-form :model="rusetform" ref="rusetform" label-width="100px">
<el-form :model="rusetform" ref="rusetform" label-width="100px" :rules="rusetformcheck">
<el-row>
<!-- <el-col :span="8">
<el-form-item label="项目">
@ -532,15 +543,15 @@
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="结果">
<el-input v-model="rusetform.result"></el-input>
<el-form-item label="结果" prop="result">
<el-input v-model="rusetform.result" ref="ruseInput" @input="changeUpdate()"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="诊断编号">
<el-select v-model="rusetform.diagnosisId" placeholder="请选择" filterable>
<el-select v-model="rusetform.diagnosisId" placeholder="请选择" filterable :filter-method="remoteMethod" default-first-option clearable @change="quckRusetform">
<el-option
v-for="item in diagnosisId"
v-for="item in quickAsb"
:key="item.id"
:label="item.displayName"
:value="item.id"
@ -550,17 +561,17 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="小结名称">
<el-form-item label="小结前加名称">
<el-checkbox v-model="rusetform.isNameIntoSummary" true-label="Y" false-label="N"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="进入小结">
<el-form-item label="结果进入小结">
<el-checkbox v-model="rusetform.isResultIntoSummary" true-label="Y" false-label="N" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="结果状态">
<el-form-item label="结果状态" prop="resultStatusId">
<el-select
v-model="rusetform.resultStatusId"
placeholder="请选择"
@ -593,7 +604,7 @@
>
<el-row>
<el-col :span="8">
<span>参考范围类型</span>
<span>参考范围类型</span>
<el-select
v-model="referencerangevalue"
filterable
@ -637,7 +648,6 @@
<div style="margin-top: 5px">
<el-button
type="primary"
size="mini"
@click="diagnosticsettings"
style="width: 70px; height: 50px; margin-left: 10px"
>诊断设置</el-button
@ -653,6 +663,7 @@
</div>
<!-- 性激素参考范围 -->
<div v-if="referencerangevalue == 2"></div>
<el-divider></el-divider>
<span
slot="footer"
class="dialog-footer"
@ -706,20 +717,15 @@
>
<div style="display: flex">
<div style="width: 95%">
<el-table :data="diagnosticdata">
<el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="名称" prop="displayName"></el-table-column>
<el-table-column
label="创建者"
prop="creatorName"
></el-table-column>
<el-table-column label="创建时间" prop="creationTime">
<el-table :data="diagnosticdata" :height="window.pageHeight < 600 ? 280 : window.pageHeight - 320" border highlight-current-row @row-click="diagnosick">
<el-table-column label="结果" prop="result"></el-table-column>
<el-table-column label="诊断" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
{{getChangeDiagnosies(scope.row.diagnosisId)}}
</template>
</el-table-column>
<el-table-column
label="修改者"
label="最后修改者"
prop="lastModifierName"
></el-table-column>
<el-table-column label="修改时间" prop="lastModificationTime">
@ -729,104 +735,43 @@
</el-table-column>
</el-table>
</div>
<div style="margin-left: 10px; margin-top: 4%">
<el-button type="primary" @click="adddiagnosis">增加诊断</el-button>
<div style="margin-top: 5px; margin-left: 15px;width:10%;">
<el-button type="primary" @click="adddiagnosis" style="width:100%;">增加</el-button>
<div style="margin-top: 5px">
<el-button type="primary" @click="editDiagnosis" style="width:100%;">编辑</el-button>
</div>
<div style="margin-top: 5px">
<el-button type="primary" @click="deleteDiagnosis" style="width:100%;">删除</el-button>
</div>
</div>
</div>
<el-divider></el-divider>
<span slot="footer" class="dialog-footer">
<el-button @click="diagnosdialogVisible = false"> </el-button>
<el-button type="primary" @click="diagnosdialogVisible = false"
<el-button @click="diagnosdialogVisible = false,editdigoisceditingform={},curRowes={}"> </el-button>
<el-button type="primary" @click="diagnosdialogVisible = false,editdigoisceditingform={},curRowes={}"
> </el-button
>
</span>
</el-dialog>
<!-- 增加诊断弹框 -->
<el-dialog
title="诊断编辑"
:title="diagnostiele == 1 ? '新增' : '修改'"
:visible.sync="diagnosticediting"
width="80%"
:close-on-click-modal="false"
>
<el-form :model="editdigoisceditingform">
<el-form :model="editdigoisceditingform" ref="editdigoisceditingform" label-width="100px" :rules="editdigoisceditingformcheck">
<el-row>
<el-col :span="8">
<el-form-item label="名称" label-width="100px">
<el-input v-model="editdigoisceditingform.displayName"></el-input>
</el-form-item>
</el-col>
<el-col :span="7" style="margin-left: 20px">
<el-form-item label="项目类别">
<el-cascader
v-model="editdigoisceditingform.itemTypeId"
:options="itemTypeId"
:show-all-levels="false"
:props="props"
></el-cascader>
<el-form-item label="结果" prop="result">
<el-input v-model="editdigoisceditingform.result" ref="editdiInput" @input="changeUpdate()"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建议名称" label-width="100px">
<el-input
v-model="editdigoisceditingform.suggestionName"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8" style="margin-left: 4%">
<el-form-item label="是疾病">
<el-select
v-model="editdigoisceditingform.isIll"
placeholder="请选择"
>
<el-form-item label="诊断编号" prop="diagnosisId">
<el-select v-model="editdigoisceditingform.diagnosisId" placeholder="请选择" filterable :filter-method="remoteMethodess" default-first-option clearable @change="quckEditdigoisce">
<el-option
v-for="item in isIll"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总监模板">
<el-select
v-model="editdigoisceditingform.isSummaryTemplate"
placeholder="请选择"
>
<el-option
v-for="item in isSummaryTemplate"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="适用性别">
<el-select
v-model="editdigoisceditingform.forSexId"
placeholder="请选择"
>
<el-option
v-for="item in forSexId"
: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="诊断级别">
<el-select
v-model="editdigoisceditingform.diagnosisLevelId"
placeholder="请选择"
>
<el-option
v-for="item in diagnosisLevelId"
v-for="item in quckeDitd"
:key="item.id"
:label="item.displayName"
:value="item.id"
@ -837,6 +782,7 @@
</el-col>
</el-row>
</el-form>
<el-divider></el-divider>
<span slot="footer" class="dialog-footer">
<el-button @click="diagnosticediting = false"> </el-button>
<el-button type="primary" @click="diagnosticsadd"> </el-button>
@ -938,8 +884,9 @@ import {
import { unitlist } from "@/request/systemapi";
import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { deepCopy } from "../../utlis/proFunc";
import ReferenceRange from "../../components/itemSet/ReferenceRange.vue";
import { mapState, mapActions } from "vuex";
export default {
components: {
ReferenceRange,
@ -960,13 +907,9 @@ export default {
children: "treeChildren",
}, //
editdigoisceditingform: {
displayName: "",
itemTypeId: "",
suggestionName: "",
isIll: "",
isSummaryTemplate: "",
forSexId: "",
diagnosisLevelId: "",
itemId: "",
result: "",
diagnosisId: ""
}, //
diagnosticediting: false, //
diagnosdialogVisible: false, //
@ -978,10 +921,10 @@ export default {
rusetform: {
itemId: "",
result: "",
diagnosisId: "",
diagnosisId: null,
isNameIntoSummary: "N",
isResultIntoSummary: "Y",
resultStatusId: "",
resultStatusId: "01",
simpleCode: "",
}, //
resultStatusId: [], //
@ -1215,6 +1158,22 @@ export default {
],
isActive: [{ required: true, message: "请选择启用", trigger: "blur" }],
},
rusetformcheck:{
result: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
resultStatusId: [
{ required: true, message: "请选择结果状态", trigger: "blur" },
]
},
editdigoisceditingformcheck:{
result: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
diagnosisId: [
{ required: true, message: "请选择诊断编号", trigger: "blur" },
]
},
unitId: [], //Id
priceItemId: [], //id1
result: [], //
@ -1291,7 +1250,15 @@ export default {
disableddiagnosisFunction: true,
curRow: {},
diagnosisFunctionText:"",
calculationFunctionText:""
calculationFunctionText:"",
quickAsb:[],
quckDepartment:[],
department:"",
quckeDitd:[],
editdigoisceDiagnosisId:"",
diagnostiele:1,
curRows:{},
curRowes:{},
};
},
created() {
@ -1302,6 +1269,9 @@ export default {
this.rowDrop();
this.typeid();
},
computed: {
...mapState(["window"]),
},
methods: {
//
enablediagnostics(v) {
@ -1363,43 +1333,120 @@ export default {
},
//
diagnosticsadd() {
postapi("/api/app/diagnosis", this.editdigoisceditingform).then((res) => {
this.$message.success("添加成功");
this.diagnosticmatching();
this.$refs.editdigoisceditingform.validate((v) => {
if (v) {
if(this.diagnostiele==1){
postapi("/api/app/item-result-match", this.editdigoisceditingform).then((res) => {
if(res.code!=-1){
this.$message.success("添加成功");
this.diagnosticediting = false;
this.putDiagnosis()
}
});
}else if(this.diagnostiele==2){
putapi(
`/api/app/item-result-match/${this.editdigoisceditingform.id}`,{
itemId:this.editdigoisceditingform.itemId,
result:this.editdigoisceditingform.result,
diagnosisId:this.editdigoisceditingform.diagnosisId
}
).then((res) => {
if(res.code!=-1){
this.$message.success("修改成功");
this.diagnosticediting = false;
this.putDiagnosis()
}
});
}
}
});
},
diagnosick(row){
getapi(`/api/app/item-result-match/${row.id}`).then((res) => {
this.curRowes = res.data;
});
},
editDiagnosis(){
this.editdigoisceditingform={ ...this.curRowes }
if (this.editdigoisceditingform.id == undefined) {
this.$message.warning("请选择操作的数据");
}else{
this.diagnostiele=2
this.diagnosticediting = true
if (this.$refs.editdigoisceditingform !== undefined){
this.$refs.editdigoisceditingform.resetFields()
}
this.diageoisaddId();
}
},
deleteDiagnosis(){
this.editdigoisceditingform={ ...this.curRowes }
if (this.editdigoisceditingform.id == undefined) {
this.$message.warning("请选择操作的数据");
}else{
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/item-result-match/${this.editdigoisceditingform.id}`).then(
(res) => {
if(res.code!=-1){
this.$message.success("删除成功");
Object.assign(this.$data.editdigoisceditingform, this.$options.data().editdigoisceditingform)
this.curRowes={}
this.putDiagnosis()
}
}
);
})
.catch(() => {});
}
},
putDiagnosis(){
postapi(`/api/app/itemresultmatch/getlistinitmeid`,{itemId:this.form.id}).then(
(res) => {
this.diagnosticdata = res.data;
}
);
},
//Id
diageoisaddId() {
//id
getapi("/api/app/item-type").then((res) => {
this.itemTypeId = res.data.items;
});
//
getapi("/api/app/for-sex").then((res) => {
this.forSexId = res.data;
});
//
getapi("/api/app/diagnosis-level").then((res) => {
this.diagnosisLevelId = res.data.items;
});
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
this.editdigoisceDiagnosisId = res.data;
this.quckeDitd=res.data;
});
},
//
adddiagnosis() {
console.log(1);
console.log("诊断的方法");
this.diagnosticediting = true;
this.diageoisaddId();
this.diagnostiele=1
this.diagnosticediting = true;
if (this.$refs.editdigoisceditingform !== undefined){
this.$refs.editdigoisceditingform.resetFields()
}
this.$nextTick(() => {
this.$refs.editdiInput.focus();
});
Object.assign(this.$data.editdigoisceditingform, this.$options.data().editdigoisceditingform)
this.editdigoisceditingform.itemId = this.form.id;
},
//
//
diagnosticmatching() {
// this.diagnosdialogVisible = true;
// console.log(this.diagnosdialogVisible);
// postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
// this.diagnosticdata = res.data.items;
// console.log(res);
// });
this.$router.push({ path: "/diagnosis" });
this.form = { ...this.curRow };
this.diagnosdialogVisible = true;
this.putDiagnosis()
this.diageoisaddId()
},
quckEditdigoisce(e){
if(!e){
this.remoteMethodess()
}
},
changeUpdate(e){
this.$forceUpdate()
},
//
resultaddition() {},
@ -1440,52 +1487,83 @@ export default {
},
//
delemtdelite() {
this.rusetform = { ...this.curRows };
if (this.rusetform.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
deletapi(`/api/app/item-result-template/${this.rusetform.id}`).then(
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/item-result-template/${this.rusetform.id}`).then(
(res) => {
this.$message.success("删除成功");
this.resultlist();
if(res.code!=-1){
this.$message.success("删除成功");
Object.assign(this.$data.rusetform, this.$options.data().rusetform)
this.curRows={}
this.resultlist();
}
}
);
})
.catch(() => {});
}
},
reustclick(row) {
// this.rusetform = row;
getapi(`/api/app/item-result-template/${row.id}`).then((res) => {
this.rusetform = res.data;
this.curRows = res.data;
});
console.log(row);
},
//
resultediting() {
this.rusetform = { ...this.curRows };
if (this.rusetform.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
this.addoredit();
this.ruesttiele = 2;
this.ruesttieledialogVisible = true;
if (this.$refs.rusetform !== undefined){
this.$refs.rusetform.resetFields()
}
}
},
//
rusteronsubmit() {
if (this.ruesttiele == 1) {
postapi(`/api/app/item-result-template`, this.rusetform).then((res) => {
this.$message.success("新增成功");
this.ruesttieledialogVisible = false;
this.resultlist();
});
} else if (this.ruesttiele == 2) {
putapi(
`/api/app/item-result-template/${this.rusetform.id}`,
this.rusetform
).then((res) => {
this.$message.success("修改成功");
this.ruesttieledialogVisible = false;
this.resultlist();
});
}
this.$refs.rusetform.validate((v) => {
if (v) {
if (this.ruesttiele == 1) {
if(this.rusetform.diagnosisId==""){
this.rusetform.diagnosisId=null
}
postapi(`/api/app/item-result-template`, this.rusetform).then((res) => {
if(res.code!=-1){
this.$message.success("新增成功");
this.ruesttieledialogVisible = false;
this.resultlist();
}
});
} else if (this.ruesttiele == 2) {
if(this.rusetform.diagnosisId==""){
this.rusetform.diagnosisId=null
}
putapi(
`/api/app/item-result-template/${this.rusetform.id}`,
this.rusetform
).then((res) => {
if(res.code!=-1){
this.$message.success("修改成功");
this.ruesttieledialogVisible = false;
this.resultlist();
}
});
}
}
});
},
//
diagnosticsettings() {
@ -1504,22 +1582,21 @@ export default {
},
//
selecttype(v) {
console.log(v);
this.referencerangevalue = v;
if (v == 1) {
getapi("/api/app/sex").then((res) => {
console.log(res);
this.sexid = res.data;
});
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.scopediagnostic = res.data.items;
console.log(res);
});
}
// if (v == 1) {
// getapi("/api/app/sex").then((res) => {
// console.log(res);
// this.sexid = res.data;
// });
// postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
// this.scopediagnostic = res.data.items;
// console.log(res);
// });
// }
},
//
referencerange() {
console.log("我是参考范围");
this.form = { ...this.curRow };
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
@ -1531,41 +1608,48 @@ export default {
getapi("/api/app/item/in-filter").then((res) => {
this.itemId = res.data.items;
});
getapi("/api/app/result-status").then((res) => {
// this.result = res.data.items;
this.resultStatusId = res.data.items;
});
// let diagnosisObj={
// itemTypeId:this.form.itemTypeId
// }
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
this.diagnosisId = res.data;
});
this.diagnosisId = res.data;
this.quickAsb=res.data;
});
},
//
increase() {
this.addoredit();
this.ruesttiele = 1;
Object.assign(this.$data.rusetform, this.$options.data().rusetform)
this.rusetform.itemId = this.form.id;
this.ruesttieledialogVisible = true;
if (this.$refs.rusetform !== undefined){
this.$refs.rusetform.resetFields()
}
this.$nextTick(() => {
this.$refs.ruseInput.focus();
});
Object.assign(this.$data.rusetform, this.$options.data().rusetform)
this.rusetform.itemId = this.form.id;
console.log(this.rusetform)
},
quckRusetform(e){
if(!e){
this.remoteMethod()
}
},
//
getmedicalconclusionlist() {
getapi("/api/app/item-type").then((res) => {
this.Selectacategory = res.data.items;
console.log(res, "11");
});
// postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
// this.Selectacategory = res.data;
// this.quckDepartment=res.data
// });
},
onchange(id) {
// this.form.customerOrgId = id;
// console.log(id);
// this.form.customerOrgId=this.form.customerOrgId[0]
this.form.itemTypeId.forEach((item) => {
if(this.form.itemTypeId){
this.form.itemTypeId.forEach((item) => {
// console.log(item);
this.form.itemTypeId = item;
});
}
console.log(this.form.customerOrgId);
},
gettypelist(listdata) {
@ -1599,6 +1683,7 @@ export default {
console.log("数据", res);
this.initTableData = [...res.data.items];
this.tableData = res.data.items;
this.quckDepartment=res.data.items;
if (rowsid != null && rowsid != "") {
var row = this.tableData.filter((item) => item.id == rowsid);
this.$refs.tableData.setCurrentRow(row[0]);
@ -1646,13 +1731,119 @@ export default {
getapi(`/api/app/item-result-template/in-item-id/${this.form.id}`).then(
(res) => {
this.reusttableData = res.data;
console.log(this.reusttableData)
}
);
getapi("/api/app/result-status").then((res) => {
this.resultStatusId = res.data.items;
});
postapi("/api/app/diagnosis/getlistinsuggestion").then((res) => {
this.diagnosisId = res.data;
this.quickAsb=res.data;
});
// //
// getapi("/api/app/item-type/by-code-all").then((res) => {
// this.resultitemtype = res.data;
// });
}
},
remoteMethod(keyWords) {
if (keyWords) {
this.quickAsb = [];
this.diagnosisId.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.diagnosisId);
}
},
remoteMethodes(keyWords) {
if (keyWords) {
this.quckDepartment = [];
this.initTableData.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.quckDepartment.push(item);
}
});
} else {
this.quckDepartment = deepCopy(this.initTableData);
}
},
remoteMethodess(keyWords){
if (keyWords) {
this.quckeDitd = [];
this.editdigoisceDiagnosisId.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.quckeDitd.push(item);
}
});
} else {
this.quckeDitd = deepCopy(this.editdigoisceDiagnosisId);
}
},
quckDepartments(e){
if(e){
let currentKey=""
this.quckDepartment.forEach(item=>{
if(e==item.id){
currentKey=item.itemTypeId
}
})
this.$refs['itemType'].setCurrentKey(currentKey)
let selected = this.$refs['itemType'].getCurrentNode();
if (this.$refs['itemType'].getNode(selected) && this.$refs['itemType'].getNode(selected).parent) {
this.expandParents(this.$refs['itemType'].getNode(selected).parent);
}
getapi(`/api/app/item/in-item-type/${currentKey}`).then((res) => {
this.tableData = res.data;
this.tableData.forEach(item=>{
if(e==item.id){
this.$refs['tableData'].setCurrentRow(item);
this.rowick(item)
}
})
});
}else{
this.remoteMethodes()
}
},
expandParents(node) {
node.expanded = true;
if (node.parent) {
this.expandParents(node.parent);
}
},
getChangeDiagnosis(e){
for (var i = 0; i < this.diagnosisId.length; i++) {
if (this.diagnosisId[i].id == e) { //dictValuedictLabel
return this.diagnosisId[i].displayName;
}
}
},
getChangeResult(e){
for (var i = 0; i < this.resultStatusId.length; i++) {
if (this.resultStatusId[i].id == e) { //dictValuedictLabel
return this.resultStatusId[i].displayName;
}
}
},
getChangeDiagnosies(e){
for (var i = 0; i < this.editdigoisceDiagnosisId.length; i++) {
if (this.editdigoisceDiagnosisId[i].id == e) { //dictValuedictLabel
return this.editdigoisceDiagnosisId[i].displayName;
}
}
},
//
cancellation() {
@ -1873,18 +2064,25 @@ export default {
//
add() {
this.form.price = Number(this.form.price);
// this.form={}
this.title = 1;
this.dialogVisible = true;
if (this.$refs.form !== undefined){
this.$refs.form.resetFields()
}
this.isProduceSummaryBox=true,
this.isNameIntoSummaryBox=true,
this.isDiagnosisFunctionBox=false,
this.isCalculationItemBox=false,
this.isContinueProcessBox=false,
this.isActiveBox=true,
Object.assign(this.$data.form, this.$options.data().form)
this.isProduceSummaryBox=true
this.isNameIntoSummaryBox=true
this.isDiagnosisFunctionBox=false
this.isCalculationItemBox=false
this.isContinueProcessBox=false
this.isActiveBox=true
let isBox=["isProduceSummary","isNameIntoSummary","isActive"];
isBox.forEach(item=>{
this.form[item] = 'Y';
})
// this.unitIdName=""
console.log(this.form)
this.$nextTick(() => {
this.$refs.refinput.focus();
});

452
src/views/fee-settings/diseaseStatistics.vue

@ -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>
Loading…
Cancel
Save