minitest2.0 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minitest2.0",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -0,0 +1,38 @@
1
+ import { defineStore } from 'pinia'
2
+
3
+ /**
4
+ * 头寸预报查询筛选区状态 Store
5
+ *
6
+ * 只保存列表页筛选条件面板的展开/收起状态,避免和应用级配置混在一起。
7
+ */
8
+ export const usePositionFilterStore = defineStore(
9
+ 'positionFilter',
10
+ () => {
11
+ /** 人民币头寸预报及查询列表筛选条件是否展开,默认收起并持久化用户选择。 */
12
+ const rmbFilterExpanded = ref(false)
13
+
14
+ /** 外币头寸预报及查询列表筛选条件是否展开,默认收起并持久化用户选择。 */
15
+ const foreignFilterExpanded = ref(false)
16
+
17
+ function setRmbFilterExpanded(value: boolean) {
18
+ rmbFilterExpanded.value = value
19
+ }
20
+
21
+ function setForeignFilterExpanded(value: boolean) {
22
+ foreignFilterExpanded.value = value
23
+ }
24
+
25
+ return {
26
+ rmbFilterExpanded,
27
+ foreignFilterExpanded,
28
+ setRmbFilterExpanded,
29
+ setForeignFilterExpanded,
30
+ }
31
+ },
32
+ {
33
+ persist: {
34
+ key: 'mini2_position_filter_settings',
35
+ pick: ['rmbFilterExpanded', 'foreignFilterExpanded'],
36
+ },
37
+ },
38
+ )
@@ -6,6 +6,7 @@ import {
6
6
  type ForeignForecastRecord,
7
7
  } from '@/api/foreign-position'
8
8
  import { useAppStore } from '@/stores/app'
9
+ import { usePositionFilterStore } from '@/stores/position-filter'
9
10
  import {
10
11
  allForeignBusinessOption,
11
12
  allForeignStatusOption,
@@ -54,6 +55,7 @@ type SelectorOption = ForeignOption | ForeignStatusOption
54
55
 
55
56
  const router = useRouter()
56
57
  const appStore = useAppStore()
58
+ const positionFilterStore = usePositionFilterStore()
57
59
  const defaultTranDate = appStore.systemWorkDate
58
60
  const heroImage = `${import.meta.env.BASE_URL}images/12a73787-86a9-4891-a65f-66104746f6a8.png`
59
61
  const pageSize = 10
@@ -74,7 +76,8 @@ const showDatePicker = ref(false)
74
76
  const datePickerValue = ref(selectedDate.value.split('-'))
75
77
  const minDate = new Date(2020, 0, 1)
76
78
  const maxDate = new Date(2030, 11, 31)
77
- const isFilterExpanded = ref(true)
79
+ // 筛选区展开状态由 Pinia 持久化;首次进入无缓存时默认收起。
80
+ const isFilterExpanded = computed(() => positionFilterStore.foreignFilterExpanded)
78
81
 
79
82
  const forecastList = ref<Forecast[]>([])
80
83
  const forecastTotal = ref(0)
@@ -183,6 +186,10 @@ function scrollToTop() {
183
186
  })
184
187
  }
185
188
 
189
+ function toggleFilterExpanded() {
190
+ positionFilterStore.setForeignFilterExpanded(!isFilterExpanded.value)
191
+ }
192
+
186
193
  function openCreatePage() {
187
194
  router.push({
188
195
  name: 'ForeignPositionCreate',
@@ -417,7 +424,7 @@ function isPendingForecast(value: Partial<PendingForecast> | null): value is Pen
417
424
  class="filter-toggle"
418
425
  type="button"
419
426
  :aria-expanded="isFilterExpanded"
420
- @click="isFilterExpanded = !isFilterExpanded"
427
+ @click="toggleFilterExpanded"
421
428
  >
422
429
  <van-icon :name="isFilterExpanded ? 'arrow-up' : 'arrow-down'" />
423
430
  <span>{{ isFilterExpanded ? '收起' : '展开' }}</span>
@@ -6,6 +6,7 @@ import {
6
6
  type RmbForecastRecord,
7
7
  } from '@/api/rmb-position'
8
8
  import { useAppStore } from '@/stores/app'
9
+ import { usePositionFilterStore } from '@/stores/position-filter'
9
10
  import {
10
11
  forecastStatusMap,
11
12
  formatForecastAmount,
@@ -41,6 +42,7 @@ type PendingForecast = {
41
42
 
42
43
  const router = useRouter()
43
44
  const appStore = useAppStore()
45
+ const positionFilterStore = usePositionFilterStore()
44
46
  const defaultTranDate = appStore.systemWorkDate
45
47
  const heroImage = `${import.meta.env.BASE_URL}images/5798d7aa-ba8b-4605-8079-58b35495ac55.png`
46
48
  const pageSize = 10
@@ -58,7 +60,8 @@ const showDatePicker = ref(false)
58
60
  const datePickerValue = ref(selectedDate.value.split('-'))
59
61
  const minDate = new Date(2020, 0, 1)
60
62
  const maxDate = new Date(2030, 11, 31)
61
- const isFilterExpanded = ref(true)
63
+ // 筛选区展开状态由 Pinia 持久化;首次进入无缓存时默认收起。
64
+ const isFilterExpanded = computed(() => positionFilterStore.rmbFilterExpanded)
62
65
 
63
66
  const forecastList = ref<Forecast[]>([])
64
67
  const forecastTotal = ref(0)
@@ -135,6 +138,10 @@ function scrollToTop() {
135
138
  })
136
139
  }
137
140
 
141
+ function toggleFilterExpanded() {
142
+ positionFilterStore.setRmbFilterExpanded(!isFilterExpanded.value)
143
+ }
144
+
138
145
  function openCreatePage() {
139
146
  router.push({
140
147
  name: 'RmbPositionCreate',
@@ -311,7 +318,7 @@ function isPendingForecast(value: Partial<PendingForecast> | null): value is Pen
311
318
  class="filter-toggle"
312
319
  type="button"
313
320
  :aria-expanded="isFilterExpanded"
314
- @click="isFilterExpanded = !isFilterExpanded"
321
+ @click="toggleFilterExpanded"
315
322
  >
316
323
  <van-icon :name="isFilterExpanded ? 'arrow-up' : 'arrow-down'" />
317
324
  <span>{{ isFilterExpanded ? '收起' : '展开' }}</span>