393 lines
10 KiB
Vue
393 lines
10 KiB
Vue
|
|
<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>
|