修改羊舍管理页面删除和导出功能

This commit is contained in:
wyt
2026-02-03 18:07:16 +08:00
parent c6f0910cc0
commit 3b196bbe2f
2 changed files with 100 additions and 11 deletions

View File

@@ -73,3 +73,43 @@ export function getSeatMap() {
method: 'get'
})
}
// 按组合条件删除单条匹配Controller的/deleteByCondition
export function deleteSheepfoldByCondition(data) {
return request({
url: '/sheepfold_management/sheepfold_management/deleteByCondition',
method: 'delete',
data: data // 需包含ranchId/sheepfoldNo/sheepfoldTypeId/sheepfoldNameController校验了sheepfoldName
})
}
// 批量按组合条件删除匹配Controller的/batchDeleteByCondition
export function batchDeleteSheepfoldByCondition(dataList) {
return request({
url: '/sheepfold_management/sheepfold_management/batchDeleteByCondition',
method: 'delete',
data: dataList
})
}
// 导出羊舍管理汇总列表(主表格数据)- 新增
export function exportSheepfoldSummary(query) {
return request({
url: '/sheepfold_management/sheepfold_management/exportSummary',
method: 'post',
params: query,
responseType: 'blob'
})
}
// 导出羊舍管理明细列表(原有)- 保留
export function exportSheepfold(query) {
return request({
url: '/sheepfold_management/sheepfold_management/export',
method: 'post',
params: query,
responseType: 'blob'
})
}

View File

@@ -43,7 +43,7 @@
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
@click="handleBatchDelete"
v-hasPermi="['sheepfold_management:sheepfold_management:remove']"
>删除</el-button>
</el-col>
@@ -272,7 +272,7 @@
</template>
<script setup name="Sheepfold_management">
import { listSheepfoldSummary, getSeatMap,listSheepfold_management, getSheepfold_management, delSheepfold_management, addSheepfold_management, updateSheepfold_management,checkSheepfoldNoExist } from "@/api/fileManagement/sheepfold_management"
import { deleteSheepfoldByCondition,batchDeleteSheepfoldByCondition, listSheepfoldSummary, getSeatMap,listSheepfold_management, getSheepfold_management, delSheepfold_management, addSheepfold_management, updateSheepfold_management,checkSheepfoldNoExist } from "@/api/fileManagement/sheepfold_management"
const { proxy } = getCurrentInstance()
const { bas_sheepfold_type, da_ranch } = proxy.useDict('bas_sheepfold_type', 'da_ranch')
@@ -393,10 +393,11 @@ function resetQuery() {
handleQuery()
}
// 选中事件:正确存储选中数据+更新禁用状态
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
ids.value = selection; // 存储所有选中的行数据(关键)
single.value = selection.length !== 1; // 单条选中判断(不影响批量)
multiple.value = selection.length === 0; // 批量按钮禁用逻辑:无选中则禁用
}
function handleAdd() {
@@ -487,21 +488,69 @@ function submitForm() {
})
}
// 单条删除方法(确保调用正确接口,无路径错误)
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除羊舍管理编号为"' + _ids + '"的数据项?').then(function() {
return delSheepfold_management(_ids)
const deleteData = {
ranchId: row.ranchId,
sheepfoldNo: row.sheepfoldNo,
sheepfoldTypeId: row.sheepfoldTypeId,
}
proxy.$modal.confirm(`是否确认删除【${row.sheepfoldName}】的数据?`).then(function() {
// 仅调用新的组合条件删除接口无其他DELETE请求
return deleteSheepfoldByCondition(deleteData)
}).then(() => {
getList()
loadSeatMap();
proxy.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch((err) => {
proxy.$modal.msgError(err.msg || "删除失败")
})
}
// 批量删除核心方法(完整逻辑)
function handleBatchDelete() {
// 1. 校验:是否选中数据
if (ids.value.length === 0) {
proxy.$modal.msgWarning("请选择要删除的羊舍数据!");
return;
}
// 2. 组装批量删除参数(每行取核心字段)
const deleteList = ids.value.map(row => ({
ranchId: row.ranchId,
sheepfoldNo: row.sheepfoldNo,
sheepfoldTypeId: row.sheepfoldTypeId,
sheepfoldName: row.sheepfoldName // 若后端已移除该字段校验,可删除
}));
// 3. 确认删除+调用批量接口
proxy.$modal.confirm(
`是否确认删除选中的${ids.value.length}条羊舍数据?删除后不可恢复!`,
"警告",
{
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning"
}
).then(() => {
// 调用批量删除接口
return batchDeleteSheepfoldByCondition(deleteList);
}).then((response) => {
// 4. 成功处理:刷新列表+提示
proxy.$modal.msgSuccess(response.msg || "批量删除成功");
getList(); // 刷新表格数据
loadSeatMap(); // 刷新座位图(可选)
}).catch((err) => {
// 5. 失败处理:提示错误
proxy.$modal.msgError(err.msg || "批量删除失败");
});
}
function handleExport() {
proxy.download('sheepfold_management/sheepfold_management/export', {
// 修改为调用汇总导出接口
proxy.download('sheepfold_management/sheepfold_management/exportSummary', {
...queryParams.value
}, `sheepfold_management_${new Date().getTime()}.xlsx`)
}, `羊舍管理汇总数据_${new Date().getTime()}.xlsx`)
}
const loadSeatMap = () => {