Commit 0738ebd6 authored by your yuchenglong's avatar your yuchenglong

update:接口调整

parent 55586c23
......@@ -80,4 +80,54 @@ exports.getSubShopList = async ctx => {
};
ctx.body = await req(ctx, opts);
};
// 导出订单
exports.orderExport = async ctx => {
const url = `${GROUPMEAL_URI}/order/background/order_export`;
const opts = {
url,
method: "GET"
};
ctx.body = await req(ctx, opts);
};
// 打印订单
exports.orderPrint = async ctx => {
const url = `${GROUPMEAL_URI}/order/background/print`;
const opts = {
url,
method: "GET"
};
ctx.body = await req(ctx, opts);
};
// 订单退款列表
exports.orderItemList = async ctx => {
const url = `${GROUPMEAL_URI}/order/background/order_item_list`;
const opts = {
url,
method: "GET"
};
ctx.body = await req(ctx, opts);
};
// 订单退款列表
exports.orderRefund = async ctx => {
const url = `${GROUPMEAL_URI}/order/background/order_refundt`;
const opts = {
url,
method: "GET"
};
ctx.body = await req(ctx, opts);
};
// 订单驳回
exports.orderRefundReject = async ctx => {
const url = `${GROUPMEAL_URI}/order/background/order_refund_reject`;
const opts = {
url,
method: "GET"
};
ctx.body = await req(ctx, opts);
};
......@@ -73,8 +73,11 @@ router.get(`${API_VERSION}/order/background/order_list`, groupmeal.getOrderList)
router.get(`${API_VERSION}/order/background/marketing_list`, groupmeal.getMarketingList);
router.get(`${API_VERSION}/order/background/goods_list`, groupmeal.getGoodsList);
router.get(`${API_VERSION}/order/background/sub_shop_list`, groupmeal.getSubShopList);
router.get(`${API_VERSION}/order/background/order_export`, groupmeal.orderExport);
router.get(`${API_VERSION}/order/background/order_export`, groupmeal.orderExport);
router.get(`${API_VERSION}/order/background/print`, groupmeal.orderPrint);
router.get(`${API_VERSION}/order/background/order_item_list`, groupmeal.orderItemList);
router.get(`${API_VERSION}/order/background/order_refund_reject`, groupmeal.orderRefundReject);
router.get(`${API_VERSION}/order/background/order_refundt`, groupmeal.orderRefund);
module.exports = router;
......@@ -11,3 +11,13 @@
text-align:center;
}
.refundBtnGroup {
display: block;
text-align: center;
}
.refundCon /deep/ .el-row {
margin-bottom: 15px;
display: flex;
align-items: center;
}
\ No newline at end of file
......@@ -8,9 +8,9 @@
ref="ruleForm"
class="demo-form-inline"
>
<el-form-item label="活动名称:" prop="activity_name">
<el-form-item label="活动名称:" prop="marketing_id">
<el-select
v-model="orderQueryObj.activity_name"
v-model="orderQueryObj.marketing_id"
placeholder="请选择"
@change="activityNameSel"
>
......@@ -29,11 +29,12 @@
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品名称:" prop="trade_name">
<el-select v-model="orderQueryObj.trade_name" placeholder="请选择">
<el-form-item label="商品名称:" prop="goods_id">
<el-select v-model="orderQueryObj.goods_id" placeholder="请选择">
<el-option
v-for="item in tradeNameArr"
:key="item.goods_id"
......@@ -42,25 +43,22 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="收货人:" prop="consignee">
<el-form-item label="收货人:" prop="cust_user">
<el-input
placeholder="请输入收货人姓名或手机号"
prefix-icon="el-icon-search"
v-model="orderQueryObj.consignee"
v-model="orderQueryObj.cust_user"
></el-input>
</el-form-item>
<el-form-item label="订单编号:" prop="order_no">
<el-form-item label="订单编号:" prop="order_id">
<el-input
placeholder="请输入订单号"
prefix-icon="el-icon-search"
v-model="orderQueryObj.order_no"
v-model="orderQueryObj.order_id"
></el-input>
</el-form-item>
<el-form-item label="自提点:" prop="self_lifting_point">
<el-select
v-model="orderQueryObj.self_lifting_point"
placeholder="请选择"
>
<el-form-item label="自提点:" prop="sub_shop_id">
<el-select v-model="orderQueryObj.sub_shop_id" placeholder="请选择">
<el-option
v-for="item in selLiftPoinArr"
:key="item.sub_shop_id"
......@@ -86,10 +84,115 @@
</el-col>
</el-row>
<el-tab-pane label="全部" name="all">
<TabList />
<el-table :data="orderTableData" border stripe style="width: 100%">
<el-table-column
prop="marketing_name"
label="活动名称"
width
></el-table-column>
<el-table-column
prop="order_id"
label="订单号"
width
></el-table-column>
<el-table-column
prop="order_status_text"
label="订单状态"
></el-table-column>
<el-table-column prop="order_item" label="商品信息">
<!-- <template #default="scope">
{{ scope }}
</template> -->
</el-table-column>
<el-table-column prop="user_name" label="收货人"></el-table-column>
<el-table-column
prop="sub_shop_name"
label="自提点"
></el-table-column>
<el-table-column prop="comment" label="备注"></el-table-column>
<el-table-column prop="pay_time" label="支付时间"></el-table-column>
<el-table-column prop="payment" label="支付金额"></el-table-column>
<el-table-column
prop="discount_fee"
label="优惠金额"
></el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="scope">
<el-button
type="text"
size="small"
@click="refund(scope.row)"
v-show="scope.row.order_status_text == '已支付'"
>退款</el-button
>
<el-button-group
v-show="scope.row.order_status_text == '待退款'"
>
<el-button type="text" size="small" @click="agree(scope.row)"
>同意</el-button
>
<el-button type="text" size="small" @click="refuse(scope.row)"
>拒绝</el-button
>
</el-button-group>
</template>
</el-table-column>
</el-table>
<page :totalNum="totalNum" @update="update" style="float: right" />
</el-tab-pane>
<el-tab-pane label="售后" name="afterSale">
<TabList />
<!-- start -->
<el-table :data="orderTableData" border stripe style="width: 100%">
<el-table-column
prop="marketing_name"
label="活动名称"
width
></el-table-column>
<el-table-column
prop="order_id"
label="订单号"
width
></el-table-column>
<el-table-column
prop="order_status_text"
label="订单状态"
></el-table-column>
<el-table-column
prop="order_item"
label="商品信息"
></el-table-column>
<el-table-column prop="user_name" label="收货人"></el-table-column>
<el-table-column
prop="sub_shop_name"
label="自提点"
></el-table-column>
<el-table-column prop="comment" label="备注"></el-table-column>
<el-table-column prop="pay_time" label="支付时间"></el-table-column>
<el-table-column prop="payment" label="支付金额"></el-table-column>
<el-table-column
prop="discount_fee"
label="优惠金额"
></el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="scope">
<!-- v-if="scope.row.order_status_text == '已支付'" -->
<el-button type="text" size="small" @click="refund(scope.row)"
>退款</el-button
>
<!-- v-else -->
<el-button-group>
<el-button type="text" size="small" @click="agree(scope.row)"
>同意</el-button
>
<el-button type="text" size="small" @click="refuse(scope.row)"
>拒绝</el-button
>
</el-button-group>
</template>
</el-table-column>
</el-table>
<page :totalNum="totalNum" @update="update" style="float: right" />
<!-- end -->
</el-tab-pane>
</el-tabs>
<!-- 导出弹窗 -->
......@@ -107,37 +210,91 @@
<el-button type="primary" @click="confirmExport">确定导出</el-button>
</el-form-item>
</el-dialog>
<!-- 退款弹窗 -->
<el-dialog title="退款" width="30%" top="10%" v-model="refundShow">
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
style="margin-bottom: 15px"
>
全选
</el-checkbox>
<div
class="refundCon"
v-for="(item, index) in refundGoods"
:key="index"
>
<el-row>
<el-checkbox
v-model="item.refundedGoodsSel"
:label="item.goods_name"
name="type"
></el-checkbox>
</el-row>
<el-row>
<el-col :span="6">单价:{{ item.price }}</el-col>
<el-col :span="6">数量:{{ item.goods_num }}</el-col>
<el-col :span="6">实付:{{ item.payment }}</el-col>
</el-row>
<el-row>
可退数量:
<el-input-number
v-model="item.refundableQuantity"
@change="handleChange"
:min="1"
:max="10"
label="描述文字"
></el-input-number>
</el-row>
<el-row>
退款金额(可退金额{{ item.refundAmount }}元):
<el-input v-model="item.ipt" style="width: 150px"></el-input>
</el-row>
</div>
<template #footer>
<span class="dialog-footer refundBtnGroup">
<el-button @click="refundShow = false">取 消</el-button>
<el-button type="primary" @click="refundConfirm">退款</el-button>
</span>
</template>
</el-dialog>
</div>
</Layout>
</template>
<script>
import Layout from "../layout/index.vue";
import TabList from "./tab/tabList.vue";
import {
getOrderList,
getMarketingList,
getGoodsList,
getSubShopList,
orderExport,
orderPrint,
orderItemList,
orderRefundReject,
orderRefund,
} from "@/service/Groupmeal/groupmeal";
import page from "../../components/Pagination.vue";
export default {
name: "orderManagement",
components: {
Layout,
TabList,
page,
},
data() {
return {
// 查询
orderQueryObj: {
activity_name: "", // 活动名称
marketing_id: "", // 活动名称
order_status: "0", // 订单状态
trade_name: "", // 商品名称
consignee: "", // 收货人
order_no: "", // 订单编号
self_lifting_point: "", // 自提点
goods_id: "", // 商品名称
cust_user: "", // 收货人
order_id: "", // 订单编号
sub_shop_id: "", // 自提点
},
// 下拉框数据
// 活动名称
activityNameArr: [],
......@@ -149,24 +306,25 @@ export default {
},
{
value: "1",
label: "支付",
label: "支付",
},
{
value: "2",
label: "支付",
label: "支付",
},
{
value: "3",
label: "退款",
label: "退款",
},
{
value: "4",
label: "退款",
label: "退款",
},
{
value: "5",
label: "退款中",
},
{
value: "6",
label: "已拒绝",
......@@ -178,14 +336,39 @@ export default {
selLiftPoinArr: [],
activeName: "all", // Tabs标签页
goodsNum: "2", // 商品总计
goodsNum: "", // 商品总计
// 导出
// 导出
exportShow: false,
exportType: "xxxxx",
exportSel: {
type: [],
},
// 表格数据
orderTableData: [],
params: {
page: 1,
page_size: 10,
},
totalNum: null, //总条数
// 退款
refundShow: false, // 退款状态
checkAll: false, // 全选
isIndeterminate: false,
refundGoods: [
{
refundedGoodsSel: false,
goods_name: "",
price: "", // 单价
goods_num: "", // 数量
payment: "", // 实付
refundableQuantity: "",
refundAmount: "",
ipt: "",
},
],
};
},
methods: {
......@@ -202,7 +385,7 @@ export default {
// 获取商品名称
async activityNameSel(val) {
this.orderQueryObj.trade_name = "";
this.orderQueryObj.goods_id = "";
const params = {
marketing_id: val,
};
......@@ -225,32 +408,142 @@ export default {
// 重置
resetOrder(formName) {
this.$refs[formName].resetFields();
this.params.page = 1;
this.params.page_size = 10;
Object.assign(this.params, this.orderQueryObj);
this.getOrderListMet(this.params);
},
// 搜索
searchOrder() {
console.log(this.orderQueryObj);
this.params.page = 1;
this.params.page_size = 10;
Object.assign(this.params, this.orderQueryObj);
this.getOrderListMet(this.orderQueryObj);
},
// 标签页切换
handleClick(targetName, action) {
console.log(targetName, action);
handleClick(targetName) {
if (targetName.props.name == "all") {
this.orderQueryObj.order_status = "0";
this.orderStatusArr[1].disabled = true;
this.orderStatusArr[2].disabled = true;
} else {
this.orderQueryObj.order_status = "7";
this.orderStatusArr[1].disabled = true;
this.orderStatusArr[2].disabled = true;
}
Object.assign(this.params, this.orderQueryObj);
this.getOrderListMet(this.orderQueryObj);
},
// 导出
exportOrder() {
this.exportShow = true;
},
// 确认导出
confirmExport() {},
async confirmExport() {
console.log(this.exportSel.type);
const params = {
type: this.exportSel.type,
};
const res = await orderExport(params);
console.log(res);
},
// 打印
printOrder() {},
async printOrder() {
const params = {
marketing_id: this.orderQueryObj.marketing_id,
};
const res = await orderPrint(params);
console.log(res);
},
// 获取订单列表
async getOrderListMet() {
try {
const res = await getOrderList(this.params);
console.log(res);
this.goodsNum = res.count;
this.totalNum = res.count;
this.orderTableData = res.result;
} catch (error) {
this.$message.error("发生未知错误,请稍后再试一下吧~~~");
console.error(error);
}
},
//列表分页
update(obj) {
Object.assign(this.params, obj);
// let { page, page_size } = this.parmas;
this.getOrderListMet(this.parmas);
},
// 拒绝
refuse(val) {
console.log(val);
this.$confirm("确定要拒绝退款么?", "拒绝", {
cancelButtonText: "取消",
confirmButtonText: "确定",
})
.then(() => {
const params = {
order_id: val.order_id,
};
const res = orderRefundReject(params);
console.log(res);
this.$message({
type: "success",
message: "退款成功!",
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
});
},
// 同意
agree(val) {
console.log(val);
},
// 全选
handleCheckAllChange(val) {
console.log(val);
this.refundGoods.refundedGoodsSel = val;
this.isIndeterminate = false;
},
// 退款
async refund(val) {
this.refundShow = true;
const params = {
order_id: val.order_id,
};
const res = await orderItemList(params);
console.log(res.result);
this.refundGoods = res.result;
},
// 退款确认
async refundConfirm() {
const params = {
order_id: "",
refund_list: "",
order_item_id: "",
refund_num: "",
refund_amount: "",
};
const res = await orderRefund(params);
console.log(res);
},
},
created() {
this.getMarketingListMet();
this.getSubShopListMet();
this.getOrderListMet();
},
};
</script>
......
......@@ -48,3 +48,43 @@ export async function getSubShopList() {
const res = await axios.get("/api/v1/order/background/sub_shop_list");
return res;
}
// 导出订单
export async function orderExport(params) {
const res = await axios.get("/api/v1/order/background/order_export",{
params
});
return res;
}
// 打印订单
export async function orderPrint(params) {
const res = await axios.get("/api/v1/order/background/print",{
params
});
return res;
}
// 订单退款列表
export async function orderItemList(params) {
const res = await axios.get("/api/v1/order/background/order_item_list",{
params
});
return res;
}
// 订单退款
export async function orderRefund(params) {
const res = await axios.get("/api/v1/order/background/order_refund",{
params
});
return res;
}
// 订单驳回
export async function orderRefundReject(params) {
const res = await axios.get("/api/v1/order/background/order_refund_reject",{
params
});
return res;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment