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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.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/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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierList.vue b/src/views/dashboard/components/supplierList.vue
new file mode 100644
index 0000000..40aff19
--- /dev/null
+++ b/src/views/dashboard/components/supplierList.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.count }}
+
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierList.vue b/src/views/dashboard/components/supplierList.vue
new file mode 100644
index 0000000..40aff19
--- /dev/null
+++ b/src/views/dashboard/components/supplierList.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.count }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierStatus.vue b/src/views/dashboard/components/supplierStatus.vue
new file mode 100644
index 0000000..d112e20
--- /dev/null
+++ b/src/views/dashboard/components/supplierStatus.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierList.vue b/src/views/dashboard/components/supplierList.vue
new file mode 100644
index 0000000..40aff19
--- /dev/null
+++ b/src/views/dashboard/components/supplierList.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.count }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierStatus.vue b/src/views/dashboard/components/supplierStatus.vue
new file mode 100644
index 0000000..d112e20
--- /dev/null
+++ b/src/views/dashboard/components/supplierStatus.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/devicePanel.vue b/src/views/dashboard/devicePanel.vue
index 65a6733..eedec2c 100644
--- a/src/views/dashboard/devicePanel.vue
+++ b/src/views/dashboard/devicePanel.vue
@@ -1,60 +1,41 @@
-
-
@@ -72,5 +53,10 @@
// float: right;
}
+ .map {
+ div{
+ height: 100%;
+ }
+ }
}
\ 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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierList.vue b/src/views/dashboard/components/supplierList.vue
new file mode 100644
index 0000000..40aff19
--- /dev/null
+++ b/src/views/dashboard/components/supplierList.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.count }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierStatus.vue b/src/views/dashboard/components/supplierStatus.vue
new file mode 100644
index 0000000..d112e20
--- /dev/null
+++ b/src/views/dashboard/components/supplierStatus.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/devicePanel.vue b/src/views/dashboard/devicePanel.vue
index 65a6733..eedec2c 100644
--- a/src/views/dashboard/devicePanel.vue
+++ b/src/views/dashboard/devicePanel.vue
@@ -1,60 +1,41 @@
-
-
@@ -72,5 +53,10 @@
// float: right;
}
+ .map {
+ div{
+ height: 100%;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/views/dashboard/managementPanel.vue b/src/views/dashboard/managementPanel.vue
index ea6d857..a7fe472 100644
--- a/src/views/dashboard/managementPanel.vue
+++ b/src/views/dashboard/managementPanel.vue
@@ -1,62 +1,53 @@
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
-
+
-
{{ item.title }}
-
{{ item.count }}
+
{{ item.roleName }}
+
{{ item.userCount }}
@@ -16,17 +13,30 @@
@@ -38,14 +48,14 @@
.device {
width: 50%;
display: flex;
- justify-content: center;
+
font-size: 20px;
::v-deep .svg-icon {
width: 40px;
height: 40px;
color: rgb(64, 158, 255);
}
- .content{
+ .content {
margin-left: 10px;
text-align: center;
}
diff --git a/src/views/dashboard/components/opportunityStatistics.vue b/src/views/dashboard/components/opportunityStatistics.vue
new file mode 100644
index 0000000..6e4749e
--- /dev/null
+++ b/src/views/dashboard/components/opportunityStatistics.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/orderStatistics.vue b/src/views/dashboard/components/orderStatistics.vue
new file mode 100644
index 0000000..6a36800
--- /dev/null
+++ b/src/views/dashboard/components/orderStatistics.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierAssessment.vue b/src/views/dashboard/components/supplierAssessment.vue
new file mode 100644
index 0000000..16c405b
--- /dev/null
+++ b/src/views/dashboard/components/supplierAssessment.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCommon.vue b/src/views/dashboard/components/supplierCommon.vue
new file mode 100644
index 0000000..8921cd0
--- /dev/null
+++ b/src/views/dashboard/components/supplierCommon.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierCount.vue b/src/views/dashboard/components/supplierCount.vue
new file mode 100644
index 0000000..54dc73a
--- /dev/null
+++ b/src/views/dashboard/components/supplierCount.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierEvaluation.vue b/src/views/dashboard/components/supplierEvaluation.vue
new file mode 100644
index 0000000..1670cec
--- /dev/null
+++ b/src/views/dashboard/components/supplierEvaluation.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierList.vue b/src/views/dashboard/components/supplierList.vue
new file mode 100644
index 0000000..40aff19
--- /dev/null
+++ b/src/views/dashboard/components/supplierList.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.count }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/components/supplierStatus.vue b/src/views/dashboard/components/supplierStatus.vue
new file mode 100644
index 0000000..d112e20
--- /dev/null
+++ b/src/views/dashboard/components/supplierStatus.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/devicePanel.vue b/src/views/dashboard/devicePanel.vue
index 65a6733..eedec2c 100644
--- a/src/views/dashboard/devicePanel.vue
+++ b/src/views/dashboard/devicePanel.vue
@@ -1,60 +1,41 @@
-
-
@@ -72,5 +53,10 @@
// float: right;
}
+ .map {
+ div{
+ height: 100%;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/views/dashboard/managementPanel.vue b/src/views/dashboard/managementPanel.vue
index ea6d857..a7fe472 100644
--- a/src/views/dashboard/managementPanel.vue
+++ b/src/views/dashboard/managementPanel.vue
@@ -1,62 +1,53 @@
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/supplierPanel.vue b/src/views/dashboard/supplierPanel.vue
index 9dcf0df..d1b1c4b 100644
--- a/src/views/dashboard/supplierPanel.vue
+++ b/src/views/dashboard/supplierPanel.vue
@@ -1,15 +1,68 @@
-
- supplierPanel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file