From 2a9c5ee01050e88033caf58b96bf54bd81c0e52f Mon Sep 17 00:00:00 2001
From: Double-_-Z <2492419643@qq.com>
Date: Sun, 3 Aug 2025 01:01:22 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=A1=B5=E5=89=A9=E4=BD=99?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
aircraft/server/index/index.vue | 6 +--
aircraft/server/my/my.vue | 28 ++++++++-----
aircraft/server/order/add.vue | 61 ++++++++++++++++++++-------
aircraft/server/order/detail.vue | 72 +++++++++++++++++++++++++-------
aircraft/server/order/order.vue | 22 +++++++---
common/http.api.js | 1 +
6 files changed, 143 insertions(+), 47 deletions(-)
diff --git a/aircraft/server/index/index.vue b/aircraft/server/index/index.vue
index 353b475..1f45369 100644
--- a/aircraft/server/index/index.vue
+++ b/aircraft/server/index/index.vue
@@ -7,10 +7,10 @@
:refresher-enabled="(isPilot&¤t!==3)||(!isPilot&¤t!==1)"
:refresher-triggered="triggered" @refresherpulling="onPulling" lower-threshold="60">
-
+
-
+
-
+
diff --git a/aircraft/server/my/my.vue b/aircraft/server/my/my.vue
index e0b438a..0960377 100644
--- a/aircraft/server/my/my.vue
+++ b/aircraft/server/my/my.vue
@@ -4,7 +4,7 @@
+ :src="ordFileUrl+(isPilot||!customer.gender?pilotIcon:(customer.gender === '男' ? boyIcon : girlIcon))" />
{{ userMessage.nickName || userMessage.username || '用户' }}
欢迎来到爱尚云,愿您有个美好体验!
@@ -36,9 +36,9 @@ export default {
},
// #endif
props: {
- topLevel:{
- type: Number,
- default: 0
+ isPilot: {
+ type: Boolean,
+ default: true
},
isLogin: {
type: String,
@@ -49,11 +49,20 @@ export default {
return{
//我的页图标基础路径
fileUrl: configService.fileUrl + 'aerocraft/my/',
+ ordFileUrl: configService.fileUrl + 'aerocraft/order/',//订单页图标基础路径
// 轮播图
topBg: 'top-bg-a.png',
+ // 女生头像
+ girlIcon: 'girl.png',
+ // 男生头像
+ boyIcon: 'boy.png',
+ // 飞行员默认头像
+ pilotIcon: 'pilot-avatar.png',
// 用户信息
// userMessage:{}
userMessage: this.$store.state.vuex_token === ''?{}:JSON.parse(this.$store.state.user_message),
+ // 客户信息
+ customer: {},
// 功能列表
functions: [{
name: '历史订单',
@@ -68,18 +77,17 @@ export default {
icon: 'password.png',
url: '/aircraft/server/my/child_pages/reset-password'
}],
- isPilot: this.$store.state.user_type == 1,
}
},
computed:{
},
methods:{
// 初始化
- init(){
- if(this.isLogin !== ''){
- this.userMessage = JSON.parse(this.$store.state.user_message);
- }else{
- this.userMessage = {};
+ async init(){
+ this.userMessage = this.isLogin === '' ? {} : JSON.parse(this.$store.state.user_message);
+ if(this.userMessage.id){
+ let res = await this.$api.bSelfDetail(this.userMessage.id);
+ this.customer = res === undefined ? {} : res;
}
},
// 功能栏点击
diff --git a/aircraft/server/order/add.vue b/aircraft/server/order/add.vue
index 1cf56bf..d7a606c 100644
--- a/aircraft/server/order/add.vue
+++ b/aircraft/server/order/add.vue
@@ -56,17 +56,18 @@
-
+
-
+
保存
完成订单
+ v-if="canFinish" :custom-style="customStyle" :hair-line="false" @click="finishOrder">
+ 完成订单
+
@@ -139,8 +140,9 @@ export default {
trigger: ['change','blur'],
}],
surchargeAmount: [{
- required: true,
- type: 'float',
+ validator: (rule, value, callback) => {
+ return value&&/^-?\d*\.?\d+$/.test(value);;
+ },
message: '附加费格式不正确',
trigger: ['change','blur']
}],
@@ -192,7 +194,7 @@ export default {
// 当前景区/客户选择类型
scenOrCusType: '',
// 订单状态
- orderStatus: ['进行中','已完成','已取消'],
+ orderStatus: ['进行中','已完成','已取消','待确认'],
}
},
onReady() {
@@ -206,15 +208,32 @@ export default {
const index = this.form[isScen?'attractionId':'customerId'];
return index?[arr.findIndex(item=>item.id === index)]:[0];
},
+ // 判断是否可以完成订单
+ canFinish(){
+ /*
+ 1.编辑
+ 2.订单状态不处于已完成、已取消、未进行、飞行员-待确认
+ 3.飞行员-订单发起人||客户-确认人
+ 4.不存在飞行任务为未进行或进行中的状态
+ */
+ const { orderId, mainOrderStatus, orderTaskDetailList, orderInitiatorId, customerId } = this.form;
+ return orderId&&(!mainOrderStatus||mainOrderStatus!=='未进行')&&
+ (this.isPilot&&orderInitiatorId==this.userMessage.id&&mainOrderStatus!=='待确认'||
+ !this.isPilot&&customerId==userMessage.id)&&(!orderTaskDetailList||
+ orderTaskDetailList.some(item=>item.orderItemStatus!=='未进行'||item.orderItemStatus!=='进行中'));
+ },
// 判断是否可以删除
canDelete(){
- const { orderId, orderInitiatorId, confirmStatus, orderTaskDetailList } = this.form;
+ const { orderId, orderInitiatorId, mainOrderStatus, orderTaskDetailList } = this.form;
return orderId&&this.isPilot&&orderInitiatorId==this.userMessage.id
- &&(!confirmStatus||confirmStatus===0)&&(!orderTaskDetailList||orderTaskDetailList.some(
- item=>!this.orderStatus.includes(item.orderItemStatus)));
+ &&(!mainOrderStatus||mainOrderStatus==='未进行')&&(!orderTaskDetailList||orderTaskDetailList.length===0);
},
// 判断是否禁用保存
isDisable(){
+ /*
+ 1.订单状态不处于已完成、已取消
+ 2.存在飞行任务为进行中、已完成、已取消、待确认状态
+ */
const { orderTaskDetailList } = this.form;
return orderTaskDetailList&&orderTaskDetailList.length>0;
}
@@ -248,13 +267,21 @@ export default {
}
// 获取订单详情
if(this.form.orderId) this.getOrderDetail();
+ else {
+ const userId = this.userMessage.id;
+ const op = this.operators.find(item=>item.id===userId);
+ if(op){
+ this.form.operatorIds.push(op);
+ this.operators = this.operators.filter(item=>item.id!==userId);
+ }
+ }
},
// 获取订单详情
async getOrderDetail(){
let res = await this.$api.orderDetail(this.form.orderId);
if(res){
const { id, customerName, phone, scenicName, surchargeAmount, cargoWeight,
- orderNo, orderCreateTime, orderInitiator, confirmStatus, orderInitiatorId,
+ orderNo, orderCreateTime, orderInitiator, orderInitiatorId, mainOrderStatus,
customerId, attractionId, routeIds, operatorIds, orderTaskDetailList } = res;
this.form = {
orderId: id,
@@ -272,15 +299,16 @@ export default {
routeIds: [],
orderInitiator: orderInitiator,
orderCreateTime: orderCreateTime,
- confirmStatus: confirmStatus,
orderInitiatorId: orderInitiatorId,
orderTaskDetailList: orderTaskDetailList,
+ mainOrderStatus: mainOrderStatus
}
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));
+ this.operators = this.operators.filter(item=>item.id!==orderInitiatorId);
} else {
this.$refs.uToast.show({type: 'error',title: "景区路线获取失败!"});
}
@@ -330,6 +358,7 @@ export default {
let res = await this.$api.allRoutesByScenicId(val.id);
if(res){
this.routes = res || [];
+ this.form.routeIds = res.length>0?[res[0]]:[];
}else{
this.$refs.uToast.show({type: 'error',title: "景区路线获取失败!"});
}
@@ -380,6 +409,10 @@ export default {
if (res.confirm) {
try {
let res = await that.$api.completeOrder(that.form.orderId);
+ if(res === undefined){
+ that.$refs.uToast.show({type: 'error',title: "订单完成操作失败!"});
+ return;
+ }
that.$refs.uToast.show({type: 'success', title: `订单完成操作成功!`});
that.init();
} catch (error) {
diff --git a/aircraft/server/order/detail.vue b/aircraft/server/order/detail.vue
index da79a8f..8dd2418 100644
--- a/aircraft/server/order/detail.vue
+++ b/aircraft/server/order/detail.vue
@@ -7,7 +7,8 @@
{{ orderDetail.mainOrderStatus }}
- {{ orderDetail.mainOrderStatus === '已完成' ? '已完成飞行任务' : '请尽快执行任务'}}
+ {{ orderDetail.mainOrderStatus === '已完成' ? '已完成飞行任务' :
+ orderDetail.mainOrderStatus === '待确认'?'请尽快确认完成订单':'请尽快执行任务'}}
@@ -47,17 +48,21 @@
:src="fileUrl+textBg" />
+
+ 订单号
+ {{ orderDetail.orderNo }}
+
发起人
{{ orderDetail.orderInitiator }}
-
+
客户名称
{{ orderDetail.customerName }}
手机号
- {{ orderDetail.phone }}
+ {{ isPilot?orderDetail.phone:orderDetail.initiatorPhone }}
操作员
@@ -67,6 +72,10 @@
下单时间
{{ orderDetail.orderCreateTime }}
+
+ 订单确认人
+ {{ orderDetail.customerName }}
+
@@ -88,7 +97,7 @@
{{ item.orderItemStatus }}
-
+
删除
-
-
+
+
新增任务
+
+ 完成订单
+