pengjun 2 years ago
parent
commit
5c6f4b7b59
  1. 60
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 56
      src/components/report/NationHealthReport.vue
  3. 27
      src/views/customerOrg/patientRegisterImport.vue

60
src/components/patientRegister/PatientRegisterEdit.vue

@ -10,16 +10,20 @@
</div> </div>
<div style="display: flex;margin-left: 5px;"> <div style="display: flex;margin-left: 5px;">
<div v-show="checkPagePriv(pagePriv.privs, '职业病')"> <div v-show="checkPagePriv(pagePriv.privs, '职业病')">
<el-button @click="btnOcc" class="commonbutton" style="width:80px;">职业病</el-button>
<el-button @click="btnOcc" class="commonbutton" style="width:60px;">职业病</el-button>
</div> </div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '读身份证')"> <div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '读身份证')">
<el-button @click="peopleIcCard" class="commonbutton">读身份证</el-button>
<el-button @click="peopleIcCard" class="commonbutton" style="width:70px;">读身份证</el-button>
</div> </div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '拍照')"> <div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '拍照')">
<el-button type="primary" class="commonbutton" @click="photoGrah" icon="el-icon-camera">拍照</el-button>
<el-button type="primary" class="commonbutton" @click="photoGrah" style="width:60px;">拍照</el-button>
</div> </div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '网上预约')">
<el-button type="primary" class="commonbutton" @click="btnWebBooking">网上预约</el-button>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '个人预约')">
<el-button type="primary" class="commonbutton" @click="btnWebBooking" style="width:70px;">个人预约</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '同步团检预约')" >
<el-button type="primary" class="commonbutton" @click="btnDownOrg"
:disabled="(form.customerOrgId == dict.personOrgId) || !form.id">同步团检预约</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -587,7 +591,7 @@
:append-to-body="true"> :append-to-body="true">
<div style="height: 320px;"> <div style="height: 320px;">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" style="width:400px;" <el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" style="width:400px;"
filterable popper-class="example" :show-all-levels="false"
filterable popper-class="example" :show-all-levels="false"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" size="small"> :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" size="small">
</el-cascader> </el-cascader>
</div> </div>
@ -856,6 +860,8 @@ export default {
poison: [], poison: [],
poisonList: [], poisonList: [],
thirdInterfaceId:'', //
}; };
}, },
@ -1208,7 +1214,7 @@ export default {
// } // }
} }
this.preCustomerOrgId = customerOrgId this.preCustomerOrgId = customerOrgId
if (customerOrgParentId) { if (customerOrgParentId) {
if (customerOrgParentId == this.dict.personOrgId) { if (customerOrgParentId == this.dict.personOrgId) {
@ -1891,6 +1897,38 @@ export default {
}); });
}, },
//
btnDownOrg() {
postapi("/api/app/ThirdInterface/GetListByThirdInterfaceTypeAsync", { thirdInterfaceType: "07" })
.then(res => {
if (res.code > -1 && res.data && Array.isArray(res.data) && res.data.length > 0) {
this.thirdInterfaceId = res.data[0].id
return postapi('/api/app/AppointPatientRegister/GetByPatientRegisterId', { thirdInterfaceId:this.thirdInterfaceId, appointPatientRegisterId:'1',patientRegisterId: this.form.id })
}
})
.then(res => {
if (res && res.code > -1) {
return postapi('/api/app/AppointPatientRegister/GetAppointRegisterAsbitemListById', {
thirdInterFaceId:this.thirdInterfaceId,
appointPatientRegisterId: res.data.appointPatientRegisterId
})
}
})
.then(res => {
if (res && res.code > -1) {
res.data.forEach(e => {
e.discount = e.standardPrice == 0 ? 100 : Math.floor(e.chargePrice * 10000 / e.standardPrice) / 100
if (!e.isBelongGroupPackage) {
e.isBelongGroupPackage = e.isInMedicalPackage
}
// e.standTotal = e.amount * e.standardPrice
e.total = e.amount * e.chargePrice
});
this.dataTransOpts.tableM.register_check_asbitem = deepCopy(res.data)
this.$message.success({ showClose: true, message: '操作成功!' })
}
})
},
// //
// openCamera() { // openCamera() {
// if (!this.form.id) { // if (!this.form.id) {
@ -2429,7 +2467,7 @@ export default {
let appoint_patient_register = this.dataTransOpts.tableS.appoint_patient_register let appoint_patient_register = this.dataTransOpts.tableS.appoint_patient_register
if (!appoint_patient_register.appointPatientRegisterId) return if (!appoint_patient_register.appointPatientRegisterId) return
// //
this.dataTransOpts.tableS.patient_register.id = '' this.dataTransOpts.tableS.patient_register.id = ''
@ -2460,8 +2498,10 @@ export default {
// "weight": 0 // "weight": 0
delete appoint_patient_register.medicalCenterId delete appoint_patient_register.medicalCenterId
Object.assign(this.form, appoint_patient_register, Object.assign(this.form, appoint_patient_register,
{ patientName: appoint_patient_register.personName,
completeFlag:'1'
{
patientName: appoint_patient_register.personName,
completeFlag: '1',
customerOrgId: ["00000000-0000-0000-0000-000000000001"], //
} }
) )
// //

56
src/components/report/NationHealthReport.vue

@ -1,8 +1,8 @@
<template> <template>
<div> <div>
<div style="display: flex;padding: 10px;background-color: #fff;border-radius: 8px;margin-bottom: 10px;">
<div style="display: flex;justify-content: space-between; padding: 10px;background-color: #fff;border-radius: 8px;margin-bottom: 10px;">
<div style="display:block;"> <div style="display:block;">
<div style="display: flex;flex-wrap: wrap;height: 80px;align-items: center;">
<div style="display: flex;flex-wrap: wrap;height: 32px;align-items: center;">
<div class="query"> <div class="query">
<el-select v-model="query.dateType" placeholder="请选择" style="width: 80px" size="small"> <el-select v-model="query.dateType" placeholder="请选择" style="width: 80px" size="small">
<el-option label="登记日期" :value="'1'" /> <el-option label="登记日期" :value="'1'" />
@ -10,17 +10,16 @@
<el-option label="总检日期" :value="'3'" /> <el-option label="总检日期" :value="'3'" />
</el-select> </el-select>
<!-- dateType 1 登记2 体检3 总检日期--> <!-- dateType 1 登记2 体检3 总检日期-->
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small"
style="width:90px;" value-format="yyyy-MM-dd" :picker-options="pickerOptions" />
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" style="width:90px;"
value-format="yyyy-MM-dd" :picker-options="pickerOptions" />
<span class="spanClass"></span> <span class="spanClass"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small"
style="width:90px;" value-format="yyyy-MM-dd" :picker-options="pickerOptions" />
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;"
value-format="yyyy-MM-dd" :picker-options="pickerOptions" />
</div> </div>
<div class="query"> <div class="query">
<span class="spanClass">体检单位</span> <span class="spanClass">体检单位</span>
<el-select v-model="query.customerOrgIds" placeholder="请选择体检单位" :filter-method="filterMethod" <el-select v-model="query.customerOrgIds" placeholder="请选择体检单位" :filter-method="filterMethod"
default-first-option clearable filterable style="margin-left: 10px" @change="changeCustomerOrg"
size="small" multiple collapse-tags>
default-first-option clearable filterable style="margin-left: 10px" size="small" multiple collapse-tags>
<el-option v-for="item in customerOrg" :key="item.id" :label="item.displayName" :value="item.id"> <el-option v-for="item in customerOrg" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }} {{ item.displayName }}
</el-option> </el-option>
@ -28,51 +27,53 @@
</div> </div>
<div class="query"> <div class="query">
<span class="spanClass">体检类别</span> <span class="spanClass">体检类别</span>
<el-select v-model="query.medicalTypeIds" placeholder="请选择" clearable filterable
style="width: 200px" size="small" multiple collapse-tags>
<el-select v-model="query.medicalTypeIds" placeholder="请选择" clearable filterable style="width: 200px"
size="small" multiple collapse-tags>
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" /> <el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select> </el-select>
</div> </div>
<div class="query"> <div class="query">
<span class="spanClass">包含未填体检类别人员</span> <span class="spanClass">包含未填体检类别人员</span>
<el-checkbox v-model="query.isMedicalTypeId" true-label="Y" false-label="N"/>
<el-checkbox v-model="query.isMedicalTypeId" true-label="Y" false-label="N" />
</div> </div>
</div> </div>
</div> </div>
<div> <div>
<el-button type="primary" class="commonbutton" @click="btnQuery">查询</el-button>
<el-button type="primary" class="commonbutton" @click="btnQuery" size="small">查询</el-button>
</div> </div>
</div> </div>
<div> <div>
<table>
<table style="text-align: center;border-collapse:collapse;" border="1">
<thead> <thead>
<th>序号</th>
<th>项目</th>
<th>数据</th>
<tr height="30">
<th width="60">序号</th>
<th width="120">项目</th>
<th width="80">数据</th>
</tr>
</thead> </thead>
<tbody> <tbody>
<tr>
<tr height="30">
<td>1</td> <td>1</td>
<td>(人次)</td> <td>(人次)</td>
<td>{{ nationHealthReportData.maleCount }}</td> <td>{{ nationHealthReportData.maleCount }}</td>
</tr> </tr>
<tr>
<td>2</td>
<tr height="30">
<td>2</td>
<td>(人次)</td> <td>(人次)</td>
<td>{{ nationHealthReportData.femaleCount }}</td> <td>{{ nationHealthReportData.femaleCount }}</td>
</tr> </tr>
<tr>
<td>3</td>
<tr height="30">
<td>3</td>
<td>总人次</td> <td>总人次</td>
<td>{{ nationHealthReportData.sumCount }}</td> <td>{{ nationHealthReportData.sumCount }}</td>
</tr> </tr>
<tr>
<td>4</td>
<tr height="30">
<td>4</td>
<td>理论金额(万元)</td> <td>理论金额(万元)</td>
<td>{{ nationHealthReportData.standardMoney }}</td> <td>{{ nationHealthReportData.standardMoney }}</td>
</tr> </tr>
<tr>
<td>5</td>
<tr height="30">
<td>5</td>
<td>应收金额(万元)</td> <td>应收金额(万元)</td>
<td>{{ nationHealthReportData.chargeMoney }}</td> <td>{{ nationHealthReportData.chargeMoney }}</td>
</tr> </tr>
@ -86,6 +87,7 @@ import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { deepCopy } from "../../utlis/proFunc" import { deepCopy } from "../../utlis/proFunc"
import CusOrgOCX from "./CusOrgOCX.vue" import CusOrgOCX from "./CusOrgOCX.vue"
import moment from "moment";
export default { export default {
components: { components: {
@ -163,6 +165,10 @@ export default {
methods: { methods: {
// //
dictInit() { dictInit() {
let today = moment(new Date()).format("YYYY-MM-DD")
this.query.startDate = today
this.query.endDate = today
// //
getapi("/api/app/customer-org/parent-all").then((res) => { getapi("/api/app/customer-org/parent-all").then((res) => {
if (res.code != -1) { if (res.code != -1) {

27
src/views/customerOrg/patientRegisterImport.vue

@ -174,8 +174,8 @@
<div style="display: flex;margin:20px;"> <div style="display: flex;margin:20px;">
<div> <div>
<span>体检单位</span> <span>体检单位</span>
<el-cascader v-model="customerOrgIds" :options="customerOrgTreeFilter" popper-class="example" style="width:260px;"
@change="changeCustomerOrg" filterable :filter-method="filterMethod"
<el-cascader v-model="customerOrgIds" :options="customerOrgTree" popper-class="example" style="width:260px;"
@change="changeCustomerOrg" filterable
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
:show-all-levels="true" size="small"> :show-all-levels="true" size="small">
</el-cascader> </el-cascader>
@ -265,8 +265,8 @@
</div> </div>
<div style="display: flex;margin:20px;"> <div style="display: flex;margin:20px;">
<span class="spanLeftClass">体检单位</span> <span class="spanLeftClass">体检单位</span>
<el-cascader v-model="query.customerOrgIds" :options="customerOrgTreeFilter" style="width:260px;"
@change="changeQueryCustomerOrg" filterable :filter-method="filterMethod" popper-class="example"
<el-cascader v-model="query.customerOrgIds" :options="customerOrgTree" style="width:260px;"
@change="changeQueryCustomerOrg" filterable popper-class="example"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :show-all-levels="true" :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :show-all-levels="true"
size="small"> size="small">
</el-cascader> </el-cascader>
@ -452,8 +452,8 @@
<el-radio v-model="newCustomerOrgFlag" :label="true">新单位或部门</el-radio> <el-radio v-model="newCustomerOrgFlag" :label="true">新单位或部门</el-radio>
</div> </div>
<div style="margin-left:5px;" v-if="newCustomerOrgFlag"> <div style="margin-left:5px;" v-if="newCustomerOrgFlag">
<el-cascader v-model="customerOrgIds" :options="customerOrgTreeFilter" popper-class="example" style="width:260px;"
@change="changeCustomerOrg" filterable :filter-method="filterMethod"
<el-cascader v-model="customerOrgIds" :options="customerOrgTree" popper-class="example" style="width:260px;"
@change="changeCustomerOrg" filterable
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
:show-all-levels="true" size="small"> :show-all-levels="true" size="small">
</el-cascader> </el-cascader>
@ -521,7 +521,6 @@ export default {
privs: [] // privs: [] //
}, },
customerOrgTree: [], customerOrgTree: [],
customerOrgTreeFilter: [],
customerOrgIds: [], // customerOrgIds: [], //
customerOrgRegisterList: [], // customerOrgRegisterList: [], //
customerOrgRegister: {}, // customerOrgRegister: {}, //
@ -728,23 +727,11 @@ export default {
let lfind = arrayExistObj(this.customerOrgTree, 'id', this.dict.personOrgId) let lfind = arrayExistObj(this.customerOrgTree, 'id', this.dict.personOrgId)
if (lfind > -1) this.customerOrgTree.splice(lfind, 1) if (lfind > -1) this.customerOrgTree.splice(lfind, 1)
tcdate(this.customerOrgTree) tcdate(this.customerOrgTree)
this.customerOrgTreeFilter = deepCopy(this.customerOrgTree)
} }
}); });
}, },
//
filterMethod(v) {
if (v) {
let lv = v.toUpperCase()
this.customerOrgTreeFilter = this.customerOrgTree.filter(e => {
return e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1
})
} else {
this.customerOrgTreeFilter = deepCopy(this.customerOrgTree)
}
},
// //
changeCustomerOrg(v) { changeCustomerOrg(v) {
this.chooseCustomerOrg(v) this.chooseCustomerOrg(v)

Loading…
Cancel
Save