升级图例框架
This commit is contained in:
parent
83786fb95b
commit
6d8c52cab3
@ -435,15 +435,60 @@ function getDataRange(minData, maxData) {
|
||||
|
||||
function measureText(text, fontSize, context) {
|
||||
var width = 0;
|
||||
text = String(text);
|
||||
// text = String(text);
|
||||
// #ifdef MP-ALIPAY || MP-BAIDU || APP-NVUE
|
||||
context = false;
|
||||
// #endif
|
||||
|
||||
if (context !== false && context !== undefined && context.setFontSize && context.measureText) {
|
||||
context.setFontSize(fontSize);
|
||||
return context.measureText(text).width;
|
||||
if(text instanceof Array) {
|
||||
let max = 0
|
||||
text.map(n=>{
|
||||
let len = getLen(n)
|
||||
if(max<len){
|
||||
max=len
|
||||
}
|
||||
})
|
||||
return max
|
||||
}else {
|
||||
return getLen(text)
|
||||
}
|
||||
// context.setFontSize(fontSize);
|
||||
// return context.measureText(text).width;
|
||||
} else {
|
||||
return getLen(text)
|
||||
// var text = text.split('');
|
||||
// for (let i = 0; i < text.length; i++) {
|
||||
// let item = text[i];
|
||||
// if (/[a-zA-Z]/.test(item)) {
|
||||
// width += 7;
|
||||
// } else if (/[0-9]/.test(item)) {
|
||||
// width += 5.5;
|
||||
// } else if (/\./.test(item)) {
|
||||
// width += 2.7;
|
||||
// } else if (/-/.test(item)) {
|
||||
// width += 3.25;
|
||||
// } else if (/:/.test(item)) {
|
||||
// width += 2.5;
|
||||
// } else if (/[\u4e00-\u9fa5]/.test(item)) {
|
||||
// width += 10;
|
||||
// } else if (/\(|\)/.test(item)) {
|
||||
// width += 3.73;
|
||||
// } else if (/\s/.test(item)) {
|
||||
// width += 2.5;
|
||||
// } else if (/%/.test(item)) {
|
||||
// width += 8;
|
||||
// } else {
|
||||
// width += 10;
|
||||
// }
|
||||
// }
|
||||
// return width * fontSize / 10;
|
||||
}
|
||||
function getLen(text) {
|
||||
text = String(text);
|
||||
var text = text.split('');
|
||||
var width = 0;
|
||||
for (let i = 0; i < text.length; i++) {
|
||||
let item = text[i];
|
||||
if (/[a-zA-Z]/.test(item)) {
|
||||
@ -454,8 +499,6 @@ function measureText(text, fontSize, context) {
|
||||
width += 2.7;
|
||||
} else if (/-/.test(item)) {
|
||||
width += 3.25;
|
||||
} else if (/:/.test(item)) {
|
||||
width += 2.5;
|
||||
} else if (/[\u4e00-\u9fa5]/.test(item)) {
|
||||
width += 10;
|
||||
} else if (/\(|\)/.test(item)) {
|
||||
@ -469,6 +512,7 @@ function measureText(text, fontSize, context) {
|
||||
}
|
||||
}
|
||||
return width * fontSize / 10;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -2270,6 +2314,7 @@ function drawPieText(series, opts, config, context, radius, center) {
|
||||
labelShow: item.labelShow
|
||||
};
|
||||
});
|
||||
|
||||
for (let i = 0; i < seriesConvert.length; i++) {
|
||||
let item = seriesConvert[i];
|
||||
// line end
|
||||
@ -2352,7 +2397,16 @@ function drawPieText(series, opts, config, context, radius, center) {
|
||||
context.beginPath();
|
||||
context.setFontSize(item.textSize * opts.pix || config.fontSize);
|
||||
context.setFillStyle(item.textColor || opts.fontColor);
|
||||
if(item.text instanceof Array) {
|
||||
item.text.map((n,i)=>{
|
||||
let y = textPosition.y + 3 +(i*(item.textSize || config.fontSize))
|
||||
context.fillText(n, textStartX, y);
|
||||
})
|
||||
}else{
|
||||
|
||||
context.fillText(item.text, textStartX, textPosition.y + 3);
|
||||
}
|
||||
// context.fillText(item.text, textStartX, textPosition.y + 3);
|
||||
context.closePath();
|
||||
context.stroke();
|
||||
context.closePath();
|
||||
|
||||
@ -69,10 +69,8 @@
|
||||
<div class="bgO" :style="{'width':item.bili+'%'}"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</view>
|
||||
</div>
|
||||
@ -154,8 +152,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<shopCell v-for="(item,i) in regionList" :key="i" :item='item' @toggleShow="toggleShow" :i='i'>
|
||||
</shopCell>
|
||||
<shopCell v-for="(item,i) in regionList" :key="i" :item='item' @toggleShow="toggleShow" :i='i' />
|
||||
|
||||
</template>
|
||||
</view>
|
||||
<template v-if="theRequest && theRequest.ProvinceCode==620000">
|
||||
@ -176,7 +174,7 @@
|
||||
import {
|
||||
mapState
|
||||
} from 'vuex';
|
||||
import uCharts from '@/components/u-charts/u-charts.js';
|
||||
import uCharts from '@/components/u-charts.js';
|
||||
import shopCell from './components/listUnit.vue'
|
||||
import AnhHead from './components/anhHead.vue'
|
||||
import RankContent from './components/RankContent.vue'
|
||||
@ -316,12 +314,13 @@
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
data.series = data.series.concat(obj.data)
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
colors: obj.colors,
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: obj.colors,
|
||||
type: 'ring',
|
||||
fontSize: 12,
|
||||
padding: [15, 15, 25, 15],
|
||||
@ -339,7 +338,7 @@
|
||||
height: uni.upx2px(510),
|
||||
dataLabel: true,
|
||||
extra: {
|
||||
pie: {
|
||||
ring: {
|
||||
ringWidth: 40,
|
||||
labelWidth: 16,
|
||||
border: true,
|
||||
@ -495,8 +494,14 @@
|
||||
_data1.push({
|
||||
...n,
|
||||
textColor: '#999',
|
||||
format: function(arg) {
|
||||
formatter: function(arg) {
|
||||
|
||||
if (typeof arg === 'number') {
|
||||
return [n.name, (arg * 100).toFixed(2) + '%']
|
||||
} else {
|
||||
return [arg.name, (arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
</div>
|
||||
<view class="top-card">
|
||||
<div class="box-center-box">
|
||||
|
||||
<div class="uni-flex ai-center jc-between">
|
||||
<div class="main-amount-title">对客营收(元)</div>
|
||||
<div class="tab-unit" @tap="showPop">
|
||||
@ -24,9 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="uni-flex ai-base jc-between">
|
||||
|
||||
<span class="center-num">{{sMsg.totalMoneyShow}}</span>
|
||||
|
||||
<span class="budgetamount">
|
||||
<text class="budget-title">计划营收(元):</text>
|
||||
<text :class="sMsg.budgetAmount< sMsg.cashPay ? 'up-text-title':'down-text-title'">
|
||||
@ -36,7 +33,6 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="uni-flex jc-between box-center-box">
|
||||
|
||||
<div class="check-unit">
|
||||
@ -74,9 +70,7 @@
|
||||
<div class="check-price-color">{{$util.fmoney(sMsg.countave,2)}} <text>元</text></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</view>
|
||||
|
||||
</div>
|
||||
<cover-view class="fixed-box page-title" :style="'transform: translateY('+fixedY+'px);opacity:'+opacity+';'">
|
||||
<cover-view>{{sMsg.serverpartname || ''}}</cover-view>
|
||||
@ -136,8 +130,7 @@
|
||||
:class="{'active': nowShop==i}" @click="selectCate(i)">{{n.Bussiness_Name}}</div>
|
||||
</scroll-view>
|
||||
<div class="tab-content" v-if="cateBrandList.length">
|
||||
<div class="shop-card" v-for="(m,i) in cateBrandList[nowShop].listBrandModel" :key="i"
|
||||
@click="toBrandPage(m,i)">
|
||||
<div class="shop-card" v-for="(m,i) in cateBrandList[nowShop].listBrandModel" :key="i" @click="toBrandPage(m,i)">
|
||||
<div>
|
||||
<image v-if="m.Brand_ICO" :src="m.Brand_ICO" mode="aspectFit"></image>
|
||||
<image v-else src="/static/images/revenue/home.png" mode="aspectFit"></image>
|
||||
@ -148,7 +141,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="" v-show="nowTab==2">
|
||||
@ -186,7 +178,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uCharts from '@/components/u-charts/u-charts.js';
|
||||
import uCharts from '@/components/u-charts.js';
|
||||
import ServiceRevenuePie from './components/ServiceRevenuePie.vue'
|
||||
import CustomerAnalysis from './components/CustomerAnalysis.vue'
|
||||
import CarAnalysis from './components/CarAnalysis.vue'
|
||||
@ -300,7 +292,6 @@
|
||||
showFixed(options) {
|
||||
|
||||
this.scrollTop = options.scrollTop
|
||||
|
||||
let selfHeight = uni.upx2px(396)
|
||||
|
||||
if (options.scrollTop > selfHeight) {
|
||||
@ -325,8 +316,7 @@
|
||||
|
||||
let btid = this.cateBrandList[nowShop].Business_Trade
|
||||
|
||||
let pages =
|
||||
`/pages/everdayRenven/serviceDetail?bid=${item.Brand_Id}&shopid=${item.ServerpartShop_Id}&id=${theRequest.ServerpartIds}&time=${theRequest.time}&provinceId=${theRequest.ProvinceCode}&btid=${item.Business_Trade}`
|
||||
let pages = `/pages/everdayRenven/serviceDetail?bid=${item.Brand_Id}&shopid=${item.ServerpartShop_Id}&id=${theRequest.ServerpartIds}&time=${theRequest.time}&provinceId=${theRequest.ProvinceCode}&btid=${item.Business_Trade}`
|
||||
this.$util.toNextRoute('navigateTo', pages)
|
||||
},
|
||||
async selectCate(index) {
|
||||
@ -377,8 +367,13 @@
|
||||
n.textColor = '#D1D1D1'
|
||||
|
||||
n.textSize = uni.upx2px(26)
|
||||
n.format = function(arg) {
|
||||
n.formatter = function(arg) {
|
||||
if (typeof arg === 'number') {
|
||||
return [n.name, (arg * 100).toFixed(2) + '%']
|
||||
} else {
|
||||
return [arg.name, (arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
list.push(n)
|
||||
}
|
||||
@ -408,7 +403,6 @@
|
||||
data: list,
|
||||
colors: colors1,
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
operationBusniess(arr, data) { // 生成业态营收占比数据
|
||||
@ -422,9 +416,13 @@
|
||||
name: n[1],
|
||||
textColor: '#999',
|
||||
data: data[n[0]], //+Number(data2[n[0]])
|
||||
format: function(arg) {
|
||||
|
||||
return [n[1], (arg * 100).toFixed(2) + '%']
|
||||
formatter: function(arg) {
|
||||
if(typeof arg==='number'){
|
||||
return [n[1],(arg * 100).toFixed(2) + '%']
|
||||
}else{
|
||||
return [arg.name,(arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
// return [n[1], (arg * 100).toFixed(2) + '%']
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -439,11 +437,13 @@
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
data.series = data.series.concat(obj.data)
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: _self,
|
||||
canvasId: obj.id,
|
||||
colors: obj.colors,
|
||||
// $this: _self,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: obj.colors,
|
||||
type: 'ring',
|
||||
padding: obj.id != 'modelCount' ? [15, 15, 25, 0] : '',
|
||||
legend: {
|
||||
@ -473,7 +473,7 @@
|
||||
disablePieStroke: true,
|
||||
dataPointShape: false,
|
||||
extra: {
|
||||
pie: {
|
||||
ring: {
|
||||
ringWidth: obj.id != 'modelCount' ? uni.upx2px(90) : 40,
|
||||
labelWidth: uni.upx2px(40),
|
||||
activeOpacity: 1,
|
||||
@ -538,17 +538,14 @@
|
||||
statictics_Time: theRequest.time,
|
||||
pushProvinceCode: theRequest.ProvinceCode
|
||||
}).then(res => {
|
||||
|
||||
if (res.Result_Code != 100) return
|
||||
|
||||
_this.pageData = res.Result_Data
|
||||
if (res.Result_Data.listBusinessModel) {
|
||||
let list = JSON.parse(JSON.stringify(res.Result_Data.listBusinessModel))
|
||||
if (list.length > 0) {
|
||||
|
||||
let all = {
|
||||
Bussiness_Name: '全部',
|
||||
|
||||
listBrandModel: []
|
||||
}
|
||||
list.map(n => {
|
||||
@ -568,9 +565,7 @@
|
||||
return
|
||||
}
|
||||
_this.cateBrandList = []
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
// 获取头部卡片 展示信息
|
||||
|
||||
@ -579,7 +574,6 @@
|
||||
const [totalData, busniessTypePie, busniessTradePie, busniessTradeFathPie] =
|
||||
await anhuiYestodayRevenueData.getData(theRequest, true)
|
||||
|
||||
|
||||
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
|
||||
@ -622,8 +616,13 @@
|
||||
_data1.push({
|
||||
...n,
|
||||
textColor: '#999',
|
||||
format: function(arg) {
|
||||
return [n.name, (arg * 100).toFixed(2) + '%']
|
||||
formatter: function(arg) {
|
||||
if(typeof arg==='number'){
|
||||
return [n.name,(arg * 100).toFixed(2) + '%']
|
||||
}else{
|
||||
return [arg.name,(arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@ -656,16 +655,12 @@
|
||||
}
|
||||
let _data = res.Result_Data
|
||||
_this.unUploadList = _data.List
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
},
|
||||
onPageScroll(e) {
|
||||
this.showFixed(e)
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@ -235,7 +235,7 @@
|
||||
textColor: '#747474',
|
||||
textSize: uni.upx2px(20),
|
||||
formatter: (val) => {
|
||||
console.log(val)
|
||||
|
||||
return parseInt(val)+'辆'
|
||||
}
|
||||
}],
|
||||
@ -274,14 +274,11 @@
|
||||
this.getProportion(this.canvasTab, params)
|
||||
this.getAnalysisDesc(this.canvasTab, params)
|
||||
},
|
||||
// tapchart(e, id) {
|
||||
// rincanvas[id].showToolTip(e)
|
||||
// },
|
||||
|
||||
tap(e) {
|
||||
rincanvas[e.target.id].touchLegend(e);
|
||||
rincanvas[e.target.id].showToolTip(e);
|
||||
},
|
||||
|
||||
showPie(obj) {
|
||||
let data = {
|
||||
series: []
|
||||
|
||||
@ -6,10 +6,10 @@
|
||||
<div v-show="!loading && !pageEmpty">
|
||||
<div class="tab-btn" @tap="tabChange(canvasTab==1?2:1,opt)">{{canvasTab==1 ? '消费能力分析' : '消费人群分析'}}</div>
|
||||
<div class="customer-title">{{canvasTab==1? '消费人群': '消费能力'}}占比</div>
|
||||
<canvas canvas-id="sexCate" id="sexCate" class="operation-cate-content"></canvas>
|
||||
<canvas canvas-id="sexCate" id="sexCate" class="operation-cate-content" @touchend="tap"></canvas>
|
||||
<div class="customer-title">年龄层占比</div>
|
||||
<canvas canvas-id="stockShare1" id="stockShare1" class="operation-stock-content" v-show="canvasTab==1" ></canvas>
|
||||
<canvas canvas-id="stockShare2" id="stockShare2" class="operation-stock-content" v-show="canvasTab==2" ></canvas>
|
||||
<canvas canvas-id="stockShare1" id="stockShare1" class="operation-stock-content" v-show="canvasTab==1" @touchend="tap"></canvas>
|
||||
<canvas canvas-id="stockShare2" id="stockShare2" class="operation-stock-content" v-show="canvasTab==2" @touchend="tap"></canvas>
|
||||
<div class="analysis-text" v-if="proportionList[canvasTab]">
|
||||
<span class="key-text">分析</span><span>{{proportionList[canvasTab][1]}}</span>
|
||||
</div>
|
||||
@ -18,7 +18,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uCharts from '@/components/u-charts/u-charts.js';
|
||||
import uCharts from '@/components/u-charts.js';
|
||||
let rincanvas = {}
|
||||
|
||||
export default {
|
||||
@ -47,7 +47,6 @@
|
||||
methods: {
|
||||
refreshData(data) {
|
||||
// 刷新数据
|
||||
|
||||
rincanvas['sexCate'].updateData({series:data[0]});
|
||||
this.$forceUpdate()
|
||||
},
|
||||
@ -69,7 +68,7 @@
|
||||
statisticsType: type,
|
||||
...params
|
||||
})
|
||||
_this.loading=false
|
||||
_this.loading = false
|
||||
if (data.Result_Code === 100 && data.Result_Data.List.length > 0) {
|
||||
|
||||
const list = data.Result_Data.List
|
||||
@ -77,22 +76,33 @@
|
||||
let pieSerise = [{
|
||||
name: list[0].name,
|
||||
data: list[0].data[0],
|
||||
format: function(arg) {
|
||||
formatter: function(arg) {
|
||||
|
||||
if (typeof arg === 'number') {
|
||||
return [list[0].name, (arg * 100).toFixed(2) + '%']
|
||||
} else {
|
||||
return [arg.name, (arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
// return [list[0].name, (arg * 100).toFixed(2) + '%']
|
||||
}
|
||||
},
|
||||
{
|
||||
name: list[1].name,
|
||||
data: list[1].data[0],
|
||||
format: function(arg) {
|
||||
formatter: function(arg) {
|
||||
if (typeof arg === 'number') {
|
||||
return [list[1].name, (arg * 100).toFixed(2) + '%']
|
||||
} else {
|
||||
return [arg.name, (arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
]
|
||||
let clounm = [{
|
||||
name: list[2].name,
|
||||
data: ([]).concat(list[2].data),
|
||||
format: function(arg) {
|
||||
formatter: function(arg) {
|
||||
return [ arg + '%']
|
||||
}
|
||||
}]
|
||||
@ -108,7 +118,7 @@
|
||||
_this.showClounm({
|
||||
id: 'stockShare'+type,
|
||||
data: clounm,
|
||||
categories: ['00后', '90后', '80后', '70后']
|
||||
categories: ['00后', '90后', '80后', '70后'],
|
||||
})
|
||||
|
||||
|
||||
@ -126,21 +136,23 @@
|
||||
...params
|
||||
})
|
||||
|
||||
|
||||
return data.Result_Data.Analysis_Content || ''
|
||||
},
|
||||
touchPie() {},
|
||||
tap(e) {
|
||||
rincanvas[e.target.id].touchLegend(e);
|
||||
rincanvas[e.target.id].showToolTip(e);
|
||||
},
|
||||
showPie(obj) {
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
data.series = data.series.concat(obj.data)
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
colors: ['#667ED5', '#F6B760'],
|
||||
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: ['#667ED5', '#F6B760'],
|
||||
type: 'ring',
|
||||
fontSize: 12,
|
||||
// padding: [15, 15, 25, 15],
|
||||
@ -158,7 +170,7 @@
|
||||
height: uni.upx2px(480),
|
||||
dataLabel: true,
|
||||
extra: {
|
||||
pie: {
|
||||
ring: {
|
||||
ringWidth: 40,
|
||||
labelWidth: 20,
|
||||
border: true,
|
||||
@ -175,16 +187,17 @@
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
data.series = data.series.concat(obj.data)
|
||||
new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
type: 'column',
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
colors: ['#78BFB4'],
|
||||
color: ['#78BFB4'],
|
||||
fontSize: 12,
|
||||
background: '#FFFFFF',
|
||||
padding: [30, 12, 12, 12],
|
||||
@ -205,7 +218,7 @@
|
||||
disabled: false,
|
||||
axisLine: false,
|
||||
fontColor: '#777777',
|
||||
format: (val) => {
|
||||
formatter: (val) => {
|
||||
return parseInt(val) + '%'
|
||||
}
|
||||
}],
|
||||
|
||||
@ -419,7 +419,7 @@
|
||||
import {
|
||||
mapState
|
||||
} from 'vuex';
|
||||
import uCharts from '@/components/u-charts/u-charts.js';
|
||||
import uCharts from '@/components/u-charts.js';
|
||||
import shopCell from './components/listUnit.vue'
|
||||
import RankContent from './components/RankContent.vue'
|
||||
|
||||
@ -538,7 +538,7 @@
|
||||
},
|
||||
touchPie(e, id) {
|
||||
rincanvas[id].showToolTip(e, {
|
||||
format: function(item) {
|
||||
formatter: function(item) {
|
||||
return item.name + ':' + item.data
|
||||
}
|
||||
});
|
||||
@ -700,7 +700,7 @@
|
||||
},
|
||||
operationFn(data, ohterData) { //昨日营收占比
|
||||
var _this = this;
|
||||
|
||||
console.log(1)
|
||||
if (data.SHOWBUSINESSTRADE == 1) { // 业态营收占比
|
||||
var colors1 = ['#5E67B4', '#4E5699', '#75B7AD', '#AFB7E6'];
|
||||
var SHOWBUSINESSTRADE = [
|
||||
@ -775,8 +775,13 @@
|
||||
name: showName,
|
||||
data: n.CASHPAY,
|
||||
textColor: '#999',
|
||||
format: function(arg) {
|
||||
return [showName, (arg * 100).toFixed(2) + '%']
|
||||
formatter: function(arg) {
|
||||
if(typeof arg==='number'){
|
||||
return [showName,(arg * 100).toFixed(2) + '%']
|
||||
}else{
|
||||
return [arg.name,(arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
_data2.push({
|
||||
@ -805,9 +810,14 @@
|
||||
name: n[1],
|
||||
textColor: '#999',
|
||||
data: data[n[0]], //+Number(data2[n[0]])
|
||||
format: function(arg) {
|
||||
// labelText: '',
|
||||
formatter: function(arg) {
|
||||
|
||||
return [n[1], (arg * 100).toFixed(2) + '%']
|
||||
if(typeof arg==='number'){
|
||||
return [n[1],(arg * 100).toFixed(2) + '%']
|
||||
}else{
|
||||
return [arg.name,(arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -831,15 +841,16 @@
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
data.series = data.series.concat(obj.data)
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
colors: obj.colors,
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: obj.colors,
|
||||
type: 'ring',
|
||||
fontSize: 12,
|
||||
padding: [15, 15, 25, 15],
|
||||
// padding: [15, 15, 25, 15],
|
||||
legend: {
|
||||
show: false,
|
||||
padding: 5,
|
||||
@ -854,7 +865,7 @@
|
||||
height: uni.upx2px(510),
|
||||
dataLabel: true,
|
||||
extra: {
|
||||
pie: {
|
||||
ring: {
|
||||
ringWidth: 40,
|
||||
labelWidth: 16,
|
||||
border: true,
|
||||
@ -866,10 +877,12 @@
|
||||
});
|
||||
},
|
||||
showLine(obj) {
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
colors: ['#667ED5'],
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: ['#667ED5'],
|
||||
type: 'area',
|
||||
fontSize: 12,
|
||||
legend: {
|
||||
@ -883,7 +896,6 @@
|
||||
categories: obj.categories,
|
||||
series: obj.data,
|
||||
animation: false,
|
||||
|
||||
xAxis: {
|
||||
disabled: false,
|
||||
disableGrid: true,
|
||||
@ -895,12 +907,11 @@
|
||||
// scrollAlign: 'left',//滚动条初始位置
|
||||
},
|
||||
yAxis: {
|
||||
|
||||
data: [{
|
||||
disabled: false,
|
||||
axisLine: false,
|
||||
fontColor: '#B3B3B3',
|
||||
format: (val) => {
|
||||
formatter: (val) => {
|
||||
return parseInt(val)
|
||||
}
|
||||
}],
|
||||
@ -923,14 +934,16 @@
|
||||
},
|
||||
showClounm(obj) {
|
||||
// rincanvas[obj.id] =
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
new uCharts({
|
||||
$this: this,
|
||||
canvasId: obj.id,
|
||||
// $this: this,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
type: 'column',
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
colors: ['#D1DBEF'],
|
||||
color: ['#D1DBEF'],
|
||||
fontSize: 12,
|
||||
background: '#FFFFFF',
|
||||
padding: [30, 12, 12, 12],
|
||||
@ -951,7 +964,7 @@
|
||||
disabled: false,
|
||||
axisLine: false,
|
||||
fontColor: '#B3B3B3',
|
||||
format: (val) => {
|
||||
formatter: (val) => {
|
||||
return parseInt(val)
|
||||
}
|
||||
}],
|
||||
|
||||
@ -1,31 +1,38 @@
|
||||
<template>
|
||||
<view :style="showUnUpLoad ? 'overflow:hideen;height:100vh;':'height:100%;width:750rpx;'" class="page-body" scroll-with-animation v-if="showPage">
|
||||
<div class="box-card" :style="'opacity:'+(1-opacity)+';'" >
|
||||
<view :style="showUnUpLoad ? 'overflow:hideen;height:100vh;':'height:100%;width:750rpx;'" class="page-body"
|
||||
scroll-with-animation v-if="showPage">
|
||||
<div class="box-card" :style="'opacity:'+(1-opacity)+';'">
|
||||
<div class="box-top-title">
|
||||
<span class="box-center-title">{{pageData.Serverpart_Name}}</span>
|
||||
<picker mode="date" @change="bindDateChange" :value="theRequest.time" :end="lastDay" start="2021/01/01" class="title-clock" >
|
||||
<picker mode="date" @change="bindDateChange" :value="theRequest.time" :end="lastDay" start="2021/01/01"
|
||||
class="title-clock">
|
||||
<view>{{searchDate}} <text class="uni-icon uni-icon-arrowdown"></text></view>
|
||||
</picker>
|
||||
|
||||
</div>
|
||||
<view class="top-card" :style="theRequest.ProvinceCode!='340000'? 'padding: 0 0 24rpx 0;border-radius: 12rpx;': ''">
|
||||
<view class="top-card"
|
||||
:style="theRequest.ProvinceCode!='340000'? 'padding: 0 0 24rpx 0;border-radius: 12rpx;': ''">
|
||||
<div class="box-center-box">
|
||||
<template v-if="theRequest.ProvinceCode=='340000'">
|
||||
<div class="uni-flex ai-center jc-between">
|
||||
<div class="main-amount-title">对客营收(元)</div>
|
||||
<div class="tab-unit" @tap="showPop" v-if="upcouts">
|
||||
<span>上传门店:</span>
|
||||
<span class="tab-unit-num" :class="{'priceRed':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_UPCOUNT}}</span>
|
||||
<span class="tab-unit-num " :class="{'more-btn':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_TCOUNT}}</span>
|
||||
<span class="tab-unit-num"
|
||||
:class="{'priceRed':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_UPCOUNT}}</span>
|
||||
<span class="tab-unit-num "
|
||||
:class="{'more-btn':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_TCOUNT}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uni-flex ai-base jc-between">
|
||||
|
||||
<span class="center-num">{{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</span>
|
||||
<span
|
||||
class="center-num">{{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</span>
|
||||
|
||||
<span class="budgetamount" v-if="sMsg">
|
||||
<text class="budget-title">计划营收(元):</text>
|
||||
<text :class="sMsg.BUDGETAMOUNT< pageData.Revenue_Amount ? 'up-text-title':'down-text-title'">
|
||||
<text
|
||||
:class="sMsg.BUDGETAMOUNT< pageData.Revenue_Amount ? 'up-text-title':'down-text-title'">
|
||||
{{sMsg.BUDGETAMOUNT ? $util.fmoney(sMsg.BUDGETAMOUNT,2) : '0.00'}}
|
||||
</text>
|
||||
</span>
|
||||
@ -34,12 +41,15 @@
|
||||
<template v-else>
|
||||
<div class="uni-flex ai-base jc-between">
|
||||
<div>
|
||||
<span class="center-num">{{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</span>
|
||||
<span
|
||||
class="center-num">{{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</span>
|
||||
<span class="center-title">元</span>
|
||||
</div>
|
||||
<div v-if="upcouts" @tap="showPop">
|
||||
<span class="tab-unit-num" :class="{'priceRed':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_UPCOUNT}}</span>
|
||||
<span class="tab-unit-num " :class="{'more-btn':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_TCOUNT}}</span>
|
||||
<span class="tab-unit-num"
|
||||
:class="{'priceRed':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_UPCOUNT}}</span>
|
||||
<span class="tab-unit-num "
|
||||
:class="{'more-btn':upcouts.SHOP_UPCOUNT!==upcouts.SHOP_TCOUNT}">{{upcouts.SHOP_TCOUNT}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -88,12 +98,13 @@
|
||||
</div>
|
||||
<cover-view class="fixed-box page-title" :style="'transform: translateY('+fixedY+'px);opacity:'+opacity+';'">
|
||||
<cover-view>{{pageData.Serverpart_Name || ''}}</cover-view>
|
||||
<cover-view class="price-text" style="width: 200rpx;text-align: right;">¥ {{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</cover-view>
|
||||
<cover-view class="price-text" style="width: 200rpx;text-align: right;">¥
|
||||
{{pageData.Revenue_Amount ? $util.fmoney(pageData.Revenue_Amount,2) : '0.00'}}</cover-view>
|
||||
</cover-view>
|
||||
|
||||
<template v-if="cateBrandList.length">
|
||||
<template v-if="theRequest.ProvinceCode=='340000'">
|
||||
<view class="uni-flex ai-center analysis-tabs" >
|
||||
<view class="uni-flex ai-center analysis-tabs">
|
||||
<view @tap="changeTab(3)" class="tab" :class="{'active': nowTab==3}">经营模式</view>
|
||||
<view @tap="changeTab(1)" class="tab" :class="{'active': nowTab==1}">经营业态</view>
|
||||
<view @tap="changeTab(2)" class="tab" :class="{'active': nowTab==2}">消费客群</view>
|
||||
@ -103,7 +114,8 @@
|
||||
<div class="pie-title">经营模式占比</div>
|
||||
<view class="operation-model-content">
|
||||
|
||||
<canvas canvas-id="modelCount" v-if="operationModel.length>0" id="modelCount" class="operation-model-content" @click="touchPie($event,'modelCount')"/>
|
||||
<canvas canvas-id="modelCount" v-if="operationModel.length>0" id="modelCount"
|
||||
class="operation-model-content" @click="touchPie($event,'modelCount')" />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -111,25 +123,30 @@
|
||||
|
||||
<view class="" v-show="nowTab==1">
|
||||
<!-- 安徽省 -->
|
||||
<ServiceRevenuePie ref="serviceRevenuePie" v-if="ServiceRevenueData.length==2 && nowTab==1" :data="ServiceRevenueData" @selectCate="selectCate"/>
|
||||
<ServiceRevenuePie ref="serviceRevenuePie" v-if="ServiceRevenueData.length==2 && nowTab==1"
|
||||
:data="ServiceRevenueData" @selectCate="selectCate" />
|
||||
<!-- 其余省份 -->
|
||||
<canvas v-else-if="sellData.length>0" canvas-id="sellCate" id="sellCate" class="operation-cate-content" @click="touchPie($event,'sellCate')"></canvas>
|
||||
<canvas v-else-if="sellData.length>0" canvas-id="sellCate" id="sellCate" class="operation-cate-content"
|
||||
@click="touchPie($event,'sellCate')"></canvas>
|
||||
|
||||
<!-- 品牌列表 -->
|
||||
<div class="shop-box" >
|
||||
<div class="shop-box">
|
||||
<scroll-view scroll-x class="tab-shop" scroll-with-animation :scroll-left="scrollLeft">
|
||||
|
||||
<div v-for="(n,i) in cateBrandList" :key="i" :id="`tabNum${i}`" class="cate-name" :class="{'active': nowShop==i}" @click="selectCate(i)">{{n.Bussiness_Name}}</div>
|
||||
<div v-for="(n,i) in cateBrandList" :key="i" :id="`tabNum${i}`" class="cate-name"
|
||||
:class="{'active': nowShop==i}" @click="selectCate(i)">{{n.Bussiness_Name}}</div>
|
||||
|
||||
</scroll-view>
|
||||
<div class="tab-content" v-if="cateBrandList.length" >
|
||||
<div class="shop-card" v-for="(m,i) in cateBrandList[nowShop].listBrandModel" :key="i" @click="toBrandPage(m,i)" >
|
||||
<div class="tab-content" v-if="cateBrandList.length">
|
||||
<div class="shop-card" v-for="(m,i) in cateBrandList[nowShop].listBrandModel" :key="i"
|
||||
@click="toBrandPage(m,i)">
|
||||
<div>
|
||||
<image v-if="m.Brand_ICO" :src="m.Brand_ICO" mode="aspectFit"></image>
|
||||
<image v-else src="/static/images/revenue/home.png" mode="aspectFit"></image>
|
||||
</div>
|
||||
<div class="shop-name">{{m.Brand_Name}}</div>
|
||||
<div class="price-num">¥ {{m.Revenue_Amount ? $util.fmoney(m.Revenue_Amount,2) : '0.00'}}</div>
|
||||
<div class="price-num">¥ {{m.Revenue_Amount ? $util.fmoney(m.Revenue_Amount,2) : '0.00'}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -137,7 +154,7 @@
|
||||
</view>
|
||||
|
||||
<view class="" v-show="nowTab==2">
|
||||
<CustomerAnalysis ref="customerAna" :show="nowTab==2"/>
|
||||
<CustomerAnalysis ref="customerAna" :show="nowTab==2" />
|
||||
</view>
|
||||
|
||||
</template>
|
||||
@ -146,11 +163,13 @@
|
||||
<noFound :nodata="'true'" :text="noDataText" />
|
||||
</view>
|
||||
|
||||
<cover-view class="uni-mask" :style="showUnUpLoad ? ' display:block;':'opacity:0; display: none;'" @click="closePop" :catchtouchmove="showUnUpLoad? 'return':''"></cover-view>
|
||||
<cover-view class="uni-popup uni-popup-middle" :style="showUnUpLoad ? 'display:flex;':'display: none;'" :catchtouchmove="showUnUpLoad? 'return':''">
|
||||
<cover-view class="uni-mask" :style="showUnUpLoad ? ' display:block;':'opacity:0; display: none;'"
|
||||
@click="closePop" :catchtouchmove="showUnUpLoad? 'return':''"></cover-view>
|
||||
<cover-view class="uni-popup uni-popup-middle" :style="showUnUpLoad ? 'display:flex;':'display: none;'"
|
||||
:catchtouchmove="showUnUpLoad? 'return':''">
|
||||
|
||||
<cover-view class="header-top" v-if="unUploadList.length>0">{{pageData.Serverpart_Name}}未上传门店</cover-view>
|
||||
<cover-view class="pop-body" >
|
||||
<cover-view class="pop-body">
|
||||
<cover-view class="uni-flex pop-row" v-for="(c,i) in unUploadList" :key="i">
|
||||
<cover-view class="uni-flex ai-center">
|
||||
<cover-view class="pop-index">{{i>8 ? i+1 :'0'+(i+1)}}</cover-view>
|
||||
@ -160,13 +179,14 @@
|
||||
</cover-view>
|
||||
</cover-view>
|
||||
<cover-view class="header-top" v-if="todayUpList.length>0">8点后上传的门店</cover-view>
|
||||
<cover-view class="pop-body" >
|
||||
<cover-view class="pop-body">
|
||||
<cover-view class="uni-flex pop-row" v-for="(c,i) in todayUpList" :key="i">
|
||||
<cover-view class="uni-flex ai-center">
|
||||
<cover-view class="pop-index">{{i>8 ? i+1 :'0'+(i+1)}}</cover-view>
|
||||
<cover-view class="inline-item">{{c.SHOPNAME}}</cover-view>
|
||||
</cover-view>
|
||||
<cover-view class="">{{c.DOWNLOAD_DATE ? $util.cutDate(c.DOWNLOAD_DATE,'MM/DD hh:mm:ss'): ''}} </cover-view>
|
||||
<cover-view class="">{{c.DOWNLOAD_DATE ? $util.cutDate(c.DOWNLOAD_DATE,'MM/DD hh:mm:ss'): ''}}
|
||||
</cover-view>
|
||||
<cover-view class="pop-row-bottom"></cover-view>
|
||||
</cover-view>
|
||||
</cover-view>
|
||||
@ -176,7 +196,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uCharts from '@/components/u-charts/u-charts.js';
|
||||
import uCharts from '@/components/u-charts.js';
|
||||
import ServiceRevenuePie from './components/ServiceRevenuePie.vue'
|
||||
import CustomerAnalysis from './components/CustomerAnalysis.vue'
|
||||
let rincanvas = {}
|
||||
@ -186,17 +206,17 @@
|
||||
const lastDay = this.$util.cutDate(new Date(), 'YYYY/MM/DD ', -1)
|
||||
|
||||
return {
|
||||
lastDay: lastDay +'23:59:59', // 该页面的最近有效日期
|
||||
noDataText:'抱歉,该服务区暂无品牌分析数据',
|
||||
lastDay: lastDay + '23:59:59', // 该页面的最近有效日期
|
||||
noDataText: '抱歉,该服务区暂无品牌分析数据',
|
||||
scrollLeft: 0,
|
||||
theRequest:{},
|
||||
showAll:false,
|
||||
showHeight: uni.upx2px(484)+'px',
|
||||
theRequest: {},
|
||||
showAll: false,
|
||||
showHeight: uni.upx2px(484) + 'px',
|
||||
searchDate: '',
|
||||
sellData : [],
|
||||
sellData: [],
|
||||
scrollTop: 0,
|
||||
pageData: {},
|
||||
cateBrandList:[],
|
||||
cateBrandList: [],
|
||||
// ringColor: ['#FFAC37', '#d8ece9', '#e0e3f7', '#f7f5f6', '#b2b7e3'],
|
||||
nowShop: 0,
|
||||
showPage: false,
|
||||
@ -204,7 +224,7 @@
|
||||
opacity: 0,
|
||||
sMsg: null, // 头部数据
|
||||
showUnUpLoad: false, //未上传门店弹出框
|
||||
upcouts:null, // 上传门店数量
|
||||
upcouts: null, // 上传门店数量
|
||||
unUploadList: [], // 未上传门店列表
|
||||
todayUpList: [], // 未上传门店列表
|
||||
ServiceRevenueData: [],
|
||||
@ -212,7 +232,7 @@
|
||||
operationModel: [], // 安徽经营模式
|
||||
}
|
||||
},
|
||||
components:{
|
||||
components: {
|
||||
ServiceRevenuePie,
|
||||
CustomerAnalysis
|
||||
},
|
||||
@ -221,10 +241,10 @@
|
||||
uni.showLoading({
|
||||
title: '正在加载...'
|
||||
})
|
||||
if(option.ProvinceCode){
|
||||
if (option.ProvinceCode) {
|
||||
// this.nowTab = option.ProvinceCode == 340000 ? 3 : 1
|
||||
option.time = this.$util.cutDate(option.time,'YYYY-MM-DD')
|
||||
this.searchDate = this.$util.cutDate(option.time,'MM月DD日')
|
||||
option.time = this.$util.cutDate(option.time, 'YYYY-MM-DD')
|
||||
this.searchDate = this.$util.cutDate(option.time, 'MM月DD日')
|
||||
this.theRequest = option
|
||||
this.getHeader(option)
|
||||
this.getData(option)
|
||||
@ -233,20 +253,20 @@
|
||||
methods: {
|
||||
changeTab(value) {
|
||||
this.nowTab = value
|
||||
if(value==2) {
|
||||
if (value == 2) {
|
||||
|
||||
let opt = this.theRequest
|
||||
const params = {
|
||||
serverpartId: opt.ServerpartIds,
|
||||
pushprovinceCode: opt.ProvinceCode,
|
||||
statisticsMonth: this.$util.cutDate(opt.time,'YYYYMM',-30)
|
||||
statisticsMonth: this.$util.cutDate(opt.time, 'YYYYMM', -30)
|
||||
}
|
||||
this.$refs['customerAna'].tabChange(1,params)
|
||||
this.$refs['customerAna'].tabChange(1, params)
|
||||
}
|
||||
|
||||
},
|
||||
closePop(){
|
||||
this.showUnUpLoad=false
|
||||
closePop() {
|
||||
this.showUnUpLoad = false
|
||||
},
|
||||
|
||||
bindDateChange(e) {
|
||||
@ -255,57 +275,56 @@
|
||||
|
||||
if (selectT <= new Date(this.lastDay)) {
|
||||
let opt = this.theRequest
|
||||
opt.time = values.replace(/-/ig,'/')
|
||||
this.searchDate = this.$util.cutDate(values,'MM月DD日')
|
||||
opt.time = values.replace(/-/ig, '/')
|
||||
this.searchDate = this.$util.cutDate(values, 'MM月DD日')
|
||||
uni.showLoading({
|
||||
title:'正在加载'
|
||||
title: '正在加载'
|
||||
})
|
||||
this.getHeader(opt)
|
||||
this.getData(opt)
|
||||
}else{
|
||||
uni.showToast(
|
||||
{
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请选择有效日期',
|
||||
icon: 'none',
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
showFixed(options){
|
||||
showFixed(options) {
|
||||
|
||||
this.scrollTop = options.scrollTop
|
||||
|
||||
let selfHeight = uni.upx2px(396)
|
||||
|
||||
if(options.scrollTop>selfHeight){
|
||||
if(this.fixedY !== 0){
|
||||
if (options.scrollTop > selfHeight) {
|
||||
if (this.fixedY !== 0) {
|
||||
// console.log( 0)
|
||||
this.fixedY = 0
|
||||
this.opacity = 1
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}else{
|
||||
if(this.fixedY !== -selfHeight){
|
||||
this.fixedY = 0-selfHeight
|
||||
} else {
|
||||
if (this.fixedY !== -selfHeight) {
|
||||
this.fixedY = 0 - selfHeight
|
||||
this.opacity = 0
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
toBrandPage(item,index){
|
||||
toBrandPage(item, index) {
|
||||
let theRequest = this.theRequest
|
||||
let nowShop = this.nowShop
|
||||
|
||||
let btid = this.cateBrandList[nowShop].Business_Trade
|
||||
|
||||
let pages = `/pages/everdayRenven/serviceDetail?bid=${item.Brand_Id}&id=${theRequest.ServerpartIds}&time=${theRequest.time}&provinceId=${theRequest.ProvinceCode}&btid=${item.Business_Trade}`
|
||||
let pages =
|
||||
`/pages/everdayRenven/serviceDetail?bid=${item.Brand_Id}&id=${theRequest.ServerpartIds}&time=${theRequest.time}&provinceId=${theRequest.ProvinceCode}&btid=${item.Business_Trade}`
|
||||
this.$util.toNextRoute('navigateTo', pages)
|
||||
},
|
||||
async selectCate(index){
|
||||
async selectCate(index) {
|
||||
|
||||
if(index==this.nowShop) return
|
||||
if (index == this.nowShop) return
|
||||
this.nowShop = index
|
||||
this.showAll = false
|
||||
let leftWidthSum = 0;
|
||||
@ -314,7 +333,7 @@
|
||||
leftWidthSum = leftWidthSum + nowElement.width
|
||||
}
|
||||
let winWidth = uni.getSystemInfoSync().windowWidth
|
||||
winWidth = (winWidth-60)/1.5
|
||||
winWidth = (winWidth - 60) / 1.5
|
||||
this.scrollLeft = leftWidthSum > winWidth ? (leftWidthSum - winWidth) : 0
|
||||
|
||||
this.$forceUpdate()
|
||||
@ -337,8 +356,8 @@
|
||||
let colors1 = ['#FFAC37', '#d8ece9', '#e0e3f7', '#f7f5f6', '#b2b7e3'];
|
||||
let list = []
|
||||
let list2 = []
|
||||
_this.pageData.listBusinessModel.map((m,i)=>{
|
||||
if( m.Revenue_Amount!=0){
|
||||
_this.pageData.listBusinessModel.map((m, i) => {
|
||||
if (m.Revenue_Amount != 0) {
|
||||
let n = {
|
||||
name: m.Bussiness_Name,
|
||||
data: m.Revenue_Amount
|
||||
@ -348,25 +367,30 @@
|
||||
value: m.Revenue_Amount
|
||||
}
|
||||
list2.push(n2)
|
||||
n.textColor='#D1D1D1'
|
||||
n.textColor = '#D1D1D1'
|
||||
|
||||
n.textSize = uni.upx2px(26)
|
||||
n.formatter = function(arg) {
|
||||
if(typeof arg==='number'){
|
||||
return [n.name,(arg * 100).toFixed(2) + '%']
|
||||
}else{
|
||||
return [arg.name,(arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
n.textSize= uni.upx2px(26)
|
||||
n.format = function(arg) {
|
||||
return [n.name,(arg*100).toFixed(2)+'%']
|
||||
}
|
||||
list.push(n)
|
||||
}
|
||||
|
||||
})
|
||||
if(list2.length>0){
|
||||
if (list2.length > 0) {
|
||||
_this.ServiceRevenueData.push(list2)
|
||||
_this.sellData = list
|
||||
|
||||
}
|
||||
if(_this.pageData.listCurBusinessModel &&_this.pageData.listCurBusinessModel.length>0){
|
||||
if (_this.pageData.listCurBusinessModel && _this.pageData.listCurBusinessModel.length > 0) {
|
||||
let list = []
|
||||
_this.pageData.listCurBusinessModel.map(m=>{
|
||||
if( m.Revenue_Amount!=0){
|
||||
_this.pageData.listCurBusinessModel.map(m => {
|
||||
if (m.Revenue_Amount != 0) {
|
||||
let n = {
|
||||
name: m.Bussiness_Name,
|
||||
value: m.Revenue_Amount
|
||||
@ -376,7 +400,7 @@
|
||||
})
|
||||
_this.ServiceRevenueData.push(list)
|
||||
}
|
||||
if(list.length>0){
|
||||
if (list.length > 0) {
|
||||
_this.showPie({
|
||||
id: 'sellCate',
|
||||
data: list,
|
||||
@ -396,9 +420,13 @@
|
||||
name: n[1],
|
||||
textColor: '#999',
|
||||
data: data[n[0]], //+Number(data2[n[0]])
|
||||
format: function(arg) {
|
||||
|
||||
formatter: function(arg) {
|
||||
if (typeof arg === 'number') {
|
||||
return [n[1], (arg * 100).toFixed(2) + '%']
|
||||
} else {
|
||||
return [arg.name, (arg._proportion_ * 100).toFixed(2) + '%']
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -410,16 +438,18 @@
|
||||
return _data1;
|
||||
},
|
||||
showPie(obj) {
|
||||
let data= {
|
||||
const ctx = uni.createCanvasContext(obj.id, this);
|
||||
let data = {
|
||||
series: []
|
||||
}
|
||||
data.series = data.series.concat(obj.data)
|
||||
rincanvas[obj.id] = new uCharts({
|
||||
$this: _self,
|
||||
canvasId: obj.id,
|
||||
colors: obj.colors,
|
||||
// $this: _self,
|
||||
// canvasId: obj.id,
|
||||
context: ctx,
|
||||
color: obj.colors,
|
||||
type: 'ring',
|
||||
padding: obj.id!='modelCount' ?[15, 15, 25, 0] :'',
|
||||
padding: obj.id != 'modelCount' ? [15, 15, 25, 0] : '',
|
||||
legend: {
|
||||
show: false,
|
||||
},
|
||||
@ -431,7 +461,7 @@
|
||||
},
|
||||
animation: false,
|
||||
subtitle: {
|
||||
name: '¥'+this.$util.fmoney(data.series[0].data,2),
|
||||
name: '¥' + this.$util.fmoney(data.series[0].data, 2),
|
||||
color: '#666666',
|
||||
fontSize: uni.upx2px(30),
|
||||
offsetX: uni.upx2px(16),
|
||||
@ -441,14 +471,14 @@
|
||||
pixelRatio: 1,
|
||||
series: data.series,
|
||||
animation: true,
|
||||
width: obj.id!='modelCount'?uni.upx2px(720) :uni.upx2px(666),
|
||||
height: obj.id!='modelCount'?uni.upx2px(586):uni.upx2px(480),
|
||||
width: obj.id != 'modelCount' ? uni.upx2px(720) : uni.upx2px(666),
|
||||
height: obj.id != 'modelCount' ? uni.upx2px(586) : uni.upx2px(480),
|
||||
dataLabel: true,
|
||||
disablePieStroke: true,
|
||||
dataPointShape: false,
|
||||
extra: {
|
||||
pie: {
|
||||
ringWidth: obj.id!='modelCount'? uni.upx2px(90) :40,
|
||||
ring: {
|
||||
ringWidth: obj.id != 'modelCount' ? uni.upx2px(90) : 40,
|
||||
labelWidth: uni.upx2px(40),
|
||||
activeOpacity: 1,
|
||||
activeRadius: 10
|
||||
@ -462,17 +492,21 @@
|
||||
});
|
||||
|
||||
},
|
||||
touchPie(e,id,opt) {
|
||||
touchPie(e, id, opt) {
|
||||
|
||||
let touches = null
|
||||
if(id=="modelCount" && e.currentTarget.offsetTop<100) {e.currentTarget.offsetTop = e.currentTarget.offsetTop + uni.upx2px(620)}
|
||||
if (id == "modelCount" && e.currentTarget.offsetTop < 100) {
|
||||
e.currentTarget.offsetTop = e.currentTarget.offsetTop + uni.upx2px(620)
|
||||
}
|
||||
let index = rincanvas[id].getCurrentDataIndex(e)
|
||||
if(index==-1) return
|
||||
let item =id!="modelCount" ? this.sellData[index]: this.operationModel[index]
|
||||
if(id!="modelCount"){
|
||||
this.sellData.map(n=>{n.textColor="#d1d1d1"})
|
||||
if (index == -1) return
|
||||
let item = id != "modelCount" ? this.sellData[index] : this.operationModel[index]
|
||||
if (id != "modelCount") {
|
||||
this.sellData.map(n => {
|
||||
n.textColor = "#d1d1d1"
|
||||
})
|
||||
item.textColor = "#999"
|
||||
this.nowShop = index+1
|
||||
this.nowShop = index + 1
|
||||
|
||||
}
|
||||
let showData = {
|
||||
@ -482,10 +516,10 @@
|
||||
color: '#666666',
|
||||
offsetY: uni.upx2px(-16),
|
||||
},
|
||||
series: id!="modelCount" ? this.sellData: this.operationModel,
|
||||
series: id != "modelCount" ? this.sellData : this.operationModel,
|
||||
animation: false,
|
||||
subtitle: {
|
||||
name: '¥'+this.$util.fmoney(item.data,2),
|
||||
name: '¥' + this.$util.fmoney(item.data, 2),
|
||||
color: '#666666',
|
||||
fontSize: uni.upx2px(30),
|
||||
offsetY: uni.upx2px(-16),
|
||||
@ -496,7 +530,7 @@
|
||||
rincanvas[id].showToolTip(e);
|
||||
|
||||
},
|
||||
showPop(){
|
||||
showPop() {
|
||||
|
||||
let list = this.unUploadList
|
||||
if (list.length || this.todayUpList.length) {
|
||||
@ -505,74 +539,93 @@
|
||||
}
|
||||
|
||||
},
|
||||
getData(theRequest){
|
||||
getData(theRequest) {
|
||||
let _this = this
|
||||
this.$request.$webGet('WeChat/GetServerpartBrand',{
|
||||
this.$request.$webGet('WeChat/GetServerpartBrand', {
|
||||
Serverpart_Id: theRequest.ServerpartIds,
|
||||
statictics_Time: theRequest.time,
|
||||
pushProvinceCode: theRequest.ProvinceCode
|
||||
}).then(res=>{
|
||||
}).then(res => {
|
||||
|
||||
if(res.Result_Code !=100 ) return
|
||||
if(theRequest.ProvinceCode ==330000) _this.showPage= true
|
||||
if (res.Result_Code != 100) return
|
||||
if (theRequest.ProvinceCode == 330000) _this.showPage = true
|
||||
|
||||
_this.pageData = res.Result_Data
|
||||
let list = JSON.parse(JSON.stringify(res.Result_Data.listBusinessModel))
|
||||
if(list.length>0){
|
||||
if (list.length > 0) {
|
||||
|
||||
let all = {
|
||||
Bussiness_Name:'全部',
|
||||
|
||||
listBrandModel:[]
|
||||
Bussiness_Name: '全部',
|
||||
listBrandModel: []
|
||||
}
|
||||
list.map(n=>{
|
||||
list.map(n => {
|
||||
all.listBrandModel.push(...n.listBrandModel)
|
||||
})
|
||||
all.listBrandModel.sort((a,b)=>{
|
||||
if(a.Revenue_Amount<b.Revenue_Amount){
|
||||
all.listBrandModel.sort((a, b) => {
|
||||
if (a.Revenue_Amount < b.Revenue_Amount) {
|
||||
return 1
|
||||
}else{
|
||||
} else {
|
||||
return -1
|
||||
}
|
||||
})
|
||||
_this.cateBrandList = [all,...list]
|
||||
_this.cateBrandList = [all, ...list]
|
||||
_this.operationFn()
|
||||
|
||||
}else {
|
||||
} else {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
// 获取头部卡片 展示信息
|
||||
getHeader (theRequest) {
|
||||
getHeader(theRequest) {
|
||||
let _this = this
|
||||
|
||||
this.$request.$get('getRevenuePush',{
|
||||
groupType:1010,
|
||||
this.$request.$get('getRevenuePush', {
|
||||
groupType: 1010,
|
||||
statistical_Date: theRequest.time,
|
||||
Direction_IDS: theRequest.ServerpartIds,
|
||||
pushProvinceCode: theRequest.ProvinceCode,
|
||||
Statistics_Date: theRequest.time
|
||||
|
||||
}).then(res=>{
|
||||
}).then(res => {
|
||||
uni.hideLoading()
|
||||
if ( res.ResultCode==100) {
|
||||
if (res.ResultCode == 100) {
|
||||
let _data = res.Data
|
||||
let {DIFFERENT_PRICE_LESS,DIFFERENT_PRICE_MORE,TICKETCOUNT,COMMODITY_COUNT,MOBILEPAYMENT,TOTALOFFAMOUNT,CASHPAY,BUDGETAMOUNT,UPLOADSTATE} = _data
|
||||
let {
|
||||
DIFFERENT_PRICE_LESS,
|
||||
DIFFERENT_PRICE_MORE,
|
||||
TICKETCOUNT,
|
||||
COMMODITY_COUNT,
|
||||
MOBILEPAYMENT,
|
||||
TOTALOFFAMOUNT,
|
||||
CASHPAY,
|
||||
BUDGETAMOUNT,
|
||||
UPLOADSTATE
|
||||
} = _data
|
||||
|
||||
let headmsg = {DIFFERENT_PRICE_LESS,DIFFERENT_PRICE_MORE,TICKETCOUNT,COMMODITY_COUNT,MOBILEPAYMENT,TOTALOFFAMOUNT,CASHPAY,BUDGETAMOUNT,}
|
||||
let headmsg = {
|
||||
DIFFERENT_PRICE_LESS,
|
||||
DIFFERENT_PRICE_MORE,
|
||||
TICKETCOUNT,
|
||||
COMMODITY_COUNT,
|
||||
MOBILEPAYMENT,
|
||||
TOTALOFFAMOUNT,
|
||||
CASHPAY,
|
||||
BUDGETAMOUNT,
|
||||
}
|
||||
|
||||
headmsg.DIFFERENT_PRICE_LESS = _this.$util.fmoney(DIFFERENT_PRICE_LESS)
|
||||
headmsg.DIFFERENT_PRICE_MORE = _this.$util.fmoney(DIFFERENT_PRICE_MORE)
|
||||
headmsg.TICKETAVE = TICKETCOUNT > 0 ? this.$util.fmoney(CASHPAY / TICKETCOUNT, 2) : 0
|
||||
headmsg.COMMODITYAVE = COMMODITY_COUNT > 0 ? this.$util.fmoney(CASHPAY / COMMODITY_COUNT, 2) : 0
|
||||
headmsg.COMMODITYAVE = COMMODITY_COUNT > 0 ? this.$util.fmoney(CASHPAY / COMMODITY_COUNT,
|
||||
2) : 0
|
||||
const uploadArray = UPLOADSTATE.split('/')
|
||||
this.upcouts = {
|
||||
SHOP_UPCOUNT: uploadArray[0],
|
||||
SHOP_TCOUNT: uploadArray[1]
|
||||
}
|
||||
if( uploadArray[0]>0){
|
||||
if (uploadArray[0] > 0) {
|
||||
_this.getUnUpLoadShops(theRequest)
|
||||
}
|
||||
_this.sMsg = headmsg
|
||||
@ -592,7 +645,7 @@
|
||||
data: _this.operationModel
|
||||
})
|
||||
_this.$forceUpdate()
|
||||
if (theRequest.ProvinceCode ==340000) _this.showPage= true
|
||||
if (theRequest.ProvinceCode == 340000) _this.showPage = true
|
||||
// let data = {
|
||||
// series: []
|
||||
// }
|
||||
@ -663,7 +716,7 @@
|
||||
},
|
||||
|
||||
},
|
||||
onPageScroll(e){
|
||||
onPageScroll(e) {
|
||||
this.showFixed(e)
|
||||
}
|
||||
|
||||
@ -677,9 +730,11 @@
|
||||
box-sizing: border-box;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.mt8 {
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
cover-view.page-title {
|
||||
color: #fff;
|
||||
}
|
||||
@ -695,9 +750,11 @@
|
||||
color: #000;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.page-title text:last-child {
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
.fixed-box {
|
||||
background-color: #686D8F;
|
||||
/* background: linear-gradient(to right, #686D8F, #A1ACC6); */
|
||||
@ -710,17 +767,20 @@
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* 业态 */
|
||||
.operation-cate-content {
|
||||
height: 585rpx;
|
||||
width: 690rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.operation-model-content {
|
||||
height: 480rpx;
|
||||
width: 690rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* 门店 */
|
||||
.shop-box {
|
||||
margin: 32rpx 20rpx;
|
||||
@ -729,6 +789,7 @@
|
||||
padding: 36rpx 20rpx;
|
||||
|
||||
}
|
||||
|
||||
.tab-shop {
|
||||
|
||||
color: #999999;
|
||||
@ -737,23 +798,27 @@
|
||||
align-items: center; */
|
||||
|
||||
}
|
||||
|
||||
.tab-shop .cate-name {
|
||||
padding-right: 16rpx;
|
||||
font-size: 26rpx;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.tab-shop .cate-name + .cate-name::before {
|
||||
|
||||
.tab-shop .cate-name+.cate-name::before {
|
||||
content: '|';
|
||||
color: #eeeeee;
|
||||
padding-right: 16rpx;
|
||||
}
|
||||
|
||||
.tab-shop .cate-name.active {
|
||||
color: #000;
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
|
||||
}
|
||||
|
||||
.tab-content {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@ -764,7 +829,8 @@
|
||||
height: inherit;
|
||||
width: inherit;
|
||||
}
|
||||
.pie-content{
|
||||
|
||||
.pie-content {
|
||||
margin: 0 30rpx;
|
||||
border-radius: 8rpx;
|
||||
box-shadow: 0 2rpx 10rpx 0 rgba(230, 230, 230, 0.49);
|
||||
@ -772,11 +838,13 @@
|
||||
position: relative;
|
||||
margin-bottom: 48rpx;
|
||||
}
|
||||
|
||||
.pie-title {
|
||||
padding: 0 20rpx;
|
||||
line-height: 80rpx;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
/* 门店卡片 */
|
||||
.shop-card {
|
||||
width: 210rpx;
|
||||
@ -788,37 +856,43 @@
|
||||
box-sizing: border-box;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
.shop-card:nth-child(6n-5){
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #ed7c77 , #d6524c);
|
||||
|
||||
.shop-card:nth-child(6n-5) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #ed7c77, #d6524c);
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.shop-card:nth-child(6n-4){
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #d1bea8 , #ba9d7b );
|
||||
.shop-card:nth-child(6n-4) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #d1bea8, #ba9d7b);
|
||||
margin-left: 18rpx;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.shop-card:nth-child(6n-3) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #929cc0 , #aab3d0 );
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #929cc0, #aab3d0);
|
||||
margin-left: 18rpx;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.shop-card:nth-child(6n-2) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #779cb1 , #a3bbc9 );
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #779cb1, #a3bbc9);
|
||||
background-size: contain;
|
||||
margin-left: 0rpx;
|
||||
}
|
||||
|
||||
.shop-card:nth-child(6n-1) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #c08d80 , #e8cbc7 );
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #c08d80, #e8cbc7);
|
||||
margin-left: 18rpx;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.shop-card:nth-child(6n) {
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%,linear-gradient(-35deg, #5cbe9c , #95d5bf );
|
||||
background: url(/static/images/revenue/shop-card.png) no-repeat center 50%, linear-gradient(-35deg, #5cbe9c, #95d5bf);
|
||||
margin-left: 18rpx;
|
||||
background-size: contain;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
|
||||
.shop-card .shop-name {
|
||||
font-size: 24rpx;
|
||||
text-shadow: 0 2rpx 2rpx #A9a5a0;
|
||||
@ -826,6 +900,7 @@
|
||||
max-height: 62rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.shop-card image {
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #fff;
|
||||
@ -833,6 +908,7 @@
|
||||
width: 62rpx;
|
||||
height: 62rpx;
|
||||
}
|
||||
|
||||
.shop-card .price-num {
|
||||
|
||||
font-size: 38rpx;
|
||||
@ -851,17 +927,20 @@
|
||||
background-position: top center;
|
||||
|
||||
}
|
||||
|
||||
.top-card {
|
||||
background: linear-gradient(to top, #989fb9, #686d8f );
|
||||
background: linear-gradient(to top, #989fb9, #686d8f);
|
||||
margin-top: 24upx;
|
||||
padding: 32upx 0 32rpx 0;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
|
||||
.budgetamount {
|
||||
margin-left: 14rpx;
|
||||
color: #fff;
|
||||
font-family: 'Bahnschrift Regular';
|
||||
}
|
||||
|
||||
.budget-title {
|
||||
|
||||
color: #DEE1F1;
|
||||
@ -870,11 +949,14 @@
|
||||
margin-right: 4rpx;
|
||||
|
||||
}
|
||||
.up-text-title ,.down-text-title{
|
||||
|
||||
.up-text-title,
|
||||
.down-text-title {
|
||||
font-size: 32rpx;
|
||||
font-family: 'Bahnschrift Regular';
|
||||
/* line-height: 1.2; */
|
||||
}
|
||||
|
||||
.up-text-title:after {
|
||||
content: "";
|
||||
margin-left: 6rpx;
|
||||
@ -885,6 +967,7 @@
|
||||
background-size: contain;
|
||||
|
||||
}
|
||||
|
||||
.down-text-title:after {
|
||||
content: "";
|
||||
margin-left: 6rpx;
|
||||
@ -901,11 +984,13 @@
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.title-clock {
|
||||
color: #999;
|
||||
font-size: 24upx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/*
|
||||
.more-btn,.weisc-ico {
|
||||
display: flex;
|
||||
@ -914,7 +999,7 @@
|
||||
color: #dd7575;
|
||||
font-size: 30upx;
|
||||
} */
|
||||
.more-btn:after{
|
||||
.more-btn:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
margin-left: 8upx;
|
||||
@ -933,24 +1018,30 @@
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.uni-icon-arrowdown {
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.box-center-box {
|
||||
|
||||
/* margin-bottom: 16rpx; */
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
|
||||
.center-title {
|
||||
color: #DEDEDE;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.center-num {
|
||||
font-size: 64rpx;
|
||||
color: #fff;
|
||||
font-family: Bahnschrift Regular;
|
||||
}
|
||||
.check-unit,.budgetamount {
|
||||
|
||||
.check-unit,
|
||||
.budgetamount {
|
||||
font-size: 24rpx;
|
||||
color: #DEE1F1;
|
||||
text-align: center;
|
||||
@ -962,6 +1053,7 @@
|
||||
font-size: 24rpx;
|
||||
/* flex: 1; */
|
||||
}
|
||||
|
||||
.tab-unit {
|
||||
background-color: #3A3E5B;
|
||||
border-radius: 24rpx 0 0 24rpx;
|
||||
@ -971,15 +1063,18 @@
|
||||
right: -12px;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
|
||||
.check-price-color {
|
||||
color: #fff;
|
||||
font-size: 34rpx;
|
||||
font-family: Bahnschrift Regular;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.check-price-color text {
|
||||
font-size: 22rpx;
|
||||
}
|
||||
|
||||
.tab-icon2 {
|
||||
font-size: 26rpx;
|
||||
color: #DEDEDE;
|
||||
@ -996,12 +1091,15 @@
|
||||
margin: 0 4rpx;
|
||||
color: #fff;
|
||||
}
|
||||
.priceGreen,.priceGreen.tab-unit-num {
|
||||
|
||||
.priceGreen,
|
||||
.priceGreen.tab-unit-num {
|
||||
color: #7CB9A5;
|
||||
/* font-size: 28rpx; */
|
||||
}
|
||||
|
||||
.priceRed,.tab-unit-num.priceRed {
|
||||
.priceRed,
|
||||
.tab-unit-num.priceRed {
|
||||
color: #DD7575;
|
||||
/* font-size: 28rpx; */
|
||||
}
|
||||
@ -1019,6 +1117,7 @@
|
||||
width: 750rpx;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.uni-popup {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
@ -1040,6 +1139,7 @@
|
||||
justify-content: flex-start;
|
||||
padding: 0 30upx 30upx 30upx;
|
||||
}
|
||||
|
||||
.header-top {
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
@ -1067,6 +1167,7 @@
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pop-row .pop-row-bottom {
|
||||
|
||||
position: absolute;
|
||||
@ -1089,7 +1190,8 @@
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
/* .customer-title {
|
||||
|
||||
/* .customer-title {
|
||||
color: #525280;
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
@ -1121,12 +1223,14 @@
|
||||
border-radius: 39rpx;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.tab {
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
height: 76rpx;
|
||||
line-height: 76rpx;
|
||||
}
|
||||
|
||||
.tab.active {
|
||||
background: #f2f4f9;
|
||||
color: #647BD1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user