电商后台管理系统day04-分类参数
商品参数用于显示商品的固定的特征信息,可以通过电商平台详情页面直观地看到
一、通过路由的形式,展现商品分类页面
二、完成商品分类的基本页面结构
1、面包屑导航栏
2、卡片视图区域
①警告框
②级联选择器
通过选中分类id数组来判断选中分类是否为三级分类,如果选中分类数组长度不为3,则不是三级分类,清空选中分类id数组,如果选中分类id数组长度为3,则是三级分类,调用接口获取分类数据列表
③tabs标签页
(1)通过判断选中分类id数组的长度来决定添加按钮是否禁用 选中三级分类是时按钮启用
(2)通过页签激活名称“only”和“many”来判断获取的是静态参数还是动态参数
③展开列
(1)参数项attr_vals以字符串的形式存在,需要把字符串转换成以空格分割的数组
(2)解决参数联动问题
每一个分类参数都应该用一个独立的文本输入框来接收输入内容和控制输入框的显示与隐藏,把inputVisible和inputValue添加作为参数属性来进行使用
三、代码
<template>
<div>
<!-- 面包屑导航区域 -->
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/welcome' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>商品管理</el-breadcrumb-item>
<el-breadcrumb-item>参数列表</el-breadcrumb-item>
</el-breadcrumb>
<!-- 卡片视图区域 -->
<el-card>
<!-- 警告框 -->
<el-alert show-icon title="注意:只允许为第三级分类设置相关参数!" type="warning"> </el-alert>
<!-- 级联选择器 -->
<el-row class="cat_opt">
<el-col>
<span>选择商品分类: </span>
<el-cascader v-model="seleteKeys" :options="cateList" :props="cascaderProps" @change="handleChange" clearable></el-cascader>
</el-col>
</el-row>
<!-- tabs标签页 -->
<el-tabs v-model="activeName" @tab-click="handleClick">
<!-- 动态参数面板 -->
<el-tab-pane label="动态参数" name="many">
<!-- 添加参数按钮 -->
<el-button type="primary" :disabled="isBtnDisabled" @click="addParamsDialogVisible = true">添加参数</el-button>
<!-- 参数表格 -->
<el-table :data="manyTableData" border>
<!-- 展开列 -->
<el-table-column type="expand">
<template slot-scope="scope">
<el-tag closable v-for="(item, index) in scope.row.attr_vals" :key="index" @close="handleClose(index, scope.row)">{
{
item }}</el-tag>
<!-- 输入框 -->
<el-input class="input-new-tag" v-if="scope.row.inputVisible" v-model="scope.row.inputValue" ref="saveTageInput" size="small" @keyup.enter.native="handleInputConfirm(scope.row)" @blur="handleInputConfirm(scope.row)"> </el-input>
<!-- 按钮 -->
<el-button v-else class="button-new-tag" size="small" @click="showInput(scope.row)">+ New Tag</el-button>
</template>
</el-table-column>
<!-- 索引列 -->
<el-table-column type="index" label="#"> </el-table-column>
<!-- 参数名称列 -->
<el-table-column prop="attr_name" label="参数名称"> </el-table-column>
<!-- 操作列 -->
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-edit" size="mini" @click=