build(deps): update deps
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-24 16:02:44 +08:00
parent 097029128c
commit 8e119162f1
22 changed files with 2212 additions and 377 deletions

57
.idea/codeStyles/Project.xml generated Normal file
View File

@@ -0,0 +1,57 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<HTMLCodeStyleSettings>
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
</HTMLCodeStyleSettings>
<JSCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
<option name="SPACES_WITHIN_OBJECT_TYPE_BRACES" value="false" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
<option name="SPACES_WITHIN_OBJECT_TYPE_BRACES" value="false" />
</TypeScriptCodeStyleSettings>
<VueCodeStyleSettings>
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
</VueCodeStyleSettings>
<codeStyleSettings language="HTML">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Vue">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

6
.idea/git_toolbox_blame.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="version" value="2" />
</component>
</project>

View File

@@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="Stylelint" enabled="true" level="ERROR" enabled_by_default="true" />
</profile>
</component>

4
.idea/shelf/___.xml generated Normal file
View File

@@ -0,0 +1,4 @@
<changelist name="在变基之前未提交的更改_[更改]" date="1727095460566" recycled="true" deleted="true">
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在变基之前未提交的更改_[更改]/shelved.patch" />
<option name="DESCRIPTION" value="在变基之前未提交的更改 [更改]" />
</changelist>

File diff suppressed because one or more lines are too long

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

26
.idea/workspace.xml generated
View File

@@ -5,21 +5,16 @@
</component>
<component name="ChangeListManager">
<list default="true" id="7ab9fc39-b8f5-4c75-8b68-06560187de80" name="更改" comment="">
<change afterPath="$PROJECT_DIR$/src/static/popTip2.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/components.d.ts" beforeDir="false" afterPath="$PROJECT_DIR$/components.d.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/Cart.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/Cart.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/MerList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/MerList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/Popup.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/Popup.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/withdrawal/index.config.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/withdrawal/index.config.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/add_order/add_menu/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/add_order/add_menu/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/order_manage/detail/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/order_manage/detail/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/order_manage/list/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/order_manage/list/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/verify/verify_list/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/verify/verify_list/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/admin/withdrawal/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/admin/withdrawal/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/cart/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/cart/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/goods/goods_detail/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/goods/goods_detail/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/goods/pay/index.config.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/goods/pay/index.config.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/goods/pay/index.scss" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/goods/pay/index.scss" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/goods/pay/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/goods/pay/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/index/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/index/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/mer/mer_detail/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/mer/mer_detail/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/user/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/user/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/users/order_list/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/users/order_list/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/users/order_list_detail/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/users/order_list_detail/index.vue" afterDir="false" />
</list>
@@ -59,11 +54,11 @@
<list>
<RecentBranch>
<option name="branchName" value="dev" />
<option name="lastUsedInstant" value="1723461404" />
<option name="lastUsedInstant" value="1727095515" />
</RecentBranch>
<RecentBranch>
<option name="branchName" value="test" />
<option name="lastUsedInstant" value="1723461370" />
<option name="lastUsedInstant" value="1727095484" />
</RecentBranch>
<RecentBranch>
<option name="branchName" value="master" />
@@ -162,6 +157,13 @@
<workItem from="1725359530794" duration="51000" />
<workItem from="1725359589345" duration="47000" />
<workItem from="1725359641218" duration="12030000" />
<workItem from="1727095306994" duration="898000" />
<workItem from="1727096222888" duration="57000" />
<workItem from="1727096286510" duration="23000" />
<workItem from="1727149833306" duration="64000" />
<workItem from="1727150105344" duration="642000" />
<workItem from="1727154905601" duration="284000" />
<workItem from="1727155681075" duration="125000" />
</task>
<servers />
</component>

96
components.d.ts vendored
View File

@@ -1,57 +1,57 @@
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core'
import '@vue/runtime-core';
export {}
export {};
declare module '@vue/runtime-core' {
export interface GlobalComponents {
Auth: typeof import('./src/components/Auth.vue')['default']
Back: typeof import('./src/components/Back.vue')['default']
Cart: typeof import('./src/components/Cart.vue')['default']
MerList: typeof import('./src/components/MerList.vue')['default']
NutAvatar: typeof import('@nutui/nutui-taro')['Avatar']
NutBacktop: typeof import('@nutui/nutui-taro')['Backtop']
NutButton: typeof import('@nutui/nutui-taro')['Button']
NutCalendar: typeof import('@nutui/nutui-taro')['Calendar']
NutCell: typeof import('@nutui/nutui-taro')['Cell']
NutCellGroup: typeof import('@nutui/nutui-taro')['CellGroup']
NutCheckbox: typeof import('@nutui/nutui-taro')['Checkbox']
NutCheckboxGroup: typeof import('@nutui/nutui-taro')['CheckboxGroup']
NutDialog: typeof import('@nutui/nutui-taro')['Dialog']
NutEllipsis: typeof import('@nutui/nutui-taro')['Ellipsis']
NutEmpty: typeof import('@nutui/nutui-taro')['Empty']
NutForm: typeof import('@nutui/nutui-taro')['Form']
NutFormItem: typeof import('@nutui/nutui-taro')['FormItem']
NutGrid: typeof import('@nutui/nutui-taro')['Grid']
NutGridItem: typeof import('@nutui/nutui-taro')['GridItem']
NutImagePreview: typeof import('@nutui/nutui-taro')['ImagePreview']
NutInput: typeof import('@nutui/nutui-taro')['Input']
NutInputNumber: typeof import('@nutui/nutui-taro')['InputNumber']
NutOverlay: typeof import('@nutui/nutui-taro')['Overlay']
NutPagination: typeof import('@nutui/nutui-taro')['Pagination']
NutPicker: typeof import('@nutui/nutui-taro')['Picker']
NutPopover: typeof import('@nutui/nutui-taro')['Popover']
NutPopup: typeof import('@nutui/nutui-taro')['Popup']
NutPrice: typeof import('@nutui/nutui-taro')['Price']
NutRadio: typeof import('@nutui/nutui-taro')['Radio']
NutRadioGroup: typeof import('@nutui/nutui-taro')['RadioGroup']
NutRate: typeof import('@nutui/nutui-taro')['Rate']
NutSwiper: typeof import('@nutui/nutui-taro')['Swiper']
NutSwiperItem: typeof import('@nutui/nutui-taro')['SwiperItem']
NutSwitch: typeof import('@nutui/nutui-taro')['Switch']
NutTable: typeof import('@nutui/nutui-taro')['Table']
NutTabPane: typeof import('@nutui/nutui-taro')['TabPane']
NutTabs: typeof import('@nutui/nutui-taro')['Tabs']
NutTextarea: typeof import('@nutui/nutui-taro')['Textarea']
NutUploader: typeof import('@nutui/nutui-taro')['Uploader']
Pay: typeof import('./src/components/Pay.vue')['default']
Popup: typeof import('./src/components/Popup.vue')['default']
RichEditor: typeof import('./src/components/RichEditor.vue')['default']
StoreList: typeof import('./src/components/StoreList.vue')['default']
Ucharts: typeof import('./src/components/Ucharts.vue')['default']
Upload: typeof import('./src/components/Upload.vue')['default']
UserModal: typeof import('./src/components/UserModal.vue')['default']
Auth: typeof import('./src/components/Auth.vue')['default'];
Back: typeof import('./src/components/Back.vue')['default'];
Cart: typeof import('./src/components/Cart.vue')['default'];
MerList: typeof import('./src/components/MerList.vue')['default'];
NutAvatar: typeof import('@nutui/nutui-taro')['Avatar'];
NutBacktop: typeof import('@nutui/nutui-taro')['Backtop'];
NutButton: typeof import('@nutui/nutui-taro')['Button'];
NutCalendar: typeof import('@nutui/nutui-taro')['Calendar'];
NutCell: typeof import('@nutui/nutui-taro')['Cell'];
NutCellGroup: typeof import('@nutui/nutui-taro')['CellGroup'];
NutCheckbox: typeof import('@nutui/nutui-taro')['Checkbox'];
NutCheckboxGroup: typeof import('@nutui/nutui-taro')['CheckboxGroup'];
NutDialog: typeof import('@nutui/nutui-taro')['Dialog'];
NutEllipsis: typeof import('@nutui/nutui-taro')['Ellipsis'];
NutEmpty: typeof import('@nutui/nutui-taro')['Empty'];
NutForm: typeof import('@nutui/nutui-taro')['Form'];
NutFormItem: typeof import('@nutui/nutui-taro')['FormItem'];
NutGrid: typeof import('@nutui/nutui-taro')['Grid'];
NutGridItem: typeof import('@nutui/nutui-taro')['GridItem'];
NutImagePreview: typeof import('@nutui/nutui-taro')['ImagePreview'];
NutInput: typeof import('@nutui/nutui-taro')['Input'];
NutInputNumber: typeof import('@nutui/nutui-taro')['InputNumber'];
NutOverlay: typeof import('@nutui/nutui-taro')['Overlay'];
NutPagination: typeof import('@nutui/nutui-taro')['Pagination'];
NutPicker: typeof import('@nutui/nutui-taro')['Picker'];
NutPopover: typeof import('@nutui/nutui-taro')['Popover'];
NutPopup: typeof import('@nutui/nutui-taro')['Popup'];
NutPrice: typeof import('@nutui/nutui-taro')['Price'];
NutRadio: typeof import('@nutui/nutui-taro')['Radio'];
NutRadioGroup: typeof import('@nutui/nutui-taro')['RadioGroup'];
NutRate: typeof import('@nutui/nutui-taro')['Rate'];
NutSwiper: typeof import('@nutui/nutui-taro')['Swiper'];
NutSwiperItem: typeof import('@nutui/nutui-taro')['SwiperItem'];
NutSwitch: typeof import('@nutui/nutui-taro')['Switch'];
NutTable: typeof import('@nutui/nutui-taro')['Table'];
NutTabPane: typeof import('@nutui/nutui-taro')['TabPane'];
NutTabs: typeof import('@nutui/nutui-taro')['Tabs'];
NutTextarea: typeof import('@nutui/nutui-taro')['Textarea'];
NutUploader: typeof import('@nutui/nutui-taro')['Uploader'];
Pay: typeof import('./src/components/Pay.vue')['default'];
Popup: typeof import('./src/components/Popup.vue')['default'];
RichEditor: typeof import('./src/components/RichEditor.vue')['default'];
StoreList: typeof import('./src/components/StoreList.vue')['default'];
Ucharts: typeof import('./src/components/Ucharts.vue')['default'];
Upload: typeof import('./src/components/Upload.vue')['default'];
UserModal: typeof import('./src/components/UserModal.vue')['default'];
}
}

View File

@@ -62,7 +62,7 @@
"dependencies": {
"@babel/runtime": "^7.23.5",
"@nutui/icons-vue-taro": "^0.0.9",
"@nutui/nutui-taro": "^4.3.12",
"@nutui/nutui-taro": "^4.3.13",
"@qiun/vue-ucharts": "2.5.0-20230101",
"@tarojs/components": "3.6.34",
"@tarojs/helper": "3.6.34",

View File

@@ -201,7 +201,8 @@ defineExpose({
<view class="container flex items-center">
<!-- <view>购物车数量: {{ cartInfo.count }}</view> -->
<view class="cardImg">
<image src="http://p1.meituan.net/csc/929f447a96a44b09a09b2e0055433222717.png">
<image
src="http://p1.meituan.net/csc/929f447a96a44b09a09b2e0055433222717.png">
</image>
<view class="count-text" v-if="cartInfo.count > 0">
<text>{{ cartInfo.count }}</text>
@@ -209,20 +210,30 @@ defineExpose({
</view>
<view class="ml-1 text-[28px]">
<text>总金额: {{ cartInfo.discount_price.toFixed(2) }}</text>
<text v-if="!IsPendingOrder">积分抵扣: {{ cartInfo.discount_integral.toFixed(2) }}
<text v-if="!IsPendingOrder"
>积分抵扣: {{ cartInfo.discount_integral.toFixed(2) }}
</text>
</view>
</view>
<view v-if="cartInfo.count > 0" class="payBtn" @click.stop="create_order">去结算
<view v-if="cartInfo.count > 0" class="payBtn" @click.stop="create_order"
>去结算
</view>
</view>
<!-- 购物车弹窗 -->
<nut-popup :style="{ padding: '15px' }" round position="bottom" z-index="1" :catch-move="true"
:safe-area-inset-bottom="true" v-model:visible="show">
<nut-popup
:style="{padding: '15px'}"
round
position="bottom"
z-index="1"
:catch-move="true"
:safe-area-inset-bottom="true"
v-model:visible="show">
<view class="list-header">
<view class="left" @click.stop="clear_cart">
<!-- <Del2 color="#666666" /> -->
<image class="w-[20px] h-[20px]" src="http://p0.meituan.net/csc/db4d11fd744b69435c6ffdc6bfc868c5684.png" />
<image
class="w-[20px] h-[20px]"
src="http://p0.meituan.net/csc/db4d11fd744b69435c6ffdc6bfc868c5684.png" />
<text class="text-[20px]" style="color: #666666">清空购物车</text>
</view>
</view>
@@ -235,11 +246,17 @@ defineExpose({
<view class="price flex">
<view>现金:{{ item.price }}</view>
<view v-if="item.discount_integral > 0" class="ml-2">积分:{{ item.discount_integral }}</view>
<view v-if="item.discount_integral > 0" class="ml-2"
>积分:{{ item.discount_integral }}</view
>
</view>
</view>
</view>
<nut-input-number v-model="item.number" readonly :min="-1" @add="() => onAdd(item)"
<nut-input-number
v-model="item.number"
readonly
:min="-1"
@add="() => onAdd(item)"
@reduce="() => onReduce(item)">
<template #left-icon>
<view class="btn" @click.stop="onReduce(item)">
@@ -257,7 +274,11 @@ defineExpose({
<view style="height: 140px"></view>
</nut-popup>
<!-- 支付 -->
<Pay :is-show-pay="isShowPay" v-model:jfInfo="orderData" @closePay="closePay" @successPay="closePay" />
<Pay
:is-show-pay="isShowPay"
v-model:jfInfo="orderData"
@closePay="closePay"
@successPay="closePay" />
</view>
</template>

View File

@@ -2,9 +2,19 @@
<view>
<!-- 商品列表 -->
<view class="good-class" v-if="class_list.length > 0">
<nut-tabs v-model="value" title-scroll size="large" direction="vertical" title-gutter="5" animated-time="0"
<nut-tabs
v-model="value"
title-scroll
size="large"
direction="vertical"
title-gutter="5"
animated-time="0"
name="tabName">
<nut-tab-pane v-for="(itm, index) in good_list" :key="index" :title="itm.name" :pane-key="index">
<nut-tab-pane
v-for="(itm, index) in good_list"
:key="index"
:title="itm.name"
:pane-key="index">
<view v-if="itm.Goods.length > 0">
<view class="list" v-for="(item, index) in itm.Goods" :key="index">
<view class="item" @click.stop="toGoodDetails(item.gid, 1)">
@@ -23,7 +33,10 @@
>
</view> -->
</view>
<nut-button size="mini" type="primary" @click.stop="add_cart(item)">
<nut-button
size="mini"
type="primary"
@click.stop="add_cart(item)">
<template #icon>
<Cart2 />
</template>
@@ -40,7 +53,11 @@
</view>
<nut-empty v-else description="该商家暂无商品"></nut-empty>
<!-- 购物车 -->
<cart ref="cartRef" :mer-info="mer_info" @update-cart="updateCartNum" :IsPendingOrder="true" />
<cart
ref="cartRef"
:mer-info="mer_info"
@update-cart="updateCartNum"
:IsPendingOrder="true" />
</view>
</template>

View File

@@ -5,13 +5,19 @@
<nut-cell>
<template #default>
<view class="center-box">
<view class="top" v-for="(item, index) in info.OrderGoods" :key="index">
<view
class="top"
v-for="(item, index) in info.OrderGoods"
:key="index">
<image class="mr-10" :src="item.Goods?.cover" />
<view class="flex-1">
<view class="title">{{ item.Goods?.name }}</view>
<view class="text-[#F83D3D] mt-5">
<view>{{ item.pay_price }}
<text v-if="item.pay_integral > 0">+{{ item.pay_integral }}积分</text>
<view
>{{ item.pay_price }}
<text v-if="item.pay_integral > 0"
>+{{ item.pay_integral }}积分</text
>
</view>
</view>
</view>
@@ -19,11 +25,15 @@
<view>x{{ item.number }}</view>
</view>
</view>
<view class="flex justify-between items-center mt-2 mb-2 text-[25px]">
<view
class="flex justify-between items-center mt-2 mb-2 text-[25px]">
<view class="text-[#9C9C9C]">{{ `${info.count}件商品` }}</view>
<text class="text-[26px] flex-1 text-right">{{ info.status !== 0 ? '实' : '应' }}付款:
<text class="text-[26px] flex-1 text-right"
>{{ info.status !== 0 ? '实' : '应' }}付款:
{{ info.discount_price }} ()
<text v-if="info.exchange > 0">积分抵扣: {{ info.exchange }}</text>
<text v-if="info.exchange > 0"
>积分抵扣: {{ info.exchange }}</text
>
</text>
</view>
</view>
@@ -32,7 +42,10 @@
</nut-cell-group>
<nut-cell-group>
<nut-cell title="订单号:" :desc="info.oid"></nut-cell>
<nut-cell title="订单状态:" :desc="info.status === 0
<nut-cell
title="订单状态:"
:desc="
info.status === 0
? '待付款'
: info.status === 1
? '待使用'
@@ -44,9 +57,18 @@
<nut-cell title="下单用户:" :desc="info.User?.nickName"></nut-cell>
<nut-cell title="用户手机号:" :desc="info.User?.phone"></nut-cell>
<nut-cell title="下单时间:" :desc="info.add_time"></nut-cell>
<nut-cell v-if="info.status === 2" title="核销时间:" :desc="info.cancel_time"></nut-cell>
<nut-cell v-if="info.status === 2" title="核销人员:" :desc="info.CancelUser?.nickName"></nut-cell>
<nut-cell v-if="info.status === 2" title="核销人手机号:" :desc="info.CancelUser?.phone"></nut-cell>
<nut-cell
v-if="info.status === 2"
title="核销时间:"
:desc="info.cancel_time"></nut-cell>
<nut-cell
v-if="info.status === 2"
title="核销人员:"
:desc="info.CancelUser?.nickName"></nut-cell>
<nut-cell
v-if="info.status === 2"
title="核销人手机号:"
:desc="info.CancelUser?.phone"></nut-cell>
</nut-cell-group>
</view>
</template>

View File

@@ -1,20 +1,34 @@
<template>
<view>
<view class="tabs-1">
<view class="item" v-for="(item, index) in opt" :key="index" @click="tabChange(item.value)">
<view :style="{
<view
class="item"
v-for="(item, index) in opt"
:key="index"
@click="tabChange(item.value)">
<view
:style="{
color: item.value === tabVal ? '#333333' : '#9C9C9C',
}">{{ item.text }}</view>
<view class="line" :style="{
}"
>{{ item.text }}</view
>
<view
class="line"
:style="{
backgroundColor: item.value === tabVal ? '#FFD940' : '',
}"></view>
</view>
</view>
<view v-if="dataList.length > 0">
<view class="order-card" v-for="(item, index) in dataList" :key="index" @click="toDetailPage(item)">
<view
class="order-card"
v-for="(item, index) in dataList"
:key="index"
@click="toDetailPage(item)">
<view class="top">
<view class="text-[#9C9C9C] text-[25px]">订单号{{ item.oid }}</view>
<view :style="{
<view
:style="{
color:
item.status === 0
? '#FF850A'
@@ -23,7 +37,8 @@
: item.status === 2
? '#333333'
: '#9C9C9C',
}">{{
}"
>{{
item.status === 0
? '待付款'
: item.status === 1
@@ -41,8 +56,11 @@
<view class="flex-1">
<view class="title">{{ itm.Goods?.name }}</view>
<view class="text-[#F83D3D] mt-5">
<view>{{ itm.pay_price }}
<text v-if="itm.pay_integral > 0">+{{ itm.pay_integral }}积分</text>
<view
>{{ itm.pay_price }}
<text v-if="itm.pay_integral > 0"
>+{{ itm.pay_integral }}积分</text
>
</view>
</view>
</view>
@@ -51,9 +69,12 @@
</view>
</view>
</view>
<view class="flex justify-between items-center mt-2 mb-2 text-[25px]" v-if="item.status !== 0">
<view
class="flex justify-between items-center mt-2 mb-2 text-[25px]"
v-if="item.status !== 0">
<text class="text-[#9C9C9C]">{{ item.count }}件商品</text>
<text class="text-[26px] flex-1 text-right">{{ item.status !== 0 ? '实' : '应' }}付款:
<text class="text-[26px] flex-1 text-right"
>{{ item.status !== 0 ? '实' : '应' }}付款:
{{ item.discount_price }} ()
<text v-if="item.exchange > 0">积分抵扣: {{ item.exchange }}</text>
</text>

View File

@@ -3,7 +3,10 @@
<view class="card">
<view class="text-[#7A7A7A]">订单号{{ goodInfo.oid }}</view>
<view class="line"></view>
<view class="container" v-for="(item, index) in goodInfo.OrderGoods" :key="index">
<view
class="container"
v-for="(item, index) in goodInfo.OrderGoods"
:key="index">
<image class="image" :src="item.Goods.cover"></image>
<view class="info">
<view class="title">{{ item.Goods.name }}</view>
@@ -14,11 +17,17 @@
<view class="text-[#9C9C9C]">x{{ item.number }}</view>
</view>
<view class="line"></view>
<view class="flex justify-between items-center mt-3 mb-2 text-[25px]" style="text-align: right">
<text class="text-[#9C9C9C] text-left">{{ goodInfo.count }}件商品</text>
<text class="text-[26px] flex-1">实付款:
{{ goodInfo.discount_price }} ()
<text v-if="goodInfo.exchange > 0">积分抵扣: {{ goodInfo.exchange }}</text>
<view
class="flex justify-between items-center mt-3 mb-2 text-[25px]"
style="text-align: right">
<text class="text-[#9C9C9C] text-left"
>{{ goodInfo.count }}件商品</text
>
<text class="text-[26px] flex-1"
>实付款: {{ goodInfo.discount_price }} ()
<text v-if="goodInfo.exchange > 0"
>积分抵扣: {{ goodInfo.exchange }}</text
>
</text>
</view>
<!-- <view class="line"></view> -->
@@ -30,14 +39,20 @@
</view>
<nut-cell-group>
<nut-cell title="订单信息"></nut-cell>
<nut-cell title="下单时间:" :desc="goodInfo.add_time?.slice(0, 19)"></nut-cell>
<nut-cell
title="下单时间:"
:desc="goodInfo.add_time?.slice(0, 19)"></nut-cell>
<nut-cell title="下单号码:" :desc="goodInfo.User?.phone"></nut-cell>
<nut-cell title="下单用户:" :desc="goodInfo.User?.nickName"></nut-cell>
<nut-cell title="付款方式:" :desc="getPayType(goodInfo.pay_type)"></nut-cell>
<nut-cell
title="付款方式:"
:desc="getPayType(goodInfo.pay_type)"></nut-cell>
</nut-cell-group>
<view class="w-[90%] mt-[40px] m-auto">
<nut-button type="primary" shape="square" block @click="subVerify">确定核销</nut-button>
<nut-button type="primary" shape="square" block @click="subVerify"
>确定核销</nut-button
>
</view>
</view>
</template>

View File

@@ -162,9 +162,17 @@ Taro.useReachBottom(() => {
</view>
<nut-form ref="formRef" :model-value="basicData" :rules="rules">
<nut-form-item prop="num">
<nut-input v-model="basicData.num" class="nut-input-text" placeholder="请输入提现余额" type="text">
<nut-input
v-model="basicData.num"
class="nut-input-text"
placeholder="请输入提现余额"
type="text">
<template #right>
<text class="text-[#EC4443] text-[26px]" @tap="basicData.num = row.toString()">全部</text>
<text
class="text-[#EC4443] text-[26px]"
@tap="basicData.num = row.toString()"
>全部</text
>
</template>
</nut-input>
</nut-form-item>
@@ -181,41 +189,67 @@ Taro.useReachBottom(() => {
<view class="item" v-for="(item, index) in data" :key="index">
<view class="flex justify-between items-center">
<view class="text-[25px] text-[#9C9C9C]">到账金额</view>
<view class="text-[27px]" :class="item.status === 1
<view
class="text-[27px]"
:class="
item.status === 1
? 'success'
: item.status === 1
? 'danger'
: 'warning'
">{{
"
>{{
item.status === 1
? '已打款'
: item.status === 2
? '已拒绝'
: '待审核'
}}</view>
}}</view
>
</view>
<view>
<view class="mt-3 mb-3 text-[35px]">{{ item.number }}</view>
<view class="text-[25px] mb-1">提现金额{{ item.integral }}</view>
<view class="text-[25px] mb-1">信息服务费{{ item.commission }}</view>
<view class="text-[25px] mb-1">手续{{ item.commission_number }}%</view>
<view class="text-[25px] mb-1"
>信息服务{{ item.commission }}</view
>
<view class="text-[25px] mb-1"
>手续费{{ item.commission_number }}%</view
>
<view class="text-[25px] mb-1">时间{{ item.add_time }}</view>
<view v-if="item.status === 2" class="text-[25px] text-[#9C9C9C]">备注</view>
<view v-if="item.status === 1" class="text-[23px] mt-2 text-[#df3526]" @click="openPreview(item)">点我查看回执单
<view v-if="item.status === 2" class="text-[25px] text-[#9C9C9C]"
>备注</view
>
<view
v-if="item.status === 1"
class="text-[23px] mt-2 text-[#df3526]"
@click="openPreview(item)"
>点我查看回执单
</view>
</view>
</view>
</view>
<nut-empty v-else description="暂无提现记录"></nut-empty>
<!-- 图片预览 -->
<nut-image-preview :show="showPreview" :images="imgData" @close="closePreview" />
<nut-image-preview
:show="showPreview"
:images="imgData"
@close="closePreview" />
<nut-dialog title="提现疑问?" content="这是基础弹框。" ok-text="我已知晓" :no-cancel-btn="true" v-model:visible="visible1">
<nut-dialog
title="提现疑问?"
content="这是基础弹框。"
ok-text="我已知晓"
:no-cancel-btn="true"
v-model:visible="visible1">
<template #default>
<text>
积分和人民币兑换比例为
<text class="text-[#F83D3D]">100:1</text>
平台收取<text class="text-[#F83D3D]">10%服务费</text><text class="text-[#F83D3D]">0.038%手续费</text>
平台收取<text class="text-[#F83D3D]">10%服务费</text><text
class="text-[#F83D3D]"
>0.038%手续费</text
>
</text>
</template>
</nut-dialog>

View File

@@ -204,6 +204,7 @@ const confirmPay = async () => {
title: '支付成功',
icon: 'success',
});
isLoading.value = false;
},
fail: function () {
Taro.showToast({
@@ -217,7 +218,7 @@ const confirmPay = async () => {
url: `/pages/users/order_list/index?type=0`,
});
}, 2000);
isLoading.value = false;
// isLoading.value = false;
},
});
} catch (err) {
@@ -226,7 +227,7 @@ const confirmPay = async () => {
icon: 'none',
});
} finally {
isLoading.value = false;
// isLoading.value = false;
}
};

View File

@@ -6,7 +6,9 @@
<text class="text-[28px]">{{ address }}</text>
</view>
<view class="search">
<view class="iconfont icon-sousuo" style="color: #8f8f8f; margin-right: 8px"></view>
<view
class="iconfont icon-sousuo"
style="color: #8f8f8f; margin-right: 8px"></view>
<input placeholder="请输入商家名称搜索" v-model="searchVal" />
<view class="search-btn" @click="clickSearch">搜索</view>
</view>
@@ -14,18 +16,36 @@
<view class="title"></view>
<navigator class="jf-btn" hover-class="none"></navigator>
<view class="footer">
<navigator hover-class="none" class="btn-1" url="/pages/fastBuy/index?type=1"></navigator>
<navigator hover-class="none" openType="switchTab" url="/pages/game/gamehome/index" class="btn-2"></navigator>
<navigator hover-class="none" class="btn-3" url="/pages/fastBuy/index?type=2"></navigator>
<navigator
hover-class="none"
class="btn-1"
url="/pages/fastBuy/index?type=1"></navigator>
<navigator
hover-class="none"
openType="switchTab"
url="/pages/game/gamehome/index"
class="btn-2"></navigator>
<navigator
hover-class="none"
class="btn-3"
url="/pages/fastBuy/index?type=2"></navigator>
</view>
</view>
<view class="navigation">
<view class="item" v-for="(item, index) in navigationList" :key="index" @click="toPage(item)">
<view
class="item"
v-for="(item, index) in navigationList"
:key="index"
@click="toPage(item)">
<image class="icon" :src="item.icon" />
<view class="text">{{ item.name }}</view>
</view>
</view>
<navigator class="ad" url="/pages/marketing/yq/index" open-type="navigate" hover-class="none">
<navigator
class="ad"
url="/pages/marketing/yq/index"
open-type="navigate"
hover-class="none">
</navigator>
<MerList :get-user-location="getUserLocal" />
<Popup :imgArr="imgList" />
@@ -52,9 +72,7 @@ interface navigationType {
const navigationList = ref<Array<navigationType>>([]);
const imgList = ref([
require('../../static/popTip.png'),
]);
const imgList = ref([require('../../static/popTip.png')]);
Taro.useShareAppMessage(() => ({
title: '捷兑通',

View File

@@ -7,26 +7,40 @@
</view>
</view>
<!-- 幻灯片 -->
<nut-swiper :init-page="0" :pagination-visible="false" pagination-color="red" auto-play="3000">
<nut-swiper
:init-page="0"
:pagination-visible="false"
pagination-color="red"
auto-play="3000">
<nut-swiper-item v-for="(itm, idx) in swiperList" :key="idx">
<img style="width: 100%; height: 100%" :src="itm" :alt="idx.toString()" />
<img
style="width: 100%; height: 100%"
:src="itm"
:alt="idx.toString()" />
</nut-swiper-item>
</nut-swiper>
<!-- 商家信息 -->
<view class="infoBox">
<view class="title text-[#333333]">{{ mer_info.name }}</view>
<view class="flex items-center justify-between mt-3">
<nut-rate spacing="1" active-color="rgba(252, 207, 10, 1)" v-model="mer_info.rate" />
<nut-rate
spacing="1"
active-color="rgba(252, 207, 10, 1)"
v-model="mer_info.rate" />
<view class="text-[#9E9E9E] text-[25px]">销量10000</view>
<view class="text-[#9E9E9E] text-[25px]">营业时间{{ mer_info.week_start }}-{{ mer_info.week_end }}
<view class="text-[#9E9E9E] text-[25px]"
>营业时间{{ mer_info.week_start }}-{{ mer_info.week_end }}
</view>
</view>
<view class="line"></view>
<view class="bom">
<view class="iconfont icon-dizhi text-[#C4C4C4]" style="width: 15px; height: 15px; margin-right: 15px"></view>
<view
class="iconfont icon-dizhi text-[#C4C4C4]"
style="width: 15px; height: 15px; margin-right: 15px"></view>
<view class="left">
<view>{{ mer_info.address || '暂无商家地址' }}</view>
<view class="sub mt-1">距离您{{
<view class="sub mt-1"
>距离您{{
calculateDistance(
userLocalNum.t,
userLocalNum.l,
@@ -38,19 +52,34 @@
</view>
<view class="right">
<view @click="clickMap">
<image class="w-[50px] h-[50px]" src="http://p1.meituan.net/csc/92ee8512c90527169b44e07fd11d250d924.png" />
<image
class="w-[50px] h-[50px]"
src="http://p1.meituan.net/csc/92ee8512c90527169b44e07fd11d250d924.png" />
</view>
<view @click="clickPhone">
<image class="w-[50px] h-[50px]" src="http://p0.meituan.net/csc/ab0493b124a6bb858bf82a2340767c0d919.png" />
<image
class="w-[50px] h-[50px]"
src="http://p0.meituan.net/csc/ab0493b124a6bb858bf82a2340767c0d919.png" />
</view>
</view>
</view>
</view>
<!-- 商品列表 -->
<view class="good-class" v-if="class_list.length > 0">
<nut-tabs v-model="value" title-scroll size="large" direction="vertical" title-gutter="5" animated-time="0"
type="" name="tabName">
<nut-tab-pane v-for="(itm, index) in good_list" :key="index" :title="itm.name" :pane-key="index">
<nut-tabs
v-model="value"
title-scroll
size="large"
direction="vertical"
title-gutter="5"
animated-time="0"
type=""
name="tabName">
<nut-tab-pane
v-for="(itm, index) in good_list"
:key="index"
:title="itm.name"
:pane-key="index">
<view v-if="itm.Goods.length > 0">
<view class="list" v-for="(item, index) in itm.Goods" :key="index">
<view class="item" @click.stop="toGoodDetails(item.gid, 1)">
@@ -59,18 +88,25 @@
<view class="name">{{ item.name }}</view>
<view class="bom">
<view class="price">
<text style="font-size: 15px">{{ item.discount_price }}
<text style="font-size: 15px" v-if="item.exchange">+{{ item.exchange }}积分
<text style="font-size: 15px"
>{{ item.discount_price }}
<text style="font-size: 15px" v-if="item.exchange"
>+{{ item.exchange }}积分
</text>
</text>
</view>
</view>
<view class="bom">
<view>
<view class="stock text-[25px]">剩余:{{ item.stock }}</view>
<view class="stock text-[25px]"
>剩余:{{ item.stock }}</view
>
</view>
<view class="flex items-center justify-between">
<view v-if="item.cartNum > 0" class="btn" @click.stop="add_cart(item, 1)">
<view
v-if="item.cartNum > 0"
class="btn"
@click.stop="add_cart(item, 1)">
<Minus />
</view>
<view v-if="item.cartNum > 0" style="margin: 0 10px">

View File

@@ -237,20 +237,31 @@ const closed = () => {
<image src="../static/user/order_list_top.png" />
</view> -->
<view class="tabs-box">
<view v-for="item in tabsList" :key="item.value" @click="tabChange(item.value)">
<view class="text" :style="{
<view
v-for="item in tabsList"
:key="item.value"
@click="tabChange(item.value)">
<view
class="text"
:style="{
color: tabValue === item.value ? '#000' : '#9C9C9C',
}">{{ item.title }}
}"
>{{ item.title }}
</view>
<!-- <view>{{ item.num }}</view> -->
<view class="line" :class="{lineColor: item.value === tabValue}"></view>
</view>
</view>
<view v-if="orderList.length > 0">
<view class="order-card" v-for="(item, index) in orderList" :key="index" @click="toDetail(item)">
<view
class="order-card"
v-for="(item, index) in orderList"
:key="index"
@click="toDetail(item)">
<view class="top">
<view class="text-[#9C9C9C] text-[28px]">订单号{{ item.oid }}</view>
<view :style="{
<view
:style="{
color:
item.status === 0
? '#FF850A'
@@ -259,7 +270,8 @@ const closed = () => {
: item.status === 2
? '#333333'
: '#9C9C9C',
}">{{
}"
>{{
item.status === 0
? '待付款'
: item.status === 1
@@ -277,8 +289,11 @@ const closed = () => {
<view class="flex flex-col justify-between flex-1">
<view class="title">{{ itm.Goods?.name }}</view>
<view class="text-[#F83D3D] mt-5">
<view>{{ itm.Goods.discount_price }}
<text v-if="itm.Goods.exchange > 0">+{{ itm.Goods.exchange }}积分</text>
<view
>{{ itm.Goods.discount_price }}
<text v-if="itm.Goods.exchange > 0"
>+{{ itm.Goods.exchange }}积分</text
>
</view>
</view>
</view>
@@ -288,18 +303,28 @@ const closed = () => {
</view>
</view>
<!-- <view class="line"></view> -->
<view class="flex justify-between items-center mt-2 mb-2 text-[25px]" v-if="item.status !== 0"
<view
class="flex justify-between items-center mt-2 mb-2 text-[25px]"
v-if="item.status !== 0"
style="text-align: right">
<text class="text-[#9C9C9C] text-[28px]">{{ item.count }}件商品
<text class="text-[#9C9C9C] text-[28px]"
>{{ item.count }}件商品
</text>
<text class="text-[26px]">{{ item.status !== 0 ? '实' : '应' }}付款:
<text class="text-[26px]"
>{{ item.status !== 0 ? '实' : '应' }}付款:
{{ item.discount_price }} ()
<text v-if="item.exchange > 0">积分抵扣: {{ item.exchange }}</text>
</text>
<!-- <view class="line"></view> -->
</view>
<view class="btn">
<nut-button v-if="item.status === 0" plain size="mini" type="primary" @click.stop="delOrder(item.oid)">取消订单
<nut-button
v-if="item.status === 0"
plain
size="mini"
type="primary"
@click.stop="delOrder(item.oid)"
>取消订单
</nut-button>
<!-- <nut-button
style="margin-left: 5px"
@@ -308,29 +333,55 @@ const closed = () => {
@click="toDetail(item)"
>查看详情
</nut-button> -->
<nut-button style="margin-left: 5px" size="mini" type="primary" v-if="item.status === 0"
@click.stop="openPay(item)">立即付款
<nut-button
style="margin-left: 5px"
size="mini"
type="primary"
v-if="item.status === 0"
@click.stop="openPay(item)"
>立即付款
</nut-button>
<nut-button style="margin-left: 5px" size="mini" type="primary" v-if="item.status === 1"
@click.stop="openCode(item)">出示核销码
<nut-button
style="margin-left: 5px"
size="mini"
type="primary"
v-if="item.status === 1"
@click.stop="openCode(item)"
>出示核销码
</nut-button>
</view>
</view>
</view>
<nut-empty v-else description="暂无订单"></nut-empty>
<!-- 核销码弹窗 -->
<nut-popup v-model:visible="isShowCode" position="center" style="padding: 20px; border-radius: 15px"
:maskClosable="true" safe-area-inset-bottom @click-overlay="closed" @closed="closed">
<nut-popup
v-model:visible="isShowCode"
position="center"
style="padding: 20px; border-radius: 15px"
:maskClosable="true"
safe-area-inset-bottom
@click-overlay="closed"
@closed="closed">
<view class="code-box">
<view>核销码</view>
<!-- <image class="qrcode" :src="url"></image> -->
<!-- <view class="qrcode"> -->
<canvas ref="qrcode" id="qrcode" style="width: 200px; height: 200px" canvas-id="qrcode"></canvas>
<canvas
ref="qrcode"
id="qrcode"
style="width: 200px; height: 200px"
canvas-id="qrcode"></canvas>
<!-- </view> -->
</view>
</nut-popup>
<pay :isShowPay="isShowPay" :interval="false" :jfInfo="jfInfo" :OrderType="2" @errPay="errPay"
@successPay="successPay" @closePay="closePay" />
<pay
:isShowPay="isShowPay"
:interval="false"
:jfInfo="jfInfo"
:OrderType="2"
@errPay="errPay"
@successPay="successPay"
@closePay="closePay" />
</view>
</template>

View File

@@ -27,7 +27,8 @@
<view class="font-bold">订单待使用</view>
<IconFont name="rect-right" size="15" color="#333333"></IconFont>
</view>
<view class="text-[#9C9C9C] text-[20px]">订单剩余
<view class="text-[#9C9C9C] text-[20px]"
>订单剩余
<text class="text-[#FF0000]">{{ timeStr }} </text>
过期请尽快核销
</view>
@@ -49,15 +50,21 @@
</view>
<!-- 商家信息 -->
<view class="mer-info">
<image class="w-[150px] h-[150px] rounded-lg mr-2" :src="goodInfo.Store?.head_photo" />
<image
class="w-[150px] h-[150px] rounded-lg mr-2"
:src="goodInfo.Store?.head_photo" />
<view class="right">
<view class="text-[#333333]">{{ goodInfo.Store?.name }}</view>
<view class="flex mt-2 items-center text-[#999999] text-[23px] text-ellipsis line-clamp-3">
<view style="font-size: 15px" class="iconfont icon-dizhi text-[#C4C4C4]"></view>
<view
class="flex mt-2 items-center text-[#999999] text-[23px] text-ellipsis line-clamp-3">
<view
style="font-size: 15px"
class="iconfont icon-dizhi text-[#C4C4C4]"></view>
<view>{{ goodInfo.Store?.address }}</view>
</view>
<view class="w-full flex items-center justify-between mt-1">
<view class="ml-3 text-[23px] text-[#999999]">距离您{{
<view class="ml-3 text-[23px] text-[#999999]"
>距离您{{
calculateDistance(
userLocalNum.t,
userLocalNum.l,
@@ -67,9 +74,13 @@
}}
</view>
<view class="flex items-center">
<image @tap="toPhone()" class="w-[50px] h-[50px]"
<image
@tap="toPhone()"
class="w-[50px] h-[50px]"
src="http://p0.meituan.net/csc/ab0493b124a6bb858bf82a2340767c0d919.png" />
<image @tap="toAdder()" class="w-[50px] h-[50px] ml-2"
<image
@tap="toAdder()"
class="w-[50px] h-[50px] ml-2"
src="http://p1.meituan.net/csc/92ee8512c90527169b44e07fd11d250d924.png" />
</view>
</view>
@@ -81,13 +92,19 @@
<nut-cell>
<template #default>
<view class="center-box">
<view class="top" v-for="(item, index) in goodInfo.OrderGoods" :key="index">
<view
class="top"
v-for="(item, index) in goodInfo.OrderGoods"
:key="index">
<image :src="item.Goods?.cover" />
<view class="flex flex-col justify-between flex-1">
<view class="title">{{ item.Goods?.name }}</view>
<view class="text-[#F83D3D] mt-5">
<view>{{ item.Goods.discount_price }}
<text v-if="item.Goods.exchange > 0">+{{ item.Goods.exchange }}积分</text>
<view
>{{ item.Goods.discount_price }}
<text v-if="item.Goods.exchange > 0"
>+{{ item.Goods.exchange }}积分</text
>
</view>
</view>
</view>
@@ -95,12 +112,17 @@
<view>x{{ item.number }}</view>
</view>
</view>
<view class="flex justify-between items-center mt-2 mb-2 text-[25px]">
<view class="text-[#9C9C9C]">{{ `${goodInfo.count}件商品` }}
<view
class="flex justify-between items-center mt-2 mb-2 text-[25px]">
<view class="text-[#9C9C9C]"
>{{ `${goodInfo.count}件商品` }}
</view>
<text class="text-[26px]">{{ goodInfo.status !== 0 ? '实' : '应' }}付款:
<text class="text-[26px]"
>{{ goodInfo.status !== 0 ? '实' : '应' }}付款:
{{ goodInfo.discount_price }} ()
<text v-if="goodInfo.exchange > 0">积分抵扣: {{ goodInfo.exchange }}</text>
<text v-if="goodInfo.exchange > 0"
>积分抵扣: {{ goodInfo.exchange }}</text
>
</text>
</view>
</view>
@@ -109,14 +131,19 @@
</nut-cell-group>
<nut-cell-group>
<nut-cell title="订单号:" :desc="goodInfo.oid"></nut-cell>
<nut-cell title="下单时间:" :desc="goodInfo.add_time?.slice(0, 19)"></nut-cell>
<nut-cell
title="下单时间:"
:desc="goodInfo.add_time?.slice(0, 19)"></nut-cell>
<!-- <nut-cell
v-if="goodInfo.expires !== 0"
title="订单过期时间:"
:desc="
dayjs.unix(goodInfo.expires).format('YYYY-MM-DD HH:mm:ss')
"></nut-cell> -->
<nut-cell title="订单状态:" :desc="goodInfo.status === 0
<nut-cell
title="订单状态:"
:desc="
goodInfo.status === 0
? '待付款'
: goodInfo.status === 1
? '待使用'
@@ -127,9 +154,21 @@
</nut-cell-group>
<view class="mt-[30px] m-auto">
<nut-button v-if="goodInfo.status === 0" shape="square" type="primary" block @click="openPay()">继续付款
<nut-button
v-if="goodInfo.status === 0"
shape="square"
type="primary"
block
@click="openPay()"
>继续付款
</nut-button>
<nut-button v-if="goodInfo.status === 1" shape="square" type="primary" block @click="openCode()">出示核销码
<nut-button
v-if="goodInfo.status === 1"
shape="square"
type="primary"
block
@click="openCode()"
>出示核销码
</nut-button>
</view>
@@ -160,18 +199,34 @@
</view> -->
<!-- 核销码弹窗 -->
<nut-popup v-model:visible="isShowCode" position="center" style="padding: 20px; border-radius: 15px"
:maskClosable="true" safe-area-inset-bottom @click-overlay="closed" @closed="closed">
<nut-popup
v-model:visible="isShowCode"
position="center"
style="padding: 20px; border-radius: 15px"
:maskClosable="true"
safe-area-inset-bottom
@click-overlay="closed"
@closed="closed">
<view class="code-box">
<view>核销码</view>
<!-- <image class="qrcode" :src="url"></image> -->
<!-- <view class="qrcode"> -->
<canvas ref="qrcode" id="qrcode" style="width: 200px; height: 200px" canvas-id="qrcode"></canvas>
<canvas
ref="qrcode"
id="qrcode"
style="width: 200px; height: 200px"
canvas-id="qrcode"></canvas>
<!-- </view> -->
</view>
</nut-popup>
<pay :isShowPay="isShowPay" :interval="false" :jfInfo="jfInfo" :OrderType="2" @errPay="errPay"
@successPay="successPay" @closePay="closePay" />
<pay
:isShowPay="isShowPay"
:interval="false"
:jfInfo="jfInfo"
:OrderType="2"
@errPay="errPay"
@successPay="successPay"
@closePay="closePay" />
</view>
</template>