dct vor 4 Wochen
Ursprung
Commit
76f09a2b89
3 geänderte Dateien mit 32 neuen und 7 gelöschten Zeilen
  1. 1 0
      package.json
  2. 8 0
      src/api/order.js
  3. 23 7
      src/views/order/index.vue

+ 1 - 0
package.json

@@ -3,6 +3,7 @@
   "version": "5.10.31",
   "private": true,
   "scripts": {
+    "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --mode serve",
     "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --mode serve",
     "test": "vue-cli-service serve --mode test",
     "prod": "vue-cli-service serve --mode prod",

+ 8 - 0
src/api/order.js

@@ -128,6 +128,14 @@ export function getOrderRefundFields() {
   });
 }
 
+export function offlinePayOrder(id) {
+  return request({
+    url: `/TourOrder/${id}/Payment`,
+    method: 'post',
+    data: { paymentMethod: 'Offline' },
+  });
+}
+
 export function processRefund(data) {
   return request({
     url: `/TourOrder/Refund`,

+ 23 - 7
src/views/order/index.vue

@@ -387,7 +387,13 @@
                     </template>
                   </el-table-column>
                 </el-table>
+
               </div>
+              <el-col :span="12" style="margin-top: 10px">
+                <el-form-item label="游客人数" prop="touristCount">
+                  <el-input-number v-model="formData.touristCount" :min="0"></el-input-number>
+                </el-form-item>
+              </el-col>
             </el-collapse-item>
 
             <el-collapse-item v-if="false" title="费用信息" name="fee">
@@ -861,8 +867,8 @@
         <el-form-item label="付款方式" prop="method">
           <el-radio-group v-model="paymentForm.method">
             <el-radio-button label="Online">在线支付</el-radio-button>
-            <!-- <el-radio-button label="Balance">余额扣款</el-radio-button>
-            <el-radio-button label="Offline">线下支付</el-radio-button> -->
+            <!-- <el-radio-button label="Balance">余额扣款</el-radio-button> -->
+            <el-radio-button label="Offline">线下支付</el-radio-button>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="支付方式" prop="paymentMethod" v-if="paymentForm.method === 'Online'">
@@ -936,6 +942,7 @@ import {
   addTouristInfo,
   updateTouristInfo,
   deleteTouristInfo,
+  offlinePayOrder,
 } from '@/api/order';
 import { getPayParams } from '@/api/pay';
 import { delFile, fetchFileList } from '@/api/basic';
@@ -1054,6 +1061,9 @@ export default {
         dayNumber: [
           { required: true, message: '请输入天数', trigger: 'blur' }
         ],
+        touristCount: [
+          { required: true, message: '请输入人数', trigger: 'blur' }
+        ],
         scheduleDate: [
           { required: true, message: '请选择日期', trigger: 'change' }
         ],
@@ -1316,7 +1326,7 @@ export default {
           this.$message.error('请至少添加一个领队');
           return;
         }
-        this.formData.touristCount = this.formData.tourists.length;
+        // this.formData.touristCount = this.formData.tourists.length;
         const opt = this.isAdd ? createOrder : updateOrder;
         if (this.currentOrderNo) {
           this.formData.orderNo = this.currentOrderNo;
@@ -1341,8 +1351,6 @@ export default {
       });
     },
     async payment(row) {
-      const res = await getPayParams(row.id);
-      console.log('---pay params---', res);
       this.paymentForm.id = row.id;
       this.paymentForm.orderNo = row.orderNo;
       this.paymentForm.amount = row.totalAmount;
@@ -1358,7 +1366,15 @@ export default {
         orderNo: '',
       };
     },
-    submitPayment() {
+    async submitPayment() {
+      const { id, method } = this.paymentForm;
+      const res = await getPayParams(id, method);
+
+      if (res.code !== 200 || !res.data?.canPay) {
+        this.$message.error(res.content || '获取支付参数失败');
+        return;
+      }
+
       if (this.paymentForm.method === 'Online') {
         // 在线支付,生成二维码
         this.onlinePaymentDialogVisible = true;
@@ -1366,7 +1382,7 @@ export default {
           this.generateWeChatQRCode();
         });
       } else {
-        // TODO
+        await offlinePayOrder(id);
         this.$message.success('付款成功');
         this.paymentDialogVisible = false;
         this.getOrderList();