This commit is contained in:
zoujiandong 2025-07-29 15:37:31 +08:00
parent c542b5e0ed
commit d292fec408
15 changed files with 155 additions and 42 deletions

View File

@ -27,8 +27,9 @@ Page({
}, },
handleFetRubric(){ handleFetRubric(){
getRubric().then(res=>{ getRubric().then(res=>{
let str = res.replace(/\<img/gi, '<img class="imgstyle"');
this.setData({ this.setData({
node:res node:str
}) })
}) })
}, },

View File

@ -3,7 +3,7 @@
<view class="page"> <view class="page">
<view class="con {{(!type && !signImg)?'active':''}}"> <view class="con {{(!type && !signImg)?'active':''}}">
<rich-text nodes="{{node}}"></rich-text> <rich-text nodes="{{node}}" ></rich-text>
</view> </view>
<view class="imgbox" wx:if="{{signImg}}"> <view class="imgbox" wx:if="{{signImg}}">
<view class="jiafang"> <view class="jiafang">

View File

@ -91,3 +91,6 @@
width:280rpx; width:280rpx;
height:300rpx; height:300rpx;
} }
.con .imgstyle{
max-width: 100%;
}

View File

@ -71,6 +71,7 @@ Page({
uid:'', uid:'',
sex:null, sex:null,
age:'', age:'',
treatmentNum:'',
admissionTime:'', admissionTime:'',
caseType:[], caseType:[],
mainDiagnose:{ mainDiagnose:{
@ -571,11 +572,11 @@ Page({
this.data.medicalRecordId?this.handleEditCase():this.handleAddCase(); this.data.medicalRecordId?this.handleEditCase():this.handleAddCase();
}), }),
saveBasic(){ saveBasic(){
if(this.validateBasic(true)){ if(this.validateBasic(true)){
this.setData({ this.setData({
active:1 active:1
}) })
} }
!this.data.medicalRecordId && this.saveDraft(); !this.data.medicalRecordId && this.saveDraft();
}, },
@ -1075,7 +1076,7 @@ Page({
}; };
this.setData({ this.setData({
'case.dpmas':this.data.case.dpmas.concat([obj]), 'case.dpmas':this.data.case.dpmas.concat([obj]),
'dpmas_list':this.data.dpmas_list.concat({fileList:[]}) 'dpmas_list':this.data.dpmas_list.concat({fileList:[],treatTime:''})
}) })
}, },
@ -1099,7 +1100,7 @@ Page({
}, },
validateBasic(flag){ validateBasic(flag){
let {name,uid,sex,age,admissionTime,caseType,mainDiagnose,diseaseCause,seductionReason}=this.data.case; let {name,uid,sex,age,admissionTime,caseType,mainDiagnose,diseaseCause,seductionReason,treatmentNum}=this.data.case;
let {fileList_basic}=this.data; let {fileList_basic}=this.data;
if(!name){ if(!name){
flag && wx.showToast({ flag && wx.showToast({
@ -1143,6 +1144,20 @@ Page({
icon:"none" icon:"none"
}) })
return false return false
};
if(treatmentNum<1){
flag && wx.showToast({
title: '治疗次数不小于1次',
icon:"none"
})
return false
}
if(treatmentNum>9999){
flag && wx.showToast({
title: '治疗次数不能超过9999次',
icon:"none"
})
return false
} }
if(mainDiagnose.select.length==0){ if(mainDiagnose.select.length==0){
flag && wx.showToast({ flag && wx.showToast({
@ -1180,6 +1195,61 @@ Page({
}) })
return false return false
} }
let {dpmas}=this.data.case;
let {dpmas_list}=this.data;
let obj={
'treatTime':'',
'content':{
"mode":{ // 模式
"select":"",
"otherValue":"",
},
"plasma":{ // 血浆
"handle":"",
"replace":""
},
"dose":{ // 抗凝剂量
"select":[],
"heparin":{ // 肝素
"firstDose":"",//首剂
"firstDoseUnit":'1',
"append":"",//追加
"appendUnit":'1',
},
"lowHeparin":{ // 低分子肝素
"value":""
},
"citricAcid":{ // 枸橼酸
"bloodFlowRate":"",//血液流速
"citricAcidFlowRate":"",//枸橼酸钠流速
"calciumAgent":{ // 钙剂
"select":"",
"value":"",
}
},
"nafamostat":{ // 甲磺酸萘莫司他
"value":""
},
"other":{ // 其他
"name":"",
"dose":""
}
}
},
dpmasImg:''
};
if(caseType.length==1 && caseType[0]==1){
if(dpmas.length<=1){
this.setData({
'case.dpmas':dpmas.concat([obj]),
'dpmas_list':dpmas_list.concat({fileList:[],treatTime:''})
})
}
}
// if(seductionReason.inside.select.length==0){ // if(seductionReason.inside.select.length==0){
// flag && wx.showToast({ // flag && wx.showToast({
// title: '请选择诱因肝内类型', // title: '请选择诱因肝内类型',
@ -1224,16 +1294,10 @@ Page({
return true return true
}, },
validateRecord(flag){ validateRecord(flag){
let {dpmas,admissionTime}=this.data.case; let {dpmas,admissionTime,caseType}=this.data.case;
let {dpmas_list}=this.data; let {dpmas_list}=this.data;
// if(caseType==1 && dpmas.length<4){
// flag && wx.showToast({
// title: 'DPMAS治疗不少于4次',
// icon:'none'
// })
// return false;
// };
// if(caseType==2 && dpmas.length<1){ // if(caseType==2 && dpmas.length<1){
// flag && wx.showToast({ // flag && wx.showToast({
// title: 'DPMAS治疗不少于1次', // title: 'DPMAS治疗不少于1次',
@ -1396,6 +1460,16 @@ Page({
return false; return false;
} }
};
if(caseType.length==1 && caseType[0]==1){
if(dpmas.length<=1){
flag && wx.showToast({
title: '病例治疗类型为DPMAS或DPMAS联合模式时需提交至少2次人工肝治疗记录',
icon:'none'
})
return false;
}
}; };
return true return true
@ -1918,7 +1992,7 @@ Page({
}else{ }else{
iptValue=tempValue iptValue=tempValue
} }
if(key=='age' || key=="day"){ if(key=='age' || key=="day" || key=="treatmentNum"){
if(e.detail.value!=''){ if(e.detail.value!=''){
this.setData({ this.setData({
['case.'+key]:Number(e.detail.value) ['case.'+key]:Number(e.detail.value)
@ -2170,10 +2244,7 @@ Page({
return parts[parts.length - 1]; return parts[parts.length - 1];
}, },
afterhandlePaint(e){ afterhandlePaint(e){
wx.showLoading({
title: '图片上传中',
mask: true
})
this.setData({ this.setData({
showPaint:false showPaint:false
}) })

View File

@ -9,7 +9,7 @@
<view class="page"> <view class="page">
<van-tabs active="{{ active }}" wrap-class="tabwrap" use-before-change="{{ true }}" custom-class="tabbox" bind:before-change="onBeforeChange"> <van-tabs active="{{ active }}" wrap-class="tabwrap" use-before-change="{{ true }}" custom-class="tabbox" bind:before-change="onBeforeChange">
<van-tab title="基本信息" class="vantab"> <van-tab title="基本信息" class="vantab">
<view class="basic {{!showSaveBtn?'active':''}}"> <scroll-view scroll-y="true" class="basic {{!showSaveBtn?'active':''}}">
<view class="basiccon"> <view class="basiccon">
<view class="row"> <view class="row">
<view class="left"> <view class="left">
@ -53,7 +53,9 @@
入院时间<text class="red">*</text> 入院时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openTime"> <view class="right" bind:tap="openTime">
<input type="text" value="{{case.admissionTime}}" class="ipt" placeholder="请输入" placeholder-class="placeholder" disabled /> <view class="viewipt {{case.admissionTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{case.admissionTime?case.admissionTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{case.admissionTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
</view> </view>
@ -72,6 +74,14 @@
</view> </view>
</view> </view>
<view class="row">
<view class="left">
治疗次数<text class="red">*</text>
</view>
<view class="right">
<input type="number" value="{{case.treatmentNum}}" bindinput="handleIpt" class="ipt" data-id="treatmentNum" placeholder="请输入" placeholder-class="placeholder" disabled="{{!showSaveBtn}}" />
</view>
</view>
<view class="row" style="padding-bottom:0;flex-direction: column;border-bottom: 1rpx solid rgba(0,0,0,0.1);"> <view class="row" style="padding-bottom:0;flex-direction: column;border-bottom: 1rpx solid rgba(0,0,0,0.1);">
<view class="left bold"> <view class="left bold">
主要诊断(可多选)<text class="red">*</text> 主要诊断(可多选)<text class="red">*</text>
@ -164,7 +174,7 @@
<view class="btnbox" wx:if="{{showSaveBtn}}"> <view class="btnbox" wx:if="{{showSaveBtn}}">
<view class="btn" bind:tap="saveBasic">下一步</view> <view class="btn" bind:tap="saveBasic">下一步</view>
</view> </view>
</view> </scroll-view>
</van-tab> </van-tab>
<van-tab title="临床资料" disabled="{{disable_ziliao}}"> <van-tab title="临床资料" disabled="{{disable_ziliao}}">
@ -259,21 +269,22 @@
<view class="basic {{!showSaveBtn?'active':''}}" wx:if="{{active==2}}"> <view class="basic {{!showSaveBtn?'active':''}}" wx:if="{{active==2}}">
<view class="recordcon"> <view class="recordcon">
<view class="tips"> <view class="tips">
<van-icon name="todo-list" color="orange" size="24" />总共治疗<text>{{case.dpmas.length}}</text>次</view> <van-icon name="todo-list" color="orange" size="24" />总共治疗记录<text>{{case.dpmas.length}}</text>次</view>
<view class="record" wx:for="{{case.dpmas}}" wx:key="index"> <view class="record" wx:for="{{case.dpmas}}" wx:key="index">
<view class="title"> <view class="title">
<view class="titlename"> <view class="titlename">
<view class="bar"></view> <view class="bar"></view>
<view class="recordtime">第{{index+1}}次治疗</view> <view class="recordtime">第{{index+1}}次治疗</view>
</view> </view>
<van-icon name="delete-o" size="22" bind:tap="confirmDelRecord" data-index="{{index}}" color="#b9bbbb" wx:if="{{index!=0 && showSaveBtn}}" /> <van-icon name="delete-o" size="22" bind:tap="confirmDelRecord" data-index="{{index}}" color="#b9bbbb" wx:if="{{index!=0 && showSaveBtn && !(case.caseType.length==1 && case.caseType[0]==1 && case.dpmas.length<=2)}}" />
</view> </view>
<view class="row"> <view class="row">
<view class="left"> <view class="left">
治疗时间<text class="red">*</text> 治疗时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openDealTime" data-index="{{index}}"> <view class="right" bind:tap="openDealTime" data-index="{{index}}">
<input type="text" value="{{dpmas_list[index].treatTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled /> <view class="viewipt {{dpmas_list[index].treatTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{dpmas_list[index].treatTime?dpmas_list[index].treatTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{dpmas_list[index].treatTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<!-- <text wx:if="{{case.dpmas[index].treatTime}}">h</text> --> <!-- <text wx:if="{{case.dpmas[index].treatTime}}">h</text> -->
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
@ -519,7 +530,8 @@
首次人工肝治疗前检测时间<text class="red">*</text> 首次人工肝治疗前检测时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openHeadTime"> <view class="right" bind:tap="openHeadTime">
<input type="text" value="{{case.headTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled /> <view class="viewipt short {{case.headTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{case.headTime?case.headTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{case.headTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
@ -529,7 +541,8 @@
首次人工肝治疗后检测时间<text class="red">*</text> 首次人工肝治疗后检测时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openAfterTime"> <view class="right" bind:tap="openAfterTime">
<input type="text" value="{{case.afterTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled /> <view class="viewipt short {{case.afterTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{case.afterTime?case.afterTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{case.afterTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<!-- <text wx:if="{{case.afterTime}}">h</text> --> <!-- <text wx:if="{{case.afterTime}}">h</text> -->
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
@ -539,13 +552,14 @@
最后一次人工肝治疗后检测时间<text class="red">*</text> 最后一次人工肝治疗后检测时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openLastTime"> <view class="right" bind:tap="openLastTime">
<input type="text" value="{{case.lastTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled /> <view class="viewipt shortlast {{case.lastTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{case.lastTime?case.lastTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{case.lastTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
</view> </view>
<view class="table"> <view class="table">
<view class="t_title"> <view class="t_title">
总胆红素TB (umol/L)<text class="red">*</text> 总胆红素 TB(umol/L)<text class="red">*</text>
</view> </view>
<view class="row"> <view class="row">
<view class="left">首次治疗前</view> <view class="left">首次治疗前</view>
@ -854,7 +868,8 @@
出院时间<text class="red">*</text> 出院时间<text class="red">*</text>
</view> </view>
<view class="right" bind:tap="openDischargeTime"> <view class="right" bind:tap="openDischargeTime">
<input type="text" value="{{case.dischargeTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled /> <view class="viewipt {{case.dischargeTime?'ipt':'placeholder'}}" wx:if="{{!showTime}}">{{case.dischargeTime?case.dischargeTime:'请选择时间'}}</view>
<input type="text" wx:else value="{{case.dischargeTime}}" class="ipt" placeholder="请选择时间" placeholder-class="placeholder" disabled />
<van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" /> <van-icon name="arrow" color="#83858a" size="38rpx" class="righticon" />
</view> </view>
</view> </view>

View File

@ -121,8 +121,21 @@ page{
border-bottom: none; border-bottom: none;
} }
.basic .row .ipt{ .basic .row .ipt{
text-align: right; text-align: right;
} }
.viewipt{
flex:1;
width:340rpx;
text-align: right;
font-family: UICTFontTextStyleBody;
}
.viewipt.short{
width:240rpx;
}
.viewipt.shortlast{
width:180rpx;
}
.placeholder{ .placeholder{
font-size: 32rpx; font-size: 32rpx;
font-weight: 400; font-weight: 400;

View File

@ -231,7 +231,7 @@ onCancelSuccess(){
let THIS=this; let THIS=this;
if(!this.data.check){ if(!this.data.check){
wx.showToast({ wx.showToast({
title: '请同意《肝胆相照用户服务协议》!', title: '请同意《隐私协议》!',
icon:'none' icon:'none'
}) })
return false return false

View File

@ -52,7 +52,7 @@ Page({
let {mobile,pwd,loginDevice,captchaUuid,captchaCode,checked}=this.data; let {mobile,pwd,loginDevice,captchaUuid,captchaCode,checked}=this.data;
if(!checked){ if(!checked){
wx.showToast({ wx.showToast({
title: '请同意《用户服务协议》!', title: '请同意《隐私协议》!',
icon:'none' icon:'none'
}) })
return false return false

View File

@ -490,8 +490,11 @@ Page({
file file
} = event.detail; } = event.detail;
this.setData({ this.setData({
showCrop:true,
src:file.url src:file.url
},()=>{
this.setData({
showCrop:true,
})
}) })
}, },

View File

@ -142,6 +142,10 @@ Component({
// this.triggerEvent('confirmUpload') // this.triggerEvent('confirmUpload')
// }, // },
tapBtn: function (e) { tapBtn: function (e) {
wx.showLoading({
title: '图片上传中',
mask: true
})
utils.tapBtn(e, this, 2,this.data.paintFrom); utils.tapBtn(e, this, 2,this.data.paintFrom);
this.hideBarsHandler() this.hideBarsHandler()
}, },

View File

@ -79,11 +79,11 @@ Component({
type:4 type:4
}).then(result=>{ }).then(result=>{
if(result<4){ if(result<20){
this.handleGetSign() this.handleGetSign()
}else{ }else{
wx.showToast({ wx.showToast({
title: '每人参与病例征集不得超过20例', title: '每人参与病例征集不得超过20例', icon:'none'
}) })
} }

View File

@ -81,12 +81,12 @@ Page({
limitCount({ limitCount({
type:4 type:4
}).then(result=>{ }).then(result=>{
if(result<4){ if(result<20){
this.handleGetSign() this.handleGetSign()
}else{ }else{
wx.showToast({ wx.showToast({
title: '每人参与病例征集不得超过20例', title: '每人参与病例征集不得超过20例',
icon:'none'
}) })
} }

View File

@ -75,9 +75,9 @@ Page({
type:3 type:3
}).then(result => { }).then(result => {
console.log(result); console.log(result);
if (result < 2) { if (result < 5) {
wx.showToast({ wx.showToast({
title: '病例审核通过2份及以上可申请病例交流活动', title: '病例审核通过5份及以上可申请病例交流活动',
icon: 'none' icon: 'none'
}) })
} else { } else {

View File

@ -5,5 +5,5 @@
"compileHotReLoad": true, "compileHotReLoad": true,
"urlCheck": false "urlCheck": false
}, },
"libVersion": "3.8.8" "libVersion": "3.8.12"
} }

View File

@ -4,8 +4,11 @@
host_dev:'https://dev-case.igandan.com/api', host_dev:'https://dev-case.igandan.com/api',
img_dev: 'https://medical-case.oss-cn-beijing.aliyuncs.com/static', //开发环境 img_dev: 'https://medical-case.oss-cn-beijing.aliyuncs.com/static', //开发环境
host_prod:'https://case.igandan.com/api', host_prod:'https://prod-casecollection.igandan.com/api',
img_prod: 'https://medical-case.oss-cn-beijing.aliyuncs.com/static', //线上环境 img_prod: 'https://medical-case.oss-cn-beijing.aliyuncs.com/static', //线上环境
// host_dev:'https://prod-casecollection.igandan.com/api',
// img_dev: 'https://medical-case.oss-cn-beijing.aliyuncs.com/static',
}; };
const { envVersion } = wx.getAccountInfoSync().miniProgram; const { envVersion } = wx.getAccountInfoSync().miniProgram;