This commit is contained in:
tianlong 2023-04-17 18:02:03 +08:00
parent 694a7a6307
commit 0339a49d2b
19 changed files with 3076 additions and 189 deletions

View File

@ -5,5 +5,5 @@ VITE_APP_TITLE = 种植业生产监管数字化系统
VITE_APP_ENV = 'development'
# 若依管理系统/开发环境
# VITE_APP_BASE_API = 'http://192.168.2.96:8080'
VITE_APP_BASE_API = 'http://vue.ruoyi.vip/prod-api/'
VITE_APP_BASE_API = 'http://192.168.2.96:8080'
# VITE_APP_BASE_API = 'http://vue.ruoyi.vip/prod-api/'

58
package-lock.json generated
View File

@ -10,6 +10,7 @@
"license": "MIT",
"dependencies": {
"@element-plus/icons-vue": "2.0.10",
"@fit-screen/vue": "^0.2.0",
"@vueuse/core": "9.5.0",
"axios": "0.27.2",
"echarts": "^5.3.0",
@ -104,6 +105,47 @@
"node": ">=12"
}
},
"node_modules/@fit-screen/vue": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@fit-screen/vue/-/vue-0.2.0.tgz",
"integrity": "sha512-G9NuOHRAd2fuwLd9KFEfDMf9IT7gycb9suZNusvImzjVjpVlY0oW+d8F+9fXBhT36dp60xtqpuVMuNuL4bs88g==",
"dependencies": {
"vue-demi": "^0.13.11"
},
"peerDependencies": {
"vue": "^2.6.14 || ^3.2.39"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@fit-screen/vue/node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@floating-ui/core": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz",
@ -4349,6 +4391,22 @@
"dev": true,
"optional": true
},
"@fit-screen/vue": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@fit-screen/vue/-/vue-0.2.0.tgz",
"integrity": "sha512-G9NuOHRAd2fuwLd9KFEfDMf9IT7gycb9suZNusvImzjVjpVlY0oW+d8F+9fXBhT36dp60xtqpuVMuNuL4bs88g==",
"requires": {
"vue-demi": "^0.13.11"
},
"dependencies": {
"vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"requires": {}
}
}
},
"@floating-ui/core": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz",

View File

@ -16,6 +16,7 @@
},
"dependencies": {
"@element-plus/icons-vue": "2.0.10",
"@fit-screen/vue": "^0.2.0",
"@vueuse/core": "9.5.0",
"axios": "0.27.2",
"echarts": "^5.3.0",

View File

@ -1,5 +1,5 @@
<template>
<VScaleScreen width="1960" height="1080">
<VScaleScreen fullScreen width="1920" height="1080">
<div class="center">
<div ref="head" class="headers">
种植业生产监管数字化系统

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1681694329431" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="952" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M960.64 499.2c-28.8-91.52-116.48-150.4-223.36-150.4h-16a345.216 345.216 0 0 0-283.52-224c-140.8-16.64-278.4 56.96-343.68 182.4a346.24 346.24 0 0 0 47.36 386.56c15.36 17.28 42.24 19.2 60.16 3.84 17.28-15.36 19.2-42.24 3.84-60.16a260.672 260.672 0 0 1-35.84-290.56c49.28-94.08 152.96-149.76 258.56-136.96a259.84 259.84 0 0 1 220.8 192.64c5.12 18.56 21.76 32 40.96 32h47.36c68.48 0 124.16 35.84 142.08 91.52 19.2 60.8-2.56 126.08-55.04 163.2a42.88 42.88 0 0 0-10.24 59.52 42.112 42.112 0 0 0 58.88 10.24c83.2-59.52 118.4-163.2 87.68-259.84z" fill="rgba(255,255,255,1)" p-id="953"></path><path d="M611.84 698.88l-56.96 56.96V490.88c0-23.68-19.2-42.24-42.88-42.24-23.68 0-42.24 19.2-42.24 42.88v264.96l-57.6-57.6a42.496 42.496 0 1 0-60.16 60.16l129.92 129.92c3.2 3.2 6.4 4.48 9.6 6.4 1.28 0.64 2.56 1.92 3.84 2.56 5.12 1.92 10.88 3.2 16.64 3.2 1.92 0 3.2-0.64 5.12-1.28 3.84-0.64 7.68-0.64 10.88-2.56 5.76-1.92 10.24-5.76 14.72-9.6l129.28-129.28c16.64-16.64 16.64-43.52 0-60.16s-43.52-16-60.16 0.64z" fill="rgba(255,255,255,1)" p-id="954"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/images/LAYER.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

BIN
src/assets/images/amplify.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

BIN
src/assets/images/face.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

BIN
src/assets/images/measure.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

BIN
src/assets/images/position.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

BIN
src/assets/images/reduce.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

BIN
src/assets/images/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

309
src/assets/styles/ruoyi.css Normal file
View File

@ -0,0 +1,309 @@
@charset "UTF-8";
/**
* 通用css样式布局处理
* Copyright (c) 2019 ruoyi
*/
/** 基础通用 **/
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml10 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.ml20 {
margin-left: 20px;
}
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.el-form .el-form-item__label {
font-weight: 700;
}
.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
}
.el-dialog.scrollbar .el-dialog__body {
overflow: auto;
overflow-x: hidden;
max-height: 70vh;
padding: 10px 20px 0;
}
.el-table {
background-color: rgba(255, 255, 255, 0.05) !important;
}
.el-table .el-table__header-wrapper th,
.el-table .el-table__fixed-header-wrapper th {
word-break: break-word;
background-color: rgba(255, 255, 255, 0.05) !important;
height: 40px !important;
font-size: 13px;
opacity: 1;
font-size: 14px;
font-weight: 400;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 0.7);
}
.el-table .el-table__body-wrapper .el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
/** 表单布局 **/
.form-header {
font-size: 15px;
color: #6379bb;
border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
padding-bottom: 5px;
}
/** 表格布局 **/
.pagination-container {
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #ffffff none;
border-radius: 4px;
width: 100%;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
@media (max-width: 768px) {
.pagination-container .el-pagination > .el-pagination__jump {
display: none !important;
}
.pagination-container .el-pagination > .el-pagination__sizes {
display: none !important;
}
}
.el-table .fixed-width .el-button--small {
padding-left: 0;
padding-right: 0;
width: inherit;
}
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link {
cursor: pointer;
color: #409eff;
margin-left: 10px;
}
.el-table .el-dropdown,
.el-icon-arrow-down {
font-size: 12px;
}
.el-tree-node__content > .el-checkbox {
margin-right: 8px;
}
.list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px !important;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px !important;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48d1cc;
border-color: #48d1cc;
color: #ffffff;
}
.el-button--cyan {
background-color: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost {
opacity: 0.8;
color: #fff !important;
background: #42b983 !important;
}
/* 表格右侧工具栏样式 */
.top-right-btn {
margin-left: auto;
}

1
src/assets/styles/ruoyi.min.css vendored Normal file
View File

@ -0,0 +1 @@
.pt5{padding-top:5px}.pr5{padding-right:5px}.pb5{padding-bottom:5px}.mt5{margin-top:5px}.mr5{margin-right:5px}.mb5{margin-bottom:5px}.mb8{margin-bottom:8px}.ml5{margin-left:5px}.mt10{margin-top:10px}.mr10{margin-right:10px}.mb10{margin-bottom:10px}.ml10{margin-left:10px}.mt20{margin-top:20px}.mr20{margin-right:20px}.mb20{margin-bottom:20px}.ml20{margin-left:20px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.el-form .el-form-item__label{font-weight:700}.el-dialog:not(.is-fullscreen){margin-top:6vh !important}.el-dialog.scrollbar .el-dialog__body{overflow:auto;overflow-x:hidden;max-height:70vh;padding:10px 20px 0}.el-table{background-color:rgba(255,255,255,0.05) !important}.el-table .el-table__header-wrapper th,.el-table .el-table__fixed-header-wrapper th{word-break:break-word;background-color:rgba(255,255,255,0.05) !important;height:40px !important;font-size:13px;opacity:1;font-size:14px;font-weight:400;letter-spacing:0px;line-height:0px;color:rgba(255,255,255,0.7)}.el-table .el-table__body-wrapper .el-button [class*="el-icon-"]+span{margin-left:1px}.form-header{font-size:15px;color:#6379bb;border-bottom:1px solid #ddd;margin:8px 10px 25px 10px;padding-bottom:5px}.pagination-container{height:25px;margin-bottom:10px;margin-top:15px;padding:10px 20px !important}.tree-border{margin-top:5px;border:1px solid #e5e6e7;background:#ffffff none;border-radius:4px;width:100%}.pagination-container .el-pagination{right:0;position:absolute}@media (max-width: 768px){.pagination-container .el-pagination>.el-pagination__jump{display:none !important}.pagination-container .el-pagination>.el-pagination__sizes{display:none !important}}.el-table .fixed-width .el-button--small{padding-left:0;padding-right:0;width:inherit}.el-table .el-dropdown-link{cursor:pointer;color:#409eff;margin-left:10px}.el-table .el-dropdown,.el-icon-arrow-down{font-size:12px}.el-tree-node__content>.el-checkbox{margin-right:8px}.list-group-striped>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.list-group{padding-left:0px;list-style:none}.list-group-item{border-bottom:1px solid #e7eaec;border-top:1px solid #e7eaec;margin-bottom:-1px;padding:11px 0px;font-size:13px}.pull-right{float:right !important}.el-card__header{padding:14px 15px 7px !important;min-height:40px}.el-card__body{padding:15px 20px 20px 20px !important}.card-box{padding-right:15px;padding-left:15px;margin-bottom:10px}.el-button--cyan.is-active,.el-button--cyan:active{background:#20b2aa;border-color:#20b2aa;color:#ffffff}.el-button--cyan:focus,.el-button--cyan:hover{background:#48d1cc;border-color:#48d1cc;color:#ffffff}.el-button--cyan{background-color:#20b2aa;border-color:#20b2aa;color:#ffffff}.text-navy{color:#1ab394}.text-primary{color:inherit}.text-success{color:#1c84c6}.text-info{color:#23c6c8}.text-warning{color:#f8ac59}.text-danger{color:#ed5565}.text-muted{color:#888888}.img-circle{border-radius:50%}.img-lg{width:120px;height:120px}.avatar-upload-preview{position:absolute;top:50%;transform:translate(50%, -50%);width:200px;height:200px;border-radius:50%;box-shadow:0 0 4px #ccc;overflow:hidden}.sortable-ghost{opacity:0.8;color:#fff !important;background:#42b983 !important}.top-right-btn{margin-left:auto}

View File

@ -1,9 +1,9 @@
/**
/**
* 通用css样式布局处理
* Copyright (c) 2019 ruoyi
*/
/** 基础通用 **/
/** 基础通用 **/
.pt5 {
padding-top: 5px;
}
@ -53,7 +53,18 @@
margin-left: 20px;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
@ -75,13 +86,19 @@
}
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9 !important;
color: #515a6e;
background-color: rgba(255, 255, 255, 0.05) !important;
height: 40px !important;
font-size: 13px;
opacity: 1;
font-size: 14px;
font-weight: 400;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 0.7);
}
}
.el-table__body-wrapper {
@ -89,15 +106,16 @@
margin-left: 1px;
}
}
background-color: rgba(255, 255, 255, 0.05) !important;
}
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-bottom:5px
font-size: 15px;
color: #6379bb;
border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
padding-bottom: 5px;
}
/** 表格布局 **/
@ -113,8 +131,8 @@
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius:4px;
background: #ffffff none;
border-radius: 4px;
width: 100%;
}
@ -123,7 +141,7 @@
position: absolute;
}
@media ( max-width : 768px) {
@media (max-width: 768px) {
.pagination-container .el-pagination > .el-pagination__jump {
display: none !important;
}
@ -141,11 +159,12 @@
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link {
cursor: pointer;
color: #409EFF;
color: #409eff;
margin-left: 10px;
}
.el-table .el-dropdown, .el-icon-arrow-down {
.el-table .el-dropdown,
.el-icon-arrow-down {
font-size: 12px;
}
@ -196,22 +215,22 @@
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
background: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
background: #48d1cc;
border-color: #48d1cc;
color: #ffffff;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
background-color: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
/* text color */
@ -265,10 +284,10 @@
}
/* 拖拽列样式 */
.sortable-ghost{
opacity: .8;
color: #fff!important;
background: #42b983!important;
.sortable-ghost {
opacity: 0.8;
color: #fff !important;
background: #42b983 !important;
}
/* 表格右侧工具栏样式 */

View File

@ -16,6 +16,7 @@ import directive from './directive' // directive
// 注册指令
import plugins from './plugins' // plugins
import { download } from '@/utils/request'
import FitScreen from '@fit-screen/vue'
// svg图标
import 'virtual:svg-icons-register'
@ -68,6 +69,7 @@ app.use(store)
app.use(plugins)
app.use(elementIcons)
app.component('svg-icon', SvgIcon)
app.use(FitScreen)
directive(app)

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,946 @@
/<template>
<div>111</div>
<template>
<div class="center">
<div style="width: 100%; height: 100%" id="cesiumContainer"></div>
<div class="leftWra">
<div class="leftTop">
<div class="title">作物分类面积统计</div>
<div ref="areaDiv" class="areaDiv"></div>
</div>
<div class="leftbottom">
<div class="title">作物类型统计</div>
<div ref="typesofDiv" class="typesofDiv"></div>
</div>
</div>
<div class="rightWra">
<div class="rightTop">
<div class="title">
作物类型统计-高标准农田
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<div ref="farmlandDiv" class="farmlandDiv"></div>
<div ref="ProgressBarDiv" class="ProgressBar"></div>
</div>
<div class="rightbottom">
<div class="title">
作物类型统计-行政区划
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<el-select v-model="value" clearable placeholder="Select">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<div ref="ASdivisionDiv" class="ASdivision"></div>
</div>
</div>
<div class="legend">
<p>图例</p>
<div class="mt-4">
<el-checkbox
style="
background: rgba(102, 142, 214, 0.8);
border: 1px solid rgba(102, 142, 214, 1);
"
v-model="checked3"
label="小麦"
/>
<el-checkbox
style="
background: rgba(255, 225, 104, 0.8);
border: 1px solid rgba(255, 225, 104, 1);
"
v-model="checked4"
label="玉米"
/>
<el-checkbox
style="
background: rgba(156, 220, 130, 0.8);
border: 1px solid rgba(156, 220, 130, 1);
"
v-model="checked3"
label="大豆"
/>
<el-checkbox
style="
background: rgba(209, 91, 127, 0.8);
border: 1px solid rgba(209, 91, 127, 1);
"
v-model="checked4"
label="地瓜"
/>
<el-checkbox
style="
background: rgba(212, 236, 89, 0.8);
border: 1px solid rgba(212, 236, 89, 1);
"
v-model="checked3"
label="花生"
/>
<el-checkbox
style="
background: rgba(50, 211, 235, 0.8);
border: 1px solid rgba(50, 211, 235, 1);
"
v-model="checked4"
label="蓝莓"
/>
<el-checkbox
style="
background: rgba(91, 196, 159, 0.8);
border: 1px solid rgba(91, 196, 159, 1);
"
v-model="checked3"
label="茶叶"
/>
<el-checkbox
style="
background: rgba(254, 182, 77, 0.8);
border: 1px solid rgba(254, 182, 77, 1);
"
v-model="checked4"
label="马铃薯"
/>
<el-checkbox
style="
background: rgba(250, 129, 109, 0.8);
border: 1px solid rgba(250, 129, 109, 1);
"
v-model="checked3"
label="白菜和萝卜"
/>
</div>
</div>
<div class="bottom_center"></div>
</div>
</template>
<script>
export default {
<script setup>
import { ref, onMounted, inject } from 'vue';
import * as echarts from 'echarts';
const viewer = ref(null);
const areaDiv = ref(null);
const typesofDiv = ref(null);
const farmlandDiv = ref(null);
const ProgressBarDiv = ref(null);
const ASdivisionDiv = ref(null);
const value = ref('');
var data = {
title: ['区域一', '区域二', '区域三', '区域四', '区域五', '区域六', '区域七', '区域八'],
corn: [333.3, null, 500, 500, 333.3, null, 333.3, 500],
soybean: [333.3, null, null, null, 333.3, null, 333.3, null],
peanut: [333.3, 500, 500, null, 333.3, 500, 333.3, null],
wheat: [null, 500, null, 500, null, 500, null, null],
Blueberries: [null, null, null, null, null, null, null, 500],
};
const options = [
{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
];
//
onMounted(() => {
initMap();
areachar();
typesof();
farmland();
ProgressBar();
ASdivision();
});
function initMap() {
viewer.value = new Cesium.Viewer('cesiumContainer', {});
}
//
function areachar() {
const areaDivIntance = echarts.init(areaDiv.value);
var option = {
// backgroundColor: 'rgba(255, 255, 255, 0.1)',
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
grid: {
top: '15%',
right: '3%',
left: '11%',
bottom: '12%',
},
xAxis: [
{
type: 'category',
data: ['小麦', '玉米', '大豆', '花生', '蓝莓'],
axisLine: {
lineStyle: {
color: '#C0C4CC',
width: 1,
},
},
axisTick: {
show: false,
},
axisLabel: {
margin: 10,
color: 'rgba(255, 255, 255, 0.7)',
textStyle: {
fontSize: 14,
},
},
},
],
yAxis: [
{
axisLabel: {
formatter: '{value}',
color: 'rgba(255, 255, 255, 0.7)',
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
lineStyle: {
color: 'rgba(192,196,204,1)',
type: 'dashed',
},
},
name: '面积(亩)',
},
],
series: [
{
name: '面积',
type: 'bar',
data: [3598, 1235, 2354, 3251, 1652],
barWidth: '14px',
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: 'rgba(71,179,161,0.8)', // 0%
},
{
offset: 1,
color: 'rgba(212,236,89,1) ', // 100%
},
],
false
),
barBorderRadius: [30, 30, 30, 30],
label: {
show: true,
position: 'top',
formatter: '{c}',
textStyle: {
color: 'rgba(255, 255, 255, 0.8)',
fontSize: '14',
},
},
},
},
},
],
legend: {
right: 0,
top: 14,
data: ['面积'],
textStyle: {
color: ' rgba(255,255,255,0.7)',
fontSize: '14',
},
},
};
option && areaDivIntance.setOption(option);
}
function typesof() {
const typesofDivIntance = echarts.init(typesofDiv.value);
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)',
},
color: [
'rgba(212,236,89,0.8)',
'rgba(102,142,214,0.8)',
'rgba(156,220,130,0.8)',
'rgba(255,225,104,0.8)',
], //
legend: {
orient: 'vertical', //
icon: 'rect', //
x: 'center', //
bottom: 'bottom',
data: ['花生', '小麦', '大豆', '玉米'],
textStyle: {
color: ' rgba(255,255,255,0.7)',
fontSize: '14',
},
},
series: [
{
name: '占比',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: true,
label: {
normal: {
show: true,
position: 'left',
textStyle: {
color: 'rgba(41,255,219,1)',
},
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold',
},
},
},
labelLine: {
show: true,
normal: {
show: true,
},
},
data: [
{ value: 25, name: '花生' },
{ value: 25, name: '小麦' },
{ value: 25, name: '大豆' },
{ value: 25, name: '玉米' },
],
},
],
};
option && typesofDivIntance.setOption(option);
}
function farmland() {
const farmlandDivIntance = echarts.init(farmlandDiv.value);
var option = {
title: {
text: '',
subtext: '',
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
legend: {
icon: 'circle',
left: 'center',
top: '5',
show: true,
},
grid: {
containLabel: true,
bottom: '10%',
},
xAxis: {
type: 'category',
data: ['区域一', '区域二', '区域三', '区域四', '区域五'],
axisLine: {
lineStyle: {
color: '#C0C4CC',
width: 1,
},
},
axisTick: {
show: false,
},
axisLabel: {
margin: 10,
color: 'rgba(255, 255, 255, 0.7)',
textStyle: {
fontSize: 14,
},
},
},
yAxis: {
type: 'value',
splitLine: {
lineStyle: {
color: 'rgba(192,196,204,1)',
type: 'dashed',
},
},
},
series: [
{
name: '生活',
type: 'bar',
barWidth: 14,
stack: '数量',
data: [1666, 1666, 1666, 1666, 1666],
itemStyle: {
normal: {
//
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(102, 142, 214, 0.8)',
},
{
offset: 1,
color: 'rgba(102, 142, 214, 0.8)',
},
]),
},
},
},
{
name: '工业',
type: 'bar',
barWidth: 30,
stack: '数量',
data: [1666, 1666, 1666, 1666, 1666],
itemStyle: {
normal: {
//
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(255, 225, 104, 0.8)',
},
{
offset: 1,
color: 'rgba(255, 225, 104, 0.8)',
},
]),
},
},
},
{
name: '农业',
type: 'bar',
barWidth: 30,
stack: '数量',
data: [1666, 1666, 1666, 1666, 1666],
itemStyle: {
normal: {
//
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(209, 91, 127, 0.8)',
},
{
offset: 1,
color: 'rgba(209, 91, 127, 0.8)',
},
]),
},
},
},
],
};
option && farmlandDivIntance.setOption(option, { notMerge: true, grid: { bottom: 20 } });
}
function ProgressBar() {
const ProgressBarDivIntance = echarts.init(ProgressBarDiv.value);
var option = {
// backgroundColor: '#031d33',
grid: {
top: 0,
bottom: 0,
left: '10%',
right: '10%',
},
xAxis: {
show: false,
type: 'value',
boundaryGap: [0, 0],
},
yAxis: [
{
type: 'category',
data: [''],
axisLine: { show: false },
axisTick: [
{
show: false,
},
],
},
],
series: [
{
name: '金额',
type: 'bar',
zlevel: 1,
itemStyle: {
normal: {
barBorderRadius: 30,
color: new echarts.graphic.LinearGradient(1, 0, 0, 1, [
{
offset: 1,
color: 'rgba(7,99,84,0.95) ',
},
{
offset: 0,
color: 'rgba(71,179,161,0.95)',
},
]),
},
},
barWidth: 20,
data: [10],
},
{
name: '背景',
type: 'bar',
barWidth: 20,
barGap: '-100%',
data: [20],
itemStyle: {
normal: {
color: 'rgba(255, 255, 255, 0.2)',
barBorderRadius: 50,
},
},
},
],
};
option && ProgressBarDivIntance.setOption(option);
}
function ASdivision(params) {
const ASdivisionDivIntance = echarts.init(ASdivisionDiv.value);
var option = {
// title: {
// text: 'BY',
// left: '1%',
// top: '1%',
// textStyle: {
// fontSize: 16,
// color: '#9d9d9d',
// fontWeight: 'bold',
// },
// },
// legend: {
// data: ['', ''],
// orient: 'horizontal',
// itemHeight: 20,
// itemWidth: 40,
// left: '30%',
// top: '8%',
// textStyle: {
// fontSize: 16,
// },
// },
//
grid: {
bottom: '8%',
left: '6%',
right: '6%',
top: '6%',
containLabel: true,
},
// X
xAxis: {
type: 'value', // , 'value'
//
axisTick: {
show: false, //
},
// 线
axisLine: {
// 线
show: false, // 线
},
// 线
splitLine: {
show: false, // 线
},
//
axisLabel: {
show: false, //
},
},
// Y
yAxis: [
// Y
{
// , 'category'
// data
type: 'category',
//
axisTick: {
show: false, //
},
// 线
axisLine: {
// 线
show: false, // 线
lineStyle: {
// 线线
color: '#cdd3ee',
},
},
// 线
splitLine: {
show: false, // 线
},
//
axisLabel: {
show: true, //
fontSize: 16, //
color: 'rgba(255, 255, 255, 1)', //
// 使 {value}
formatter: '{value}',
},
// type: 'category'
data: data.title,
inverse: true,
},
],
//
series: [
{
type: 'bar', //
name: '玉米', // , tooltip, legend
// stack
stack: '总量',
barMaxWidth: 30, //
//
label: {
show: true,
position: 'inside',
formatter: '玉米',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
color: 'rgba(255,255,255,1)',
},
},
//
itemStyle: {
color: '#fdad3c',
},
data: data.corn, //
},
{
type: 'bar', //
name: '大豆', // , tooltip, legend
// stack
stack: '总量',
barMaxWidth: 30, //
//
label: {
show: true,
position: 'inside',
formatter: '大豆',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
color: 'rgba(255,255,255,1)',
},
},
//
itemStyle: {
color: 'rgba(156, 220, 130, 0.8)',
},
data: data.soybean, //
},
{
type: 'bar', //
name: '花生', // , tooltip, legend
// stack
stack: '总量',
barMaxWidth: 30, //
//
label: {
show: true,
position: 'inside',
formatter: '花生',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
color: 'rgba(255,255,255,1)',
},
},
//
itemStyle: {
color: 'rgba(212, 236, 89, 0.8)',
},
data: data.peanut, //
},
{
type: 'bar', //
name: '小麦', // , tooltip, legend
// stack
stack: '总量',
barMaxWidth: 30, //
//
label: {
show: true,
position: 'inside',
formatter: '小麦',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
color: 'rgba(255,255,255,1)',
},
},
//
itemStyle: {
color: 'rgba(102, 142, 214, 0.8)',
},
data: data.wheat, //
},
{
type: 'bar', //
name: '蓝莓', // , tooltip, legend
// stack
stack: '总量',
barMaxWidth: 30, //
//
label: {
show: true,
position: 'inside',
formatter: '蓝莓',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
color: 'rgba(255,255,255,1)',
},
},
//
itemStyle: {
color: 'rgba(50, 211, 235, 0.8)',
},
data: data.Blueberries, //
},
],
};
option && ASdivisionDivIntance.setOption(option);
}
</script>
<style>
<style lang="scss" scoped>
$height: calc(100vh - 100px);
.center {
width: 100%;
height: 100%;
.title {
width: 100%;
height: 45px;
background: url('@/assets/images/title.png');
color: #fff;
font-size: 18px;
font-weight: 700;
line-height: 45px;
padding-left: 46px;
display: flex;
align-items: center;
justify-content: space-between;
p {
width: 79px;
height: 25px;
border-radius: 20px;
background: linear-gradient(
180deg,
rgba(16, 111, 111, 1) 0%,
rgba(47, 214, 214, 1) 100%
);
border: 1.5px solid rgba(23, 194, 180, 1);
display: flex;
justify-content: center;
align-items: center;
margin-right: 30px;
}
}
}
.leftWra {
position: absolute;
left: 20px;
top: 50px;
width: 455px;
height: 957px;
opacity: 1;
background: rgba(2, 31, 26, 0.3);
.leftTop {
width: 455px;
height: 397px;
opacity: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
.areaDiv {
width: 415px;
height: 327px;
opacity: 1;
display: flex;
padding: 1px;
}
}
.leftbottom {
width: 455px;
height: 337px;
opacity: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
.typesofDiv {
width: 410px;
height: 267px;
}
}
}
.rightWra {
position: absolute;
top: 50px;
right: 20px;
width: 455px;
height: 957px;
opacity: 1;
display: flex;
flex-direction: column;
align-items: center;
background: rgba(2, 31, 26, 0.3);
.rightTop {
width: 455px;
height: 439px;
opacity: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
.farmlandDiv {
width: 415px;
height: 340px;
opacity: 1;
}
.ProgressBar {
width: 372px;
height: 9px;
opacity: 1;
}
}
.rightbottom {
width: 455px;
height: 490px;
opacity: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
.el-select {
width: 400px;
font-size: 14px;
color: #333;
background: rgba(22, 94, 102, 1);
border: 1px solid rgba(4, 153, 153, 1) !important;
margin-top: 20px;
:deep(.el-input__wrapper) {
background-color: transparent;
}
}
.ASdivision {
width: 415px;
height: 368px;
opacity: 1;
}
}
}
.legend {
position: absolute;
left: 1296px;
top: 540px;
width: 129px;
height: 338px;
opacity: 1;
border-radius: 4px;
background: rgba(2, 31, 26, 0.6);
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
padding: 10px 10px 10px 10px;
p {
margin: 10px;
font-size: 14px;
font-weight: 400;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: center;
}
.mt-4 {
.el-checkbox--large {
height: 30px;
width: 108px;
margin-bottom: 2px;
margin: 2px 10px;
padding-left: 10px;
font-size: 14px;
font-weight: 400;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: left;
}
}
:deep(.el-checkbox__label) {
color: rgba(255, 255, 255, 1);
}
}
.bottom_center {
position: fixed;
left: 693px;
top: 975px;
width: 732px;
height: 75px;
opacity: 1;
border-radius: 5px;
background: rgba(2, 31, 26, 0.6);
border: 1px solid rgba(4, 153, 153, 1);
}
</style>

View File

@ -3,22 +3,66 @@
<div style="width: 100%; height: 100%" id="cesiumContainer"></div>
<div class="leftWra">
<div class="leftTop">
<div class="title">1111</div>
<div class="title">
种植面积时间统计
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<div ref="areaDiv" class="areaDiv"></div>
<div ref="leftProgressBarDiv" class="ProgressBar"></div>
</div>
<div class="leftbottom">
<div class="title">1111</div>
<div class="title">
种植面积统计
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<div ref="typesofDiv" class="typesofDiv"></div>
<div class="tableDiv">
<el-table max-height="200" class="ones" :data="tableData" style="width: 415px">
<el-table-column prop="date" label="类型" />
<el-table-column prop="name" label="面积" />
<el-table-column prop="address" label="占比" />
</el-table>
</div>
</div>
</div>
<div class="rightWra">
<div class="rightTop">
<div class="title">1111</div>
<div class="title">
作物类型统计-高标准农田
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<div ref="farmlandDiv" class="farmlandDiv"></div>
<div ref="ProgressBarDiv" class="ProgressBar"></div>
</div>
<div class="rightbottom">
<div class="title">1111</div>
<div class="title">
作物类型统计-行政区划
<p>
下载 &nbsp;
<img
src="@/assets/icons/svg/downloads.svg"
style="width: 14px; height: 14px; cursor: pointer"
/>
</p>
</div>
<el-select v-model="value" clearable placeholder="Select">
<el-option
v-for="item in options"
@ -108,6 +152,14 @@
</div>
</div>
<div class="bottom_center"></div>
<div class="tool">
<span><img src="@/assets/images/LAYER.png" alt="" /></span>
<span><img src="@/assets/images/amplify.png" alt="" /></span>
<span><img src="@/assets/images/reduce.png" alt="" /></span>
<span><img src="@/assets/images/measure.png" alt="" /></span>
<span><img src="@/assets/images/face.png" alt="" /></span>
<span><img src="@/assets/images/position.png" alt="" /></span>
</div>
</div>
</template>
@ -122,13 +174,16 @@ const farmlandDiv = ref(null);
const ProgressBarDiv = ref(null);
const ASdivisionDiv = ref(null);
const value = ref('');
const leftProgressBarDiv = ref(null);
//
var data = {
title: ['区域一', '区域二', '区域三', '区域四', '区域五', '区域六', '区域七', '区域八'],
corn: [333.3, null, 500, 500, 333.3, null, 333.3, 500],
soybean: [333.3, null, null, null, 333.3, null, 333.3, null],
peanut: [333.3, 500, 500, null, 333.3, 500, 333.3, null],
wheat: [null, 500, null, 500, null, 500, null, null],
Blueberries: [null, null, null, null, null, null, null, 500],
soybean: [45.3, null, null, null, 333.3, null, 333.3, null],
peanut: [145.3, 500, 500, null, 333.3, 500, 333.3, null],
wheat: [200, 500, null, 500, null, 500, null, null],
Blueberries: [124, null, null, null, null, null, null, 500],
};
const options = [
{
@ -140,6 +195,35 @@ const options = [
label: 'Option2',
},
];
//
const tableData = [
{
date: '小麦',
name: '12364亩',
address: '35%',
},
{
date: '玉米',
name: '6823亩',
address: '20%',
},
{
date: '大豆',
name: '5682亩',
address: '15%',
},
{
date: '地瓜',
name: '8964亩',
address: '16%',
},
{
date: '花生',
name: '3550亩',
address: '14%',
},
];
//
onMounted(() => {
initMap();
@ -148,6 +232,7 @@ onMounted(() => {
farmland();
ProgressBar();
ASdivision();
leftProgressBar();
});
function initMap() {
viewer.value = new Cesium.Viewer('cesiumContainer', {});
@ -155,119 +240,306 @@ function initMap() {
//
function areachar() {
const xAxisData = [
'2023/03/06',
'2023/04/06',
'2023/05/06',
'2023/06/06',
'2023/07/06',
'2023/08/06',
'2023/09/06',
];
const areaDivIntance = echarts.init(areaDiv.value);
var option = {
// backgroundColor: 'rgba(255, 255, 255, 0.1)',
textStyle: {
fontFamily: 'Din-Light',
},
color: [
'#123dac',
'#73e2e2',
'#ff7e85',
'#9b52ff',
'#fac524',
'#46caff',
'#a1e867',
'#10b2b2',
'#ec87f7',
'#f4905a',
'#00baba',
'#facf24',
'#e89d67',
'#23c6c6',
'#fa8699',
'#40b7fc',
'#006d75',
'#595959',
'#f4764f',
'#a640fc',
'#fda23f',
'#2d7ae4',
'#5092ff',
'#9351ed',
'#8a89fe',
'#df89e8',
'#2797ff',
'#6ad089',
'#7c92e8 ',
],
title: {
text: '',
left: '47%',
textStyle: {
fontSize: 24,
},
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
lineStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: 'rgba(0, 255, 233,0)',
},
{
offset: 0.5,
color: 'rgba(255, 255, 255,1)',
},
{
offset: 1,
color: 'rgba(0, 255, 233,0)',
},
],
global: false,
},
},
},
},
grid: {
top: '15%',
right: '3%',
left: '11%',
bottom: '12%',
left: 60,
right: 25,
top: 50,
bottom: 50,
},
xAxis: [
{
xAxis: {
type: 'category',
data: ['小麦', '玉米', '大豆', '花生', '蓝莓'],
axisLine: {
lineStyle: {
color: '#C0C4CC',
width: 1,
},
},
axisTick: {
show: false,
},
boundaryGap: true,
data: xAxisData,
axisLabel: {
margin: 10,
color: 'rgba(255, 255, 255, 0.7)',
textStyle: {
fontSize: 14,
color: 'rgba(255,255,255,0.7)',
//X label
formatter: (value, index) => {
if (index === 0 || index === xAxisData.length - 1) {
return '';
}
return value;
},
},
},
],
yAxis: [
{
axisLabel: {
formatter: '{value}',
color: 'rgba(255, 255, 255, 0.7)',
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
yAxis: {
name: '面积(亩)',
nameTextStyle: {
color: 'gray',
},
type: 'value',
axisLabel: {
color: 'rgba(255,255,255,0.7)',
},
splitLine: {
lineStyle: {
color: 'rgba(192,196,204,1)',
type: 'dashed',
},
},
name: '面积(亩)',
minInterval: 1,
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
series: [
{
name: '白起',
data: [
1200, 1700, 1340, 2460, 2790, 211, 124, 131, 124, 360, 124, 78, 160, 604, 17, 0,
0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
],
type: 'line',
smooth: true,
smoothMonotone: 'x',
cursor: 'pointer',
showSymbol: false,
lineStyle: {
shadowColor: 'rgba(18,61,172,0.5)',
shadowBlur: 10,
},
},
{
name: '李泽言',
data: [
2200, 1790, 2494, 3130, 2710, 3180, 2350, 3410, 51, 146, 31, 41, 61, 485, 5, 0,
0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
],
type: 'line',
smooth: true,
smoothMonotone: 'x',
cursor: 'pointer',
showSymbol: false,
lineStyle: {
shadowColor: 'rgba(115,226,226,0.5)',
shadowBlur: 10,
},
},
{
name: '许墨',
data: [
2800, 1740, 3450, 2340, 2710, 1430, 3232, 42, 42, 115, 41, 33, 64, 312, 4, 0, 0,
0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
],
type: 'line',
smooth: true,
smoothMonotone: 'x',
cursor: 'pointer',
showSymbol: false,
lineStyle: {
shadowColor: 'rgba(255,126,133,0.5)',
shadowBlur: 10,
},
},
{
name: '许墨',
data: [
3500, 1400, 2342, 1299, 3420, 2233, 2321, 42, 42, 115, 41, 33, 64, 312, 4, 0, 0,
0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
],
type: 'line',
smooth: true,
smoothMonotone: 'x',
cursor: 'pointer',
showSymbol: false,
lineStyle: {
shadowColor: 'rgba(255,120,133,0.5)',
shadowBlur: 10,
},
},
],
};
option && areaDivIntance.setOption(option);
window.addEventListener("resize",function (){
areaDivIntance.resize();
});
}
function leftProgressBar() {
const leftProgressBarrDivIntance = echarts.init(leftProgressBarDiv.value);
var option = {
// backgroundColor: '#031d33',
grid: {
top: 0,
bottom: 0,
left: '10%',
right: '10%',
},
xAxis: {
show: false,
type: 'value',
boundaryGap: [0, 0],
},
yAxis: [
{
type: 'category',
data: [''],
axisLine: { show: false },
axisTick: [
{
show: false,
},
],
},
],
series: [
{
name: '面积',
name: '金额',
type: 'bar',
data: [3598, 1235, 2354, 3251, 1652],
barWidth: '14px',
zlevel: 1,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: 'rgba(71,179,161,0.8)', // 0%
},
barBorderRadius: 30,
color: new echarts.graphic.LinearGradient(1, 0, 0, 1, [
{
offset: 1,
color: 'rgba(212,236,89,1) ', // 100%
color: 'rgba(7,99,84,0.95) ',
},
],
false
),
barBorderRadius: [30, 30, 30, 30],
label: {
show: true,
position: 'top',
formatter: '{c}',
textStyle: {
color: 'rgba(255, 255, 255, 0.8)',
fontSize: '14',
{
offset: 0,
color: 'rgba(71,179,161,0.95)',
},
]),
},
},
barWidth: 20,
data: [10],
},
{
name: '背景',
type: 'bar',
barWidth: 20,
barGap: '-100%',
data: [20],
itemStyle: {
normal: {
color: 'rgba(255, 255, 255, 0.2)',
barBorderRadius: 50,
},
},
},
],
legend: {
right: 0,
top: 14,
data: ['面积'],
textStyle: {
color: ' rgba(255,255,255,0.7)',
fontSize: '14',
},
},
};
option && areaDivIntance.setOption(option);
option && leftProgressBarrDivIntance.setOption(option);
}
function typesof() {
const typesofDivIntance = echarts.init(typesofDiv.value);
var option = {
title: [
{
text: '总面积',
x: 'center',
top: '32%',
textStyle: {
color: 'rgba(255,255,255,1)',
fontSize: 14,
fontWeight: '400',
},
},
{
text: '123459亩',
x: 'center',
top: '50%',
textStyle: {
fontSize: 18,
color: 'rgba(255, 213, 88, 1)',
foontWeight: '400',
},
},
],
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)',
@ -279,14 +551,33 @@ function typesof() {
'rgba(255,225,104,0.8)',
], //
legend: {
orient: 'vertical', //
icon: 'rect', //
x: 'center', //
bottom: 'bottom',
data: ['花生', '小麦', '大豆', '玉米'],
selectedMode: true, //
type: 'plain',
orient: 'vertical',
left: '85%',
top: 'center',
align: 'left',
itemGap: 20,
itemWidth: 12, //
itemHeight: 7, //
symbolKeepAspect: false,
textStyle: {
color: ' rgba(255,255,255,0.7)',
fontSize: '14',
color: 'rgba(255,255,255,0.7)',
rich: {
name: {
verticalAlign: 'right',
align: 'left',
width: 90,
fontSize: 18,
color: '#D8DDE3',
},
value: {
align: 'left',
width: 50,
fontSize: 18,
color: '#D8DDE3',
},
},
},
},
series: [
@ -297,7 +588,7 @@ function typesof() {
avoidLabelOverlap: true,
label: {
normal: {
show: true,
show: false, //label
position: 'left',
textStyle: {
color: 'rgba(41,255,219,1)',
@ -318,10 +609,11 @@ function typesof() {
},
},
data: [
{ value: 25, name: '花生' },
{ value: 25, name: '小麦' },
{ value: 25, name: '大豆' },
{ value: 25, name: '玉米' },
{ value: 25, name: '大豆' },
{ value: 25, name: '地瓜' },
{ value: 25, name: '花生' },
],
},
],
@ -515,7 +807,6 @@ function ProgressBar() {
itemStyle: {
normal: {
color: 'rgba(255, 255, 255, 0.2)',
barBorderRadius: 50,
},
},
@ -528,27 +819,6 @@ function ProgressBar() {
function ASdivision(params) {
const ASdivisionDivIntance = echarts.init(ASdivisionDiv.value);
var option = {
// title: {
// text: 'BY',
// left: '1%',
// top: '1%',
// textStyle: {
// fontSize: 16,
// color: '#9d9d9d',
// fontWeight: 'bold',
// },
// },
// legend: {
// data: ['', ''],
// orient: 'horizontal',
// itemHeight: 20,
// itemWidth: 40,
// left: '30%',
// top: '8%',
// textStyle: {
// fontSize: 16,
// },
// },
//
grid: {
bottom: '8%',
@ -627,7 +897,10 @@ function ASdivision(params) {
label: {
show: true,
position: 'inside',
formatter: '玉米',
formatter: function (p) {
console.log(p);
return p.value > 400 ? p.value : '';
},
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
@ -650,7 +923,7 @@ function ASdivision(params) {
label: {
show: true,
position: 'inside',
formatter: '大豆',
formatter: '',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
@ -673,7 +946,7 @@ function ASdivision(params) {
label: {
show: true,
position: 'inside',
formatter: '花生',
formatter: '',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
@ -696,7 +969,7 @@ function ASdivision(params) {
label: {
show: true,
position: 'inside',
formatter: '小麦',
formatter: '',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
@ -719,7 +992,7 @@ function ASdivision(params) {
label: {
show: true,
position: 'inside',
formatter: '蓝莓',
formatter: '',
textStyle: {
fontSize: 14,
fontWeight: 'bolder',
@ -746,21 +1019,44 @@ $height: calc(100vh - 100px);
.title {
width: 100%;
height: 45px;
background: #ccc;
background: url('@/assets/images/title.png');
color: #fff;
font-size: 18px;
font-weight: 700;
line-height: 45px;
padding-left: 46px;
display: flex;
align-items: center;
justify-content: space-between;
p {
width: 79px;
height: 25px;
border-radius: 20px;
background: linear-gradient(
180deg,
rgba(16, 111, 111, 1) 0%,
rgba(47, 214, 214, 1) 100%
);
border: 1.5px solid rgba(23, 194, 180, 1);
display: flex;
justify-content: center;
align-items: center;
margin-right: 20px;
}
}
}
.leftWra {
position: absolute;
left: 20px;
top: 50px;
width: 455px;
top: 3%;
width: 24%;
height: 957px;
opacity: 1;
background: rgba(2, 31, 26, 0.3);
.leftTop {
width: 455px;
width: 100%;
height: 397px;
opacity: 1;
display: flex;
@ -768,15 +1064,20 @@ $height: calc(100vh - 100px);
justify-content: flex-start;
align-items: center;
.areaDiv {
width: 415px;
width: 100%;
height: 327px;
opacity: 1;
display: flex;
padding: 1px;
}
.ProgressBar {
width: 372px;
height: 9px;
opacity: 1;
}
}
.leftbottom {
width: 455px;
width: 100%;
height: 337px;
opacity: 1;
display: flex;
@ -787,14 +1088,35 @@ $height: calc(100vh - 100px);
width: 410px;
height: 267px;
}
.tableDiv {
background: rgba(255, 255, 255, 0.05);
display: flex;
justify-content: center;
:deep(.ones) {
width: 100%;
height: 171;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
--el-table-tr-bg-color: null;
--el-table-border-color: null;
font-size: 14px;
font-weight: 400;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
}
}
}
}
.rightWra {
position: absolute;
top: 50px;
position:absolute;
top: 3%;
right: 20px;
width: 455px;
width: 24%;
height: 957px;
opacity: 1;
display: flex;
@ -802,7 +1124,7 @@ $height: calc(100vh - 100px);
align-items: center;
background: rgba(2, 31, 26, 0.3);
.rightTop {
width: 455px;
width: 100%;
height: 439px;
opacity: 1;
display: flex;
@ -810,7 +1132,7 @@ $height: calc(100vh - 100px);
justify-content: flex-start;
align-items: center;
.farmlandDiv {
width: 415px;
width: 100%;
height: 340px;
opacity: 1;
}
@ -821,7 +1143,7 @@ $height: calc(100vh - 100px);
}
}
.rightbottom {
width: 455px;
width: 100%;
height: 490px;
opacity: 1;
display: flex;
@ -850,7 +1172,7 @@ $height: calc(100vh - 100px);
.legend {
position: absolute;
left: 1296px;
right: 26%;
top: 540px;
width: 129px;
height: 338px;
@ -893,8 +1215,8 @@ $height: calc(100vh - 100px);
.bottom_center {
position: absolute;
left: 693px;
top: 900px;
right: 26%;
bottom: 5%;
width: 732px;
height: 75px;
opacity: 1;
@ -902,4 +1224,16 @@ $height: calc(100vh - 100px);
background: rgba(2, 31, 26, 0.6);
border: 1px solid rgba(4, 153, 153, 1);
}
.tool {
position: absolute;
right: 26%;
top: 103px;
width: 30px;
height: 280px;
opacity: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
</style>