feat(table): 添加批量同步功能并优化界面图标- 在菜单栏新增“批量同步”按钮,支持一键同步所有未同步表单
-优化多个图标标签的闭合格式,去除多余空格 - 调整部分按钮图标与文字间距样式 - 完善数据源SQL配置、默认排序和搜索按钮的布局结构- 修复部分标签未正确闭合的问题- 统一导入语句及变量解构格式,提升代码可读性- 增加批量同步逻辑,包括查询未同步表单及并发同步处理 - 提供无须同步时的消息提示功能
This commit is contained in:
@@ -86,6 +86,17 @@
|
|||||||
<Icon :size="14" icon="hugeicons:java"/>
|
<Icon :size="14" icon="hugeicons:java"/>
|
||||||
<span class="ml-3px!">JAVA增强</span>
|
<span class="ml-3px!">JAVA增强</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!-- 批量同步 -->
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:size="size"
|
||||||
|
@click="handleBatchSync"
|
||||||
|
v-hasPermi="['jeelowcode:dbform:sync']"
|
||||||
|
>
|
||||||
|
<Icon :size="14" icon="simple-icons:oracle"/>
|
||||||
|
<span class="ml-3px!">批量同步</span>
|
||||||
|
</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template #menu="{ size, row }">
|
<template #menu="{ size, row }">
|
||||||
<div class="flex justify-center flex-items-center">
|
<div class="flex justify-center flex-items-center">
|
||||||
@@ -190,7 +201,8 @@
|
|||||||
@click="openDataOrigin"
|
@click="openDataOrigin"
|
||||||
:disabled="!tableForm.dataOrigin"
|
:disabled="!tableForm.dataOrigin"
|
||||||
>
|
>
|
||||||
<Icon :size="14" icon="lucide:text-search"></Icon> <span>数据源SQL配置</span>
|
<Icon :size="14" icon="lucide:text-search"></Icon>
|
||||||
|
<span>数据源SQL配置</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -211,10 +223,12 @@
|
|||||||
<span>表格扩展配置</span>
|
<span>表格扩展配置</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="sortPopup = true">
|
<el-button @click="sortPopup = true">
|
||||||
<Icon :size="14" icon="mdi:sort"></Icon> <span>默认排序</span>
|
<Icon :size="14" icon="mdi:sort"></Icon>
|
||||||
|
<span>默认排序</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="searchPopup = true">
|
<el-button @click="searchPopup = true">
|
||||||
<Icon :size="14" icon="lucide:text-search"></Icon> <span>默认搜索</span>
|
<Icon :size="14" icon="lucide:text-search"></Icon>
|
||||||
|
<span>默认搜索</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -417,7 +431,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="copySampleStr(key)"
|
@click="copySampleStr(key)"
|
||||||
>点击复制</el-button
|
>点击复制
|
||||||
|
</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1524,7 +1539,8 @@ const searchChange = (params, done) => {
|
|||||||
|
|
||||||
/** 清空按钮操作 */
|
/** 清空按钮操作 */
|
||||||
const resetChange = () => {
|
const resetChange = () => {
|
||||||
searchChange({}, () => {})
|
searchChange({}, () => {
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const sizeChange = (pageSize) => {
|
const sizeChange = (pageSize) => {
|
||||||
@@ -1738,13 +1754,35 @@ const rowDel = async (form) => {
|
|||||||
message.success(t('common.delSuccess'))
|
message.success(t('common.delSuccess'))
|
||||||
// 刷新列表
|
// 刷新列表
|
||||||
await getTableData()
|
await getTableData()
|
||||||
} catch {}
|
} catch {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const beforeUnload = (event) => {
|
const beforeUnload = (event) => {
|
||||||
if (isUnload.value) return (event.returnValue = '您确定要关闭页面吗?')
|
if (isUnload.value) return (event.returnValue = '您确定要关闭页面吗?')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 批量同步 **/
|
||||||
|
const handleBatchSync = async () => {
|
||||||
|
// 首先需要查询有没有需要同步的表单,如果没有则提示消息并结束,如果有则打开弹窗
|
||||||
|
let searchObj = {
|
||||||
|
isDbSync: 'N',
|
||||||
|
pageNo: tablePage.value.currentPage,
|
||||||
|
pageSize: -1
|
||||||
|
}
|
||||||
|
const data = await TableApi.getDbList(searchObj)
|
||||||
|
if (data?.records?.length > 0) {
|
||||||
|
// 将data.records取出来,每个记录的id作为row.id,并且发起普通同步
|
||||||
|
const promises = data.records.map((row) => TableApi.asyncDbData(row.id, 'default'))
|
||||||
|
await Promise.all(promises).catch(() => message.alert('同步失败'))
|
||||||
|
// 刷新列表
|
||||||
|
getTableData()
|
||||||
|
} else {
|
||||||
|
// 没有需要同步的表单,提示信息并结束方法
|
||||||
|
message.info('没有需要同步的表单')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
window.addEventListener('beforeunload', beforeUnload)
|
window.addEventListener('beforeunload', beforeUnload)
|
||||||
|
|||||||
Reference in New Issue
Block a user