Files
gzh/src/views/Member_wdzd.vue

393 lines
10 KiB
Vue
Raw Normal View History

2026-01-06 15:03:14 +08:00
<template>
<div class="home">
<nav-bar url="/"></nav-bar>
<div class="bj"></div>
<div class="lxr" @click="handleCardSelect">
<div class="lxrr" v-if="card && card.id">
<h2>
{{ card.name }}
<p>卡号{{ card.cardNo }}</p>
</h2>
<h3>
<i class="van-icon van-icon-arrow van-cell__right-icon"></i>
</h3>
</div>
<van-contact-card type="add" add-text="请选择就诊人" v-else />
</div>
<!--van-dropdown-menu>
<van-dropdown-item
v-model="querytype"
@change="changeCate"
:options="option1"
/>
</van-dropdown-menu-->
<van-tabs @click="onClick" line-height="0px" title-active-color="#2e82ef">
<van-tab title="待缴费" querytype="0"></van-tab>
<van-tab title="已缴费" querytype="1"></van-tab>
</van-tabs>
<div class="gao"></div>
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" >
<van-cell v-for="item in list" :key="item.SerialFlowNo" :title="item.BillName || '检查单'" :value="'¥' + item.BillMoney"
:label="item.SetDepartName + ' ' + item.BillTime">
<div v-if="querytype == 0" class="celllabel">
<div>¥{{ parseFloat(item.BillMoney).toFixed(2)}}</div>
<van-tag class="jiaofei" @click="gotomoney(item)">去缴费</van-tag>
<van-tag class="jiaofei" @click="getDetails(item)">查看详情</van-tag>
</div>
<div v-if="querytype == 1" class="celllabel">
<div>¥{{ parseFloat(item.BillMoney).toFixed(2) }}</div>
<van-tag class="jiaofei" @click="checklist(item)">去查看</van-tag>
<van-tag class="jiaofei" @click="getDetails(item)">查看详情</van-tag>
</div>
</van-cell>
</van-list>
<van-popup v-model="show" @click="show = false" class="wrapper">
<div class="block" @click.stop>
<div class="ghbt">缴费信息</div>
<div class="ghxzbody">
<div class="barcode">
<barcode :value="card.cardNo"></barcode>
</div>
<van-cell-group>
<van-cell title="就诊医院" value="武警宁夏总队医院" />
<van-cell title="缴费单据" :value="FlowNo" />
<van-cell title="执行科室" :value="DoDepartName" />
<van-cell title="开单时间" :value="BillTime" />
<van-cell title="预约时间" :value="AppointmentTime" />
<van-cell title="就诊人" :value="card.name" />
<van-cell title="费用" :value="BillMoney" />
</van-cell-group>
<div class="qrcode">
<vue-qr :logo-src="logoSrc" v-if="card.healthcode != null" :size="150" :margin="0" :auto-color="true"
:dot-scale="1" :text="card.healthcode + ':1'" />
</div>
</div>
</div>
</van-popup>
<van-overlay :show="overshow" z-index="999" />
</div>
</template>
<script>
// @ is an alias to /src
import { apiGetbill, apiopDjcx, apiUserCardList } from "@/request/api.js";
import VueQr from 'vue-qr';
import VueBarcode from 'vue-barcode';
import Vue from 'vue';
import { Popup, overlay, Toast } from 'vant';
Vue.use(Popup);
export default {
components: {
VueQr,
VueBarcode,
},
data() {
return {
title: "",
show: false,
overshow: false,
// 查询类型0 查询未缴费单据 1 查询已缴费单据)
option1: [
{ text: "已缴费", value: 1 },
{ text: "待缴费", value: 0 },
],
paramsData: {
page: 1,
pagesize: 10,
time: 0,
},
loading: false,
finished: false,
list: [],
card: {},
querytype: 0,
FlowNo: '',
DoDepartName: '',
BillTime: '',
BillMoney: '',
AppointmentTime: '',
};
},
mounted() {
this.title = this.$route.meta.title;
let that = this;
if (!sessionStorage.getItem("card")) {
apiUserCardList().then((aa) => {
if(aa.data.length==0){
Toast("请先绑定就诊人")
this.$router.push({ path: "/Member_jzr", query: { f: 1 } });
return;
}
for (var i = 0; i < aa.data.length; i++) {
if (aa.data[i].isYes == "0") {
sessionStorage.setItem("card", JSON.stringify(aa.data[i]));
}
}
that.card = JSON.parse(sessionStorage.getItem("card"));
that.list = [];
that.getListData();
});
} else {
that.card = JSON.parse(sessionStorage.getItem("card"));
that.list = [];
that.getListData();
}
},
methods: {
getDetails(item) {
this.$router.push({
path: "/Prescription_details" +
"?PatientId=" +
this.card.cardNo +
"&FlowNo=" +
item.SerialFlowNo
});
},
gotomoney(item) {
this.$router.push({
name: "JiaoFei_detail", // 需要在路由中定义name
params: {
PatientId: this.card.cardNo,
SerialFlowNo: item.SerialFlowNo,
}
});
/*window.location.href =
"http://wx.btdbyy.cn:9081/jojugongzhonghao/index.html#/Member_wdzd_detail" +
"?PatientId=" +
this.card.cardNo +
"&SerialFlowNo=" +
item.SerialFlowNo;*/
},
checklist(item) {
//alert(this.card.healthcode)
this.FlowNo = item.FlowNo,
this.DoDepartName = item.DoDepartName,
this.BillTime = item.BillTime,
this.BillMoney = item.BillMoney,
this.AppointmentTime = (item.AppointmentTime == null ? '' : item.AppointmentTime),
this.show = true;
},
onClick(querytype, title) {
this.querytype = querytype;
this.list = [];
this.finished = false;
this.getListData();
},
changeCate() {
//this.querytype=querytype;
this.list = [];
this.finished = false;
this.getListData();
},
// 获取列表
getListData() {
let _this = this;
let formdata = {
PatientId: _this.card.cardNo,
QueryType: _this.querytype,
OrderNo: "",
};
console.log(formdata);
// var fyxx="<response> <returnresult> <returncode>1</returncode> <errormsg>查询成功</errormsg> </returnresult> <data> <data_row> <FlowNo>20210000414458</FlowNo> <SetDepartCode>10010009</SetDepartCode> <SetDepartName>乳腺外科</SetDepartName> <DoDepartCode>20010031</DoDepartCode> <DoDepartName>医学检验科</DoDepartName> <BillType>21</BillType> <BillName>检验申请单</BillName> <BillDes /> <BillTime>2021/8/31 15:26:40</BillTime> <BillMoney>80.00</BillMoney> <DoctorCode>999999</DoctorCode> <DoctorName>1管理员</DoctorName> <SinceMoney /> <FairMoney /> <SerialNo /> <AppointNo>0000228472</AppointNo> <SerialFlowNo>2021083130258</SerialFlowNo> <JZLB>11</JZLB> <BZDM /> </data_row> </data> </response>";
// let jsonObj2 = this.$x2js.xml2js(fyxx);
// _this.list.push(jsonObj2.response.data.data_row);
// this.finished = true;
// return;
if (_this.card.cardNo != "") {
_this.overshow = true;
apiopDjcx(formdata).then((res) => {
if(res.code != 200){
Toast("当前无缴费单据")
_this.loading = false;
_this.overshow = false;
this.finished = true;
return;
}
_this.overshow = false;
console.log(res.data);
_this.loading = false;
let jsonObj = this.$x2js.xml2js(res.data);
console.log(jsonObj);
// let jsonObj2 = this.$x2js.xml2js(
// jsonObj.Envelope.Body.MOP_OutpBillstoPayQueryResponse
// .request
// );
let jsonObj2 = jsonObj.Envelope.Body.MOP_OutpBillstoPayQueryResponse.request;
console.log(jsonObj2);
if (jsonObj2.request.returnresult.returncode == "1") {
console.log(jsonObj2.request.data);
_this.list = [];
// 判断data是数组还是单个对象
if (Array.isArray(jsonObj2.request.data)) {
_this.list = jsonObj2.request.data;
} else {
_this.list.push(jsonObj2.request.data);
}
}
});
}
this.finished = true;
},
handleCardSelect() {
this.$router.push({ path: "/Member_jzr", query: { f: 1 } });
},
},
};
</script>
<style scoped lang="scss">
.bj {
background: #f5f5f5;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: -2;
}
.gao {
height: 0.25rem;
}
.lxr {
.van-cell--center {
border-radius: 0.25rem;
padding: 0.25rem;
background: url(../assets/lxrbj.png) no-repeat;
background-size: 100% 100%;
background-position: center center;
color: #fff;
.van-cell__value--alone {
color: #fff;
}
.van-cell__right-icon {
color: #fff;
}
}
.van-contact-card::before {
background: none;
}
::v-deep .van-contact-card--add .van-cell__left-icon {
color: #fff;
opacity: 0.6;
}
.lxrr {
border-radius: 0.25rem;
background: url(../assets/lxrbj.png) no-repeat;
background-size: 100% 100%;
background-position: center center;
color: #fff;
padding: 0.4rem;
display: flex;
align-items: center;
justify-content: space-between;
h2 {
font-size: 0.5rem;
p {
font-size: 0.4rem;
padding-top: 0.15rem;
}
}
h3 .van-cell__right-icon {
color: #fff;
}
}
}
.jiaofei {
margin-top: 0.125rem;
background-color: transparent;
border-style: solid;
border-radius: 0.25rem;
border-width: 1px;
border-color: #166bcc;
color: #166bcc;
}
.celllabel {
//margin-left:200px;
width: 2.5rem;
float: right;
//background-color: #ccc;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
width: 90%;
height: 90%;
border-radius: 0.25rem;
}
.block {
width: 90%;
height: 90%;
background-color: #fff;
}
.qrcode {
padding: 1rem 0;
display: flex;
justify-content: center;
}
.barcode {
height: 2rem;
display: flex;
justify-content: center;
}
.ghbt {
font-size: 0.5rem;
font-family: PingFang SC;
font-weight: 800;
color: #333333;
text-align: center;
}
.ghxzbody {
margin-top: 0.25rem;
width: 100%;
font-size: 0.375rem;
font-family: PingFang SC;
background-color: #fff;
.van-cell__value {
min-width: 70%;
span {
display: inline-block;
text-align: left;
word-break: break-all;
}
}
}
</style>