Procházet zdrojové kódy

总订单/团购订单-改签订单关联

gcz před 2 měsíci
rodič
revize
3e74bdea5e

+ 38 - 5
src/views/order/groupBuyingMr/dialog/details.vue

@@ -3,13 +3,13 @@
  * @Author: Sugar.
  * @Date: 2023-11-24 13:55:00
  * @LastEditors: gcz
- * @LastEditTime: 2024-03-15 15:13:27
+ * @LastEditTime: 2025-03-19 17:43:09
  * @FilePath: \great_webui\src\views\order\groupBuyingMr\dialog\details.vue
  * @Copyright: Copyright (c) 2016~2023 by Sugar., All Rights Reserved.
 -->
 <template>
   <el-dialog
-    title="订单详情"
+    :title="title"
     :visible.sync="open"
     width="96%"
     append-to-body
@@ -129,6 +129,25 @@
             </el-row>
         </div>
 
+        <div class="title-class" v-if="resubmit.id">改签信息</div>
+        <el-row>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class">
+              改签费用: <span>{{ resubmit.diffPrice || 0 }}</span>
+              <span v-if="resubmit.diffPrice<0">({{ resubmit.remark }})</span>
+            </div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class">改签时间: <span>{{ resubmit.createTime || '' }}</span></div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class" v-if="resubmit.diffPrice<0">退款方式: <span>{{ resubmit.refundWay || '原路返回' }}</span></div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class" v-if="resubmit.refundTime">退款时间: <span>{{ resubmit.refundTime || '' }}</span></div>
+          </el-col>
+        </el-row>
+
         <!--   观影人员信息   -->
         <div class="title-class">观影人员信息</div>
         <el-row>
@@ -175,7 +194,7 @@
               <div class="dialogss-box"
                 :style="{ width: width * (scaleNum / 100) + 'px', margin: justifyContent ? 'auto' : 'unset' }">
                 <div style="width: 100%;position: absolute;" class="seat-box-class clearfix" v-if="seatMapList">
-                  <div class="seat-item-class-box" v-for="(item1, index1) in seatMapListKey" :key="item1.key">
+                  <div class="seat-item-class-box" v-for="(item1) in seatMapListKey" :key="item1.key">
                     <div class="seat-item-class"
                       :class="setSeatClass(item)"
                       v-for="(item, index) in seatMapList[item1.key]"
@@ -215,13 +234,14 @@ export default {
   dicts: ['order_form_type', 'order_status_type', 'pay_way_type', 'personnel_type','team_type'],
   data() {
     return {
-      title: "编辑",
+      title: "订单详情",
       model: "EDIT",
       open: false,
       loading: false,
       form: {
         id: undefined
       },
+      resubmit: {},
       corporateRremark:'',
       performerVisible: false,
       performerList: [],
@@ -277,6 +297,7 @@ export default {
       seatTypeList: [],
       loading_form: false,//  加载表单
       loading_seta: false, //  加载座位
+      orderType: 'normal', // 订单类型 normal:没有新订单和原订单,new:有新订单,old:有原订单
     };
   },
   created() {
@@ -290,6 +311,7 @@ export default {
      * @returns {any}
      */
     openDialog(title, obj, type) {
+      this.orderType = type;
       this.open = true;
       this.querySeatListS = [];
       this.setList = [];
@@ -298,13 +320,24 @@ export default {
     },
     /** 获取详情 */
     async getSelectByIdApi(row) {
+      let id = row.id;
+      if (this.orderType == 'old') {
+        id = row.orgOrderId
+        this.title = "订单详情(已改签)"
+      } else if (this.orderType == 'new') {
+        id = row.newOrderId
+        this.title = "改签订单详情"
+      } else {
+        this.title = "订单详情"
+      }
       try {
         //this.loading = true
         this.loading_form =  true//  加载表单
         this.loading_seta =  true //  加载座位
-        const id = row.id
+        // const id = row.id
         let res = await getSelectById(id)
         this.seatSelectList = res.data.viewersOrderList
+        this.resubmit = res.data.resubmit||{};
         this.form = res.data;
         this.form.payOrCredit = null
         if(res.data.corporate){

+ 20 - 2
src/views/order/groupBuyingMr/index.vue

@@ -305,9 +305,27 @@
               <el-button
                 size="mini"
                 type="text"
-                @click="openDetails(scope.row)"
+                @click="openDetails(scope.row,'normal')"
                 v-hasPermi="['groupBuyingMr:groupBuyingMr:details']"
               >详情</el-button>
+              <span v-hasPermi="['groupBuyingMr:groupBuyingMr:details']" style="display: inline-block;">
+                <el-button
+                  v-if="scope.row.newOrderId"
+                  size="mini"
+                  type="text"
+                  style="margin-left: 10px;"
+                  @click="openDetails(scope.row,'new')"
+                >新订单</el-button>
+              </span>
+              <span v-hasPermi="['groupBuyingMr:groupBuyingMr:details']" style="display: inline-block;">
+                <el-button
+                  v-if="scope.row.orgOrderId"
+                  size="mini"
+                  type="text"
+                  style="margin-left: 10px;"
+                  @click="openDetails(scope.row,'old')"
+                >原订单</el-button>
+              </span>
               <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
                 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
                 <el-dropdown-menu slot="dropdown">
@@ -356,7 +374,7 @@
         <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
           <el-form-item label="小票机" prop="region">
             <el-select v-model="ruleForm.region" placeholder="选择小票机">
-              <el-option :label="item.deviceName" :key="item.id" :value="item.id" v-for="(item,index) in printList"></el-option>
+              <el-option :label="item.deviceName" :key="item.id" :value="item.id" v-for="(item) in printList"></el-option>
             </el-select>
           </el-form-item>
         </el-form>

+ 46 - 7
src/views/order/orderMr/dialog/details.vue

@@ -3,12 +3,12 @@
  * @Author: Sugar.
  * @Date: 2023-11-24 13:55:00
  * @LastEditors: gcz
- * @LastEditTime: 2024-07-01 11:26:06
+ * @LastEditTime: 2025-03-19 17:36:34
  * @FilePath: \great_webui\src\views\order\orderMr\dialog\details.vue
  * @Copyright: Copyright (c) 2016~2023 by Sugar., All Rights Reserved.
 -->
 <template>
-  <el-dialog title="订单详情" :visible.sync="open" width="96%" append-to-body :close-on-click-modal="false" @close="cancel">
+  <el-dialog :title="title" :visible.sync="open" width="96%" append-to-body :close-on-click-modal="false" @close="cancel">
     <div v-loading="loading" class="dialog dialog-bbb" v-if="form">
       <div 
       v-loading="loading_form"
@@ -67,8 +67,10 @@
               form.orderPrice : '' }}</span></div>
           </el-col>
           <el-col :span="12">
-            <div class="grid-content bg-purple item-class">实收金额: <span>¥{{ form.realPrice || form.realPrice == 0 ?
-              form.realPrice : '' }}</span></div>
+            <div class="grid-content bg-purple item-class">
+              实收金额: <span>¥{{ form.realPrice || form.realPrice == 0 ?form.realPrice : '' }}</span>
+              <span v-if="form.realPrice<0&&resubmit.remark">({{ resubmit.remark }})</span>
+            </div>
           </el-col>
           <el-col :span="12">
             <div class="grid-content bg-purple item-class">下单时间: <span>{{ form.createTime || '' }}</span></div>
@@ -103,6 +105,25 @@
           </el-col>
         </el-row>
 
+        <div class="title-class" v-if="resubmit.id">改签信息</div>
+        <el-row>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class">
+              改签费用: <span>{{ resubmit.diffPrice || 0 }}</span>
+              <span v-if="resubmit.diffPrice<0">({{ resubmit.remark }})</span>
+            </div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class">改签时间: <span>{{ resubmit.createTime || '' }}</span></div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class" v-if="resubmit.diffPrice<0">退款方式: <span>{{ resubmit.refundWay || '原路返回' }}</span></div>
+          </el-col>
+          <el-col :span="12">
+            <div class="grid-content bg-purple item-class" v-if="resubmit.refundTime">退款时间: <span>{{ resubmit.refundTime || '' }}</span></div>
+          </el-col>
+        </el-row>
+
 
         <!--   观影人员信息   -->
         <div class="title-class">观影人员信息</div>
@@ -156,7 +177,7 @@
               <div class="dialogss-box"
                 :style="{ width: width * (scaleNum / 100) + 'px', margin: justifyContent ? 'auto' : 'unset' }">
                 <div style="width: 100%;position: absolute;" class="seat-box-class clearfix" v-if="seatMapList">
-                  <div class="seat-item-class-box" v-for="(item1, index1) in seatMapListKey" :key="item1.key">
+                  <div class="seat-item-class-box" v-for="(item1) in seatMapListKey" :key="item1.key">
                     <div class="seat-item-class"
                       :class="setSeatClass(item)"
                       v-for="(item, index) in seatMapList[item1.key]"
@@ -191,13 +212,14 @@ export default {
   dicts: ['order_form_type', 'order_status_type', 'pay_way_type', 'personnel_type'],
   data() {
     return {
-      title: "编辑",
+      title: "订单详情",
       model: "EDIT",
       open: false,
       loading: false,
       form: {
         id: undefined,
       },
+      resubmit:{},
       performerVisible: false,
       performerList: [],
       refund: false,
@@ -226,6 +248,7 @@ export default {
 
       loading_form: false,//  加载表单
       loading_seta: false, //  加载座位
+      orderType: 'normal', // 订单类型 normal:没有新订单和原订单,new:有新订单,old:有原订单
     };
   },
   created() {
@@ -239,6 +262,8 @@ export default {
      * @returns {any}
      */
     openDialog(title, obj, type) {
+      // console.log("openDialog type=====", type)
+      this.orderType = type;
       this.open = true;
       this.form = {}
       this.querySeatListS = [];
@@ -248,11 +273,24 @@ export default {
     },
     /** 获取详情 */
     async getSelectByIdApi(row) {
+      // console.log("row.id=====", row.id)
+      // console.log("orgOrderId=====", row.orgOrderId)
+      // console.log("newOrderId=====", row.newOrderId)
+      let id = row.id;
+      if (this.orderType == 'old') {
+        id = row.orgOrderId
+        this.title = "订单详情(已改签)"
+      } else if (this.orderType == 'new') {
+        id = row.newOrderId
+        this.title = "改签订单详情"
+      } else {
+        this.title = "订单详情"
+      }
       try {
         //this.loading = true
         this.loading_form =  true//  加载表单
         this.loading_seta =  true //  加载座位
-        const id = row.id
+        // const id = row.id
         let res = await getSelectById(id)
         let list = []
         res.data.viewersList.forEach((item,index)=>{
@@ -270,6 +308,7 @@ export default {
             })
           })
         })
+        this.resubmit = res.data.resubmit||{};
         this.seatSelectList = list
         this.$set(this, "form", {
           ...res.data,

+ 20 - 2
src/views/order/orderMr/index.vue

@@ -350,9 +350,27 @@
               <el-button
                 size="mini"
                 type="text"
-                @click="openDetails(scope.row)"
+                @click="openDetails(scope.row,'normal')"
                 v-hasPermi="['orderMr:orderMr:details']"
               >详情</el-button>
+              <span v-hasPermi="['orderMr:orderMr:details']" style="display: inline-block;">
+                <el-button
+                  v-if="scope.row.newOrderId"
+                  size="mini"
+                  type="text"
+                  style="margin-left: 10px;"
+                  @click="openDetails(scope.row,'new')"
+                >新订单</el-button>
+              </span>
+              <span v-hasPermi="['orderMr:orderMr:details']" style="display: inline-block;">
+                <el-button
+                  v-if="scope.row.orgOrderId"
+                  size="mini"
+                  type="text"
+                  style="margin-left: 10px;"
+                  @click="openDetails(scope.row,'old')"
+                >原订单</el-button>
+              </span>
               <span v-hasPermi="['orderMr:orderMr:cancel']" style="display: inline-block;">
                 <el-button
                   v-if="scope.row.status == 0"
@@ -398,7 +416,7 @@
         <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
           <el-form-item label="小票机" prop="region">
             <el-select v-model="ruleForm.region" placeholder="选择小票机">
-              <el-option :label="item.deviceName" :key="item.id" :value="item.id" v-for="(item,index) in printList"></el-option>
+              <el-option :label="item.deviceName" :key="item.id" :value="item.id" v-for="(item) in printList"></el-option>
             </el-select>
           </el-form-item>
         </el-form>