Przeglądaj źródła

完善盲票销售订单列表

hwb0 3 lat temu
rodzic
commit
48429649f0

+ 28 - 0
src/api/business/order.js

@@ -137,3 +137,31 @@ export function removeChannelOrder(data) {
     data
   })
 }
+
+// 盲票订单
+export function ticketOrderList(urlParams, data) {
+  return request({
+      url: '/api/v1/mp/admin/ticket/order/list',
+      method: 'post',
+      data,
+      urlParams
+  })
+}
+
+// 盲票订单导出
+export function ticketOrderExport(data) {
+  return request({
+    url: '/api/v1/mp/admin/ticket/order/export',
+    method: 'post',
+    timeout: 15 * 60 * 1000,
+    data
+  })
+}
+
+// 盲票订单详情
+export function ticketOrderDetail(orderId) {
+  return request({
+    url: `/api/v1/mp/admin/ticket/order/detail/${ orderId }`,
+    method: 'post',
+  })
+}

+ 30 - 14
src/views/order/userTicket/detail.vue

@@ -11,7 +11,7 @@
           </div>
           <div class="info-item-content-one">
             <div class="title">订单类型:</div>
-            <div class="txt">经销商订单</div>
+            <div class="txt">盲票销售订单</div>
           </div>
         </div>
         <div class="info-item-content">
@@ -29,15 +29,15 @@
         <div class="info-item-content">
           <div class="info-item-content-one">
             <div class="title">用户昵称:</div>
-            <div class="txt">{{ info.orderId }}</div>
+            <div class="txt">{{ info.nickName }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">手机号:</div>
-            <div class="txt">1258745155</div>
+            <div class="txt">{{ info.phone }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">上级渠道商:</div>
-            <div class="txt">测试</div>
+            <div class="txt">{{ info.channelName }}</div>
           </div>
         </div>
       </div>
@@ -49,17 +49,17 @@
         <div class="info-item-content">
           <div class="info-item-content-one">
             <div class="title">兑奖状态:</div>
-            <div class="txt">已兑奖</div>
+            <div class="txt">{{ info.status && JSON.parse(info.status) .desc }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">奖级:</div>
-            <div class="txt">奖品一</div>
+            <div class="txt">{{ info.prizeGrade }}</div>
           </div>
         </div>
         <div class="info-item-content">
           <div class="info-item-content-one">
             <div class="title">奖品名称:</div>
-            <div class="txt">奖品名称11</div>
+            <div class="txt">{{ info.prizeTitle }}</div>
           </div>
         </div>
       </div>
@@ -71,29 +71,29 @@
         <div class="info-item-content">
           <div class="info-item-content-one">
             <div class="title">盲票序列号:</div>
-            <div class="txt">4851555-85-555</div>
+            <div class="txt">{{ info.serialNo }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">盲票售价:</div>
-            <div class="txt">{{ 10 }}元</div>
+            <div class="txt">{{ $numberFormat(info.salePrice) }}元</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">支付金额:</div>
-            <div class="txt">{{ 10 }}元</div>
+            <div class="txt">{{ $numberFormat(info.payAmt) }}元</div>
           </div>
         </div>
         <div class="info-item-content">
           <div class="info-item-content-one">
             <div class="title">盲票组名称:</div>
-            <div class="txt">盲票名称11</div>
+            <div class="txt">{{ info.ticketBoxTitle }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">盲票类型:</div>
-            <div class="txt">线上盲票</div>
+            <div class="txt">{{ info.ticketBoxType && JSON.parse(info.ticketBoxType).desc }}</div>
           </div>
           <div class="info-item-content-one">
             <div class="title">佣金系数:</div>
-            <div class="txt">100%</div>
+            <div class="txt">{{ info.saleCommRate }}%</div>
           </div>
         </div>
       </div>
@@ -101,6 +101,7 @@
   </div>
 </template>
 <script>
+import { ticketOrderDetail } from "@/api/business/order";
 export default {
   name: "UserTicketDetail",
   data() {
@@ -108,7 +109,22 @@ export default {
       info: {}
     };
   },
-  methods: {},
+  created() {
+    this.getDetail(this.$route.query.id);
+  },
+  methods: {
+    // 订单详情
+    getDetail(id) {
+      ticketOrderDetail(id).then((res) => {
+        if (res.code == 0) {
+          this.info = {
+            ...res.data,
+            ...res.data.ticketDetailList[0]
+          };
+        }
+      });
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 43 - 63
src/views/order/userTicket/index.vue

@@ -7,9 +7,9 @@
       v-show="showSearch"
       label-width="90px"
     >
-      <el-form-item label="盲票组名称" prop="title">
+      <el-form-item label="盲票组名称" prop="boxTitle">
         <el-input
-          v-model="queryParams.title"
+          v-model="queryParams.boxTitle"
           placeholder="请输入盲票组名称"
           clearable
           size="small"
@@ -17,9 +17,9 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="盲票类型" prop="type">
+      <el-form-item label="盲票类型" prop="boxType">
         <el-select
-          v-model="queryParams.type"
+          v-model="queryParams.boxType"
           placeholder="请选择盲票类型"
           style="width: 100%"
           size="small"
@@ -27,23 +27,13 @@
           clearable
           @change="handleQuery"
         >
-          <el-option label="线上盲票" :value="1"></el-option>
-          <el-option label="线下盲票" :value="2"></el-option>
+          <el-option label="线上盲票" value="online"></el-option>
+          <el-option label="线下盲票" value="offline"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="盲票序列号" prop="sitoNo">
+      <el-form-item label="用户手机号" prop="phone">
         <el-input
-          v-model="queryParams.sitoNo"
-          placeholder="请输入盲票序列号"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="用户手机号" prop="tel">
-        <el-input
-          v-model="queryParams.tel"
+          v-model="queryParams.phone"
           placeholder="请输入用户手机号"
           clearable
           size="small"
@@ -97,41 +87,39 @@
       ></right-toolbar>
     </el-row>
     <!-- 订单状态 -->
-    <el-tabs type="card" v-model="state" @tab-click="handleClick">
+    <el-tabs type="card" v-model="state">
       <el-tab-pane label="全部" name="null"></el-tab-pane>
-      <el-tab-pane label="已兑换" name="1"></el-tab-pane>
-      <el-tab-pane label="待兑换" name="0"></el-tab-pane>
     </el-tabs>
 
     <!-- 列表 -->
     <el-table ref="table" v-loading="loading" :data="list">
-      <el-table-column label="订单号" fixed="left" prop="orderId" min-width="80" />
+      <el-table-column
+        label="订单号"
+        fixed="left"
+        align="center"
+        prop="orderId"
+        min-width="110"
+      />
       <el-table-column label="下单时间" min-width="100">
         <template slot-scope="{ row }">
-          <div></div>
+          <div>{{ parseTime(row.createdTime) }}</div>
         </template>
       </el-table-column>
-      <el-table-column label="盲票组名称" prop="pkgNum" min-width="95">
-        <template slot-scope="{ row }"> </template>
-      </el-table-column>
-      <el-table-column label="盲票类型" min-width="80">
-        <template slot-scope="{ row }"> </template>
-      </el-table-column>
-      <el-table-column label="盲票序列号" prop="channelName" min-width="95" />
-      <el-table-column label="盲票售价(元)" prop="parentName" min-width="95" />
-      <el-table-column label="支付金额(元)" min-width="95">
+      <el-table-column label="盲票组名称" prop="title" min-width="95" />
+      <el-table-column label="盲票类型" prop="boxType" min-width="95" />
+      <el-table-column label="盲票售价(元)" prop="parentName" min-width="95">
         <template slot-scope="{ row }">
-          <div></div>
+          <div>{{ $numberFormat(row.salePrice) }}</div>
         </template>
       </el-table-column>
-      <el-table-column label="用户昵称/手机号" min-width="120">
+      <el-table-column label="支付金额(元)" min-width="95">
         <template slot-scope="{ row }">
-          <div></div>
+          <div>{{ $numberFormat(row.payAmt) }}</div>
         </template>
       </el-table-column>
-      <el-table-column label="兑换状态">
+      <el-table-column label="用户昵称/手机号" min-width="120">
         <template slot-scope="{ row }">
-          <div></div>
+          <div>{{ row.nickName }}/{{ row.phone }}</div>
         </template>
       </el-table-column>
       <el-table-column label="操作" fixed="right" align="center" width="80">
@@ -140,7 +128,7 @@
             <el-button
               v-hasPermi="['order:channel:query']"
               type="text"
-              @click="$router.push({ name: 'UserTicketDetail' })"
+              @click="$router.push({ name: 'UserTicketDetail', query: { id: row.orderId } })"
               >查看</el-button
             >
           </div>
@@ -159,6 +147,7 @@
   </div>
 </template>
 <script>
+import { ticketOrderList, ticketOrderExport } from "@/api/business/order";
 export default {
   name: "UserTicket",
   data() {
@@ -167,12 +156,11 @@ export default {
       showSearch: true,
       // 筛选
       queryParams: {
-        title: "",
-        type: "",
+        boxTitle: "",
+        boxType: "",
         startTime: "",
         endTime: "",
-        sitoNo: "",
-        tel: "",
+        phone: "",
       },
       // 分页
       pageParams: {
@@ -183,8 +171,8 @@ export default {
       total: 0,
       list: [
         {
-          orderId: 1
-        }
+          orderId: 1,
+        },
       ],
       // 下单时间
       tradeTimeArr: [],
@@ -192,11 +180,14 @@ export default {
       state: "null",
     };
   },
+  created() {
+    this.getList()
+  },
   methods: {
     // 订单列表
     getList() {
       this.loading = true;
-      getOrderList(
+      ticketOrderList(
         "pageNum=" +
           this.pageParams.pageNum +
           "&pageSize=" +
@@ -207,16 +198,11 @@ export default {
         .then((res) => {
           this.loading = false;
           if (res.code == 0) {
-            res.rows.forEach((item) => {
-              let items = item.items;
-              items.forEach((item) => {
-                let picUrlArr = item.picUrl.split(",");
-                item.picUrl = publicFileGetUrl + picUrlArr[0];
-              });
-              item.status = JSON.parse(item.status);
-            });
             this.total = res.total;
             this.list = res.rows;
+            this.list.forEach((item) => {
+              item.boxType = JSON.parse(item.boxType).desc;
+            });
           }
         })
         .catch(() => {
@@ -227,16 +213,16 @@ export default {
     //搜索
     handleQuery() {
       this.siteList = this.siteCopyList;
-      this.queryParams.pageNum = 1;
+      this.pageParams.pageNum = 1;
       this.getList();
     },
 
     // 重置
     resetQuery() {
       this.resetForm("queryForm");
-      this.state = "null";
       this.tradeTimeArr = [];
-      // this.getList();
+      this.pageParams.pageNum = 1;
+      this.getList();
     },
 
     // 选择下单时间
@@ -252,12 +238,6 @@ export default {
       }
     },
 
-    // 订单切换
-    handleClick(e) {
-      this.queryParams.status = Number(e.name);
-      this.getList();
-    },
-
     // 查看详情
     getDetail(row) {
       this.$router.push({ name: "ChannelDetail", query: { id: row.orderId } });
@@ -288,7 +268,7 @@ export default {
             text: "正在导出订单.....",
             background: "rgba(0, 0, 0, 0.7)",
           });
-          return channelOrderExport(this.queryParams);
+          return ticketOrderExport(this.queryParams);
         })
         .then((response) => {
           this.vloading.close();