对接订单页剩下接口
This commit is contained in:
parent
2768d24990
commit
ca37ed420b
@ -32,6 +32,7 @@
|
|||||||
boxShadow: '0rpx 0rpx 12rpx rgba(202,202,182,0.5)',
|
boxShadow: '0rpx 0rpx 12rpx rgba(202,202,182,0.5)',
|
||||||
filter: 'opacity(0.96)'}"></u-back-top>
|
filter: 'opacity(0.96)'}"></u-back-top>
|
||||||
</view>
|
</view>
|
||||||
|
<Movable v-if="current === 0" :iconName="ordFileUrl+addIcon" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -42,15 +43,19 @@ import Route from '@/aircraft/server/route/route.vue';
|
|||||||
import My from '@/aircraft/server/my/my.vue';
|
import My from '@/aircraft/server/my/my.vue';
|
||||||
import configService from '@/common/config.service.js';
|
import configService from '@/common/config.service.js';
|
||||||
import Topnav from '@/components/topnav/index.vue';
|
import Topnav from '@/components/topnav/index.vue';
|
||||||
|
import Movable from '../order/components/movable.vue';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Order, Equipment, Route, My, Topnav
|
Order, Equipment, Route, My, Topnav, Movable
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
current: uni.getStorageSync('current')||0,// 当前页码下标
|
current: uni.getStorageSync('current')||0,// 当前页码下标
|
||||||
loading: false,
|
loading: false,
|
||||||
fileUrl: configService.fileUrl + 'aerocraft/navigation/',//导航栏图标基础路径
|
fileUrl: configService.fileUrl + 'aerocraft/navigation/',//导航栏图标基础路径
|
||||||
|
ordFileUrl: configService.fileUrl + 'aerocraft/order/',//订单页图标基础路径
|
||||||
|
// 新增图标
|
||||||
|
addIcon: 'add.png',
|
||||||
// a端导航栏按钮
|
// a端导航栏按钮
|
||||||
aNavicationList:[
|
aNavicationList:[
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,6 +3,9 @@
|
|||||||
<Topnav :topLevel="1" :title="`${form.orderId?'编辑':'新增'}订单`" defaultBackColor="#333333"
|
<Topnav :topLevel="1" :title="`${form.orderId?'编辑':'新增'}订单`" defaultBackColor="#333333"
|
||||||
defaultNavTextColor="#333333" showBack :fixed="false" />
|
defaultNavTextColor="#333333" showBack :fixed="false" />
|
||||||
<view class="order-form">
|
<view class="order-form">
|
||||||
|
<view class="order-delete" v-if="canDelete">
|
||||||
|
<u-icon name="trash" color="#333" size="46" @click="handleDelete"/>
|
||||||
|
</view>
|
||||||
<view class="order-field">
|
<view class="order-field">
|
||||||
<u-form ref="uForm" :model="form" label-position="top"
|
<u-form ref="uForm" :model="form" label-position="top"
|
||||||
:label-style="{fontFamily: 'PingFang SC, PingFang SC',
|
:label-style="{fontFamily: 'PingFang SC, PingFang SC',
|
||||||
@ -53,14 +56,16 @@
|
|||||||
<u-form-item v-if="form.orderId" label="下单时间:" :border-bottom="false">
|
<u-form-item v-if="form.orderId" label="下单时间:" :border-bottom="false">
|
||||||
<u-input disabled class="field-ninput" placeholder="下单时间" v-model="form.orderCreateTime" />
|
<u-input disabled class="field-ninput" placeholder="下单时间" v-model="form.orderCreateTime" />
|
||||||
</u-form-item>
|
</u-form-item>
|
||||||
<u-form-item v-if="form.orderId" label="订单确认人:" :border-bottom="false">
|
<u-form-item v-if="form.orderId" :label="`订单确认人${form.confirmStatus?
|
||||||
|
(form.confirmStatus===1?'(待确认)':'(已确认)'):''}:`" :border-bottom="false">
|
||||||
<u-input disabled class="field-ninput" placeholder="订单确认人" v-model="form.customerName" />
|
<u-input disabled class="field-ninput" placeholder="订单确认人" v-model="form.customerName" />
|
||||||
</u-form-item>
|
</u-form-item>
|
||||||
<view class="field-btns">
|
<view class="field-btns" v-if="isPilot&&(!form.confirmStatus||form.confirmStatus===0)
|
||||||
<u-button type="warning" :custom-style="customStyle" style="width: 100%;"
|
&&(!form.orderId||form.orderInitiatorId==userMessage.id)">
|
||||||
|
<u-button type="warning" :custom-style="customStyle" style="width: 100%;" v-if="!isDisable"
|
||||||
:hair-line="false" @click="saveOrder" :loading="saveLoading">保存</u-button>
|
:hair-line="false" @click="saveOrder" :loading="saveLoading">保存</u-button>
|
||||||
<u-button style="margin-left: 30rpx;width: 100%;" type="warning" v-if="form.orderId"
|
<u-button :style="{marginLeft: isDisable?'0rpx':'30rpx',width: '100%'}" type="warning"
|
||||||
:custom-style="customStyle"
|
v-if="form.orderId" :custom-style="customStyle"
|
||||||
:hair-line="false" @click="finishOrder">完成订单</u-button>
|
:hair-line="false" @click="finishOrder">完成订单</u-button>
|
||||||
</view>
|
</view>
|
||||||
</u-form>
|
</u-form>
|
||||||
@ -186,6 +191,8 @@ export default {
|
|||||||
showScenOrCus: false,
|
showScenOrCus: false,
|
||||||
// 当前景区/客户选择类型
|
// 当前景区/客户选择类型
|
||||||
scenOrCusType: '',
|
scenOrCusType: '',
|
||||||
|
// 订单状态
|
||||||
|
orderStatus: ['进行中','已完成','已取消'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onReady() {
|
onReady() {
|
||||||
@ -198,6 +205,18 @@ export default {
|
|||||||
const arr = isScen ? this.scenics : this.customers;
|
const arr = isScen ? this.scenics : this.customers;
|
||||||
const index = this.form[isScen?'attractionId':'customerId'];
|
const index = this.form[isScen?'attractionId':'customerId'];
|
||||||
return index?[arr.findIndex(item=>item.id === index)]:[0];
|
return index?[arr.findIndex(item=>item.id === index)]:[0];
|
||||||
|
},
|
||||||
|
// 判断是否可以删除
|
||||||
|
canDelete(){
|
||||||
|
const { orderId, orderInitiatorId, confirmStatus, orderTaskDetailList } = this.form;
|
||||||
|
return orderId&&this.isPilot&&orderInitiatorId==this.userMessage.id
|
||||||
|
&&(!confirmStatus||confirmStatus===0)&&(!orderTaskDetailList||orderTaskDetailList.some(
|
||||||
|
item=>!this.orderStatus.includes(item.orderItemStatus)));
|
||||||
|
},
|
||||||
|
// 判断是否禁用保存
|
||||||
|
isDisable(){
|
||||||
|
const { orderTaskDetailList } = this.form;
|
||||||
|
return orderTaskDetailList&&orderTaskDetailList.length>0;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
@ -234,27 +253,65 @@ export default {
|
|||||||
async getOrderDetail(){
|
async getOrderDetail(){
|
||||||
let res = await this.$api.orderDetail(this.form.orderId);
|
let res = await this.$api.orderDetail(this.form.orderId);
|
||||||
if(res){
|
if(res){
|
||||||
const { id, customerName, phone, scenicName, surchargeAmount, cargoWeight, orderNo, orderCreateTime, orderInitiator } = res;
|
const { id, customerName, phone, scenicName, surchargeAmount, cargoWeight,
|
||||||
|
orderNo, orderCreateTime, orderInitiator, confirmStatus, orderInitiatorId,
|
||||||
|
customerId, attractionId, routeIds, operatorIds, orderTaskDetailList } = res;
|
||||||
this.form = {
|
this.form = {
|
||||||
orderId: id,
|
orderId: id,
|
||||||
orderNo: orderNo,
|
orderNo: orderNo,
|
||||||
orderType: 1,
|
orderType: 1,
|
||||||
orderTypeName: '载物订单',
|
orderTypeName: '载物订单',
|
||||||
customerName: customerName,
|
customerName: customerName,
|
||||||
customerId: '',//
|
customerId: customerId,//
|
||||||
phone: phone,
|
phone: phone,
|
||||||
attractionName: scenicName,
|
attractionName: scenicName,
|
||||||
attractionId: '',//
|
attractionId: attractionId,//
|
||||||
surchargeAmount: surchargeAmount,
|
surchargeAmount: surchargeAmount,
|
||||||
cargoWeight: cargoWeight,
|
cargoWeight: cargoWeight,
|
||||||
operatorIds: [],
|
operatorIds: [],
|
||||||
routeIds: [],
|
routeIds: [],
|
||||||
orderInitiator: orderInitiator,
|
orderInitiator: orderInitiator,
|
||||||
orderCreateTime: orderCreateTime,
|
orderCreateTime: orderCreateTime,
|
||||||
|
confirmStatus: confirmStatus,
|
||||||
|
orderInitiatorId: orderInitiatorId,
|
||||||
|
orderTaskDetailList: orderTaskDetailList,
|
||||||
|
}
|
||||||
|
let resp = await this.$api.allRoutesByScenicId(attractionId);
|
||||||
|
if(resp){
|
||||||
|
this.routes = resp || [];
|
||||||
|
this.form.routeIds = resp.filter(item=> routeIds.includes(item.key));
|
||||||
|
this.form.operatorIds = this.operators.filter(item=> operatorIds.includes(item.id));
|
||||||
|
} else {
|
||||||
|
this.$refs.uToast.show({type: 'error',title: "景区路线获取失败!"});
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
this.$refs.uToast.show({type: 'error',title: "订单详情获取失败!"});
|
this.$refs.uToast.show({type: 'error',title: "订单详情获取失败!"});
|
||||||
},
|
},
|
||||||
|
// 删除订单
|
||||||
|
handleDelete(){
|
||||||
|
let that = this;
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '是否确认删除该订单?',
|
||||||
|
confirmColor: '#FE020E',
|
||||||
|
success: async(res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
try {
|
||||||
|
let res = await that.$api.deleteOrder(that.form.orderId);
|
||||||
|
if(res === undefined){
|
||||||
|
that.$refs.uToast.show({type: 'error',title: "订单详删除失败!"});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uni.navigateBack({complete() {
|
||||||
|
that.$u.toast('订单删除成功!');
|
||||||
|
}})
|
||||||
|
} catch (error) {
|
||||||
|
that.$refs.uToast.show({type: 'error',title: "订单详删除失败!"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
// 选择路线
|
// 选择路线
|
||||||
changeRoute(e){
|
changeRoute(e){
|
||||||
},
|
},
|
||||||
@ -294,14 +351,13 @@ export default {
|
|||||||
routeIds:that.form.routeIds.map(item=>item.key),
|
routeIds:that.form.routeIds.map(item=>item.key),
|
||||||
orderCreateTime:that.$u.timeFormat(new Date().getTime(),'yyyy-mm-dd hh:MM:ss')}
|
orderCreateTime:that.$u.timeFormat(new Date().getTime(),'yyyy-mm-dd hh:MM:ss')}
|
||||||
console.log('验证通过',that.form);
|
console.log('验证通过',that.form);
|
||||||
let res = await that.$api.addOrder(data);
|
let res = that.form.orderId ? await that.$api.editOrder(data) : await that.$api.addOrder(data);
|
||||||
that.saveLoading = false;
|
that.saveLoading = false;
|
||||||
uni.navigateBack({complete() {
|
uni.navigateBack({complete() {
|
||||||
uni.showToast({
|
that.$u.toast(`订单${that.form.orderId?'编辑':'新增'}成功!`);
|
||||||
icon: 'none',
|
|
||||||
title: '订单新增成功!'
|
|
||||||
})
|
|
||||||
}})
|
}})
|
||||||
|
}else{
|
||||||
|
that.saveLoading = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}catch(e){
|
}catch(e){
|
||||||
@ -312,15 +368,23 @@ export default {
|
|||||||
// 完成订单
|
// 完成订单
|
||||||
async finishOrder(){
|
async finishOrder(){
|
||||||
let that = this;
|
let that = this;
|
||||||
|
if(!this.form.orderTaskDetailList || this.form.orderTaskDetailList.length === 0){
|
||||||
|
this.$refs.uToast.show({type: 'warning',title: "该订单不存在飞行任务,无法完成!"});
|
||||||
|
return;
|
||||||
|
}
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '订单完成',
|
title: '订单完成',
|
||||||
content: '是否确认完成该订单?',
|
content: '是否确认完成该订单?',
|
||||||
confirmColor: '#f7c04d',
|
confirmColor: '#f7c04d',
|
||||||
success: async(res) => {
|
success: async(res) => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
let res = await that.$api.completeOrder(that.form.orderId);
|
try {
|
||||||
that.$refs.uToast.show({type: res?'success':'error',
|
let res = await that.$api.completeOrder(that.form.orderId);
|
||||||
title: `订单完成操作${res?'成功':'失败'}!`});
|
that.$refs.uToast.show({type: 'success', title: `订单完成操作成功!`});
|
||||||
|
that.init();
|
||||||
|
} catch (error) {
|
||||||
|
that.$refs.uToast.show({type: 'error', title: `订单完成操作失败!`});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -334,6 +398,15 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
position: relative;
|
||||||
|
.order-delete{
|
||||||
|
position: absolute;
|
||||||
|
right: 50rpx;
|
||||||
|
z-index: 1;
|
||||||
|
&:active{
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
}
|
||||||
.order-form{
|
.order-form{
|
||||||
padding: 30rpx 32rpx 52rpx;
|
padding: 30rpx 32rpx 52rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -109,7 +109,7 @@
|
|||||||
新增任务
|
新增任务
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-popup v-model="showAddAction" mode="bottom" border-radius="40">
|
<u-popup v-model="showAddAction" mode="bottom" border-radius="40" @close="closeAddAction">
|
||||||
<view class="action-popup">
|
<view class="action-popup">
|
||||||
<view class="action-top">
|
<view class="action-top">
|
||||||
<view class="action-close" />
|
<view class="action-close" />
|
||||||
@ -120,14 +120,19 @@
|
|||||||
<view class="action-lam" style="margin-top: 72rpx;">
|
<view class="action-lam" style="margin-top: 72rpx;">
|
||||||
<view class="lam-title">执行设备</view>
|
<view class="lam-title">执行设备</view>
|
||||||
<u-input class="lam-input" placeholder-style="font-size:32rpx;color:#B3B3B3;"
|
<u-input class="lam-input" placeholder-style="font-size:32rpx;color:#B3B3B3;"
|
||||||
custom-style="font-size:32rpx;"
|
custom-style="font-size:32rpx;" placeholder="请选择设备" type="select"
|
||||||
v-model="form.equipmentName" @click="handleClickPick"
|
v-model="form.deviceName" @click="handleClickPick('设备')" :clearable="false"/>
|
||||||
placeholder="请选择设备" type="select" :clearable="false" />
|
</view>
|
||||||
|
<view class="action-lam">
|
||||||
|
<view class="lam-title">执行路线</view>
|
||||||
|
<u-input class="lam-input" placeholder-style="font-size:32rpx;color:#B3B3B3;"
|
||||||
|
custom-style="font-size:32rpx;" v-model="form.routeName" type="select" :clearable="false"
|
||||||
|
@click="handleClickPick('路线')" placeholder="请选择路线" />
|
||||||
</view>
|
</view>
|
||||||
<view class="action-lam">
|
<view class="action-lam">
|
||||||
<view class="lam-title">载货重量</view>
|
<view class="lam-title">载货重量</view>
|
||||||
<u-input class="lam-input" placeholder-style="font-size:32rpx;color:#B3B3B3;"
|
<u-input class="lam-input" placeholder-style="font-size:32rpx;color:#B3B3B3;"
|
||||||
custom-style="font-size:32rpx;" v-model.number="form.weight"
|
custom-style="font-size:32rpx;" v-model.number="form.cargoWeight"
|
||||||
placeholder="请填写重量" type="number" :clearable="false" />
|
placeholder="请填写重量" type="number" :clearable="false" />
|
||||||
<view class="lam-input-right">KG</view>
|
<view class="lam-input-right">KG</view>
|
||||||
</view>
|
</view>
|
||||||
@ -189,13 +194,22 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
<u-picker mode="selector" v-model="showEquipment" :default-selector="getDefaultSelector" :range="equipments"
|
<u-picker mode="selector" v-model="showPick" :default-selector="getDefaultSelector" :range="pickType==='设备'?equipments:routes"
|
||||||
range-key="name" confirm-color="#f7c04d" title="执行设备选择" @confirm="handleChangePick"></u-picker>
|
range-key="value" confirm-color="#f7c04d" :title="`执行${pickType}`" @confirm="handleChangePick"></u-picker>
|
||||||
|
<u-modal v-model="showChangeState" title="更新状态" show-cancel-button confirm-color="#f7c04d" @confirm="handleChangeState">
|
||||||
|
<view class="slot-content">
|
||||||
|
<u-input placeholder="请选择任务状态" v-model="stateForm.taskStatusName"
|
||||||
|
@click="showChangeStatePick = true" type="select"/>
|
||||||
|
<u-picker mode="selector" v-model="showChangeStatePick" :default-selector="getDefaultStateSelector" :range="stateList"
|
||||||
|
range-key="value" confirm-color="#f7c04d" title="飞行任务状态" @confirm="handleClickState"></u-picker>
|
||||||
|
</view>
|
||||||
|
</u-modal>
|
||||||
<u-back-top :scrollTop="scrollTop" zIndex="100" :duration="500"
|
<u-back-top :scrollTop="scrollTop" zIndex="100" :duration="500"
|
||||||
:iconStyle="{ color: '#fff' }" :customStyle="{background: 'linear-gradient(180deg, #f8b500 0%, #fceabb 100%)',
|
:iconStyle="{ color: '#fff' }" :customStyle="{background: 'linear-gradient(180deg, #f8b500 0%, #fceabb 100%)',
|
||||||
boxShadow: '0rpx 0rpx 12rpx rgba(202,202,182,0.5)',
|
boxShadow: '0rpx 0rpx 12rpx rgba(202,202,182,0.5)',
|
||||||
filter: 'opacity(0.96)'}"></u-back-top>
|
filter: 'opacity(0.96)'}"></u-back-top>
|
||||||
<u-toast ref="uToast"></u-toast>
|
<u-toast ref="uToast"></u-toast>
|
||||||
|
<DotLoading :show="dotLoading" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -212,8 +226,14 @@ export default {
|
|||||||
computed:{
|
computed:{
|
||||||
// 获取选择器默认值
|
// 获取选择器默认值
|
||||||
getDefaultSelector(){
|
getDefaultSelector(){
|
||||||
const index = this.form.equipmentId;
|
const isDevice = this.pickType === '设备';
|
||||||
return index?[this.equipments.findIndex(item=>item.id === index)]:[0];
|
const index = isDevice ? this.form.deviceId : this.form.routeId;
|
||||||
|
const arr = isDevice ? this.equipments : this.routes;
|
||||||
|
return index?[arr.findIndex(item=>item.key === index)]:[0];
|
||||||
|
},
|
||||||
|
// 获取状态选择器默认值
|
||||||
|
getDefaultStateSelector(){
|
||||||
|
return [this.stateList.findIndex(item=>item.key === this.stateForm.taskStatus)]||[0];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
@ -251,6 +271,12 @@ export default {
|
|||||||
borderRadius: '10rpx',
|
borderRadius: '10rpx',
|
||||||
border: '2rpx solid #999999'
|
border: '2rpx solid #999999'
|
||||||
},
|
},
|
||||||
|
// 状态表单
|
||||||
|
stateForm: {
|
||||||
|
orderTaskId: '',
|
||||||
|
taskStatus: 0,
|
||||||
|
taskStatusName: '未进行'
|
||||||
|
},
|
||||||
// 上传文件
|
// 上传文件
|
||||||
fileList: [],
|
fileList: [],
|
||||||
//我的页图标基础路径
|
//我的页图标基础路径
|
||||||
@ -281,19 +307,38 @@ export default {
|
|||||||
showAddAction: false,
|
showAddAction: false,
|
||||||
// 执行设备列表
|
// 执行设备列表
|
||||||
equipments:[],
|
equipments:[],
|
||||||
// 显示设备选择器
|
// 显示选择器
|
||||||
showEquipment: false,
|
showPick: false,
|
||||||
|
// 选择器类型
|
||||||
|
pickType: '',
|
||||||
|
// 显示状态更改弹窗
|
||||||
|
showChangeState: false,
|
||||||
|
showChangeStatePick: false,
|
||||||
// 任务form
|
// 任务form
|
||||||
form:{
|
form:{
|
||||||
equipmentName: '',
|
orderId: '',
|
||||||
equipmentId: '',
|
deviceName: '',
|
||||||
weight: '',
|
deviceId: '',
|
||||||
photo: ''
|
cargoWeight: '',
|
||||||
|
attachmentMaterialList: [],
|
||||||
|
routeId: '',
|
||||||
|
routeName: ''
|
||||||
},
|
},
|
||||||
|
// 新增任务加载
|
||||||
|
dotLoading: false,
|
||||||
|
// 路线列表
|
||||||
|
routes: [],
|
||||||
// 订单详情
|
// 订单详情
|
||||||
orderDetail: {},
|
orderDetail: {},
|
||||||
// 当前页
|
// 当前页
|
||||||
current: 0,
|
current: 0,
|
||||||
|
// 状态列表
|
||||||
|
stateList: [
|
||||||
|
{ key: 0, value: '未进行' },
|
||||||
|
{ key: 1, value: '进行中' },
|
||||||
|
{ key: 2, value: '已完成' },
|
||||||
|
{ key: 3, value: '已取消' },
|
||||||
|
],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onPageScroll(e) {
|
onPageScroll(e) {
|
||||||
@ -303,6 +348,7 @@ export default {
|
|||||||
this.scrollTop = e.scrollTop;
|
this.scrollTop = e.scrollTop;
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
|
this.form.orderId = e.id;
|
||||||
this.init(e.id);
|
this.init(e.id);
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
@ -312,40 +358,167 @@ export default {
|
|||||||
let res = await this.$api.orderDetail(id);
|
let res = await this.$api.orderDetail(id);
|
||||||
if(res) this.orderDetail = res;
|
if(res) this.orderDetail = res;
|
||||||
else this.$refs.uToast.show({type: 'error',title: "订单详情获取失败!"});
|
else this.$refs.uToast.show({type: 'error',title: "订单详情获取失败!"});
|
||||||
|
let resp = await this.$api.allRoutesByScenicId(res.attractionId);
|
||||||
|
if(resp){
|
||||||
|
this.routes = resp || [];
|
||||||
|
} else {
|
||||||
|
this.$refs.uToast.show({type: 'error',title: "景区路线获取失败!"});
|
||||||
|
}
|
||||||
|
let respx = await this.$api.obtainDeviceList({attractionId: res.attractionId});
|
||||||
|
if(respx){
|
||||||
|
this.equipments = respx || [];
|
||||||
|
} else {
|
||||||
|
this.$refs.uToast.show({type: 'error',title: "景区设备获取失败!"});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
closeAddAction(){
|
||||||
|
this.clearForm();
|
||||||
|
this.showAddAction = false;
|
||||||
|
},
|
||||||
|
// 获取订单详情
|
||||||
|
async getOrderDetail(id){
|
||||||
|
let res = await this.$api.orderDetail(id);
|
||||||
|
if(res) this.orderDetail = res;
|
||||||
|
else this.$refs.uToast.show({type: 'error',title: "订单详情获取失败!"});
|
||||||
},
|
},
|
||||||
// 设备选择
|
// 设备选择
|
||||||
handleClickPick(){
|
handleClickPick(type){
|
||||||
this.showEquipment = true;
|
this.pickType = type;
|
||||||
|
this.showPick = true;
|
||||||
},
|
},
|
||||||
// 上传图片
|
// 上传图片
|
||||||
uploadFile({fileFullPath}){
|
uploadFile(file){
|
||||||
this.form.photo = fileFullPath;
|
this.form.attachmentMaterialList = [file];
|
||||||
},
|
},
|
||||||
// 删除图片
|
// 删除图片
|
||||||
removeFile(index){
|
removeFile(index){
|
||||||
this.form.photo = "";
|
this.form.attachmentMaterialList = [];
|
||||||
},
|
},
|
||||||
// 选择器值改变
|
// 选择器值改变
|
||||||
handleChangePick(index){
|
handleChangePick(index){
|
||||||
const val = this.equipments[index[0]];
|
const valueForm = this.pickType==='设备' ?
|
||||||
this.form.equipmentId = val?.id || '';
|
{ list: this.equipments, id: 'deviceId', name: 'deviceName' } :
|
||||||
this.form.equipmentName = val?.name || '';
|
{ list: this.routes, id: 'routeId', name: 'routeName' }
|
||||||
|
const val = valueForm.list[index[0]];
|
||||||
|
this.form[valueForm.id] = val?.key || '';
|
||||||
|
this.form[valueForm.name] = val?.value || '';
|
||||||
|
},
|
||||||
|
// 选择飞行任务状态
|
||||||
|
handleClickState(index){
|
||||||
|
const val = this.stateList[index[0]];
|
||||||
|
this.stateForm.taskStatus = val.key;
|
||||||
|
this.stateForm.taskStatusName = val.value;
|
||||||
},
|
},
|
||||||
// 保存任务
|
// 保存任务
|
||||||
handleSave(){
|
async handleSave(){
|
||||||
if(this.current === 2){
|
if(this.current!==0){
|
||||||
this.showAddAction = false;
|
this.showAddAction = this.current !== 2;
|
||||||
this.current = 0;
|
this.current = (this.current+1)%3;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
this.current += 1;
|
const data = this.form;
|
||||||
|
console.log(data);
|
||||||
|
let warningMessage = '';
|
||||||
|
if(!data.deviceId){
|
||||||
|
warningMessage = '请选择执行设备!';
|
||||||
|
}else if(!data.routeId){
|
||||||
|
warningMessage = '请选择执行路线!';
|
||||||
|
}else if(!data.cargoWeight||!/^-?\d*\.?\d+$/.test(data.cargoWeight)){
|
||||||
|
warningMessage = '载货重量格式错误!';
|
||||||
|
}else if(data.attachmentMaterialList.length===0){
|
||||||
|
warningMessage = '请上传货物图片!';
|
||||||
|
}else{
|
||||||
|
try {
|
||||||
|
this.dotLoading = true;
|
||||||
|
let res = await this.$api.addOrderTask(data);
|
||||||
|
if(res === undefined){
|
||||||
|
this.$refs.uToast.show({type: 'error',title: '飞行任务新增失败(新增订单飞行任务: 同一个订单同一个飞行员,只能存在一个任务状态处于[未进行或进行中])!'});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await this.clearForm();
|
||||||
|
await this.getOrderDetail(this.form.orderId);
|
||||||
|
this.dotLoading = false;
|
||||||
|
this.current += 1;
|
||||||
|
this.$refs.uToast.show({type: 'success',title: `飞行任务新增成功!`});
|
||||||
|
} catch (error) {
|
||||||
|
this.dotLoading = false;
|
||||||
|
this.$refs.uToast.show({type: 'error',title: '飞行任务新增失败!'});
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$refs.uToast.show({type: 'warning',title: warningMessage});
|
||||||
|
},
|
||||||
|
// 修改任务状态
|
||||||
|
async handleChangeState(){
|
||||||
|
try {
|
||||||
|
const { orderTaskId, taskStatus } = this.stateForm;
|
||||||
|
let res = await this.$api.editOrderStatus(orderTaskId, taskStatus);
|
||||||
|
this.showChangeState = false;
|
||||||
|
if(res === undefined){
|
||||||
|
this.$refs.uToast.show({type: 'error',title: '飞行任务状态更改失败!'});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$refs.uToast.show({type: 'success',title: `飞行任务状态更改成功!`});
|
||||||
|
await this.getOrderDetail(this.form.orderId);
|
||||||
|
this.stateForm = {
|
||||||
|
orderTaskId: '',
|
||||||
|
taskStatus: 0,
|
||||||
|
taskStatusName: '未进行'
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
this.showChangeState = false;
|
||||||
|
this.$refs.uToast.show({type: 'error',title: '飞行任务状态更改失败!'});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 清空表单
|
||||||
|
clearForm(){
|
||||||
|
this.current = 0;
|
||||||
|
this.fileList = [];
|
||||||
|
this.form = {
|
||||||
|
orderId: this.form.orderId,
|
||||||
|
deviceName: '',
|
||||||
|
deviceId: '',
|
||||||
|
cargoWeight: '',
|
||||||
|
attachmentMaterialList: [],
|
||||||
|
routeId: '',
|
||||||
|
routeName: ''
|
||||||
|
};
|
||||||
},
|
},
|
||||||
// 删除任务
|
// 删除任务
|
||||||
handleDeleteAction(item){
|
handleDeleteAction(item){
|
||||||
|
let that = this;
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '是否确认删除该飞行任务?',
|
||||||
|
confirmColor: '#FE020E',
|
||||||
|
success: async(res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
try {
|
||||||
|
let res = await that.$api.deleteOrderTask(item.id);
|
||||||
|
console.log(res);
|
||||||
|
if(res === undefined){
|
||||||
|
that.$refs.uToast.show({type: 'error',title: "您没有权限删除此订单任务!"});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
that.getOrderDetail(this.form.orderId);
|
||||||
|
that.clearForm();
|
||||||
|
that.$refs.uToast.show({type: 'success',title: "飞行任务删除成功!"});
|
||||||
|
} catch (error) {
|
||||||
|
that.$refs.uToast.show({type: 'error',title: "飞行任务删除失败!"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 更改任务状态
|
// 更改任务状态
|
||||||
handleChangeAction(item){
|
handleChangeAction({id, orderItemStatus}){
|
||||||
|
this.stateForm = {
|
||||||
|
orderTaskId: id,
|
||||||
|
taskStatusName: orderItemStatus,
|
||||||
|
taskStatus: this.stateList.find(item=>item.value===orderItemStatus).key
|
||||||
|
};
|
||||||
|
this.showChangeState = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -638,4 +811,23 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
::v-deep .u-default-hover{
|
||||||
|
border-color: #F8B500 !important;
|
||||||
|
background-color: #fdf6ec !important;
|
||||||
|
color: #f29100 !important;
|
||||||
|
&:active{
|
||||||
|
border-color: #F8B500 !important;
|
||||||
|
background-color: #fdf6ec !important;
|
||||||
|
color: #f29100 !important;
|
||||||
|
}
|
||||||
|
&:focus{
|
||||||
|
border-color: #F8B500 !important;
|
||||||
|
background-color: #fdf6ec !important;
|
||||||
|
color: #f29100 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slot-content{
|
||||||
|
padding: 10rpx 50rpx;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -37,28 +37,23 @@
|
|||||||
margin-top="250"></u-empty>
|
margin-top="250"></u-empty>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<Movable :iconName="fileUrl+addIcon" />
|
|
||||||
<u-toast ref="uToast"></u-toast>
|
<u-toast ref="uToast"></u-toast>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import configService from '@/common/config.service.js';
|
import configService from '@/common/config.service.js';
|
||||||
import Movable from './components/movable.vue';
|
|
||||||
export default {
|
export default {
|
||||||
// #ifdef MP
|
// #ifdef MP
|
||||||
options: {
|
options: {
|
||||||
styleIsolation: 'shared'
|
styleIsolation: 'shared'
|
||||||
},
|
},
|
||||||
// #endif
|
// #endif
|
||||||
components: { Movable },
|
|
||||||
data(){
|
data(){
|
||||||
return {
|
return {
|
||||||
fileUrl: configService.fileUrl + 'aerocraft/order/',//订单页图标基础路径
|
fileUrl: configService.fileUrl + 'aerocraft/order/',//订单页图标基础路径
|
||||||
// 轮播图
|
// 轮播图
|
||||||
banner: 'banner.png',
|
banner: 'banner.png',
|
||||||
// 新增图标
|
|
||||||
addIcon: 'add.png',
|
|
||||||
// 女生头像
|
// 女生头像
|
||||||
girlIcon: 'girl.png',
|
girlIcon: 'girl.png',
|
||||||
// 男生头像
|
// 男生头像
|
||||||
@ -97,6 +92,7 @@ export default {
|
|||||||
size: 10,
|
size: 10,
|
||||||
// 是否结束——loadmore加载更多,loading加载中,nomore无更多
|
// 是否结束——loadmore加载更多,loading加载中,nomore无更多
|
||||||
isFinish: 'nomore',
|
isFinish: 'nomore',
|
||||||
|
mainOrderStatusList: '0,1,3',
|
||||||
},
|
},
|
||||||
// 用户列表
|
// 用户列表
|
||||||
customers: {},
|
customers: {},
|
||||||
@ -107,7 +103,7 @@ export default {
|
|||||||
methods:{
|
methods:{
|
||||||
// 初始化
|
// 初始化
|
||||||
async init(){
|
async init(){
|
||||||
this.form = {size: 10,current: 1,isFinish: 'nomore'};
|
this.form = {size: 10,current: 1,isFinish: 'nomore',mainOrderStatusList: '0,1,3'};
|
||||||
// 查询订单列表
|
// 查询订单列表
|
||||||
await this.getOrderList();
|
await this.getOrderList();
|
||||||
// 查询全部客户
|
// 查询全部客户
|
||||||
|
|||||||
@ -20,10 +20,18 @@ const install = (Vue, vm) => {
|
|||||||
vm.$api.singleScenic = async (id) => await vm.$u.get(`/emScenic/${id}`);// 查询单个景区
|
vm.$api.singleScenic = async (id) => await vm.$u.get(`/emScenic/${id}`);// 查询单个景区
|
||||||
|
|
||||||
// 订单管理
|
// 订单管理
|
||||||
vm.$api.completeOrder = async (orderId) => await vm.$u.get(`/api/order/completeOrder/${orderId}`);// 完成订单
|
vm.$api.completeOrder = async (orderId) => await vm.$u.put(`/api/order/completeOrder/${orderId}`);// 完成订单
|
||||||
vm.$api.getOrders = async (params = {}) => await vm.$u.get('/api/order/allOrder',params);// 获取订单列表
|
vm.$api.getOrders = async (params = {}) => await vm.$u.get('/api/order/allOrder',params);// 获取订单列表
|
||||||
vm.$api.orderDetail = async (id) => await vm.$u.get(`/api/order/queryOrderDetail/${id}`);// 查询单个订单
|
vm.$api.orderDetail = async (id) => await vm.$u.get(`/api/order/queryOrderDetail/${id}`);// 查询单个订单
|
||||||
vm.$api.addOrder = async (params = {}) => await vm.$u.post(`/api/order/addOrder`,params);// 新增订单
|
vm.$api.addOrder = async (params = {}) => await vm.$u.post(`/api/order/addOrder`,params);// 新增订单
|
||||||
|
vm.$api.deleteOrder = async (orderId) => await vm.$u.delete(`/api/order/deleteOrder/${orderId}`);// 删除订单
|
||||||
|
vm.$api.editOrder = async (params = {}) => await vm.$u.put(`/api/order/editOrder`,params);// 修改订单信息
|
||||||
|
vm.$api.addOrderTask = async (params = {}) => await vm.$u.post(`/api/order/addOrderTask`,params);// 新增飞行任务
|
||||||
|
vm.$api.deleteOrderTask = async (orderTaskId) => await vm.$u.delete(`/api/order/deleteOrderTask/${orderTaskId}`);// 删除飞行任务
|
||||||
|
vm.$api.editOrderStatus = async (orderTaskId,taskStatus) => await vm.$u.put(`/api/order/editOrderStatus/${orderTaskId}/${taskStatus}`);// 编辑订单飞行任务状态
|
||||||
|
|
||||||
|
// 设备管理
|
||||||
|
vm.$api.obtainDeviceList = async (params = {}) => await vm.$u.get('/api/dataDropdown/obtainDeviceList',params);// 获取设备下拉列表
|
||||||
|
|
||||||
// 客户管理
|
// 客户管理
|
||||||
vm.$api.allCustomers = async () => await vm.$u.get('/cnCustomer/all');// 获取全部客户
|
vm.$api.allCustomers = async () => await vm.$u.get('/cnCustomer/all');// 获取全部客户
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user