Commit dccfdf24 authored by 朱建丰's avatar 朱建丰

=0726

parent 47be740e
# Default ignored files
/workspace.xml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/zhengfu.iml" filepath="$PROJECT_DIR$/.idea/zhengfu.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
......@@ -79,7 +79,7 @@ export default {
>>> .el-breadcrumb__inner {
color: #333;
font-weight: bold;
font-size: 18px;
font-size: 18px !important;
a {
font-weight: 400;
font-size: 16px;
......@@ -171,4 +171,4 @@ export default {
border-right: 20px solid transparent;
border-top: 20px solid transparent;
}
</style>
\ No newline at end of file
</style>
......@@ -28,3 +28,44 @@ npm test
```
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
<!-- window.addEventListener('message', async function (e, d) {
if (e.data && e.data.accessToken) {
var token = e.data.accessToken;
var url =
'https://portal.lishui.gov.cn:18080/api_2021/public/index.php/index/MicroPortalLogin/getUserInfoByAccessToken?token=' +token;
var user = await fetch(url);
var contentType = user.headers.get('Content-Type');
console.log(contentType);
console.log("return user");
console.log(user.json());
console.log("finishing");
} else {
window.location.replace("./#err");
} -->
// var data = JSON.parse(e.data);
// alert(data);
// var accessToken = data.accessToken;
// alert(accessToken);
//alert(e.data)
// let data = JSON.parse(e.data);
// let accessToken = data.accessToken;
})
......@@ -88,45 +88,7 @@
viewPort(navigator.userAgent);
}, 500);
}
window.addEventListener('message', async function (e, d) {
if (e.data && e.data.accessToken) {
var token = e.data.accessToken;
var url =
'https://portal.lishui.gov.cn:18080/api_2021/public/index.php/index/MicroPortalLogin/getUserInfoByAccessToken?token=' +token;
var user = await fetch(url);
var contentType = user.headers.get('Content-Type');
console.log(contentType);
console.log("return user");
console.log(user.json());
console.log("finishing");
} else {
window.location.replace("./#err");
}
// var data = JSON.parse(e.data);
// alert(data);
// var accessToken = data.accessToken;
// alert(accessToken);
//alert(e.data)
// let data = JSON.parse(e.data);
// let accessToken = data.accessToken;
})
</script>
</html>
......@@ -12,7 +12,7 @@
>首页</a
></el-breadcrumb-item
>
<el-breadcrumb-item>{{ breadData.page_name }}</el-breadcrumb-item>
<el-breadcrumb-item >{{ breadData.page_name }}</el-breadcrumb-item>
</el-breadcrumb>
<div>
<i class="iconfont icon-chengshi"></i>
......@@ -24,7 +24,7 @@
<div class="breadcrumb-text" v-if="show">
<div class="breadcrumb-title">
<img src="../assets/images/target.png" alt="" />
<span>年度目标</span>
<span style="font-size:16px !important">年度目标</span>
<div class="s-line"></div>
{{ breadData.annual_target }}
</div>
......@@ -89,6 +89,8 @@ export default {
align-items: center;
}
}
.breadcrumb-text {
padding: 16px 20px 0;
}
......@@ -99,7 +101,8 @@ export default {
span {
color: #1492ff;
margin-right: 8px;
font-size: 18px;
font-weight: bold;
font-size: 18px !important;
}
.s-line {
width: 1px;
......@@ -169,4 +172,4 @@ export default {
border-right: 20px solid transparent;
border-top: 20px solid transparent;
}
</style>
\ No newline at end of file
</style>
......@@ -18,8 +18,7 @@ import Szsy from '../views/Szsy.vue'
import Err from '../views/err.vue'
Vue.use(Router)
var router = new Router({
routes: [
{
routes: [{
path: '/',
name: 'Index',
component: MyIndex
......@@ -27,86 +26,122 @@ var router = new Router({
{
path: '/xxczh',
name: 'NewUrbanization',
meta: { title: '新型城镇化' },
meta: {
title: '新型城镇化'
},
component: Xxczh
},
{
path: '/msbz',
name: 'live',
meta: { title: '民生保障' },
meta: {
title: '民生保障'
},
component: Msbz
},
{
path: '/qyxtfz',
name: 'region',
meta: { title: '区域协调发展' },
meta: {
title: '区域协调发展'
},
component: Qyxtfz
},
{
path: '/cyfz',
name: 'Cyfz',
meta: { title: '产业发展' },
meta: {
title: '产业发展'
},
component: Cyfz
},
{
path: '/xczx',
name: 'Xczx',
meta: { title: '乡村振兴' },
meta: {
title: '乡村振兴'
},
component: Xczx
},
{
path: '/aqsc',
name: 'Aqsc',
meta: { title: '安全生产' },
meta: {
title: '安全生产'
},
component: Aqsc
},
{
path: '/sxh',
name: 'Sxh',
meta: { title: '双循环' },
meta: {
title: '双循环'
},
component: Sxh
},
{
path: '/kjcx',
name: 'Kjcx',
meta: { title: '科技创新' },
meta: {
title: '科技创新'
},
component: Kjcx
},
{
path: '/yshj',
name: 'Yshj',
meta: { title: '营商环境' },
meta: {
title: '营商环境'
},
component: Yshj
},
{
path: '/ctfy',
name: 'Ctfy',
meta: { title: '常态防疫' },
meta: {
title: '常态防疫'
},
component: Ctfy
},
{
path: '/cthfy',
name: 'Cthfy',
meta: {
title: '常态防疫'
},
component: Ctfy
},
{
path: '/stwm',
name: 'Stwm',
meta: { title: '生态文明' },
meta: {
title: '生态文明'
},
component: Stwm
},
{
path: '/xxgl',
name: 'Xxgl',
meta: { title: '信息管理' },
meta: {
title: '信息管理'
},
component: Xxgl
},
{
path: '/szsy',
name: 'Szsy',
meta: { title: '双招双引' },
meta: {
title: '双招双引'
},
component: Szsy
},
{
path: '/err',
name: 'Err',
meta: { title: '无权限' },
meta: {
title: '无权限'
},
component: Err
}
]
......@@ -122,20 +157,7 @@ router.beforeEach((to, from, next) => {
// if (to.path == "/login"||to.path=="/nopower") {
next()
// if (to.path == '/') {
// next()
// } else if (to.fullPath.indexOf('?') != -1) {
// let tag = to.fullPath.split('?')[1]
// let obj = {}
// obj[tag.split('=')[0]] = tag.split('=')[1]
// if (obj.debug == "true") {
// next();
// } else {
// next({name: 'Err'})
// }
// } else {
// next({name: 'Err'})
// }
// } else {
......@@ -149,16 +171,31 @@ router.beforeEach((to, from, next) => {
/*---------埋点代码开始 (路由切换执行)----------*/
// 单页应用 或 “单个页面”需异步补充PV日志参数还需进行如下埋点:
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-waiting', 'MAN'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['aplus-waiting', 'MAN']
});
// PV日志接收日志域名,必须按实际情况填写
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn']
});
// 一般日志(如点击和曝光)接收日志域名
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn']
});
// 判单设备设置appId
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['appId', isAndroid ? '28302650' : isIOS ? '28328447' : '47130293'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['appId', isAndroid ? '28302650' : isIOS ? '28328447' : '47130293']
});
// 如采集用户信息是异步行为需要先执行这个BLOCK埋点
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['_hold', 'BLOCK'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_hold', 'BLOCK']
});
aplus_queue.push({
'action': 'aplus.sendPV',
......@@ -169,16 +206,16 @@ router.beforeEach((to, from, next) => {
sapp_id: '14053',
sapp_name: 'szzf-yh',
// 自定义PV参数key-value键值对(只能是这种平铺的json,不能做多层嵌套),除userName外(考虑安全原因暂时做废弃处理),其他为必填项。
dev_type: devType, // 设备类型
site_type: '101', // 站点类型 数字化改革门户100 数字政府101 党政机关整体智治102 数字社会103 数字经济104 数字法治105
is_digital_reform: '1', // 固定值传1,标识是否为数字化改革相关应用
is_workbench: '1', // 新增字段,标识是否为数字化改革工作台,取值 1或0,1代表是,0代表不是,不填该参数取默认值0
city_code: '331100', // 设区市编码
area_code: '331125', // 区县编码
page_name: '云和数字政府门户', // 页面名称
dev_type: devType, // 设备类型
site_type: '101', // 站点类型 数字化改革门户100 数字政府101 党政机关整体智治102 数字社会103 数字经济104 数字法治105
is_digital_reform: '1', // 固定值传1,标识是否为数字化改革相关应用
is_workbench: '1', // 新增字段,标识是否为数字化改革工作台,取值 1或0,1代表是,0代表不是,不填该参数取默认值0
city_code: '331100', // 设区市编码
area_code: '331125', // 区县编码
page_name: '云和数字政府门户', // 页面名称
page_url: window.location.href,
page_id: window.location.hash,
_user_id: sessionStorage.token ? JSON.parse(sessionStorage.token).accountId : '', // 客户端用户ID(浙政钉2.0ID)
_user_id: sessionStorage.token ? JSON.parse(sessionStorage.token).accountId : '', // 客户端用户ID(浙政钉2.0ID)
// _user_nick: '', // userName考虑安全原因暂时做废弃处理
}]
})
......@@ -194,7 +231,10 @@ router.beforeEach((to, from, next) => {
});
// 如采集用户信息是异步行为,需要先设置完用户信息后再执行这个START埋点
// 此时被block住的日志会携带上用户信息逐条发出
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['_hold', 'START'] });
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_hold', 'START']
});
/*---------埋点代码结束----------*/
......
function parseUser(json) {
if (json.code != "200") {
return null;
}
var data = json.data;
if (data == null || data == undefined) {
return null;
}
var username = data.username;
if (username == null || username == undefined || username == "") {
return null;
}
return username;
}
export async function messageFun(e) {
if (e.data && e.data.accessToken) {
var token = e.data.accessToken;
if (token == null || token == undefined) {
return false;
}
try {
console.log(token);
var url =
'https://portal.lishui.gov.cn:18080/api_2021/public/index.php/index/MicroPortalLogin/getUserInfoByAccessToken?accessToken=' + token;
var user = await fetch(url);
console.log(url);
var contentType = user.headers.get('Content-Type');
console.log(contentType);
console.log("return user");
var json = await user.json();
var username = parseUser(json);
console.log(json);
console.log("welcome:" + username);
if (username == null) {
return false;
}
console.log("finishing");
} catch (e) {
return false;
}
} else {
return false;
}
return true;
}
......@@ -33,12 +33,12 @@
<div class="mr20 w57">
<div>
<div class="flex acenter lh30">
<img src="../assets/images/people.png" class="mr12 icon16" />
<img src="../assets/images/people.png" class="mr12 icon16"/>
<p>事故起数 19 起,同比前两年平均值</p>
<em class="norm ml12">↓37.7%</em>
</div>
<div class="flex acenter lh30">
<img src="../assets/images/ren.png" class="mr12 icon16" />
<img src="../assets/images/ren.png" class="mr12 icon16"/>
<p>死亡人数 18 人,同比前两年平均值</p>
<em class="norm ml12">↓16.3%</em>
</div>
......@@ -727,7 +727,7 @@
</el-table-column>
<el-table-column prop="time" label="发生时间" width="220">
</el-table-column>
<el-table-column prop="origin" label="信息来源"> </el-table-column>
<el-table-column prop="origin" label="信息来源"></el-table-column>
<el-table-column prop="msg" label="应急预案" width="120">
</el-table-column>
</el-table>
......@@ -738,527 +738,550 @@
</template>
<script>
let one, two, three, four, five, six, seven;
const _myCity = "青田县";
import Breadcrumb from "../components/Breadcrumb.vue";
import {getUserInfo,getTask,postUserInfo} from '../api/index'
export default {
name: "epidemic",
components: { Breadcrumb },
data() {
return {
breadData: {
page_name: "安全生产",
annual_target:
"为自觉接受媒体监督,有效行使工作职责,努力做到权为民所用,更好地服务社群,树立城管形象。",
leading: "应急管理局",
},
myCity: _myCity,
activeName1: "second",
activeName2: "first",
activeName3: "first",
tableData: [
{
id: 1,
uname:
"丽水市百货大楼晶都步行街外立面改造装修工程发生一起高处坠落事故",
level: "一般",
types: "建筑业",
time: "2021年06月18日 08:25:00",
origin: "丽水市莲都区应急管理局",
msg: "应急预案",
},
{
id: 2,
uname: "云和县发生一起事故造成1人死亡事件",
level: "一般",
types: "商贸其他",
time: "2021年06月10日 08:25:00",
origin: "龙泉市应急管理局",
msg: "应急预案",
},
{
id: 3,
uname: "龙泉发生一起叉车碰撞事故,致一人死亡",
level: "一般",
types: "轻工",
time: "2021年06月10日 07:25:00",
origin: "乡镇上报",
msg: "应急预案",
},
{
id: 4,
uname:
"丽水市百货大楼晶都步行街外立面改造装修工程发生一起高处坠落事故",
level: "一般",
types: "建筑业",
time: "2021年06月18日 08:25:00",
origin: "丽水市莲都区应急管理局",
msg: "应急预案",
},
{
id: 5,
uname: "青田县山口镇至方山乡公路发生山体塌方",
level: "一般",
types: "地质灾害",
time: "2021年05月27日 08:25:00",
origin: "青田县应急管理局",
msg: "应急预案",
},
{
id: 6,
uname:
"青田县东源镇浙江以勒标准件制造有限公司发生一起触电事故致一人死亡",
level: "特别重大",
types: "商贸其他",
time: "2021年05月12日 08:25:00",
origin: "青田应急值班室",
msg: "应急预案",
},
],
gkShow: false,
whShow: true,
showTit: false,
};
},
mounted() {
let _this = this;
this.initGzbgChart();
this.initGzbgChart2();
this.initGzbgChart3();
this.initGzbgChart4();
this.initGzbgChart5();
this.initGzbgChart6();
this.initGzbgChart7();
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
_this.initGzbgChart();
_this.initGzbgChart2();
_this.initGzbgChart3();
_this.initGzbgChart4();
_this.initGzbgChart5();
_this.initGzbgChart6();
_this.initGzbgChart7();
window.parent.postMessage(document.body.scrollHeight, '*');
})();
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
},
methods: {
handleClick1(tab, event) {
this.activeName1 = tab.name;
this.$nextTick(function () {
this.initGzbgChart3();
this.initGzbgChart4();
});
},
handleClick2(tab, event) {
this.$nextTick(function () {
this.initGzbgChart5();
this.initGzbgChart6();
});
},
handleClick3(tab, event) {
this.$nextTick(function () {
this.initGzbgChart7();
// this.initGzbgChart8();
});
},
indexMethod(index) {
return index * 1 + 1;
},
gk() {
this.gkShow = true;
this.whShow = !this.whShow;
},
wh() {
this.whShow = true;
this.gkShow = !this.gkShow;
},
warns() {
this.showTit = true;
},
initGzbgChart() {
if (one != null && one != "" && one != undefined) {
one.dispose(); //销毁
}
one = this.$echarts.init(document.getElementById("main1"));
one.setOption({
color: ["#1492ff", "#d40000"],
tooltip: {
trigger: "axis",
},
legend: {
data: ["事故起数", "死亡人数"],
bottom: 0,
},
grid: {
top: "8%",
left: "3%",
right: "5%",
bottom: "15%",
containLabel: true,
let one, two, three, four, five, six, seven;
const _myCity = "青田县";
import Breadcrumb from "../components/Breadcrumb.vue";
import {getUserInfo, getTask, postUserInfo} from '../api/index'
import
{
messageFun
}
from
'../util/jianquan'
export default {
name: "epidemic",
components: {Breadcrumb},
data() {
return {
breadData: {
page_name: "安全生产",
annual_target:
"为自觉接受媒体监督,有效行使工作职责,努力做到权为民所用,更好地服务社群,树立城管形象。",
leading: "应急管理局",
},
myCity: _myCity,
activeName1: "second",
activeName2: "first",
activeName3: "first",
tableData: [
{
id: 1,
uname:
"丽水市百货大楼晶都步行街外立面改造装修工程发生一起高处坠落事故",
level: "一般",
types: "建筑业",
time: "2021年06月18日 08:25:00",
origin: "丽水市莲都区应急管理局",
msg: "应急预案",
},
{
id: 2,
uname: "云和县发生一起事故造成1人死亡事件",
level: "一般",
types: "商贸其他",
time: "2021年06月10日 08:25:00",
origin: "龙泉市应急管理局",
msg: "应急预案",
},
{
id: 3,
uname: "龙泉发生一起叉车碰撞事故,致一人死亡",
level: "一般",
types: "轻工",
time: "2021年06月10日 07:25:00",
origin: "乡镇上报",
msg: "应急预案",
},
{
id: 4,
uname:
"丽水市百货大楼晶都步行街外立面改造装修工程发生一起高处坠落事故",
level: "一般",
types: "建筑业",
time: "2021年06月18日 08:25:00",
origin: "丽水市莲都区应急管理局",
msg: "应急预案",
},
{
id: 5,
uname: "青田县山口镇至方山乡公路发生山体塌方",
level: "一般",
types: "地质灾害",
time: "2021年05月27日 08:25:00",
origin: "青田县应急管理局",
msg: "应急预案",
},
{
id: 6,
uname:
"青田县东源镇浙江以勒标准件制造有限公司发生一起触电事故致一人死亡",
level: "特别重大",
types: "商贸其他",
time: "2021年05月12日 08:25:00",
origin: "青田应急值班室",
msg: "应急预案",
},
],
gkShow: false,
whShow: true,
showTit: false,
};
},
calculable: true,
xAxis: [
{
type: "category",
data: [
"1月",
"2月",
"3月",
"4月",
"5月",
"6月",
"7月",
"8月",
"9月",
"10月",
"11月",
"12月",
],
},
],
yAxis: {
type: "value",
show: false,
mounted() {
this.listenMessage();
let _this = this;
this.initGzbgChart();
this.initGzbgChart2();
this.initGzbgChart3();
this.initGzbgChart4();
this.initGzbgChart5();
this.initGzbgChart6();
this.initGzbgChart7();
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
_this.initGzbgChart();
_this.initGzbgChart2();
_this.initGzbgChart3();
_this.initGzbgChart4();
_this.initGzbgChart5();
_this.initGzbgChart6();
_this.initGzbgChart7();
window.parent.postMessage(document.body.scrollHeight, '*');
})();
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
},
series: [
{
name: "事故起数",
type: "bar",
data: [6, 1, 7, 5, 4, 0, 0, 0, 0, 0, 0, 0],
label: {
// 在图形上显示每个数据
show: true,
position: "top",
itemStyle: {
color: "#1492ff", //柱子的颜色
},
methods: {
listenMessage() {
window.addEventListener('message', this.bindThis.bind(this));
},
},
{
name: "死亡人数",
type: "bar",
data: [7, 1, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0],
label: {
// 在图形上显示每个数据
show: true,
position: "top",
itemStyle: {
normal: {
color: "#d40000", //柱子的颜色
},
},
async bindThis(e){
const query=this.$route.query;
if(query.debug=="true")
{
return;
}
const ret=await messageFun(e);
if(ret==false)
{
this.$router.push("err");
}
},
},
],
});
},
initGzbgChart2() {
if (two != null && two != "" && two != undefined) {
two.dispose(); //销毁
}
two = this.$echarts.init(document.getElementById("main2"));
two.setOption({
color: ["#ff6b00", "#d40000", "#15be50"],
tooltip: {
trigger: "item",
},
legend: {
bottom: 0,
left: "center",
},
series: [
{
name: ["3", "18", "0"],
type: "pie",
radius: ["50%", "70%"],
data: [
{ value: 4, name: "工矿商贸", seriesName: "0" },
{ value: 18, name: "道路交通", seriesName: "0" },
{ value: 0, name: "消防火灾", seriesName: "0" },
],
label: {
show: true,
// position: 'top',
formatter: "{c}起",
handleClick1(tab, event) {
this.activeName1 = tab.name;
this.$nextTick(function () {
this.initGzbgChart3();
this.initGzbgChart4();
});
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
handleClick2(tab, event) {
this.$nextTick(function () {
this.initGzbgChart5();
this.initGzbgChart6();
});
},
},
],
});
},
initGzbgChart3() {
if (three != null && three != "" && three != undefined) {
three.dispose(); //销毁
}
three = this.$echarts.init(document.getElementById("main3"));
three.setOption({
color: ["#15be50"],
xAxis: {
type: "category",
data: [
"危化领域",
"工矿领域",
"消防领域",
"道路交通",
"建设施工",
"城市运行",
"旅游领域",
"特种设备",
],
axisLabel: {
textStyle: {
color: "#333", //坐标值得具体的颜色
fontSize: 14,
handleClick3(tab, event) {
this.$nextTick(function () {
this.initGzbgChart7();
// this.initGzbgChart8();
});
},
interval: 0,
},
axisTick: {
show: true,
},
axisLine: {
lineStyle: {
color: "#dddddd",
indexMethod(index) {
return index * 1 + 1;
},
},
},
yAxis: {
show: false,
},
series: [
{
data: [20, 14, 18, 15, 10, 14, 26, 23],
type: "bar",
label: {
show: true,
position: "top",
formatter: "{c}%",
gk() {
this.gkShow = true;
this.whShow = !this.whShow;
},
barWidth: 30, // 柱子宽度
},
],
grid: {
top: "5%",
left: "3%",
right: "5%",
bottom: "5%",
containLabel: true,
},
});
},
initGzbgChart4() {
if (four != null && four != "" && four != undefined) {
four.dispose(); //销毁
}
four = this.$echarts.init(document.getElementById("main4"));
four.setOption({
color: ["#EE6666", "#FAC858", "#5470C6", "#91CC75"],
tooltip: {
trigger: "item",
},
legend: {
right: 0,
orient: "vertical",
top: "center",
},
grid: {
top: "5%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
series: [
{
name: "访问来源",
type: "pie",
radius: "50%",
data: [
{ value: 0.22, name: "重大风险", seriesName: "15" },
{ value: 0.06, name: "较大风险", seriesName: "4 " },
{ value: 14.39, name: "一般风险", seriesName: "975" },
{ value: 85.33, name: "低风险", seriesName: "5809" },
],
label: {
show: true,
// position: 'top',
formatter: "{b} {d} {c}%",
wh() {
this.whShow = true;
this.gkShow = !this.gkShow;
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
warns() {
this.showTit = true;
},
},
],
});
},
initGzbgChart5() {
if (five != null && five != "" && five != undefined) {
five.dispose(); //销毁
}
five = this.$echarts.init(document.getElementById("main5"));
five.setOption({
xAxis: {
type: "category",
data: ["05-01", "05-08", "05-15", "05-22", "05-27", "05-31"],
},
yAxis: {
type: "value",
min: 0,
max: 100,
splitNumber: 5,
splitLine: {
show: true,
},
axisLine: {
lineStyle: {
color: "#333333",
initGzbgChart() {
if (one != null && one != "" && one != undefined) {
one.dispose(); //销毁
}
one = this.$echarts.init(document.getElementById("main1"));
one.setOption({
color: ["#1492ff", "#d40000"],
tooltip: {
trigger: "axis",
},
legend: {
data: ["事故起数", "死亡人数"],
bottom: 0,
},
grid: {
top: "8%",
left: "3%",
right: "5%",
bottom: "15%",
containLabel: true,
},
calculable: true,
xAxis: [
{
type: "category",
data: [
"1月",
"2月",
"3月",
"4月",
"5月",
"6月",
"7月",
"8月",
"9月",
"10月",
"11月",
"12月",
],
},
],
yAxis: {
type: "value",
show: false,
},
series: [
{
name: "事故起数",
type: "bar",
data: [6, 1, 7, 5, 4, 0, 0, 0, 0, 0, 0, 0],
label: {
// 在图形上显示每个数据
show: true,
position: "top",
itemStyle: {
color: "#1492ff", //柱子的颜色
},
},
},
{
name: "死亡人数",
type: "bar",
data: [7, 1, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0],
label: {
// 在图形上显示每个数据
show: true,
position: "top",
itemStyle: {
normal: {
color: "#d40000", //柱子的颜色
},
},
},
},
],
});
},
},
axisLabel: {
formatter: "{value}%",
},
},
series: [
{
data: [15, 21, 23, 39, 42, 65],
type: "line",
},
],
grid: {
top: "4%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
});
},
initGzbgChart6() {
if (six != null && six != "" && six != undefined) {
six.dispose(); //销毁
}
six = this.$echarts.init(document.getElementById("main6"));
six.setOption({
color: ["#FF3E38", "#53A8E8"],
tooltip: {
trigger: "11",
},
legend: {
// orient: 'vertical',
left: "center",
},
series: [
{
name: "访问来源",
type: "pie",
radius: "50%",
data: [
{ value: 0, name: "未编修", seriesName: "0" },
{ value: 100, name: "已编修", seriesName: "140" },
],
label: {
show: true,
// position: 'top',
formatter: "{b} {d} {c}% ",
fontSize: 16,
initGzbgChart2() {
if (two != null && two != "" && two != undefined) {
two.dispose(); //销毁
}
two = this.$echarts.init(document.getElementById("main2"));
two.setOption({
color: ["#ff6b00", "#d40000", "#15be50"],
tooltip: {
trigger: "item",
},
legend: {
bottom: 0,
left: "center",
},
series: [
{
name: ["3", "18", "0"],
type: "pie",
radius: ["50%", "70%"],
data: [
{value: 4, name: "工矿商贸", seriesName: "0"},
{value: 18, name: "道路交通", seriesName: "0"},
{value: 0, name: "消防火灾", seriesName: "0"},
],
label: {
show: true,
// position: 'top',
formatter: "{c}起",
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
});
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
initGzbgChart3() {
if (three != null && three != "" && three != undefined) {
three.dispose(); //销毁
}
three = this.$echarts.init(document.getElementById("main3"));
three.setOption({
color: ["#15be50"],
xAxis: {
type: "category",
data: [
"危化领域",
"工矿领域",
"消防领域",
"道路交通",
"建设施工",
"城市运行",
"旅游领域",
"特种设备",
],
axisLabel: {
textStyle: {
color: "#333", //坐标值得具体的颜色
fontSize: 14,
},
interval: 0,
},
axisTick: {
show: true,
},
axisLine: {
lineStyle: {
color: "#dddddd",
},
},
},
yAxis: {
show: false,
},
series: [
{
data: [20, 14, 18, 15, 10, 14, 26, 23],
type: "bar",
label: {
show: true,
position: "top",
formatter: "{c}%",
},
barWidth: 30, // 柱子宽度
},
],
grid: {
top: "5%",
left: "3%",
right: "5%",
bottom: "5%",
containLabel: true,
},
});
},
},
],
grid: {
top: "4%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
});
},
initGzbgChart7() {
if (seven != null && seven != "" && seven != undefined) {
seven.dispose(); //销毁
}
seven = this.$echarts.init(document.getElementById("main7"));
seven.setOption({
xAxis: {
type: "category",
data: [
"05-01",
"05-08",
"05-15",
"05-22",
"05-27",
"05-31",
"06-07",
"06-14",
"06-21",
],
},
legend: {
data: ["乡镇应急救援队伍"],
},
yAxis: {
type: "value",
min: 0,
max: 120,
splitNumber: 5,
splitLine: {
show: true,
},
axisLine: {
lineStyle: {
color: "#333333",
initGzbgChart4() {
if (four != null && four != "" && four != undefined) {
four.dispose(); //销毁
}
four = this.$echarts.init(document.getElementById("main4"));
four.setOption({
color: ["#EE6666", "#FAC858", "#5470C6", "#91CC75"],
tooltip: {
trigger: "item",
},
legend: {
right: 0,
orient: "vertical",
top: "center",
},
grid: {
top: "5%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
series: [
{
name: "访问来源",
type: "pie",
radius: "50%",
data: [
{value: 0.22, name: "重大风险", seriesName: "15"},
{value: 0.06, name: "较大风险", seriesName: "4 "},
{value: 14.39, name: "一般风险", seriesName: "975"},
{value: 85.33, name: "低风险", seriesName: "5809"},
],
label: {
show: true,
// position: 'top',
formatter: "{b} {d} {c}%",
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
});
},
initGzbgChart5() {
if (five != null && five != "" && five != undefined) {
five.dispose(); //销毁
}
five = this.$echarts.init(document.getElementById("main5"));
five.setOption({
xAxis: {
type: "category",
data: ["05-01", "05-08", "05-15", "05-22", "05-27", "05-31"],
},
yAxis: {
type: "value",
min: 0,
max: 100,
splitNumber: 5,
splitLine: {
show: true,
},
axisLine: {
lineStyle: {
color: "#333333",
},
},
axisLabel: {
formatter: "{value}%",
},
},
series: [
{
data: [15, 21, 23, 39, 42, 65],
type: "line",
},
],
grid: {
top: "4%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
});
},
initGzbgChart6() {
if (six != null && six != "" && six != undefined) {
six.dispose(); //销毁
}
six = this.$echarts.init(document.getElementById("main6"));
six.setOption({
color: ["#FF3E38", "#53A8E8"],
tooltip: {
trigger: "11",
},
legend: {
// orient: 'vertical',
left: "center",
},
series: [
{
name: "访问来源",
type: "pie",
radius: "50%",
data: [
{value: 0, name: "未编修", seriesName: "0"},
{value: 100, name: "已编修", seriesName: "140"},
],
label: {
show: true,
// position: 'top',
formatter: "{b} {d} {c}% ",
fontSize: 16,
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
grid: {
top: "4%",
left: "3%",
right: "5%",
bottom: "18%",
containLabel: true,
},
});
},
initGzbgChart7() {
if (seven != null && seven != "" && seven != undefined) {
seven.dispose(); //销毁
}
seven = this.$echarts.init(document.getElementById("main7"));
seven.setOption({
xAxis: {
type: "category",
data: [
"05-01",
"05-08",
"05-15",
"05-22",
"05-27",
"05-31",
"06-07",
"06-14",
"06-21",
],
},
legend: {
data: ["乡镇应急救援队伍"],
},
yAxis: {
type: "value",
min: 0,
max: 120,
splitNumber: 5,
splitLine: {
show: true,
},
axisLine: {
lineStyle: {
color: "#333333",
},
},
},
series: [
{
data: [21, 41, 50, 70, 77, 90, 105, 112, 117],
type: "line",
},
],
grid: {
top: "10%",
left: "3%",
right: "5%",
bottom: "0%",
containLabel: true,
},
});
},
},
},
series: [
{
data: [21, 41, 50, 70, 77, 90, 105, 112, 117],
type: "line",
},
],
grid: {
top: "10%",
left: "3%",
right: "5%",
bottom: "0%",
containLabel: true,
},
});
},
},
};
};
</script>
<style lang="scss">
#app {
background: #fff !important;
}
#app {
background: #fff !important;
}
// @media screen and (max-width: 1200px) {
// @media screen and (max-width: 1200px) {
.main {
width: 100%;
background-color: #fff;
......@@ -1282,284 +1305,285 @@ export default {
border-radius: 4px;
margin: 20px auto;
}
// }
// @media screen and (min-width: 1200px) {
// .main {
// width: 1200px;
// margin: 0px auto;
// padding: 30px 0;
// }
// .minHeader,
// .market {
// width: 1200px;
// border-radius: 4px;
// // padding: 20px 20px 20px;
// background: #fff;
// }
// }
// .minTop {
// background-color: #fff;
// width: 1200px;
// border-radius: 4px;
// }
// }
// @media screen and (min-width: 1200px) {
// .main {
// width: 1200px;
// margin: 0px auto;
// padding: 30px 0;
// }
.card__header {
padding: 18px 20px;
border-bottom: 1px solid #ebeef5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
// .minHeader,
// .market {
// width: 1200px;
// border-radius: 4px;
// // padding: 20px 20px 20px;
// background: #fff;
// }
.el-breadcrumb__inner.is-link {
font-size: 16px !important;
}
// .minTop {
// background-color: #fff;
// width: 1200px;
// border-radius: 4px;
// }
// }
.el-icon-s-marketing {
color: rgb(54, 153, 247);
font-size: 30px;
}
.card__header {
padding: 18px 20px;
border-bottom: 1px solid #ebeef5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.cline {
width: 1px;
height: 30px;
background: #dddddd;
margin: 0 8px;
}
.el-breadcrumb__inner.is-link {
font-size: 16px !important;
}
.hl30 {
height: 30px;
line-height: 30px;
}
.el-icon-s-marketing {
color: rgb(54, 153, 247);
font-size: 30px;
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
.cline {
width: 1px;
height: 30px;
background: #dddddd;
margin: 0 8px;
}
.norm {
font-style: normal;
color: #15be50;
}
.hl30 {
height: 30px;
line-height: 30px;
}
.zhan {
width: 100%;
height: 280px;
/* background: #ccc; */
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
.w100 {
width: 100%;
}
.norm {
font-style: normal;
color: #15be50;
}
.w49 {
width: 49%;
}
.zhan {
width: 100%;
height: 280px;
/* background: #ccc; */
}
.w57 {
width: 57%;
}
.w100 {
width: 100%;
}
.w41 {
width: 41%;
}
.w49 {
width: 49%;
}
.lh30 {
line-height: 30px;
}
.w57 {
width: 57%;
}
.h60 {
height: 60px;
}
.w41 {
width: 41%;
}
.btn {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
cursor: pointer;
}
.lh30 {
line-height: 30px;
}
.btn1 {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
cursor: pointer;
}
.h60 {
height: 60px;
}
.btn2 {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
background: #c8c9cc !important;
cursor: pointer;
color: #fff !important;
font-size: 16px !important;
border-color: #c8c9cc !important;
}
.btn {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
cursor: pointer;
}
.btn1:hover {
color: #409eff;
border-color: #c6e2ff;
background-color: #ecf5ff;
}
.btn1 {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
cursor: pointer;
}
.btn:hover {
background: #66b1ff;
border-color: #66b1ff;
color: #fff;
}
.btn2 {
width: 22%;
height: 40px;
line-height: 40px;
border-radius: 4px;
text-align: center;
background: #c8c9cc !important;
cursor: pointer;
color: #fff !important;
font-size: 16px !important;
border-color: #c8c9cc !important;
}
.pore {
position: relative;
}
.btn1:hover {
color: #409eff;
border-color: #c6e2ff;
background-color: #ecf5ff;
}
.el-popover {
min-width: 55px !important;
left: 415px !important;
}
.btn:hover {
background: #66b1ff;
border-color: #66b1ff;
color: #fff;
}
.el-tooltip__popper {
border: 1px solid #ecf5ff !important;
background: #fff !important;
}
.pore {
position: relative;
}
/* .poab {
position: absolute;
top: -70px;
width: 80px;
height: 40px;
line-height: 40px;
color: #333333;
border: 1px solid #ebeef5;
background: #fff;
border-radius: 4px;
top: -60px;
left: 50%;
transform: translate(-50%, 10px);
.el-popover {
min-width: 55px !important;
left: 415px !important;
}
.popper__arrow {
position: absolute;
width: 5px;
top: -10px;
left: 50%;
transform: translate(-50%, 0px);
height: 0;
.el-tooltip__popper {
border: 1px solid #ecf5ff !important;
background: #fff !important;
}
.corner {
width: 0px;
height: 0px;
border: 5px solid #f3f3ed;
border-bottom-color: transparent;
border-left-color: transparent;
border-right-color: transparent;
} */
.el-progress--circle,
.el-progress--dashboard {
display: inline-block;
position: relative;
}
/* .poab {
position: absolute;
top: -70px;
width: 80px;
height: 40px;
line-height: 40px;
color: #333333;
border: 1px solid #ebeef5;
background: #fff;
border-radius: 4px;
top: -60px;
left: 50%;
transform: translate(-50%, 10px);
}
.popper__arrow {
position: absolute;
width: 5px;
top: -10px;
left: 50%;
transform: translate(-50%, 0px);
height: 0;
}
.corner {
width: 0px;
height: 0px;
border: 5px solid #f3f3ed;
border-bottom-color: transparent;
border-left-color: transparent;
border-right-color: transparent;
.el-button:hover {
color: #fff;
border-color: #c8c9cc !important;
background-color: #c8c9cc;
}
} */
.el-progress--circle,
.el-progress--dashboard {
display: inline-block;
position: relative;
}
.el-progress_text {
font-size: 16px !important;
color: #000;
position: absolute;
top: 50%;
left: 0;
width: 100%;
text-align: center;
margin: 0;
transform: translateY(-50%);
}
.el-button:hover {
color: #fff;
border-color: #c8c9cc !important;
background-color: #c8c9cc;
}
.bgs {
width: 60px;
height: 60px;
position: absolute;
left: 0;
right: 0;
top: 10px;
margin: auto;
border-radius: 50%;
/* background: #48e1a7; */
}
.el-progress_text {
font-size: 16px !important;
color: #000;
position: absolute;
top: 50%;
left: 0;
width: 100%;
text-align: center;
margin: 0;
transform: translateY(-50%);
}
.bgc89 {
background: #c8c9cc;
}
.bgs {
width: 60px;
height: 60px;
position: absolute;
left: 0;
right: 0;
top: 10px;
margin: auto;
border-radius: 50%;
/* background: #48e1a7; */
}
.borc8 {
border: 1px solid #c8c9cc;
}
.bgc89 {
background: #c8c9cc;
}
.el-tabs {
width: 100% !important;
}
.borc8 {
border: 1px solid #c8c9cc;
}
.mb12 {
margin-bottom: 12px;
}
.el-tabs {
width: 100% !important;
}
.zfx {
color: #ff6b00;
font-style: normal;
font-size: 20px;
vertical-align: middle;
line-height: 22px;
margin-right: 12px;
}
.mb12 {
margin-bottom: 12px;
}
.el-progress {
width: 100% !important;
}
.zfx {
color: #ff6b00;
font-style: normal;
font-size: 20px;
vertical-align: middle;
line-height: 22px;
margin-right: 12px;
}
.cc8 {
background: #c8c9cc;
color: #fff;
padding: 12px 20px;
border-radius: 5px;
}
.el-progress {
width: 100% !important;
}
.aqsc .el-table__row .el-table_1_column_2 {
color: #409eff;
font-size: 12px;
}
.cc8 {
background: #c8c9cc;
color: #fff;
padding: 12px 20px;
border-radius: 5px;
}
.el-table__row .el-table_1_column_7 {
color: #aaa !important;
}
.aqsc .el-table__row .el-table_1_column_2 {
color: #409eff;
font-size: 12px;
}
.el-table__row .el-table_1_column_7 {
color: #aaa !important;
}
.el-table thead {
color: #333 !important;
}
.el-table thead {
color: #333 !important;
}
.el-table td,
.el-table th {
text-align: center !important;
}
.el-table td,
.el-table th {
text-align: center !important;
}
.textRight {
text-align: right;
}
.textRight {
text-align: right;
}
.icon160 {
width: 160px;
}
.icon160 {
width: 160px;
}
.h510 {
height: 510px;
}
.h510 {
height: 510px;
}
</style>
......@@ -37,7 +37,7 @@
<div class="air-quality unify-item shadow">
<h3 class="module-tit">空气质量巩固提升行动</h3>
<div class="aq-map">
<img src="../assets/images/sy-map.jpg" alt="" />
<img src="../assets/images/sy-map.jpg" alt=""/>
<div class="aq-exponent">
<p>空气质量指数</p>
<ul class="aq-list">
......@@ -181,471 +181,540 @@
</template>
<script>
import Breadcrumb from "../components/Breadcrumb.vue";
import Tree from "../components/Tree.vue";
export default {
name: "ecology",
components: { Tree, Breadcrumb },
data() {
return {
breadData: {
page_name: "生态文明",
annual_target:"暂无数据",
leading: "青田县环保局",
},
aqList: [
{
name: "",
bgc: "#10D485",
},
{
name: "",
bgc: "#189CFF",
},
{
name: "轻度污染",
bgc: "#2A6FFF",
},
{
name: "中度污染",
bgc: "#FFA72A",
},
{
name: "重度污染",
bgc: "#FF842A",
},
],
clear_water_info: [
{
classify: "国考断面",
num: 2,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
{
classify: "省控断面",
num: 2,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
{
classify: "饮用水水源地",
num: 1,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
],
aq_desc_info: [
{
name: "空气优良天数比",
target_num: "93.3%",
current_num: "99.3%",
compare_num: -0.7,
icon: "icon-kongqiyouliang",
},
{
name: "PM2.5浓度",
target_num: 36,
current_num: 22,
compare_num: -4.3,
icon: "icon-pm",
},
],
no_waste_info: [
{
name: "医疗废物收集处置率",
target_num: "100%",
current_num: "100%",
compare_num: 0.5,
},
{
name: "医城镇垃圾分类覆盖面",
target_num: "100%",
current_num: "80%",
compare_num: 0.5,
},
],
br_info: [
{
name: "河湖问题整改",
target_num: "93.3%",
current_num: "95.3%",
compare_num: 0.5,
},
{
name: "河湖问题整改",
target_num: "93.3%",
current_num: "95.3%",
compare_num: 0.5,
},
],
ecological_creation_info: [
{
name: "市级生态文明建设示范市(县)",
num: "24个",
icon: "icon-gongyuzhuzhai",
},
{
name: "县市区级生态文明建设示范市(县)",
num: "61个",
icon: "icon-chengshi1",
import Breadcrumb from "../components/Breadcrumb.vue";
import Tree from "../components/Tree.vue";
import {messageFun} from "../util/jianquan";
export default {
name: "ecology",
components: {Tree, Breadcrumb},
data() {
return {
breadData: {
page_name: "生态文明",
annual_target: "暂无数据",
leading: "青田县环保局",
},
aqList: [
{
name: "",
bgc: "#10D485",
},
{
name: "",
bgc: "#189CFF",
},
{
name: "轻度污染",
bgc: "#2A6FFF",
},
{
name: "中度污染",
bgc: "#FFA72A",
},
{
name: "重度污染",
bgc: "#FF842A",
},
],
clear_water_info: [
{
classify: "国考断面",
num: 2,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
{
classify: "省控断面",
num: 2,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
{
classify: "饮用水水源地",
num: 1,
name: "优Ⅲ类",
current_num: "100%",
target_num: "100%",
compare_num: 0.5,
},
],
aq_desc_info: [
{
name: "空气优良天数比",
target_num: "93.3%",
current_num: "99.3%",
compare_num: -0.7,
icon: "icon-kongqiyouliang",
},
{
name: "PM2.5浓度",
target_num: 36,
current_num: 22,
compare_num: -4.3,
icon: "icon-pm",
},
],
no_waste_info: [
{
name: "医疗废物收集处置率",
target_num: "100%",
current_num: "100%",
compare_num: 0.5,
},
{
name: "医城镇垃圾分类覆盖面",
target_num: "100%",
current_num: "80%",
compare_num: 0.5,
},
],
br_info: [
{
name: "河湖问题整改",
target_num: "93.3%",
current_num: "95.3%",
compare_num: 0.5,
},
{
name: "河湖问题整改",
target_num: "93.3%",
current_num: "95.3%",
compare_num: 0.5,
},
],
ecological_creation_info: [
{
name: "市级生态文明建设示范市(县)",
num: "24个",
icon: "icon-gongyuzhuzhai",
},
{
name: "县市区级生态文明建设示范市(县)",
num: "61个",
icon: "icon-chengshi1",
},
{
name: '绿水青山就是"金山银山"实践创新基地',
num: "24个",
icon: "icon-shanshui",
},
],
treeData: [
{
name: "深化碧水行动",
children: [
{
name: "新增小微企业园(39.7)",
status: '正常'
},
{
name: "探索开展“清新田园”建设(39.7)",
status: '滞后'
},
{
name: "接收外送电(39.7)",
status: '滞后'
},
{
name: "全省天然气消费量(39.7)",
status: '正常'
},
{
name: "海铁联运量(39.7)",
status: '正常'
},
{
name: "淘汰国Ⅲ及以下老旧运营(39.7)",
status: '正常'
},
{
name: "工业废气治理项目(39.7)",
status: '正常'
},
{
name: "工业废物治理项目(39.7)",
status: '正常'
}
],
},
],
};
},
{
name: '绿水青山就是"金山银山"实践创新基地',
num: "24个",
icon: "icon-shanshui",
mounted() {
this.listenMessage();
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
window.parent.postMessage(document.body.scrollHeight, '*');
})();
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
},
],
treeData: [
{
name: "深化碧水行动",
children: [
{
name: "新增小微企业园(39.7)",
status:'正常'
},
{
name: "探索开展“清新田园”建设(39.7)",
status:'滞后'
},
{
name: "接收外送电(39.7)",
status:'滞后'
},
{
name: "全省天然气消费量(39.7)",
status:'正常'
methods: {
listenMessage() {
window.addEventListener('message', this.bindThis.bind(this));
},
{
name: "海铁联运量(39.7)",
status:'正常'
async bindThis(e) {
const query = this.$route.query;
if (query.debug == "true") {
return;
}
const ret = await messageFun(e);
if (ret == false) {
this.$router.push("err");
}
},
{
name: "淘汰国Ⅲ及以下老旧运营(39.7)",
status:'正常'
},
{
name: "工业废气治理项目(39.7)",
status:'正常'
},
{
name: "工业废物治理项目(39.7)",
status:'正常'
}
],
},
],
};
},
mounted() {
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
window.parent.postMessage(document.body.scrollHeight, '*');
})();
}
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
}
};
</script>
<style lang="scss" scoped>
.ecology {
// width: 1300px;
width: calc(100% - 40px);
margin: 0px auto;
padding: 20px;
// background: #666
}
//公共样式
.module-tit{
font-size: 20px;
padding: 16px 0 12px 12px;
font-weight: 600;
position: relative;
}
.module-tit::before{
content: "";
position: absolute;
left: 0px;
top: 16px;
width: 4px;
height: 28px;
background-color: #1492ff;
}
.unify-item{
box-sizing: border-box;
padding: 0 20px 12px;
background-color: #fff;
border-radius: 4px;
margin-bottom: 20px;
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
//当前页面样式
.clear-water {
ul {
li {
display: flex;
justify-content: space-between;
align-items: center;
height: 130px;
background-color: #fafafa;
margin-bottom: 20px;
color: #333;
.cw-classify {
width: 30px;
height: 130px;
text-align: center;
background-color: #e1f1ff;
color: #1492ff;
.ecology {
// width: 1300px;
width: calc(100% - 40px);
margin: 0px auto;
padding: 20px;
// background: #666
}
//公共样式
.module-tit {
font-size: 20px;
padding: 16px 0 12px 12px;
font-weight: 600;
position: relative;
}
.module-tit::before {
content: "";
position: absolute;
left: 0px;
top: 16px;
width: 4px;
height: 28px;
background-color: #1492ff;
}
.unify-item {
box-sizing: border-box;
padding: 0 20px 12px;
background-color: #fff;
border-radius: 4px;
margin-bottom: 20px;
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
//当前页面样式
.clear-water {
ul {
li {
display: flex;
padding: 0 8px;
justify-content: space-between;
align-items: center;
}
.cw-progress {
position: relative;
>>> .el-progress-circle {
width: 100px !important;
height: 100px !important;
}
> p {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 18px;
}
}
.cw-percentage {
.cw-per-num {
font-size: 20px;
height: 130px;
background-color: #fafafa;
margin-bottom: 20px;
color: #333;
.cw-classify {
width: 30px;
height: 130px;
text-align: center;
background-color: #e1f1ff;
color: #1492ff;
font-weight: 600;
margin-bottom: 8px;
display: flex;
padding: 0 8px;
align-items: center;
}
.cw-per-text {
font-size: 18px;
.cw-progress {
position: relative;
> > > .el-progress-circle {
width: 100px !important;
height: 100px !important;
}
> p {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 18px;
}
}
}
.cw-compare {
width: 35%;
padding-left: 20px;
box-sizing: border-box;
border-left: 1px solid #eee;
.cw-com-per {
color: #1492ff;
margin: 8px 0 12px;
.cw-percentage {
.cw-per-num {
font-size: 20px;
color: #1492ff;
font-weight: 600;
margin-bottom: 8px;
}
.cw-per-text {
font-size: 18px;
}
}
.cw-com-desc {
color: #1bd68a;
margin: 5px 0;
.cw-compare {
width: 35%;
padding-left: 20px;
box-sizing: border-box;
border-left: 1px solid #eee;
.cw-com-per {
color: #1492ff;
margin: 8px 0 12px;
}
.cw-com-desc {
color: #1bd68a;
margin: 5px 0;
}
}
}
}
}
}
.air-quality {
.aq-map {
display: flex;
justify-content: space-around;
align-items: center;
img {
width: 40%;
height: auto;
}
.aq-exponent {
p {
font-size: 18px;
font-weight: 600;
}
}
}
.aq-list {
margin: 20px 0;
li {
.air-quality {
.aq-map {
display: flex;
justify-content: space-around;
align-items: center;
padding: 8px 0;
i {
display: block;
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 8px;
img {
width: 40%;
height: auto;
}
}
}
.aq-desc {
display: flex;
justify-content: space-around;
margin-top: 12px;
color: #333;
li {
width: 47%;
background-color: #fafafa;
.aq-desc-name {
color: #1492ff;
height: 36px;
text-align: center;
line-height: 36px;
border-radius: 2px;
background-color: #e1f1ff;
.aq-exponent {
p {
font-size: 18px;
font-weight: 600;
}
}
.aq-desc-con {
padding: 20px 0 0;
}
.aq-list {
margin: 20px 0;
li {
display: flex;
align-items: center;
padding: 8px 0;
i {
display: block;
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 8px;
}
}
}
.aq-desc {
display: flex;
justify-content: space-around;
margin-top: 12px;
color: #333;
li {
width: 47%;
background-color: #fafafa;
.aq-desc-name {
color: #1492ff;
font-size: 24px;
line-height: 46px;
height: 36px;
text-align: center;
line-height: 36px;
border-radius: 2px;
background-color: #e1f1ff;
}
.aq-desc-tb {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding: 0 12px;
> div {
width: 45%;
.aq-desc-con {
padding: 20px 0 0;
i {
color: #1492ff;
font-size: 24px;
line-height: 46px;
}
.aq-desc-icon {
width: 46px;
height: 46px;
border-radius: 50%;
background-color: #e7f5ff;
text-align: center;
.aq-desc-tb {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding: 0 12px;
> div {
width: 45%;
}
.aq-desc-icon {
width: 46px;
height: 46px;
border-radius: 50%;
background-color: #e7f5ff;
text-align: center;
}
}
}
}
}
}
}
.no-waste {
.nw-con {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
li {
padding: 12px 20px;
background-color: #eefbff;
width: 48%;
box-sizing: border-box;
color: #333;
.nw-task-name {
font-size: 18px;
font-weight: 600;
color: #000;
}
.nw-task-num {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 12px 0;
p {
.no-waste {
.nw-con {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
li {
padding: 12px 20px;
background-color: #eefbff;
width: 48%;
box-sizing: border-box;
color: #333;
.nw-task-name {
font-size: 18px;
margin: 5px 0;
font-weight: 600;
color: #000;
}
.nw-task-current {
width: 20%;
.nw-task-num {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 12px 0;
p {
color: #1492ff;
font-size: 18px;
margin: 5px 0;
}
}
.nw-task-target {
width: 20%;
p {
color: #ffc149;
.nw-task-current {
width: 20%;
p {
color: #1492ff;
}
}
}
.nw-task-compare {
width: 45%;
p {
color: #1bd68a;
.nw-task-target {
width: 20%;
p {
color: #ffc149;
}
}
.nw-task-compare {
width: 45%;
p {
color: #1bd68a;
}
}
}
}
}
.nw-task-first {
width: 100%;
background-color: #fffcee;
margin-bottom: 20px;
.nw-task-first {
width: 100%;
background-color: #fffcee;
margin-bottom: 20px;
}
}
}
}
.beautiful-rivers {
.br-con {
li {
padding: 12px 20px;
background-color: #fbfbfb;
margin-bottom: 12px;
color: #333;
h4 {
font-weight: 600;
font-size: 18px;
color: #000;
}
.br-task-num {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 0;
>>> .el-progress-circle {
width: 60px !important;
height: 60px !important;
.beautiful-rivers {
.br-con {
li {
padding: 12px 20px;
background-color: #fbfbfb;
margin-bottom: 12px;
color: #333;
h4 {
font-weight: 600;
font-size: 18px;
color: #000;
}
& > div {
.br-task-num {
display: flex;
align-items: center;
width: 30%;
}
.br-task-pro {
position: relative;
margin-right: 8px;
i {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 24px;
justify-content: space-between;
padding: 8px 0;
> > > .el-progress-circle {
width: 60px !important;
height: 60px !important;
}
}
.br-task-compare {
i {
font-size: 42px;
color: #1bd68a;
& > div {
display: flex;
align-items: center;
width: 30%;
}
.br-task-pro {
position: relative;
margin-right: 8px;
i {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 24px;
}
}
.br-task-compare {
i {
font-size: 42px;
color: #1bd68a;
margin-right: 8px;
}
}
}
}
}
}
}
.ecological-creation {
.ec-con {
display: flex;
justify-content: space-between;
li {
width: 30%;
background-color: #f1f3f5;
padding: 12px;
text-align: center;
color: #333;
box-sizing: border-box;
i {
font-size: 44px;
color: #1492ff;
.ecological-creation {
.ec-con {
display: flex;
justify-content: space-between;
li {
width: 30%;
background-color: #f1f3f5;
padding: 12px;
text-align: center;
color: #333;
box-sizing: border-box;
i {
font-size: 44px;
color: #1492ff;
}
}
}
}
}
</style>
\ No newline at end of file
</style>
<template>
<div class="epidemic">
<div class="shadow">
<Breadcrumb :breadData="breadData"></Breadcrumb>
<div class="epidemic main">
<div class="minHeader shadow">
<Breadcrumb :breadData="breadData"></Breadcrumb>
</div>
<div class="epidemic-tabs mt20">
<ul class="et-con">
......@@ -193,13 +193,13 @@
<el-col :sm="8" :xs="24">
<div class="vt-ipt">
<p>证件号码</p>
<input type="text" v-model="vt.vt_code1" />
<input type="text" v-model="vt.vt_code1"/>
</div>
</el-col>
<el-col :sm="8" :xs="16">
<div class="vt-ipt">
<p>电子监管码</p>
<input type="text" v-model="vt.vt_code2" />
<input type="text" v-model="vt.vt_code2"/>
</div>
</el-col>
<el-col :sm="4" :xs="8">
......@@ -483,7 +483,7 @@
</div>
<div class="re-search">
<p>冷链码</p>
<input type="text" />
<input type="text"/>
<button>
<i class="el-icon-search"></i>
检索
......@@ -520,842 +520,908 @@
</template>
<script>
import Breadcrumb from "../components/Breadcrumb.vue";
export default {
name: "epidemic",
components: { Breadcrumb },
data() {
return {
breadData: {
page_name: "常态化疫情防控",
annual_target: "暂无数据",
leading: "县疫情防控办 县卫生健康局",
},
epidemic_tabs_info: [
{
name: "疫苗接种",
},
{
name: "疫情追溯",
},
{
name: "冷链追溯",
},
],
epidemic_tabs_idx: 0,
vt: {
vt_code1: "",
vt_code2: "",
vt_info_table: [],
},
cct: {
mf_info_table: [
{
category: "食品",
sampling_num: "0",
positive_num: "0",
},
{
category: "外环境",
sampling_num: "0",
positive_num: "0",
},
{
category: "从业人员",
sampling_num: "0",
positive_num: "0",
},
],
ms_info_table: [
{
category: "肉类",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "水产",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "其他",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "食品外包装",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "环境",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "从业人员",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "合计",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
],
result_table: [
{
date: "2021-05-06",
informant: "张*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
{
date: "2021-05-06",
informant: "李*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
{
date: "2021-05-21",
informant: "王*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
],
step_info: [
{
step: "1",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
{
step: "2",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
{
step: "3",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
],
},
};
},
mounted() {
this.init_circle_1();
this.init_circle_2();
this.init_line_1();
this.init_bar_2();
this.init_bar_1();
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
window.parent.postMessage(document.body.scrollHeight, '*');
})();
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
},
methods: {
tabIdx(i) {
this.epidemic_tabs_idx = i;
},
init_circle_1() {
this.cChart_1 = this.$echarts.init(document.getElementById("circle_1"));
this.cChart_1.setOption({
title: {
text: ((27673 / 96150) * 100).toFixed(2) + "%",
subtext: "疫苗接种完成率",
x: "center",
y: "center",
textStyle: {
fontWeight: "600",
fontSize: 20,
color: "#000",
}, // 标题
subtextStyle: {
fontWeight: "normal",
fontSize: 16,
color: "#666",
}, // 副标题
},
color: ["#48A1FF", "#efefef"],
series: [
{
name: "访问来源",
type: "pie",
radius: ["70%", "85%"], // 半径
center: ["50%", "50%"], // 位置
label: {
show: false,
},
data: [
{
value: 27673,
name: "接种人数",
},
{
value: 96150 - 27673,
name: "未接种人数",
},
],
},
],
});
},
init_circle_2() {
this.cChart_2 = this.$echarts.init(document.getElementById("circle_2"));
this.cChart_2.setOption({
color: ["#5470C6", "#91CC75"],
series: [
{
type: "pie",
hoverAnimation: false,
radius: ["80%", "95%"],
//环的位置
label: {
normal: {
position: "inner",
},
},
labelLine: {
normal: {
show: false,
},
},
data: [
{
value: 30.53, //需要显示的数据
itemStyle: {
normal: {
color: "#5470C6",
},
},
},
{
value: 100 - 30.53,
//不需要显示的数据,颜色设置成和背景一样
itemStyle: {
normal: {
color: "#E6EBF8",
},
import Breadcrumb from "../components/Breadcrumb.vue";
import {messageFun} from '../util/jianquan'
export default {
name: "epidemic",
components: {Breadcrumb},
data() {
return {
breadData: {
page_name: "常态化疫情防控",
annual_target: "暂无数据",
leading: "县疫情防控办 县卫生健康局",
},
},
],
},
{
type: "pie",
hoverAnimation: false,
radius: ["65%", "80%"],
label: {
normal: {
position: "inner",
},
},
labelLine: {
normal: {
show: false,
},
},
data: [
{
value: 79.2,
itemStyle: {
normal: {
color: "#91CC75",
},
epidemic_tabs_info: [
{
name: "疫苗接种",
},
{
name: "疫情追溯",
},
{
name: "冷链追溯",
},
],
epidemic_tabs_idx: 0,
vt: {
vt_code1: "",
vt_code2: "",
vt_info_table: [],
},
},
{
value: 100 - 79.2,
itemStyle: {
normal: {
color: "#E6EBF8",
},
cct: {
mf_info_table: [
{
category: "食品",
sampling_num: "0",
positive_num: "0",
},
{
category: "外环境",
sampling_num: "0",
positive_num: "0",
},
{
category: "从业人员",
sampling_num: "0",
positive_num: "0",
},
],
ms_info_table: [
{
category: "肉类",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "水产",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "其他",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "食品外包装",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "环境",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "从业人员",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
{
category: "合计",
slaughter_num: "0",
produce_num: "0",
bestowal_num: "0",
manage_num: "0",
positive_num: "0",
},
],
result_table: [
{
date: "2021-05-06",
informant: "张*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
{
date: "2021-05-06",
informant: "李*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
{
date: "2021-05-21",
informant: "王*",
tel: "xxx",
unit: "xxx",
category: "xxx",
code: "xxx",
},
],
step_info: [
{
step: "1",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
{
step: "2",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
{
step: "3",
product_name: "147118505帝皇鲜",
upstream_name: "天普乐食食品(上海)有限公司",
upstream_address:
"浙江省杭州经济技术开发区白杨街道11号大街469号1幢南楼201室",
downstream_name: "杭州盒马网络科技有限公司下沙第一分公司",
downstream_address: "",
type: "无码入库",
date: "2021-04-12 21:16:26",
},
],
},
},
],
},
],
});
},
init_line_1() {
this.line_1 = this.$echarts.init(document.getElementById("line_1"));
this.line_1.setOption({
legend: {
orient: "horizontal",
x: "0%",
y: "0%",
data: ["接种量", "库存量"],
textStyle: {
fontSize: 16,
},
},
grid: {
top: "30%",
left: "3%",
right: "8%",
bottom: "3%",
containLabel: true,
};
},
tooltip: {
trigger: "axis",
mounted() {
this.listenMessage();
this.init_circle_1();
this.init_circle_2();
this.init_line_1();
this.init_bar_2();
this.init_bar_1();
window.parent.postMessage(document.body.scrollHeight, '*');
window.onresize = () => {
return (() => {
window.parent.postMessage(document.body.scrollHeight, '*');
})();
};
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
},
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#333",
fontSize: 14,
methods: {
listenMessage() {
window.addEventListener('message', this.bindThis.bind(this));
},
},
boundaryGap: false,
data: ["05.21", "05.22", "05.23", "05.24", "05.25", "05.26", "05.27"],
},
yAxis: {
type: "value",
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
}
},
series: [
{
name: "接种量",
data: [0, 0, 0, 0, 0, 0, 0],
type: "line",
},
{
name: "库存量",
data: [0, 0, 0, 0, 0, 0, 0],
type: "line",
},
],
color: ["#3DCBCD", "#7FD5AB"],
});
},
init_bar_1() {
this.bar_1 = this.$echarts.init(document.getElementById("bar_1"));
this.bar_1.setOption({
legend: {
orient: "horizontal",
x: "left",
y: "top",
data: ["供应数", "接种数"],
},
tooltip: {
show: true, // 是否显示提示框,默认为true
trigger: "item", // 数据项图形触发
axisPointer: {
// 指示样式
type: "shadow",
axis: "auto",
},
padding: 5,
textStyle: {
// 提示框内容的样式
color: "#666",
},
},
// ---- gird区域 ---
// ------ X轴 ------
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#666",
async bindThis(e) {
const query = this.$route.query;
if (query.debug == "true") {
return;
}
const ret = await messageFun(e);
if (ret == false) {
this.$router.push("err");
}
},
},
axisLabel: {
rotate: 30,
interval: 0
},
show: true, // 是否显示
data: [
"莲都",
"龙泉",
"青田",
"云和",
"庆元",
"缙云",
"遂昌",
"松阳",
"景宁",
"开发区",
],
},
// ------ y轴 ----------
yAxis: {
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
type: "value", // 轴类型,默认为 ‘category’
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
},
},
// ------- 内容数据 -------
series: [
{
name: "供应数", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#48A1FF",
tabIdx(i) {
this.epidemic_tabs_idx = i;
},
barWidth: 12, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
{
name: "接种数", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#83D7AE",
init_circle_1() {
this.cChart_1 = this.$echarts.init(document.getElementById("circle_1"));
this.cChart_1.setOption({
title: {
text: ((27673 / 96150) * 100).toFixed(2) + "%",
subtext: "疫苗接种完成率",
x: "center",
y: "center",
textStyle: {
fontWeight: "600",
fontSize: 20,
color: "#000",
}, // 标题
subtextStyle: {
fontWeight: "normal",
fontSize: 16,
color: "#666",
}, // 副标题
},
color: ["#48A1FF", "#efefef"],
series: [
{
name: "访问来源",
type: "pie",
radius: ["70%", "85%"], // 半径
center: ["50%", "50%"], // 位置
label: {
show: false,
},
data: [
{
value: 27673,
name: "接种人数",
},
{
value: 96150 - 27673,
name: "未接种人数",
},
],
},
],
});
},
barWidth: 12, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
],
});
},
init_bar_2() {
this.bar_2 = this.$echarts.init(document.getElementById("bar_2"));
this.bar_2.setOption({
tooltip: {
show: true, // 是否显示提示框,默认为true
trigger: "item", // 数据项图形触发
axisPointer: {
// 指示样式
type: "shadow",
axis: "auto",
},
padding: 5,
textStyle: {
// 提示框内容的样式
color: "#666",
},
},
// ---- gird区域 ---
// ------ X轴 ------
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#666",
init_circle_2() {
this.cChart_2 = this.$echarts.init(document.getElementById("circle_2"));
this.cChart_2.setOption({
color: ["#5470C6", "#91CC75"],
series: [
{
type: "pie",
hoverAnimation: false,
radius: ["80%", "95%"],
//环的位置
label: {
normal: {
position: "inner",
},
},
labelLine: {
normal: {
show: false,
},
},
data: [
{
value: 30.53, //需要显示的数据
itemStyle: {
normal: {
color: "#5470C6",
},
},
},
{
value: 100 - 30.53,
//不需要显示的数据,颜色设置成和背景一样
itemStyle: {
normal: {
color: "#E6EBF8",
},
},
},
],
},
{
type: "pie",
hoverAnimation: false,
radius: ["65%", "80%"],
label: {
normal: {
position: "inner",
},
},
labelLine: {
normal: {
show: false,
},
},
data: [
{
value: 79.2,
itemStyle: {
normal: {
color: "#91CC75",
},
},
},
{
value: 100 - 79.2,
itemStyle: {
normal: {
color: "#E6EBF8",
},
},
},
],
},
],
});
},
},
axisLabel: {
rotate: 30,
interval: 0,
},
show: true, // 是否显示
data: [
"莲都",
"龙泉",
"青田",
"云和",
"庆元",
"缙云",
"遂昌",
"松阳",
"景宁",
"开发区",
],
},
// ------ y轴 ----------
yAxis: {
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
type: "value", // 轴类型,默认为 ‘category’
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
},
},
// ------- 内容数据 -------
series: [
{
name: "库存量", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#48A1FF",
init_line_1() {
this.line_1 = this.$echarts.init(document.getElementById("line_1"));
this.line_1.setOption({
legend: {
orient: "horizontal",
x: "0%",
y: "0%",
data: ["接种量", "库存量"],
textStyle: {
fontSize: 16,
},
},
grid: {
top: "30%",
left: "3%",
right: "8%",
bottom: "3%",
containLabel: true,
},
tooltip: {
trigger: "axis",
},
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#333",
fontSize: 14,
},
},
boundaryGap: false,
data: ["05.21", "05.22", "05.23", "05.24", "05.25", "05.26", "05.27"],
},
yAxis: {
type: "value",
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
}
},
series: [
{
name: "接种量",
data: [0, 0, 0, 0, 0, 0, 0],
type: "line",
},
{
name: "库存量",
data: [0, 0, 0, 0, 0, 0, 0],
type: "line",
},
],
color: ["#3DCBCD", "#7FD5AB"],
});
},
barWidth: 15, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
],
});
},
},
};
init_bar_1() {
this.bar_1 = this.$echarts.init(document.getElementById("bar_1"));
this.bar_1.setOption({
legend: {
orient: "horizontal",
x: "left",
y: "top",
data: ["供应数", "接种数"],
},
tooltip: {
show: true, // 是否显示提示框,默认为true
trigger: "item", // 数据项图形触发
axisPointer: {
// 指示样式
type: "shadow",
axis: "auto",
},
padding: 5,
textStyle: {
// 提示框内容的样式
color: "#666",
},
},
// ---- gird区域 ---
// ------ X轴 ------
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#666",
},
},
axisLabel: {
rotate: 30,
interval: 0
},
show: true, // 是否显示
data: [
"莲都",
"龙泉",
"青田",
"云和",
"庆元",
"缙云",
"遂昌",
"松阳",
"景宁",
"开发区",
],
},
// ------ y轴 ----------
yAxis: {
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
type: "value", // 轴类型,默认为 ‘category’
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
},
},
// ------- 内容数据 -------
series: [
{
name: "供应数", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#48A1FF",
},
barWidth: 12, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
{
name: "接种数", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#83D7AE",
},
barWidth: 12, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
],
});
},
init_bar_2() {
this.bar_2 = this.$echarts.init(document.getElementById("bar_2"));
this.bar_2.setOption({
tooltip: {
show: true, // 是否显示提示框,默认为true
trigger: "item", // 数据项图形触发
axisPointer: {
// 指示样式
type: "shadow",
axis: "auto",
},
padding: 5,
textStyle: {
// 提示框内容的样式
color: "#666",
},
},
// ---- gird区域 ---
// ------ X轴 ------
xAxis: {
type: "category",
axisLine: {
lineStyle: {
color: "#666",
},
},
axisLabel: {
rotate: 30,
interval: 0,
},
show: true, // 是否显示
data: [
"莲都",
"龙泉",
"青田",
"云和",
"庆元",
"缙云",
"遂昌",
"松阳",
"景宁",
"开发区",
],
},
// ------ y轴 ----------
yAxis: {
show: true, // 是否显示
name: "单位(万剂)", // 轴名称
type: "value", // 轴类型,默认为 ‘category’
nameTextStyle: {
// 坐标轴名称样式
color: "#666",
padding: [5, 0, 0, 5], // 坐标轴名称相对位置
fontSize: 14,
},
},
// ------- 内容数据 -------
series: [
{
name: "库存量", // 序列名称
type: "bar", // 类型
legendHoverLink: true, // 是否启用图列 hover 时的联动高亮
itemStyle: {
// 图形的形状
color: "#48A1FF",
},
barWidth: 15, // 柱形的宽度
barCategoryGap: "10%", // 柱形的间距
data: [100, 78, 90, 85, 93, 86, 98, 95, 80, 78],
},
],
});
},
},
};
</script>
<style lang='scss' scoped>
.epidemic {
// background: #666;
// width: 1300px;
width: calc(100% - 40px);
margin: 0px auto;
padding: 20px
}
.module-tit{
font-size: 20px;
padding: 16px 0 12px 12px;
font-weight: 600;
position: relative;
}
.module-tit::before{
content: "";
position: absolute;
left: 0px;
top: 16px;
width: 4px;
height: 28px;
background-color: #1492ff;
}
.unify-item{
box-sizing: border-box;
padding: 0 20px 12px;
background-color: #fff;
border-radius: 4px;
margin-bottom: 20px;
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
.epidemic {
// background: #666;
// width: 1300px;
width: calc(100% - 40px);
margin: 0px auto;
padding: 20px
}
.module-tit {
font-size: 20px;
padding: 16px 0 12px 12px;
font-weight: 600;
position: relative;
}
h3 {
border-bottom: 1px solid #ddd;
}
button {
padding: 0 12px;
height: 30px;
line-height: 30px;
background-color: #1492ff;
border-radius: 2px;
border: 0;
color: #fff;
font-size: 16px;
}
input {
height: 28px;
outline: none;
border: 0;
border: 1px solid #ccc;
border-radius: 2px;
margin-left: 5px;
font-size: 16px;
padding: 0 8px;
}
.ep-name {
font-size: 18px;
color: #1492ff;
margin: 8px 0;
text-align: center;
}
.e-pro {
position: relative;
.e-pro-text {
.module-tit::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
white-space: nowrap;
left: 0px;
top: 16px;
width: 4px;
height: 28px;
background-color: #1492ff;
}
}
.epidemic-tabs {
margin-bottom: 20px;
.et-con {
width: 66.667%;
margin: 0 auto;
display: flex;
justify-content: space-between;
li {
width: 20%;
color: #1492ff;
background-color: #fff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
height: 48px;
line-height: 48px;
font-size: 20px;
border-radius: 2px;
cursor: pointer;
}
.et-disabled {
color: #999;
}
.active {
color: #fff;
background-color: #02a7f0;
}
.unify-item {
box-sizing: border-box;
padding: 0 20px 12px;
background-color: #fff;
border-radius: 4px;
margin-bottom: 20px;
}
}
.general-situation {
.gs-top {
display: flex;
align-items: center;
justify-content: center;
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
h3 {
border-bottom: 1px solid #ddd;
}
button {
padding: 0 12px;
height: 30px;
line-height: 30px;
background-color: #1492ff;
border-radius: 2px;
border: 0;
color: #fff;
font-size: 16px;
}
input {
height: 28px;
outline: none;
border: 0;
border: 1px solid #ccc;
border-radius: 2px;
margin-left: 5px;
font-size: 16px;
padding: 0 8px;
}
.ep-name {
font-size: 18px;
color: #1492ff;
margin: 8px 0;
p {
margin: 0 8px;
font-size: 18px;
}
.hr1 {
width: 59px;
height: 2px;
background: -webkit-gradient(
linear,
right top,
left top,
from(#4192f6),
to(#fff)
);
background: linear-gradient(270deg, #4192f6, #fff);
}
.hr2 {
width: 59px;
height: 2px;
background: -webkit-gradient(
linear,
left top,
right top,
from(#4192f6),
to(#fff)
);
background: linear-gradient(90deg, #4192f6, #fff);
}
text-align: center;
}
.gs-con {
display: flex;
align-items: center;
margin: 20px 0;
flex-wrap: wrap;
.gs-con-item {
.e-pro {
position: relative;
.e-pro-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
background-color: #f6f7f8;
height: 210px;
white-space: nowrap;
}
}
.epidemic-tabs {
margin-bottom: 20px;
.et-con {
width: 66.667%;
margin: 0 auto;
display: flex;
flex-direction: column;
justify-content: center;
font-size: 18px;
box-sizing: border-box;
padding: 0 4px;
div {
margin: 8px 0;
}
span {
justify-content: space-between;
li {
width: 20%;
color: #1492ff;
background-color: #fff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
height: 48px;
line-height: 48px;
font-size: 20px;
border-radius: 2px;
cursor: pointer;
}
.et-disabled {
color: #999;
}
.active {
color: #fff;
background-color: #02a7f0;
}
}
}
}
.vaccination-progress {
.vp-con {
display: flex;
justify-content: space-between;
align-items: center;
.vp-text {
width: 50%;
}
}
}
.daily-news {
.dn-con {
display: flex;
justify-content: space-between;
align-items: center;
.dn-text {
width: 30%;
font-size: 18px;
}
}
}
.key-groups {
.kg-con {
margin: 40px 0;
color: #333;
> div {
text-align: center;
.general-situation {
.gs-top {
display: flex;
align-items: center;
justify-content: center;
color: #1492ff;
margin: 8px 0;
p {
margin: 30px 0;
height: 56px;
margin: 0 8px;
font-size: 18px;
}
.hr1 {
width: 59px;
height: 2px;
background: -webkit-gradient(
linear,
right top,
left top,
from(#4192f6),
to(#fff)
);
background: linear-gradient(270deg, #4192f6, #fff);
}
.hr2 {
width: 59px;
height: 2px;
background: -webkit-gradient(
linear,
left top,
right top,
from(#4192f6),
to(#fff)
);
background: linear-gradient(90deg, #4192f6, #fff);
}
}
>>> .el-progress-circle {
width: 100px !important;
height: 100px !important;
.gs-con {
display: flex;
align-items: center;
margin: 20px 0;
flex-wrap: wrap;
.gs-con-item {
text-align: center;
background-color: #f6f7f8;
height: 210px;
display: flex;
flex-direction: column;
justify-content: center;
font-size: 18px;
box-sizing: border-box;
padding: 0 4px;
div {
margin: 8px 0;
}
span {
color: #1492ff;
}
}
}
}
}
.vaccine-traceability {
h4 {
font-weight: normal;
font-size: 18px;
}
.vt-con {
.vt-top {
margin: 12px 0 0;
}
.vt-ipt {
.vaccination-progress {
.vp-con {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
input {
.vp-text {
width: 50%;
}
}
.vt-info-table {
>>> .el-table {
min-height: 300px;
border: 1px solid #ddd;
}
>>> .is-leaf {
background-color: #1492ff;
color: #fff;
border-right: 1px solid #fff;
}
.daily-news {
.dn-con {
display: flex;
justify-content: space-between;
align-items: center;
.dn-text {
width: 30%;
font-size: 18px;
}
}
.vaccinator-info {
margin: 12px 0;
border-bottom: 1px solid #ddd;
.vaccinator-info-con {
padding: 12px;
color: #333;
overflow: hidden;
}
.key-groups {
.kg-con {
margin: 40px 0;
color: #333;
> div {
text-align: center;
p {
margin: 5px 0;
margin: 30px 0;
height: 56px;
}
}
> > > .el-progress-circle {
width: 100px !important;
height: 100px !important;
}
}
}
}
.cold-chain-tracing {
h4 {
font-weight: normal;
font-size: 18px;
padding: 12px 0;
}
>>> .el-table__header tr,
>>> .el-table__header th {
padding: 0;
height: 40px;
}
>>> .is-leaf {
background-color: #1492ff;
color: #fff;
}
.monitoring {
.monitoring-first {
.mf-text {
.vaccine-traceability {
h4 {
font-weight: normal;
font-size: 18px;
}
.vt-con {
.vt-top {
margin: 12px 0 0;
}
.vt-ipt {
display: flex;
justify-content: space-between;
padding: 0 20px 0 12px;
margin: 8px 0;
align-items: center;
margin-bottom: 12px;
input {
width: 50%;
}
}
.vt-info-table {
> > > .el-table {
min-height: 300px;
border: 1px solid #ddd;
}
> > > .is-leaf {
background-color: #1492ff;
color: #fff;
border-right: 1px solid #fff;
}
}
.vaccinator-info {
margin: 12px 0;
border-bottom: 1px solid #ddd;
.vaccinator-info-con {
padding: 12px;
color: #333;
overflow: hidden;
p {
margin: 5px 0;
}
}
}
}
}
}
.result {
.re-search {
display: flex;
align-items: center;
margin: 12px 0 20px;
input {
margin: 0 8px;
.cold-chain-tracing {
h4 {
font-weight: normal;
font-size: 18px;
padding: 12px 0;
}
}
.re-step {
.step-title {
color: #1492ff;
padding: 8px 0;
border-bottom: 1px dashed #1492ff;
i {
font-size: 18px;
> > > .el-table__header tr,
> > > .el-table__header th {
padding: 0;
height: 40px;
}
> > > .is-leaf {
background-color: #1492ff;
color: #fff;
}
.monitoring {
.monitoring-first {
.mf-text {
display: flex;
justify-content: space-between;
padding: 0 20px 0 12px;
margin: 8px 0;
}
}
span {
padding: 0 5px;
border: 1px solid #1492ff;
line-height: 18px;
border-radius: 10px;
}
}
.result {
.re-search {
display: flex;
align-items: center;
margin: 12px 0 20px;
input {
margin: 0 8px;
}
}
.step-desc {
margin: 20px 0;
color: #333;
padding: 0 12px;
p {
margin: 8px 0;
.re-step {
.step-title {
color: #1492ff;
padding: 8px 0;
border-bottom: 1px dashed #1492ff;
i {
font-size: 18px;
}
span {
padding: 0 5px;
border: 1px solid #1492ff;
line-height: 18px;
border-radius: 10px;
}
}
.step-desc {
margin: 20px 0;
color: #333;
padding: 0 12px;
p {
margin: 8px 0;
}
}
}
}
}
</style>
\ No newline at end of file
</style>
......@@ -42,7 +42,7 @@
</el-table-column>
<el-table-column prop="allow_id" label="执业许可证号">
</el-table-column>
<el-table-column prop="address" label="机构地址"> </el-table-column>
<el-table-column prop="address" label="机构地址"></el-table-column>
</el-table>
<div style="width: 400px">
<div id="main1" style="max-width: 100%; height: 400px"></div>
......@@ -67,34 +67,34 @@
</el-table-column>
<el-table-column prop="name" label="行政划分" width="80">
</el-table-column>
<el-table-column prop="fzs" label="发证数"> </el-table-column>
<el-table-column prop="yxzs" label="有效数"> </el-table-column>
<el-table-column prop="fzs" label="发证数"></el-table-column>
<el-table-column prop="yxzs" label="有效数"></el-table-column>
<el-table-column prop="spscjy" label="食品生产经营">
<el-table-column prop="spscjy1" label="发证数"> </el-table-column>
<el-table-column prop="spscjy1" label="发证数"></el-table-column>
<el-table-column prop="spscjy2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="ggcsfw" label="公共场所服务">
<el-table-column prop="ggcsfw1" label="发证数"> </el-table-column>
<el-table-column prop="ggcsfw1" label="发证数"></el-table-column>
<el-table-column prop="ggcsfw2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="shyys" label="生活饮用水">
<el-table-column prop="shyys1" label="发证数"> </el-table-column>
<el-table-column prop="shyys1" label="发证数"></el-table-column>
<el-table-column prop="shyys2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="jzry" label="家政人员">
<el-table-column prop="jzry1" label="发证数"> </el-table-column>
<el-table-column prop="jzry2" label="有效证数"> </el-table-column>
<el-table-column prop="jzry1" label="发证数"></el-table-column>
<el-table-column prop="jzry2" label="有效证数"></el-table-column>
</el-table-column>
<el-table-column prop="hzpsc" label="化妆品生产">
<el-table-column prop="hzpsc1" label="发证数"> </el-table-column>
<el-table-column prop="hzpsc1" label="发证数"></el-table-column>
<el-table-column prop="hzpsc2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="xdpsc" label="消毒产品生产">
<el-table-column prop="xdpsc1" label="发证数"> </el-table-column>
<el-table-column prop="xdpsc1" label="发证数"></el-table-column>
<el-table-column prop="xdpsc2" label="有效证数">
</el-table-column>
</el-table-column>
......@@ -105,25 +105,25 @@
</el-table-column>
</el-table-column>
<el-table-column prop="ypsc" label="药品生产">
<el-table-column prop="ypsc1" label="发证数"> </el-table-column>
<el-table-column prop="ypsc2" label="有效证数"> </el-table-column>
<el-table-column prop="ypsc1" label="发证数"></el-table-column>
<el-table-column prop="ypsc2" label="有效证数"></el-table-column>
</el-table-column>
<el-table-column prop="ylqxsc" label="医疗器械生产">
<el-table-column prop="ylqxsc1" label="发证数"> </el-table-column>
<el-table-column prop="ylqxsc1" label="发证数"></el-table-column>
<el-table-column prop="ylqxsc2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="spggcs" label="食品/公共场所">
<el-table-column prop="spggcs1" label="发证数"> </el-table-column>
<el-table-column prop="spggcs1" label="发证数"></el-table-column>
<el-table-column prop="spggcs2" label="有效证数">
</el-table-column>
</el-table-column>
<el-table-column prop="qt" label="其他">
<el-table-column prop="qt1" label="发证数"> </el-table-column>
<el-table-column prop="qt2" label="有效证数"> </el-table-column>
<el-table-column prop="qt1" label="发证数"></el-table-column>
<el-table-column prop="qt2" label="有效证数"></el-table-column>
</el-table-column>
<el-table-column prop="tyjgby" label="托幼机构保育">
<el-table-column prop="tyjgby1" label="发证数"> </el-table-column>
<el-table-column prop="tyjgby1" label="发证数"></el-table-column>
<el-table-column prop="tyjgby2" label="有效证数">
</el-table-column>
</el-table-column>
......@@ -135,355 +135,375 @@
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import { tableData, tableInfo } from "@/assets/js/data.js";
import Breadcrumb from "../components/Breadcrumb.vue";
import geoJson from '@/assets/json/qingtian.json'
let one, two;
export default {
//import引入的组件需要注入到对象中才能使用
components: {
Breadcrumb
},
data() {
//这里存放数据
return {
breadData: {
page_name: "电子健康证明",
annual_target:
"暂无数据",
leading: "县疫情防控办 县卫生健康局",
},
tableData: tableData,
tableInfo: tableInfo,
};
},
mounted() {
let _this = this;
this.initChart1();
this.initChart2();
window.parent.postMessage(document.body.scrollHeight, '*');
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
// window.onresize = () => {
// return (() => {
// _this.initChart1();
// _this.initChart2();
// })();
// };
},
methods: {
initChart1() {
if (one != null && one != "" && one != undefined) {
one.dispose(); //销毁
}
one = this.$echarts.init(document.getElementById("main1"));
this.$echarts.registerMap("青田县", geoJson, {});
var geoCoordMap = {
青田万康口腔诊所: [120.303531, 28.13867],
青田中学卫生室: [120.327555, 28.112671],
青田中山诊所: [120.402735, 28.168119],
青田二院: [120.395389, 28.160624],
青田仁德医院: [120.2911164100647, 28.13983215729029],
青田仁济中医门诊部: [120.297364, 28.141048],
青田仁济医院: [120.337052, 28.093176],
青田佳吉口腔门诊部: [120.294649, 28.146659],
青田万康口青田俞荣达西医诊所腔诊所: [120.397821, 28.163797],
青田健玲口腔诊所: [120.285431, 28.13896],
};
var convertData = function (data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value),
});
}
}
return res;
};
var option = {
tooltip: {
trigger: "item",
formatter: function (params) {
// console.log(params);
var res = "机构名称:" + params.data.name + "<br/>";
return res;
},
},
series: [
{
name: "医院",
type: "scatter",
mapType: "lishui",
coordinateSystem: "geo",
data: convertData([
{ name: "青田万康口腔诊所", value: 1 },
{ name: "青田中学卫生室", value: 2 },
{ name: "青田中山诊所", value: 3 },
{ name: "青田二院", value: 4 },
{ name: "青田仁德医院", value: 5 },
{ name: "青田仁济中医门诊部", value: 6 },
{ name: "青田仁济医院", value: 7 },
{ name: "青田佳吉口腔门诊部", value: 8 },
{ name: "青田万康口青田俞荣达西医诊所腔诊所", value: 9 },
{ name: "青田健玲口腔诊所", value: 10 },
]),
encode: {
value: 2,
},
zlevel: 10,
symbol: "pin",
symbolSize: 20,
label: {
normal: {
show: true, //显示市区标签
textStyle: { color: "#c71585" }, //省份标签字体颜色
},
emphasis: {
//对应的鼠标悬浮效果
show: true, //关闭文字 (这东西有问题得关)
textStyle: { color: "#800080" },
},
},
itemStyle: {
normal: {
borderWidth: 1, //区域边框宽度
borderColor: "#009fe8", //区域边框颜色
areaColor: "#ffefd5", //区域颜色
},
emphasis: {
show: true,
borderWidth: 0.5,
borderColor: "#4b0082",
areaColor: "#f47920",
},
},
},
],
geo: {
map: "青田县",
itemStyle: {
borderColor: "#1492ff",
areaColor: "#edf4ff",
},
label: {
show: true,
},
},
};
one.setOption(option);
window.addEventListener('resize',() => {
one.resize()
})
},
initChart2() {
if (two != null && two != "" && two != undefined) {
two.dispose(); //销毁
}
two = this.$echarts.init(document.getElementById("main2"));
two.setOption({
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import {tableData, tableInfo} from "@/assets/js/data.js";
import Breadcrumb from "../components/Breadcrumb.vue";
import geoJson from '@/assets/json/qingtian.json'
import {messageFun} from '../util/jianquan'
let one, two;
export default {
//import引入的组件需要注入到对象中才能使用
components: {
Breadcrumb
},
legend: {
data: ["体检人数", "食品生产经营", "公共场所服务", "生活饮用水"],
data() {
//这里存放数据
return {
breadData: {
page_name: "电子健康证明",
annual_target:
"暂无数据",
leading: "县疫情防控办 县卫生健康局",
},
tableData: tableData,
tableInfo: tableInfo,
};
},
grid: {
left: "3%",
right: "4%",
bottom: "5%",
containLabel: true,
mounted() {
this.listenMessage();
let _this = this;
this.initChart1();
this.initChart2();
window.parent.postMessage(document.body.scrollHeight, '*');
window.addEventListener("resize", function (e) {
window.parent.postMessage(document.body.scrollHeight, '*');
});
// window.onresize = () => {
// return (() => {
// _this.initChart1();
// _this.initChart2();
// })();
// };
},
xAxis: [
{
type: "category",
data: [
"东源中心院",
"山口中心院",
"油竹新区卫生院",
"中医院",
"青田二院",
"江南医院",
"腊口中心院",
"船寮中心院",
"康馨医院",
"青田县人民医院温溪分院",
],
axisLabel: {
textStyle: {
color: "#333", //坐标值得具体的颜色
fontSize: 14,
},
width: 100,
overflow: "break",
interval: 0,
},
},
],
yAxis: [
{
type: "value",
name: "人数",
},
],
series: [
{
name: "体检人数",
type: "bar",
emphasis: {
focus: "series",
methods: {
listenMessage() {
window.addEventListener('message', this.bindThis.bind(this));
},
data: [282, 188, 448, 1186, 535, 908, 291, 474, 2410, 736],
},
{
name: "食品生产经营",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
async bindThis(e) {
const query = this.$route.query;
if (query.debug == "true") {
return;
}
const ret = await messageFun(e);
if (ret == false) {
this.$router.push("err");
}
},
data: [259, 186, 360, 797, 493, 628, 252, 449, 1807, 457],
},
{
name: "公共场所服务",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
initChart1() {
if (one != null && one != "" && one != undefined) {
one.dispose(); //销毁
}
one = this.$echarts.init(document.getElementById("main1"));
this.$echarts.registerMap("青田县", geoJson, {});
var geoCoordMap = {
青田万康口腔诊所: [120.303531, 28.13867],
青田中学卫生室: [120.327555, 28.112671],
青田中山诊所: [120.402735, 28.168119],
青田二院: [120.395389, 28.160624],
青田仁德医院: [120.2911164100647, 28.13983215729029],
青田仁济中医门诊部: [120.297364, 28.141048],
青田仁济医院: [120.337052, 28.093176],
青田佳吉口腔门诊部: [120.294649, 28.146659],
青田万康口青田俞荣达西医诊所腔诊所: [120.397821, 28.163797],
青田健玲口腔诊所: [120.285431, 28.13896],
};
var convertData = function (data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value),
});
}
}
return res;
};
var option = {
tooltip: {
trigger: "item",
formatter: function (params) {
// console.log(params);
var res = "机构名称:" + params.data.name + "<br/>";
return res;
},
},
series: [
{
name: "医院",
type: "scatter",
mapType: "lishui",
coordinateSystem: "geo",
data: convertData([
{name: "青田万康口腔诊所", value: 1},
{name: "青田中学卫生室", value: 2},
{name: "青田中山诊所", value: 3},
{name: "青田二院", value: 4},
{name: "青田仁德医院", value: 5},
{name: "青田仁济中医门诊部", value: 6},
{name: "青田仁济医院", value: 7},
{name: "青田佳吉口腔门诊部", value: 8},
{name: "青田万康口青田俞荣达西医诊所腔诊所", value: 9},
{name: "青田健玲口腔诊所", value: 10},
]),
encode: {
value: 2,
},
zlevel: 10,
symbol: "pin",
symbolSize: 20,
label: {
normal: {
show: true, //显示市区标签
textStyle: {color: "#c71585"}, //省份标签字体颜色
},
emphasis: {
//对应的鼠标悬浮效果
show: true, //关闭文字 (这东西有问题得关)
textStyle: {color: "#800080"},
},
},
itemStyle: {
normal: {
borderWidth: 1, //区域边框宽度
borderColor: "#009fe8", //区域边框颜色
areaColor: "#ffefd5", //区域颜色
},
emphasis: {
show: true,
borderWidth: 0.5,
borderColor: "#4b0082",
areaColor: "#f47920",
},
},
},
],
geo: {
map: "青田县",
itemStyle: {
borderColor: "#1492ff",
areaColor: "#edf4ff",
},
label: {
show: true,
},
},
};
one.setOption(option);
window.addEventListener('resize', () => {
one.resize()
})
},
data: [15, 1, 88, 388, 38, 272, 20, 16, 570, 102],
},
{
name: "生活饮用水",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
initChart2() {
if (two != null && two != "" && two != undefined) {
two.dispose(); //销毁
}
two = this.$echarts.init(document.getElementById("main2"));
two.setOption({
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
legend: {
data: ["体检人数", "食品生产经营", "公共场所服务", "生活饮用水"],
},
grid: {
left: "3%",
right: "4%",
bottom: "5%",
containLabel: true,
},
xAxis: [
{
type: "category",
data: [
"东源中心院",
"山口中心院",
"油竹新区卫生院",
"中医院",
"青田二院",
"江南医院",
"腊口中心院",
"船寮中心院",
"康馨医院",
"青田县人民医院温溪分院",
],
axisLabel: {
textStyle: {
color: "#333", //坐标值得具体的颜色
fontSize: 14,
},
width: 100,
overflow: "break",
interval: 0,
},
},
],
yAxis: [
{
type: "value",
name: "人数",
},
],
series: [
{
name: "体检人数",
type: "bar",
emphasis: {
focus: "series",
},
data: [282, 188, 448, 1186, 535, 908, 291, 474, 2410, 736],
},
{
name: "食品生产经营",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
},
data: [259, 186, 360, 797, 493, 628, 252, 449, 1807, 457],
},
{
name: "公共场所服务",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
},
data: [15, 1, 88, 388, 38, 272, 20, 16, 570, 102],
},
{
name: "生活饮用水",
type: "bar",
stack: "职业",
emphasis: {
focus: "series",
},
data: [8, 1, 0, 1, 4, 8, 1, 9, 32, 11],
},
],
});
window.addEventListener('resize', () => {
two.resize()
})
},
data: [8, 1, 0, 1, 4, 8, 1, 9, 32, 11],
},
],
});
window.addEventListener('resize',() => {
two.resize()
})
},
},
};
},
};
</script>
<style lang="scss" scoped>
#app {
background: #fff !important;
}
#app {
background: #fff !important;
}
@media screen and (max-width: 1200px) {
.main {
width: 100%;
margin: 0px auto;
padding: 30px 0;
@media screen and (max-width: 1200px) {
.main {
width: 100%;
margin: 0px auto;
padding: 30px 0;
}
.minHeader,
.market {
width: calc(100% - 40px);
box-sizing: border-box;
border-radius: 4px;
padding: 20px;
margin: 0px auto 0;
background: #fff;
}
.minTop {
width: calc(100% - 40px);
box-sizing: border-box;
border-radius: 4px;
margin: 20px auto;
background: #fff;
}
}
@media screen and (min-width: 1200px) {
.main {
width: 1200px;
margin: 0px auto;
padding: 30px 0;
}
.minHeader,
.market {
width: 1200px;
border-radius: 4px;
// padding: 0px 20px 0px;
background: #fff;
}
.minTop {
width: 1200px;
border-radius: 4px;
background: #fff;
}
}
.minHeader,
.market {
width: calc(100% - 40px);
.card__header {
padding: 18px 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 4px;
padding: 20px;
margin: 0px auto 0;
background: #fff;
}
.minTop {
width: calc(100% - 40px);
.card__headers {
padding: 18px 0px 5px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 4px;
margin: 20px auto;
background: #fff;
}
}
@media screen and (min-width: 1200px) {
.main {
width: 1200px;
margin: 0px auto;
padding: 30px 0;
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
.minHeader,
.market {
width: 1200px;
border-radius: 4px;
// padding: 0px 20px 0px;
background: #fff;
.w100 {
width: 100%;
}
.minTop {
width: 1200px;
border-radius: 4px;
background: #fff;
.w60 {
width: 60%;
}
}
.card__header {
padding: 18px 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.w40 {
width: 40%;
}
.card__headers {
padding: 18px 0px 5px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.cline {
width: 2px;
height: 18px;
background: #1492ff;
margin: 0 8px;
}
.shadow {
box-shadow: 0 2px 12px 0 #ccc;
}
.icon28 {
width: 28px;
height: 28px;
}
</style>
<style>
.tijg .el-table td,
.tijg .el-table th {
text-align: center !important;
}
.w100 {
width: 100%;
}
.tijg .el-table__header thead tr th {
color: #606266;
background: #ebeff8;
}
.w60 {
width: 60%;
}
.xxgl .el-breadcrumb__inner.is-link {
font-size: 16px !important;
font-weight: bold;
color: #333;
}
.w40 {
width: 40%;
}
.cline {
width: 2px;
height: 18px;
background: #1492ff;
margin: 0 8px;
}
.icon28 {
width: 28px;
height: 28px;
}
.xxgl .el-icon-s-marketing {
color: rgb(54, 153, 247);
font-size: 30px;
}
</style>
<style>
.tijg .el-table td,
.tijg .el-table th {
text-align: center !important;
}
.tijg .el-table__header thead tr th {
color: #606266;
background: #ebeff8;
}
.xxgl .el-breadcrumb__inner.is-link {
font-size: 16px !important;
font-weight: bold;
color: #333;
}
.xxgl .el-icon-s-marketing {
color: rgb(54, 153, 247);
font-size: 30px;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment