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/App.vue b/src/App.vue index d9ad0b8..aa74039 100644 --- a/src/App.vue +++ b/src/App.vue @@ -16,8 +16,10 @@ onHide(() => { @import "@/sheep/scss/global.scss"; @import url(@/uni_modules/tm-ui/css/remixicon.min.css); + $theme-green: #06be36; $theme-blue: #0094ff; +$theme-gray: #999; .botder_btn { border: 1px solid #999; diff --git a/src/pages.json b/src/pages.json index a350897..3ecde96 100644 --- a/src/pages.json +++ b/src/pages.json @@ -87,6 +87,39 @@ } ] }, + { + "root": "pages/boxes", + "pages": [ + { + "path": "apply", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "detail", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "list", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "apply-list", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + } + ] + }, { "root": "pages/merchant", "pages": [ @@ -126,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/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-list.vue b/src/pages/boxes/apply-list.vue new file mode 100644 index 0000000..52eb4e2 --- /dev/null +++ b/src/pages/boxes/apply-list.vue @@ -0,0 +1,119 @@ + + + + + + \ No newline at end of file diff --git a/src/pages/boxes/apply.vue b/src/pages/boxes/apply.vue new file mode 100644 index 0000000..bddeac2 --- /dev/null +++ b/src/pages/boxes/apply.vue @@ -0,0 +1,215 @@ + + + + + + \ 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..27cca19 --- /dev/null +++ b/src/pages/boxes/detail.vue @@ -0,0 +1,83 @@ + + + + + + \ 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 @@ + + + + + + \ No newline at end of file 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 = () => { - \ 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 7a0bac0..41e5422 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 @@ -149,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" }) @@ -171,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)` @@ -239,7 +250,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/pages/refund/apply.vue b/src/pages/refund/apply.vue new file mode 100644 index 0000000..b92e356 --- /dev/null +++ b/src/pages/refund/apply.vue @@ -0,0 +1,186 @@ + + + + + + \ 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..4d827d4 --- /dev/null +++ b/src/pages/refund/history.vue @@ -0,0 +1,54 @@ + + + + + + \ No newline at end of file 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..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: '是否确定退款', @@ -70,7 +72,7 @@ const doRefund = (v: any) => { uni.hideLoading() } } - }); + }) } @@ -100,7 +102,7 @@ const doRefund = (v: any) => { 未支付 待核销 - 已退款 + 售后中 已核销 diff --git a/src/sheep/api/boxes.ts b/src/sheep/api/boxes.ts new file mode 100644 index 0000000..606f141 --- /dev/null +++ b/src/sheep/api/boxes.ts @@ -0,0 +1,58 @@ +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, + }, + }), + get: (data: any) => + request({ + url: "boxes/info/api/get", + 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/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 a36c3e0..42acaf0 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"; @@ -12,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..59da91e --- /dev/null +++ b/src/sheep/api/refund.ts @@ -0,0 +1,32 @@ +import request from "@/sheep/utils/request"; + +export default { + create: (data: any) => { + return request({ + url: "/hardware/trade-after-sale/create", + method: "POST", + data, + }); + }, + 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, + }); + }, +}; 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/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, }; diff --git a/src/static/icon/service_4.png b/src/static/icon/service_4.png new file mode 100644 index 0000000..261355f Binary files /dev/null and b/src/static/icon/service_4.png differ 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