|
@@ -3,9 +3,6 @@
|
|
|
|
|
|
<!-- 搜索工作栏 -->
|
|
<!-- 搜索工作栏 -->
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
- <el-form-item label="分类编号" prop="categoryId">
|
|
|
|
- <el-input v-model="queryParams.categoryId" placeholder="请输入分类编号" clearable @keyup.enter.native="handleQuery"/>
|
|
|
|
- </el-form-item>
|
|
|
|
<el-form-item label="品牌名称" prop="name">
|
|
<el-form-item label="品牌名称" prop="name">
|
|
<el-input v-model="queryParams.name" placeholder="请输入品牌名称" clearable @keyup.enter.native="handleQuery"/>
|
|
<el-input v-model="queryParams.name" placeholder="请输入品牌名称" clearable @keyup.enter.native="handleQuery"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -43,10 +40,13 @@
|
|
|
|
|
|
<!-- 列表 -->
|
|
<!-- 列表 -->
|
|
<el-table v-loading="loading" :data="list">
|
|
<el-table v-loading="loading" :data="list">
|
|
- <el-table-column label="品牌编号" align="center" prop="id"/>
|
|
|
|
- <el-table-column label="分类编号" align="center" prop="categoryId"/>
|
|
|
|
|
|
+ <el-table-column label="商品分类" align="center" prop="categoryId"/>
|
|
<el-table-column label="品牌名称" align="center" prop="name"/>
|
|
<el-table-column label="品牌名称" align="center" prop="name"/>
|
|
- <el-table-column label="品牌图片" align="center" prop="bannerUrl"/>
|
|
|
|
|
|
+ <el-table-column label="品牌图片" align="center" prop="bannerUrl">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <img v-if="scope.row.bannerUrl" :src="scope.row.bannerUrl" alt="分类图片" class="img-height"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column label="品牌排序" align="center" prop="sort"/>
|
|
<el-table-column label="品牌排序" align="center" prop="sort"/>
|
|
<el-table-column label="品牌描述" align="center" prop="description"/>
|
|
<el-table-column label="品牌描述" align="center" prop="description"/>
|
|
<el-table-column label="状态" align="center" prop="status">
|
|
<el-table-column label="状态" align="center" prop="status">
|
|
@@ -77,8 +77,9 @@
|
|
<!-- 对话框(添加 / 修改) -->
|
|
<!-- 对话框(添加 / 修改) -->
|
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
- <el-form-item label="分类编号" prop="categoryId">
|
|
|
|
- <el-input v-model="form.categoryId" placeholder="请输入分类编号"/>
|
|
|
|
|
|
+ <el-form-item label="商品分类" prop="categoryId">
|
|
|
|
+ <Treeselect v-model="form.categoryId" :options="categoryOptions" :normalizer="normalizer" :show-count="true"
|
|
|
|
+ placeholder="请选择商品分类"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="品牌名称" prop="name">
|
|
<el-form-item label="品牌名称" prop="name">
|
|
<el-input v-model="form.name" placeholder="请输入品牌名称"/>
|
|
<el-input v-model="form.name" placeholder="请输入品牌名称"/>
|
|
@@ -93,10 +94,11 @@
|
|
<el-input v-model="form.description" type="textarea" placeholder="请输入内容"/>
|
|
<el-input v-model="form.description" type="textarea" placeholder="请输入内容"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="状态" prop="status">
|
|
<el-form-item label="状态" prop="status">
|
|
- <el-select v-model="form.status" placeholder="请选择状态">
|
|
|
|
- <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
|
|
|
|
- :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"/>
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <el-radio-group v-model="form.status">
|
|
|
|
+ <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
|
|
|
|
+ :key="dict.value" :label="parseInt(dict.value)">{{ dict.label }}
|
|
|
|
+ </el-radio>
|
|
|
|
+ </el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -116,12 +118,15 @@ import {
|
|
getBrandPage,
|
|
getBrandPage,
|
|
updateBrand
|
|
updateBrand
|
|
} from "@/api/mall/product/brand";
|
|
} from "@/api/mall/product/brand";
|
|
|
|
+import {listCategory} from "@/api/mall/product/category";
|
|
import ImageUpload from '@/components/ImageUpload';
|
|
import ImageUpload from '@/components/ImageUpload';
|
|
|
|
+import Treeselect from "@riophae/vue-treeselect";
|
|
|
|
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "Brand",
|
|
name: "Brand",
|
|
components: {
|
|
components: {
|
|
- ImageUpload,
|
|
|
|
|
|
+ ImageUpload, Treeselect,
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
@@ -148,6 +153,8 @@ export default {
|
|
name: null,
|
|
name: null,
|
|
status: null,
|
|
status: null,
|
|
},
|
|
},
|
|
|
|
+ // 商品分类树选项
|
|
|
|
+ categoryOptions: [],
|
|
// 表单参数
|
|
// 表单参数
|
|
form: {},
|
|
form: {},
|
|
// 表单校验
|
|
// 表单校验
|
|
@@ -160,6 +167,7 @@ export default {
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
|
|
+ this.getTreeselect();
|
|
this.getList();
|
|
this.getList();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -176,6 +184,26 @@ export default {
|
|
this.loading = false;
|
|
this.loading = false;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ /** 转换菜单数据结构 */
|
|
|
|
+ normalizer(node) {
|
|
|
|
+ if (node.children && !node.children.length) {
|
|
|
|
+ delete node.children;
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ id: node.id,
|
|
|
|
+ label: node.name,
|
|
|
|
+ children: node.children
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ /** 查询分类下拉树结构 */
|
|
|
|
+ getTreeselect() {
|
|
|
|
+ listCategory().then(response => {
|
|
|
|
+ this.categoryOptions = [];
|
|
|
|
+ const menu = {id: 0, name: '商品分类', children: []};
|
|
|
|
+ menu.children = this.handleTree(response.data, "id", "pid");
|
|
|
|
+ this.categoryOptions.push(menu);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
/** 取消按钮 */
|
|
/** 取消按钮 */
|
|
cancel() {
|
|
cancel() {
|
|
this.open = false;
|
|
this.open = false;
|
|
@@ -208,12 +236,14 @@ export default {
|
|
/** 新增按钮操作 */
|
|
/** 新增按钮操作 */
|
|
handleAdd() {
|
|
handleAdd() {
|
|
this.reset();
|
|
this.reset();
|
|
|
|
+ this.getTreeselect();
|
|
this.open = true;
|
|
this.open = true;
|
|
this.title = "添加品牌";
|
|
this.title = "添加品牌";
|
|
},
|
|
},
|
|
/** 修改按钮操作 */
|
|
/** 修改按钮操作 */
|
|
handleUpdate(row) {
|
|
handleUpdate(row) {
|
|
this.reset();
|
|
this.reset();
|
|
|
|
+ this.getTreeselect();
|
|
const id = row.id;
|
|
const id = row.id;
|
|
getBrand(id).then(response => {
|
|
getBrand(id).then(response => {
|
|
this.form = response.data;
|
|
this.form = response.data;
|
|
@@ -275,3 +305,10 @@ export default {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+//
|
|
|
|
+.img-height {
|
|
|
|
+ height: 150px;
|
|
|
|
+}
|
|
|
|
+</style>
|