|
|
@@ -605,6 +605,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 type { DatetimeColumnFilterState } from '@/composables/useClientColumnFilters'
|
|
|
import { buildStatsRowColumns } from '@/utils/list-column-stats'
|
|
|
import { buildContractColumnFilterDefs } from './columnFilterDefs'
|
|
|
@@ -656,6 +657,29 @@ provide('crmColumnFilters', {
|
|
|
defMap
|
|
|
})
|
|
|
|
|
|
+const {
|
|
|
+ sortField,
|
|
|
+ sortOrder,
|
|
|
+ setSort,
|
|
|
+ clearSort,
|
|
|
+ isSortActive,
|
|
|
+ toQueryParams: toSortQueryParams,
|
|
|
+ watchVisibleColumns: watchSortVisibleColumns
|
|
|
+} = useColumnSort({
|
|
|
+ onChange: () => {
|
|
|
+ queryParams.value.pageNum = 1
|
|
|
+ getList()
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+provide('crmColumnSort', {
|
|
|
+ setSort,
|
|
|
+ clearSort,
|
|
|
+ isSortActive,
|
|
|
+ sortField,
|
|
|
+ sortOrder
|
|
|
+})
|
|
|
+
|
|
|
function formatContractDateYmd(date: Date) {
|
|
|
const year = date.getFullYear()
|
|
|
const month = String(date.getMonth() + 1).padStart(2, '0')
|
|
|
@@ -796,6 +820,7 @@ const visibleFilterProps = computed(() => {
|
|
|
return props
|
|
|
})
|
|
|
watchVisibleColumns(visibleFilterProps)
|
|
|
+watchSortVisibleColumns(visibleFilterProps)
|
|
|
|
|
|
function handleResetColumns() {
|
|
|
resetToDefault()
|
|
|
@@ -858,7 +883,8 @@ function buildListQueryParams(): ContractQuery {
|
|
|
const params: ContractQuery = {
|
|
|
...queryParams.value,
|
|
|
...colParams,
|
|
|
- ...viewScopeParams
|
|
|
+ ...viewScopeParams,
|
|
|
+ ...toSortQueryParams()
|
|
|
}
|
|
|
const hasStatusIn = Boolean(colParams.statusIn)
|
|
|
const hasStatusFilter = Boolean(colParams.status)
|