|
1 | 1 | <template> |
2 | | - <v-container> |
| 2 | + <v-container class="statements-container"> |
3 | 3 | <v-fade-transition> |
4 | 4 | <div |
5 | 5 | v-if="isLoading" |
|
89 | 89 | </v-alert> |
90 | 90 | </div> |
91 | 91 | </template> |
92 | | - <div> |
93 | | - <v-data-table |
94 | | - class="statement-list" |
95 | | - :headers="headerStatements" |
96 | | - :items="statementsList" |
97 | | - :no-data-text="$t('noStatementsList')" |
98 | | - :server-items-length="totalStatementsCount" |
99 | | - :options.sync="tableDataOptions" |
100 | | - :custom-sort="customSortActive" |
101 | | - :loading="isDataLoading" |
102 | | - loading-text="loading text" |
103 | | - :footer-props="{ itemsPerPageOptions: [5, 10, 15, 20] }" |
| 92 | + |
| 93 | + <v-data-table |
| 94 | + :headers="headerStatements" |
| 95 | + :items="statementsList" |
| 96 | + :no-data-text="$t('noStatementsList')" |
| 97 | + :server-items-length="totalStatementsCount" |
| 98 | + :options.sync="tableDataOptions" |
| 99 | + :custom-sort="customSortActive" |
| 100 | + :loading="isDataLoading" |
| 101 | + loading-text="loading text" |
| 102 | + :footer-props="{ itemsPerPageOptions: [5, 10, 15, 20] }" |
| 103 | + > |
| 104 | + <template #loading> |
| 105 | + Loading... |
| 106 | + </template> |
| 107 | + <template #[`item.dateRange`]="{ item }"> |
| 108 | + <div class="font-weight-bold"> |
| 109 | + <span>{{ formatDateRange(item.fromDate, item.toDate) }}</span> |
| 110 | + </div> |
| 111 | + <div> |
| 112 | + <span |
| 113 | + v-if="isStatementNew(item)" |
| 114 | + class="label mr-2 mb-2 px-2 d-inline-block" |
| 115 | + >NEW</span> |
| 116 | + <span |
| 117 | + v-if="isStatementOverdue(item)" |
| 118 | + class="label overdue mr-2 mb-2 px-2 d-inline-block" |
| 119 | + >OVERDUE</span> |
| 120 | + </div> |
| 121 | + </template> |
| 122 | + <template #[`item.statementTotal`]="{ item }"> |
| 123 | + <div class="font-weight-bold"> |
| 124 | + <span>{{ formatAmount(item.statementTotal) }}</span> |
| 125 | + </div> |
| 126 | + </template> |
| 127 | + <template |
| 128 | + v-if="hasEFTPaymentMethod" |
| 129 | + #[`item.frequency`]="{ item }" |
104 | 130 | > |
105 | | - <template #loading> |
106 | | - Loading... |
107 | | - </template> |
108 | | - <template #[`item.dateRange`]="{ item }"> |
109 | | - <div class="font-weight-bold"> |
110 | | - <span>{{ formatDateRange(item.fromDate, item.toDate) }}</span> |
111 | | - <span |
112 | | - v-if="isStatementNew(item)" |
113 | | - class="label ml-2 px-2 d-inline-block" |
114 | | - >NEW</span> |
115 | | - <span |
116 | | - v-if="isStatementOverdue(item)" |
117 | | - class="label overdue ml-2 px-2 d-inline-block" |
118 | | - >OVERDUE</span> |
119 | | - </div> |
120 | | - </template> |
121 | | - <template |
122 | | - v-if="hasEFTPaymentMethod" |
123 | | - #[`item.frequency`]="{ item }" |
124 | | - > |
125 | | - <div> |
126 | | - <span>{{ frequencyDisplay(item) }}</span> |
127 | | - </div> |
128 | | - </template> |
129 | | - <template |
130 | | - v-if="hasEFTPaymentMethod" |
131 | | - #[`item.paymentMethods`]="{ item }" |
132 | | - > |
133 | | - <div> |
134 | | - <span>{{ paymentMethodsDisplay(item.paymentMethods) }}</span> |
135 | | - </div> |
136 | | - </template> |
137 | | - <template |
138 | | - #[`item.statementNumber`]="{ item }" |
139 | | - > |
140 | | - <div> |
141 | | - <span>{{ item.id }}</span> |
142 | | - </div> |
143 | | - </template> |
144 | | - <template #[`item.action`]="{ item }"> |
145 | | - <div> |
146 | | - <v-btn |
147 | | - text |
148 | | - color="primary" |
149 | | - class="mr-1" |
150 | | - aria-label="Download CSV" |
151 | | - title="Download statement as a CSV file" |
152 | | - :data-test="getIndexedTag('csv-button', item.id)" |
153 | | - @click="downloadStatement(item, 'CSV')" |
154 | | - > |
155 | | - <v-icon class="ml-n2"> |
156 | | - mdi-file-table-outline |
157 | | - </v-icon> |
158 | | - <span class="ml-n1 font-weight-bold">CSV</span> |
159 | | - </v-btn> |
160 | | - <v-btn |
161 | | - text |
162 | | - color="primary" |
163 | | - aria-label="Download PDF" |
164 | | - title="Download statement as a PDF file" |
165 | | - :data-test="getIndexedTag('pdf-button', item.id)" |
166 | | - @click="downloadStatement(item, 'PDF')" |
167 | | - > |
168 | | - <v-icon class="ml-n2"> |
169 | | - mdi-file-pdf-outline |
170 | | - </v-icon> |
171 | | - <span class="ml-n1 font-weight-bold">PDF</span> |
172 | | - </v-btn> |
173 | | - </div> |
174 | | - </template> |
175 | | - </v-data-table> |
176 | | - </div> |
| 131 | + <div> |
| 132 | + <span>{{ frequencyDisplay(item) }}</span> |
| 133 | + </div> |
| 134 | + </template> |
| 135 | + <template |
| 136 | + #[`item.statementNumber`]="{ item }" |
| 137 | + > |
| 138 | + <div> |
| 139 | + <span>{{ item.id }}</span> |
| 140 | + </div> |
| 141 | + </template> |
| 142 | + <template |
| 143 | + #[`item.paymentMethods`]="{ item }" |
| 144 | + > |
| 145 | + <div> |
| 146 | + <span>{{ paymentMethodsDisplay(item.paymentMethods) }}</span> |
| 147 | + </div> |
| 148 | + </template> |
| 149 | + <template #[`item.action`]="{ item }"> |
| 150 | + <div> |
| 151 | + <v-btn |
| 152 | + text |
| 153 | + color="primary" |
| 154 | + class="mr-1" |
| 155 | + aria-label="Download CSV" |
| 156 | + title="Download statement as a CSV file" |
| 157 | + :data-test="getIndexedTag('csv-button', item.id)" |
| 158 | + @click="downloadStatement(item, 'CSV')" |
| 159 | + > |
| 160 | + <v-icon class="ml-n2"> |
| 161 | + mdi-file-table-outline |
| 162 | + </v-icon> |
| 163 | + <span class="ml-n1 font-weight-bold">CSV</span> |
| 164 | + </v-btn> |
| 165 | + <v-btn |
| 166 | + text |
| 167 | + color="primary" |
| 168 | + aria-label="Download PDF" |
| 169 | + title="Download statement as a PDF file" |
| 170 | + :data-test="getIndexedTag('pdf-button', item.id)" |
| 171 | + @click="downloadStatement(item, 'PDF')" |
| 172 | + > |
| 173 | + <v-icon class="ml-n2"> |
| 174 | + mdi-file-pdf-outline |
| 175 | + </v-icon> |
| 176 | + <span class="ml-n1 font-weight-bold">PDF</span> |
| 177 | + </v-btn> |
| 178 | + </div> |
| 179 | + </template> |
| 180 | + </v-data-table> |
177 | 181 | <StatementsSettings |
178 | 182 | ref="statementSettingsModal" |
179 | 183 | /> |
@@ -232,30 +236,50 @@ export default defineComponent({ |
232 | 236 | text: 'Date', |
233 | 237 | align: 'left', |
234 | 238 | sortable: false, |
235 | | - value: 'dateRange' |
| 239 | + value: 'dateRange', |
| 240 | + maxWidth: '200', |
| 241 | + width: '200' |
| 242 | + }, |
| 243 | + { |
| 244 | + text: 'Statement Total', |
| 245 | + align: 'right', |
| 246 | + sortable: false, |
| 247 | + value: 'statementTotal', |
| 248 | + maxWidth: '150', |
| 249 | + width: '150' |
236 | 250 | }, |
237 | 251 | { |
238 | 252 | text: 'Frequency', |
239 | 253 | align: 'left', |
240 | 254 | sortable: false, |
241 | | - value: 'frequency' |
| 255 | + value: 'frequency', |
| 256 | + maxWidth: '100', |
| 257 | + width: '100' |
242 | 258 | }, |
243 | 259 | { |
244 | | - text: 'Statement Number', |
| 260 | + text: 'Statement #', |
245 | 261 | align: 'left', |
246 | 262 | sortable: false, |
247 | | - value: 'statementNumber' |
| 263 | + value: 'statementNumber', |
| 264 | + maxWidth: '110', |
| 265 | + width: '110' |
| 266 | + }, |
| 267 | + { text: 'Payment Type', |
| 268 | + align: 'left', |
| 269 | + sortable: false, |
| 270 | + value: 'paymentMethods', |
| 271 | + maxWidth: '200', |
| 272 | + width: '200' |
248 | 273 | }, |
249 | 274 | { |
250 | 275 | text: 'Downloads', |
251 | | - align: 'right', |
| 276 | + align: 'left', |
252 | 277 | sortable: false, |
253 | | - value: 'action' |
| 278 | + value: 'action', |
| 279 | + maxWidth: '200', |
| 280 | + width: '200' |
254 | 281 | } |
255 | 282 | ] |
256 | | - if (state.hasEFTPaymentMethod) { |
257 | | - headers.splice(2, 0, { text: 'Payment Methods', align: 'left', sortable: false, value: 'paymentMethods' }) |
258 | | - } |
259 | 283 | return headers |
260 | 284 | }), |
261 | 285 | nextStatementDate: computed<string>(() => { |
@@ -539,4 +563,9 @@ export default defineComponent({ |
539 | 563 | color: $gray7; |
540 | 564 | font-size: 12px; |
541 | 565 | } |
| 566 | +
|
| 567 | +.statements-container { |
| 568 | + overflow: hidden; |
| 569 | +} |
| 570 | +
|
542 | 571 | </style> |
0 commit comments