• 寻找写代码感觉(十五)之 删除功能的开发


    写在前面

    也不知道怎么了,脑神经(太阳穴位置)特别疼,眯了一会,这会好多了,接着续上代码的感觉,就如同下午和一个粉丝说的一样。

    先沉下心来吧 方向有了 然后就是执行力的事了

    所以呢,还是想把想做的事先做了,冉柔坚持下去,这样未来自己也不会后悔。

    不知道,这算不算自己的优点呢,哈哈哈,厚脸皮的说。

    删除功能的拆解

    可能有的同学会好奇,说六哥,你怎么现在总提任务拆解呢?

    因为做需求的话,肯定是要会功能拆分,也许未来要临时客串下产品经理也说不定呢,是不是,哈哈哈。

    删除功能可以拆分为如下:

    • 后端增加删除接口
    • 前端点击删除按钮时调用后端删除接口
    • 删除时需要有一个确认框

    删除功能的实现

    1、后端增加删除接口

    也就是在controller中增加一个接口方便调用,在service中实现,示例代码如下:

    
     /**
         * 删除功能
         *
         * @param id
         * @return
         */
        @DeleteMapping("/delete/{id}")
        public CommonResp delete(@PathVariable long id) {
            CommonResp resp = new CommonResp<>();
            eBookService.delete(id);
            return resp;
        }
    
     /**
         * 删除操作
         *
         * @param id
         */
        public void delete(long id){
            eBookMapper.deleteByPrimaryKey(id);
        }
    
    

    2、前端调用删除方法并弹出对话框提示

    因为是前端部分,所以我把后面两条拆解整合了到一起实现。

    两步走,第一步,使用Popconfirm 气泡确认框。第二步,在按钮处写方法调用删除方法,示例代码如下:

    
         <a-popconfirm
           title="删除后无法恢复,确认删除吗?"
           ok-text="确认"
           cancel-text="取消"
           @confirm="confirm"
         >
          <a-button type="danger" @click="handleDelete(record.id)">
            删除
          </a-button>
       </a-popconfirm>
    
       /**
         * 删除
         * @param id
         */
        const handleDelete = (id: number) => {
          axios.delete("/ebook/delete/"+id).then(response => {
            const data = response.data;
            if (data.success) {
              //重新加载列表
              handleQuery({
                page: 1,
                size: pagination.value.pageSize,
              });
            }
          })
        }
    
        const confirm = (e: MouseEvent) => {
          console.log(e);
          message.success('删除成功!');
        };
    

    编译查看结果

    写在最后

    可能是我自己有点强迫症吧,就是在查看结果的时候,总喜欢放动态图片。

    但对我而言,就涉及两块内容了,要先录制视频,然后,再将视频转换为动图,但图片超过帧数后,图片就无法显示,扎心了。

    这时候,我就需要处理图片帧数及大小问题,真的很头疼,但是好处就是,自己也摸索出了,一些处理问题的方法,细想想,其实也很有意思。

  • 相关阅读:
    centos7.7环境下编译安装tengine2.3.2版本
    centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl
    django在centos生产环境的部署
    django入门8之xadmin引入富文本和excel插件
    jenkins服务器使用python脚本rabbitmqadmin和shell对目标服务器进行管理
    django入门7之django template和xadmin常用技巧
    mysql5.7同步复制报错1060故障处理
    Centos7.6使用yum安装PHP7.2
    django中安全sql注入等
    django入门6引入验证码插件 django-simple-captcha
  • 原文地址:https://www.cnblogs.com/longronglang/p/15863624.html
Copyright © 2020-2023  润新知