JIALDemo/target/classes/backend/page/order/list.html

299 lines
9.8 KiB
HTML
Raw Normal View History

2023-11-28 08:43:15 +08:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 引入样式 -->
<link rel="stylesheet" href="../../plugins/element-ui/index.css" />
<link rel="stylesheet" href="../../styles/common.css" />
<link rel="stylesheet" href="../../styles/page.css" />
<style>
.search-btn {
margin-left: 20px;
}
.tableBar{
justify-content: flex-start !important;
}
.info-box{
margin: -15px -44px 20px;
}
.info-box .item-box{
display: flex;
height: 20px;
line-height: 20px;
font-size: 14px;
font-weight: 400;
color: #666666;
text-align: left;
margin-bottom: 14px;
}
.info-box .item-box:last-child{
margin-bottom: 0;
}
.info-box .item-box .label{
width: 96px;
}
.info-box .item-box .des{
flex: 1;
color: #333333;
}
</style>
</head>
<body>
<div class="dashboard-container" id="order-app" v-loading="loading">
<div class="container">
<!-- 搜索项 -->
<div class="tableBar">
<el-input v-model="input" placeholder="请输入订单号" style="width: 250px">
<i slot="prefix" class="el-input__icon el-icon-search" style="cursor: pointer" @click="init"></i>
</el-input>
<el-date-picker v-model="orderTime"
clearable
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
placeholder="选择日期"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
style="width: 400px;margin-left: 20px;"
></el-date-picker>
<el-button type="primary" class="search-btn" @click="init">查询</el-button>
</div>
<el-table :data="tableData" stripe class="tableBox">
<el-table-column prop="number" label="订单号" min-width="110"></el-table-column>
<el-table-column prop="订单状态" label="订单状态">
<template slot-scope="{ row }">
<span>{{ getOrderType(row) }}</span>
</template>
</el-table-column>
<el-table-column prop="userName" label="用户"></el-table-column>
<el-table-column prop="phone" label="手机号"></el-table-column>
<el-table-column prop="address" label="地址" show-overflow-tooltip></el-table-column>
<el-table-column prop="orderTime" label="下单时间" min-width="100"></el-table-column>
<el-table-column prop="amount" label="实收金额">
<template slot-scope="{ row }">
<span>¥{{ row.amount }}</span>
</template>
</el-table-column>
<el-table-column prop="btn" label="操作">
<template slot-scope="{ row }">
<el-button type="text" @click="goDetail(row)" class="blueBug">
查看
</el-button>
<el-divider v-if="row.status === 2" direction="vertical"></el-divider>
<el-button v-if="row.status === 2" type="text" @click="cancelOrDeliveryOrComplete(3, row.id)" class="blueBug">
派送
</el-button>
<el-divider v-if="row.status === 3" direction="vertical"></el-divider>
<el-button v-if="row.status === 3" type="text" @click="cancelOrDeliveryOrComplete(4, row.id)" class="blueBug">
完成
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pageList"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
:current-page.sync="page"
layout="total, sizes, prev, pager, next, jumper"
:total="counts"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
<!-- 查看弹框部分 -->
<el-dialog
title="订单信息"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<div class="info-box">
<div class="item-box">
<span class="label">订单号:</span>
<span class="des">{{ diaForm.number }}</span>
</div>
<div class="item-box">
<span class="label">订单状态:</span>
<span class="des">{{ getOrderType(diaForm) }}</span>
</div>
<div class="item-box">
<span class="label">收货人:</span>
<span class="des">{{ diaForm.consignee }}</span>
</div>
<div class="item-box">
<span class="label">联系电话:</span>
<span class="des">{{ diaForm.phone }}</span>
</div>
<div class="item-box">
<span class="label">地址:</span>
<span class="des">{{ diaForm.address }}</span>
</div>
<div class="item-box">
<span class="label">支付金额:</span>
<span class="des">{{ diaForm.amount }}</span>
</div>
<div class="item-box">
<span class="label">下单时间:</span>
<span class="des">{{ diaForm.orderTime }}</span>
</div>
</div>
<!-- <el-form ref="diaForm" :model="diaForm" class="dia-form">
<el-form-item label="订单号">
<span>{{ diaForm.number }}</span>
</el-form-item>
<el-form-item label="订单状态">
<span>{{ getOrderType(diaForm) }}</span>
</el-form-item>
<el-form-item label="收货人">
<span>{{ diaForm.consignee }}</span>
</el-form-item>
<el-form-item label="联系电话">
<span>{{ diaForm.phone }}</span>
</el-form-item>
<el-form-item label="地址">
<span>{{ diaForm.address }}</span>
</el-form-item>
<el-form-item label="支付金额">
<span>{{ diaForm.amount }}</span>
</el-form-item>
<el-form-item label="下单时间">
<span>{{ diaForm.orderTime }}</span>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span> -->
</el-dialog>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="../../plugins/vue/vue.js"></script>
<!-- 引入组件库 -->
<script src="../../plugins/element-ui/index.js"></script>
<!-- 引入axios -->
<script src="../../plugins/axios/axios.min.js"></script>
<script src="../../js/request.js"></script>
<script src="../../api/order.js"></script>
<script>
new Vue({
el: '#order-app',
data() {
return {
input: '',
orderTime: '',
beginTime: '',
endTime: '',
counts: 0,
page: 1,
pageSize: 10,
tableData : [],
dialogVisible: false,
diaForm: {},
loading: false
}
},
computed: {},
watch:{
orderTime (val) {
if (val && val.length >= 2) {
this.beginTime = val[0]
this.endTime = val[1]
} else {
this.beginTime = ''
this.endTime = ''
}
}
},
created() {
this.init()
},
mounted() {
// this.loading = false
},
methods: {
async init () {
getOrderDetailPage({ page: this.page, pageSize: this.pageSize, number: this.input || undefined, beginTime: this.beginTime || undefined, endTime: this.endTime || undefined }).then(res => {
if (String(res.code) === '1') {
this.tableData = res.data.records || []
this.counts = res.data.total
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
},
handleQuery() {
this.page = 1;
this.init();
},
getOrderType (row) {
let str = ''
switch(row.status){
case 1:
str = '待付款'
break;
case 2:
str = '正在派送'
break;
case 3:
str = '已派送'
break;
case 4:
str = '已完成'
break;
case 5:
str = '已取消'
break;
}
return str
},
// 查看详情
goDetail (row) {
this.diaForm = {}
this.dialogVisible = true
this.diaForm = { ...row }
},
// 取消,派送,完成
cancelOrDeliveryOrComplete (status, id) {
this.$confirm('确认更改该订单状态?', '提示', {
'confirmButtonText': '确定',
'cancelButtonText': '取消',
'type': 'warning'
}).then(() => {
editOrderDetail(params).then(res => {
if (res.code === 1) {
this.$message.success(status === 3 ? '订单已派送' : '订单已完成')
this.init()
} else {
this.$message.error(res.msg || '操作失败')
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
})
const params = {
status,
id
}
},
handleClose () {
this.dialogVisible = false
},
handleSizeChange (val) {
this.pageSize = val
this.init()
},
handleCurrentChange (val) {
this.page = val
this.init()
}
}
})
</script>
</body>
</html>