From 5a33aa1df4ee900d7c079177e41cf7953e6958f2 Mon Sep 17 00:00:00 2001 From: zk Date: Thu, 21 Dec 2023 14:07:18 +0800 Subject: [PATCH 1/7] update --- .eslintignore | 1 + src/components/item-d/pieCharts.ts | 2 +- .../components/userInfoModal/bloodOxygen.vue | 7 ++++++- .../components/userInfoModal/heartRate.vue | 7 ++++++- .../components/userInfoModal/motion.vue | 7 ++++++- .../components/userInfoModal/pressure.vue | 7 ++++++- .../secondMap/components/userInfoModal/sleep.vue | 8 ++++++-- .../components/userInfoModal/stepNumber.vue | 7 ++++++- .../components/userInfoModal/temperature.vue | 7 ++++++- .../secondaryScreen/secondMap/secondMap.vue | 4 ++-- src/utils/socket.ts | 16 ++++++++-------- 11 files changed, 54 insertions(+), 19 deletions(-) diff --git a/.eslintignore b/.eslintignore index 787e9b3..55a9bb7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,6 +7,7 @@ node_modules .vscode .idea dist +dist.zip /public /docs .husky diff --git a/src/components/item-d/pieCharts.ts b/src/components/item-d/pieCharts.ts index 9d3a4ff..31a8079 100644 --- a/src/components/item-d/pieCharts.ts +++ b/src/components/item-d/pieCharts.ts @@ -1,7 +1,7 @@ // 步数 import {visibleChartLabel} from "/@/utils/utils.ts"; -export function screenPie(chartData, total, color, formatter) { +export function screenPie(chartData, total, color) { return { color: color, tooltip: { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/bloodOxygen.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/bloodOxygen.vue index 307dcf2..f9d6744 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/bloodOxygen.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/bloodOxygen.vue @@ -52,7 +52,12 @@ keyType: propTypes.string.def('2'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { apiParams.value = { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/heartRate.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/heartRate.vue index bd90846..dd8f62a 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/heartRate.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/heartRate.vue @@ -53,7 +53,12 @@ keyType: propTypes.string.def('1'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { apiParams.value = { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/motion.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/motion.vue index 8fefb4f..db5329f 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/motion.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/motion.vue @@ -48,7 +48,12 @@ keyType: propTypes.string.def('6'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { apiParams.value = { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/pressure.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/pressure.vue index 1732fea..ec6df73 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/pressure.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/pressure.vue @@ -50,7 +50,12 @@ }); let echart = null; - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); const { refresh, setRefresh } = useChangeTable(); function tableReload() { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/sleep.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/sleep.vue index 01595a9..93c58cb 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/sleep.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/sleep.vue @@ -55,7 +55,12 @@ keyType: propTypes.string.def('4'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { nextTick(() => { @@ -65,7 +70,6 @@ pageSize: 10, pageNo: 1, }; - console.log('apiParams.value', apiParams.value); setRefresh(); }); } diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/stepNumber.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/stepNumber.vue index 5991081..e5f6be1 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/stepNumber.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/stepNumber.vue @@ -55,7 +55,12 @@ keyType: propTypes.string.def('7'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { apiParams.value = { diff --git a/src/components/secondaryScreen/secondMap/components/userInfoModal/temperature.vue b/src/components/secondaryScreen/secondMap/components/userInfoModal/temperature.vue index edf5f0c..2ef5940 100644 --- a/src/components/secondaryScreen/secondMap/components/userInfoModal/temperature.vue +++ b/src/components/secondaryScreen/secondMap/components/userInfoModal/temperature.vue @@ -52,7 +52,12 @@ keyType: propTypes.string.def('5'), }); const { refresh, setRefresh } = useChangeTable(); - const apiParams = ref(getParams()); + const apiParams = ref({ + flag: 0, + userId: props.userId, + pageSize: 10, + pageNo: 1, + }); function tableReload() { apiParams.value = { diff --git a/src/components/secondaryScreen/secondMap/secondMap.vue b/src/components/secondaryScreen/secondMap/secondMap.vue index c5f0b8b..f3d52f3 100644 --- a/src/components/secondaryScreen/secondMap/secondMap.vue +++ b/src/components/secondaryScreen/secondMap/secondMap.vue @@ -83,7 +83,7 @@ async function getMapList() { try { - const { code, result } = await mapListApi({}); + const { code, result } = await mapListApi({ orgCode: props.orgCode }); if (code == 200 && result.length > 0) { const newArr = result.map((item) => ({ ...item, type: '6' })); mapList.value = newArr; @@ -101,7 +101,7 @@ }, }, (val) => { - getFooterTable(val.orgCode); + getFooterTable(val.orgCode?.substring(0, 6)); setIsShow(true); } ); diff --git a/src/utils/socket.ts b/src/utils/socket.ts index 3b7d68e..bdb61fb 100644 --- a/src/utils/socket.ts +++ b/src/utils/socket.ts @@ -1,4 +1,4 @@ -import { onMounted, onUnmounted, ref } from 'vue'; +import { ref } from 'vue'; import { getAppEnvConfig } from '/@/utils/env.ts'; import { useUserStore } from '/@/store/modules/user.ts'; import { getAuthCache } from '/@/utils/auth.ts'; @@ -33,7 +33,7 @@ export function useSocket(p = basicPath) { //心跳检测 const heartCheck = { - timeout: 1000 * 10, //1分钟发一次心跳 + timeout: 1000 * 50, //50s发一次心跳 timeoutObj: null, serverTimeoutObj: null, reset: function () { @@ -47,10 +47,10 @@ export function useSocket(p = basicPath) { //这里发送一个心跳,后端收到后,返回一个心跳消息, //onmessage拿到返回的心跳就说明连接正常 if (socket.value.readyState === WebSocket.OPEN) { - //console.log('p1' + new Date().toLocaleString()); + console.log('连接正常' + new Date().toLocaleString()); socket.value.send('ping'); } else { - //console.log('p2'); + console.log('连接断开'); init(); } self.serverTimeoutObj = setTimeout(function () { @@ -74,20 +74,20 @@ export function useSocket(p = basicPath) { socket.value.onclose = function () { reconnect(path.value); - //console.log('连接关闭!:', new Date().toLocaleString()); + console.log('连接关闭', new Date().toLocaleString()); }; socket.value.onerror = function () { reconnect(path.value); - //console.log('连接错误!'); + console.log('连接错误'); }; socket.value.onopen = function () { heartCheck.reset().start(); //心跳检测重置 - //console.log('连接成功!' + new Date().toLocaleString()); + console.log('连接成功:' + new Date().toLocaleString()); }; socket.value.onmessage = function (event) { //如果获取到消息,心跳检测重置 heartCheck.reset().start(); //拿到任何消息都说明当前连接是正常的 - //console.log('收到消息啦:', event); + console.log('收到消息:', event.data); if (event.data != 'pong') { let data = JSON.parse(event.data); socketData.value = data; From dd5a47e7fbf8690a12f528a315646e8731206b84 Mon Sep 17 00:00:00 2001 From: zk Date: Thu, 21 Dec 2023 16:42:22 +0800 Subject: [PATCH 2/7] update --- src/components/item-d/pieCharts.ts | 13 ++++++++----- .../screen-right/screenRightHooks.ts | 3 ++- .../secondaryScreen/screen-right/twoR.vue | 2 +- .../secondaryScreen/secondMap/secondMap.vue | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/item-d/pieCharts.ts b/src/components/item-d/pieCharts.ts index 31a8079..d47bd55 100644 --- a/src/components/item-d/pieCharts.ts +++ b/src/components/item-d/pieCharts.ts @@ -14,7 +14,7 @@ export function screenPie(chartData, total, color) { borderColor: '#1b7ef2', }, legend: { - left: '72%', + right: '5%', top: 'center', orient: 'vertical', icon: 'circle', @@ -23,12 +23,13 @@ export function screenPie(chartData, total, color) { color: '#ffffff', fontSize: 16, }, + selectedMode: false }, series: [ { type: 'pie', - radius: ['50%', '76%'], - center: ['40%', '49%'], + radius: ['50%', '72%'], + center: ['37%', '49%'], avoidLabelOverlap: false, label: { show: true, @@ -50,7 +51,8 @@ export function screenPie(chartData, total, color) { //左侧圆 export function circleRing(chartData, total, color) { - const data = visibleChartLabel(chartData) + // const data = visibleChartLabel(chartData) + // const data = chartData return { color: color, tooltip: { @@ -72,6 +74,7 @@ export function circleRing(chartData, total, color) { color: '#ffffff', fontSize: 16, }, + selectedMode: false }, series: [ { @@ -89,7 +92,7 @@ export function circleRing(chartData, total, color) { labelLine: { show: false, }, - data: data, + data: chartData, }, ], }; diff --git a/src/components/secondaryScreen/screen-right/screenRightHooks.ts b/src/components/secondaryScreen/screen-right/screenRightHooks.ts index a81a7fb..45905bb 100644 --- a/src/components/secondaryScreen/screen-right/screenRightHooks.ts +++ b/src/components/secondaryScreen/screen-right/screenRightHooks.ts @@ -61,6 +61,7 @@ export function sleepCharts({ time, short, long, awake, type }) { borderColor: '#1b7ef2', }, legend: { + orient: 'horizontal', data: ['清醒', '浅睡', '深睡'], textStyle: { color: '#ffffff', @@ -69,7 +70,7 @@ export function sleepCharts({ time, short, long, awake, type }) { height: 40, itemHeight: 14, top: -5, - left: '52%', + right: '15%', }, color: ['#14B3F8', '#6D7BEB', '#5451DC'], xAxis: { diff --git a/src/components/secondaryScreen/screen-right/twoR.vue b/src/components/secondaryScreen/screen-right/twoR.vue index 8569265..93984a3 100644 --- a/src/components/secondaryScreen/screen-right/twoR.vue +++ b/src/components/secondaryScreen/screen-right/twoR.vue @@ -75,7 +75,7 @@ .count { position: absolute; - width: 77%; + width: 71%; top: 51%; display: flex; flex-direction: column; diff --git a/src/components/secondaryScreen/secondMap/secondMap.vue b/src/components/secondaryScreen/secondMap/secondMap.vue index f3d52f3..40e614e 100644 --- a/src/components/secondaryScreen/secondMap/secondMap.vue +++ b/src/components/secondaryScreen/secondMap/secondMap.vue @@ -105,6 +105,8 @@ setIsShow(true); } ); + } else { + Map.removeOverlayGroup(); } } catch {} } From b9f2b3b5213ad111f71ae7e8b8c79562e3b7345e Mon Sep 17 00:00:00 2001 From: zk Date: Fri, 22 Dec 2023 16:57:16 +0800 Subject: [PATCH 3/7] update --- package.json | 1 + src/assets/less/amap-item.less | 1 + src/assets/less/index.less | 144 +++++++++--------- src/assets/mapUtils/commonFun.ts | 34 +++++ src/assets/mapUtils/map.ts | 41 ++--- src/assets/mapUtils/mapConstant.ts | 22 +++ src/components/body-d-left/oneL.vue | 9 +- src/components/chinaMap/chinaMap.vue | 28 ++-- .../secondMap/components/watchListDialog.vue | 2 +- .../secondMap/secondMapHooks.ts | 1 - src/router/index.ts | 26 +--- src/store/modules/detailData.ts | 17 +++ src/utils/utils.ts | 4 +- src/views/index.vue | 86 +++++------ src/views/indexSon.vue | 6 +- 15 files changed, 240 insertions(+), 182 deletions(-) create mode 100644 src/assets/mapUtils/mapConstant.ts create mode 100644 src/store/modules/detailData.ts diff --git a/package.json b/package.json index f88ea57..0c4f684 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@iamzzg/data-view": "^2.10.0", + "@turf/turf": "^6.5.0", "autoprefixer": "^10.4.16", "axios": "^1.6.2", "dayjs": "^1.11.10", diff --git a/src/assets/less/amap-item.less b/src/assets/less/amap-item.less index a847eb7..10ea617 100644 --- a/src/assets/less/amap-item.less +++ b/src/assets/less/amap-item.less @@ -31,6 +31,7 @@ //marker .amap-marker-label { padding: 0; + border: none; } .alarm-content { diff --git a/src/assets/less/index.less b/src/assets/less/index.less index 3af5ff2..8dc2bb6 100644 --- a/src/assets/less/index.less +++ b/src/assets/less/index.less @@ -1,154 +1,158 @@ @import "./amap-item"; .type-time { - padding-right: 4%; - padding-top: 3%; - font-size: 16px; - display: flex; - justify-content: right; + padding-right: 4%; + padding-top: 3%; + font-size: 16px; + display: flex; + justify-content: right; - span { - padding: 0 2%; - cursor: pointer; - } - - .select { - color: #45a2ff; - position: relative; - - &:after { - content: ''; - position: absolute; - display: block; - width: 72%; - left: 6px; - bottom: -12px; - height: 6px; - background: url('../images/light.png') no-repeat; - background-size: 100% 100%; + span { + padding: 0 2%; + cursor: pointer; } - } - .unSelect { - color: #a3a4a4; - } + .select { + color: #45a2ff; + position: relative; + + &:after { + content: ''; + position: absolute; + display: block; + width: 72%; + left: 6px; + bottom: -12px; + height: 6px; + background: url('../images/light.png') no-repeat; + background-size: 100% 100%; + } + } + + .unSelect { + color: #a3a4a4; + } } *::-webkit-scrollbar { - width: 12px; - height: 12px; + width: 12px; + height: 12px; } *::-webkit-scrollbar-button { - width: 0; - height: 0; - display: none; + width: 0; + height: 0; + display: none; } *::-webkit-scrollbar-corner { - background-color: transparent; + background-color: transparent; } *::-webkit-scrollbar-thumb { - border: 4px solid rgba(0, 0, 0, 0); - height: 6px; - border-radius: 25px; - background-clip: padding-box; - background-color: rgba(0, 0, 0, 0.3); + border: 4px solid rgba(0, 0, 0, 0); + height: 6px; + border-radius: 25px; + background-clip: padding-box; + background-color: rgba(0, 0, 0, 0.3); } .nowrap { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .ant-modal-mask { - background-color: rgba(0, 0, 0, 0.65) !important; + background-color: rgba(0, 0, 0, 0.65) !important; } // 下拉框样式-start +.ant-select { + background-color: #000; +} + .ant-select-dropdown { - background-color: #00152b !important; - border-right: 1px solid #1b7ef2; - border-left: 1px solid #1b7ef2; - border-bottom: 1px solid #1b7ef2; + background-color: #00152b !important; + border-right: 1px solid #1b7ef2; + border-left: 1px solid #1b7ef2; + border-bottom: 1px solid #1b7ef2; } .ant-select-item { - color: #1b7ef2 !important; + color: #1b7ef2 !important; } //框背景色 .ant-select:not(.ant-select-customize-input) .ant-select-selector { - color: #1b7ef2 !important; - background-color: transparent !important; - border: 1px solid #1b7ef2 !important; + color: #1b7ef2 !important; + background-color: transparent !important; + border: 1px solid #1b7ef2 !important; } .ant-select-item-option-selected { - color: #ffffff !important; + color: #ffffff !important; } // 选中字体颜色 .ant-select-selection-item { - //color: #1b7ef2 !important; - color: #fff; + //color: #1b7ef2 !important; + color: #fff; } .ant-select-item-option-active { - background-color: transparent !important; + background-color: transparent !important; } .ant-select-item-option-active:hover { - background-color: #002e64 !important; + background-color: #002e64 !important; } // 箭头颜色 .ant-select-arrow { - color: #1b7ef2 !important; + color: #1b7ef2 !important; } .ant-select-item-option-selected:not(.ant-select-item-option-disabled) { - background-color: #002e64 !important; + background-color: #002e64 !important; } // 下拉框样式-end // 级联选择器样式-start .ant-cascader-menu-item { - color: #1b7ef2 !important; + color: #1b7ef2 !important; } .ant-cascader-menu-item:hover { - background-color: #002e64 !important; + background-color: #002e64 !important; } .ant-cascader-menu-item-active { - color: #fff !important; - background-color: #002e64 !important; + color: #fff !important; + background-color: #002e64 !important; } .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon, .ant-cascader-menu-item-loading-icon { - color: #1b7ef2 !important; + color: #1b7ef2 !important; } // 级联选择器样式-end .ant-empty-description { - color: #fff; + color: #fff; } //空表格hover白色 .ant-table-tbody > tr.ant-table-placeholder:hover > td { - background: transparent !important; + background: transparent !important; } //直升机 .helicopter { - width: 60px; - height: 37px; - background: url("../img/helicopter.png") no-repeat; - background-size: 100% 100%; - margin-bottom: 4px; + width: 60px; + height: 37px; + background: url("../img/helicopter.png") no-repeat; + background-size: 100% 100%; + margin-bottom: 4px; } diff --git a/src/assets/mapUtils/commonFun.ts b/src/assets/mapUtils/commonFun.ts index 9cf4d99..b25fbe3 100644 --- a/src/assets/mapUtils/commonFun.ts +++ b/src/assets/mapUtils/commonFun.ts @@ -1,5 +1,6 @@ import { mapIcon1, mapIcon2, mapIcon3, mapIcon4 } from '/@/components/chinaMap/chinaHooks.ts'; import { watchIcon } from '/@/components/secondaryScreen/secondMap/secondMapHooks.ts'; +import * as turf from '@turf/turf'; /** * @desc 创建icon @@ -60,3 +61,36 @@ export function createCircle(option) { ...option, }); } + +export function getLonLat(result = []) { + let arr = []; + for (let i = 0; i < result.length; i++) { + let { lon, lat, lng } = result[i]; + if (lng) { + lon = lng; + } + if (!lon || !lat) { + continue; + } + let point = turf.point([lon, lat]); + arr.push(point); + } + return arr; +} + +/** + * @desc 根据多点算中心点 + */ +export function getCenter(list = []) { + if (!list || !Array.isArray(list)) { + return undefined; + } + if (list.length < 1) { + return undefined; + } + let features = turf.featureCollection(list); + let centerObj = turf.center(features); + return centerObj?.geometry?.coordinates; +} + +// export function \ No newline at end of file diff --git a/src/assets/mapUtils/map.ts b/src/assets/mapUtils/map.ts index dc31a2c..a8e78e7 100644 --- a/src/assets/mapUtils/map.ts +++ b/src/assets/mapUtils/map.ts @@ -1,17 +1,12 @@ import AMapLoader from '@amap/amap-jsapi-loader'; import china from '/@/assets/lngLat/china.ts'; import chinaInner from '/@/assets/lngLat/chinaInner.ts'; -import { createCircle, createIcon, typeToIcon } from '/@/assets/mapUtils/commonFun.ts'; +import { createCircle, createIcon, getCenter, getLonLat, typeToIcon } from '/@/assets/mapUtils/commonFun.ts'; import { aircraftContent, alarmIcon } from '/@/components/chinaMap/chinaHooks.ts'; import { isFunction } from '/@/utils/is.ts'; import { Callback, ExtDataType, InitMap, MarkerOption, ResultType } from '/@/assets/mapUtils/mapFunTypes.ts'; +import { defaultOption, getZoom, mapKey, mapPlugin } from '/@/assets/mapUtils/mapConstant.ts'; -export const defaultOption = { - center: [106.3, 37.87], //地图中心点 - zoom: 4.3, //地图显示的缩放级别 - mapStyle: 'darkblue', //地图样式 -}; -export const mapPlugin = ['AMap.ToolBar', 'AMap.Driving', 'AMap.GeoJSON', 'AMap.MarkerCluster', 'AMap.PlaceSearch']; let AMap = null; export const Map = { map: null, @@ -29,7 +24,7 @@ export const Map = { initMap({ el, option }: InitMap) { return new Promise((resolve) => { AMapLoader.load({ - key: '4bbcb216b889f2d612cbed05ae6979c8', // 申请好的Web端开发者Key,首次调用 load 时必填 + key: mapKey, // 申请好的Web端开发者Key,首次调用 load 时必填 version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 plugins: mapPlugin, // 需要使用的的插件列表,如比例尺'AMap.Scale'等 }).then((res) => { @@ -40,7 +35,7 @@ export const Map = { resizeEnable: true, center: center, zoom: zoom, - mapStyle: 'amap://styles/darkblue', + mapStyle: 'amap://styles/' + mapStyle, version: '2.0', }); // 异步同时加载多个插件 @@ -105,6 +100,7 @@ export const Map = { if (this.airMarkerList) { this.airMarkerList = []; } + this.clearActiveHospital(); // this.map.remove(this.airMarkerList); }, // /** @@ -116,6 +112,10 @@ export const Map = { createOverlay(result: ResultType[], extData?: ExtDataType, callback?: Callback) { this.removeOverlayGroup(); this.overlayGroup = new AMap.OverlayGroup(); + let list = getLonLat(result); + let center = getCenter(list); + let zoom = getZoom(list); + this.setZoomCenter(center, zoom); for (let i = 0; i < result.length; i++) { let { type, lon, lat, lng } = result[i]; if (lng) { @@ -231,23 +231,24 @@ export const Map = { this.removeOverlayGroup(); this.clearActiveHospital(); if (!cityCode) return; - this.placeSearch = new AMap.PlaceSearch({ - pageSize: 30, // 单页显示结果条数 - pageIndex: 1, // 页码 - city: cityCode, // 兴趣点城市 - citylimit: true, //是否强制限制在设置的城市内搜索 - map: this.map, // 展现结果的地图实例 - // panel: 'map_hospital', // 结果列表将在此容器中进行展示。 - autoFitView: false, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围 - }); + if (!this.placeSearch) { + this.placeSearch = new AMap.PlaceSearch({ + pageSize: 30, // 单页显示结果条数 + pageIndex: 1, // 页码 + city: cityCode, // 兴趣点城市 + citylimit: true, //是否强制限制在设置的城市内搜索 + map: this.map, // 展现结果的地图实例 + // panel: 'map_hospital', // 结果列表将在此容器中进行展示。 + autoFitView: false, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围 + }); + } + this.placeSearch.setCity(cityCode); //关键字查询 this.placeSearch.search(keywords); }, clearActiveHospital() { if (this.placeSearch) { - // debugger; this.placeSearch.clear(); - this.placeSearch = null; } }, createMarker(option: MarkerOption, callbck?: Callback) { diff --git a/src/assets/mapUtils/mapConstant.ts b/src/assets/mapUtils/mapConstant.ts new file mode 100644 index 0000000..5c1e874 --- /dev/null +++ b/src/assets/mapUtils/mapConstant.ts @@ -0,0 +1,22 @@ +// 地图默认配置 +export const defaultOption = { + center: [108.660704, 36.386058], //地图中心点 + zoom: 6.5, //地图显示的缩放级别 + mapStyle: 'darkblue', //地图样式 +}; +// 地图key +export const mapKey = '4bbcb216b889f2d612cbed05ae6979c8' +export const mapPlugin = ['AMap.ToolBar', 'AMap.Driving', 'AMap.GeoJSON', 'AMap.MarkerCluster', 'AMap.PlaceSearch']; + +//根据数据量设置地图层级 +export function getZoom(list = []) { + let len = list.length + // console.log('len', len) + if (len <= 5) { + return 7.5; + } else if (len <= 30) { + return 6.7; + } else { + return 7; + } +} diff --git a/src/components/body-d-left/oneL.vue b/src/components/body-d-left/oneL.vue index d83b558..966bf9b 100644 --- a/src/components/body-d-left/oneL.vue +++ b/src/components/body-d-left/oneL.vue @@ -23,10 +23,10 @@ + \ No newline at end of file diff --git a/src/views/indexSon.vue b/src/views/indexSon.vue index f936530..133c34a 100644 --- a/src/views/indexSon.vue +++ b/src/views/indexSon.vue @@ -192,6 +192,10 @@ .type-select { width: 140px; margin-right: 10px; + + :deep(.ant-select-selection-item) { + color: #fff !important; + } } } From dd89375d40d08b27b3e249a267ce4be0422cc363 Mon Sep 17 00:00:00 2001 From: zk Date: Tue, 26 Dec 2023 17:39:59 +0800 Subject: [PATCH 6/7] update --- src/assets/mapUtils/map.ts | 1 - src/components/body-d-right/bodyRightHooks.ts | 1 + src/components/item-d/item-d.vue | 10 ++++ src/components/item-d/pieCharts.ts | 8 +-- src/components/secondaryScreen/commonApi.ts | 2 +- .../screen-right/screenRightHooks.ts | 1 + .../secondMap/components/footerDialog.vue | 9 +--- .../components/userInfoModal/publicTitle.vue | 54 +++++++++++++------ .../secondaryScreen/secondMap/secondMap.vue | 34 ++++++------ .../secondMap/secondMapHooks.ts | 14 ++--- 10 files changed, 78 insertions(+), 56 deletions(-) diff --git a/src/assets/mapUtils/map.ts b/src/assets/mapUtils/map.ts index a8e78e7..da5ab03 100644 --- a/src/assets/mapUtils/map.ts +++ b/src/assets/mapUtils/map.ts @@ -126,7 +126,6 @@ export const Map = { } // 创建一个 Icon let startIcon = typeToIcon(type); - // debugger; // 将 icon 传入 marker let startMarker = new AMap.Marker({ // 点的坐标 diff --git a/src/components/body-d-right/bodyRightHooks.ts b/src/components/body-d-right/bodyRightHooks.ts index aa88cb0..4d7e941 100644 --- a/src/components/body-d-right/bodyRightHooks.ts +++ b/src/components/body-d-right/bodyRightHooks.ts @@ -132,6 +132,7 @@ export function ringOption(chartData, total) { color: '#ffffff', fontSize: 16, }, + selectedMode: false, }, series: [ { diff --git a/src/components/item-d/item-d.vue b/src/components/item-d/item-d.vue index 34d552e..2f09177 100644 --- a/src/components/item-d/item-d.vue +++ b/src/components/item-d/item-d.vue @@ -74,6 +74,16 @@ height: calc(100% - 40px); } + .inner::after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; + background-color: #051a2b; + } + .left-pie { position: relative; padding-bottom: 0 !important; diff --git a/src/components/item-d/pieCharts.ts b/src/components/item-d/pieCharts.ts index d47bd55..a104caf 100644 --- a/src/components/item-d/pieCharts.ts +++ b/src/components/item-d/pieCharts.ts @@ -2,6 +2,7 @@ import {visibleChartLabel} from "/@/utils/utils.ts"; export function screenPie(chartData, total, color) { + const data = visibleChartLabel(chartData) return { color: color, tooltip: { @@ -43,7 +44,7 @@ export function screenPie(chartData, total, color) { length2: 10, minTurnAngle: 120, }, - data: chartData, + data: data, }, ], }; @@ -51,8 +52,7 @@ export function screenPie(chartData, total, color) { //左侧圆 export function circleRing(chartData, total, color) { - // const data = visibleChartLabel(chartData) - // const data = chartData + const data = visibleChartLabel(chartData) return { color: color, tooltip: { @@ -92,7 +92,7 @@ export function circleRing(chartData, total, color) { labelLine: { show: false, }, - data: chartData, + data: data, }, ], }; diff --git a/src/components/secondaryScreen/commonApi.ts b/src/components/secondaryScreen/commonApi.ts index f2a0d00..87818c9 100644 --- a/src/components/secondaryScreen/commonApi.ts +++ b/src/components/secondaryScreen/commonApi.ts @@ -1,7 +1,7 @@ import { get, post } from '/@/api/request.ts'; export enum Api { - depart = 'sys/sysDepart/allSecondaryDeparts', + depart = '/health-watch/watch/watchDevice/getUnitList', getWatchDataByOrgCode = '/health-watch/watch/watchData/getWatchDataByOrgCode', getMonitorList = '/health-watch/watch/watchMonitorData/getMonitorList', sleepApi = '/health-watch/watch/watchData/getSleep', diff --git a/src/components/secondaryScreen/screen-right/screenRightHooks.ts b/src/components/secondaryScreen/screen-right/screenRightHooks.ts index 45905bb..0b356b9 100644 --- a/src/components/secondaryScreen/screen-right/screenRightHooks.ts +++ b/src/components/secondaryScreen/screen-right/screenRightHooks.ts @@ -71,6 +71,7 @@ export function sleepCharts({ time, short, long, awake, type }) { itemHeight: 14, top: -5, right: '15%', + selectedMode: false, }, color: ['#14B3F8', '#6D7BEB', '#5451DC'], xAxis: { diff --git a/src/components/secondaryScreen/secondMap/components/footerDialog.vue b/src/components/secondaryScreen/secondMap/components/footerDialog.vue index 7763583..fe1ff16 100644 --- a/src/components/secondaryScreen/secondMap/components/footerDialog.vue +++ b/src/components/secondaryScreen/secondMap/components/footerDialog.vue @@ -1,6 +1,6 @@