From 67ec3d9c967b3d5dcdc3ce486675258d80771a6b Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Fri, 15 Nov 2024 22:14:43 +0800
Subject: [PATCH 1/7] 1111
---
.env | 4 +-
src/pages.json | 26 +
src/pages/apply/foreign-items.vue | 4 +-
src/pages/boxes/apply.vue | 33 +
src/pages/boxes/detail.vue | 84 +
src/pages/boxes/list.vue | 105 ++
src/pages/merchant/detail.vue | 4 +-
src/pages/merchant/food.vue | 2 +-
src/sheep/api/boxes.ts | 49 +
src/sheep/api/index.ts | 2 +
.../custom-waterfalls-flow.vue | 10 +-
src/sheep/components/other/z-tabs/z-tabs.vue | 1398 +++++++++--------
src/sheep/constant/service-enum.ts | 7 +
13 files changed, 1023 insertions(+), 705 deletions(-)
create mode 100644 src/pages/boxes/apply.vue
create mode 100644 src/pages/boxes/detail.vue
create mode 100644 src/pages/boxes/list.vue
create mode 100644 src/sheep/api/boxes.ts
diff --git a/.env b/.env
index e974190..490e653 100644
--- a/.env
+++ b/.env
@@ -1,7 +1,7 @@
# ******************** start 开发环境 start ********************
-# VITE_APP_DEV_SERVICE =http://localhost:48080/app-api
-VITE_APP_DEV_SERVICE =http://123.156.228.134:48080/app-api
+VITE_APP_DEV_SERVICE =http://localhost:48080/app-api
+# VITE_APP_DEV_SERVICE =http://123.156.228.134:48080/app-api
# ******************** end 开发环境 end ********************
diff --git a/src/pages.json b/src/pages.json
index a350897..75b5cfc 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -87,6 +87,32 @@
}
]
},
+ {
+ "root": "pages/boxes",
+ "pages": [
+ {
+ "path": "apply",
+ "style": {
+ "navigationBarTitleText": "",
+ "disableScroll": true
+ }
+ },
+ {
+ "path": "detail",
+ "style": {
+ "navigationBarTitleText": "",
+ "disableScroll": true
+ }
+ },
+ {
+ "path": "list",
+ "style": {
+ "navigationBarTitleText": "",
+ "disableScroll": true
+ }
+ }
+ ]
+ },
{
"root": "pages/merchant",
"pages": [
diff --git a/src/pages/apply/foreign-items.vue b/src/pages/apply/foreign-items.vue
index e35d08a..17c6731 100644
--- a/src/pages/apply/foreign-items.vue
+++ b/src/pages/apply/foreign-items.vue
@@ -26,7 +26,9 @@ onLoad((options: any) => {
}
});
onShow(() => {
-
+ if (pageRef.value) {
+ pageRef.value.reload(false)
+ }
})
diff --git a/src/pages/boxes/apply.vue b/src/pages/boxes/apply.vue
new file mode 100644
index 0000000..f80ddd7
--- /dev/null
+++ b/src/pages/boxes/apply.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/boxes/detail.vue b/src/pages/boxes/detail.vue
new file mode 100644
index 0000000..7d335a5
--- /dev/null
+++ b/src/pages/boxes/detail.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{ state.detail.price }}
+
+ 可容纳{{ state.detail.capacity }}
+
+
+ {{ state.detail.name }}
+
+
+
+
+ 详情
+
+
+
+
+
+ 预定
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/boxes/list.vue b/src/pages/boxes/list.vue
new file mode 100644
index 0000000..bb94ddd
--- /dev/null
+++ b/src/pages/boxes/list.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.name }}
+
+
+ ¥{{ v.price }}
+
+
+
+ 可容纳{{ v.capacity }}人
+
+
+
+ {{ hooks.useEnum("boxesBxStatusEnum", v.status.toString()) }}
+
+
+ {{ hooks.useEnum("boxesBxStatusEnum", v.status) }}
+
+
+ {{ hooks.useEnum("boxesBxStatusEnum", v.status) }}
+
+
+
+
+ {{ v.address }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/merchant/detail.vue b/src/pages/merchant/detail.vue
index 7a0bac0..d5bbf3d 100644
--- a/src/pages/merchant/detail.vue
+++ b/src/pages/merchant/detail.vue
@@ -50,7 +50,6 @@ const getDetail = async () => {
const getShopCar = async () => {
const _pa = { merchantId: state.detailId }
const { data } = await foodApi.getShopCar(_pa)
- console.log(data, "data");
state.carList = data ?? []
state.totPrice = state.carList
@@ -239,7 +238,8 @@ const doFood = () => {
联系食堂
-
+
diff --git a/src/pages/merchant/food.vue b/src/pages/merchant/food.vue
index 1508353..611f7a1 100644
--- a/src/pages/merchant/food.vue
+++ b/src/pages/merchant/food.vue
@@ -107,7 +107,7 @@ const doProduct = (v: any) => {
-
diff --git a/src/sheep/api/boxes.ts b/src/sheep/api/boxes.ts
new file mode 100644
index 0000000..c221676
--- /dev/null
+++ b/src/sheep/api/boxes.ts
@@ -0,0 +1,49 @@
+import request from "@/sheep/utils/request";
+
+export default {
+ page: (params: any) =>
+ request({
+ url: "boxes/info/api/page",
+ method: "GET",
+ params,
+ custom: {
+ showLoading: false,
+ },
+ }),
+ detail: (params: any) =>
+ request({
+ url: "boxes/info/api/getInfo",
+ method: "GET",
+ params,
+ custom: {
+ showLoading: false,
+ },
+ }),
+ apply: (data: any) =>
+ request({
+ url: "boxes/info/api/create",
+ method: "POST",
+ data,
+ custom: {
+ showLoading: false,
+ },
+ }),
+ cancel: (data: any) =>
+ request({
+ url: "boxes/info/api/cancel",
+ method: "GET",
+ data,
+ custom: {
+ showLoading: false,
+ },
+ }),
+ MyBookingPage: (data: any) =>
+ request({
+ url: "boxes/info/api/getMyBookingPage",
+ method: "GET",
+ data,
+ custom: {
+ showLoading: false,
+ },
+ }),
+};
diff --git a/src/sheep/api/index.ts b/src/sheep/api/index.ts
index a36c3e0..8101071 100644
--- a/src/sheep/api/index.ts
+++ b/src/sheep/api/index.ts
@@ -1,5 +1,7 @@
export { default as applyApi } from "./apply";
+export { default as boxesApi } from "./boxes";
+
export { default as commonApi } from "./common";
export { default as foodApi } from "./food";
diff --git a/src/sheep/components/other/custom-waterfalls-flow/custom-waterfalls-flow.vue b/src/sheep/components/other/custom-waterfalls-flow/custom-waterfalls-flow.vue
index a22e2a6..27b8eec 100644
--- a/src/sheep/components/other/custom-waterfalls-flow/custom-waterfalls-flow.vue
+++ b/src/sheep/components/other/custom-waterfalls-flow/custom-waterfalls-flow.vue
@@ -43,7 +43,7 @@
+ /* #ifdef APP-NVUE */
+ width: 750rpx;
+ /* #endif */
+ flex-direction: row;
+ height: 80rpx;
+}
+.z-tabs-scroll-view-conatiner {
+ flex: 1;
+ position: relative;
+ /* #ifndef APP-NVUE */
+ display: flex;
+ height: 100%;
+ width: 100%;
+ /* #endif */
+ flex-direction: row;
+}
+
+/* #ifndef APP-NVUE */
+.z-tabs-scroll-view ::-webkit-scrollbar {
+ display: none;
+ -webkit-appearance: none;
+ width: 0 !important;
+ height: 0 !important;
+ background: transparent;
+}
+
+/* #endif */
+
+.z-tabs-scroll-view {
+ flex-direction: row;
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ /* #ifndef APP-NVUE */
+ width: 100%;
+ height: 100%;
+ /* #endif */
+ flex: 1;
+}
+
+.z-tabs-list-container {
+ position: relative;
+ /* #ifndef APP-NVUE */
+ height: 100%;
+ /* #endif */
+}
+
+.z-tabs-list,
+.z-tabs-list-container {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+}
+
+.z-tabs-item {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 0px 20rpx;
+}
+
+.z-tabs-item-title-container {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+ align-items: center;
+}
+
+.z-tabs-item-title {
+ display: inline-block;
+ width: 100%;
+ font-size: 28rpx;
+}
+
+.z-tabs-item-title-disabled {
+ /* #ifndef APP-NVUE */
+ cursor: not-allowed;
+ /* #endif */
+}
+
+.z-tabs-item-badge {
+ margin-left: 8rpx;
+ background-color: #ec5b56;
+ color: white;
+ font-size: 22rpx;
+ border-radius: 100px;
+ padding: 0rpx 10rpx;
+}
+
+.z-tabs-bottom {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+.z-tabs-bottom-dot {
+ border-radius: 100px;
+}
+
+.z-tabs-left,
+.z-tabs-right {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+ align-items: center;
+}
+
diff --git a/src/sheep/constant/service-enum.ts b/src/sheep/constant/service-enum.ts
index 10d6e0e..7c62f1c 100644
--- a/src/sheep/constant/service-enum.ts
+++ b/src/sheep/constant/service-enum.ts
@@ -22,8 +22,15 @@ const hardwarePayTypeEnum = {
7: "线上订餐二维码支付",
};
+const boxesBxStatusEnum = {
+ "0": "今日空闲",
+ "1": "今日部分空闲",
+ "2": "今日已满",
+};
+
export default {
hardwareOrderStatusEnum,
hardwareOrderTypeEnum,
hardwarePayTypeEnum,
+ boxesBxStatusEnum,
};
From 241facfbf6f4c0f8e4b9f2e12a654edb7362db08 Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Fri, 15 Nov 2024 23:22:54 +0800
Subject: [PATCH 2/7] 11
---
src/pages/boxes/apply.vue | 168 +++++++++++++++++-
src/pages/boxes/detail.vue | 5 +-
src/sheep/api/boxes.ts | 9 +
.../crud/crud-layout/crud-layout.vue | 4 +-
.../tm-picker-date/tm-picker-date.vue | 4 +-
5 files changed, 175 insertions(+), 15 deletions(-)
diff --git a/src/pages/boxes/apply.vue b/src/pages/boxes/apply.vue
index f80ddd7..8ff1f90 100644
--- a/src/pages/boxes/apply.vue
+++ b/src/pages/boxes/apply.vue
@@ -1,33 +1,183 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 时间段
+
+
+ {{ v.bxDate }}
+ {{ v.hour }}
+
+
+
+
+ 提交
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/pages/boxes/detail.vue b/src/pages/boxes/detail.vue
index 7d335a5..27cca19 100644
--- a/src/pages/boxes/detail.vue
+++ b/src/pages/boxes/detail.vue
@@ -41,7 +41,7 @@ const doSubmit = () => {
-
+
@@ -66,11 +66,10 @@ const doSubmit = () => {
-
预定
-
diff --git a/src/sheep/api/boxes.ts b/src/sheep/api/boxes.ts
index c221676..606f141 100644
--- a/src/sheep/api/boxes.ts
+++ b/src/sheep/api/boxes.ts
@@ -37,6 +37,15 @@ export default {
showLoading: false,
},
}),
+ get: (data: any) =>
+ request({
+ url: "boxes/info/api/get",
+ method: "GET",
+ data,
+ custom: {
+ showLoading: false,
+ },
+ }),
MyBookingPage: (data: any) =>
request({
url: "boxes/info/api/getMyBookingPage",
diff --git a/src/sheep/components/crud/crud-layout/crud-layout.vue b/src/sheep/components/crud/crud-layout/crud-layout.vue
index 68d9a90..ce46af3 100644
--- a/src/sheep/components/crud/crud-layout/crud-layout.vue
+++ b/src/sheep/components/crud/crud-layout/crud-layout.vue
@@ -155,7 +155,9 @@ page {
// background: #ecf4f9;
}
- &_bottom {}
+ &_bottom {
+ box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.1);
+ }
}
&_foot {}
diff --git a/src/uni_modules/tm-ui/components/tm-picker-date/tm-picker-date.vue b/src/uni_modules/tm-ui/components/tm-picker-date/tm-picker-date.vue
index b4dfce0..b4e923d 100644
--- a/src/uni_modules/tm-ui/components/tm-picker-date/tm-picker-date.vue
+++ b/src/uni_modules/tm-ui/components/tm-picker-date/tm-picker-date.vue
@@ -1,5 +1,5 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/boxes/apply.vue b/src/pages/boxes/apply.vue
index 8ff1f90..bddeac2 100644
--- a/src/pages/boxes/apply.vue
+++ b/src/pages/boxes/apply.vue
@@ -4,7 +4,7 @@ import { onLoad, onShow } from "@dcloudio/uni-app";
import { isEmpty, max, min } from "radash"
import dayjs from "dayjs"
-import { hooks } from "@@/index"
+import { hooks, router } from "@@/index"
import { boxesApi } from "@@/api"
const data = {
@@ -104,8 +104,30 @@ const doTimeItem = (v: any) => {
state.selectRechargeIdList = state.selectRechargeList.map(v => v.id)
}
+const applyFormRef = ref(null)
const doSubmit = async () => {
-
+ applyFormRef.value.submit()
+ const { isPass } = applyFormRef.value.validate()
+ if (!isPass) return
+ try {
+ const { hour: hourMax } = max(state.selectRechargeList, (i: any) => i.timestamp)
+ const { hour: hourMin } = min(state.selectRechargeList, (i: any) => i.timestamp)
+ const _pa = {
+ boxesId: state.detailId,
+ startTime: hourMin,
+ endTime: hourMax,
+ bxDate: applyForm.bxDate,
+ }
+ const { data, code }: any = await boxesApi.apply(_pa)
+ if (code != 0) throw new Error()
+ uni.showLoading({ title: '预定中...', mask: false })
+ uni.hideLoading()
+ uni.showToast({ title: '申请成功', icon: "none" })
+ router.jump("/pages/boxes/apply-list")
+ } catch (error) {
+ console.error(error);
+ uni.hideLoading()
+ }
}
@@ -134,7 +156,8 @@ const doSubmit = async () => {
时间段
-
{{ v.bxDate }}
{{ v.hour }}
@@ -166,6 +189,15 @@ const doSubmit = async () => {
}
}
+.recharge_item_disabled {
+ background: #999;
+ border: 1px solid #999 !important;
+
+ &>text {
+ color: white !important;
+ }
+}
+
.recharge {
display: grid;
grid-template-columns: repeat(3, 1fr);
From 544fb327623c2bc367ef8f2abd90b66438eeeb2d Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Sat, 16 Nov 2024 09:16:26 +0800
Subject: [PATCH 4/7] 111
---
src/pages/boxes/apply-list.vue | 55 +++++++++++++++++-
src/pages/merchant/components/product-row.vue | 9 ++-
src/pages/merchant/detail.vue | 14 ++++-
src/pages/tabbar/my.vue | 1 +
src/pages/tabbar/order.vue | 2 +-
src/static/icon/service_4.png | Bin 0 -> 2867 bytes
6 files changed, 74 insertions(+), 7 deletions(-)
create mode 100644 src/static/icon/service_4.png
diff --git a/src/pages/boxes/apply-list.vue b/src/pages/boxes/apply-list.vue
index be1056c..52eb4e2 100644
--- a/src/pages/boxes/apply-list.vue
+++ b/src/pages/boxes/apply-list.vue
@@ -46,11 +46,34 @@ const doCard = (v: any) => {
router.jump('/pages/boxes/detail', { id: v.id })
}
+const doCancelApply = async (v: any) => {
+ uni.showModal({
+ title: '提示',
+ content: '是否确定取消预约',
+ confirmColor: '#0094ff',
+ success: async (res) => {
+ if (!res.confirm) return
+ try {
+ uni.showLoading({ title: '取消预约中...', mask: true });
+ const _pa = { id: v.id }
+ const { data, code }: any = await boxesApi.cancel(_pa)
+ if (code != 0) throw new Error()
+ pageRef.value.reload(true)
+ uni.hideLoading()
+ uni.showToast({ title: '取消预约成功', icon: "none" });
+ } catch (error) {
+ console.error(error);
+ uni.hideLoading()
+ }
+ }
+ })
+}
+
-
+
@@ -60,8 +83,34 @@ const doCard = (v: any) => {
-
-
+
+
+
+ {{ v.boxesName }}
+
+ 预约成功
+ 预约失败
+ 取消预约
+
+
+
+ 预约时间
+
+ {{ v.bookingDate }} {{ hooks.useTime(v.startTime, "{h}:{i}") }} ~ {{
+ hooks.useTime(v.endTime, "{h}:{i}")
+ }}
+
+
+
+ 提交时间
+
+ {{ hooks.useTime(v.createTime, "") }}
+
+
+
+
+ 取消预约
+
diff --git a/src/pages/merchant/components/product-row.vue b/src/pages/merchant/components/product-row.vue
index 23630a5..32eaef0 100644
--- a/src/pages/merchant/components/product-row.vue
+++ b/src/pages/merchant/components/product-row.vue
@@ -65,7 +65,8 @@ const remove = () => {
-
@@ -101,4 +102,8 @@ const remove = () => {
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/pages/merchant/detail.vue b/src/pages/merchant/detail.vue
index d5bbf3d..41e5422 100644
--- a/src/pages/merchant/detail.vue
+++ b/src/pages/merchant/detail.vue
@@ -148,7 +148,7 @@ const doVisibleCar = async () => {
state.showCarDialog = true
}
-const doPay = async () => {
+const submitPay = async () => {
try {
if (isEmpty(state.carList)) {
uni.showToast({ title: '请至少购买一件商品', icon: "none" })
@@ -170,6 +170,18 @@ const doPay = async () => {
}
}
+const doPay = async () => {
+ uni.showModal({
+ title: '提示',
+ content: '是否确定购买',
+ confirmColor: '#0094ff',
+ success: async (res) => {
+ if (!res.confirm) return
+ submitPay()
+ }
+ })
+}
+
const getHeight = () => {
const rpx = 480
return `calc(100vh - ${uni.upx2px(rpx)}px)`
diff --git a/src/pages/tabbar/my.vue b/src/pages/tabbar/my.vue
index d7b1b6a..2206265 100644
--- a/src/pages/tabbar/my.vue
+++ b/src/pages/tabbar/my.vue
@@ -9,6 +9,7 @@ import { merchantApi, userApi, walletApi } from "@@/api"
const data = {
serviceList: [
{ text: '钱包管理', icon: '/static/icon/service_3.png', router: '/pages/wallet/list' },
+ { text: '包厢预定', icon: '/static/icon/service_4.png', router: '/pages/boxes/apply-list' },
// { text: '车牌管理', icon: '/static/icon/service_2.png', router: '/pages/user/diff-price' },
{ text: '外来人员就餐', icon: '/static/icon/service_1.png', router: '/pages/apply/foreign-list' },
{ text: '跨单位就餐', icon: '/static/icon/service_1.png', router: '/pages/apply/stride-list' },
diff --git a/src/pages/tabbar/order.vue b/src/pages/tabbar/order.vue
index aa25474..bdd91f1 100644
--- a/src/pages/tabbar/order.vue
+++ b/src/pages/tabbar/order.vue
@@ -70,7 +70,7 @@ const doRefund = (v: any) => {
uni.hideLoading()
}
}
- });
+ })
}
diff --git a/src/static/icon/service_4.png b/src/static/icon/service_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c56e397c35f02904a5ca749e61bd34c8afa78c6
GIT binary patch
literal 2867
zcmcIm`#Y4|7nfeAcR2E5axX8&H7U1TO2@0A8O*pQ;}pk)nB%A>N-p6|H3l_=L{XEN
zA>@+EEk`cnmit8Mj$FE75W<#A45q9HH27%JqPaNXavmNf8n8&qO@p9`615CW($U!^YNVV=o?|
zpFaVVH@W+o+YbdK3{$Hz{i{ZG!a3!XiyACt*49k*eqB;ctCjJp26x^hV(NIIifdI~
z#=gny#k?_BFk$=aZ58F
zb6SEHuNVuaETE1xXZ$I(yRDM89BC3mk}BnIjK5Z-vAdtrVSlaP*93G?7PdIet+oiZ?D10Eq;n=0)(6eVuFp}KhTsXKL?0qU}bT>@)
zk>zhwp||I<@lvm@lD@ve2y9cx2xHrqSnlmy>qFRK+4zauF>J*+)wmMbVk@EL+zD>_
z#<*44;vGW8!qMnxrp+H_Oqhqw8t7s*oW>5z#0&JEE(H*t0WY%Wli|H()14{e*JT0=
zC=bzZiLZ@rhFlyYzun#S0;ESRucAJ<&zDn`EMz9I@!e6Q=7ULXSFEoF6l;L3HRm91
z`pykN+nEqWiil`e1!Wp+T+-1<_5Bl3o+FjMwiY2)}s
z-!@5`ou~QfHq737om5Y!xHCwF%T9~GXUEOFW?Da
z29e7daNKYULx~|1-WQRzpA~!K=mAL_#{6s@DZL{#67EM-jc9PYU}^gJ21Kiuq)CI@
z@`6-2N$_hwwb|e@?k8$FDsnL=WdkqYa5d*YAm#3u5j}wiQ
z5r)zlwUd%c0c{3AjaC)gHZNg4hZ~M-5vzoE{l+pAb%rrE0}SmJ65Dg>_y{H?gW&`PR)|iqxK5JpJTSq1e*G
zT8iCx#q?a=G1bA#lwue!W%cJXJS0mrsdpDgRhBcd`0f&jpx89simznrF5dWh|6Pp>
zEp-e_gispV?i*2T*yXCtTXc#sU%%j4=b%@b^QU74gex`86a+%JM#24ch6v@G%!>uJ
zDRmG9OJ0K{4F>EtN0F-7^zQDp*sA2}LJ)-`ntPUm<{9vluzd?q|yfvO&@g$TH%60<~fY@Ex_;dfC
zVfRLFS~Sn|=h#^OGb14C+2XdgkMM4};N7P-zUJerU+g?>*BObL!TZcbc0%xyPe<4o5+;A5X$sxYz&=5!S|SF`AX=Jvwh94DELh3f2)mM
z6UV=*VtnGpH8CTR3ohkLZ~rQa@a#?6hM=W!97%P?t}hDR5*R7ps;<`XByE$!Vbbx@
zgb7Wkv~G`7j{LYozXW2^l`&gSdwENFWC}36snyjN#H?Dqic`uee^MVEQ-xdNJH3W4P$xv3{=bNj-1PwKBY8_WmJSULd(}^GoHnqHb%JK@{Wt
zLk`^`w?((popo|oTCBB8n*U67)Q{QadxgwHB5@)>6$S>ki;8XpXoz=|6}P=vEDsim
zD-k~AJqa*WMyF`7zwgKBcR@8O4Z!zFZ>N56YNc`A*%utmfqclCr7PfMTg1`NhMjvT
zEb*zXs1n5-;|-_KFk!oJPcA;W+Spoelq7=8=J?o|rNj=$WNPu(xlZLn949~f`CxEh
zMG9yOuu&usL`e}3G{F@XixK1?WH|qA_Vemk1{{{vEV;i+*5S=lC~!e_D|%lFb3W6f
zQuzNJibPofK{q{?w=x@U!8ZafG&=6_!c_Jb)q&J{1lw!*KoF@H_iCb77tEgLW^zl@
z8$tvVTjGyZRFVx>7c_geSVf4bF~3vub38`zR3Xy1fAG!v_3jbTKElfZSladD@B)*+WQO
zmbn!Z4ICc(CKG>khukeY(S7uA2^6PvjTf~NT%-0?-LH=LwXm}#x;~NI%Iol_tS(kB
zMLl-P)y6cAzuIIGMuonSxTja-@Q`bXg4;9GPoU!!rO(rVYagTMX+O?+EynrRQ@
zj<#DRL5``ApH6#ajEBTPEn}~moOSK)spcodBT2w`Is=SWS=%IGP{$cED=rdt!6HOk
KGQPy-5A+{<(GubS
literal 0
HcmV?d00001
From b85ec93e7a4447b6e4975e8d0ade3d4806a2c123 Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 18 Nov 2024 08:03:34 +0800
Subject: [PATCH 5/7] 111
---
src/pages.json | 19 ++
src/pages/order/detail.vue | 72 ++++++-
src/pages/refund/apply.vue | 185 ++++++++++++++++++
src/pages/refund/history.vue | 32 +++
src/pages/tabbar/order.vue | 6 +-
src/sheep/api/common.ts | 12 +-
src/sheep/api/index.ts | 2 +
src/sheep/api/refund.ts | 18 ++
src/static/icon/service_4.png | Bin 2867 -> 2863 bytes
.../tm-picker-view/tm-picker-view.vue | 79 ++++----
10 files changed, 379 insertions(+), 46 deletions(-)
create mode 100644 src/pages/refund/apply.vue
create mode 100644 src/pages/refund/history.vue
create mode 100644 src/sheep/api/refund.ts
diff --git a/src/pages.json b/src/pages.json
index 10ad755..3ecde96 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -159,6 +159,25 @@
}
]
},
+ {
+ "root": "pages/refund",
+ "pages": [
+ {
+ "path": "apply",
+ "style": {
+ "navigationBarTitleText": "",
+ "disableScroll": true
+ }
+ },
+ {
+ "path": "history",
+ "style": {
+ "navigationBarTitleText": "",
+ "disableScroll": true
+ }
+ }
+ ]
+ },
{
"root": "pages/wallet",
"pages": [
diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue
index 7a22b1d..961f274 100644
--- a/src/pages/order/detail.vue
+++ b/src/pages/order/detail.vue
@@ -4,7 +4,7 @@ import { onLoad, onShow } from "@dcloudio/uni-app";
import { isEmpty } from "radash"
import { hooks, constant, router } from "@@/index"
-import { orderApi } from "@@/api"
+import { orderApi, refundApi } from "@@/api"
const data = {
@@ -12,6 +12,7 @@ const data = {
const state = reactive({
detailId: null,
detail: {},
+ refundDetail: {},
shopCarList: [],
})
@@ -30,6 +31,9 @@ const getDetail = async () => {
const _pa = { id: state.detailId };
const { data } = await orderApi.detail(_pa)
state.detail = data
+ if (state.detail.orderStatus == 10) {
+ getRefundDetail()
+ }
}
const getShopCarList = async () => {
@@ -39,6 +43,24 @@ const getShopCarList = async () => {
state.shopCarList = data
}
+const getRefundDetail = async () => {
+ if (isEmpty(state.detailId)) return
+ const _pa = { id: state.detailId };
+ const { data } = await refundApi.get(_pa)
+ state.refundDetail = data
+}
+
+const doCancelRefund = async () => {
+ uni.showModal({
+ title: '提示',
+ content: '是否确定取消申请退款',
+ confirmColor: '#0094ff',
+ success: async (res) => {
+
+ }
+ })
+}
+
@@ -89,7 +111,7 @@ const getShopCarList = async () => {
-
+
{{ v.productName }}
¥ {{ hooks.useMoney(v.productPrice) }}
@@ -110,6 +132,52 @@ const getShopCarList = async () => {
+
+
+
+
+
+ 退款申请待商家处理
+
+
+ {{ hooks.useTime(state.refundDetail.updateTime, "") }}
+
+
+
+
+
+ 退款金额
+ ¥{{ hooks.useMoney(state.refundDetail.refundPrice) }}
+
+
+
+ 服务单号:
+ {{ state.refundDetail.no }}
+
+
+ 申请时间:
+ {{ hooks.useTime(state.refundDetail.createTime, "") }}
+
+
+ 售后类型:
+ {{ state.refundDetail.applyReason }}
+
+
+ 相关描述:
+ {{ state.refundDetail.applyDescription }}
+
+
+
+
+
+
+
+ 取消申请
+
+
diff --git a/src/pages/refund/apply.vue b/src/pages/refund/apply.vue
new file mode 100644
index 0000000..f133a0b
--- /dev/null
+++ b/src/pages/refund/apply.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.productName }}
+ ¥ {{ hooks.useMoney(v.productPrice) }}
+ x {{ v.productCount }}
+
+
+
+ ¥ {{ hooks.useMoney(v.totalPrice) }}
+
+
+
+
+ 实付款
+
+ ¥
+ {{ hooks.useMoney(state.detail.practicalTotalPrice) }}
+
+
+
+
+
+ 售后类型
+
+
+
+
+
+
+
+ 退款金额
+ ¥{{ hooks.useMoney(state.detail.practicalTotalPrice) }}
+
+
+
+
+ 申请原因
+
+ {{ applyForm.reasonStr || '请选择申请原因' }}
+
+
+
+
+
+
+ 相关描述
+
+
+
+
+
+
+
+ 提交申请
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/refund/history.vue b/src/pages/refund/history.vue
new file mode 100644
index 0000000..d3d9a0d
--- /dev/null
+++ b/src/pages/refund/history.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/tabbar/order.vue b/src/pages/tabbar/order.vue
index bdd91f1..13b6509 100644
--- a/src/pages/tabbar/order.vue
+++ b/src/pages/tabbar/order.vue
@@ -12,7 +12,7 @@ const data = {
{ id: null, name: '全部', disabled: false },
{ id: 1, name: '未支付', disabled: false },
{ id: 5, name: '待核销', disabled: false },
- { id: 10, name: '已退款', disabled: false },
+ { id: 10, name: '售后中', disabled: false },
{ id: 15, name: '已核销', disabled: false },
]
}
@@ -51,6 +51,8 @@ const doAppraise = () => {
}
const doRefund = (v: any) => {
+ router.jump("/pages/refund/apply", { id: v.id })
+ return
uni.showModal({
title: '提示',
content: '是否确定退款',
@@ -100,7 +102,7 @@ const doRefund = (v: any) => {
未支付
待核销
- 已退款
+ 售后中
已核销
diff --git a/src/sheep/api/common.ts b/src/sheep/api/common.ts
index 8c60b54..28c11b5 100644
--- a/src/sheep/api/common.ts
+++ b/src/sheep/api/common.ts
@@ -1,3 +1,13 @@
import request from "@/sheep/utils/request";
-export default {};
+export default {
+ setting: (params: any) =>
+ request({
+ url: "pay/setting/get",
+ method: "GET",
+ params,
+ custom: {
+ showLoading: false,
+ },
+ }),
+};
diff --git a/src/sheep/api/index.ts b/src/sheep/api/index.ts
index 8101071..42acaf0 100644
--- a/src/sheep/api/index.ts
+++ b/src/sheep/api/index.ts
@@ -14,6 +14,8 @@ export { default as payApi } from "./pay";
export { default as productApi } from "./product";
+export { default as refundApi } from "./refund";
+
export { default as userApi } from "./user";
export { default as walletApi } from "./wallet";
diff --git a/src/sheep/api/refund.ts b/src/sheep/api/refund.ts
new file mode 100644
index 0000000..4b9e107
--- /dev/null
+++ b/src/sheep/api/refund.ts
@@ -0,0 +1,18 @@
+import request from "@/sheep/utils/request";
+
+export default {
+ create: (data) => {
+ return request({
+ url: "/hardware/trade-after-sale/create",
+ method: "POST",
+ data,
+ });
+ },
+ get: (params) => {
+ return request({
+ url: "/hardware/trade-after-sale/get-by-order-id",
+ method: "GET",
+ params,
+ });
+ },
+};
diff --git a/src/static/icon/service_4.png b/src/static/icon/service_4.png
index 6c56e397c35f02904a5ca749e61bd34c8afa78c6..261355fdb128a548832d88547b7812af54a50aab 100644
GIT binary patch
literal 2863
zcmcIm`#;p_7iadveq73D#ze{Tacj(y(n{pgd@#e1!MIb@)V2(pTG=j0KFzK%m_<|!
zGDEpka@}llS;7!vTtZ2;iAhrKm++n1f8hK5;rlwz^FHT1=RD7OJ?C|v*LmVyY4)4s
z)#Rn5q&86OtnKi&IL?mBPXAm;z{I!
z(v%Prf^b;&wNxj$TwGi;_{_}TqNe0Q8=2mq+z>DhOzp*N?<{;NR0}y_f}?&4Un<&n
ziD$BdIFk~#PPkd-oGzYx-}J|<=Tk1%D`ueTe8o`zgJtVodO(L@s?d1;eiCihwS<}{
zyPl3d2`0Vm&K7e%8cHW@bkF`$J;@^*bdSup^}kx_IkXI;K1Am1>tnq#$Ia%ng{vzr
zjq3XCy2@{SOi^)9(?_Abl{@(}tJ|GYsS>$8Flg95=-t>e
z;y$g*GQn@m9`tWcUccsY#L+|!$4V>yO!gcGZS_8>0OpSV`)9Yguyq4axHU?}y+~(1
z{gE&9Mn9shBkYj%_Ok?JF!@OsHr<-xP0a$#YtI!recQ71meOGOA&fi9O}gL#(Qg~G
zq5=)1udNAlVIe=_o%p^%Y?()hD?~T&?nvu(I%3v8YykGyPN(&TAHdia4Fn);jf=^|
zyS#?APU<~{+6{-fZmXfW7dIN}^hFZSCe7V@=aeTBv@KA`YR<((2h{04E2z=|dvp|y
zsvP0cNI{hr*ptVio=|iLL+!CZhRu}+GPuD+?d@oCz!tMn#Wo)4Y(4i|}i$Ii2r{
z88Mmkg)Vmc^Lsl>Kg(Gb_=X^~T^eD_h-h8E$W1#o09op=k9Y69-UwC(4}6cFdbnLS
z#cvEpO8#a1Y6=!a4h
zL;ITxl!F$uT+q^u>zn)T${56^3)26-J5Zr3eC-&@GzT&qyKi4C+#0P~mI`xJ*K->e
ze&@fEJqlTjI~q4n1mLMz1#orlNa1!`DY~5G6}9n!{A0atAY0pB6=4lJl9QrG$heI7
zN`kLlvM|)$Zj)WSWpHGsZ8AH{-F}m9yxI9k-X4V}t7LJm(zdK62VZkdG6{3KD~NpW>1Mah$tfA1QS=l?_`xcjT(EUlZifGv~epim%ZH
zXC5)RZr`}IkTYuG@ITZX_87L^k>c&xK6{gS<%^m1z5?hndtz5qu
zMAhT2Iz|EJC&kf9Uba?KG*wjHJSW-_(dbyc^@TmACbj>uqS;hB6<
zwW=Ed6sOb7L+|aq<@*j;o?Q%l7-M_qg`TI^6UholA5iPKU;?HdxiA=`d&%&e+|R2}
z1QtL5?=bWh)($FPyAwBZ`J>2*^o(-Y6F{I^Mo_e=0y1~c+*1ceL7J+>>7?L`s|gA=
zI`>Hsr9en^e5M4uL2YoKTdxGw5a87grUVfkHvHVqS%N_Tmc=U!2CzU9jGj{7E5Y3V
z?y&voF!3TT_q&8A2Cdf1bM-qDV68s&$$Ut+xz)zDC53VH=F-C$&S^6vLIK0_L)~w3
z$Y*U{@As2<8z_*WF=qSXyj5o47BU2gOSWl)*yGNZ@F9y+cmx6vS&^dTmXfiU4Msu>
z@Owly>Z=Zj^%{0$JFf(lkO3_eLfEifa?kztTT%r+S&Y-1X5!UOO_62&1b4tuV#TL4DNx-zT6N%F35e%m^*Bk@00Hnf{|GATBX0p|59F9y0bLh
zP(pX4egE}W|A$zwnLo4Ef9k_=Ug~q|qTXA#91F3NlHWSny!kag`Hl0wpzaI%LpjMp86#Trw_ku)*(P+@YdwudY_#OhgWrFVq3D_Fc
zN{UiHI@nbov&filHVDLIj=Amvi@fR>gE_$ur^}o@#)tz8uvve*OB(KtzBXFv^bK_;
zB_D6j!Lh8U8fegHI6i|B@ojU<+HS#M;is|bG3Kb7=y6tn^k
zdcy4vJcTP;bPCvDX5RBIKY-skQf~P^-H$kYrMPKXl7UH~8qnxIijrvrF-{tk!~CR*~ceN>?dy(90&
z{EyX#U-;zO1Y)2;-BU5)j2wVCdqPWjb1V^nj>}uUQ=xrroIHF&-iyZZ%va}?O9?(_
zpAx*2;LyHWX*xd?1JV~h?|BdpykBoJEn9I3Pi>||Yr7Y#+U5?$zz)XB?IZ>+sQ30J
zWH9cL-9i6MxxwwMvo`{bOo3pL;mNJc9G?}9I8x2V1eO);p#G>*kWSiHJB($SI89cH
zrhNcenO7zTDkp|}9CLXAQ+Cj*k{$N0yHkAuZjh@{iIy*fa=
zHOdE81g(;$t_dZ9%XTV51^G2oMGTHn>CMqV{)}sg
zR=!%L7+YP`S7*&p5GCm^On;^v&KTQs!>gB_Vu;Q;XIW{KaJgNR!w-v!SE8)1Ja$-<
zyZ+Yx63wz?zW$`Uj-N-p6|H3l_=L{XEN
zA>@+EEk`cnmit8Mj$FE75W<#A45q9HH27%JqPaNXavmNf8n8&qO@p9`615CW($U!^YNVV=o?|
zpFaVVH@W+o+YbdK3{$Hz{i{ZG!a3!XiyACt*49k*eqB;ctCjJp26x^hV(NIIifdI~
z#=gny#k?_BFk$=aZ58F
zb6SEHuNVuaETE1xXZ$I(yRDM89BC3mk}BnIjK5Z-vAdtrVSlaP*93G?7PdIet+oiZ?D10Eq;n=0)(6eVuFp}KhTsXKL?0qU}bT>@)
zk>zhwp||I<@lvm@lD@ve2y9cx2xHrqSnlmy>qFRK+4zauF>J*+)wmMbVk@EL+zD>_
z#<*44;vGW8!qMnxrp+H_Oqhqw8t7s*oW>5z#0&JEE(H*t0WY%Wli|H()14{e*JT0=
zC=bzZiLZ@rhFlyYzun#S0;ESRucAJ<&zDn`EMz9I@!e6Q=7ULXSFEoF6l;L3HRm91
z`pykN+nEqWiil`e1!Wp+T+-1<_5Bl3o+FjMwiY2)}s
z-!@5`ou~QfHq737om5Y!xHCwF%T9~GXUEOFW?Da
z29e7daNKYULx~|1-WQRzpA~!K=mAL_#{6s@DZL{#67EM-jc9PYU}^gJ21Kiuq)CI@
z@`6-2N$_hwwb|e@?k8$FDsnL=WdkqYa5d*YAm#3u5j}wiQ
z5r)zlwUd%c0c{3AjaC)gHZNg4hZ~M-5vzoE{l+pAb%rrE0}SmJ65Dg>_y{H?gW&`PR)|iqxK5JpJTSq1e*G
zT8iCx#q?a=G1bA#lwue!W%cJXJS0mrsdpDgRhBcd`0f&jpx89simznrF5dWh|6Pp>
zEp-e_gispV?i*2T*yXCtTXc#sU%%j4=b%@b^QU74gex`86a+%JM#24ch6v@G%!>uJ
zDRmG9OJ0K{4F>EtN0F-7^zQDp*sA2}LJ)-`ntPUm<{9vluzd?q|yfvO&@g$TH%60<~fY@Ex_;dfC
zVfRLFS~Sn|=h#^OGb14C+2XdgkMM4};N7P-zUJerU+g?>*BObL!TZcbc0%xyPe<4o5+;A5X$sxYz&=5!S|SF`AX=Jvwh94DELh3f2)mM
z6UV=*VtnGpH8CTR3ohkLZ~rQa@a#?6hM=W!97%P?t}hDR5*R7ps;<`XByE$!Vbbx@
zgb7Wkv~G`7j{LYozXW2^l`&gSdwENFWC}36snyjN#H?Dqic`uee^MVEQ-xdNJH3W4P$xv3{=bNj-1PwKBY8_WmJSULd(}^GoHnqHb%JK@{Wt
zLk`^`w?((popo|oTCBB8n*U67)Q{QadxgwHB5@)>6$S>ki;8XpXoz=|6}P=vEDsim
zD-k~AJqa*WMyF`7zwgKBcR@8O4Z!zFZ>N56YNc`A*%utmfqclCr7PfMTg1`NhMjvT
zEb*zXs1n5-;|-_KFk!oJPcA;W+Spoelq7=8=J?o|rNj=$WNPu(xlZLn949~f`CxEh
zMG9yOuu&usL`e}3G{F@XixK1?WH|qA_Vemk1{{{vEV;i+*5S=lC~!e_D|%lFb3W6f
zQuzNJibPofK{q{?w=x@U!8ZafG&=6_!c_Jb)q&J{1lw!*KoF@H_iCb77tEgLW^zl@
z8$tvVTjGyZRFVx>7c_geSVf4bF~3vub38`zR3Xy1fAG!v_3jbTKElfZSladD@B)*+WQO
zmbn!Z4ICc(CKG>khukeY(S7uA2^6PvjTf~NT%-0?-LH=LwXm}#x;~NI%Iol_tS(kB
zMLl-P)y6cAzuIIGMuonSxTja-@Q`bXg4;9GPoU!!rO(rVYagTMX+O?+EynrRQ@
zj<#DRL5``ApH6#ajEBTPEn}~moOSK)spcodBT2w`Is=SWS=%IGP{$cED=rdt!6HOk
KGQPy-5A+{<(GubS
diff --git a/src/uni_modules/tm-ui/components/tm-picker-view/tm-picker-view.vue b/src/uni_modules/tm-ui/components/tm-picker-view/tm-picker-view.vue
index 7041120..df2bf50 100644
--- a/src/uni_modules/tm-ui/components/tm-picker-view/tm-picker-view.vue
+++ b/src/uni_modules/tm-ui/components/tm-picker-view/tm-picker-view.vue
@@ -1,5 +1,5 @@
-
\ No newline at end of file
From 638e6c43bc885812573b7042561d7a434113465e Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 18 Nov 2024 09:06:59 +0800
Subject: [PATCH 6/7] 111
---
src/pages/order/detail.vue | 8 +++++++-
src/pages/refund/apply.vue | 1 +
src/pages/refund/history.vue | 32 +++++++++++++++++++++++++++-----
src/sheep/api/refund.ts | 18 ++++++++++++++++--
4 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue
index 961f274..b09cb29 100644
--- a/src/pages/order/detail.vue
+++ b/src/pages/order/detail.vue
@@ -56,7 +56,13 @@ const doCancelRefund = async () => {
content: '是否确定取消申请退款',
confirmColor: '#0094ff',
success: async (res) => {
-
+ if (!res.confirm) return
+ uni.showLoading({ title: '取消中...', mask: false });
+ const _pa = { id: state.refundDetail.id }
+ const data = refundApi.cancel(_pa)
+ uni.hideLoading()
+ uni.showToast({ title: '取消成功', icon: "none" });
+ router.jump("/pages/tabbar/order")
}
})
}
diff --git a/src/pages/refund/apply.vue b/src/pages/refund/apply.vue
index f133a0b..ecd2374 100644
--- a/src/pages/refund/apply.vue
+++ b/src/pages/refund/apply.vue
@@ -101,6 +101,7 @@ const doSubmit = async () => {
const data = await refundApi.create(_pa)
uni.hideLoading()
uni.showToast({ title: '申请成功', icon: "none" });
+ router.jump("/pages/order/detail", { id: state.detailId })
} catch (error) {
console.error(error);
uni.hideLoading()
diff --git a/src/pages/refund/history.vue b/src/pages/refund/history.vue
index d3d9a0d..f575db4 100644
--- a/src/pages/refund/history.vue
+++ b/src/pages/refund/history.vue
@@ -1,30 +1,52 @@
+
+
+
+
+ {{ v.content }}
+
+
+ {{ hooks.useTime(v.updateTime, "") }}
+
+
+
diff --git a/src/sheep/api/refund.ts b/src/sheep/api/refund.ts
index 4b9e107..59da91e 100644
--- a/src/sheep/api/refund.ts
+++ b/src/sheep/api/refund.ts
@@ -1,18 +1,32 @@
import request from "@/sheep/utils/request";
export default {
- create: (data) => {
+ create: (data: any) => {
return request({
url: "/hardware/trade-after-sale/create",
method: "POST",
data,
});
},
- get: (params) => {
+ get: (params: any) => {
return request({
url: "/hardware/trade-after-sale/get-by-order-id",
method: "GET",
params,
});
},
+ history: (params: any) => {
+ return request({
+ url: "/hardware/trade-after-sale/history",
+ method: "GET",
+ params,
+ });
+ },
+ cancel: (params: any) => {
+ return request({
+ url: "/hardware/trade-after-sale/cancel",
+ method: "GET",
+ params,
+ });
+ },
};
From c3c6a58078718dbf65f1e81c4083067f249dc4fe Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 18 Nov 2024 09:45:29 +0800
Subject: [PATCH 7/7] 111
---
src/pages/order/detail.vue | 4 ++--
src/pages/refund/apply.vue | 2 +-
src/pages/refund/history.vue | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue
index b09cb29..f9d6516 100644
--- a/src/pages/order/detail.vue
+++ b/src/pages/order/detail.vue
@@ -62,7 +62,7 @@ const doCancelRefund = async () => {
const data = refundApi.cancel(_pa)
uni.hideLoading()
uni.showToast({ title: '取消成功', icon: "none" });
- router.jump("/pages/tabbar/order")
+ router.jump("/pages/tabbar/order", {}, 2)
}
})
}
@@ -178,7 +178,7 @@ const doCancelRefund = async () => {
-
取消申请
diff --git a/src/pages/refund/apply.vue b/src/pages/refund/apply.vue
index ecd2374..b92e356 100644
--- a/src/pages/refund/apply.vue
+++ b/src/pages/refund/apply.vue
@@ -9,7 +9,7 @@ import { orderApi, refundApi, commonApi } from "@@/api"
const data = {
payType: [
{ text: "仅退款", disabled: false, type: "10", value: "10" },
- { text: "退款退货", disabled: false, type: "20", value: "20" },
+ { text: "退款退货", disabled: true, type: "20", value: "20" },
]
}
const state = reactive({
diff --git a/src/pages/refund/history.vue b/src/pages/refund/history.vue
index f575db4..4d827d4 100644
--- a/src/pages/refund/history.vue
+++ b/src/pages/refund/history.vue
@@ -36,7 +36,7 @@ const getHistory = async () => {
-
+