前端学习之vue+element-ui电商项目(九)订单管理

发布时间:2024-01-22 09:30

文章目录

  • 0. 准备工作
  • 1.界面样式
    • 1.1 界面布局
    • 1.2 导航区
  • 2.订单数据列表
    • 2.1 界面样式
    • 2.2 数据添加
    • 2.3 方法实现
  • 3.分页区
    • 3.1 界面样式
    • 3.2 数据添加
    • 3.3 方法实现
  • 4.修改地址的对话框
    • 4.1 界面样式
    • 4.2 数据添加
    • 4.3 方法实现
  • 5.展示物流进度的对话框
    • 5.1 界面样式
    • 5.2 数据添加
  • 6.搜索与添加
    • 6.1 界面样式
    • 6.2 数据添加
    • 6.3 方法实现
  • 7.搜索与添加
    • 7.1 界面样式
    • 7.2 数据添加
    • 7.3 方法实现

0. 准备工作

component下新建文件夹order下新建文件Order.vue,并在路由中引入文件
因为数据库中少了些文件,所以要自己导入。
1 )citydata.js
2 ) db.js
3 ) wuliudb.json

PS:这些文件太长,我就不放了。

1.界面样式

1.1 界面布局

前端学习之vue+element-ui电商项目(九)订单管理_第1张图片

1.2 导航区

<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>

2.订单数据列表

2.1 界面样式

<el-row>
        <el-col :span="8">
          <el-input placeholder="请输入内容">
            <el-button slot="append" icon="el-icon-search">el-button>
          el-input>
        el-col>
      el-row>

      
      <el-table :data="orderList" border stripe>
        <el-table-column type="index">el-table-column>
        <el-table-column label="订单编号" prop="order_number">el-table-column>
        <el-table-column label="订单价格" prop="order_price">el-table-column>
        <el-table-column label="是否付款" prop="pay_status">
          <template slot-scope="scope">
            <el-tag type="success" v-if="scope.pay_status === 1">已付款el-tag>
            <el-tag type="danger" v-else>未付款el-tag>
          template>
        el-table-column>

        <el-table-column label="是否发货" prop="is_send">el-table-column>
        <el-table-column label="下单时间" prop="create_time">
          <template slot-scope="scope">
             {{ scope.row.create_time | dateFormat }}
          template>
        el-table-column>

        <el-table-column label="操作">
          <template>
            <el-button
              icon="el-icon-edit"
              size="mini"
              type="primary"
              @click="showBox"
            >el-button>
            <el-button
              icon="el-icon-location"
              size="mini"
              type="success"
              @click="showProgressBox"
            >el-button>
          template>
        el-table-column>
      el-table>

2.2 数据添加

 queryInfo: {
        query: '',
        pagenum: 1,
        pagesize: 10
      },
    
      orderList: [],

2.3 方法实现


async getOrderList () {
      const { data: result } = await this.$http.get('orders', {
        params: this.queryInfo
      })
      if (result.meta.status !== 200) {
        return this.$message.error('获取订单列表失败')
      }
      this.total = result.total
      this.orderList = result.data.goods
    },
    
showBox () {
      this.addressVisible = true
    },

showProgressBox () {
      this.progressInfo = this.db
      this.progressVisible = true
    }

3.分页区

3.1 界面样式

<el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="queryInfo.pagenum"
      :page-sizes="[5, 10, 15]"
      :page-size="queryInfo.pagesize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total"
      background
    >el-pagination>

3.2 数据添加

  total: 0,

3.3 方法实现



handleSizeChange (newSize) {
      this.queryInfo.pagesize = newSize
      this.getOrderList()
    },

    handleCurrentChange (newPage) {
      this.queryInfo.pagenum = newPage
      this.getOrderList()
    },

4.修改地址的对话框

4.1 界面样式

<el-dialog
      title="修改地址"
      :visible.sync="addressVisible"
      width="50%"
      @close="addressDialogClosed"
    >

    
    <el-form
      :model="addressForm"
      :rules="addressFormRules"
      ref="addressFormRef"
      label-width="100px"
    >
      <el-form-item
        label="省市区/县"
        prop="address1"
      >
      <el-cascader
        :options="cityData"
        v-model="addressForm.address1"
      >el-cascader>
      el-form-item>
      <el-form-item
        label="详细地址"
        prop="address2"
      >
        <el-input v-model="addressForm.address2">el-input>
      el-form-item>
    el-form>

    
    <span slot="footer" class="dialog-footer">
      <el-button @click="addressVisible = false">取 消el-button>
      <el-button
        type="primary" @click="addressVisible = false"
      >确 定el-button>
    span>
  el-dialog>

4.2 数据添加

addressVisible: false,
      addressForm: {
        address1: [],
        address2: ''
      },
      addressFormRules: {
        address1: [
          { required: true, message: '请选择省市区县', trigger: 'blur' }
        ],
        address2: [
          { required: true, message: '请输入详细地址', trigger: 'blur' }
        ]
      },
      cityData,

4.3 方法实现

addressDialogClosed () {
      this.$refs.addressFormRef.resetFields()
    },

5.展示物流进度的对话框

5.1 界面样式

<el-dialog
      title="物流进度"
      :visible.sync="progressVisible"
      width="50%"
    >
      
            <el-timeline>
              <el-timeline-item
                v-for="(activity, index) in progressInfo"
                :key="index"
                :timestamp="activity.time"
              >
              {{ activity.context }}
            el-timeline-item>
          el-timeline>
    el-dialog>

5.2 数据添加

progressVisible: false,
      progressInfo: [],
      db

6.搜索与添加

6.1 界面样式

6.2 数据添加

6.3 方法实现

7.搜索与添加

7.1 界面样式

7.2 数据添加

7.3 方法实现

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号