999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Vue框架的云南省教育扶貧可視化系統設計與實現

2022-05-30 10:34:58呂維廣,申浩如,孫定蜜,楊延仁,胡正南,黎諜,饒肖
電腦知識與技術 2022年32期

呂維廣,申浩如,孫定蜜,楊延仁,胡正南,黎諜,饒肖

摘要:通過對云南省教育扶貧階段性成果進行分析,確定數據、名言、模范、地圖、政策、學術6個典型展示維度,采用前后端分離開發模式和增量軟件開發模型,基于Vue、ECharts、Maven、MySQL工具,設計開發該信息可視化系統。將云南省教育扶貧積累的異構、多源、空間相關數據進行表征,以數字化動態交互形式展現出來,為云南省教育精準扶貧提供直觀的可視化分析手段,形成窗口宣傳效應。

關鍵詞:云南省;教育扶貧;可視化系統;Vue;ECharts

中圖分類號:TP311.52? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)32-0034-04

1 概述

教育扶貧是贏得中國脫貧攻堅全面勝利的重要一役。由于云南省的地理復雜性和民族多樣性,使云南教育扶貧更具挑戰性。本文基于數據統計原理,綜合使用Vue、ECharts、Maven等工具對云南省相關教育扶貧數據進行可視化表征,從地理空間和非地理空間維度直觀展現這些海量、異構、多源數據,為政府職能部門、教育行政主管部門、學術研究群體提供有價值的可視化結果,助推云南省教育扶貧精準施策,實現貧困人口“脫真貧、真脫貧”[1]的愿景。

2 云南省教育扶貧可視化系統總體設計

2.1 系統架構設計

教育扶貧可視化系統采用B/S體系結構,前端使用Vue框架,它是一個擴展性和復用性較強的輕量級漸進式JavaScript框架,基于數據驅動、交互展示和視圖組件化構建前端頁面[2]。后端服務程序使用Maven項目管理工具創建,自動管理依賴包和版本配置,通過IDEA一鍵發布調試,大幅降低包的版本依賴問題[3]。最終將負責業務邏輯的后端工程打包通過阿里云Tomcat服務器發布。

前后端數據交互使用axios進行異步請求同步化處理,減輕后端數據處理壓力[4]。前后端分離開發,前端代碼由阿里云的對象存儲OSS服務托管,降低服務器帶寬壓力[5]。此外,為解決前后端分離開發導致的跨域請求問題,項目使用Filter過濾器對請求進行過濾處理[6]。底層數據存管采用MySQL數據庫。系統架構如圖1所示。

系統選用增量軟件開發模型。原因有三:1)開發時人員可靈活分配,能在較短時間內向甲方提交部分可操作產品,有效解決了參與系統開發的學生成員因學業導致頻繁換人的客觀實際。2)采用“分而治之”思想,把問題分解成可控的子模塊,先完成需求穩定的核心構件,避免團隊因長時間需求任務而感到沮喪。3)增量模型并非一步跨到未來,讓開發者逐步適應全棧開發技術,符合在校學生軟件開發訓練的普遍規律。

系統架構設計必須注意:1)增量開發模型最大特點是具有較好的擴展性,在開發過程中必須注意接口定義。2)由于系統各個模塊之間耦合度較低,導致代碼的審查難度增加,容易出現代碼冗余情況,所以必須定義好一個可行的開發過程。3)由于各個組件是逐步并入軟件體系架構中,系統內核是十分關鍵的部分,內核不精簡將會使增量模型退化成邊做邊改模型[7]。

項目開發中的依賴庫如表1所示。

2.2 功能模塊設計

系統有6個模塊:教育扶貧里程碑、每日扶貧金句、教育扶貧先鋒模范、地圖可視化綜合交互展示、教育扶貧政策方針、教育扶貧學術研究。根據不同數據屬性將這些數據分別通過柱狀圖、曲線圖、堆疊圖、矢量地圖、輪播圖、主題詞云等多種可視化形式進行表征,詳見表2。

2.3 后臺數據庫設計

后端資源通過MySQL存儲,使用JDBC連接池工具進行數據庫連接管理,優點是無須手動管理數據庫連接對象,按需取用,使用結束釋放回連接池即可,避免數據庫未被釋放帶來的風險。根據系統功能描述,設計數據庫表,其中下劃線字段為表主鍵:

1)城市:city (ID, 城市名, 所屬縣名, 扶貧舉措)。進庫記錄88條。

2)金句:famous_remarks (ID, 發布時間, 內容, 發言人) 。進庫記錄12條。

3)人物:people (ID, 姓名, 身份、事跡簡介) 。進庫記錄27條。

4)政策:policy (ID, 政策名稱, 發布機構, 官方URL) 。進庫記錄42條。

5)詞云:word_cloud (ID, 關鍵詞, 引用次數) 。進庫記錄1000條。

3 云南省教育扶貧可視化系統核心功能實現

3.1 系統界面

圖2給出了云南省教育扶貧可視化系統界面設計,界面以深紅主調為背景,嵌入了省會昆明市的傳統地標“金馬碧雞”牌坊和新建地標高度407米的“春之眼”,以及滇西重鎮大理市的蒼山元素,寓意近年云南省扶貧取得的豐碩成果。

3.2 圖文信息展示模塊

教育扶貧里程碑、每日扶貧金句、教育扶貧模范這三個模塊主要使用Element UI組件劃分頁面框架,并利用CSS渲染文字,同時還使用JavaScript結合@keyframes實現圖片和文字的滾動播放效果。

3.3 基于ECharts和地理信息標注的可視化模塊

針對項目開發難度較大的地圖綜合展示模塊,該模塊采用ECharts的map類型地圖圖表,將具有空間地理特征的信息可視表征。首先,地圖繪制是通過阿里云提供的數據可視化平臺http://datav.aliyun.com獲取云南省地理數據結構編碼JSON文件,在渲染前將文件通過GET或POST方法獲得地理結構數據,之后使用echarts.registerMap('yunnan', geoJson)方法注冊地圖,然后對地圖進行相關配置。在配置項中,data是該圖表渲染數據的接口,其中包括城市名和權值(決定地圖塊著色深淺),渲染時可根據城市名和權值進行自動關聯,權值越高的城市區域顯示顏色越深。城市顏色渲染梯度是通過配置視覺映射組件visualMap控制。代碼如下:

geo:{ //地理坐標系組件,支持地理坐標上繪制散點、線集

type:'map', //指定圖表類型為地圖

map:'yunnan', //自定義擴展圖表類型,參數使用注冊時的變量名

roam:true, //關閉移動漫游

zoom:1.2, //設置初始化地圖縮放比例

selectedMode:false, //設為不可移動地圖

data:mapData, //地圖渲染數據包括:mapData{[name:城市名,value:權值]}

label: {

show: false, //不顯示標簽

fontSize: '50px' //設置標簽顯示字體大小

},

}

visualMap: [{ //視覺映射組件配置

bottom: '45%', //組件離容器底部位置

left:'5%', //組件離容器左邊位置

text: ['High', 'Low'], //兩端的文字

realtime: true, //拖拽時實時更新渲染

calculable: true, //顯示拖拽手柄,手柄能拖拽調整選中范圍

}]

同時在地圖上標注“州市”散點圖,在上述geo地理坐標系統進行疊加渲染,配置時data是散點圖渲染的數據接口,數據結構包括必選項散點geo坐標位置和附加描述信息項,并指明該散點圖是基于何種坐標系渲染。默認情況下鼠標移動到散點上浮動提示框只顯示諸如經緯度和地名等默認信息,如要顯示指定描述信息需通過配置浮動提示框tooltip實現,如要實現根據點擊對象判斷顯示指定信息,則需配置formatter。formatter既可接收一段靜態html格式代碼也可接收一個匿名函數function(param),函數被調用時傳入參數param標識了被點擊的唯一元素,即被點擊元素類型和對應geo坐標及附加描述信息,通過對點元素的判斷來選擇顯示內容,代碼如下:

series: [ //散點圖配置

{

data: scatterdata, //散點坐標數據data:[“value”:[經度,緯度],”name”:”地名”,”text”:”描述信息”]

type: 'scatter', //設置圖表類型為散點圖

coordinateSystem:'geo', //設置散點使用的坐標系統

symbolSize: 20, //散點大小

color:'red' //散點顏色

}

]

tooltip:{ //浮動提示框配置

show:true,

backgroundColor: "rgba(203,203,203,0.8)", //設置背景圖片RGBA格式

borderWidth: 0, //邊框寬度設置1

borderColor: "aqua", //設置邊框顏色

padding:0, //邊框寬度

textStyle:{ //配置提示框文本格式

fontSize:'40px',

color:'rgba(254,255,86)'

},

triggger:'item', //觸發類型

formatter:function(param){ //函數方式返回提示框信息

return '

'+param.data.name+'
'; //顯示點擊元素數據中變量name的數據

}

}

}

由于地圖和今昔對比圖展示于同一“

”標簽中,在ECharts作圖時需將兩圖配置信息寫入配置數組。同時兩張圖表均按用戶交互需求通過POST方法從服務器動態更新數據,這使得配置項中的數據部分不會被固定,而是留下一個數據接口,隨用戶點擊動態調用,并同步刷新圖表Vue地圖組件。同理,今昔校園對比照片也跟隨用戶點擊動態從服務器拉取圖片,通過監聽click事件向服務器發送POST請求報文刷新圖片。代碼如下:

mapChart.on('click', function (params) { //監聽點擊事件

if(params.componentSubType=='map'){ //判斷是否點擊了地圖組件

City(params.name).then(data => { //通過axios獲取數據

var testdata=[] //設置空變量

for(var i in data){ //遍歷數據

testdata.push(data[i]) //在空變量中填充要渲染的數據

}

citydata.value=testdata //把最新數據同步給數據接口

})

landname.value=params.name //同步點擊的州市名

//根據點擊的州市名用require方法獲取對應今夕對比圖片

imgland1.value =require('@/assets/land/'+params.name+'1.jpg')

imgland2.value =require('@/assets/land/'+params.name+'2.jpg')

}

})

教育扶貧政策方針模塊通過詞云展示相關政策的關鍵詞,該模塊利用第三方工具圖悅詞頻分析軟件對所遴選的教育政策進行詞頻分析,使用Python對數據進行清洗上傳數據庫。在設置ECharts詞云配置項時應注意不僅要導入echarts插件還應導入echarts_wordcloud依賴插件。詞云不同于其他模塊的配置,不僅需要配置data數據接口,data數據結構包括關鍵詞和引用次數,還要傳入蒙版圖片數據maskImage,用于限定詞云的邊界輪廓。蒙版圖片需選擇一張黑白圖,轉化為base64編碼字符串,本項目選用一張中國地圖作為邊界輪廓。代碼如下:

var maskImage = new Image(); //創建一個Image類型對象

maskImage.src = image //將邊界輪廓的base64編碼字符串賦值給maskImage的src屬性

series: [{ //詞云圖配置項

type: 'wordCloud', //指定圖表類型為詞云

gridSize: 1, //設置文字間隔

shape: 'circle', //設置詞云形狀

sizeRange: [12, 55], //設置文字字號范圍

maskImage: maskImage, //渲染圖形的Image對象

textStyle: {

fontSize: '50px', //字體大小

color: function () { //設置文本顏色,采用隨機生成色

return 'rgb(' + [

Math.round(Math.random() * 255),

Math.round(Math.random() * 150),

Math.round(Math.random() * 150)

].join(',') + ')'

}

}

3.4 基于CNKI的學術文獻可視化模塊

在CNKI文獻數據庫以“篇名=教育扶貧”OR“主題=教育扶貧”為關鍵詞進行檢索,期刊來源為CSSCI和北大核心,查詢年限為2021年12月31日前,共搜索有效學術文獻947篇。使用ECharts曲線圖、柱狀圖、餅圖工具對年發文量、主/次要主題分布TOP10、文獻來源分布TOP10、學科領域分布TOP10、作者及單位分布TOP8繪制統計圖表。

3.5 系統實現相關問題

由于界面容納元素較多,各元素之間又相互關聯和復用,為簡化開發流程、提高代碼復用率,在開發過程中使用Vue路由功能將各個元素單獨編程,最終由Home路由集中管理、組織這些組件。另外,官網[8]暫未給出在Vue中使用ECharts的方案,這與使用原生JavaScript開發有較大區別,但Vue代碼源自JavaScript,只要遵循JavaScript的語法規則便能解決大部分問題。

目前,整個項目側重前端框架實現,主要使用Vue2接口標準以及部分Vue3標準,接下來擬使用Vue3標準,以簡化編程難度,提升項目性能。后端開發仍有較大提升空間,擬使用微服務架構,增強后端的可維護性和可擴展性。此外,現階段數據采集實現過程是人工搜集后通過腳本半自動存儲到數據庫,擬采用爬蟲從互聯網上爬取數據自動存儲到數據庫。

4 結束語

本文采用B/S結構,構建了一個前后端分離的信息可視化系統,前端使用Vue框架,后端使用Maven項目,并通過MySQL實現數據存儲與管理。該系統是云南省教育扶貧數字化表達的優勢載體,一方面為相關部門提供決策依據,另一方面為社會公眾及時了解教育扶貧現狀提供信息展示,從而增強公眾對推進教育

公平性建設的信心和自覺參與教育扶貧的意愿。下一步將與云南省教育廳規劃辦進一步合作,采集各地建檔立卡貧困學生數據,進行去隱私化操作,結合各

州市教育資源配置數據,如學校硬件設施、師資隊伍、學生輟學率等,進一步優化迭代可視化設計方案,推出內容維度更豐富的云南教育扶貧可視化項目。

參考文獻:

[1] 習近平.決勝全面建成小康社會 奪取新時代中國特色社會主義偉大勝利[R].北京:中國共產黨第十九次全國代表大會,2017.

[2] Vue工作團隊.Vue.js簡介[EB/OL].[2022-03-20].https://cn.vuejs.org/guide/introduction.html#api-styles.

[3] The Apache Software Foundation. Apache Maven Project[EB/OL].[2022-03-20].https://maven.apache.org/what-is-maven.html.

[4] 百度百科.Web數據交互方式[EB/OL]. [2022-03-20].https://baike.baidu.com/item/axios/56933453?fr=aladdin.

[5] 阿里云幫助中心.什么是對象存儲OSS[EB/OL]. [2022-03-20].https://help.aliyun.com/document_detail/31817.html.

[6] runoob.Filter、FilterChain、FilterConfig介紹[EB/OL]. [2022-03-20].https://www.runoob.com/w3cnote/filter-filterchain-filterconfig-intro.html.

[7] 百度百科.邊做邊改模型[EB/OL]. [2022-03-20].https://baike.baidu.com/item/%E8%BE%B9%E5%81%9A%E8%BE%B9%E6%94%B9%E6%A8%A1%E5%9E%8B/1861054?fr=aladdin

[8] The Apache Software Foundation. Apache ECharts[EB/OL].[2022-03-20].https://echarts.apache.org/zh/index.html.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 国产精品v欧美| 91福利一区二区三区| 精品成人一区二区三区电影| 男女性午夜福利网站| 国产精品观看视频免费完整版| 9966国产精品视频| 九色在线观看视频| 老熟妇喷水一区二区三区| 精品亚洲欧美中文字幕在线看| 欧美色99| 永久天堂网Av| 国产成人无码AV在线播放动漫| 久久99国产综合精品1| 欧美日韩久久综合| 在线免费看片a| 国产理论最新国产精品视频| 久久99国产综合精品1| av无码一区二区三区在线| 久草性视频| 一本色道久久88综合日韩精品| 久草性视频| 一级毛片免费观看不卡视频| 国产成人1024精品| 亚洲乱亚洲乱妇24p| 国产精品极品美女自在线网站| 中文字幕亚洲电影| 99re热精品视频国产免费| 在线观看国产网址你懂的| a国产精品| 午夜日本永久乱码免费播放片| 国产91小视频| 第九色区aⅴ天堂久久香| 亚洲天堂免费| www成人国产在线观看网站| 亚洲91精品视频| 亚洲a级在线观看| 国产又黄又硬又粗| 67194亚洲无码| 视频一区视频二区中文精品| 亚洲bt欧美bt精品| 在线无码九区| 欧美日韩一区二区三区四区在线观看| 国产丝袜第一页| 日本精品中文字幕在线不卡| 国产sm重味一区二区三区| 91无码人妻精品一区| 中文字幕调教一区二区视频| 天天综合网亚洲网站| 国产chinese男男gay视频网| 亚洲婷婷六月| 精品无码一区二区在线观看| 国内精品91| 国产高潮流白浆视频| 久久综合九色综合97网| 国产亚洲欧美日韩在线一区二区三区| 天天躁夜夜躁狠狠躁图片| 亚洲精品天堂自在久久77| 国产主播一区二区三区| 国产美女在线观看| 亚洲天堂久久久| 综1合AV在线播放| 国产美女91视频| av天堂最新版在线| 亚洲最大看欧美片网站地址| 国产精品综合久久久| 激情综合五月网| 国产一区二区三区日韩精品| 亚洲va在线观看| 一级片一区| 亚洲清纯自偷自拍另类专区| 国产免费a级片| 国产成人夜色91| 久久国产精品影院| 亚洲va欧美va国产综合下载| 欧美一级99在线观看国产| 成人在线不卡视频| Aⅴ无码专区在线观看| 国产真实乱子伦精品视手机观看| 91久久偷偷做嫩草影院免费看| 亚洲欧美精品一中文字幕| 国产精品偷伦在线观看| 日本少妇又色又爽又高潮|