2022-11-25 10:58:46 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<view class="app">
|
|
|
|
|
|
<view class="user">
|
|
|
|
|
|
<view class="item">
|
|
|
|
|
|
<span>姓名:</span>
|
|
|
|
|
|
<span class='addition'>{{personInfo.patientName}}</span>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="item">
|
|
|
|
|
|
<span>电话:</span>
|
|
|
|
|
|
<span class='addition'>{{personInfo.phone}}</span>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="addressitem">
|
|
|
|
|
|
<view class="leftaddress">地址:</view>
|
|
|
|
|
|
<view class='addition'>{{personInfo.address}}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="item" style="border: 0;">
|
|
|
|
|
|
<span></span>
|
|
|
|
|
|
<span class='addition'>请您选择希望护理员到达的时间区间</span>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="selecttime" @tap='yearshow=true'>
|
|
|
|
|
|
<span>日期:</span>
|
|
|
|
|
|
<text v-if="yeartime==''" class='addition'>请选择日期
|
|
|
|
|
|
<image src="../../static/jiantou.png"></image>
|
|
|
|
|
|
</text>
|
|
|
|
|
|
<text v-else class='addition'>{{yeartime}}</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="selecttime" @tap='timeshow=true'>
|
|
|
|
|
|
<span>时间:</span>
|
|
|
|
|
|
<text v-if="usertime==''" class='addition'>请选择时间区间
|
|
|
|
|
|
<image src="../../static/jiantou.png"></image>
|
|
|
|
|
|
</text>
|
|
|
|
|
|
<text v-else class='addition'>{{usertime}}</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="remarks">
|
|
|
|
|
|
服务时长:
|
|
|
|
|
|
<span style='padding-left: 30rpx;' class='addition'>{{orderlist.serveDurationUnit}}</span>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="Package">套餐信息:
|
|
|
|
|
|
<text class="money">¥{{orderlist.nurseItemPrice}}</text>
|
|
|
|
|
|
<text class="detail">
|
|
|
|
|
|
{{orderlist.nurseItemName}}
|
|
|
|
|
|
</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="Consumablespackage">耗材包详情:
|
2022-12-06 10:08:19 +08:00
|
|
|
|
<text class="money">¥{{consumableTotalPrice}}</text>
|
2022-12-01 16:59:32 +08:00
|
|
|
|
<view class="detail">
|
|
|
|
|
|
<u-checkbox-group @change="checkboxGroupChange" wrap='true'>
|
2022-12-02 16:02:53 +08:00
|
|
|
|
<u-checkbox @change="checkboxChange(item)" v-model="item.radio"
|
2022-12-01 16:59:32 +08:00
|
|
|
|
v-for="(item, index) in orderlist.itemConsumableList" :key="index"
|
|
|
|
|
|
:name="item.consumableDetail">
|
2022-12-02 16:02:53 +08:00
|
|
|
|
<view style='display: inline-block;'> {{item.consumableDetail}}</view>
|
|
|
|
|
|
<span>{{item.consumableCount}}{{item.consumableUnit}}/¥{{item.consumablePrice}}</span>
|
2022-12-01 16:59:32 +08:00
|
|
|
|
</u-checkbox>
|
|
|
|
|
|
</u-checkbox-group>
|
2022-11-25 10:58:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="remarks">
|
|
|
|
|
|
<span>备注:</span>
|
|
|
|
|
|
<input placeholder="请输入" v-model="orderlist.remark">
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="radio-content">
|
|
|
|
|
|
<view class="radio-right" @tap="changeRadio">
|
|
|
|
|
|
<view class="radio" :class="radio == 2 ? 'radio-default':''">
|
|
|
|
|
|
<view :class="radio == 2 ? 'radio-active':''"></view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="agreement">我已阅读并同意<text @tap='maskshow=true'
|
|
|
|
|
|
style="color: #000000;border-bottom: 1rpx solid #000000;">《用户协议》</text></view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="priceback">
|
|
|
|
|
|
<view class="prices">¥{{orderlist.totalPrice}}</view>
|
|
|
|
|
|
<view class="xiugai" @tap='goaddress'>修改信息</view>
|
|
|
|
|
|
<view class="queren" @tap='updata'>确认预约</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<u-toast ref="uToast" />
|
|
|
|
|
|
<u-picker v-model="yearshow" mode="time" start-year='2022' :params="yearparams" @confirm='yeartimeconfirm'>
|
|
|
|
|
|
</u-picker>
|
|
|
|
|
|
<upicker v-model="timeshow" mode="time" :params="timeparams" @confirm='timeconfirm'></upicker>
|
|
|
|
|
|
<!-- //用户协议 -->
|
|
|
|
|
|
<u-mask :show="maskshow" class='mask' @click='maskshow=false'>
|
|
|
|
|
|
<view class="Agreement">
|
|
|
|
|
|
<view class="title">
|
|
|
|
|
|
护理站上门服务知情同意书
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<scroll-view scroll-y="true" class="scroll-Y" style="">
|
|
|
|
|
|
<appointmenttext></appointmenttext>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
<view class="cancel" @tap='maskshow=false'>
|
|
|
|
|
|
取消
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="determine" @tap='tapradio'>
|
|
|
|
|
|
确定并同意
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</u-mask>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import {
|
|
|
|
|
|
getAppStationItemInfo,
|
|
|
|
|
|
getAppPatientList,
|
|
|
|
|
|
submitAppointment,
|
|
|
|
|
|
appletAppointmentOrderPay
|
|
|
|
|
|
} from '@/api/appointmenttime/appointmenttime.js'
|
|
|
|
|
|
import baseurl from '@/api/baseurl.js'
|
|
|
|
|
|
import upicker from '../picker/picker.vue'
|
|
|
|
|
|
import appointmenttext from './text.vue'
|
|
|
|
|
|
export default {
|
|
|
|
|
|
components: {
|
|
|
|
|
|
upicker,
|
|
|
|
|
|
appointmenttext
|
|
|
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
openid: '',
|
|
|
|
|
|
timeparams: { //picker组件所需
|
|
|
|
|
|
year: false,
|
|
|
|
|
|
month: false,
|
|
|
|
|
|
day: false,
|
|
|
|
|
|
hour: true,
|
|
|
|
|
|
endhour: true,
|
|
|
|
|
|
minute: true,
|
|
|
|
|
|
endminute: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
timeshow: false, //时间开关
|
|
|
|
|
|
usertime: '', //页面展示时间
|
|
|
|
|
|
yearparams: { //picker组件所需
|
|
|
|
|
|
year: true,
|
|
|
|
|
|
month: true,
|
|
|
|
|
|
day: true,
|
|
|
|
|
|
hour: false,
|
|
|
|
|
|
minute: false,
|
|
|
|
|
|
second: false
|
|
|
|
|
|
},
|
|
|
|
|
|
yearshow: false, //时间开关
|
|
|
|
|
|
yeartime: '', //页面展示时间
|
|
|
|
|
|
maskshow: false, //用户协议开关
|
|
|
|
|
|
radio: 1, //用户协议
|
|
|
|
|
|
personInfo: {}, //用户信息
|
|
|
|
|
|
patientId: null,
|
|
|
|
|
|
useritem: null, //optionsuser信息
|
2022-12-28 12:08:50 +08:00
|
|
|
|
consumableTotalPrice: 0, //耗材包总价格
|
2022-11-25 10:58:46 +08:00
|
|
|
|
orderlist: {
|
|
|
|
|
|
orderCount: 1,
|
|
|
|
|
|
patientId: '',
|
|
|
|
|
|
stationId: '',
|
|
|
|
|
|
stationItemId: '',
|
|
|
|
|
|
stationItemPriceId: '',
|
|
|
|
|
|
serviceAddress: "",
|
|
|
|
|
|
serviceDate: "",
|
|
|
|
|
|
serviceStartTime: "",
|
|
|
|
|
|
serviceEndTime: "",
|
|
|
|
|
|
nurseItemName: "",
|
|
|
|
|
|
nurseItemPrice: '',
|
|
|
|
|
|
serveDurationUnit: "",
|
|
|
|
|
|
consumableTotalPrice: '',
|
|
|
|
|
|
totalPrice: '',
|
|
|
|
|
|
remark: "",
|
|
|
|
|
|
orderConsumableList: [],
|
|
|
|
|
|
orderChannel: '',
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onShow() {
|
|
|
|
|
|
let that = this
|
|
|
|
|
|
uni.$on('updata', function(data) {
|
|
|
|
|
|
if (data.updata) {
|
|
|
|
|
|
that.orderlist = JSON.parse(data.updata)
|
|
|
|
|
|
}
|
|
|
|
|
|
if (data.useritem) {
|
|
|
|
|
|
that.useritem = JSON.parse(data.useritem)
|
|
|
|
|
|
that.orderlist.serviceAddress = that.useritem.address
|
|
|
|
|
|
that.personInfo.patientName = that.useritem.receiveName
|
|
|
|
|
|
that.personInfo.phone = that.useritem.receivePhone
|
|
|
|
|
|
that.personInfo.address = that.useritem.address
|
|
|
|
|
|
} else {}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
|
var that = this
|
|
|
|
|
|
try {
|
|
|
|
|
|
const value = uni.getStorageSync('openid');
|
|
|
|
|
|
if (value) {
|
|
|
|
|
|
that.openid = value
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
//耗材包详情方法调用
|
|
|
|
|
|
this.getPatientInfo(options.stationId, options.stationItemId, options.stationItemPriceId)
|
2022-12-27 09:22:42 +08:00
|
|
|
|
that.userinfo();
|
2022-11-25 10:58:46 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
userinfo() {
|
|
|
|
|
|
//取出patientId
|
|
|
|
|
|
var that = this
|
|
|
|
|
|
try {
|
|
|
|
|
|
const value = uni.getStorageSync('patientId');
|
|
|
|
|
|
if (value) {
|
|
|
|
|
|
that.patientId = value
|
|
|
|
|
|
//被护理人信息
|
|
|
|
|
|
getAppPatientList(that.patientId).then(response => {
|
|
|
|
|
|
that.personInfo = response.data
|
2023-01-12 16:16:36 +08:00
|
|
|
|
that.personInfo.address = response.data.areaName + response.data.address
|
2022-11-25 10:58:46 +08:00
|
|
|
|
that.orderlist.patientId = response.data.patientId
|
2023-01-12 16:16:36 +08:00
|
|
|
|
that.orderlist.serviceAddress = response.data.areaName + response.data.address
|
2022-11-25 10:58:46 +08:00
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
},
|
|
|
|
|
|
//获取耗材包详情
|
|
|
|
|
|
getPatientInfo(stationId, stationItemId, stationItemPriceId) {
|
|
|
|
|
|
getAppStationItemInfo(stationId, stationItemId, stationItemPriceId).then(res => {
|
2022-12-06 10:08:19 +08:00
|
|
|
|
res.data.nurseItemContent = ''
|
2022-11-25 10:58:46 +08:00
|
|
|
|
if (res.code == 200) {
|
2022-12-01 16:59:32 +08:00
|
|
|
|
if (res.data.itemConsumableList) {
|
|
|
|
|
|
res.data.itemConsumableList.forEach(e => {
|
|
|
|
|
|
e.radio = true
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2022-11-25 10:58:46 +08:00
|
|
|
|
this.orderlist = res.data
|
2022-12-06 10:08:19 +08:00
|
|
|
|
this.consumableTotalPrice = res.data.consumableTotalPrice
|
2022-11-25 10:58:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
//确认预约
|
|
|
|
|
|
updata() {
|
|
|
|
|
|
var that = this
|
2022-12-06 10:08:19 +08:00
|
|
|
|
this.orderlist.consumableTotalPrice = null
|
2022-11-25 10:58:46 +08:00
|
|
|
|
this.orderlist.orderChannel = 'WECHAT_APPLET'
|
|
|
|
|
|
if (this.radio == 1) {
|
|
|
|
|
|
this.$refs.uToast.show({
|
|
|
|
|
|
title: '请阅读用户协议并同意',
|
|
|
|
|
|
type: 'error',
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.orderlist.orderCount = 1;
|
2022-12-01 16:59:32 +08:00
|
|
|
|
this.orderlist.orderConsumableList = []
|
2022-12-06 10:08:19 +08:00
|
|
|
|
if (this.orderlist.itemConsumableList) {
|
|
|
|
|
|
this.orderlist.itemConsumableList.forEach(e => {
|
|
|
|
|
|
if (e.radio) {
|
|
|
|
|
|
this.orderlist.orderConsumableList.push(e)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2022-11-25 10:58:46 +08:00
|
|
|
|
submitAppointment(this.orderlist).then(res => {
|
|
|
|
|
|
if (res.code == 500) {
|
|
|
|
|
|
that.$refs.uToast.show({
|
|
|
|
|
|
title: res.msg,
|
|
|
|
|
|
type: 'error',
|
|
|
|
|
|
})
|
|
|
|
|
|
} else if (res.code == 200) {
|
|
|
|
|
|
let obj = {
|
|
|
|
|
|
patientId: res.data.patientId,
|
|
|
|
|
|
openid: that.openid,
|
|
|
|
|
|
orderNo: res.data.orderNo,
|
|
|
|
|
|
orderChannel: res.data.orderChannel,
|
|
|
|
|
|
paymentPrice: res.data.totalPrice,
|
|
|
|
|
|
payType: "WECHAT_PAY",
|
|
|
|
|
|
buySource: "NURSE_STATION",
|
|
|
|
|
|
}
|
|
|
|
|
|
appletAppointmentOrderPay(obj).then(response => {
|
|
|
|
|
|
if (response.code == 200) {
|
|
|
|
|
|
uni.requestPayment({
|
|
|
|
|
|
timeStamp: response.data.timeStamp,
|
|
|
|
|
|
nonceStr: response.data.nonceStr,
|
|
|
|
|
|
package: response.data.prepayId,
|
|
|
|
|
|
signType: response.data.signType,
|
|
|
|
|
|
paySign: response.data.paySign,
|
|
|
|
|
|
success: function(res) {
|
|
|
|
|
|
that.$refs.uToast.show({
|
|
|
|
|
|
title: '预约成功',
|
|
|
|
|
|
type: 'success',
|
2023-01-12 16:16:36 +08:00
|
|
|
|
duration: 1500,
|
2022-11-25 10:58:46 +08:00
|
|
|
|
url: `/pages/paysuccess/paysuccess`
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: function(err) {
|
|
|
|
|
|
that.$refs.uToast.show({
|
|
|
|
|
|
title: '取消预约',
|
|
|
|
|
|
type: 'error',
|
2023-01-12 16:16:36 +08:00
|
|
|
|
duration: 1500,
|
2022-11-25 10:58:46 +08:00
|
|
|
|
url: `/pages/menttimeorder/menttimeorder?list=${JSON.stringify(obj)}`
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.$refs.uToast.show({
|
|
|
|
|
|
title: response.msg,
|
|
|
|
|
|
type: 'error',
|
2023-01-12 16:16:36 +08:00
|
|
|
|
duration: 2000
|
2022-11-25 10:58:46 +08:00
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
changeRadio() {
|
|
|
|
|
|
if (this.radio == 1) {
|
|
|
|
|
|
this.radio = 2;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.radio = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
tapradio() {
|
|
|
|
|
|
this.radio = 2;
|
|
|
|
|
|
this.maskshow = false
|
|
|
|
|
|
},
|
2022-12-02 16:02:53 +08:00
|
|
|
|
checkboxChange(e) {
|
|
|
|
|
|
if (e.radio) {
|
|
|
|
|
|
this.orderlist.totalPrice = this.argSubtr(this.orderlist.totalPrice, e.consumablePrice)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.orderlist.totalPrice = this.argAdd(this.orderlist.totalPrice, e.consumablePrice)
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
argAdd(arg1, arg2) {
|
|
|
|
|
|
// 加法函数
|
|
|
|
|
|
var _this = this,
|
|
|
|
|
|
r1 = 0,
|
|
|
|
|
|
r2 = 0,
|
|
|
|
|
|
m = 0;
|
|
|
|
|
|
try {
|
|
|
|
|
|
r1 = arg1.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
try {
|
|
|
|
|
|
r2 = arg2.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
m = Math.pow(10, Math.max(r1, r2))
|
|
|
|
|
|
return _this.argDiv((_this.argMul(arg1, m) + _this.argMul(arg2, m)), m)
|
|
|
|
|
|
},
|
|
|
|
|
|
argSubtr(arg1, arg2) {
|
|
|
|
|
|
// 减法函数
|
|
|
|
|
|
var _this = this,
|
|
|
|
|
|
r1 = 0,
|
|
|
|
|
|
r2 = 0,
|
|
|
|
|
|
m = 0;
|
|
|
|
|
|
try {
|
|
|
|
|
|
r1 = arg1.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
try {
|
|
|
|
|
|
r2 = arg2.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
m = Math.pow(10, Math.max(r1, r2));
|
|
|
|
|
|
return _this.argDiv((_this.argMul(arg1, m) - _this.argMul(arg2, m)), m)
|
|
|
|
|
|
},
|
|
|
|
|
|
argMul(arg1, arg2) {
|
|
|
|
|
|
// 乘法函数
|
|
|
|
|
|
var _this = this,
|
|
|
|
|
|
m = 0,
|
|
|
|
|
|
s1 = arg1.toString(),
|
|
|
|
|
|
s2 = arg2.toString();
|
|
|
|
|
|
try {
|
|
|
|
|
|
m += s1.split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
try {
|
|
|
|
|
|
m += s2.split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
|
|
|
|
|
|
},
|
|
|
|
|
|
argDiv(arg1, arg2) {
|
|
|
|
|
|
// 除法函数
|
|
|
|
|
|
var _this = this,
|
|
|
|
|
|
t1 = 0,
|
|
|
|
|
|
t2 = 0,
|
|
|
|
|
|
r1, r2;
|
|
|
|
|
|
try {
|
|
|
|
|
|
t1 = arg1.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
try {
|
|
|
|
|
|
t2 = arg2.toString().split(".")[1].length
|
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
r1 = Number(arg1.toString().replace(".", ""))
|
|
|
|
|
|
r2 = Number(arg2.toString().replace(".", ""))
|
|
|
|
|
|
return _this.argMul((r1 / r2), Math.pow(10, t2 - t1));
|
|
|
|
|
|
},
|
2022-12-01 16:59:32 +08:00
|
|
|
|
// 选中任一checkbox时,由checkbox-group触发
|
|
|
|
|
|
checkboxGroupChange(e) {},
|
2022-11-25 10:58:46 +08:00
|
|
|
|
//获取时间
|
|
|
|
|
|
timeconfirm(e) {
|
|
|
|
|
|
this.orderlist.serviceStartTime = e.hour + ":" + e.minute
|
|
|
|
|
|
this.usertime = e.hour + ":" + e.minute + '--' + e.endhour + ":" + e.endminute
|
|
|
|
|
|
this.orderlist.serviceEndTime = e.endhour + ":" + e.endminute
|
|
|
|
|
|
this.orderlist.patientId = this.personInfo.patientId
|
|
|
|
|
|
this.orderlist.serviceAddress = this.personInfo.address
|
|
|
|
|
|
},
|
|
|
|
|
|
yeartimeconfirm(e) {
|
|
|
|
|
|
this.orderlist.serviceDate = e.year + '-' + e.month + '-' + e.day
|
|
|
|
|
|
this.yeartime = e.year + '年' + e.month + '月' + e.day + "日"
|
|
|
|
|
|
},
|
|
|
|
|
|
goaddress() {
|
|
|
|
|
|
uni.navigateTo({
|
2022-12-06 10:08:19 +08:00
|
|
|
|
url: `/pages/modifyAddress/modifyAddress?updata=${JSON.stringify(this.orderlist)}`
|
2022-11-25 10:58:46 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
|
@import './appointmenttime.scss'
|
|
|
|
|
|
</style>
|