21
This commit is contained in:
parent
8b5a404042
commit
b7efee66ad
|
|
@ -103,4 +103,24 @@ public class DanyeController : BusinessControllerBase
|
|||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清空单页内容
|
||||
/// </summary>
|
||||
/// <param name="id">单页ID</param>
|
||||
/// <returns>操作结果</returns>
|
||||
[HttpPut("{id}/clear-content")]
|
||||
[BusinessPermission("danye:edit")]
|
||||
public async Task<IActionResult> ClearContent(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _danyeService.ClearContentAsync(id);
|
||||
return result ? Ok("清空成功") : Error(BusinessErrorCodes.InternalError, "清空失败");
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,4 +35,11 @@ public interface IDanyeService
|
|||
/// <param name="request">图片优化请求</param>
|
||||
/// <returns>是否成功</returns>
|
||||
Task<bool> ToggleImageOptimizerAsync(int id, ImageOptimizerRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 清空单页内容
|
||||
/// </summary>
|
||||
/// <param name="id">单页ID</param>
|
||||
/// <returns>是否成功</returns>
|
||||
Task<bool> ClearContentAsync(int id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,3 +98,15 @@ export function toggleImageOptimizer(id: number, data: ImageOptimizerRequest): P
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空单页内容
|
||||
* @param id 单页ID
|
||||
* @returns 操作结果
|
||||
*/
|
||||
export function clearDanyeContent(id: number): Promise<ApiResponse<string>> {
|
||||
return request({
|
||||
url: `${DANYE_BASE_URL}/${id}/clear-content`,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,11 +27,14 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="100" align="center" fixed="right">
|
||||
<el-table-column label="操作" width="160" align="center" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link size="small" @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="warning" link size="small" @click="handleClear(row)">
|
||||
清空
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -51,6 +54,7 @@ defineProps<Props>()
|
|||
const emit = defineEmits<{
|
||||
(e: 'edit', row: DanyeResponse): void
|
||||
(e: 'toggle-optimizer', row: DanyeResponse, value: boolean): void
|
||||
(e: 'clear', row: DanyeResponse): void
|
||||
}>()
|
||||
|
||||
const handleEdit = (row: DanyeResponse) => {
|
||||
|
|
@ -60,6 +64,10 @@ const handleEdit = (row: DanyeResponse) => {
|
|||
const handleToggleOptimizer = (row: DanyeResponse, value: boolean) => {
|
||||
emit('toggle-optimizer', row, value)
|
||||
}
|
||||
|
||||
const handleClear = (row: DanyeResponse) => {
|
||||
emit('clear', row)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
:loading="loading"
|
||||
@edit="handleEdit"
|
||||
@toggle-optimizer="handleToggleOptimizer"
|
||||
@clear="handleClear"
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
|
|
@ -27,13 +28,14 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import DanyeTable from './components/DanyeTable.vue'
|
||||
import DanyeFormDialog from './components/DanyeFormDialog.vue'
|
||||
import {
|
||||
getDanyeList,
|
||||
getDanyeById,
|
||||
toggleImageOptimizer,
|
||||
clearDanyeContent,
|
||||
type DanyeResponse,
|
||||
type DanyeDetailResponse
|
||||
} from '@/api/business/danye'
|
||||
|
|
@ -88,6 +90,32 @@ const handleToggleOptimizer = async (row: DanyeResponse, value: boolean) => {
|
|||
}
|
||||
}
|
||||
|
||||
// 清空单页内容
|
||||
const handleClear = async (row: DanyeResponse) => {
|
||||
try {
|
||||
await ElMessageBox.confirm(
|
||||
`确定要清空「${row.title}」的内容吗?清空后可重新编辑。`,
|
||||
'清空确认',
|
||||
{
|
||||
confirmButtonText: '确定清空',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
)
|
||||
|
||||
loading.value = true
|
||||
await clearDanyeContent(row.id)
|
||||
ElMessage.success('内容已清空')
|
||||
fetchData()
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
ElMessage.error('清空失败')
|
||||
}
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
fetchData()
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user