入口文件:
main.js
// 导入富文本编辑器
import VueQuillEditor from 'vue-quill-editor'
// 导入富文本编辑器对应的样式
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
// 将富文本编辑器,注册为全局可用的组件
Vue.use(VueQuillEditor)
<!-- 富文本编辑器组件 -->
<quill-editor v-model="addForm.goods_introduce"></quill-editor>
<!-- 添加商品的按钮 -->
<el-button type="primary" class="btnAdd" @click="add"
>添加商品</el-button
data:
addForm: {
goods_name: '',
goods_price: 0,
goods_weight: 0,
goods_number: 0,
goods_cat: [],
// 图片的数组
pics: [],
// 商品的详情描述
goods_introduce: '',
// 商品的参数(数组),包含 `动态参数` 和 `静态属性`
attrs: [],
},
js
// 添加商品
add() {
this.$refs.addFormRef.validate(async (valid) => {
if (!valid) {
return this.$message.error('请填写必要的表单项!')
}
// 执行添加的业务逻辑
// 将this.addForm.goods_cat改为字符串类型
// lodash深拷贝 cloneDeep(obj)
const form = _.cloneDeep(this.addForm)
form.goods_cat = form.goods_cat.join(',')
// 处理动态参数
this.manyTabData.forEach((item) => {
const newInfo = {
attr_id: item.attr_id,
attr_value: item.attr_vals.join(' '),
}
this.addForm.attrs.push(newInfo)
})
// 处理静态属性
this.onlyTableData.forEach((item) => {
const newInfo = { attr_id: item.attr_id, attr_value: item.attr_vals }
this.addForm.attrs.push(newInfo)
})
form.attrs = this.addForm.attrs
console.log(form)
// 发起请求 - 添加商品
// 商品的名称,必须是唯一的
const { data: res } = await this.$http.post(`goods`, form)
if (res.meta.status !== 201) {
return this.$message.error('添加商品失败!')
}
this.$message.success('添加商品成功!')
this.$router.push(`/goods`)
})
},
css:
.btnAdd {
margin-top: 15px;
}