zoukankan      html  css  js  c++  java
  • vue+element-ui商城后台管理系统学习(day04)

    day04


    一. 商品管理-商品分类
    二. 商品管理-分类参数
    三. 自己写遇到的问题


    一. 商品管理-商品分类

    • 创建子分支
    • 创建good-cate路由

    1.1 获取数据

    • 调用API获取并保存

    1.2 根据数据渲染表格

    • 使用vue-table-with-tree-grid组件
    • 绑定data columns
      • 定义label, prop等属性

    1.3 添加分类功能

    • 显示对话框
    • 根据点击下拉菜单来判断要添加的分类等级是一级、二级、三级( 默认一级 )
    • 获取父级分类列表(type=2)
      • 级联选择器
    • 通过点击级联选择器改变pid和存放父级id的arr的length判断当前要添加的分类是那一个等级
    • 关闭对话框重置表单操作与级联选择器绑定的存放已选标签的key

    1.4 一些步骤

    • 确认按钮发送请求最后再做, 期间可以用表单与验证console.logvalidate结果和即将要发送的表单
    • 不要在点击确认的时候有重置操作, 重置操作交给dialog的@close进行

    1.5 部署到码云

    • 拉取全部远程分支
    git fetch --all
    git pull --all
    git branch -all # 查看
    
    • 一些常用命令
      在这里插入图片描述

    二. 商品管理-分类参数

    • 分动态参数与静态属性
    • 只允许选择三级分类才能修改

    2.1 编写UI结构

    • 用到breadcrumb, card, alert

    2.2 控制级联选择器的选择范围

    • 判断length是否为3不是则清空并且return

    2.4 编写主要内容

    • 点击tab来决定显示哪一模块

    • 判断级联选择器的length来使添加按钮是否被禁用

    • 注意:

      • 每次修改级联选择器和菜单的时候都应该重新获取数据
      • 要根据每次请求回来的是many还是only来存放渲染table渲染的东西
    • 注意动态与静态区分开

    • 动态与静态添加页面公用同一个对话框

    • 调用接口添加params

    • 添加修改属性对话框

    • 添加删除功能

      • 注意做完操作后刷新数据
    • 添加expand展开展示tag标签

      • 因为传过来的属性是一个字符串
      • 使用.split(’ ')来变成数组
      • 过程若是空字符串也会变成一个[’’]所以添加表达式判断, 若无值返回[]
    • tag标签新增部分

      • 添加按钮与文本框切换的效果

      • @keyUp.enter.native是按下回车

      • 出现问题: 不同行会公用同一个input

        • 解决:
          • 在把string转换为arr的过程中为scope.row添加inputVisibleinputValue属性
      • 点击按钮自动获得焦点

        • $nextTick()是重新渲染页面的时候执行回调的函数
        • v-if就是会使元素重新渲染的
        this.$nextTick(() => {
          this.$refs.saveTagInput.$refs.input.focus()
        })
        
      • 失去焦点判断值

        • 发送请求给服务器(join(' ')把数组变成字符串)
        handleInputConfirm () {
            // 判断是否为空
            if (row.inputValue.trim().length === 0) {
                row.inputValue = ''
                row.inputVisible = false
                // return 是因为判断已经为空不进行后续操作
                return
            }
        }
        
      • 删除标签调用函数

        • 调用splice删除数组指定项(需要传入index)
        • 把发送请求包装成函数,在handleinputConfirm中也换成该函数的调用
      • 小问题: 三级标签换成二级标签的时候数据并没有被清空

        • 解决方法:
          • 使接受many跟only的table的数据进行清空操作即可
      • 为静态属性也做展开展示标签的处理

    • 提交到码云

    三. 自己写遇到的问题

    3.1 发现elementUI已经更新了属性结构的table

    • 使用树形结构的懒加载

    支持树类型的数据的显示。当 row 中包含 children 字段时,被视为树形数据。渲染树形数据时,必须要指定 row-key。支持子节点数据异步加载。设置 Table 的 lazy 属性为 true 与加载函数 load 。通过指定 row 中的 hasChildren 字段来指定哪些行是包含子节点。childrenhasChildren 都可以通过 tree-props 配置。

    • 使用了tree的table使用type="index"会显示异常(不是正确的index)

    3.2 dialog

    • template只能放在根中不能被嵌套
    • cascader级联表
      • 默认不能选中父节点
      • 配置props: { checkStrictly: true }

    3.3 提交表单

    • 显示表单的时候如果要lazy-loade

      • <el-table :load=""></el-table>
        methods: {
            goodsLazyload (tree, treeNode, resolve) {
              setTimeout(() => {
                resolve(tree.children)
              }, 300)
            }
        }
        
    • 删除分类没有效果

    • tree-propshasChildren会影响不是lazeload的效果

    3.4 更换页码

    • :page-size="queryInfo.pagesize":current-page="queryInfo.pagenum"不是双向绑定
    • 在触发更换页面或者更炫一页数量的时候会传入newPage或者newSize的参数, 要赋值上

    3.5 cascader的高度问题

    • 在全局样式中添加
    .el-cascader-menu{
      height: 300px;
    }
    

    3.6 添加参数标签

    • 自动聚焦记得在$nextTick()后, 因为使用v-if渲染的
  • 相关阅读:
    如何用CSS实现中间自适应,两边定宽三栏布局
    [转]通过Spring Boot三分钟创建Spring Web项目
    [转]Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)
    [转]单元测试、集成测试、确认测试、系统测试、验收测试
    [转]maven全局配置文件settings.xml详解
    [转]解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
    [转]PO BO VO DTO POJO DAO概念及其作用(附转换图)
    [转]如何提升你的能力?给年轻程序员的几条建议
    从oracle导出数据成csv,将csv导入mongodb问题
    Windows下Mongodb启动问题
  • 原文地址:https://www.cnblogs.com/lezaizhu/p/13836157.html
Copyright © 2011-2022 走看看