Browse Source

group

master
pengjun 2 years ago
parent
commit
7a0da2aaa6
  1. 7
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  2. 35
      src/components/doctorCheck/RegisterCheckList.vue
  3. 178
      src/components/patientRegister/PatientRegisterRefuseList.vue
  4. 5
      src/components/report/RegisterCheckStatus.vue
  5. 18
      src/components/sumDoctorCheck/SumItems.vue
  6. 58
      src/utlis/proFunc.js
  7. 27
      src/views/customerOrg/customerOrgGroup.vue

7
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -374,8 +374,8 @@ export default {
}
});
//
postapi("/api/app/asbitem/getasbitemlist",{}).then((res) => {
// ()
postapi("/api/app/medicalpackage/getmedicalpackagelist",{}).then((res) => {
if (res.code != -1) {
this.dict.medicalPackage = res.data;
}
@ -790,7 +790,7 @@ export default {
//
btnCopyGroup(){
console.log('this.customerOrgGroup',this.customerOrgGroup)
if(!this.customerOrgGroup.id || !this.customerOrgGroup.customerOrgId){
if(!this.customerOrgGroup.id){
this.$message.warning({ showClose: true, message: "请先选中单位分组"})
return
}
@ -849,6 +849,7 @@ export default {
//
btnCopyMedicalPackage(){
// console.log('this.customerOrgGroup',this.customerOrgGroup)
if(!this.customerOrgGroup.id){
this.$message.warning({ showClose: true, message: "请先选中单位分组"})
return

35
src/components/doctorCheck/RegisterCheckList.vue

@ -28,6 +28,7 @@
<script>
import { mapState } from 'vuex';
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { listOrderBy } from "../../utlis/proFunc"
export default {
components: {},
@ -82,11 +83,10 @@ export default {
console.log('rowClick')
this.doctorCheck.RegisterCheckId = row.id
this.dataTransOpts.tableS.register_check.id = row.id
setTimeout(() => { //
this.dataTransOpts.refresh.register_check.S++
this.dataTransOpts.refresh.register_check_item.M++
}, 10);
// this.doctorCheck.RegisterCheckEdit = row
this.dataTransOpts.refresh.register_check.S++
this.dataTransOpts.refresh.register_check_item.M++
},
//
@ -95,18 +95,19 @@ export default {
this.doctorCheck.RegisterCheckList = []
this.doctorCheck.RegisterCheckId = ''
this.dataTransOpts.tableS.register_check.id = ''
setTimeout(() => {
this.dataTransOpts.refresh.register_check.S++
this.dataTransOpts.refresh.register_check_item.M++
}, 20);
this.dataTransOpts.refresh.register_check.S++
this.dataTransOpts.refresh.register_check_item.M++
return
}
console.log(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
}
postapi('/api/app/RegisterCheck/GetRegisterCheckWithAsbitems', { patientRegisterId })
.then((res) => {
console.log("registerCheckList", res.data);
console.log("registerCheckList res.data", res.data);
if (res.code != -1) {
this.doctorCheck.RegisterCheckList = res.data;
// this.doctorCheck.RegisterCheckList = res.data;
this.doctorCheck.RegisterCheckList = listOrderBy(res.data,[{ colName: 'checkTypeFlag', sortType: 'A' },{ colName: 'itemTypeDisplayOrder', sortType: 'A' },{ colName: 'asbitemDisplayOrder', sortType: 'A' }])
console.log("this.doctorCheck.RegisterCheckList", this.doctorCheck.RegisterCheckList);
// 1
if (res.data.length > 0) {
this.doctorCheck.RegisterCheckId = res.data[0].id
@ -119,10 +120,10 @@ export default {
this.dataTransOpts.tableS.register_check.id = ''
}
setTimeout(() => { //
this.dataTransOpts.refresh.register_check.S++ //
this.dataTransOpts.refresh.register_check_item.M++ //
}, 10);
this.dataTransOpts.refresh.register_check.S++ //
this.dataTransOpts.refresh.register_check_item.M++ //
}
})
.catch((err) => {

178
src/components/patientRegister/PatientRegisterRefuseList.vue

@ -1,18 +1,10 @@
<template>
<div style="display: flex">
<div :style="'display: flex;width:' + (window.pageWidth - 110-10) + 'px;'">
<div :style="'display: flex;width:' + (window.pageWidth - 110 - 10) + 'px;'">
<div
:style="'padding: 15px;background-color: #fff;border-radius: 8px;width:' + Math.floor((window.pageWidth - 110 - 50) / 2) + 'px;'"
>
<el-table
:data="dataList"
:height="window.pageHeight < 600 ? 350 : window.pageHeight - 245"
row-key="id"
size="small"
highlight-current-row
ref="dataList"
@row-click="rowClick"
>
:style="'padding: 15px;background-color: #fff;border-radius: 8px;width:' + Math.floor((window.pageWidth - 110 - 50) / 2) + 'px;'">
<el-table :data="dataList" :height="window.pageHeight < 600 ? 350 : window.pageHeight - 245" row-key="id"
size="small" highlight-current-row ref="dataList" @row-click="rowClick">
<el-table-column type="index" width="50" label="序号" />
<el-table-column prop="completeFlag" label="体检进度">
<template slot-scope="scope">
@ -38,8 +30,8 @@
<div>
{{
scope.row.customerOrgParentName
? scope.row.customerOrgParentName
: scope.row.customerOrgName
? scope.row.customerOrgParentName
: scope.row.customerOrgName
}}
</div>
</template>
@ -67,12 +59,9 @@
<el-table-column prop="medicalTimes" label="体检次数"></el-table-column>
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div
v-if="
scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId === dict.personOrgId
"
>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId === dict.personOrgId
">
{{
ldddw(
dict.medicalPackage,
@ -82,12 +71,9 @@
)
}}
</div>
<div
v-if="
scope.row.medicalPackageId !== dict.personOrgId &&
<div v-if="scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId !== dict.personOrgId
"
>
">
{{
ldddw(
dict.customerOrgGroupAll,
@ -183,91 +169,58 @@
</el-table-column>
</el-table>
</div>
<div
:style="
'margin-left: 15px;width:' +
Math.floor((window.pageWidth) / 2) +
'px;'
"
>
<div :style="'margin-left: 15px;width:' +
Math.floor((window.pageWidth) / 2) +
'px;'
">
<div style="display: flex; flex-wrap: wrap; height: 40px; width: 100%;background-color: #fff;
border-radius: 8px;margin-bottom: 5px;align-items: center;">
<div class="query">
<span>条码号</span>
<el-input
placeholder="条码号"
v-model="quick.patientRegisterNo"
size="small"
style="width: 140px"
clearable
@input="onQueryByPatientRegisterNo"
/>
<el-input placeholder="条码号" v-model="quick.patientRegisterNo" size="small" style="width: 140px" clearable
@input="onQueryByPatientRegisterNo" />
</div>
<div class="query">
<span>档案号</span>
<el-input
placeholder="档案号"
v-model="quick.patientNo"
size="small"
style="width: 100px"
clearable
@input="onQueryByPatientNo"
/>
<el-input placeholder="档案号" v-model="quick.patientNo" size="small" style="width: 100px" clearable
@input="onQueryByPatientNo" />
</div>
<div class="query">
<span>姓名</span>
<el-input
placeholder="姓名"
v-model="quick.patientName"
size="small"
style="width: 100px"
disabled
/>
<el-input placeholder="姓名" v-model="quick.patientName" size="small" style="width: 100px" disabled />
</div>
</div>
<div style="padding: 15px;background-color: #fff;border-radius: 8px;">
<el-table
:data="doctorCheck.RegisterCheckList"
:height="window.pageHeight < 600 ? 310 : window.pageHeight - 291"
highlight-current-row
size="small"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40" />
<el-table-column prop="asbitemName" label="组合项目" width="180" />
<el-table-column label="弃检" width="80">
<template slot-scope="scope">
<el-checkbox :value="scope.row.completeFlag == '2'"></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="操作员" width="100" />
<el-table-column
prop="lastModificationTime"
label="操作时间"
width="180"
>
<template slot-scope="scope">
<div>
{{
lmoment(scope.row.lastModificationTime, "yyyy-MM-DD HH:mm:ss")
}}
</div>
</template>
</el-table-column>
</el-table>
<el-table :data="doctorCheck.RegisterCheckList"
:height="window.pageHeight < 600 ? 310 : window.pageHeight - 291" highlight-current-row size="small"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="40" />
<el-table-column prop="asbitemName" label="组合项目" width="180" />
<el-table-column label="弃检" width="80">
<template slot-scope="scope">
<el-checkbox :value="scope.row.completeFlag == '2'"></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="操作员" width="100" />
<el-table-column prop="lastModificationTime" label="操作时间" width="180">
<template slot-scope="scope">
<div>
{{
lmoment(scope.row.lastModificationTime, "yyyy-MM-DD HH:mm:ss")
}}
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<div style="margin-left: 10px;margin-top: 60px; width: 100px">
<div class="listBtn">
<el-button type="success" class="commonbutton" @click="resuse('2')"
>登记弃检</el-button
>
<el-button type="success" class="commonbutton" @click="resuse('2')">登记弃检</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="resuse('0')"
>取消弃检</el-button
>
<el-button type="primary" class="commonbutton" @click="resuse('0')">取消弃检</el-button>
</div>
</div>
</div>
@ -299,10 +252,10 @@ export default {
};
},
created() {},
created() { },
//
mounted() {},
mounted() { },
computed: {
...mapState([
"window",
@ -324,11 +277,11 @@ export default {
onQueryByPatientRegisterNo() {
let patientRegisterNo = this.quick.patientRegisterNo;
let body = {
sType:1,
sType: 1,
patientRegisterNo
}
console.log('/api/app/patientregister/getpatientregisterorpatient',body)
postapi('/api/app/patientregister/getpatientregisterorpatient',body).then((res) => {
}
console.log('/api/app/patientregister/getpatientregisterorpatient', body)
postapi('/api/app/patientregister/getpatientregisterorpatient', body).then((res) => {
if (res.code != -1) {
if (res.data) {
objCopy(res.data, this.quick);
@ -345,11 +298,11 @@ export default {
onQueryByPatientNo() {
let patientNo = this.quick.patientNo;
let body = {
sType:2,
sType: 2,
patientNo
}
console.log(`/api/app/patientregister/getpatientregisterorpatient`,body)
postapi('/api/app/patientregister/getpatientregisterorpatient',body).then((res) => {
}
console.log(`/api/app/patientregister/getpatientregisterorpatient`, body)
postapi('/api/app/patientregister/getpatientregisterorpatient', body).then((res) => {
if (res.code != -1) {
if (res.data) {
objCopy(res.data, this.quick);
@ -364,12 +317,7 @@ export default {
//
registerCheckList(patientRegisterId) {
console.log(
`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`
);
getapi(
`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`
)
postapi('/api/app/RegisterCheck/GetRegisterCheckAsbitemsByPatientRegisterId', { patientRegisterId })
.then((res) => {
console.log("registerCheckList", res.data);
if (res.code != -1) {
@ -377,7 +325,7 @@ export default {
}
})
.catch((err) => {
this.$message.error({ showClose: true, message: `操作失败,原因:${err}` });
this.$message.error({ showClose: true, message: `操作失败,原因:${err}` });
});
},
@ -400,7 +348,7 @@ export default {
}
})
.catch(() => {
this.$message.info({ showClose: true, message: "已取消删除" });
this.$message.info({ showClose: true, message: "已取消删除" });
});
},
@ -458,8 +406,7 @@ export default {
msg +=
"\r\n组合项目:【" +
resuseAsb.substring(1, resuseAsb.length) +
`${
completeFlag == "2" ? "已登记弃检" : "未登记弃检"
`${completeFlag == "2" ? "已登记弃检" : "未登记弃检"
}无需再执行此操作`;
}
ret.msg = msg;
@ -472,9 +419,9 @@ export default {
resuse(completeFlag) {
let ret = this.resuseCheck(completeFlag);
if (ret.allowable) {
if (ret.msg) this.$message.warning({ showClose: true, message: ret.msg});
if (ret.msg) this.$message.warning({ showClose: true, message: ret.msg });
} else {
this.$message.warning({ showClose: true, message: ret.msg});
this.$message.warning({ showClose: true, message: ret.msg });
return;
}
@ -532,7 +479,7 @@ export default {
"yyyy-MM-DD"
);
if (body.startDate > body.endDate) {
this.$message.warning({ showClose: true, message: "起始日期不能大于截止日期,数据校验不通过!"});
this.$message.warning({ showClose: true, message: "起始日期不能大于截止日期,数据校验不通过!" });
return;
}
}
@ -549,12 +496,12 @@ export default {
};
console.log("/api/app/patientregister/getlistinfilter", body);
postapi("/api/app/patientregister/getlistinfilter", body)
.then((res) => {
if (res.code > -1) {
this.dataList = res.data.items;
}
}
})
},
},
@ -584,6 +531,7 @@ export default {
margin-top: 10px;
text-align: center;
}
.btnClass {
width: 100px;
}

5
src/components/report/RegisterCheckStatus.vue

@ -84,9 +84,8 @@ export default {
//
registerCheckList(patientRegisterId) {
this.doctorCheck.RegisterCheckList = []
if (!patientRegisterId) return
console.log(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
getapi(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
if (!patientRegisterId) return
postapi('/api/app/RegisterCheck/GetRegisterCheckAsbitemsByPatientRegisterId', { patientRegisterId })
.then((res) => {
console.log("registerCheckList", res.data);
if (res.code > -1) {

18
src/components/sumDoctorCheck/SumItems.vue

@ -13,7 +13,7 @@
</el-table-column>
</el-table>
</div>
<div :style="`width:${(window.pageWidth - 180 - 110 - 15)}px;`">
<div :style="`padding-left:10px;width:${(window.pageWidth - 180 - 110 - 25)}px;`">
<!--
<el-table :data="tableData" :height="divHeight" border highlight-current-row>
<el-table-column prop="itemName" label="项目" width="150" />
@ -27,7 +27,7 @@
</el-table-column>
</el-table>
-->
<table width="100%" style="margin-left: 10px;font-size:14px;text-align: center;border-collapse:collapse;" border="1" cellspacing="0"
<table width="100%" style="font-size:14px;border-collapse:collapse;" border="1" cellspacing="0"
bordercolor="#909399">
<colgroup>
<col width="150">
@ -37,10 +37,10 @@
</colgroup>
<thead>
<tr height="30">
<td>项目</td>
<td>单位</td>
<td>参考范围</td>
<td v-for="(item, index) of tableCols" :key="index">{{ item.substring(0, 10) }}</td>
<td class="tdCellClass">项目</td>
<td class="tdCellClass">单位</td>
<td class="tdCellClass">参考范围</td>
<td class="tdCellClass" v-for="(item, index) of tableCols" :key="index">{{ item.substring(0, 10) }}</td>
</tr>
</thead>
<tbody v-for="(item, index) of tableData" :key="index">
@ -48,12 +48,11 @@
<td class="tdCellClass" style="text-align: left;">{{ item.itemName }}</td>
<td class="tdCellClass">{{ item.unitName }}</td>
<td class="tdCellClass">{{ item.referenceRangeValue }}</td>
<td class="tdCellClass" v-for="(item2, index2) of tableCols" :key="index2"
:style="`color: ${item.unitName == '小结' ? '#000000': getColorStr(item[item2 + '_color'])};`" v-html="item[item2]"></td>
<td v-for="(item2, index2) of tableCols" :key="index2"
:style="`padding: 0 5px;text-align:left;color: ${item.itemName == '小结' ? '#000000': getColorStr(item[item2 + '_color'])};`" v-html="item[item2]"></td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
@ -237,6 +236,7 @@ export default {
.tdCellClass {
padding: 0 5px;
text-align: center;
}
::v-deep .el-table tr {
background-color: #f4f8ff;

58
src/utlis/proFunc.js

@ -326,6 +326,64 @@ function getColorStr(intColor) {
}
exports.getColorStr = getColorStr;
//对象数组排序 keyObjs示例:[{ colName: 'id', sortType: 'A' },] sortType: A/D(ASC/DESC)
//简单数组排序 arr.sort(a-b) 升序,arr.sort(b-a)
function listOrderBy(arr, keyObjs) {
if (!arr || arr.length < 2) return arr
let arrCount = arr.length
let lkeyObjs = keyObjs
if (typeof keyObjs !== 'object') {
lkeyObjs = keyObjs.split(',')
}
if (!lkeyObjs || lkeyObjs.length < 1) return arr
let temp = null
let sortType = 'A' //默认升序排序
try {
for (let i = 0; i < arrCount; i++) {
for (let j = 0; j < arrCount - 1; j++) {
for (let k = 0; k < lkeyObjs.length; k++) {
sortType = lkeyObjs[k][1] || 'A'
if (k == 0) {
if (sortType == 'A') {
if (arr[j][lkeyObjs[k][0]] > arr[j + 1][lkeyObjs[k][0]]) {
temp = deepCopy(arr[j])
arr[j] = deepCopy(arr[j + 1])
arr[j + 1] = deepCopy(temp)
}
} else {
if (arr[j][lkeyObjs[k][0]] < arr[j + 1][lkeyObjs[k][0]]) {
temp = deepCopy(arr[j])
arr[j] = deepCopy(arr[j + 1])
arr[j + 1] = deepCopy(temp)
}
}
} else {
if (arr[j][lkeyObjs[k - 1][0]] != arr[j + 1][lkeyObjs[k - 1][0]]) break;
if (sortType == 'A') {
if (arr[j][lkeyObjs[k][0]] > arr[j + 1][lkeyObjs[k][0]]) {
temp = deepCopy(arr[j])
arr[j] = deepCopy(arr[j + 1])
arr[j + 1] = deepCopy(temp)
}
} else {
if (arr[j][lkeyObjs[k][0]] < arr[j + 1][lkeyObjs[k][0]]) {
temp = deepCopy(arr[j])
arr[j] = deepCopy(arr[j + 1])
arr[j + 1] = deepCopy(temp)
}
}
}
}
}
}
} catch (error) {
console.log(`listOrderBy ${error}`);
}
return arr;
}
exports.listOrderBy = listOrderBy;

27
src/views/customerOrg/customerOrgGroup.vue

@ -107,7 +107,7 @@
<!-- 新增或者编辑弹框 -->
<el-dialog :title="dataTransOpts.tableS.customer_org_group.id ? '编辑' : '新增'" :close-on-click-modal="false"
:visible.sync="dialogWin.CustomerOrgGroupEdit" width="800px" @close="close_dialogWinCustomerOrgGroupEdit">
<CustomerOrgGroupEdit :params="CustomerOrgGroupEditParams"/>
<CustomerOrgGroupEdit :params="CustomerOrgGroupEditParams" />
</el-dialog>
<!-- -->
</div>
@ -131,7 +131,7 @@ import CustomerOrgGroupEdit from "./CustomerOrgGroupEdit.vue";
export default {
components: {
CustomerOrgGroupAsbitem,CustomerOrgGroupEdit
CustomerOrgGroupAsbitem, CustomerOrgGroupEdit
},
data() {
return {
@ -146,7 +146,7 @@ export default {
customerOrgRegister: {}, //
curCustomerOrgGroup: {}, //
CustomerOrgGroupEditParams:{}, //
CustomerOrgGroupEditParams: {}, //
isDrag: false,
form: {
@ -200,16 +200,19 @@ export default {
deepCopy,
//
btnCopyPreGroup(){
btnCopyPreGroup() {
if (!this.customerOrgRegister.id) {
this.$message.warning("请选择体检次数");
return;
}
this.$message.warning({showClose:true,message:'开发中……'})
//
this.getCustomerOrgGroup(this.customerOrgRegister.id);
postapi('/api/app/CustomerOrgGroup/CopyLastGrouping', { customerOrgRegisterId: this.customerOrgRegister.id })
.then(res => {
if (res.code > -1) {
//
this.getCustomerOrgGroup(this.customerOrgRegister.id);
}
})
},
//
@ -619,7 +622,7 @@ export default {
lfind = arrayExistObj(this.customerOrgGroups, 'id', id)
if (lfind > -1) {
objCopy(res.data, this.customerOrgGroups[lfind])
}else{
} else {
lfind = this.customerOrgGroups.length
this.customerOrgGroups.push(res.data)
}
@ -630,14 +633,14 @@ export default {
// customer_org_group_detail
this.curCustomerOrgGroup = deepCopy(res.data);
this.curCustomerOrgGroup.isComplete = this.customerOrgRegister.isComplete;
this.curCustomerOrgGroup.isComplete = this.customerOrgRegister.isComplete;
}
})
}else{
} else {
//
this.dataTransOpts.tableS.customer_org_group.id = this.curCustomerOrgGroup.id || ''
}
this.dataTransOpts.refresh.customer_org_group_detail.M++;
},
},

Loading…
Cancel
Save