#星计划 手把手带你理解前端代码篇之列表篇 原创

前端歌谣
发布于 2023-12-18 13:02
浏览
0收藏

前言

大家好 我是歌谣 首先我们日常开发中会遇到各式各样的项目 有些技术栈都是大家不会的
特别对于别人已经写好的项目 我们要做的就是不要慌 不要慌

第一步 调整心态不要慌

不要慌是前提

第二步 安装依赖

安装依赖 看看项目所涉及的技术栈package.json

element2+vue2+avue

第三步 找出相似页面开始开发

page-header-tool

开始逐行开发 这个组件已经说过了 其中的所有属性 在变量data中国声明好
modBtns和max即可

    <page-header-tool title="销售订单" :btns="modBtns" :max="2">
    </page-header-tool>

此时页面的上沿就显示出来了

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

咱们继续进行avue-crud

 <avue-crud
      class="avue-affixed avue-new-table"
      ref="crud"
      :option="tableOption"
      :table-loading="listLoading"
      :data="tableData"
    >
    </avue-crud>
    <!-- 
        :page.sync="page"
      :data="tableData"
        @current-change="currentChange"
      @size-change="sizeChange"
      @selection-change="selectionChange"
      @search-change="searchChange"
      @filter-change="filterChange" -->

对于注释的部分的方法 我们先不添加 先看看非注释区域有什么作用

tableOption

tableOption是从外部引入的变量 直接模仿着创建一个同名的目录

import { tableOption } from "./const/options";

接着页面的表头和搜索就出现了

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

tableData

接着就是渲染表格的数据tableData数据的获取一般从created出发

created() {
    this.loadingList();
  },

继续找方法loadingList

   loadingList(typeCode) {
      this.page.currentPage = 1;
      this.getList();
    },

这个时候就可以加一个变量了page

继续找方法getList

  getList() {
      this.listLoading = true;
      const params = deepClone(this.searchCondition);
      fetchMesMaterialMasterList({
        current: this.page.currentPage,
        size: this.page.pageSize,
        ...params,
      })
        .then((response) => {
          this.tableData = response.data.data.records;
          this.page.total = response.data.data.total;
        })
        .finally(() => {
          this.listLoading = false;
        });
    },

1添加变量listLoading
2添加变量searchCondition
3引入deepClone方法

import { deepClone} from '@/util/util';

4创建文件 调用方法 引入这边代码先做注释 可以不注释后面再研究

import {fetchMesMaterialMasterList} from './api/index';

这样页面就又数据了

继续加条件

1page的变量加进去

页面又分页了

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

currentChange

@current-change="currentChange"
 currentChange(val) {
      this.page.page = val;
      this.page.currentPage = val;
      this.getList();
    },

sizeChange页面条数变化

 sizeChange(val) {
      this.page.limit = val;
      this.page.pageSize = val;
      this.getList();
    },

searchChange搜索条件变化

 async searchChange(form, done) {
      this.searchCondition = form;
      console.log(form);
      await this.getList();
      done();
    },

filter-change

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

继续加方法

 @selection-change="selectionChange"
 selectionChange(val) {
      this.selectionData = val;
    },

加变量 selectionData

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

继续添加组件

<template slot-scope="scope" slot="menu">
        <table-column-btns :btns="tableBtns" :scope="scope"></table-column-btns>
      </template>

添加按钮数据

   tableBtns: [
        {
          name: '查看',
          // icon: 'icon-search_line',
          click: this.handleLook
        },
        {
          name: '编辑',
          // icon: 'icon-edit_line',
          click: this.handleUpdate
        },
        // {
        //   name: '删除',
        //   // icon: 'icon-clear_line',
        //   click: this.handleDelete
        // }
      ],

运行结果

#星计划 手把手带你理解前端代码篇之列表篇-鸿蒙开发者社区

综上关于列表页面的功能就已经全部熟悉完毕了

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
收藏
回复
举报
回复
    相关推荐