今天主要任务:完成添加商品页【终于完成】--小吴后台管理系统
页面主要内容:
1.整个大板块是有个form表单包含着的,所以每个小版块的表单元素要包含在el-form-item中
2.完成【商品参数】--小版块
实现:当标签页的index为1时,发送获取动态数据,并存储,小版块内容主要是由el-form-item包含着的,动态参数,获取对应参数数据,动态循环生成el-form-item和复选框,复选框是用到复选框组进行包裹着的,里面循环生成复选框
3.完成【商品属性】--小版块
实现:当标签页的index为2时,发送获取静态数据请求,并存储,动态循环数据生成el-from-item,里面包含el-input,再v-model绑定循环数据中的对应数据
4.完成【商品图片】--小版块
(1)页面布局:就使用element-ui的上传el-upload组件即可,外面不用el-form-item包裹着,因为他不是表单内容内容项,:action是图片上传到的API接口,要是完整的http地址,如果在组件中写,麻烦,可以在数据中定义变量来进行存取数据,再绑定到该属性即可,ps:具体属性请查看官网文档
(2)注意:el-upload该组件内部内部封装了请求方式,也就是上传图片的时候,页面上像是上传成功了,但是在实际的控制台中查看是请求失败的,因为没有用到本地的axios请求,所有我们使用上传组件时,要使用到该组件自己封装的请求方式,添加:headers属性,添加上请求头,即可真正的上传成功,上传到服务器中,ps:具体el-upload使用请看官网使用
(3)上传图片成功后回调上传成功函数,将对应图片的地址存储起来,方便后面发起添加商品,因为该数据在后续添加商品请求中会使用到,上传图片生成后回调函数:on-success,回调是个函数,有个参数是response,里面返回的都是上传成功后的该图片的信息,取出数据分解存储,把分解出来的路径push到实现定义好的数组中,方便后面使用,ps:具体使用看官文文档
(4)点击删除图片后,在原存储图片的数组中,删除对应图片,使用:on-remove,绑定函数,当删除某张图片后,会返回对应图片的信息,定义变量存储起来,在利用findIndex()函数,判断获取回来的图片路径和存取图片路径的数组比对,返回对应数组的下标,后利用splic(),删除对应下标,ps:属性对应使用查看官方文档
(5)点击图片后会有预览图片效果,使用:on-preview,绑定一个函数,这是点击图片执行的操作,当点击图片后,返回当前图片的信息,将当前返回的图片url存储到完整的变量中,弹出的是对话框,对话框里面存放着img,img路径是要完整的服务器图片地址,所有存储的路径地址也是要完整的,img的路径动态绑定到另存的变量,后再调整样式,即可点击图片,有图片预览效果
5.完成【商品内容】--小版块
使用到的组件:vue-quill-editor
具体使用地址:github.com/surmon-chin…
使用:在main.js中全局导入,并注册,在对应使用的地方调用组件,跟对应变量进行绑定,进行存储
6.完成【添加商品】--功能
执行过程和思路:1.点击按钮,进行整个表单的验证,如果没有填写则提示用户-->2.填写都正确后,要记性对象深拷贝【因为某对象已经被使用了,再次复用时,会改变数据类型,就是将原本数据再原封不动的复制一份】,lodash深拷贝一份对应对象数据,再对存取分类id数组进行字符串的格式化,存储到原数组中;循环商品参数和商品属性数组,将对应id和值存取到对应变量中,后期请求数据要使用到,将被拷贝的数据复制到深拷贝的对象中-->3.开始发送添加商品请求,如果没有添加成功,则提示用户,添加成功则提示用户添加成功,并进行路由跳转,跳回到商品列表页,商品列表页会自动刷新页面数据
【添加商品功能完成】
【添加商品页面完成】