|
@@ -54,9 +54,12 @@ const gridOptions: any = reactive({
|
|
|
customConfig: {
|
|
|
storage: true
|
|
|
},
|
|
|
+ sortConfig: {
|
|
|
+ remote: true,
|
|
|
+ },
|
|
|
toolbarConfig: {
|
|
|
size: 'large',
|
|
|
- // custom: true,
|
|
|
+ custom: true,
|
|
|
slots: {
|
|
|
buttons: 'toolbar_buttons',
|
|
|
tools: 'toolbar_tools'
|
|
@@ -78,7 +81,7 @@ const gridOptions: any = reactive({
|
|
|
icon: 'vxe-icon-indicator roll',
|
|
|
text: '正在拼命加载中...'
|
|
|
},
|
|
|
- columns: '',
|
|
|
+ columns: ProductMonitorColumns,
|
|
|
data: ''
|
|
|
});
|
|
|
|
|
@@ -88,6 +91,8 @@ const editOpen = ref(false);
|
|
|
const createOpen = ref(false);
|
|
|
const rowData = ref<any>({});
|
|
|
|
|
|
+const ordering = ref('');
|
|
|
+
|
|
|
const templateType = ref('monitor');
|
|
|
|
|
|
const isShowComment = ref(false);
|
|
@@ -102,30 +107,27 @@ onMounted(() => {
|
|
|
});
|
|
|
|
|
|
async function fetchList(isQuery = false) {
|
|
|
- if (isQuery) {
|
|
|
- gridOptions.pagerConfig.page = 1;
|
|
|
- }
|
|
|
-
|
|
|
- gridOptions.data = [];
|
|
|
- gridOptions.columns = [];
|
|
|
-
|
|
|
- const query = {
|
|
|
- country_code: queryParameter?.country,
|
|
|
- brand: queryParameter?.brand,
|
|
|
- tag: queryParameter?.group,
|
|
|
- status: queryParameter?.status,
|
|
|
- shop_id: queryParameter?.shop,
|
|
|
- asin: queryParameter?.asin,
|
|
|
- sku: queryParameter?.sku,
|
|
|
- platform_number: queryParameter?.platformId,
|
|
|
- scoreNumber: queryParameter?.scoreNumber,
|
|
|
- commentNumber: queryParameter?.commentNumber,
|
|
|
- displayScore: queryParameter?.displayScore
|
|
|
- };
|
|
|
-
|
|
|
- await useTableData(api.getTableData, query, gridOptions);
|
|
|
- if (gridOptions && gridOptions.data?.length) await gridRef.value.loadColumn(ProductMonitorColumns);
|
|
|
- gridOptions.showHeader = Boolean(gridOptions.data?.length);
|
|
|
+ if (isQuery) {
|
|
|
+ gridOptions.pagerConfig.page = 1;
|
|
|
+ }
|
|
|
+ gridOptions.data = [];
|
|
|
+
|
|
|
+ const query = {
|
|
|
+ country_code: queryParameter?.country,
|
|
|
+ brand: queryParameter?.brand,
|
|
|
+ tag: queryParameter?.group,
|
|
|
+ status: queryParameter?.status,
|
|
|
+ shop_id: queryParameter?.shop,
|
|
|
+ asin: queryParameter?.asin,
|
|
|
+ sku: queryParameter?.sku,
|
|
|
+ platform_number: queryParameter?.platformId,
|
|
|
+ scoreNumber: queryParameter?.scoreNumber,
|
|
|
+ commentNumber: queryParameter?.commentNumber,
|
|
|
+ displayScore: queryParameter?.displayScore,
|
|
|
+ ordering: ordering.value,
|
|
|
+ };
|
|
|
+ await useTableData(api.getTableData, query, gridOptions);
|
|
|
+ gridOptions.showHeader = Boolean(gridOptions.data?.length);
|
|
|
}
|
|
|
|
|
|
function handleRefresh() {
|
|
@@ -148,7 +150,8 @@ async function handleDownload() {
|
|
|
platform_number: queryParameter?.platformId,
|
|
|
scoreNumber: queryParameter?.scoreNumber,
|
|
|
commentNumber: queryParameter?.commentNumber,
|
|
|
- displayScore: queryParameter?.displayScore
|
|
|
+ displayScore: queryParameter?.displayScore,
|
|
|
+ ordering: ordering.value,
|
|
|
},
|
|
|
fileName: '商品监控数据.xlsx',
|
|
|
successMessage: () => ElMessage.success('数据导出成功!'),
|
|
@@ -243,11 +246,17 @@ const gridEvents = {
|
|
|
|
|
|
defineExpose({ fetchList });
|
|
|
|
|
|
+function handleSortChange({ field, order }) {
|
|
|
+ const prefix = order === 'desc' ? '-' : '';
|
|
|
+ ordering.value = ['reviews', 'ratings', 'score'].includes(field) ? `${prefix}${field}` : `${prefix}goods__${field}`;
|
|
|
+ fetchList(field, order);
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<vxe-grid ref="gridRef" v-bind="gridOptions" v-on="gridEvents"
|
|
|
@checkbox-change="selectChangeEvent"
|
|
|
+ @sort-change="handleSortChange"
|
|
|
@checkbox-all="selectAllChangeEvent">
|
|
|
<template #toolbar_buttons>
|
|
|
<div class="flex gap-2">
|
|
@@ -298,7 +307,7 @@ defineExpose({ fetchList });
|
|
|
<Refresh />
|
|
|
</el-icon>
|
|
|
</el-button>
|
|
|
- <el-button circle class="toolbar-btn" @click="handleDownload">
|
|
|
+ <el-button circle class="toolbar-btn" @click="handleDownload" style="margin-right: 12px">
|
|
|
<el-icon>
|
|
|
<Download />
|
|
|
</el-icon>
|