diff --git a/package-lock.json b/package-lock.json index d24730e..525535a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,9 @@ "axios": "^0.27.2", "base-64": "^1.0.0", "core-js": "^3.8.3", + "crypto-js": "^4.2.0", "echarts": "^5.3.3", + "image-compressor.js": "^1.1.4", "mitt": "^3.0.0", "ol": "^6.15.1", "vant": "^3.4.3", @@ -5012,6 +5014,12 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, + "node_modules/blueimp-canvas-to-blob": { + "version": "3.29.0", + "resolved": "https://registry.npmmirror.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.29.0.tgz", + "integrity": "sha512-0pcSSGxC0QxT+yVkivxIqW0Y4VlO2XSDPofBAqoJ1qJxgH9eiUDLv50Rixij2cDuEfx4M6DpD9UGZpRhT5Q8qg==", + "license": "MIT" + }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -6370,6 +6378,12 @@ "node": "*" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, "node_modules/css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -10152,6 +10166,17 @@ "node": ">= 4" } }, + "node_modules/image-compressor.js": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/image-compressor.js/-/image-compressor.js-1.1.4.tgz", + "integrity": "sha512-DF1YFSw+m6FqpXsleD4+q9eu/wFFkm8sHuYhgYy5GWFVencXeuB1/UqC12xz+dCZooPetf5LIb8JOGkgEWmlcg==", + "deprecated": "No longer maintainted, please use `comprossorjs`", + "license": "MIT", + "dependencies": { + "blueimp-canvas-to-blob": "^3.14.0", + "is-blob": "^1.0.0" + } + }, "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -10496,6 +10521,15 @@ "node": ">=8" } }, + "node_modules/is-blob": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-blob/-/is-blob-1.0.0.tgz", + "integrity": "sha512-QIZDHQZpRfMEZwSTD7egdNZS7H/awVW9FZ3yJv+gg1z8d8GPXEs76QWL67fZs2BoBqp2dGtamTJpEYFJHmD73g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -26358,6 +26392,11 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, + "blueimp-canvas-to-blob": { + "version": "3.29.0", + "resolved": "https://registry.npmmirror.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.29.0.tgz", + "integrity": "sha512-0pcSSGxC0QxT+yVkivxIqW0Y4VlO2XSDPofBAqoJ1qJxgH9eiUDLv50Rixij2cDuEfx4M6DpD9UGZpRhT5Q8qg==" + }, "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -27455,6 +27494,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -30390,6 +30434,15 @@ "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", "dev": true }, + "image-compressor.js": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/image-compressor.js/-/image-compressor.js-1.1.4.tgz", + "integrity": "sha512-DF1YFSw+m6FqpXsleD4+q9eu/wFFkm8sHuYhgYy5GWFVencXeuB1/UqC12xz+dCZooPetf5LIb8JOGkgEWmlcg==", + "requires": { + "blueimp-canvas-to-blob": "^3.14.0", + "is-blob": "^1.0.0" + } + }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -30646,6 +30699,11 @@ "binary-extensions": "^2.0.0" } }, + "is-blob": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-blob/-/is-blob-1.0.0.tgz", + "integrity": "sha512-QIZDHQZpRfMEZwSTD7egdNZS7H/awVW9FZ3yJv+gg1z8d8GPXEs76QWL67fZs2BoBqp2dGtamTJpEYFJHmD73g==" + }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", diff --git a/package.json b/package.json index 5a759d8..abf22c7 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "axios": "^0.27.2", "base-64": "^1.0.0", "core-js": "^3.8.3", + "crypto-js": "^4.2.0", "echarts": "^5.3.3", + "image-compressor.js": "^1.1.4", "mitt": "^3.0.0", "ol": "^6.15.1", "vant": "^3.4.3", diff --git a/src/api/traffic.js b/src/api/traffic.js new file mode 100644 index 0000000..7a052ef --- /dev/null +++ b/src/api/traffic.js @@ -0,0 +1,76 @@ +import { service } from '../utils/request'; + +/** + * 获取交通预警事件列表 + * @param {Object} data - 查询参数 + * @param {number} data.eventCategory - 事件分类:1-路面事件,2-违章事件 + * @param {number} data.page - 当前页号 + * @param {number} data.pageSize - 每页大小 + */ +export function getTrafficEventList(data) { + return service({ + url: '/traffic/eventTask/page', + method: 'post', + data + }); +} + +/** + * 获取交通预警事件详情 + * @param {string|number} taskId - 任务ID + */ +export function getTrafficEventDetail(taskId) { + return service({ + url: `/traffic/eventTask/detail/${taskId}`, + method: 'get' + }); +} + +/** + * 定位打卡 + * @param {Object} data - 打卡参数 + * @param {string|number} data.taskId - 任务ID + * @param {string} data.address - 地址 + * @param {string} data.clickLatLong - 经纬度 + */ +export function clockIn(data) { + return service({ + url: '/traffic/eventTask/click', + method: 'post', + data + }); +} + +/** + * 任务反馈 + * @param {Object} data - 反馈参数 + * @param {string|number} data.taskId - 任务ID + * @param {string} data.feedback - 反馈内容 + * @param {string} data.images - 图片URL(逗号拼接) + * @param {string} data.video - 视频URL + * @param {string} data.filesUrl - 附件URL + * @param {string} data.singUrl - 签名URL + */ +export function feedback(data) { + return service({ + url: '/traffic/eventTask/feedback', + method: 'post', + data + }); +} + +/** + * 文件上传(图片/视频) + * @param {File|Blob} file - 文件对象 + * @returns {Promise} 上传后的URL + */ +export function uploadFile(file) { + const formData = new FormData(); + formData.append('file', file); + return service({ + url: '/common/upload', + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }); +} diff --git a/src/api/user.js b/src/api/user.js index 21b14c9..416130d 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -20,7 +20,7 @@ export function login(data) { */ export function idCardlogin(data) { return service({ - url:'/mosty-base/idCardNoLogin', + url:'/auth/loginByIdCardNo', method: 'post', data }); @@ -52,7 +52,7 @@ export function getUserInfo(data) { // 新增的用户信息用于民辅警一起 export function getUserOrFjInfo(params) { return service({ - url: `/mosty-base/sysUser/getUserOrFjInfo`, + url: `/admin/users/getInfo`, method: "get", params }); diff --git a/src/pages/alertHandle/index.vue b/src/pages/alertHandle/index.vue index aa7eaf4..7934a96 100644 --- a/src/pages/alertHandle/index.vue +++ b/src/pages/alertHandle/index.vue @@ -28,7 +28,7 @@
已拍照片:
- + @@ -68,7 +68,7 @@
- + 保存
@@ -76,9 +76,11 @@ \ No newline at end of file diff --git a/src/pages/trafficAlerts/index.vue b/src/pages/trafficAlerts/index.vue index dd6f73a..ad3f6ad 100644 --- a/src/pages/trafficAlerts/index.vue +++ b/src/pages/trafficAlerts/index.vue @@ -10,7 +10,7 @@