fix: 修改使用不支持直接选择文件的浏览器时,Compare弹窗中获取文件列表的请求发起的时机

This commit is contained in:
Xu Zhimeng 2023-11-08 17:00:09 +08:00
parent 63969c8b2c
commit c91886a5e9

View File

@ -1,11 +1,12 @@
<template>
<custom-modal v-model="visible" :width="1200" title="File List">
<search-form :items="formItems" v-model="queryParam" @search="searchQuery"></search-form>
<search-form :items="formItems" v-model="queryParam" @search="handleSearch"></search-form>
<custom-table
rowKey="name"
:columns="columns"
:list="dataSource"
:loading="loading"
:pagination="ipagination"
:loading="isLoading"
:pagination="pagination"
:selectedRowKeys.sync="selectedRowKeys"
:selectionRows.sync="selectionRows"
:scroll="{ y: 440 }"
@ -20,7 +21,6 @@
<script>
import { getAction } from '@/api/manage'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ModalMixin from '@/mixins/ModalMixin'
const columns = [
@ -29,79 +29,98 @@ const columns = [
dataIndex: 'name',
width: '45%',
align: 'left',
ellipsis: true
ellipsis: true,
},
{
title: 'UpdateDate',
dataIndex: 'updateDate',
align: 'left'
align: 'left',
},
{
title: 'Size',
dataIndex: 'size',
align: 'left'
}
align: 'left',
},
]
const formItems = [
{
label: '',
type: 'a-input',
name: 'searchName',
name: 'name',
props: {
placeholder: 'search...'
}
}
placeholder: 'search...',
},
},
]
export default {
mixins: [ModalMixin, JeecgListMixin],
mixins: [ModalMixin],
data() {
this.columns = columns
this.formItems = formItems
return {
inited: false,
queryParam: {},
dataSource: [],
selectedRowKeys: [],
selectionRows: []
selectionRows: [],
pagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
const { current, pageSize } = this.pagination
return `Total ${total} items Page ${current} / ${Math.ceil(total / pageSize)}`
},
showQuickJumper: true,
showSizeChanger: true,
total: 0,
},
}
},
methods: {
beforeModalOpen() {
this.selectedRowKeys = []
},
loadData(arg) {
// 1
if (arg === 1) {
this.ipagination.current = 1
if(!this.inited) {
this.inited = true
this.getList()
}
this.onClearSelected()
const params = this.getQueryParams() //
const searchName = this.queryParam.searchName
params.name = searchName
this.loading = true
getAction('/spectrumFile/get', params)
.then(res => {
if (res.success) {
this.dataSource = res.result.records
this.dataSource.forEach((item, index) => {
item.id = index
})
if (res.result.total) {
this.ipagination.total = res.result.total
} else {
this.ipagination.total = 0
}
} else {
this.$message.warning(res.message)
}
})
.finally(() => {
this.loading = false
})
},
async getList() {
try {
this.isLoading = true
const params = {
...this.queryParam,
pageNo: this.pagination.current,
pageSize: this.pagination.pageSize,
}
const { success, result, message } = await getAction('/spectrumFile/get', params)
if (success) {
this.dataSource = result.records
this.pagination.total = result.total
} else {
this.$message.error(message)
}
} catch (error) {
console.error(error)
} finally {
this.isLoading = false
}
},
handleTableChange(pagination, filters, sorter) {
this.pagination = pagination
this.getList()
},
handleSearch() {
this.pagination.current = 1
this.getList()
},
async handleOk() {
if (!this.selectedRowKeys.length) {
this.$message.warn('Please Select A File to Compare')
@ -110,8 +129,8 @@ export default {
this.$emit('fileSelect', this.selectionRows[0].name)
this.visible = false
}
}
},
},
}
</script>