|
@ -1,27 +1,38 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="bg"> |
|
|
<div class="bg"> |
|
|
<div class="notice-bar" > |
|
|
<div class="notice-bar"> |
|
|
<div class="notice-bar__content"> |
|
|
<div class="notice-bar__content"> |
|
|
<div>说明:</div> |
|
|
<div>说明:</div> |
|
|
<div>1.订单提交成功,系统将根据订单内容自动为您创建交易合同。</div> |
|
|
<div>1.订单提交成功,系统将根据订单内容自动为您创建交易合同。</div> |
|
|
<div>2.您可直接“下载合同模板”,线下邮寄盖章使用。</div> |
|
|
<div>2.您可直接“下载合同模板”,线下邮寄盖章使用。</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="filter-bar"> |
|
|
<div class="filter-bar"> |
|
|
<el-form :inline="true" :model="filterForm" size="small"> |
|
|
<el-form :inline="true" :model="filterForm" size="small"> |
|
|
<el-form-item label="合同号"> |
|
|
<el-form-item label="合同号"> |
|
|
<el-input v-model="filterForm.orderNo" placeholder="请输入订单编号"></el-input> |
|
|
<el-input |
|
|
|
|
|
v-model="filterForm.contract_number" |
|
|
|
|
|
placeholder="请输入合同号" |
|
|
|
|
|
></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="订单编号"> |
|
|
<el-form-item label="订单编号"> |
|
|
<el-input v-model="filterForm.orderNo" placeholder="请输入订单编号"></el-input> |
|
|
<el-input |
|
|
|
|
|
v-model="filterForm.order_id" |
|
|
|
|
|
placeholder="请输入订单编号" |
|
|
|
|
|
></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="下单时间"> |
|
|
<el-form-item label="下单时间"> |
|
|
<el-date-picker v-model="filterForm.createTime" type="daterange" range-separator="至" start-placeholder="开始日期" |
|
|
<el-date-picker |
|
|
end-placeholder="结束日期" value-format="yyyy-MM-dd"></el-date-picker> |
|
|
v-model="filterForm.datetime" |
|
|
|
|
|
type="daterange" |
|
|
|
|
|
range-separator="至" |
|
|
|
|
|
start-placeholder="开始日期" |
|
|
|
|
|
end-placeholder="结束日期" |
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="供应商名称"> |
|
|
<!-- <el-form-item label="供应商名称"> |
|
|
<el-input v-model="filterForm.orderNo" placeholder="请输入订单编号"></el-input> |
|
|
<el-input v-model="filterForm.orderNo" placeholder="请输入订单编号"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="商品名称"> |
|
|
<el-form-item label="商品名称"> |
|
@ -31,10 +42,15 @@ |
|
|
<el-input-number v-model="filterForm.min"></el-input-number> |
|
|
<el-input-number v-model="filterForm.min"></el-input-number> |
|
|
至 |
|
|
至 |
|
|
<el-input-number v-model="filterForm.max"></el-input-number> |
|
|
<el-input-number v-model="filterForm.max"></el-input-number> |
|
|
</el-form-item> |
|
|
</el-form-item> --> |
|
|
|
|
|
|
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button style="background:#6a8a27;border: none;" type="primary" @click="search">搜索</el-button> |
|
|
<el-button |
|
|
|
|
|
style="background: #6a8a27; border: none" |
|
|
|
|
|
type="primary" |
|
|
|
|
|
@click="search" |
|
|
|
|
|
>搜索</el-button |
|
|
|
|
|
> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button @click="reset">重置</el-button> |
|
|
<el-button @click="reset">重置</el-button> |
|
@ -42,26 +58,66 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<el-table :data="orders" border style="width: 100%;"> |
|
|
<el-table :data="orders" border style="width: 100%"> |
|
|
<el-table-column prop="createTime" label="下单时间" width="200"></el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column prop="orderNo" label="订单号" min-width="120"></el-table-column> |
|
|
prop="create_time" |
|
|
<el-table-column prop="status" label="商品信息" width="120"></el-table-column> |
|
|
label="下单时间" |
|
|
<el-table-column prop="totalAmount" label="合同号" width="120"></el-table-column> |
|
|
width="160" |
|
|
<el-table-column prop="orderNo" label="合同金额" min-width="120"></el-table-column> |
|
|
></el-table-column> |
|
|
<el-table-column label="操作" width="200"> |
|
|
<el-table-column |
|
|
|
|
|
prop="order_id" |
|
|
|
|
|
label="订单号" |
|
|
|
|
|
min-width="100" |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column prop="status" label="商品信息" min-width="200"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button size="mini" @click="handleEdit(scope.row)">查看</el-button> |
|
|
<div class="product-info"> |
|
|
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">下载合同模板</el-button> |
|
|
<img |
|
|
|
|
|
:src="util.showImg(scope.row.product_headimg)" |
|
|
|
|
|
class="product-img" |
|
|
|
|
|
/> |
|
|
|
|
|
<div class="product-name"> |
|
|
|
|
|
{{ scope.row.product_title }} |
|
|
|
|
|
{{ |
|
|
|
|
|
scope.row.child_order_num > 1 |
|
|
|
|
|
? "等" + scope.row.child_order_num + "款" |
|
|
|
|
|
: "" |
|
|
|
|
|
}} |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
prop="contract_number" |
|
|
|
|
|
label="合同号" |
|
|
|
|
|
width="180" |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
prop="paid_money" |
|
|
|
|
|
label="合同金额" |
|
|
|
|
|
min-width="70" |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column label="操作" width="130"> |
|
|
|
|
|
<template slot-scope="scope" v-if="scope.row.contract_number"> |
|
|
|
|
|
<!-- <el-button size="mini" @click="handlePreview(scope.row.contract_url)" |
|
|
|
|
|
>查看</el-button |
|
|
|
|
|
> --> |
|
|
|
|
|
<el-button |
|
|
|
|
|
size="mini" |
|
|
|
|
|
type="danger" |
|
|
|
|
|
@click="handleDownload(scope.row)" |
|
|
|
|
|
>下载合同模板</el-button |
|
|
|
|
|
> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
<div style="text-align: right; margin-top: 20px;"> |
|
|
<div style="text-align: right; margin-top: 20px"> |
|
|
<el-pagination |
|
|
<el-pagination |
|
|
@size-change="handleSizeChange" |
|
|
@size-change="handleSizeChange" |
|
|
@current-change="handleCurrentChange" |
|
|
@current-change="handleCurrentChange" |
|
|
:current-page="filterForm.currentPage" |
|
|
:current-page="currentPage" |
|
|
:page-sizes="[5, 10, 20]" |
|
|
:page-sizes="[5, 10, 20]" |
|
|
:page-size="filterForm.pageSize" |
|
|
:page-size="filterForm.limit" |
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
:total="filterForm.total" |
|
|
:total="filterForm.total" |
|
|
></el-pagination> |
|
|
></el-pagination> |
|
@ -71,179 +127,78 @@ |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
export default { |
|
|
export default { |
|
|
name: 'OrderList', |
|
|
name: "OrderList", |
|
|
data () { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
activeTab: 'all', |
|
|
activeTab: "all", |
|
|
currentPage: 1, |
|
|
currentPage: 1, |
|
|
pageSize: 10, |
|
|
|
|
|
filterForm: { |
|
|
filterForm: { |
|
|
goodsName: '', |
|
|
contract_number: "", |
|
|
orderNo: '', |
|
|
datetime: "", |
|
|
createTime: '', |
|
|
order_id: "", |
|
|
merchantName: '', |
|
|
limit: 10, |
|
|
tradeStatus: '' |
|
|
|
|
|
}, |
|
|
|
|
|
// 订单数据 - 按商家合并商品 |
|
|
|
|
|
orders: [ |
|
|
|
|
|
{ |
|
|
|
|
|
id: 1, |
|
|
|
|
|
orderNo: '209907091214560078', |
|
|
|
|
|
createTime: '2099-07-09 10:47:49', |
|
|
|
|
|
status: 'pendingPayment', |
|
|
|
|
|
totalAmount: 937, |
|
|
|
|
|
freight: 15, |
|
|
|
|
|
isReviewed: false, |
|
|
|
|
|
merchant: { |
|
|
|
|
|
id: 101, |
|
|
|
|
|
name: '花艺生活馆', |
|
|
|
|
|
isOfficial: true |
|
|
|
|
|
}, |
|
|
}, |
|
|
products: [ |
|
|
orders: [], |
|
|
{ |
|
|
}; |
|
|
id: 1001, |
|
|
|
|
|
name: '深情挚爱/卡罗拉玫瑰', |
|
|
|
|
|
image: 'https://picsum.photos/200/200?random=1', |
|
|
|
|
|
spec: '卡罗拉玫瑰33枝', |
|
|
|
|
|
price: 349, |
|
|
|
|
|
quantity: 1, |
|
|
|
|
|
status: 'pendingPayment' |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
id: 1002, |
|
|
|
|
|
name: '精美包装纸', |
|
|
|
|
|
image: 'https://picsum.photos/200/200?random=4', |
|
|
|
|
|
spec: '粉色', |
|
|
|
|
|
price: 38, |
|
|
|
|
|
quantity: 2, |
|
|
|
|
|
status: 'pendingPayment' |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
}, |
|
|
}, |
|
|
{ |
|
|
mounted() { |
|
|
id: 2, |
|
|
this.getList(); |
|
|
orderNo: '209907091214560079', |
|
|
|
|
|
createTime: '2099-07-09 10:48:49', |
|
|
|
|
|
status: 'pendingDelivery', |
|
|
|
|
|
totalAmount: 199, |
|
|
|
|
|
freight: 0, |
|
|
|
|
|
isReviewed: false, |
|
|
|
|
|
merchant: { |
|
|
|
|
|
id: 102, |
|
|
|
|
|
name: '北欧家居旗舰店', |
|
|
|
|
|
isOfficial: true |
|
|
|
|
|
}, |
|
|
}, |
|
|
products: [ |
|
|
methods: { |
|
|
{ |
|
|
// 查看合同(预览PDF) |
|
|
id: 2001, |
|
|
handlePreview(pdfUrl) { |
|
|
name: '北欧花艺素雅仿真花', |
|
|
window.open(pdfUrl, "_blank"); |
|
|
image: 'https://picsum.photos/200/200?random=2', |
|
|
|
|
|
spec: '白色', |
|
|
|
|
|
price: 199, |
|
|
|
|
|
quantity: 1, |
|
|
|
|
|
status: 'pendingDelivery' |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
}, |
|
|
}, |
|
|
{ |
|
|
|
|
|
id: 3, |
|
|
// 下载合同 |
|
|
orderNo: '209907091214560080', |
|
|
handleDownload(row) { |
|
|
createTime: '2099-07-09 10:49:49', |
|
|
const downloadUrl = this.util.showImg(row.contract_url); |
|
|
status: 'delivering', |
|
|
// 创建隐藏的下载链接并触发点击 |
|
|
totalAmount: 389, |
|
|
const link = document.createElement("a"); |
|
|
freight: 10, |
|
|
link.href = downloadUrl; |
|
|
isReviewed: false, |
|
|
link.download = `合同${row.contract_number}.pdf`; |
|
|
merchant: { |
|
|
link.style.display = "none"; |
|
|
id: 101, |
|
|
document.body.appendChild(link); |
|
|
name: '花艺生活馆', |
|
|
link.click(); |
|
|
isOfficial: true |
|
|
document.body.removeChild(link); |
|
|
|
|
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: `合同 ${row.contract_number} 开始下载`, |
|
|
|
|
|
type: "success", |
|
|
|
|
|
}); |
|
|
}, |
|
|
}, |
|
|
products: [ |
|
|
// 获取合同列表 |
|
|
|
|
|
getList() { |
|
|
|
|
|
this.get( |
|
|
{ |
|
|
{ |
|
|
id: 3001, |
|
|
offset: (this.currentPage - 1) * this.filterForm.limit, |
|
|
name: '香槟玫瑰+白玫瑰混搭', |
|
|
...this.filterForm, |
|
|
image: 'https://picsum.photos/200/200?random=3', |
|
|
|
|
|
spec: '混搭', |
|
|
|
|
|
price: 389, |
|
|
|
|
|
quantity: 1, |
|
|
|
|
|
status: 'delivering' |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
"/api/order/orderContract" |
|
|
// 过滤后的订单列表 |
|
|
).then((res) => { |
|
|
filteredOrders() { |
|
|
this.orders = res.data; |
|
|
let result = [...this.orders]; |
|
|
|
|
|
|
|
|
|
|
|
// 根据当前标签页过滤 |
|
|
|
|
|
if (this.activeTab !== 'all') { |
|
|
|
|
|
result = result.filter(order => order.status === this.activeTab); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 根据商品名称过滤 |
|
|
|
|
|
if (this.filterForm.goodsName) { |
|
|
|
|
|
const keyword = this.filterForm.goodsName.toLowerCase(); |
|
|
|
|
|
result = result.filter(order => { |
|
|
|
|
|
return order.products.some(product => |
|
|
|
|
|
product.name.toLowerCase().includes(keyword) |
|
|
|
|
|
); |
|
|
|
|
|
}); |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 根据订单编号过滤 |
|
|
|
|
|
if (this.filterForm.orderNo) { |
|
|
|
|
|
result = result.filter(order => |
|
|
|
|
|
order.orderNo.includes(this.filterForm.orderNo) |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 根据商家名称过滤 |
|
|
|
|
|
if (this.filterForm.merchantName) { |
|
|
|
|
|
const keyword = this.filterForm.merchantName.toLowerCase(); |
|
|
|
|
|
result = result.filter(order => |
|
|
|
|
|
order.merchant.name.toLowerCase().includes(keyword) |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 根据交易状态过滤 |
|
|
|
|
|
if (this.filterForm.tradeStatus) { |
|
|
|
|
|
result = result.filter(order => |
|
|
|
|
|
order.status === this.filterForm.tradeStatus |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
|
|
|
// 搜索 |
|
|
// 搜索 |
|
|
search() { |
|
|
search() { |
|
|
this.currentPage = 1; // 重置到第一页 |
|
|
this.currentPage = 1; // 重置到第一页 |
|
|
this.$message({ |
|
|
this.getList() |
|
|
message: '搜索条件已应用', |
|
|
|
|
|
type: 'info' |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 重置 |
|
|
// 重置 |
|
|
reset() { |
|
|
reset() { |
|
|
this.filterForm = { |
|
|
this.filterForm = { |
|
|
goodsName: '', |
|
|
order_id: "", |
|
|
orderNo: '', |
|
|
createTime: "", |
|
|
createTime: '', |
|
|
contract_number: "", |
|
|
merchantName: '', |
|
|
|
|
|
tradeStatus: '' |
|
|
|
|
|
}; |
|
|
}; |
|
|
this.activeTab = 'all'; |
|
|
this.activeTab = "all"; |
|
|
this.currentPage = 1; |
|
|
this.currentPage = 1; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 分页大小改变 |
|
|
// 分页大小改变 |
|
|
handleSizeChange(val) { |
|
|
handleSizeChange(val) { |
|
|
this.pageSize = val; |
|
|
this.filterForm.limit = val; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 当前页改变 |
|
|
// 当前页改变 |
|
@ -254,11 +209,11 @@ export default { |
|
|
// 获取状态显示文本 |
|
|
// 获取状态显示文本 |
|
|
getStatusText(status) { |
|
|
getStatusText(status) { |
|
|
const statusMap = { |
|
|
const statusMap = { |
|
|
pendingPayment: '待付款', |
|
|
pendingPayment: "待付款", |
|
|
pendingDelivery: '待发货', |
|
|
pendingDelivery: "待发货", |
|
|
delivering: '配送中', |
|
|
delivering: "配送中", |
|
|
completed: '已完成', |
|
|
completed: "已完成", |
|
|
cancelled: '已取消' |
|
|
cancelled: "已取消", |
|
|
}; |
|
|
}; |
|
|
return statusMap[status] || status; |
|
|
return statusMap[status] || status; |
|
|
}, |
|
|
}, |
|
@ -266,20 +221,20 @@ export default { |
|
|
// 获取状态标签类型 |
|
|
// 获取状态标签类型 |
|
|
getStatusTagType(status) { |
|
|
getStatusTagType(status) { |
|
|
const typeMap = { |
|
|
const typeMap = { |
|
|
pendingPayment: 'warning', |
|
|
pendingPayment: "warning", |
|
|
pendingDelivery: 'info', |
|
|
pendingDelivery: "info", |
|
|
delivering: 'primary', |
|
|
delivering: "primary", |
|
|
completed: 'success', |
|
|
completed: "success", |
|
|
cancelled: 'danger' |
|
|
cancelled: "danger", |
|
|
}; |
|
|
}; |
|
|
return typeMap[status] || 'default'; |
|
|
return typeMap[status] || "default"; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 去付款 |
|
|
// 去付款 |
|
|
payOrder(orderId) { |
|
|
payOrder(orderId) { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: `订单 ${orderId} 去付款`, |
|
|
message: `订单 ${orderId} 去付款`, |
|
|
type: 'info' |
|
|
type: "info", |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -287,7 +242,7 @@ export default { |
|
|
remindDelivery(orderId) { |
|
|
remindDelivery(orderId) { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: `已提醒订单 ${orderId} 发货`, |
|
|
message: `已提醒订单 ${orderId} 发货`, |
|
|
type: 'success' |
|
|
type: "success", |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -295,7 +250,7 @@ export default { |
|
|
checkLogistics(orderId) { |
|
|
checkLogistics(orderId) { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: `查看订单 ${orderId} 物流`, |
|
|
message: `查看订单 ${orderId} 物流`, |
|
|
type: 'info' |
|
|
type: "info", |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -303,64 +258,63 @@ export default { |
|
|
gotoReview(orderId) { |
|
|
gotoReview(orderId) { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: `去评价订单 ${orderId}`, |
|
|
message: `去评价订单 ${orderId}`, |
|
|
type: 'info' |
|
|
type: "info", |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 查看订单详情 |
|
|
// 查看订单详情 |
|
|
viewOrderDetail(orderId) { |
|
|
viewOrderDetail(orderId) { |
|
|
this.$router.push({ |
|
|
this.$router.push({ |
|
|
name: 'OrderDetail', |
|
|
name: "OrderDetail", |
|
|
}); |
|
|
}); |
|
|
} |
|
|
}, |
|
|
} |
|
|
}, |
|
|
} |
|
|
}; |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
<style lang="scss" scoped> |
|
|
.bg{ |
|
|
.bg { |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
|
|
|
|
|
|
::v-deep .el-button--text { |
|
|
::v-deep .el-button--text { |
|
|
color: #6a8a27; |
|
|
color: #6a8a27; |
|
|
} |
|
|
} |
|
|
::v-deep .el-tabs__item.is-active{ |
|
|
::v-deep .el-tabs__item.is-active { |
|
|
color: #6a8a27; |
|
|
color: #6a8a27; |
|
|
} |
|
|
} |
|
|
::v-deep .el-tabs__active-bar{ |
|
|
::v-deep .el-tabs__active-bar { |
|
|
background-color: #6a8a27 |
|
|
background-color: #6a8a27; |
|
|
} |
|
|
} |
|
|
::v-deep .el-tabs__item:hover{ |
|
|
::v-deep .el-tabs__item:hover { |
|
|
color: #6a8a27; |
|
|
color: #6a8a27; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
.filter-bar { |
|
|
.filter-bar { |
|
|
margin-bottom: 20px; |
|
|
margin-bottom: 20px; |
|
|
|
|
|
|
|
|
::v-deep .el-input-number__decrease{ |
|
|
::v-deep .el-input-number__decrease { |
|
|
display: none; |
|
|
display: none; |
|
|
} |
|
|
} |
|
|
::v-deep .el-input-number__increase{ |
|
|
::v-deep .el-input-number__increase { |
|
|
display: none; |
|
|
display: none; |
|
|
} |
|
|
} |
|
|
::v-deep .el-input-number .el-input__inner{ |
|
|
::v-deep .el-input-number .el-input__inner { |
|
|
padding-left: 10px; |
|
|
padding-left: 10px; |
|
|
padding-right: 10px; |
|
|
padding-right: 10px; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 订单卡片样式 */ |
|
|
/* 订单卡片样式 */ |
|
|
.order-card { |
|
|
.order-card { |
|
|
border: 1px solid #eee; |
|
|
border: 1px solid #eee; |
|
|
border-radius: 4px; |
|
|
border-radius: 4px; |
|
|
margin-bottom: 20px; |
|
|
margin-bottom: 20px; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* 订单头部 - 包含商家信息 */ |
|
|
/* 订单头部 - 包含商家信息 */ |
|
|
.order-header { |
|
|
.order-header { |
|
|
background-color: #f8f9fa; |
|
|
background-color: #f8f9fa; |
|
|
padding: 12px 20px; |
|
|
padding: 12px 20px; |
|
|
display: flex; |
|
|
display: flex; |
|
@ -368,114 +322,112 @@ export default { |
|
|
border-bottom: 1px solid #eee; |
|
|
border-bottom: 1px solid #eee; |
|
|
color: #666; |
|
|
color: #666; |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 订单商品列表 */ |
|
|
/* 订单商品列表 */ |
|
|
.order-products { |
|
|
.order-products { |
|
|
padding: 10px 20px; |
|
|
padding: 10px 20px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-item { |
|
|
.product-item { |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
padding: 15px 0; |
|
|
padding: 15px 0; |
|
|
border-bottom: 1px dashed #eee; |
|
|
border-bottom: 1px dashed #eee; |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-item:last-child { |
|
|
.product-item:last-child { |
|
|
border-bottom: none; |
|
|
border-bottom: none; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-image { |
|
|
.product-image { |
|
|
width: 80px; |
|
|
width: 80px; |
|
|
height: 80px; |
|
|
height: 80px; |
|
|
object-fit: cover; |
|
|
object-fit: cover; |
|
|
margin-right: 15px; |
|
|
margin-right: 15px; |
|
|
border-radius: 4px; |
|
|
border-radius: 4px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-details { |
|
|
.product-details { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-name { |
|
|
.product-name { |
|
|
color: #333; |
|
|
color: #333; |
|
|
margin-bottom: 5px; |
|
|
margin-bottom: 5px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-spec { |
|
|
.product-spec { |
|
|
color: #999; |
|
|
color: #999; |
|
|
font-size: 12px; |
|
|
font-size: 12px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-price { |
|
|
.product-price { |
|
|
width: 120px; |
|
|
width: 120px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
color: #333; |
|
|
color: #333; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-quantity { |
|
|
.product-quantity { |
|
|
width: 100px; |
|
|
width: 100px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
color: #666; |
|
|
color: #666; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-total { |
|
|
.product-total { |
|
|
width: 120px; |
|
|
width: 120px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
color: #333; |
|
|
color: #333; |
|
|
font-weight: 500; |
|
|
font-weight: 500; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-status { |
|
|
.product-status { |
|
|
width: 150px; |
|
|
width: 150px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.product-actions { |
|
|
.product-actions { |
|
|
width: 150px; |
|
|
width: 150px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* 订单底部 - 金额和操作 */ |
|
|
/* 订单底部 - 金额和操作 */ |
|
|
.order-footer { |
|
|
.order-footer { |
|
|
background-color: #f8f9fa; |
|
|
background-color: #f8f9fa; |
|
|
padding: 15px 20px; |
|
|
padding: 15px 20px; |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: space-between; |
|
|
justify-content: space-between; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
border-top: 1px solid #eee; |
|
|
border-top: 1px solid #eee; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.order-summary { |
|
|
.order-summary { |
|
|
text-align: right; |
|
|
text-align: right; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.order-amount { |
|
|
.order-amount { |
|
|
color: #333; |
|
|
color: #333; |
|
|
margin-bottom: 5px; |
|
|
margin-bottom: 5px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.order-amount strong { |
|
|
.order-amount strong { |
|
|
color: #ff4d4f; |
|
|
color: #ff4d4f; |
|
|
font-size: 16px; |
|
|
font-size: 16px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.order-tips { |
|
|
.order-tips { |
|
|
font-size: 12px; |
|
|
font-size: 12px; |
|
|
color: #999; |
|
|
color: #999; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.order-actions { |
|
|
.order-actions { |
|
|
display: flex; |
|
|
display: flex; |
|
|
gap: 10px; |
|
|
gap: 10px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* 通知栏样式 */ |
|
|
/* 通知栏样式 */ |
|
|
.notice-bar { |
|
|
.notice-bar { |
|
|
background-color: #fffbe6; |
|
|
background-color: #fffbe6; |
|
|
border: 1px solid #ffe58f; |
|
|
border: 1px solid #ffe58f; |
|
|
padding: 12px 16px; |
|
|
padding: 12px 16px; |
|
@ -487,8 +439,26 @@ export default { |
|
|
color: #fa8c16; |
|
|
color: #fa8c16; |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
line-height: 1.5; |
|
|
line-height: 1.5; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.product-info { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
padding: 5px 0; |
|
|
|
|
|
|
|
|
|
|
|
.product-img { |
|
|
|
|
|
width: 50px; |
|
|
|
|
|
height: 50px; |
|
|
|
|
|
object-fit: cover; |
|
|
|
|
|
border-radius: 4px; |
|
|
|
|
|
margin-right: 10px; |
|
|
|
|
|
border: 1px solid #eee; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.product-name { |
|
|
|
|
|
color: #333; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|