This commit is contained in:
gyq 2025-05-10 09:14:15 +08:00
parent d6e1c83f88
commit 7f97467f82
2 changed files with 793 additions and 736 deletions

View File

@ -1,17 +1,15 @@
<!-- 首页 --> <!-- 首页 -->
<template> <template>
<view class="page-wrapper" style="overflow:visible;height:auto"> <view class="page-wrapper" style="overflow: visible; height: auto">
<!-- 背景图片view --> <!-- 背景图片view -->
<view class="bg-img-view" > <view class="bg-img-view">
<!-- 背景颜色view --> <!-- 背景颜色view -->
<view class="bg-color-view" style="position: absolute;top: 0;left: 0;right: 0;height: 550rpx;border-radius:0 0 32rpx 32rpx;background-color: #318AFE!important;"> <view class="bg-color-view" style="position: absolute; top: 0; left: 0; right: 0; height: 550rpx; border-radius: 0 0 32rpx 32rpx; background-color: #318afe !important">
<view class="bgbottomStyle"> <view class="bgbottomStyle"></view>
</view>
</view> </view>
</view> </view>
<!-- 解决定位层级问题 --> <!-- 解决定位层级问题 -->
<view class="bg-main"> <view class="bg-main">
<!-- 导航条 --> <!-- 导航条 -->
<up-navbar title="首页" bg-color="#318AFE" titleStyle="color:#fff;font-size:16px;" @leftClick="toSetting"> <up-navbar title="首页" bg-color="#318AFE" titleStyle="color:#fff;font-size:16px;" @leftClick="toSetting">
<template #left> <template #left>
@ -22,369 +20,365 @@
<view class="u-flex u-row-center u-relative"> <view class="u-flex u-row-center u-relative">
<view class="u-flex u-col-center"> <view class="u-flex u-col-center">
<view class="u-m-r-12">总收入</view> <view class="u-m-r-12">总收入</view>
<up-icon name="/static/indexImg/icon-help.svg" color="#fff" :size="12" <up-icon name="/static/indexImg/icon-help.svg" color="#fff" :size="12" @click="toggleTips"></up-icon>
@click="toggleTips"></up-icon>
</view> </view>
<view class="tips u-absolute color-666 u-font-20 u-text-left " :class="{'showTips':showTips}"> <view class="tips u-absolute color-666 u-font-20 u-text-left" :class="{ showTips: showTips }">
<view class="sanjiao u-flex"><up-icon name="play-left-fill" size="12" color="#fff"></up-icon></view> <view class="sanjiao u-flex"><up-icon name="play-left-fill" size="12" color="#fff"></up-icon></view>
总收入为除会员余额 总收入为除会员余额 支付外所有收入
支付外所有收入
</view> </view>
</view> </view>
<view class="u-flex u-row-center"> <view class="u-flex u-row-center">
<view class="">{{((totalRevenuedata||0)*1).toFixed(2)}}</view> <view class="">{{ ((totalRevenuedata || 0) * 1).toFixed(2) }}</view>
</view> </view>
<view>{{shopName||''}}</view> <view>{{ shopName || '' }}</view>
</view> </view>
<!-- 统计 or 快捷扫码 --> <!-- 统计 or 快捷扫码 -->
<!-- <Stats ref="statsRef" /> --> <!-- <Stats ref="statsRef" /> -->
<statistics @totalRevenue="totalRevenue"></statistics> <statistics @totalRevenue="totalRevenue"></statistics>
<!-- 导航栅格 --> <!-- 导航栅格 -->
<JeepayNavigation :navList="navList" type="grid" /> <JeepayNavigation :navList="navList" type="grid" />
</view> </view>
</view> </view>
</template> </template>
<script setup> <script setup>
import { reactive, ref, onMounted, nextTick } from 'vue'; import { reactive, ref, onMounted, nextTick } from 'vue';
import { onPullDownRefresh, onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'; import { onPullDownRefresh, onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app';
import go from '@/commons/utils/go.js'; import go from '@/commons/utils/go.js';
import Stats from './components/Stats.vue'; import Stats from './components/Stats.vue';
import statistics from './components/statistics.vue' import statistics from './components/statistics.vue';
import storageManage from '@/commons/utils/storageManage.js'; import storageManage from '@/commons/utils/storageManage.js';
import { hasPermission } from '@/commons/utils/hasPermission.js' import { hasPermission } from '@/commons/utils/hasPermission.js';
uni.hideTabBar() uni.hideTabBar();
let shopName = ref() let shopName = ref();
let totalRevenuedata = ref() let totalRevenuedata = ref();
let totalRevenue = (d) => { let totalRevenue = (d) => {
totalRevenuedata.value = d totalRevenuedata.value = d;
} };
let showTips = ref(false) let showTips = ref(false);
function toggleTips() { function toggleTips() {
showTips.value = !showTips.value showTips.value = !showTips.value;
} }
function toSetting() { function toSetting() {
go.to('PAGES_SHOP_SETUP') go.to('PAGES_SHOP_SETUP');
} }
// //
const navList = [ const navList = [
{ {
title: '销售汇总', title: '销售汇总',
icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg', icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg',
pageUrl: 'PAGES_SALES_SUMMARY' pageUrl: 'PAGES_SALES_SUMMARY'
}, },
{ {
title: '代客下单', title: '代客下单',
icon: '/static/indexImg/icon-substitute-ordering.svg', icon: '/static/indexImg/icon-substitute-ordering.svg',
pageUrl: 'PAGES_CREATE_ORDER', pageUrl: 'PAGES_CREATE_ORDER',
clickFunc: () => { clickFunc: () => {
hasPermission('允许下单').then(res => { hasPermission('允许下单').then((res) => {
if (res) { if (res) {
go.to('PAGES_CREATE_ORDER') go.to('PAGES_CREATE_ORDER');
} }
}) });
}
},
{
title: '桌台',
icon: '/static/indexImg/icon-table.svg',
pageUrl: 'PAGES_TABLE'
},
{
title: '商品管理',
icon: '/static/indexImg/icon-product-control.svg',
pageUrl: 'PAGES_PRODUCT',
},
{
title: '分组管理',
icon: '/static/indexImg/goods-group.svg',
pageUrl: 'PAGES_GOODS_GROUP',
},
{
title: '分类管理',
icon: '/static/indexImg/icon-category.svg',
pageUrl: 'PAGES_CATEGORY',
},
{
title: '会员管理',
icon: '/static/indexImg/icon-user.svg',
pageUrl: 'PAGES_USER_CONTROL',
}, {
title: '员工管理',
icon: '/static/indexImg/icon-staff.svg',
pageUrl: 'PAGES_STAFF'
},
{
title: '耗材管理',
icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg',
pageUrl: 'PAGES_SALES_CONSUMABLES'
},
{
title: '订单管理',
icon: '/static/indexImg/icon-order.svg',
pageUrl: 'PAGES_ORDER_INDEX',
},
{
title: '设备管理',
icon: '/static/indexImg/icon-printer.svg',
pageUrl: 'PAGES_PRINTER_INDEX',
},
{
title: '交班',
icon: '/static/indexImg/icon-work.svg',
pageUrl: 'PAGES_WORK_INDEX',
},
{
title: '排队',
icon: '/static/indexImg/icon-line-up.svg',
pageUrl: 'PAGES_LINE_UP'
},
{
title: '霸王餐',
icon: '/static/indexImg/icon-bwc.svg',
pageUrl: 'PAGES_BWC'
},
{
title: '优惠券',
icon: '/static/coupon/icon_coupon.svg',
pageUrl: 'PAGES_COUPON_INDEX',
},
{
title: '订阅通知',
icon: '/static/indexImg/icon-notification.svg',
pageUrl: 'PAGES_NOTIFICATION_INDEX',
},
{
title: '挂账管理',
icon: '/static/indexImg/icon_credit.svg',
pageUrl: 'PAGES_CREDIT_BUYER_INDEX',
},
{
title: '核销管理',
icon: '/static/indexImg/pagewriteoff.svg',
pageUrl: 'PAGES_WEITEOFF'
},
{
title: '退出登录',
icon: '/static/indexImg/icon-login-out.svg',
pageUrl: 'PAGES_LOGIN',
clickFunc: () => {
storageManage.cleanByLogout()
go.to('PAGES_LOGIN', {}, 'redirect')
}
} }
// { },
// title: '', {
// icon: '/static/indexImg/icon-staff.svg', title: '桌台',
// pageUrl: 'PAGES_USER' icon: '/static/indexImg/icon-table.svg',
// }, pageUrl: 'PAGES_TABLE'
// { },
// title: '', {
// icon: '/static/indexImg/icon-notification.svg', title: '商品管理',
// pageUrl: 'PAGES_NOTIFICATION_INDEX', icon: '/static/indexImg/icon-product-control.svg',
// }, pageUrl: 'PAGES_PRODUCT'
// { },
// title: '', {
// icon: '/static/indexImg/icon-invoicing.svg', title: '分组管理',
// pageUrl: 'PAGES_INVOICING_INDEX', icon: '/static/indexImg/goods-group.svg',
// }, pageUrl: 'PAGES_GOODS_GROUP'
// { },
// title: '', {
// icon: '/static/indexImg/icon-yuyue-zuo.svg', title: '分类管理',
// pageUrl: 'PAGES_RESERVE_SEAT_INDEX', icon: '/static/indexImg/icon-category.svg',
// }, pageUrl: 'PAGES_CATEGORY'
// { },
// title: '', {
// icon: '/static/indexImg/icon-yuyue.svg', title: '会员管理',
// pageUrl: 'PAGES_BOOKING_INDEX', icon: '/static/indexImg/icon-user.svg',
// }, pageUrl: 'PAGES_USER_CONTROL'
// { },
// title: '', {
// icon: '/static/indexImg/icon-recharge.svg', title: '员工管理',
// pageUrl: 'PAGES_RECHARGE_INDEX', icon: '/static/indexImg/icon-staff.svg',
// }, pageUrl: 'PAGES_STAFF'
// { },
// title: '', {
// icon: '/static/indexImg/icon-passage.svg', title: '耗材管理',
// pageUrl: 'PAGES_APPLYMENT', icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg',
// entId: 'ENT_MCH_APPLYMENT_LIST' pageUrl: 'PAGES_SALES_CONSUMABLES'
// }, },
// { {
// title: '', title: '订单管理',
// icon: '/static/indexImg/business.svg', icon: '/static/indexImg/icon-order.svg',
// pageUrl: 'PAGES_APPLYMENT_BUSINESS', pageUrl: 'PAGES_ORDER_INDEX'
// entId: 'ENT_MCH_APPLYMENT_LIST' },
// }, {
// { title: '设备管理',
// title: '', icon: '/static/indexImg/icon-printer.svg',
// icon: '/static/indexImg/icon-store.svg', pageUrl: 'PAGES_PRINTER_INDEX'
// pageUrl: 'PAGES_STORE', },
// entId: 'ENT_MCH_STORE' {
// }, title: '交班',
// { icon: '/static/indexImg/icon-work.svg',
// title: '', pageUrl: 'PAGES_WORK_INDEX'
// icon: '/static/indexImg/icon-calc.svg', },
// pageUrl: 'PAGES_DEVICE_MAIN', {
// entId: 'ENT_DEVICE' title: '排队',
// }, icon: '/static/indexImg/icon-line-up.svg',
pageUrl: 'PAGES_LINE_UP'
// { },
// title: '', {
// icon: '/static/indexImg/icon-pro.svg', title: '霸王餐',
// pageUrl: 'PAGES_STAT', icon: '/static/indexImg/icon-bwc.svg',
// entId: 'ENT_ORDER_STATISTIC' pageUrl: 'PAGES_BWC'
// }, },
// { {
// title: '', title: '优惠券',
// icon: '/static/indexImg/icon-app.svg', icon: '/static/coupon/icon_coupon.svg',
// pageUrl: 'PAGES_APP', pageUrl: 'PAGES_COUPON_INDEX'
// entId: 'ENT_MCH_APP_LIST' },
// }, {
// { title: '订阅通知',
// title: '', icon: '/static/indexImg/icon-notification.svg',
// icon: '/static/indexImg/icon-member.svg', pageUrl: 'PAGES_NOTIFICATION_INDEX'
// pageUrl: 'PAGES_MEMBER_CENTER', },
// entId: 'ENT_MCH_MEMBER' {
// }, title: '挂账管理',
// { icon: '/static/indexImg/icon_credit.svg',
// title: '广', pageUrl: 'PAGES_CREDIT_BUYER_INDEX'
// icon: '/static/indexImg/icon-ad.svg', },
// pageUrl: 'PAGES_AD_LIST', {
// entId: 'ENT_ADVERT_CONTROL' title: '核销管理',
// }, icon: '/static/indexImg/pagewriteoff.svg',
pageUrl: 'PAGES_WEITEOFF'
},
]; {
title: '退出登录',
const vdata = reactive({ icon: '/static/indexImg/icon-login-out.svg',
noticeList: [], // pageUrl: 'PAGES_LOGIN',
adList: [], clickFunc: () => {
shareImgUrl: '' // storageManage.cleanByLogout();
}); go.to('PAGES_LOGIN', {}, 'redirect');
onLoad((options) => {
shopName.value = uni.getStorageSync('shopInfo').shopName;
});
//
onMounted(() => {
// refData();
});
// 广
if (storageManage.userInfo().userType != 1) {
const index = navList.findIndex((v) => v.entId == 'ENT_ADVERT_CONTROL');
if (index != -1) {
navList.splice(index, 1);
} }
} }
// {
// title: '',
// icon: '/static/indexImg/icon-staff.svg',
// pageUrl: 'PAGES_USER'
// },
// {
// title: '',
// icon: '/static/indexImg/icon-notification.svg',
// pageUrl: 'PAGES_NOTIFICATION_INDEX',
// },
// {
// title: '',
// icon: '/static/indexImg/icon-invoicing.svg',
// pageUrl: 'PAGES_INVOICING_INDEX',
// },
// {
// title: '',
// icon: '/static/indexImg/icon-yuyue-zuo.svg',
// pageUrl: 'PAGES_RESERVE_SEAT_INDEX',
// },
// {
// title: '',
// icon: '/static/indexImg/icon-yuyue.svg',
// pageUrl: 'PAGES_BOOKING_INDEX',
// },
// {
// title: '',
// icon: '/static/indexImg/icon-recharge.svg',
// pageUrl: 'PAGES_RECHARGE_INDEX',
// },
// {
// title: '',
// icon: '/static/indexImg/icon-passage.svg',
// pageUrl: 'PAGES_APPLYMENT',
// entId: 'ENT_MCH_APPLYMENT_LIST'
// },
// {
// title: '',
// icon: '/static/indexImg/business.svg',
// pageUrl: 'PAGES_APPLYMENT_BUSINESS',
// entId: 'ENT_MCH_APPLYMENT_LIST'
// },
// {
// title: '',
// icon: '/static/indexImg/icon-store.svg',
// pageUrl: 'PAGES_STORE',
// entId: 'ENT_MCH_STORE'
// },
// {
// title: '',
// icon: '/static/indexImg/icon-calc.svg',
// pageUrl: 'PAGES_DEVICE_MAIN',
// entId: 'ENT_DEVICE'
// },
async function refData() { // {
// , // title: '',
// icon: '/static/indexImg/icon-pro.svg',
// pageUrl: 'PAGES_STAT',
// entId: 'ENT_ORDER_STATISTIC'
// },
// {
// title: '',
// icon: '/static/indexImg/icon-app.svg',
// pageUrl: 'PAGES_APP',
// entId: 'ENT_MCH_APP_LIST'
// },
// {
// title: '',
// icon: '/static/indexImg/icon-member.svg',
// pageUrl: 'PAGES_MEMBER_CENTER',
// entId: 'ENT_MCH_MEMBER'
// },
// {
// title: '广',
// icon: '/static/indexImg/icon-ad.svg',
// pageUrl: 'PAGES_AD_LIST',
// entId: 'ENT_ADVERT_CONTROL'
// },
];
// nextTick(() => statsRef.value.refData()); const vdata = reactive({
// noticeList: [], //
uni.stopPullDownRefresh(); adList: [],
shareImgUrl: '' //
});
onLoad((options) => {
shopName.value = uni.getStorageSync('shopInfo').shopName;
});
//
onMounted(() => {
// refData();
});
// 广
if (storageManage.userInfo().userType != 1) {
const index = navList.findIndex((v) => v.entId == 'ENT_ADVERT_CONTROL');
if (index != -1) {
navList.splice(index, 1);
} }
}
/** async function refData() {
* 微信分享 // ,
*/
onShareAppMessage((res) => {
if (res.from == 'menu')
return {
title: uni.$appName,
path: '/pages/index/index',
imageUrl: vdata.shareImgUrl
};
});
/** // nextTick(() => statsRef.value.refData());
* 分享到朋友圈 //
*/ uni.stopPullDownRefresh();
onShareTimeline(() => { }
/**
* 微信分享
*/
onShareAppMessage((res) => {
if (res.from == 'menu')
return { return {
title: uni.$appName, title: uni.$appName,
path: '/pages/index/index',
imageUrl: vdata.shareImgUrl imageUrl: vdata.shareImgUrl
}; };
}); });
//
onPullDownRefresh(() => { /**
refData(); * 分享到朋友圈
}); */
onShareTimeline(() => {
return {
title: uni.$appName,
imageUrl: vdata.shareImgUrl
};
});
//
onPullDownRefresh(() => {
refData();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.bg-main{ .bg-main {
position: relative; position: relative;
z-index: 10; z-index: 10;
}
.bgbottomStyle {
position: absolute;
bottom: -2rpx;
left: 0;
width: 750rpx;
height: 74rpx;
background: linear-gradient(180deg, rgba(195, 215, 235, 0) 0%, #f9f9f9 100%);
}
.income {
/* #ifdef H5 */
padding-top: calc(84rpx);
/* #endif */
/* #ifndef H5 */
padding-top: calc(84rpx + 44px);
/* #endif */
> view {
text-align: center;
color: #ffffff;
font-family: Source Han Sans CN, Source Han Sans CN;
} }
.bgbottomStyle{
> view:nth-child(1) {
font-weight: 400;
font-size: 28rpx;
margin-top: 84rpx;
}
> view:nth-child(2) {
margin-top: 20rpx;
font-weight: 500;
font-size: 64rpx;
}
> view:nth-child(3) {
font-weight: 400;
font-size: 28rpx;
margin-top: 50rpx;
}
}
.tips {
opacity: 0;
right: 28rpx;
transition: opacity 0.3s;
background: #ffffff;
padding: 20rpx 14rpx;
width: 211rpx;
box-sizing: border-box;
border-radius: 8rpx 8rpx 8rpx 8rpx;
&.showTips {
opacity: 1;
}
.sanjiao {
position: absolute; position: absolute;
bottom: -2rpx; right: 100%;
left: 0; top: 50%;
transform: translateX(10rpx) translateY(-50%);
width: 750rpx;
height: 74rpx;
background: linear-gradient( 180deg, rgba(195,215,235,0) 0%, #F9F9F9 100%);
}
.income {
/* #ifdef H5 */
padding-top: calc(84rpx);
/* #endif */
/* #ifndef H5 */
padding-top: calc(84rpx + 44px);
/* #endif */
>view {
text-align: center;
color: #FFFFFF;
font-family: Source Han Sans CN, Source Han Sans CN;
}
>view:nth-child(1) {
font-weight: 400;
font-size: 28rpx;
margin-top: 84rpx;
}
>view:nth-child(2) {
margin-top: 20rpx;
font-weight: 500;
font-size: 64rpx;
}
>view:nth-child(3) {
font-weight: 400;
font-size: 28rpx;
margin-top: 50rpx;
}
}
.tips {
opacity: 0;
right: 28rpx;
transition: opacity .3s;
background: #FFFFFF;
padding: 20rpx 14rpx;
width: 211rpx;
box-sizing: border-box;
border-radius: 8rpx 8rpx 8rpx 8rpx;
&.showTips {
opacity: 1;
}
.sanjiao {
position: absolute;
right: 100%;
top: 50%;
transform: translateX(10rpx) translateY(-50%);
}
} }
}
</style> </style>

File diff suppressed because it is too large Load Diff