|
|
@@ -711,6 +711,7 @@ import CrmColFilterHeader from '@/components/business/crm-col-filter-header/inde
|
|
|
import { usePersistedListColumns } from '@/composables/usePersistedListColumns'
|
|
|
import { useListTableViewportHeight } from '@/composables/useListTableViewportHeight'
|
|
|
import { useServerColumnFilters } from '@/composables/useServerColumnFilters'
|
|
|
+import { useColumnSort } from '@/composables/useColumnSort'
|
|
|
import { buildCustomerColumnFilterDefs } from './columnFilterDefs'
|
|
|
|
|
|
const dictStore = useDictStore()
|
|
|
@@ -762,6 +763,26 @@ provide('crmColumnFilters', {
|
|
|
defMap
|
|
|
})
|
|
|
|
|
|
+const {
|
|
|
+ sortField,
|
|
|
+ sortOrder,
|
|
|
+ setSort,
|
|
|
+ clearSort,
|
|
|
+ isSortActive,
|
|
|
+ toQueryParams: toSortQueryParams,
|
|
|
+ watchVisibleColumns: watchSortVisibleColumns
|
|
|
+} = useColumnSort({
|
|
|
+ onChange: () => runListSearch()
|
|
|
+})
|
|
|
+
|
|
|
+provide('crmColumnSort', {
|
|
|
+ setSort,
|
|
|
+ clearSort,
|
|
|
+ isSortActive,
|
|
|
+ sortField,
|
|
|
+ sortOrder
|
|
|
+})
|
|
|
+
|
|
|
// 列配置
|
|
|
const listColumnDefs = [
|
|
|
{ prop: 'shortName', label: '客户简称' },
|
|
|
@@ -834,6 +855,7 @@ const visibleFilterProps = computed(() => {
|
|
|
return props
|
|
|
})
|
|
|
watchVisibleColumns(visibleFilterProps)
|
|
|
+watchSortVisibleColumns(visibleFilterProps)
|
|
|
|
|
|
function handleResetColumns() {
|
|
|
resetToDefault()
|
|
|
@@ -875,7 +897,8 @@ function buildQueryParams(): Record<string, any> {
|
|
|
const params: Record<string, any> = {
|
|
|
page: pagination.page,
|
|
|
pageSize: pagination.pageSize,
|
|
|
- ...toQueryParams()
|
|
|
+ ...toQueryParams(),
|
|
|
+ ...toSortQueryParams()
|
|
|
}
|
|
|
if (activeView.value && activeView.value !== 'all') {
|
|
|
params.viewMode = activeView.value
|