Преглед на файлове

feta: 积分订单 修改售后信息的物流单号修改的接口对接和费用弹窗的接口对接

xyh преди 5 месеца
родител
ревизия
7d7a0a7b64

+ 42 - 55
src/api/points/order_api.js

@@ -30,61 +30,48 @@ export function getOrderPointStats(query) {
  * @param {Object} query - 查询参数对象,包含查询条件
  */
 export function getOrderDetail(query) {
-  const res = {
-    "code": 200,
-    "msg": "操作成功",
-    "data": {
-      "orderBaseInfo": {
-        "id": 2041435173245005825,
-        "orderNo": "PRODUCT2026040700001",
-        "orderStatus": 0,
-        "payStatus": 0,
-        "productName": "广誉源玻璃杯",
-        "productId": 18,
-        "quantity": 1,
-        "payAmount": 10,
-        "phone": null,
-        "deliveryTime": null,
-        "createTime": "2026-04-07 16:37:28",
-        "logisticsNo": null,
-        "buyerRemark": "请填写您的备注信息"
-      },
-      "receiverInfo": {
-        "receiverName": "小靳",
-        "receiverPhone": "19834500372",
-        "fullAddress": "山西省太原市万柏林区信达国际金融中心"
-      },
-      "orderItemInfo": {
-        "orderNo": "PRODUCT2026040700001",
-        "productImage": "/profile/upload/2024/05/09/tmp_b789739f02204299246f9535a2929bb9_20240509150153A001.jpg",
-        "productName": "广誉源玻璃杯",
-        "specName": "[{\"specName\":\"颜色\",\"specValue\":\"白色\"}]",
-        "priceMoney": null,
-        "pricePoint": null,
-        "payAmount": 10
-      },
-      "afterSaleInfo": {
-        "id": 2041435173245005833,
-        "afterSaleType": 1,
-        "createTime": "2026-04-07 16:37:28",
-        "applyReason": 1,
-        "afterSaleStatus": 0,
-        "logisticsNo": "125447ddfdeff",
-        "feeList": [
-          {
-            "type": "用户拒收",
-            "fee": 15.32,
-            "remark": "费用"
-          }
-        ]
-      }
-    }
-  }
-  return res;
+  return request({
+    url: `/product/order/admin/detail/${query.orderId}`,
+    method: 'get',
+  })
+}
+
+/**
+ * 积分订单管理详情修改物流单号接口
+ * @param {Object} data - 查询参数对象,包含查询条件
+ */
+export function editLogisticsNol(data) {
+  return request({
+    url: `/product/order/admin/edit/logisticsNo`,
+    method: 'put',
+    data
+  })
+}
+
+/**
+ * 售后信息修改物流单号
+ * @param {Object} data - 查询参数对象,包含查询条件
+ */
+export function editSaleOrderNew(data) {
+  return request({
+    url: `/after/sale/order`,
+    method: 'put',
+    data
+  })
+}
+
 
-  // return request({
-  //   url: `/product/order/admin/detail/${query.orderId}`,
-  //   method: 'get',
-  // })
+/**
+ * 批量添加售后费用
+ * @param {Object} data - 查询参数对象,包含查询条件
+ */
+export function orderFeeBatch(data) {
+  return request({
+    url: `/after/sale/order/fee/batch`,
+    method: 'post',
+    data
+  })
 }
 
+
+

+ 25 - 29
src/views/pointsManagement/pointsOrdeManagement/components/AfterSalesDetails.vue

@@ -1,50 +1,47 @@
 <script>
+import {orderFeeBatch} from "@/api/points/order_api"
 export default {
   name: 'AfterSalesDetails',
-  props: {
-    orderStatusOption: {
-      type: Array,
-      default: () => [
-        {label:'全部',value:'1'},
-        {label:'待发货',value:'2'},
-        {label:'已发货',value:'3'}
-      ]
-    }
-  },
   data() {
     return {
       afterSalesDetails:false,
-      costDetails: [
-        {
-          type: '换货寄回',
-          logisticsNo: '',
-          amount: ''
-        }
-      ]
+      costDetails: [],
+      afterSaleOrderId:'',
     };
   },
   methods: {
-    getRow(){
+    getRow(val){
+      const feeInfo = JSON.parse(JSON.stringify(val));
+      this.afterSaleOrderId = feeInfo.afterSaleOrderId;
+      this.costDetails = feeInfo.feeList;
       this.afterSalesDetails = true;
     },
     handleCancel() {
       this.afterSalesDetails = false;
     },
     handleConfirm() {
-      this.$emit('confirm', this.costDetails);
-      this.afterSalesDetails = false;
+      var _this = this;
+      orderFeeBatch({
+        afterSaleOrderId:_this.afterSaleOrderId,
+        feeList:_this.costDetails,
+      }).then(res=>{
+          if(res.code == 200){
+            _this.$emit('confirm', _this.costDetails);
+            _this.afterSalesDetails = false;
+          }
+      })
     },
     addCostItem() {
       // 添加费用项
       this.costDetails.push({
         type: '',
-        logisticsNo: '',
-        amount: ''
+        fee: '',
+        remark: ''
       });
     },
     removeCostItem(index) {
       // 移除费用项
-      if (this.costDetails.length > 1) {
+      if (this.costDetails.length > 0) {
         this.costDetails.splice(index, 1);
       }
     }
@@ -62,17 +59,17 @@ export default {
       <el-table :data="costDetails" style="width: 100%" border>
         <el-table-column prop="type" label="费用类型" width="150">
             <template slot-scope="scope">
-              <DictSelect v-model="scope.row.type" :dictOptions="orderStatusOption" placeholder="请选择"/>
+              <el-input v-model="scope.row.type" placeholder="请输入" maxlength="8"></el-input>
             </template>
           </el-table-column>
-        <el-table-column prop="logisticsNo" label="物流单号" width="200">
+        <el-table-column prop="fee" label="金额">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.logisticsNo" placeholder="请输入"></el-input>
+            <el-input v-model="scope.row.fee" placeholder="请输入" type="number"></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="amount" label="金额">
+        <el-table-column label="描述" width="200">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.amount" placeholder="请输入" type="number"></el-input>
+            <el-input v-model="scope.row.remark" maxlength="20" placeholder="请输入"></el-input>
           </template>
         </el-table-column>
         <el-table-column label="操作" width="80">
@@ -81,7 +78,6 @@ export default {
               type="text"
               size="small"
               @click="removeCostItem(scope.$index)"
-              :disabled="costDetails.length <= 1"
             >
              删除
             </el-button>

+ 16 - 23
src/views/pointsManagement/pointsOrdeManagement/components/ReceiverEdit.vue

@@ -9,24 +9,20 @@ export default {
     return {
       receiver:false,
       form: {
-        name: '',
-        phone: '',
-        areaCode: [],
-        address: ''
+        receiverName: '',
+        receiverPhone: '',
+        fullAddress: ''
       },
       rules: {
-        name: [
+        receiverName: [
           { required: true, message: '请输入收货人姓名', trigger: 'blur' },
           { min: 2, max: 20, message: '姓名长度在 2 到 20 个字符', trigger: 'blur' }
         ],
-        phone: [
+        receiverPhone: [
           { required: true, message: '请输入收货人手机号', trigger: 'blur' },
           { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
         ],
-        areaCode: [
-          { required: true, message: '请选择所在地区', trigger: 'change' }
-        ],
-        address: [
+        fullAddress: [
           { required: true, message: '请输入详细地址', trigger: 'blur' },
           { min: 5, max: 200, message: '详细地址长度在 5 到 200 个字符', trigger: 'blur' }
         ]
@@ -36,7 +32,7 @@ export default {
   methods: {
     getRow(receiverInfo){
       this.receiver = true;
-      this.form = receiverInfo;
+      this.form = JSON.parse(JSON.stringify(receiverInfo));
     },
    handleCancel() {
      this.receiver = false;
@@ -45,9 +41,9 @@ export default {
       this.$refs.formRef.validate((valid) => {
         if (valid) {
           this.$emit('save', {
-            name: this.form.name,
-            phone: this.form.phone,
-            address: this.form.address
+            receiverName: this.form.receiverName,
+            receiverPhone: this.form.receiverPhone,
+            fullAddress: this.form.fullAddress
           });
           this.receiver = false;
         }
@@ -64,18 +60,15 @@ export default {
     width="600px"
   >
     <el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
-      <el-form-item label="收货人姓名" prop="name">
-        <el-input v-model="form.name" placeholder="请输入收货人姓名"></el-input>
-      </el-form-item>
-      <el-form-item label="收货人手机号" prop="phone">
-        <el-input v-model="form.phone" placeholder="请输入收货人手机号"></el-input>
+      <el-form-item label="收货人姓名" prop="receiverName">
+        <el-input v-model="form.receiverName" placeholder="请输入收货人姓名"></el-input>
       </el-form-item>
-      <el-form-item label="所在地区" prop="areaCode">
-        <area-cascader v-model="form.areaCode" placeholder="请选择省市区"></area-cascader>
+      <el-form-item label="收货人手机号" prop="receiverPhone">
+        <el-input v-model="form.receiverPhone" placeholder="请输入收货人手机号"></el-input>
       </el-form-item>
-      <el-form-item label="详细地址" prop="address">
+      <el-form-item label="详细地址" prop="fullAddress">
         <el-input
-          v-model="form.address"
+          v-model="form.fullAddress"
           type="textarea"
           :rows="3"
           placeholder="请输入详细地址"

+ 193 - 78
src/views/pointsManagement/pointsOrdeManagement/details.vue

@@ -2,6 +2,7 @@
 import AreaCascader from '@/components/AreaCascader/index.vue';
 import ReceiverEdit from './components/ReceiverEdit.vue';
 import AfterSalesDetails from './components/AfterSalesDetails.vue';
+import {getOrderDetail,editLogisticsNol,editSaleOrderNew} from "@/api/points/order_api"
 export default {
   name: "details",
   components: {
@@ -11,44 +12,11 @@ export default {
   },
   data() {
     return {
-      orderStatus: '待发货',
-       orderStatusOption:[
-        {label:'全部',value:'1'},
-        {label:'待发货',value:'2'},
-        {label:'已发货',value:'3'}
-      ],
-      orderInfo: {
-        orderNo: 'DORDER2026020100001',
-        product: '广誉源毛巾',
-        quantity: '3',
-        actualPrice: '¥10+1000积分',
-        customerPhone: '19900001234',
-        orderTime: '2026-1-27 10:00:00',
-        shippingTime: '2026-1-27 10:00:00',
-        logisticsNo: 'SF2014523698',
-        remark: '尽快发货尽快发货尽快发货尽快发货,'
-      },
-      receiverInfo: {
-        name: '王五',
-        phone: '19900004458',
-        address: '山西省太原市万柏林区煤气化小西区35号'
-      },
-      productList: [
-        {
-          image: '/profile/upload/2026/01/27/美女技师1_20260127104524A001.png',
-          name: '广誉源毛巾',
-          spec: '白色',
-          price: '300',
-          actualPrice: '25'
-        }
-      ],
-      afterSalesInfo: {
-        type: '1',
-        applyTime: '2026-1-27 10:00:00',
-        reason: '不想要了',
-        logisticsNo: 'SF52145236366',
-        cost: '200',
-      },
+      orderStatusOption:[],
+      orderInfo: {},
+      receiverInfo: {},
+      productList: [],
+      afterSalesInfo: {},
       // 物流单号表单
       logisticsForm: {
         logisticsNo: '',
@@ -63,9 +31,40 @@ export default {
       },
       // 弹窗状态
       logistics: false,
+      afterSaleOption:[
+        {label:'待审核',value:'0'},
+        {label:'审核通过',value:'1'},
+        {label:'审核拒绝',value:'2'},
+        {label:'待买家退货',value:'3'},
+        {label:'待商家收货',value:'4'},
+        {label:'退款处理中',value:'5'},
+        {label:'售后完成',value:'6'},
+      ]
     };
   },
+  created() {
+    this.getOrderInfo();
+  },
   methods: {
+    async getOrderInfo() {
+      const res = await getOrderDetail({
+        orderId: this.$route.query.orderId,
+      })
+      const {afterSaleInfo,orderBaseInfo,orderItemInfo,receiverInfo} = res.data;
+      this.orderInfo = orderBaseInfo;
+      this.receiverInfo =  receiverInfo;
+      this.productList = orderItemInfo;
+      this.afterSalesInfo = afterSaleInfo;
+      const {order_status} = await this.useDict('order_status');
+      this.orderStatusOption = order_status;
+    },
+    orderStatusName(){
+      if(this.orderStatusOption.length > 0){
+        return this.orderStatusOption.filter(item => item.value == this.orderInfo.orderStatus)[0].label;
+      }else{
+        return '--'
+      }
+    },
     closeDialog() {
       this.$tab.closePage(this.$route).then(({ visitedViews }) => {
           const latestView = visitedViews.slice(-1)[0]
@@ -91,24 +90,46 @@ export default {
       this.$message.success('收货人信息修改成功');
     },
     saveLogisticsNo() {
+      var _this = this;
       // 保存物流单号
       this.$refs.logisticsFormRef.validate((valid) => {
         if (valid) {
-          if (this.logisticsForm.type === 'order') {
-            this.orderInfo.logisticsNo = this.logisticsForm.logisticsNo;
-          } else if (this.logisticsForm.type === 'afterSales') {
-            this.afterSalesInfo.logisticsNo = this.logisticsForm.logisticsNo;
+          let params = {};
+          let apiUrl = '';
+          if (_this.logisticsForm.type === 'order') {
+            apiUrl = editLogisticsNol;
+            params ={
+              orderId:_this.orderInfo.id,
+              logisticsNo:_this.logisticsForm.logisticsNo
+            }
+          } else if (_this.logisticsForm.type === 'afterSales') {
+            apiUrl = editSaleOrderNew;
+            params ={
+              afterSaleOrderId:_this.afterSalesInfo.afterSaleOrderId,
+              logisticsNo:_this.logisticsForm.logisticsNo
+            }
           }
-          this.logistics = false;
-          this.$message.success('物流单号修改成功');
+
+          apiUrl(params).then(res => {
+            if(res.code === 200) {
+              if (_this.logisticsForm.type === 'order') {
+                _this.orderInfo.logisticsNo = _this.logisticsForm.logisticsNo;
+              }else {
+                _this.afterSalesInfo.logisticsNo = _this.logisticsForm.logisticsNo;
+              }
+              _this.logistics = false;
+              _this.$message.success('物流单号修改成功');
+            }
+          })
         }
       });
     },
     //费用详情弹窗
-    viewAfterSalesDetails() {
-      this.$refs.afterSaleDetailsRef.getRow()
+    viewAfterSalesDetails(val) {
+      this.$refs.afterSaleDetailsRef.getRow(val)
     },
     handleConfirmCostDetails(costData) {
+      this.getOrderInfo();
       this.$message.success('费用详情已确认');
     },
     editLogisticsNo() {
@@ -158,11 +179,15 @@ export default {
       <div class="order-status-section">
         <div class="order-status">
           <span class="status-label">当前订单状态:</span>
-          <span class="status-value">{{ orderStatus }}</span>
+          <span class="status-value">{{ orderStatusName() }}</span>
         </div>
         <div class="order-actions">
-          <el-button type="success" size="small" @click="modifyLogisticsNo">修改物流单号</el-button>
-          <el-button type="success" size="small" @click="modifyReceiverInfo">修改收货人信息</el-button>
+          <el-button type="success" size="small"
+                     v-if="orderInfo.orderStatus == 1"
+                     @click="modifyLogisticsNo">修改物流单号</el-button>
+          <el-button type="success" size="small"
+                     v-if="orderInfo.orderStatus == 1"
+                     @click="modifyReceiverInfo">修改收货人信息</el-button>
         </div>
       </div>
     </el-card>
@@ -173,18 +198,53 @@ export default {
       </div>
       <div class="info-table">
         <el-table :data="[orderInfo]" style="width: 100%; margin-bottom: 20px;">
-          <el-table-column prop="orderNo" label="订单号" width="200"></el-table-column>
-          <el-table-column prop="product" label="商品"></el-table-column>
-          <el-table-column prop="quantity" label="数量" width="100"></el-table-column>
-          <el-table-column prop="actualPrice" label="实付价格" width="120"></el-table-column>
-          <el-table-column prop="customerPhone" label="客户手机号" width="150"></el-table-column>
-          <el-table-column prop="orderTime" label="下单时间" width="180"></el-table-column>
-          <el-table-column prop="shippingTime" label="发货时间" width="180"></el-table-column>
-          <el-table-column prop="logisticsNo" label="物流单号"></el-table-column>
+          <el-table-column prop="orderNo" label="订单号" width="200">
+            <template slot-scope="scope">
+              {{ scope.row.orderNo || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="productName" label="商品">
+            <template slot-scope="scope">
+              {{ scope.row.productName || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="quantity" label="数量" width="100">
+            <template slot-scope="scope">
+              {{ scope.row.quantity || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="payAmount" label="实付价格" width="120">
+            <template slot-scope="scope">
+              <span v-if="scope.row.paymentType == 1">{{ scope.row.pointsUsed }}积分</span>
+              <span v-else-if="scope.row.paymentType == 2">¥{{ scope.row.payAmount }}</span>
+              <span v-else-if="scope.row.paymentType == 3">¥{{ scope.row.payAmount }}+{{ scope.row.pointsUsed }}积分</span>
+              <span v-else>--</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="phone" label="客户手机号" width="150">
+            <template slot-scope="scope">
+              {{ scope.row.phone || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" label="下单时间" width="180">
+            <template slot-scope="scope">
+              {{ scope.row.createTime || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="deliveryTime" label="发货时间" width="180">
+            <template slot-scope="scope">
+              {{ scope.row.deliveryTime || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="logisticsNo" label="物流单号">
+            <template slot-scope="scope">
+              {{ scope.row.logisticsNo || '--' }}
+            </template>
+          </el-table-column>
         </el-table>
         <div class="order-remark">
           <div class="remark-label">订单备注:</div>
-          <div class="remark-content">{{ orderInfo.remark }}</div>
+          <div class="remark-content">{{ orderInfo.buyerRemark || '--' }}</div>
         </div>
       </div>
     </el-card>
@@ -195,9 +255,21 @@ export default {
       </div>
       <div class="info-table">
         <el-table :data="[receiverInfo]" style="width: 100%;">
-          <el-table-column prop="name" label="收货人" width="150"></el-table-column>
-          <el-table-column prop="phone" label="手机号" width="180"></el-table-column>
-          <el-table-column prop="address" label="收货地址"></el-table-column>
+          <el-table-column prop="receiverName" label="收货人" width="150">
+            <template slot-scope="scope">
+              {{ scope.row.receiverName || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="receiverPhone" label="手机号" width="180">
+            <template slot-scope="scope">
+              {{ scope.row.receiverPhone || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="fullAddress" label="收货地址">
+            <template slot-scope="scope">
+              {{ scope.row.fullAddress || '--' }}
+            </template>
+          </el-table-column>
         </el-table>
       </div>
     </el-card>
@@ -207,34 +279,67 @@ export default {
         <span class="section-title">商品信息</span>
       </div>
       <div class="info-table">
-        <el-table :data="productList" style="width: 100%;">
+        <el-table :data="[productList]" style="width: 100%;">
           <el-table-column label="商品图片" width="100">
             <template slot-scope="scope">
-              <img v-if="scope.row.image" :src="scope.row.image" class="product-image" alt="商品图片">
+              <img v-if="scope.row.productImage" :src="scope.row.productImage" class="product-image"/>
               <span v-else>无图片</span>
             </template>
           </el-table-column>
-          <el-table-column prop="name" label="商品名称"></el-table-column>
-          <el-table-column prop="spec" label="规格" width="150"></el-table-column>
-          <el-table-column prop="price" label="售价" width="100"></el-table-column>
-          <el-table-column prop="actualPrice" label="实付" width="100"></el-table-column>
+          <el-table-column prop="productName" label="商品名称">
+            <template slot-scope="scope">
+              {{ scope.row.productName || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="specName" label="规格" width="150">
+            <template slot-scope="scope">
+              {{ scope.row.specName || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="priceMoney" label="售价" width="100">
+            <template slot-scope="scope">
+              {{ scope.row.originPrice || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="payAmount" label="实付" width="100">
+            <template slot-scope="scope">
+              <span v-if="scope.row.paymentType == 1">{{ scope.row.pointsUsed }}积分</span>
+              <span v-else-if="scope.row.paymentType == 2">¥{{ scope.row.payAmount }}</span>
+              <span v-else-if="scope.row.paymentType == 3">¥{{ scope.row.payAmount }}+{{ scope.row.pointsUsed }}积分</span>
+              <span v-else>--</span>
+            </template>
+          </el-table-column>
         </el-table>
       </div>
     </el-card>
 
-    <el-card class="box-card">
+    <el-card class="box-card" v-if="orderInfo.orderStatus == 4">
       <div slot="header" class="clearfix">
         <span class="section-title">售后信息</span>
       </div>
       <div class="info-table">
         <el-table :data="[afterSalesInfo]" style="width: 100%;">
-          <el-table-column prop="type" label="售后类型" width="120"></el-table-column>
-          <el-table-column prop="applyTime" label="申请时间" width="180"></el-table-column>
-          <el-table-column prop="reason" label="申请原因"></el-table-column>
+          <el-table-column prop="type" label="售后类型" width="120">
+            <template slot-scope="scope">
+              <span v-if="scope.row.afterSaleType == 1">退货</span>
+              <span v-else-if="scope.row.afterSaleType == 2">换货</span>
+              <span v-else>--</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="applyTime" label="申请时间" width="180">
+            <template slot-scope="scope">
+              {{ scope.row.createTime || '--' }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="reason" label="申请原因">
+            <template slot-scope="scope">
+              {{ scope.row.applyReason || '--' }}
+            </template>
+          </el-table-column>
           <el-table-column label="物流单号(寄回)" width="200">
             <template slot-scope="scope">
               <div class="logistics-info">
-                <span>{{ scope.row.logisticsNo }}</span>
+                <span>{{ scope.row.logisticsNo || '--' }}</span>
                 <el-button type="text" size="small" @click="editLogisticsNo">
                   <i class="el-icon-edit"></i>
                 </el-button>
@@ -243,14 +348,25 @@ export default {
           </el-table-column>
           <el-table-column prop="cost" label="费用" width="100">
             <template slot-scope="scope">
-              <el-button type="primary" size="small" @click="viewAfterSalesDetails">查看详情</el-button>
+              <el-link type="primary" @click="viewAfterSalesDetails(scope.row)">查看详情</el-link>
             </template>
           </el-table-column>
-          <el-table-column label="操作" width="300">
+          <el-table-column prop="afterSaleStatus" label="状态" width="150">
             <template slot-scope="scope">
-              <div class="after-sales-actions">
-                <el-button type="success" size="small" @click="agreeReturn">同意退货</el-button>
-                <el-button type="success" size="small" @click="agreeRefund">同意退款</el-button>
+              {{afterSaleOption.filter(item => item.value == scope.row.afterSaleStatus)[0].label}}
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" width="100">
+            <template slot-scope="scope">
+              <!-- 退货 -->
+              <div class="after-sales-actions" v-if="scope.row.afterSaleType == 1">
+                <el-link type="success" @click="agreeReturn" v-if="scope.row.afterSaleStatus == 0">同意退货</el-link>
+                <el-link type="success" @click="agreeReturn" v-if="scope.row.afterSaleStatus == 4">同意退款</el-link>
+              </div>
+              <!-- 换货 -->
+              <div class="after-sales-actions" v-if="scope.row.afterSaleType == 2">
+                <el-link type="success" @click="agreeReturn" v-if="scope.row.afterSaleStatus == 0">同意换货</el-link>
+                <el-link type="success" @click="agreeReturn" v-if="scope.row.afterSaleStatus == 4">确认收货</el-link>
               </div>
             </template>
           </el-table-column>
@@ -284,7 +400,6 @@ export default {
     <!-- 售后详情弹窗组件 -->
     <after-sales-details
       ref="afterSaleDetailsRef"
-      :order-status-option="orderStatusOption"
       @confirm="handleConfirmCostDetails"
     ></after-sales-details>
   </div>

+ 12 - 3
src/views/pointsManagement/pointsOrdeManagement/index.vue

@@ -47,6 +47,12 @@
     </el-row>
 
     <tableCompontent ref="tableRef" height="72vh" :loading="loading" :tableData="list" :columnData="columnData">
+      <template v-slot:payAmount="row">
+        <span v-if="row.paymentType == 1">{{ row.pointsUsed }}积分</span>
+        <span v-else-if="row.paymentType == 2">¥{{ row.payAmount }}</span>
+        <span v-else-if="row.paymentType == 3">¥{{ row.payAmount }}+{{ row.pointsUsed }}积分</span>
+        <span v-else>--</span>
+      </template>
       <template v-slot:operation="row">
         <el-button size="mini" type="text" @click="handleView(row)">详情</el-button>
       </template>
@@ -108,6 +114,7 @@ export default {
           prop: 'payAmount',
           label: '价格',
           align:'center',
+          type:'diy',
         },
         {
           prop: 'nickName',
@@ -178,9 +185,11 @@ export default {
     async getOptionList() {
       //获取活动类型,获取活动状态
       const {order_status} = await this.useDict('order_status');
-      this.orderStatusOption = order_status;
-      this.columnData.find(item => item.prop === 'orderStatus').option = this.orderStatusOption;
-
+      let orderOption = JSON.parse(JSON.stringify(order_status));
+      this.orderStatusOption = orderOption.filter(item=>
+        ['待发货','待收货','已收货','售后中'].includes(item.label)
+      );
+      this.columnData.find(item => item.prop === 'orderStatus').option = order_status;
       //获取统计
       const res = await getOrderPointStats();
       this.pointStatistics = res.data;