完成订单模块

This commit is contained in:
gxwebsoft
2024-04-25 23:38:42 +08:00
parent a6cb9f7f78
commit 16e38b6f31
58 changed files with 6130 additions and 1753 deletions

View File

@@ -5,7 +5,7 @@
:visible="visible"
:maskClosable="false"
:maxable="maxable"
:title="isUpdate ? '编辑订单' : '添加订单'"
:title="isUpdate ? '编辑预约订单' : '添加预约订单'"
:body-style="{ paddingBottom: '28px' }"
@update:visible="updateVisible"
@ok="save"
@@ -19,90 +19,223 @@
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' }
"
>
<a-form-item label="订单号" name="orderNo">
<a-form-item label="订单号" name="orderNo">
<a-input
allow-clear
placeholder="请输入订单号"
placeholder="请输入订单号"
v-model:value="form.orderNo"
/>
</a-form-item>
<a-form-item label="类型" name="type">
<a-form-item label="微信支付订单号" name="wechatOrder">
<a-input
allow-clear
placeholder="请输入类型"
v-model:value="form.type"
placeholder="请输入微信支付订单号"
v-model:value="form.wechatOrder"
/>
</a-form-item>
<a-form-item label="订单金额" name="money">
<a-form-item label="微信退款订单号" name="refundOrder">
<a-input
allow-clear
placeholder="请输入订单金额"
v-model:value="form.money"
placeholder="请输入微信退款订单号"
v-model:value="form.refundOrder"
/>
</a-form-item>
<a-form-item label="实际付款金额(包含运费)" name="payPrice">
<a-form-item label="场馆id用于权限判断" name="merchantId">
<a-input
allow-clear
placeholder="请输入实际付款金额(包含运费)"
v-model:value="form.payPrice"
placeholder="请输入场馆id用于权限判断"
v-model:value="form.merchantId"
/>
</a-form-item>
<a-form-item label="套餐ID" name="planId">
<a-form-item label="用户id" name="userId">
<a-input
allow-clear
placeholder="请输入套餐ID"
v-model:value="form.planId"
/>
</a-form-item>
<a-form-item label="卡ID" name="priceId">
<a-input
allow-clear
placeholder="请输入卡ID"
v-model:value="form.priceId"
/>
</a-form-item>
<a-form-item label="获得的会员等级" name="gradeId">
<a-input
allow-clear
placeholder="请输入获得的会员等级"
v-model:value="form.gradeId"
/>
</a-form-item>
<a-form-item label="卡名称" name="priceName">
<a-input
allow-clear
placeholder="请输入卡名称"
v-model:value="form.priceName"
/>
</a-form-item>
<a-form-item label="用户ID" name="userId">
<a-input
allow-clear
placeholder="请输入用户ID"
placeholder="请输入用户id"
v-model:value="form.userId"
/>
</a-form-item>
<a-form-item label="持有者ID" name="memberId">
<a-form-item label="使用的优惠券id" name="couponId">
<a-input
allow-clear
placeholder="请输入持有者ID"
v-model:value="form.memberId"
placeholder="请输入使用的优惠券id"
v-model:value="form.couponId"
/>
</a-form-item>
<a-form-item label="真实姓名" name="realName">
<a-form-item label="使用的会员卡id" name="cardId">
<a-input
allow-clear
placeholder="请输入使用的会员卡id"
v-model:value="form.cardId"
/>
</a-form-item>
<a-form-item label="关联管理员id" name="aid">
<a-input
allow-clear
placeholder="请输入关联管理员id"
v-model:value="form.aid"
/>
</a-form-item>
<a-form-item label="核销管理员id" name="adminId">
<a-input
allow-clear
placeholder="请输入核销管理员id"
v-model:value="form.adminId"
/>
</a-form-item>
<a-form-item label="IC卡号" name="code">
<a-input
allow-clear
placeholder="请输入IC卡号"
v-model:value="form.code"
/>
</a-form-item>
<a-form-item label="真实姓名" name="name">
<a-input
allow-clear
placeholder="请输入真实姓名"
v-model:value="form.realName"
v-model:value="form.name"
/>
</a-form-item>
<a-form-item label="联系电话" name="phone">
<a-form-item label="手机号码" name="phone">
<a-input
allow-clear
placeholder="请输入联系电话"
placeholder="请输入手机号码"
v-model:value="form.phone"
/>
</a-form-item>
<a-form-item label="订单总额" name="totalPrice">
<a-input
allow-clear
placeholder="请输入订单总额"
v-model:value="form.totalPrice"
/>
</a-form-item>
<a-form-item label="减少的金额使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格" name="reducePrice">
<a-input
allow-clear
placeholder="请输入减少的金额使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格"
v-model:value="form.reducePrice"
/>
</a-form-item>
<a-form-item label="实际付款" name="payPrice">
<a-input
allow-clear
placeholder="请输入实际付款"
v-model:value="form.payPrice"
/>
</a-form-item>
<a-form-item label="用于统计" name="price">
<a-input
allow-clear
placeholder="请输入用于统计"
v-model:value="form.price"
/>
</a-form-item>
<a-form-item label="价钱,用于积分赠送" name="money">
<a-input
allow-clear
placeholder="请输入价钱,用于积分赠送"
v-model:value="form.money"
/>
</a-form-item>
<a-form-item label="退款金额" name="refundMoney">
<a-input
allow-clear
placeholder="请输入退款金额"
v-model:value="form.refundMoney"
/>
</a-form-item>
<a-form-item label="教练价格" name="coachPrice">
<a-input
allow-clear
placeholder="请输入教练价格"
v-model:value="form.coachPrice"
/>
</a-form-item>
<a-form-item label="教练id" name="coachId">
<a-input
allow-clear
placeholder="请输入教练id"
v-model:value="form.coachId"
/>
</a-form-item>
<a-form-item label="1微信支付2积分3支付宝4现金5POS机6VIP月卡7VIP年卡8VIP次卡9IC月卡10IC年卡11IC次卡12免费13VIP充值卡14IC充值卡15积分支付16VIP季卡17IC季卡" name="payType">
<a-input
allow-clear
placeholder="请输入1微信支付2积分3支付宝4现金5POS机6VIP月卡7VIP年卡8VIP次卡9IC月卡10IC年卡11IC次卡12免费13VIP充值卡14IC充值卡15积分支付16VIP季卡17IC季卡"
v-model:value="form.payType"
/>
</a-form-item>
<a-form-item label="1已付款2未付款" name="payStatus">
<a-input
allow-clear
placeholder="请输入1已付款2未付款"
v-model:value="form.payStatus"
/>
</a-form-item>
<a-form-item label="1已完成2未使用3已取消4退款申请中5退款被拒绝6退款成功7客户端申请退款" name="orderStatus">
<a-input
allow-clear
placeholder="请输入1已完成2未使用3已取消4退款申请中5退款被拒绝6退款成功7客户端申请退款"
v-model:value="form.orderStatus"
/>
</a-form-item>
<a-form-item label="优惠类型0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡" name="type">
<a-input
allow-clear
placeholder="请输入优惠类型0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡"
v-model:value="form.type"
/>
</a-form-item>
<a-form-item label="二维码地址,保存订单号,支付成功后才生成" name="qrcode">
<a-input
allow-clear
placeholder="请输入二维码地址,保存订单号,支付成功后才生成"
v-model:value="form.qrcode"
/>
</a-form-item>
<a-form-item label="优惠说明" name="desc">
<a-input
allow-clear
placeholder="请输入优惠说明"
v-model:value="form.desc"
/>
</a-form-item>
<a-form-item label="vip月卡年卡、ic月卡年卡回退次数" name="returnNum">
<a-input
allow-clear
placeholder="请输入vip月卡年卡、ic月卡年卡回退次数"
v-model:value="form.returnNum"
/>
</a-form-item>
<a-form-item label="vip充值回退金额" name="returnMoney">
<a-input
allow-clear
placeholder="请输入vip充值回退金额"
v-model:value="form.returnMoney"
/>
</a-form-item>
<a-form-item label="预约详情开始时间数组" name="startTime">
<a-input
allow-clear
placeholder="请输入预约详情开始时间数组"
v-model:value="form.startTime"
/>
</a-form-item>
<a-form-item label="是否已开具发票1已开发票2未开发票3不能开具发票" name="isInvoice">
<a-input
allow-clear
placeholder="请输入是否已开具发票1已开发票2未开发票3不能开具发票"
v-model:value="form.isInvoice"
/>
</a-form-item>
<a-form-item label="" name="updateTime">
<a-input
allow-clear
placeholder="请输入"
v-model:value="form.updateTime"
/>
</a-form-item>
<a-form-item label="付款时间" name="payTime">
<a-input
allow-clear
@@ -110,90 +243,25 @@
v-model:value="form.payTime"
/>
</a-form-item>
<a-form-item label="支付流水号" name="transactionId">
<a-form-item label="退款时间" name="refundTime">
<a-input
allow-clear
placeholder="请输入支付流水号"
v-model:value="form.transactionId"
placeholder="请输入退款时间"
v-model:value="form.refundTime"
/>
</a-form-item>
<a-form-item label="付款状态(10未付款 20已付款)" name="payStatus">
<a-form-item label="申请退款时间" name="refundApplyTime">
<a-input
allow-clear
placeholder="请输入付款状态(10未付款 20已付款)"
v-model:value="form.payStatus"
placeholder="请输入申请退款时间"
v-model:value="form.refundApplyTime"
/>
</a-form-item>
<a-form-item label="到期时间" name="expirationTime">
<a-form-item label="对账情况1=已对账2=未对账3=已对账金额对不上4=未查询到该订单" name="checkBill">
<a-input
allow-clear
placeholder="请输入到期时间"
v-model:value="form.expirationTime"
/>
</a-form-item>
<a-form-item label="所在省份" name="province">
<a-input
allow-clear
placeholder="请输入所在省份"
v-model:value="form.province"
/>
</a-form-item>
<a-form-item label="所在城市" name="city">
<a-input
allow-clear
placeholder="请输入所在城市"
v-model:value="form.city"
/>
</a-form-item>
<a-form-item label="所在辖区" name="region">
<a-input
allow-clear
placeholder="请输入所在辖区"
v-model:value="form.region"
/>
</a-form-item>
<a-form-item label="所在地区" name="area">
<a-input
allow-clear
placeholder="请输入所在地区"
v-model:value="form.area"
/>
</a-form-item>
<a-form-item label="街道地址" name="address">
<a-input
allow-clear
placeholder="请输入街道地址"
v-model:value="form.address"
/>
</a-form-item>
<a-form-item label="退款凭证" name="refundImage">
<a-input
allow-clear
placeholder="请输入退款凭证"
v-model:value="form.refundImage"
/>
</a-form-item>
<a-form-item label="退款理由" name="refundContent">
<a-input
allow-clear
placeholder="请输入退款理由"
v-model:value="form.refundContent"
/>
</a-form-item>
<a-form-item label="订单是否已结算(0未结算 1已结算)" name="isSettled">
<a-input
allow-clear
placeholder="请输入订单是否已结算(0未结算 1已结算)"
v-model:value="form.isSettled"
/>
</a-form-item>
<a-form-item label="排序(数字越小越靠前)" name="sortNumber">
<a-input-number
:min="0"
:max="9999"
class="ele-fluid"
placeholder="请输入排序号"
v-model:value="form.sortNumber"
placeholder="请输入对账情况1=已对账2=未对账3=已对账金额对不上4=未查询到该订单"
v-model:value="form.checkBill"
/>
</a-form-item>
<a-form-item label="备注" name="comments">
@@ -204,12 +272,6 @@
v-model:value="form.comments"
/>
</a-form-item>
<a-form-item label="状态, 0正常, 1冻结" name="status">
<a-radio-group v-model:value="form.status">
<a-radio :value="0">显示</a-radio>
<a-radio :value="1">隐藏</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="是否删除, 0否, 1是" name="deleted">
<a-input
allow-clear
@@ -217,13 +279,6 @@
v-model:value="form.deleted"
/>
</a-form-item>
<a-form-item label="修改时间" name="updateTime">
<a-input
allow-clear
placeholder="请输入修改时间"
v-model:value="form.updateTime"
/>
</a-form-item>
</a-form>
</ele-modal>
</template>
@@ -271,36 +326,44 @@
const form = reactive<Order>({
orderId: undefined,
orderNo: undefined,
type: undefined,
money: undefined,
payPrice: undefined,
planId: undefined,
priceId: undefined,
gradeId: undefined,
priceName: undefined,
wechatOrder: undefined,
refundOrder: undefined,
merchantId: undefined,
userId: undefined,
memberId: undefined,
realName: undefined,
couponId: undefined,
cardId: undefined,
aid: undefined,
adminId: undefined,
code: undefined,
name: undefined,
phone: undefined,
payTime: undefined,
transactionId: undefined,
totalPrice: undefined,
reducePrice: undefined,
payPrice: undefined,
price: undefined,
money: undefined,
refundMoney: undefined,
coachPrice: undefined,
coachId: undefined,
payType: undefined,
payStatus: undefined,
expirationTime: undefined,
province: undefined,
city: undefined,
region: undefined,
area: undefined,
address: undefined,
refundImage: undefined,
refundContent: undefined,
isSettled: undefined,
sortNumber: undefined,
comments: undefined,
status: undefined,
deleted: undefined,
tenantId: undefined,
orderStatus: undefined,
type: undefined,
qrcode: undefined,
desc: undefined,
returnNum: undefined,
returnMoney: undefined,
startTime: undefined,
isInvoice: undefined,
createTime: undefined,
updateTime: undefined,
payTime: undefined,
refundTime: undefined,
refundApplyTime: undefined,
checkBill: undefined,
comments: undefined,
deleted: undefined,
tenantId: undefined,
orderId: undefined,
orderName: '',
status: 0,
@@ -319,7 +382,7 @@
{
required: true,
type: 'string',
message: '请填写订单名称',
message: '请填写预约订单名称',
trigger: 'blur'
}
]

View File

@@ -8,6 +8,7 @@
:columns="columns"
:datasource="datasource"
:customRow="customRow"
:scroll="{ x: 800 }"
tool-class="ele-toolbar-form"
class="sys-org-table"
>
@@ -21,28 +22,16 @@
/>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'userId'">
{{ record.nickname }}
</template>
<template v-if="column.key === 'image'">
<a-image :src="record.image" :width="50" />
</template>
<template v-if="column.key === 'status'">
<a-tag v-if="record.status === 0" color="green">已完成</a-tag>
<a-tag v-if="record.status === 1" color="red">待付款</a-tag>
<a-tag v-if="record.status === 0" color="green">显示</a-tag>
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag>
</template>
<template v-if="column.key === 'action'">
<a-space>
<a @click="openEdit(record)">订单详情</a>
<template v-if="hasRole('superAdmin') || hasRole('admin')">
<a-divider type="vertical" />
<a-popconfirm
title="确定要删除此记录吗?"
@confirm="remove(record)"
>
<a class="ele-text-danger">删除</a>
</a-popconfirm>
</template>
<a @click="openEdit(record)">详情</a>
</a-space>
</template>
</template>
@@ -59,8 +48,7 @@
import { createVNode, ref } from 'vue';
import { message, Modal } from 'ant-design-vue';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import type { EleProTable } from 'ele-admin-pro';
import { toDateString } from 'ele-admin-pro';
import { EleProTable, toDateString } from "ele-admin-pro";
import type {
DatasourceFunction,
ColumnItem
@@ -69,7 +57,6 @@
import OrderEdit from './components/orderEdit.vue';
import { pageOrder, removeOrder, removeBatchOrder } from '@/api/shop/order';
import type { Order, OrderParam } from '@/api/shop/order/model';
import {hasRole} from "@/utils/permission";
// 表格实例
const tableRef = ref<InstanceType<typeof EleProTable> | null>(null);
@@ -107,49 +94,47 @@
// 表格列配置
const columns = ref<ColumnItem[]>([
{
title: 'ID',
title: '订单号',
dataIndex: 'orderId',
key: 'orderId',
align: 'center',
width: 90,
width: 90
},
{
title: '订单号',
dataIndex: 'orderNo',
key: 'orderNo',
align: 'center',
title: '姓名',
dataIndex: 'name',
key: 'name',
align: 'center'
},
// {
// title: '类型',
// dataIndex: 'type',
// key: 'type',
// align: 'center',
// customRender: ({ text }) => ['实物商品', '虚拟商品'][text]
// },
{
title: '用户昵称',
dataIndex: 'userId',
key: 'userId',
align: 'center',
title: '手机号',
dataIndex: 'phone',
key: 'phone',
width: 120,
align: 'center'
},
{
title: '总额',
dataIndex: 'totalPrice',
key: 'totalPrice',
align: 'center'
},
{
title: '减少金额',
dataIndex: 'reducePrice',
key: 'reducePrice',
align: 'center'
},
{
title: '实付金额',
dataIndex: 'payPrice',
key: 'payPrice',
align: 'center',
align: 'center'
},
{
title: '支付方式',
dataIndex: 'payMethod',
key: 'payMethod',
align: 'center',
},
{
title: '付款时间',
dataIndex: 'payTime',
key: 'payTime',
align: 'center',
customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd')
dataIndex: 'payType',
key: 'payType',
align: 'center'
},
{
title: '付款状态',
@@ -158,36 +143,47 @@
align: 'center'
},
{
title: '排序',
dataIndex: 'sortNumber',
key: 'sortNumber',
align: 'center',
title: '订单状态',
dataIndex: 'orderStatus',
key: 'orderStatus',
align: 'center'
},
{
title: '优惠类型',
dataIndex: 'type',
key: 'type',
align: 'center'
},
{
title: '是否已开票',
dataIndex: 'isInvoice',
key: 'isInvoice',
align: 'center'
},
{
title: '付款时间',
dataIndex: 'payTime',
key: 'payTime',
align: 'center',
customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd HH:mm:ss')
},
// {
// title: '申请退款时间',
// dataIndex: 'refundApplyTime',
// key: 'refundApplyTime',
// align: 'center',
// customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd HH:mm:ss')
// },
{
title: '备注',
dataIndex: 'comments',
key: 'comments',
align: 'center',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
align: 'center',
},
{
title: '下单时间',
dataIndex: 'createTime',
key: 'createTime',
align: 'center',
width: 180,
ellipsis: true,
customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd HH:MM:ss')
align: 'center'
},
{
title: '操作',
key: 'action',
width: 120,
width: 180,
fixed: 'right',
align: 'center',
hideInSetting: true