|
|
@@ -9,67 +9,41 @@
|
|
|
<block v-else>
|
|
|
<view class="app-main app-content" v-if="loginStyle == 2">
|
|
|
<template v-if="lookMoney == 1">
|
|
|
- <view class="user-wrap" :style="{ backgroundImage: `url(${constant.imgUrl}/home/bg_hd_home2.png)` }">
|
|
|
- <view class="user-top">
|
|
|
- <view class="app-size-28">今日概况</view>
|
|
|
+ <view class="today-overview-card">
|
|
|
+ <view class="today-header">
|
|
|
+ <view class="today-title">今日概况</view>
|
|
|
</view>
|
|
|
- <view class="income-amount" @click="pageTo({url:'/admin/stat/kdIncome'})">
|
|
|
- <view>收入</view>
|
|
|
- <view class="price">{{ $util.numberFormat(data.todayData.income) }}</view>
|
|
|
+
|
|
|
+ <view class="today-income-section" @click="pageTo({url:'/admin/stat/kdIncome'})">
|
|
|
+ <view class="income-label">收入</view>
|
|
|
+ <view class="income-value">
|
|
|
+ <text class="income-number">{{ $util.numberFormat(data.todayData.income) }}</text>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <view class="user-bottom">
|
|
|
- <view class="info-list">
|
|
|
- <view class="info-list-name">访客</view>
|
|
|
- <view class="info-list-value">
|
|
|
- {{ $util.numberFormat(data.todayData.visit) || 0 }}
|
|
|
+
|
|
|
+ <view class="today-stats" @click="pageTo({url:'/admin/custom/visit'})">
|
|
|
+ <view class="stat-item">
|
|
|
+ <view class="stat-content">
|
|
|
+ <view class="stat-label">访客</view>
|
|
|
+ <view class="stat-value">{{ $util.numberFormat(data.todayData.visit) || 0 }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <navigator url="/admin/home/order" open-type="switchTab" class="info-list">
|
|
|
- <view class="info-list-name">订单</view>
|
|
|
- <view class="info-list-value">
|
|
|
- {{ $util.numberFormat(data.todayData.order) || 0 }}
|
|
|
+
|
|
|
+ <navigator url="/admin/home/order" open-type="switchTab" class="stat-item">
|
|
|
+ <view class="stat-content">
|
|
|
+ <view class="stat-label">订单</view>
|
|
|
+ <view class="stat-value">{{ $util.numberFormat(data.todayData.order) || 0 }}</view>
|
|
|
</view>
|
|
|
</navigator>
|
|
|
- <view class="info-list">
|
|
|
- <view class="info-list-name">昨天</view>
|
|
|
- <view class="info-list-value">
|
|
|
- {{ $util.numberFormat(0) || 0 }}
|
|
|
+
|
|
|
+ <view class="stat-item">
|
|
|
+ <view class="stat-content">
|
|
|
+ <view class="stat-label">昨日收入</view>
|
|
|
+ <view class="stat-value">{{ $util.numberFormat(yesterdayIncome) || 0 }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="module-com order-wrap" @click="pageTo({url:'/admin/stat/kdIncome'})">
|
|
|
- <view class="total-blo">
|
|
|
- <view class="total-list2">
|
|
|
- <view class="app-color-3">系统收款</view>
|
|
|
- <view class="list-num">
|
|
|
- <view>{{countStat.systemCount||0}}</view>
|
|
|
- <view>{{countStat.systemIncome?parseFloat(countStat.systemIncome):0}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="total-list2">
|
|
|
- <view class="app-color-3">线下微信</view>
|
|
|
- <view class="list-num">
|
|
|
- <view>{{countStat.kfWxCount||0}}</view>
|
|
|
- <view>{{countStat.kfWxIncome?parseFloat(countStat.kfWxIncome):0}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="total-list2">
|
|
|
- <view class="app-color-3">现金</view>
|
|
|
- <view class="list-num">
|
|
|
- <view>{{countStat.cashCount||0}}</view>
|
|
|
- <view>{{countStat.cashIncome?parseFloat(countStat.cashIncome):0}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="total-list2">
|
|
|
- <view class="app-color-3">赊账</view>
|
|
|
- <view class="list-num">
|
|
|
- <view>{{countStat.debtCount||0}}</view>
|
|
|
- <view>{{countStat.debtIncome?parseFloat(countStat.debtIncome):0}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
</template>
|
|
|
<view class="module-com news-wrap">
|
|
|
<view class="news-list" v-for="(item, index) in data.notice" :key="index" @click="noticeFn(item)" >
|
|
|
@@ -88,35 +62,190 @@
|
|
|
请先设置充值活动的规则
|
|
|
<text style="color:#3385ff;text-decoration: underline;margin-left:10upx;">去设置</text>
|
|
|
</view>
|
|
|
-
|
|
|
<view v-if="!$util.isEmpty(data.warning)" style="color:red;font-size:36upx;font-weight:bold;text-align: center;margin-bottom:15upx;">{{ data.warning }}</view>
|
|
|
- <view class="module-com">
|
|
|
- <view class="tabs-head_bx">
|
|
|
- <image @click="goKjKd()" :src="lskd1" mode="widthFix"></image>
|
|
|
- <image @click="goShKd()" :src="lskd2" mode="widthFix"></image>
|
|
|
+
|
|
|
+ <view class="module-com flower-module">
|
|
|
+ <!-- 花束花礼 -->
|
|
|
+ <view class="flower-section">
|
|
|
+ <view class="section-header">
|
|
|
+ <view class="header-line"></view>
|
|
|
+ <view class="header-title">花束花礼</view>
|
|
|
+ <view class="header-line"></view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-grid">
|
|
|
+ <view class="icon-item" @click="showMallOptions(1)">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">商城</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="showMallOptions(2)">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">图集</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/order/workOrder'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text" style="color:#3385FF;font-weight:bold;">开单</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/order/quickOrder'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text" style="color:#3385FF;font-weight:bold;">快捷开单</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/work/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">任务</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/order/workOrder'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">接花束</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/goods/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">花束列表</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/goods/add'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">添加</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <view class="tabs-wrap">
|
|
|
- <view class="tabs-list" v-for="(item, index) in tabsData" :key="index" >
|
|
|
- <view @click="goPage(item)">
|
|
|
- <view class="tabs-img">
|
|
|
- <img :src="`${constant.hostUrl}/image/${item.img}`" alt mode="widthFix" />
|
|
|
+
|
|
|
+ <!-- 绿植花材 -->
|
|
|
+ <view class="flower-section">
|
|
|
+ <view class="section-header">
|
|
|
+ <view class="header-line"></view>
|
|
|
+ <view class="header-title">绿植花材</view>
|
|
|
+ <view class="header-line"></view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-grid">
|
|
|
+ <view class="icon-item" @click="showMallOptions(3)">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
</view>
|
|
|
- <view class="tabs-name">{{ item.name }}</view>
|
|
|
+ <view class="icon-text">商城</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/changePrice/list2'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">改价</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goShKd()">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text" style="color:#3385FF;font-weight:bold;">开单</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goKjKd()">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text" style="color:#3385FF;font-weight:bold;">快捷开单</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/part/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/kcyjs2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">拆散</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/breakage/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/kcyjs2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">损耗</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/item/list2'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">花材列表</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/pagesPurchase/order'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">买花</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/pagesPurchase/shopping'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">买花记录</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/itemClass/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/hcgl2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">分类</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="flower-section">
|
|
|
+ <view class="section-header">
|
|
|
+ <view class="header-line"></view>
|
|
|
+ <view class="header-title">更多</view>
|
|
|
+ <view class="header-line"></view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-grid">
|
|
|
+ <view class="icon-item" @click.stop="">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">支出</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/staff/list'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/yggl2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">员工</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/stat/profit'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">利润表</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon-item" @click="goPage({url: '/admin/picText/picTextList'})">
|
|
|
+ <view class="icon-wrapper">
|
|
|
+ <image class="icon-image" :src="`${constant.hostUrl}/image/ghs/home/shop2.png`" mode="aspectFit"></image>
|
|
|
+ </view>
|
|
|
+ <view class="icon-text">图文</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
+
|
|
|
+
|
|
|
</view>
|
|
|
+
|
|
|
<template v-if="lookMoney == 1">
|
|
|
- <view class="module-com total-wrap">
|
|
|
- <view class="total-tit">总览</view>
|
|
|
- <view class="total-blo">
|
|
|
- <view class="total-list" v-for="(item, index) in overview" :key="index" @click="pageTo(item)">
|
|
|
- <view class="list-num">{{ $util.numberFormat(item.value) }}</view>
|
|
|
- <view class="app-color-3">{{ item.name }}</view>
|
|
|
+ <view class="module-com overview-module">
|
|
|
+ <view class="overview-header">
|
|
|
+ <view class="overview-title">总览</view>
|
|
|
+ </view>
|
|
|
+ <view class="overview-grid">
|
|
|
+ <view class="overview-item" v-for="(item, index) in overview" :key="index" @click="pageTo(item)">
|
|
|
+ <view class="item-value">{{ $util.numberFormat(item.value) }}</view>
|
|
|
+ <view class="item-label">{{ item.name }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</template>
|
|
|
+
|
|
|
</view>
|
|
|
<view class="order-page" v-else>
|
|
|
<view class="ghs_list_page flex-col">
|
|
|
@@ -289,11 +418,29 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</uni-popup>
|
|
|
+
|
|
|
+ <!-- 商城选项弹框 -->
|
|
|
+ <uni-popup ref="mallOptionsPopup" type="center" mask-background-color="rgba(0,0,0,0.4)">
|
|
|
+ <view class="mall-options-container">
|
|
|
+ <view class="mall-options-buttons">
|
|
|
+ <view class="mall-option-btn" @click="copyMallLink">
|
|
|
+ <view class="option-icon">📋</view>
|
|
|
+ <text class="option-text">复制链接</text>
|
|
|
+ </view>
|
|
|
+ <view class="mall-option-btn" @click="openMallDirect">
|
|
|
+ <view class="option-icon">🚀</view>
|
|
|
+ <text class="option-text">直接打开</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </uni-popup>
|
|
|
+
|
|
|
</view>
|
|
|
</template>
|
|
|
<script>
|
|
|
import { mapGetters } from "vuex";
|
|
|
import { getWeixinId } from "@/api/invite";
|
|
|
+import { getShortUrl } from "@/api/main";
|
|
|
import { getStat,getStrokeCount } from '@/api/console'
|
|
|
import { consoleIndex } from "@/api/workbench";
|
|
|
import NotLogin from "@/components/not-login";
|
|
|
@@ -317,30 +464,10 @@ export default {
|
|
|
admin: {},
|
|
|
asset: {},
|
|
|
notice: {},
|
|
|
- todayData: { income:0.00, order:0, custom:0, expend:0.00 },
|
|
|
+ todayData: { income:0.00, order:0, custom:0, expend:0.00, visit:0 },
|
|
|
isMini:0
|
|
|
},
|
|
|
- tabsData: [
|
|
|
- { name: "商城", img: `ghs/home/shop2.png`, url: "/admin/cg/mall",pf:1},
|
|
|
- { name: "改价", img: `ghs/home/gj2.png`, url: "/admin/changePrice/list2",pf:1},
|
|
|
- { name: "花材绿植", img: `ghs/home/hcgl2.png`, url: "/admin/item/list2",pf:1 },
|
|
|
- { name: "接花束", img: `ghs/home/shop2.png`, url: "/admin/order/workOrder",pf:1 },
|
|
|
- { name: "拆散", img: `ghs/home/kcyjs2.png`, url: "/admin/part/list",pf:1},
|
|
|
- { name: "损耗", img: `ghs/home/kcyjs2.png`, url: "/admin/breakage/list",pf:1},
|
|
|
- { name: "任务", img: `ghs/home/kcyjs2.png`, url: "/admin/work/list",pf:1 },
|
|
|
- { name: "买花", img: `ghs/home/shop2.png`, url: "/pagesPurchase/order",pf:1 },
|
|
|
- { name: "买花记录", img: `ghs/home/shop2.png`, url: "/pagesPurchase/shopping",pf:1 },
|
|
|
- { name: "花束", img: `ghs/home/hcgl2.png`, url: "/admin/goods/list",pf:1 },
|
|
|
- { name: "客户充值", img: `ghs/home/kcyjs2.png`, url: "/admin/recharge/rechargeCode",pf:1 },
|
|
|
- ],
|
|
|
- totalData: [
|
|
|
- { name: "客户数", value: 0 },
|
|
|
- { name: "总访客", value: 0 },
|
|
|
- { name: "总订单", value: 0 },
|
|
|
- { name: "总收入(元)", value: 0 },
|
|
|
- { name: "总支出(元)", value: 0 },
|
|
|
- { name: "总采购(元)", value: 0 }
|
|
|
- ],
|
|
|
+ yesterdayIncome: 0,
|
|
|
lskd1: `${this.$constant.imgUrl}/ghs/home/lskd001.jpg`,
|
|
|
lskd2: `${this.$constant.imgUrl}/ghs/home/lskd002.jpg`,
|
|
|
lskd3: `${this.$constant.imgUrl}/ghs/home/lskd003.jpg`,
|
|
|
@@ -352,7 +479,9 @@ export default {
|
|
|
lookMoney:1,
|
|
|
currentGhs:{},
|
|
|
displaySupplierList: [],// 用于显示在弹框中的供货商列表
|
|
|
- shopInfo:[]
|
|
|
+ shopInfo:[],
|
|
|
+ urlNo:1,
|
|
|
+ shortUrlList:[]
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -370,6 +499,7 @@ export default {
|
|
|
}else{
|
|
|
this.loginStyle = 2
|
|
|
uni.showTabBar()
|
|
|
+ this.getMallData()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -398,6 +528,7 @@ export default {
|
|
|
}else{
|
|
|
this.loginStyle = 2
|
|
|
uni.showTabBar()
|
|
|
+ this.getMallData()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -405,7 +536,35 @@ export default {
|
|
|
this.showShopName()
|
|
|
|
|
|
},
|
|
|
+ onShareAppMessage(res) {
|
|
|
+ return {
|
|
|
+ title: "花掌柜,花店管家婆",
|
|
|
+ desc: "",
|
|
|
+ imageUrl: "",
|
|
|
+ path: "admin/home/workbench",
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ getMallData(){
|
|
|
+ getWeixinId().then(res => {
|
|
|
+ this.getappIdList = res.data
|
|
|
+ })
|
|
|
+ getShortUrl().then(res=>{
|
|
|
+ if(res.code == 1){
|
|
|
+ this.shortUrlList = res.data?res.data:[]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ goKjKd(){
|
|
|
+ if(this.myShopInfo && Number(this.myShopInfo.defaultCustomId)>0){
|
|
|
+ this.$util.pageTo({url:'/admin/billing/index2?customId='+this.myShopInfo.defaultCustomId})
|
|
|
+ }else{
|
|
|
+ this.$msg('请设置快捷开单的对应客户')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ goShKd(){
|
|
|
+ this.$util.pageTo({url:'/admin/custom/selectCustom'})
|
|
|
+ },
|
|
|
setRecharge(){
|
|
|
this.$util.pageTo({url:'/admin/recharge/discount'})
|
|
|
},
|
|
|
@@ -642,10 +801,6 @@ export default {
|
|
|
this.$util.pageTo({url:'/admin/custom/selectCustom'})
|
|
|
},
|
|
|
goPage (item) {
|
|
|
- if (item.url === '/admin/billing/priceChange') {
|
|
|
- this.goToMallPt('pages/pay/index')
|
|
|
- return true
|
|
|
- }
|
|
|
if(this.getLoginInfo.pfShopId && Number(this.getLoginInfo.pfShopId)>0){
|
|
|
if(item.pf == 0){
|
|
|
this.$msg('请在批发端操作')
|
|
|
@@ -658,10 +813,6 @@ export default {
|
|
|
|
|
|
this.getGHSList()
|
|
|
|
|
|
- getWeixinId().then(res => {
|
|
|
- this.getappIdList = res.data
|
|
|
- })
|
|
|
-
|
|
|
// #ifdef MP-WEIXIN
|
|
|
this.isMini = 1
|
|
|
// #endif
|
|
|
@@ -669,10 +820,6 @@ export default {
|
|
|
let that = this
|
|
|
consoleIndex({isMini:this.isMini}).then(res => {
|
|
|
this.data = res.data
|
|
|
-
|
|
|
- if(res.data.menu && !this.$util.isEmpty(res.data.menu)){
|
|
|
- this.tabsData = res.data.menu
|
|
|
- }
|
|
|
this.lookMoney = res.data.lookMoney
|
|
|
})
|
|
|
|
|
|
@@ -710,19 +857,112 @@ export default {
|
|
|
goToProfit () {
|
|
|
this.$util.pageTo({url:'/admin/stat/profit'})
|
|
|
},
|
|
|
+ // 显示商城选项弹框
|
|
|
+ showMallOptions(no) {
|
|
|
+ this.urlNo = no
|
|
|
+ this.$refs.mallOptionsPopup.open('center')
|
|
|
+ },
|
|
|
+ // 关闭商城选项弹框
|
|
|
+ closeMallOptions() {
|
|
|
+ this.$refs.mallOptionsPopup.close()
|
|
|
+ },
|
|
|
+ // 直接打开商城
|
|
|
+ openMallDirect() {
|
|
|
+ this.closeMallOptions()
|
|
|
+ let url = ''
|
|
|
+ //花束商城
|
|
|
+ if(this.urlNo == 1){
|
|
|
+ url = 'pages/home/category'
|
|
|
+ }
|
|
|
+ //图集
|
|
|
+ if(this.urlNo == 2){
|
|
|
+ url = 'pages/home/mall'
|
|
|
+ }
|
|
|
+ //绿植花材商城
|
|
|
+ if(this.urlNo == 3){
|
|
|
+ url = 'pages/item/item'
|
|
|
+ }
|
|
|
+ this.goToMallPt(url)
|
|
|
+ },
|
|
|
+ // 复制商城链接
|
|
|
+ copyMallLink() {
|
|
|
+ this.closeMallOptions()
|
|
|
+ let currentShortUrl = ''
|
|
|
+ let text = ""
|
|
|
+ //花束商城
|
|
|
+ if(this.urlNo == 1){
|
|
|
+ currentShortUrl = this.shortUrlList['goodsUrl']
|
|
|
+ text = "点击下面链接,打开商城\n\n"+currentShortUrl
|
|
|
+ }
|
|
|
+ //图集
|
|
|
+ if(this.urlNo == 2){
|
|
|
+ currentShortUrl = this.shortUrlList['imgUrl']
|
|
|
+ text = "点击下面链接,打开图集\n\n"+currentShortUrl
|
|
|
+ }
|
|
|
+ //绿植花材商城
|
|
|
+ if(this.urlNo == 3){
|
|
|
+ currentShortUrl = this.shortUrlList['itemUrl']
|
|
|
+ text = "点击下面链接,打开商城\n\n"+currentShortUrl
|
|
|
+ }
|
|
|
+ uni.setClipboardData({
|
|
|
+ data: text,
|
|
|
+ success: () => {
|
|
|
+ this.$msg('已复制')
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ this.$msg('复制失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
goToMallPt (url) {
|
|
|
+ // #ifdef MP-WEIXIN
|
|
|
let self = this
|
|
|
- uni.navigateToMiniProgram({
|
|
|
- appId: this.getappIdList.mall.miniAppId,
|
|
|
- path: url + '?account=' + self.loginInfo.shopId,
|
|
|
- //develop 开发版 trial 体验版 release 正式版
|
|
|
- envVersion: process.env.NODE_ENV === 'development' ? 'develop' : 'release',
|
|
|
- extraData: {
|
|
|
- 'hdShopAdminId': self.loginInfo.shopAdminId
|
|
|
- },
|
|
|
- success (res) {
|
|
|
+ uni.navigateToMiniProgram({
|
|
|
+ appId: this.getappIdList.mall.miniAppId,
|
|
|
+ path: url + '?account=' + self.loginInfo.shopId,
|
|
|
+ //develop 开发版 trial 体验版 release 正式版
|
|
|
+ envVersion: process.env.NODE_ENV === 'development' ? 'develop' : 'release',
|
|
|
+ extraData: {
|
|
|
+ 'hdShopAdminId': self.loginInfo.shopAdminId
|
|
|
+ },
|
|
|
+ success (res) {}
|
|
|
+ })
|
|
|
+ // #endif
|
|
|
+ // #ifdef APP-PLUS
|
|
|
+ let that = this
|
|
|
+
|
|
|
+ if(plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})){
|
|
|
+ plus.share.getServices(function(s){
|
|
|
+ var sweixin
|
|
|
+ for (var i = 0; i < s.length; i++) {
|
|
|
+ var t = s[i];
|
|
|
+ if (t.id == 'weixin') {
|
|
|
+ sweixin = t;
|
|
|
+ }
|
|
|
}
|
|
|
- })
|
|
|
+ if (sweixin && sweixin.nativeClient) {
|
|
|
+ let miniOriginalId = that.dictInfo.miniOriginalId && that.dictInfo.miniOriginalId.current && that.dictInfo.miniOriginalId.current.mall ? that.dictInfo.miniOriginalId.current.mall : ''
|
|
|
+ console.log(miniOriginalId)
|
|
|
+ sweixin.launchMiniProgram({
|
|
|
+ id: miniOriginalId,
|
|
|
+ path: '/'+url+'?account='+that.loginInfo.shopId,
|
|
|
+ type: 0
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ that.$msg("没有找到微信服务")
|
|
|
+ //that.$msg("获取微信失败:" + e.message)
|
|
|
+ console.log(JSON.stringify(e));
|
|
|
+ }
|
|
|
+ }, function(e){
|
|
|
+ that.$msg("没有找到微信服务哦")
|
|
|
+ //that.$msg("获取微信失败:" + e.message)
|
|
|
+ console.log(JSON.stringify(e));
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$msg("即将跳转小程序,请安装微信")
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -735,6 +975,121 @@ export default {
|
|
|
margin-bottom: 20upx;
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
+
|
|
|
+// 今日概况卡片
|
|
|
+.today-overview-card {
|
|
|
+ background: linear-gradient(135deg, #22C55E 0%, #16A34A 100%);
|
|
|
+ padding: 0;
|
|
|
+ margin: 0 0 20upx 0;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .today-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 30upx 30upx 20upx;
|
|
|
+
|
|
|
+ .today-title {
|
|
|
+ font-size: 34upx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .today-income-section {
|
|
|
+ padding: 20upx 30upx 40upx 30upx;
|
|
|
+ text-align: center;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background: rgba(0, 0, 0, 0.05);
|
|
|
+ }
|
|
|
+
|
|
|
+ .income-label {
|
|
|
+ font-size: 26upx;
|
|
|
+ color: rgba(255, 255, 255, 0.9);
|
|
|
+ margin-bottom: 16upx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .income-value {
|
|
|
+ display: flex;
|
|
|
+ align-items: baseline;
|
|
|
+ justify-content: center;
|
|
|
+ margin-bottom: 12upx;
|
|
|
+
|
|
|
+ .currency-symbol {
|
|
|
+ font-size: 32upx;
|
|
|
+ color: #ffffff;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-right: 8upx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .income-number {
|
|
|
+ font-size: 56upx;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .income-hint {
|
|
|
+ font-size: 24upx;
|
|
|
+ color: rgba(255, 255, 255, 0.9);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ content: '>';
|
|
|
+ margin-left: 8upx;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .today-stats {
|
|
|
+ display: flex;
|
|
|
+ padding: 0;
|
|
|
+
|
|
|
+ .stat-item {
|
|
|
+ flex: 1;
|
|
|
+ padding: 10upx 0 50upx 0;
|
|
|
+ position: relative;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ &:not(:last-child)::after {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ width: 1upx;
|
|
|
+ height: 60upx;
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background: rgba(0, 0, 0, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-content {
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .stat-label {
|
|
|
+ font-size: 26upx;
|
|
|
+ color: rgba(255, 255, 255, 0.9);
|
|
|
+ margin-bottom: 8upx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-value {
|
|
|
+ font-size: 36upx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
.user-wrap {
|
|
|
padding: 20upx 30upx 34upx 30upx;
|
|
|
color: #fff;
|
|
|
@@ -825,86 +1180,156 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-// 总览
|
|
|
-.total-wrap,
|
|
|
-.order-wrap {
|
|
|
- .total-tit {
|
|
|
- padding: 18upx 0 18upx 20upx;
|
|
|
- border-bottom: 1upx solid $borderColor;
|
|
|
- font-weight: 600;
|
|
|
- font-size: 24upx;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
- .total-blo {
|
|
|
- @include disFlex(center, space-between);
|
|
|
- flex-wrap: wrap;
|
|
|
- padding: 20upx 0 0;
|
|
|
- .total-list {
|
|
|
- width: 33%;
|
|
|
- text-align: center;
|
|
|
- margin: 20upx 0upx;
|
|
|
- border-right: 1upx solid $borderColor;
|
|
|
- .list-num {
|
|
|
- margin-bottom: 8upx;
|
|
|
- font-size:26upx;
|
|
|
- font-weight: bold;
|
|
|
- }
|
|
|
- }
|
|
|
- .total-list:nth-child(3n) {
|
|
|
- border-right: none;
|
|
|
- }
|
|
|
- .total-list:nth-child(n + 4) {
|
|
|
- padding-bottom: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .total-list2 {
|
|
|
- width: 24%;
|
|
|
- text-align: center;
|
|
|
- margin: 20upx 0upx;
|
|
|
- border-right: 1upx solid $borderColor;
|
|
|
- .list-num {
|
|
|
- margin-top:10upx;
|
|
|
- margin-bottom:8upx;
|
|
|
- font-size:26upx;
|
|
|
- font-weight:normal;
|
|
|
- }
|
|
|
- }
|
|
|
- .total-list2:nth-child(4n) {
|
|
|
- border-right: none;
|
|
|
- }
|
|
|
- .total-list2:nth-child(n + 4) {
|
|
|
- padding-bottom: 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
-.tabs-head_bx {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- padding: 20upx 15upx;
|
|
|
-}
|
|
|
-.tabs-wrap {
|
|
|
- padding: 20upx 10upx;
|
|
|
- @include disFlex(center, flex-start);
|
|
|
- flex-wrap: wrap;
|
|
|
- .tabs-list {
|
|
|
- width: 25%;
|
|
|
- margin-top: 50upx;
|
|
|
- text-align: center;
|
|
|
- .tabs-img {
|
|
|
- width: 100upx;
|
|
|
- height: 100upx;
|
|
|
- margin: 0 auto;
|
|
|
- img {
|
|
|
- height: 100%;
|
|
|
+// 数据总览模块
|
|
|
+.overview-module {
|
|
|
+ background: #ffffff;
|
|
|
+ border-radius: 16upx;
|
|
|
+ padding: 0;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .overview-header {
|
|
|
+ background: linear-gradient(135deg, #f8fafb 0%, #ffffff 100%);
|
|
|
+ padding: 30upx 30upx 20upx;
|
|
|
+ border-bottom: 1upx solid #f0f0f0;
|
|
|
+
|
|
|
+ .overview-title {
|
|
|
+ font-size: 32upx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333;
|
|
|
+ margin-bottom: 8upx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .overview-subtitle {
|
|
|
+ font-size: 24upx;
|
|
|
+ color: #999;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .overview-grid {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ padding: 10upx;
|
|
|
+
|
|
|
+ .overview-item {
|
|
|
+ width: 33.33%;
|
|
|
+ padding: 30upx 0;
|
|
|
+ text-align: center;
|
|
|
+ position: relative;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:not(:nth-child(3n)) {
|
|
|
+ &::after {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ width: 1upx;
|
|
|
+ height: 60upx;
|
|
|
+ background: #f0f0f0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:nth-child(n+4) {
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ left: 15%;
|
|
|
+ right: 15%;
|
|
|
+ top: 0;
|
|
|
+ height: 1upx;
|
|
|
+ background: #f0f0f0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background: #f8fafb;
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-value {
|
|
|
+ font-size: 36upx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #105a2b;
|
|
|
+ margin-bottom: 10upx;
|
|
|
+ line-height: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-label {
|
|
|
+ font-size: 26upx;
|
|
|
+ color: #666;
|
|
|
+ line-height: 1;
|
|
|
}
|
|
|
}
|
|
|
- .tabs-name {
|
|
|
- color: #444444;
|
|
|
- margin-top: 10upx;
|
|
|
+ }
|
|
|
+}
|
|
|
+// 新的花束花礼和绿植花材样式
|
|
|
+.flower-module {
|
|
|
+ padding: 0;
|
|
|
+
|
|
|
+ .flower-section {
|
|
|
+ padding: 30upx 20upx;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .section-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ margin-bottom: 30upx;
|
|
|
+
|
|
|
+ .header-line {
|
|
|
+ flex: 1;
|
|
|
+ height: 1upx;
|
|
|
+ background: linear-gradient(to right, transparent, #e0e0e0);
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ background: linear-gradient(to left, transparent, #e0e0e0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .header-title {
|
|
|
+ padding: 0 30upx;
|
|
|
+ font-size: 32upx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
}
|
|
|
- &:nth-child(-n + 4) {
|
|
|
- margin-top: 0;
|
|
|
+
|
|
|
+ .icon-grid {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ margin: -10upx;
|
|
|
+
|
|
|
+ .icon-item {
|
|
|
+ width: 25%;
|
|
|
+ padding: 10upx;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .icon-wrapper {
|
|
|
+ width: 120upx;
|
|
|
+ height: 120upx;
|
|
|
+ margin: 0 auto 4upx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: scale(0.95);
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon-image {
|
|
|
+ width: 95upx;
|
|
|
+ height: 95upx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon-text {
|
|
|
+ font-size: 26upx;
|
|
|
+ color: #333;
|
|
|
+ line-height: 1.2;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1101,6 +1526,63 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/* 商城选项弹框样式 */
|
|
|
+.mall-options-container {
|
|
|
+ width: 600upx;
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 24upx;
|
|
|
+ overflow: hidden;
|
|
|
+ animation: popup-in 0.3s ease-out;
|
|
|
+
|
|
|
+ .mall-options-buttons {
|
|
|
+ padding: 50upx 40upx 50upx;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 40upx;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .mall-option-btn {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 32upx 40upx;
|
|
|
+ background-color: #f8f9fa;
|
|
|
+ border-radius: 20upx;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background-color: #e9ecef;
|
|
|
+ transform: scale(0.98);
|
|
|
+ }
|
|
|
+
|
|
|
+ .option-icon {
|
|
|
+ font-size: 56upx;
|
|
|
+ margin-right: 30upx;
|
|
|
+ width: 70upx;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .option-text {
|
|
|
+ font-size: 42upx;
|
|
|
+ color: #333;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes popup-in {
|
|
|
+ 0% {
|
|
|
+ opacity: 0;
|
|
|
+ transform: scale(0.8) translateY(20upx);
|
|
|
+ }
|
|
|
+ 100% {
|
|
|
+ opacity: 1;
|
|
|
+ transform: scale(1) translateY(0);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/* 供货商提示弹框样式 */
|
|
|
.supplier-notice-popup {
|
|
|
.supplier-notice-container {
|