Browse Source

dj s

master
pengjun 2 years ago
parent
commit
eecb40a0d3
  1. 22
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 2
      src/components/patientRegister/PatientRegisterList.vue
  3. 1
      src/store/index.js
  4. 86
      src/views/charge/charge.vue
  5. 2
      src/views/customerOrg/patientRegisterImport.vue

22
src/components/patientRegister/PatientRegisterEdit.vue

@ -460,7 +460,7 @@
</el-dialog> </el-dialog>
<!-- 收费 --> <!-- 收费 -->
<el-dialog title="" :visible.sync="chargeVisible" :close-on-click-modal="false"
<el-dialog title="" :visible.sync="dialogWin.charge" :close-on-click-modal="false"
:append-to-body="true" fullscreen @close="closeDialogCharge"> :append-to-body="true" fullscreen @close="closeDialogCharge">
<div style="margin-top: -30px;"> <div style="margin-top: -30px;">
<Charge :patientRegisterNo="chargePatientRegisterNo"/> <Charge :patientRegisterNo="chargePatientRegisterNo"/>
@ -480,6 +480,8 @@ import LisRequest from "./LisRequest.vue";
import MergeAsbitem from "./MergeAsbitem.vue"; import MergeAsbitem from "./MergeAsbitem.vue";
import Charge from "../../views/charge/charge.vue"; import Charge from "../../views/charge/charge.vue";
import PatientRegisterEditQuery from "../../components/patientRegister/PatientRegisterEditQuery.vue"; import PatientRegisterEditQuery from "../../components/patientRegister/PatientRegisterEditQuery.vue";
import proApi from "../../utlis/proApi";
export default { export default {
components: { components: {
Camera, Camera,
@ -596,7 +598,6 @@ export default {
dialogCamera: false, // dialogCamera: false, //
chargeVisible:false, //
chargePatientRegisterNo:'', // chargePatientRegisterNo:'', //
// //
@ -1619,13 +1620,26 @@ export default {
this.patientRegister.mergeAsbitemVisble = true; this.patientRegister.mergeAsbitemVisble = true;
}, },
toCharge(patientRegisterNo) {
async toCharge(patientRegisterNo){
if(!patientRegisterNo){ if(!patientRegisterNo){
this.$message.warning("请先保存人员信息!") this.$message.warning("请先保存人员信息!")
return return
} }
this.chargeVisible = true
try {
let res = await proApi.getPrAsb(this.form.id)
if(res.code == -1){
this.$message.warning(`操作失败,原因:${res.message}`)
return
}
} catch (error) {
this.$message.warning(`操作失败,原因:${error}`)
return
}
this.dialogWin.charge = true
// //
this.chargePatientRegisterNo = patientRegisterNo this.chargePatientRegisterNo = patientRegisterNo
setTimeout(() => { setTimeout(() => {

2
src/components/patientRegister/PatientRegisterList.vue

@ -310,7 +310,6 @@ export default {
let userPriv = window.sessionStorage.getItem('userPriv') let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
this.headerCols = deepCopy(this.dropCol)
this.loadOptsInit = Object.assign({}, this.loadOpts) this.loadOptsInit = Object.assign({}, this.loadOpts)
}, },
@ -321,6 +320,7 @@ export default {
this.peisid = window.sessionStorage.getItem('peisid'); this.peisid = window.sessionStorage.getItem('peisid');
// //
this.headerCols = deepCopy(this.dropCol)
this.dropCol = this.columnDrop(this.dropCol); this.dropCol = this.columnDrop(this.dropCol);
this.$nextTick(() => { this.$nextTick(() => {

1
src/store/index.js

@ -360,6 +360,7 @@ export default new Vuex.Store({
// 弹窗控制 // 弹窗控制
dialogWin: { dialogWin: {
CustomerOrgGroupEdit: false, // 单位分组 新增/编辑 CustomerOrgGroupEdit: false, // 单位分组 新增/编辑
charge:false, // 收费窗口
PatientList: false, // 体检人员档案列表 PatientList: false, // 体检人员档案列表
PatientRegisterEdit: false, // 体检人员登记 新增/编辑 PatientRegisterEdit: false, // 体检人员登记 新增/编辑
PatientRegisterForChoose: false, // 体检人员登记列表 PatientRegisterForChoose: false, // 体检人员登记列表

86
src/views/charge/charge.vue

@ -1,21 +1,25 @@
<template> <template>
<div style="font-size: 14px;">
<div> <div>
<el-card>
<div slot="header">体检收费</div>
<div class="contenttitle">
体检登记 /<span class="contenttitleBold">收费</span>
</div>
<div style="display: flex; width: 100%;"> <div style="display: flex; width: 100%;">
<!-- 查询条件 与列表 --> <!-- 查询条件 与列表 -->
<div class="queryDivClass">
<div :style="`display: block;width: ${Math.floor(bodyWidth * 3 / 5)}px;`">
<!-- 查询条件 --> <!-- 查询条件 -->
<div style="height: 80px;"> <div style="height: 80px;">
<div style="display:flex;"> <div style="display:flex;">
<div> <div>
<span>登记日期</span> <span>登记日期</span>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" style="width:90px;"/>
<span></span>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small"
style="width:90px;" />
<span style="margin: 0 3px;"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;" /> <el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;" />
</div> </div>
<div style="margin-left:10px;"> <div style="margin-left:10px;">
<el-button type="primary" class="btnClass" @click="Query" size="small" style="width:95px;">查询</el-button>
<el-button type="primary" class="commonbutton" @click="Query" size="small"
style="width:95px;">查询</el-button>
</div> </div>
</div> </div>
<div style="display:flex;margin-top:10px;"> <div style="display:flex;margin-top:10px;">
@ -26,15 +30,15 @@
</el-radio-group> </el-radio-group>
<div v-if="query.chargeFlag != 'N'" style="margin-left:20px;"> <div v-if="query.chargeFlag != 'N'" style="margin-left:20px;">
<span>发票号</span> <span>发票号</span>
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small" style="width: 100px;" clearable
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small" style="margin-left: 3px; width: 100px;" clearable
@change="Query('invoiceNo')" /> @change="Query('invoiceNo')" />
</div> </div>
</div> </div>
</div> </div>
<!-- 列表 --> <!-- 列表 -->
<div class="prListDivClass">
<el-table :data="patientList" border highlight-current-row ref="patientList"
:height="(window.pageHeight > 600 ? (window.pageHeight - 230) : 370)" @row-click="rowClick" size="small">
<div>
<el-table :data="patientList" border highlight-current-row ref="patientList" :height="tableListHeight"
@row-click="rowClick" size="small">
<!-- <!--
<el-table-column prop="patientRegisterId" label="体检记录ID" /> <el-table-column prop="patientRegisterId" label="体检记录ID" />
--> -->
@ -72,66 +76,66 @@
</div> </div>
</div> </div>
<!-- 收费操作 --> <!-- 收费操作 -->
<div class="queryDivClass" style="margin-left:5px;">
<div :style="`display: block;margin-left:5px;width: ${Math.floor(bodyWidth * 2 / 5)}px;`">
<!-- 查询信息 --> <!-- 查询信息 -->
<div style="height: 40px;"> <div style="height: 40px;">
<div style="display: flex; flex-wrap: wrap;margin-top:40px; height:40px; width: 100%;"> <div style="display: flex; flex-wrap: wrap;margin-top:40px; height:40px; width: 100%;">
<div class="query"> <div class="query">
<span>条码号</span> <span>条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" style="width: 140px;" clearable
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" style="margin-left: 3px; width: 120px;" clearable
@change="Query('patientRegisterNo')" /> @change="Query('patientRegisterNo')" />
</div> </div>
<div class="query"> <div class="query">
<span>档案号</span> <span>档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="width: 100px;" clearable
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="margin-left: 3px; width: 80px;" clearable
@change="Query('patientNo')" /> @change="Query('patientNo')" />
</div> </div>
<div class="query"> <div class="query">
<span>姓名</span> <span>姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="width: 100px;" disabled
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="margin-left: 3px; width: 70px;" disabled
@change="Query" /> @change="Query" />
</div> </div>
</div> </div>
</div> </div>
<!-- 收费信息 --> <!-- 收费信息 -->
<div class="prListDivClass">
<div>
<!-- charge --> <!-- charge -->
<div style="height:148px;">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="small"
<div style="height:108px;">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium"
:disabled="query.chargeFlag != 'N'" > :disabled="query.chargeFlag != 'N'" >
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="发票号" prop="invoiceNo"> <el-form-item label="发票号" prop="invoiceNo">
<el-input v-model="form.invoiceNo" />
<el-input v-model="form.invoiceNo" size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="开票抬头" prop="invoiceOrgName"> <el-form-item label="开票抬头" prop="invoiceOrgName">
<el-input v-model="form.invoiceOrgName" />
<el-input v-model="form.invoiceOrgName" size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="折扣" prop="discount"> <el-form-item label="折扣" prop="discount">
<el-input v-model="form.discount" @input="discountToDetails" />
<el-input v-model="form.discount" @input="discountToDetails" size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="应收金额" prop="total"> <el-form-item label="应收金额" prop="total">
<el-input v-model="form.total" @input="totalToDetails" />
<el-input v-model="form.total" @input="totalToDetails" size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="query.chargeFlag == 'N'"> <el-row v-if="query.chargeFlag == 'N'">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="预收金额" prop="preTotal"> <el-form-item label="预收金额" prop="preTotal">
<el-input v-model="form.preTotal" disabled/>
<el-input v-model="form.preTotal" disabled size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="找零" prop="balance"> <el-form-item label="找零" prop="balance">
<el-input v-model="form.balance" disabled />
<el-input v-model="form.balance" disabled size="small"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -141,7 +145,7 @@
<div> <div>
<div style="margin-top:5px;font-size:10px;">{{ query.chargeFlag == 'B' ? '退' : '收' }}费方式</div> <div style="margin-top:5px;font-size:10px;">{{ query.chargeFlag == 'B' ? '退' : '收' }}费方式</div>
<el-table :data="chargePays" border highlight-current-row size="small" <el-table :data="chargePays" border highlight-current-row size="small"
:height="window.pageHeight > 600 ? (window.pageHeight - 270 - 146) / 2 : 92">
:height="Math.floor((tableListHeight - 146)/2)">
<el-table-column prop="payModeId" :label="(query.chargeFlag == 'B' ? '退' : '收') + '费方式'" width="180"> <el-table-column prop="payModeId" :label="(query.chargeFlag == 'B' ? '退' : '收') + '费方式'" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ dddw(dict.payMode, "id", scope.row.payModeId, "displayName") }}</div> <div>{{ dddw(dict.payMode, "id", scope.row.payModeId, "displayName") }}</div>
@ -168,7 +172,7 @@
<div style="margin-top:5px; font-size:10px;">{{ query.chargeFlag == 'N' ? '待收' : (query.chargeFlag == 'Y' ? <div style="margin-top:5px; font-size:10px;">{{ query.chargeFlag == 'N' ? '待收' : (query.chargeFlag == 'Y' ?
'已收' : '已退') }}费项目</div> '已收' : '已退') }}费项目</div>
<el-table :data="asbItemsForFee" border highlight-current-row <el-table :data="asbItemsForFee" border highlight-current-row
:height="window.pageHeight > 600 ? (window.pageHeight - 270 - 146) / 2 : 92" size="small"
:height="Math.floor((tableListHeight - 146)/2)" size="small"
@selection-change="handleSelectionChange" ref="asbItemsForFeeTable"> @selection-change="handleSelectionChange" ref="asbItemsForFeeTable">
<el-table-column type="selection" align="center" v-if="query.chargeFlag == 'N'" /> <el-table-column type="selection" align="center" v-if="query.chargeFlag == 'N'" />
<el-table-column label="组合项目" width="120" prop="asbitemName" /> <el-table-column label="组合项目" width="120" prop="asbitemName" />
@ -213,24 +217,24 @@
</div> </div>
<div class="btnDivClass"> <div class="btnDivClass">
<div class="btnListClass"> <div class="btnListClass">
<el-button type="primary" class="btnClass" @click="btnCharge"
<el-button type="primary" class="commonbutton" @click="btnCharge"
:disabled="query.chargeFlag == 'N' ? false : true">收费</el-button> :disabled="query.chargeFlag == 'N' ? false : true">收费</el-button>
</div> </div>
<div class="btnListClass"> <div class="btnListClass">
<el-button type="danger" class="btnClass" @click="btnChargeBack"
<el-button type="danger" class="commonbutton" @click="btnChargeBack"
:disabled="query.chargeFlag == 'Y' ? false : true">退费</el-button> :disabled="query.chargeFlag == 'Y' ? false : true">退费</el-button>
</div> </div>
<div class="btnListClass"> <div class="btnListClass">
<el-button type="success" class="btnClass" @click="chargePrint('0007', false, form.id)"
<el-button type="success" class="commonbutton" @click="chargePrint('0007', false, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印</el-button> :disabled="query.chargeFlag == 'B' ? true : false">打印</el-button>
</div> </div>
<div class="btnListClass"> <div class="btnListClass">
<el-button type="success" class="btnClass" @click="chargePrint('0007', true, form.id)"
<el-button type="success" class="commonbutton" @click="chargePrint('0007', true, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印预览</el-button> :disabled="query.chargeFlag == 'B' ? true : false">打印预览</el-button>
</div> </div>
</div> </div>
</div> </div>
</el-card>
</div>
</div> </div>
</template> </template>
<script> <script>
@ -338,6 +342,16 @@ export default {
computed: { computed: {
...mapState(["window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]), ...mapState(["window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
tableListHeight() {
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return tempH - 175
},
bodyWidth() {
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth
return tempW - 110 - 20
}
}, },
methods: { methods: {
@ -1191,18 +1205,8 @@ export default {
@import '../../assets/css/global.css'; @import '../../assets/css/global.css';
.queryDivClass {
display: block;
width: v-bind("(window.pageWidth > 600 ? (window.pageWidth - 110 - 50) / 2 : 200) + 'px'");
height: v-bind("(window.pageHeight > 600 ? (window.pageHeight - 150) : 450) + 'px'");
}
.query { .query {
margin-left: 10px;
}
.prListDivClass {
height: v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'");
margin-left: 5px;
} }
.btnDivClass { .btnDivClass {

2
src/views/customerOrg/patientRegisterImport.vue

@ -1600,9 +1600,7 @@ export default {
let tableData = table.innerHTML let tableData = table.innerHTML
let fileName = moment(new Date()).format('yyyyMMDDHHmmss') + '.xls' let fileName = moment(new Date()).format('yyyyMMDDHHmmss') + '.xls'
let blob = new Blob([tableData],{type:"text/plain;charset=utf-8"}); let blob = new Blob([tableData],{type:"text/plain;charset=utf-8"});
FileSaver.saveAs(blob, fileName); FileSaver.saveAs(blob, fileName);
}, },
}, },

Loading…
Cancel
Save