ソースを参照

配送流程优化

shish 10 ヶ月 前
コミット
cae6c1efbe

+ 4 - 0
ghsApp/src/api/express/index.js

@@ -19,4 +19,8 @@ export const getCgExpressTrack = data => {
 // 获取字典中的 hasMap
 export const getHasMap = data => {
 	return https.get('/express/get-has-map', data)
+}
+
+export const expressDetail = data => {
+    return https.get('/express/detail', data)
 }

+ 5 - 0
ghsApp/src/api/shop/shop-express.js

@@ -56,4 +56,9 @@ export const cancelExpressOrder = data => {
  */
 export const getExpressOrder = data => {
 	return https.post('/intra-city/get-order', data)
+}
+
+//模拟
+export const mockNotify = data => {
+	return https.post('/intra-city/mock-notify', data)
 }

+ 152 - 5
ghsApp/src/pagesOrder/detail.vue

@@ -24,7 +24,7 @@
 			<view class="content-box" v-if="Number(detailInfo.sendStatus)>-1">
 				<view class="order-msg-blo" style="padding: 20upx;">
 					<view class="msg-list">
-						<view class="label">配送平台:</view>
+						<view class="label"><text @click="showMySimPop"></text>送平台:</view>
 						<view class="value">{{getExpressPlatformText(detailInfo.deliveryId)}}</view>
 					</view>
 					<view class="msg-list express-progress-row">
@@ -490,6 +490,30 @@
 
 		<mx-date-picker :show="showPicker" format="yyyy-mm-dd" type="date" :value="defaultPickerDate" :show-tips="true" @confirm="confirmPicker" @cancel="showPicker = false" />
 
+		<!-- 模拟接口使用 -->
+		<view class="goods-modal-mask" v-if="simModal" @click="hideMnPop">
+		<view class="goods-modal" @click.stop>
+			<view class="modal-header">
+			<text class="modal-title">请选择</text>
+			<text class="modal-close" @click="hideMnPop">×</text>
+			</view>
+			<view class="modal-body">
+			<button class="admin-button-com middle" @click="setMnNum(10000)">订单创建成功</button>
+			<button class="admin-button-com middle" @click="setMnNum(20000)">商家取消订单</button>
+			<button class="admin-button-com middle" @click="setMnNum(20001)">配送方取消订单</button>
+			<button class="admin-button-com middle" @click="setMnNum(30000)">配送员接单</button>
+			<button class="admin-button-com middle" @click="setMnNum(40000)">配送员到店</button>
+			<button class="admin-button-com middle" @click="setMnNum(50000)">配送中</button>
+			<button class="admin-button-com middle" @click="setMnNum(60000)">配送员撤单</button>
+			<button class="admin-button-com middle" @click="setMnNum(70000)">配送完成</button>
+			<button class="admin-button-com middle" @click="setMnNum(90000)">配送异常</button>
+			</view>
+			<view class="modal-footer">
+			<button class="modal-btn cancel-btn" @click="hideMnPop">取消</button>
+			</view>
+		</view>
+		</view>
+
 	</view>
 </template>
 <script>
@@ -510,8 +534,8 @@ import { delItem,updateRemarkItemFn } from "@/api/order-item";
 import { getAllStaff } from "@/api/shop-admin"
 import ModalModule from "@/components/plugin/modal"
 import MxDatePicker from '@/components/mx-datepicker/mx-datepicker.vue';
-import { getCgExpressTrack } from "@/api/express"
-import { cancelExpressOrder } from '@/api/shop/shop-express'
+import { getCgExpressTrack,expressDetail } from "@/api/express"
+import { cancelExpressOrder,mockNotify } from '@/api/shop/shop-express'
 export default {
 	name: "orderDetail",
 	components: {
@@ -553,7 +577,9 @@ export default {
 			payDate:'',
 			currentItem:[],
 			staffListData:[],
-			trackList:[]
+			trackList:[],
+			simModal: false,
+			simNum:0
 		};
 	},
 	onPullDownRefresh() {
@@ -597,6 +623,26 @@ export default {
 		}
 	},
 	methods: {
+		showMySimPop() {
+			this.simModal = true
+		},
+		setMnNum(num){
+			this.hideMnPop()
+			this.simNum = num
+			this.confirmSimData()
+		},
+		hideMnPop() {
+			this.simModal = false
+		},
+		confirmSimData() {
+			let that = this
+			this.hideMnPop()
+			expressDetail({ orderId: this.option.id }).then(res => {
+				mockNotify({orderStatus:this.simNum,wxOrderId:res.data.wxOrderId}).then(ret=>{
+					that.init()
+				})
+			})
+		},
 		//取消跑腿
 		cancelMyExpress(orderId) {
 			this.$util.confirmModal({content: '确认取消?(若配送员接单1分钟后取消,扣2元违约金)'}, async () => {
@@ -609,7 +655,7 @@ export default {
 		},
 		//呼叫跑腿
 		openExpressPage() {
-			this.$msg('请到列表页操作')
+			this.$msg('开发中,到列表页操作')
 		},
 		//获取配送平台
 		getExpressPlatformText(platform) {
@@ -1538,4 +1584,105 @@ export default {
 	align-items: center;
 	justify-content: space-around;
 }
+/* 模拟信息弹框样式 */
+.goods-modal-mask {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: rgba(0, 0, 0, 0.5);
+  z-index: 9999;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.goods-modal {
+  width: 80%;
+  max-width: 600upx;
+  background-color: #fff;
+  border-radius: 12upx;
+  overflow: hidden;
+  box-shadow: 0 10upx 30upx rgba(0, 0, 0, 0.3);
+}
+
+.modal-header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 30upx 40upx;
+  background-color: #f8f9fa;
+  border-bottom: 1px solid #e9ecef;
+}
+
+.modal-title {
+  font-size: 32upx;
+  font-weight: 600;
+  color: #333;
+}
+
+.modal-close {
+  font-size: 40upx;
+  color: #999;
+  cursor: pointer;
+  line-height: 1;
+  padding: 10upx;
+}
+
+.modal-body {
+  padding: 40upx;
+}
+
+.modal-input {
+  width: 100%;
+  height: 80upx;
+  border: 1px solid #ddd;
+  border-radius: 8upx;
+  padding: 0 20upx;
+  font-size: 28upx;
+  box-sizing: border-box;
+  
+  &:focus {
+    border-color: #3385ff;
+    outline: none;
+  }
+}
+
+.modal-footer {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  gap: 20upx;
+  padding: 30upx 40upx;
+  background-color: #f8f9fa;
+  border-top: 1px solid #e9ecef;
+}
+
+.modal-btn {
+  padding: 20upx 40upx;
+  border-radius: 8upx;
+  font-size: 28upx;
+  border: none;
+  cursor: pointer;
+  min-width: 120upx;
+  
+  &.cancel-btn {
+    background-color: #f5f5f5;
+    color: #666;
+    
+    &:hover {
+      background-color: #e9ecef;
+    }
+  }
+  
+  &.confirm-btn {
+    background-color: #3385ff;
+    color: #fff;
+    
+    &:hover {
+      background-color: #2d74e7;
+    }
+  }
+}
 </style>

+ 1 - 1
hdApp/src/admin/express/create.vue

@@ -44,7 +44,7 @@
         <view class="form-item">
           <text class="item-label">商品数量</text>
           <view class="item-value">
-            <input class="item-input" type="number" v-model="expressForm.packageNum" placeholder="请输入包裹数量" disabled />
+            <input class="item-input" type="number" v-model="expressForm.packageNum" placeholder="请输入包裹数量" />
           </view>
         </view>
         <view class="form-item required">

+ 33 - 27
hdApp/src/admin/order/detail.vue

@@ -16,7 +16,7 @@
         <view class="module-det">
           <view class="order-msg-blo">
             <view class="msg-list">
-              <view class="label">配送平台:</view>
+              <view class="label"><text @click="showMySimPop"></text>送平台:</view>
               <view class="value">{{getExpressPlatformText(orderInfo.deliveryId)}}</view>
             </view>
             <view class="msg-list express-progress-row">
@@ -35,9 +35,7 @@
       <view class="module-com goods-info-module">
         <view class="module-tit">
           <text class="module-tit__text">商品信息</text>
-          <text 
-            class="order-number" 
-            @click="showGoodsModal">
+          <text class="order-number">
             编号 {{ orderInfo.sendNum }}
           </text>
         </view>
@@ -381,21 +379,29 @@
     </view>
 
     <!-- 模拟接口使用 -->
-    <view class="goods-modal-mask" v-if="showModal" @click="hideGoodsModal">
+    <view class="goods-modal-mask" v-if="simModal" @click="hideMnPop">
       <view class="goods-modal" @click.stop>
         <view class="modal-header">
-          <text class="modal-title">输入数值</text>
-          <text class="modal-close" @click="hideGoodsModal">×</text>
+          <text class="modal-title">请选择</text>
+          <text class="modal-close" @click="hideMnPop">×</text>
         </view>
         <view class="modal-body">
-          <input class="modal-input" type="number" v-model="inputValue" @focus="inputValue=''" placeholder="请输入数值" />
+          <button class="admin-button-com middle" @click="setMnNum(10000)">订单创建成功</button>
+          <button class="admin-button-com middle" @click="setMnNum(20000)">商家取消订单</button>
+          <button class="admin-button-com middle" @click="setMnNum(20001)">配送方取消订单</button>
+          <button class="admin-button-com middle" @click="setMnNum(30000)">配送员接单</button>
+          <button class="admin-button-com middle" @click="setMnNum(40000)">配送员到店</button>
+          <button class="admin-button-com middle" @click="setMnNum(50000)">配送中</button>
+          <button class="admin-button-com middle" @click="setMnNum(60000)">配送员撤单</button>
+          <button class="admin-button-com middle" @click="setMnNum(70000)">配送完成</button>
+          <button class="admin-button-com middle" @click="setMnNum(90000)">配送异常</button>
         </view>
         <view class="modal-footer">
-          <button class="modal-btn cancel-btn" @click="hideGoodsModal">取消</button>
-          <button class="modal-btn confirm-btn" @click="confirmInput">确认</button>
+          <button class="modal-btn cancel-btn" @click="hideMnPop">取消</button>
         </view>
       </view>
     </view>
+
   </view>
 </template>
 
@@ -429,8 +435,8 @@ export default {
       constant: this.$constant,
       orderInfo: {},
       refreshPage: 0,
-      showModal: false,
-      inputValue:0,
+      simModal: false,
+      simNum:0,
       thisYear: new Date().getFullYear()
     };
   },
@@ -614,26 +620,26 @@ export default {
           }
       })
     },
-    /**
-     * 查看配送成功详情
-     */
+    //查看配送成功详情
     selectExpress(orderId) {
-      this.$util.pageTo({ 
-        url: '/admin/express/success', 
-        query: { orderId: orderId }
-      })
+      this.$util.pageTo({ url: '/admin/express/success', query: { orderId: orderId } })
+    },
+    showMySimPop() {
+      this.simModal = true
     },
-    showGoodsModal() {
-      this.showModal = true
+    setMnNum(num){
+      this.hideMnPop()
+      this.simNum = num
+      this.confirmSimData()
     },
-    hideGoodsModal() {
-      this.showModal = false
+    hideMnPop() {
+      this.simModal = false
     },
-    confirmInput() {
+    confirmSimData() {
       let that = this
-      this.hideGoodsModal()
+      this.hideMnPop()
       expressDetail({ orderId: this.option.id }).then(res => {
-        mockNotify({orderStatus:this.inputValue,wxOrderId:res.data.wxOrderId}).then(ret=>{
+        mockNotify({orderStatus:this.simNum,wxOrderId:res.data.wxOrderId}).then(ret=>{
           that.init()
         })
       })
@@ -867,7 +873,7 @@ export default {
   }
 }
 
-/* 商品信息弹框样式 */
+/* 模拟信息弹框样式 */
 .goods-modal-mask {
   position: fixed;
   top: 0;

+ 1 - 1
hdApp/src/api/express/index.js

@@ -18,5 +18,5 @@ export const getHasMap = data => {
 
 // 配送详情
 export const expressDetail = data => {
-	return https.post('/express/detail', data)
+	return https.get('/express/detail', data)
 }