From 0de76e2404ba767b2b64494d11c6a1b1fb038d72 Mon Sep 17 00:00:00 2001 From: zx <604444282@qq.com> Date: Wed, 9 Mar 2022 17:28:04 +0800 Subject: [PATCH] zx --- src/styles/antd.less | 30 +++ src/views/SaleRank/AllLevel/index.vue | 40 +++- src/views/SaleRank/BrandSale/index.vue | 29 +++ .../ChineseCarSale/carBrandSale/index.vue | 7 +- .../ChineseCarSale/carLevelSale/index.vue | 7 +- .../ChineseCarSale/carSeriesSale/index.vue | 7 +- src/views/SaleRank/CitySale/index.vue | 217 +++++------------- src/views/SaleRank/CitySale/tbEvent.js | 205 +++++++++++++++++ src/views/SaleRank/SeriesInfo/index.vue | 6 +- src/views/SaleRank/SeriesSale/index.vue | 28 +++ src/views/SaleRank/index.vue | 79 +++++-- src/views/SaleRank/tableEvent.js | 59 ++++- 12 files changed, 524 insertions(+), 190 deletions(-) diff --git a/src/styles/antd.less b/src/styles/antd.less index d143f67..3cced13 100644 --- a/src/styles/antd.less +++ b/src/styles/antd.less @@ -41,6 +41,36 @@ background-color: #1B4163 !important; border: 1px solid #63AECC !important; } + + .ant-cascader-picker { + background: #1B4163 !important; + color: #fff !important; + &:hover { + background-color: #010B19 !important; + color: #fff !important; + } + } + .ant-cascader-picker-arrow svg { + color: #63AECC; + } + .ant-cascader-menu{ + background-color:#010B19 !important; + box-shadow: 0px 0px 10px 0px #3373CC !important; + overflow: hidden; + li{// 鼠标 hover 效果 + color: #fff; + border-top: 1px solid #3373CC !important; + background-color:#010B19 !important; + &:hover { + color: #63AECC; + background-color:#010B19 !important; + } + &:first-child { + border-top-style: none !important; + } + } + } + .ant-calendar-range-picker-input { color: #fff !important; } diff --git a/src/views/SaleRank/AllLevel/index.vue b/src/views/SaleRank/AllLevel/index.vue index e387863..080e724 100644 --- a/src/views/SaleRank/AllLevel/index.vue +++ b/src/views/SaleRank/AllLevel/index.vue @@ -64,7 +64,11 @@ export default { }, created() { this.form.token = this.getToken; - this.getData(); + if(this.$route.query.mark) { + this.getMore(); + } else { + this.getData(); + } }, methods: { getData() { @@ -101,6 +105,40 @@ export default { this.load = false }) }, + getMore() { + this.load = true; + getCheZhuCountTime({token: this.getToken}).then(res => { + let data = res.data; + this.form.sStartTime = data.Data[data.Data.length-1].Time; + this.form.sEndTime = data.Data[data.Data.length-1].Time; + this.selTime[0] = data.Data[data.Data.length-1].Time; + this.selTime[1] = data.Data[data.Data.length-1].Time; + this.dDate = data.Data[data.Data.length-1].Time; + let obj = { + token: this.getToken, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + } + // 排行榜 + getCheZhuCarSpecidRankingAll(obj).then(res => { + let data = res.data; + this.lvList = data; + }); + // 图表 + getCheZhuCarSpecidChart(obj).then(res => { + let data = res.data; + let dx = []; + let ds = []; + data.forEach(ele => { + dx.push(ele.key); + ds.push(ele.value); + }) + this.opt = createOpt(dx,ds); + }) + this.load = false + }) + }, //查看图表 onTable() { this.visible = true; diff --git a/src/views/SaleRank/BrandSale/index.vue b/src/views/SaleRank/BrandSale/index.vue index faefa9d..4b30a47 100644 --- a/src/views/SaleRank/BrandSale/index.vue +++ b/src/views/SaleRank/BrandSale/index.vue @@ -4,6 +4,7 @@ 返回
+ 查询 @@ -97,6 +98,8 @@ export default { this.tbData = data; this.tableLoad = false }) + } else if (this.$route.query.mark) { + this.getMore() } else { this.getData() } @@ -128,6 +131,32 @@ export default { }) }); }, + getMore() { + this.tableLoad = true; + let o = {token: this.getToken}; + getCheZhuCountTime(o).then(res => { + let data = res.data; + this.form.sStartTime = data.Data[data.Data.length-1].Time; + this.form.sEndTime = data.Data[data.Data.length-1].Time; + this.selTime[0] = data.Data[data.Data.length-1].Time; + this.selTime[1] = data.Data[data.Data.length-1].Time; + this.dDate = data.Data[data.Data.length-1].Time; + let obj = { + token: this.getToken, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + iPageIndex: 1, + iPageSize: 20, + } + getCheZhuCarBrandRanking(obj).then(res => { + let data = res.data; + this.pagination.total = res.totalNum + this.tbData = data; + this.tableLoad = false + }) + }); + }, //返回 goBack() { this.$router.go(-1); diff --git a/src/views/SaleRank/ChineseCarSale/carBrandSale/index.vue b/src/views/SaleRank/ChineseCarSale/carBrandSale/index.vue index 3851a81..483f664 100644 --- a/src/views/SaleRank/ChineseCarSale/carBrandSale/index.vue +++ b/src/views/SaleRank/ChineseCarSale/carBrandSale/index.vue @@ -46,7 +46,12 @@ export default { }) }, moreBrand() { - this.$router.push("/saleRank/brandSale"); + this.$router.push({ + path: "/saleRank/brandSale", + query: { + mark: 'more' + } + }); } } } diff --git a/src/views/SaleRank/ChineseCarSale/carLevelSale/index.vue b/src/views/SaleRank/ChineseCarSale/carLevelSale/index.vue index d714dbb..b2e911c 100644 --- a/src/views/SaleRank/ChineseCarSale/carLevelSale/index.vue +++ b/src/views/SaleRank/ChineseCarSale/carLevelSale/index.vue @@ -46,7 +46,12 @@ export default { }) }, moreInfo() { - this.$router.push("/saleRank/aLevel"); + this.$router.push({ + path: "/saleRank/aLevel", + query: { + mark: 'more' + } + }); } } } diff --git a/src/views/SaleRank/ChineseCarSale/carSeriesSale/index.vue b/src/views/SaleRank/ChineseCarSale/carSeriesSale/index.vue index 80d9191..39b61e1 100644 --- a/src/views/SaleRank/ChineseCarSale/carSeriesSale/index.vue +++ b/src/views/SaleRank/ChineseCarSale/carSeriesSale/index.vue @@ -46,7 +46,12 @@ export default { }) }, moreSeries() { - this.$router.push("/saleRank/seriesSale"); + this.$router.push({ + path: "/saleRank/seriesSale", + query: { + mark: 'more' + } + }); } } } diff --git a/src/views/SaleRank/CitySale/index.vue b/src/views/SaleRank/CitySale/index.vue index 137dd20..0df3b85 100644 --- a/src/views/SaleRank/CitySale/index.vue +++ b/src/views/SaleRank/CitySale/index.vue @@ -5,9 +5,19 @@
- - - + +
+
+ + + {{item.name}} + + + + + {{item.value}} + + 查询 @@ -40,27 +50,45 @@ + +
+ + + + +
+
+ {{letters[index]}} + +
+
+
+
+
@@ -303,4 +187,19 @@ export default { padding: 16px; } } + +.brand-list { + color: white; + width: 600px; + height: 320px; + background: rgb(11, 25, 47); +} + +.choose-brand { + width: 150px; +} +.choose-series { + width: 150px; + margin-right: 16px; +} \ No newline at end of file diff --git a/src/views/SaleRank/CitySale/tbEvent.js b/src/views/SaleRank/CitySale/tbEvent.js index e69de29..2ec84d5 100644 --- a/src/views/SaleRank/CitySale/tbEvent.js +++ b/src/views/SaleRank/CitySale/tbEvent.js @@ -0,0 +1,205 @@ +import {getSalesType1,getSalesType0} from "@/api/SaleRankCity"; +import {getSalesType6,getSalesType7} from "@/api/SaleRankCity"; +import {getExcleTime} from "@/api/SaleRankCity"; +import {getBrandType, getUserBrand, getUserSeriesName} from "@/api/comm" +import moment from "moment"; + +export default { + getApi() { + getBrandType({token: this.getToken}).then(res => { + let data = res.data; + this.brandTypeList = data + }), + getUserBrand({token: this.getToken}).then(res => { + let data = res.data; + let brandList = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]; + let letters = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; + for(let i = 0; i= 0) { + let obj = { + label: data[i].brandname, + value: data[i].brandname, + } + brandList[index].push(obj) + } + } + this.brandList = brandList; + this.letters = letters; + }) + }, + getData() { + this.tableLoad = true; + let o = {token: this.getToken}; + getExcleTime(o).then(res => { + let data = res.data; + this.form.sStartTime = data.startTime.slice(0,7); + this.form.sEndTime = data.endTime.slice(0,7); + this.selTime[0] = data.startTime.slice(0,7); + this.selTime[1] = data.endTime.slice(0,7); + this.dDate = data.endTime; + let obj = { + token: this.getToken, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + sBrandType: this.form.sBrandType, + iPageIndex: 1, + } + getSalesType1(obj).then(res => { + let data = res.data; + this.pagination.total = res.totalNum + this.tbData = data + this.tableLoad = false; + }); + getSalesType0(obj).then(res => { + let data = res.data; + this.pagination2.total = res.totalNum + this.tbData2 = data; + this.tableLoad = false; + }) + }); + }, + //切换类型 + handlerTime(activeIndex) { + this.activeIndex = activeIndex + }, + //返回 + goBack() { + this.$router.go(-1); + }, + disabledDate(current) { + return (current > moment(this.dDate)) && moment(this.dDate); + }, + //查询 + onSearch() { + this.tableLoad = true; + this.form.sStartTime = this.selTime[0]; + this.form.sEndTime = this.selTime[1]; + getSalesType1(this.form).then(res => { + let data = res.data; + this.pagination.total = res.totalNum + this.tbData = data + this.tableLoad = false; + }); + getSalesType0(this.form).then(res => { + let data = res.data; + this.pagination2.total = res.totalNum + this.tbData2 = data; + this.tableLoad = false; + }) + }, + //点击明细 + onSalePro(record) { + let obj = { + token: this.form.token, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + sBrandType: this.form.sBrandType, + iPageIndex: 1, + sProv: record.key + } + let o = { + sBrand: this.form.sBrand, + sSeriesName: this.form.sSeriesName + } + getSalesType0(Object.assign({},obj,o)).then(res => { + let data = res.data; + this.dataProCity = data + }) + getSalesType6(obj).then(res => { + let data = res.data; + this.dataProBrand = data + }) + getSalesType7(obj).then(res => { + let data = res.data; + this.dataProSeries = data + }) + this.visible = true; + }, + onSaleCity(record) { + let obj = { + token: this.form.token, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + sBrandType: this.form.sBrandType, + iPageIndex: 1, + sCity: record.key + } + getSalesType6(obj).then(res => { + let data = res.data; + this.dataCityBrand = data + }) + getSalesType7(obj).then(res => { + let data = res.data; + this.dataCitySeries = data + }) + this.visible2 = true; + }, + //改变页面数据 + handlerPagnation(page) { + this.tableLoading = true; + let cur = page.current; + this.pagination.current = cur; + this.form.iPageIndex = cur; + getSalesType1(this.form).then(res => { + let data = res.data; + this.pagination.total = res.totalNum + this.tbData = data; + this.tableLoading = false + }) + }, + handlerPagnation2(page) { + this.tableLoading = true; + let cur = page.current; + this.pagination.current = cur; + this.form.iPageIndex = cur; + getSalesType0(this.form).then(res => { + let data = res.data; + this.pagination2.total = res.totalNum + this.tbData = data; + this.tableLoading = false + }) + }, + //改变窗口模式 + handlerProMode(activeIndex) { + this.pValue = activeIndex + }, + handlerCityMode(activeIndex) { + this.cValue = activeIndex + }, + //关闭窗口 + onClose() { + this.visible = false + }, + onClose2() { + this.visible2 = false + }, + //抽屉 + brandDrawer() { + this.drVisible = true + }, + drClose() { + this.drVisible = false + }, + //锚点 + anchorClick(e, link) { + // 阻止点击的默认事件修改路由 + e.preventDefault(); + if(link.href) { + document.getElementById(link.href).scrollIntoView(); + } + }, + drawerChooseBrand(val) { + this.form.sBrand = val; + let o = {token: this.getToken, sBrandName: this.form.sBrand}; + getUserSeriesName(o).then(res => { + let data = res.data; + this.seriesList = data; + this.form.sSeriesName = undefined; + }) + this.drVisible = false; + }, +} \ No newline at end of file diff --git a/src/views/SaleRank/SeriesInfo/index.vue b/src/views/SaleRank/SeriesInfo/index.vue index faaa79c..3f579e3 100644 --- a/src/views/SaleRank/SeriesInfo/index.vue +++ b/src/views/SaleRank/SeriesInfo/index.vue @@ -5,7 +5,7 @@ 返回
- +
@@ -189,7 +189,9 @@ export default { }, //返回 goBack() { - this.$router.go(-1); + this.$router.push({ + path: 'seriesSale' + }); }, //改变页面数据 handlerPagnation(page) { diff --git a/src/views/SaleRank/SeriesSale/index.vue b/src/views/SaleRank/SeriesSale/index.vue index 843474e..5436bcd 100644 --- a/src/views/SaleRank/SeriesSale/index.vue +++ b/src/views/SaleRank/SeriesSale/index.vue @@ -86,6 +86,8 @@ export default { this.tbData = data; this.tableLoad = false }) + } else if(this.$route.query.mark) { + this.getMore() } else { this.getData() } @@ -117,6 +119,32 @@ export default { }) }); }, + getMore() { + let o = {token: this.getToken}; + this.tableLoading = true; + getCheZhuCountTime(o).then(res => { + let data = res.data; + this.form.sStartTime = data.Data[data.Data.length-1].Time; + this.form.sEndTime = data.Data[data.Data.length-1].Time; + this.selTime[0] = data.Data[data.Data.length-1].Time; + this.selTime[1] = data.Data[data.Data.length-1].Time; + this.dDate = data.Data[data.Data.length-1].Time; + let obj = { + token: this.getToken, + sTimeType: 4, + sStartTime: this.form.sStartTime, + sEndTime: this.form.sEndTime, + iPageIndex: 1, + iPageSize: 20, + } + getCheZhuCarSeriesRanking(obj).then(res => { + let data = res.data; + this.pagination.total = res.totalNum + this.tbData = data; + this.tableLoading = false + }) + }); + }, //查看图表 onTable() {}, //返回 diff --git a/src/views/SaleRank/index.vue b/src/views/SaleRank/index.vue index 996f5ea..5a8cd7a 100644 --- a/src/views/SaleRank/index.vue +++ b/src/views/SaleRank/index.vue @@ -1,8 +1,8 @@ @@ -99,6 +117,7 @@ export default { }, data() { return { + x: 0, isLoading: false, dd: false, //下拉菜单 form: { @@ -107,6 +126,7 @@ export default { sEndTime: '' }, brandList: [], //品牌列表 + brandOption: [], letters: [], seriesList: [], //车型列表 specList: [], //级别列表 @@ -115,8 +135,12 @@ export default { chosenBrand: undefined, chosenSeries: undefined, //当前窗口// - window: '' - //// + window: '', + //抽屉 + visible: false, + drawerStyle: { + backgroud: 'blue' + } }; }, created() { @@ -144,7 +168,7 @@ export default { } .sr-content { width: 100%; - height: auto; + height: 100%; display: flex; justify-content: flex-start; margin-top: 8px; @@ -154,15 +178,16 @@ export default { }; .sr-view { margin-top: 16px; + height: 773px; } } } .choose-brand { - width: 400px; + width: 250px; } .choose-series { - width: 200px; + width: 250px; margin-right: 16px; } @@ -184,4 +209,16 @@ export default { } } } +.drawer { + display: flex; + height: 800px; + justify-content: flex-start; + .drawer-right { + margin-left: 30px; + height: 100%; + .drawer-letter { + font-size: 24px; + } + } +} \ No newline at end of file diff --git a/src/views/SaleRank/tableEvent.js b/src/views/SaleRank/tableEvent.js index ee97e9a..1398389 100644 --- a/src/views/SaleRank/tableEvent.js +++ b/src/views/SaleRank/tableEvent.js @@ -13,14 +13,26 @@ export default { let index = letters.indexOf(data[i].firstword) if(index >= 0) { let obj = { - brandname: data[i].brandname, - brandid: data[i].brandid, - firstword: data[i].firstword, + // brandname: data[i].brandname, + // brandid: data[i].brandid, + // firstword: data[i].firstword, + label: data[i].brandname, + value: data[i].brandname, } brandList[index].push(obj) } } this.brandList = brandList; + let options = [] + for(let i = 0; i < brandList.length; i++) { + let obj = { + value: letters[i], + label: letters[i], + children: brandList[i] + }; + options.push(obj) + } + this.brandOption = options; this.letters = letters; }) getSpec(obj).then(res => { @@ -37,8 +49,36 @@ export default { }) }, //选择品牌 - onBrand(val) { + // onBrand(val) { + // this.isLoding = true; + // this.chosenBrand = val; + // let o = {token: this.getToken, sBrandName: this.chosenBrand}; + // getUserSeriesName(o).then(res => { + // let data = res.data; + // this.seriesList = data; + // this.chosenSeries = undefined; + // this.isLoding = false; + // }) + // }, + handlerBrand(val) { this.isLoding = true; + let chosenBrand = val[1]; + let o = {token: this.getToken, sBrandName: chosenBrand}; + getUserSeriesName(o).then(res => { + let data = res.data; + this.seriesList = data; + this.chosenSeries = undefined; + this.isLoding = false; + }) + }, + brandDrawer() { + this.visible = true + }, + onClose() { + this.visible = false + }, + //抽屉选择品牌 + drawerChooseBrand(val) { this.chosenBrand = val; let o = {token: this.getToken, sBrandName: this.chosenBrand}; getUserSeriesName(o).then(res => { @@ -47,6 +87,15 @@ export default { this.chosenSeries = undefined; this.isLoding = false; }) + this.visible = false; + }, + //锚点 + anchorClick(e, link) { + // 阻止点击的默认事件修改路由 + e.preventDefault(); + if(link.href) { + document.getElementById(link.title).scrollIntoView(); + } }, //选择车型 onSeries(val) { @@ -65,6 +114,7 @@ export default { } } ); + this.reload(); } else if (this.chosenBrand != undefined && this.chosenSeries != undefined) { this.$router.push( { @@ -75,6 +125,7 @@ export default { } } ); + this.reload(); } else { this.$message.warning('请选择品牌'); return;