diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/src/views/dashboard/components/layoutChartRadar.vue b/src/views/dashboard/components/layoutChartRadar.vue index e7f6e1a..ca93a07 100644 --- a/src/views/dashboard/components/layoutChartRadar.vue +++ b/src/views/dashboard/components/layoutChartRadar.vue @@ -4,7 +4,7 @@ 用户分布统计 -
+
@@ -13,6 +13,7 @@ diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/src/views/dashboard/components/layoutChartRadar.vue b/src/views/dashboard/components/layoutChartRadar.vue index e7f6e1a..ca93a07 100644 --- a/src/views/dashboard/components/layoutChartRadar.vue +++ b/src/views/dashboard/components/layoutChartRadar.vue @@ -4,7 +4,7 @@ 用户分布统计
-
+
@@ -13,6 +13,7 @@ diff --git a/src/views/dashboard/components/layoutChartVerticalBar.vue b/src/views/dashboard/components/layoutChartVerticalBar.vue index 89b57f7..3c9d632 100644 --- a/src/views/dashboard/components/layoutChartVerticalBar.vue +++ b/src/views/dashboard/components/layoutChartVerticalBar.vue @@ -1,18 +1,20 @@ diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/src/views/dashboard/components/layoutChartRadar.vue b/src/views/dashboard/components/layoutChartRadar.vue index e7f6e1a..ca93a07 100644 --- a/src/views/dashboard/components/layoutChartRadar.vue +++ b/src/views/dashboard/components/layoutChartRadar.vue @@ -4,7 +4,7 @@ 用户分布统计
-
+
@@ -13,6 +13,7 @@ diff --git a/src/views/dashboard/components/layoutChartVerticalBar.vue b/src/views/dashboard/components/layoutChartVerticalBar.vue index 89b57f7..3c9d632 100644 --- a/src/views/dashboard/components/layoutChartVerticalBar.vue +++ b/src/views/dashboard/components/layoutChartVerticalBar.vue @@ -1,18 +1,20 @@ diff --git a/src/views/dashboard/components/layoutStackAreaChart.vue b/src/views/dashboard/components/layoutStackAreaChart.vue index b100ad3..3329aed 100644 --- a/src/views/dashboard/components/layoutStackAreaChart.vue +++ b/src/views/dashboard/components/layoutStackAreaChart.vue @@ -1,18 +1,24 @@ diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/src/views/dashboard/components/layoutChartRadar.vue b/src/views/dashboard/components/layoutChartRadar.vue index e7f6e1a..ca93a07 100644 --- a/src/views/dashboard/components/layoutChartRadar.vue +++ b/src/views/dashboard/components/layoutChartRadar.vue @@ -4,7 +4,7 @@ 用户分布统计
-
+
@@ -13,6 +13,7 @@ diff --git a/src/views/dashboard/components/layoutChartVerticalBar.vue b/src/views/dashboard/components/layoutChartVerticalBar.vue index 89b57f7..3c9d632 100644 --- a/src/views/dashboard/components/layoutChartVerticalBar.vue +++ b/src/views/dashboard/components/layoutChartVerticalBar.vue @@ -1,18 +1,20 @@ diff --git a/src/views/dashboard/components/layoutStackAreaChart.vue b/src/views/dashboard/components/layoutStackAreaChart.vue index b100ad3..3329aed 100644 --- a/src/views/dashboard/components/layoutStackAreaChart.vue +++ b/src/views/dashboard/components/layoutStackAreaChart.vue @@ -1,18 +1,24 @@ diff --git a/src/views/dashboard/components/layoutStackAreaChartTrend.vue b/src/views/dashboard/components/layoutStackAreaChartTrend.vue new file mode 100644 index 0000000..377b737 --- /dev/null +++ b/src/views/dashboard/components/layoutStackAreaChartTrend.vue @@ -0,0 +1,92 @@ + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 9928fd9..26a6470 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.4", "clipboard": "^2.0.8", diff --git a/src/api/cockpit/cockpit.js b/src/api/cockpit/cockpit.js index 625e638..558a773 100644 --- a/src/api/cockpit/cockpit.js +++ b/src/api/cockpit/cockpit.js @@ -1,5 +1,5 @@ import request from '@/utils/request' - + // 获取设备列表(不分页)-带经纬度 export function getDevicePosition() { return request({ @@ -14,15 +14,15 @@ method: 'get', }) } - + // 近一月设备数量统计 export function getDeviceStatistics() { return request({ - url: 'statistic/deviceCount/montht', + url: 'statistic/deviceCount/month', method: 'get', }) } - + // 设备品类统计 export function getDeviceCategory() { return request({ @@ -30,11 +30,117 @@ method: 'get', }) } - + // 区域设备排行 -// export function getRegionalRank() { -// return request({ -// url: 'statistic/deviceCategory', -// method: 'get', -// }) -// } \ No newline at end of file +export function getRegionalRank() { + return request({ + url: 'statistic/deviceCategory', + method: 'get', + }) +} + +// 经营面板 +// 各分类用户数量 +export function getUserCount() { + return request({ + url: 'statistic/userCount', + method: 'get', + }) +} + +// 用户数量变化趋势 +export function getUserTrend() { + return request({ + url: 'statistic/userTrend', + method: 'get', + }) +} + +// 订单统计 +export function getUserCountStatistic(time) { + return request({ + url: time === 'year' ? 'statistic/userCount/year' : 'statistic/userCount/month', + method: 'get', + }) +} + +// 经销商订单同比/环比统计 +export function getOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/orderRatio/year' : 'statistic/orderRatio/month', + method: 'get', + }) +} + +// 分子公司订单同比/环比统计 +export function getBranchOrderRatio(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机统计 +export function getOpportunityStatistics(time) { + return request({ + url: time === 'year' ? 'statistic/branchOrderRatio/year' : 'statistic/branchOrderRatio/month', + method: 'get', + }) +} + +// 商机同比/环比统计 +export function getBusinessOpportunityRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityRatio/year' : 'statistic/businessOpportunityRatio/month', + method: 'get', + }) +} + +// 商机转订单同比/环比统计 +export function getBusinessOpportunityTurnRatio(time) { + return request({ + url: time === 'year' ? 'statistic/businessOpportunityTurnRatio/year' : 'statistic/businessOpportunityTurnRatio/month', + method: 'get', + }) +} + +// 供应商面板 +// 供应商注册、审核通过、注册设备数量 +export function getSupplierCount() { + return request({ + url: 'statistic/supplierCount', + method: 'get', + }) +} + +// 供应商注册统计 +export function getRegisterCount() { + return request({ + url: 'statistic/supplierRegister', + method: 'get', + }) +} + +// 供应商状态统计 +export function getSupplierStatus() { + return request({ + url: 'statistic/supplierStatus', + method: 'get', + }) +} + +// 供应商资料预审统计 +export function getPreReview(time) { + return request({ + url: time === 'year' ? 'statistic/preReview/year' : 'statistic/preReview/month', + method: 'get', + }) +} + +// 供应商录库评审统计 +export function getInputReview(time) { + return request({ + url: time === 'year' ? 'statistic/inputReview/year' : 'statistic/inputReview/month', + method: 'get', + }) +} \ No newline at end of file diff --git a/src/components/echart/barChart/MixChart.vue b/src/components/echart/barChart/MixChart.vue index 14b069e..5b76ace 100644 --- a/src/components/echart/barChart/MixChart.vue +++ b/src/components/echart/barChart/MixChart.vue @@ -1,5 +1,5 @@ + + + \ No newline at end of file diff --git a/src/components/echart/pieChart/doughnutChart.vue b/src/components/echart/pieChart/doughnutChart.vue index 7f3cac2..dc74004 100644 --- a/src/components/echart/pieChart/doughnutChart.vue +++ b/src/components/echart/pieChart/doughnutChart.vue @@ -33,15 +33,31 @@ return []; }, }, + title:{ + type:String, + default:'' + } }, data() { return { curWidth: this.width, curHeight: this.height, option: { + title:{ + text:'', + textStyle:{ + color:'#000', + fontSize:14, + fontWeight:500 + }, + left:'center', + top:'center' + }, legend: { orient: "horizontal", + type:'plain', bottom: "auto", + // data:[], top: "bottom", itemWidth: 12, itemHeight: 12, @@ -60,7 +76,7 @@ containLabel: true, }, tooltip: { - trigger: "axis", + trigger: "item", textStyle: { fontSize: "16", }, @@ -84,6 +100,10 @@ this.option.legend.data = newVal; // this.refreshEchart(); }, + title(newVal) { + this.option.title.text = newVal; + // this.refreshEchart(); + }, seriesData: { handler(newVal) { const series = { @@ -92,7 +112,23 @@ radius: ["40%", "60%"], labelLine: { show: true, + length2: 0 }, + emphasis:{ + scale:false, + focus:'self', + itemStyle:{ + borderColor:'#000', + borderWidth:1, + borderType:'solid' + } + }, + label:{ + show:true, + formatter: '{d}%' + }, + selectedOffset:0, // 选中时移动的距离 + avoidLabelOverlap: true, }; this.$set(this.option, "series", series); // this.refreshChart(); diff --git a/src/components/guadMap/circle.vue b/src/components/guadMap/circle.vue new file mode 100644 index 0000000..5953d4d --- /dev/null +++ b/src/components/guadMap/circle.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/guadMap/index.vue b/src/components/guadMap/index.vue new file mode 100644 index 0000000..cb2c58d --- /dev/null +++ b/src/components/guadMap/index.vue @@ -0,0 +1,164 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/svg/icon-user-man.svg b/src/icons/svg/icon-user-man.svg new file mode 100644 index 0000000..cfdc5ef --- /dev/null +++ b/src/icons/svg/icon-user-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..2bdbcf7 --- /dev/null +++ "b/src/icons/svg/icon-\347\247\273\345\212\250\347\253\257\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" new file mode 100644 index 0000000..36086e7 --- /dev/null +++ "b/src/icons/svg/icon-\347\273\217\351\224\200\345\225\206\347\224\250\346\210\267.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/supplier-panel.svg b/src/icons/svg/supplier-panel.svg index 5552981..8d990d0 100644 --- a/src/icons/svg/supplier-panel.svg +++ b/src/icons/svg/supplier-panel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/dashboard/components/commonSelectChart.vue b/src/views/dashboard/components/commonSelectChart.vue new file mode 100644 index 0000000..11422bf --- /dev/null +++ b/src/views/dashboard/components/commonSelectChart.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/deviceList.vue b/src/views/dashboard/components/deviceList.vue index d8e2e1e..a7c11e1 100644 --- a/src/views/dashboard/components/deviceList.vue +++ b/src/views/dashboard/components/deviceList.vue @@ -17,17 +17,53 @@ @@ -46,7 +82,7 @@ height: 40px; color: rgb(64, 158, 255); } - .content{ + .content { margin-left: 10px; } } diff --git a/src/views/dashboard/components/layoutChartDoughnu.vue b/src/views/dashboard/components/layoutChartDoughnu.vue index d06ab18..7906430 100644 --- a/src/views/dashboard/components/layoutChartDoughnu.vue +++ b/src/views/dashboard/components/layoutChartDoughnu.vue @@ -1,4 +1,5 @@ diff --git a/src/views/dashboard/components/layoutChartRadar.vue b/src/views/dashboard/components/layoutChartRadar.vue index e7f6e1a..ca93a07 100644 --- a/src/views/dashboard/components/layoutChartRadar.vue +++ b/src/views/dashboard/components/layoutChartRadar.vue @@ -4,7 +4,7 @@ 用户分布统计
-
+
@@ -13,6 +13,7 @@ diff --git a/src/views/dashboard/components/layoutChartVerticalBar.vue b/src/views/dashboard/components/layoutChartVerticalBar.vue index 89b57f7..3c9d632 100644 --- a/src/views/dashboard/components/layoutChartVerticalBar.vue +++ b/src/views/dashboard/components/layoutChartVerticalBar.vue @@ -1,18 +1,20 @@ diff --git a/src/views/dashboard/components/layoutStackAreaChart.vue b/src/views/dashboard/components/layoutStackAreaChart.vue index b100ad3..3329aed 100644 --- a/src/views/dashboard/components/layoutStackAreaChart.vue +++ b/src/views/dashboard/components/layoutStackAreaChart.vue @@ -1,18 +1,24 @@ diff --git a/src/views/dashboard/components/layoutStackAreaChartTrend.vue b/src/views/dashboard/components/layoutStackAreaChartTrend.vue new file mode 100644 index 0000000..377b737 --- /dev/null +++ b/src/views/dashboard/components/layoutStackAreaChartTrend.vue @@ -0,0 +1,92 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/managementList.vue b/src/views/dashboard/components/managementList.vue index e6000f1..b63e11e 100644 --- a/src/views/dashboard/components/managementList.vue +++ b/src/views/dashboard/components/managementList.vue @@ -1,14 +1,11 @@