AppBox实战: 如何实现一对多表单的增删改查 (3)

AppBox实战: 如何实现一对多表单的增删改查

五、实现修改与删除功能 5.1 修改RequirementService服务实现删除方法 public async Task Delete(Entities.Requirement req) { //TODO:判断状态,已发放物资的不能删除 using var conn = await DataStore.Default.OpenConnectionAsync(); using var txn = conn.BeginTransaction(); //先删除子表记录 var deleteItems = new SqlDeleteCommand<Entities.RequireItem>(); deleteItems.Where(t => t.ReqId == req.Id); await DataStore.Default.ExecCommandAsync(deleteItems, txn); //再删除主表记录 await DataStore.Default.DeleteAsync(req, txn); //递交事务 txn.Commit(); } 5.2 修改RequireList视图 5.2.1 模版 <!-- 省略 --> <el-button @click="onEdit" type="primary" icon="fas fa-edit fa-fw">修改</el-button> <el-button @click="onDelete" type="primary" icon="fas fa-trash fa-fw">删除</el-button> <!-- 省略 --> <el-table :data="items" v-loading="loading" @current-change="onCurrentChanged" border stripe highlight-current-row readonly> 5.2.2 脚本 //----省略---- export default class RequireList extends Vue { //----省略---- currentRow = null //----省略---- onCurrentChanged(row) { this.currentRow = row } onEdit() { if (!this.currentRow) { this.$message.warning("请先选择记录") return } this.loadItems(this.currentRow) this.current = this.currentRow this.dlgVisible = true } onDelete() { if (!this.currentRow) { this.$message.warning("请先选择记录") return } this.$confirm('确认删除选择的记录吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { dns.Services.RequirementService.Delete(this.currentRow).then(res => { this.$message.success("删除成功"); }).catch(err => { this.$message.error("删除失败: " + err) }) }).catch(() => { }) } //----省略---- 5.2.3 预览

AppBox实战: 如何实现一对多表单的增删改查

六、本篇小结

  作者上篇提到实现独立的不依赖内置存储的版本,本篇示例即是基于此版本,下一步重点是针对此版本的测试与Bug修复。另一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzffsf.html