Jelajahi Sumber

fix(recycleOrder): 修复审核截图和复审截图操作传参问题

ylong 1 bulan lalu
induk
melakukan
35460eb3b5
1 mengubah file dengan 439 tambahan dan 436 penghapusan
  1. 439 436
      src/views/recycleOrder/components/order-page-all.vue

+ 439 - 436
src/views/recycleOrder/components/order-page-all.vue

@@ -20,7 +20,8 @@
                             {{ ['未复审', '已复审', '复审终止'][row.reviewStatus - 1] || '-' }}
                         </span>
                         <div style="font-size: 12px;display: flex;">
-                            已用时长: <time-clock :start-time="row.applyTime" :end-time="row.finishTime" :status="row.reviewStatus" />
+                            已用时长: <time-clock :start-time="row.applyTime" :end-time="row.finishTime"
+                                :status="row.reviewStatus" />
                         </div>
                     </template>
                     <template v-else>
@@ -114,11 +115,13 @@
                             [到货审核]
                         </el-button>
                         <el-button type="danger" link v-if="['8', '9', '10', '11'].includes(row.status)"
-                            v-permission="usePermission('auditScreenshot')" @click="handleAuditScreenshot(row)">
+                            v-permission="usePermission('auditScreenshot')"
+                            @click="handleAuditScreenshot(row, 'audit')">
                             [审核截图]
                         </el-button>
                         <el-button type="danger" link v-if="permissionKey == 'review'"
-                            v-permission="usePermission('reviewScreenshot')" @click="handleAuditScreenshot(row)">
+                            v-permission="usePermission('reviewScreenshot')"
+                            @click="handleAuditScreenshot(row, 'review')">
                             [复审截图]
                         </el-button>
                         <el-button type="danger" link v-if="row.status == 10" v-permission="usePermission('payment')"
@@ -217,459 +220,459 @@
 </template>
 
 <script setup>
-import { ref, getCurrentInstance, nextTick } 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 OrderReviewSearch from "./order-review-search.vue";
-import TimeClock from "@/views/recycleOrder/components/time-clock.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";
-//复审截图
-import reviewScreenshot from "@/views/recycleOrder/components/review-screenshot.vue";
-//推送短信
-import sendSMS from "@/views/recycleOrder/components/send-SMS.vue";
-//短信记录
-import orderSmsLog from "@/views/recycleOrder/components/order-sms-log.vue";
-//申请恢复订单
-import applyOrderRestore from "@/views/recycleOrder/components/apply-order-restore.vue";
-
-let props = defineProps({
-    pageConfig: {
-        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" },
-    propColumns: { type: Array, default: () => [] },
-    formatterData: { type: Function, default: (data) => data },
-});
-const usePermission = computed(() => (opts) => {
-    return `recycleOrder:${props.permissionKey}:${opts}`;
-});
-
-let { proxy } = getCurrentInstance();
-/** 字典数据 */
-const [statusDicts] = useDictData(["order_status"]);
-
-/** 表格实例 */
-const tableRef = ref(null);
-
-/** 表格列配置 */
-const columns = ref([
-    {
-        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: "166",
-    },
-    { label: "时间", prop: "time", slot: "time", minWidth: 210 },
-    { label: "备注", prop: "remarks", slot: "remarks" },
-    {
-        columnKey: "action",
-        label: "操作",
-        width: 182,
-        align: "center",
-        slot: "action",
-        hideInPrint: true,
-        hideInExport: true,
-        fixed: "right",
-    },
-]);
-
-/** 表格选中数据 */
-const selections = ref([]);
-
-/** 当前编辑数据 */
-const current = ref(null);
-
-/** 是否显示编辑弹窗 */
-const showEdit = ref(false);
-
-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 props.formatterData(res.data);
-    }
-    return Promise.reject(new Error(res.data.msg));
-}
-
-/** 表格数据源 */
-const datasource = ({ pages, where, orders }) => {
-    let initParams = props.pageConfig?.where || {};
-    return queryPage({
-        ...where,
-        ...orders,
-        ...pages,
-        ...initParams,
+    import { ref, getCurrentInstance, nextTick } 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 OrderReviewSearch from "./order-review-search.vue";
+    import TimeClock from "@/views/recycleOrder/components/time-clock.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";
+    //复审截图
+    import reviewScreenshot from "@/views/recycleOrder/components/review-screenshot.vue";
+    //推送短信
+    import sendSMS from "@/views/recycleOrder/components/send-SMS.vue";
+    //短信记录
+    import orderSmsLog from "@/views/recycleOrder/components/order-sms-log.vue";
+    //申请恢复订单
+    import applyOrderRestore from "@/views/recycleOrder/components/apply-order-restore.vue";
+
+    let props = defineProps({
+        pageConfig: {
+            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" },
+        propColumns: { type: Array, default: () => [] },
+        formatterData: { type: Function, default: (data) => data },
+    });
+    const usePermission = computed(() => (opts) => {
+        return `recycleOrder:${props.permissionKey}:${opts}`;
     });
-};
-
-/** 搜索 */
-const reload = (where = {}) => {
-    let data = where && where.search ? { page: 1, where } : { where };
-    delete data.where?.search;
-    delete data.where?.isReset;
-
-    tableRef.value?.reload?.(data);
-};
-
-/** 批量操作 */
-const operatBatch = ({ row, url, title }) => {
-    const rows = row == null ? selections.value : [row];
-    if (!rows.length) {
-        EleMessage.error("请至少选择一条数据");
-        return;
+
+    let { proxy } = getCurrentInstance();
+    /** 字典数据 */
+    const [statusDicts] = useDictData(["order_status"]);
+
+    /** 表格实例 */
+    const tableRef = ref(null);
+
+    /** 表格列配置 */
+    const columns = ref([
+        {
+            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: "166",
+        },
+        { label: "时间", prop: "time", slot: "time", minWidth: 210 },
+        { label: "备注", prop: "remarks", slot: "remarks" },
+        {
+            columnKey: "action",
+            label: "操作",
+            width: 182,
+            align: "center",
+            slot: "action",
+            hideInPrint: true,
+            hideInExport: true,
+            fixed: "right",
+        },
+    ]);
+
+    /** 表格选中数据 */
+    const selections = ref([]);
+
+    /** 当前编辑数据 */
+    const current = ref(null);
+
+    /** 是否显示编辑弹窗 */
+    const showEdit = ref(false);
+
+    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 props.formatterData(res.data);
+        }
+        return Promise.reject(new Error(res.data.msg));
+    }
+
+    /** 表格数据源 */
+    const datasource = ({ pages, where, orders }) => {
+        let initParams = props.pageConfig?.where || {};
+        return queryPage({
+            ...where,
+            ...orders,
+            ...pages,
+            ...initParams,
+        });
+    };
+
+    /** 搜索 */
+    const reload = (where = {}) => {
+        let data = where && where.search ? { page: 1, where } : { where };
+        delete data.where?.search;
+        delete data.where?.isReset;
+
+        tableRef.value?.reload?.(data);
+    };
+
+    /** 批量操作 */
+    const operatBatch = ({ row, url, title }) => {
+        const rows = row == null ? selections.value : [row];
+        if (!rows.length) {
+            EleMessage.error("请至少选择一条数据");
+            return;
+        }
+        title = title || "是否确认当前操作?";
+        ElMessageBox.confirm(title, "提示", {
+            type: "warning",
+            draggable: 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(() => { });
+    };
+
+    /// 导出数据
+    async function exportPage(params, name) {
+        if (!props.pageConfig.exportUrl) return EleMessage.error("未配置导出的URL!");
+        const res = await proxy.$http({
+            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`
+        );
+    }
+
+    //导出数据 进导出记录
+    function exportRecord(params, name) {
+        if (!props.pageConfig.exportUrl) return EleMessage.error("未配置导出的URL!");
+        return proxy.$http({
+            url: props.pageConfig.exportUrl,
+            method: "POST",
+            data: params,
+        }); // 导出记录
     }
-    title = title || "是否确认当前操作?";
-    ElMessageBox.confirm(title, "提示", {
-        type: "warning",
-        draggable: true,
-    })
-        .then(() => {
-            const loading = EleMessage.loading({
-                message: "请求中..",
-                plain: true,
-            });
 
-            proxy.$http
-                .delete(url)
-                .then(() => {
+    /** 导出数据 */
+    const exportData = (name, params = {}) => {
+        const loading = EleMessage.loading({
+            message: "请求中..",
+            plain: true,
+        });
+        tableRef.value?.fetch?.(({ where, orders }) => {
+            exportRecord({ ...where, ...orders, ...params }, name)
+                .then((res) => {
+                    if (res.data.code === 200) {
+                        EleMessage.success("操作成功,请前往导出记录下载");
+                    }
                     loading.close();
-                    EleMessage.success("操作成功");
-                    reload();
                 })
                 .catch((e) => {
                     loading.close();
                     EleMessage.error(e.message);
                 });
-        })
-        .catch(() => { });
-};
-
-/// 导出数据
-async function exportPage(params, name) {
-    if (!props.pageConfig.exportUrl) return EleMessage.error("未配置导出的URL!");
-    const res = await proxy.$http({
-        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`
-    );
-}
-
-//导出数据 进导出记录
-function exportRecord(params, name) {
-    if (!props.pageConfig.exportUrl) return EleMessage.error("未配置导出的URL!");
-    return proxy.$http({
-        url: props.pageConfig.exportUrl,
-        method: "POST",
-        data: params,
-    }); // 导出记录
-}
-
-/** 导出数据 */
-const exportData = (name, params = {}) => {
-    const loading = EleMessage.loading({
-        message: "请求中..",
-        plain: true,
-    });
-    tableRef.value?.fetch?.(({ where, orders }) => {
-        exportRecord({ ...where, ...orders, ...params }, name)
-            .then((res) => {
+        });
+    };
+
+    //修改备注
+    const remarksRef = ref(null);
+    function handleRemarks(row) {
+        remarksRef.value?.handleOpen(row);
+    }
+
+    //备注弹窗显示
+    const showOrderId = ref();
+    const remarkPopoverRef = ref(null);
+    function handleShowPopover(row) {
+        nextTick(() => {
+            remarkPopoverRef.value?.getRemarks(row.orderId);
+        });
+
+        if (showOrderId.value !== row.orderId) {
+            showOrderId.value = row.orderId;
+        }
+    }
+
+    //弹窗确认操作
+    function messageBoxConfirm({ message, fetch, toast = false }) {
+        ElMessageBox.confirm(message, "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "关闭",
+            type: "warning",
+        }).then(() => {
+            fetch().then((res) => {
                 if (res.data.code === 200) {
-                    EleMessage.success("操作成功,请前往导出记录下载");
+                    EleMessage.success(toast ? res.data.data : "操作成功");
+                    reload();
+                } else {
+                    EleMessage.error(res.data.msg);
                 }
-                loading.close();
-            })
-            .catch((e) => {
-                loading.close();
-                EleMessage.error(e.message);
             });
-    });
-};
-
-//修改备注
-const remarksRef = ref(null);
-function handleRemarks(row) {
-    remarksRef.value?.handleOpen(row);
-}
-
-//备注弹窗显示
-const showOrderId = ref();
-const remarkPopoverRef = ref(null);
-function handleShowPopover(row) {
-    nextTick(() => {
-        remarkPopoverRef.value?.getRemarks(row.orderId);
-    });
+        });
+    }
 
-    if (showOrderId.value !== row.orderId) {
-        showOrderId.value = row.orderId;
+    //取消订单
+    function handleCancelOrder(row) {
+        const rows = row == null ? selections.value : [row];
+        if (!rows.length) {
+            EleMessage.error("请至少选择一条数据");
+            return;
+        }
+        messageBoxConfirm({
+            message: "是否确认取消订单?",
+            fetch: () =>
+                proxy.$http.post("/order/orderInfo/adminCancel", {
+                    orderIds: rows.map((item) => item.orderId),
+                }),
+        });
     }
-}
-
-//弹窗确认操作
-function messageBoxConfirm({ message, fetch, toast = false }) {
-    ElMessageBox.confirm(message, "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "关闭",
-        type: "warning",
-    }).then(() => {
-        fetch().then((res) => {
-            if (res.data.code === 200) {
-                EleMessage.success(toast ? res.data.data : "操作成功");
-                reload();
-            } else {
-                EleMessage.error(res.data.msg);
-            }
+    //申请复审
+    function handleApplyForOrderReview(row) {
+        messageBoxConfirm({
+            message: "确认申请复审?",
+            fetch: () => proxy.$http.post(`/order/recycleOrderReview/adminApplyReview?orderId=${row.orderId}`),
         });
-    });
-}
-
-//取消订单
-function handleCancelOrder(row) {
-    const rows = row == null ? selections.value : [row];
-    if (!rows.length) {
-        EleMessage.error("请至少选择一条数据");
-        return;
     }
-    messageBoxConfirm({
-        message: "是否确认取消订单?",
-        fetch: () =>
-            proxy.$http.post("/order/orderInfo/adminCancel", {
-                orderIds: rows.map((item) => item.orderId),
-            }),
-    });
-}
-//申请复审
-function handleApplyForOrderReview(row) {
-    messageBoxConfirm({
-        message: "确认申请复审?",
-        fetch: () => proxy.$http.post(`/order/recycleOrderReview/adminApplyReview?orderId=${row.orderId}`),
-    });
-}
 
-//申请拦截退出
-function applyForInterception(row) {
-    messageBoxConfirm({
-        message: "确认拦截?",
-        fetch: () => proxy.$http.post(`/order/orderInfo/intercept/${row.orderId}`),
-    });
-}
-//取消拦截退出
-function cancelInterception(row) {
-    messageBoxConfirm({
-        message: "确认取消拦截?",
-        fetch: () =>
-            proxy.$http.post(`/order/orderInfo/interceptBack/${row.orderId}`),
-    });
-}
-//退回不良
-function handleReturnBad(row) {
-    messageBoxConfirm({
-        message: "确认退回不良?",
-        toast: true,
-        fetch: () =>
-            proxy.$http.post(`/order/orderInfo/refund/adminSubmit`, {
-                orderId: row.orderId,
-            }),
-    });
-}
-
-//物流签收
-function handleLogisticsSigning(row) {
-    messageBoxConfirm({
-        message: "确认签收?",
-        fetch: () =>
-            proxy.$http.post("/order/orderInfo/adminSigned", {
-                orderIds: [row.orderId],
-            }),
-    });
-}
-//快递签收
-function handleSignDelivery(row) {
-    messageBoxConfirm({
-        message: "确认快递签收?",
-        fetch: () =>
-            proxy.$http.post("/order/orderInfo/adminDeliverySigned", {
-                orderId: row.orderId,
-            }),
-    });
-}
-//物流揽件
-function materialPickup(row) {
-    messageBoxConfirm({
-        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);
-}
-//推送短信
-const sendSMSRef = ref(null);
-function handleSendSMS(row) {
-    sendSMSRef.value?.handleOpen(row);
-}
-//短信记录
-const orderSmsLogRef = ref(null);
-function handleSmsLog(row) {
-    orderSmsLogRef.value?.handleOpen(row);
-}
-
-//确认收货
-function handleConfirmReceipt(row) {
-    const rows = row == null ? selections.value : [row];
-    if (!rows.length) {
-        EleMessage.error("请至少选择一条数据");
-        return;
+    //申请拦截退出
+    function applyForInterception(row) {
+        messageBoxConfirm({
+            message: "确认拦截?",
+            fetch: () => proxy.$http.post(`/order/orderInfo/intercept/${row.orderId}`),
+        });
     }
-    messageBoxConfirm({
-        message: "确认收货?",
-        fetch: () =>
-            proxy.$http.post("/order/orderInfo/adminConfirm", {
-                orderIds: rows.map((item) => item.orderId),
-            }),
-    });
-}
-
-//订单详情
-const orderDetailRef = ref(null);
-function toOrderDetail(row) {
-    orderDetailRef.value?.handleOpen(row);
-}
-//初审
-const firstCheckRef = ref(null);
-function handleFirstCheck(row) {
-    const rows = row == null ? selections.value : [row];
-    if (!rows.length) {
-        EleMessage.error("请至少选择一条数据");
-        return;
+    //取消拦截退出
+    function cancelInterception(row) {
+        messageBoxConfirm({
+            message: "确认取消拦截?",
+            fetch: () =>
+                proxy.$http.post(`/order/orderInfo/interceptBack/${row.orderId}`),
+        });
     }
-    let orderIds = rows.map((item) => item.orderId).join(",");
-    firstCheckRef.value?.handleOpen(orderIds);
-}
-//修改地址
-const modifyAddressRef = ref(null);
-function handleModifyAddress(row) {
-    modifyAddressRef.value?.handleOpen(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) {
-    const rows = row == null ? selections.value : [row];
-    console.log(row, rows, "xxxx");
-    if (!rows.length) {
-        EleMessage.error("请至少选择一条数据");
-        return;
+    //退回不良
+    function handleReturnBad(row) {
+        messageBoxConfirm({
+            message: "确认退回不良?",
+            toast: true,
+            fetch: () =>
+                proxy.$http.post(`/order/orderInfo/refund/adminSubmit`, {
+                    orderId: row.orderId,
+                }),
+        });
     }
-    messageBoxConfirm({
-        message: "确认支付书款?",
-        fetch: () =>
-            proxy.$http.post("/order/orderInfo/payout", {
-                orderIds: rows.map((item) => item.orderId),
-            }),
-    });
-}
 
-//回退状态
-function fallbackOrder(row) {
-    messageBoxConfirm({
-        message: "确认回退?",
-        fetch: () => proxy.$http.post(`/order/orderInfo/statusBack/${row.orderId}`),
-    });
-}
-//审核截图
-const auditScreenshotRef = ref(null);
-const reviewScreenshotRef = ref(null);
-function handleAuditScreenshot(row) {
-    if (props.permissionKey == 'review') {
-        reviewScreenshotRef.value?.handleOpen(row);
-    } else {
-        auditScreenshotRef.value?.handleOpen(row);
+    //物流签收
+    function handleLogisticsSigning(row) {
+        messageBoxConfirm({
+            message: "确认签收?",
+            fetch: () =>
+                proxy.$http.post("/order/orderInfo/adminSigned", {
+                    orderIds: [row.orderId],
+                }),
+        });
+    }
+    //快递签收
+    function handleSignDelivery(row) {
+        messageBoxConfirm({
+            message: "确认快递签收?",
+            fetch: () =>
+                proxy.$http.post("/order/orderInfo/adminDeliverySigned", {
+                    orderId: row.orderId,
+                }),
+        });
+    }
+    //物流揽件
+    function materialPickup(row) {
+        messageBoxConfirm({
+            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);
+    }
+    //推送短信
+    const sendSMSRef = ref(null);
+    function handleSendSMS(row) {
+        sendSMSRef.value?.handleOpen(row);
     }
-}
-
-//申请恢复订单
-const applyOrderRestoreRef = ref(null);
-function handleApplyForOrderRestore(row) {
-    applyOrderRestoreRef.value?.handleOpen(row);
-}
-
-defineExpose({
-    selections,
-    reload,
-    exportData,
-    operatBatch,
-    handleFirstCheck,
-    handleConfirmReceipt,
-    handleCancelOrder,
-    handleBatchPayment,
-});
+    //短信记录
+    const orderSmsLogRef = ref(null);
+    function handleSmsLog(row) {
+        orderSmsLogRef.value?.handleOpen(row);
+    }
+
+    //确认收货
+    function handleConfirmReceipt(row) {
+        const rows = row == null ? selections.value : [row];
+        if (!rows.length) {
+            EleMessage.error("请至少选择一条数据");
+            return;
+        }
+        messageBoxConfirm({
+            message: "确认收货?",
+            fetch: () =>
+                proxy.$http.post("/order/orderInfo/adminConfirm", {
+                    orderIds: rows.map((item) => item.orderId),
+                }),
+        });
+    }
+
+    //订单详情
+    const orderDetailRef = ref(null);
+    function toOrderDetail(row) {
+        orderDetailRef.value?.handleOpen(row);
+    }
+    //初审
+    const firstCheckRef = ref(null);
+    function handleFirstCheck(row) {
+        const rows = row == null ? selections.value : [row];
+        if (!rows.length) {
+            EleMessage.error("请至少选择一条数据");
+            return;
+        }
+        let orderIds = rows.map((item) => item.orderId).join(",");
+        firstCheckRef.value?.handleOpen(orderIds);
+    }
+    //修改地址
+    const modifyAddressRef = ref(null);
+    function handleModifyAddress(row) {
+        modifyAddressRef.value?.handleOpen(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) {
+        const rows = row == null ? selections.value : [row];
+        console.log(row, rows, "xxxx");
+        if (!rows.length) {
+            EleMessage.error("请至少选择一条数据");
+            return;
+        }
+        messageBoxConfirm({
+            message: "确认支付书款?",
+            fetch: () =>
+                proxy.$http.post("/order/orderInfo/payout", {
+                    orderIds: rows.map((item) => item.orderId),
+                }),
+        });
+    }
+
+    //回退状态
+    function fallbackOrder(row) {
+        messageBoxConfirm({
+            message: "确认回退?",
+            fetch: () => proxy.$http.post(`/order/orderInfo/statusBack/${row.orderId}`),
+        });
+    }
+    //审核截图
+    const auditScreenshotRef = ref(null);
+    const reviewScreenshotRef = ref(null);
+    function handleAuditScreenshot(row, type) {
+        if (type == 'review') {
+            reviewScreenshotRef.value?.handleOpen(row);
+        } else {
+            auditScreenshotRef.value?.handleOpen(row);
+        }
+    }
+
+    //申请恢复订单
+    const applyOrderRestoreRef = ref(null);
+    function handleApplyForOrderRestore(row) {
+        applyOrderRestoreRef.value?.handleOpen(row);
+    }
+
+    defineExpose({
+        selections,
+        reload,
+        exportData,
+        operatBatch,
+        handleFirstCheck,
+        handleConfirmReceipt,
+        handleCancelOrder,
+        handleBatchPayment,
+    });
 </script>