NurseStationPersonApp/pages/Mymission/Mymission.vue

320 lines
7.0 KiB
Vue
Raw Normal View History

2022-11-03 18:16:30 +08:00
<template>
<view class="app">
<view class="inputs">
<i class="icon"></i>
2022-11-10 10:51:44 +08:00
<input type="text" name="" v-model='nurseItemName' id="" class="input" placeholder="请输入搜索内容">
2022-11-03 18:16:30 +08:00
</view>
<view class="tab">
<view class="tab-item" @tap="testTabClick(index)" v-for="(item,index) in tabList"
:class="tabIndex == index?'active':''">
{{item.name}}
</view>
2022-11-15 15:28:38 +08:00
<view class="Apayment" @tap='gotask(item)' v-if='choicetab==0' v-for="(item,index) in list" :key="item.id">
2022-11-03 18:16:30 +08:00
<view class="names">{{item.serviceDate}} {{item.serviceStartTime}}-{{item.serviceEndTime}}
<span>待完成</span>
</view>
<image :src="baseurl+item.itemPictureUrl" mode=""></image>
<view class="detailsinfo">
<view class="change">
{{item.nurseItemName}}
</view>
<view class="time">
服务时长{{item.itemServeDurationUnit}}
</view>
<view class="price">
{{item.totalPrice}}
</view>
</view>
<view class="anniu">
<view class="logistics" @tap='gotask(item)'>详情</view>
2022-11-10 10:51:44 +08:00
<view class="logistics harvest" @tap='goconfirmCompletion(item)'>去完成</view>
2022-11-03 18:16:30 +08:00
</view>
</view>
2022-11-15 15:28:38 +08:00
<view class="Apayment" @tap='gotask(item)' v-if='choicetab==1' v-for="(item,uindex) in list" :key="uindex">
2022-11-03 18:16:30 +08:00
<view class="names">{{item.serviceDate}} {{item.serviceStartTime}}-{{item.serviceEndTime}}
<span>已完成</span>
</view>
<image src="../../static/fuwutu.png" mode=""></image>
<view class="detailsinfo">
<view class="change">
{{item.nurseItemName}}
</view>
<view class="time">
服务时长{{item.itemServeDurationUnit}}
</view>
<view class="price">
{{item.totalPrice}}
</view>
</view>
2022-11-10 11:42:23 +08:00
<!-- <view class="anniu">
2022-11-03 18:16:30 +08:00
<view class="evaluate">查看评价</view>
2022-11-10 11:42:23 +08:00
</view> -->
2022-11-03 18:16:30 +08:00
</view>
</view>
</view>
</template>
<script>
import {
selectMission
} from '@/api/Mymission.js'
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
baseurl: '',
choicetab: 0, //切换
tabIndex: 0, //切换
tabList: [{
name: "待完成"
}, {
name: "已完成"
}, ],
2022-11-10 10:51:44 +08:00
nursePersonId: '', //护理员id
2022-11-03 18:16:30 +08:00
orderStatus: 'NOT_FINISH', // orderStatus:订单状态 未完成NOT_FINISH服务完成COMPLETE
pageNum: 1,
pageSize: 10,
//未完成任务
list: [],
total: 0,
2022-11-10 10:51:44 +08:00
nurseItemName: '',
}
},
watch: {
nurseItemName() {
this.selectMissioninfo()
2022-11-03 18:16:30 +08:00
}
},
methods: {
2022-11-10 10:51:44 +08:00
//去完成
goconfirmCompletion(item) {
uni.navigateTo({
url: `/pages/confirmCompletion/confirmCompletion?orderDetailsId=${item.id}&orderNo=${item.orderNo}`
})
},
2022-11-03 18:16:30 +08:00
//任务list
selectMissioninfo() {
2022-11-10 10:51:44 +08:00
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize, this.nurseItemName).then(
res => {
this.list = res.rows
this.total = res.total
})
2022-11-03 18:16:30 +08:00
},
//跳转详情页
gotask(item) {
uni.navigateTo({
url: `/pages/taskDetails/taskDetails?orderDetailsId=${item.id}`
})
},
//任务切换
testTabClick(index) {
this.list = []
this.tabIndex = index
this.choicetab = index
this.pageNum == 1
if (this.choicetab == 0) {
this.orderStatus = 'NOT_FINISH'
} else {
this.orderStatus = 'COMPLETE'
}
2022-11-10 10:51:44 +08:00
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize, this.nurseItemName).then(
res => {
this.list = res.rows
this.total = res.total
})
2022-11-03 18:16:30 +08:00
},
// goorderdetails() {
// uni.navigateTo({
// url: '/pages/orderDetails/orderDetails'
// })
// },
},
2022-11-10 10:51:44 +08:00
onShow() { //加载的时候执行(没有次数限制)
2022-11-03 18:16:30 +08:00
this.baseurl = baseurl
2022-11-10 10:51:44 +08:00
var that = this
try {
const value = uni.getStorageSync('nursePersonId');
if (value) {
that.nursePersonId = value
this.selectMissioninfo();
}
} catch (e) {}
2022-11-03 18:16:30 +08:00
},
onReachBottom() { //下滑加载
if (this.list.length >= this.total) {} else {
this.pageNum++
2022-11-10 10:51:44 +08:00
selectMission(this.nursePersonId, this.orderStatus, this.pageNum, this.pageSize, this.nurseItemName).then(
res => {
res.rows.forEach(e => {
this.list.push(e)
})
2022-11-03 18:16:30 +08:00
})
}
},
onPullDownRefresh() { //下拉刷新
this.pageNum = 1;
2022-11-10 10:51:44 +08:00
selectMission(this.nursePersonId, this.orderStatus, this.PageNum, this.PageSize, this.nurseItemName).then(
res => {
this.list = res.rows
this.total = res.total
})
2022-11-03 18:16:30 +08:00
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
}
</script>
<style lang="scss">
.app {
background-color: #F4F5F7;
width: 100%;
height: 100vh;
padding: 1rpx 3%;
.tab .active {
background: #4C7BC9;
}
// 切换
.tab-item {
width: 50%;
text-align: center;
line-height: 70rpx;
color: #ffffff;
background: #BAB7B8;
display: inline-block;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
font-size: 34rpx;
}
.Apayment {
width: 100%;
height: 391rpx;
background: #FFFFFF;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
line-height: 70rpx;
padding: 1%;
font-size: 30rpx;
color: #969394;
margin-top: 20rpx;
position: relative;
image {
display: block;
width: 170rpx;
height: 170rpx;
border-radius: 10rpx;
margin: 30rpx 0 0 20rpx;
}
.anniu {
// width: 375rpx;
float: right;
margin: 30rpx 20rpx 0 0;
.evaluate {
background: #4C7BC9;
width: 216rpx;
height: 68rpx;
text-align: center;
color: #ffffff;
border-radius: 26rpx;
}
.logistics {
width: 175rpx;
height: 68rpx;
text-align: center;
color: #ffffff;
background: #E1AE3C;
border-radius: 26rpx;
display: inline-block;
}
.harvest {
background: #4C7BC9;
margin: 0 0 0 15rpx;
}
}
.detailsinfo {
width: 60%;
height: 200rpx;
border-radius: 10rpx;
position: absolute;
top: 25%;
left: 35%;
.change {
width: 100%;
color: #000000;
font-size: 34rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.time {
width: 100%;
font-size: 32rpx;
color: #999999;
position: absolute;
top: 32%;
}
.price {
width: 100%;
font-size: 30rpx;
color: #D43953;
position: absolute;
top: 65%;
}
}
.names {
width: 95%;
margin-left: 20rpx;
border-bottom: 1rpx solid #D8D4D4;
span {
color: #4C7BC9;
float: right;
}
}
}
.inputs {
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border: 1rpx solid #f0f0f0;
width: 99%;
height: 65rpx;
margin: 20rpx auto;
border-radius: 20rpx;
background-color: #Ffffff;
position: relative;
.input {
position: absolute;
height: 65rpx;
left: 10%;
line-height: 65rpx;
font-size: 26rpx;
color: #BEBEC0;
}
.icon {
background: url(@/static/sousuo.png) no-repeat;
width: 30rpx;
height: 28rpx;
background-size: cover;
position: absolute;
top: 30%;
left: 5%;
}
}
}
</style>