NurseStationPersonApp/pages/taskReturn/taskReturn.vue
2023-04-13 16:02:47 +08:00

237 lines
4.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="app" v-if="tasklist">
<view class="top">
<view class="title">
<image src="../../static/fuwu.png" mode=""></image>
<view class="text">
{{tasklist.nurseItemName}}
</view>
<view class="righttext">
<span v-if="tasklist.orderCommissionAmount&&tasklist.orderCommissionAmount>=0">
{{tasklist.orderCommissionAmount}}
</span>
<span v-else>
0
</span>
</view>
</view>
<view class="content">
<view class="time" style="line-height: 60rpx;padding-top: 15rpx;">
单号
<span v-if="tasklist.orderNo">{{tasklist.orderNo}}</span>
</view>
<view class="time">
时间{{tasklist.serviceDate}}
<span style='padding-left: 10rpx;'>{{tasklist.serviceStartTime}}</span>
</view>
<view class="address">
地点{{tasklist.serviceAddress}}
</view>
</view>
</view>
<view class="bottom">
<view class="title">
<image src="../../static/no.png" mode=""></image>
<view class="text">
拒绝原因多选
</view>
</view>
<view class="checkboxs">
<u-checkbox-group @change="checkboxGroupChange" :wrap='true'>
<u-checkbox @change="checkboxChange" v-model="item.checked" v-for="(item, index) in list"
:key="index" :name="item.name" shape='circle'>{{item.name}}</u-checkbox>
</u-checkbox-group>
</view>
<u-input v-model="value" type="text" :border="true" border-color='#E6E6E6' placeholder='请在此输入'
v-if="list[4].checked" />
</view>
<view class="btn" @tap='taskreturn'>
立即提交
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import {
taskDetails
} from '@/api/taskDetails/taskDetails.js'
import {
orderFallback
} from '@/api/taskReturn/index.js'
export default {
data() {
return {
baseurl: null,
tasklist: null, //传值item
nursePersonId: null, //护理员id
taskReturnReason: '',
value: null, //input绑定
list: [{
name: '与其他工单时间冲突',
checked: false,
}, {
name: '服务要求较高,当前资质无法完成',
checked: false,
}, {
name: '距离较远无法到达',
checked: false,
}, {
name: '价格不合理',
checked: false,
}, {
name: '其它',
checked: false,
}]
}
},
methods: {
// 选中某个复选框时由checkbox时触发
checkboxChange(e) {},
// 选中任一checkbox时由checkbox-group触发
checkboxGroupChange(e) {
this.taskReturnReason = ''
e.forEach(el => {
if (el != '其它') {
this.taskReturnReason += el + ';'
}
})
},
taskreturn() {
if (this.list[4].checked && this.value) {
this.taskReturnReason += this.value + ';'
}
if (!this.tasklist.id) {
this.tasklist.id = this.tasklist.orderDetailsId
}
var obj = {
"appointmentOrderId": this.tasklist.id,
"stationPersonId": this.nursePersonId,
"appointmentOrderNo": this.tasklist.orderNo,
"taskReturnReason": this.taskReturnReason,
}
orderFallback(obj).then(res => {
if (res.code == 200) {
this.$refs.uToast.show({
title: '任务退回成功',
type: 'success',
duration: '1500'
})
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 1500);
} else {
this.$refs.uToast.show({
title: res.msg,
type: 'error',
duration: '1500'
})
}
})
},
},
onLoad(options) {
this.tasklist = JSON.parse(options.item)
var that = this
const value = uni.getStorageSync('nursePersonId');
if (value) {
that.nursePersonId = value
} else {}
},
}
</script>
<style lang="scss">
::v-deep .u-input {
border: 1rpx solid #E6E6E6;
width: 85%;
display: block;
margin: 20rpx auto;
}
::v-deep .u-checkbox {
height: 80rpx !important;
}
.app {
padding: 0;
.btn {
width: 496rpx;
height: 70rpx;
background: #4271B9;
border-radius: 5rpx;
margin: 80rpx auto;
text-align: center;
line-height: 70rpx;
color: #fff;
}
.checkboxs {
padding-left: 50rpx;
}
.bottom {
padding-bottom: 40rpx;
}
.bottom,
.top {
background-color: #fff;
width: 96%;
margin: 15rpx auto 0;
color: #333333;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 5rpx;
}
.top {
padding-bottom: 40rpx;
.content {
padding: 0 50rpx;
font-size: 30rpx;
.time {
line-height: 90rpx;
}
.address {}
}
}
.title {
border-bottom: 1rpx solid #E6E6E6;
display: flex;
height: 100rpx;
line-height: 100rpx;
width: 100%;
position: relative;
.righttext {
position: absolute;
right: 20rpx;
top: 50%;
transform: translateY(-50%);
font-size: 34rpx;
color: #EA706A;
}
.text {
font-size: 34rpx;
line-height: 100rpx;
padding-left: 18rpx;
}
image {
margin: 50rpx 0 0 35rpx;
transform: translateY(-50%);
width: 40rpx;
height: 40rpx;
}
}
}
</style>