-
-
+
年度已完成/元
- {{plan.RevenueYear_Amount}}
+ {{plan.RevenueYear_Amount?plan.RevenueYear_Amount:'-'}}
年度计划/元
- {{plan.BudgetYear_Amount}}
+ {{plan.BudgetYear_Amount?plan.BudgetYear_Amount:'-'}}
@@ -322,10 +344,9 @@ export default {
const nowDay = this.$util.cutDate(new Date(), 'MM月DD日')
return {
- statusBarHeight:'',
- shopUpload:'',
+ statusBarHeight:'',// 每个手机的状态栏高度
page:'/pages/index/index',
- menu:'',
+ menu:'', // 胶囊按钮高度
detailList:[ { name: '长款金额', unit: '/元', price:0 },
{ name: '短款金额', unit: '/元', price: 0 },
{ name: '优惠金额', unit: '/元', price: 0 },
@@ -335,56 +356,49 @@ export default {
{ name: '入区车流', unit: '/辆', price: 0 },
{ name: '入区率', unit: '', price: 0 },
{ name: '停留时长', unit: '', price: 0 },],
- tabTypeList:[ { imgUrl: '/static/images/index/car.svg', path: '', name: '车流画像' },
+ tabTypeList:[ { imgUrl: '/static/images/index/car.svg', path: '/pages/commercialBI/carPortrait', name: '车流画像' },
{ imgUrl: '/static/images/index/guest.svg', path: '', name: '客群画像' },
{ imgUrl: '/static/images/index/business_icon.svg', path: '', name: '经营画像' },
{ imgUrl: '/static/images/index/trade.svg', path: '', name: '交易画像' },
{ imgUrl: '/static/images/index/brand.svg', path: '', name: '业态品牌' },],
- detailTypeList:[{ name: '分润门店', unit: '/个', value: '', add: '', imgIcon: '/static/images/index/store.svg' },
- { name: '驿达分润', unit: '/元', value: '', imgIcon: '/static/images/index/yidaFenrun.svg' },
- { name: '订单配送', unit: '/单', value: '', add: '', imgIcon: '/static/images/index/orderDelivery.svg' },
- { name: '采购金额', unit: '/元', value: '', imgIcon: '/static/images/index/purchaseAmount.svg' },],
+ detailTypeList:[{ name: '分润门店', unit: '/个', value: '-',yesterValue:'-', add: '-', imgIcon: '/static/images/index/store.svg' },
+ { name: '驿达分润', unit: '/元', value: '-',yesterValue:'-', imgIcon: '/static/images/index/yidaFenrun.svg' },
+ { name: '订单配送', unit: '/单', value: '-',yesterValue:'-', add: '-', imgIcon: '/static/images/index/orderDelivery.svg' },
+ { name: '采购金额', unit: '/元', value: '-',yesterValue:'-', imgIcon: '/static/images/index/purchaseAmount.svg' },],
propOfRevenList:[ { name: '经营模式', value: 1 },
{ name: '经营业态', value: 2 },
{ name: '区域经营', value: 3 }],
- selectTab:1,
- single:timestampToTime((new Date(lastDay).getTime())),
- thisDay:'',
+ selectTab:1, // 选项卡的指针
+ mobileData :{}, // 移动支付分账接口返回的数据
+ single:'', // 时间选择器选择的时间
+ monthAdd:'',//月每天的相对增加
+ yearAdd:'', // 年度计划增加的百分比
+ thisDay:'', // 显示的星期几
isBig:false,//判断门店上传的前一个数字是否比后一个数字大
- showPage: false,
- opacity: 0, // 背景颜色透明度
- customBarH: this.CustomBar,
- statusBarH: this.StatusBar,
- isLoading: true,
+ allShopCount:0,//门店总数
theRequest: null,
- sevenDate: null,
lastDay: lastDay, // 该页面的最近有效日期
- nowDay: nowDay,
- headMsg: {},
- showHeadMsg:{},//不变成字符串的headMsg
- today: null, // 今日数据
+ nowDay: nowDay, // 当天时间
+ buyPriceYes:'',//昨日采购金额
regionList: null,
nowTab: 1,
+ priceMove:false,//价格出现的动画效果
carInfo:{},//车流信息
- regionShow1: true,
regionProgress: null,
- tradeType: null,
areaProgress: null,
- bayonetProgress: null,
modelProgress: null,
- isup: true,
+ showTableData:{},
monthPrice:0,//月度累计分润
yesterdayBillCount:0,//昨日累计配送
lastDayBillCount:0,//当前日的配送
buyPriceMonth:0,//月度的采购金额
totalData:null,
- isInOnLoad:false,
+ option:{},//onLoad里面的option
isShow:false, //投诉建议是否显示
isShowTitle:0,//投诉建议条数
plan:{},//月度和年度接口的返回参数 一起的
ShareShopCountYes:0,//昨日的店铺数
yesterdayAllPay:0,//前一天的营收总额
- nowDayAllPay:0,//今日营收总额
wechatPushSalesList: null // 甘肃单品排行数据
}
},
@@ -392,7 +406,7 @@ export default {
user:{
handler:function (value){
console.log('监听user',value)
- this.getData({})
+ this.getData(this.option)
},
deep:true
}
@@ -414,52 +428,46 @@ export default {
},
...mapGetters({'user':'getUser'})
},
- onLoad(option){ // 拿到手机参数
- // if (!this.user.Membership_Id){
- // uni.login({ // 登录
- // async success (res) {
- // console.log('re111s',res)
- // await this.memberLogin(res.code)
- // }
- // })
- // }
-
+ onLoad(option){
+ // 处理页面显示的时间
+ this.single = timestampToTime((new Date(this.lastDay).getTime()))
+ // 获取手机参数对页面进行适配
let systemInfo = uni.getSystemInfoSync()
this.statusBarHeight = Number(systemInfo.statusBarHeight)
this.menu = uni.getMenuButtonBoundingClientRect()
+ // 获取最近有效日期的时间,以昨天为主
const date = new Date(this.lastDay)
this.thisDay = getThisDay(date.getDay())
-
+ // 判断是否有投诉建议的悬浮框弹出
for(let key in this.toDoMsg){
if (key === 'd405ae13-3388-41c0-a5f6-d11194d0a943' && this.toDoMsg['d405ae13-3388-41c0-a5f6-d11194d0a943']){
this.isShow = true
this.isShowTitle = this.toDoMsg['d405ae13-3388-41c0-a5f6-d11194d0a943']
}
}
- console.log(1111)
- this.getData(option)
- // if (!this.user.Membership_Id){
- // this.getLoginCode().then(()=>{
- // debugger
- // this.getData(option)
- // })
- // }else {
- // this.getData(option)
- // }
+ //拿到option的值
+ this.option = option
+ // 获取数据的方法
+ if (this.user.Membership_Id){
+ this.getData(option)
+ }
},
onShow(){
- // if (this.user.Membership_Id && !this.isInOnLoad){
- // this.onRefresh()
- // }
+ // 隐藏掉小程序本身自带的 tabbar 让自定义的tabbar出现
uni.hideTabBar()
},
onHide(){
+ // 离开页面投诉建议的悬浮框隐藏掉
this.isShow = false
+ this.selectTab = 1
},
methods:{
...mapActions(['memberLogin','getLoginCode']),
handlePage(){
- this.$util.toNextRoute('navigateTo', '/pages/operatingStatements/index')
+ this.$util.toNextRoute('navigateTo', `/pages/operatingStatements/index?time=${this.lastDay}`)
+ },
+ handleGoTab(item){
+ this.$util.toNextRoute('navigateTo', item.path)
},
getData(option){
//老代码
@@ -467,44 +475,46 @@ export default {
uni.showLoading({
title: '正在加载...'
})
- this.isInOnLoad=true
}
- console.log('this.user.Membership_Id',this.user.Membership_Id)
- console.log(2222)
+ //判断是否从推送进来
if (option.ProvinceCode) { // 从推送进入
this.theRequest = option
option.time = this.$util.cutDate(option.time, 'YYYY-MM-DD')
option.month = this.$util.cutDate(option.time, 'YYYYMM')
-
+ this.lastDay = this.$util.cutDate(option.time, 'YYYY-MM-DD')
+ //修改时间选择器里面的时间
+ this.single = timestampToTime((new Date(this.lastDay).getTime()))
+ //显示当前选择的时间是星期几
+ const date = new Date(this.lastDay)
+ this.thisDay = getThisDay(date.getDay())
+ // 老项目的请求数据的那部分
this.initData()
+ //根据新页面请求数据的方法
this.initYesterdayData()
//车流分析
this.getCarInfo()
//月度计划、年度计划
this.monthYearPlan()
} else if (this.user.Membership_Id){ // 默认
+ // 不是从推送进来 走正常的请求方法
// if (!this.PushAuthority){return}
// if (this.PushAuthority.length > 0) {
+
+ // 定义initData中的入参
this.theRequest = this.defaultMsg() || {}
this.theRequest.time = this.lastDay
this.theRequest.month = this.$util.cutDate(this.lastDay, 'YYYYMM')
- this.initData(true)
+ // 请求数据的方法 initData是老项目中的接口,形参true传入 可以让两个没用到的接口不调用
+ this.initData()
+ // 请求用的到的 昨日的数据
this.initYesterdayData()
//车流分析
this.getCarInfo()
//月度计划、年度计划
this.monthYearPlan()
-
- // this.bindDateChange(this.lastDay)
- // } else {
- // uni.hideLoading()
- // this.theRequest = null
- // this.isLoading = false
- // this.showPage = false
- // this.opacity = 1
- //
- // }
}
+
+ // 老项目代码
this.nowTab = this.theRequest.ProvinceCode == 340000 ? 1 : 2
if (this.theRequest.GroupType == 1010) {
this.getDetail(this.theRequest)
@@ -521,39 +531,9 @@ export default {
handleSearch(){
this.$util.toNextRoute('navigateTo', '/pages/suggestion/suggestion')
},
+ // 改变时间触发的方法 ,改变页面的内容数据
onRefresh(){
- uni.showLoading({
- title: '正在加载...'
- })
- console.log('this.PushAuthority',this.PushAuthority)
- // if (!this.PushAuthority){return}
-
- // if (this.PushAuthority.length > 0) {
- this.theRequest = this.defaultMsg() || {}
- this.theRequest.time = this.lastDay
- this.theRequest.month = this.$util.cutDate(this.lastDay, 'YYYYMM')
- this.initData()
- this.initYesterdayData()
- // } else {
- // uni.hideLoading()
- // this.theRequest = null
- // this.isLoading = false
- // this.showPage = false
- // this.opacity = 1
- // }
- //车流分析
- this.getCarInfo()
- //月度计划、年度计划
- this.monthYearPlan()
- this.nowTab = this.theRequest.ProvinceCode == 340000 ? 1 : 2
- if (this.theRequest.GroupType == 1010) {
- this.getDetail(this.theRequest)
- }
- // 若省份为甘肃,则加载甘肃单品排行
- if (this.theRequest.ProvinceCode == 620000) {
-
- this.getRankContent()
- }
+ this.getData(this.option)
},
monthYearPlan(){
const monthDate= {
@@ -561,15 +541,25 @@ export default {
Statistics_Date:this.lastDay
}
request.$webGet('CommercialApi/Revenue/GetRevenueBudget',monthDate).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.plan = res.Result_Data
this.plan.percentageMonth = (res.Result_Data.RevenueMonth_Amount / res.Result_Data.BudgetMonth_Amount*100).toFixed(2)
+ // this.plan.percentageMonth = 80
this.plan.percentageYear = (res.Result_Data.RevenueYear_Amount / res.Result_Data.BudgetYear_Amount*100).toFixed(2)
-
+ let date = new Date(this.lastDay)
+ let nowDay = date.getDate()
+ let day = this.$util.getThisMonthDay(this.lastDay)
+ //一天应该的增长率
+ let oneDay = 100/day
+ // 到了当天的应该有的百分比
+ let thisDayShould= oneDay*nowDay
+ this.monthAdd = (((this.plan.percentageMonth - thisDayShould)/thisDayShould)*100).toFixed(2)
+ this.yearAdd = (((res.Result_Data.RevenueYear_Amount - res.Result_Data.RevenueYear_PlanAmount)/res.Result_Data.RevenueYear_PlanAmount)*100).toFixed(2)
+ //处理数据
this.plan.RevenueMonth_Amount = this.$util.fmoney(res.Result_Data.RevenueMonth_Amount)
this.plan.BudgetMonth_Amount = this.$util.fmoney(res.Result_Data.BudgetMonth_Amount)
this.plan.RevenueYear_Amount = this.$util.fmoney(res.Result_Data.RevenueYear_Amount)
this.plan.BudgetYear_Amount = this.$util.fmoney(res.Result_Data.BudgetYear_Amount)
-
})
},
getCarInfo(){
@@ -578,13 +568,16 @@ export default {
Province_Code:'340000'
}
request.$webGet('CommercialApi/Revenue/GetAvgBayonetAnalysis',data).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.carInfo = res.Result_Data
this.carInfo.Vehicle_Count = res.Result_Data.Vehicle_Count
})
},
initYesterdayData(){
let _this = this
+ // 传入最近的有效日期就可以拿到当前有效日期的前一天的日期
let yesterday = handleYesterday(this.lastDay)
+ // 定义入参 除了改变时间 别的和老乡一致
const data = {
Statistics_Date:yesterday,
Statistics_Month:this.theRequest.month,
@@ -594,14 +587,17 @@ export default {
SPRegionType_ID:this.theRequest.GroupType==1020?this.theRequest.ServerpartIds:''
}
request.$webGet('CommercialApi/Revenue/GetRevenuePushList',data).then(res=>{
+ // 计算月总额 拿到昨日的全部对客营收 并拿到相对于昨日的增长比
let cashPay = 0
res.Result_Data.List.forEach(item=>{
cashPay= Number(item.CashPay) + cashPay
})
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
_this.yesterdayAllPay = cashPay
})
//昨日的分润门店
request.$webGet('CommercialApi/Revenue/GetMobileShare',data).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.ShareShopCountYes = res.Result_Data.ShareShop_Count
})
@@ -612,12 +608,14 @@ export default {
m = '0' + m
}
//一个月分润门店
+ // 如果前一天是上个月 那么拿到的月份还是上一个月的月份 然后结束时间就是前一天 开始时间是月份开始的第一天
const monthDate={
Province_Code:'340000',
StatisticsStartDate:`${y}-${m}-01`,
StatisticsEndDate:this.lastDay,
}
request.$webGet('CommercialApi/Revenue/GetMobileShare',monthDate).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.monthPrice = res.Result_Data.Royalty_Price
})
@@ -627,6 +625,7 @@ export default {
Statistics_Date: this.lastDay
}
request.$webGet('CommercialApi/Revenue/GetMallDeliver',todayData).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.lastDayBillCount = res.Result_Data.DeliverBill_Count
})
@@ -636,8 +635,18 @@ export default {
Statistics_Date: yesterday
}
request.$webGet('CommercialApi/Revenue/GetMallDeliver',deliveData).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.yesterdayBillCount = res.Result_Data.DeliverBill_Count
})
+ //昨日采购金额
+ const buyPriceYes = {
+ Province_Code:'340000',
+ Statistics_Date: yesterday
+ }
+ request.$webGet('CommercialApi/Revenue/GetMallDeliver',buyPriceYes).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
+ this.buyPriceYes = res.Result_Data.Deliver_Price
+ })
//一个月的采购金额
const buyPrice = {
@@ -646,8 +655,41 @@ export default {
StatisticsEndDate:this.lastDay
}
request.$webGet('CommercialApi/Revenue/GetMallDeliver',buyPrice).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
this.buyPriceMonth = res.Result_Data.Deliver_Price
})
+ // 获取营收推送汇总数据
+ const allPriceData = {
+ pushProvinceCode:'340000',
+ Statistics_Date:this.lastDay
+ }
+ request.$webGet('CommercialApi/Revenue/GetSummaryRevenue',allPriceData).then(res=>{
+ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理
+ let result = res.Result_Data
+
+ for(let key in result){
+ if (key!=='RevenuePushModel'){
+ let all = 0
+ // 先算出全部的总额数量 用来计算百分比
+ result[key].forEach(item=>{
+ all += Number(item.value)
+ })
+ // 把百分比计算出来加到每一项中
+ result[key].map(item=>{
+ item.percentage = ((Number(item.value)/all)*100).toFixed(2)
+ })
+ // 格式化掉处理的数据
+ result[key].forEach(item=>{
+ item.value = _this.$util.fmoney(item.value)
+ })
+ }
+ }
+ this.modelProgress = result.BusinessTypeList
+ this.regionProgress = result.BusinessTradeList
+ this.areaProgress = result.SPRegionList
+ this.showTableData = result.RevenuePushModel
+ this.todayAmount()
+ })
},
defaultMsg() {
let option = null
@@ -670,6 +712,7 @@ export default {
handleSelectTab(value){
this.selectTab = value
},
+ // 顶部的时间组件切换时间触发的方法
bindDateChange(e){
const date = new Date(e.detail.value).getTime()
this.single = timestampToTime(date)
@@ -677,6 +720,11 @@ export default {
this.thisDay = getThisDay(new Date(e.detail.value).getDay())
this.onRefresh()
},
+ //选择时间的点击事件
+ handleDateClick(){
+ // 用来修改对客营收的class属性
+ this.priceMove = false
+ },
showPie(obj) {
let data = {
series: []
@@ -803,144 +851,72 @@ export default {
})
return [_data2, _data1];
},
- async initData(value) { // 初始化营收数据
- let _this = this
- const [reginList, totalData, busniessTypePie, busniessTradePie, busniessAreaPie, bayonetPie] =
- await anhuiYestodayRevenueData.getData(this.theRequest,null,value) // 获取实时数据
- this.nowDayAllPay=totalData.cashPay
- console.log('totalData',totalData)
-
-
- // yesterdayRequest.time = yesterday
- // //获取昨日的实时数据
- // const [yesterdayReginList, yesterdayTotalData, yesterdayBusniessTypePie, yesterdayBusniessTradePie, yesterdayBusniessAreaPie, yesterdayBayonetPie] =
- // await anhuiYestodayRevenueData.getData(yesterdayRequest) // 获取实时数据
- // console.log('totalData',totalData)
- // console.log('yesterdayTotalData',yesterdayTotalData)
-
- if (this.theRequest.GroupType !== 1010) {
- this.regionList = reginList // 营收上传列表 reginListModel[]
- }
- // 组合及格式化 头部卡片总营收数据。
- totalData.tickave = totalData.ticketCount > 0 ? this.$util.fmoney(
- totalData.cashPay / totalData.ticketCount, 2) : 0
- totalData.countave = totalData.totalCount > 0 ? this.$util.fmoney(
- totalData.cashPay / totalData.totalCount, 2) : 0
- totalData.totalMoneyShow = this.$util.fmoney(totalData.cashPay) // 营收总数据格式化
- totalData.dayOfShow = this.$util.cutDate(this.theRequest.time, 'MM月DD日') // 当前日期
- totalData.budgetamoutShow = totalData.budgetAmount ?
- _this.$util.fmoney(totalData.budgetAmount) : 0.00 // 预算总营收
-
- busniessTypePie.forEach((n, i) => {
- if (n.name === '自营') {
- // 预算和实际差额
- totalData.diffBudgetTotal = Math.abs(totalData.budgetAmount - n.data)
- // 预算和实际增长额比例
- totalData.diffBili = totalData.budgetAmount > 0 ?
- this.$util.fmoney((totalData.diffBudgetTotal /
- totalData.budgetAmount) * 100, 2) : '100'
- }
- });
- this.headMsg = totalData
- console.log('this.headMsginitData',this.headMsg)
- // 饼图分析及数据条形分析
- const [progressList, pieList] = this.getProgressData(busniessTypePie, totalData.cashPay)
- this.modelProgress = progressList
- // 经营类型分析
- var colors1 = ['#FFAC37', '#6B75B8'];
- // console.log(pieList)
- this.showPie({
- id: 'modelCont',
- data: pieList,
- colors: colors1,
- });
- // 经营业态
-
- // 饼图分析及数据条形分析
- const [tprogressList, tpieList] = this.getProgressData(busniessTradePie, totalData.cashPay)
-
- this.regionProgress = tprogressList
- // 经营类型分析
- var colors2 = ['#5E67B4', '#4E5699', '#75B7AD', '#AFB7E6'];
- this.showPie({
- id: 'businessCont',
- data: tpieList,
- colors: colors2,
- });
-
- // 饼图分析及数据条形分析
- const [aprogressList, apieList] = this.getProgressData(busniessAreaPie, totalData.cashPay)
- this.areaProgress = aprogressList
- // 区域营收分析
- var colors3 = ['#FFAC37', '#d8ece9', '#f7f5f6', '#b2b7e3', '#F4B27A', '#F3B1C9', '#e0e3f7', '#FFE886', '#f7f5f6'];
- this.showPie({
- id: 'areaCont',
- data: apieList,
- colors: colors3,
- });
-
- // 安徽省本级显示的内容
- if (this.theRequest.GroupType == 1000 && this.theRequest.ProvinceCode == 340000) {
- // 显示片区车流量数据分析
- const [bayonetList] = this.getBayonetData(bayonetPie)
- this.bayonetProgress = bayonetList
+ async initData() { // 初始化营收数据
+ const data = {
+ pushProvinceCode:'340000',
+ Statistics_Date:this.lastDay
}
- if (reginList.length) {
- this.showPage = true
+ //获取服务区门店商家数量列表(根据省份、服务区、区域、统计日期查询)
+ const totalData = await request.$webGet('CommercialApi/BaseInfo/GetShopCountList',data)
+ let all = 0
+ totalData.Result_Data.List.forEach(item=>{
+ all+=item.SHOP_REVENUECOUNT
+ })
+ this.allShopCount = all
+
+ //获取移动支付分账数据
+ const shareData = {
+ Province_Code:'340000',
+ Statistics_Date:this.lastDay
}
- this.isLoading = false
- this.todayAmount()
- this.isInOnLoad = true
- uni.hideLoading()
+ const mobileShareData = await request.$webGet('CommercialApi/Revenue/GetMobileShare',shareData)
+ this.mobileData = mobileShareData.Result_Data
+ // 让金额的动画效果出来
+ this.priceMove = true
+ //处理数据的方法
},
todayAmount() {
- let _this = this
- // let theRequest = this.theRequest
- //最近日
- // this.$request.$get('getCurRevenue', {
- // pushProvinceCode: theRequest.ProvinceCode,
- // serverPartId: theRequest.GroupType == 1000 ? '' : theRequest.ServerpartIds
- // }).then(res => {
- // if (res.ResultCode != 100) return
- //
- // let avrticket = (res.Data.TOTALTICKET != 0 && res.Data.TOTALPRICE != 0) ? res.Data.TOTALPRICE /
- // res.Data
- // .TOTALTICKET : 0
- // _this.today = {
- // timeMoney: this.$util.fmoney(res.Data.TOTALPRICE, 2),
- // totalTicketCount: res.Data.TOTALTICKET,
- // avrticketCount: this.$util.fmoney(avrticket, 2),
- // }
- // _this.$forceUpdate()
- // })
- //分润门店
- this.detailTypeList[0].value =this.headMsg.shareShopCount
- //驿达分润 由于数据现成 这样写最方便
+ let _this = this
+ // 由于处理数据的时间 必须在全部接口请求完毕 所以加个延时器
+ setTimeout(()=>{
+ console.log('处理数据的方法')
+ // 由于页面大部分的内容采用渲染的格式 这样的方法是最快的对原数据进行赋值 对照data里面的几个主要的数组看就能看明白
+ // 门店上传的前后数字计算来决定样式
+ if(this.showTableData.Revenue_Upload > this.allShopCount){
+ this.isBig = false
+ }else{
+ this.isBig = true
+ }
+ // 计算相对于昨日的增长率
+ this.showTableData.compared = (((Number(this.showTableData.CashPay) - this.yesterdayAllPay) / this.yesterdayAllPay) * 100).toFixed(2)
+ // 客单均价
+ this.showTableData.averagePrice = (Number(this.showTableData.CashPay) / Number(this.showTableData.TicketCount)).toFixed(2)
+ // 商品均价
+ this.showTableData.countave = (Number(this.showTableData.CashPay) / Number(this.showTableData.TotalCount)).toFixed(2)
+ //分润那四个选项卡的数据 进行统一处理
+ //mobileData 是移动支付分账接口返回来的全部数据
+ this.detailTypeList[0].value =this.mobileData.ShareShop_Count
+ this.detailTypeList[0].add = this.mobileData.ShareShop_Count - this.ShareShopCountYes
this.detailTypeList[1].value = this.$util.fmoney(this.monthPrice)
- this.detailTypeList[0].add = this.headMsg.shareShopCount - this.ShareShopCountYes
- this.detailTypeList[3].value = this.$util.fmoney(this.buyPriceMonth)
+ this.detailTypeList[1].yesterValue = this.$util.fmoney(this.mobileData.Royalty_Price) //返回数据可能有问题
this.detailTypeList[2].value = this.lastDayBillCount
this.detailTypeList[2].add = this.lastDayBillCount - this.yesterdayBillCount
- this.showHeadMsg = this.headMsg
- this.showHeadMsg.averagePrice = Number(this.nowDayAllPay) / Number(this.headMsg.ticketCount)
- this.showHeadMsg.compared = ((Number(this.nowDayAllPay) - this.yesterdayAllPay) / this.yesterdayAllPay) * 100
- for (let i in this.showHeadMsg) {
- if (i === 'ticketCount' || i === 'uploadState'){
- this.showHeadMsg[i] = this.showHeadMsg[i]
+ this.detailTypeList[3].value = this.$util.fmoney(this.buyPriceMonth)
+ this.detailTypeList[3].yesterValue = this.$util.fmoney(this.buyPriceYes)
+ // 处理所有数据 变成有千分号和小数点的数据
+ for (let key in this.showTableData){
+ if (key==='uploadState' || key==='Revenue_Upload'){
+ this.showTableData[key] = this.showTableData[key]
+ }else if(key ==='TicketCount'){
+ this.showTableData[key] = this.$util.noDecimal(this.showTableData[key],0)
}else{
- this.showHeadMsg[i] = this.$util.fmoney(this.showHeadMsg[i], 2)
+ this.showTableData[key] = this.$util.fmoney(this.showTableData[key], 2)
}
}
-
- let index = this.showHeadMsg.uploadState.indexOf('/')
- let first = this.showHeadMsg.uploadState.slice(0,index)
- let second = this.showHeadMsg.uploadState.slice(index+1,1000)
- if (Number(first)-Number(second)<0){
- this.isBig = true
- }
+ uni.hideLoading()
_this.$forceUpdate()
-
+ })
},
getDetail(obj) {
let _this = this
@@ -1072,17 +1048,32 @@ $iphoneHeight: env(safe-area-inset-bottom);
margin-left: 8px;
}
}
-
+
+ @keyframes allPriceAnimation {
+ 0%{
+ transform: translateY(30px);
+ }
+ 100%{
+ transform: translateY(0px);
+ }
+ }
+
.box {
display: flex;
align-items: center;
- .allPrice {
- font-size: 56rpx;
- font-family: DINAlternate-Bold, DINAlternate;
- font-weight: bold;
- color: #782717;
- line-height: 64rpx;
- margin-top: 4px;
+ .priceBox{
+ overflow: hidden;
+ .allPrice {
+ font-size: 56rpx;
+ font-family: DINAlternate-Bold, DINAlternate;
+ font-weight: bold;
+ color: #782717;
+ line-height: 64rpx;
+ margin-top: 4px;
+ }
+ .allPriceMove{
+ animation: allPriceAnimation 2s;
+ }
}
.start {
width: 14px;
@@ -1289,14 +1280,26 @@ $iphoneHeight: env(safe-area-inset-bottom);
top: 0;
right: 0;
}
- .other {
- font-size: 24rpx;
- font-family: PingFangSC-Regular, PingFang SC;
- font-weight: 400;
- color: #a69e9f;
- line-height: 36rpx;
- margin-left: 2px;
+ .otherBox{
+ display: flex;
+ justify-content: space-between;
+ .other {
+ font-size: 24rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #a69e9f;
+ line-height: 36rpx;
+ margin-left: 2px;
+ }
+ .month{
+ font-size: 24rpx;
+ font-family: DINAlternate-Bold, DINAlternate;
+ font-weight: bold;
+ color: #160002;
+ line-height: 40rpx;
+ }
}
+
.title {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
@@ -1498,6 +1501,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
background: #f5f2f2;
margin-top: 12px;
.top {
+ width: 100%;
display: flex;
.big {
width: 40px;
@@ -1515,33 +1519,53 @@ $iphoneHeight: env(safe-area-inset-bottom);
}
}
.text {
- flex: 1;
+ width: calc(100% - 60px);
padding: 2px 0;
.textTop{
display: flex;
align-items: center;
- .number {
- font-size: 36rpx;
- font-family: DINAlternate-Bold, DINAlternate;
- font-weight: bold;
- color: #150002;
- line-height: 40rpx;
- }
- .desc{
+ justify-content: space-between;
+ .left{
display: flex;
align-items: center;
- margin-left: 8px;
- font-size: 14px;
- color: #FF7043;
- .success{
- width: 20px;
- height: 20px;
- margin-right: 4px;
+ .number {
+ font-size: 36rpx;
+ font-family: DINAlternate-Bold, DINAlternate;
+ font-weight: bold;
+ color: #150002;
+ line-height: 40rpx;
+ }
+ .desc{
+ display: flex;
+ align-items: center;
+ margin-left: 8px;
+ font-size: 14px;
+ color: #FF7043;
+ .success{
+ width: 20px;
+ height: 20px;
+ margin-right: 4px;
+ }
+ }
+ }
+ .right{
+ display: flex;
+ align-items: center;
+ .addIcon {
+ width: 16px;
+ height: 16px;
+ margin-right: 2px;
+ }
+ .text{
+ font-size: 16px;
+ font-family: DINAlternate-Bold, DINAlternate;
+ color: #150002;
+ line-height: 40rpx;
}
}
}
- .progess{
+ .progressPlan{
width: 100%;
height: 8px;
border-radius: 5px;
@@ -1549,19 +1573,38 @@ $iphoneHeight: env(safe-area-inset-bottom);
margin-top: 8px;
position: relative;
overflow: hidden;
- .pro{
- position: absolute;
- right: 0;
+ .trans{
height: 8px;
- background: #fff;
- }
- .img{
- height: 100%;
- border-radius: 5px;
- overflow: hidden;
position: absolute;
- left: 0;
+ left: 0;top: 0;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ background: url("https://eshangtech.com/ShopICO/ahyd-BID/index/progress_orange.png")no-repeat 100% 100%;
}
+ .transYear{
+ height: 8px;
+ position: absolute;
+ left: 0;top: 0;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ background: url("https://eshangtech.com/ShopICO/ahyd-BID/index/progress_blue.png")no-repeat 100% 100%;
+ }
+ //.img{
+ // width: 100%;
+ // height: 100%;
+ // position: absolute;
+ // top: 0;
+ // left: 0;
+ // z-index:1;
+ //}
+ //.pro{
+ // height: 100%;
+ // position: absolute;
+ // top: 0;right: 0;
+ // background: #fff;
+ // z-index:2;
+ //}
+
}
}
}
@@ -1588,7 +1631,7 @@ $iphoneHeight: env(safe-area-inset-bottom);
}
.money {
font-size: 28rpx;
- font-family: PingFangSC-Semibold, PingFang SC;
+ font-family: DINAlternate-Bold, DINAlternate;
font-weight: 600;
color: #160002;
line-height: 40rpx;
diff --git a/pages/userCenter/components/userList.vue b/pages/userCenter/components/userList.vue
index 113bcfd..f74fa0d 100644
--- a/pages/userCenter/components/userList.vue
+++ b/pages/userCenter/components/userList.vue
@@ -9,6 +9,9 @@
class="useListItem"
>
+
+
+
{{ item.name }}
@@ -94,7 +97,7 @@ export default {
justify-content: space-between;
margin-bottom: 28px;
.useListItem {
- width: 30%;
+ width: calc((100% - 16px)/3);
height: 72px;
position: relative;
box-sizing: border-box;
@@ -108,6 +111,29 @@ export default {
top: 0;left:0;
z-index:0;
}
+ .iconStart{
+ width: 20px;
+ height: 20px;
+ overflow: hidden;
+ position: absolute;
+ left: 11px;top: 27px;
+ z-index:2;
+ .icon{
+ width: 14px;
+ height: 14px;
+ transform: translateX(30px);
+ border-right: 30px solid transparent;
+ }
+ .icon_first{
+ filter: drop-shadow(-30px 0px #9564F6);
+ }
+ .icon_second{
+ filter: drop-shadow(-30px 0px #F5921D);
+ }
+ .icon_third{
+ filter: drop-shadow(-30px 0px #28BAD3);
+ }
+ }
.name {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
@@ -119,8 +145,8 @@ export default {
z-index:2;
}
.img {
- width: 30px;
- height: 30px;
+ width: 32px;
+ height: 32px;
position: absolute;
bottom: 9px;
right: 14px;
@@ -156,8 +182,8 @@ export default {
align-items: center;
margin-bottom: 8px;
image {
- width: 30px;
- height: 30px;
+ width: 32px;
+ height: 32px;
}
}
.name {
@@ -244,13 +270,13 @@ export default {
align-items: center;
position: relative;
.imgParent{
- width: 30px;
- height: 30px;
+ width: 24px;
+ height: 24px;
margin-bottom: 6px;
overflow: hidden;
.img {
- width: 30px;
- height: 30px;
+ width: 24px;
+ height: 24px;
margin-bottom: 6px;
transform: translateX(30px);
border-right: 30px solid transparent;
@@ -258,8 +284,8 @@ export default {
}
}
.img_normal{
- width: 30px;
- height: 30px;
+ width: 24px;
+ height: 24px;
margin-bottom: 6px;
}
.name {
@@ -275,7 +301,7 @@ export default {
border-radius: 50%;
background: red;
position: absolute;
- right: 8px;
+ right: 20%;
top: -4px;
color: #fff;
font-size: 24rpx;
diff --git a/pages/userCenter/userCenter.vue b/pages/userCenter/userCenter.vue
index 2108181..e3ccb33 100644
--- a/pages/userCenter/userCenter.vue
+++ b/pages/userCenter/userCenter.vue
@@ -2,6 +2,12 @@
@@ -266,8 +272,11 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
})
},
onLoad(){
+ // 获取手机参数 对页面进行自适应
let systemInfo = uni.getSystemInfoSync()
this.statusBarHeight = Number(systemInfo.statusBarHeight)
+
+ //拿到登录用户有权限的内容
this.menu = uni.getMenuButtonBoundingClientRect()
this.dataList[2].list.forEach(item=>{
for(let key in this.user.AuthorityInfo){
@@ -278,6 +287,7 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
}
}
})
+ //拿到登录用户有权限的内容 判断是否有角标
this.dataList[3].list.forEach(item=>{
for(let key in this.user.AuthorityInfo){
if (key === item.id){
@@ -288,7 +298,7 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
}
}
})
-
+ //拿到登录用户有权限的内容 判断是否有角标
this.dataList[2].list.forEach(item=>{
for(let key in this.toDoMsg){
if (key === item.id){
@@ -339,6 +349,33 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
padding: 0 15px;
z-index:9999999;
}
+ .news{
+ width: 24px;
+ height: 24px;
+ position: absolute;
+ left: 16px;
+ transform: translateY(-50%);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ .box{
+ width: 100%;
+ height: 100%;
+ position: relative;
+ .img{
+ width: 100%;
+ height: 100%;
+ }
+ .red{
+ position: absolute;
+ width: 8px;
+ height: 8px;
+ background: #D7000F;
+ border-radius: 50%;
+ right:0;top: 4px;
+ }
+ }
+ }
.userTitle {
position: absolute;
left: 50%;
@@ -381,6 +418,7 @@ import Tabbar from "../../components/tabbar/tabbar.vue";
}
}
.message {
+ flex:1;
.people {
display: flex;
align-items: center;
diff --git a/static/images/commercial/car.svg b/static/images/commercial/car.svg
new file mode 100644
index 0000000..12cf458
--- /dev/null
+++ b/static/images/commercial/car.svg
@@ -0,0 +1,101 @@
+
+
\ No newline at end of file
diff --git a/static/images/commercial/fixed.svg b/static/images/commercial/fixed.svg
new file mode 100644
index 0000000..0596763
--- /dev/null
+++ b/static/images/commercial/fixed.svg
@@ -0,0 +1,53 @@
+
+
\ No newline at end of file
diff --git a/static/images/commercial/rightArrow.svg b/static/images/commercial/rightArrow.svg
new file mode 100644
index 0000000..475da72
--- /dev/null
+++ b/static/images/commercial/rightArrow.svg
@@ -0,0 +1,14 @@
+
+
\ No newline at end of file
diff --git a/static/images/index/news.svg b/static/images/index/news.svg
new file mode 100644
index 0000000..e20b11a
--- /dev/null
+++ b/static/images/index/news.svg
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file