添加页面

This commit is contained in:
wangxiaowei
2025-12-13 17:15:30 +08:00
parent 0ab8464612
commit 775a93f766
22 changed files with 1329 additions and 432 deletions

View File

@ -0,0 +1,54 @@
<route lang="jsonc" type="page">{
"layout": "default",
"style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#F6F7F9"
}
}</route>
<template>
<view class="mt-54rpx">
<view class="font-bold text-44rpx text-[#303133] leading-60rpx text-center">切换账号</view>
<view class="mx-30rpx mt-48rpx">
<view class="bg-white rounded-16rpx px-30rpx py-36rpx flex justify-between items-center mb-20rpx">
<view class="flex items-center">
<wd-img width="70rpx" height="70rpx" round src="https://shchazhi.oss-cn-hangzhou.aliyuncs.com/fronted/icon/icon_avatar.png" mode="aspectFit" />
<view class="w-360rpx line-1 ml-24rpx">茶址24小时智能茶室(...</view>
</view>
<view class="flex-1 flex justify-end">
<template v-if="2 < 1">
<view class="font-400 text-28rpx text-[#4C9F44] leading-40rpx">当前登录</view>
</template>
<template v-if="2 > 1">
<view class="w-120rpx h-60rpx bg-[#4C9F44] text-center leading-60rpx text-[#fff] font-400 text-28rpx leading-40rpx rounded-8rpx text-center">切换</view>
</template>
</view>
</view>
<view class="bg-white rounded-16rpx px-30rpx py-36rpx flex justify-between items-center mb-20rpx">
<view class="flex items-center">
<wd-img width="70rpx" height="70rpx" round src="https://shchazhi.oss-cn-hangzhou.aliyuncs.com/fronted/icon/icon_avatar.png" mode="aspectFit" />
<view class="w-360rpx line-1 ml-24rpx">茶址24小时智能茶室(...</view>
</view>
<view class="flex-1 flex justify-end">
<template v-if="2 > 1">
<view class="font-400 text-28rpx text-[#4C9F44] leading-40rpx">当前登录</view>
</template>
<template v-if="2 < 1">
<view class="w-120rpx h-60rpx bg-[#4C9F44] text-center leading-60rpx text-[#fff] font-400 text-28rpx leading-40rpx rounded-8rpx text-center">切换</view>
</template>
</view>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
</script>
<style lang="scss" scoped>
page {
background-color: $cz-page-background;
}
</style>

View File

@ -0,0 +1,133 @@
<route lang="jsonc" type="page">{
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#F6F7F8"
}
}</route>
<template>
<view class="home-bg pb-80rpx">
<view class="home-bg w-[100%] fixed top-0 left-0 z-100">
<wd-navbar left-arrow safeAreaInsetTop title="财务管理" :bordered="false" custom-style="background-color: transparent !important;" @click-left="router.navigateBack()"></wd-navbar>
</view>
<view :style="{ paddingTop: navbarHeight + 'px' }">
<view class="relative mx-30rpx mt-16rpx">
<wd-img width="692rpx" height="334rpx" :src="`${OSS}images/store/finance/image1.png`" mode="aspectFit" />
<view class="absolute top-50rpx left-40rpx">
<view class="font-400 text-26rpx text-[#B4CEFF] leading-36rpx">经营资产</view>
<view class="mt-20rpx font-bold text-36rpx text-[#fff] leading-34rpx">5,662.46</view>
</view>
<view class="flex items-center justify-around w-100% absolute bottom-40rpx left-0 px-40rpx">
<view class="flex flex-col items-center justify-start">
<view class="font-400 text-24rpx text-[#606266] text-34rpx">已提现</view>
<view class="font-bold text-32rpx text-[#303133] leading-34rpx mt-14rpx">3,662.46</view>
</view>
<view class="h-98rpx">
<wd-divider vertical color="#EAEEF2" custom-class="!h-98rpx"></wd-divider>
</view>
<view class="flex flex-col items-center justify-start">
<view class="font-400 text-24rpx text-[#606266] text-34rpx">待提现</view>
<view class="font-bold text-32rpx text-[#303133] leading-34rpx mt-14rpx">3,662.46</view>
</view>
</view>
</view>
<view class="mx-30rpx">
<view class="flex items-center">
<view class="font-bold text-[#303133]">
<text class="text-44rpx">8</text>
<text class="text-32rpx"></text>
</view>
<view class="mt-16rpx">
<wd-icon name="fill-arrow-down" size="40rpx" color="#BFC2CC"></wd-icon>
</view>
</view>
<view class="font-400 text-24rpx text-[#606266] leading-34rpx">
收入5,562.46
</view>
<view class="mt-20rpx">
<mescroll-body ref="mescrollItem0" @init="mescrollInit" @down="downCallback" @up="Finance.upCallback" :down="downOption" :up="upOption">
<view class="bg-white rounded-16rpx px-16rpx py-28rpx">
<view class="flex items-center justify-between">
<view class="line-1 w-480rpx font-bold text-30rpx text-[#303133] leading-42rpx">榻榻米双人包间惬意茶室商务...</view>
<view class="flex items-center">
<view class="text-[#FF5951] font-bold text-30rpx leading-42rpx">+ 181.35</view>
<wd-icon name="arrow-right" size="40rpx" color="#000"></wd-icon>
</view>
</view>
<view class="mt-12rpx">
<view class="flex items-center">
<view class="rounded-4rpx w-60rpx text-center text-[#40AE36] border-2rpx border-solid border-[#40AE36] text-22rpx pb-4rpx">团购</view>
<view class="text-24rpx text-[#606266] leading-34rpx ml-10rpx">上海.茶址24小时智能茶室中新店</view>
</view>
</view>
<view class="mt-14rpx text-24rpx text-[#909399] leading-34rpx">
核销时间2025-08-05 19:09:52
</view>
</view>
</mescroll-body>
</view>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { router } from '@/utils/tools'
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
import useMescroll from "@/uni_modules/mescroll-uni/hooks/useMescroll.js"
const OSS = inject('OSS')
const navbarHeight = inject('navbarHeight')
// mescroll相关
const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom) // 调用mescroll的hook
const downOption = {
auto: true
}
const upOption = {
auto: true,
textNoMore: '~ 已经到底啦 ~', //无更多数据的提示
}
const list = ref<Array<any>>([]) // 茶艺师列表
onLoad((args) => {
})
const Finance = {
// 上拉加载的回调: 其中num:当前页 从1开始, size:每页数据条数,默认10
upCallback: (mescroll) => {
// getTeaSpecialistOrderList(filter).then((res) => {
// const curPageData = res.list || [] // 当前页数据
// if(mescroll.num == 1) list.value = [] // 第一页需手动制空列表
// list.value = list.value.concat(curPageData) //追加新数据
// mescroll.endSuccess(curPageData.length, Boolean(res.more))
// }).catch(() => {
mescroll.endErr() // 请求失败, 结束加载
// })
},
}
</script>
<style lang="scss" scoped>
page {
background-color: $cz-page-background;
// background: linear-gradient( 176deg, #D2EDFF 0%, rgba(119,199,255,0) 100%);
}
.home-bg {
background: linear-gradient( 176deg, #D2EDFF 0%, rgba(119,199,255,0) 100%);
// background-image: url(#{$OSS}images/store/finance/image1.png);
background-size: 100% 588rpx;
background-repeat: no-repeat;
}
</style>

View File

@ -0,0 +1,73 @@
<route lang="jsonc" type="page">{
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#F6F7F9"
}
}</route>
<template>
<view class="mx-30rpx">
<view>
<navbar :title="storeName" custom-class='!bg-[#F6F7F8]' :leftArrow="false"></navbar>
</view>
<view class="mt-76rpx">
<view class="font-bold text-44rpx text-[#303133] leading-60rpx text-center">输入验券</view>
</view>
<wd-form ref="form" :model="model">
<view>
<view class="mt-20rpx">
<wd-input
v-model="model.code"
type="text"
placeholder="请输入券码"
inputmode="numeric"
no-border
custom-class="!bg-[#fff] !rounded-16rpx"
custom-input-class="!px-32rpx !h-104rpx"
/>
</view>
</view>
</wd-form>
<view class="w-630rpx h-90rpx text-center leading-90rpx mx-auto rounded-8rpx bg-[#4C9F44] text-[#fff] mt-112rpx" @click="VerifyCode.handleVerifyCode">
验券
</view>
</view>
</template>
<script lang="ts" setup>
import { toast } from '@/utils/toast'
const storeName = ref<string>('')
// 表单相关
const model = reactive<{
code: string
}>({
code: ''
})
onLoad((args) => {
storeName.value = args.storeName || ''
})
const VerifyCode = {
// 验券
handleVerifyCode() {
if (!model.code) {
return
}
}
}
</script>
<style lang="scss" scoped>
page {
background-color: $cz-page-background;
}
</style>

View File

@ -0,0 +1,79 @@
<route lang="jsonc" type="page">{
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#F6F7F8"
}
}</route>
<template>
<view>
<view>
<navbar title="验券记录" custom-class='!bg-[#F6F7F8]' :leftArrow="false"></navbar>
</view>
<view class="bg-white rounded-16rpx px-30rpx py-28rpx">
<view>
<mescroll-body ref="mescrollItem0" @init="mescrollInit" @down="downCallback" @up="VerifyRecord.upCallback" :down="downOption" :up="upOption">
<view v-for="i in 4" :key="i">
<view class="flex items-center justify-between">
<view class="mr-26rpx">
<view class="font-400 text-26rpx text-[#303133] leading-40rpx w-440rpx line-2">这是团购套餐的名字</view>
<view class="font-400 text-22rpx text-[#909399] leading-32rpx">2025-08-09 17:21</view>
</view>
<view>
<price-format color="#303133" :first-size="36" :second-size="36" :subscript-size="36" :price="23.02"></price-format>
</view>
</view>
<view class="mt-22rpx mb-30rpx">
<wd-gap bg-color="#F6F7F9" height="2rpx"></wd-gap>
</view>
</view>
</mescroll-body>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
import useMescroll from "@/uni_modules/mescroll-uni/hooks/useMescroll.js"
const OSS = inject('OSS')
// mescroll相关
const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom) // 调用mescroll的hook
const downOption = {
auto: true
}
const upOption = {
auto: true,
textNoMore: '~ 已经到底啦 ~', //无更多数据的提示
}
const list = ref<Array<any>>([]) // 茶艺师列表
onLoad((args) => {
})
const VerifyRecord = {
// 上拉加载的回调: 其中num:当前页 从1开始, size:每页数据条数,默认10
upCallback: (mescroll) => {
// getTeaSpecialistOrderList(filter).then((res) => {
// const curPageData = res.list || [] // 当前页数据
// if(mescroll.num == 1) list.value = [] // 第一页需手动制空列表
// list.value = list.value.concat(curPageData) //追加新数据
// mescroll.endSuccess(curPageData.length, Boolean(res.more))
// }).catch(() => {
mescroll.endErr() // 请求失败, 结束加载
// })
},
}
</script>
<style lang="scss" scoped>
page {
background-color: #fff;
}
</style>