Skip to content

Commit 5e89860

Browse files
committed
fix: bug fix
1 parent a19878a commit 5e89860

File tree

6 files changed

+71
-46
lines changed

6 files changed

+71
-46
lines changed

frontend/src/components/StdDataDisplay/StdCurd.vue

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ const props = defineProps({
5151
exportCsv: {
5252
type: Boolean,
5353
default: false
54+
},
55+
modalWidth: {
56+
type: Number,
57+
default: 600
5458
}
5559
})
5660
@@ -131,13 +135,13 @@ function edit(id: any) {
131135
</template>
132136

133137
<std-table
134-
ref="table"
135-
v-bind="props"
136-
@clickEdit="edit"
137-
@selected="onSelect"
138-
:key="update"
139-
:get_params="get_params"
140-
:exportCsv="exportCsv"
138+
ref="table"
139+
v-bind="props"
140+
@clickEdit="edit"
141+
@selected="onSelect"
142+
:key="update"
143+
:get_params="get_params"
144+
:exportCsv="exportCsv"
141145
>
142146
<template v-slot:actions="slotProps">
143147
<slot name="actions" :actions="slotProps.record"/>
@@ -146,22 +150,22 @@ function edit(id: any) {
146150
</a-card>
147151

148152
<a-modal
149-
class="std-curd-edit-modal"
150-
:mask="false"
151-
:title="data.id ? $gettext('Modify') : $gettext('Add')"
152-
:visible="visible"
153-
:cancel-text="$gettext('Cancel')"
154-
:ok-text="$gettext('OK')"
155-
@cancel="cancel"
156-
@ok="ok"
157-
:width="600"
158-
destroyOnClose
153+
class="std-curd-edit-modal"
154+
:mask="false"
155+
:title="data.id ? $gettext('Modify') : $gettext('Add')"
156+
:visible="visible"
157+
:cancel-text="$gettext('Cancel')"
158+
:ok-text="$gettext('OK')"
159+
@cancel="cancel"
160+
@ok="ok"
161+
:width="modalWidth"
162+
destroyOnClose
159163
>
160164
<std-data-entry
161-
ref="std_data_entry"
162-
:data-list="editableColumns()"
163-
v-model:data-source="data"
164-
:error="error"
165+
ref="std_data_entry"
166+
:data-list="editableColumns()"
167+
v-model:data-source="data"
168+
:error="error"
165169
/>
166170
<slot name="edit" :data="data"/>
167171
</a-modal>

frontend/src/components/StdDataDisplay/StdPagination.vue

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ function changePage(num: number) {
1111
</script>
1212

1313
<template>
14-
<div v-if="pagination.total>pagination.per_page">
14+
<div class="pagination-container" v-if="pagination.total>pagination.per_page">
1515
<a-pagination
1616
:current="pagination.current_page"
1717
:pageSize="pagination.per_page"
1818
:size="size"
1919
:total="pagination.total"
20-
class="pagination"
2120
@change="changePage"
2221
/>
2322
</div>
@@ -32,12 +31,12 @@ function changePage(num: number) {
3231
</style>
3332

3433
<style lang="less" scoped>
35-
.pagination {
34+
.pagination-container {
3635
padding: 10px 0 0 0;
37-
float: right;
36+
display: flex;
37+
justify-content: right;
3838
@media (max-width: 450px) {
39-
float: unset;
40-
text-align: center;
39+
justify-content: center;
4140
}
4241
}
4342
</style>

frontend/src/components/StdDataDisplay/StdTable.vue

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ import {computed, onMounted, reactive, ref, watch} from 'vue'
66
import {useRoute, useRouter} from 'vue-router'
77
import {message} from 'ant-design-vue'
88
import {downloadCsv} from '@/lib/helper'
9+
import dayjs from 'dayjs'
910
1011
const {$gettext, interpolate} = gettext
1112
12-
const emit = defineEmits(['onSelected', 'onSelectedRecord', 'clickEdit'])
13+
const emit = defineEmits(['onSelected', 'onSelectedRecord', 'clickEdit', 'update:selectedRowKeys'])
1314
1415
const props = defineProps({
1516
api: Object,
@@ -66,6 +67,11 @@ const props = defineProps({
6667
exportCsv: {
6768
type: Boolean,
6869
default: false
70+
},
71+
size: String,
72+
selectedRowKeys: {
73+
type: Array,
74+
default: []
6975
}
7076
})
7177
@@ -83,7 +89,14 @@ const params = reactive({
8389
...props.get_params
8490
})
8591
86-
const selectedRowKeys = ref([])
92+
const selectedRowKeysBuffer = computed({
93+
get() {
94+
return props?.selectedRowKeys ?? []
95+
},
96+
set(v) {
97+
emit('update:selectedRowKeys', v)
98+
}
99+
})
87100
88101
const searchColumns = getSearchColumns()
89102
const pithyColumns = getPithyColumns()
@@ -170,8 +183,13 @@ function checked(c: any) {
170183
}
171184
172185
function onSelectChange(_selectedRowKeys: any) {
173-
selectedRowKeys.value = _selectedRowKeys
174-
emit('onSelected', selectedRowKeys.value)
186+
const n: any = [..._selectedRowKeys]
187+
const t = [...selectedRowKeysBuffer.value].concat(n)
188+
189+
const set = new Set(t)
190+
selectedRowKeysBuffer.value = Array.from(set)
191+
192+
emit('onSelected', selectedRowKeysBuffer.value)
175193
}
176194
177195
function onSelect(record: any) {
@@ -201,7 +219,7 @@ watch(params, () => {
201219
const rowSelection = computed(() => {
202220
if (props.selectionType) {
203221
return {
204-
selectedRowKeys: selectedRowKeys, onChange: onSelectChange,
222+
selectedRowKeys: selectedRowKeysBuffer, onChange: onSelectChange,
205223
onSelect: onSelect, type: props.selectionType
206224
}
207225
} else {
@@ -263,25 +281,26 @@ async function export_csv() {
263281
dataSource = dataSource.concat(...response[props.data_key])
264282
}
265283
}).catch((e: any) => {
266-
message.error(e.message ?? '系统错误')
284+
message.error(e.message ?? $gettext('Server error'))
285+
hasMore = false
286+
return
267287
})
268288
page += 1
269289
}
270290
const data: any[] = []
271291
dataSource.forEach((row: Object) => {
272292
let obj: any = {}
273293
headerKeys.forEach(key => {
274-
console.log(row, key)
275294
let data = fn(row, key)
276295
const c = showColumnsMap[key]
277-
console.log(c)
278296
data = c?.customRender?.({text: data}) ?? data
279297
obj[c.dataIndex] = data
280298
})
281299
data.push(obj)
282300
})
283-
console.log(header, data)
284-
downloadCsv(header, data, '测试.csv')
301+
302+
downloadCsv(header, data,
303+
`${$gettext('Export')}-${dayjs().format('YYYYMMDDHHmmss')}.csv`)
285304
}
286305
</script>
287306

@@ -295,11 +314,11 @@ async function export_csv() {
295314
>
296315
<template #action>
297316
<a-space class="reset-btn">
298-
<a-button @click="export_csv" type="primary" ghost>
299-
<translate>Export</translate>
317+
<a-button v-if="exportCsv" @click="export_csv" type="primary" ghost>
318+
{{ $gettext('Export') }}
300319
</a-button>
301320
<a-button @click="reset_search">
302-
<translate>Reset</translate>
321+
{{ $gettext('Reset') }}
303322
</a-button>
304323
</a-space>
305324
</template>
@@ -313,6 +332,7 @@ async function export_csv() {
313332
:rowSelection="rowSelection"
314333
@change="stdChange"
315334
:scroll="{ x: scrollX }"
335+
:size="size"
316336
>
317337
<template
318338
v-slot:bodyCell="{text, record, index, column}"
@@ -335,7 +355,7 @@ async function export_csv() {
335355
</template>
336356
</template>
337357
</a-table>
338-
<std-pagination :pagination="pagination" @changePage="get_list"/>
358+
<std-pagination :size="size" :pagination="pagination" @changePage="get_list"/>
339359
</div>
340360
</template>
341361

frontend/src/components/StdDataEntry/compontents/StdSelector.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<script setup lang="ts">
22
import {onMounted, reactive, ref, watch} from 'vue'
33
import StdTable from '@/components/StdDataDisplay/StdTable.vue'
4+
import gettext from '@/gettext'
45
6+
const {$gettext} = gettext
57
const props = defineProps(['selectedKey', 'value', 'recordValueIndex',
68
'selectionType', 'api', 'columns', 'data_key',
79
'disable_search', 'get_params', 'description'])
@@ -70,9 +72,9 @@ watch(props, () => {
7072
<a-modal
7173
:mask="false"
7274
:visible="visible"
73-
cancel-text="取消"
74-
ok-text="选择"
75-
title="选择器"
75+
:cancel-text="$gettext('Cancel')"
76+
:ok-text="$gettext('Ok')"
77+
:title="$gettext('Selector')"
7678
@cancel="visible=false"
7779
@ok="ok()"
7880
:width="800"

frontend/src/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"1.6.0","build_id":47,"total_build":117}
1+
{"version":"1.6.0","build_id":49,"total_build":119}

frontend/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"1.6.0","build_id":47,"total_build":117}
1+
{"version":"1.6.0","build_id":49,"total_build":119}

0 commit comments

Comments
 (0)