|
|
|
@ -1,18 +1,21 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<!-- 查询条件 --> |
|
|
|
<div style="display: flex; flex-wrap: wrap; width: 100%;height:142px; " > |
|
|
|
<div style="display: flex; flex-wrap: wrap; width: 100%;height:142px; "> |
|
|
|
<div v-if="winAbsolute" style="position: absolute;top:3px;right:0px;"> |
|
|
|
<el-tooltip content="关闭人员列表窗口" placement="bottom" effect="light"> |
|
|
|
<i class="el-icon-close" @click="doctorCheck.doctorCheckDialogVisible = false;sumDoctorCheck.sumDoctorCheckDialogVisible = false;" |
|
|
|
<i class="el-icon-close" |
|
|
|
@click="doctorCheck.doctorCheckDialogVisible = false; sumDoctorCheck.sumDoctorCheckDialogVisible = false;" |
|
|
|
style="font-size: 24px;color: red;cursor:pointer;"></i> |
|
|
|
</el-tooltip> |
|
|
|
</div> |
|
|
|
<div class="query" style="display: flex;padding-top: 2px;"> |
|
|
|
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:238px;" size="small" disabled> |
|
|
|
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:238px;" size="small" |
|
|
|
disabled> |
|
|
|
</el-input> |
|
|
|
<el-button icon="el-icon-search" @click="report.dialogCusOrgOCX = true" style="font-size: 20px;height:30px;min-width:30px; padding: 5px 5px;" size="small"></el-button> |
|
|
|
</div> |
|
|
|
<el-button icon="el-icon-search" @click="report.dialogCusOrgOCX = true" |
|
|
|
style="font-size: 20px;height:30px;min-width:30px; padding: 5px 5px;" size="small"></el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="query"> |
|
|
|
<span>姓名:</span> |
|
|
|
@ -35,30 +38,30 @@ |
|
|
|
</el-select> |
|
|
|
<el-select v-model="patientRegister.query.isAudit" placeholder="请选择" clearable style="width: 75px;margin: 0 2px;" |
|
|
|
size="small"> |
|
|
|
<el-option label="未审核" value="N"/> |
|
|
|
<el-option label="已审核" value="Y"/> |
|
|
|
<el-option label="未审核" value="N" /> |
|
|
|
<el-option label="已审核" value="Y" /> |
|
|
|
</el-select> |
|
|
|
<el-checkbox v-if="win == 'doctorCheck' ? true:false" v-model="local.query.haveImage">有图</el-checkbox> |
|
|
|
<el-checkbox v-if="win == 'doctorCheck' ? true : false" v-model="local.query.haveImage">有图</el-checkbox> |
|
|
|
</div> |
|
|
|
<div class="query" v-if="win == 'doctorCheck' ? true:false"> |
|
|
|
<div class="query" v-if="win == 'doctorCheck' ? true : false"> |
|
|
|
<span>组合项目:</span> |
|
|
|
<el-select v-model="local.query.checkAsb" placeholder="快速选择组合项目" size="small" |
|
|
|
filterable :filter-method="filterMethod" |
|
|
|
clearable @clear="quickAsb = deepCopy(asbItemQuick)" |
|
|
|
default-first-option ref="quickAsbOCX" |
|
|
|
style="width:157px;text-align: left;"> |
|
|
|
<el-select v-model="local.query.checkAsb" placeholder="快速选择组合项目" size="small" filterable |
|
|
|
:filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(asbItemQuick)" default-first-option |
|
|
|
ref="quickAsbOCX" style="width:157px;text-align: left;"> |
|
|
|
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="query"> |
|
|
|
<el-button class="commonbutton" type="primary" @click="query" size="small" style="width:60px;height:26px;padding: 5px 0 5px 0px;">查询</el-button> |
|
|
|
<el-button class="commonbutton" type="primary" @click="query" size="small" |
|
|
|
style="width:60px;height:26px;padding: 5px 0 5px 0px;">查询</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 人员列表 --> |
|
|
|
<el-table :data="dataList" border width="100%" :height="winAbsolute ? (window.pageHeight - 44 - 120 - 30) : (window.pageHeight - 44 - 120)" row-key="id" size="small" |
|
|
|
highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="dataList" style="border-radius:10px;"> |
|
|
|
|
|
|
|
<!-- 人员列表 --> |
|
|
|
<el-table :data="dataList" border width="100%" |
|
|
|
:height="winAbsolute ? (window.pageHeight - 44 - 120 - 30) : (window.pageHeight - 44 - 120)" row-key="id" |
|
|
|
size="small" highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="dataList" |
|
|
|
style="border-radius:10px;"> |
|
|
|
<el-table-column prop="customerOrgParentName" label="单位" width="120"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div> |
|
|
|
@ -69,7 +72,7 @@ |
|
|
|
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="patientName" label="姓名" width="80"/> |
|
|
|
<el-table-column prop="patientName" label="姓名" width="80" /> |
|
|
|
<el-table-column prop="sexId" label="性别"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ ldddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div> |
|
|
|
@ -160,12 +163,12 @@ |
|
|
|
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<!--通用选单位、体检次数、分组的控件--> |
|
|
|
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" |
|
|
|
:close-on-click-modal="false" :append-to-body="true" width="800px" height="600px"> |
|
|
|
<CusOrgOCX :useCustomerOrg="false" :initDateType="'medicalStartDate'"/> |
|
|
|
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" :append-to-body="true" |
|
|
|
width="800px" height="600px"> |
|
|
|
<CusOrgOCX :useCustomerOrg="false" :initDateType="'medicalStartDate'" /> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
</div> |
|
|
|
@ -174,7 +177,7 @@ |
|
|
|
import moment from "moment"; |
|
|
|
import { mapState, mapMutations } from "vuex"; |
|
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|
|
|
import { dddw, objCopy, arrayReduce,deepCopy } from "../../utlis/proFunc" |
|
|
|
import { dddw, objCopy, arrayReduce, deepCopy } from "../../utlis/proFunc" |
|
|
|
|
|
|
|
|
|
|
|
import CusOrgOCX from "../../components/report/CusOrgOCX.vue" |
|
|
|
@ -183,40 +186,43 @@ export default { |
|
|
|
components: { |
|
|
|
CusOrgOCX, |
|
|
|
}, |
|
|
|
props: ['win','winAbsolute'], |
|
|
|
props: ['win', 'winAbsolute'], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
dataList: [], //列表数据 |
|
|
|
multipleSelection: [], //选中的数据列表 |
|
|
|
dialogVisible: false, |
|
|
|
dialogCamera: false, |
|
|
|
|
|
|
|
local:{ |
|
|
|
query:{ |
|
|
|
haveImage:false, |
|
|
|
checkAsb:'', //检查项目 |
|
|
|
|
|
|
|
local: { |
|
|
|
query: { |
|
|
|
haveImage: false, |
|
|
|
checkAsb: '', //检查项目 |
|
|
|
}, |
|
|
|
completeFlag:[] |
|
|
|
completeFlag: [] |
|
|
|
}, |
|
|
|
|
|
|
|
quickAsb: [], |
|
|
|
asbItemQuick:[], |
|
|
|
asbItemQuick: [], |
|
|
|
|
|
|
|
oneClick: 0, // 1 表示行单击一次 |
|
|
|
DbClick: 0, // 1 表示行有单击第二次 |
|
|
|
}; |
|
|
|
}, |
|
|
|
|
|
|
|
created() { |
|
|
|
created() { |
|
|
|
this.dictInit() |
|
|
|
}, |
|
|
|
|
|
|
|
//挂载完成 |
|
|
|
mounted() { }, |
|
|
|
computed: { |
|
|
|
...mapState(["window","dataTransOpts", "dict", "patientRegister", "customerOrg", "doctorCheck", "sumDoctorCheck","report"]), |
|
|
|
...mapState(["window", "dataTransOpts", "dict", "patientRegister", "customerOrg", "doctorCheck", "sumDoctorCheck", "report"]), |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
...mapMutations(['doctorCheckPrBaseInit', 'sumPREditInit']), |
|
|
|
|
|
|
|
dictInit(){ |
|
|
|
dictInit() { |
|
|
|
// 默认 当天 体检日期 |
|
|
|
let today = moment(new Date()).format('yyyy-MM-DD'); |
|
|
|
this.report.dataCusOrgOCX = [{ |
|
|
|
@ -234,19 +240,19 @@ export default { |
|
|
|
this.patientRegister.query.cusOrgOCX = `(体检${today}~${today})` |
|
|
|
|
|
|
|
// 获取组合项目 |
|
|
|
postapi('/api/app/asbitem/GetBasicList',{isFilterActive:'Y'}).then(res =>{ |
|
|
|
if(res.code != -1){ |
|
|
|
postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => { |
|
|
|
if (res.code != -1) { |
|
|
|
this.asbItemQuick = res.data |
|
|
|
this.quickAsb = res.data |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
this.local.completeFlag = deepCopy(this.dict.completeFlag) |
|
|
|
this.local.completeFlag.splice(0,1) //预记选项去掉 |
|
|
|
this.local.completeFlag.splice(0, 1) //预记选项去掉 |
|
|
|
}, |
|
|
|
|
|
|
|
//快速选择组合项目时,调整可按拼间简码及简称查找 |
|
|
|
filterMethod(keyWords) { |
|
|
|
|
|
|
|
//快速选择组合项目时,调整可按拼间简码及简称查找 |
|
|
|
filterMethod(keyWords) { |
|
|
|
//console.log('filterMethod',this.asbItemQuick) |
|
|
|
if (keyWords) { |
|
|
|
this.quickAsb = []; |
|
|
|
@ -260,7 +266,7 @@ export default { |
|
|
|
} else { |
|
|
|
this.quickAsb = deepCopy(this.asbItemQuick); |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
//快速选择组合项目 |
|
|
|
// quickChoosedAsb(v) { |
|
|
|
@ -279,35 +285,57 @@ export default { |
|
|
|
// this.quickAsb = deepCopy(this.asbItemQuick) |
|
|
|
// this.$refs['quickAsbOCX'].focus(); //total asbItemId |
|
|
|
// }); |
|
|
|
|
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
//点击体检次数行 |
|
|
|
rowClick(row) { |
|
|
|
|
|
|
|
if (this.oneClick == 0) { |
|
|
|
this.oneClick = 1; |
|
|
|
} else { |
|
|
|
this.DbClick = 1; |
|
|
|
} |
|
|
|
|
|
|
|
//双击事件 |
|
|
|
if (this.DbClick == 1) { //第一次点击的节点和第二次点击的节点id相同 |
|
|
|
this.rowClickRetrieve(row) |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
setTimeout(() => { //300ms内没有第二次点击,执行单击事件 |
|
|
|
if(this.oneClick == 1 && this.DbClick == 0) this.rowClickRetrieve(row) |
|
|
|
}, 300) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
rowClickRetrieve(row) { |
|
|
|
this.oneClick = 0; |
|
|
|
this.DbClick = 0; |
|
|
|
|
|
|
|
this.dataTransOpts.tableS.patient_register = deepCopy(row) |
|
|
|
// setTimeout(() => { |
|
|
|
this.dataTransOpts.refresh.patient_register.S++ //人员体检登记信息刷新 |
|
|
|
this.dataTransOpts.refresh.patient_register.S++ //人员体检登记信息刷新 |
|
|
|
// }, 10); |
|
|
|
|
|
|
|
this.doctorCheckPrBaseInit() |
|
|
|
this.doctorCheck.prBase.patientRegisterNo = row.patientRegisterNo |
|
|
|
objCopy(row, this.doctorCheck.prBase) //基本信息 |
|
|
|
this.patientRegister.photo = row.photo |
|
|
|
|
|
|
|
|
|
|
|
this.sumPREditInit() |
|
|
|
objCopy(row, this.sumDoctorCheck.sumPREdit) //总检信息 |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
//双击选中客户记录后,并半闭列表 |
|
|
|
rowDblclick(row){ |
|
|
|
rowDblclick(row) { |
|
|
|
this.rowClick(row) |
|
|
|
if(this.win == 'doctorCheck'){ |
|
|
|
this.doctorCheck.doctorCheckDialogVisible = false |
|
|
|
}else{ |
|
|
|
this.sumDoctorCheck.sumDoctorCheckDialogVisible = false |
|
|
|
} |
|
|
|
|
|
|
|
this.doctorCheck.doctorCheckDialogVisible = false |
|
|
|
this.sumDoctorCheck.sumDoctorCheckDialogVisible = false |
|
|
|
// console.log('rowDblclick', this.doctorCheck.doctorCheckDialogVisible, this.sumDoctorCheck.sumDoctorCheckDialogVisible) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
ldddw(arrayData, key, value, display) { |
|
|
|
@ -320,39 +348,39 @@ export default { |
|
|
|
|
|
|
|
//查询 |
|
|
|
query() { |
|
|
|
let body = {},customerOrgs=[] |
|
|
|
console.log('this.report.dataCusOrgOCX',this.report.dataCusOrgOCX) |
|
|
|
let body = {}, customerOrgs = [] |
|
|
|
console.log('this.report.dataCusOrgOCX', this.report.dataCusOrgOCX) |
|
|
|
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) |
|
|
|
}) |
|
|
|
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) |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
body.customerOrgs = customerOrgs |
|
|
|
if(this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName |
|
|
|
if(this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex |
|
|
|
if(this.patientRegister.query.isAudit) body.isAudit = this.patientRegister.query.isAudit |
|
|
|
if(this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag |
|
|
|
if(this.local.query.checkAsb) body.asbitems = [this.local.query.checkAsb] |
|
|
|
if(this.local.query.haveImage) body.isPicture = 'Y' |
|
|
|
|
|
|
|
body.maxResultCount = 1000 |
|
|
|
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName |
|
|
|
if (this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex |
|
|
|
if (this.patientRegister.query.isAudit) body.isAudit = this.patientRegister.query.isAudit |
|
|
|
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag |
|
|
|
if (this.local.query.checkAsb) body.asbitems = [this.local.query.checkAsb] |
|
|
|
if (this.local.query.haveImage) body.isPicture = 'Y' |
|
|
|
|
|
|
|
body.maxResultCount = 1000 |
|
|
|
body.isFilterPreRegistration = 'Y' //是否需要过滤预登记数据 Y=过滤预登记数据 N=不过滤 默认为N (备注:只有CompleteFlag参数的值不为0的情况才有效,null值也有效) |
|
|
|
// "patientName": "string", |
|
|
|
// "sexId": "string", |
|
|
|
@ -369,9 +397,9 @@ export default { |
|
|
|
// }); |
|
|
|
postapi('/api/patientregister/getpeisrecordlist', body) |
|
|
|
.then((res) => { |
|
|
|
if(res.code != -1){ |
|
|
|
if (res.code != -1) { |
|
|
|
this.dataList = res.data.items; |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
// .finally(() =>{ |
|
|
|
// loading.close(); |
|
|
|
@ -400,7 +428,6 @@ export default { |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped> |
|
|
|
|
|
|
|
.box { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
|