uniapp(新增):秒杀详情立即购买,团购详情立即购买,团购详情购买操作,收货地址提交,订单售后提交 添加 按钮loading状态,防止多次点击

This commit is contained in:
21世纪小八路
2024-10-20 11:44:14 +08:00
parent e0618551aa
commit 8edb0f1567
7 changed files with 75 additions and 44 deletions

View File

@@ -96,8 +96,8 @@
<!-- 商品sku弹框 --> <!-- 商品sku弹框 -->
<GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData" <GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData"
:safeAreaInsetBottom="false" @handleChangePopup="handleChangePopup" @handleAddCart="handleAddCart" :safeAreaInsetBottom="false" :buyNowNowloading="buyNowLoading" :addCartloading="addCartLoading"
@handleBuyNow="handleBuyNow"> @handleChangePopup="handleChangePopup" @handleAddCart="handleAddCart" @handleBuyNow="handleBuyNow">
</GoodsDetailSkuPopup> </GoodsDetailSkuPopup>
<!-- 头部大分类的弹框 --> <!-- 头部大分类的弹框 -->
@@ -131,6 +131,7 @@
import { getDomInfo, handleStaticResources, handleRouteNavigateTo, handleShowToast, handleRouteSwitchTab } from '@/core/utils'; import { getDomInfo, handleStaticResources, handleRouteNavigateTo, handleShowToast, handleRouteSwitchTab } from '@/core/utils';
import { AddCartEnum, PaymentTypeEnum, RouteSwitchTabEnum } from '@/core/enum'; import { AddCartEnum, PaymentTypeEnum, RouteSwitchTabEnum } from '@/core/enum';
import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue'; import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue';
import { useLoadingFn } from '@/core/hooks';
const instance = getCurrentInstance(); const instance = getCurrentInstance();
@@ -185,6 +186,13 @@
goodsDetailData: {}, goodsDetailData: {},
}); });
const buyNowLoading = ref(false);
const addCartLoading = ref(false);
const handleBuyNow = useLoadingFn(onBuyNow, buyNowLoading);
const handleAddCart = useLoadingFn(onAddCart, addCartLoading)
watch(() => props.data, (newVal : Array<CategoriesType>) => { watch(() => props.data, (newVal : Array<CategoriesType>) => {
if (newVal) { if (newVal) {
state.classifyData = newVal.map((item : CategoriesType) => { state.classifyData = newVal.map((item : CategoriesType) => {
@@ -277,7 +285,7 @@
} }
/** 添加购物车 */ /** 添加购物车 */
const handleAddCart = async ({ productId, nums } : any) => { async function onAddCart({ productId, nums } : any) {
const addCart : Response<number> = await queryAddCart({ const addCart : Response<number> = await queryAddCart({
productId, productId,
nums, nums,
@@ -295,7 +303,7 @@
} }
/** 立即购买 */ /** 立即购买 */
const handleBuyNow = async ({ productId, nums } : any) => { async function onBuyNow({ productId, nums } : any) {
const addCart : Response<number> = await queryAddCart({ const addCart : Response<number> = await queryAddCart({
productId, productId,
nums, nums,

View File

@@ -127,6 +127,7 @@
const addCartLoading = ref(false); const addCartLoading = ref(false);
const handleBuyNow = useLoadingFn(onBuyNow, buyNowLoading); const handleBuyNow = useLoadingFn(onBuyNow, buyNowLoading);
const handleAddCart = useLoadingFn(onAddCart, addCartLoading)
watch(() => props.data, (newVal : Array<CategoriesType>) => { watch(() => props.data, (newVal : Array<CategoriesType>) => {
if (newVal) { if (newVal) {
@@ -208,7 +209,7 @@
} }
/** 添加购物车 */ /** 添加购物车 */
const handleAddCart = async ({ productId, nums } : any) => { async function onAddCart({ productId, nums } : any) {
const addCart : Response<number> = await queryAddCart({ const addCart : Response<number> = await queryAddCart({
productId, productId,
nums, nums,

View File

@@ -54,14 +54,14 @@
<!-- 商品sku弹框 --> <!-- 商品sku弹框 -->
<GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData" <GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData"
:isShowAddCartBtn="false" btnBuyTitlt="立即团购" @handleChangePopup="handleChangePopup" :isShowAddCartBtn="false" :buyNowNowloading="loading" btnBuyTitlt="立即团购"
@handleBuyNow="handleSeckillNow"></GoodsDetailSkuPopup> @handleChangePopup="handleChangePopup" @handleBuyNow="handleBuyNow"></GoodsDetailSkuPopup>
</view> </view>
</coreshop-page> </coreshop-page>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue'; import { reactive, ref } from 'vue';
import { onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'; import { onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app';
import { queryActivityDetial, queryCartNum, queryShare, queryAddCart } from '@/core/api'; import { queryActivityDetial, queryCartNum, queryShare, queryAddCart } from '@/core/api';
import { PaymentTypeEnum, ShareClientEnum, ShareModelEnum, ShareEnum } from '@/core/enum'; import { PaymentTypeEnum, ShareClientEnum, ShareModelEnum, ShareEnum } from '@/core/enum';
@@ -69,12 +69,11 @@
import { UserToken, shareUrl } from '@/core/consts' import { UserToken, shareUrl } from '@/core/consts'
import { useCartStore, useLoginStore } from '@/core/store'; import { useCartStore, useLoginStore } from '@/core/store';
import { handleShowToast, handleRouteNavigateTo } from '@/core/utils'; import { handleShowToast, handleRouteNavigateTo } from '@/core/utils';
import GoodsDetail from '@/pages/components/goods-detail/index.vue'; import GoodsDetail from '@/pages/components/goods-detail/index.vue';
import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue'; import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue';
import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue'; import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue';
import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue'; import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue';
import { useLoadingFn } from '@/core/hooks';
interface QueryParams { interface QueryParams {
id : number; id : number;
} }
@@ -117,6 +116,9 @@
} }
}); });
const loading = ref(false);
const handleBuyNow = useLoadingFn(onBuyNow, loading)
onLoad((query : QueryParams) => { onLoad((query : QueryParams) => {
state.id = Number(query.id); state.id = Number(query.id);
/** 获取商品详情 */ /** 获取商品详情 */
@@ -177,7 +179,7 @@
} }
/** 立即秒杀 */ /** 立即秒杀 */
const handleSeckillNow = async ({ productId, nums } : any) => { async function onBuyNow({ productId, nums } : any) {
const addCart : Response<number> = await queryAddCart({ const addCart : Response<number> = await queryAddCart({
ProductId: productId, ProductId: productId,
Nums: nums, Nums: nums,

View File

@@ -3,7 +3,7 @@
<view class="goods-detail"> <view class="goods-detail">
<!-- 商品详情 --> <!-- 商品详情 -->
<GoodsDetail :goodsId="state.goodsDetailData?.id" :goodsDetailData="state.goodsDetailData" <GoodsDetail :goodsId="state.goodsDetailData?.id" :goodsDetailData="state.goodsDetailData"
:swiperBanner="state.swiperBanner" :shareType="ShareEnum.pinTuan" :swiperBanner="state.swiperBanner" :shareType="ShareEnum.pinTuan"
:goodsDetailContent="state.goodsDetailContent" :isActivityGoods="true"> :goodsDetailContent="state.goodsDetailContent" :isActivityGoods="true">
<template #activityGoodsOtheService> <template #activityGoodsOtheService>
<view class="pinTuan-record" v-if="state.goodsDetailData?.pinTuanRecord?.length > 0"> <view class="pinTuan-record" v-if="state.goodsDetailData?.pinTuanRecord?.length > 0">
@@ -62,14 +62,14 @@
<!-- 商品sku弹框 --> <!-- 商品sku弹框 -->
<GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData" <GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData"
:isShowAddCartBtn="false" @handleChangePopup="handleChangePopup" @handleBuyNow="handleBuyNow" :isShowAddCartBtn="false" :buyNowNowloading="loading" @handleChangePopup="handleChangePopup" @handleBuyNow="handleBuyNow"
:btnBuyTitlt="state.btnBuyTitlt"> :btnBuyTitlt="state.btnBuyTitlt">
</GoodsDetailSkuPopup> </GoodsDetailSkuPopup>
</view> </view>
</coreshop-page> </coreshop-page>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue'; import { reactive, ref } from 'vue';
import { onLoad } from '@dcloudio/uni-app'; import { onLoad } from '@dcloudio/uni-app';
import { queryPinTuanGoodsDetail, queryCartNum, queryAddCart, queryOrderPinTuanTeamInfo } from '@/core/api'; import { queryPinTuanGoodsDetail, queryCartNum, queryAddCart, queryOrderPinTuanTeamInfo } from '@/core/api';
import type { Response } from '@/core/models'; import type { Response } from '@/core/models';
@@ -83,6 +83,7 @@
import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue'; import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue';
import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue'; import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue';
import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue'; import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue';
import { useLoadingFn } from '@/core/hooks';
interface QueryParams { interface QueryParams {
id : number; id : number;
@@ -107,7 +108,7 @@
teamId : number; teamId : number;
isSingleBuy : boolean; isSingleBuy : boolean;
btnBuyTitlt : string; btnBuyTitlt : string;
teamInfo : any; teamInfo : any;
}>({ }>({
id: 0, id: 0,
goodsDetailData: {}, goodsDetailData: {},
@@ -120,9 +121,12 @@
teamId: 0, teamId: 0,
isSingleBuy: true, isSingleBuy: true,
btnBuyTitlt: "发起拼团", btnBuyTitlt: "发起拼团",
teamInfo: {}, teamInfo: {},
}); });
const loading = ref(false);
const handleBuyNow = useLoadingFn(onBuyNow, loading)
onLoad((query : QueryParams) => { onLoad((query : QueryParams) => {
if (query?.teamId) { if (query?.teamId) {
state.goodsDetailData = { state.goodsDetailData = {
@@ -193,7 +197,7 @@
state.isSingleBuy = true; state.isSingleBuy = true;
state.btnBuyTitlt = '单独购买'; state.btnBuyTitlt = '单独购买';
state.goodsDetailData.skuList.sku_list = state.defaultSkuList; state.goodsDetailData.skuList.sku_list = state.defaultSkuList;
}); });
} }
/** 拼团购买 */ /** 拼团购买 */
@@ -204,7 +208,7 @@
state.isSingleBuy = false; state.isSingleBuy = false;
state.btnBuyTitlt = '发起拼团'; state.btnBuyTitlt = '发起拼团';
state.goodsDetailData.skuList.sku_list = state.activitySkuList; state.goodsDetailData.skuList.sku_list = state.activitySkuList;
}); });
} }
/** 去拼单 */ /** 去拼单 */
@@ -219,11 +223,11 @@
} }
/** 立即购买购买 */ /** 立即购买购买 */
const handleBuyNow = async ({ productId, nums } : any) => { async function onBuyNow({ productId, nums } : any) {
if (state.isSingleBuy) { if (state.isSingleBuy) {
handleSingleQuery(productId, nums) await handleSingleQuery(productId, nums)
} else { } else {
handleMultipleQuery(productId, nums) await handleMultipleQuery(productId, nums)
} }
} }
@@ -261,7 +265,7 @@
} else { } else {
handleShowToast(addCart.msg); handleShowToast(addCart.msg);
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './detail.scss'; @import './detail.scss';

View File

@@ -3,7 +3,7 @@
<view class="goods-detail"> <view class="goods-detail">
<!-- 商品详情 --> <!-- 商品详情 -->
<GoodsDetail :goodsId="state.goodsDetailData?.id" :goodsDetailData="state.goodsDetailData" <GoodsDetail :goodsId="state.goodsDetailData?.id" :goodsDetailData="state.goodsDetailData"
:swiperBanner="state.swiperBanner" :spesDesc="state.spesDesc" :swiperBanner="state.swiperBanner" :spesDesc="state.spesDesc"
:goodsDetailContent="state.goodsDetailContent" :isActivityGoods="true" :shareType="ShareEnum.seckill" :goodsDetailContent="state.goodsDetailContent" :isActivityGoods="true" :shareType="ShareEnum.seckill"
@hanldeShowGoodSku="hanldeShowGoodSku"> @hanldeShowGoodSku="hanldeShowGoodSku">
<template #tip> <template #tip>
@@ -54,32 +54,33 @@
<!-- 商品sku弹框 --> <!-- 商品sku弹框 -->
<GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData" <GoodsDetailSkuPopup :showSku="state.showSku" :goodsDetailData="state.goodsDetailData"
:isShowAddCartBtn="false" btnBuyTitlt="立即秒杀" @handleChangePopup="handleChangePopup" :isShowAddCartBtn="false" btnBuyTitlt="立即秒杀" :buyNowNowloading="loading"
@handleBuyNow="handleSeckillNow"></GoodsDetailSkuPopup> @handleChangePopup="handleChangePopup" @handleBuyNow="handleSeckillNow"></GoodsDetailSkuPopup>
</view> </view>
</coreshop-page> </coreshop-page>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue'; import { reactive, ref } from 'vue';
import { onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'; import { onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app';
import { queryActivityDetial, queryCartNum, queryShare, queryAddCart, queryUserInfo } from '@/core/api'; import { queryActivityDetial, queryCartNum, queryShare, queryAddCart, queryUserInfo } from '@/core/api';
import { PaymentTypeEnum, ShareClientEnum, ShareModelEnum, ShareEnum } from '@/core/enum'; import { PaymentTypeEnum, ShareClientEnum, ShareModelEnum, ShareEnum } from '@/core/enum';
import type { Response, UserInfoType } from '@/core/models'; import type { Response } from '@/core/models';
import { UserToken, shareUrl } from '@/core/consts' import { UserToken, shareUrl } from '@/core/consts'
import { useCartStore, useUserInfoStore ,useLoginStore} from '@/core/store'; import { useCartStore, useLoginStore } from '@/core/store';
import { handleShowToast, handleRouteNavigateTo } from '@/core/utils'; import { handleShowToast, handleRouteNavigateTo } from '@/core/utils';
import GoodsDetail from '@/pages/components/goods-detail/index.vue'; import GoodsDetail from '@/pages/components/goods-detail/index.vue';
import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue'; import GoodsDetailRecommend from '@/pages/components/goods-detail/components/goods-detail-recommend/goods-detail-recommend.vue';
import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue'; import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue';
import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue'; import GoodsDetailBottomTabbar from '@/pages/components/goods-detail/components/goods-detail-bottom-tabbar/goods-detail-bottom-tabbar.vue';
import { useLoadingFn } from '@/core/hooks';
interface QueryParams { interface QueryParams {
id : number; id : number;
} }
/** 登录store */ /** 登录store */
const _useLoginStore = useLoginStore(); const _useLoginStore = useLoginStore();
const cartStore = useCartStore(); const cartStore = useCartStore();
@@ -91,7 +92,7 @@
shareUrl : string; shareUrl : string;
id : number; id : number;
showTip : boolean; showTip : boolean;
spesDesc : string; spesDesc : string;
timeData : { timeData : {
days : number, days : number,
hours : number, hours : number,
@@ -106,7 +107,7 @@
shareUrl: "", shareUrl: "",
id: 0, id: 0,
showTip: true, showTip: true,
spesDesc: "", spesDesc: "",
timeData: { timeData: {
days: 0, days: 0,
hours: 0, hours: 0,
@@ -115,6 +116,9 @@
} }
}); });
const loading = ref(false);
const handleSeckillNow = useLoadingFn(onSeckillNow, loading)
onLoad((query : QueryParams) => { onLoad((query : QueryParams) => {
state.id = Number(query.id); state.id = Number(query.id);
/** 获取商品详情 */ /** 获取商品详情 */
@@ -171,11 +175,11 @@
const hanldeShowGoodSku = () => { const hanldeShowGoodSku = () => {
_useLoginStore.checkLogin(() => { _useLoginStore.checkLogin(() => {
state.showSku = true; state.showSku = true;
}); });
} }
/** 立即秒杀 */ /** 立即秒杀 */
const handleSeckillNow = async ({ productId, nums } : any) => { async function onSeckillNow({ productId, nums } : any) {
const addCart : Response<number> = await queryAddCart({ const addCart : Response<number> = await queryAddCart({
ProductId: productId, ProductId: productId,
Nums: nums, Nums: nums,
@@ -190,7 +194,7 @@
} else { } else {
handleShowToast(addCart.msg); handleShowToast(addCart.msg);
} }
} }
/** 获取分享url */ /** 获取分享url */
const getShareUrl = async () => { const getShareUrl = async () => {

View File

@@ -46,7 +46,7 @@
</view> </view>
</view> </view>
<coreshop-fixed-bottom-button :radius="100" title="保存" <coreshop-fixed-bottom-button :radius="100" title="保存" :loading="loading"
@onClick="handleSaveShip"></coreshop-fixed-bottom-button> @onClick="handleSaveShip"></coreshop-fixed-bottom-button>
<coreshop-select-city :show="state.showSelectCity" :pickerValue="state.pickerValue" <coreshop-select-city :show="state.showSelectCity" :pickerValue="state.pickerValue"
@@ -56,13 +56,14 @@
</coreshop-page> </coreshop-page>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue'; import { reactive, ref } from 'vue';
import { onLoad, onShow, onUnload } from '@dcloudio/uni-app'; import { onLoad, onShow, onUnload } from '@dcloudio/uni-app';
import { AddressPageTitltEnum, ShowAllowAddressToUseMap } from '@/core/enum'; import { AddressPageTitltEnum, ShowAllowAddressToUseMap } from '@/core/enum';
import { queryAreaId, querySaveUserShip, queryShipDetail } from '@/core/api'; import { queryAreaId, querySaveUserShip, queryShipDetail } from '@/core/api';
import type { Response, ShopConfigStoreType, AddressType } from '@/core/models'; import type { Response, ShopConfigStoreType, AddressType } from '@/core/models';
import { useShopConfigStore } from '@/core/store'; import { useShopConfigStore } from '@/core/store';
import { handleShowToast } from '@/core/utils'; import { handleShowToast } from '@/core/utils';
import { useLoadingFn } from '@/core/hooks';
interface QueryParams { interface QueryParams {
type : string; type : string;
@@ -103,7 +104,7 @@
city: "", city: "",
longitude: 0, longitude: 0,
latitude: 0, latitude: 0,
region: ['湖南省', '怀化市', '鹤城区'], region: [],
shipId: 0, shipId: 0,
submitStatus: true, submitStatus: true,
pickerValue: '', pickerValue: '',
@@ -118,6 +119,11 @@
} }
}); });
const loading = ref(false);
const handleSaveShip = useLoadingFn(onSaveShip, loading)
onShow(() => { onShow(() => {
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
const chooseLocation = requirePlugin('chooseLocation'); const chooseLocation = requirePlugin('chooseLocation');
@@ -278,7 +284,7 @@
} }
/** 提交地址 */ /** 提交地址 */
const handleSaveShip = async () => { async function onSaveShip() {
if (!state.submitStatus) { if (!state.submitStatus) {
return; return;
} }

View File

@@ -91,20 +91,23 @@
</view> </view>
<!-- 按钮 --> <!-- 按钮 -->
<view class="btn-box"> <!-- <view class="btn-box">
<view class="btn" @click="handlesubmit">提交</view> <view class="btn" @click="handlesubmit">提交</view>
</view> </view> -->
<coreshop-fixed-bottom-button :loading="loading" title="提交"
@onClick="handlesubmit()"></coreshop-fixed-bottom-button>
</view> </view>
</coreshop-page> </coreshop-page>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue'; import { reactive, ref } from 'vue';
import { onLoad } from '@dcloudio/uni-app'; import { onLoad } from '@dcloudio/uni-app';
import { handleShowToast, handleRouteNavigateTo } from '@/core/utils'; import { handleShowToast, handleRouteNavigateTo } from '@/core/utils';
import { queryOrderDetails, queryUploadImages, queryAddAftersales } from '@/core/api'; import { queryOrderDetails, queryUploadImages, queryAddAftersales } from '@/core/api';
import type { Response } from '@/core/models'; import type { Response } from '@/core/models';
import { OrderAllStatusTypeEnum, OrderShipStatusEnum } from '@/core/enum'; import { OrderAllStatusTypeEnum, OrderShipStatusEnum } from '@/core/enum';
import { amount } from '@/uni_modules/uv-ui-tools/libs/function/test.js'; import { amount } from '@/uni_modules/uv-ui-tools/libs/function/test.js';
import { useLoadingFn } from '@/core/hooks';
enum RefundType { enum RefundType {
/** 仅退款 */ /** 仅退款 */
@@ -141,6 +144,9 @@
refundPrice: 0, refundPrice: 0,
}); });
const loading = ref(false);
const handlesubmit = useLoadingFn(onSubmit, loading)
onLoad((query : QueryParams) => { onLoad((query : QueryParams) => {
if (query?.orderId) { if (query?.orderId) {
state.orderId = query?.orderId; state.orderId = query?.orderId;
@@ -288,7 +294,7 @@
} }
/** 提交 */ /** 提交 */
const handlesubmit = async () => { async function onSubmit() {
if (!amount(state.refundPrice)) { if (!amount(state.refundPrice)) {
handleShowToast('请输入正确金额'); return; handleShowToast('请输入正确金额'); return;
} }