国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

基于Vue的疫情數(shù)據(jù)可視化大屏實(shí)戰(zhàn):從零搭建可維護(hù)工程方案

基于Vue的疫情數(shù)據(jù)可視化大屏實(shí)戰(zhàn):從零搭建可維護(hù)工程方案 簡介面向Vue學(xué)習(xí)者與前端開發(fā)者的疫情數(shù)據(jù)可視化大屏項(xiàng)目源碼適合需要快速搭建數(shù)據(jù)看板或?qū)W習(xí)大屏交互方案的中級(jí)開發(fā)者。項(xiàng)目基于Vue生態(tài)構(gòu)建包含數(shù)據(jù)模擬、API請(qǐng)求封裝、路由配置及多個(gè)可視化組件模塊如省級(jí)排名柱狀圖、數(shù)據(jù)地圖、治愈與死亡趨勢、當(dāng)前確診對(duì)比等能夠完整演示從數(shù)據(jù)獲取到圖表渲染的大屏實(shí)現(xiàn)流程。壓縮包共34個(gè)文件以vue組件、js邏輯、json數(shù)據(jù)三類為主輔以HTML入口、圖標(biāo)及配置文件整體僅724KB結(jié)構(gòu)緊湊便于本地運(yùn)行與二次改造。目前已有475人學(xué)習(xí)下載。通過該源碼可掌握大屏項(xiàng)目目錄組織方式、常見可視化圖表接入思路以及組件化拆分技巧對(duì)獨(dú)立完成數(shù)據(jù)可視化類作品或課程設(shè)計(jì)有直接參考價(jià)值。1. 基于Vue的疫情數(shù)據(jù)可視化大屏到底解決什么問題打開這個(gè)標(biāo)題的人大概率是兩類一類接了一個(gè)要做疫情數(shù)據(jù)可視化大屏的活兒想找一套能改能跑的源碼另一類想把 Vue 路由、組件化、ECharts 配置和大屏適配串成一個(gè)完整項(xiàng)目來學(xué)。兩類人真正要的一致不是一張好看的截圖而是一套從數(shù)據(jù)到像素都講得清的工程方案。這個(gè)標(biāo)題的本質(zhì)就是用 Vue 全家桶搭一塊 16:9 全屏展示的數(shù)據(jù)大屏把累計(jì)確診、新增趨勢、地區(qū)分布這類指標(biāo)變成可維護(hù)的圖表而不是靜態(tài)頁面。它管的是組件和路由圖表交給 ECharts數(shù)據(jù)用 mock 先頂住后端就緒后隨時(shí)可以切真實(shí)接口。適合前端初中級(jí)開發(fā)者做作品集也適合需要快速交付演示屏的團(tuán)隊(duì)。下面按技術(shù)選型、組件實(shí)現(xiàn)、適配性能和排錯(cuò)路徑一步步展開每個(gè)環(huán)節(jié)都給可直接抄的參數(shù)和代碼。2. 從零初始化一套大屏源碼工程技術(shù)選型與數(shù)據(jù)鏈路打開任何一套開發(fā)中的數(shù)據(jù)大屏源碼第一件事都不是看圖表怎么配的而是確認(rèn)這套技術(shù)棧能在你機(jī)器上跑起來、數(shù)據(jù)從哪來、路由怎么走。很多教程默認(rèn)你已經(jīng)解決了 vue 安裝及環(huán)境配置結(jié)果新手全卡在第一步的依賴報(bào)錯(cuò)上。這一章先把選型理由講透再給你一套能直接用的目錄結(jié)構(gòu)和數(shù)據(jù)鏈路設(shè)計(jì)后面寫圖表才有地方放。2.1 選型邏輯為什么是 Vue為什么路由要用 hash 模式大屏本質(zhì)上是一個(gè)展示型單頁應(yīng)用對(duì)服務(wù)端渲染沒有剛需所以 Vue 3 Vite 是目前最舒服的組合。Vite 的冷啟動(dòng)速度比 vue-cli 快一個(gè)量級(jí)而大屏開發(fā)里改圖表配置是最高頻的操作改完一秒內(nèi)熱更新和等三秒刷新對(duì)開發(fā)體驗(yàn)的影響是決定性的。如果你接手的是團(tuán)隊(duì)里已有的 Vue 2 項(xiàng)目也別急著折騰重構(gòu)ECharts 5 對(duì) Vue 2 和 Vue 3 都兼容真正要關(guān)注的是路由模式和數(shù)據(jù)響應(yīng)式這兩個(gè)邊界。路由建議直接用 hash 模式這是一個(gè)很容易被忽略的坑。數(shù)據(jù)大屏經(jīng)常要部署到 nginx 的子路徑或者打包成一個(gè)靜態(tài)目錄直接扔給客戶跑用 history 模式在這種場景下必須讓后端配合做 rewrite否則一刷新就是 404。hash 模式雖然 URL 里多個(gè)#但在這個(gè)場景下?lián)Q來的穩(wěn)定性非常值。Vue Router 4 里創(chuàng)建路由時(shí)默認(rèn)就是 hash你只需要顯式寫上createWebHashHistory團(tuán)隊(duì)里的新人也一眼能看懂意圖。2.2 項(xiàng)目初始化一條命令跑出可運(yùn)行的最小工程一套源碼能不能跑起來往往取決于初始化步驟是否干凈。我習(xí)慣用 Vite 官方腳手架創(chuàng)建工程不需要額外配置一堆 loader裝完依賴直接npm run dev就能看到頁面。具體命令如下npm create vitelatest epidemic-screen -- --template vue cd epidemic-screen npm install vue-router4 echarts npm run dev邏輯說明npm create vite是當(dāng)前創(chuàng)建 Vue 3 工程最干凈的方式--template vue會(huì)生成基于組合式 API 的模板省去手動(dòng)搭 Vite 配置的步驟vue-router4是 Vue 3 對(duì)應(yīng)的路由版本echarts不鎖版本號(hào)時(shí)默認(rèn)安裝最新的 5.x兼容性沒問題。跑完npm run dev后Vite 默認(rèn)開 5173 端口瀏覽器能打開就說明 vue 安裝及環(huán)境配置已經(jīng)過了。工程初始化完成后還需要做兩件事。第一件是把開發(fā)端口固定下來大屏項(xiàng)目經(jīng)常要同時(shí)聯(lián)調(diào)后端接口端口漂移會(huì)導(dǎo)致跨域配置反復(fù)修改在vite.config.js里加一行server: { port: 8088 }就能固定。第二件是設(shè)置路徑別名把指向src這樣后面所有組件里引用目錄都寫/components/xxx避免一長串../../相對(duì)路徑。// vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import { fileURLToPath, URL } from node:url export default defineConfig({ plugins: [vue()], resolve: { alias: { : fileURLToPath(new URL(./src, import.meta.url)) } }, server: { port: 8088, host: true } })說明host: true允許局域網(wǎng)內(nèi)其他設(shè)備通過 IP 訪問大屏演示時(shí)經(jīng)常要用另一臺(tái)電腦或平板投屏這個(gè)配置能省掉代理工具的麻煩。alias里的路徑是基于node:url計(jì)算的Windows 和 macOS 通用。2.3 目錄結(jié)構(gòu)按功能拆組件而不是按頁面拆看過很多大屏源碼最容易翻車的結(jié)構(gòu)是把所有圖表堆在一個(gè)Screen.vue里數(shù)據(jù)請(qǐng)求、圖表初始化、定時(shí)器全混在一起。這種寫法短期跑得通但只要有一天要換數(shù)據(jù)源或者新增一個(gè)圖表就會(huì)牽連出一堆副作用。我一般按功能把代碼拆成下面這樣src/ ├── api/ │ └── epidemic.js # 唯一的數(shù)據(jù)出口組件只認(rèn)這個(gè)目錄 ├── assets/ │ ├── geo/ # 中國地圖 / 省份 GeoJSON │ └── style/ # 全局主題變量、大屏背景 ├── components/ │ ├── charts/ # 圖表組件一個(gè)圖表一個(gè)文件 │ ├── layout/ # 大屏框架組件Header、SidePanel │ └── common/ # 數(shù)字滾動(dòng)、邊框、標(biāo)題等復(fù)用組件 ├── mock/ │ └── data.js # 沒有后端時(shí)先用靜態(tài)數(shù)據(jù)頂住 ├── router/ │ └── index.js # 路由配置主屏 下鉆詳情頁 ├── views/ │ ├── Screen.vue # 大屏主頁面 │ └── Detail.vue # 圖表下鉆詳情頁 └── App.vue邏輯說明components/charts是這套源碼里最核心的目錄每個(gè)圖表獨(dú)立成一個(gè)單文件組件自己管自己的 ECharts 實(shí)例mock目錄專門放靜態(tài)數(shù)據(jù)等后端接口就緒后只改api/epidemic.js這一個(gè)文件所有圖表組件完全不動(dòng)。很多項(xiàng)目失敗在數(shù)據(jù)層和組件層強(qiáng)耦合這個(gè)結(jié)構(gòu)的價(jià)值就是讓數(shù)據(jù)源可替換。路由上建議保留一個(gè)Detail.vue因?yàn)榇笃两换ソ?jīng)常要“點(diǎn)擊省份跳詳情”預(yù)留坑位比臨時(shí)加路由要省事得多。2.4 數(shù)據(jù)鏈路mock、模擬接口和真實(shí) API 怎么和平共處數(shù)據(jù)可視化大屏的常見死法是后端還沒好前端拿一個(gè)寫死的 JSON 開始開發(fā)等接口好了再回頭改所有調(diào)用的地方。正確做法是設(shè)計(jì)一個(gè)統(tǒng)一的數(shù)據(jù)出口組件層永遠(yuǎn)只認(rèn) Promise 返回值不關(guān)心數(shù)據(jù)是從 mock 來的還是 axios 來的。下面是我常用的寫法// api/epidemic.js —— 唯一的數(shù)據(jù)出口 export async function getOverview() { // 后端就緒后把下面這行換成 // return axios.get(/api/epidemic/overview).then(res res.data) return import(../mock/data.js).then(m m.overview) } export async function getProvinceTrend(id) { return import(../mock/data.js).then(m m.provinceTrend[id]) }邏輯說明把每個(gè)接口都寫成一個(gè)返回 Promise 的函數(shù)組件調(diào)用時(shí)用await等待結(jié)果。mock 階段用動(dòng)態(tài)import加載靜態(tài)數(shù)據(jù)換真實(shí)接口時(shí)只需要改函數(shù)內(nèi)部的實(shí)現(xiàn)對(duì)外契約不變。參數(shù)id是省份編碼overview是全局概要指標(biāo)這兩個(gè)字段名在 mock 和真實(shí)接口里保持一致后續(xù)切換零成本。這么做還有一個(gè)好處并行開發(fā)時(shí)前端不需要等后端自己就能把大屏全部功能跑通。3. 核心圖表實(shí)現(xiàn)把疫情指標(biāo)拆成可維護(hù)的 ECharts 組件這一章進(jìn)入源碼的主體部分。企業(yè)級(jí)數(shù)據(jù)可視化的習(xí)慣是每個(gè)圖表獨(dú)立成一個(gè)組件自己初始化、自己銷毀、自己訂閱數(shù)據(jù)而不是把十幾張圖全堆在頁面里。下面以三個(gè)最典型的疫情大屏組件為例趨勢折線圖、地區(qū)分布地圖、核心指標(biāo)卡片每個(gè)都給出可直接運(yùn)行的代碼和關(guān)鍵參數(shù)說明。3.1 趨勢折線圖時(shí)間序列的配置要點(diǎn)與數(shù)據(jù)更新策略趨勢圖是疫情大屏里最常被盯著看的一塊現(xiàn)有確診、新增治愈、新增死亡都適合用平滑折線表達(dá)。組件內(nèi)部維護(hù) ECharts 實(shí)例通過setOption更新數(shù)據(jù)重點(diǎn)在于銷毀時(shí)釋放實(shí)例否則切路由后 Canvas 會(huì)殘留。template div refchartRef classtrend-chart/div /template script setup import { ref, onMounted, onBeforeUnmount } from vue import * as echarts from echarts import { getTrend } from /api/epidemic const chartRef ref(null) let chart null onMounted(async () { chart echarts.init(chartRef.value) const data await getTrend(confirm) chart.setOption({ tooltip: { trigger: axis }, grid: { left: 50, right: 20, top: 40, bottom: 30 }, xAxis: { type: category, boundaryGap: false, data: data.dates }, yAxis: { type: value, name: 人數(shù), scale: true }, series: [{ name: 現(xiàn)有確診, type: line, smooth: true, showSymbol: false, lineStyle: { width: 2 }, areaStyle: { opacity: 0.25 }, data: data.values }] }) }) onBeforeUnmount(() { if (chart) { chart.dispose() chart null } }) /script style scoped .trend-chart { width: 100%; height: 100%; min-height: 260px; } /style邏輯說明onMounted里先echarts.init再setOption順序不能反否則實(shí)例不存在會(huì)報(bào)錯(cuò)await getTrend(confirm)拿到的數(shù)據(jù)對(duì)象里包含dates和values兩個(gè)數(shù)組分別對(duì)應(yīng) x 軸和 y 軸。smooth: true讓折線變平滑適合展示連續(xù)日期的疫情趨勢showSymbol: false是數(shù)據(jù)點(diǎn)太多時(shí)防止圓點(diǎn)密密麻麻的關(guān)鍵參數(shù)。boundaryGap: false讓折線從第一個(gè)點(diǎn)開始貼合坐標(biāo)軸左邊界。scale: true這個(gè)參數(shù)經(jīng)常被人忽略它的作用是當(dāng)數(shù)據(jù)最小值離 0 很遠(yuǎn)時(shí)y 軸自動(dòng)壓縮讓波動(dòng)更明顯但如果想強(qiáng)調(diào)“從零開始”的對(duì)比就不該開這個(gè)參數(shù)。另外onBeforeUnmount里調(diào)用dispose是必須的Vue 組件銷毀后 DOM 也會(huì)被移除ECharts 實(shí)例不手動(dòng)釋放會(huì)造成內(nèi)存泄漏這也是很多大屏越用越卡的主要原因。3.2 地圖組件動(dòng)態(tài)注冊 GeoJSON 與視覺映射配置疫情大屏幾乎必有一塊中國地圖按省份著色表示累計(jì)確診量。地圖組件最容易踩的坑是地圖數(shù)據(jù)沒有注冊ECharts 5 之后的版本不再內(nèi)置地圖必須先用registerMap注冊 GeoJSON。script setup import * as echarts from echarts import chinaGeoJson from /assets/geo/china.json echarts.registerMap(china, chinaGeoJson) export function buildMapOption(mapData) { const maxValue Math.max(...mapData.map(item item.value)) return { tooltip: { formatter: ({ name, value }) ${name}br/累計(jì)確診${value ?? 0} 例 }, visualMap: { min: 0, max: maxValue, calculable: true, left: 20, bottom: 20, text: [高, 低], inRange: { color: [#e8f4ff, #7ec8ff, #1890ff, #003a70] } }, series: [{ type: map, map: china, roam: true, label: { show: false }, itemStyle: { borderColor: #ffffff, borderWidth: 0.5 }, emphasis: { label: { show: true, color: #333 }, itemStyle: { areaColor: #ffd666 } }, data: mapData }] } } /script邏輯說明registerMap是整個(gè)地圖組件的前提chinaGeoJson通過import靜態(tài)引入打包時(shí)會(huì)自動(dòng)處理路徑避免運(yùn)行時(shí) 404。mapData的數(shù)據(jù)格式要求是[{ name: 湖北, value: 67800 }, ...]name必須和 GeoJSON 里的省名完全一致比如“湖北”不能寫成“湖北省”。獲取地圖背景數(shù)據(jù)不要太依賴線上 CDN常見的做法是發(fā)布前把 GeoJSON 下載到本地assets/geo/目錄和源碼一起走版本管理。visualMap有四個(gè)關(guān)鍵參數(shù)min和max決定顏色映射范圍max這里取數(shù)據(jù)最大值保證顏色分布有區(qū)分度calculable: true顯示可拖動(dòng)的滑塊方便人手工篩選區(qū)間inRange.color是四段漸變色。roam: true允許縮放和拖拽在大屏演示時(shí)觀眾經(jīng)常會(huì)要求看一眼某個(gè)省份的細(xì)節(jié)這個(gè)參數(shù)一定要開。3.3 指標(biāo)卡片把環(huán)比計(jì)算封進(jìn)組件避免每個(gè)頁面重寫大屏頂部通常是一排數(shù)字卡片累計(jì)確診、累計(jì)治愈、累計(jì)死亡、現(xiàn)有確診每張卡片還要顯示“較昨日 xxx”或者“較昨日 -xxx”。這個(gè)邏輯從數(shù)據(jù)上就是簡單的減法但如果不封裝每個(gè)頁面都會(huì)復(fù)制粘貼一份加減法代碼。把環(huán)比計(jì)算收進(jìn)卡片組件里父級(jí)只負(fù)責(zé)傳當(dāng)前值和昨日值。template div classstat-card div classlabel{{ label }}/div div classvalue{{ value.toLocaleString() }}/div div classdiff :classdiffClass 較昨日 {{ diffText }} /div /div /template script setup import { computed } from vue const props defineProps({ label: { type: String, required: true }, value: { type: Number, required: true }, prev: { type: Number, required: true } }) const diffText computed(() { const diff props.value - props.prev return diff 0 ? ${diff.toLocaleString()} : diff.toLocaleString() }) const diffClass computed(() { return props.value props.prev ? diff-up : diff-down }) /script邏輯說明卡片本身不請(qǐng)求數(shù)據(jù)而是通過props接收label、value、prev三個(gè)參數(shù)。value.toLocaleString()是讓數(shù)字每隔三位加一個(gè)逗號(hào)大屏上顯示67,800比67800更專業(yè)。diffText這個(gè)計(jì)算屬性處理正負(fù)號(hào)的格式化123和-45能直接用。diffClass控制上漲和下降時(shí)的顏色樣式上漲為紅色、下降為綠色這是國內(nèi)大屏約定俗成的配色習(xí)慣除非客戶明確要求別用否則不要反著來。這套設(shè)計(jì)的好處是主頁面里寫StatCard label累計(jì)確診 :valueoverview.confirmed :prevoverview.prevConfirmed /就夠了后續(xù)換數(shù)據(jù)源、加統(tǒng)計(jì)口徑都只改父組件傳參卡片內(nèi)部永遠(yuǎn)不動(dòng)。4. 大屏適配與性能優(yōu)化三組參數(shù)和兩個(gè)高頻坑數(shù)據(jù)大屏的設(shè)計(jì)稿幾乎都是 1920 × 1080但實(shí)際投放的屏幕可能是 1366 的筆記本、2560 的顯示器、甚至 4K 的會(huì)議屏。很多新手在這一步開始瘋狂寫媒體查詢結(jié)果越寫越亂。工作里最可靠的大屏適配方案還真不是 rem而是 transform 縮放。4.1 為什么大屏不適合 rem推薦 transform: scale 方案rem 方案在普通網(wǎng)頁里很好用但在可視化大屏上有個(gè)致命問題ECharts 繪制在 Canvas 里文字和線條的尺寸在渲染時(shí)已經(jīng)按像素定死了rem 只對(duì) DOM 元素生效。你通過媒體查詢改了根字體大小頁面的標(biāo)題和表格變小了但圖表的坐標(biāo)軸文字、圖例、折線粗細(xì)完全無感結(jié)果是整塊屏的視覺比例是亂的。transform: scale 方案思路完全不同頁面內(nèi)部永遠(yuǎn)按 1920 × 1080 布局最外層容器固定這個(gè)寬高然后用 JS 計(jì)算當(dāng)前視口和設(shè)計(jì)稿的縮放比例整體縮放。這樣做保證圖表內(nèi)部和外部 DOM 的縮放比例完全一致視覺上是一個(gè)無損的等比縮小或放大。// utils/useScreenScale.js export function useScreenScale(baseWidth 1920, baseHeight 1080) { const applyScale () { const screen document.getElementById(screen-root) if (!screen) return const scaleX window.innerWidth / baseWidth const scaleY window.innerHeight / baseHeight const scale Math.min(scaleX, scaleY) screen.style.transform scale(${scale}) screen.style.transformOrigin left top } window.addEventListener(resize, applyScale) applyScale() return { applyScale } }邏輯說明Math.min(scaleX, scaleY)取兩個(gè)方向中較小的值這樣才能保證頁面等比縮放不會(huì)出現(xiàn)橫向或縱向拉伸變形。transformOrigin: left top是關(guān)鍵它讓縮放后的頁面左上角對(duì)準(zhǔn)視口左上角否則默認(rèn)的縮放中心在元素中線頁面會(huì)跑到屏幕外面去。調(diào)用useScreenScale()后大屏外層容器會(huì)被加載這個(gè) hook 在Screen.vue的onMounted里調(diào)用一次并返回applyScale這樣當(dāng)全屏狀態(tài)變化時(shí)可以手動(dòng)再執(zhí)行一次來修正比例。4.2 三個(gè)必調(diào)參數(shù)devicePixelRatio、notMerge、resize 時(shí)機(jī)第一組必調(diào)參數(shù)是 ECharts 的devicePixelRatio。大屏經(jīng)常跑在 2K、4K 屏上瀏覽器默認(rèn)把 Canvas 的分辨率按設(shè)備像素比放大但 ECharts 默認(rèn)devicePixelRatio: 1導(dǎo)致高分屏上圖表文字邊緣發(fā)虛。解決辦法是在echarts.init時(shí)顯式傳入chart echarts.init(chartRef.value, null, { devicePixelRatio: window.devicePixelRatio || 1 })第二個(gè)必調(diào)參數(shù)是setOption的notMerge。大屏數(shù)據(jù)定時(shí)刷新時(shí)如果新舊數(shù)據(jù)里的系列數(shù)量不一致比如早上還是 4 條曲線下午接口改成 3 條默認(rèn)的 merge 模式會(huì)保留舊系列導(dǎo)致圖表上出現(xiàn)幽靈數(shù)據(jù)。刷新數(shù)據(jù)時(shí)改成chart.setOption(option, { notMerge: true })第三個(gè)是圖表 resize 的時(shí)機(jī)。window resize 事件里要同時(shí)處理外層縮放和每個(gè)圖表實(shí)例的尺寸修正如果只縮放外層、不調(diào)chart.resize()圖表內(nèi)部會(huì)保持之前的像素寬高出現(xiàn)內(nèi)容擠壓。常見做法是在 window resize 監(jiān)聽里遍歷所有已注冊的圖表實(shí)例統(tǒng)一調(diào)用resize()window.addEventListener(resize, () { applyScale() chartRefs.value.forEach(item item.chart item.chart.resize()) })4.3 性能優(yōu)化按需引入 ECharts 模塊和清理副作用全套引入import * as echarts from echarts開發(fā)時(shí)方便但打包體積會(huì)多出幾百 KB。大屏項(xiàng)目一般只用 line、bar、map、pie 這幾種基礎(chǔ)圖表完全可以用按需引入把體積壓下來import * as echarts from echarts/core import { LineChart, BarChart, PieChart, MapChart } from echarts/charts import { TooltipComponent, GridComponent, VisualMapComponent, LegendComponent } from echarts/components import { CanvasRenderer } from echarts/renderers echarts.use([ LineChart, BarChart, PieChart, MapChart, TooltipComponent, GridComponent, VisualMapComponent, LegendComponent, CanvasRenderer ])邏輯說明echarts/core是核心包只包含基礎(chǔ)架構(gòu)echarts/charts里按需要引入圖表類型echarts/components里引入組件比如 tooltip、grid、visualMap最后一個(gè)CanvasRenderer是渲染器。按這種方式改完打包產(chǎn)物明顯變小對(duì)加載速度有直接幫助。這里有個(gè)需要注意的地方如果用了echarts/core按需引入registerMap依然有效但要確保MapChart和GeoComponent都已注冊否則地圖還是白屏。性能上第二件常被忽略的事是副作用清理。大屏里的定時(shí)刷新、輪播、resize 監(jiān)聽都是需要在onBeforeUnmount里釋放的資源。一個(gè)靠譜的寫法是把所有定時(shí)器句柄收集到一個(gè)數(shù)組銷毀時(shí)統(tǒng)一clearInterval監(jiān)聽 window 的事件要用removeEventListener移除并且傳入的 handler 要保持引用不能每次onMounted都新建匿名函數(shù)。5. 疫情大屏開發(fā)避坑五個(gè)高發(fā)問題與排查記錄可視化大屏看著炫翻車的時(shí)候也是真的玄學(xué)。下面是做過多次這類項(xiàng)目后最常遇到的五個(gè)問題每條都按現(xiàn)象、原因、解決三段記錄希望幫你把血淚經(jīng)驗(yàn)直接變成排查手冊。5.1 現(xiàn)象一地圖區(qū)域完全空白控制臺(tái)報(bào) Map not found這應(yīng)該是疫情大屏里最高頻的問題?,F(xiàn)象是頁面其他圖表正常唯獨(dú)中間的地圖區(qū)域一片空白瀏覽器控制臺(tái)提示Map china not found.或者類似的錯(cuò)誤。原因是 ECharts 5 之后不再內(nèi)置任何地圖數(shù)據(jù)你必須先執(zhí)行echarts.registerMap(china, geoJson)并且這個(gè)動(dòng)作要在setOption之前完成。很多人把地圖數(shù)據(jù)用fetch去線上拉取網(wǎng)絡(luò)一慢或者地址失效地圖就沒了。解決方式是直接把 GeoJSON 下載到src/assets/geo/下用import chinaGeoJson from /assets/geo/china.json靜態(tài)引入打包后文件跟隨工程走不依賴外網(wǎng)。注意registerMap只需要調(diào)用一次放在模塊頂層或者main.js里都行。5.2 現(xiàn)象二路由切換后再回來圖表出現(xiàn)重疊或殘留大屏主頁面和詳情頁來回切換時(shí)圖表區(qū)域會(huì)出現(xiàn)兩個(gè) Canvas 疊在一起或者圖表直接花屏。根本原因是組件銷毀時(shí)沒有釋放 ECharts 實(shí)例舊的 Canvas 跟著 DOM 被移除了但實(shí)例的監(jiān)聽和渲染狀態(tài)沒清干凈再回來時(shí)新實(shí)例和殘留狀態(tài)沖突。解決方法是把上一章的onBeforeUnmount清理邏輯當(dāng)成鐵律真正執(zhí)行dispose()并把局部變量置空。如果使用了keep-alive緩存頁面那么不能在onUnmounted銷毀圖表要改用onDeactivated和onActivated配合在onActivated里重新resize()。5.3 現(xiàn)象三窗口放大后大屏兩邊留白圖表被拉伸變形大屏部署好后把瀏覽器窗口拖大頁面內(nèi)容沒有鋪滿而是左右兩大塊空白或者橫向變寬、縱向不變圖表的圓被拉成了橢圓。原因通常是把外層縮放了但圖表容器自身還在響應(yīng)式布局里跟著變寬。解決方式是明確兩層職責(zé)外層固定 1920 × 1080專門承擔(dān) transform: scale內(nèi)層所有圖表組件一律width: 100%; height: 100%但外層縮放時(shí)內(nèi)層容器的實(shí)際布局像素不參與變化這樣圖表只會(huì)整體縮放、不會(huì)重新布局。5.4 現(xiàn)象四數(shù)據(jù)更新了setOption 調(diào)了但圖表紋絲不動(dòng)接口返回新數(shù)據(jù)后控制臺(tái)打印數(shù)據(jù)是新的但圖表不刷新。最常見的原因有兩個(gè)一個(gè)是setOption沒有傳notMerge: true舊數(shù)據(jù)和新數(shù)據(jù)結(jié)構(gòu)有差異時(shí) ECharts 默認(rèn)增量更新導(dǎo)致看起來像沒刷新另一個(gè)是數(shù)據(jù)經(jīng)過了 Vue 的響應(yīng)式代理ECharts 直接操作被代理的對(duì)象時(shí)內(nèi)部判斷數(shù)據(jù)沒有變化默認(rèn)不重繪。解決方式是先JSON.parse(JSON.stringify(data))或者用toRaw還原原始數(shù)據(jù)然后chart.setOption(option, { notMerge: true })強(qiáng)制全量更新。5.5 現(xiàn)象五本地運(yùn)行正常打包部署后地圖和字體 404本地開發(fā)好好的執(zhí)行npm run build后放到服務(wù)器上地圖沒了、自定義字體也變成默認(rèn)字體。原因幾乎都是資源引用方式不對(duì)GeoJSON 如果用fetch(/assets/geo/china.json)這種方式寫打包后路徑匹配不上部署子目錄字體文件如果用 CSS 里相對(duì)路徑引用但沒被 Vite 處理也會(huì) 404。根治方式是所有靜態(tài)資源統(tǒng)一走 import 引入或者放在public目錄下。GeoJSON 用import保證被打包進(jìn)產(chǎn)物同時(shí)確認(rèn)部署時(shí)把base配置成實(shí)際子路徑比如base: /data-screen/。字體文件盡量用系統(tǒng)字體或者把字體文件放進(jìn)assets并顯式font-face引入。6. 讓大屏活起來輪播、主題切換和定時(shí)刷新圖表能正常顯示只是第一步落到實(shí)際演示場景大屏要能自己動(dòng)頁面每隔幾秒自動(dòng)輪播一屏數(shù)據(jù)深色主題可以持久化數(shù)據(jù)定時(shí)刷新時(shí)不能白屏或閃跳。這一章把最后這點(diǎn)進(jìn)階能力補(bǔ)齊。自動(dòng)輪播可以用一個(gè)通用 hook 實(shí)現(xiàn)它接收當(dāng)前頁面的索引和總頁數(shù)在setInterval里遞增取模實(shí)現(xiàn)循環(huán)。注意大屏輪播的間隔不要太短8 到 10 秒是大多數(shù)客戶能接受的節(jié)奏太短會(huì)讓人來不及看清圖表內(nèi)容。輪播時(shí)最好配合圖表的高亮動(dòng)畫比如讓折線圖重新播放動(dòng)畫視覺上更有“活”的感覺。主題切換和數(shù)據(jù)刷新也要一起考慮。主題色存進(jìn)localStorage刷新頁面后保持主題一致ECharts 的主題切換則通過echarts.registerTheme注冊兩套主題切換時(shí)重新init當(dāng)前實(shí)例。定時(shí)刷新接口時(shí)優(yōu)先保留舊數(shù)據(jù)展示等新數(shù)據(jù)拿到后再一次性setOption更新而不是先把圖表清空再等接口返回。這樣即使接口慢了幾秒大屏上也不是空白用戶感知會(huì)好很多。我早期做大屏?xí)r最常犯的錯(cuò)就是忘記清理定時(shí)器和 resize 監(jiān)聽結(jié)果演示到一半瀏覽器變卡圖表動(dòng)畫也一頓一頓的。后來養(yǎng)成的習(xí)慣是每個(gè)圖表組件里所有副作用都在同一個(gè)鉤子里釋放全局只保留一個(gè)刷新入口寧可代碼看起來啰嗦一點(diǎn)也要保證長時(shí)間運(yùn)行不倒。做可視化大屏炫酷是面子穩(wěn)定才是里子希望這套思路能幫你在自己的項(xiàng)目里少走幾段彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人操人人射人人干| 国产h片在线观看视频| 国产福利影视| 久久久999国产精品| 你操综合| 免费综合亚洲中文| 色综合久久av| 天堂成人网| 性爱动态120秒| 日本视频一区二区三区| 精品无码秘 人妻一区二区| 久久超碰亚洲人| {男男暴菊gay无套网站| 日韩本不卡视频在线观看 | 中文字幕免费在线观看| 不卡九肏| 性爱综合一区二区| 香蕉精品二区二区 | 国产精品成人无码av无码免费| 伊人久大| 亚洲Av噜噜一区二区三区妖精| 操逼片中文| 亚洲色图欧美色图另类图片| 啊啊啊啊好大好硬啊啊啊啊啊| 97亚洲综合电影| 日本精品高清一二区一本到| 中文字幕高清精品一区| 97K超碰在线| wuyechaopeng| 亚洲麻豆18发?| a级理论午夜日本| 波多野结衣AV无码一区| 久久色精品视频在线| 免看60秒涩涩视频| 东京热大香焦| 国产少妇高潮| 色悠久久久av| 精品无码人妻一区二区免费蜜桃| 人妻天天爽夜夜爽爽| 国产农村一一级特黄毛片| 午夜超爽| 波多野结衣一级视频| 亚洲色图91| 青草一区二区| 91狠狠综合网| 精品亚洲| 精品国产Av无码久久久伦古装| 久久风骚城市| 理论久久婷婷网8| julia中文字幕在线观看| 偷窥自拍亚洲色图| 亚洲情色91| 午夜精品久久久久久久男人的天堂| 国产精品一级片在线看| 在线强奷到舒服的无码视频| 精品一区二区亚洲国产| 91chinese在线| 无遮挡男女激烈动态图| 欧美视频一| 男人天堂网址| 成人小说另类在线| 日韩黄色成人性爱| 久久天天摸| 四虎影视在线| 97网址97| 超碰美国| 欧美Ⅴ性爱| 欧美色视频在线| 日韩少妇无码| 亚洲AV秘 精品久久老牛影视| 尤物黄色在线观看网站| 日韩激情啪啪| 亚洲精品久| 97 超碰 人人做 人人爱| 91在线美女| 成人精品欧洲亚洲| 清纯唯美第一页| 丰满少妇一区二区三区免费看| 91色图| 欧美精品二区视频在线| 啪啪资源网| 再深点灬舒服灬太大了好硬好爽| 天天操女人| 久久久精品中文字幕麻豆| 神马久久久久久久久| 亚洲 另类 丝袜 自拍 动漫| 大色网久久| 美女诱惑久久| 亚洲精品中文字幕一区在线视频| 九九热视频在线观看| 欧美se亚洲| 99热这里只有精品1| 搡老女人老熟女91老熟女综合网| 男人的午夜天堂| 啪啪啪东京| 亚洲AV成人无码一区二区三区在线观看 | 夜夜嗨一区| 亚洲AV秘无码一区..| 国产 丝袜 欧美中文 另类| 可以免费观看的AV| 亚洲中字慕不卡| 国产一国产一级毛片古装| 日本丝袜人妻内射| 另类图片五月| 超碰久超碰久| 国产精品成人蜜臀AV在线| 五月婷婷色| 色欲日韩欧美在线一区| 婷婷久久综合| 人人操超碰在线| 国产又黄又爽又刺激久久久久久| 精品超碰中文在线| 偷窥自拍亚洲| 高跟丝袜AV专区国产| 人妻密肉在线观看| 亚洲图片小说欧洲| 国产精品岛国片在线观看| 91在线丝袜视频| 99无码狠狠久久| 久久精品国产亚洲AV无码电影| 久久侵犯人妻爽爽爽| 疯操AV| 911av网站免费观看| 志村玲子视频一区二区| 青青草女人天天干| 美女自卫慰黄网站免费| 深喉吞精| 国产精品婬乱一级毛片彝族| 91草草草| 上海一级黄片| 亚洲国内精品成人不卡| 国产a片操逼| 你草精品在线视频| 粉嫩av在线| 99久久com免费视频′| 人人澡人人干| 骚逼高潮久久精品| 亚洲色交| 夜夜狼人妻| 懂色av一区二区三区天美传媒| 欧美日不卡| 精品无码一区二区三区| 成人八戒网站| 欧美日韩人妻精品一区二区三区| 丁香五月天堂网| 精精品人妻一区二区三区| 激情四射五月天| 91N综合网| 久热大香蕉| 中文字幕黄色一起草| 欧美综合区| 暴力av在线| 色性综合| 久久在线观看免费视频| 在线观看午夜婷婷久久久久清性观看| 黑人无码一区二区| 亚洲天堂资源在线| 内射中出日韩在线观看视频| 51久久夜色精品国产麻豆| 亚洲免费97免费| 国产网红精品| 91bbbbbb| 国产福利夜| AAAAAAAAA黄片| 国产精品3| 亚洲丁香花色| 日韩一级特黄av毛片| 99999这里都精品| 国产成人www免费人成看片| 91欧美色| 国产日韩人人| 九九热精品免费视频| 人人操,人人插| 亚洲男人的天堂网| 长长久久88视频| 欧美日韩啪啪电影| 欧美+日产+中文| 久久久久久久久久黄色网| 最新无码国产| 欧美性五月| 国产玖玖| 久久久免费一级黄片| 欧美日韩在线小说 | 嗯~啊~快点 死我视频| 91九色蝌蚪在线观看| 99re这里| 久久艹逼视频| 久久久久免费看少妇A片特黄| 熟妇高潮二区三区| 欧美在线色图| 女优视频第10页| 免费一级黄色录像影片| 欧美97超碰| 1204av韩国| 亭亭丁香激情| 懂色AV一区二区三区| 18禁止看精品中文字幕| 老熟女网站| 国产三级中文字幕粉嫩| 丝袜亚洲91| 99爱久久视频频| 91蜜桃婷婷狠狠久久综合9色| 強姦亂倫a| 亚洲伊人成综合成人网| 99热线麻豆| 国产精品91一样| 狠狠色综合网| 99re久久| 黄片无码在线制服| caoni国产亚洲av| 国产精品懂色tv影视免费观看| 四虎精品一区| 麻豆 亚洲 97| 日韩综合97P| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 男男H黄动漫啪啪无遮挡网站| 日本黄大片在线观看视频| 久久男人的天堂| 亚洲日韩电影| 亚洲色色探花| 日韩不卡在线一区二区| 人人考人人摸人人干| 2019天天干天天操| 国产情侣自拍在线播放| 无遮挡h肉动漫在线观看| 无码免费精品高清| 日韩激情啪啪| 99色在线| 丝袜视频一区二区在线播放国产中文| 91jk色拍| 亚洲图片 欧美电影| 亚洲一二三四区在线免费看视频| 日本性一区| 欧美综合传媒| 啊啊啊爽爽| 欧美亚洲小说| 午夜国产综合视频在线观看| 亚洲精品一区二区精华| 日本一级婬片试看三分钟| 日韩一级二级三级免费看完整版| 国产综合在线视频网站| 日韩激情啪啪| 91爱综合| 成人久久精品| 91高清日| 亚洲国产欧美另类自拍| 日韩黄色一区二区三区| 亚 欧 美 综合| 欧美18禁91| 少妇色综合| 九九久久99| 欧美专区17页| 97鸡把在线视频| 日本操逼无码| 无码黑人精品一区二区三区三| 日本在线激情一区二区三区| 精品v1区| 欧美线天码中字| 狠狠爱综合网| 久久久精品视频免费观看| 超碰人人干| 熟妇艹鸡八| 天天干夜夜肏| 中国一级操逼视频| 久久久一区二区三区四曲免费听| 亚洲AV不卡在线观看尤物| 青青伊人久久| 亚洲黄色电影| 久久久久久亚洲中文| 久久久久久亚洲中文| 色吧五月| 福利大香蕉| 亚洲综合影院| 久久九色| 嫩草 我啊~嗯~在线| 夜夜精品视频| 手机在线人成免费视频| 成人色女网| 国产白丝网站| 欧美大香蕉同搞| 国产最新AV| 色香综合天天影视综合 | 五月天色图| 99久热精品99re6热| 啊啊啊啊啊啊在线观看| 精品色色| 亚洲图片小说欧洲| 久久AV无码网址| 中文字幕55555| 欧美性色欧美| 亚洲九月丁香| 狠狠躁日日躁夜夜躁A| 狠狠婷婷亚洲中文综合久久| 久久九九99| 久草精品一区 | av无码精品久久久久| 97蜜桃综合| 91操熟女视频| 曰韩av中文字幕专区| 亚洲第91页| a片自拍直播视频| 亚洲图片色图欧美另类| 屌妞视频久久久久久久久久久久 | 一二三四免费视频| 91欧美网| 九九热免费国产视频婷婷伊人五月 | 97中文字幕色| 91丝袜美女视频| 天天干天天拍| 人妻人久久精品中文字幕| 日本免费专区| 亚州Av天美传媒| 日韩一区二区高清在线观看的| 五月天综合网| 密乳无码| 2019AV天堂| 中文乱码字字幕在线第5页| 欧美男人一区| 免费人成毛片乱码| 欧美91久久久久| 风流老熟女一区二区三区l| av 模特一区了| 日本一区二区做爱的视频| 一区,二区,三区网站| 亚洲高清自拍| 国产九区| 97色色婷婷| 蜜臀无码一区二区| 欧美国产日韩清纯唯美| 超碰午夜| 色在线69堂| 国产亚洲精品第一最新| 麻豆成人AV| 97精品国产97久久久久久户外免费| 亚欧成人一级片在线播放| 久久久久久中文字幕中文字幕最新| 蜜臀99久| 天天做天天爱天天爽AV| 日本女优在线视频福利| 少妇熟女一区二区三区| 大香网伊人久久综合网eew| 色久桃花影院在线观看| 自拍第一页| 玖玖视频在线资源一区二区三区| 91精品久久久久五月天精品| 色哟哟av| 日韩精品熟妇| 色999;丁香五月| 人人操人人色网| 男人的天堂日本东京热| 97福利视频| 亚洲欧美色图小说| 欧美熟妇色| 抽查国产福利主播| 日本3级一区二区免费| 96久久久| 久久视频少妇美女| 岛国黄色短视频| 亚洲牲交| 97鸡把在线视频| 欧美大香蕉97| 先锋精品av色鲁| 欧美日韩国产三级黄色| 东北少妇高潮zzzz| 欧美性暴力猛交| 97精品国产手机| 亚洲欧洲美腿丝袜| 日韩成人在线性爱视频| 蜜桃臀av一区二区| 97在线资源| 国产精品久久9| 国产AV久久久蜜爱影集| 日韩免费在线视频观看| 精品无吗m| 免费男人的天堂| 天美精品一区二区三区四区在线观看| 超碰97 线线 在现| 欧美线天码中字| 精品亚洲俞拍视频一区| 欧美日韩丝袜 | 亚洲男人bt天堂| 91在线无码精品秘 软件| 久久免费99精品久久久久久| 韩国三级一线观看久| 精品久久久久综合无码| 91欧美www| 国产精品农村妇女| 蜜臀久久99精品久久久久久成人小说| 久久久精品,3| 18+91网站| 91熟女少妇| 久肏视频字幕| 五月天久久人妻| 超碰97极品9| 人妻激情在线视频| 一区二区三区国产精产| 国产精品午夜成人福利| 9超碰免费| 男人的天堂VA在线| 日本精品久久久久久久| 国产AV天美传媒一区二区三区 | 五月天丁香欧洲日韩| 中文字幕永久在线| 一区二区日韩欧美久久| 亚洲人妻一区二区三区| 夜夜操91744565| 性色高清在线| 亚洲限制级| 青女在线| 精品无码一区二区人妻久久蜜桃| 中文字幕精品三级久久久| 四虎免费视频| 日日操夜夜操天天操免费观看麻豆| 又黄又硬又粗又长国产视频| 久操| 高清有码一区二区| 久久高清欧美国产| 另类天堂| 日日骚 av| av线电影| 精品99999| 最新av网站在线观看| 精品九九九| 日韩欧美成人午夜福利| 影音先锋国产精品| 嗯阿好爽好紧| 99国内熟女露脸视频| 蜜屁Av| 欧美综色欧| 天天综合~91| 国产精品久久久久久久AV大片| 操逼逼中文字幕| 综合色色网| 国产精品一区人妻精品阁在线| 欧美熟妇精品黑人巨大一二三区| 免看60秒涩涩视频| 午夜啪| 天天色播亚洲综合网站| 精品久久久无码| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 不卡视频一区蜜桃视频| 免费福利视频中文字幕| 超碰91在线| 懂色AV中文| 男人的天堂Va| 高清无码 国产精品| 99视频内射三四| 97干天天| 精品欧美老熟女一二区| 日本狂喷奶水在线播放212| 亚洲熟女中文字幕在线| 欲射影视| 玖玖爱视频网站| 日本操逼视频免费| 91人妻最真实刺激绿帽| 日韩三级一区| 啊啊啊水好多| 亚洲天堂7777| 欧美成人国产精品| 婷婷在线视频在线观看| 青青国产精品在线| 亚洲天天自拍| 欧美性爱精品一区二区| 亚州精品人妻一二三区| 一本精品日本在线视频精品| 久久97资源 网| 97视频播放| 操逼操逼视频操逼| 性色av一区二区| 加勒比99999| 奇米狠999| 久久久穴999| 91痴汉| 久久久久久久久久久免费精品| 狠狠狠狠狠狠| 60秒不遮不挡| 天天插天天射| 亚洲欧美黄| 久久国产视频性吧| 久久精品人妻一区| 五月天婷婷综合| 久久有码视频| 99激情| 九九九国产| 色综合久久久久| 亚洲精品人伦一区二区| 亞洲久久直播| 久久亚洲色图中文字幕| 日韩一级成人毛片免费观看| 国产精品 午夜福利| www熟女乱伦com| 美腿丝袜偷拍亚洲欧美| 欧美国产日韩清纯唯美| 国产老太乱伦一区| 99爱爱| 超碰 欧美| 亚洲精品三| 99久久久| 综合日韩激情另类图片| 97超碰日韩| 国产精品肉丝自拍| 八戒午夜福利理论片| 欧美亚洲高清不卡| 激情开心五月天| 日韩 国产 欧美自拍| 欧洲精品人妻| 色综合天天| 国产精品久久久 | 日韩av熟女一区二区三区成人| 91另类| 嫩草伊人久久精品| 亚洲成人福利电影免费| 一二三区精品视频| 东北女人被操| 一区二区三区精品视频| 久草午夜| 操我啊啊啊啊啊| 亚洲一区二区三区播放在线| 精品人妻15区| 97 国产一区| 精品性爱一区二区| 亚洲中文字幕熟女| 九九九九免费视频| 国产精品久久久亚洲一区| 思思热久久成人| 国内毛片四区| 女人的天堂大香蕉网| 超碰人人超在线观看| 久久久久久性爱免费视频| 人妻激情在线视频| 少妇99成人麻豆| 色官网在线| 国产女s强制榨精视频| 亚洲一区二区av| 330dv亚洲成年视频网| 一级片在线观看高清无码| 中文字幕乱码在线| 日韩无码服务区| 超碰天天操| 日本超碰在线国产一区| 亚洲欧美经典一区二区| 性爱免费视频成人| 一级二级三级黑人无码| 97亚洲在线| 国产精品粉嫩福利在线| 亚州熟妇精品| 亚洲宗合电影| 97久久精品亚洲中六字幕| 丁香激情网| 牛黄色久午久| 无码逼| 久久久久久九九九| 高精欧美色| AV色五月天| 亚洲少妇色图自慰直播| 日韩pv中文| 中文字幕黑人大片| 久久性爱视频| 欧美黄页在线| 大香蕉碰碰| 人人操AV| 开心激情站| 多乙久久久久久| 国产剧情AV不卡在线观看| 国产一进一出视频网站| 嫩呦国产一区二区三区AV| 久久久久久性爱免费视频| 国产乱码久久久| 极品出轨视频网站| 成人AV在线网站| 国产精品高朝久久久久久久| 综合网亚洲1| 久久久精| 东京热,男人的天堂| 色九九久九九| 久久久久久加勒比| 99热婷婷一区二区三| 欧美日韩制服| 激情一区二区| 欧美精品精品一区二区| 老熟女乱伦一区| 中文字幕美女91| 成人无遮挡毛片免费看| 精品亚洲国产成人av网站| 久久久久亚洲?V片无码V| 91爆操视频| 色五月婷婷久久| 欧美亚洲激情小说| 91天天c| 久欲AV| 亚洲色图片区| 秋霞网无码| 九九九九9999| 久操网视频| 人人干人人搞人人摸| 综合五月天| 中文字幕少妇色| 尤物视频偷拍免费| 久久9精品| 欧美丰满少妇xx高潮| 欧美人人AAA| 九九九九九九九九九九九免费国产| 人妻插插人妻人| 97欧美精品综合| 97超碰人操| 蜜臀久久99精品久久久久久婷婷 | 日本中文字幕在线视频| 嗯嗯嗯好爽| 久久久久久久久久久97| 任你干在线视频| 欧美日韩97| 人妻一区视频| 偷拍 精品另类 凸凹了四区| 日夜干射色啊| 久久久性爱| 国产精品区在线12p| 久热婷婷| 日韩中文9| 国产又粗又大硬免费色网视频| 国产成人精品日本视频| 国产久久视频| 啊啊啊啊啊啊啊啊在线观看| 日本一区二区不卡精品| 少妇69中文| 久9无限国产| 手机看av网站在线看| 96精品久久久久中文字幕| 96免费视频在线| 亚洲综合第一页| av一区二区三区 中文| 98精品国产乱码久久久久久| 97色亚洲| 日韩三级久久久| 日韩欧美蜜桃精品久久中文字幕久久| 中文字幕一区二区日韩网| 国产成人亚洲精品自产在线 | 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 九久久九九久视频| 国产在线视视频有精品| 欧美日韩亚洲五月天婷婷| yaouchengrenav| 嗯嗯啊啊用力视频免费| 亚洲色图图片| 97精品国产97久久久久久| 中国和日本人色哪个不下载能放| 亚洲二区精品在线观看 | 免费看黄片现成| 中文字幕成人| 久久大香蕉97| 一区二区娱乐网站| 日本亚欧爱爱| 夜色AV无码手机在线影院| 综合网,亚洲,欧美| 精品少妇999| 志村玲子视频一区二区| 亚洲欧洲日韩中文字幕一区| 中文字幕日本久久| 另类老少妇| 图片区小说区| 亚洲免费97免费| 欧美日韩大黄片| 偷拍欧美激情| 97综合久久| 再深点灬舒服灬太大了好硬好爽| 男人天堂无码| 亚洲人妻AV| 97视频播放| 激情五月天综合网| 97精品网| AV一二区| 高清一区AV无码| 亚洲国产精品久久久男人的天堂| 日韩黄色av中文字幕| 大香蕉欧美国产日韩高潮| 国产女人与拘做受视频免费| 日日干夜夜骑| 91精品91久久久中77777| 97国产综合欧美| 天天做天天爱天天高潮| 国产精品午夜AV完会免费| 九九英色视频| 久草网站免费在线观看| 亚州男人天堂| 日韩三级在线观看mp4| 欧美日韩香蕉| 青娱乐91| 校园春色中文字幕AV| 1769精品一区二区三区| 欧美组图日韩亚洲中文字幕| 久草综合视频| 人人人人人人少妇| 国产精品永久免费10000| 熟妇女伦乱视频视频| 久7色| 在线观看亚洲专区| 欧美se综合| 嗯嗯啊啊视频一区二区三区| 成人综合久久精品色婷婷| 激情小说激情视频| 麻豆人妻少妇在线免费观看| 操逼啊啊啊91| 日少妇视频| 欧美日韩亚洲高清不卡一区二区三区| 强奸乱伦中文字幕AV| 四虎影视永久在线观看精品免费网站 | 综合伊人激情| 偷拍欧美亚洲| 97 国产一区| 天天爽天天| 亚洲少妇综合在线播放| 欧美色999| 91欧美成人色站| 日韩成人综合网| av午夜影院在线播放| 中文字幕三四区| 99精品人人爽| 啊嗯好大视频在线观看| 亚洲欧美在线观看免费| 色综合一区二区三区| 欧美91久久久久| 天天综合有色网| 国产67194| 国产日韩欧美亚洲精品95 | 国产福利影视| 国产强奸无码乱伦| 九久久九九久视频| 中国熟女91| 丁香婷婷激情五月天无毒不卡| 99热在线观看| 思思热免费视频观看| 黄色av网站在线播放| 97爱爱| 男人的天堂99| 少好三P| 9久精品视频在线观看| 九一亚洲国产免费| 人妻少妇视频在线播放| av资源在线播放天堂| 日韩一级特黄av毛片| 啪啪啪综合网| 亚洲天堂2020| 欧美在线中M| 日韩一级二级在线| 精品久久99| 久悠悠av| 婷婷香蕉欧美在线一区二区三区 | 99热在线只有精品| 亚洲中文字幕一区| 后入福利| 亚洲情色综合网| 国产诱惑| 亚洲自拍青操视频| 伊人久久亚洲色欲综合网站 | 本道综合精品| 人妻天堂网| 亚洲男人天堂2017| 亚洲欧美首页| 日本久久女同性恋视频| 黄色无码高清黄色无码网站| 日韩日韩日韩-国产乱码精品一区二区| 蜜桃狠狠色伊人亚洲综合 | 亚洲乱色熟女一区| 人妻无一区二区三区| 岛国网址国产| 岛国艾薇凹凸视频天堂| AAA久久| 黄污污污污| 日本女厕偷拍| 成熟熟女国产精品一区二区| 蜜桃臀久久| 色97欧美| 亚洲网站一区二区在线| 亚洲av无码成电影在线播放| 亚洲高清无码在线桃色| 色欲天天综合网| 99热精品在线在线| 久久熟女人| 97色诱| 久久一本大香蕉 | 口爆吞精在线观看| 九九探花视频在线观看| 69精品人人人人| 久碰视频| 九九在线视频| 口爆欧美91| 久操视频免费观看| 91岛国动作片| 人人操人人操人人人操| 色欲日韩欧美在线一区| 亚洲欧美一区二区三区在钱蜜桃| 97玖玖超碰| 精品人妻视频一区二区在线播放| 精品久久久久综合无码| 99e久久国产精品| 久久一级无码精品毛片6| 依人大香蕉| 岛国人妻少妇av在线观看| 欧美在线视频播放| 欧色网址| 色乱二区| 大香蕉AV丝袜| 啊啊啊操死我了| 成人免费性爱视视| 激情综合婷婷| 久久綜合很很很| 密臀视频三区免费网站| 久久久精品电影| 任你艹| 10000部十八禁看电影| 东京热毛片177b2viP| 测评在线观看AV| 日本精品第一视频在'| 91九色丨国产丨爆乳| 日产精品久久久一区二区| 翔田千里无码中出中文字幕| 丁香六月婷婷久久综合| 欧美999999| 曰韩中文人妻视频| 尤物一级在线免费观看| 免费人人搞97| 97免费视频在线| 一区二区三区免费岛国片| 性色avv| 青草视频人妻在线观看| 欧美高清91| 无码精品蜜桃一区二区三区ww| 婷婷大香蕉| 人人摸人人舔一区二区| 91搡老女人老妇女老熟女歌词翻译| 少妇干B| 超碰欧美在线欧美| 婷婷av在线中文字幕| 亚洲色天堂日韩中| 中文字幕黄色一起草| 强奸乱伦大香蕉网| 97AV在线免费观看| 嫩草美女久久| av婷婷色网| 狠狠超| 色五月婷婷麻豆在| 快灬快灬 一下爽蜜桃在线观看| 亚洲美女自拍偷拍视频| 国产一区二区三区,在线观看观看| 久久久新亚洲AV| 少妇高潮99p| 国产夫妻性生活视频| 亚洲熟女中文字幕在线| 二对二中文字幕。| 国产亚洲性生活视频播放| 日本一二三高清| 午夜福利国产欧美日韩夜夜| 用力操死我| 美女操逼A A| 超碰在线人妻不卡| 久久久久久久久久久免费精品| 啊啊啊操一区| 99热在线观看| 伊人久久大香线综合无码| 人人操人人摸人人看人人插| 亚洲色图 图片| 国产成人亚洲精品无码古代早漏男 | 久久久激情| 色噜噜国产精品视频一区二区| 欧美超碰9798| 校园激情狠狠四射| 天美麻豆精品视频99| 国产强奸乱伦第1页| 尻女朋友一夜| 家庭乱伦国产精品| 久久超碰免费的| 丰满岳乱妇一区二区三区 | av亚欧| 日日夜夜草草草| 约操熟妇| 1024手机看片欧美日韩| 日韩av一级黄片| 精品九九九九九九| 日本不卡三级网在线播放| av在线免费一区二区| 伊人九九| 一区二区三区蜜桃成人撸久久东京热| 国产区性爱在线视频秋霞豆| 国内一级精品| 高潮综合网| 成人看片网站| 麻花豆传媒剧国产MV出差| 区一二区日韩亚洲乱码av电影| 亞洲久久直播| 国产精品精品系列在线观看| 久日91在线| 熟妇熟女视频一区二区三区| 国产乱伦亚洲色图高清无码| 亚州高清av| 淫淫总合网| 国产欧美精选激情视频| 久热99999| 99色悠悠| 久99久视频| 秋霞操逼片| 天堂成人网| 欧美少妇高潮久久91| 综合色图亚洲欧美| 亚洲精品影视老司机| 欧美日韩传媒| 性欧美第一页| 日韩激情视频| 伊人影院在线理论播放| 色久桃花影院在线观看| 豆花视频操逼网址| 日韩精品亚洲一二三| 欧美韩国你懂得在线| 欧美日韩操逼嗦吊| 中文字幕五月婷婷免费| 欧美综合网| 欧美丝袜亚洲| 国产情色在线| 韩国女主播青草在线| 婷婷五月天社区| 狠狠色伊人亚洲综合网站色| 易易A毛视频| 大香交| 加勒比AV天堂| 亚洲色91C| 无码heyzo高清一区| 色狠狠综合| 青娱乐亚洲自拍| 国产精品直播在线观看直播| 97色亚洲| 偷窥自拍亚洲天堂网爆| 懂色aV一区二区天美传媒| 大香交伊人网| 尤物国产一区在线观看| 免费AV中文网在线观看| 亚洲图片偷拍视频区| 激情黄色片在线观看| 青操影院| 成人一区二区三区四区| 久操不卡视频| 无码WWW免费视频网站| 97天天插| 欧洲与亚洲欧美精品中文字幕| 亚洲精品一区中文字幕乱码| 懂色AV蜜臀无码精品APP| 草莓精品视频在线免费观看| 人妻第一页| 99AV| 亚洲女人91| 亚洲黄色电影| 国产精品一区在线播放| 国产精品亚洲四五区在线观看| 国产女性无套 免费观看| 天天综合网~91| 久偷拍欧美日韩三区| 国产成人一级av88| 国产人人干| 天天摸,夜夜摸| 国产久久成人| 国产中文精品一区二区在线观看| 国产有码一区| 亚洲欧洲综合av在线| 欧美少妇高潮视频| 极品出轨视频网站| av亚洲天堂资源网站| 热热色色综合| 91在线观看,天天综合| 欧美天天影院| 国产精品久久久久无码A√| 亚洲日韩精品在线播放| 99热精品在线播放| 中文字幕女同在线| 日韩在线电影| 国产传媒午夜理伦精品| 99热精品在线| 九色 蝌蚪 熟女自| 婷婷色综合欧美日韩| 伊人女女资源在线观看| 青青青操| 精品大全99999| 欧美激情在线观看视频| 天天躁日日躁AAAAXXXX国产 | 色网1| 国产三级多多影院2022国产AA一级毛片无码 | 精品一区二区三区18| 啊啊啊好湿久久| 一区,二区,三区视频| 日韩噜噜69| 熟女91网| 亚洲97在线| 老熟女乱伦一区| 国产精品69人妻无码久久久| 不卡免费av在线播放 | 亚洲欧美日韩不卡人妻| 亚洲天天自拍| 亚洲一区二区三区在线激情| 成人精品久久久午夜福利| 青娱乐久久艹| 久久啊哟| 免费看国产大AB| 91成人亚洲色图| 人妻一区二区三区四区视频| 无码逼| 亚洲少妇色| 欧亚不卡| 久草电影网| 精品无码一区二区三区| 99久久精品国产高潮| 男人下部插入女人下部| 91高清日| 少妇厨房愉情理伦片bd在线观看 | 狼人狠干| 国模不卡| 91色黑人少妇| 日韩熟女精品无码专区一区二区| 九九九九九九免费视频| 亚洲精品国语在线播放| 色丁香五月婷婷| 俞拍自拍| 欧美大香蕉久| 思思热在线观看| 亚洲综合影片| 一本色道人妻久久| 男人高清无码一区二区| 三级三级三级a级全黄三| 日本 免费 一区二区三区 久久香蕉 | 欧美日韩另类在线播放| 天堂蜜桃无码视频一区二区| 美女毛片999| 五十路熟女人妻一区二区三区四区五| 色婷婷九月天天综合| 天天肏美女| 亚洲女人毛茸茸91| 久久av一级av少妇av高潮| 啊啊啊啊视频免费| 日本Suv精品一区二区| 影视综合无码少妇| 伊人色综合超碰| 久久久96| 中文字幕五区| 欧美的精品的视频| 中国探花熟女| 欧美综合狠| 香蕉欧美| 久久伊人在线五区| 亚洲欧洲激情卡通另类文学四射小说网站 | 国产精品高潮呻吟av久久4虎| 国产精品一二三免费网站| 日本中文字幕熟妇| 日日摸夜夜夜夜爽| 性爱AV天堂| 95自拍视频在线观看| 中文字幕精品丝袜| 天堂无码| 亚洲另类久操网| 男人的天堂 在线一区| 天天操天天射天天日| 少妇极品熟妇人妻无码| 情趣丝袜无码操逼视频| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 在线观看免费视频国产| 91久久18禁| 成人久久久| 中文字幕高清20页视频| 我要色综合网| 丝袜内射| 精品日韩中文在线| 久湿久久 | 色综合色| 五十路熟女人妻一区二区在线观看| 狠狠干狠狠干| 高清国产精品无码| 亚洲国内精品成人不卡| 极品尤物女神在线观看| 超碰美女97| 亚洲AV免费在线观看| 草莓精品视频在线免费观看| 丰满熟女人妻一区二区三五十一路| 人妻-91porn| 丰满少妇一区二区三区免费看| 97超碰热线| 2021久久国产综合精品青草| 亚洲天天天| 色五月69夫妻| 亚洲成a人在线观看久| 欧美人妖内射| 97硬碰| 日韩一区二区三区四区五区| 外国免费性情大片| 91久久国产综合精品| 1769精品一区二区三区| 色汉综合| 亚洲天堂第一页| 图片区小说区| 懂色aV一区二区天美传媒| 你草精品在线视频| 国产亚洲精品第一最新| 日本不卡在线二区三区| 国产精品女同| 色色香蕉| 色噜噜狠狠色综无码久久合欧美| 日日干夜夜操视频h| 岛园激情| www.99色| 性生活性生大爱77AV国产 | 夜色91| 国产农村妇女精品一二区| 777AV电影| 天天色欧美| 第四色色综合91| 中文字幕一区二区三区字幕| 校园春色美腿丝袜 | 综合情欲网| 久久久久9久久久久| 青娱乐亚洲自拍| 蜜桃网熟妇| 上床不卡网站| 国产欧美日韩在线不卡第一页| 日本综合色图| julia ann久久| 97人人爱人人做人人乐| 國產尤物AV尤物在線觀看 | 欧美|91色综合| 99精品成人免费看| 日本高清免费一本视频在线观看| 清纯唯美激情| 日韩草久视频| 免费毛片在线播放| av最新免费中文字幕| 99re在线精品78| 欧美久久婷| 国产刺激视频| 欧美精品三级黄片| 国产精品一区二区密臀| 九九九九一级| 精品91摸| 东京热免费视频| 中国探花熟女| 被窝影院午夜看片无码| 日韩性爱小视频| 91一区二匹| 欧美精品偷拍| 一区麻豆 高清中文字幕| 亚洲综合97中文网| 国人欧美精品一区二区| 国产乱色国产精品免费视| 五月亭亭六月丁香| 曰本道人妻久久久在线不卡色视频| 青青草五月天| 成人综合网 欧美| 日韩草久视频| 亚洲宅男天堂| 亚洲97久久精品亚洲| 91中文字幕| 99色网| 日韩性爱长视频免费| 青草伊人久久| 人人操人人精品影片| 后入式999| 91精品在线播放| 色九色久| 国产精品一区二区三区在线|