From e3dde625652dba03fc2a644b0d0bedbe95836c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B7=A6=E5=93=A5?= <17630302050@163.com> Date: Mon, 23 Jun 2025 23:54:25 +0800 Subject: [PATCH] ewe --- pages/followUp/index.js | 184 ++++++++++++++++++++++++++++++++---- pages/followUp/index.less | 19 ++++ pages/followUp/index.wxml | 82 ++++++++-------- pages/login/login.less | 1 + project.private.config.json | 2 +- 5 files changed, 233 insertions(+), 55 deletions(-) diff --git a/pages/followUp/index.js b/pages/followUp/index.js index b528769..f8676b8 100644 --- a/pages/followUp/index.js +++ b/pages/followUp/index.js @@ -9,12 +9,17 @@ Page({ data: { style: 'border: 2rpx solid #efefef;border-radius: 12rpx;', - dataItem:[ - { - title: '随访信息', - child: [] - } - ], + form: { + + }, + key: 'filename.txt', //待上传的文件名称,您也可以指定其存储在某个目录下。例如,将filename.txt文件上传到youfolder文件夹下,此时需填写:/youfolder/filename.txt。 + policy: '', + xOssSecurityToken: '', + xOssSignatureVersion: '', + xOssCredential: '', + xOssDate: '', + xOssSignature: '', + @@ -25,7 +30,7 @@ Page({ address: [], introduction: '', yearType: 0, - + // photos: [], }, mode: '', @@ -113,20 +118,25 @@ Page({ }, onInput(e) { const { key } = e.currentTarget.dataset; - this.setData({ - [key]: e.detail.value, - }); + // this.setData({ + // ['form.key']: e.detail.value, + // }); }, showPicker(e) { const { mode } = e.currentTarget.dataset; this.setData({ [`${mode}Visible`]: true, }); - - - - }, + + + }, + onPickerChange(e) { + console.log(e) + this.setData({ + ['form.follow_date']: e.detail.value + }) + }, handleSuccess(e) { console.log(e.detail) const { files } = e.detail; @@ -146,12 +156,154 @@ Page({ handleClick(e) { console.log(e.detail.file); }, - toQuestionnaire(){ - request('/patient/follow_questionnaire', 'post', { + toQuestionnaire() { + request('patient/follow_questionnaire', 'post', { }) }, + handleChangeGroup(e) { + console.log(e) + const { mode } = e.currentTarget.dataset + this.setData({ + [`form.${mode}`]: e.detail.value + }) + }, + //上传文件方法 + async uploadFileToOSS(filePath, callback) { + const { + key, + policy, + xOssSecurityToken, + xOssSignatureVersion, + xOssCredential, + xOssDate, + xOssSignature + } = this.data; + const policyData = await request('admin/policy_token', 'post') + const res = JSON.parse(policyData.token) + console.log(res) + + + const formData = { + key, //上传文件名称 + policy: res.policy, //表单域 + 'x-oss-signature-version': res.x_oss_signature_version, //指定签名的版本和算法 + 'x-oss-credential': res.x_oss_credential, //指明派生密钥的参数集 + 'x-oss-date': res.x_oss_date, //请求的时间 + 'x-oss-signature': res.signature, //签名认证描述信息 + 'x-oss-security-token': res.security_token, //安全令牌 + success_action_status: "200" //上传成功后响应状态码 + }; + + // 发送请求上传文件 + wx.uploadFile({ + url: 'https://image-fudan.oss-cn-beijing.aliyuncs.com/', // 此域名仅作示例,实际Bucket域名,请替换为您的目标Bucket域名。 + filePath: filePath, + name: 'file', //固定值为file + formData: formData, + success(res) { + console.log('上传响应:', res); + if (res.statusCode === 200) { + callback(null, res.data); // 上传成功 + } else { + console.error('上传失败,状态码:', res.statusCode); + console.error('失败响应:', res); + callback(res); // 上传失败,返回响应 + } + }, + fail(err) { + console.error('上传失败:', err); // 输出错误信息 + wx.showToast({ title: '上传失败,请重试!', icon: 'none' }); + callback(err); // 调用回调处理错误 + } + }); + return + + const apiUrl = 'http://:/generate_signature' //请将IP地址和端口号替换为实际服务器公网IP地址及端口号 + // 发送请求获取签名信息 + wx.request({ + url: apiUrl, + success: (res) => { + + this.data.xOssSignatureVersion = res.x_oss_signature_version; + this.data.xOssCredential = res.x_oss_credential; + this.data.xOssDate = res.x_oss_date; + this.data.xOssSignature = res.signature; + this.data.xOssSecurityToken = res.security_token; + this.data.policy = res.policy; + + //此示例上传参数只列举必填字段,如有其他需求可参考: + //PostObject文档:https://help.aliyun.com/zh/oss/developer-reference/postobject + //签名版本4文档:https://help.aliyun.com/zh/oss/developer-reference/signature-version-4-recommend + const formData = { + key, //上传文件名称 + policy: this.data.policy, //表单域 + 'x-oss-signature-version': this.data.xOssSignatureVersion, //指定签名的版本和算法 + 'x-oss-credential': this.data.xOssCredential, //指明派生密钥的参数集 + 'x-oss-date': this.data.xOssDate, //请求的时间 + 'x-oss-signature': this.data.xOssSignature, //签名认证描述信息 + 'x-oss-security-token': this.data.xOssSecurityToken, //安全令牌 + success_action_status: "200" //上传成功后响应状态码 + }; + + // 发送请求上传文件 + wx.uploadFile({ + url: 'https://examplebucket.oss-cn-hangzhou.aliyuncs.com', // 此域名仅作示例,实际Bucket域名,请替换为您的目标Bucket域名。 + filePath: filePath, + name: 'file', //固定值为file + formData: formData, + success(res) { + console.log('上传响应:', res); + if (res.statusCode === 200) { + callback(null, res.data); // 上传成功 + } else { + console.error('上传失败,状态码:', res.statusCode); + console.error('失败响应:', res); + callback(res); // 上传失败,返回响应 + } + }, + fail(err) { + console.error('上传失败:', err); // 输出错误信息 + wx.showToast({ title: '上传失败,请重试!', icon: 'none' }); + callback(err); // 调用回调处理错误 + } + }); + }, + fail: (err) => { + console.error('请求接口失败:', err); + wx.showToast({ title: '获取上传参数失败,请重试!', icon: 'none' }); + } + }); + }, + handleUpload() { + wx.chooseMessageFile({ + count: 1, // 选择一个文件 + type: 'all', // 支持所有类型的文件 + success: (res) => { + console.log('选择的文件:', res.tempFiles); // 输出选择的文件信息 + if (res.tempFiles.length > 0) { + const tempFilePath = res.tempFiles[0].path; // 获取选择的文件路径 + console.log('选择的文件路径:', tempFilePath); // 输出文件路径 + this.uploadFileToOSS(tempFilePath, (error, data) => { + if (error) { + wx.showToast({ title: '上传失败!', icon: 'none' }); + console.error('上传失败:', error); // 输出具体的错误信息 + } else { + wx.showToast({ title: '上传成功!', icon: 'success' }); + console.log('上传成功:', data); // 输出上传成功后的数据 + } + }); + } else { + wx.showToast({ title: '未选择文件!', icon: 'none' }); + } + }, + fail: (err) => { + wx.showToast({ title: '选择文件失败!', icon: 'none' }); + console.error('选择文件失败:', err); // 输出选择文件的错误信息 + } + }); + }, /** * 生命周期函数--监听页面加载 diff --git a/pages/followUp/index.less b/pages/followUp/index.less index ef35ab7..05d0c52 100644 --- a/pages/followUp/index.less +++ b/pages/followUp/index.less @@ -39,4 +39,23 @@ flex-wrap: wrap; padding-right: 60rpx; } + .improt-file{ + width: 140rpx; + height: 140rpx; + background: rgba(0,91,162,0.05); + border-radius: 16rpx; + border: 2rpx dotted rgba(0,91,162,0.2); + + display: flex; + justify-content: center; + align-items: center; + .upload-flow{ + text-align: center; + font-size: 26rpx; + .iconfont{ + font-size: 36rpx; + color: var(--td-brand-color); + } + } + } } \ No newline at end of file diff --git a/pages/followUp/index.wxml b/pages/followUp/index.wxml index e2e7364..57ace3f 100644 --- a/pages/followUp/index.wxml +++ b/pages/followUp/index.wxml @@ -4,16 +4,16 @@ 随访信息 随访名称 - + 随访日期 - + 随访医院 - + @@ -25,7 +25,7 @@ 身高(cm) - + @@ -34,7 +34,7 @@ 体重(kg) - + @@ -42,7 +42,7 @@ 头围(cm) - + @@ -51,7 +51,7 @@ 上臀围(cm) - + @@ -64,7 +64,13 @@ 上传肝功能检查报告(支持OCR识别) - + + + + 拍照导入 + + + @@ -72,7 +78,7 @@ 总胆红素(µmol/L) - + @@ -81,7 +87,7 @@ 直接胆红素(µmol/L) - + @@ -89,7 +95,7 @@ 总胆汁酸(g/L) - + @@ -98,7 +104,7 @@ 白蛋白(g/L) - + @@ -106,7 +112,7 @@ 谷草(U/L) - + @@ -115,7 +121,7 @@ 谷丙(U/L) - + @@ -123,7 +129,7 @@ GGT(U/L) - + @@ -132,7 +138,7 @@ ALP(U/L) - + @@ -154,7 +160,7 @@ 凝血酶原时间(s) - + @@ -163,7 +169,7 @@ 国际标准化比 - + @@ -171,7 +177,7 @@ 活化的部分凝血酶时间(s) - + @@ -195,7 +201,7 @@ 血小板(10^9/L) - + @@ -204,7 +210,7 @@ 血红蛋白(g/L) - + @@ -212,7 +218,7 @@ 白细胞(10^9/L) - + @@ -236,7 +242,7 @@ 25(OH)D3 (ng/ml) - + @@ -245,7 +251,7 @@ 维生素A (ng/ml) - + @@ -253,7 +259,7 @@ 维生素K (ng/ml) - + @@ -262,7 +268,7 @@ 维生素E (ng/ml) - + @@ -285,7 +291,7 @@ 肝肋下(mm) - + @@ -294,7 +300,7 @@ 肝剑突下(mm) - + @@ -302,7 +308,7 @@ 脾肋下(mm) - + @@ -311,7 +317,7 @@ 门静脉主干(mm) - + @@ -320,7 +326,7 @@ 门静脉流速 - + @@ -329,7 +335,7 @@ 肝弹性值 - + @@ -337,9 +343,9 @@ 有无肝囊肿 - - - + + + @@ -349,9 +355,9 @@ 有无腹水 - - - + + + diff --git a/pages/login/login.less b/pages/login/login.less index c834a02..f2e5b2e 100644 --- a/pages/login/login.less +++ b/pages/login/login.less @@ -39,6 +39,7 @@ height: 160rpx; align-self: center; margin-top: 196rpx; + border-radius: 160px; } .box_1 { display: flex; diff --git a/project.private.config.json b/project.private.config.json index ba8470b..aefe352 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -126,7 +126,7 @@ ] } }, - "libVersion": "3.8.8", + "libVersion": "3.8.9", "setting": { "urlCheck": false, "compileHotReLoad": false