pengjun 3 weeks ago
parent
commit
b9b5fdfc14
  1. 13
      src/components/common/LocalConfig.vue
  2. 156
      src/components/patientRegister/PatientRegisterEdit.vue
  3. 14
      src/components/patientRegister/PatientRegisterList.vue
  4. 298
      src/components/patientRegister/ThirdChargeRequest.vue
  5. 2
      src/components/patientRegister/ThirdLisRequest.vue
  6. 298
      src/components/patientRegister/ThirdPacsRequest.vue
  7. 4
      src/store/index.js
  8. 54
      src/views/Home.vue

13
src/components/common/LocalConfig.vue

@ -2,7 +2,7 @@
<div>
<div class="contenttitle">
浏览器 /<span class="contenttitleBold">本地设置</span>
</div>
</div>
<el-tabs tab-position="left" :style="`margin-top: 5px;height: ${window.pageHeight - 150}px;`">
<el-tab-pane label="常规设置">
<el-form label-width="140px" size="size">
@ -44,8 +44,10 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="保存即发送收费申请">
<el-checkbox v-model="LocalConfig.patientRegister.immediateToHisCharge" size="small" />
<el-form-item label="保存即发送第三方申请" label-width="160px" >
<el-checkbox v-model="LocalConfig.patientRegister.immediateToHisCharge" size="small">收费申请</el-checkbox>
<el-checkbox v-model="LocalConfig.patientRegister.immediateToLisReq" size="small">检验申请</el-checkbox>
<el-checkbox v-model="LocalConfig.patientRegister.immediateToPacsReq" size="small">检查申请</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
@ -275,7 +277,9 @@ export default {
patientRegister: {
edit: 'standard', //standard/qztl
editHeight: 0, //
immediateToHisCharge: false, //
immediateToHisCharge: false, // --
immediateToLisReq:false, // --
immediateToPacsReq:false, // --
findPatientByName: true, //
printGuideLabel: ["guide", "pacs", "lis"], //
dispCustomerOrgCode: 'N', // -- customerOrgCode
@ -345,6 +349,7 @@ export default {
btnOk() {
this.LocalConfig.patientRegister.printGuideLabel = deepCopy(this.printGuideLabel)
window.localStorage.setItem("LocalConfig", JSON.stringify(this.LocalConfig))
this.dialogWin.LocalConfig = false
},
//

156
src/components/patientRegister/PatientRegisterEdit.vue

@ -546,11 +546,7 @@
</div>
<div v-show="checkPagePriv(pagePriv.privs, '收费')" class="btn">
<el-button type="success" class="commonbutton" @click="toCharge(form)" :disabled="!form.id">收费</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '收费申请')" class="btn">
<el-button type="success" class="commonbutton" @click="chargeRequest(form)"
:disabled="!form.id">收费申请</el-button>
</div>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '复制分组')" class="btn">
<el-button class="commonbutton" @click="btnCopyGroup"
:disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true : false">复制分组</el-button>
@ -559,6 +555,21 @@
<el-button class="commonbutton" @click="btnCopyMedicalPackage"
:disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true : false">复制套餐</el-button>
</div>
<div class="btn" v-show="dispThirdRequest">
<el-dropdown @command="btnMoreThird">
<el-button type="primary" class="commonbutton">
第三方申请<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="收费申请" v-show="checkPagePriv(pagePriv.privs, '收费申请')"
:disabled="!form.id">收费申请</el-dropdown-item>
<el-dropdown-item command="检验申请" v-show="checkPagePriv(pagePriv.privs, '检验申请')"
:disabled="!form.id" divided>检验申请</el-dropdown-item>
<el-dropdown-item command="检查申请" v-show="checkPagePriv(pagePriv.privs, '检查申请')"
:disabled="!form.id" divided>检查申请</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
@ -699,10 +710,22 @@
</div>
</el-dialog>
<!-- 收费申请 -->
<el-dialog title="收费申请" :visible.sync="dialogWin.AsbChargeRequest" width="800px" :show-close="false"
<!-- 第三方申请 收费申请 -->
<el-dialog title="收费申请" :visible.sync="dialogWin.ThirdChargeRequest" width="800px" :show-close="false"
:close-on-click-modal="false" :append-to-body="true" @close="closeDialogCharge">
<AsbChargeRequest :patientRegister="form" />
<ThirdChargeRequest :patientRegister="form" />
</el-dialog>
<!-- 第三方申请 检验申请 -->
<el-dialog title="检验申请" :visible.sync="dialogWin.ThirdLisRequest" width="800px" :show-close="false"
:close-on-click-modal="false" :append-to-body="true" @close="closeDialogCharge">
<ThirdLisRequest :patientRegister="form" />
</el-dialog>
<!-- 第三方申请 检查申请 -->
<el-dialog title="检查申请" :visible.sync="dialogWin.ThirdPacsRequest" width="800px" :show-close="false"
:close-on-click-modal="false" :append-to-body="true" @close="closeDialogCharge">
<ThirdPacsRequest :patientRegister="form" />
</el-dialog>
<!-- 分诊排队 -->
@ -858,7 +881,9 @@ import Camera from "./Camera.vue";
import PatientRegisterItem from "./PatientRegisterItem.vue";
import LisRequest from "./LisRequest.vue";
import MergeAsbitem from "./MergeAsbitem.vue";
import AsbChargeRequest from "./AsbChargeRequest.vue";
import ThirdChargeRequest from "./ThirdChargeRequest.vue";
import ThirdLisRequest from "./ThirdLisRequest.vue";
import ThirdPacsRequest from "./ThirdPacsRequest.vue";
import Charge from "../../views/charge/charge.vue";
import PatientRegisterEditQuery from "../../components/patientRegister/PatientRegisterEditQuery.vue";
import OccDisease from "../../components/occDisease/OccDisease.vue"
@ -875,7 +900,9 @@ export default {
MergeAsbitem,
PatientRegisterItem,
Charge,
AsbChargeRequest,
ThirdChargeRequest,
ThirdLisRequest,
ThirdPacsRequest,
PatientRegisterEditQuery,
OccDisease,
PatientLisRequest,
@ -1156,6 +1183,12 @@ export default {
}
return isPersonOrgId
},
//
dispThirdRequest(){
return this.checkPagePriv(this.pagePriv.privs, '收费申请')||this.checkPagePriv(this.pagePriv.privs, '检验申请')||this.checkPagePriv(this.pagePriv.privs, '检查申请')
},
},
methods: {
...mapActions(['getPatientRegisterAbs']),
@ -3063,6 +3096,23 @@ export default {
}
},
//
btnMoreThird(oprType){
switch (oprType) {
case "收费申请":
this.thirdChargeRequest(this.form)
break;
case "检验申请":
this.thirdLisRequest(this.form)
break;
case "检查申请":
this.thirdPacsRequest(this.form)
break;
default:
break;
}
},
//
reLisRequest() {
if (!this.form.id) {
@ -3146,17 +3196,80 @@ export default {
})
},
//
chargeRequest(form) {
if (!form.id) {
this.$message.warning({ showClose: true, message: "请先保存人员信息!" })
return
}
if (form.completeFlag == '0') {
this.$message.warning({ showClose: true, message: "预登记的人员不可执行此操作!" })
return
//
checkPatientCompleteFlag(form){
let message = ''
if(!form?.id){
message = "请先保存人员信息!"
}else if(form?.completeFlag == '0'){
message = "预登记的人员不可执行此操作!"
}
return message
},
// --
thirdLisRequest(form) {
let message = this.checkPatientCompleteFlag(form)
if(message){
this.$message.warning({ showClose: true, message})
return
}
this.dialogWin.ThirdLisRequest = true
// this.getAsb(form.id)
// .then(() => {
// let chargeMoney = Number(0)
// //,021
// this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
// if (e.payTypeFlag == '0') chargeMoney += Number(e.total)
// });
// if (chargeMoney == 0) {
// this.$message.warning({ showClose: true, message: '退' })
// } else {
// //
// this.dataTransOpts.refresh.charge.S++
// this.dialogWin.ThirdChargeRequest = true
// }
// })
// .catch(err => {
// this.$message.error(err.message)
// })
},
// --
thirdPacsRequest(form) {
let message = this.checkPatientCompleteFlag(form)
if(message){
this.$message.warning({ showClose: true, message})
return
}
this.dialogWin.ThirdPacsRequest = true
// this.getAsb(form.id)
// .then(() => {
// let chargeMoney = Number(0)
// //,021
// this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
// if (e.payTypeFlag == '0') chargeMoney += Number(e.total)
// });
// if (chargeMoney == 0) {
// this.$message.warning({ showClose: true, message: '退' })
// } else {
// //
// this.dataTransOpts.refresh.charge.S++
// this.dialogWin.ThirdChargeRequest = true
// }
// })
// .catch(err => {
// this.$message.error(err.message)
// })
},
// --
thirdChargeRequest(form) {
let message = this.checkPatientCompleteFlag(form)
if(message){
this.$message.warning({ showClose: true, message})
return
}
this.getAsb(form.id)
.then(() => {
@ -3171,7 +3284,7 @@ export default {
} else {
//
this.dataTransOpts.refresh.charge.S++
this.dialogWin.AsbChargeRequest = true
this.dialogWin.ThirdChargeRequest = true
}
})
.catch(err => {
@ -3208,6 +3321,7 @@ export default {
},
//
//
closeDialogCharge() {
// this.prAsbOpraOpts.prAsbQuery++
this.dataTransOpts.refresh.patient_register.S++
@ -3921,7 +4035,7 @@ export default {
handler(newVal, oldVal) {
// console.log(' ', newVal, oldVal)
if (newVal != oldVal) {
if(this?.refQueryCondition?.customerOrgId) this.preCustomerOrgId = this.refQueryCondition.customerOrgId
if (this?.refQueryCondition?.customerOrgId) this.preCustomerOrgId = this.refQueryCondition.customerOrgId
}
}
},

14
src/components/patientRegister/PatientRegisterList.vue

@ -272,12 +272,6 @@
<div v-show="checkPagePriv(pagePriv.privs, '体检表回收')" class="listBtn">
<el-button type="" class="commonbutton" @click="btnScanRecover">体检表回收</el-button>
</div>
<!-- elProgress.display dialogWin.LocalConfig
<div class="listBtn">
<el-button type="" class="commonbutton" @click="dialogWin.LocalConfig = true">本地设置</el-button>
</div>
-->
<!--
<div class="listBtn">
<el-button type="" class="btnClass commonbutton" @click="rowSelected(tableData)">选中</el-button>
@ -600,12 +594,6 @@
<ElProgressOCX />
</el-dialog>
<!--通用本地参数设置-->
<el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false"
:append-to-body="true" width="800px" height="600px">
<LocalConfig />
</el-dialog>
<!--云胶片二维码-->
<el-dialog :visible.sync="qrCode.winDisplay" title="云胶片二维码" width="400px" style="text-align: center">
<!--<canvas ref="canvas"></canvas>-->
@ -672,7 +660,6 @@ import PatientRegisterEditMedicalTypeBatch from "./PatientRegisterEditMedicalTyp
import PatientRegisterEditPersonnelTypeBatch from "./PatientRegisterEditPersonnelTypeBatch.vue";
import PatientRegisterEditRemarkBatch from "./PatientRegisterEditRemarkBatch.vue";
import ImportOrgData from "./ImportOrgData.vue";
import LocalConfig from "../../components/common/LocalConfig.vue";
import Queue from "../../components/queue/Queue.vue";
import { UTable, UTableColumn } from "umy-ui";
@ -688,7 +675,6 @@ export default {
PatientRegisterEditPersonnelTypeBatch, //
PatientRegisterEditRemarkBatch, //
ElProgressOCX,
LocalConfig,
ImportOrgData,
Queue,
DownloadExcel: JsonExcel,

298
src/components/patientRegister/ThirdChargeRequest.vue

@ -0,0 +1,298 @@
<template>
<div style="margin-top: -10px;">
<div>
<el-tabs v-model="tabChoosed" style="margin-top: 0px;">
<el-tab-pane label="待收费项目" name="1">
<el-table :data="tableData" border style="width: 100%" row-key="id" height="450" highlight-current-row
size="small" @selection-change="handleSelectionChange" :row-style="{ height: '25px' }">
<el-table-column type="selection" align="center" width="40" />
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
<el-table-column label="标准价格" prop="standardPrice" min-width="70" align="center" />
<el-table-column label="数量" prop="amount" min-width="50" align="center"></el-table-column>
<el-table-column label="实收价格" prop="chargePrice" min-width="70" align="center"></el-table-column>
<el-table-column prop="total" label="金额" min-width="70" align="center" />
<el-table-column prop="standardPrice" label="标准金额" min-width="70" align="center" />
</el-table>
</el-tab-pane>
<el-tab-pane label="已收费项目" name="2">
<el-table :data="hisRequestData" border style="width: 100%" row-key="id" height="160" highlight-current-row
size="small" @row-click="rowClick" :row-style="{ height: '25px' }">
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="申请单号" min-width="100" prop="chargeRequestNo" align="center" />
<el-table-column prop="hisChargeNo" label="his收费单" min-width="80" align="center" />
<el-table-column prop="charges" label="金额" min-width="80" align="center" />
<el-table-column prop="chargeRequestFlag" label="收费状态" width="80" align="center">
<template slot-scope="scope">
<div>{{ setChargeRequestFlag(scope.row.chargeRequestFlag) }}</div>
</template>
</el-table-column>
<el-table-column prop="ch" label="收费人员" min-width="80" align="center" />
<el-table-column prop="creationTime" label="申请时间" min-width="150" align="center" />
<el-table-column label="操作" width="50" align="center">
<template slot-scope="scope">
<el-dropdown>
<span>
<i class="el-icon-s-operation" style="font-size: 24px;color: blue;cursor:pointer;"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="refreshRequest(scope.row)">刷新状态</el-dropdown-item>
<el-dropdown-item @click.native="cancelRequest(scope.row)"
:disabled="setBtnDisabled(scope.row, 'cancel')">撤消申请</el-dropdown-item>
<el-dropdown-item @click.native="chargeBack(scope.row)"
:disabled="setBtnDisabled(scope.row, 'chargeBack')">退费申请</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<div style="padding: 10px 0 5px 0;">申请单包含项目</div>
<el-table :data="hisRequestDataDetails" border style="width: 100%" row-key="id" height="256"
highlight-current-row size="small" :row-style="{ height: '25px' }">
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
<el-table-column label="数量" prop="amount" min-width="50" align="center"></el-table-column>
<el-table-column label="实收价格" prop="chargePrice" min-width="70" align="center"></el-table-column>
<el-table-column prop="total" label="金额" min-width="70" align="center" />
</el-table>
</el-tab-pane>
</el-tabs>
</div>
<!-- 按钮区域 -->
<div style="display: flex; margin-top: 10px; justify-content: space-between;">
<div></div>
<div style="display: flex;">
<div style="margin-left: 10px">
<el-button class="commonbutton" @click="btnRefresh">刷新</el-button>
</div>
<div style="margin-left: 10px" v-show="tabChoosed == '1'">
<el-button class="commonbutton" @click="btnSubmit">收费申请</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" @click="dialogWin.ThirdChargeRequest = false">关闭</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
// import
export default {
props: ["patientRegister"],
data() {
return {
tabChoosed: '1',
tableData: [], //
selectedData: [], //
hisRequestData: [], //
hisRequestDataDetails: [], //
};
},
created() {
},
mounted() {
this.initData(this.patientRegister.id);
},
computed: {
...mapState(["dict", "dataTransOpts", "dialogWin"]),
},
methods: {
initData(patientRegisterId) {
this.tableData = []
this.hisRequestData = []
this.hisRequestDataDetails = []
if (!patientRegisterId) return
//
this.asbList(patientRegisterId)
//
this.requestList(patientRegisterId)
},
//
asbList(patientRegisterId) {
this.tableData = []
postapi('/api/app/registerasbitem/GetCanChargeAsbitemsByPatientRegisterId', { patientRegisterId })
.then(res => {
if (res.code > -1) {
res.data.forEach(e => {
e.total = Number(e.chargePrice * e.amount)
this.tableData.push(e)
});
}
})
},
//
requestList(patientRegisterId) {
this.hisRequestData = []
this.hisRequestDataDetails = []
postapi('/api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId', { patientRegisterId })
.then(res => {
if (res.code > -1) {
this.hisRequestData = res.data
}
})
},
setChargeRequestFlag(chargeRequestFlag) {
let ret = '收费申请'
switch (chargeRequestFlag) {
case '1':
ret = '已收费'
break;
case '2':
ret = '作废申请'
break;
case '3':
ret = '已作废'
break;
case '4':
ret = '退费申请'
break;
case '5':
ret = '已退费'
break;
default:
break;
}
return ret
},
handleSelectionChange(v) {
this.selectedData = v;
},
setBtnDisabled(row, oprType) {
let ret = true
if (oprType == 'chargeBack') {
if (row.chargeRequestFlag == '1') ret = false
} else {
if (row.chargeRequestFlag == '0') ret = false
}
return ret
},
//
rowClick(row) {
this.hisRequestDataDetails = []
postapi('/api/app/ChargeRequest/GetChargeRequestAsbitemsByChargeRequestId', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
res.data.forEach(e => {
e.total = Number(e.chargePrice * e.amount)
this.hisRequestDataDetails.push(e)
});
}
})
},
//
refreshRequest(row) {
console.log('refreshRequest',row)
postapi('/api/app/ChargeRequest/SyncChargeRequestFlagFromInterface', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
this.btnRefresh()
}
})
},
//
cancelRequest(row) {
postapi('/api/app/ChargeRequest/CancelChargeRequest', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
row.chargeRequestFlag = "2"
}
})
},
// 退
chargeBack(row) {
postapi('/api/app/ChargeRequest/RefundChargeRequest', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
row.chargeRequestFlag = "4"
}
})
},
//
btnRefresh() {
if (this.tabChoosed == '1') {
this.asbList(this.patientRegister.id)
} else {
this.requestList(this.patientRegister.id)
}
},
btnSubmit() {
if (this.selectedData.length == 0) {
this.$message.warning({ showClose: true, message: `请勾选要发送收费申请的检查项目!` });
return;
}
let body = {
patientRegisterId: this.patientRegister.id,
registerCheckAsbitems: []
}
this.selectedData.forEach(e => {
body.registerCheckAsbitems.push({ registerCheckAsbitemId: e.registerCheckAsbitemId })
});
postapi("/api/app/ChargeRequest/Create", body)
.then(res => {
if (res.code > -1) {
this.initData(this.patientRegister.id)
}
});
},
},
//
watch: {
//
"dataTransOpts.refresh.charge.S": {
// immediate: true, //
// // deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegister.id)
if (newVal != oldVal) this.initData(this.patientRegister.id)
}
},
"tabChoosed": {
// immediate: true, //
// // deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegister.id)
if (newVal != oldVal) {
if (newVal == '1') {
this.asbList(this.patientRegister.id)
} else {
this.requestList(this.patientRegister.id)
}
}
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
</style>

2
src/components/patientRegister/AsbChargeRequest.vue → src/components/patientRegister/ThirdLisRequest.vue

@ -69,7 +69,7 @@
<el-button class="commonbutton" @click="btnSubmit">收费申请</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" @click="dialogWin.AsbChargeRequest = false">关闭</el-button>
<el-button class="commonbutton" @click="dialogWin.ThirdLisRequest = false">关闭</el-button>
</div>
</div>
</div>

298
src/components/patientRegister/ThirdPacsRequest.vue

@ -0,0 +1,298 @@
<template>
<div style="margin-top: -10px;">
<div>
<el-tabs v-model="tabChoosed" style="margin-top: 0px;">
<el-tab-pane label="待收费项目" name="1">
<el-table :data="tableData" border style="width: 100%" row-key="id" height="450" highlight-current-row
size="small" @selection-change="handleSelectionChange" :row-style="{ height: '25px' }">
<el-table-column type="selection" align="center" width="40" />
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
<el-table-column label="标准价格" prop="standardPrice" min-width="70" align="center" />
<el-table-column label="数量" prop="amount" min-width="50" align="center"></el-table-column>
<el-table-column label="实收价格" prop="chargePrice" min-width="70" align="center"></el-table-column>
<el-table-column prop="total" label="金额" min-width="70" align="center" />
<el-table-column prop="standardPrice" label="标准金额" min-width="70" align="center" />
</el-table>
</el-tab-pane>
<el-tab-pane label="已收费项目" name="2">
<el-table :data="hisRequestData" border style="width: 100%" row-key="id" height="160" highlight-current-row
size="small" @row-click="rowClick" :row-style="{ height: '25px' }">
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="申请单号" min-width="100" prop="chargeRequestNo" align="center" />
<el-table-column prop="hisChargeNo" label="his收费单" min-width="80" align="center" />
<el-table-column prop="charges" label="金额" min-width="80" align="center" />
<el-table-column prop="chargeRequestFlag" label="收费状态" width="80" align="center">
<template slot-scope="scope">
<div>{{ setChargeRequestFlag(scope.row.chargeRequestFlag) }}</div>
</template>
</el-table-column>
<el-table-column prop="ch" label="收费人员" min-width="80" align="center" />
<el-table-column prop="creationTime" label="申请时间" min-width="150" align="center" />
<el-table-column label="操作" width="50" align="center">
<template slot-scope="scope">
<el-dropdown>
<span>
<i class="el-icon-s-operation" style="font-size: 24px;color: blue;cursor:pointer;"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="refreshRequest(scope.row)">刷新状态</el-dropdown-item>
<el-dropdown-item @click.native="cancelRequest(scope.row)"
:disabled="setBtnDisabled(scope.row, 'cancel')">撤消申请</el-dropdown-item>
<el-dropdown-item @click.native="chargeBack(scope.row)"
:disabled="setBtnDisabled(scope.row, 'chargeBack')">退费申请</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<div style="padding: 10px 0 5px 0;">申请单包含项目</div>
<el-table :data="hisRequestDataDetails" border style="width: 100%" row-key="id" height="256"
highlight-current-row size="small" :row-style="{ height: '25px' }">
<el-table-column type="index" label="序号" align="center" width="40" />
<el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
<el-table-column label="数量" prop="amount" min-width="50" align="center"></el-table-column>
<el-table-column label="实收价格" prop="chargePrice" min-width="70" align="center"></el-table-column>
<el-table-column prop="total" label="金额" min-width="70" align="center" />
</el-table>
</el-tab-pane>
</el-tabs>
</div>
<!-- 按钮区域 -->
<div style="display: flex; margin-top: 10px; justify-content: space-between;">
<div></div>
<div style="display: flex;">
<div style="margin-left: 10px">
<el-button class="commonbutton" @click="btnRefresh">刷新</el-button>
</div>
<div style="margin-left: 10px" v-show="tabChoosed == '1'">
<el-button class="commonbutton" @click="btnSubmit">收费申请</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" @click="dialogWin.ThirdPacsRequest = false">关闭</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
// import
export default {
props: ["patientRegister"],
data() {
return {
tabChoosed: '1',
tableData: [], //
selectedData: [], //
hisRequestData: [], //
hisRequestDataDetails: [], //
};
},
created() {
},
mounted() {
this.initData(this.patientRegister.id);
},
computed: {
...mapState(["dict", "dataTransOpts", "dialogWin"]),
},
methods: {
initData(patientRegisterId) {
this.tableData = []
this.hisRequestData = []
this.hisRequestDataDetails = []
if (!patientRegisterId) return
//
this.asbList(patientRegisterId)
//
this.requestList(patientRegisterId)
},
//
asbList(patientRegisterId) {
this.tableData = []
postapi('/api/app/registerasbitem/GetCanChargeAsbitemsByPatientRegisterId', { patientRegisterId })
.then(res => {
if (res.code > -1) {
res.data.forEach(e => {
e.total = Number(e.chargePrice * e.amount)
this.tableData.push(e)
});
}
})
},
//
requestList(patientRegisterId) {
this.hisRequestData = []
this.hisRequestDataDetails = []
postapi('/api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId', { patientRegisterId })
.then(res => {
if (res.code > -1) {
this.hisRequestData = res.data
}
})
},
setChargeRequestFlag(chargeRequestFlag) {
let ret = '收费申请'
switch (chargeRequestFlag) {
case '1':
ret = '已收费'
break;
case '2':
ret = '作废申请'
break;
case '3':
ret = '已作废'
break;
case '4':
ret = '退费申请'
break;
case '5':
ret = '已退费'
break;
default:
break;
}
return ret
},
handleSelectionChange(v) {
this.selectedData = v;
},
setBtnDisabled(row, oprType) {
let ret = true
if (oprType == 'chargeBack') {
if (row.chargeRequestFlag == '1') ret = false
} else {
if (row.chargeRequestFlag == '0') ret = false
}
return ret
},
//
rowClick(row) {
this.hisRequestDataDetails = []
postapi('/api/app/ChargeRequest/GetChargeRequestAsbitemsByChargeRequestId', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
res.data.forEach(e => {
e.total = Number(e.chargePrice * e.amount)
this.hisRequestDataDetails.push(e)
});
}
})
},
//
refreshRequest(row) {
console.log('refreshRequest',row)
postapi('/api/app/ChargeRequest/SyncChargeRequestFlagFromInterface', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
this.btnRefresh()
}
})
},
//
cancelRequest(row) {
postapi('/api/app/ChargeRequest/CancelChargeRequest', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
row.chargeRequestFlag = "2"
}
})
},
// 退
chargeBack(row) {
postapi('/api/app/ChargeRequest/RefundChargeRequest', { chargeRequestId: row.id })
.then(res => {
if (res.code > -1) {
row.chargeRequestFlag = "4"
}
})
},
//
btnRefresh() {
if (this.tabChoosed == '1') {
this.asbList(this.patientRegister.id)
} else {
this.requestList(this.patientRegister.id)
}
},
btnSubmit() {
if (this.selectedData.length == 0) {
this.$message.warning({ showClose: true, message: `请勾选要发送收费申请的检查项目!` });
return;
}
let body = {
patientRegisterId: this.patientRegister.id,
registerCheckAsbitems: []
}
this.selectedData.forEach(e => {
body.registerCheckAsbitems.push({ registerCheckAsbitemId: e.registerCheckAsbitemId })
});
postapi("/api/app/ChargeRequest/Create", body)
.then(res => {
if (res.code > -1) {
this.initData(this.patientRegister.id)
}
});
},
},
//
watch: {
//
"dataTransOpts.refresh.charge.S": {
// immediate: true, //
// // deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegister.id)
if (newVal != oldVal) this.initData(this.patientRegister.id)
}
},
"tabChoosed": {
// immediate: true, //
// // deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegister.id)
if (newVal != oldVal) {
if (newVal == '1') {
this.asbList(this.patientRegister.id)
} else {
this.requestList(this.patientRegister.id)
}
}
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
</style>

4
src/store/index.js

@ -578,7 +578,9 @@ export default new Vuex.Store({
MenuPageSet: false, // 设置角色菜单权限
directorMenuPageSet: false, // 设置角色主任管理菜单权限
LocalConfig: false, // 设置窗口
AsbChargeRequest: false, // 收费申请
ThirdChargeRequest: false, // 第三方申请--收费申请
ThirdLisRequest: false, // 第三方申请--检验申请
ThirdPacsRequest: false, // 第三方申请--检查申请
OccDisease: false, // 职业病
Label: false, // 补打条码
WebBooking: false, // 网上预约

54
src/views/Home.vue

@ -108,7 +108,7 @@
<el-dropdown-item @click.native="editpassword">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="localSet">本地设置</el-dropdown-item>
<el-dropdown-item v-if="LocalConfig.normal.isDevTool"
<el-dropdown-item v-if="localConfig.normal.isDevTool"
@click.native="toggleDevTools">调试工具</el-dropdown-item>
<el-dropdown-item @click.native="clientConfigShow">客户端参数</el-dropdown-item>
<el-dropdown-item @click.native="localDBclear">清除本地缓存</el-dropdown-item>
@ -125,6 +125,7 @@
</div>
</div>
</el-header>
<!-- 修改密码弹框 -->
<el-dialog title="修改密码" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px">
@ -143,7 +144,14 @@
<el-button type="primary" @click="determine"> </el-button>
</span>
</el-dialog>
<el-container v-if="LocalConfig.normal.displayTab">
<!--通用本地参数设置-->
<el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false"
:append-to-body="true" fullscreen>
<LocalConfig />
</el-dialog>
<el-container v-if="localConfig.normal.displayTab">
<common-tab></common-tab>
<el-main style="margin-top: 84px;">
<keep-alive>
@ -157,14 +165,6 @@
</el-main>
</el-container>
</el-container>
</div>
<div>
<!--通用本地参数设置-->
<el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false"
:append-to-body="true" width="800px" height="600px">
<LocalConfig />
</el-dialog>
</div>
</div>
</template>
@ -207,10 +207,10 @@ export default {
{ required: true, message: "请输入新密码", trigger: "blur" },
],
},
LocalConfig: {
localConfig: {
normal: { //
isDevTool: false, //
displayTab:false//
displayTab: false//
}
},
LocalConfigInit: {},
@ -224,7 +224,7 @@ export default {
...mapState(["window", "dialogWin", "sysConfig"]),
},
created() {
let expires_in = parseInt(window.sessionStorage.getItem("expires_in"));
//console.log("dqtime / expires_in",dqtime,expires_in)
if (!expires_in) {
@ -246,7 +246,7 @@ export default {
this.LocalConfigInit = deepCopy(this.LocalConfig)
let LocalConfig = window.localStorage.getItem("LocalConfig") || null
try {
this.LocalConfig = Object.assign({}, this.LocalConfig, JSON.parse(LocalConfig) || {})
this.localConfig = Object.assign({}, this.localConfig, JSON.parse(LocalConfig) || {})
} catch (error) {
console.log('window.localStorage.getItem("LocalConfig")', error)
}
@ -261,7 +261,7 @@ export default {
methods: {
onContextmenu(event) {
if (!this.$peisAPI) return
if (!this.$peisAPI) return
console.log('this.$peisAPI.contextMenuForPeis()')
this.$peisAPI.contextMenuForPeis()
.then(res => {
@ -286,7 +286,7 @@ export default {
const targetPath = node.routeUrl && node.routeUrl.startsWith('/') ? node.routeUrl : '/' + node.routeUrl;
if (currentPath === targetPath) return;
if (this.LocalConfig.normal.displayTab) {
if (this.localConfig.normal.displayTab) {
const exists = this.$store.state.tabsList.some(tab => tab.displayName === node.displayName);
if (exists) {
// 使 tabsList routeUrl
@ -418,20 +418,18 @@ export default {
//
localSet() {
// this.dialogWin.LocalConfig = true
this.$router.push({ path: "/LocalConfig" });
this.dialogWin.LocalConfig = true
},
localDBclear(){
localDBclear() {
clearDBCom()
.then(() => {
this.$message.success({showClose:true,message:'操作成功!'})
})
.catch(err => {
console.error(err)
this.$message.error({showClose:true,message:err.message})
})
.then(() => {
this.$message.success({ showClose: true, message: '操作成功!' })
})
.catch(err => {
console.error(err)
this.$message.error({ showClose: true, message: err.message })
})
},
//
@ -687,7 +685,7 @@ export default {
}
.el-main {
height: calc(100vh,-200px);
height: calc(100vh, -200px);
}
.el-menu-vertical-demo .el-menu {

Loading…
Cancel
Save