首先是展示页面,商品分类中包含个了多个级别的分类管理,所以我们需要对级别进行区分,首先分析表结构,其中的parentId就是对于我们表结构的划分,一级表的parentId为0,然后二级表的parentId就是其父级的主键,三级表则是同二级表;所以在展示页面中需要设置查询条件,让parentId等于0传递给后台进行查询数据,这样让页面上的数据都是一级分类的数据,之后还要对模板名称进行查询,这里模板表的数据给查询出来,然后通过模板表主键对比templateId,找到与其对应的模板名称,通过插值表达式,将函数的返回值插入页面表格中;接下来就是两个开关的操作,是否展示和是否导航;这里通过粘贴elemenUI组件,把样式放入页面展示表格中,绑定当前列的是否展示或是否导航的数据;通过这个组件的回调函数,就是当我们修改这个开关的时候,就会执行的函数;把当前行的id以及是否展示或是否展示的数据传递;函数中,我们通过ajax将数据传递到后台,后台接收到数据后,需要做的操作是修改,使用mapper接口的等值修改方法根据id修改数据;今天课堂中提到了在这个回调函数中,执行完毕后调用查询所有的方法是可有可无的,这个是因为,我们的前端页面先进行了修改,之后才去后台修改的数据库,所以说这里可以不必再去数据库查询。
其次就是下级页面的查询,这里就需要在我们的页面展示表格中添加两个text类型的按钮,首先是查询下级,这里需要在点击按钮时执行函数,因为我们在查询第一级页面是,让这个parentId默认为0,这个时候就需要让这个parentId等于当前行的id,然后watch监听到query发生改变,便会重新去数据库查询,此时的查询条件已经发生变化,所以点击查询下级时,时根据当前行id作为parentId去数据库查询,是属于这行分类的子级分类;之后因为需要让用户清晰的看到当前处于哪一级别,需要在页面展示表格中的当前级别;这时需要在数据模型中顶一个数组,让数据默认只有一个数据0,我们根据数组的长度来进行判断当前级别,每次点击下一级别时,数组中边加入当前行的id,数组的长度发生改变,级别同时也发生了改变;这个时候要知道,当我们点击到最后一个级别时,就不需要展示查看下级和添加下级,这里呢可以通过v-if去判断,只有当数组长度小于最后级别时才展示;以及返回上级,当点击返回上级按钮时,需要将数组中的末尾的元素进行删除,数组的长度就会发生改变,也就可以回到上一层的级别;所以呢这里也需要通过v-for进行判断,只有当处于二三级别是才会出现返回上级的按钮;页面的展示就可以了
紧接着时添加操作,首先时画出添加的form样式;添加操作分为当前级别添加以及下级添加;我们同一个函数,传入不同的参数,来添加到不同的级别,当我们需要添加当前层时只需要传入当前级别的parentId,当需要下级添加时,需要传递的参数时当前行的id;然后作为form提交的parentId;传递给后台完成我们当前级别添加以及下级添加的操作;
修改呢,我们可以根据主键进行直接修改,对于界别没有影响。
删除操作的业务逻辑呢,昨天我们使用的时删除当前级别,会连带这删除其子级别的数据,今天呢我们用另外一种逻辑,如果当前级别下的子级别存在数据,就需要提示用户次分类下存在子级数据,无法删除,这里呢我们在后台进行查询技术,查询出存在数据时,我们需要抛出异常,提示用户删除失败,需要删除其子级数据才能将其删除;前端把提示语句展示给用户;
还有今天讲了一下相册管理的操作;让用户可以对项目中存在的图片进行操作;我们对于相册管理表构建基础的增删改查页面,首先是对相册的管理,在service层的添加中,默认让图片数据为一个[],当我们前端使用JSON转换时,会编程一个空数组,我们按照数组的长度展示给相册管理的图片数量,之后在行内设置按钮,跳转进入图片管理,我们传入当前行的id,根据当前行的id查询出属于此相册的图片列表;然后遍历,通过布局组件和图片展示组件相互结合,遍历出我们的相册内的全部图片;