You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
306 lines
5.6 KiB
306 lines
5.6 KiB
<template>
|
|
<view class="dispatch">
|
|
<view class="dispatchItem">
|
|
<image :src="$picUrl+'/static/news3/filter.png'" mode="aspectFill"></image>
|
|
<view class="right">
|
|
<view class="title">
|
|
{{info.server_name}}
|
|
</view>
|
|
<view class="num">
|
|
x1
|
|
</view>
|
|
<view class="price">
|
|
<text style="font-size: 26upx;">¥</text>
|
|
<text>{{info.pay_price}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="selectContent">
|
|
<view class="left">
|
|
接单师傅
|
|
</view>
|
|
<view class="right" @click="openPage()">
|
|
<text>{{tabIndex>=0?list[tabIndex].real_name:'请选择接单师傅'}}</text>
|
|
<u-icon name="arrow-right" color="#C3C3C3" size="28"></u-icon>
|
|
</view>
|
|
|
|
</view>
|
|
<u-popup v-model="isShow" mode="bottom" border-radius="12" mask-close-able="false" closeable>
|
|
<view class="goods-classify">
|
|
<view class="goods-classify-hd">选择工程师</view>
|
|
<view class="goods-classify-bd">
|
|
<scroll-view scroll-y class="m">
|
|
<view class="item" v-for="(a,i) in list" @click="tabMItem(i)"><view :class="tabIndex == i?'item-on':''">{{a.real_name}}</view></view>
|
|
</scroll-view>
|
|
</view>
|
|
</view>
|
|
</u-popup>
|
|
<view class="btn" @click="toPaidan()">
|
|
确认派单
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import * as newFunApi from '@/api/newFun'
|
|
export default{
|
|
data(){
|
|
return{
|
|
order_id: "",
|
|
info: {},
|
|
list: [],
|
|
tabIndex: -1,
|
|
isShow: false,
|
|
isClick: true
|
|
}
|
|
},
|
|
onLoad(o) {
|
|
if(o.order_id && o.type == 'fuwuorder'){
|
|
this.type = o.type
|
|
this.order_id = o.order_id;
|
|
this.getInfo()
|
|
this.getList();
|
|
}
|
|
|
|
},
|
|
methods:{
|
|
openPage() {
|
|
this.isShow = true
|
|
},
|
|
tabMItem(i){
|
|
this.tabIndex = i;
|
|
this.isShow = false
|
|
},
|
|
/**
|
|
* 获取详情
|
|
*/
|
|
async getInfo() {
|
|
const {status, message, data} = await newFunApi.serverOrderDetails({
|
|
order_id: this.order_id
|
|
});
|
|
if(status == 200){
|
|
this.info = data.info
|
|
}
|
|
},
|
|
/**
|
|
* 获取列表
|
|
*/
|
|
async getList() {
|
|
const {status, message, data} = await newFunApi.serverGetEngineer({
|
|
order_id: this.order_id
|
|
});
|
|
if(status == 200){
|
|
this.list = data.list
|
|
}
|
|
},
|
|
/**
|
|
* 派单
|
|
*/
|
|
async toPaidan() {
|
|
if(this.isClick == false){
|
|
return ;
|
|
}
|
|
this.isClick = false
|
|
const {status, message, data} = await newFunApi.serverDispatchOrders({
|
|
order_id: this.order_id,
|
|
dealer_id: this.tabIndex <= -1?"":this.list[this.tabIndex].user_id
|
|
});
|
|
if(status == 200){
|
|
this.isClick = true
|
|
uni.showToast({
|
|
title: "派单成功"
|
|
})
|
|
setTimeout(()=>{
|
|
uni.navigateBack({
|
|
delta: 1
|
|
})
|
|
},2000)
|
|
}else{
|
|
uni.showToast({
|
|
icon: "none",
|
|
title: message
|
|
})
|
|
}
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
page{
|
|
min-height: 100%;
|
|
background-color: #F7F8FA;
|
|
}
|
|
.goods-classify{
|
|
width: 100%;
|
|
overflow: hidden;
|
|
&-hd{
|
|
padding: 30rpx 60rpx;
|
|
position: relative;
|
|
font-size: 32rpx;
|
|
font-weight: 500;
|
|
color: #303030;
|
|
text-align: center;
|
|
.a{
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 28rpx;
|
|
font-weight: 500;
|
|
color: #FF624F;
|
|
position: absolute;
|
|
top: 30rpx;
|
|
left: 40rpx;
|
|
z-index: 2;
|
|
}
|
|
}
|
|
&-bd{
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
.l{
|
|
width: 210rpx;
|
|
height: 560rpx;
|
|
background-color: #F7F8FA;
|
|
.item{
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
height: 70rpx;
|
|
font-size: 28rpx;
|
|
font-weight: 400;
|
|
color: #303030;
|
|
white-space: nowrap;
|
|
line-height: 70rpx;
|
|
padding-left: 30rpx;
|
|
box-sizing: border-box;
|
|
text-align: left;
|
|
&-on{
|
|
background-color: #fff;
|
|
font-weight: 500;
|
|
}
|
|
}
|
|
}
|
|
.m{
|
|
width: 100%;
|
|
text-align: center;
|
|
max-height: 560rpx;
|
|
.item{
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
height: 70rpx;
|
|
font-size: 28rpx;
|
|
font-weight: 400;
|
|
color: #303030;
|
|
white-space: nowrap;
|
|
line-height: 70rpx;
|
|
padding-left: 80rpx;
|
|
box-sizing: border-box;
|
|
text-align: left;
|
|
&-on{
|
|
color: #FF624F;
|
|
}
|
|
}
|
|
}
|
|
.r{
|
|
width: 540rpx;
|
|
height: 560rpx;
|
|
.item{
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
height: 70rpx;
|
|
font-size: 28rpx;
|
|
font-weight: 400;
|
|
color: #303030;
|
|
white-space: nowrap;
|
|
line-height: 70rpx;
|
|
padding-left: 80rpx;
|
|
box-sizing: border-box;
|
|
&-on{
|
|
color: #FF624F;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.dispatchItem{
|
|
display: flex;
|
|
align-items: center;
|
|
padding:40upx;
|
|
background-color: #fff;
|
|
border-top:1px solid #EBEBEB;
|
|
image{
|
|
width: 180upx;
|
|
height:150upx;
|
|
}
|
|
.right{
|
|
flex:1;
|
|
margin-left:40upx;
|
|
.title{
|
|
|
|
font-size: 28upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #3B3B3B;
|
|
|
|
}
|
|
.num{
|
|
|
|
font-size: 28upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #1E1E1E;
|
|
margin-top:44upx;
|
|
}
|
|
.price{
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
font-size: 32upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #F21A1C;
|
|
|
|
}
|
|
}
|
|
}
|
|
.selectContent{
|
|
padding:40upx;
|
|
background-color: #fff;
|
|
border-top:1px solid #EBEBEB;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
.left{
|
|
|
|
font-size: 28upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #3B3B3B;
|
|
|
|
}
|
|
.right{
|
|
text{
|
|
|
|
font-size: 28upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #B0B0B0;
|
|
|
|
}
|
|
}
|
|
}
|
|
.btn{
|
|
width: 80%;
|
|
height: 100upx;
|
|
background: #FFAAA4;
|
|
border-radius: 6px 6px 6px 6px;
|
|
opacity: 1;
|
|
line-height: 100upx;
|
|
text-align: center;
|
|
font-size: 28upx;
|
|
font-family: PingFang SC, PingFang SC;
|
|
font-weight: 500;
|
|
color: #FFFFFF;
|
|
margin:66upx auto;
|
|
|
|
}
|
|
</style> |