|
@@ -7,14 +7,6 @@
|
|
|
<div class="search-container">
|
|
|
<sa-search-simple :searchFields="searchFields" :defaultValues="defaultSearchValues"
|
|
|
v-model="currentSearchParams" @search="handleSearch" @reset="handleReset">
|
|
|
- <template #custom="{ data }">
|
|
|
- <el-form-item :label="t('modules.order.orderTime')">
|
|
|
- <el-date-picker v-model="data.createTime" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- format="YYYY-MM-DD HH:mm:ss" :range-separator="t('common.to')"
|
|
|
- :start-placeholder="t('common.startDate')" :end-placeholder="t('common.endDate')" :editable="false"
|
|
|
- style="width: 350px" />
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
</sa-search-simple>
|
|
|
</div>
|
|
|
<el-tabs class="sa-tabs" v-model="currentStatus" @tab-change="handleTabChange">
|
|
@@ -179,6 +171,20 @@ import UserDetail from '../../user/list/detail.vue';
|
|
|
|
|
|
const { t } = useI18n();
|
|
|
|
|
|
+// 设置默认每页20条
|
|
|
+// const { pageData } = usePagination(); // 已在下方声明
|
|
|
+
|
|
|
+// 快递公司列表配置
|
|
|
+const deliveryCompanies = [
|
|
|
+ { label: 'FedEx', value: 'FedEx' },
|
|
|
+ { label: 'UPS', value: 'UPS' },
|
|
|
+ { label: 'DHL', value: 'DHL' },
|
|
|
+ { label: 'Pathao Courier', value: 'Pathao Courier' },
|
|
|
+ { label: 'eDesh', value: 'eDesh' },
|
|
|
+ { label: 'Steadfast', value: 'Steadfast' },
|
|
|
+ { label: 'Redx', value: 'Redx' },
|
|
|
+];
|
|
|
+
|
|
|
// 搜索字段配置 - 使用计算属性以支持语言切换
|
|
|
const searchFields = computed(() => ({
|
|
|
orderId: {
|
|
@@ -205,6 +211,31 @@ const searchFields = computed(() => ({
|
|
|
placeholder: t('placeholders.inputTrackingNumber'),
|
|
|
width: 200,
|
|
|
},
|
|
|
+ deliveryName: {
|
|
|
+ type: 'select',
|
|
|
+ label: t('modules.order.deliveryCompany'),
|
|
|
+ placeholder: t('form.pleaseSelect') + t('modules.order.deliveryCompany'),
|
|
|
+ width: 180,
|
|
|
+ options: deliveryCompanies,
|
|
|
+ },
|
|
|
+ timeType: {
|
|
|
+ type: 'select',
|
|
|
+ label: t('modules.withdraw.timeType'),
|
|
|
+ placeholder: t('form.pleaseSelect') + t('modules.withdraw.timeType'),
|
|
|
+ width: 150,
|
|
|
+ options: [
|
|
|
+ { label: t('modules.order.orderTime'), value: 'create' },
|
|
|
+ { label: t('modules.order.payTime'), value: 'pay' },
|
|
|
+ { label: t('modules.order.deliveryTime'), value: 'delivery' },
|
|
|
+ { label: t('modules.order.finishTime'), value: 'finish' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ date_range: {
|
|
|
+ type: 'daterange',
|
|
|
+ label: t('modules.withdraw.timeRange'),
|
|
|
+ placeholder: t('modules.withdraw.selectTimeRange'),
|
|
|
+ width: 400,
|
|
|
+ },
|
|
|
}));
|
|
|
|
|
|
// 默认搜索值
|
|
@@ -213,6 +244,9 @@ const defaultSearchValues = reactive({
|
|
|
realName: '',
|
|
|
userPhone: '',
|
|
|
deliveryId: '',
|
|
|
+ deliveryName: '',
|
|
|
+ timeType: 'create', // 默认下单时间
|
|
|
+ date_range: [],
|
|
|
createTime: [],
|
|
|
});
|
|
|
|
|
@@ -309,6 +343,34 @@ async function getData(page, searchParams = null) {
|
|
|
delete requestData.createTime;
|
|
|
}
|
|
|
|
|
|
+ // 处理不同时间类型的搜索
|
|
|
+ if (requestData.date_range && requestData.date_range.length === 2) {
|
|
|
+ const timeType = requestData.timeType || 'create';
|
|
|
+
|
|
|
+ switch (timeType) {
|
|
|
+ case 'pay':
|
|
|
+ requestData.payStartTime = requestData.date_range[0];
|
|
|
+ requestData.payEndTime = requestData.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'delivery':
|
|
|
+ requestData.deliveryStartTime = requestData.date_range[0];
|
|
|
+ requestData.deliveryEndTime = requestData.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'finish':
|
|
|
+ requestData.finishStartTime = requestData.date_range[0];
|
|
|
+ requestData.finishEndTime = requestData.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'create':
|
|
|
+ default:
|
|
|
+ requestData.startTime = requestData.date_range[0];
|
|
|
+ requestData.endTime = requestData.date_range[1];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ delete requestData.date_range;
|
|
|
+ delete requestData.timeType;
|
|
|
+ }
|
|
|
+
|
|
|
const { code, data } = await api.order.list(requestData);
|
|
|
|
|
|
if (code == '200') {
|
|
@@ -373,6 +435,34 @@ async function onExport() {
|
|
|
delete exportParams.createTime;
|
|
|
}
|
|
|
|
|
|
+ // 处理不同时间类型的搜索
|
|
|
+ if (exportParams.date_range && exportParams.date_range.length === 2) {
|
|
|
+ const timeType = exportParams.timeType || 'create';
|
|
|
+
|
|
|
+ switch (timeType) {
|
|
|
+ case 'pay':
|
|
|
+ exportParams.payStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.payEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'delivery':
|
|
|
+ exportParams.deliveryStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.deliveryEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'finish':
|
|
|
+ exportParams.finishStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.finishEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'create':
|
|
|
+ default:
|
|
|
+ exportParams.startTime = exportParams.date_range[0];
|
|
|
+ exportParams.endTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ delete exportParams.date_range;
|
|
|
+ delete exportParams.timeType;
|
|
|
+ }
|
|
|
+
|
|
|
await api.order.export(exportParams, t('modules.order.orderRecords'));
|
|
|
} catch (error) {
|
|
|
console.error('导出订单失败:', error);
|
|
@@ -399,6 +489,34 @@ async function onExportDelivery() {
|
|
|
delete exportParams.createTime;
|
|
|
}
|
|
|
|
|
|
+ // 处理不同时间类型的搜索
|
|
|
+ if (exportParams.date_range && exportParams.date_range.length === 2) {
|
|
|
+ const timeType = exportParams.timeType || 'create';
|
|
|
+
|
|
|
+ switch (timeType) {
|
|
|
+ case 'pay':
|
|
|
+ exportParams.payStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.payEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'delivery':
|
|
|
+ exportParams.deliveryStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.deliveryEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'finish':
|
|
|
+ exportParams.finishStartTime = exportParams.date_range[0];
|
|
|
+ exportParams.finishEndTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ case 'create':
|
|
|
+ default:
|
|
|
+ exportParams.startTime = exportParams.date_range[0];
|
|
|
+ exportParams.endTime = exportParams.date_range[1];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ delete exportParams.date_range;
|
|
|
+ delete exportParams.timeType;
|
|
|
+ }
|
|
|
+
|
|
|
await api.order.exportDelivery(exportParams, t('modules.order.deliveryOrders'), 'exportDelivery');
|
|
|
} finally {
|
|
|
exportLoading.value = false;
|