目录
gitee仓库地址:
大家根据上传历史进行查找你需要的代码
业务需求
完成下图的静态页面搭建
当用户点击这下图这两个按钮的时候都会进行页面的切换,切换成上图中的样子
那么我们就需要给这两个按钮绑定相应的事件
三级分类的数据没有选择的情况,添加SPU按钮是不能使用的,只有三级分类选择了,才能使用
1.解决问题
解决点击添加或修改按钮切换到新的页面的问题
以及上图中的按钮是否可用的问题
在views/product/Spu/index.vue中:
修改的时候是需要传参数的,用参数才能确定修改的是谁
效果:
点击添加或修改按钮可以实现切换下图中的页面
并且解决了按钮随着三级分类是否有值而是否可用的问题
2.静态页面搭建
在views/product/Spu/SpuForm/index.vue中:
<template>
<div>
<!-- label-width="80px"好处el-form-item会继承80px,也就是标题的宽度 -->
<el-form ref="form" label-width="80px">
<el-form-item label="SPU名称">
<el-input placeholder="SPU名称"></el-input>
</el-form-item>
<el-form-item label="品牌">
<el-select placeholder="请选择品牌" value="">
<el-option label="label" value="value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="SPU描述">
<el-input type="textarea" placeholder="请选择品牌" rows="4"></el-input>
</el-form-item>
<!-- 照片墙 -->
<el-form-item label="SPU图片">
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
</el-form-item>
<el-form-item label="销售属性">
<el-select placeholder="还有3未选择" value="">
<el-option label="label" value="value"></el-option>
</el-select>
<el-button type="primary" icon="el-icon-plus">添加销售属性</el-button>
</el-form-item>
<el-table style="width: 100%" border>
<el-table-column type="index" label="序号" width="80px" align="center">
</el-table-column>
<el-table-column prop="prop" label="属性名" width="width">
</el-table-column>
<el-table-column prop="prop" label="属性值名称列表" width="width">
</el-table-column>
<el-table-column prop="prop" label="操作" width="width">
</el-table-column>
</el-table>
<el-form-item>
<el-button type="primary">保存</el-button>
<el-button>取消</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
dialogImageUrl: '',
dialogVisible: false,
}
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
}
}
};
</script>
<style lang="scss" scoped></style>
效果实现: