diff --git a/src/page/index/components/BusinessStructure/BusinessStructure.vue b/src/page/index/components/BusinessStructure/BusinessStructure.vue
index ad31d18..715b80a 100644
--- a/src/page/index/components/BusinessStructure/BusinessStructure.vue
+++ b/src/page/index/components/BusinessStructure/BusinessStructure.vue
@@ -160,8 +160,8 @@ const handleGetData = async () => {
const req: any = {
ProvinceCode: '530000',
- // StatisticsDate: moment().subtract(1, 'd').format('YYYY-MM-DD'),
- StatisticsDate: '2025-04-30',
+ StatisticsDate: moment().subtract(1, 'd').format('YYYY-MM-DD'),
+ // StatisticsDate: '2025-04-30',
BusinessTradeIds: -1,
ServerpartId: props.currentService?.SERVERPART_ID || ""
}
diff --git a/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue b/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
index 0b07cd6..cecef75 100644
--- a/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
+++ b/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
@@ -61,7 +61,7 @@ onMounted(async () => {
yAxis: [
{
type: 'value',
- name: '车流量(辆)',
+ name: res.carResList && res.carResList.length > 0 ? '车流量(辆)' : "",
nameTextStyle: {
color: '#ffffff', // Y轴名称颜色
padding: [0, 0, 0, 20]
diff --git a/src/page/index/components/CustomerConsumptionPreferences/CustomerConsumptionPreferences.vue b/src/page/index/components/CustomerConsumptionPreferences/CustomerConsumptionPreferences.vue
index b2d5757..5371e36 100644
--- a/src/page/index/components/CustomerConsumptionPreferences/CustomerConsumptionPreferences.vue
+++ b/src/page/index/components/CustomerConsumptionPreferences/CustomerConsumptionPreferences.vue
@@ -11,7 +11,7 @@ import {
} from 'echarts/components';
import { CanvasRenderer } from 'echarts/renderers';
import { onBeforeUnmount, onMounted, watch } from 'vue';
-import { handleGetCustomerSaleRatio } from '../../service';
+import { handleGetBusinessTradeRevenue, handleGetCustomerSaleRatio } from '../../service';
import moment from 'moment';
// 注册组件
@@ -160,21 +160,31 @@ const handleGoMounted = async () => {
}
const handleGetData = async () => {
+ // const req: any = {
+ // statisticsType: 1,
+ // startMonth: moment().subtract(1, 'd').startOf('y').format('YYYYMM'),
+ // endMonth: moment().subtract(1, 'm').format('YYYYMM'),
+ // provinceCode: '530000',
+ // serverpartId: props.currentService?.SERVERPART_ID || "",
+ // sortStr: 'TOTAL_COUNT desc'
+ // }
+
const req: any = {
- statisticsType: 1,
- startMonth: moment().subtract(1, 'd').startOf('y').format('YYYYMM'),
- endMonth: moment().subtract(1, 'm').format('YYYYMM'),
- provinceCode: '530000',
- serverpartId: props.currentService?.SERVERPART_ID || "",
- sortStr: 'TOTAL_COUNT desc'
+ ProvinceCode: '530000',
+ StatisticsDate: moment().subtract(1, 'd').format('YYYY-MM-DD'),
+ // StatisticsDate: '2025-04-30',
+ // BusinessTradeIds: -1,
+ ServerpartId: props.currentService?.SERVERPART_ID || ""
}
+
let CustomerConsumptionPreferences = sessionStorage.getItem('CustomerConsumptionPreferences')
let data: any = []
if (CustomerConsumptionPreferences) {
data = JSON.parse(CustomerConsumptionPreferences)
} else {
- data = await handleGetCustomerSaleRatio(req)
+ // data = await handleGetCustomerSaleRatio(req)
+ data = await handleGetBusinessTradeRevenue(req)
sessionStorage.setItem("CustomerConsumptionPreferences", JSON.stringify(data))
}
@@ -187,14 +197,14 @@ const handleGetData = async () => {
let aiObj: any = {}
-
- if (data.CustomerSaleList && data.CustomerSaleList.length > 0) {
- let list = data.CustomerSaleList.slice(0, 15)
+// CustomerSaleList
+ if (data.BusinessTradeRank && data.BusinessTradeRank.length > 0) {
+ let list = data.BusinessTradeRank.slice(0, 10)
list.forEach((item: any) => {
- category.push(item.BusinessTradeName)
- seriesData.push(item.TotalRatio)
- realData.push(item.TotalRatio)
- aiObj[item.BusinessTradeName] = `占比${item.TotalRatio}%`
+ category.push(item.name)
+ seriesData.push(item.value)
+ realData.push(item.value)
+ aiObj[item.name] = `占比${item.value}%`
})
}
diff --git a/src/page/index/components/MemberMall/index.less b/src/page/index/components/MemberMall/index.less
new file mode 100644
index 0000000..016872a
--- /dev/null
+++ b/src/page/index/components/MemberMall/index.less
@@ -0,0 +1,256 @@
+.MemberMallBox {
+ width: 100%;
+
+ .MemberSumBox {
+ width: 100%;
+ height: 38px;
+ background-image: url('../../../../assets/image/memberSumBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .MemberSumBoxLeft {
+ width: 30%;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 600;
+ font-size: 14px;
+ color: #FFFFFF;
+ line-height: 10px;
+ text-shadow: 0px 0px 5px #63D7FB;
+ text-align: left;
+ font-style: normal;
+ padding-left: 18px;
+ box-sizing: border-box;
+ padding-top: 5px;
+ }
+
+ .memberSumTotal {
+ width: calc(40% - 16px);
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: bold;
+ font-size: 25px;
+ color: #FFFFFF;
+ line-height: 30px;
+ text-align: center;
+ font-style: normal;
+ background-image: url('../../../../assets/image/memberTotalBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ letter-spacing: 5px;
+ padding-top: 5px;
+ }
+
+ .MemberSumBoxRight {
+ width: 30%;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 600;
+ font-size: 13px;
+ color: #6FF3FB;
+ line-height: 17px;
+ text-align: right;
+ font-style: normal;
+ padding-right: 20px;
+ box-sizing: border-box;
+ padding-top: 5px;
+ }
+ }
+
+
+ .recentData {
+ width: 100%;
+ height: 165px;
+
+ .recentDataTop {
+ width: 100%;
+ height: 68px;
+ position: relative;
+
+ .recentDataTopItem {
+ position: absolute;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ .recentDataTopValue {
+ width: 44px;
+ height: 44px;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 21px;
+ color: #FFFFFF;
+ line-height: 44px;
+ text-align: center;
+ font-style: normal;
+ background-image: url('../../../../assets/image/recentDataTopValueBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .recentDataTopLabel {
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 14px;
+ color: #D3E7ED;
+ line-height: 18px;
+ text-align: left;
+ font-style: normal;
+ margin-top: 5px;
+ }
+ }
+ }
+
+ .recentDataBottom {
+ width: 100%;
+ height: 89px;
+ background-image: url('../../../../assets/image/nearDataBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+ }
+
+
+ .MemberConsumption {
+ width: 100%;
+ margin-top: 20px;
+
+ .MemberConsumptionItem {
+ display: flex;
+ align-items: center;
+
+ .MemberConsumptionLabel {
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 14px;
+ color: #FFFFFF;
+ line-height: 20px;
+ text-align: left;
+ font-style: normal;
+ display: inline-block;
+ width: 95px;
+ text-align: left;
+ }
+
+ .MemberConsumptionProgress {
+ width: calc(100% - 190px);
+ height: 22px;
+ background-image: url('../../../../assets/image/label1Data.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .MemberConsumptionProgress2 {
+ width: calc(100% - 190px);
+ height: 22px;
+ background-image: url('../../../../assets/image/label2Data.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .MemberConsumptionValue {
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 21px;
+ color: #FFFFFF;
+ line-height: 30px;
+ font-style: normal;
+ display: inline-block;
+ width: 95px;
+ text-align: left;
+ }
+ }
+ }
+
+ .MemberContentBox {
+ width: 100%;
+ margin-top: 30px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .MemberContentBoxItem {
+ width: calc((100% - 28px) / 2);
+ box-sizing: border-box;
+ padding: 15px 21px;
+ background-image: url('../../../../assets/image/smallModalBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+
+ .MemberContentBoxItemBox {
+ display: flex;
+ align-items: center;
+
+ .MemberContentBoxItemLabel {
+ width: 50%;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 14px;
+ color: #FFFFFF;
+ line-height: 20px;
+ text-align: left;
+ font-style: normal;
+ box-sizing: border-box;
+ padding-right: 5px;
+ }
+
+ .MemberContentBoxItemValue {
+ width: 50%;
+ display: inline-block;
+ box-sizing: border-box;
+ padding-left: 10px;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: bold;
+ font-size: 20px;
+ color: #6FEFFA;
+ line-height: 21px;
+ text-align: left;
+ font-style: normal;
+ }
+ }
+ }
+ }
+
+ .MemberOverview {
+ width: 100%;
+ margin-top: 20px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .MemberOverviewItem {
+ width: calc((100% - 82px) / 3);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+ .MemberOverviewItemTop {
+ width: 80px;
+ height: 80px;
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 500;
+ font-size: 18px;
+ color: #FFFFFF;
+ line-height: 80px;
+ text-align: center;
+ font-style: normal;
+ background-image: url('../../../../assets/image/MemberOverviewItemTop.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .MemberOverviewItemBottom {
+ font-family: Bahnschrift, Bahnschrift;
+ font-weight: 400;
+ font-size: 16px;
+ color: #FFFFFF;
+ line-height: 21px;
+ text-align: left;
+ font-style: normal;
+ margin-top: 17px;
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/page/index/components/MemberMall/index.vue b/src/page/index/components/MemberMall/index.vue
new file mode 100644
index 0000000..f10e8b2
--- /dev/null
+++ b/src/page/index/components/MemberMall/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
会员总数
+
12733
+
本月新增 56 个
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/page/index/components/PreferenceType/PreferenceType.vue b/src/page/index/components/PreferenceType/PreferenceType.vue
index 4f3c204..0468de9 100644
--- a/src/page/index/components/PreferenceType/PreferenceType.vue
+++ b/src/page/index/components/PreferenceType/PreferenceType.vue
@@ -12,7 +12,7 @@ import {
} from 'echarts/components';
import { CanvasRenderer } from 'echarts/renderers';
import moment from 'moment';
-import { handleGetBusinessTradeRevenue, handleGetSPBayonetList } from '../../service';
+import { handleGetBusinessTradeRevenue, handleGetCustomerSaleRatio, handleGetSPBayonetList } from '../../service';
// 注册组件
echarts.use([
@@ -37,21 +37,25 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
const option = {
- // tooltip: { // 新增 tooltip 配置
- // trigger: 'item',
- // formatter: function (params: any) {
- // console.log('params', params);
-
- // return `
${params.name} ${params.value}
- // `;
- // }
- // },
+ tooltip: { // 新增 tooltip 配置
+ trigger: 'item',
+ formatter: function (params: any) {
+ console.log('params', params);
+ let str: string = `
${params?.seriesName}:
`
+ for (let i = 0; i < res.category.length; i++) {
+ str += `
${res.category[i].name}:${params.value[i]}%
`
+ // list.push({ label: res.category[i], value: params.value + '%' })
+ }
+ return `
${str}
+ `;
+ }
+ },
radar: {
indicator: res.category,
shape: 'circle',
splitNumber: 5,
- radius: '60%', // 调整雷达图大小,留出空间给文字
- center: ['50%', '60%'], // 2. 确保居中
+ radius: '40%', // 调整雷达图大小,留出空间给文字
+ center: ['50%', '45%'], // 2. 确保居中
axisName: {
color: 'rgb(255, 255, 255)',
padding: 10
@@ -79,6 +83,7 @@ onMounted(async () => {
},
series: [
{
+ name: "男性",
type: 'radar',
lineStyle: {
width: 1,
@@ -87,13 +92,37 @@ onMounted(async () => {
data: res.seriesData,
symbol: 'none',
itemStyle: {
- color: '#0289ED'
+ color: '#0094FF'
+ },
+ areaStyle: {
+ opacity: 0.1
+ }
+ },
+ {
+ name: "女性",
+ type: 'radar',
+ lineStyle: {
+ width: 1,
+ opacity: 0.5
+ },
+ data: res.seriesDataMan,
+ symbol: 'none',
+ itemStyle: {
+ color: '#FF5E5E'
},
areaStyle: {
opacity: 0.1
}
}
- ]
+ ],
+ legend: {
+ data: ['男性', '女性'],
+ textStyle: {
+ color: '#fff'
+ },
+ bottom: -5,
+ left: 'center',
+ },
};
myChart.setOption(option);
@@ -105,9 +134,16 @@ onMounted(async () => {
const handleGetSectionFlowCount = async () => {
const req: any = {
- ProvinceCode: '530000',
- StatisticsDate: moment(moment().subtract(1, 'M')).format('YYYY-MM-DD'),
- BusinessTradeIds: -1
+ // ProvinceCode: '530000',
+ // StatisticsDate: moment(moment().subtract(1, 'M')).format('YYYY-MM-DD'),
+ // BusinessTradeIds: -1
+ statisticsType: 1,
+ startMonth: moment().startOf('y').format('YYYYMM'),
+ endMonth: moment().format('YYYYMM'),
+ provinceCode: '530000',
+ showTradeLevel: 1,
+ fromRedis: true
+
}
let PreferenceType = sessionStorage.getItem('PreferenceType')
@@ -115,33 +151,70 @@ const handleGetSectionFlowCount = async () => {
if (PreferenceType) {
data = JSON.parse(PreferenceType)
} else {
- data = await handleGetBusinessTradeRevenue(req)
+ data = await handleGetCustomerSaleRatio(req)
sessionStorage.setItem("PreferenceType", JSON.stringify(data))
}
// const data = await handleGetBusinessTradeRevenue(req)
let category: any = []
+ // 男
let seriesData: any = []
let realData: any = []
+ // 女
+ let seriesDataMan: any = []
+ let realDataMan: any = []
let aiObj: any = {}
- let list: any = data.BusinessTradeRank
+ let max: number = 0
+ // let list: any = data.BusinessTradeRank
+ let list: any = data.CustomerSaleList
if (list && list.length > 0) {
list.forEach((item: any) => {
- category.push({ name: `${item.name}:${item.value}%`, max: 100 })
- seriesData.push(Number(item.value))
- realData.push(item.data)
- aiObj[item.name] = item.value + '%'
+
+ if (item.FemaleRatio > max) {
+ max = item.FemaleRatio
+ }
+ if (item.MaleRatio > max) {
+ max = item.MaleRatio
+ }
+
+ category.push({ name: `${item.BusinessTradeName}`, max: 100 })
+ seriesData.push(Number(item.FemaleRatio))
+ realData.push(item.FemaleRatio)
+
+ seriesDataMan.push(Number(item.MaleRatio))
+ realDataMan.push(item.MaleRatio)
+
+
+ aiObj[item.BusinessTradeName + '男性'] = item.FemaleRatio + '%'
+ aiObj[item.BusinessTradeName + '女性'] = item.MaleRatio + '%'
+
+ // category.push({ name: `${item.name}:${item.value}%`, max: 100 })
+ // seriesData.push(Number(item.value))
+ // realData.push(item.data)
+ // aiObj[item.name] = item.value + '%'
+ })
+ }
+
+ if (category && category.length > 0) {
+ category.forEach((item: any) => {
+ item.max = max
})
}
let res: any = {
category: category,// x轴的内容
seriesData: [seriesData],// y轴的数据
- realData: realData// 真实数据
+ realData: realData,// 真实数据
+ seriesDataMan: [seriesDataMan],
+ realDataMan: realDataMan,
}
+
+ console.log('resresresres', res);
+
+
let PreferenceTypeAI = sessionStorage.getItem('PreferenceTypeAI')
if (PreferenceTypeAI) { } else {
sessionStorage.setItem("PreferenceTypeAI", JSON.stringify(aiObj))
diff --git a/src/page/index/components/TradingAlert/TradingAlert.less b/src/page/index/components/TradingAlert/TradingAlert.less
index 4677064..dad4e81 100644
--- a/src/page/index/components/TradingAlert/TradingAlert.less
+++ b/src/page/index/components/TradingAlert/TradingAlert.less
@@ -4,109 +4,198 @@
// padding: 0 20px;
// margin-top: 20px;
- .TradingAlertBox {
+ .TradingAlertNewBox {
width: 100%;
+ margin-top: 21px;
+ box-sizing: border-box;
+ padding: 20px;
display: flex;
align-items: center;
justify-content: space-between;
+ background-image: url('../../../../assets/image/tradingBg.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
- .TradingAlertItem {
- width: calc((100% - 10px)/2);
- box-sizing: border-box;
- padding: 10px 15px;
+ .TradingAlertNewBoxItem {
+ width: calc(100% / 3);
display: flex;
align-items: center;
- background: linear-gradient(0, rgba(0, 148, 255, 0.1) 0%, rgba(0, 148, 255, 0) 100%);
+ justify-content: flex-start;
+ .TradingAlertNewBoxItemTemplate {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
- .TradingAlertItemLeft {
- width: 46px;
- height: 46px;
- margin-right: 10px;
-
- .TradingAlertItemLeftIcon {
- width: 46px;
- height: 46px;
- }
- }
-
- .TradingAlertItemRight {
- flex: 1;
-
- .TradingAlertItemRightLabel {
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 14px;
- color: #FFFFFF;
- text-align: left;
+ .TradingAlertNewBoxItemValue {
+ font-family: DINAlternate, DINAlternate;
+ font-weight: bold;
+ font-size: 25px;
+ color: #FEC003;
+ line-height: 25px;
+ letter-spacing: 1px;
+ text-align: right;
font-style: normal;
}
- .TradingAlertItemRightValueBox {
- display: flex;
- align-items: flex-end;
- justify-content: flex-end;
-
- .TradingAlertItemRightValue {
- font-family: Impact, Impact;
- font-weight: 400;
- font-size: 25px;
- color: #FFFFFF;
- letter-spacing: 2px;
- text-align: right;
- font-style: normal;
-
- }
-
- .OverviewOfServiceAreaBusyContentItemRightUnit {
- font-family: Inter, Inter;
- font-weight: 400;
- font-size: 12px;
- color: #808A96;
- text-align: right;
- font-style: normal;
- text-transform: none;
- margin-left: 10px;
- }
+ .TradingAlertNewBoxItemLabel {
+ font-family: SourceHanSansSC, SourceHanSansSC;
+ font-weight: 400;
+ font-size: 14px;
+ color: #D9E7FF;
+ line-height: 14px;
+ letter-spacing: 1px;
+ text-align: right;
+ font-style: normal;
+ margin-top: 9px;
}
-
}
+
+
}
}
+ // .TradingAlertBox {
+ // width: 100%;
+ // display: flex;
+ // align-items: center;
+ // justify-content: space-between;
+
+ // .TradingAlertItem {
+ // width: calc((100% - 10px)/2);
+ // box-sizing: border-box;
+ // padding: 10px 15px;
+ // display: flex;
+ // align-items: center;
+ // background: linear-gradient(0, rgba(0, 148, 255, 0.1) 0%, rgba(0, 148, 255, 0) 100%);
+
+
+ // .TradingAlertItemLeft {
+ // width: 46px;
+ // height: 46px;
+ // margin-right: 10px;
+
+ // .TradingAlertItemLeftIcon {
+ // width: 46px;
+ // height: 46px;
+ // }
+ // }
+
+ // .TradingAlertItemRight {
+ // flex: 1;
+
+ // .TradingAlertItemRightLabel {
+ // font-family: Microsoft YaHei, Microsoft YaHei;
+ // font-weight: 400;
+ // font-size: 14px;
+ // color: #FFFFFF;
+ // text-align: left;
+ // font-style: normal;
+ // }
+
+ // .TradingAlertItemRightValueBox {
+ // display: flex;
+ // align-items: flex-end;
+ // justify-content: flex-end;
+
+ // .TradingAlertItemRightValue {
+ // font-family: Impact, Impact;
+ // font-weight: 400;
+ // font-size: 25px;
+ // color: #FFFFFF;
+ // letter-spacing: 2px;
+ // text-align: right;
+ // font-style: normal;
+
+ // }
+
+ // .OverviewOfServiceAreaBusyContentItemRightUnit {
+ // font-family: Inter, Inter;
+ // font-weight: 400;
+ // font-size: 12px;
+ // color: #808A96;
+ // text-align: right;
+ // font-style: normal;
+ // text-transform: none;
+ // margin-left: 10px;
+ // }
+ // }
+
+ // }
+ // }
+ // }
+
.TradingAlertListBox {
width: 100%;
height: 120px;
margin-top: 12px;
+ .TradingAlertItemHeaderBox {
+ width: 100%;
+ background: linear-gradient(90deg, rgba(69, 97, 130, 0.33) 0%, rgba(69, 97, 130, 0.33) 100%);
+ box-sizing: border-box;
+ padding: 7px 0 9px 32px;
+ display: flex;
+ align-items: center;
+
+ .leftItemLabel,
+ .leftItemLabel2,
+ .leftItemValue {
+ width: calc((100% - 32px) / 3);
+ font-family: OPPOSans, OPPOSans;
+ font-weight: normal;
+ font-size: 15px;
+ color: #94DCEF;
+ line-height: 17px;
+ text-align: left;
+ font-style: normal;
+ }
+ }
+
.TradingAlertItem {
width: 100%;
box-sizing: border-box;
- padding: 4px 20px;
+ padding: 7px 0 9px 32px;
display: flex;
align-items: center;
- justify-content: space-between;
+ background-color: rgba(168, 172, 171, 0.08);
+ margin: 2px 0;
- .leftItemLabel {
- width: 60%;
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 12px;
- color: #FFFFFF;
+ .leftItemLabel,
+ .leftItemLabel2,
+ .leftItemValue {
+ width: calc((100% - 32px) / 3);
+ font-family: OPPOSans, OPPOSans;
+ font-weight: normal;
+ font-size: 13px;
+ color: #E4F3FF;
+ line-height: 17px;
text-align: left;
font-style: normal;
}
- .rightItemLabel {
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 12px;
- color: #FF0000;
- text-align: right;
- font-style: normal;
- text-transform: none;
- }
+
+ // .leftItemLabel {
+ // width: 60%;
+ // font-family: Microsoft YaHei, Microsoft YaHei;
+ // font-weight: 400;
+ // font-size: 12px;
+ // color: #FFFFFF;
+ // text-align: left;
+ // font-style: normal;
+ // }
+
+ // .rightItemLabel {
+ // font-family: Microsoft YaHei, Microsoft YaHei;
+ // font-weight: 400;
+ // font-size: 12px;
+ // color: #FF0000;
+ // text-align: right;
+ // font-style: normal;
+ // text-transform: none;
+ // }
}
}
diff --git a/src/page/index/components/TradingAlert/TradingAlert.vue b/src/page/index/components/TradingAlert/TradingAlert.vue
index ea62ba5..fe209a1 100644
--- a/src/page/index/components/TradingAlert/TradingAlert.vue
+++ b/src/page/index/components/TradingAlert/TradingAlert.vue
@@ -44,12 +44,15 @@ const handleGetData = async () => {
console.log('skodpijasidjaslfddfas', data);
- TradingOtherData.value = data.OtherData
+ TradingOtherData.value = {
+ ...data.OtherData,
+ sum: Number(data.OtherData.value) + Number(data.OtherData.data)
+ }
// ai需要的数据
let AIData: any = []
if (data.List && data.List.length > 0) {
- let list = data.List.slice(0, 10)
+ let list = data.List.slice(0, 6)
TradingAlertList.length = 0;
list && list.forEach((item: any) => {
TradingAlertList.push(item)
@@ -77,10 +80,36 @@ const handleGetData = async () => {
-
-
-
+
+
+
+
{{ (TradingOtherData?.sum || 0) }}
+
交易预警总数
+
+
+
+
+
+
{{ (TradingOtherData?.value || 0)
+ }}
+
必查项
+
+
+
+
+
+
{{ (TradingOtherData?.data || 0) }}
+
+
抽查项
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
{{ item.serverpartName }}
- {{ item.serverpartShopName }}
+
+
+ {{ item.serverpartShopName }}
-
+
{{ item.exceptionTypeName }}
diff --git a/src/page/index/components/TrendOfTrafficFlow/TrendOfTrafficFlow.vue b/src/page/index/components/TrendOfTrafficFlow/TrendOfTrafficFlow.vue
index 7370e22..fb50151 100644
--- a/src/page/index/components/TrendOfTrafficFlow/TrendOfTrafficFlow.vue
+++ b/src/page/index/components/TrendOfTrafficFlow/TrendOfTrafficFlow.vue
@@ -104,7 +104,11 @@ const handleGoMounted = async () => {
barWidth: 5,
smooth: true,
itemStyle: {
- borderRadius: [3, 3, 0, 0]
+ borderRadius: [3, 3, 0, 0],
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ { offset: 0, color: '#46B8F3' }, // 顶部颜色
+ { offset: 1, color: '#1A4AF6' } // 底部颜色
+ ])
},
label: {
show: true,
@@ -125,7 +129,9 @@ const handleGoMounted = async () => {
barWidth: 5,
smooth: true,
itemStyle: {
- borderRadius: [3, 3, 0, 0]
+ borderRadius: [3, 3, 0, 0],
+ color: "#3CD495"
+ // 蓝湖这个没渐变 不知道为啥
}
},
],
diff --git a/src/page/index/components/VehicleModelStay/VehicleModelStay.vue b/src/page/index/components/VehicleModelStay/VehicleModelStay.vue
index b879b61..28b799a 100644
--- a/src/page/index/components/VehicleModelStay/VehicleModelStay.vue
+++ b/src/page/index/components/VehicleModelStay/VehicleModelStay.vue
@@ -117,7 +117,10 @@ const handleGoMounted = async () => {
barWidth: 5,
itemStyle: {
borderRadius: [3, 3, 0, 0],
- color: '#008CFF' // 直接指定颜色
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ { offset: 0, color: '#46B8F3' }, // 顶部颜色
+ { offset: 1, color: '#1A4AF6' } // 底部颜色
+ ])
},
label: {
show: true,
@@ -137,7 +140,7 @@ const handleGoMounted = async () => {
barWidth: 5,
itemStyle: {
borderRadius: [3, 3, 0, 0],
- color: '#69BCFF' // 直接指定颜色
+ color: '#3CD495' // 直接指定颜色
}
}
],
diff --git a/src/page/index/components/VehiclesEntering/VehiclesEntering.vue b/src/page/index/components/VehiclesEntering/VehiclesEntering.vue
index cd22d72..b783524 100644
--- a/src/page/index/components/VehiclesEntering/VehiclesEntering.vue
+++ b/src/page/index/components/VehiclesEntering/VehiclesEntering.vue
@@ -150,7 +150,11 @@ const handleGoMounted = async () => {
data: res.seriesDataCar,
yAxisIndex: 0,
itemStyle: {
- borderRadius: [3, 3, 0, 0]
+ borderRadius: [3, 3, 0, 0],
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ { offset: 0, color: '#46B8F3' }, // 顶部颜色
+ { offset: 1, color: '#1A4AF6' } // 底部颜色
+ ])
},
label: {
show: true,
@@ -171,7 +175,8 @@ const handleGoMounted = async () => {
yAxisIndex: 0,
barWidth: 5,
itemStyle: {
- borderRadius: [3, 3, 0, 0]
+ borderRadius: [3, 3, 0, 0],
+ color: "#3CD495"
}
},
// {
@@ -280,7 +285,11 @@ const handleGoMounted = async () => {
symbol: 'circle',
symbolSize: 6,
lineStyle: {
- width: 2
+ width: 2,
+ color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+ { offset: 0, color: '#46B8F3' }, // 左端颜色
+ { offset: 1, color: '#1A4AF6' } // 右端颜色
+ ])
},
label: {
show: true,
@@ -300,11 +309,14 @@ const handleGoMounted = async () => {
symbol: 'circle',
symbolSize: 6,
lineStyle: {
- width: 2
+ width: 2,
+ color: "#FFB006"
+ },
+ itemStyle: {
+ color: '#FFB006' // 确保标记点与线条同色
}
}
],
- color: ['#FF5E5E', '#FF9500']
}
myChart.setOption(option);
@@ -358,6 +370,8 @@ const handleGetSectionFlowCount = async () => {
yesData = JSON.parse(VehiclesEntering2)
} else {
yesData = await handleGetMonthAnalysis(yesReq)
+ console.log('yesDatayesDatayesDatayesDatayesDatayesDatayesData', yesData);
+
sessionStorage.setItem("VehiclesEntering2", JSON.stringify(yesData))
}
@@ -452,18 +466,20 @@ const handleGetSectionFlowCount = async () => {
let VehiclesEnteringAI = sessionStorage.getItem('VehiclesEnteringAI')
if (VehiclesEnteringAI) { } else {
- let res: any = {}
- res[`${res.currentYear}年入区车流`] = aiObj
- res[`${res.yesYear}年入区车流`] = yesAiObj
- sessionStorage.setItem("VehiclesEntering2", JSON.stringify(res))
+ let result: any = {}
+ result[`${res.currentYear}年入区车流`] = aiObj
+ result[`${res.yesYear}年入区车流`] = yesAiObj
+
+
+ sessionStorage.setItem("VehiclesEnteringAI", JSON.stringify(result))
}
let VehiclesEnteringAI2 = sessionStorage.getItem('VehiclesEnteringAI2')
if (VehiclesEnteringAI2) { } else {
- let res: any = {}
- res[`${res.currentYear}年对客营收`] = aiRevenueObj
- res[`${res.yesYear}年对客营收`] = yesAiRevenueObj
- sessionStorage.setItem("VehiclesEntering2", JSON.stringify(res))
+ let result: any = {}
+ result[`${res.currentYear}年对客营收`] = aiRevenueObj
+ result[`${res.yesYear}年对客营收`] = yesAiRevenueObj
+ sessionStorage.setItem("VehiclesEnteringAI2", JSON.stringify(result))
}
return res
diff --git a/src/page/index/components/newBigTitleBox/newBigTitleBox.less b/src/page/index/components/newBigTitleBox/newBigTitleBox.less
index e15b8e2..53c1077 100644
--- a/src/page/index/components/newBigTitleBox/newBigTitleBox.less
+++ b/src/page/index/components/newBigTitleBox/newBigTitleBox.less
@@ -4,18 +4,30 @@
background-image: url(../../../../assets/image/newBigTitleBg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
- font-family: YouSheBiaoTiHei;
- font-weight: 400;
- font-size: 20px;
- line-height: 20px;
- color: #4CA9EF;
- text-align: left;
- font-style: normal;
box-sizing: border-box;
padding-left: 38px;
display: flex;
align-items: center;
justify-content: space-between;
+
+
+ .titleBox {
+ font-family: YouSheBiaoTiHei;
+ font-weight: 400;
+ font-size: 20px;
+ line-height: 20px;
+ color: #4CA9EF;
+ text-align: left;
+ font-style: normal;
+
+ background: linear-gradient(0deg, #9AFFFB 0%, #FFFFFF 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ color: transparent;
+ }
+
+
}
.newBigTitleBoxLong {
diff --git a/src/page/index/components/newBigTitleBox/newBigTitleBox.vue b/src/page/index/components/newBigTitleBox/newBigTitleBox.vue
index d36d979..d2c1392 100644
--- a/src/page/index/components/newBigTitleBox/newBigTitleBox.vue
+++ b/src/page/index/components/newBigTitleBox/newBigTitleBox.vue
@@ -15,7 +15,7 @@ const props = defineProps<{
- {{ props?.title || "" }}
+ {{ props?.title || "" }}
\ No newline at end of file
diff --git a/src/page/index/index.vue b/src/page/index/index.vue
index 8dcd648..4f00746 100644
--- a/src/page/index/index.vue
+++ b/src/page/index/index.vue
@@ -60,6 +60,8 @@ import AssessmentScoringRanking from './components/AssessmentScoringRanking/Asse
import SmallTitle from './components/smallTitle/smallTitle.vue';
import FestivalRevenueSumInfo from './components/FestivalRevenueSumInfo/FestivalRevenueSumInfo.vue'
import AIIcon from '../../assets/image/AIIcon.png'
+import MemberMall from './components/MemberMall/index.vue'
+import AnalysisOfMember from './components/AnalysisOfMember/AnalysisOfMember.vue'
// 页面样式
let pageType = ref
("center")
@@ -73,8 +75,15 @@ let FestivalOptions = [
{ label: '暑期', value: 6 },
{ label: '中秋', value: 7 },
{ label: '国庆', value: 8 },
-
]
+
+const tabList: any = [
+ { label: "营收金额", value: 1 },
+ { label: "客单量", value: 2 },
+ { label: "客单均价", value: 3 },
+]
+let selectTab = ref(1)
+
const iframeLoaded = ref(false);
// 选中的节日
let FestivalValue = ref(5)
@@ -141,6 +150,11 @@ const sendCacheToIframe = () => {
}
};
+// 切换tab的内容
+const handleChangeTab = async (value: number) => {
+ selectTab.value = value
+}
+
// 提问问题
const handleSubmit = () => {
@@ -315,27 +329,26 @@ const handleStopPrint = () => {
-
+
-
+
-
+
@@ -346,7 +359,16 @@ const handleStopPrint = () => {
-
+
+
+
+
+
@@ -372,7 +394,7 @@ const handleStopPrint = () => {
-
+
@@ -401,7 +423,7 @@ const handleStopPrint = () => {
-
+
@@ -413,7 +435,7 @@ const handleStopPrint = () => {
-
+
-
+
@@ -534,14 +556,17 @@ const handleStopPrint = () => {
-
+
+
+
+
-
+
-
+
@@ -594,10 +619,12 @@ const handleStopPrint = () => {
-
+
+
-
+
+
diff --git a/src/page/index/style.less b/src/page/index/style.less
index f78cd3c..221479a 100644
--- a/src/page/index/style.less
+++ b/src/page/index/style.less
@@ -459,13 +459,13 @@
padding: 0 26px;
.left3stBottomItemLeft {
- width: calc(100% / 3 * 2);
+ width: calc((100% - ((100% - 57px) / 3 + 34px)));
display: inline-flex;
justify-content: space-between;
flex-wrap: wrap;
.left3stBottomItem {
- width: 50%;
+ width: calc(50% - 10px);
// width: calc((100% - 30px) / 2);
// width: calc((100% - 56px) / 2);
height: 214px;
@@ -473,8 +473,50 @@
}
.left3stBottomItemRight {
- width: calc(100% / 3);
+ width: calc((100% - 57px) / 3);
display: inline-flex;
+ margin-left: 34px;
+ }
+ }
+
+ .BusinessCaseTabBox {
+ // width: 100%;
+ display: inline-flex;
+ align-items: center;
+ // background: linear-gradient(90deg, rgba(0, 148, 255, 0.1) 0%, rgba(0, 148, 255, 0) 100%);
+ padding: 3px 20px;
+ box-sizing: border-box;
+
+ .BusinessCaseItem {
+ font-family: Microsoft YaHei, Microsoft YaHei;
+ font-weight: 400;
+ font-size: 15px;
+ color: #87919C;
+ text-align: left;
+ font-style: normal;
+ margin: 0 10px;
+ cursor: pointer;
+ }
+
+ .selectBusinessCaseItem {
+ font-family: Microsoft YaHei, Microsoft YaHei;
+ font-weight: 400;
+ font-size: 15px;
+ color: #FFFFFF;
+ text-align: left;
+ font-style: normal;
+ position: relative;
+ }
+
+
+ .selectBusinessCaseItem::after {
+ content: "";
+ width: 100%;
+ height: 1px;
+ background: linear-gradient(180deg, #00F6FF 0%, #008CFF 100%);
+ position: absolute;
+ left: 0;
+ bottom: -4px;
}
}
}
diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo
index 6e46996..ce7ffff 100644
--- a/tsconfig.tsbuildinfo
+++ b/tsconfig.tsbuildinfo
@@ -1 +1 @@
-{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/options/serveice.ts","./src/page/index/service.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/request/requestlocal.ts","./src/request/requestpos.ts","./src/request/requesttest.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/page/index/index.vue","./src/page/index/components/accountsreceivablewarning/accountsreceivablewarning.vue","./src/page/index/components/announcementtopic/announcementtopic.vue","./src/page/index/components/annualaccountsreceivable/annualaccountsreceivable.vue","./src/page/index/components/assessmentscoring/assessmentscoring.vue","./src/page/index/components/assessmentscoringranking/assessmentscoringranking.vue","./src/page/index/components/basicmessagebox/basicmessagebox.vue","./src/page/index/components/brandconsumptionlevel/brandconsumptionlevel.vue","./src/page/index/components/branddetail/branddetail.vue","./src/page/index/components/brandlisttbox/brandlisttbox.vue","./src/page/index/components/businesscase/businesscase.vue","./src/page/index/components/businessstructure/businessstructure.vue","./src/page/index/components/busytradingranking/busytradingranking.vue","./src/page/index/components/centertitle/centertitle.vue","./src/page/index/components/consumptionconversion/consumptionconversion.vue","./src/page/index/components/consumptionlevel/consumptionlevel.vue","./src/page/index/components/consumptionperiod/consumptionperiod.vue","./src/page/index/components/contractinformation/contractinformation.vue","./src/page/index/components/corebusinessdata/corebusinessdata.vue","./src/page/index/components/corecategory/corecategory.vue","./src/page/index/components/customeragegroup/customeragegroup.vue","./src/page/index/components/customerconsumptionpreferences/customerconsumptionpreferences.vue","./src/page/index/components/customergroup/customergroup.vue","./src/page/index/components/customergroupstay/customergroupstay.vue","./src/page/index/components/dailyinspection/dailyinspection.vue","./src/page/index/components/deductiontype/deductiontype.vue","./src/page/index/components/detailedpayment/detailedpayment.vue","./src/page/index/components/festivalrevenue/festivalrevenue.vue","./src/page/index/components/festivalrevenuesuminfo/festivalrevenuesuminfo.vue","./src/page/index/components/gendercustomergroup/gendercustomergroup.vue","./src/page/index/components/highqualitymerchants/highqualitymerchants.vue","./src/page/index/components/hotproductlist/hotproductlist.vue","./src/page/index/components/mallorderstatistics/mallorderstatistics.vue","./src/page/index/components/merchantcategory/merchantcategory.vue","./src/page/index/components/merchantratingranking/merchantratingranking.vue","./src/page/index/components/multiindustryincome/multiindustryincome.vue","./src/page/index/components/overviewofservicearea/overviewofservicearea.vue","./src/page/index/components/pagemap/pagemap.vue","./src/page/index/components/passengerflowchanges/passengerflowchanges.vue","./src/page/index/components/paymentprogress/paymentprogress.vue","./src/page/index/components/preferencetype/preferencetype.vue","./src/page/index/components/privaterideservice/privaterideservice.vue","./src/page/index/components/regionalrevenue/regionalrevenue.vue","./src/page/index/components/returnrate/returnrate.vue","./src/page/index/components/salescomparison/salescomparison.vue","./src/page/index/components/signedclients/signedclients.vue","./src/page/index/components/thismonthbenefits/thismonthbenefits.vue","./src/page/index/components/todaytrend/todaytrend.vue","./src/page/index/components/totalaccountsreceivable/totalaccountsreceivable.vue","./src/page/index/components/tradingalert/tradingalert.vue","./src/page/index/components/trendoftrafficflow/trendoftrafficflow.vue","./src/page/index/components/vehiclemodelstay/vehiclemodelstay.vue","./src/page/index/components/vehiclestayanalysis/vehiclestayanalysis.vue","./src/page/index/components/vehiclesentering/vehiclesentering.vue","./src/page/index/components/modaltitle/modaltitle.vue","./src/page/index/components/newbigtitlebox/newbigtitlebox.vue","./src/page/index/components/noticelistbox/noticelistbox.vue","./src/page/index/components/pagetop/pagetop.vue","./src/page/index/components/smalltitle/smalltitle.vue","./src/page/index/components/supplierlistbox/supplierlistbox.vue"],"version":"5.6.3"}
\ No newline at end of file
+{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/options/serveice.ts","./src/page/index/service.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/request/requestlocal.ts","./src/request/requestpos.ts","./src/request/requesttest.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/page/index/index.vue","./src/page/index/components/accountsreceivablewarning/accountsreceivablewarning.vue","./src/page/index/components/analysisofmember/analysisofmember.vue","./src/page/index/components/announcementtopic/announcementtopic.vue","./src/page/index/components/annualaccountsreceivable/annualaccountsreceivable.vue","./src/page/index/components/assessmentscoring/assessmentscoring.vue","./src/page/index/components/assessmentscoringranking/assessmentscoringranking.vue","./src/page/index/components/basicmessagebox/basicmessagebox.vue","./src/page/index/components/brandconsumptionlevel/brandconsumptionlevel.vue","./src/page/index/components/branddetail/branddetail.vue","./src/page/index/components/brandlisttbox/brandlisttbox.vue","./src/page/index/components/businesscase/businesscase.vue","./src/page/index/components/businessstructure/businessstructure.vue","./src/page/index/components/busytradingranking/busytradingranking.vue","./src/page/index/components/centertitle/centertitle.vue","./src/page/index/components/consumptionconversion/consumptionconversion.vue","./src/page/index/components/consumptionlevel/consumptionlevel.vue","./src/page/index/components/consumptionperiod/consumptionperiod.vue","./src/page/index/components/contractinformation/contractinformation.vue","./src/page/index/components/corebusinessdata/corebusinessdata.vue","./src/page/index/components/corecategory/corecategory.vue","./src/page/index/components/customeragegroup/customeragegroup.vue","./src/page/index/components/customerconsumptionpreferences/customerconsumptionpreferences.vue","./src/page/index/components/customergroup/customergroup.vue","./src/page/index/components/customergroupstay/customergroupstay.vue","./src/page/index/components/dailyinspection/dailyinspection.vue","./src/page/index/components/deductiontype/deductiontype.vue","./src/page/index/components/detailedpayment/detailedpayment.vue","./src/page/index/components/festivalrevenue/festivalrevenue.vue","./src/page/index/components/festivalrevenuesuminfo/festivalrevenuesuminfo.vue","./src/page/index/components/gendercustomergroup/gendercustomergroup.vue","./src/page/index/components/highqualitymerchants/highqualitymerchants.vue","./src/page/index/components/hotproductlist/hotproductlist.vue","./src/page/index/components/mallorderstatistics/mallorderstatistics.vue","./src/page/index/components/membermall/index.vue","./src/page/index/components/merchantcategory/merchantcategory.vue","./src/page/index/components/merchantratingranking/merchantratingranking.vue","./src/page/index/components/multiindustryincome/multiindustryincome.vue","./src/page/index/components/overviewofservicearea/overviewofservicearea.vue","./src/page/index/components/pagemap/pagemap.vue","./src/page/index/components/passengerflowchanges/passengerflowchanges.vue","./src/page/index/components/paymentprogress/paymentprogress.vue","./src/page/index/components/preferencetype/preferencetype.vue","./src/page/index/components/privaterideservice/privaterideservice.vue","./src/page/index/components/regionalrevenue/regionalrevenue.vue","./src/page/index/components/returnrate/returnrate.vue","./src/page/index/components/salescomparison/salescomparison.vue","./src/page/index/components/signedclients/signedclients.vue","./src/page/index/components/thismonthbenefits/thismonthbenefits.vue","./src/page/index/components/todaytrend/todaytrend.vue","./src/page/index/components/totalaccountsreceivable/totalaccountsreceivable.vue","./src/page/index/components/tradingalert/tradingalert.vue","./src/page/index/components/trendoftrafficflow/trendoftrafficflow.vue","./src/page/index/components/vehiclemodelstay/vehiclemodelstay.vue","./src/page/index/components/vehiclestayanalysis/vehiclestayanalysis.vue","./src/page/index/components/vehiclesentering/vehiclesentering.vue","./src/page/index/components/modaltitle/modaltitle.vue","./src/page/index/components/newbigtitlebox/newbigtitlebox.vue","./src/page/index/components/noticelistbox/noticelistbox.vue","./src/page/index/components/pagetop/pagetop.vue","./src/page/index/components/smalltitle/smalltitle.vue","./src/page/index/components/supplierlistbox/supplierlistbox.vue"],"version":"5.6.3"}
\ No newline at end of file