response/target/classes/public/fengxianmap_quanguo.html
2025-06-27 10:04:22 +08:00

440 lines
17 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=0">
<title></title>
<script src="./lib/jquery/dist/jquery.js"></script>
<script src="./lib/vuejs/vue.js"></script>
<!--<script src="lib/echarts/echarts.min.js"></script>-->
<script src="./lib/echarts5temp/composition-api1.0.0-rc.js"></script>
<script src="./lib/echarts5temp/echarts5.0.2.js"></script>
<!--<script src="../lib/echarts5temp/vue-echarts6.0.0-beta.js"></script>-->
<script src="./lib/vuejs/axios.min.js"></script>
<script src="./lib/elementui/index2.15.9v.js"></script>
<script src="./lib/linq.js/Content/Scripts/linq.min.js"></script>
<link href="./lib/elementui/index2.15.9v.css" rel="stylesheet" />
<script src="map/quanguo.js"></script>
</head>
<body style="background-color: #50647a;">
<div id="app" style="background-color: #50647a">
<el-container v-loading="loading" v-loading.fullscreen.lock="false" :element-loading-text="showLoadingTip"
element-loading-spinner="el-icon-loading" element-loading-background="#50647a">
<el-header style="margin-top: 30px;" >
<el-row>
<el-col :span="24">
<div class="grid-content">
年份选择:
<el-select v-model="selYear" multiple collapse-tags placeholder="请选择年份">
<el-option v-for="(item,index) in [2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022]"
:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
检测项目:
<el-select v-model="selProject"
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading">
<el-option v-for="item in options"
:key="item.JCXM"
:label="item.JCXM"
:value="item.JCXM">
</el-option>
</el-select>
<el-button primary @click="readDataWithJCXM">加载数据</el-button>
</div>
<!--<div class="subTitle">{{subTitle}}</div>-->
</el-col>
</el-row>
<!--//设置抽屉组件的高度通过页面下方的css设置-->
<el-drawer title="缓存管理" :visible.sync="drawer" :direction="direction" :before-close="handleClose"
size="26%">
<div>
<!--组合查询设计,浅笑写代码的地方...-->
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="检测项目预缓存">
<el-select v-model="selProject"
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading">
<el-option v-for="item in options"
:key="item.JCXM"
:label="item.JCXM"
:value="item.JCXM">
</el-option>
</el-select>
<el-button primary @click="readDataWithJCXM">加载数据</el-button>
</el-form-item>
</el-form>
<el-button style="width: 100px;display: block;margin-left: auto;margin-right: auto;margin-top: 0px;margin-bottom: 100px;"
@click="getFengXianData">生成缓存</el-button>
<!--这块写入相关的选择框-->
<el-divider></el-divider>
</div>
</el-drawer>
</el-header>
<el-main style="padding:0">
<!--左边显示的详细情况按钮,此时暂时隐藏的方式-->
<el-popover placement="right" width="400" trigger="click" style="visibility:hidden">
<div style="width:400px;">
<span v-if="jcxm_value!=''">检测项目:{{jcxm_value}}</span>
</div>
<el-button slot="reference" icon="el-icon-arrow-right" circle
style="position:absolute;top:50%;z-index:2"></el-button>
</el-popover>
<div id="main" v-show="mapShow==true" style="width: 100%; height:580px;">
</div>
</el-main>
</el-container>
</div>
</body>
</html>
<script>
///////////////////////////////////////////////////
//该部分是Vue应用封装
var app = new Vue({
el: '#app',
data() {
return {
mapShow: true,
//selYear: ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020','2021'],
selArea: ["安徽省",
"北京市",
"福建省",
"甘肃省",
"广东省",
"广西壮族自治区",
"贵州省",
"海南省",
"河北省",
"河南省",
"黑龙江省",
"湖北省",
"湖南省",
"吉林省",
"江苏省",
"江西省",
"辽宁省",
"内蒙古自治区",
"宁夏回族自治区",
"青海省",
"山东省",
"山西省",
"陕西省",
"上海市",
"四川省",
"天津市",
"西藏自治区",
"新疆维吾尔自治区",
"云南省",
"浙江省",
"重庆市",
'台湾省',
'香港特别行政区',
'澳门特别行政区'],
//全选
checkAll: true,
//组合查询显示关闭
drawer: false,
//自由查询显示关闭
free: false,
//弹出界面的方向设定
direction: 'ttb',
loading: false,
condition: '',
//showMapTip: ' 食品实时监管统计数据展示',
showLoadingTip: '正在进行海量实时数据计算,请等待...',
jcxm_value: '铅', //检测项目查询字段
options: [],//监测项目
pageProjects: [], //页面上面动态的下拉菜单
selYear: [2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022],
selProject: '铅',//当前选择的项目名称
arrBaoLuLiang: [], //保留字段,为了后期更好的展示数据
bigTitle: '主标题',
subTitle: '子标题'
}
},
mounted() {
this.loading = true;
Vue.prototype.$loading = this.loading
window.dataList = [];
this.remoteMethod('');
this.readDataWithJCXM(this.selProject);
},
methods: {
//清空查询
nullFunction() {
var _this = this; //this指向vue
_this.loading = true;
_this.jcxm_value = "";
let str = "jcxm=0";
_this.loading = false;
},
//新的方法实时读取
//直接动态读取页面缓存数据
readDataWithJCXM(e) {
console.log('查看项目名称', this.selProject)
console.log('查看选择年份', "'" + this.selYear.join("','") + "'");
var _this = this; //this指向vue
var pubProject = this.selProject;
var pubYears = JSON.stringify(this.selYear)
_this.loading = true;
window.dataList = [];
axios.get('PageCache/GetDanWeiFromXFL?name=' + _this.selProject).then(res => {
console.log('danweires', res)
option.title.text = '食品小类风险评估-' + _this.selProject + '(' + res.data.data + ")";
console.log('_this.selProject', _this.selProject);
axios.get('./FengXianPingGu/GetSearchQXMapResult?strJCXM=' + pubProject + '&strYears=' + pubYears + "&strField=SCZDZ_S").then((res) => {
_this.bigTitle = '食品小类风险评估-' + pubProject;
console.log('全量查询返回值', res.data);
let dRes = res.data.data;
dRes.forEach(function (element) {
window.dataList.push(element);
});
//'食品小类风险评估-铅', + _this.selProject
console.log(window.dataList);
myChart.clear();
option.series[0].data = window.dataList;
let curMax = Enumerable.From(window.dataList).Select('$.value').Max();
let curMin = Enumerable.From(window.dataList).Select('$.value').Min();
console.log('max_min_text', curMax, curMin)
option.visualMap = {
seriesIndex: 0,
min: curMin,
max: curMax,
left: "left",
top: "bottom",
text: ['高', '低'], // 文本,默认为数值文本
calculable: true,
precision: 6,
textStyle: { color: 'white' },
}
myChart.setOption(option);
setTimeout(function () {
_this.loading = false;
}, 1000)
})
})
},
remoteMethod(query) {
var _this = this;
if (query !== '') {
this.loading = true;
//编写从服务器获取数据的方法
axios.get('./PageCache/GetDynamicSearchList?str=' + query).then((res) => {
console.log('res', res.data.data)
_this.options = res.data.data;
_this.loading = false;
});
} else {
this.options = [];
}
},
//查询窗体关闭的响应动作
handleClose(done) {
done();
},
setTitle(e) { console.log(e) }
}
})
//初始化界面地图层
var myChart = echarts.init(document.getElementById('main'));
echarts.registerMap('china', geoJson);
//设定地图的显示中心点
var mapDisplayCenter = [121.4648, 31.2891];
option = {
title: {
//text: '食品小类风险评估-铅',
//这块文本显示先隐藏不需要的
text:'',
textStyle: {
fontSize: 20,
color: '#fff'
},
x: 'center',
y:25
},
tooltip: {
show: true,
//triggerOn: "click",
formatter: function (e, t, n) {
return .5 == e.value ? e.name + ":有疑似病例" : e.seriesName + "<br />" + e.name + "" + e.value
}
},
//设置显示的颜色
visualMap: {
//type: 'continuous',
min: 0,
max: 1000,
left: 26,
bottom: 40,
showLabel: !0,
text: ["高", "低"],
textStyle: {
fontSize: 10,
color: '#fff'
},
pieces: [{
gt: 0.0003,
label: "> 0.0003",
color: "#7f1100"
}, {
gte: 0.0002,
lte: 0.0003,
label: "0.0002 - 0.0003",
color: "#ff5428"
}, {
gte: 0.0001,
lt: 0.0002,
label: "0.0001 - 0.0002",
color: "#ff8c71"
}, {
gt: 0,
lt: 0.0001,
label: "0-0.0001",
color: "#ffd768"
}, {
value: 0,
color: "#ffffff"
}],
show: !0
},
geo: {
map: "china", //设定使用什么地图
roam: true, //是否可以拖拉
center: mapDisplayCenter,
//left: 'center',
//right: '300',
//layoutSize: '80%',
scaleLimit: {
min: 1,
max: 20
},
zoom: 1,
top: 70, //顶部距离上部的距离
//地图名字的文字设置,如普陀区,黄浦区等
label: {
normal: {
show: !0,
fontSize: "10",
color: "rgba(0,0,0,1.7)"
}
},
//鼠标移动到上方的时候的效果
itemStyle: {
//正常情况恢复的效果
normal: {
//shadowBlur: 50,
//shadowColor: 'rgba(0, 0, 0, 0.2)',
//borderColor: "rgba(0, 0, 0, 0.2)",
borderColor: '#00ffff', //每个区的边框颜色
borderWidth: 0.5, //区的边框线的粗细
shadowColor: '#00ffff', //区的边框线阴影的颜色
shadowOffsetX: 0, //区的边框线阴影偏离效果X轴
shadowOffsetY: 2, //区的边框线阴影偏离效果Y轴
shadowBlur: 5, //区的边框线阴影模糊效果
},
//鼠标移动到的时候的效果
emphasis: {
areaColor: "#f2d5ad",
shadowOffsetX: 2,
shadowOffsetY: 0,
borderWidth: 0
}
}
},
//点击显示的信息
series: [{
name: "暴露量总值",
type: "map",
geoIndex: 0,
data: window.dataList,
zoom: 2,
roam: true, //支持拖拽缩放
scaleLimit: {
//滚轮缩放的极限控制
min: 0.5, //缩放最小大小
max: 6, //缩放最大大小
},
}]
};
/*myChart.clear();*/
//设定值应用到界面显示地图
/*myChart.setOption(option);*/
</script>
<!--//设置抽屉组件的高度-->
<style>
html {
height: 100%;
display: table;
}
body {
display: table-cell;
height: 100%
}
.el-drawer {
height: 300px;
}
.grid-content {
text-align: center;
font-size: 24px;
color: white;
background-color: transparent
}
.subTitle {
text-align: center;
font-size: 12px;
color: white;
}
.el-dropdown-link {
cursor: pointer;
color: #50647a;
/*background-color: #50647a;*/
width: 6px;
}
.el-icon-arrow-down {
font-size: 12px;
}
</style>