This commit is contained in:
2025-09-13 20:16:40 +08:00
parent c873558369
commit 956c83afe2

View File

@@ -41,9 +41,9 @@
</el-form-item>
</el-form>
<el-table :data="list" v-loading="loading" border>
<el-table :data="list" v-loading="loading" border :default-sort="{prop: 'remark', order: 'ascending'}">
<el-table-column label="ID" prop="id" width="80" />
<el-table-column label="内部单号" prop="remark" width="160"/>
<el-table-column label="内部单号" prop="remark" width="160" sortable/>
<el-table-column label="订单号" prop="orderId" width="160"/>
@@ -59,9 +59,20 @@
<el-table-column label="备注/状态" prop="status" min-width="160"/>
<el-table-column label="物流链接" prop="logisticsLink" width="160">
<el-table-column label="物流链接" prop="logisticsLink" width="200">
<template slot-scope="scope">
<a v-if="scope.row.logisticsLink" :href="scope.row.logisticsLink" target="_blank">查看物流</a>
<div v-if="scope.row.logisticsLink">
<a :href="scope.row.logisticsLink" target="_blank" style="margin-right: 8px;">查看物流</a>
<el-button
type="text"
size="mini"
icon="el-icon-copy-document"
@click="copyToClipboard(scope.row.logisticsLink)"
title="复制链接"
>
复制
</el-button>
</div>
</template>
</el-table-column>
proPriceAmount
@@ -166,6 +177,44 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('/system/jdorder/export', this.queryParams, `京东订单数据_${new Date().getTime()}.xlsx`)
},
/** 复制到剪贴板 */
copyToClipboard(text) {
if (navigator.clipboard && window.isSecureContext) {
// 使用现代 Clipboard API
navigator.clipboard.writeText(text).then(() => {
this.$message.success('物流链接已复制到剪贴板')
}).catch(() => {
this.fallbackCopyTextToClipboard(text)
})
} else {
// 降级方案
this.fallbackCopyTextToClipboard(text)
}
},
/** 降级复制方案 */
fallbackCopyTextToClipboard(text) {
const textArea = document.createElement('textarea')
textArea.value = text
textArea.style.position = 'fixed'
textArea.style.left = '-999999px'
textArea.style.top = '-999999px'
document.body.appendChild(textArea)
textArea.focus()
textArea.select()
try {
const successful = document.execCommand('copy')
if (successful) {
this.$message.success('物流链接已复制到剪贴板')
} else {
this.$message.error('复制失败,请手动复制')
}
} catch (err) {
this.$message.error('复制失败,请手动复制')
}
document.body.removeChild(textArea)
}
}
}