440 lines
17 KiB
HTML
440 lines
17 KiB
HTML
<!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> |