项目需求:增加订单的完成开关(swith)

11 篇文章 0 订阅

一、引言

在之前的项目中,需要增加一个swith开关来表明此订单是否已下单,主要怕遗忘了,因此增加一个开关可以展示。

项目实际效果

二、前端部分

1.html部分

</el-table-column>
        <el-table-column
              label="是否下单"
              align="center"
              width="80">
          <template slot-scope="scope">
            <el-switch
              v-model="scope.row.complete"
              active-color="#13ce66"
              inactive-color="#B9B9B9"
              @change="changeEnabledSwitch(scope.row, scope.$index)"/>
          </template>
</el-table-column>

2.js部分

   感谢网友指出,已修正更新失败的逻辑

   // 是否下单的开关
    changeEnabledSwitch (row, index) {
      var _this = this
      this.$axios.post('designNotice/updateComplete', {'id': row.id, 'complete': row.complete}).then(function (res) {
        if (res.data.data === true) {
          _this.$message({
            type: 'success',
            message: '更新成功!'
          })
        } else {
          _this.$message({
            type: 'error',
            message: '更新失败!'
          })
          // 更新失败后,状态为false
          _this.designNoticelist[index].complete = !_this.designNoticelist[index].complete
        }
      })
    }

二、后端部分

通知单表的扩展:1、增complete列;2、新建一个一对一的表。

通过项目的分析最终我选择了1,增加complete列,增加列对其他业务无影响且业务逻辑简明。

1、sql,默认0为开关未打开状态,1为开关开启状态

alter table notice add complete int default '0';

2、修改Notice实体类,增加属性complete

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Notice {
    private int id;
    private int mark;
    private String note;
    //工单是否已下单,0为未,1为已
    private boolean complete;
    @TableField("createDate")
    private LocalDate createDate;
    @TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    private int cid;
    @TableField(exist = false)
    private Customer customer;
    @TableField(exist = false)
    private Price priceInfo;
}

3、控制器

@ApiOperation(value="更新是否下单开关")
@PostMapping("/updateComplete")
@ResponseBody
public Result<Boolean> updateComplete(@RequestBody Map<String, Object> map) {
    if (map.get("id") == null || map.get("complete") == null){
        return Result.failure(501, "非法参数idORcomplete");
    } else {
        return Result.defaultSuccess(noticeService.updateComplete((int)map.get("id"),(boolean)map.get("complete")));
    }
}

4、业务代码

@Override
public Boolean updateComplete(int id, boolean complete) {
    //查出id所在的通知单信息
    Notice notice = noticeMapper.selectById(id);
    if (notice == null) {
        return false;
    }
    //设置通知单的complete属性
    notice.setComplete(complete);
    int update = noticeMapper.updateById(notice);
    return update > 0? true : false;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值