一、引言
在之前的專案中,需要增加一個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)"/> </template></el-table-column>
2.js部分 // 是否下單的開關 changeEnabledSwitch (row) { var _this = this this.$axios.post('designNotice/updateComplete', {'id': row.id, 'complete': row.complete}).then(function (res) { if (res.data.success === true) { _this.$message({ type: 'success', message: '更新成功!' }) } }) }
二、後端部分
notice表的擴充套件:1、增complete列;2、新建一個一對一的表。
透過專案的分析最終我選擇了1,增加complete列,增加列對其他業務無影響且業務邏輯簡明。
1、sql修改表notice,預設0為開關未開啟狀態,1為開關開啟狀態alter table notice add complete int default '0';
2、修改Notice實體類,增加屬性complete@Data@NoArgsConstructor@AllArgsConstructorpublic 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")@ResponseBodypublic 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、業務程式碼@Overridepublic Boolean updateComplete(int id, boolean complete) { //查出id所在的通知單資訊 Notice notice = noticeMapper.selectById(id); if (notice == null) { return false; } //設定通知單的complete屬性 notice.setComplete(complete); noticeMapper.updateById(notice); return true;}
最新評論