|
@@ -1,190 +1,201 @@
|
|
|
-import { payDetail } from './service';
|
|
|
-import { tradePay } from '../../utils/tradePay';
|
|
|
-import history from '../../utils/history';
|
|
|
-import { reportApi, reportCmPV_YL } from '../../utils/cloudMonitorHelper';
|
|
|
+import { payDetail } from "./service";
|
|
|
+import { tradePay } from "../../utils/tradePay";
|
|
|
+import history from "../../utils/history";
|
|
|
+import { reportApi, reportCmPV_YL } from "../../utils/cloudMonitorHelper";
|
|
|
Component({
|
|
|
- props: {},
|
|
|
- data: {
|
|
|
- order: {
|
|
|
- orderItems: [// {
|
|
|
- // itemName: '项目名称',
|
|
|
- // itemNum: 2,
|
|
|
- // amount: 999.99,
|
|
|
- // },
|
|
|
- ],
|
|
|
- depName: '',
|
|
|
- outTradeNo: '',
|
|
|
- tradeNo: '',
|
|
|
- type: null,
|
|
|
- // 1-挂号费订单 2-充值订单 3-诊间缴费订单
|
|
|
- userName: '',
|
|
|
- cardNum: '',
|
|
|
- amount: 0,
|
|
|
- createTime: '',
|
|
|
- payTime: '',
|
|
|
- payType: null,
|
|
|
- // 1-自费 2-医保 3-其他
|
|
|
- status: null,
|
|
|
- // 0-待支付 1-已支付 9-已取消
|
|
|
- medicareBinded: false,
|
|
|
- idNum: '',
|
|
|
- customInfo: '',
|
|
|
- payDetails: '',
|
|
|
- payDate: '',
|
|
|
- doctorName: '',
|
|
|
- reportRemind: '',
|
|
|
- checkRemind: '',
|
|
|
- medicineRemind: '',
|
|
|
- refundRemind: '',
|
|
|
- receiptRemind: ''
|
|
|
- },
|
|
|
- // 订单项
|
|
|
- fromItem: [{
|
|
|
- label: '就诊人',
|
|
|
- key: 'name'
|
|
|
- }, {
|
|
|
- label: '就诊卡号',
|
|
|
- key: 'cardNum'
|
|
|
- }, {
|
|
|
- label: '就诊科室',
|
|
|
- key: 'depName'
|
|
|
- }, {
|
|
|
- label: '医生',
|
|
|
- key: 'doctorName'
|
|
|
- }, {
|
|
|
- label: '费用日期',
|
|
|
- key: 'payDate'
|
|
|
- }, {
|
|
|
- label: '支付单号',
|
|
|
- key: 'outTradeNo'
|
|
|
- }, {
|
|
|
- label: '创建时间',
|
|
|
- key: 'createTime'
|
|
|
- }, {
|
|
|
- label: '付款时间',
|
|
|
- key: 'payTime'
|
|
|
- }],
|
|
|
- medicareExpand: false,
|
|
|
- expand: false,
|
|
|
- medicare: {
|
|
|
- total: 0,
|
|
|
- own: 0,
|
|
|
- detail: {}
|
|
|
- },
|
|
|
- checkRemind: {}
|
|
|
- },
|
|
|
-
|
|
|
- didMount() {
|
|
|
- this.payDetail(this.$page.data.query);
|
|
|
- /* 服务办结,门诊缴费 */
|
|
|
-
|
|
|
- reportApi('门诊缴费');
|
|
|
- /* 服务预警,门诊缴费 */
|
|
|
-
|
|
|
- reportCmPV_YL({
|
|
|
- title: '门诊缴费'
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- methods: {
|
|
|
- saveSubscribe(ref) {
|
|
|
- this.subscribe = ref;
|
|
|
- },
|
|
|
-
|
|
|
- payDetail(send) {
|
|
|
- payDetail(send).then(data => {
|
|
|
- const payDetails = JSON.parse(data.payDetails || '{}');
|
|
|
- const detail = payDetails['医保支付'] || {};
|
|
|
- let total = 0;
|
|
|
- Object.entries(detail).forEach(([k, v]) => {
|
|
|
- detail[k] = numFix(v);
|
|
|
- total += v * 1;
|
|
|
- });
|
|
|
- this.setData({
|
|
|
- order: Object.assign({}, this.data.order, data),
|
|
|
- medicare: {
|
|
|
- total: numFix(total),
|
|
|
- own: numFix(payDetails['自费支付金额']),
|
|
|
- detail
|
|
|
- },
|
|
|
- checkRemind: JSON.parse(data.checkRemind || '{}')
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 查看更多
|
|
|
- openForm() {
|
|
|
- this.setData({
|
|
|
- expand: !this.data.expand
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- medicareExpand() {
|
|
|
- this.setData({
|
|
|
- medicareExpand: !this.data.medicareExpand
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 发起支付
|
|
|
- async onPay(e) {
|
|
|
- const {
|
|
|
- medicareBinded = false
|
|
|
- } = e.target.dataset;
|
|
|
- const {
|
|
|
- order: oreder
|
|
|
- } = this.data;
|
|
|
-
|
|
|
- if (oreder.type === 1) {
|
|
|
- await tradePay({
|
|
|
- type: oreder.type,
|
|
|
- idNum: oreder.outTradeNo,
|
|
|
- depName: oreder.depName
|
|
|
- }, {
|
|
|
- tradeType: 'Appointment'
|
|
|
- });
|
|
|
- } else if (oreder.type === 2) {
|
|
|
- // 充值
|
|
|
- await tradePay({
|
|
|
- type: oreder.type,
|
|
|
- idNum: oreder.outTradeNo,
|
|
|
- amount: oreder.amount
|
|
|
- }, {
|
|
|
- tradeType: 'Appointment'
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 门诊订单
|
|
|
- await tradePay({
|
|
|
- useBalance: !medicareBinded,
|
|
|
- useMedicare: medicareBinded,
|
|
|
- outTradeNo: oreder.outTradeNo
|
|
|
- }, {
|
|
|
- tradeType: 'Outpatient'
|
|
|
- });
|
|
|
- } // 支付成功刷新页面
|
|
|
-
|
|
|
-
|
|
|
- this.payDetail(this.$page.data.query); // 支付成功以后,发起消息订阅
|
|
|
-
|
|
|
- this.subscribe.subscribeMessage();
|
|
|
- },
|
|
|
-
|
|
|
- hrefTo() {
|
|
|
- my.ap.navigateToAlipayPage({
|
|
|
- path: 'alipays://platformapi/startapp?appId=77700284&page=pages/medical/index?chInfo=YY_xiaochengxu'
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- toH5(e) {
|
|
|
- const {
|
|
|
- url
|
|
|
- } = e.target.dataset;
|
|
|
- history.toH5(url);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ props: {},
|
|
|
+ data: {
|
|
|
+ order: {
|
|
|
+ orderItems: [
|
|
|
+ // {
|
|
|
+ // itemName: '项目名称',
|
|
|
+ // itemNum: 2,
|
|
|
+ // amount: 999.99,
|
|
|
+ // },
|
|
|
+ ],
|
|
|
+ depName: "",
|
|
|
+ outTradeNo: "",
|
|
|
+ tradeNo: "",
|
|
|
+ type: null,
|
|
|
+ // 1-挂号费订单 2-充值订单 3-诊间缴费订单
|
|
|
+ userName: "",
|
|
|
+ cardNum: "",
|
|
|
+ amount: 0,
|
|
|
+ createTime: "",
|
|
|
+ payTime: "",
|
|
|
+ payType: null,
|
|
|
+ // 1-自费 2-医保 3-其他
|
|
|
+ status: null,
|
|
|
+ // 0-待支付 1-已支付 9-已取消
|
|
|
+ medicareBinded: false,
|
|
|
+ idNum: "",
|
|
|
+ customInfo: "",
|
|
|
+ payDetails: "",
|
|
|
+ payDate: "",
|
|
|
+ doctorName: "",
|
|
|
+ reportRemind: "",
|
|
|
+ checkRemind: "",
|
|
|
+ medicineRemind: "",
|
|
|
+ refundRemind: "",
|
|
|
+ receiptRemind: "",
|
|
|
+ },
|
|
|
+ // 订单项
|
|
|
+ fromItem: [
|
|
|
+ {
|
|
|
+ label: "就诊人",
|
|
|
+ key: "name",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "就诊卡号",
|
|
|
+ key: "cardNum",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "就诊科室",
|
|
|
+ key: "depName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "医生",
|
|
|
+ key: "doctorName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "费用日期",
|
|
|
+ key: "payDate",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "支付单号",
|
|
|
+ key: "outTradeNo",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "创建时间",
|
|
|
+ key: "createTime",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "付款时间",
|
|
|
+ key: "payTime",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ medicareExpand: false,
|
|
|
+ expand: false,
|
|
|
+ medicare: {
|
|
|
+ total: 0,
|
|
|
+ own: 0,
|
|
|
+ detail: {},
|
|
|
+ },
|
|
|
+ checkRemind: {},
|
|
|
+ },
|
|
|
+
|
|
|
+ didMount() {
|
|
|
+ this.payDetail(this.$page.data.query);
|
|
|
+ /* 服务办结,门诊缴费 */
|
|
|
+
|
|
|
+ reportApi("门诊缴费");
|
|
|
+ /* 服务预警,门诊缴费 */
|
|
|
+
|
|
|
+ reportCmPV_YL({
|
|
|
+ title: "门诊缴费",
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ saveSubscribe(ref) {
|
|
|
+ this.subscribe = ref;
|
|
|
+ },
|
|
|
+
|
|
|
+ payDetail(send) {
|
|
|
+ payDetail(send).then((data) => {
|
|
|
+ const payDetails = JSON.parse(data.payDetails || "{}");
|
|
|
+ const detail = payDetails["医保支付"] || {};
|
|
|
+ let total = 0;
|
|
|
+ Object.entries(detail).forEach(([k, v]) => {
|
|
|
+ detail[k] = numFix(v);
|
|
|
+ total += v * 1;
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ order: Object.assign({}, this.data.order, data),
|
|
|
+ medicare: {
|
|
|
+ total: numFix(total),
|
|
|
+ own: numFix(payDetails["自费支付金额"]),
|
|
|
+ detail,
|
|
|
+ },
|
|
|
+ checkRemind: JSON.parse(data.checkRemind || "{}"),
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 查看更多
|
|
|
+ openForm() {
|
|
|
+ this.setData({
|
|
|
+ expand: !this.data.expand,
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ medicareExpand() {
|
|
|
+ this.setData({
|
|
|
+ medicareExpand: !this.data.medicareExpand,
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 发起支付
|
|
|
+ async onPay(e) {
|
|
|
+ const { medicareBinded = false } = e.target.dataset;
|
|
|
+ const { order: oreder } = this.data;
|
|
|
+
|
|
|
+ if (oreder.type === 1) {
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ type: oreder.type,
|
|
|
+ idNum: oreder.outTradeNo,
|
|
|
+ depName: oreder.depName,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Appointment",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else if (oreder.type === 2) {
|
|
|
+ // 充值
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ type: oreder.type,
|
|
|
+ idNum: oreder.outTradeNo,
|
|
|
+ amount: oreder.amount,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Appointment",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ // 门诊订单
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ useBalance: !medicareBinded,
|
|
|
+ useMedicare: medicareBinded,
|
|
|
+ outTradeNo: oreder.outTradeNo,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Outpatient",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } // 支付成功刷新页面
|
|
|
+
|
|
|
+ this.payDetail(this.$page.data.query); // 支付成功以后,发起消息订阅
|
|
|
+
|
|
|
+ this.subscribe.subscribeMessage();
|
|
|
+ },
|
|
|
+
|
|
|
+ hrefTo() {
|
|
|
+ my.ap.navigateToAlipayPage({
|
|
|
+ path: "alipays://platformapi/startapp?appId=77700284&page=pages/medical/index?chInfo=YY_xiaochengxu",
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ toH5(e) {
|
|
|
+ const { url } = e.target.dataset;
|
|
|
+ history.toH5(url);
|
|
|
+ },
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
function numFix(val) {
|
|
|
- const num = val * 1;
|
|
|
- return num.toFixed(2);
|
|
|
-}
|
|
|
+ const num = val * 1;
|
|
|
+ return num.toFixed(2);
|
|
|
+}
|