feat:适配
This commit is contained in:
1 parent
11fb30e17d
commit
ab44b198fc
29 files changed
+278
-280
No files matched your search
@@ -65,6 +65,20 @@
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/tabbar/prosperityShop",
|
||||
"style": {
|
||||
"navigationBarTitleText": "共富商城",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/tabbar/prosperityShopMchList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "共富商城",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/root/login",
|
||||
"style": {
|
||||
@@ -372,6 +386,60 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pages/prosperity-shop",
|
||||
"pages": [
|
||||
{
|
||||
"path": "goods-detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品详情",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shop-detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "超市详情",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "goods-search",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品搜索",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "goods-manage",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品管理",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "goods-form",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品信息管理",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "categary-manage",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品分类管理",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "settlement",
|
||||
"style": {
|
||||
"navigationBarTitleText": "结算",
|
||||
"disableScroll": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
||||
@@ -61,7 +61,7 @@ const remove = () => {
|
||||
<view v-if="props.mode == 'default'" class="flex-row items-center MT 10rpx">
|
||||
<!-- <view class="second-text-24">{{ hooks.useFormatNum("库存", "", props.stock) }}</view> -->
|
||||
<view class="second-text-24">库存:{{ props.stock }}</view>
|
||||
<view class="w-1px h-20rpx m-x-5rpx bg-#999 mx-2" />
|
||||
<view class="w-1px h-20rpx m-x-5rpx bg-#999 mx-16rpx" />
|
||||
<view class="second-text-24">{{ hooks.useFormatNum("销量", "", props.salesCount) }}</view>
|
||||
</view>
|
||||
<view class="flex-row items-center justify-end m-t-20rpx">
|
||||
|
||||
@@ -332,7 +332,7 @@ const doFood = () => {
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view v-else class="mx-auto mt-10 second-text-28">暂无信息</view>
|
||||
<view v-else class="mx-auto mt-80rpx second-text-28">暂无信息</view>
|
||||
</view>
|
||||
</tm-sticky>
|
||||
<!-- end 商品 end -->
|
||||
@@ -352,7 +352,7 @@ const doFood = () => {
|
||||
cancelText="取消" confirmText="确认" position="bottom" height="520rpx" zIndex="800">
|
||||
<tm-radio-group v-model="state.selectedBookingTime" direction="column">
|
||||
<view v-for="(item, index) in state.bookingTimeList" :key="index" class="w-full flex items-center">
|
||||
<tm-radio class="w-full h-full px-2" :value="item.id">
|
||||
<tm-radio class="w-full h-full px-16rpx" :value="item.id">
|
||||
<template v-slot:label="checked">
|
||||
<view class="text-30">{{ item.title }}</view>
|
||||
<view class="second-text-28 flex">
|
||||
@@ -372,7 +372,7 @@ const doFood = () => {
|
||||
</tm-radio-group>
|
||||
|
||||
<template #footer>
|
||||
<view class="flex px-4 w-full">
|
||||
<view class="flex px-32rpx w-full">
|
||||
<tm-button @click="state.showBookingDialog = false" :block="true" skin="thin">取消</tm-button>
|
||||
|
||||
<tm-button @click="bookingDialogConfirm" :block="true">确认</tm-button>
|
||||
|
||||
@@ -60,7 +60,7 @@ const getDetail = async () => {
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="second-text-28 mt-24 text-center">暂无数据</view>
|
||||
<view v-else class="second-text-28 mt-192rpx text-center">暂无数据</view>
|
||||
</crud-layout>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -53,10 +53,10 @@ const doDel = (id: string) => {
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<view class="h-20rpx" />
|
||||
<view class="card flex-col-center p-20rpx mb-20rpx" v-for="(v, i) in pageHook.list" :key="v.id">
|
||||
<image class="w-300rpx h-300rpx rounded-50rpx mb-2" :src="filePath(v.faceImg)" mode="aspectFill"
|
||||
<image class="w-300rpx h-300rpx rounded-50rpx mb-16rpx" :src="filePath(v.faceImg)" mode="aspectFill"
|
||||
@click.stop="hooks.usePreviewImage(filePath(v.faceImg))" />
|
||||
<view class="sub-text-30 mb-2">{{ v.username }}·{{ v.deptName }}</view>
|
||||
<view v-if="false" class="flex w-full items-center justify-end gap-2 second-text-26">
|
||||
<view class="sub-text-30 mb-16rpx">{{ v.username }}·{{ v.deptName }}</view>
|
||||
<view v-if="false" class="flex w-full items-center justify-end gap-16rpx second-text-26">
|
||||
<text class="botder_btn" @click="doEdit(v.id)">修改</text>
|
||||
<tm-modal title="确定删除吗?" height="auto" @confirm="doDel(v.id)">
|
||||
<template v-slot:trigger><text class="botder_btn">删除</text></template>
|
||||
@@ -65,7 +65,7 @@ const doDel = (id: string) => {
|
||||
</view>
|
||||
<template #bottom>
|
||||
<view v-if="false"
|
||||
class="bg-#0094ff py-20rpx text-center rounded-40rpx mx-30rpx my-4 sub-text-30 color-white!"
|
||||
class="bg-#0094ff py-20rpx text-center rounded-40rpx mx-30rpx my-32rpx sub-text-30 color-white!"
|
||||
@tap="doAdd">
|
||||
添加
|
||||
</view>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<text class="file-size">{{ formatFileSize(file.size) }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<tm-button v-if="actDetail" class="px-2 my-4" block @click="goGetCoupon">去 领 券</tm-button>
|
||||
<tm-button v-if="actDetail" class="px-16rpx my-32rpx" block @click="goGetCoupon">去 领 券</tm-button>
|
||||
</view>
|
||||
</crud-layout>
|
||||
</template>
|
||||
|
||||
@@ -2,78 +2,70 @@
|
||||
<crud-layout title="详情" mainIsScroll bg="/static/page/blue-bg.png">
|
||||
<view v-if="detail.id">
|
||||
<view class="h-20rpx" />
|
||||
<tm-alert
|
||||
v-if="alertListType2[detail.checkStatus] && detail.type == '2'"
|
||||
:showClose="false"
|
||||
skin="normal"
|
||||
:color="alertListType2[detail.checkStatus].color"
|
||||
>
|
||||
<tm-alert v-if="alertListType2[detail.checkStatus] && detail.type == '2'" :showClose="false" skin="normal"
|
||||
:color="alertListType2[detail.checkStatus].color">
|
||||
{{ alertListType2[detail.checkStatus].text }}
|
||||
</tm-alert>
|
||||
<tm-alert
|
||||
v-if="alertListType1[detail.checkStatus] && detail.type == '1'"
|
||||
:showClose="false"
|
||||
skin="normal"
|
||||
:color="alertListType1[detail.checkStatus].color"
|
||||
>
|
||||
<tm-alert v-if="alertListType1[detail.checkStatus] && detail.type == '1'" :showClose="false" skin="normal"
|
||||
:color="alertListType1[detail.checkStatus].color">
|
||||
{{ alertListType1[detail.checkStatus].text }}
|
||||
</tm-alert>
|
||||
<tm-sheet :margin="[0, 20]" class="second-text-30">
|
||||
<tm-text class="prefix_title" font-size="32">访客信息</tm-text>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">访客姓名</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">访客姓名</text>
|
||||
<text>{{ detail.name }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">访客手机号</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">访客手机号</text>
|
||||
<text>{{ detail.mobile }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">访客公司名称</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">访客公司名称</text>
|
||||
<text>{{ detail.companyName }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">来访原因</text>
|
||||
<text>{{ visitorReasonList.find((item) => item.id == detail.reasonValue)?.title || "" }}</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">来访原因</text>
|
||||
<text>{{visitorReasonList.find((item) => item.id == detail.reasonValue)?.title || ""}}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">接待人</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">接待人</text>
|
||||
<text>{{ detail.userName }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">来访人数</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">来访人数</text>
|
||||
<text>{{ detail.peopleNumber }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">是否可随行人员</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">是否可随行人员</text>
|
||||
<text>{{ detail.isOtherPeople == "1" ? "是" : "否" }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">是否可驾驶车辆</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">是否可驾驶车辆</text>
|
||||
<text>{{ detail.isDrive == "1" ? "是" : "否" }}</text>
|
||||
</view>
|
||||
</tm-sheet>
|
||||
|
||||
<tm-sheet :margin="[0, 20]" class="second-text-30">
|
||||
<tm-text class="prefix_title" font-size="32">时间</tm-text>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">预计来访时间</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">预计来访时间</text>
|
||||
<text>{{ detail.vendDate }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">预计离开时间</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">预计离开时间</text>
|
||||
<text>{{ detail.vstartDate }}</text>
|
||||
</view>
|
||||
</tm-sheet>
|
||||
|
||||
<tm-sheet :margin="[0, 20]" class="second-text-30">
|
||||
<tm-text class="prefix_title" font-size="32">其他</tm-text>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">创建方式</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">创建方式</text>
|
||||
<text>{{ detail.type == "1" ? "主动申请" : detail.type == "2" ? "邀约" : "后台创建" }}</text>
|
||||
</view>
|
||||
<view class="flex mt-1">
|
||||
<text class="w-220rpx mr-6">提交时间</text>
|
||||
<view class="flex mt-8rpx">
|
||||
<text class="w-220rpx mr-48rpx">提交时间</text>
|
||||
<text>{{ detail.createTime }}</text>
|
||||
</view>
|
||||
</tm-sheet>
|
||||
|
||||
@@ -1,51 +1,33 @@
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging
|
||||
ref="pageRef"
|
||||
height="100%"
|
||||
:fixed="false"
|
||||
v-model="pageHook.list"
|
||||
:default-page-size="10"
|
||||
safe-area-inset-bottom
|
||||
:loading-more-enabled="true"
|
||||
:show-scrollbar="false"
|
||||
@query="query"
|
||||
:auto-clean-list-when-reload="false"
|
||||
:auto-scroll-to-top-when-reload="false"
|
||||
@scroll="pageHook.scroll"
|
||||
>
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<view class="bg-white rounded-20rpx my-20rpx font-bold py-1">
|
||||
<z-tabs
|
||||
:list="[
|
||||
{ name: '我的邀约', value: '2' },
|
||||
{ name: '访客申请', value: '1' },
|
||||
// { name: '访客申请', value: 0, badge: { count: 10 } },
|
||||
// { name: '我的邀约', value: 1, badge: { count: 6 } },
|
||||
]"
|
||||
bar-width="0"
|
||||
:active-style="{
|
||||
fontSize: '30rpx',
|
||||
backgroundColor: '#ECF4F9',
|
||||
padding: '12rpx 64rpx',
|
||||
marginTop: '10rpx',
|
||||
borderRadius: '20rpx',
|
||||
border: '1px solid #007AFF',
|
||||
}"
|
||||
:inactive-style="{
|
||||
fontSize: '30rpx',
|
||||
padding: '12rpx 64rpx',
|
||||
marginTop: '10rpx',
|
||||
border: '1px solid transparent',
|
||||
}"
|
||||
:badge-style="{
|
||||
<view class="bg-white rounded-20rpx my-20rpx font-bold py-8rpx">
|
||||
<z-tabs :list="[
|
||||
{ name: '我的邀约', value: '2' },
|
||||
{ name: '访客申请', value: '1' },
|
||||
// { name: '访客申请', value: 0, badge: { count: 10 } },
|
||||
// { name: '我的邀约', value: 1, badge: { count: 6 } },
|
||||
]" bar-width="0" :active-style="{
|
||||
fontSize: '30rpx',
|
||||
backgroundColor: '#ECF4F9',
|
||||
padding: '12rpx 64rpx',
|
||||
marginTop: '10rpx',
|
||||
borderRadius: '20rpx',
|
||||
border: '1px solid #007AFF',
|
||||
}" :inactive-style="{
|
||||
fontSize: '30rpx',
|
||||
padding: '12rpx 64rpx',
|
||||
marginTop: '10rpx',
|
||||
border: '1px solid transparent',
|
||||
}" :badge-style="{
|
||||
// whiteSpace: 'nowrap',
|
||||
// position: 'relative',
|
||||
// top: '-14rpx',
|
||||
// left: '-72rpx',
|
||||
}"
|
||||
@change="onTabChange"
|
||||
/>
|
||||
}" @change="onTabChange" />
|
||||
</view>
|
||||
|
||||
<view class="bg-white rounded-16rpx px-20rpx">
|
||||
@@ -53,16 +35,20 @@
|
||||
</view>
|
||||
<view class="h-20rpx" />
|
||||
</template>
|
||||
<view class="flex-col justify-center card p-3 m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i">
|
||||
<view class="flex-col justify-center card p-24rpx m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i">
|
||||
<view class="flex justify-between items-center">
|
||||
<view v-if="v.checkStatus == '1'" class="p-1 c-white! sub-text-22 rounded-1 bg-#2db7f5">待接受</view>
|
||||
<view v-if="v.checkStatus == '2'" class="p-1 c-white! sub-text-22 rounded-1 bg-#52c41a">待到访</view>
|
||||
<view v-if="v.checkStatus == '3'" class="p-1 c-white! sub-text-22 rounded-1 bg-#f5a623">已拒绝</view>
|
||||
<view v-if="v.checkStatus == '5'" class="p-1 c-white! sub-text-22 rounded-1 bg-#f5222d">已取消</view>
|
||||
<view v-if="v.checkStatus == '1'" class="p-8rpx c-white! sub-text-22 rounded-1 bg-#2db7f5">待接受
|
||||
</view>
|
||||
<view v-if="v.checkStatus == '2'" class="p-8rpx c-white! sub-text-22 rounded-1 bg-#52c41a">待到访
|
||||
</view>
|
||||
<view v-if="v.checkStatus == '3'" class="p-8rpx c-white! sub-text-22 rounded-1 bg-#f5a623">已拒绝
|
||||
</view>
|
||||
<view v-if="v.checkStatus == '5'" class="p-8rpx c-white! sub-text-22 rounded-1 bg-#f5222d">已取消
|
||||
</view>
|
||||
<view class="sub-text-26">{{ v.vstartDate + " ~ " + v.vendDate }}</view>
|
||||
</view>
|
||||
<view class="m-2 h-1rpx bg-#A0A0A044"></view>
|
||||
<view class="sub-text-26 whitespace-nowrap ml-4">
|
||||
<view class="m-16rpx h-1rpx bg-#A0A0A044"></view>
|
||||
<view class="sub-text-26 whitespace-nowrap ml-32rpx">
|
||||
<view class="flex">
|
||||
<text class="w-160rpx">访客姓名</text>
|
||||
<text>{{ v.name || "---" }}</text>
|
||||
@@ -77,27 +63,28 @@
|
||||
</view>
|
||||
<view class="flex">
|
||||
<text class="w-160rpx">拜访原因</text>
|
||||
<text>{{ visitorReasonList.find((item) => item.id == v.reasonValue)?.title || "---" }}</text>
|
||||
<text>{{visitorReasonList.find((item) => item.id == v.reasonValue)?.title || "---"}}</text>
|
||||
</view>
|
||||
<view class="flex justify-end gap-1 mt-2">
|
||||
<view class="flex justify-end gap-8rpx mt-16rpx">
|
||||
<template v-if="v.type == '1'">
|
||||
<tm-modal v-if="v.checkStatus == '1'" title="确定接受访客申请吗?" height="auto" @confirm="visitorCheck(v.id, '2')">
|
||||
<template #trigger><tm-button class="px-1" size="xs" color="success">接受申请</tm-button></template>
|
||||
<tm-modal v-if="v.checkStatus == '1'" title="确定接受访客申请吗?" height="auto"
|
||||
@confirm="visitorCheck(v.id, '2')">
|
||||
<template #trigger><tm-button class="px-8rpx" size="xs"
|
||||
color="success">接受申请</tm-button></template>
|
||||
</tm-modal>
|
||||
<tm-modal v-if="v.checkStatus == '1'" title="确定拒绝访客申请吗?" height="auto" @confirm="visitorCheck(v.id, '3')">
|
||||
<template #trigger><tm-button class="px-1" size="xs" color="danger">拒绝申请</tm-button></template>
|
||||
<tm-modal v-if="v.checkStatus == '1'" title="确定拒绝访客申请吗?" height="auto"
|
||||
@confirm="visitorCheck(v.id, '3')">
|
||||
<template #trigger><tm-button class="px-8rpx" size="xs"
|
||||
color="danger">拒绝申请</tm-button></template>
|
||||
</tm-modal>
|
||||
<tm-button class="px-1" size="xs" @click.stop="goDetail(v)">查看详情</tm-button>
|
||||
<tm-button class="px-8rpx" size="xs" @click.stop="goDetail(v)">查看详情</tm-button>
|
||||
</template>
|
||||
<template v-if="v.type == '2'">
|
||||
<tm-button class="px-1 mr-2" size="xs" @click.stop="goDetail(v)">查看详情</tm-button>
|
||||
<tm-modal
|
||||
v-if="v.checkStatus != '5' && v.checkStatus != '3'"
|
||||
title="确定取消邀约吗?"
|
||||
height="auto"
|
||||
@confirm="visitorCheck(v.id, '5')"
|
||||
>
|
||||
<template #trigger><tm-button class="px-1" size="xs" color="danger">取消邀约</tm-button></template>
|
||||
<tm-button class="px-8rpx mr-16rpx" size="xs" @click.stop="goDetail(v)">查看详情</tm-button>
|
||||
<tm-modal v-if="v.checkStatus != '5' && v.checkStatus != '3'" title="确定取消邀约吗?" height="auto"
|
||||
@confirm="visitorCheck(v.id, '5')">
|
||||
<template #trigger><tm-button class="px-8rpx" size="xs"
|
||||
color="danger">取消邀约</tm-button></template>
|
||||
</tm-modal>
|
||||
</template>
|
||||
</view>
|
||||
|
||||
@@ -12,26 +12,16 @@
|
||||
<span>拜访开始时间 </span>
|
||||
<tm-icon name="arrow-right-s-line" />
|
||||
</template>
|
||||
<tm-input
|
||||
:modelValue="form.vStartDate"
|
||||
placeholder="请选择拜访开始时间"
|
||||
style="pointer-events: none"
|
||||
disabled
|
||||
color="transparent"
|
||||
/>
|
||||
<tm-input :modelValue="form.vStartDate" placeholder="请选择拜访开始时间" style="pointer-events: none"
|
||||
disabled color="transparent" />
|
||||
</tm-form-item>
|
||||
<tm-form-item name="vEndDate" label="拜访离开时间 >" @click="endDatePicker('vEndDate')">
|
||||
<template #label>
|
||||
<span>拜访离开时间 </span>
|
||||
<tm-icon name="arrow-right-s-line" />
|
||||
</template>
|
||||
<tm-input
|
||||
:modelValue="form.vEndDate"
|
||||
placeholder="请选择拜访离开时间"
|
||||
style="pointer-events: none"
|
||||
disabled
|
||||
color="transparent"
|
||||
/>
|
||||
<tm-input :modelValue="form.vEndDate" placeholder="请选择拜访离开时间" style="pointer-events: none" disabled
|
||||
color="transparent" />
|
||||
</tm-form-item>
|
||||
<tm-form-item name="isOtherPeople" label="是否有随行人员" direction="horizontal" labelWidth="500">
|
||||
<tm-switch v-model="form.isOtherPeople" />
|
||||
@@ -39,34 +29,18 @@
|
||||
<tm-form-item name="isDrive" label="是否有驾驶车辆" direction="horizontal" labelWidth="500">
|
||||
<tm-switch v-model="form.isDrive" />
|
||||
</tm-form-item>
|
||||
<tm-button class="mt-4" form-type="submit" block>提 交</tm-button>
|
||||
<tm-button class="mt-32rpx" form-type="submit" block>提 交</tm-button>
|
||||
</tm-form>
|
||||
</tm-sheet>
|
||||
|
||||
<tm-drawer
|
||||
title="请选择时间"
|
||||
:showClose="true"
|
||||
:showFooter="false"
|
||||
size="auto"
|
||||
v-model:show="showDatePicker"
|
||||
:duration="100"
|
||||
zIndex="100"
|
||||
>
|
||||
<tm-drawer title="请选择时间" :showClose="true" :showFooter="false" size="auto" v-model:show="showDatePicker"
|
||||
:duration="100" zIndex="100">
|
||||
<time-range-picker @confirm="onDatePickerConfirm" @cancel="showDatePicker = false" />
|
||||
</tm-drawer>
|
||||
|
||||
<tm-modal
|
||||
v-model:show="confirmModalShow"
|
||||
:overlayClick="false"
|
||||
title="确定提交吗?"
|
||||
position="bottom"
|
||||
height="auto"
|
||||
:showCancel="true"
|
||||
cancelText="取消"
|
||||
confirmText="确定"
|
||||
@confirm="confirmSubmit"
|
||||
@cancel="confirmModalShow = false"
|
||||
>
|
||||
<tm-modal v-model:show="confirmModalShow" :overlayClick="false" title="确定提交吗?" position="bottom" height="auto"
|
||||
:showCancel="true" cancelText="取消" confirmText="确定" @confirm="confirmSubmit"
|
||||
@cancel="confirmModalShow = false">
|
||||
<view class="text-center">
|
||||
<tm-text font-size="30" color="#999999">提交后系统将会向手机号</tm-text>
|
||||
<tm-text font-size="30" color="#0779FD">{{ form.mobile || "" }}</tm-text>
|
||||
|
||||
@@ -20,9 +20,6 @@ const query = (page: number, pagesize: number) => {
|
||||
}
|
||||
|
||||
onLoad((options: any) => {
|
||||
const app = getApp()
|
||||
app._initTabbar()
|
||||
|
||||
if (options.parentId) {
|
||||
state.pa.parentId = options.parentId
|
||||
}
|
||||
@@ -84,7 +81,7 @@ const toDetail = async (v: any) => {
|
||||
<view class="flex-1">
|
||||
<view v-if="v.phone" class="flex items-center">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/phone.svg" />
|
||||
<view class="second-text-28 ml-1">{{ v.phone }}</view>
|
||||
<view class="second-text-28 ml-8rpx">{{ v.phone }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<tm-tag class="max-w-160rpx" size="xs">
|
||||
@@ -99,7 +96,7 @@ const toDetail = async (v: any) => {
|
||||
</view>
|
||||
<view v-if="v.addressDes" class="second-text-28">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/address.svg" />
|
||||
<text class="ml-1">地址:</text>
|
||||
<text class="ml-8rpx">地址:</text>
|
||||
<text class="m-l-10rpx">{{ v.addressDes }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -4,12 +4,13 @@
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<tm-input class="mt-2" v-model="params.receiverUserName" type="text" height="72" minHeight="72"
|
||||
<tm-input class="mt-16rpx" v-model="params.receiverUserName" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入领取人姓名"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false" color="#ECF4F9"
|
||||
@clear="inputClear">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="search">搜 索</tm-button>
|
||||
<tm-button class="mr-8rpx px-24rpx py-26rpx text-30rpx!" size="xs" @click="search">搜
|
||||
索</tm-button>
|
||||
</template>
|
||||
</tm-input>
|
||||
<view class="bg-white rounded-16rpx my-20rpx">
|
||||
@@ -17,27 +18,28 @@
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view class="card w-full h-400rpx relative activity-card overflow-hidden mb-2 py-2"
|
||||
<view class="card w-full h-400rpx relative activity-card overflow-hidden mb-16rpx py-16rpx"
|
||||
:style="{ backgroundColor: getActStatus(item.actStatus)?.color }" v-for="(item, index) in pageHook.list"
|
||||
:key="index">
|
||||
<view class="ribbon" :style="{ backgroundColor: getActStatus(item.actStatus)?.color }">
|
||||
{{ getActStatus(item.actStatus)?.name }}
|
||||
</view>
|
||||
<view class="text-28 c-#fff text-right px-2">ID {{ item.id }}</view>
|
||||
<view class="flex justify-between font-bold mt-1 px-8">
|
||||
<view class="text-28 c-#fff text-right px-16rpx">ID {{ item.id }}</view>
|
||||
<view class="flex justify-between font-bold mt-8rpx px-64rpx">
|
||||
<text class="text-32 c-#FFD941">限时领取</text>
|
||||
<text class="text-30 c-#FFD941 px-1 rounded-full bg-#eeeeee44">
|
||||
<text class="text-30 c-#FFD941 px-8rpx rounded-full bg-#eeeeee44">
|
||||
{{ (item.actStartTime?.split(" ")[0] || "") + "~" + (item.actExpireTime?.split(" ")[0] || "") }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="w-4/5 py-2 text-28 c-#fff px-8">{{ item.actTitlel }}</view>
|
||||
<view class="absolute bottom-100 left-60 text-28 bg-#eeeeee44 c-#fff px-2 rounded-full">限量领取 先领先得</view>
|
||||
<view class="w-4/5 py-16rpx text-28 c-#fff px-64rpx">{{ item.actTitlel }}</view>
|
||||
<view class="absolute bottom-100 left-60 text-28 bg-#eeeeee44 c-#fff px-16rpx rounded-full">限量领取 先领先得
|
||||
</view>
|
||||
<view v-if="item.receiverTime" class="absolute bottom-40 right-20 text-22 c-#fff">
|
||||
<text class="mr-2">领取人 {{ item.receiverUsername }}</text>
|
||||
<text class="mr-16rpx">领取人 {{ item.receiverUsername }}</text>
|
||||
<text>领取时间 {{ item.receiverTime }}</text>
|
||||
</view>
|
||||
<view v-if="item.cancelTime" class="absolute bottom-10 right-20 text-22 c-#fff">
|
||||
<text class="mr-2">核销人 {{ item.cancelUsername }}</text>
|
||||
<text class="mr-16rpx">核销人 {{ item.cancelUsername }}</text>
|
||||
<text>核销时间 {{ item.cancelTime }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
v-for="(item, index) in state.detail.phone.split('/')" :key="index"
|
||||
class="flex items-center">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/phone.svg" />
|
||||
<view class="second-text-28 ml-1">{{ item.trim() }}</view>
|
||||
<view class="second-text-28 ml-8rpx">{{ item.trim() }}</view>
|
||||
<view
|
||||
class="second-text-20 bg-#f8f8f8 ml-1 p-0.3 flex items-center rounded-1 border border-solid border-b-coolGray"
|
||||
class="second-text-20 bg-#f8f8f8 ml-8rpx p-2.4rpx flex items-center rounded-1 border border-solid border-b-coolGray"
|
||||
@tap="doPhone(item)">
|
||||
联系商家
|
||||
</view>
|
||||
@@ -49,7 +49,7 @@
|
||||
</view>
|
||||
<view v-if="state.detail.addressDes" class="second-text-28">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/address.svg" />
|
||||
<text class="ml-1">地址:</text>
|
||||
<text class="ml-8rpx">地址:</text>
|
||||
<text class="m-l-10rpx">{{ state.detail.addressDes }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<template>
|
||||
<crud-layout title="活动详情" mainIsScroll bg="/static/page/blue-bg.png">
|
||||
<view v-if="state.actId" class="px-2 py-4">
|
||||
<view v-if="state.actId" class="px-16rpx py-32rpx">
|
||||
<view v-if="state.actType == 'CANCEL_ACT'"
|
||||
class="card rounded-lb-0! rounded-rb-0! w-full h-400rpx relative activity-card overflow-hidden">
|
||||
<view class="ribbon">兑换券</view>
|
||||
<view class="px-8 pt-5 flex justify-between items-center font-bold">
|
||||
<view class="px-64rpx pt-40rpx flex justify-between items-center font-bold">
|
||||
<text class="text-32 c-#FF4F3F">限时领取</text>
|
||||
<text class="text-30 c-#FF4F3F px-1 rounded-full bg-#eeeeee44">
|
||||
<text class="text-30 c-#FF4F3F px-8rpx rounded-full bg-#eeeeee44">
|
||||
{{ (state.actDetail.startTime?.split(" ")[0] || "") + "~" +
|
||||
(state.actDetail.expireTime?.split(" ")[0] || "") }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="w-4/5 px-8 pt-4 text-28 c-#fff">{{ state.actDetail.actTitle }}</view>
|
||||
<view class="w-4/5 px-64rpx pt-32rpx text-28 c-#fff">{{ state.actDetail.actTitle }}</view>
|
||||
<view class="absolute bottom-100 left-60 text-40 italic">
|
||||
<text class="color-red mr-2">¥{{ hooks.useMoney(state.actDetail.activeCancelPrice) }}</text>
|
||||
<text class="color-red mr-16rpx">¥{{ hooks.useMoney(state.actDetail.activeCancelPrice) }}</text>
|
||||
<text class="text-30 line-through color-red">¥{{ hooks.useMoney(state.actDetail.activeOrgPrice)
|
||||
}}</text>
|
||||
</view>
|
||||
<view class="absolute bottom-40 left-60 text-28 bg-#eeeeee44 c-#fff px-2 rounded-full">限量领取 先领先得</view>
|
||||
<view class="absolute bottom-40 left-60 text-28 bg-#eeeeee44 c-#fff px-16rpx rounded-full">限量领取 先领先得
|
||||
</view>
|
||||
</view>
|
||||
<view class="card relative rounded-lb-0! rounded-rb-0! w-full activity-sr-card overflow-hidden"
|
||||
v-if="state.actType == 'COUPON_ACT' && state.actDetail.uniqueCode === '1qRgFo'">
|
||||
@@ -29,9 +30,9 @@
|
||||
<view v-else-if="state.actType == 'COUPON_ACT'"
|
||||
class="card relative rounded-lb-0! rounded-rb-0! w-full activity-card overflow-hidden">
|
||||
<view class="ribbon">{{ actCouponTypeEnum[state.actDetail.type] }}</view>
|
||||
<view class="px-8 pt-5 flex justify-between items-center font-bold">
|
||||
<view class="px-64rpx pt-40rpx flex justify-between items-center font-bold">
|
||||
<text class="text-32 c-#FF4F3F">{{ state.actDetail.name }}</text>
|
||||
<text class="text-30 c-#FF4F3F px-1 rounded-full bg-#eeeeee44">
|
||||
<text class="text-30 c-#FF4F3F px-8rpx rounded-full bg-#eeeeee44">
|
||||
<view v-if="state.actDetail.validType == 1" class="flex items-center">
|
||||
<text>{{ state.actDetail.validStartTime }}</text>
|
||||
<text>~</text>
|
||||
@@ -39,7 +40,7 @@
|
||||
</view>
|
||||
</text>
|
||||
</view>
|
||||
<view class="w-4/5 px-8 pt-4 text-28 c-#fff">
|
||||
<view class="w-4/5 px-64rpx pt-32rpx text-28 c-#fff">
|
||||
<view v-if="state.actDetail.validType == '1'">
|
||||
<text>领取后请在</text>
|
||||
<text>{{ state.actDetail.validStartTime }}</text>
|
||||
@@ -54,25 +55,26 @@
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="state.actDetail.description"
|
||||
class="m-l-20rpx m-y-20rpx w-55% text-28 bg-#eeeeee44 c-#fff p-2 rounded-16rpx">
|
||||
class="m-l-20rpx m-y-20rpx w-55% text-28 bg-#eeeeee44 c-#fff p-16rpx rounded-16rpx">
|
||||
{{ state.actDetail.description }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="state.couponInfo.actStatus == '2'"
|
||||
class="text-center card rounded-lt-0! rounded-rt-0! p-3 sub-text-30">
|
||||
class="text-center card rounded-lt-0! rounded-rt-0! p-24rpx sub-text-30">
|
||||
已 核 销
|
||||
</view>
|
||||
<template v-else>
|
||||
<view v-if="state.actUserReceiveStatus == '99'"
|
||||
class="text-center card rounded-lt-0! rounded-rt-0! p-3 sub-text-30" @tap="doReceive">立 即 领 取</view>
|
||||
<view v-else class="text-center card rounded-lt-0! rounded-rt-0! p-3 sub-text-30">
|
||||
class="text-center card rounded-lt-0! rounded-rt-0! p-24rpx sub-text-30" @tap="doReceive">立 即 领 取
|
||||
</view>
|
||||
<view v-else class="text-center card rounded-lt-0! rounded-rt-0! p-24rpx sub-text-30">
|
||||
{{ actUserReceiveEnum[state.actUserReceiveStatus] || "未知状态" }}
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<template #main-bottom>
|
||||
<view class="w-full flex-col-center">
|
||||
<tm-button class="px-32 m-2" width="90%" @click="doQrcode">我的礼券</tm-button>
|
||||
<tm-button class="px-256rpx m-16rpx" width="90%" @click="doQrcode">我的礼券</tm-button>
|
||||
<view class="h-10rpx"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
fill="#2BCDA3" p-id="1709" data-spm-anchor-id="a313x.search_index.0.i2.beb13a81SVstw0"
|
||||
class="selected"></path>
|
||||
</svg>
|
||||
<text class="text-36 mt-3 font-bold c-#333333!">支付成功</text>
|
||||
<text class="text-36 mt-24rpx font-bold c-#333333!">支付成功</text>
|
||||
</view>
|
||||
|
||||
<view class="flex-col-center m-b-60rpx">
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<template>
|
||||
<crud-layout title="支付" bg="/static/page/blue-bg.png">
|
||||
<view class="h-screen flex flex-col">
|
||||
<view class="mx-auto text-34 py-2 h-80rpx">{{ scanPayState.mchName }}</view>
|
||||
<view class="mx-auto text-34 py-16rpx h-80rpx">{{ scanPayState.mchName }}</view>
|
||||
|
||||
<tm-sheet :margin="[0, 10]" class="flex flex-row">
|
||||
<span class="text-2xl text-[#333] mr-1 line-height-normal">¥</span>
|
||||
<span class="text-2xl text-[#333] mr-8rpx line-height-normal">¥</span>
|
||||
<span class="text-3xl font-medium text-[#333]">{{ displayAmount }}</span>
|
||||
</tm-sheet>
|
||||
|
||||
<tm-sheet v-if="walletList.length > 0" :margin="[0, 10]" class="flex flex-col">
|
||||
<view class="text-gray-700 font-bold text-28 mb-1">选择支付钱包:</view>
|
||||
<view class="text-gray-700 font-bold text-28 mb-8rpx">选择支付钱包:</view>
|
||||
<view v-for="(v, index) in walletList" :key="index"
|
||||
class="border-6 border-solid border-#efefef my-2 duration-200 flex justify-between items-center p-3 rounded-2"
|
||||
class="border-6 border-solid border-#efefef my-16rpx duration-200 flex justify-between items-center p-24rpx rounded-2"
|
||||
:class="{ 'border-6 border-solid border-blue!': selectWallet.id == v.id }"
|
||||
@click="selectWallet = v">
|
||||
<view class="flex items-center">
|
||||
<image class="w-70 h-70 mr-2" :src="filePath(v.walletTypeIcon)" />
|
||||
<image class="w-70 h-70 mr-16rpx" :src="filePath(v.walletTypeIcon)" />
|
||||
<view class="text-32">{{ v.walletTypeName }}</view>
|
||||
</view>
|
||||
<view class="text-28 flex items-center">
|
||||
@@ -25,7 +25,7 @@
|
||||
</view>
|
||||
</tm-sheet>
|
||||
|
||||
<tm-button class="mt-1" :block="true" @click="handlePay()" :disabled="loading">支 付</tm-button>
|
||||
<tm-button class="mt-8rpx" :block="true" @click="handlePay()" :disabled="loading">支 付</tm-button>
|
||||
|
||||
<number-keyboard v-if="numberKeyboardShow" v-model="amount" />
|
||||
</view>
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
<template>
|
||||
<crud-layout title="转账" mainIsScroll bg="/static/page/blue-bg.png">
|
||||
<view class="h-20rpx"></view>
|
||||
<view class="p-4 card flex items-center justify-between">
|
||||
<view class="p-32rpx card flex items-center justify-between">
|
||||
<view class="flex items-center">
|
||||
<image class="w-64 h-64 mr-2" :src="filePath(payStore.sourceWalletData.walletTypeIcon)" />
|
||||
<image class="w-64 h-64 mr-16rpx" :src="filePath(payStore.sourceWalletData.walletTypeIcon)" />
|
||||
<view>{{ payStore.sourceWalletData.walletTypeName }}</view>
|
||||
</view>
|
||||
<view class="flex items-center c-#0094ff! font-bold">
|
||||
<view class="text-30">余额:</view>
|
||||
<view class="text-30 mr-1">{{ hooks.useMoney(payStore.sourceWalletData.balance) + "元" }}</view>
|
||||
<view class="text-30 mr-8rpx">{{ hooks.useMoney(payStore.sourceWalletData.balance) + "元" }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="p-4 card mt-2 flex items-center justify-between active:bg-[#f0f0f0]" @click="show = true">
|
||||
<view class="p-32rpx card mt-16rpx flex items-center justify-between active:bg-[#f0f0f0]" @click="show = true">
|
||||
<view class="flex items-center">
|
||||
<image class="w-64 h-64 rounded-full mr-2" src="@/static/page/money-cny-circle-fill.svg" />
|
||||
<image class="w-64 h-64 rounded-full mr-16rpx" src="@/static/page/money-cny-circle-fill.svg" />
|
||||
<view>转入到</view>
|
||||
</view>
|
||||
<view class="flex items-center">
|
||||
<view class="second-text-28 mr-1">{{ targetWalletType.name }}</view>
|
||||
<view class="second-text-28 mr-8rpx">{{ targetWalletType.name }}</view>
|
||||
<image class="w-38 h-38 rounded-full c-blueGray" src="@/static/page/arrow-right.svg" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="p-4 mt-2 card">
|
||||
<view class="p-32rpx mt-16rpx card">
|
||||
<text class="text-gray-700 font-bold text-lg">转账金额</text>
|
||||
<view class="flex-row items-center">
|
||||
<text class="text-3xl text-[#333] mr-2">¥</text>
|
||||
<text class="text-3xl text-[#333] mr-16rpx">¥</text>
|
||||
<text v-if="!amount" class="text-xl text-gray-300">转账金额</text>
|
||||
<text v-else class="text-3xl">{{ formattedAmount }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 金额限制提示 -->
|
||||
<view class="h-30rpx">
|
||||
<view v-if="storePrice(amount) > payStore.sourceWalletData?.balance" class="text-xs c-red px-4">
|
||||
<view v-if="storePrice(amount) > payStore.sourceWalletData?.balance" class="text-xs c-red px-32rpx">
|
||||
注:转账金额不能超过钱包余额</view>
|
||||
</view>
|
||||
|
||||
<view class="font-bold mt-6">
|
||||
<view class="font-bold mt-48rpx">
|
||||
<tm-button block @click="confirmTransfer" v-if="payStore.sourceWalletData.walletTypeId">确定转账</tm-button>
|
||||
</view>
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
<!-- 选择转入方式 -->
|
||||
<tm-drawer v-model:show="show" title="选择钱包" size="auto" bg-color="#efefef" :show-footer="false" :showClose="true">
|
||||
<view v-for="(v, index) in wallet.walletList" :key="index"
|
||||
class="card m-2 overflow-hidden relative border-4 border-solid border-white duration-200 flex justify-between items-center p-4"
|
||||
class="card m-16rpx overflow-hidden relative border-4 border-solid border-white duration-200 flex justify-between items-center p-32rpx"
|
||||
:class="{ 'border-4 border-solid border-blue!': targetWalletType.id == v.walletTypeId }"
|
||||
@click="selectTargetWalletType(v)">
|
||||
<view class="flex items-center">
|
||||
<image class="w-70 h-70 mr-2" :src="filePath(v.walletTypeIcon)" />
|
||||
<image class="w-70 h-70 mr-16rpx" :src="filePath(v.walletTypeIcon)" />
|
||||
<view class="flex flex-col">
|
||||
<view class="main-text-32">{{ v.walletTypeName }}</view>
|
||||
<view class="text-gray-500 text-sm">{{ v.cardNumber }}</view>
|
||||
|
||||
@@ -6,16 +6,18 @@
|
||||
<view class="h-30rpx" />
|
||||
<tm-sheet v-for="(item, index) in pageHook.list" :key="index" :margin="[0, 20]">
|
||||
<tm-text font-size="32">{{ item.hardName }} {{ item.deviceCode }}</tm-text>
|
||||
<view class="flex justify-around items-center my-1">
|
||||
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8" @click="doDetail(item.id)">
|
||||
<view class="flex justify-around items-center my-8rpx">
|
||||
<view class="flex-col items-center p-16rpx rounded-1 active:bg-#E8E8E8" @click="doDetail(item.id)">
|
||||
<image class="w-50 h-50" src="@/static/page/door-info.svg" />
|
||||
<tm-text>货柜详情</tm-text>
|
||||
</view>
|
||||
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8" @click="replenishment(item.id)">
|
||||
<view class="flex-col items-center p-16rpx rounded-1 active:bg-#E8E8E8"
|
||||
@click="replenishment(item.id)">
|
||||
<image class="w-50 h-50" src="@/static/page/open-door.svg" />
|
||||
<tm-text>货柜补货</tm-text>
|
||||
</view>
|
||||
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8" @click="openPutaway(item.id)">
|
||||
<view class="flex-col items-center p-16rpx rounded-1 active:bg-#E8E8E8"
|
||||
@click="openPutaway(item.id)">
|
||||
<image class="w-50 h-50" src="@/static/page/door-putaway.svg" />
|
||||
<tm-text>商品上架</tm-text>
|
||||
</view>
|
||||
@@ -34,8 +36,6 @@ import { onLoad, onShow } from "@dcloudio/uni-app"
|
||||
const pageRef = ref<any>(null)
|
||||
|
||||
onLoad(() => {
|
||||
const app = getApp()
|
||||
app._initTabbar()
|
||||
})
|
||||
onShow(() => {
|
||||
if (pageRef.value) {
|
||||
|
||||
@@ -18,10 +18,6 @@ onLoad(() => {
|
||||
})
|
||||
|
||||
onShow(async () => {
|
||||
const app: any = getApp({ allowDefault: true })
|
||||
if (app?.globalData?._initTabbar) {
|
||||
await app.globalData._initTabbar()
|
||||
}
|
||||
if (pageRef.value) {
|
||||
pageRef.value.reload(false)
|
||||
}
|
||||
|
||||
@@ -38,16 +38,16 @@
|
||||
'bg-gradient-to-r from-orange-50 to-red-50': index === 2,
|
||||
}">
|
||||
<view class="w-80rpx flex justify-center items-center">
|
||||
<view v-if="index < 3"
|
||||
<view v-if="Number(index) < 3"
|
||||
class="w-40rpx h-40rpx rounded-1 flex items-center justify-center text-20rpx font-bold text-white"
|
||||
:class="{
|
||||
'bg-gradient-to-r from-yellow-400 to-yellow-500': index === 0,
|
||||
'bg-gradient-to-r from-gray-400 to-gray-500': index === 1,
|
||||
'bg-gradient-to-r from-orange-400 to-orange-500': index === 2,
|
||||
}">
|
||||
{{ index + 1 }}
|
||||
{{ Number(index) + 1 }}
|
||||
</view>
|
||||
<view v-else class="text-24rpx font-medium text-gray-500">{{ index + 1 }}</view>
|
||||
<view v-else class="text-24rpx font-medium text-gray-500">{{ Number(index) + 1 }}</view>
|
||||
</view>
|
||||
|
||||
<view class="flex-1 px-16rpx">
|
||||
@@ -155,8 +155,6 @@ const areaChartOpts = {
|
||||
}
|
||||
|
||||
onLoad(() => {
|
||||
const app = getApp()
|
||||
app._initTabbar()
|
||||
})
|
||||
|
||||
const pageRef = ref<any>(null)
|
||||
|
||||
@@ -23,8 +23,6 @@ const query = (page: number, pagesize: number) => {
|
||||
}
|
||||
|
||||
onLoad(async () => {
|
||||
const app = getApp()
|
||||
app._initTabbar()
|
||||
|
||||
try {
|
||||
const res: any = await merchantApi.selectCatgory({ current: 1, size: 99999 })
|
||||
@@ -69,13 +67,13 @@ const toDetail = async (v: any) => {
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<view class="h-30rpx" />
|
||||
<view class="flex w-full">
|
||||
<view class="flex w-full border-4rpx border-solid border-#0779fd rounded-14rpx p-r-10rpx">
|
||||
<tm-input class="flex-1" v-model="state.pa.name" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入商家名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false"
|
||||
color="#ECF4F9">
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入商家名称" width="100%"
|
||||
:focus-highlight="false" color="#ECF4F9">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="search">搜 索</tm-button>
|
||||
<tm-button class="mr-8rpx px-24rpx py-26rpx text-30rpx!" size="xs" @click="search">搜
|
||||
索</tm-button>
|
||||
</template>
|
||||
</tm-input>
|
||||
</view>
|
||||
@@ -88,7 +86,7 @@ const toDetail = async (v: any) => {
|
||||
<image class="w-180rpx h-180rpx rounded-12rpx my-auto" :src="filePath(v.logoPic)" mode="aspectFill" />
|
||||
<view class="flex-1 flex-col m-l-20rpx">
|
||||
<view class="sub-text-34">
|
||||
<text class="mr-2">{{ v.name }}</text>
|
||||
<text class="mr-16rpx">{{ v.name }}</text>
|
||||
<!-- <tm-tag v-if="v.supType == '10' && Number(v.mchCount) > 0" size="xs" skin="thin">共{{ v.mchCount }}家</tm-tag> -->
|
||||
</view>
|
||||
<view class="m-t-10rpx">
|
||||
@@ -96,7 +94,7 @@ const toDetail = async (v: any) => {
|
||||
<view class="flex-1">
|
||||
<view v-if="v.phone" class="flex items-center">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/phone.svg" />
|
||||
<view class="second-text-28 ml-1">{{ v.phone }}</view>
|
||||
<view class="second-text-28 ml-8rpx">{{ v.phone }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<tm-tag class="max-w-160rpx" size="xs">{{ v.deptName.length > 5 ? v.deptName.substring(0, 5)
|
||||
@@ -111,7 +109,7 @@ const toDetail = async (v: any) => {
|
||||
</view>
|
||||
<view v-if="v.addressDes" class="second-text-28">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/address.svg" />
|
||||
<text class="ml-1">地址:</text>
|
||||
<text class="ml-8rpx">地址:</text>
|
||||
<text class="m-l-10rpx">{{ v.addressDes }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
+2
-10
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<crud-layout title="我的" mainIsScroll bg="/static/page/blue-bg.png">
|
||||
<template #main-top>
|
||||
<view class="flex items-center py-3 mx-30rpx">
|
||||
<view class="flex items-center py-24rpx mx-30rpx">
|
||||
<image v-if="state.userInfo?.sysUser?.avatar && false" class="size-100rpx rounded-full"
|
||||
:src="filePath(state.userInfo.sysUser.avatar)" mode="aspectFill" />
|
||||
<image v-else class="w-100rpx h-100rpx rounded-full" src="/static/icon/default-avatar.png"
|
||||
@@ -47,7 +47,7 @@
|
||||
<view class="text-center text-28">是否核销该活动兑换券?</view>
|
||||
<view class="text-center text-28">确认核销将自动对用户的 消费钱包 扣费</view>
|
||||
<template #footer>
|
||||
<view class="w-full flex justify-center gap-6">
|
||||
<view class="w-full flex justify-center gap-48rpx">
|
||||
<tm-button skin="thin" @tap="actModalCancel">取 消</tm-button>
|
||||
<tm-button color="primary" @tap="actModalConfirm">确 认</tm-button>
|
||||
</view>
|
||||
@@ -337,10 +337,6 @@ const initMenuConfig = () => {
|
||||
}
|
||||
|
||||
onLoad(async () => {
|
||||
const app = getApp({ allowDefault: true })
|
||||
if (app._initTabbar) {
|
||||
app._initTabbar()
|
||||
}
|
||||
// 初始化配置菜单
|
||||
initMenuConfig()
|
||||
// 获取应用信息
|
||||
@@ -352,10 +348,6 @@ onLoad(async () => {
|
||||
storage.getUserInfo()
|
||||
})
|
||||
onShow(() => {
|
||||
const app = getApp({ allowDefault: true })
|
||||
if (app._initTabbar) {
|
||||
app._initTabbar()
|
||||
}
|
||||
// 获取存储中的用户信息
|
||||
storage.getUserInfo()
|
||||
})
|
||||
|
||||
+25
-33
@@ -7,9 +7,12 @@ import { orderApi } from "@@/api"
|
||||
|
||||
import { filePath } from "@@/utils/file"
|
||||
|
||||
import { useTabbarStore } from "@@/stores/tabbar"
|
||||
|
||||
import zTabs from "@@/components/other/z-tabs/z-tabs.vue"
|
||||
import { getLaunchParam } from "@/sheep/utils/app"
|
||||
|
||||
const tabbarStore = useTabbarStore()
|
||||
const data = {
|
||||
tabs: [
|
||||
{ id: null, name: "全部", disabled: false },
|
||||
@@ -26,17 +29,8 @@ const state = reactive<any>({
|
||||
})
|
||||
|
||||
onLoad(() => {
|
||||
const app = getApp({ allowDefault: true })
|
||||
if (app._initTabbar) {
|
||||
app._initTabbar()
|
||||
}
|
||||
})
|
||||
onShow(async () => {
|
||||
const app = getApp({ allowDefault: true })
|
||||
if (app._initTabbar) {
|
||||
app._initTabbar()
|
||||
}
|
||||
|
||||
const isLogin = await hooks.useCheckLogin()
|
||||
if (!isLogin) return
|
||||
if (pageRef.value) {
|
||||
@@ -50,22 +44,19 @@ const doTab = (e: any) => {
|
||||
}
|
||||
|
||||
const pageRef = ref<any>(null)
|
||||
const pageHook = hooks.usePage(
|
||||
pageRef,
|
||||
getLaunchParam() == "canteen" // 食堂
|
||||
? orderApi.caneenPage
|
||||
: getLaunchParam() == "selfMerchant"
|
||||
? orderApi.supPage
|
||||
: getLaunchParam() == "coopMerchant"
|
||||
? orderApi.supPage
|
||||
: getLaunchParam() == "onlineShop"
|
||||
? orderApi.supPage
|
||||
: getLaunchParam() == "prosperityShop"
|
||||
? orderApi.farmerSpuPage
|
||||
: async () => [],
|
||||
null,
|
||||
"data.records",
|
||||
)
|
||||
let orderPageApi: any = async () => []
|
||||
const launchParam = tabbarStore.launchParam
|
||||
if (!launchParam) {
|
||||
orderPageApi = async () => []
|
||||
} else if (launchParam === "canteen") {
|
||||
orderPageApi = orderApi.caneenPage
|
||||
} else if (["selfMerchant", "coopMerchant", "onlineShop"].includes(launchParam)) {
|
||||
orderPageApi = orderApi.supPage
|
||||
} else if (launchParam === "prosperityShop") {
|
||||
orderPageApi = orderApi.farmerSpuPage
|
||||
}
|
||||
|
||||
const pageHook = hooks.usePage(pageRef, orderPageApi, null, "data.records")
|
||||
const query = (page: number, pagesize: number) => {
|
||||
const isLogin = hooks.useStaticCheckLogin()
|
||||
|
||||
@@ -96,7 +87,7 @@ const doRefund = (v: any) => {
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view class="flex-col justify-center card p-3 m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i">
|
||||
<view class="flex-col justify-center card p-24rpx m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i">
|
||||
<view class="flex-row">
|
||||
<image class="size-130rpx rounded-8rpx" :src="filePath(v.logoPic)" mode="aspectFill" />
|
||||
<view class="flex-1 ml-20rpx">
|
||||
@@ -117,10 +108,10 @@ const doRefund = (v: any) => {
|
||||
</view>
|
||||
<view>{{ hooks.useEnum("hardwareRefundStatusEnum", v.refundStatus) }}</view>
|
||||
</view>
|
||||
<view class="flex-row items-center justify-end mt-1">
|
||||
<view class="flex-row items-center justify-end mt-8rpx">
|
||||
<text
|
||||
v-if="v.carList?.length && ['5', '20'].includes(v.orderStatus) && ['1', '2'].includes(v.orderType)"
|
||||
class="second-text-30 mr-2">
|
||||
class="second-text-30 mr-16rpx">
|
||||
共 {{ v.carList.length }} 件
|
||||
</text>
|
||||
<text class="main-text-30 color-red!">¥ {{ hooks.useMoney(v.totalPrice) }}</text>
|
||||
@@ -129,11 +120,11 @@ const doRefund = (v: any) => {
|
||||
</view>
|
||||
|
||||
<view v-if="['5', '20'].includes(v.orderStatus) && ['1', '2'].includes(v.orderType)">
|
||||
<view class="border-b-2rpx border-dashed border-#eeeeee mt-2"></view>
|
||||
<view class="border-b-2rpx border-dashed border-#eeeeee mt-16rpx"></view>
|
||||
<tm-collapse>
|
||||
<tm-collapse-item :name="i" title="详细购买" titleFontSize="28" activeColor="#000" titleHeight="80"
|
||||
:showBottomLine="false">
|
||||
<view v-if="v.carList.length" class="flex justify-between items-center mb-2 px-3"
|
||||
<view v-if="v.carList.length" class="flex justify-between items-center mb-16rpx px-24rpx"
|
||||
v-for="(pV, pI) in v.carList" :key="pI">
|
||||
<view class="flex items-center w-6/10">
|
||||
<view class="size-100rpx">
|
||||
@@ -142,7 +133,7 @@ const doRefund = (v: any) => {
|
||||
<image v-else class="size-100rpx rounded-8rpx" :src="filePath(pV.productPic)"
|
||||
mode="aspectFill" />
|
||||
</view>
|
||||
<view class="ml-2 overflow-hidden">
|
||||
<view class="ml-16rpx overflow-hidden">
|
||||
<view class="sub-text-26 truncate">{{ pV.productName }}</view>
|
||||
<view class="sub-text-26">¥ {{ hooks.useMoney(pV.productPrice) }}</view>
|
||||
<view class="sub-text-26">x {{ pV.productCount }}</view>
|
||||
@@ -151,12 +142,13 @@ const doRefund = (v: any) => {
|
||||
<view class="sub-text-30 w-3/10">¥ {{ hooks.useMoney(pV.totalPrice) }}</view>
|
||||
</view>
|
||||
<view v-else class="second-text-26 text-center">无数据</view>
|
||||
<view class="border-b-2rpx border-dashed border-#eeeeee mt-2"></view>
|
||||
<view class="border-b-2rpx border-dashed border-#eeeeee mt-16rpx"></view>
|
||||
</tm-collapse-item>
|
||||
</tm-collapse>
|
||||
</view>
|
||||
|
||||
<view v-if="['5', '10'].includes(v.orderStatus)" class="w-full flex-row items-center justify-end my-1">
|
||||
<view v-if="['5', '10'].includes(v.orderStatus)"
|
||||
class="w-full flex-row items-center justify-end my-8rpx">
|
||||
<!-- <view v-if="v.orderStatus == 5 && v.orderType == 2" class="botder_btn" @tap.stop="doRefund(v)">退款</view> -->
|
||||
<view v-if="v.orderStatus === '5' && ['2', '7'].includes(v.orderType)" class="m-l-20rpx botder_btn"
|
||||
@tap.stop="doToDetail(v)">
|
||||
|
||||
@@ -22,10 +22,6 @@ onLoad(() => {
|
||||
|
||||
})
|
||||
onShow(async () => {
|
||||
const app: any = getApp({ allowDefault: true })
|
||||
if (app?.globalData?._initTabbar) {
|
||||
await app.globalData._initTabbar()
|
||||
}
|
||||
pageRef.value && pageRef.value.reload(false)
|
||||
})
|
||||
|
||||
@@ -53,7 +49,7 @@ const toDetail = async (v: any) => {
|
||||
<view class="m-t-10rpx">
|
||||
<view v-if="v.phone" class="flex items-center">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/phone.svg" />
|
||||
<view class="second-text-28 ml-1">{{ v.phone }}</view>
|
||||
<view class="second-text-28 ml-8rpx">{{ v.phone }}</view>
|
||||
</view>
|
||||
<view class="second-text-24">
|
||||
<view class="second-text-28">{{ v.jobTime == ",," ? "" : "营业时间:" }}</view>
|
||||
@@ -63,7 +59,7 @@ const toDetail = async (v: any) => {
|
||||
</view>
|
||||
<view v-if="v.addressDes" class="second-text-28">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/address.svg" />
|
||||
<text class="ml-1">地址:</text>
|
||||
<text class="ml-8rpx">地址:</text>
|
||||
<text class="m-l-10rpx">{{ v.addressDes }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -22,6 +22,7 @@ export { default as noticeApi } from "./notice"
|
||||
export { default as orderApi } from "./order"
|
||||
export { default as payApi } from "./pay"
|
||||
export { default as productApi } from "./product"
|
||||
export { default as prosperityShopApi } from "./prosperity-shop"
|
||||
export { default as refundApi } from "./refund"
|
||||
export { default as shopApi } from "./shop"
|
||||
export { default as sysBannerApi } from "./sys-banner"
|
||||
|
||||
@@ -35,7 +35,7 @@ defineExpose({
|
||||
|
||||
<template>
|
||||
<view>
|
||||
<view v-if="showPhoneText" class="w-full second-text-26 text-center mb-2 mt-10" @tap="doServiceText">
|
||||
<view v-if="showPhoneText" class="w-full second-text-26 text-center mb-16rpx mt-80rpx" @tap="doServiceText">
|
||||
<text>联系热线</text>
|
||||
</view>
|
||||
<tm-drawer :show="state.showModal" title="联系热线" size="30%" position="bottom" @close="state.showModal = false">
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<template>
|
||||
<view class="bg-[#f5f5f5] px-1 py-2 rounded-4 fixed bottom-0 left-0 right-0 w-full">
|
||||
<view class="bg-[#f5f5f5] px-8rpx py-16rpx rounded-4 fixed bottom-0 left-0 right-0 w-full">
|
||||
<view class="flex justify-end">
|
||||
<image v-show="show" class="w-[50rpx] h-[50rpx] mx-2 mb-1" src="@/static/page/fold.svg"
|
||||
<image v-show="show" class="w-[50rpx] h-[50rpx] mx-16rpx mb-8rpx" src="@/static/page/fold.svg"
|
||||
@click="show = !show" />
|
||||
<image v-show="!show" class="w-[50rpx] h-[50rpx] mx-2 mb-1" src="@/static/page/unfold.svg"
|
||||
<image v-show="!show" class="w-[50rpx] h-[50rpx] mx-16rpx mb-8rpx" src="@/static/page/unfold.svg"
|
||||
@click="show = !show" />
|
||||
</view>
|
||||
<view v-show="show" class="flex mb-2.5" v-for="(row, rowIndex) in keyboardLayout" :key="rowIndex">
|
||||
<view v-show="show" class="flex mb-20rpx" v-for="(row, rowIndex) in keyboardLayout" :key="rowIndex">
|
||||
<view
|
||||
class="flex-1 h-[90rpx] flex items-center justify-center bg-white text-2xl text-[#333] mx-[5px] rounded-lg cursor-pointer select-none active:bg-[#f0f0f0]"
|
||||
v-for="(key, keyIndex) in row" :key="keyIndex" @click="handleKeyPress(key.toString())">
|
||||
{{ key }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="show" class="flex mb-0">
|
||||
<view v-show="show" class="flex mb-0rpx">
|
||||
<view
|
||||
class="flex-1 h-[90rpx] flex items-center justify-center bg-white text-2xl text-[#333] mx-[5px] rounded-lg cursor-pointer select-none active:bg-[#f0f0f0]"
|
||||
@click="handleKeyPress('.')">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
{{ item.time.slice(0, 5) }}
|
||||
</tm-button>
|
||||
</view>
|
||||
<view class="px-20rpx py-2 flex justify-between">
|
||||
<view class="px-20rpx py-16rpx flex justify-between">
|
||||
<tm-button skin="thin" block @click="emit('cancel')">取消</tm-button>
|
||||
|
||||
<tm-button block @click="onConfirm">确定</tm-button>
|
||||
|
||||
@@ -169,6 +169,7 @@ export const useTabbarStore = defineStore("tabbarStore", {
|
||||
}
|
||||
})
|
||||
this.tabbarList = tabbarList
|
||||
this.launchParam = _launchParam
|
||||
},
|
||||
jumpFirstTabbar() {
|
||||
const firstTabbar = this.tabbarList[0]
|
||||
@@ -178,7 +179,9 @@ export const useTabbarStore = defineStore("tabbarStore", {
|
||||
jump(firstTabbar.pagePath, {}, 3)
|
||||
},
|
||||
setCurrentRoute(route: string) {
|
||||
console.log("设置route:", route)
|
||||
if (route === this.currentRoute) {
|
||||
return
|
||||
}
|
||||
this.currentRoute = route
|
||||
},
|
||||
},
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ const { presetWeappAttributify, transformerAttributify } = extractorAttributify(
|
||||
export default {
|
||||
presets: [
|
||||
presetWeapp({
|
||||
whRpx: true,
|
||||
whRpx: false,
|
||||
}),
|
||||
presetWeappAttributify(),
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user