云词图
This commit is contained in:
parent
4e08b7345d
commit
509ac595a2
|
|
@ -8,6 +8,7 @@ export {}
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
BarCom: typeof import('./src/components/echartsCom/barCom.vue')['default']
|
BarCom: typeof import('./src/components/echartsCom/barCom.vue')['default']
|
||||||
|
CloudWords: typeof import('./src/components/echartsCom/CloudWords.vue')['default']
|
||||||
ElButton: typeof import('element-plus/es')['ElButton']
|
ElButton: typeof import('element-plus/es')['ElButton']
|
||||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||||
EquipmentDialog: typeof import('./src/components/customCom/equipmentDialog.vue')['default']
|
EquipmentDialog: typeof import('./src/components/customCom/equipmentDialog.vue')['default']
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,4 @@
|
||||||
VITE_PORT = 8888
|
VITE_PORT = 8888
|
||||||
# 自动打开浏览器
|
# 自动打开浏览器
|
||||||
VITE_OPEN = true
|
VITE_OPEN = true
|
||||||
# 百度地图key
|
|
||||||
VITE_AK = "cClgLBaLgGUdQDilX9dGvieL"
|
|
||||||
# 百度地图版本
|
|
||||||
VITE_AK_v = "2"
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,5 @@ VITE_BUILD_MODE = 'dev'
|
||||||
|
|
||||||
# 开发环境接口地址
|
# 开发环境接口地址
|
||||||
VITE_API_URL = '/proxyApi'
|
VITE_API_URL = '/proxyApi'
|
||||||
# 百度地图key
|
# 代理地址
|
||||||
VITE_AK = "cClgLBaLgGUdQDilX9dGvieL"
|
VITE_proxyTarget = "http://10.40.92.229:8080"
|
||||||
|
|
||||||
# 百度地图版本
|
|
||||||
VITE_AK_v = "2"
|
|
||||||
|
|
@ -11,4 +11,5 @@
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script type="module" src="/src/main.ts"></script>
|
<script type="module" src="/src/main.ts"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,9 @@
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import url("./style/css/reset.css");
|
@import url("./style/css/reset.css");
|
||||||
|
body {
|
||||||
|
font-family:"Microsoft Yahei"!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="provider_list">
|
<div class="provider_list">
|
||||||
<div class="provider_title">
|
<div class="provider_title">
|
||||||
<div class="pro_title">
|
<div class="sub_title" @click="subTab('provider')" :class="{
|
||||||
|
'activeSub': subActive == 'provider'
|
||||||
|
}">
|
||||||
热门供应商
|
热门供应商
|
||||||
</div>
|
</div>
|
||||||
<div class="sub_title">
|
<div class="sub_title" @click="subTab('hotEquipment')" :class="{
|
||||||
|
'activeSub': subActive == 'hotEquipment'
|
||||||
|
}">
|
||||||
热门装备
|
热门装备
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="provider_content">
|
<div class="provider_content" v-if="subActive == 'provider'">
|
||||||
<div class="provider_item" v-for="(item, index) in providerInfo.list" :key="index">
|
<div class="provider_item" v-for="(item, index) in providerInfo.list" :key="index">
|
||||||
<div class="provider_item_left">
|
<div class="provider_item_left">
|
||||||
<div class="pro_item_icon" :class="{ 'inThree': item.v_index <= 3, 'afterThree': item.v_index > 3 }">
|
<div class="pro_item_icon" :class="{ 'inThree': item.v_index <= 3, 'afterThree': item.v_index > 3 }">
|
||||||
|
|
@ -24,9 +28,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cloud_words_out" v-else>
|
||||||
|
<CloudWords></CloudWords>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import CloudWords from "components/echartsCom/CloudWords.vue"
|
||||||
const providerInfo = reactive({
|
const providerInfo = reactive({
|
||||||
list: [
|
list: [
|
||||||
{
|
{
|
||||||
|
|
@ -73,6 +81,11 @@ const providerInfo = reactive({
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const subActive = ref("hotEquipment")
|
||||||
|
// provider hotEquipment
|
||||||
|
const subTab = (type: any) => {
|
||||||
|
subActive.value = type
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -91,11 +104,6 @@ const providerInfo = reactive({
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.pro_title {
|
|
||||||
font-size: 18px;
|
|
||||||
color: $main-color;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sub_title {
|
.sub_title {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|
@ -104,6 +112,12 @@ const providerInfo = reactive({
|
||||||
padding-left: 26px;
|
padding-left: 26px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.activeSub {
|
||||||
|
font-size: 18px;
|
||||||
|
color: $main-color;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.provider_content {
|
.provider_content {
|
||||||
|
|
@ -151,4 +165,11 @@ const providerInfo = reactive({
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cloud_words_out {
|
||||||
|
width: 292px;
|
||||||
|
height: 340px;
|
||||||
|
margin-top: 12px;
|
||||||
|
background-color: background-color: rgba($color: #011B37, $alpha: 0.6);;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,169 @@
|
||||||
|
<template>
|
||||||
|
<div style="width: 100%; height: 100%" id="cludWordEchart"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
import jsonData from "./jsonData/china.json"
|
||||||
|
import { fa } from 'element-plus/es/locale';
|
||||||
|
let myChart: any = null
|
||||||
|
const randomData = () => {
|
||||||
|
var a = Math.random();
|
||||||
|
if (a > 0 && a <= 0.333)
|
||||||
|
return 0;
|
||||||
|
if (a > 0.333 && a <= 0.666)
|
||||||
|
return 90;
|
||||||
|
return -90;
|
||||||
|
}
|
||||||
|
|
||||||
|
const colorData = (value: any) => {
|
||||||
|
let colorData = []
|
||||||
|
if (value > 500) {
|
||||||
|
colorData = ["#FB6716", "bold", "黑体"];
|
||||||
|
} else if (value > 450 && value <= 500) {
|
||||||
|
colorData = ["#62ECFE", "bold", "黑体"];
|
||||||
|
} else if (value > 400 && value <= 450) {
|
||||||
|
colorData = ["#FF8F00", "bold", "黑体"];
|
||||||
|
} else if (value > 350 && value <= 400) {
|
||||||
|
colorData = ["#3773FF", "bold", "黑体"];
|
||||||
|
} else if (value > 300 && value <= 350) {
|
||||||
|
colorData = ['rgba(#62ECFE,0.6)', "normal", "黑体"];
|
||||||
|
} else if (value > 250 && value <= 300) {
|
||||||
|
colorData = ['rgba(#FF8F00,0.6)', "normal", "黑体"];
|
||||||
|
} else if (value > 200 && value <= 250) {
|
||||||
|
colorData = ['rgba(#3773FF,0.6)', "normal", "黑体"];
|
||||||
|
}else{
|
||||||
|
colorData = ["#fff", "normal", "黑体"];
|
||||||
|
}
|
||||||
|
return colorData
|
||||||
|
}
|
||||||
|
|
||||||
|
//110 35 14/18
|
||||||
|
var geoCoordMap: any = {
|
||||||
|
"挖掘机": [108.99, 36.04],
|
||||||
|
"洒水车": [113.53, 44.3],
|
||||||
|
"牵引车": [106.21, 27.35],
|
||||||
|
"平地机": [95.61, 44.57],
|
||||||
|
"应用支撑": [104.58, 39.69],
|
||||||
|
"掘地机": [101.39, 47.5],
|
||||||
|
"自卸车": [97.53, 31.89],
|
||||||
|
"叉车": [112.46, 31.65],
|
||||||
|
"开钩机": [92.65, 36.0],
|
||||||
|
"数据基础": [122.15, 32.99],
|
||||||
|
"其他设备": [123.89, 40.34],
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//0-500
|
||||||
|
var data = [
|
||||||
|
{ name: "挖掘机", value: 501 },
|
||||||
|
{ name: "洒水车", value: 400 },
|
||||||
|
{ name: "牵引车", value: 460 },
|
||||||
|
{ name: "平地机", value: 300 },
|
||||||
|
{ name: "应用支撑", value: 360 },
|
||||||
|
{ name: "掘地机", value: 460 },
|
||||||
|
{ name: "自卸车", value: 330 },
|
||||||
|
{ name: "叉车", value: 210 },
|
||||||
|
{ name: "开钩机", value: 200 },
|
||||||
|
{ name: "数据基础", value: 440 },
|
||||||
|
{ name: "其他设备", value: 240 },
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var convertData = function (data: any) {
|
||||||
|
var res = [];
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var geoCoord = geoCoordMap[data[i].name];
|
||||||
|
if (geoCoord) {
|
||||||
|
res.push({
|
||||||
|
label: {
|
||||||
|
normal: {
|
||||||
|
color: colorData(data[i].value)[0],
|
||||||
|
fontSize: data[i].value / 40 + 6,
|
||||||
|
fontWeight: colorData(data[i].value)[1],
|
||||||
|
fontFamily: colorData(data[i].value)[2],
|
||||||
|
//rotate: randomData(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
name: data[i].name,
|
||||||
|
value: geoCoord.concat(data[i].value),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
const option: any = {
|
||||||
|
title: {
|
||||||
|
text: '热力图',
|
||||||
|
left: 'center',
|
||||||
|
textStyle: {
|
||||||
|
color: '#fff'
|
||||||
|
},
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
visualMap: {
|
||||||
|
type: "continuous",
|
||||||
|
show: false,
|
||||||
|
calculable: true,
|
||||||
|
min: 0,
|
||||||
|
max: 500,
|
||||||
|
inRange: {
|
||||||
|
color: ['#0e2a3f'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
backgroundColor: '#0e2a3f',
|
||||||
|
geo: {
|
||||||
|
center: [106, 36],
|
||||||
|
zoom: 1.5,
|
||||||
|
silent: true,
|
||||||
|
map: 'china',
|
||||||
|
roam: false,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
areaColor: '#0e2a3f',
|
||||||
|
borderColor: '#0e2a3f'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
series: [{
|
||||||
|
name: '散点',
|
||||||
|
type: 'scatter',
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
data: convertData(data),
|
||||||
|
symbolSize: 0.1,
|
||||||
|
label: {
|
||||||
|
normal: {
|
||||||
|
formatter: '{b}',
|
||||||
|
position: 'inside',
|
||||||
|
show: true,
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
show: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
name: 'AQI',
|
||||||
|
type: 'heatmap',
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
data: convertData(data),
|
||||||
|
blurSize: 100,
|
||||||
|
minOpacity: 0.03,
|
||||||
|
maxOpacity: 0.9,
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
echarts.registerMap('china', jsonData)
|
||||||
|
const lineEchartDomEl = document.getElementById("cludWordEchart");
|
||||||
|
myChart = echarts.init(lineEchartDomEl);
|
||||||
|
myChart.setOption(option);
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,5 +1,15 @@
|
||||||
import { post } from '../index'
|
import { post } from '../index'
|
||||||
|
|
||||||
export function apiTest() {
|
export function apiTest() {
|
||||||
return post('/userms/ut/userCardInfo/getCardInfo/v1', {})
|
return post('system/user/getInfo', {})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function apiNoticeAdd() {
|
||||||
|
return post('system/notice/add', {
|
||||||
|
"noticeTitle": "测试",
|
||||||
|
"noticeType": "1",
|
||||||
|
"noticeContent": "测试内容",
|
||||||
|
"status": "0"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ const service = axios.create({
|
||||||
|
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
(config) => {
|
(config) => {
|
||||||
|
config.headers['Authorization'] = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjE2ZjZiYjQwLWQzNGItNGEwYS04YTVhLTkwZTA2YTdiNTliOSIsInVzZXJuYW1lIjoiYWRtaW4ifQ.cn0uGP3voRu4wTz-x-7J_tgOzEpMHv92GMhMZ66AwTjt4za6I49kzjAucOsRAE9I-R7y-r57HkUL6StJySzeRg"
|
||||||
return config
|
return config
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ footer, header, hgroup, menu, nav, section {
|
||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
ol, ul {
|
ol, ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
|
@ -45,4 +46,6 @@ table {
|
||||||
#app {
|
#app {
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,4 +53,8 @@ const toPage = (item: any) => {
|
||||||
|
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="out_echart">
|
<div class="out_echart">
|
||||||
|
|
||||||
<mapLine></mapLine>
|
<!-- <mapLine></mapLine> -->
|
||||||
|
<div style="width: 303px;height: 400px;">
|
||||||
|
<CloudWords></CloudWords>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- <div class="echart_row_1">
|
<!-- <div class="echart_row_1">
|
||||||
<div class="echart_cell">
|
<div class="echart_cell">
|
||||||
|
|
@ -58,10 +62,25 @@ import barCom from "../../components/echartsCom/barCom.vue"
|
||||||
import Pie3dCom from "../../components/echartsCom/Pie3dCom.vue"
|
import Pie3dCom from "../../components/echartsCom/Pie3dCom.vue"
|
||||||
import hotProvider from "../../components/customCom/hotProvider.vue"
|
import hotProvider from "../../components/customCom/hotProvider.vue"
|
||||||
import mapLine from "components/mapBaidu/mapLine.vue"
|
import mapLine from "components/mapBaidu/mapLine.vue"
|
||||||
|
import CloudWords from "components/echartsCom/CloudWords.vue"
|
||||||
|
import { apiTest,apiNoticeAdd } from "http/api/myInfo"
|
||||||
|
onMounted(() => {
|
||||||
|
testAjax()
|
||||||
|
setTimeout(() => {
|
||||||
|
testAddPost()
|
||||||
|
}, 2000);
|
||||||
|
})
|
||||||
|
|
||||||
|
const testAjax = async () => {
|
||||||
|
const res = await apiTest()
|
||||||
|
console.log("res====ajax",res)
|
||||||
|
}
|
||||||
|
|
||||||
|
const testAddPost= async () =>{
|
||||||
|
const res = await apiNoticeAdd()
|
||||||
|
console.log("res====ajax",res)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ import barCom from "../../components/echartsCom/barCom.vue"
|
||||||
import Pie3dCom from "../../components/echartsCom/Pie3dCom.vue"
|
import Pie3dCom from "../../components/echartsCom/Pie3dCom.vue"
|
||||||
import hotProvider from "../../components/customCom/hotProvider.vue"
|
import hotProvider from "../../components/customCom/hotProvider.vue"
|
||||||
import equipmentLeasing from "../../components/customCom/equipmentLeasing.vue"
|
import equipmentLeasing from "../../components/customCom/equipmentLeasing.vue"
|
||||||
import { getImg } from "@/utils/index"
|
import { getImg } from "utils/index"
|
||||||
const equipmentCountInfo: any = reactive({
|
const equipmentCountInfo: any = reactive({
|
||||||
listCount: ['9', '9', '9', '9'],
|
listCount: ['9', '9', '9', '9'],
|
||||||
selfCount: "999",
|
selfCount: "999",
|
||||||
|
|
@ -344,7 +344,7 @@ const barComPropsHorizontal = reactive({
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 108px;
|
height: 108px;
|
||||||
background-image: url("../../assets/img/top_title.png");
|
background-image: url("../../assets/img/top_title.png");
|
||||||
background-size: cover;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
padding-top: 29px;
|
padding-top: 29px;
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||||
import Components from 'unplugin-vue-components/vite'
|
import Components from 'unplugin-vue-components/vite'
|
||||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||||||
import { createHtmlPlugin } from 'vite-plugin-html'
|
import { createHtmlPlugin } from 'vite-plugin-html'
|
||||||
import moment from 'moment'
|
|
||||||
import { env } from 'node:process'
|
|
||||||
|
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
@ -82,7 +80,7 @@ export default ({ mode }: any) => {
|
||||||
// open: envInfo.VITE_OPEN,
|
// open: envInfo.VITE_OPEN,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/proxyApi': {
|
'/proxyApi': {
|
||||||
target: 'https://test.com',
|
target: envInfo.VITE_proxyTarget,
|
||||||
secure: false,
|
secure: false,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (path) => path.replace(/^\/proxyApi/, ''),
|
rewrite: (path) => path.replace(/^\/proxyApi/, ''),
|
||||||
|
|
@ -128,7 +126,7 @@ export default ({ mode }: any) => {
|
||||||
},
|
},
|
||||||
envDir: 'env',
|
envDir: 'env',
|
||||||
build: {
|
build: {
|
||||||
outDir: 'dist/' + pjson.name,
|
outDir: 'dist/' + pjson.name +'-'+envInfo.VITE_BUILD_MODE,
|
||||||
emptyOutDir: true,
|
emptyOutDir: true,
|
||||||
terserOptions: {
|
terserOptions: {
|
||||||
compress: {
|
compress: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue