Browse Source

refuse

master
pengjun 2 years ago
parent
commit
044ad8f412
  1. 419
      src/components/patientRegister/PatientRegisterRefuseList.vue
  2. 13
      src/components/patientRegister/patientRegisterQuery.vue
  3. 273
      src/views/customerOrg/patientRegisterRefuse.vue

419
src/components/patientRegister/PatientRegisterRefuseList.vue

@ -0,0 +1,419 @@
<template>
<div>
<div style="display: flex">
<div style="width:46%;">
<el-table :data="dataList" border height="700" 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">
<div>{{ ldddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住" width="50">
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}
</div>
</template>
</el-table-column>
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别">
<template slot-scope="scope">
<div>{{ ldddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<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">
{{ ldddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ ldddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationId" label="民族">
<template slot-scope="scope">
<div>
{{ ldddw(dict.nation, "id", scope.row.nationId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="birthDate" label="出生日期" width="100">
<template slot-scope="scope">
<div v-if="scope.row.birthDate">
{{ lmoment(scope.row.birthDate, "yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column prop="email" label="邮箱" width="100" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
<el-table-column prop="medicalCardNo" label="体检卡号" />
<el-table-column prop="jobCardNo" label="工卡号" />
<el-table-column prop="maritalStatusId" label="婚姻状况">
<template slot-scope="scope">
<div>
{{ ldddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="medicalTypeId" label="体检类别">
<template slot-scope="scope">
<div v-if="scope.row.medicalTypeId !== dict.personOrgId">
{{ ldddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="personnelTypeId" label="人员类别">
<template slot-scope="scope">
<div v-if="scope.row.personnelTypeId !== dict.personOrgId">
{{ ldddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="jobPost" label="职务" />
<el-table-column prop="jobTitle" label="职称" />
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" />
<el-table-column prop="creationTime" label="登记日期" width="100">
<template slot-scope="scope">
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="是否上传">
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
</el-table>
</div>
<div style="width:47%;margin-left: 5px;">
<div style="display: flex; flex-wrap: wrap; width: 100%;">
<div class="query">
<span>条码号</span>
<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: 130px" clearable
@input="onQueryByPatientNo" />
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="quick.patientName" size="small" style="width: 100px" disabled />
</div>
</div>
<el-table :data="doctorCheck.RegisterCheckList" style="width: 100%" height="660" border 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" />
</el-table>
</div>
<div style="margin-left: 10px;width:100px;">
<div class="listBtn">
<el-button type="success" @click="resuse('2')">登记弃检</el-button>
</div>
<div class="listBtn">
<el-button type="primary" @click="resuse('0')">取消弃检</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce } from "@/utlis/proFunc";
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
import Camera from "../../components/patientRegister/Camera.vue";
export default {
components: {
PatientRegisterEdit,
Camera,
},
data() {
return {
dataList: [], //
multipleSelection: [], //
quick: {
id:'',
patientRegisterNo: '',
patientNo: '',
patientName: '',
},
};
},
created() { },
//
mounted() { },
computed: {
...mapState(["dict", "patientRegister", "customerOrg", "doctorCheck"]),
},
methods: {
...mapActions(["getCustomerOrgGroup", "getPatientRegisterAbs"]),
rowClick(row) {
objCopy(row, this.quick)
this.registerCheckList(row.id)
},
//
onQueryByPatientRegisterNo() {
let val = this.quick.patientRegisterNo
console.log(`/api/app/patient-register/patient-register-or-patient?SType=1&PatientRegisterNo=${val}`)
getapi(`/api/app/patient-register/patient-register-or-patient?SType=1&PatientRegisterNo=${val}`)
.then((res) => {
if (res.code != -1) {
if (res.data) {
objCopy(res.data, this.quick)
this.registerCheckList(res.data.id)
} else {
this.quick.patientNo = ''
this.quick.patientName = ''
}
}
});
},
//
onQueryByPatientNo() {
let val = this.quick.patientNo
console.log(`/api/app/patient-register/patient-register-or-patient?SType=2&PatientNo=${val}`)
getapi(`/api/app/patient-register/patient-register-or-patient?SType=2&PatientNo=${val}`)
.then((res) => {
if (res.code != -1) {
if (res.data) {
objCopy(res.data, this.quick)
this.registerCheckList(res.data.id)
} else {
this.quick.patientRegisterNo = ''
this.quick.patientName = ''
}
}
});
},
//
registerCheckList(patientRegisterId) {
console.log(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
getapi(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
.then((res) => {
console.log("registerCheckList", res.data);
if (res.code != -1) {
this.doctorCheck.RegisterCheckList = res.data;
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
// [
// {
// "registerCheckId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "completeFlag": "0"
// }
// ]
resuseCore(body) {
postapi(`/api/app/registercheck/updatecompletemany`, body)
.then((res) => {
if (res.code != -1) {
this.$message.success("操作成功");
this.registerCheckList(this.quick.id)
}
})
.catch(() => {
this.$message({ type: "error", message: "已取消删除", });
});
},
//
resuseCheck(completeFlag) {
let resuseAsb = '',finishAsb = '',chargeAsb='',msg=''
let ret = {
allowable: true,
msg:'',
}
if (!this.multipleSelection || this.multipleSelection.length < 1) return { allowable: false, msg: '请选择组合项目,再进行此操作' }
for(let i=0;i<this.multipleSelection.length;i++){
if(this.multipleSelection[i].completeFlag == completeFlag){
resuseAsb += ',' + this.multipleSelection[i].asbitemName
this.multipleSelection.splice(i,1)
i--
continue
}
if(this.multipleSelection[i].completeFlag == '1'){
finishAsb += ',' + this.multipleSelection[i].asbitemName
this.multipleSelection.splice(i,1)
i--
continue
}
if(this.multipleSelection[i].isCharge == 'Y'){
chargeAsb += ',' + this.multipleSelection[i].asbitemName
this.multipleSelection.splice(i,1)
i--
continue
}
}
if(chargeAsb){
msg += '\r\n已收费组合项目:【' + chargeAsb.substring(1,chargeAsb.length) + '】'
}
if(finishAsb){
msg += '\r\n已检组合项目:【' + finishAsb.substring(1,finishAsb.length) + '】'
}
if(msg){
msg += '\r\n不可执行此操作!'
}
if(resuseAsb){
msg += '\r\n组合项目:【' + resuseAsb.substring(1,resuseAsb.length) + `${completeFlag == '2' ? '已登记弃检':'未登记弃检'}无需再执行此操作`
}
ret.msg = msg
if(this.multipleSelection.length < 1) ret.allowable = false
return ret
},
//
resuse(completeFlag) {
let ret = this.resuseCheck(completeFlag)
if(ret.allowable){
if(ret.msg) this.$message.warning(ret.msg)
}else{
this.$message.warning(ret.msg)
return
}
let body = []
this.multipleSelection.forEach(e => {
body.push({
registerCheckId:e.id,
completeFlag,
})
});
this.resuseCore(body)
},
ldddw(arrayData, key, value, display) {
return dddw(arrayData, key, value, display);
},
lmoment(date, forMat) {
return moment(new Date(date)).format(forMat);
},
//
query() {
let body = {}
console.log(`this.patientRegister.query`, this.patientRegister.query)
if (this.patientRegister.query.customerOrgFlag) {
if (this.patientRegister.query.CustomerOrgParentId) {
body.customerOrgId = this.patientRegister.query.CustomerOrgParentId
} else {
if (this.patientRegister.query.customerOrgId) body.customerOrgId = this.patientRegister.query.customerOrgId[0]
}
}
if (this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag
//StartDate EndDate
if (this.patientRegister.query.dateRange) {
body.startDate = moment(new Date(this.patientRegister.query.dateRange[0])).format("yyyy-MM-DD")
body.endDate = moment(new Date(this.patientRegister.query.dateRange[1])).format("yyyy-MM-DD")
}
if (this.patientRegister.query.idCardNo) body = { idNo: this.patientRegister.query.idCardNo }
if (this.patientRegister.query.patientNo) body = { patientNo: this.patientRegister.query.patientNo }
if (this.patientRegister.query.patientRegisterNo) body = { patientRegisterNo: this.patientRegister.query.patientRegisterNo }
console.log('/api/app/patientregister/getlistinfilter', body)
postapi('/api/app/patientregister/getlistinfilter', body)
.then((res) => {
this.dataList = res.data;
});
},
},
//
watch: {
//
"patientRegister.query.times"(newVal, oldVal) {
if (newVal != oldVal) {
//alert('')
this.query();
}
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
.query {
margin-left: 10px;
margin-bottom: 5px;
}
.listBtn {
margin-top: 10px;
}
</style>

13
src/components/patientRegister/patientRegisterQuery.vue

@ -1,6 +1,6 @@
<template> <template>
<div style="display: flex"> <div style="display: flex">
<div style="display: flex; flex-wrap: wrap; width: 90%">
<div style="display: flex; flex-wrap: wrap; width: 95%">
<div class="block query"> <div class="block query">
<span class="demonstration">登记日期</span> <span class="demonstration">登记日期</span>
<el-date-picker <el-date-picker
@ -82,8 +82,8 @@
expandTrigger: 'hover', expandTrigger: 'hover',
...customerOrg.treeprops, ...customerOrg.treeprops,
}" }"
:show-all-levels="false"
disabled size="small"
:show-all-levels="false" clearable
:disabled="orgEnable=='Y' ? false:true" size="small"
> >
</el-cascader> </el-cascader>
<el-checkbox v-model="patientRegister.query.customerOrgFlag">单位作为查询条件</el-checkbox> <el-checkbox v-model="patientRegister.query.customerOrgFlag">单位作为查询条件</el-checkbox>
@ -106,7 +106,7 @@
</div> </div>
</div> </div>
<!-- 按钮区域 --> <!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5px">
<div style="margin-left: 10px; margin-top: 5px;width:100px;">
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button type="primary" @click="btnQuery">查询</el-button> <el-button type="primary" @click="btnQuery">查询</el-button>
</div> </div>
@ -122,6 +122,7 @@ import { getapi, postapi, putapi, deletapi } from "@/api/api";
export default { export default {
components: {}, components: {},
props:['orgEnable'],
data() { data() {
return { return {
dialogVisible: false, dialogVisible: false,
@ -163,7 +164,9 @@ export default {
created() {}, created() {},
// //
mounted() {},
mounted() {
},
computed: { computed: {
...mapState(["dict", "patientRegister", "customerOrg"]), ...mapState(["dict", "patientRegister", "customerOrg"]),

273
src/views/customerOrg/patientRegisterRefuse.vue

@ -1,128 +1,191 @@
<template> <template>
<div class="box"> <div class="box">
<div style="width: 100%"> <div style="width: 100%">
<el-card style="width: 100%">
<el-row>
<el-form :model="form" label-width="80px">
<el-col :span="8">
<el-form-item label="单位">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="条码号">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="档案号">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="5" style="margin-left: 30px">
<el-button type="primary">查询</el-button>
</el-col>
</el-form>
</el-row>
<!-- table区域 -->
<div class="maintable">
<div style="width: 45%">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="单位" width="180">
</el-table-column>
<el-table-column prop="name" label="部门" width="180">
</el-table-column>
<el-table-column prop="address" label="姓名"> </el-table-column>
<el-table-column prop="address" label="年龄"> </el-table-column>
<el-table-column prop="address" label="条码号"> </el-table-column>
<el-table-column prop="address" label="档案号"> </el-table-column>
<el-table-column prop="address" label="电话"> </el-table-column>
</el-table>
</div>
<el-card>
<div style="display: flex">
<div style="margin-left: 10px; width: 100%">
<!-- 查询条件 -->
<PatientRegisterQuery orgEnable="Y"/>
<!-- 人员列表信息 -->
<PatientRegisterRefuseList />
<div style="width: 50%">
<el-row>
<el-form :model="form" label-width="80px">
<el-col :span="8">
<el-form-item label="条码号">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="档案号">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="detailstable">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="综合项目" width="180">
</el-table-column>
<el-table-column prop="name" label="弃检" width="180">
</el-table-column>
<el-table-column prop="address" label="操作员">
</el-table-column>
<el-table-column prop="address" label="操作日期">
</el-table-column>
</el-table>
</div>
</div> </div>
</div> </div>
</el-card> </el-card>
</div> </div>
<!-- 按钮区域 -->
<div class="buttonarea">
<div><el-button type="primary">弃检</el-button></div>
<div>
<el-button type="danger" style="margin-top: 10px">取消弃检</el-button>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate } from "../../utlis/proFunc";
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue";
import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue";
export default { export default {
components: {
PatientRegisterQuery,
PatientRegisterRefuseList,
},
data() { data() {
return { return {
form: {
name: "1",
},
tableData: [],
tabChoosed: "1",
}; };
}, },
mounted() {},
methods: {},
};
</script>
<style scoped>
.buttonarea {
margin-top: 20%;
created() {},
//
mounted() {
this.dictInit();
},
computed: {
...mapState(["dict", "patientRegister", "customerOrg"]),
},
methods: {
...mapActions(["getCustomerOrgGroup"]),
//
dictInit() {
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {
this.dict.sex = res.data;
} }
.detailstable {
margin-top: 20px;
margin-left: 20px;
});
//
getapi("/api/app/for-sex").then((res) => {
if (res.code == 1) {
this.dict.forSex = res.data;
} }
.maintable {
display: flex;
margin-top: 20px;
});
//
getapi("/api/app/customer-org/by-code-all").then((res) => {
this.patientRegister.customerOrgTreeAll = res.data;
tcdate(this.patientRegister.customerOrgTreeAll)
});
//
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
if (res.code == 1) {
this.dict.organization = res.data;
}
}
);
//
getapi("/api/app/customer-org/in-filter").then((res) => {
if (res.code == 1) {
this.dict.customerOrg = res.data.items;
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalType = res.data.items;
}
});
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.personnelType = res.data.items;
} }
});
//
getapi("/api/app/marital-statuses").then((res) => {
if (res.code == 1) {
this.dict.maritalStatus = res.data.items;
}
});
//
getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
if (res.code == 1) {
this.dict.sexHormoneTerm = res.data.items;
}
});
//
getapi("/api/app/nation/in-filter").then((res) => {
if (res.code == 1) {
this.dict.nation = res.data.items;
}
});
//
getapi("/api/app/birth-place/in-filter").then((res) => {
if (res.code == 1) {
this.dict.birthPlace = res.data.items;
}
});
//
getapi("/api/app/medical-package/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalPackage = res.data.items;
}
});
//
getapi("/api/app/customer-org-group").then((res) => {
if (res.code == 1) {
this.dict.customerOrgGroupAll = res.data.items;
}
});
//
getapi("/api/app/pay-mode").then((res) => {
if (res.code == 1) {
this.dict.payMode = res.data;
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
getapi("/api/app/asbitem/in-filter?Filter").then((res) => {
if (res.code == 1) {
this.dict.asbItemAll = res.data.items;
}
});
console.log("dict", this.dict);
},
},
//()
watch: {
//1
"patientRegister.query.CustomerOrgParentId"(newVal, oldVal) {
console.log(
"watch patientRegister.query.CustomerOrgParentId newVal:",
newVal,
" oldVal:",
oldVal
);
if (newVal != oldVal && newVal !== this.dict.personOrgId) {
this.getCustomerOrgGroup(newVal);
}
},
},
};
</script>
<style scoped>
.box { .box {
width: 95%;
display: flex; display: flex;
} }
</style> </style>
Loading…
Cancel
Save