diff --git a/src/api/cms/cmsWebsiteField/index.ts b/src/api/cms/cmsWebsiteField/index.ts index e0318f7..7094a4c 100644 --- a/src/api/cms/cmsWebsiteField/index.ts +++ b/src/api/cms/cmsWebsiteField/index.ts @@ -2,17 +2,13 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model'; -const config = useRuntimeConfig(); - /** * 分页查询应用参数 */ export async function pageCmsWebsiteField(params: CmsWebsiteFieldParam) { const res = await request.get>>( '/cms/cms-website-field/page', - { - params - } + params ); if (res.code === 0) { return res.data; @@ -26,9 +22,7 @@ export async function pageCmsWebsiteField(params: CmsWebsiteFieldParam) { export async function listCmsWebsiteField(params?: CmsWebsiteFieldParam) { const res = await request.get>( '/cms/cms-website-field', - { - params - } + params ); if (res.code === 0 && res.data) { return res.data; diff --git a/src/api/cms/cmsWebsiteField/model/index.ts b/src/api/cms/cmsWebsiteField/model/index.ts index d60441f..36560d1 100644 --- a/src/api/cms/cmsWebsiteField/model/index.ts +++ b/src/api/cms/cmsWebsiteField/model/index.ts @@ -1,4 +1,4 @@ -import type { PageParam } from '@/api'; +import type { PageParam } from '@/api/index'; /** * 应用参数 @@ -35,6 +35,7 @@ export interface CmsWebsiteField { */ export interface CmsWebsiteFieldParam extends PageParam { id?: number; + name?: string; keywords?: string; } diff --git a/src/api/hjm/hjmBxLog/model/index.ts b/src/api/hjm/hjmBxLog/model/index.ts index 57ab817..5f1521e 100644 --- a/src/api/hjm/hjmBxLog/model/index.ts +++ b/src/api/hjm/hjmBxLog/model/index.ts @@ -15,7 +15,7 @@ export interface HjmBxLog { // 车辆编号 carNo?: string; // 保险图片 - image?: string; + image?: any; // 排序(数字越小越靠前) sortNumber?: number; // 备注 diff --git a/src/api/hjm/hjmCar/model/index.ts b/src/api/hjm/hjmCar/model/index.ts index 4808066..2eaff71 100644 --- a/src/api/hjm/hjmCar/model/index.ts +++ b/src/api/hjm/hjmCar/model/index.ts @@ -73,5 +73,6 @@ export interface HjmCarParam extends PageParam { status?: number; latitude?: number; longitude?: number; + deleted?: number; keywords?: string; } diff --git a/src/api/hjm/hjmGpsLog/index.ts b/src/api/hjm/hjmGpsLog/index.ts new file mode 100644 index 0000000..c33235c --- /dev/null +++ b/src/api/hjm/hjmGpsLog/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api/index'; +import type { HjmGpsLog, HjmGpsLogParam } from './model'; + +/** + * 分页查询黄家明_gps轨迹 + */ +export async function pageHjmGpsLog(params: HjmGpsLogParam) { + const res = await request.get>>( + '/hjm/hjm-gps-log/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 查询黄家明_gps轨迹列表 + */ +export async function listHjmGpsLog(params?: HjmGpsLogParam) { + const res = await request.get>( + '/hjm/hjm-gps-log', + params + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 添加黄家明_gps轨迹 + */ +export async function addHjmGpsLog(data: HjmGpsLog) { + const res = await request.post>( + '/hjm/hjm-gps-log', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 修改黄家明_gps轨迹 + */ +export async function updateHjmGpsLog(data: HjmGpsLog) { + const res = await request.put>( + '/hjm/hjm-gps-log', + data + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 删除黄家明_gps轨迹 + */ +export async function removeHjmGpsLog(id?: number) { + const res = await request.del>( + '/hjm/hjm-gps-log/' + id + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 批量删除黄家明_gps轨迹 + */ +export async function removeBatchHjmGpsLog(data: (number | undefined)[]) { + const res = await request.del>( + '/hjm/hjm-gps-log/batch', + { + data + } + ); + if (res.code === 0) { + return res.message; + } + return Promise.reject(new Error(res.message)); +} + +/** + * 根据id查询黄家明_gps轨迹 + */ +export async function getHjmGpsLog(id: number) { + const res = await request.get>( + '/hjm/hjm-gps-log/' + id + ); + if (res.code === 0 && res.data) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} diff --git a/src/api/hjm/hjmGpsLog/model/index.ts b/src/api/hjm/hjmGpsLog/model/index.ts new file mode 100644 index 0000000..6601260 --- /dev/null +++ b/src/api/hjm/hjmGpsLog/model/index.ts @@ -0,0 +1,40 @@ +import type { PageParam } from '@/api/index'; + +/** + * 黄家明_gps轨迹 + */ +export interface HjmGpsLog { + // 自增ID + id?: number; + // 车辆ID + carId?: number; + // gps编号 + gpsNo?: string; + // 经度 + longitude?: string; + // 纬度 + latitude?: string; + // 时间 + ddmmyy?: string; + // 时分秒 + hhmmss?: string; + // 备注 + comments?: string; + // 状态, 0正常, 1冻结 + status?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; +} + +/** + * 黄家明_gps轨迹搜索条件 + */ +export interface HjmGpsLogParam extends PageParam { + id?: number; + gpsNo?: string; + ddmmyy?: string; + hhmmss?: string; + keywords?: string; +} diff --git a/src/app.config.ts b/src/app.config.ts index cfcb325..458a1cc 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -48,6 +48,7 @@ export default defineAppConfig({ "exam/exam", "bx/bx", "bx/bx-add", + "trajectory/trajectory" // "bx/bx-list", // "question/detail" ] diff --git a/src/hjm/BestSellers.tsx b/src/hjm/BestSellers.tsx index 03fb29a..fceddf9 100644 --- a/src/hjm/BestSellers.tsx +++ b/src/hjm/BestSellers.tsx @@ -17,7 +17,7 @@ const BestSellers = (props: any) => { {props.data?.map((item, index) => { return (
Taro.navigateTo({url: '/hjm/query?id=' + item.id})}> + onClick={() => Taro.navigateTo({url: '/hjm/query?id=' + item.code})}>
diff --git a/src/hjm/bx/bx-add.tsx b/src/hjm/bx/bx-add.tsx index ca863e9..d0d6bfc 100644 --- a/src/hjm/bx/bx-add.tsx +++ b/src/hjm/bx/bx-add.tsx @@ -1,32 +1,38 @@ -import {useEffect, useState, useCallback} from "react"; +import {useEffect, useState} from "react"; import Taro from '@tarojs/taro' import { - Image, Button, TextArea, Cell, Loading, Space } from '@nutui/nutui-react-taro' -import {Camera, Truck} from '@nutui/icons-react-taro' +import {Truck} from '@nutui/icons-react-taro' import {addHjmBxLog} from "@/api/hjm/hjmBxLog"; import {pageHjmCar} from "@/api/hjm/hjmCar"; -import {uploadFile} from "@/api/system/file"; import {HjmBxLog} from "@/api/hjm/hjmBxLog/model"; import {HjmCar} from "@/api/hjm/hjmCar/model"; +import {listCmsWebsiteField} from "@/api/cms/cmsWebsiteField"; +import {CmsWebsiteField} from "@/api/cms/cmsWebsiteField/model"; + +// 图片数据接口 +interface UploadedImageData { + url: string; +} /** * 一键报险 - 添加报险记录页面 */ function BxAdd() { const [loading, setLoading] = useState(false) - const [uploading, setUploading] = useState(false) + const [bxFiled, setBxFiled] = useState() + const [bxFiled2, setBxFiled2] = useState() const [carInfo, setCarInfo] = useState(null) - const [lastClickTime, setLastClickTime] = useState(0) + const [fileList, setFileList] = useState([]) // 图片文件列表 const [formData, setFormData] = useState({ carId: undefined, accidentType: undefined, - image: '', + image: undefined, comments: '', status: 0 // 0: 待审核, 1: 已通过, 2: 已驳回 }) @@ -46,6 +52,16 @@ function BxAdd() { // 初始化页面数据 const initPageData = async () => { try { + listCmsWebsiteField({}).then(data => { + const bxPhone = data.find(item => item.name === 'bxPhone'); + const bxPhone2 = data.find(item => item.name === 'bxPhone2'); + if (bxPhone) { + setBxFiled(bxPhone); + } + if (bxPhone2) { + setBxFiled2(bxPhone2); + } + }) pageHjmCar({driverId: Taro.getStorageSync('UserId')}).then(res => { const car = res?.list[0]; setLoading(true) @@ -76,77 +92,130 @@ function BxAdd() { } } - // 拍照上传 - 使用 useCallback 防止重复触发 - const takePhoto = useCallback((event?: any) => { - // 阻止事件冒泡 - if (event) { - event.stopPropagation() - event.preventDefault() - } - - // 防抖:防止快速连续点击 - const now = Date.now() - if (now - lastClickTime < 1000) { // 1秒内不允许重复点击 - console.log('点击过于频繁,请稍候...') - return - } - setLastClickTime(now) - - // 防止重复点击 - if (uploading) { - console.log('正在上传中,请稍候...') + // 选择并上传图片 + const handleChooseImage = () => { + if (fileList.length >= 5) { Taro.showToast({ - title: '正在上传中...', - icon: 'loading' + title: '最多只能上传5张图片', + icon: 'none' }) return } - console.log('开始拍照上传...') - Taro.chooseImage({ - count: 1, + count: 5 - fileList.length, // 剩余可选择的数量 sizeType: ['compressed'], - sourceType: ['camera'], - success: async (res) => { - try { - setUploading(true) - console.log('选择图片成功:', res.tempFilePaths[0]) + sourceType: ['album', 'camera'], + success: (res) => { + console.log('选择图片成功:', res) - // 这里应该调用实际的上传接口 - const uploadResult = await uploadFile() - - setFormData(prev => ({ - ...prev, - image: uploadResult.url || res.tempFilePaths[0] - })) - - Taro.showToast({ - title: '照片上传成功', - icon: 'success' - }) - } catch (error) { - console.error('上传失败:', error) - Taro.showToast({ - title: '上传失败,请重试', - icon: 'error' - }) - } finally { - setUploading(false) - } + // 逐个上传选中的图片 + res.tempFilePaths.forEach((filePath, index) => { + uploadSingleImage(filePath, index) + }) }, - fail: (error) => { - console.error('选择图片失败:', error) + fail: (err) => { + console.log('选择图片失败:', err) Taro.showToast({ title: '选择图片失败', icon: 'error' }) - setUploading(false) } }) - }, [uploading, lastClickTime]) + } - // 提交表单 + // 上传单张图片 + const uploadSingleImage = (filePath: string, index: number) => { + const TenantId = Taro.getStorageSync('TenantId') + + Taro.uploadFile({ + url: 'https://server.gxwebsoft.com/api/oss/upload', + filePath: filePath, + name: 'file', + header: { + 'content-type': 'application/json', + TenantId + }, + success: (res) => { + try { + const data = JSON.parse(res.data); + console.log('上传成功', data) + if (data.code === 0) { + // 更新文件列表 + const newFile = { + name: `图片${Date.now()}_${index}`, + url: data.data.url, + status: 'success', + message: '上传成功', + type: 'image', + uid: `${Date.now()}_${index}`, + } + + setFileList(prev => { + const newList = [...prev, newFile] + // 同时更新表单数据 - 使用JSON格式存储 + const imageData: UploadedImageData[] = newList.map(f => ({ + url: f.url + })) + setFormData(prevForm => ({ + ...prevForm, + image: JSON.stringify(imageData) + })) + return newList + }) + + Taro.showToast({ + title: '上传成功', + icon: 'success' + }) + } else { + Taro.showToast({ + title: data.message || '上传失败', + icon: 'error' + }) + } + } catch (error) { + console.error('解析响应失败:', error) + Taro.showToast({ + title: '上传失败', + icon: 'error' + }) + } + }, + fail: (err) => { + console.log('上传请求失败', err); + Taro.showToast({ + title: '上传失败', + icon: 'error' + }) + } + }) + } + + // 处理文件删除 + const handleFileRemove = (file: any) => { + console.log('删除文件:', file) + const newFileList = fileList.filter(f => f.uid !== file.uid) + setFileList(newFileList) + + // 更新表单数据 - 使用JSON格式存储 + if (newFileList.length === 0) { + setFormData(prev => ({ + ...prev, + image: undefined + })) + } else { + const imageData: UploadedImageData[] = newFileList.map(f => ({ + url: f.url + })) + setFormData(prev => ({ + ...prev, + image: JSON.stringify(imageData) + })) + } + } + +// 提交表单 const handleSubmit = async () => { // 表单验证 if (!formData.carId) { @@ -165,9 +234,9 @@ function BxAdd() { return } - if (!formData.image) { + if (!formData.image || fileList.length === 0) { Taro.showToast({ - title: '请上传事故现场照片', + title: '请上传现场照片', icon: 'none' }) return @@ -183,6 +252,25 @@ function BxAdd() { comments: `${accidentDescription || '无'}` } + console.log('提交的图片数据:', formData.image) + console.log('完整提交数据:', submitData) + + // 解析JSON格式的图片数据示例 + if (formData.image) { + try { + const parsedImages: UploadedImageData[] = JSON.parse(formData.image) + console.log('解析后的图片数据:', parsedImages) + console.log('图片数量:', parsedImages.length) + parsedImages.forEach((img, index) => { + console.log(`图片${index + 1}:`, { + url: img.url + }) + }) + } catch (error) { + console.error('解析图片数据失败:', error) + } + } + await addHjmBxLog(submitData) Taro.showToast({ @@ -206,7 +294,9 @@ function BxAdd() { } useEffect(() => { - initPageData() + initPageData().then(r => { + console.log(r,'rr') + }) }, []) if (loading && !carInfo) { @@ -228,6 +318,16 @@ function BxAdd() { minHeight: '100vh', paddingBottom: '80px' }}> +
+ {bxFiled && (
{bxFiled.comments}:{bxFiled.value}
)} + {bxFiled2 && (
{bxFiled2.comments}:{bxFiled2.value}
)} +
{/* 车辆信息卡片 */} {carInfo && (
)} + + + {/* 现场照片 */} +
+
+ 现场照片 + *必填(最多5张) + {fileList.length > 0 && ( + + 已上传{fileList.length}张 + + )} +
+
+ {/* 显示已上传的图片 */} + {fileList.map((file) => ( +
+ {file.name} + +
+ ))} + + {/* 添加图片按钮 */} + {fileList.length < 5 && ( + + )} +
+
+ {/* 事故信息表单 */}
事故信息
- - {/* 事故类型 */} - - {/* 事故时间 */} - {/* {*/} - {/* const now = new Date()*/} - {/* setAccidentTime(now.toISOString().slice(0, 16))*/} - {/* }}*/} - {/*/>*/}
@@ -323,79 +500,6 @@ function BxAdd() { />
- {/* 现场照片 */} -
-
- 现场照片 - *必填 -
- -
- {formData.image && ( -
- - -
- )} - - {!formData.image && ( - - )} -
-
- {/* 提交按钮 */}
{ const reload = () => { // 获取车辆列表 - pageHjmCar({status: 1, keywords}).then(res => { + pageHjmCar({status: 1,deleted: 0, keywords}).then(res => { setList(res?.list || []) }) } diff --git a/src/hjm/location.tsx b/src/hjm/location.tsx index 4c81cb5..768cd4f 100644 --- a/src/hjm/location.tsx +++ b/src/hjm/location.tsx @@ -140,9 +140,9 @@ const Location = () => {
操作员:{item?.driver}
-
- 位置信息:{item?.address} -
+ {/*
*/} + {/* 位置信息:{item?.address}*/} + {/*
*/}
) : ''} diff --git a/src/hjm/query.tsx b/src/hjm/query.tsx index 63dfcfe..950914d 100644 --- a/src/hjm/query.tsx +++ b/src/hjm/query.tsx @@ -1,6 +1,6 @@ import {useEffect, useState} from "react"; import Taro, {useRouter} from '@tarojs/taro' -import {getHjmCar, pageHjmCar, updateHjmCar} from "@/api/hjm/hjmCar"; +import {getHjmCarByCode, pageHjmCar, updateHjmCar} from "@/api/hjm/hjmCar"; import {HjmCar} from "@/api/hjm/hjmCar/model"; import './location.scss' import {copyText} from "@/utils/common"; @@ -168,7 +168,7 @@ const Query = () => { // } // } const reload = () => { - const id = Number(params.id); + const code = params.id; // 获取数据字典 pageDictData({dictCode: 'InsuranceStatus'}).then(res => { setDict(res?.list || []) @@ -192,8 +192,8 @@ const Query = () => { } }) // 获取车辆信息 - if (id) { - getHjmCar(id).then(data => { + if (code) { + getHjmCarByCode(code).then(data => { if(data){ setFormData(data) setKeywords(data.code) @@ -273,7 +273,7 @@ const Query = () => { @@ -370,20 +370,28 @@ const Query = () => { GPS编号:{FormData?.gpsNo} - 电子围栏:{FormData?.fenceName} + 电子围栏:{FormData.fenceName} - - {/**/} - {/* 状态:{FormData?.status == 1 ? '已安装' : '未安装'}*/} - {/**/} +
+ + +
) : ''} diff --git a/src/hjm/trajectory/trajectory.config.ts b/src/hjm/trajectory/trajectory.config.ts new file mode 100644 index 0000000..8200052 --- /dev/null +++ b/src/hjm/trajectory/trajectory.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '查看轨迹' +}) diff --git a/src/hjm/trajectory/trajectory.scss b/src/hjm/trajectory/trajectory.scss new file mode 100644 index 0000000..76b6786 --- /dev/null +++ b/src/hjm/trajectory/trajectory.scss @@ -0,0 +1,4 @@ +page { + //background: url("https://oss.wsdns.cn/20250414/58cac36d806a40e298def726bcd9e44b.jpeg"); + //background-size: cover; +} diff --git a/src/hjm/trajectory/trajectory.tsx b/src/hjm/trajectory/trajectory.tsx new file mode 100644 index 0000000..98af673 --- /dev/null +++ b/src/hjm/trajectory/trajectory.tsx @@ -0,0 +1,266 @@ +import {useEffect, useState} from "react"; +import {Map} from '@tarojs/components' +import Taro, {useRouter} from '@tarojs/taro' +import {DatePicker, Button, type PickerOption} from '@nutui/nutui-react-taro' +import {getHjmCar, getHjmCarByCode} from "@/api/hjm/hjmCar"; +import {HjmCar} from "@/api/hjm/hjmCar/model"; +import './trajectory.scss' +import {pageHjmGpsLog} from "@/api/hjm/hjmGpsLog"; +import {formatCurrentDate, getCurrentHour} from "@/utils/time"; + +/** + * 文章终极列表 + * @constructor + */ +const Location = () => { + const {params} = useRouter(); + const [keywords, setKeywords] = useState() + const [item, setItem] = useState() + const [longitude, setLongitude] = useState() + const [latitude, setLatitude] = useState() + const [scale, setScale] = useState(16) + const [showCircles, setShowCircles] = useState(false) + const [points, setPoints] = useState([]) + const [hjmGpsLog, setHjmGpsLog] = useState([]) + const [dateTime, setDateTime] = useState('') + const [ddmmyy, setDdmmyy] = useState(formatCurrentDate()) + const [hhmmss, setHhmmss] = useState(getCurrentHour()) + const [show1, setShow1] = useState(false) + const [value, setValue] = useState(new Date()) + const defaultValue = new Date() + const defaultDescription = `${defaultValue.getFullYear()}年${defaultValue.getMonth() + 1}月${defaultValue.getDate()}日` + const [desc1, setDesc1] = useState(defaultDescription) + // 选择时分秒 + const startDate = new Date(2025, 0, 1) + const endDate = new Date(2030, 10, 1) + const [show, setShow] = useState(false) + const [desc, setDesc] = useState() + + // 通用的坐标字符串转数组函数 + const parseCoordinateString = (coordStr: string) => { + if (!coordStr) return {points: []}; + + try { + // 分割坐标点 + const coordPairs = coordStr.split(';'); + + // 转为多边形点数组 + const points = coordPairs.map(coord => { + const [lat, lng] = coord.split(','); + return { + latitude: parseFloat(lat), + longitude: parseFloat(lng) + } + }); + + return {points}; + } catch (error) { + console.error('解析坐标字符串失败:', error); + return {points: []}; + } + } + + // const onKeywords = (keywords: string) => { + // setKeywords(keywords) + // } + + // @ts-ignore + const confirm = (values: any, options: PickerOption[]) => { + // 截取字符串后2位 + console.log(`${String(values[2]).padStart(2, '0')}${String(values[1]).padStart(2, '0')}${String(values[0]).slice(-2)}`, 'options') + setDdmmyy(`${String(values[2]).padStart(2, '0')}${String(values[1]).padStart(2, '0')}${String(values[0]).slice(-2)}`); + setDesc1(options.map((option) => option.text).join(' ')) + // const v = values.join('-') + // setValue(v) + getLocationRecord(item) + } + + const onAfter = () => { + setHhmmss(`${String(Number(hhmmss) + 1).padStart(2, '0')}`) + getLocationRecord(item) + } + const onBefore = () => { + setHhmmss(`${String(Number(hhmmss) - 1).padStart(2, '0')}`) + getLocationRecord(item) + } + // const change = (options: PickerOption[], values: (string | number)[]) => { + // // console.log(values,'values') + // // 截取字符串后2位 + // // console.log(`${String(values[2]).padStart(2, '0')}${String(values[1]).padStart(2, '0')}${String(values[0]).slice(-2)}`,'options') + // setDdmmyy(`${String(values[2]).padStart(2, '0')}${String(values[1]).padStart(2, '0')}${String(values[0]).slice(-2)}`); + // // const v = values.join('-') + // // if (v) { + // // setValue(v) + // // } + // // setDesc1(options.map((option) => option.text).join('')) + // } + + const getLocationRecord = (data?: HjmCar) => { + const where = { + gpsNo: data?.gpsNo, + ddmmyy: ddmmyy, + hhmmss: hhmmss, + limit: 200 + } + Taro.showLoading({title: '加载中...'}); + pageHjmGpsLog(where).then(res => { + console.log(res?.list, 'list') + setPoints(res?.list.map(item => { + console.log(item, 'item.') + return { + latitude: item.latitude, + longitude: item.longitude + } + }) || []) + setHjmGpsLog(res?.list || []); + }).finally(() => { + Taro.hideLoading(); + }) + } + + const reload = () => { + const id = Number(params.id); + setScale(16) + // 执行搜索 + if (keywords) { + getHjmCarByCode(keywords).then(data => { + console.log('执行搜索', data) + setItem(data) + setLatitude(data.latitude) + setLongitude(data.longitude) + setKeywords(data.code) + // 获取车辆轨迹信息 + getLocationRecord(data); + if (data.fence) { + // 方法2:使用实际的 fence 数据(如果是字符串格式) + const coordStr = data.fence.points || ''; + + // 使用通用函数解析坐标字符串 + const {points} = parseCoordinateString(coordStr); + console.log('解析结果 - 多边形点:', points); + setShowCircles(true) + } + }) + return false; + } + // 获取车辆信息 + if (id) { + getHjmCar(id).then(data => { + setItem(data) + setLatitude(data.latitude) + setLongitude(data.longitude) + setKeywords(data.code) + // 获取车辆轨迹信息 + getLocationRecord(data); + if (data.fence) { + // 方法2:使用实际的 fence 数据(如果是字符串格式) + const coordStr = data.fence.points || ''; + + // 使用通用函数解析坐标字符串 + const {points} = parseCoordinateString(coordStr); + console.log('解析结果 - 多边形点:', points); + setShowCircles(true) + } + }) + } + } + + useEffect(() => { + reload() + }, []) + + // 监听圈圈数据变化 + useEffect(() => { + }, [showCircles]) + + return ( + <> +
+
+
+ setShow1(false)} + threeDimensional={false} + onConfirm={(options, values) => confirm(values, options)} + /> +
+ +
+ setShow1(true)}>{desc1} + setShow(true)}>{(Number(hhmmss) + 8) + ':00'} +
+ +
+ setShow(false)} + onConfirm={(options, values) => confirm(options, values)} + /> +
+
+
+ {/**/} + { + console.log('map tap') + }} + style={{width: '100%', height: '100vh'}} + /> + + + ) +} +export default Location diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 9e77c25..7e9f087 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -144,7 +144,7 @@ function Home() { const reload = () => { setMarkers([]) - pageHjmCar({keywords}).then(res => { + pageHjmCar({keywords,deleted: 0}).then(res => { setList(res?.list || []) if (res?.list && res?.list.length > 0) { setScale(16) diff --git a/src/utils/time.ts b/src/utils/time.ts new file mode 100644 index 0000000..50687a8 --- /dev/null +++ b/src/utils/time.ts @@ -0,0 +1,39 @@ +/** + * 获取当前时间 + */ +export function formatCurrentDate() { + // 创建一个Date对象,表示当前日期和时间 + const now = new Date(); + + // 获取年、月、日,并进行必要的格式化 + const day = String(now.getDate()).padStart(2, '0'); // 获取日,并确保是两位数 + const month = String(now.getMonth() + 1).padStart(2, '0'); // 获取月,并确保是两位数,月份是从0开始的,所以要加1 + const year = String(now.getFullYear()).slice(-2); // 获取年份的最后两位数字 + + return `${day}${month}${year}`; +} + +/** + * 获取当前时分秒 + */ +export function formatHhmmss(){ + // 创建一个Date对象,表示当前日期和时间 + const now = new Date(); + // 获取当前的小时 + const hour = String(now.getHours()).padStart(2, '0'); + // 获取当前的分钟 + const minute = String(now.getMinutes()).padStart(2, '0'); + // 获取当前的秒数 + const second = String(now.getSeconds()).padStart(2, '0'); + return `${String(Number(hour) - 8).padStart(2, '0')}${minute}${second}`; +} + +/** + * 获取当前小时 + */ +export function getCurrentHour() { + const now = new Date(); + // 获取当前的小时 + const hour = String(now.getHours()).padStart(2, '0'); + return `${String(Number(hour) - 8).padStart(2, '0')}`; +}