Merge pull request '完成发货接口的开发' (#61) from Brunch_LPQ into main

pull/63/head
ppnwsfegt 1 month ago
commit b3d05f8d65

@ -1,9 +1,11 @@
package com.itmk.web.order.controller; package com.itmk.web.order.controller;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itmk.utils.ResultUtils; import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo; import com.itmk.utils.ResultVo;
import com.itmk.web.order.entity.OrderParm; import com.itmk.web.order.entity.OrderParm;
import com.itmk.web.order.entity.SendParm;
import com.itmk.web.order.entity.UserOrder; import com.itmk.web.order.entity.UserOrder;
import com.itmk.web.order.entity.WxOrderParm; import com.itmk.web.order.entity.WxOrderParm;
import com.itmk.web.order.service.UserOrderService; import com.itmk.web.order.service.UserOrderService;
@ -36,4 +38,17 @@ public class UserOrderController {
IPage<UserOrder> orderList = userOrderService.getPcOrderList(parm); IPage<UserOrder> orderList = userOrderService.getPcOrderList(parm);
return ResultUtils.success("查询成功!",orderList); return ResultUtils.success("查询成功!",orderList);
} }
//发货
@PutMapping("/sendOrder")
public ResultVo sendOrder(@RequestBody SendParm parm){
//更新条件
LambdaUpdateWrapper<UserOrder> query = new LambdaUpdateWrapper<>();
query.eq(UserOrder::getOrderId,parm.getOrderId())
.set(UserOrder::getStatus,"1");
if(userOrderService.update(query)){
return ResultUtils.success("更新成功!");
}
return ResultUtils.error("更新失败!");
}
} }

@ -0,0 +1,9 @@
package com.itmk.web.order.entity;
import lombok.Data;
@Data
public class SendParm {
private Long orderId;
}

@ -1,6 +1,11 @@
import http from "../../http"; import http from "../../http";
import type { OrderListParm } from "./OrderModel"; import type { OrderListParm } from "./OrderModel";
//列表 //列表
export const gePcOrdertListApi = (parm:OrderListParm)=>{ export const gePcOrdertListApi = (parm: OrderListParm) => {
return http.get("/wxapi/order/getPcOrderList",parm) return http.get("/wxapi/order/getPcOrderList", parm)
}
// 发货
export const sendOrderApi = (orderId: string) => {
return http.put("/wxapi/order/sendOrder", { orderId: orderId })
} }

@ -1,63 +1,77 @@
import type { OrderListParm } from '../../api/order/OrderModel' import type { OrderListParm } from '../../api/order/OrderModel'
import {nextTick, onMounted, reactive, ref} from 'vue' import { nextTick, onMounted, reactive, ref } from 'vue'
import { gePcOrdertListApi } from '../../api/order' import { gePcOrdertListApi, sendOrderApi } from '../../api/order'
export default function useOrderTable(){ import useInstance from '@/hooks/useInstance'
//表格高度 export default function useOrderTable() {
const tableHeight = ref(0) const { global } = useInstance()
//表格数据 //表格高度
const tableList = ref([]) const tableHeight = ref(0)
//表格查询的参数 //表格数据
const listParm = reactive<OrderListParm>({ const tableList = ref([])
currentPage:1, //表格查询的参数
pageSize:10, const listParm = reactive<OrderListParm>({
type:'', currentPage: 1,
userName:'', pageSize: 10,
total:0 type: '',
}) userName: '',
//列表 total: 0
const getList = async()=>{ })
let res = await gePcOrdertListApi(listParm) //列表
if(res && res.code == 200){ const getList = async () => {
//设置表格数据 let res = await gePcOrdertListApi(listParm)
tableList.value = res.data.records; if (res && res.code == 200) {
//设置分页总条数 //设置表格数据
listParm.total = res.data.total; tableList.value = res.data.records;
} //设置分页总条数
} listParm.total = res.data.total;
//搜索
const searchBtn = ()=>{
getList()
}
//重置
const resetBtn = ()=>{
listParm.currentPage = 1;
listParm.type = ''
getList()
} }
//页容量改变触发 }
const sizeChange = (size:number)=>{ //搜索
listParm.pageSize = size; const searchBtn = () => {
getList()
}
//重置
const resetBtn = () => {
listParm.currentPage = 1;
listParm.type = ''
getList()
}
//页容量改变触发
const sizeChange = (size: number) => {
listParm.pageSize = size;
getList()
}
//页数改变触发
const currentChange = (page: number) => {
listParm.currentPage = page;
getList()
}
// 发货
const sendOrder = async (orderId: string) => {
let confirm = await global.$myconfirm('确定发货吗?')
if (confirm) {
let res = await sendOrderApi(orderId)
if (res && res.code == 200) {
getList() getList()
}
} }
//页数改变触发 }
const currentChange = (page:number)=>{
listParm.currentPage = page; onMounted(() => {
getList() getList()
} nextTick(() => {
onMounted(()=>{ tableHeight.value = window.innerHeight - 220
getList()
nextTick(()=>{
tableHeight.value = window.innerHeight - 220
})
}) })
return{ })
tableList, return {
listParm, tableList,
getList, sendOrder,
searchBtn, listParm,
resetBtn, getList,
sizeChange, searchBtn,
currentChange, resetBtn,
tableHeight sizeChange,
} currentChange,
tableHeight
}
} }

@ -1,102 +1,103 @@
<template> <template>
<el-main> <el-main>
<!-- 搜索栏 --> <!-- 搜索栏 -->
<el-form :model="listParm" :inline="true" size="default"> <el-form :model="listParm" :inline="true" size="default">
<el-form-item> <el-form-item>
<el-input <el-input
v-model="listParm.userName" v-model="listParm.userName"
placeholder="请输入姓名" placeholder="请输入姓名"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button :icon="Search" @click="searchBtn"></el-button> <el-button :icon="Search" @click="searchBtn"></el-button>
<el-button @click="resetBtn" type="danger" plain :icon="Close" <el-button @click="resetBtn" type="danger" plain :icon="Close"
>重置</el-button >重置</el-button
>
</el-form-item>
</el-form>
<!-- 表格
主子表的关键
1父表需要设置 row-key字段
2设置type = 'expand'
-->
<el-table
row-key="orderId"
:height="tableHeight"
:data="tableList"
border
stripe
>
<el-table-column type="expand">
<template #default="scope">
<el-table :data="scope.row.goodsList" border stripe>
<el-table-column label="菜品图片" prop="goodsImage">
<template #default="scope">
<el-image
:src="scope.row.goodsImage.split(',')[0]"
style="height: 60px; width: 60px; border-radius: 50%"
></el-image>
</template>
</el-table-column>
<el-table-column label="名称" prop="goodsName"></el-table-column>
<el-table-column label="价格" prop="price"></el-table-column>
<el-table-column label="规格" prop="specsName"></el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column label="姓名" prop="userName"></el-table-column>
<el-table-column label="电话" prop="phone"></el-table-column>
<el-table-column label="地址" prop="address"></el-table-column>
<el-table-column label="价格" prop="price"></el-table-column>
<el-table-column label="下单时间" prop="createTime"></el-table-column>
<el-table-column label="发货状态" prop="status">
<template #default="scope">
<el-tag v-if="scope.row.status == '0'" type="danger" size="default"
>待发货</el-tag
> >
<el-tag v-if="scope.row.status == '1'" size="default" effect="dark" </el-form-item>
>已发货</el-tag </el-form>
> <!-- 表格
<el-tag v-if="scope.row.status == '2'" size="default" effect="dark" 主子表的关键
>已收货</el-tag 1父表需要设置 row-key字段
> 2设置type = 'expand'
</template> -->
</el-table-column> <el-table
<el-table-column label="操作" width="200" align="center"> row-key="orderId"
<template #default="scope"> :height="tableHeight"
<el-button type="primary" :icon="Edit" size="default">发货</el-button> :data="tableList"
</template> border
</el-table-column> stripe
</el-table> >
<!-- 分页 --> <el-table-column type="expand">
<el-pagination <template #default="scope">
@size-change="sizeChange" <el-table :data="scope.row.goodsList" border stripe>
@current-change="currentChange" <el-table-column label="菜品图片" prop="goodsImage">
:current-page.sync="listParm.currentPage" <template #default="scope">
:page-sizes="[10, 20, 40, 80, 100]" <el-image
:page-size="listParm.pageSize" :src="scope.row.goodsImage.split(',')[0]"
layout="total, sizes, prev, pager, next, jumper" style="height: 60px; width: 60px; border-radius: 50%"
:total="listParm.total" ></el-image>
background </template>
> </el-table-column>
</el-pagination> <el-table-column label="名称" prop="goodsName"></el-table-column>
</el-main> <el-table-column label="价格" prop="price"></el-table-column>
</template> <el-table-column label="规格" prop="specsName"></el-table-column>
</el-table>
<script setup lang="ts"> </template>
import { Search, Close, Plus, Edit, Delete } from "@element-plus/icons-vue"; </el-table-column>
import useOrderTable from "../../compositions/order/useOrderTable"; <el-table-column label="姓名" prop="userName"></el-table-column>
// <el-table-column label="电话" prop="phone"></el-table-column>
const { <el-table-column label="地址" prop="address"></el-table-column>
tableList, <el-table-column label="价格" prop="price"></el-table-column>
getList, <el-table-column label="下单时间" prop="createTime"></el-table-column>
listParm, <el-table-column label="发货状态" prop="status">
resetBtn, <template #default="scope">
searchBtn, <el-tag v-if="scope.row.status == '0'" type="danger" size="default"
sizeChange, >待发货</el-tag
currentChange, >
tableHeight, <el-tag v-if="scope.row.status == '1'" size="default" effect="dark"
} = useOrderTable(); >已发货</el-tag
</script> >
<el-tag v-if="scope.row.status == '2'" size="default" effect="dark"
<style scoped></style> >已收货</el-tag
>
</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template #default="scope">
<el-button type="primary" @click="sendOrder(scope.row.orderId)" :icon="Edit" size="default">发货</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
@size-change="sizeChange"
@current-change="currentChange"
:current-page.sync="listParm.currentPage"
:page-sizes="[10, 20, 40, 80, 100]"
:page-size="listParm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="listParm.total"
background
>
</el-pagination>
</el-main>
</template>
<script setup lang="ts">
import { Search, Close, Plus, Edit, Delete } from "@element-plus/icons-vue";
import useOrderTable from "../../compositions/order/useOrderTable";
//
const {
tableList,
sendOrder,
listParm,
resetBtn,
searchBtn,
sizeChange,
currentChange,
tableHeight,
} = useOrderTable();
</script>
<style scoped></style>
Loading…
Cancel
Save