瀏覽代碼

申请订单理赔和售后补款*订单日志

Alex 11 月之前
父節點
當前提交
ab18d7a5c2

+ 157 - 43
src/views/recycleOrder/components/after-sales-payment.vue

@@ -8,12 +8,14 @@
     @open="handleOpen"
   >
     <el-row :gutter="12" class="common-row">
-      <el-col :span="12">书籍总数:20本</el-col>
-      <el-col :span="12">不良数量:2本</el-col>
-      <el-col :span="12">预估书款:20.46元</el-col>
-      <el-col :span="12">预估运费:0元</el-col>
-      <el-col :span="12">审核书款:15.66元</el-col>
-      <el-col :span="12">运费补贴:0元</el-col>
+      <el-col :span="12">书籍总数:{{ orderData.totalNum || 0 }}本</el-col>
+      <el-col :span="12">不良数量:{{ orderData.badNum || 0 }}本</el-col>
+      <el-col :span="12">预估书款:{{ orderData.expectMoney || 0 }}元</el-col>
+      <el-col :span="12">预估运费:{{ orderData.expressMoney || 0 }}元</el-col>
+      <el-col :span="12">审核书款:{{ orderData.finalMoney || 0 }}元</el-col>
+      <el-col :span="12"
+        >运费补贴:{{ orderData.expressSubsidy || 0 }}元</el-col
+      >
     </el-row>
 
     <el-form
@@ -23,66 +25,87 @@
       label-width="80px"
       @submit.prevent=""
     >
-      <el-form-item label="补款类型" prop="paymentType">
-        <el-radio-group v-model="form.paymentType">
-          <el-radio :value="1">书籍补款</el-radio>
-          <el-radio :value="2">运费补款</el-radio>
+      <el-form-item label="补款类型" prop="type">
+        <el-radio-group v-model="form.type">
+          <el-radio label="1">书籍补款</el-radio>
+          <el-radio label="2">运费补款</el-radio>
         </el-radio-group>
       </el-form-item>
-      <el-form-item label="书籍补款" prop="amount">
-        <el-input-number v-model="form.amount" :controls="false" :min="0.01" placeholder="补款金额">
+      <el-form-item label="补款金额" prop="money">
+        <el-input-number
+          v-model="form.money"
+          :controls="false"
+          :max="orderData.canBackMoney"
+          :min="0"
+          :precision="2"
+          placeholder="补款金额"
+        >
         </el-input-number>
-        <el-text style="margin:0 16px 0 5px">元</el-text>
-        <el-text size="small" type="info">书籍补款金额≤预估金额-审核金额-理赔金额。大于0,可精确到小数点后两位。</el-text>
+        <el-text style="margin: 0 16px 0 5px">元</el-text>
+        <el-text size="small" type="info">
+          剩余可补款金额:<span style="color: red">{{ orderData.canBackMoney }}元</span>
+          书籍补款金额≤预估金额-审核金额-理赔金额。大于0,可精确到小数点后两位。</el-text
+        >
       </el-form-item>
-      <el-form-item label="补款备注" prop="remark">
+      <el-form-item label="补款备注" prop="reason">
         <el-input
           :rows="4"
           type="textarea"
-          v-model="form.remark"
+          v-model="form.reason"
           placeholder="请输入补款备注"
         />
       </el-form-item>
-      <el-form-item label="补款记录" prop="records"> 
-        <SimpleTable style="width:100%" :columns="columns"></SimpleTable>
+      <el-form-item label="补款记录" prop="records">
+        <ele-data-table
+          row-key="id"
+          :columns="columns"
+          :data="orderData.backVoList"
+        ></ele-data-table>
       </el-form-item>
     </el-form>
 
     <template #footer>
       <el-button @click="handleCancel">关闭</el-button>
-      <el-button type="primary" @click="handleCancel">确定</el-button>
+      <el-button type="primary" @click="handleSubmit">确定</el-button>
     </template>
   </ele-modal>
 </template>
 
 <script setup>
-  import { ref, reactive, nextTick } from 'vue';
-  import { Flag, ChatDotSquare } from '@element-plus/icons-vue';
-  import orderTimeline from '@/views/recycleOrder/components/order-timeline.vue';
-  import SimpleTable from '@/components/CommonPage/SimpleTable.vue'
+  import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
+  import { EleMessage } from 'ele-admin-plus/es';
+
+  const { proxy } = getCurrentInstance();
+  const emit = defineEmits(['success']);
 
   /** 弹窗是否打开 */
   const visible = defineModel({ type: Boolean });
 
-  /** 关闭弹窗 */
-  const handleCancel = () => {
-    visible.value = false;
-  };
+  /** 表单引用 */
+  const formRef = ref();
 
-  /** 弹窗打开事件 */
-  const handleOpen = () => {
-    visible.value = true;
-    nextTick(() => console.log('打开'));
-  };
+  /** 订单数据 */
+  const orderData = ref({
+    orderId: null,
+    totalNum: 0,
+    badNum: 0,
+    expectMoney: 0,
+    expressMoney: 0,
+    finalMoney: 0,
+    expressSubsidy: 0,
+    backVoList: []
+  });
 
   const form = reactive({
-    paymentType: '',
-    remark: '',
-    amount: ''
+    orderId: null,
+    type: 1,
+    reason: '',
+    money: 0
   });
+
   /** 表单验证规则 */
   const rules = reactive({
-    paymentType: [
+    type: [
       {
         required: true,
         message: '请选择补款类型',
@@ -90,7 +113,7 @@
         trigger: 'change'
       }
     ],
-    remark: [
+    reason: [
       {
         required: true,
         message: '请输入备注信息',
@@ -98,23 +121,114 @@
         trigger: 'blur'
       }
     ],
-    amount:[{
+    money: [
+      {
         required: true,
         message: '请输入补款金额',
         type: 'number',
         trigger: 'change'
-    }]
+      },
+      {
+        validator: (rule, value, callback) => {
+          if (value <= 0) {
+            callback(new Error('补款金额必须大于0'));
+          } else if (value > orderData.value.canBackMoney) {
+            callback(new Error('补款金额不能大于可补款金额'));
+          } else {
+            callback();
+          }
+        },
+        trigger: 'change'
+      }
+    ]
   });
 
   // 表格数据
   const columns = reactive([
-    { label: '操作人', prop: 'createBy', width: 100 },
-    { label: '金额', prop: 'orderNumber', width: 150 },
-    { label: '类型', prop: 'status', width: 100 },
+    { label: '操作人', prop: 'operator', width: 100 },
+    {
+      label: '金额',
+      prop: 'money',
+      width: 100,
+      formatter: (row) => {
+        return '¥' + row.money;
+      }
+    },
+    {
+      label: '类型',
+      prop: 'type',
+      width: 100,
+      formatter: (row) => {
+        return row.type == 1 ? '书籍补款' : '运费补款';
+      }
+    },
     { label: '操作时间', prop: 'createTime', width: 180 },
-    { label: '备注', prop: 'logDescription' },
+    { label: '备注', prop: 'reason' }
   ]);
 
+  /** 关闭弹窗 */
+  const handleCancel = () => {
+    visible.value = false;
+    resetForm();
+  };
+
+  /** 重置表单 */
+  const resetForm = () => {
+    form.orderId = null;
+    form.type = 1;
+    form.reason = '';
+    form.money = 0;
+    formRef.value?.resetFields();
+  };
+
+  /** 弹窗打开事件 */
+  const handleOpen = (row) => {
+    if (row.orderId) {
+      visible.value = true;
+      form.orderId = row.orderId;
+      getPayInBackInfo(row.orderId);
+    }
+  };
+
+  /** 获取补款信息 */
+  const getPayInBackInfo = (orderId) => {
+    proxy.$http
+      .get(`/order/orderPayInBack/getPayInBack/${orderId}`)
+      .then((res) => {
+        if (res.data.code === 200) {
+          let data = res.data.data || {};
+          orderData.value = {
+            ...data,
+            backVoList: data.backVoList || []
+          };
+        } else {
+          EleMessage.error(res.data.msg || '获取补款信息失败');
+        }
+      });
+  };
+
+  /** 提交表单 */
+  const handleSubmit = () => {
+    formRef.value?.validate(async (valid) => {
+      if (!valid) return;
+      proxy.$http
+        .post('/order/orderPayInBack/addPayInBack', {
+          orderId: form.orderId,
+          type: form.type,
+          reason: form.reason,
+          money: form.money
+        })
+        .then((res) => {
+          if (res.data.code == 200) {
+            EleMessage.success('补款申请成功');
+            emit('success');
+            handleCancel();
+          } else {
+            EleMessage.error(res.data.msg || '补款申请失败');
+          }
+        });
+    });
+  };
 
   defineExpose({
     handleOpen

+ 134 - 41
src/views/recycleOrder/components/applyfor-order-claim.vue

@@ -8,10 +8,10 @@
     @open="handleOpen"
   >
     <el-row :gutter="12" class="common-row">
-      <el-col :span="24">订单编号:9835451</el-col>
-      <el-col :span="24">预估金额:20.46元</el-col>
-      <el-col :span="24">审核金额:15.66元</el-col>
-      <el-col :span="24">书籍补款:0.22元</el-col>
+      <el-col :span="24">订单编号:{{ orderData.orderId || '-' }}</el-col>
+      <el-col :span="24">预估金额:{{ orderData.expectMoney || '0' }}元</el-col>
+      <el-col :span="24">审核金额:{{ orderData.finalMoney || '0' }}元</el-col>
+      <el-col :span="24">书籍补款:{{ orderData.backMoney || '0' }}元</el-col>
     </el-row>
 
     <el-form
@@ -21,95 +21,188 @@
       label-width="80px"
       @submit.prevent=""
     >
-      <el-form-item label="理赔金额" prop="amount">
+      <el-form-item label="理赔金额" prop="money">
         <el-input-number
-          v-model="form.amount"
+          v-model="form.money"
           :controls="false"
-          :min="0.01"
+          :min="0"
+          :max="orderData.canBackMoney"
+          :precision="2"
           placeholder="理赔金额"
         >
         </el-input-number>
         <el-text style="margin: 0 16px 0 5px">元</el-text>
-        <el-text size="small" type="info"
-          >理赔金额≤预估金额-审核金额-售后补款金额。大于0,可精确到小数点后两位。</el-text
+        <el-text size="small" type="info">
+          剩余可补款金额:<span style="color: red">{{ orderData.canBackMoney }}元</span>
+          理赔金额≤预估金额-审核金额-售后补款金额。大于0,可精确到小数点后两位。</el-text
         >
       </el-form-item>
-      <el-form-item label="理赔原因" prop="paymentType">
-        <el-radio-group v-model="form.paymentType">
-          <el-radio :value="1">破损</el-radio>
-          <el-radio :value="2">少书</el-radio>
-          <el-radio :value="2">丢失</el-radio>
-          <el-radio :value="2">浸泡</el-radio>
-          <el-radio :value="2">混寄</el-radio>
-          <el-radio :value="2">书单不符</el-radio>
+      <el-form-item label="理赔原因" prop="reason">
+        <el-radio-group v-model="form.reason">
+          <el-radio v-for="item in reasonList" :key="item" :value="item">
+            {{ item }}
+          </el-radio>
         </el-radio-group>
       </el-form-item>
 
       <el-form-item label="理赔记录" prop="records">
-        <SimpleTable style="width:100%" :columns="columns"></SimpleTable>
+        <ele-data-table
+          row-key="id"
+          :columns="columns"
+          :data="claimRecords"
+        ></ele-data-table>
       </el-form-item>
     </el-form>
 
     <template #footer>
       <el-button @click="handleCancel">关闭</el-button>
-      <el-button type="primary" @click="handleCancel">确定</el-button>
+      <el-button type="primary" @click="handleSubmit">确定</el-button>
     </template>
   </ele-modal>
 </template>
 
 <script setup>
-  import { ref, reactive, nextTick } from 'vue';
-  import { Flag, ChatDotSquare } from '@element-plus/icons-vue';
-  import orderTimeline from '@/views/recycleOrder/components/order-timeline.vue';
-  import SimpleTable from '@/components/CommonPage/SimpleTable.vue';
+  import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
+  import { EleMessage } from 'ele-admin-plus/es';
+
+  const { proxy } = getCurrentInstance();
+  const emit = defineEmits(['success']);
 
   /** 弹窗是否打开 */
   const visible = defineModel({ type: Boolean });
 
-  /** 关闭弹窗 */
-  const handleCancel = () => {
-    visible.value = false;
-  };
+  /** 表单引用 */
+  const formRef = ref();
 
-  /** 弹窗打开事件 */
-  const handleOpen = () => {
-    visible.value = true;
-    nextTick(() => console.log('打开'));
-  };
+  /** 订单数据 */
+  const orderData = ref({
+    orderId: null,
+    expectMoney: 0,
+    finalMoney: 0,
+    backMoney: 0,
+    canBackMoney: 0
+  });
+
+  /** 理赔记录 */
+  const claimRecords = ref([]);
 
   const form = reactive({
-    paymentType: '',
-    amount: ''
+    orderId: null,
+    money: 0,
+    reason: ''
   });
+
   /** 表单验证规则 */
   const rules = reactive({
-    paymentType: [
+    reason: [
       {
         required: true,
-        message: '请选择补款类型',
+        message: '请选择理赔原因',
         type: 'string',
         trigger: 'change'
       }
     ],
-    amount: [
+    money: [
       {
         required: true,
         message: '请输入理赔金额',
         type: 'number',
         trigger: 'change'
+      },
+      {
+        validator: (rule, value, callback) => {
+          if (value <= 0) {
+            callback(new Error('理赔金额必须大于0'));
+          } else if (value > orderData.value.canBackMoney) {
+            callback(new Error('理赔金额不能大于可理赔金额'));
+          } else {
+            callback();
+          }
+        },
+        trigger: 'change'
       }
     ]
   });
 
   // 表格数据
   const columns = reactive([
-    { label: '操作人', prop: 'createBy', width: 100 },
-    { label: '金额', prop: 'orderNumber', width: 150 },
-    { label: '类型', prop: 'status', width: 100 },
+    { label: '操作人', prop: 'operator', width: 100 },
+    {
+      label: '金额',
+      prop: 'money',
+      width: 100,
+      formatter: (row) => {
+        return '¥' + row.money;
+      }
+    },
+    { label: '类型', prop: 'reason', width: 100 },
     { label: '操作时间', prop: 'createTime', width: 180 },
-    { label: '备注', prop: 'logDescription' },
+    { label: '备注', prop: 'reason' }
   ]);
 
+  /** 关闭弹窗 */
+  const handleCancel = () => {
+    visible.value = false;
+    resetForm();
+  };
+
+  /** 重置表单 */
+  const resetForm = () => {
+    form.orderId = null;
+    form.money = 0;
+    form.reason = '';
+    formRef.value?.resetFields();
+  };
+
+  /** 弹窗打开事件 */
+  const handleOpen = (row) => {
+    if (row.orderId) {
+      visible.value = true;
+      form.orderId = row.orderId;
+      getClaimRecords(row.orderId);
+    }
+  };
+
+  /** 获取理赔记录 */
+  const reasonList = ref([]);
+  const getClaimRecords = (orderId) => {
+    proxy.$http
+      .get(`/order/orderPayInBack/getPayClaims/${orderId}`)
+      .then((res) => {
+        if (res.data.code === 200) {
+          let data = res.data.data || [];
+          orderData.value = data;
+          console.log(orderData.value, 'xxx');
+          claimRecords.value = data.backVoList || [];
+          reasonList.value = data.reasonList || [];
+        } else {
+          EleMessage.error(res.data.msg || '获取理赔记录失败');
+        }
+      });
+  };
+
+  /** 提交表单 */
+  const handleSubmit = () => {
+    formRef.value?.validate(async (valid) => {
+      if (!valid) return;
+      proxy.$http
+        .post('/order/orderPayInBack/addOrderPayClaims', {
+          orderId: form.orderId,
+          money: form.money,
+          reason: form.reason
+        })
+        .then((res) => {
+          if (res.data.code == 200) {
+            EleMessage.success('申请理赔成功');
+            emit('success');
+            handleCancel();
+          } else {
+            EleMessage.error(res.data.msg || '申请理赔失败');
+          }
+        });
+    });
+  };
+
   defineExpose({
     handleOpen
   });

+ 37 - 19
src/views/recycleOrder/components/order-log.vue

@@ -1,16 +1,17 @@
 <!-- 编辑弹窗 -->
 <template>
   <ele-modal :width="1080" v-model="visible" title="订单日志">
-    <ele-pro-table
-      ref="tableRef"
-      row-key="id"
-      :columns="columns"
-      :datasource="datasource"
-      highlight-current-row
-      cache-key="orderLogTable"
-      :pagination="false"
-      :tools="false"
-    ></ele-pro-table>
+    <ele-data-table :data="orderLog" :columns="columns">
+      <template #status="{ row }">
+          <el-tag type="danger" v-if="row.cancelStatus == 1">已取消</el-tag>
+          <dict-data
+            v-else
+            code="order_status"
+            type="text"
+            :model-value="row.status"
+          />
+        </template>
+    </ele-data-table>
 
     <template #footer>
       <el-button type="primary" @click="handleCancel">关闭</el-button>
@@ -19,9 +20,10 @@
 </template>
 
 <script setup>
-  import { ref, reactive, nextTick } from 'vue';
-  import { pagePosts } from '@/api/system/post';
+  import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
 
+  import { pagePosts } from '@/api/system/post';
+  let { proxy } = getCurrentInstance();
   /** 弹窗是否打开 */
   const visible = ref(false);
 
@@ -31,16 +33,32 @@
   };
 
   /** 弹窗打开事件 */
-  const handleOpen = () => {
-    visible.value = true;
-    nextTick(() => console.log('打开'));
+  const handleOpen = (orderId) => {
+    if (orderId) {
+      visible.value = true;
+      getOrderLog(orderId);
+    }
   };
 
+  // 订单日志
+  const orderLog = ref([]);
+  function getOrderLog(orderId) {
+    proxy.$http
+      .get(`/order/orderInfo/getOrderLogList?orderId=${orderId}`)
+      .then((res) => {
+        if (res.data.code === 200) {
+          orderLog.value = res.data.data;
+        } else {
+          EleMessage.error(res.data.msg || '获取订单日志失败');
+        }
+      });
+  }
+
   const columns = reactive([
-    { label: '订单编号', prop: 'orderNumber', width: 150 },
-    { label: '状态', prop: 'status', width: 100 },
-    { label: '操作者', prop: 'createBy', width: 100 },
-    { label: '日志描述', prop: 'logDescription' },
+    { label: '订单编号', prop: 'orderId', width: 150 },
+    { label: '状态', prop: 'status', width: 160, slot: 'status', },
+    { label: '操作者', prop: 'createName', width: 100 },
+    { label: '日志描述', prop: 'content' },
     { label: '操作时间', prop: 'createTime', width: 180 }
   ]);
 

+ 557 - 395
src/views/recycleOrder/components/order-page-all.vue

@@ -1,520 +1,682 @@
 <template>
-    <ele-page flex-table>
-        <!-- 搜索表单 -->
-        <order-search @search="reload" />
-        <ele-card :body-style="{ paddingTop: '8px' }" flex-table>
-            <!-- 表格 -->
-            <ele-pro-table ref="tableRef" row-key="orderId" :columns="columns" :datasource="datasource"
-                :show-overflow-tooltip="true" v-model:selections="selections" highlight-current-row
-                :export-config="{ fileName: pageConfig.fileName }" :cache-key="pageConfig.cacheKey">
-                <template #toolbar>
-                    <slot name="toolbar"></slot>
-                </template>
+  <ele-page flex-table>
+    <!-- 搜索表单 -->
+    <order-search @search="reload" />
+    <ele-card :body-style="{ paddingTop: '8px' }" flex-table>
+      <!-- 表格 -->
+      <ele-pro-table
+        ref="tableRef"
+        row-key="orderId"
+        :columns="columns"
+        :datasource="datasource"
+        :show-overflow-tooltip="true"
+        v-model:selections="selections"
+        highlight-current-row
+        :export-config="{ fileName: pageConfig.fileName }"
+        :cache-key="pageConfig.cacheKey"
+      >
+        <template #toolbar>
+          <slot name="toolbar"></slot>
+        </template>
 
-                <template #status="{ row }">
-                    <el-tag type="danger" v-if="row.cancelStatus == 1">已取消</el-tag>
-                    <dict-data v-else code="order_status" type="tag" :model-value="row.status" />
-                </template>
-                <template #orderNumber="{ row }">
-                    <order-number :row="row"></order-number>
-                </template>
-                <template #customer="{ row }">
-                    <order-customer :row="row"></order-customer>
-                </template>
-                <template #amount="{ row }">
-                    <order-amount :row="row"></order-amount>
-                </template>
-                <template #time="{ row }">
-                    <order-time :row="row"></order-time>
-                </template>
-                <template #remarks="{ row }">
-                    <el-popover trigger="hover" width="240px" @show="handleShowPopover(row)" @hide="showOrderId = ''">
-                        <template #reference>
-                            <el-icon style="cursor: pointer" :size="24" :color="row.remarkLabel || '#777777'"
-                                @click="handleRemarks(row)">
-                                <Flag />
-                            </el-icon>
-                        </template>
-                        <orderTimeline :orderId="showOrderId" title="备注历史记录"></orderTimeline>
-                    </el-popover>
-                </template>
+        <template #status="{ row }">
+          <el-tag type="danger" v-if="row.cancelStatus == 1">已取消</el-tag>
+          <dict-data
+            v-else
+            code="order_status"
+            type="tag"
+            :model-value="row.status"
+          />
+        </template>
+        <template #orderNumber="{ row }">
+          <order-number :row="row"></order-number>
+        </template>
+        <template #customer="{ row }">
+          <order-customer :row="row"></order-customer>
+        </template>
+        <template #amount="{ row }">
+          <order-amount :row="row"></order-amount>
+        </template>
+        <template #time="{ row }">
+          <order-time :row="row"></order-time>
+        </template>
+        <template #remarks="{ row }">
+          <el-popover
+            trigger="hover"
+            width="240px"
+            @show="handleShowPopover(row)"
+            @hide="showOrderId = ''"
+          >
+            <template #reference>
+              <el-icon
+                style="cursor: pointer"
+                :size="24"
+                :color="row.remarkLabel || '#777777'"
+                @click="handleRemarks(row)"
+              >
+                <Flag />
+              </el-icon>
+            </template>
+            <orderTimeline
+              :orderId="showOrderId"
+              title="备注历史记录"
+            ></orderTimeline>
+          </el-popover>
+        </template>
 
-                <template #action="{ row }">
-                    <div>
-                        <el-button type="success" link v-permission="usePermission('detail')"
-                            @click="toOrderDetail(row)">
-                            [订单详情]
-                        </el-button>
-                        <el-button type="warning" link v-permission="usePermission('log')" @click="openOrderLog(row)">
-                            [订单日志]
-                        </el-button>
-                        <el-button type="danger" link v-if="row.status == 2" v-permission="usePermission('audit')"
-                            @click="handleFirstCheck(row)">
-                            [初步审核]
-                        </el-button>
-                        <!-- 3 已初审-带上门取件 5已揽件-待签收 6已签收-待确认到货 -->
-                        <el-button type="danger" link v-if="['3', '5', '6'].includes(row.status)"
-                            v-permission="usePermission('cancel')" @click="handleCancelOrder(row)">
-                            [取消订单]
-                        </el-button>
-                        <!-- 3 已初审-带上门取件 5已揽件-待签收 6已签收-待确认到货 8待回收审核 9审核未提交 10待付款 -->
-                        <el-button type="primary" link v-if="['3', '5', '6', '8', '9', '10'].includes(row.status)"
-                            v-permission="usePermission('fallback')" @click="fallbackOrder(row)">
-                            [回退状态]
-                        </el-button>
-                        <el-button type="success" link v-if="row.status == 3"
-                            v-permission="usePermission('materialPickup')" @click="materialPickup(row)">
-                            [物流揽件]
-                        </el-button>
-                        <el-button type="success" link v-if="row.status == 5" v-permission="usePermission('receive')"
-                            @click="handleLogisticsSigning(row)">
-                            [物流签收]
-                        </el-button>
-                        <el-button type="success" link v-if="row.status == 5 || row.status == 7"
-                            v-permission="usePermission('signDelivery')" @click="handleSignDelivery(row)">
-                            [快递签收]
-                        </el-button>
-                        <el-button type="success" link v-if="row.status == 6"
-                            v-permission="usePermission('confirmReceipt')" @click="handleConfirmReceipt(row)">
-                            [确认收货]
-                        </el-button>
-                        <el-button type="success" link v-if="['8', '9'].includes(row.status)"
-                            v-permission="usePermission('arrivalAudit')" @click="toOrderDetail(row)">
-                            [到货审核]
-                        </el-button>
-                        <el-button type="danger" link v-if="['8', '9', '10', '11'].includes(row.status)"
-                            v-permission="usePermission('auditScreenshot')" @click="handleAuditScreenshot(row)">
-                            [审核截图]
-                        </el-button>
-                        <el-button type="danger" link v-if="row.status == 10" v-permission="usePermission('payment')"
-                            @click="handleBatchPayment(row)">
-                            [支付书款]
-                        </el-button>
-                        <el-button type="danger" link v-if="row.status == 11"
-                            v-permission="usePermission('afterSalesPayment')" @click="handleAfterSalesPayment(row)">
-                            [售后补款]
-                        </el-button>
-                        <el-button type="warning" link v-permission="usePermission('userTag')"
-                            @click="openEditUserTag(row)">
-                            [用户标签]
-                        </el-button>
-                        <el-button type="success" link v-if="row.status == 2"
-                            v-permission="usePermission('modifyAddress')" @click="handleModifyAddress(row)">
-                            [修改地址]
-                        </el-button>
-                        <el-button type="success" link v-if="['8', '9', '10', '11'].includes(row.status)"
-                            v-permission="usePermission('sendSMS')" @click="handleSendSMS(row)">
-                            [推送短信]
-                        </el-button>
-                        <el-button type="info" link v-if="['8', '9', '10'].includes(row.status)"
-                            v-permission="usePermission('smsLog')" @click="handleSmsLog(row)">
-                            [短信记录]
-                        </el-button>
-                        <el-button color="#7728f5" link plain v-if="row.status == 11"
-                            v-permission="usePermission('applyForOrderClaim')" @click="applyForOrderClaim(row)">
-                            [申请订单理赔]
-                        </el-button>
-                        <el-button color="#7728f5" link plain v-if="row.cancelStatus == 1"
-                            v-permission="usePermission('applyForOrderRestore')"
-                            @click="handleApplyForOrderRestore(row)">
-                            [申请恢复订单]
-                        </el-button>
+        <template #action="{ row }">
+          <div>
+            <el-button
+              type="success"
+              link
+              v-permission="usePermission('detail')"
+              @click="toOrderDetail(row)"
+            >
+              [订单详情]
+            </el-button>
+            <el-button
+              type="warning"
+              link
+              v-permission="usePermission('log')"
+              @click="openOrderLog(row)"
+            >
+              [订单日志]
+            </el-button>
+            <el-button
+              type="danger"
+              link
+              v-if="row.status == 2"
+              v-permission="usePermission('audit')"
+              @click="handleFirstCheck(row)"
+            >
+              [初步审核]
+            </el-button>
+            <!-- 3 已初审-带上门取件 5已揽件-待签收 6已签收-待确认到货 -->
+            <el-button
+              type="danger"
+              link
+              v-if="['3', '5', '6'].includes(row.status)"
+              v-permission="usePermission('cancel')"
+              @click="handleCancelOrder(row)"
+            >
+              [取消订单]
+            </el-button>
+            <!-- 3 已初审-带上门取件 5已揽件-待签收 6已签收-待确认到货 8待回收审核 9审核未提交 10待付款 -->
+            <el-button
+              type="primary"
+              link
+              v-if="['3', '5', '6', '8', '9', '10'].includes(row.status)"
+              v-permission="usePermission('fallback')"
+              @click="fallbackOrder(row)"
+            >
+              [回退状态]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="row.status == 3"
+              v-permission="usePermission('materialPickup')"
+              @click="materialPickup(row)"
+            >
+              [物流揽件]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="row.status == 5"
+              v-permission="usePermission('receive')"
+              @click="handleLogisticsSigning(row)"
+            >
+              [物流签收]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="row.status == 5 || row.status == 7"
+              v-permission="usePermission('signDelivery')"
+              @click="handleSignDelivery(row)"
+            >
+              [快递签收]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="row.status == 6"
+              v-permission="usePermission('confirmReceipt')"
+              @click="handleConfirmReceipt(row)"
+            >
+              [确认收货]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="['8', '9'].includes(row.status)"
+              v-permission="usePermission('arrivalAudit')"
+              @click="toOrderDetail(row)"
+            >
+              [到货审核]
+            </el-button>
+            <el-button
+              type="danger"
+              link
+              v-if="['8', '9', '10', '11'].includes(row.status)"
+              v-permission="usePermission('auditScreenshot')"
+              @click="handleAuditScreenshot(row)"
+            >
+              [审核截图]
+            </el-button>
+            <el-button
+              type="danger"
+              link
+              v-if="row.status == 10"
+              v-permission="usePermission('payment')"
+              @click="handleBatchPayment(row)"
+            >
+              [支付书款]
+            </el-button>
+            <el-button
+              type="danger"
+              link
+              v-if="row.status == 11"
+              v-permission="usePermission('afterSalesPayment')"
+              @click="handleAfterSalesPayment(row)"
+            >
+              [售后补款]
+            </el-button>
+            <el-button
+              type="warning"
+              link
+              v-permission="usePermission('userTag')"
+              @click="openEditUserTag(row)"
+            >
+              [用户标签]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="row.status == 2"
+              v-permission="usePermission('modifyAddress')"
+              @click="handleModifyAddress(row)"
+            >
+              [修改地址]
+            </el-button>
+            <el-button
+              type="success"
+              link
+              v-if="['8', '9', '10', '11'].includes(row.status)"
+              v-permission="usePermission('sendSMS')"
+              @click="handleSendSMS(row)"
+            >
+              [推送短信]
+            </el-button>
+            <el-button
+              type="info"
+              link
+              v-if="['8', '9', '10'].includes(row.status)"
+              v-permission="usePermission('smsLog')"
+              @click="handleSmsLog(row)"
+            >
+              [短信记录]
+            </el-button>
+            <el-button
+              color="#7728f5"
+              link
+              plain
+              v-if="row.status == 11"
+              v-permission="usePermission('applyForOrderClaim')"
+              @click="handleApplyForOrderClaim(row)"
+            >
+              [申请订单理赔]
+            </el-button>
+            <el-button
+              color="#7728f5"
+              link
+              plain
+              v-if="row.cancelStatus == 1"
+              v-permission="usePermission('applyForOrderRestore')"
+              @click="handleApplyForOrderRestore(row)"
+            >
+              [申请恢复订单]
+            </el-button>
 
-                        <template v-if="row.interceptStatus == 0">
-                            <el-button type="danger" link v-if="['5', '6'].includes(row.status)"
-                                v-permission="usePermission('interception')" @click="applyForInterception(row)">
-                                [申请拦截退回]
-                            </el-button>
-                        </template>
-                        <template v-else>
-                            <el-button type="info" link v-if="['5', '6'].includes(row.status)"
-                                v-permission="usePermission('cancelInterception')" @click="cancelInterception(row)">
-                                [取消拦截退回]
-                            </el-button>
-                        </template>
-                    </div>
-                </template>
-            </ele-pro-table>
-        </ele-card>
+            <template v-if="row.interceptStatus == 0">
+              <el-button
+                type="danger"
+                link
+                v-if="['5', '6'].includes(row.status)"
+                v-permission="usePermission('interception')"
+                @click="applyForInterception(row)"
+              >
+                [申请拦截退回]
+              </el-button>
+            </template>
+            <template v-else>
+              <el-button
+                type="info"
+                link
+                v-if="['5', '6'].includes(row.status)"
+                v-permission="usePermission('cancelInterception')"
+                @click="cancelInterception(row)"
+              >
+                [取消拦截退回]
+              </el-button>
+            </template>
+          </div>
+        </template>
+      </ele-pro-table>
+    </ele-card>
 
-        <slot></slot>
-        <!-- 备注 -->
-        <orderRemarks ref="remarksRef" />
-        <!-- 初审 -->
-        <firstCheckModal ref="firstCheckRef" @success="reload()" />
-        <!-- 修改地址 -->
-        <modifyAddress ref="modifyAddressRef" />
-        <!-- 订单日志 -->
-        <orderLog ref="orderLogRef" />
-        <!-- 用户标签 -->
-        <userBindTag ref="userTagRef" @success="reload()" />
-        <!-- 订单详情 -->
-        <orderDetail ref="orderDetailRef" @refresh="reload()" />
-        <!-- 审核截图 -->
-        <auditScreenshot ref="auditScreenshotRef" />
-    </ele-page>
+    <slot></slot>
+    <!-- 备注 -->
+    <orderRemarks ref="remarksRef" />
+    <!-- 初审 -->
+    <firstCheckModal ref="firstCheckRef" @success="reload()" />
+    <!-- 修改地址 -->
+    <modifyAddress ref="modifyAddressRef" />
+    <!-- 订单日志 -->
+    <orderLog ref="orderLogRef" />
+    <!-- 用户标签 -->
+    <userBindTag ref="userTagRef" @success="reload()" />
+    <!-- 订单详情 -->
+    <orderDetail ref="orderDetailRef" @refresh="reload()" />
+    <!-- 审核截图 -->
+    <auditScreenshot ref="auditScreenshotRef" />
+    <!-- 申请订单理赔 -->
+    <applyForOrderClaim ref="applyForOrderClaimRef" />
+    <!-- 售后补款 -->
+    <afterSalesPayment ref="afterSalesPaymentRef" />
+  </ele-page>
 </template>
 
 <script setup>
-import { ref, getCurrentInstance } from 'vue';
-import { ElMessageBox } from 'element-plus/es';
-import { EleMessage } from 'ele-admin-plus/es';
-import { DownloadOutlined } from '@/components/icons';
-import { Flag, ChatDotSquare } from '@element-plus/icons-vue';
-import OrderSearch from '../components/order-search.vue';
-import OrderNumber from '@/views/recycleOrder/components/order-number.vue';
-import OrderCustomer from '@/views/recycleOrder/components/order-customer.vue';
-import OrderAmount from '@/views/recycleOrder/components/order-amount.vue';
-import OrderTime from '@/views/recycleOrder/components/order-time.vue';
-import { useDictData } from '@/utils/use-dict-data';
-import { download, toFormData, checkDownloadRes } from '@/utils/common';
-import orderRemarks from '@/views/recycleOrder/components/order-remarks.vue';
-import orderTimeline from '@/views/recycleOrder/components/order-timeline.vue';
-import firstCheckModal from '@/views/recycleOrder/components/first-check-modal.vue';
-import modifyAddress from '@/views/recycleOrder/components/modify-address.vue';
-//订单日志
-import orderLog from '@/views/recycleOrder/components/order-log.vue';
-//用户标签
-import userBindTag from '@/views/recycleOrder/components/user-bind-tag.vue';
-//订单详情
-import orderDetail from '@/views/recycleOrder/components/order-detail.vue';
-//审核截图
-import auditScreenshot from '@/views/recycleOrder/components/audit-screenshot.vue';
+  import { ref, getCurrentInstance } from 'vue';
+  import { ElMessageBox } from 'element-plus/es';
+  import { EleMessage } from 'ele-admin-plus/es';
+  import { DownloadOutlined } from '@/components/icons';
+  import { Flag, ChatDotSquare } from '@element-plus/icons-vue';
+  import OrderSearch from '../components/order-search.vue';
+  import OrderNumber from '@/views/recycleOrder/components/order-number.vue';
+  import OrderCustomer from '@/views/recycleOrder/components/order-customer.vue';
+  import OrderAmount from '@/views/recycleOrder/components/order-amount.vue';
+  import OrderTime from '@/views/recycleOrder/components/order-time.vue';
+  import { useDictData } from '@/utils/use-dict-data';
+  import { download, toFormData, checkDownloadRes } from '@/utils/common';
+  import orderRemarks from '@/views/recycleOrder/components/order-remarks.vue';
+  import orderTimeline from '@/views/recycleOrder/components/order-timeline.vue';
+  import firstCheckModal from '@/views/recycleOrder/components/first-check-modal.vue';
+  import modifyAddress from '@/views/recycleOrder/components/modify-address.vue';
+  import applyForOrderClaim from '@/views/recycleOrder/components/applyfor-order-claim.vue';
+  import afterSalesPayment from '@/views/recycleOrder/components/after-sales-payment.vue';
+  //订单日志
+  import orderLog from '@/views/recycleOrder/components/order-log.vue';
+  //用户标签
+  import userBindTag from '@/views/recycleOrder/components/user-bind-tag.vue';
+  //订单详情
+  import orderDetail from '@/views/recycleOrder/components/order-detail.vue';
+  //审核截图
+  import auditScreenshot from '@/views/recycleOrder/components/audit-screenshot.vue';
 
-let props = defineProps({
+  let props = defineProps({
     pageConfig: {
-        type: Object,
-        default: () => ({
-            cacheKey: 'recycleOrderTable',
-            pageUrl: '/order/orderInfo/pageList',
-            fileName: '回收订单查询',
-            exportUrl: '/order/orderInfo/export',
-            where: {}
-        })
+      type: Object,
+      default: () => ({
+        cacheKey: 'recycleOrderTable',
+        pageUrl: '/order/orderInfo/pageList',
+        fileName: '回收订单查询',
+        exportUrl: '/order/orderInfo/export',
+        where: {}
+      })
     },
     exportUrl: { type: String, default: '/system/post/export' },
     permissionKey: { type: String, default: 'search' }
-});
-const usePermission = computed(() => (opts) => {
+  });
+  const usePermission = computed(() => (opts) => {
     return `recycleOrder:${props.permissionKey}:${opts}`;
-});
+  });
 
-let { proxy } = getCurrentInstance();
-/** 字典数据 */
-const [statusDicts] = useDictData(['order_status']);
+  let { proxy } = getCurrentInstance();
+  /** 字典数据 */
+  const [statusDicts] = useDictData(['order_status']);
 
-/** 表格实例 */
-const tableRef = ref(null);
+  /** 表格实例 */
+  const tableRef = ref(null);
 
-/** 表格列配置 */
-const columns = ref([
+  /** 表格列配置 */
+  const columns = ref([
     {
-        type: 'selection',
-        columnKey: 'selection',
-        width: 50,
-        align: 'center',
-        fixed: 'left'
+      type: 'selection',
+      columnKey: 'selection',
+      width: 50,
+      align: 'center',
+      fixed: 'left'
     },
     { label: '单号', prop: 'orderNumber', slot: 'orderNumber', minWidth: 230 },
     { label: '客户', prop: 'customer', slot: 'customer', minWidth: 360 },
     { label: '金额', prop: 'amount', slot: 'amount', minWidth: 160 },
     {
-        label: '状态',
-        prop: 'status',
-        slot: 'status',
-        width: '140'
+      label: '状态',
+      prop: 'status',
+      slot: 'status',
+      width: '140'
     },
     { label: '时间', prop: 'time', slot: 'time', minWidth: 210 },
     { label: '备注', prop: 'remarks', slot: 'remarks' },
     {
-        columnKey: 'action',
-        label: '操作',
-        width: 176,
-        align: 'center',
-        slot: 'action',
-        hideInPrint: true,
-        hideInExport: true,
-        fixed: 'right'
+      columnKey: 'action',
+      label: '操作',
+      width: 176,
+      align: 'center',
+      slot: 'action',
+      hideInPrint: true,
+      hideInExport: true,
+      fixed: 'right'
     }
-]);
+  ]);
 
-/** 表格选中数据 */
-const selections = ref([]);
+  /** 表格选中数据 */
+  const selections = ref([]);
 
-/** 当前编辑数据 */
-const current = ref(null);
+  /** 当前编辑数据 */
+  const current = ref(null);
 
-/** 是否显示编辑弹窗 */
-const showEdit = ref(false);
+  /** 是否显示编辑弹窗 */
+  const showEdit = ref(false);
 
-async function queryPage(params) {
+  async function queryPage(params) {
     if (!props.pageConfig.pageUrl) return EleMessage.error('未配置页面请求URL');
     const res = await proxy.$http.get(props.pageConfig.pageUrl, { params });
     if (res.data.code === 200) {
-        return res.data;
+      return res.data;
     }
     return Promise.reject(new Error(res.data.msg));
-}
+  }
 
-/** 表格数据源 */
-const datasource = ({ pages, where, orders }) => {
+  /** 表格数据源 */
+  const datasource = ({ pages, where, orders }) => {
     let initParams = props.pageConfig?.where || {};
     return queryPage({
-        ...where,
-        ...orders,
-        ...pages,
-        ...initParams
+      ...where,
+      ...orders,
+      ...pages,
+      ...initParams
     });
-};
+  };
 
-/** 搜索 */
-const reload = (where) => {
+  /** 搜索 */
+  const reload = (where) => {
     tableRef.value?.reload?.({ page: 1, where });
-};
+  };
 
-/** 批量操作 */
-const operatBatch = ({ row, url, title }) => {
+  /** 批量操作 */
+  const operatBatch = ({ row, url, title }) => {
     const rows = row == null ? selections.value : [row];
     if (!rows.length) {
-        EleMessage.error('请至少选择一条数据');
-        return;
+      EleMessage.error('请至少选择一条数据');
+      return;
     }
     title = title || '是否确认当前操作?';
     ElMessageBox.confirm(title, '提示', {
-        type: 'warning',
-        draggable: true
+      type: 'warning',
+      draggable: true
     })
-        .then(() => {
-            const loading = EleMessage.loading({
-                message: '请求中..',
-                plain: true
-            });
+      .then(() => {
+        const loading = EleMessage.loading({
+          message: '请求中..',
+          plain: true
+        });
 
-            proxy.$http
-                .delete(url)
-                .then(() => {
-                    loading.close();
-                    EleMessage.success('操作成功');
-                    reload();
-                })
-                .catch((e) => {
-                    loading.close();
-                    EleMessage.error(e.message);
-                });
-        })
-        .catch(() => { });
-};
+        proxy.$http
+          .delete(url)
+          .then(() => {
+            loading.close();
+            EleMessage.success('操作成功');
+            reload();
+          })
+          .catch((e) => {
+            loading.close();
+            EleMessage.error(e.message);
+          });
+      })
+      .catch(() => {});
+  };
 
-/// 导出数据
-async function exportPage(params, name) {
+  /// 导出数据
+  async function exportPage(params, name) {
     if (!props.pageConfig.exportUrl)
-        return EleMessage.error('未配置导出的URL!');
+      return EleMessage.error('未配置导出的URL!');
     const res = await proxy.$http({
-        url: props.pageConfig.exportUrl,
-        method: 'POST',
-        data: toFormData(params),
-        responseType: 'blob'
+      url: props.pageConfig.exportUrl,
+      method: 'POST',
+      data: toFormData(params),
+      responseType: 'blob'
     });
     await checkDownloadRes(res);
     download(
-        res.data,
-        name ? `${name}_${Date.now()}.xlsx` : `post_${Date.now()}.xlsx`
+      res.data,
+      name ? `${name}_${Date.now()}.xlsx` : `post_${Date.now()}.xlsx`
     );
-}
+  }
 
-//导出数据 进导出记录
-function exportRecord(params, name) {
+  //导出数据 进导出记录
+  function exportRecord(params, name) {
     if (!props.pageConfig.exportUrl)
-        return EleMessage.error('未配置导出的URL!');
+      return EleMessage.error('未配置导出的URL!');
     return proxy.$http({
-        url: props.pageConfig.exportUrl,
-        method: 'POST',
-        data: params
+      url: props.pageConfig.exportUrl,
+      method: 'POST',
+      data: params
     }); // 导出记录
-}
+  }
 
-/** 导出数据 */
-const exportData = (name) => {
+  /** 导出数据 */
+  const exportData = (name) => {
     const loading = EleMessage.loading({
-        message: '请求中..',
-        plain: true
+      message: '请求中..',
+      plain: true
     });
     tableRef.value?.fetch?.(({ where, orders }) => {
-        exportRecord({ ...where, ...orders }, name)
-            .then((res) => {
-                if (res.data.code === 200) {
-                    EleMessage.success('操作成功,请前往导出记录下载');
-                }
-                loading.close();
-            })
-            .catch((e) => {
-                loading.close();
-                EleMessage.error(e.message);
-            });
+      exportRecord({ ...where, ...orders }, name)
+        .then((res) => {
+          if (res.data.code === 200) {
+            EleMessage.success('操作成功,请前往导出记录下载');
+          }
+          loading.close();
+        })
+        .catch((e) => {
+          loading.close();
+          EleMessage.error(e.message);
+        });
     });
-};
+  };
 
-//修改备注
-const remarksRef = ref(null);
-function handleRemarks(row) {
+  //修改备注
+  const remarksRef = ref(null);
+  function handleRemarks(row) {
     remarksRef.value?.handleOpen(row);
-}
+  }
 
-//备注弹窗显示
-const showOrderId = ref();
-function handleShowPopover(row) {
+  //备注弹窗显示
+  const showOrderId = ref();
+  function handleShowPopover(row) {
     showOrderId.value = row.orderId;
-}
+  }
 
-//弹窗确认操作
-function messageBoxConfirm({ message, fetch }) {
+  //弹窗确认操作
+  function messageBoxConfirm({ message, fetch }) {
     ElMessageBox.confirm(message, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '关闭',
-        type: 'warning'
+      confirmButtonText: '确定',
+      cancelButtonText: '关闭',
+      type: 'warning'
     }).then(() => {
-        fetch().then((res) => {
-            if (res.data.code === 200) {
-                EleMessage.success('操作成功');
-                reload();
-            } else {
-                EleMessage.error(res.data.msg);
-            }
-        });
+      fetch().then((res) => {
+        if (res.data.code === 200) {
+          EleMessage.success('操作成功');
+          reload();
+        } else {
+          EleMessage.error(res.data.msg);
+        }
+      });
     });
-}
+  }
 
-//取消订单
-function handleCancelOrder(row) {
+  //取消订单
+  function handleCancelOrder(row) {
     const rows = row == null ? selections.value : [row];
     if (!rows.length) {
-        EleMessage.error('请至少选择一条数据');
-        return;
+      EleMessage.error('请至少选择一条数据');
+      return;
     }
     messageBoxConfirm({
-        message: '是否确认取消订单?',
-        fetch: () => proxy.$http.post('/order/orderInfo/adminCancel', {
-            orderIds: rows.map(item => item.orderId)
+      message: '是否确认取消订单?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/adminCancel', {
+          orderIds: rows.map((item) => item.orderId)
         })
     });
-}
-//申请拦截退出
-function applyForInterception(row) {
+  }
+  //申请拦截退出
+  function applyForInterception(row) {
     messageBoxConfirm({
-        message: '确认拦截?',
-        fetch: () => proxy.$http.post(`/order/orderInfo/intercept/${row.orderId}`)
+      message: '确认拦截?',
+      fetch: () => proxy.$http.post(`/order/orderInfo/intercept/${row.orderId}`)
     });
-}
-//取消拦截退出
-function cancelInterception(row) {
+  }
+  //取消拦截退出
+  function cancelInterception(row) {
     messageBoxConfirm({
-        message: '确认取消拦截?',
-        fetch: () => proxy.$http.post(`/order/orderInfo/interceptBack/${row.orderId}`)
+      message: '确认取消拦截?',
+      fetch: () =>
+        proxy.$http.post(`/order/orderInfo/interceptBack/${row.orderId}`)
     });
-}
+  }
 
-//物流签收
-function handleLogisticsSigning(row) {
+  //物流签收
+  function handleLogisticsSigning(row) {
     messageBoxConfirm({
-        message: '确认签收?',
-        fetch: () => proxy.$http.post('/order/orderInfo/adminSigned', {
-            orderIds: [row.orderId]
+      message: '确认签收?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/adminSigned', {
+          orderIds: [row.orderId]
         })
     });
-}
-//快递签收
-function handleSignDelivery(row) {
+  }
+  //快递签收
+  function handleSignDelivery(row) {
     messageBoxConfirm({
-        message: '确认快递签收?',
-        fetch: () => proxy.$http.post('/order/orderInfo/adminDeliverySigned', {
-            orderId: row.orderId
+      message: '确认快递签收?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/adminDeliverySigned', {
+          orderId: row.orderId
         })
     });
-}
-//物流揽件
-function materialPickup(row) {
+  }
+  //物流揽件
+  function materialPickup(row) {
     messageBoxConfirm({
-        message: '确认物流揽件?',
-        fetch: () => proxy.$http.post('/order/orderInfo/adminPickup', {
-            orderIds: [row.orderId]
+      message: '确认物流揽件?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/adminPickup', {
+          orderIds: [row.orderId]
         })
     });
-}
+  }
+  //申请订单理赔
+  const applyForOrderClaimRef = ref(null);
+  function handleApplyForOrderClaim(row) {
+    applyForOrderClaimRef.value?.handleOpen(row);
+  }
+  //售后补款
+  const afterSalesPaymentRef = ref(null);
+  function handleAfterSalesPayment(row) {
+    afterSalesPaymentRef.value?.handleOpen(row);
+  }
 
-//确认收货
-function handleConfirmReceipt(row) {
+  //确认收货
+  function handleConfirmReceipt(row) {
     const rows = row == null ? selections.value : [row];
     if (!rows.length) {
-        EleMessage.error('请至少选择一条数据');
-        return;
+      EleMessage.error('请至少选择一条数据');
+      return;
     }
     messageBoxConfirm({
-        message: '确认收货?',
-        fetch: () => proxy.$http.post('/order/orderInfo/adminConfirm', {
-            orderIds: rows.map(item => item.orderId)
+      message: '确认收货?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/adminConfirm', {
+          orderIds: rows.map((item) => item.orderId)
         })
     });
-}
+  }
 
-//订单详情
-const orderDetailRef = ref(null);
-function toOrderDetail(row) {
+  //订单详情
+  const orderDetailRef = ref(null);
+  function toOrderDetail(row) {
     orderDetailRef.value?.handleOpen(row);
-}
-//初审
-const firstCheckRef = ref(null);
-function handleFirstCheck(row) {
+  }
+  //初审
+  const firstCheckRef = ref(null);
+  function handleFirstCheck(row) {
     const rows = row == null ? selections.value : [row];
     if (!rows.length) {
-        EleMessage.error('请至少选择一条数据');
-        return;
+      EleMessage.error('请至少选择一条数据');
+      return;
     }
-    let orderIds = rows.map(item => item.orderId).join(',');
+    let orderIds = rows.map((item) => item.orderId).join(',');
     firstCheckRef.value?.handleOpen(orderIds);
-}
-//修改地址
-const modifyAddressRef = ref(null);
-function handleModifyAddress(row) {
+  }
+  //修改地址
+  const modifyAddressRef = ref(null);
+  function handleModifyAddress(row) {
     modifyAddressRef.value?.handleOpen(row);
-}
-//订单日志
-const orderLogRef = ref(null);
-function openOrderLog(row) {
-    orderLogRef.value?.handleOpen(row);
-}
-//用户标签
-const userTagRef = ref(null);
-function openEditUserTag(row) {
+  }
+  //订单日志
+  const orderLogRef = ref(null);
+  function openOrderLog(row) {
+    orderLogRef.value?.handleOpen(row.orderId);
+  }
+  //用户标签
+  const userTagRef = ref(null);
+  function openEditUserTag(row) {
     userTagRef.value?.handleOpen(row);
-}
+  }
 
-function handleBatchPayment(row) {
+  function handleBatchPayment(row) {
     const rows = row == null ? selections.value : [row];
     console.log(row, rows, 'xxxx');
     if (!rows.length) {
-        EleMessage.error('请至少选择一条数据');
-        return;
+      EleMessage.error('请至少选择一条数据');
+      return;
     }
     messageBoxConfirm({
-        message: '确认支付书款?',
-        fetch: () => proxy.$http.post('/order/orderInfo/payout', {
-            orderIds: rows.map(item => item.orderId)
+      message: '确认支付书款?',
+      fetch: () =>
+        proxy.$http.post('/order/orderInfo/payout', {
+          orderIds: rows.map((item) => item.orderId)
         })
     });
-}
+  }
 
-//回退状态
-function fallbackOrder(row) {
+  //回退状态
+  function fallbackOrder(row) {
     messageBoxConfirm({
-        message: '确认回退?',
-        fetch: () => proxy.$http.post(`/order/orderInfo/statusBack/${row.orderId}`)
+      message: '确认回退?',
+      fetch: () =>
+        proxy.$http.post(`/order/orderInfo/statusBack/${row.orderId}`)
     });
-}
-//审核截图
-const auditScreenshotRef = ref(null);
-function handleAuditScreenshot(row) {
+  }
+  //审核截图
+  const auditScreenshotRef = ref(null);
+  function handleAuditScreenshot(row) {
     auditScreenshotRef.value?.handleOpen(row);
-}
+  }
 
-defineExpose({ selections, reload, exportData, operatBatch, handleFirstCheck, handleConfirmReceipt, handleCancelOrder, handleBatchPayment });
+  defineExpose({
+    selections,
+    reload,
+    exportData,
+    operatBatch,
+    handleFirstCheck,
+    handleConfirmReceipt,
+    handleCancelOrder,
+    handleBatchPayment
+  });
 </script>