346 lines
15 KiB
Vue
Raw Normal View History

2023-04-03 20:25:57 +08:00
<template>
<div class="conent">
2023-07-26 13:58:52 +08:00
<el-card>
2023-04-03 20:25:57 +08:00
<el-form ref="form" :inline="true" :model="form">
2023-07-26 13:58:52 +08:00
<el-form-item label="所属店铺:">
2023-04-04 15:28:56 +08:00
<el-select v-model="form.shop_id" placeholder="店铺" @change="setActivity">
2023-04-03 20:25:57 +08:00
<el-option v-for="item in shops" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
2023-07-26 13:58:52 +08:00
<!-- <el-form-item label="活动名称:">
2023-04-03 20:25:57 +08:00
<el-select v-model="form.activity_no" placeholder="活动名称">
2023-04-03 21:42:57 +08:00
<el-option v-for="item in groupActivity" :key="item.activity_no" :label="item.activity_title"
:value="item.activity_no">
2023-04-03 20:25:57 +08:00
</el-option>
</el-select>
2023-07-26 13:58:52 +08:00
</el-form-item> -->
2023-04-03 20:25:57 +08:00
<el-form-item label="发货状态:">
<el-select v-model="form.shipping_status" placeholder="发货状态">
<el-option value="" label="全部"></el-option>
<el-option value="0" label="未发货"></el-option>
<el-option value="2" label="部分发货"></el-option>
<el-option value="1" label="已发货"></el-option>
</el-select>
</el-form-item>
<el-form-item label="订单类型:">
2023-04-03 21:42:57 +08:00
<el-select v-model="form.is_supplier" placeholder="订单类型">
2023-04-03 20:25:57 +08:00
<el-option value="" label="全部订单"></el-option>
2023-04-03 21:42:57 +08:00
<el-option value="1" label="自卖团订单"></el-option>
2023-04-05 18:59:46 +08:00
<el-option value="0" label="帮卖团订单"></el-option>
2023-04-03 20:25:57 +08:00
</el-select>
</el-form-item>
<el-form-item label="订单状态:">
<el-select v-model="form.cancel_status" placeholder="订单状态">
<el-option value="" label="全部"></el-option>
<el-option value="0" label="未取消"></el-option>
<el-option value="1" label="已取消"></el-option>
</el-select>
</el-form-item>
<el-form-item label="售后状态:">
<el-select v-model="form.after_sales_status" placeholder="售后状态">
<el-option value="" label="全部"></el-option>
<el-option value="0" label="未售后"></el-option>
<el-option value="1" label="有售后"></el-option>
</el-select>
</el-form-item>
2023-07-26 13:58:52 +08:00
<!-- <el-form-item label="帮卖团跟团号:">
2023-05-19 21:19:49 +08:00
<el-input v-model="form.participate_no" placeholder="帮卖团跟团号"></el-input>
</el-form-item>
<el-form-item label="自卖团跟团号:">
<el-input v-model="form.supply_participate_no" placeholder="自卖团跟团号"></el-input>
2023-07-26 13:58:52 +08:00
</el-form-item> -->
<el-form-item label="商品数量:">
<el-select v-model="form.goods_sku_num" placeholder="商品数量">
<el-option value="" label="全部"></el-option>
<el-option value="1" label="1个商品"></el-option>
<el-option value="2" label="2-5个商品"></el-option>
<el-option value="6" label="6个以上商品"></el-option>
</el-select>
</el-form-item>
<el-form-item label="打印状态:">
<el-select v-model="form.print_status" placeholder="打印状态">
<el-option value="" label="全部"></el-option>
<el-option value="0" label="未打印"></el-option>
<el-option value="1" label="已打印"></el-option>
</el-select>
</el-form-item>
<el-form-item label="订单商品:">
<el-select v-model="form.external_sku_ids" multiple filterable remote reserve-keyword placeholder="订单商品"
:remote-method="remoteMethod" :loading="searchLoading">
<el-option v-for="item in options" :key="item.external_sku_id" :label="item.title"
:value="item.external_sku_id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="下单时间:">
<el-date-picker v-model="form.confirm_at" type="datetimerange" range-separator="-" start-placeholder="起"
2023-07-26 16:30:33 +08:00
end-placeholder="止" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
2023-07-26 13:58:52 +08:00
</el-date-picker>
2023-05-19 21:19:49 +08:00
</el-form-item>
2023-04-03 20:25:57 +08:00
<el-form-item>
2023-04-04 15:28:56 +08:00
<el-button type="primary" @click="handleChoose">筛选</el-button>
<el-button plain @click="handleReChoose">重置筛选</el-button>
2023-04-03 20:25:57 +08:00
</el-form-item>
2023-07-26 16:30:33 +08:00
<el-button type="primary" @click="dialogVisible = true">打印</el-button>
2023-04-03 20:25:57 +08:00
</el-form>
</el-card>
<el-card style="margin-top: 10px">
2023-07-27 21:28:00 +08:00
<el-table v-loading="loading" ref="multipleTable" :data="tableData" style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
2023-04-03 20:25:57 +08:00
<el-table-column label="店铺名称">
<template slot-scope="scope">
{{ scope.row.shop.name }}
</template>
</el-table-column>
2023-07-26 13:58:52 +08:00
<!-- <el-table-column prop="activity_title" label="活动名称"></el-table-column> -->
<el-table-column prop="order_sn" label="订单号" width="230"></el-table-column>
<el-table-column label="收件人信息" width="160">
<template slot-scope="scope">
<p>{{ scope.row.receiver_name }}</p>
<p>{{ scope.row.receiver_address_province }} {{ scope.row.receiver_address_city }} {{
scope.row.receiver_address_district }}</p>
<p>{{ scope.row.receiver_address_detail }}</p>
</template>
</el-table-column>
2023-04-03 21:42:57 +08:00
<el-table-column prop="shipping_status" label="发货状态"></el-table-column>
2023-07-26 13:58:52 +08:00
<!-- <el-table-column prop="is_supplier" label="订单类型"></el-table-column> -->
2023-04-03 21:42:57 +08:00
<el-table-column prop="cancel_status" label="订单状态"></el-table-column>
<el-table-column prop="after_sales_status" label="售后状态"></el-table-column>
2023-07-26 13:58:52 +08:00
<!-- <el-table-column prop="supply_participate_no" label="自卖团跟团号"></el-table-column> -->
<!-- <el-table-column prop="participate_no" label="帮卖团跟团号"></el-table-column> -->
<el-table-column label="商品信息" width="420">
2023-04-03 21:42:57 +08:00
<template slot-scope="scope">
2023-04-04 15:28:56 +08:00
<div v-for="item in scope.row.items" :key="item.id">
2023-07-26 13:58:52 +08:00
{{ item.goods_name }}
2023-04-03 21:42:57 +08:00
</div>
</template>
</el-table-column>
2023-07-26 13:58:52 +08:00
<el-table-column prop="confirm_at" label="下单时间" width="100"></el-table-column>
2023-07-27 21:28:00 +08:00
<el-table-column prop="print_status" label="打印次数"></el-table-column>
2023-04-03 20:25:57 +08:00
</el-table>
<!-- 分页功能 -->
<div class="block">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="current_page" :page-sizes="[15, 50, 100]" :page-size="per_page"
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
</el-pagination>
</div>
</el-card>
2023-04-04 15:28:56 +08:00
<!-- 配货单导出 -->
<el-dialog title="配货单导出" :visible.sync="dialogVisible" :close-on-click-modal="false">
<el-form ref="exportForm" :model="exportForm" label-width="100px" :rules="exportFormRules">
<el-form-item label="店铺:" prop="shop_id">
<el-select v-model="exportForm.shop_id" placeholder="店铺" @change="setActivity">
<el-option v-for="item in shops" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
2023-04-05 18:59:46 +08:00
<el-form-item label="订单类型">
<el-radio-group v-model="exportForm.is_supplier">
<el-radio :label="1">自卖团订单</el-radio>
<el-radio :label="0">帮卖团订单</el-radio>
</el-radio-group>
</el-form-item>
2023-04-04 15:28:56 +08:00
<el-form-item label="开始跟团号" prop="start_no">
<el-input v-model="exportForm.start_no"></el-input>
</el-form-item>
<el-form-item label="结束跟团号" prop="end_no">
<el-input v-model="exportForm.end_no"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="derivation('exportForm')">导出</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
2023-04-03 20:25:57 +08:00
</div>
</template>
<script>
2023-07-26 13:58:52 +08:00
import { platOrderList, activityList } from "../../api/plat";
2023-04-03 20:25:57 +08:00
import { storeList } from "../../api/shop";
2023-07-26 13:58:52 +08:00
import { goodsSkusList } from "../../api/goods";
2023-04-03 20:25:57 +08:00
export default {
data() {
return {
form: {
shop_id: "",
2023-07-26 13:58:52 +08:00
// activity_no: "",
2023-04-03 20:25:57 +08:00
shipping_status: "",
2023-07-26 13:58:52 +08:00
// is_supplier: "",
2023-07-26 16:30:33 +08:00
cancel_status: "0",
after_sales_status: "0",
2023-07-26 13:58:52 +08:00
// supply_participate_no: "",
// participate_no: "",
goods_sku_num: "",
2023-07-26 16:30:33 +08:00
print_status: "0",
2023-07-26 13:58:52 +08:00
external_sku_ids: [],
2023-07-26 16:30:33 +08:00
confirm_at: [],
2023-04-03 20:25:57 +08:00
},
2023-04-04 15:28:56 +08:00
dialogVisible: false,
2023-04-03 20:25:57 +08:00
loading: true,
2023-07-26 13:58:52 +08:00
searchLoading: false,
options: [],
2023-04-03 20:25:57 +08:00
tableData: [],
Paginationdata: {}, //分页相关数据
current_page: 1, //当前页
per_page: 10, //每页显示数量
shops: [],
groupActivity: [],
2023-04-04 15:28:56 +08:00
exportForm: {
shop_id: "",
start_no: "",
2023-04-05 18:59:46 +08:00
end_no: "",
is_supplier: 1,
2023-04-04 15:28:56 +08:00
},
exportFormRules: {
shop_id: [
{ required: true, trigger: 'blur' }
],
start_no: [
{ required: true, trigger: 'blur' }
],
end_no: [
{ required: true, trigger: 'blur' }
],
2023-07-26 16:30:33 +08:00
},
confirmAt: [],
2023-04-03 20:25:57 +08:00
};
},
mounted() {
// 展示店铺列表
this.getShopsList();
},
2023-07-26 16:30:33 +08:00
created() {
this.initConfirmAt();
2023-07-27 21:28:00 +08:00
this.getPlatOrderList({
confirm_at_start: this.form.confirm_at[0],
confirm_at_end: this.form.confirm_at[1]
});
2023-07-26 16:30:33 +08:00
},
2023-04-03 20:25:57 +08:00
methods: {
2023-07-26 16:30:33 +08:00
initConfirmAt() {
const nowTimeDate = new Date();
nowTimeDate.setHours(0, 0, 0, 0);
this.form.confirm_at[0] = nowTimeDate.toLocaleString('zh', { hour12: false }).replaceAll('/', '-');
nowTimeDate.setHours(23, 59, 59, 999);
this.form.confirm_at[1] = nowTimeDate.toLocaleString('zh', { hour12: false }).replaceAll('/', '-');
this.confirmAt = this.form.confirm_at;
},
2023-04-03 20:25:57 +08:00
// 店铺列表
getPlatOrderList(params = {}) {
params.page = this.current_page;
params.per_page = this.per_page;
platOrderList(params).then((res) => {
this.tableData = res.data.data;
this.Paginationdata = res.data.meta;
});
},
getShopsList() {
let page = {
page: 0,
per_page: 99,
};
storeList(page).then((res) => {
this.shops = res.data.data;
});
this.loading = false;
},
//分页功能
handleSizeChange(val) {
//当前条数
this.current_page = 1;
this.per_page = val;
this.getPlatOrderList();
},
handleCurrentChange(val) {
//当前页
this.current_page = val;
this.getPlatOrderList();
},
// 筛选
handleChoose() {
2023-07-26 13:58:52 +08:00
this.form.confirm_at_start = this.form.confirm_at[0] ? this.form.confirm_at[0] : '',
this.form.confirm_at_end = this.form.confirm_at[1] ? this.form.confirm_at[1] : '',
this.form = {
...this.form,
page: 1,
per_page: this.per_page,
};
2023-04-03 20:25:57 +08:00
this.getPlatOrderList(this.form);
},
// 重置筛选
handleReChoose() {
this.form = {
shop_id: "",
2023-07-26 13:58:52 +08:00
// activity_no: "",
2023-04-03 20:25:57 +08:00
shipping_status: "",
2023-07-26 13:58:52 +08:00
// is_supplier: "",
2023-07-26 16:30:33 +08:00
cancel_status: "0",
after_sales_status: "0",
2023-07-26 13:58:52 +08:00
// supply_participate_no: "",
// participate_no: "",
goods_sku_num: "",
2023-07-26 16:30:33 +08:00
print_status: "0",
2023-07-26 13:58:52 +08:00
external_sku_ids: [],
2023-07-26 16:30:33 +08:00
confirm_at: this.confirmAt,
2023-04-03 20:25:57 +08:00
};
this.getPlatOrderList();
},
2023-04-04 15:28:56 +08:00
setActivity(shopId) {
activityList(shopId).then((res) => {
this.groupActivity = res.data;
})
},
derivation(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
2023-04-05 18:59:46 +08:00
window.open("/plat_orders/export?shop_id=" + this.exportForm.shop_id + '&start_no=' + this.exportForm.start_no + '&end_no=' + this.exportForm.end_no + '&is_supplier=' + this.exportForm.is_supplier);
2023-04-04 15:28:56 +08:00
} else {
return false;
}
});
2023-07-26 13:58:52 +08:00
},
remoteMethod(query) {
if (query !== '') {
this.searchLoading = true;
setTimeout(() => {
this.searchLoading = false;
goodsSkusList(query).then((res) => {
this.options = res.data.filter(item => {
return item.title.toLowerCase().indexOf(query.toLowerCase()) > -1;
});
});
}, 200);
} else {
this.options = [];
}
2023-04-04 15:28:56 +08:00
}
2023-04-03 20:25:57 +08:00
},
};
</script>
<style lang="scss" scoped>
.block {
margin-top: 20px;
}
</style>