11 changed files with 508 additions and 263 deletions
-
44src/components/doctorCheck/ButtonList.vue
-
69src/components/doctorCheck/CheckItemList.vue
-
88src/components/doctorCheck/CheckSumSug.vue
-
146src/components/doctorCheck/PatientRegisterBase.vue
-
66src/components/doctorCheck/RegisterCheckList.vue
-
42src/components/patientRegister/PatientRegisterEdit.vue
-
12src/router/index.js
-
26src/store/index.js
-
14src/views/Home.vue
-
69src/views/doctorCheck/doctorCheck.vue
-
195src/views/doctorCheck/sumDoctorCheck.vue
@ -0,0 +1,44 @@ |
|||
<template> |
|||
<div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">人员列表</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">保存结果</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">修改结果</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">删除结果</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">历次结果</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">体检报告</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">生成小结</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">总检</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">审核</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">取消审核</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary">排队</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
</script> |
|||
<style scoped> |
|||
.listBtn { |
|||
margin-top: 10px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,69 @@ |
|||
<template> |
|||
<div> |
|||
<el-table :data="doctorCheck.checkItemList" style="width: 100%" height="350" border |
|||
@row-click="rowClick"> |
|||
<el-table-column prop="itemName" label="项目" width="180" /> |
|||
<el-table-column prop="itemName" label="结果" width="500" /> |
|||
<el-table-column prop="itemName" label="单位" width="80" /> |
|||
<el-table-column prop="itemName" label="参考范围" width="120" /> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { mapState } from 'vuex'; |
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
|
|||
created() {}, |
|||
|
|||
//挂载完成 |
|||
mounted() {}, |
|||
|
|||
computed:{ |
|||
...mapState(['dict','doctorCheck']), |
|||
}, |
|||
|
|||
methods: { |
|||
tableRowClassName({row, rowIndex}) { |
|||
if (row.completeFlag === '0') { |
|||
return 'warning-row'; //未检 |
|||
} else if (row.completeFlag === '2') { |
|||
return 'refuse-row'; //弃检 |
|||
} |
|||
return ''; |
|||
}, |
|||
|
|||
//选择组合项目 |
|||
rowClick(row){ |
|||
//registerCheckId |
|||
getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`) |
|||
.then((res) => { |
|||
console.log("getCustomerOrgGroup", res.data); |
|||
if (res.code == 1) { |
|||
this.doctorCheck.checkItemList = res.data; |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({type: "error",message: `操作失败,原因:${err}`}); |
|||
}); |
|||
|
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.el-table .warning-row { |
|||
background: rgb(240, 125, 125); |
|||
} |
|||
|
|||
.el-table .refuse-row { |
|||
background: rgb(192, 192, 192); |
|||
} |
|||
|
|||
</style> |
|||
|
|||
@ -0,0 +1,88 @@ |
|||
<template> |
|||
<div style="display: flex;"> |
|||
<div style="width:50%;"> |
|||
<el-table :data="doctorCheck.checkItemList" width="100%" height="350" border |
|||
@row-click="rowClick"> |
|||
<el-table-column prop="itemName" label="小结" width="380" /> |
|||
<el-table-column label="排序" width="50"> |
|||
<template> |
|||
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true" > |
|||
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i> |
|||
</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
<div style="width:50%;"> |
|||
<el-table :data="doctorCheck.checkItemList" width="100%" height="350" border |
|||
@row-click="rowClick"> |
|||
<el-table-column prop="itemName" label="建议" width="380" /> |
|||
<el-table-column label="排序" width="50"> |
|||
<template> |
|||
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true" > |
|||
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i> |
|||
</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { mapState } from 'vuex'; |
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
|
|||
created() {}, |
|||
|
|||
//挂载完成 |
|||
mounted() {}, |
|||
|
|||
computed:{ |
|||
...mapState(['dict','doctorCheck']), |
|||
}, |
|||
|
|||
methods: { |
|||
tableRowClassName({row, rowIndex}) { |
|||
if (row.completeFlag === '0') { |
|||
return 'warning-row'; //未检 |
|||
} else if (row.completeFlag === '2') { |
|||
return 'refuse-row'; //弃检 |
|||
} |
|||
return ''; |
|||
}, |
|||
|
|||
//选择组合项目 |
|||
rowClick(row){ |
|||
//registerCheckId |
|||
getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`) |
|||
.then((res) => { |
|||
console.log("getCustomerOrgGroup", res.data); |
|||
if (res.code == 1) { |
|||
this.doctorCheck.checkItemList = res.data; |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({type: "error",message: `操作失败,原因:${err}`}); |
|||
}); |
|||
|
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.el-table .warning-row { |
|||
background: rgb(240, 125, 125); |
|||
} |
|||
|
|||
.el-table .refuse-row { |
|||
background: rgb(192, 192, 192); |
|||
} |
|||
|
|||
</style> |
|||
|
|||
@ -0,0 +1,146 @@ |
|||
<template> |
|||
<div style="display: flex"> |
|||
<div style="display: flex; flex-wrap: wrap; width: 100%"> |
|||
<div class="query"> |
|||
<span>条码号</span> |
|||
<el-input placeholder="条码号" v-model="doctorCheck.prBase.patientRegisterNo" size="small" style="width: 140px" |
|||
clearable @blur="onQueryByPatientRegisterNo(doctorCheck.prBase.patientRegisterNo)"/> |
|||
</div> |
|||
<div class="query"> |
|||
<span>档案号</span> |
|||
<el-input placeholder="档案号" v-model="doctorCheck.prBase.patientNo" size="small" style="width: 130px" |
|||
clearable @blur="onQueryByPatientNo(doctorCheck.prBase.patientNo)"/> |
|||
</div> |
|||
<div class="query"> |
|||
<span>姓名</span> |
|||
<el-input placeholder="姓名" v-model="doctorCheck.prBase.patientName" size="small" style="width: 100px" |
|||
clearable @blur="onQuery()"/> |
|||
</div> |
|||
<div class="query"> |
|||
<span>性别</span> |
|||
<el-select v-model="doctorCheck.prBase.sex" style="width: 80px" size="small" disabled> |
|||
<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 v-model="doctorCheck.prBase.medicalTimes" size="small" style="width: 40px" disabled/> |
|||
</div> |
|||
<div class="query"> |
|||
<span>婚姻</span> |
|||
<el-select v-model="doctorCheck.prBase.maritalStatusId" style="width: 80px" size="small" disabled> |
|||
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName" :value="item.id" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<span>体检日期</span> |
|||
<el-input :value="doctorCheck.prBase.creationTime ? lmoment(doctorCheck.prBase.creationTime, 'yyyy-MM-DD') :''" style="width: 100px" size="small" disabled></el-input> |
|||
</div> |
|||
<div class="query"> |
|||
<span>单位</span> |
|||
<el-input :value="doctorCheck.prBase.customerOrgParentName" style="width: 120px" size="small" disabled /> |
|||
</div> |
|||
<div class="query"> |
|||
<span>部门</span> |
|||
<el-input :value="doctorCheck.prBase.customerOrgName" style="width: 120px" size="small" disabled /> |
|||
</div> |
|||
<div class="query"> |
|||
<span>体检类别</span> |
|||
<el-select v-model="doctorCheck.prBase.medicalTypeId" disabled style="width: 80px" size="small"> |
|||
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<span>人员类别</span> |
|||
<el-select v-model="doctorCheck.prBase.personnelTypeId" disabled style="width: 80px" size="small"> |
|||
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<span>民族</span> |
|||
<el-select v-model="doctorCheck.prBase.nationId" disabled style="width: 80px" size="small"> |
|||
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" /> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<span>手机</span> |
|||
<el-input :value="doctorCheck.prBase.mobileTelephone" style="width: 120px" size="small" disabled /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import moment from "moment"; |
|||
import { mapState } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
|
|||
export default { |
|||
components: {}, |
|||
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(["dict", "doctorCheck","patientRegister", "customerOrg"]), |
|||
lmoment(date, forMat) { |
|||
return moment(new Date(date)).format(forMat); |
|||
}, |
|||
}, |
|||
methods: { |
|||
//查询 |
|||
btnQuery() { |
|||
this.doctorCheck.prBase.times++; |
|||
console.log("this.doctorCheck.prBase", this.doctorCheck.prBase); |
|||
}, |
|||
|
|||
//读身份证 |
|||
readIdCard() { |
|||
alert("读身份证"); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.query { |
|||
margin-left: 10px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,66 @@ |
|||
<template> |
|||
<div> |
|||
<el-table :data="doctorCheck.RegisterCheckList" style="width: 100%" height="700" border |
|||
:row-class-name="tableRowClassName" @row-click="rowClick"> |
|||
<el-table-column prop="asbitemName" label="组合项目" width="180" /> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { mapState } from 'vuex'; |
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
|
|||
created() {}, |
|||
|
|||
//挂载完成 |
|||
mounted() {}, |
|||
|
|||
computed:{ |
|||
...mapState(['dict','doctorCheck']), |
|||
}, |
|||
|
|||
methods: { |
|||
tableRowClassName({row, rowIndex}) { |
|||
if (row.completeFlag === '0') { |
|||
return 'warning-row'; //未检 |
|||
} else if (row.completeFlag === '2') { |
|||
return 'refuse-row'; //弃检 |
|||
} |
|||
return ''; |
|||
}, |
|||
|
|||
//选择组合项目 |
|||
rowClick(row){ |
|||
//registerCheckId |
|||
getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`) |
|||
.then((res) => { |
|||
console.log("getCustomerOrgGroup", res.data); |
|||
if (res.code == 1) { |
|||
this.doctorCheck.checkItemList = res.data; |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({type: "error",message: `操作失败,原因:${err}`}); |
|||
}); |
|||
|
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.el-table .warning-row { |
|||
background: rgb(240, 125, 125); |
|||
} |
|||
|
|||
.el-table .refuse-row { |
|||
background: rgb(192, 192, 192); |
|||
} |
|||
|
|||
</style> |
|||
|
|||
@ -1,194 +1,3 @@ |
|||
<template> |
|||
<div class="box"> |
|||
<div style="width: 100%"> |
|||
<el-card> |
|||
<div style="display: flex"> |
|||
<!-- 单位树组件 --> |
|||
<div style="width: 15%; border: 1px solid"> |
|||
<CustomerOrgTreeAll /> |
|||
</div> |
|||
<div style="margin-left: 10px; width: 85%"> |
|||
<!-- 查询条件 --> |
|||
<PatientRegisterQuery /> |
|||
|
|||
<!-- 人员列表信息 --> |
|||
<PatientRegisterList /> |
|||
|
|||
<!-- 给合项目 基本信息 --> |
|||
<el-tabs v-model="tabChoosed"> |
|||
<!-- 给合项目 --> |
|||
<el-tab-pane label="组合项目" name="1"> |
|||
<PatientRegisterAsbItem /> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
</div> |
|||
</div> |
|||
</el-card> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { tcdate } from "../../utlis/proFunc"; |
|||
|
|||
import CustomerOrgTreeAll from "../../components/patientRegister/customerOrgTreeAll.vue"; |
|||
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue"; |
|||
import PatientRegisterList from "../../components/patientRegister/PatientRegisterList.vue"; |
|||
import PatientRegisterAsbItem from "../../components/patientRegister/patientRegisterAsbItem.vue"; |
|||
|
|||
export default { |
|||
components: { |
|||
CustomerOrgTreeAll, |
|||
PatientRegisterQuery, |
|||
PatientRegisterList, |
|||
PatientRegisterAsbItem, |
|||
}, |
|||
data() { |
|||
return { |
|||
tabChoosed: "1", |
|||
}; |
|||
}, |
|||
|
|||
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; |
|||
} |
|||
}); |
|||
|
|||
//体检中心 |
|||
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.CustomerOrgParentld"(newVal, oldVal) { |
|||
console.log( |
|||
"watch patientRegister.query.CustomerOrgParentld newVal:", |
|||
newVal, |
|||
" oldVal:", |
|||
oldVal |
|||
); |
|||
if (newVal != oldVal && newVal !== this.dict.personOrgId) { |
|||
this.getCustomerOrgGroup(newVal); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.box { |
|||
display: flex; |
|||
} |
|||
</style> |
|||
|
|||
<div>开发中……</div> |
|||
</template> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue