This commit is contained in:
曹辉 2022-11-23 16:41:09 +08:00
parent 60a2bbb405
commit 04af81f0c0
25 changed files with 313 additions and 89 deletions

View File

@ -0,0 +1,18 @@
import request from "../request.js"
export function insertGoodsEvaluate(data) {
return request({
url: `/nurseApp/orderEvaluate/insertGoodsEvaluate`,
method: 'POST',
data
})
}
//上传图片
export function uploadEvaluatePictureUrl(data) {
return request({
url: `/nurseApp/orderEvaluate/uploadEvaluatePictureUrl`,
method: 'POST',
data
})
}

7
api/startup/index.js Normal file
View File

@ -0,0 +1,7 @@
import request from "../request.js"
export function getExistPatientByPatientId(patientId) {
return request({
url: `/nurseApplet/login/getExistPatientByPatientId?patientId=${patientId}`,
method: 'GET'
})
}

View File

@ -9,7 +9,14 @@
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
},{ }, {
"path": "pages/goodsorderRate/goodsorderRate",
"style": {
"navigationBarTitleText": "发表评价",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff" //背景颜色
}
}, {
"path": "pages/appointmenttime/appointmenttime", "path": "pages/appointmenttime/appointmenttime",
"style": { "style": {
"navigationBarTitleText": "预约时间", "navigationBarTitleText": "预约时间",

View File

@ -28,7 +28,7 @@
<view>订单编号:{{Aftersalesorder.goOrderNo}}</view> <view>订单编号:{{Aftersalesorder.goOrderNo}}</view>
<view>申请金额:¥{{Aftersalesorder.totalPrice}}</view> <view>申请金额:¥{{Aftersalesorder.totalPrice}}</view>
<view>退款原因:{{Aftersalesorder.dictLabel}}</view> <view>退款原因:{{Aftersalesorder.dictLabel}}</view>
<view>申请时间:{{Aftersalesorder.updateTime}}</view> <view v-if="Aftersalesorder.appleTime">申请时间:{{Aftersalesorder.appleTime}}</view>
</view> </view>
</view> </view>
<view class="evaluate"> <view class="evaluate">

View File

@ -12,7 +12,8 @@
<span v-if="item.orderStatus=='WAIT_REFUND'">退款中</span> <span v-if="item.orderStatus=='WAIT_REFUND'">退款中</span>
<span v-if="item.orderStatus=='CANCEL'">已取消</span> <span v-if="item.orderStatus=='CANCEL'">已取消</span>
<span v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'">待收货</span> <span v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'">待收货</span>
<span v-if="item.orderStatus=='RECEIVED_GOODS'">已完成</span> <span v-if="item.orderStatus=='RECEIVED_GOODS'">待评价</span>
<span v-if="item.orderStatus=='EVALUATED'">已完成</span>
<span v-if="item.orderStatus=='PAY'">待发货</span> <span v-if="item.orderStatus=='PAY'">待发货</span>
<span v-if="item.orderStatus=='REFUNDED'">退款成功</span> <span v-if="item.orderStatus=='REFUNDED'">退款成功</span>
<span v-if="item.orderStatus=='WAIT_RETURNED_GOODS'">待退货</span> <span v-if="item.orderStatus=='WAIT_RETURNED_GOODS'">待退货</span>
@ -44,6 +45,8 @@
去支付</view> 去支付</view>
<view class="logistics harvest" @tap='Receipt(item)' v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'"> <view class="logistics harvest" @tap='Receipt(item)' v-if="item.orderStatus=='WAIT_RECEIVED_GOODS'">
确认收货</view> 确认收货</view>
<view class="logistics harvest" @tap='rate(item)' v-if="item.orderStatus=='RECEIVED_GOODS'">
立即评价</view>
</view> </view>
</view> </view>
</view> </view>
@ -99,6 +102,12 @@
} }
}, },
methods: { methods: {
//评价
rate(item) {
uni.navigateTo({
url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(item)}`
})
},
//收货 //收货
Receipts() { Receipts() {
confirmReceipt(this.orderNoitem.goOrderNo).then(res => { confirmReceipt(this.orderNoitem.goOrderNo).then(res => {
@ -111,8 +120,11 @@
this.show = false this.show = false
setTimeout(e => { setTimeout(e => {
uni.navigateTo({ uni.navigateTo({
url: `/pages/orderDetails/orderDetails?goodsOrderId=${this.orderNoitem.goodsOrderId}` url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.orderNoitem)}`
}) })
// uni.navigateTo({
// url: `/pages/orderDetails/orderDetails?goodsOrderId=${this.orderNoitem.goodsOrderId}`
// })
}, 1000) }, 1000)
} else {} } else {}
}) })

View File

@ -8,7 +8,8 @@
{{item.orderStatus=='PAY'?'已付款':''}} {{item.orderStatus=='PAY'?'已付款':''}}
{{item.orderStatus=='WAIT_DISPATCH'?'待服务':''}} {{item.orderStatus=='WAIT_DISPATCH'?'待服务':''}}
{{item.orderStatus=='NOT_FINISH'?'待完成':''}} {{item.orderStatus=='NOT_FINISH'?'待完成':''}}
{{item.orderStatus=='COMPLETE'?'服务完成':''}} {{item.orderStatus=='COMPLETE'?'未评价':''}}
{{item.orderStatus=='EVALUATED'?'服务完成':''}}
{{item.orderStatus=='WAIT_REFUND'?'退款中':''}} {{item.orderStatus=='WAIT_REFUND'?'退款中':''}}
{{item.orderStatus=='REFUNDED'?'已退款':''}} {{item.orderStatus=='REFUNDED'?'已退款':''}}
{{item.orderStatus=='CANCEL'?'已取消':''}} {{item.orderStatus=='CANCEL'?'已取消':''}}

View File

@ -26,25 +26,107 @@
<view class="item"> <view class="item">
</view> </view>
</view> </view>
<u-toast ref="uToast" />
</view> </view>
</template> </template>
<script> <script>
import {
getExistPatientByPatientId
} from '@/api/startup/index.js'
export default { export default {
data() { data() {
return {}; return {
timer: null,
};
}, },
methods: { methods: {
goorder() { goorder() {
uni.navigateTo({ const value = uni.getStorageSync('patientId');
url: '/pages/order/order' var that = this
}) if (value) {
getExistPatientByPatientId(value).then(res => {
if (res.code == 200) {
if (res.msg == 'LOGIN') {
uni.navigateTo({
url: '/pages/order/order'
})
} else {
that.$refs.uToast.show({
title: '当前用户信息不存在,请重新登录',
type: 'error',
duration: '1500'
})
that.remove();
}
} else {
that.$refs.uToast.show({
title: '登录异常,请重新登录',
type: 'error',
duration: '1500'
})
that.remove();
}
})
} else {
that.remove();
that.$refs.uToast.show({
title: '请重新登录',
type: 'error',
duration: '1500'
})
}
},
remove() {
var that = this
uni.removeStorageSync('patientId');
uni.removeStorageSync('phone');
uni.removeStorageSync('password');
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.reLaunch({
url: '/pages/login/login'
})
}, 1500)
}, },
//跳转个人信息页面 //跳转个人信息页面
gouser() { gouser() {
uni.navigateTo({ const value = uni.getStorageSync('patientId');
url: '/pages/user/user' var that = this
}) if (value) {
getExistPatientByPatientId(value).then(res => {
if (res.code == 200) {
if (res.msg == 'LOGIN') {
uni.navigateTo({
url: '/pages/user/user'
})
} else {
that.$refs.uToast.show({
title: '当前用户信息不存在,请重新登录',
type: 'error',
duration: '1500'
})
that.remove();
}
} else {
that.$refs.uToast.show({
title: '登录异常,请重新登录',
type: 'error',
duration: '1500'
})
that.remove();
}
})
} else {
that.$refs.uToast.show({
title: '请重新登录',
type: 'error',
duration: '1500'
})
that.remove();
}
}, },
}, },
} }

View File

@ -35,7 +35,7 @@
<view class="contacts">·联系人:{{list.patientName}}</view> <view class="contacts">·联系人:{{list.patientName}}</view>
<view class="contacts">·电话:{{list.patientPhone}}</view> <view class="contacts">·电话:{{list.patientPhone}}</view>
<view class="contacts">·地址:{{list.serviceAddress}}</view> <view class="contacts">·地址:{{list.serviceAddress}}</view>
<view class="contacts">·时间:{{list.serviceDate}} {{list.serviceStartTime}}-{{list.serviceEndTime}}</view> <view class="contacts">·时间:{{list.serviceDate}} {{list.serviceStartTime}}-{{list.serviceEndTime}}</view>
</view> </view>
<view class="Package">套餐信息: <view class="Package">套餐信息:
<span>¥{{list.nurseItemPrice}}</span> <span>¥{{list.nurseItemPrice}}</span>
@ -58,12 +58,31 @@
¥{{list.totalPrice}} ¥{{list.totalPrice}}
</view> </view>
<view class="cancelorder" @tap="cancelorderment()" <view class="cancelorder" @tap="cancelorderment()"
v-if="list.orderStatus=='PAY'||list.orderStatus=='WAIT_DISPATCH'||list.orderStatus=='NOT_FINISH'">取消订单</view> v-if="list.orderStatus=='PAY'||list.orderStatus=='WAIT_DISPATCH'||list.orderStatus=='NOT_FINISH'">取消订单
</view>
<!-- <view class="cancelorder " style="background: #4C7BC9;">评价</view> --> <!-- <view class="cancelorder " style="background: #4C7BC9;">评价</view> -->
<view class="cancelorder" @tap='buy' style="background-color: darkorange;" v-if="list.orderStatus=='WAIT_PAY'"> <view class="cancelorder" @tap='buy' style="background-color: darkorange;"
v-if="list.orderStatus=='WAIT_PAY'">
去支付 去支付
</view> </view>
<view class="cancelorder" style="background: #4C7BC9;" @tap='rateshow= true'
v-if="list.orderStatus=='COMPLETE'">评价
</view>
</view> </view>
<u-mask :show="rateshow" @tap="rateshow = false">
<view class="mask">
<view class="rateitem" @tap="taprate('SATISFIED')">
满意
</view>
<view class="rateitem" @tap="taprate('COMMONLY')">
一般
</view>
<view class="rateitem" @tap="taprate('DISSATISFIED')">
不满意
</view>
</view>
</u-mask>
<u-toast ref="uToast" />
</view> </view>
</template> </template>
@ -75,9 +94,12 @@
export default { export default {
data() { data() {
return { return {
rateshow: false, //评价
baseurl: '', baseurl: '',
list: {}, list: {},
orderNo: '', orderNo: '',
patientId: '', //id
timer:null,
} }
}, },
onLoad(options) { onLoad(options) {
@ -89,6 +111,30 @@
}, },
methods: { methods: {
//评价
taprate(item) {
var obj = {
"patientId": this.patientId,
"orderNo": this.orderNo,
"evaluateChannel": "PHONE_APP",
"evaluateSatisfaction": item,
}
addAppointmentEvaluate(obj).then(res => {
if (res.code == 200) {
this.$refs.uToast.show({
title: '评价成功',
type: 'success',
duration: '1500'
})
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(e => {
this.getlist();
}, 1500)
}
})
},
getlist() { getlist() {
getAppointmentDetailsInfo(this.orderNo).then(res => { getAppointmentDetailsInfo(this.orderNo).then(res => {
this.list = res.data this.list = res.data

View File

@ -191,7 +191,7 @@
} }
.radio-right { .radio-right {
height: 100rpx; height: 100rpx;
width: 100rpx;
.radio { .radio {
display: inline-block; display: inline-block;
width: 35rpx; width: 35rpx;

View File

@ -28,7 +28,7 @@
margin-top: 20rpx; margin-top: 20rpx;
width:92%; width:92%;
font-size: 28rpx; font-size: 28rpx;
line-height: 32rpx; line-height: 36rpx;
word-break:break-all; word-break:break-all;
} }
.namephone{ .namephone{

View File

@ -6,7 +6,7 @@
width: 701rpx; width: 701rpx;
height: 811rpx; height: 811rpx;
background: #4C7BC9; background: #4C7BC9;
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03); box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx; border-radius: 20rpx;
margin-top: 5%; margin-top: 5%;
// left: 50%; // left: 50%;

View File

@ -58,7 +58,7 @@
width: 701rpx; width: 701rpx;
height: 811rpx; height: 811rpx;
background: #4C7BC9; background: #4C7BC9;
box-shadow: 0px 9px 31px 9px rgba(0, 0, 0, 0.03); box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx; border-radius: 20rpx;
margin-top: 5%; margin-top: 5%;
// left: 50%; // left: 50%;

View File

@ -63,6 +63,12 @@
if (this.diseaseother.diseaseName != '' || this.diseaseother.diseaseName) { if (this.diseaseother.diseaseName != '' || this.diseaseother.diseaseName) {
this.disease.push(this.diseaseother) this.disease.push(this.diseaseother)
} }
this.diseaselist.forEach(e => {
if (this.diseaseother.diseaseName == e.diseaseName) {
this.disease = this.disease.filter(el => el.diseaseName != e.diseaseName)
this.disease.push(e)
}
})
uni.$emit('disease', { uni.$emit('disease', {
disease: JSON.stringify(this.disease) disease: JSON.stringify(this.disease)
}) })

View File

@ -45,32 +45,19 @@
pwdlogin() { pwdlogin() {
appLoginpwd(this.phone, this.password).then(res => { appLoginpwd(this.phone, this.password).then(res => {
if (res.code == 200) { if (res.code == 200) {
if (res.data.registerFlag == false) { uni.setStorageSync("patientId", res.data.patientId)
uni.setStorageSync("patientId", res.data.patientId) uni.setStorageSync("phone", res.data.phone)
uni.setStorageSync("phone", res.data.phone) uni.setStorageSync("password", this.password)
// uni.setStorage({ this.$refs.uToast.show({
// key: 'patientId', title: res.data.message,
// data: res.data.patientId, type: 'success',
// success: function() { duration: '1500'
// console.log('patientId保存成功'); })
// } setTimeout(() => {
// }); uni.switchTab({
this.$refs.uToast.show({ url: '/pages/homepage/homepage',
title: res.data.message,
type: 'success',
duration: '1500'
}) })
setTimeout(() => { }, 1500);
uni.switchTab({
url: '/pages/homepage/homepage',
})
}, 1500);
} else {
this.$refs.uToast.show({
title: res.data.message,
type: 'error'
})
}
} else { } else {
this.$refs.uToast.show({ this.$refs.uToast.show({
title: res.msg, title: res.msg,

View File

@ -171,7 +171,6 @@
var that = this; var that = this;
uni.chooseImage({ uni.chooseImage({
count: 1, count: 1,
sizeType: ['original'],
sourceType: ['album'], sourceType: ['album'],
success(res) { success(res) {
that.appPersonallist.headPictureUrl = res.tempFilePaths[0] that.appPersonallist.headPictureUrl = res.tempFilePaths[0]

View File

@ -13,10 +13,10 @@
<image src="/static/received.png" mode=""></image> <image src="/static/received.png" mode=""></image>
<span>待收货</span> <span>待收货</span>
</view> </view>
<!-- <view class="OrderStatus"> <view class="OrderStatus" @tap="gorate('WAIT_RECEIVED_GOODS')">
<image src="/static/evaluated.png" mode=""></image> <image src="/static/evaluated.png" mode=""></image>
<span>待评价</span> <span>待评价</span>
</view> --> </view>
<view class="OrderStatus" @tap="gocompleted('RECEIVED_GOODS')"> <view class="OrderStatus" @tap="gocompleted('RECEIVED_GOODS')">
<image src="/static/finished.png" mode=""></image> <image src="/static/finished.png" mode=""></image>
<span>已完成</span> <span>已完成</span>
@ -24,7 +24,7 @@
</view> </view>
</view> </view>
<view class="service" @tap="gonursestation"> <view class="service" @tap="gonursestation">
<view class="serviceorder" >护理站服务订单</view> <view class="serviceorder">护理站服务订单</view>
<view class="pictures"> <view class="pictures">
<image src="../../static/jiantou.png" mode=""></image> <image src="../../static/jiantou.png" mode=""></image>
</view> </view>
@ -40,6 +40,11 @@
} }
}, },
methods: { methods: {
gorate(item) {
uni.navigateTo({
url: `/pages/CommodityOrder/CommodityOrder?orderStatus=${item}`
})
},
//护理站服务订单 //护理站服务订单
gonursestation() { gonursestation() {
uni.navigateTo({ uni.navigateTo({

View File

@ -68,6 +68,7 @@
position: absolute; position: absolute;
top:50%; top:50%;
transform: translateY(-50%); transform: translateY(-50%);
width: 68%;
left:18%; left:18%;
height:100rpx; height:100rpx;
} }

View File

@ -4,7 +4,7 @@
<view class="lefttext"> <view class="lefttext">
姓名 姓名
</view> </view>
<input class="righttext" type="text" placeholder="请输入" maxlength="10" v-model="patientName" /> <input class="righttext" style="width: 80%;" type="text" placeholder="请输入" maxlength="10" v-model="patientName" />
</view> </view>
<view class="item"> <view class="item">
<view class="lefttext"> <view class="lefttext">
@ -24,7 +24,8 @@
<view class="lefttext"> <view class="lefttext">
手机号 手机号
</view> </view>
<input class="righttext" style='left:23%' type="text" placeholder="请输入" maxlength="11" v-model="phone" /> <input class="righttext" style='left:23%;width: 77%;' type="text" placeholder="请输入" maxlength="11"
v-model="phone" />
</view> </view>
<!-- <view class="item"> <!-- <view class="item">
<view class="lefttext"> <view class="lefttext">

View File

@ -64,7 +64,7 @@
methods: { methods: {
getlocation() { getlocation() {
uni.getLocation({ uni.getLocation({
type: 'gcj02', type: 'wgs84',
success: res => { success: res => {
this.latitude = res.latitude this.latitude = res.latitude
this.longitude = res.longitude this.longitude = res.longitude
@ -79,7 +79,6 @@
this.requestinfo(); this.requestinfo();
}, },
fail: error => { fail: error => {
console.log("获取定位失败了", error)
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '获取定位失败,是否授权打开定位', content: '获取定位失败,是否授权打开定位',
@ -174,20 +173,23 @@
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { if (value) {
getPatientInfo(value).then(res => { getPatientInfo(value).then(res => {
if (res.data.homeLatitude && res.data.homeLongitude) { if (res.code == 200) {
that.latitude = res.data.homeLatitude if (res.data.homeLatitude && res.data.homeLongitude) {
that.longitude = res.data.homeLongitude that.latitude = res.data.homeLatitude
that.markers.push({ that.longitude = res.data.homeLongitude
id: 3, that.markers.push({
latitude: res.data.homeLatitude, id: 3,
longitude: res.data.homeLongitude, latitude: res.data.homeLatitude,
width: 20, longitude: res.data.homeLongitude,
height: 25, width: 20,
iconPath: "../../static/locatinsmall.png" height: 25,
}) iconPath: "../../static/locatinsmall.png"
that.requestinfo(); })
that.requestinfo();
} else {
that.getlocation()
}
} else { } else {
console.log(1)
that.getlocation() that.getlocation()
} }
}) })

View File

@ -8,22 +8,34 @@
</template> </template>
<script> <script>
import {
appLoginpwd
} from '../../api/login/index.js'
export default { export default {
data() { data() {
return { return {};
};
}, },
onShow() { onShow() {
let that = this let that = this
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('phone');
if (value) { const value2 = uni.getStorageSync('password');
setTimeout(() => { if (value && value2) {
uni.reLaunch({ appLoginpwd(value, value2).then(res => {
url: '/pages/homepage/homepage' if (res.code == 200) {
}); setTimeout(() => {
}, 2000); uni.switchTab({
url: '/pages/homepage/homepage',
})
}, 2000);
} else {
setTimeout(() => {
uni.reLaunch({
url: '/pages/login/login'
});
}, 2000);
}
})
} else { } else {
setTimeout(() => { setTimeout(() => {
uni.reLaunch({ uni.reLaunch({
@ -61,9 +73,10 @@
</script> </script>
<style lang="scss"> <style lang="scss">
.app{ .app {
height: 100vh; height: 100vh;
} }
image { image {
width: 50%; width: 50%;
height: 200rpx; height: 200rpx;

View File

@ -104,11 +104,15 @@
appPersonal, appPersonal,
} from '@/api/user/user.js'; } from '@/api/user/user.js';
import baseurl from '@/api/baseurl.js' import baseurl from '@/api/baseurl.js'
import {
getExistPatientByPatientId
} from '@/api/startup/index.js'
export default { export default {
data() { data() {
return { return {
baseurl: '', baseurl: '',
appPersonallist: [], //获取个人信息 appPersonallist: [], //获取个人信息
timer: null,
} }
}, },
onShow() { onShow() {
@ -125,17 +129,7 @@
content: '确认要退出此账号吗', content: '确认要退出此账号吗',
success: function(res) { success: function(res) {
if (res.confirm) { if (res.confirm) {
uni.removeStorageSync('patientId'); that.removeS();
that.$refs.uToast.show({
title: '退出账号成功',
type: 'success',
duration: '1000'
})
setTimeout(e => {
uni.reLaunch({
url: '/pages/login/login'
})
}, 1000)
} else if (res.cancel) { } else if (res.cancel) {
that.$refs.uToast.show({ that.$refs.uToast.show({
title: '退出账号失败', title: '退出账号失败',
@ -152,8 +146,37 @@
try { try {
const value = uni.getStorageSync('patientId'); const value = uni.getStorageSync('patientId');
if (value) { if (value) {
appPersonal(value).then(res => { getExistPatientByPatientId(value).then(res => {
that.appPersonallist = res.data if (res.code == 200) {
if (res.msg == 'LOGIN') {
appPersonal(value).then(response => {
if (response.code == 200) {
that.appPersonallist = response.data
} else {
that.$refs.uToast.show({
title: '账号异常,请重新登录',
type: 'error',
duration: '1500'
})
that.removeS()
}
})
} else {
that.$refs.uToast.show({
title: '当前用户信息不存在,请重新登录',
type: 'error',
duration: '1500'
})
that.removeS()
}
} else {
that.removeS()
that.$refs.uToast.show({
title: '登录异常,请重新登录',
type: 'error',
duration: '1500'
})
}
}) })
} }
} catch (e) { } catch (e) {
@ -168,6 +191,20 @@
// } // }
// }); // });
}, },
removeS() {
var that = this
uni.removeStorageSync('patientId');
uni.removeStorageSync('phone');
uni.removeStorageSync('password');
if (that.timer) {
clearTimeout(that.timer)
}
that.timer = setTimeout(e => {
uni.reLaunch({
url: '/pages/login/login'
})
}, 1500)
},
updatainfo() { updatainfo() {
uni.navigateTo({ uni.navigateTo({
url: `/pages/modify/modify?appPersonallist=${JSON.stringify(this.appPersonallist)}` url: `/pages/modify/modify?appPersonallist=${JSON.stringify(this.appPersonallist)}`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 121 KiB

BIN
static/gb2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/paishe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
static/video.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB