From 78ae0183203d1f3628d19c61e4ad10d6880c5174 Mon Sep 17 00:00:00 2001
From: "LAPTOP-CNV4CMCJ\\cheng" <1315228474@qq.com>
Date: Sat, 19 Nov 2022 00:40:13 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=80=E6=AC=BE=E5=88=97?=
 =?UTF-8?q?=E8=A1=A8=E9=A1=B5=20=E8=B0=83=E6=95=B4=E5=95=86=E5=93=81?=
 =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E7=9A=84tab=E5=88=87=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 yudao-ui-admin/src/router/index.js            |   6 +
 .../src/views/mall/trade/order/detail.vue     |  10 +
 .../src/views/mall/trade/order/index.vue      | 146 ++++-----
 .../views/mall/trade/orderrefund/index.vue    | 289 ++++++++++++++++++
 4 files changed, 378 insertions(+), 73 deletions(-)
 create mode 100644 yudao-ui-admin/src/views/mall/trade/orderrefund/index.vue

diff --git a/yudao-ui-admin/src/router/index.js b/yudao-ui-admin/src/router/index.js
index 309a7a3b8..133eed186 100644
--- a/yudao-ui-admin/src/router/index.js
+++ b/yudao-ui-admin/src/router/index.js
@@ -216,6 +216,12 @@ export const constantRoutes = [
         hidden: true,
         meta: { title: '订单详情' },
         component: (resolve) => require(['@/views/mall/trade/order/detail'], resolve)
+      },
+      {
+        path: '/mall/trade/orderrefund',
+        name: '退款维权',
+        meta: { title: '退款维权' },
+        component: (resolve) => require(['@/views/mall/trade/orderrefund'], resolve)
       }
     ]
   }
diff --git a/yudao-ui-admin/src/views/mall/trade/order/detail.vue b/yudao-ui-admin/src/views/mall/trade/order/detail.vue
index 4e50d8f41..13a6c3dee 100644
--- a/yudao-ui-admin/src/views/mall/trade/order/detail.vue
+++ b/yudao-ui-admin/src/views/mall/trade/order/detail.vue
@@ -195,6 +195,16 @@ export default {
               }
             ],
             goodsList: [ // 包裹下的商品列表
+              {
+                name: 'Otic 巴拉啦小魔仙联名麦克风儿童早教家用一体卡拉OK宝宝话筒唱歌 魔仙粉',
+                count: 6,
+                imgUrl: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
+              },
+              {
+                name: 'Otic 巴拉啦小魔仙联名麦克风儿童早教家用一体卡拉OK宝宝话筒唱歌 魔仙粉',
+                count: 6,
+                imgUrl: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
+              },
               {
                 name: 'Otic 巴拉啦小魔仙联名麦克风儿童早教家用一体卡拉OK宝宝话筒唱歌 魔仙粉',
                 count: 6,
diff --git a/yudao-ui-admin/src/views/mall/trade/order/index.vue b/yudao-ui-admin/src/views/mall/trade/order/index.vue
index 9b9da0565..91e81da74 100644
--- a/yudao-ui-admin/src/views/mall/trade/order/index.vue
+++ b/yudao-ui-admin/src/views/mall/trade/order/index.vue
@@ -63,70 +63,71 @@
     </el-row>
 
     <!-- tab切换-->
-    <el-radio-group v-model="activeTabName">
-      <el-radio-button v-for="tabPane in tabPanes" :label="tabPane.label">{{tabPane.text}}</el-radio-button>
-    </el-radio-group>
-
-    <!-- table -->
-    <el-table :data="tableData" :show-header="false" class="order-table">
-      <el-table-column label="订单信息">
-        <template slot-scope="{ row }">
-          <el-row>
-            <el-col :span="5">
-              订单号:{{row.orderNo}}
-              <el-popover title="支付流水号:" :content="row.payNo" ref="popover" placement="right" width="200" trigger="click"/>
-              <el-button type="text" v-popover:popover>更多</el-button>
-            </el-col>
-            <el-col :span="5">下单时间:{{row.time}}</el-col>
-            <el-col :span="4">订单来源:{{row.orderSource}}</el-col>
-            <el-col :span="4">支付方式:{{row.payWay}}</el-col>
-            <el-col :span="6" align="right" type="flex">
-              <el-button type="text">关闭订单</el-button>
-              <el-button type="text">修改地址</el-button>
-              <el-button type="text">调整价格</el-button>
-              <el-dropdown style="margin-left: 10px">
-                <el-button type="text">
-                  更多操作<i class="el-icon-arrow-down el-icon--right"></i>
-                </el-button>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item><el-button type="text">打印发货单</el-button></el-dropdown-item>
-                  <el-dropdown-item><el-button type="text" @click="goToDetail(row)">详情</el-button></el-dropdown-item>
-                  <el-dropdown-item><el-button type="text">备注</el-button></el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown>
-            </el-col>
-          </el-row>
-          <!-- 订单下的商品 -->
-          <el-table :data="row.goods" border>
-            <el-table-column label="商品" prop="goods" header-align="center" width="360">
-              <template slot-scope="{ row, $index }">
-                <div class="goods-info">
-                  <img :src="row.picture"/>
-                  <span class="ellipsis-2" :title="row.name">{{row.name}}</span>
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column label="单价(元)/数量" prop="fee" align="center" width="115">
-              <template slot-scope="{ row }">
-                <div>{{row.price}}</div>
-                <div>{{row.count}}</div>
-              </template>
-            </el-table-column>
-            <el-table-column label="维权" prop="safeguard" align="center" width="115"/>
-            <el-table-column label="实付金额(元)" prop="amount" align="center" width="115"/>
-            <el-table-column label="买家/收货人" prop="buyer" header-align="center" width="360">
-              <template slot-scope="{ row }">
-                <div>{{row.buyer}}</div>
-                <div>{{row.receiver}}{{row.tel}}</div>
-                <div class="ellipsis-2" :title="row.address">{{row.address}}</div>
-              </template>
-            </el-table-column>
-            <el-table-column label="配送方式" prop="sendWay" align="center" width="115"/>
-            <el-table-column label="交易状态" prop="status" align="center"/>
-          </el-table>
-        </template>
-      </el-table-column>
-    </el-table>
+    <el-tabs v-model="activeTabName" type="card">
+      <el-tab-pane v-for="tabPane in tabPanes" :label="tabPane.text" :name="tabPane.name">
+        <!-- table -->
+        <el-table :data="tableData" :show-header="false" class="order-table">
+          <el-table-column>
+            <template slot-scope="{ row }">
+              <el-row type="flex" align="middle">
+                <el-col :span="5">
+                  订单号:{{row.orderNo}}
+                  <el-popover title="支付流水号:" :content="row.orderNo" placement="right" width="200" trigger="click">
+                    <el-button slot="reference" type="text">更多</el-button>
+                  </el-popover>
+                </el-col>
+                <el-col :span="5">下单时间:{{row.time}}</el-col>
+                <el-col :span="4">订单来源:{{row.orderSource}}</el-col>
+                <el-col :span="4">支付方式:{{row.payWay}}</el-col>
+                <el-col :span="6" align="right">
+                  <el-button type="text">关闭订单</el-button>
+                  <el-button type="text">修改地址</el-button>
+                  <el-button type="text">调整价格</el-button>
+                  <el-dropdown style="margin-left: 10px">
+                    <el-button type="text">
+                      更多操作<i class="el-icon-arrow-down el-icon--right"></i>
+                    </el-button>
+                    <el-dropdown-menu slot="dropdown">
+                      <el-dropdown-item><el-button type="text">打印发货单</el-button></el-dropdown-item>
+                      <el-dropdown-item><el-button type="text" @click="goToDetail(row)">详情</el-button></el-dropdown-item>
+                      <el-dropdown-item><el-button type="text">备注</el-button></el-dropdown-item>
+                    </el-dropdown-menu>
+                  </el-dropdown>
+                </el-col>
+              </el-row>
+              <!-- 订单下的商品 -->
+              <el-table :data="row.goods" border :show-header="true">
+                <el-table-column label="商品" prop="goods" header-align="center" width="auto" min-width="300">
+                  <template slot-scope="{ row, $index }">
+                    <div class="goods-info">
+                      <img :src="row.picture"/>
+                      <span class="ellipsis-2" :title="row.name">{{row.name}}</span>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="单价(元)/数量" prop="fee" align="center" width="115">
+                  <template slot-scope="{ row }">
+                    <div>{{row.price}}</div>
+                    <div>{{row.count}}</div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="维权" prop="safeguard" align="center" width="100"/>
+                <el-table-column label="实付金额(元)" prop="amount" align="center" width="100"/>
+                <el-table-column label="买家/收货人" prop="buyer" header-align="center" width="auto" min-width="300">
+                  <template slot-scope="{ row }">
+                    <div>{{row.buyer}}</div>
+                    <div>{{row.receiver}}{{row.tel}}</div>
+                    <div class="ellipsis-2" :title="row.address">{{row.address}}</div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="配送方式" prop="sendWay" align="center" width="100"/>
+                <el-table-column label="交易状态" prop="status" align="center" width="100"/>
+              </el-table>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-tab-pane>
+    </el-tabs>
   </div>
 </template>
 
@@ -234,14 +235,14 @@
         },
         activeTabName: 'all',
         tabPanes: [
-          { text: '全部', label: 'all' },
-          { text: '待支付', label: 'toBePay' },
-          { text: '待发货', label: 'toBeSend' },
-          { text: '已发货', label: 'send' },
-          { text: '已收货', label: 'received' },
-          { text: '已完成', label: 'finished' },
-          { text: '已关闭', label: 'closed' },
-          { text: '退款中', label: 'refund' }
+          { text: '全部', name: 'all' },
+          { text: '待支付', name: 'toBePay' },
+          { text: '待发货', name: 'toBeSend' },
+          { text: '已发货', name: 'send' },
+          { text: '已收货', name: 'received' },
+          { text: '已完成', name: 'finished' },
+          { text: '已关闭', name: 'closed' },
+          { text: '退款中', name: 'refund' }
         ],
         tableData: [
           {
@@ -333,7 +334,6 @@
 
 <style lang="scss" scoped>
   ::v-deep .order-table{
-    margin-top: 20px;
     border-bottom: none;
     &::before{
       height: 0;
diff --git a/yudao-ui-admin/src/views/mall/trade/orderrefund/index.vue b/yudao-ui-admin/src/views/mall/trade/orderrefund/index.vue
new file mode 100644
index 000000000..3e1029bba
--- /dev/null
+++ b/yudao-ui-admin/src/views/mall/trade/orderrefund/index.vue
@@ -0,0 +1,289 @@
+<template>
+  <div class="app-container">
+    <!-- 搜索工作栏 -->
+    <el-row :gutter="20">
+      <el-form :model="queryParams" label-width="68px" size="small">
+        <el-col :span="6" :xs="24">
+          <el-form-item label="商品名称">
+            <el-input v-model="queryParams.name" style="width: 240px"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="订单编号">
+            <el-input v-model="queryParams.No" style="width: 240px"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="退款编号">
+            <el-input v-model="queryParams.refundNo" style="width: 240px"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="退款状态">
+            <el-select v-model="queryParams.refundStatus" clearable style="width: 240px">
+              <el-option v-for="dict in dicData.refundStatus" v-bind="dict" :key="dict.value"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="退款方式">
+            <el-select v-model="queryParams.refundWay" clearable style="width: 240px">
+              <el-option v-for="dict in dicData.refundWay" v-bind="dict" :key="dict.value"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="维权类型">
+            <el-select v-model="queryParams.refundType" clearable style="width: 240px">
+              <el-option v-for="dict in dicData.refundType" v-bind="dict" :key="dict.value"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24">
+          <el-form-item label="下单时间">
+            <el-date-picker v-model="queryParams.date" type="daterange" range-separator="至"
+                            start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="rangePickerOptions" style="width: 240px"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" :xs="24" style="line-height: 32px">
+          <el-button type="primary" icon="el-icon-search" size="mini">搜索</el-button>
+          <el-button icon="el-icon-refresh" size="mini">重置</el-button>
+          <el-button icon="el-icon-document" size="mini">导出订单</el-button>
+        </el-col>
+      </el-form>
+    </el-row>
+
+    <!-- tab切换-->
+    <el-tabs v-model="activeTabName" type="card">
+      <el-tab-pane v-for="tabPane in tabPanes" :label="tabPane.text" :name="tabPane.name">
+        <!-- table -->
+        <el-table :data="tableData" :show-header="false" class="table-wrapper">
+          <el-table-column>
+            <template slot-scope="{ row }">
+              <div class="table-header">
+                退款编号:{{row.tkbh}}
+                <el-button type="text" style="margin-left: 10px">
+                  订单编号:{{row.ddbh}}
+                </el-button>
+              </div>
+              <!-- 订单下的商品 -->
+              <el-table :data="row.goods" border>
+                <el-table-column label="商品信息" prop="spxx" header-align="center" width="auto" min-width="300">
+                  <div slot-scope="{ row, $index }" class="goods-info">
+                    <img :src="row.img"/>
+                    <span class="ellipsis-2" :title="row.name">{{row.name}}</span>
+                  </div>
+                </el-table-column>
+                <el-table-column label="订单金额" prop="ddje" align="center" width="100"/>
+                <el-table-column label="买家" prop="mj" align="center" width="100"/>
+                <el-table-column label="退款金额" prop="tkje" align="center" width="100"/>
+                <el-table-column label="申请时间" prop="sqsj" align="center" width="180"/>
+                <el-table-column label="退款状态" prop="tkzt" align="center" width="100"/>
+                <el-table-column label="操作" align="center" width="100" fixed="right" >
+                  <el-button slot-scope="{row}" type="text">详情</el-button>
+                </el-table-column>
+              </el-table>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+const dicData = {
+  refundStatus: [
+    { label: '全部', value: 'qb' },
+    { label: '申请维权', value: 'sqwq' },
+    { label: '待转账', value: 'dzz' },
+    { label: '维权结束', value: 'wqjs' },
+    { label: '买家待退货', value: 'mjdth' },
+    { label: '卖家待收货', value: 'mjdsh' },
+    { label: '卖家已收货', value: 'mjysh' },
+    { label: '卖家拒绝', value: 'mjjj' }
+  ],
+  refundWay: [
+    { label: '全部', value: 'qb' },
+    { label: '仅退款', value: 'jtk' },
+    { label: '退货退款', value: 'thtk' }
+  ],
+  refundType: [
+    { label: '全部', value: 'qb' },
+    { label: '订单退款', value: 'ddtk' },
+    { label: '售后退款', value: 'shtk' }
+  ]
+}
+const rangePickerOptions = {
+  shortcuts: [{
+    text: '最近一周',
+    onClick(picker) {
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+      picker.$emit('pick', [start, end]);
+    }
+  }, {
+    text: '最近一个月',
+    onClick(picker) {
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+      picker.$emit('pick', [start, end]);
+    }
+  }, {
+    text: '最近三个月',
+    onClick(picker) {
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+      picker.$emit('pick', [start, end]);
+    }
+  }]
+}
+export default {
+    name: "index",
+    data () {
+      return {
+        dicData,
+        rangePickerOptions,
+        queryParams: {},
+        activeTabName: 'all',
+        tabPanes: [
+          { text: '全部', name: 'all' },
+          { text: '申请维权', name: 'sqwq' },
+          { text: '待转账', name: 'dzz' },
+          { text: '维权结束', name: 'wqjs' },
+          { text: '买家待退货', name: 'mjdth' },
+          { text: '卖家待收货', name: 'mjdsh' },
+          { text: '卖家已收货', name: 'mjysh' },
+          { text: '卖家拒绝', name: 'mjjj' }
+        ],
+        tableData: [
+          {
+            tkbh: '20221026220424001',
+            ddbh: '20221026220424001',
+            goods: [
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              },
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              }
+            ]
+          },
+          {
+            tkbh: '20221026220424001',
+            ddbh: '20221026220424001',
+            goods: [
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              },
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              }
+            ]
+          },
+          {
+            tkbh: '20221026220424001',
+            ddbh: '20221026220424001',
+            goods: [
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              },
+              {
+                name: '颜衫短袖男polo衫夏季翻领衣服潮牌休闲上衣夏天翻领半袖男士t恤',
+                img: 'https://b2c-v5-yanshi.oss-cn-hangzhou.aliyuncs.com/upload/1/common/images/20220723/20220723115621165854858145027_SMALL.webp',
+                ddje: '199',
+                mj: '张三',
+                tkje: 460,
+                sqsj: '2022-11-19',
+                tkzt: '申请维权(仅退款)'
+              }
+            ]
+          }
+        ]
+      }
+    },
+    methods: {
+      goToDetail (row) {
+        this.$router.push({ path: '/mall/trade/order/detail', query: { orderNo: row.orderNo }})
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  ::v-deep .table-wrapper{
+    border-bottom: none;
+    &::before{
+      height: 0;
+    }
+    .table-header{
+      line-height: 36px;
+    }
+    .el-table__row{
+      .el-table__cell{
+        border-bottom: none;
+        .cell{
+          .el-table {
+            .el-table__row{
+              >.el-table__cell{
+                .goods-info{
+                  display: flex;
+                  img{
+                    margin-right: 10px;
+                    width: 60px;
+                    height: 60px;
+                    border: 1px solid #e2e2e2;
+                  }
+                }
+                .ellipsis-2{
+                  display: -webkit-box;
+                  overflow: hidden;
+                  text-overflow: ellipsis;
+                  white-space: normal;
+                  -webkit-line-clamp: 2; /* 要显示的行数 */
+                  -webkit-box-orient: vertical;
+                  word-break: break-all;
+                  line-height: 22px !important;
+                  max-height: 44px !important;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+</style>