Browse Source

checkStatus

master
pengjun 3 years ago
parent
commit
eebd511044
  1. 193
      src/components/report/CusOrgOCX.vue
  2. 167
      src/components/report/PatientRegisterQueryNobtn.vue
  3. 4
      src/components/sumDoctorCheck/SumAsbItemStatus.vue
  4. 2
      src/router/index.js
  5. 154
      src/views/checkStatus/Query.vue
  6. 2
      src/views/doctorCheck/sumDoctorCheck.vue
  7. 129
      src/views/report/checkStatus.vue

193
src/components/report/CusOrgOCX.vue

@ -4,15 +4,8 @@
<el-tree :data="patientRegister.customerOrgTreeAll" :props="customerOrg.treeprops" @node-click="handleNode" />
</div>
<div style="display: block;width:650px;margin-top: -30px; margin-left: 5px;">
<el-table :data="dataCusOrgOCX" border height="450" highlight-current-row @row-dblclick="rowDblclick" size="small" >
<el-table-column prop="customerOrgId" label="体检单位" width="130">
<template slot-scope="scope">
<el-cascader v-model="scope.row.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" placeholder="请选择单位"
:show-all-levels="false" disabled clearable size="small" @change="changeCustomerOrgId" style="width:125px;">
</el-cascader>
</template>
</el-table-column>
<el-table :data="dataCusOrgOCX" border height="450" highlight-current-row @row-dblclick="rowDblclick" size="small">
<el-table-column prop="customerOrgName" label="体检单位" width="130"/>
<el-table-column prop="customerOrgId" label="次数" width="50" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.customerOrgRegister" placeholder="次数" style="width: 50px" size="small"
@ -42,15 +35,23 @@
<el-date-picker v-model="scope.row.endDate" type="date" placeholder="截止日期" size="small" />
</template>
</el-table-column>
<el-table-column prop="customerOrgGroupIds" label="分组" width="215">
<el-table-column prop="customerOrgGroupIds" label="分组" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.customerOrgGroupIds" multiple collapse-tags filterable clearable style="width:210px;"
placeholder="请选择分组" size="small" @focus="getCustGroup(scope.$index,scope.row.customerOrgRegister.id)"
<el-select v-model="scope.row.customerOrgGroupIds" multiple collapse-tags filterable clearable
style="width:210px;" placeholder="请选择分组" size="small"
@focus="getCustGroup(scope.$index, scope.row.customerOrgRegister.id)"
:disabled="!useCusOrg || scope.row.customerOrgId == dict.personOrgId">
<el-option v-for="item in scope.row.customerOrgGroupList" :key="item.value" :label="item.displayName" :value="item.id" />
<el-option v-for="item in scope.row.customerOrgGroupList" :key="item.value" :label="item.displayName"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column fixed="right" label="" width="30">
<template slot-scope="scope">
<i class="el-icon-delete" @click="dataCusOrgOCX.splice(scope.$index, 1)"
style="font-size: 20px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
<div style="display: flex;margin-top: 8px;margin-left: 15px;">
<div style="display: block;">
@ -64,18 +65,18 @@
</div>
<div style="margin-top: 5px;">
<span>单位作为查询条件</span>
<el-checkbox v-model="useCusOrg" @change="changeUseOrg"/>
<el-checkbox v-model="useCusOrg" @change="changeUseOrg" />
</div>
</div>
<div style="margin-left: 50px;margin-top: 5px;">
<el-button type="primary" @click="report.dialogCusOrgOCX = false">确定</el-button>
<el-button type="danger" @click="report.dialogCusOrgOCX = false">关闭</el-button>
<div style="margin-left: 150px;margin-top: 5px;">
<el-button type="primary" @click="btnOk">确定</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj } from "../../utlis/proFunc";
@ -85,15 +86,14 @@ export default {
data() {
return {
preNodeId: '', //
curNodeId: '', //
parentIds: [], //Id
childIds: [], //Id
curNodeId: '', //
dateType: 'creationTime',
useCusOrg: true, //使
//
dataCusOrgOCX: [{
id:'', //ID
customerOrgId: '',
id: '', //ID
customerOrgId: '', //
customerOrgName: '', //
customerOrgRegister: {}, //
customerOrgRegisterList: [], //
dateType: 'creationTime', // creationTimemedicalStartDatesummaryDate
@ -110,7 +110,7 @@ export default {
},
//
created() {
this.dataCusOrgOCX = this.report.dataCusOrgOCX;
this.dataCusOrgOCX = [];
},
//
@ -175,18 +175,17 @@ export default {
//
async treeDbClick(node) {
//console.log('this.patientRegister.customerOrgTreeAll',this.patientRegister.customerOrgTreeAll);
if(!this.useCusOrg){
if (!this.useCusOrg) {
this.$message.info("请先勾选单位作为查询条件");
return;
}
this.parentIds = getTreePids(this.patientRegister.customerOrgTreeAll, 'treeChildren', 'parentId', 'id', node.id);
this.childIds = getTreeAllChildIdsById(this.patientRegister.customerOrgTreeAll, 'treeChildren', 'id', node.id);
}
//
let ldate = new Date();
let record = {
id:parseInt(Math.random() * 100000000),
customerOrgId: '',
id: parseInt(Math.random() * 100000000),
customerOrgId: node.id,
customerOrgName:node.displayName,
customerOrgRegister: {}, //
customerOrgRegisterList: [], //
dateType: 'creationTime', // creationTimemedicalStartDatesummaryDate
@ -195,42 +194,26 @@ export default {
customerOrgGroupIds: [], //
customerOrgGroupList: [], //
}
record.customerOrgId = node.id;
if(node.id != this.dict.personOrgId){
if (node.id != this.dict.personOrgId) {
try {
let res = await getapi(`/api/app/customer-org/parent/${node.id}`);
let res = await getapi(`/api/app/customer-org/parent/${node.id}`);
let res1 = await getapi(`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${res.data}`);
record.customerOrgRegisterList = res1.data;
if(res1.data && res1.data.length > 0){
if (res1.data && res1.data.length > 0) {
record.customerOrgRegister = res1.data[res1.data.length - 1];
record.startDate = res1.data[res1.data.length - 1].beginTime;
record.endDate = res1.data[res1.data.length - 1].isComplete == 'N' ? ldate : res1.data[res1.data.length - 1].endTime;
}
} catch (error) {
console.log(`get: /api/app/customer-org/parent/${node.id} /api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${node.id}`,error)
console.log(`get: /api/app/customer-org/parent/${node.id} /api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${node.id}`, error)
}
}
let insableMsg = '';
// console.log('record',record);
// console.log('this.parentIds',this.parentIds);
// console.log('this.childIds',this.childIds);
this.dataCusOrgOCX.forEach((e,i) =>{
// console.log(i,e);
if(e.customerOrgId == record.customerOrgId && e.customerOrgRegister.id == record.customerOrgRegister.id){
insableMsg = "已经添加了该节点,不可再添加此节点";
}
if(this.parentIds.indexOf(e.customerOrgId) > - 1 && e.customerOrgRegister.id == record.customerOrgRegister.id){
insableMsg = "已经添加了上级节点,不可再添加此节点";
}
if(this.childIds.indexOf(e.customerOrgId) > - 1 && e.customerOrgRegister.id == record.customerOrgRegister.id){
insableMsg = "已经添加了下级节点,不可再添加此节点";
}
});
let checkMsg = this.checkQuery(record, this.dataCusOrgOCX, 0, -1);
if(insableMsg){
this.$message.warning(insableMsg);
if (checkMsg) {
this.$message.warning(checkMsg);
return;
}
@ -238,8 +221,51 @@ export default {
},
//
checkQuery(record, dataCusOrgOCX, startRow, currRow) {
//currRow - 1 record , dataCusOrgOCX
if(!record.customerOrgId) return '';
if(!dataCusOrgOCX || dataCusOrgOCX.length < 1) return '';
let checkMsg = '';
let parentIds = getTreePids(this.patientRegister.customerOrgTreeAll, 'treeChildren', 'parentId', 'id', record.customerOrgId);
let childIds = getTreeAllChildIdsById(this.patientRegister.customerOrgTreeAll, 'treeChildren', 'id', record.customerOrgId);
for (let i = startRow; i < dataCusOrgOCX.length; i++) {
if (dataCusOrgOCX[i].customerOrgId == record.customerOrgId && dataCusOrgOCX[i].customerOrgRegister.id == record.customerOrgRegister.id) {
if (currRow < 0) {
checkMsg = "已经添加了该单位,不可再添加";
} else {
checkMsg = `${Number(currRow) + 1} 行与第 ${Number(i) + 1} 行,单位与体检次数相同,数据校验失败!`;
}
break;
}
if (parentIds.indexOf(dataCusOrgOCX[i].customerOrgId) > - 1 && dataCusOrgOCX[i].customerOrgRegister.id == record.customerOrgRegister.id) {
if (currRow < 0) {
checkMsg = "已经添加了该单位的上级单位,不可再添加该单位";
} else {
checkMsg = `${Number(currRow) + 1} 行与第 ${Number(i) + 1} 行,体检次数相同单位存在上下级关系,数据校验失败!`;
}
break;
}
if (childIds.indexOf(dataCusOrgOCX[i].customerOrgId) > - 1 && dataCusOrgOCX[i].customerOrgRegister.id == record.customerOrgRegister.id) {
if (currRow < 0) {
checkMsg = "已经添加了该单位的下级单位,不可再添加该单位";
} else {
checkMsg = `${Number(currRow) + 1} 行与第 ${Number(i) + 1} 行,体检次数相同单位存在上下级关系,数据校验失败!`;
}
break;
}
}
return checkMsg;
},
//
changeMedicalTimes(index){
changeMedicalTimes(index) {
let v = this.dataCusOrgOCX[index].customerOrgRegister;
this.dataCusOrgOCX[index].startDate = v.beginTime;
@ -251,30 +277,31 @@ export default {
},
//
getCustGroup(index,groupId){
getCustGroup(index, groupId) {
///api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=3fa85f64-5717-4562-b3fc-2c963f66afa6
getapi(`/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${groupId}`).then(res =>{
if(res.code != - 1){
getapi(`/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${groupId}`).then(res => {
if (res.code != - 1) {
this.dataCusOrgOCX[index].customerOrgGroupList = res.data.items;
}
})
},
//
changeDateType(v){
this.dataCusOrgOCX.forEach(e =>{
changeDateType(v) {
this.dataCusOrgOCX.forEach(e => {
e.dateType = v;
return e;
})
},
changeUseOrg(v){
changeUseOrg(v) {
let ldate = new Date();
this.dataCusOrgOCX = [];
if(!v){
if (!v) {
this.dataCusOrgOCX.push({
id:parseInt(Math.random() * 100000000),
id: parseInt(Math.random() * 100000000),
customerOrgId: '',
customerOrgName: '',
customerOrgRegister: {}, //
customerOrgRegisterList: [], //
dateType: 'creationTime', // creationTimemedicalStartDatesummaryDate
@ -287,9 +314,9 @@ export default {
},
//
rowDblclick(row){
let lfind = arrayExistObj(this.dataCusOrgOCX,'id',row.id);
if(lfind > -1) this.dataCusOrgOCX.splice(lfind,1);
rowDblclick(row) {
let lfind = arrayExistObj(this.dataCusOrgOCX, 'id', row.id);
if (lfind > -1) this.dataCusOrgOCX.splice(lfind, 1);
},
//
@ -322,6 +349,40 @@ export default {
});
},
btnOk(){
let checkMsg = '',cusOrgOCX='';
for(let i=0;i<this.dataCusOrgOCX.length;i++){
checkMsg = this.checkQuery(this.dataCusOrgOCX[i],this.dataCusOrgOCX,i+1,i);
if(checkMsg) break;
}
if(checkMsg) {
this.$message.warning(checkMsg);
return;
}
if(this.dataCusOrgOCX && this.dataCusOrgOCX.length > 0){
cusOrgOCX = this.dataCusOrgOCX[0].customerOrgName || '';
switch (this.dataCusOrgOCX[0].dateType) {
case 'medicalStartDate':
cusOrgOCX += "(体检"
break;
case 'summaryDate':
cusOrgOCX += "(总检"
break;
default:
cusOrgOCX += "(登记"
break;
}
cusOrgOCX += moment(this.dataCusOrgOCX[0].startDate).format('yyyy-MM-DD') + '~' + moment(this.dataCusOrgOCX[0].endDate).format('yyyy-MM-DD') + ')';
}
this.report.dataCusOrgOCX = this.dataCusOrgOCX;
this.patientRegister.query.cusOrgOCX = cusOrgOCX
this.report.dialogCusOrgOCX = false;
},
},
};
</script>
@ -349,6 +410,6 @@ export default {
}
::v-deep .el-icon-date:before {
content: ""
content: ""
}
</style>

167
src/components/report/PatientRegisterQueryNobtn.vue

@ -1,66 +1,73 @@
<template>
<div style="display: flex">
<div style="display: flex; flex-wrap: wrap; height:100px;">
<div class="query">
<span>体检单位</span>
<el-input placeholder="请选择单位" v-model="patientRegister.query.cusOrgOCX" style="width:240px;" size="small" disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"></el-button>
</el-input>
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" placeholder="请选择单位"
:show-all-levels="false" clearable size="small" @change="changeCustomerOrgId" style="width:180px;">
</el-cascader>
<el-select v-model="patientRegister.query.customerOrgRegister" placeholder="次数" style="width: 60px" size="small"
:disabled="patientRegister.query.customerOrgId == dict.personOrgId" @change="changeMedicalTimes" value-key="id">
<el-option v-for="item in customerOrg.customerOrgRegisterList" :key="item.id" :label="item.medicalTimes"
:value="item" />
</el-select>
</div>
<div class="query">
<el-select v-model="patientRegister.query.dateType" placeholder="请选择" filterable clearable size="small"
style="width: 100px">
<el-option label="登记日期" value="creationTime" />
<el-option label="体检日期" value="medicalStartDate" />
<el-option label="总检日期" value="summaryDate" />
</el-select>
<el-date-picker v-model="patientRegister.query.dateRange" type="daterange" align="right" unlink-panels
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" size="small"
style="width: 240px">
</el-date-picker>
</div>
<div class="query">
<span>条码号</span>
<el-input placeholder="条码号" v-model="patientRegister.query.patientRegisterNo" size="small" clearable
style="width: 150px" />
</div>
<div class="query">
<span>档案号</span>
<el-input placeholder="档案号" v-model="patientRegister.query.patientNo" size="small" clearable
style="width: 135px" />
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="patientRegister.query.patientName" size="small" clearable
style="width: 100px" />
</div>
<div class="query">
<span>性别</span>
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width: 80px" size="small">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
<div class="query">
<span>身份证号</span>
<el-input placeholder="身份证号" v-model="patientRegister.query.idCardNo" size="small" clearable
style="width: 180px" />
</div>
<div class="query">
<span>状态</span>
<el-select v-model="patientRegister.query.completeFlag" placeholder="请选择" clearable style="width: 80px"
size="small">
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
<div style="display:block;">
<div style="display: flex; flex-wrap: wrap; height:35px;">
<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"></el-button>
</el-input>
</div>
<div class="query">
<span>性别</span>
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width: 70px" size="small">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
<div class="query">
<span>身份证号</span>
<el-input placeholder="身份证号" v-model="patientRegister.query.idCardNo" size="small" clearable
style="width: 165px" />
</div>
<div class="query">
<span>检查状态</span>
<el-select v-model="patientRegister.query.completeFlag" placeholder="请选择" clearable style="width: 90px"
size="small">
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>
</div>
<div style="display: flex; flex-wrap: wrap; height:35px;">
<div class="query">
<span>条码号</span>
<el-input placeholder="条码号" v-model="patientRegister.query.patientRegisterNo" size="small" clearable
style="width: 130px" />
</div>
<div class="query">
<span>档案号</span>
<el-input placeholder="档案号" v-model="patientRegister.query.patientNo" size="small" clearable
style="width: 120px" />
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="patientRegister.query.patientName" size="small" clearable
style="width: 100px" />
</div>
<div class="query" style="margin-left: 50px;">
<span>审核</span>
<el-select v-model="patientRegister.query.isAudit" placeholder="请选择" clearable style="width: 75px"
size="small">
<el-option label="未审核" value="N"/>
<el-option label="已审核" value="Y"/>
</el-select>
</div>
<div class="query">
<span>上传</span>
<el-select v-model="patientRegister.query.isUpload" placeholder="请选择" clearable style="width: 75px"
size="small">
<el-option label="未上传" value="N"/>
<el-option label="已上传" value="Y"/>
</el-select>
</div>
<div class="query">
<span>打印</span>
<el-select v-model="patientRegister.query.reportPrintTimes" placeholder="请选择" clearable style="width: 75px"
size="small">
<el-option label="未打印" value=0 />
<el-option label="已打印" value=1 />
</el-select>
</div>
</div>
</div>
<!--通用选单位体检次数分组的控件-->
@ -83,38 +90,7 @@ export default {
data() {
return {
dialogVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
};
},
@ -170,6 +146,11 @@ export default {
};
</script>
<style scoped>
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
padding-right: 25px;
}
.query {
margin-left: 10px;
}

4
src/components/sumDoctorCheck/SumAsbItemStatus.vue

@ -58,7 +58,7 @@ export default {
},
computed: {
...mapState(["dict", "doctorCheck", "sumDoctorCheck"]),
...mapState(["window","dict", "doctorCheck", "sumDoctorCheck"]),
},
methods: {
getSumAsbItemStatus(PatientRegisterId) {
@ -89,7 +89,7 @@ export default {
<style scoped>
.asbitemListClass {
display: block;
width: 24.5%;
width: v-bind("Math.floor((window.pageWidth - 120 - 16 - 80)/4) + 'px'");
margin-left: 3px;
}

2
src/router/index.js

@ -288,7 +288,7 @@ const routes = [
{
path: "/checkStatus",
name: "组合项目检查状态",
component: () => import("../views/checkStatus/index.vue"),
component: () => import("../views/report/checkStatus.vue"),
},
{
path: "/chargeAsbitem",

154
src/views/checkStatus/Query.vue

@ -1,154 +0,0 @@
<template>
<div style="display: flex">
<div style="display: flex; flex-wrap: wrap; height:80px;">
<div class="query">
<span>体检单位/次数</span>
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" placeholder="请选择单位"
:show-all-levels="false" clearable size="small" @change="changeCustomerOrgId" style="width:180px;">
</el-cascader>
<el-select v-model="patientRegister.query.customerOrgRegister" placeholder="次数" style="width: 60px" size="small"
:disabled="patientRegister.query.customerOrgId == dict.personOrgId" @change="changeMedicalTimes" value-key="id">
<el-option v-for="item in customerOrg.customerOrgRegisterList" :key="item.id" :label="item.medicalTimes"
:value="item" />
</el-select>
</div>
<div class="query">
<el-select v-model="patientRegister.query.dateType" placeholder="请选择" filterable clearable size="small"
style="width: 100px">
<el-option label="登记日期" value="creationTime" />
<el-option label="体检日期" value="medicalStartDate" />
<el-option label="总检日期" value="summaryDate" />
</el-select>
<el-date-picker v-model="patientRegister.query.dateRange" type="daterange" align="right" unlink-panels
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" size="small"
style="width: 215px">
</el-date-picker>
</div>
<div class="query">
<span>组合项目</span>
<el-select v-model="patientRegister.query.checkAsbs" multiple collapse-tags filterable clearable placeholder="请选择"
size="small" >
<el-option v-for="item in dict.asbItemAll" :key="item.value" :label="item.displayName" :value="item.id"/>
</el-select>
</div>
<div class="query">
<span>状态</span>
<el-select v-model="patientRegister.query.checkCompleteFlag" placeholder="请选择" clearable style="width: 80px"
size="small">
<el-option v-for="item in dict.checkCompleteFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>
<div class="query">
<el-button type="primary" class="btnClass" @click="btnQuery" size="small">查询</el-button>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
export default {
components: {},
props: ["orgEnable"],
data() {
return {
dialogVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
};
},
created() { },
//
mounted() { },
computed: {
...mapState(["window", "dict", "patientRegister", "customerOrg"]),
},
methods: {
//
changeCustomerOrgId(v) {
console.log(v)
if (!v) {
this.patientRegister.query.customerOrgRegister = null;
return;
}
let customerOrgId = v[0];
if (customerOrgId == this.dict.personOrgId) {
this.patientRegister.query.customerOrgRegister = null;
return;
}
getapi(
`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${customerOrgId}`
).then((res) => {
//console.log('res.data',res.data)
if (res.code != -1) {
this.customerOrg.customerOrgRegisterList = res.data;
if (res.data.length > 0) {
this.patientRegister.query.customerOrgRegister = res.data[res.data.length - 1];
this.patientRegister.query.dateRange = [
res.data[res.data.length - 1].beginTime,
res.data[res.data.length - 1].isComplete == 'N' ? new Date() : res.data[res.data.length - 1].endTime
]
}
}
});
},
//
changeMedicalTimes(v){
this.patientRegister.query.customerOrgRegister = v;
this.patientRegister.query.dateRange = [
v.beginTime,
v.isComplete == 'N' ? new Date() : v.endTime
];
},
btnQuery(){
console.log('query',this.patientRegister.query);
this.patientRegister.query.times++;
}
},
};
</script>
<style scoped>
.query {
margin-left: 10px;
}
</style>

2
src/views/doctorCheck/sumDoctorCheck.vue

@ -11,7 +11,7 @@
(window.pageHeight < 600 ? 340 : window.pageHeight - 260) +
'px;'
">
<el-tabs style="margin-left: 10px" v-model="tabChoosed">
<el-tabs v-model="tabChoosed">
<el-tab-pane label="综述建议" name="1">
<div>
<SumSug />

129
src/views/checkStatus/index.vue → src/views/report/checkStatus.vue

@ -3,52 +3,79 @@
<el-card>
<div class="publiccss">组合项目检查状态</div>
<div :style="'display: block; width:' + (window.pageWidth - 80) + 'px;margin-top:20px'">
<div style="display: flex; flex-wrap: wrap; height:80px;">
<Query />
</div>
<div style="display: flex; flex-wrap: wrap; height:35px;">
<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"></el-button>
</el-input>
</div>
<div class="query">
<span>组合项目</span>
<el-select v-model="patientRegister.query.checkAsbs" multiple collapse-tags filterable clearable placeholder="请选择"
size="small" >
<el-option v-for="item in dict.asbItemAll" :key="item.value" :label="item.displayName" :value="item.id"/>
</el-select>
</div>
<div class="query">
<span>状态</span>
<el-select v-model="patientRegister.query.checkCompleteFlag" placeholder="请选择" clearable style="width: 80px"
size="small">
<el-option v-for="item in dict.checkCompleteFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>
<div class="query">
<el-button type="primary" @click="btnQuery" size="small">查询</el-button>
</div>
</div>
<el-table :data="dataList" border width="100%" :height="window.pageHeight < 600 ? 370 : window.pageHeight - 230"
row-key="id" size="small" highlight-current-row ref="dataList" @selection-change="handleSelectionChange"
@row-click="rowClick">
<el-table-column prop="cardTypeId" label="卡类别" width="100">
row-key="id" size="small" highlight-current-row ref="dataList" >
<el-table-column prop="asbitemName" label="组合项目名称" width="120"/>
<el-table-column prop="checkCompleteFlag" label="检查状态" width="70" >
<template slot-scope="scope">
<div>{{ dddw(dict.cardType, "id", scope.row.cardTypeId, "displayName") }}</div>
<div>{{ dddw(dict.checkCompleteFlag, 'id', scope.row.checkCompleteFlag, 'displayName') }}</div>
</template>
</el-table-column>
<el-table-column prop="cardNo" label="会员卡号" width="150" />
<el-table-column prop="discount" label="折扣率" width="80" />
<el-table-column prop="expiryDate" label="有效期限" width="120">
<el-table-column prop="isCharge" label="收费状态" width="70" >
<template slot-scope="scope">
<div v-if="scope.row.expiryDate">
{{ moment(scope.row.expiryDate).format("yyyy-MM-DD") }}
</div>
<div>{{ scope.row.checkCompleteFlag == 'Y' ? '已收费':'未收费' }}</div>
</template>
</el-table-column>
<el-table-column prop="customerName" label="卡主姓名" width="80" />
<el-table-column prop="idNo" label="卡主身份证号" width="200" />
<el-table-column prop="telephone" label="卡主电话" width="150" />
<el-table-column prop="mobileTelephone" label="卡主手机号" width="150" />
<el-table-column prop="cardFlag" label="启用" width="80">
<el-table-column prop="standardPrice" label="标准价格" width="70"/>
<el-table-column prop="chargePrice" label="应收价格" width="70"/>
<el-table-column prop="patientRegisterNo" label="人员条码号" width="130"/>
<el-table-column prop="patientNo" label="档案号" width="130"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70"/>
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.cardFlag == '0' ? '否' : '是' }}</div>
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" width="200" />
<el-table-column prop="creatorId" label="创建人员" width="100" />
<el-table-column prop="creationTime" label="创建日期" width="150">
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}
</div>
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierId" label="修改人员" width="100" />
<el-table-column prop="lastModificationTime" label="修改日期" width="150">
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD") }}
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" width="80"/>
<el-table-column prop="sexId" label="性别">
<template slot-scope="scope">
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
</el-table>
</div>
</el-card>
@ -58,21 +85,15 @@
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, arrayExistObj } from "@/utlis/proFunc";
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc";
import Query from './Query.vue'
export default {
components: {
Query,
},
data() {
return {
query: {
dateType:'createDate',
dateType:'createDate',
}, //
dataList: [], //
return {
dataList: [], //
};
},
@ -82,7 +103,7 @@ export default {
//
mounted() {
this.query();
this.btnQuery();
},
computed: {
@ -90,6 +111,7 @@ export default {
},
methods: {
moment,dddw,
//
dictInit() {
//
@ -196,25 +218,38 @@ export default {
console.log("dict", this.dict);
},
query(){
//
btnQuery(){
console.log('query');
let body = {};
postapi('/api',body).then(res =>{
if(res.code != -1 ){
this.dataList = res.data;
}
})
},
},
//
watch: {
//
"patientRegister.query.times"(newVal, oldVal) {
if (newVal != oldVal) {
//alert('')
this.query();
}
},
// "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: 25px;
}
.query {
margin-left: 10px;
}
Loading…
Cancel
Save