From bbe721f61000e366b3ba4fbdb67127fda0d6e563 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Thu, 10 Jul 2025 10:07:20 +0800 Subject: [PATCH] 1111 --- .vscode/settings.json | 4 + .../business/case/caseplatform-case-api.js | 18 +- src/lib/axios.js | 8 + src/utils/fileutil.js | 91 +++++ .../business/case/caseplatform-case-form.vue | 9 +- src/views/business/case/imgEditor.vue | 42 ++- src/views/business/expert/data.js | 176 +++++++++ src/views/business/expert/expertForm.vue | 6 +- src/views/business/expert/imgCell.vue | 95 +++++ src/views/business/expert/imgEditor.vue | 353 ++++++++++++++++++ 10 files changed, 791 insertions(+), 11 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/utils/fileutil.js create mode 100644 src/views/business/expert/data.js create mode 100644 src/views/business/expert/imgCell.vue create mode 100644 src/views/business/expert/imgEditor.vue diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f747310 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "javascript.inlayHints.variableTypes.enabled": true, + "typescript.validate.enable": false +} \ No newline at end of file diff --git a/src/api/business/case/caseplatform-case-api.js b/src/api/business/case/caseplatform-case-api.js index e0da02f..ed844a9 100644 --- a/src/api/business/case/caseplatform-case-api.js +++ b/src/api/business/case/caseplatform-case-api.js @@ -5,7 +5,7 @@ * @Date: 2024-01-11 15:18:32 * @Copyright gdxz */ -import { postRequest, getRequest, download,uploadRequest } from '/@/lib/axios'; +import { postRequest, getRequest, download,uploadRequest,putRequest} from '/@/lib/axios'; export const caseplatformCaseApi = { @@ -30,6 +30,22 @@ export const caseplatformCaseApi = { return postRequest('/caseplatformCase/update', param); }, + updateMainDiagnose: (param) => { + return putRequest('/caseplatformCase/mainDiagnose', param); + }, + updateDpmas: (param) => { + return putRequest('/caseplatformCase/dpmasImg', param); + }, + updateCheck: (param) => { + return putRequest('/caseplatformCase/checkdataImg', param); + }, + getOssSign:(type)=>{ //获取上传文件 Policy + return getRequest('/file/getOSSPolicy/'+type) + }, + ossUpload:(url,data)=>{ + return uploadRequest(url,data); +}, + /** * 详情 @author HMM */ diff --git a/src/lib/axios.js b/src/lib/axios.js index f249eda..2d1077c 100644 --- a/src/lib/axios.js +++ b/src/lib/axios.js @@ -96,6 +96,14 @@ export const postRequest = (url, data) => { return request({ data, url, method: 'post' }); }; +/** + * put请求 + */ +export const putRequest = (url, data) => { + return request({ data, url, method: 'put' }); +}; + + /** * get请求 */ diff --git a/src/utils/fileutil.js b/src/utils/fileutil.js new file mode 100644 index 0000000..fce7810 --- /dev/null +++ b/src/utils/fileutil.js @@ -0,0 +1,91 @@ +const FileUtil = { + + //file 为微信file 单文件 + getFileName(file){ + // size: 132224 + // thumb: "http://tmp/0ftStiYfd18K517836423bbfde024c385140a666b344.png" + // type: "image" + // url: "http://tmp/0ftStiYfd18K517836423bbfde024c385140a666b344.png" + + if(file){ + const uuid = this.UUID().replace("/-/g",""); + if(file.url && (file.url.indexOf(".") > -1)){ + const fileType = file.url.split(".")[1]; + return uuid+"."+fileType; + }else{ + return; + } + } + return; + }, + + UUID () { + if (typeof crypto === 'object') { + if (typeof crypto.randomUUID === 'function') { + return crypto.randomUUID(); + } + if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') { + const callback = (c) => { + const num = Number(c); + return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(16); + }; + return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, callback); + } + } + let timestamp = new Date().getTime(); + let perforNow = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0; + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { + let random = Math.random() * 16; + if (timestamp > 0) { + random = (timestamp + random) % 16 | 0; + timestamp = Math.floor(timestamp / 16); + } else { + random = (perforNow + random) % 16 | 0; + perforNow = Math.floor(perforNow / 16); + } + return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16); + }); + }, + + canvasToFile(){ + let canvas = window.map3DControl.viewer.canvas; + let imgWidth = 1920; + let img = Canvas2Image.convertToImage( + canvas, + imgWidth, + (imgWidth * canvas.height) / canvas.width, + "png" + ); + let file_name = new Date().getTime() + ".png"; + let imgsrc = img.src.slice(22) + + let file = this.convertBase64UrlToImgFile( + imgsrc, + file_name, + "image/png" + ) + return file; + }, + + convertBase64UrlToImgFile(urlData, fileName, fileType) { + urlData = urlData.replace(/^data:image\/\w+;base64,/, ""); + let bytes = wx.base64ToArrayBuffer(urlData); + + // var bytes = wx.atob(urlData); //转换为byte + //处理异常,将ascii码小于0的转换为大于0 + var ab = new ArrayBuffer(bytes.length); + var ia = new Int8Array(ab); + var i; + for (i = 0; i < bytes.length; i++) { + ia[i] = bytes.charCodeAt(i); + } + //转换成文件,添加文件的type,name,lastModifiedDate属性 + var blob = new Blob([ab], { type: fileType }); + blob.lastModifiedDate = new Date(); + blob.name = fileName; + return blob; + } +} + + +export { FileUtil } \ No newline at end of file diff --git a/src/views/business/case/caseplatform-case-form.vue b/src/views/business/case/caseplatform-case-form.vue index 394b963..8c2f90a 100644 --- a/src/views/business/case/caseplatform-case-form.vue +++ b/src/views/business/case/caseplatform-case-form.vue @@ -88,7 +88,7 @@ - + - {{ caseVO.dischargeSituation }} +
@@ -309,7 +309,7 @@ 保存 - + @@ -611,6 +611,9 @@ const openEditor = (data) => { const saveEditor = () => { imgEditorRef.value?.save(); }; + + + const handleOk = () => { showEdit.value = false; }; diff --git a/src/views/business/case/imgEditor.vue b/src/views/business/case/imgEditor.vue index 59f0eeb..1324b65 100644 --- a/src/views/business/case/imgEditor.vue +++ b/src/views/business/case/imgEditor.vue @@ -3,16 +3,19 @@ + diff --git a/src/views/business/expert/imgEditor.vue b/src/views/business/expert/imgEditor.vue new file mode 100644 index 0000000..1324b65 --- /dev/null +++ b/src/views/business/expert/imgEditor.vue @@ -0,0 +1,353 @@ + + + + +