一,订单管理中订单列表页面搭建
1.1,order订单组件路由配置
{ path: ‘/home‘, component: Home, // 重定向 redirect: ‘/welcome‘, children: [ { path: ‘/welcome‘, component: Welcome }, { path: ‘/users‘, component: User }, { path: ‘/rights‘, component: Rights }, { path: ‘/roles‘, component: Roles }, { path: ‘/categories‘, component: Cate }, { path: ‘/params‘, component: Params }, { path: ‘/goods‘, component: List }, { path: ‘/goods/add‘, component: Add }, { path: ‘/orders‘, component: Order }, ] }
1.2,页面渲染时,发送请求,获取订单数据
请求参数定义
data() { return { // 订单列表请求参数 queryInfo: { query: ‘‘, pagenum: 1, pagesize: 10 }, total: 0, orderlist: [] } },
mounted() { this.getOrderList() }, methods: { async getOrderList() { const { data: res } = await this.$http.get(‘orders‘, { params: this.queryInfo }) if (res.meta.status !== 200) { return this.$message.error(‘获取订单列表失败!‘) } console.log(res) this.total = res.data.total this.orderlist = res.data.goods } }
下单时间create_time返回的是时间戳,我们需要用vue的filter过滤器,在main.js中全局注册下
// 时间过滤器 Vue.filter(‘dateFormat‘, function(originVal) { const dt = new Date(originVal) const y = dt.getFullYear() const m = dt.getMonth() + 1 const d = dt.getDate() const hh = dt.getHours() const mm = dt.getMinutes() const ss = dt.getSeconds() return `${y}-${m}-${d} ${hh}:${mm}:${ss}` })
<!-- 面包屑导航区域 --> <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 style="margin: 20px 0"> <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 style="margin : 20px 0"> <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="{ row, $index }"> <el-tag type="success" v-if="row.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="下单时间"> <template slot-scope="{row, $index}"> {{ row.create_time | dateFormat }} </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="{ row, $index }"> <el-button size="mini" type="primary" icon="el-icon-edit" ></el-button> <el-button size="mini" type="success" icon="el-icon-location" ></el-button> </template> </el-table-column> </el-table> </el-card>
分页器
<!-- 分页区域 --> <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"> </el-pagination>
handleSizeChange(newSize) { this.queryInfo.pagesize = newSize // 重新发送请求,获取订单数据 this.getOrderList() }, handleCurrentChange(newPage) { this.queryInfo.pagenum = newPage this.getOrderList() },
1.3, 点击编辑按钮,弹出修改框
<el-table-column label="操作"> <template slot-scope="{ row, $index }"> <el-button size="mini" type="primary" icon="el-icon-edit" @click="showBox" ></el-button>
// 展示修改地址的对话框 showBox() { this.addressVisible = true },
梵蒂冈
级联选择器的数据源cityData是在citydata.js文件中,将他导入进来即可,v-model="addressForm.address1"收集的选中的值,是个数组
addressForm: { address1: [], address2: ‘‘ }, addressVisible: false, addressFormRules: { address1: [ { required: true, message: ‘请选择省市区县‘, trigger: ‘blur‘ } ], address2: [ { required: true, message: ‘请填写详细地址‘, trigger: ‘blur‘ } ] }, cityData,
<!-- 修改地址的对话框 --> <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" @change="handleChange" ></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>
// 关闭修改的dialog触发 addressDialogClosed() { // 初始化form表单数据 this.$refs.addressFormRef.resetFields() }, // 选中节点 handleChange(){ console.log(this.addressForm.address1) }
原文:https://www.cnblogs.com/fsg6/p/14292009.html