zoukankan      html  css  js  c++  java
  • 前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(十一)商品列表管理页面

    功能分析

    页面效果

    接口定义

     

    代码goods/List.vue

    <template>
      <div>
        <el-breadcrumb separator-class="el-icon-arrow-right">
          <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
          <el-breadcrumb-item>商品管理</el-breadcrumb-item>
          <el-breadcrumb-item>商品列表</el-breadcrumb-item>
        </el-breadcrumb>
    
        <el-card>
          <el-row :gutter="20">
            <el-col :span="8">
              <el-input
                placeholder="请输入内容"
                clearable
                v-model="queryInfo.query"
                @clear="getGoodsList"
              >
                <el-button
                  slot="append"
                  icon="el-icon-search"
                  @click="handleCurrentChange(1);getGoodsList;"
                ></el-button>
              </el-input>
            </el-col>
            <el-col :span="4">
              <el-button type="primary" @click="goAddPage">添加商品</el-button>
            </el-col>
          </el-row>
    
          <el-table :data="goodslist" stripe border style=" 100%">
            <el-table-column type="index"> </el-table-column>
            <el-table-column prop="goods_name" label="商品名称"></el-table-column>
            <el-table-column
              prop="goods_price"
              label="商品价格(元)"
              width="95px"
            ></el-table-column>
            <el-table-column
              prop="goods_weight"
              label="商品重量"
              width="70px"
            ></el-table-column>
            <el-table-column prop="add_time" label="创建时间" width="170px">
              <template v-slot="scope">
                {{ scope.row.add_time | dateFormat }}
              </template>
            </el-table-column>
            <el-table-column label="操作" width="130px">
              <template v-slot="scope">
                <el-button
                  size="mini"
                  type="primary"
                  icon="el-icon-edit"
                ></el-button>
                <el-button
                  size="mini"
                  type="warning"
                  icon="el-icon-delete"
                  @click="removeById(scope.row.goods_id)"
                ></el-button>
              </template>
            </el-table-column>
          </el-table>
    
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="queryInfo.pagenum"
            :page-sizes="[10, 20, 50]"
            :page-size="queryInfo.pagesize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
            background
          >
          </el-pagination>
        </el-card>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          queryInfo: {
            query: "",
            pagenum: 1,
            pagesize: 10
          },
          goodslist: [],
          total: 0
        };
      },
      methods: {
        async getGoodsList() {
          const { data } = await this.$http.get("goods", {
            params: this.queryInfo
          });
          if (data.meta.status !== 200) {
            return this.$message.error(data.meta.msg);
          }
          this.goodslist = data.data.goods;
          this.total = data.data.total;
        },
        handleSizeChange(newSize) {
          this.queryInfo.pagesize = newSize;
          this.getGoodsList();
        },
        handleCurrentChange(newPage) {
          this.queryInfo.pagenum = newPage;
          this.getGoodsList();
        },
        removeById(id) {
          this.$confirm("此操作将永久删除该商品, 是否继续?", "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          })
            .then(async () => {
              const { data } = await this.$http.delete(`goods/${id}`);
              if (data.meta.status !== 200) {
                return this.$message.error(data.meta.msg);
              }
              this.getGoodsList();
              this.$message({
                type: "success",
                message: "删除成功!"
              });
            })
            .catch(() => {
              this.$message({
                type: "info",
                message: "已取消删除"
              });
            });
        },
        goAddPage() {
          this.$router.push("goods/add");
        }
      },
      created() {
        this.getGoodsList();
      }
    };
    </script>
    
    <style lang="less" scoped></style>
  • 相关阅读:
    bloom filter
    Crowdsourcing(众包)
    瘦客户端
    如何书写高效的工作邮件:给你十条建议
    JSON
    MATLAB实现频数直方图——hist的使用
    Matlab中给figure添加图例(legend),标题(title)和颜色(color)
    数字信号处理中各种频率关系
    论文的写作要求、流程与写作技巧
    中继器、集线器(HUB)、网桥、交换机、路由器比较
  • 原文地址:https://www.cnblogs.com/xiewenyu/p/13108435.html
Copyright © 2011-2022 走看看