diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml index 0a8ce7132..38421789b 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml @@ -553,6 +553,7 @@ <result property="depressedStateMessage" column="depressed_state_message" /> <result property="bloodPressureMessage" column="blood_pressure_message" /> <result property="anxietyStateMessage" column="anxiety_state_message" /> + <result property="menstruationMessage" column="menstruation_message" /> <result property="delFlag" column="del_flag" /> </resultMap> diff --git a/stdiet-ui/src/components/HealthyForm/FormExtended.vue b/stdiet-ui/src/components/HealthyForm/FormExtended.vue index 0dc4ac3d0..34953375d 100644 --- a/stdiet-ui/src/components/HealthyForm/FormExtended.vue +++ b/stdiet-ui/src/components/HealthyForm/FormExtended.vue @@ -199,7 +199,7 @@ </div> </div> <!-- 月经不调、多囊卵巢综合症 --> - <div v-if="form.conditioningProjectId == 1 || form.conditioningProjectId == 2"> + <div v-if="form.conditioningProjectId == 1 || form.conditioningProjectId == 2"> <p class="p_title_2">1、月经基础情况</p> <div style="margin-top:10px"> <el-form-item label="(1) 月经周期、天数" class="margin-left"> @@ -225,7 +225,7 @@ rows="3" ></el-input> </el-form-item> - + <el-form-item label="(4) 月经提前时长" class="margin-left"> <el-input type="textarea" v-model="form.healthyExtend.menstruationMessage.menstrualAdvanceDays" @@ -235,7 +235,7 @@ rows="3" ></el-input> </el-form-item> - + <el-form-item label="(4) 是否有闭经" class="margin-left"> <el-radio-group v-model="form.healthyExtend.menstruationMessage.amenorrhoeaFlag"> <el-radio :label="1" >是</el-radio> @@ -243,7 +243,7 @@ </el-radio-group> <div style="margin-top:8px;"><span class="text-span">若存在闭经,请您描述一下闭经时长</span> <el-input maxlength="100" - v-model="form.healthyExtend.bloodSugarMessage.amenorrhoeaDays" + v-model="form.healthyExtend.menstruationMessage.amenorrhoeaDays" placeholder="请输入闭经时长" ></el-input> </div> @@ -276,7 +276,7 @@ ></el-input> </div> </el-form-item> - + <p class="p_title_2">2、痛经情况</p> <el-form-item label="(1)、是否痛经" class="margin-left"> <el-radio-group v-model="form.healthyExtend.menstruationMessage.menstrualPainFlag"> @@ -284,24 +284,24 @@ <el-radio :label="0" >否</el-radio> </el-radio-group> </el-form-item> - + <el-form-item label="(2)、痛经性质" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.menstrualNature"> <el-radio v-for="(item,index) in healthyData['menstrualNatureArray']" :style="'width:100%;'+(index >0 ? 'margin-top:7px' : '')" :label="item.value" :key="index">{{ item.name }}</el-radio> </el-radio-group> - + </el-form-item> <el-form-item label="(3)、痛经类型" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.menstrualType"> <el-radio v-for="(item,index) in healthyData['menstrualTypeArray']" :style="'width:100%;'+(index >0 ? 'margin-top:7px' : '')" :label="item.value" :key="index">{{ item.name }}</el-radio> </el-radio-group> - + </el-form-item> <div class="margin-left text-span"> <div style="color:#1890ff">类型特点说明:</div> - <div style="margin-top:5px" v-for="(item,index) in healthyData['menstrualTypeIntroduceArray']" :key="index+'div'">{{item.name}}:<span class="text-span-min">{{item.value}}</span></div> + <div style="margin-top:5px" v-for="(item,index) in healthyData['menstrualTypeIntroduceArray']" :key="index+'div'">{{item.name}}:<span class="text-span-min">{{item.value}}</span></div> </div> <p class="p_title_2">3、药物情况</p> @@ -312,45 +312,45 @@ </el-radio-group> <div style="margin-top:8px;"><span class="text-span">若存在用药,请描述具体名称、剂量、服用时间等</span> <el-input maxlength="100" - v-model="form.healthyExtend.bloodSugarMessage.medication" + v-model="form.healthyExtend.menstruationMessage.medication" placeholder="请输入用药详情" ></el-input> </div> </el-form-item> <el-form-item label="(2)、是否有生育计划" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.familyPlann"> <el-radio :label="1" >是</el-radio> <el-radio :label="0" >否</el-radio> </el-radio-group> - + </el-form-item> <el-form-item label="(3)、是否存在同房出血情况" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.sameRoomBleed"> <el-radio :label="1" >是</el-radio> <el-radio :label="0" >否</el-radio> </el-radio-group> - + </el-form-item> <el-form-item label="(4)、是否存在排卵期出血" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.ovulationBleed"> <el-radio :label="1" >是</el-radio> <el-radio :label="0" >否</el-radio> </el-radio-group> - + </el-form-item> <el-form-item label="(5)、是否出现胰岛素抵抗(重点)" class="margin-left"> - + <el-radio-group v-model="form.healthyExtend.menstruationMessage.insulinResistanceFlag"> <el-radio :label="1" >是</el-radio> <el-radio :label="0" >否</el-radio> </el-radio-group> - + </el-form-item> <el-form-item label="(6)、其他补充" class="margin-left"> @@ -362,7 +362,7 @@ show-word-limit rows="3" ></el-input> - + </el-form-item> </div> diff --git a/stdiet-ui/src/components/PhysicalSignsDialog/index.vue b/stdiet-ui/src/components/PhysicalSignsDialog/index.vue index 7231f57e9..138caf25d 100644 --- a/stdiet-ui/src/components/PhysicalSignsDialog/index.vue +++ b/stdiet-ui/src/components/PhysicalSignsDialog/index.vue @@ -15,7 +15,7 @@ <!-- 只有新版健康评估信息才可修改,旧的体征数据不支持修改 --> <el-button type="info" - v-show="dataType == 0 && healthyData.conditioningProjectId == 0" + v-show="dataType == 0 && (healthyData && healthyData.conditioningProjectId == 0)" @click="generateReport" plain >下载报告</el-button @@ -175,12 +175,12 @@ </div> </div> <div - v-for="(item, index) in dataList.slice(9, 13)" + v-for="(item, index) in dataList.slice(9, 14)" style="margin-bottom: 50px" :key="'sign'+index" > - <div v-if="healthyData.conditioningProjectId == 5 || healthyData.conditioningProjectId == 6"> - <div v-if="index == 2 || index == 3 || (healthyData.conditioningProjectId == 5 && index == 1) || (healthyData.conditioningProjectId == 6 && index == 0)"> + <div v-if="healthyDataConstData['extendHealthyIndex'].indexOf(healthyData.conditioningProjectId) != -1"> + <div v-if="isShowModule(index)"> <p class="p_title_1" style="margin-top: 5px"> {{ extendedTitleArray[index] }} </p> @@ -322,7 +322,7 @@ export default { healthyTitleData: healthyData['healthyTitleData'], // 健康评估属性 healthyValueData: healthyData['healthyValueData'], - extendedTitleArray:['十、高血糖信息评估',"十、高血压信息评估","十一、焦虑信息评估","十二、抑郁信息评估"], + extendedTitleArray:['十、高血糖信息评估',"十、高血压信息评估","十一、焦虑信息评估","十二、抑郁信息评估","九、月经不调、多囊信息评估"], copyValue: "", detailHealthy: null, dialogWidth: "950px", @@ -331,7 +331,7 @@ export default { }, methods: { getTitle(index){ - return healthyData.getTitle(this.healthyData.conditioningProjectId, index) + return healthyData.getTitle(this.healthyData.conditioningProjectId, index, 1) }, getImgUrl(idx) { return `${window.location.origin}${this.medicalReportPathArray[idx]}`; @@ -679,9 +679,8 @@ export default { (detailHealthy.tall / 100) ).toFixed(1); - - this.detailHealthy = healthyData.dealHealthyExtend(detailHealthy); + for (let i = 0; i < this.healthyTitleData.length; i++) { let stepArray = []; for (let j = 0; j < this.healthyTitleData[i].length; j++) { @@ -697,6 +696,14 @@ export default { this.dataList[i] = stepArray; } }, + isShowModule(index){ + if(this.healthyData.conditioningProjectId == 5 || this.healthyData.conditioningProjectId == 6){ + return index == 2 || index == 3 || (this.healthyData.conditioningProjectId == 5 && index == 1) || (this.healthyData.conditioningProjectId == 6 && index == 0) + }else if(this.healthyData.conditioningProjectId == 1 || this.healthyData.conditioningProjectId == 2){ + return index == 4; + } + return false; + }, //健康信息处理,将数组转为字符串 dealHealthy(customerHealthy) { let array = healthyData["needAttrName"]; diff --git a/stdiet-ui/src/utils/healthyData.js b/stdiet-ui/src/utils/healthyData.js index b3fdb6434..1c19c397e 100644 --- a/stdiet-ui/src/utils/healthyData.js +++ b/stdiet-ui/src/utils/healthyData.js @@ -764,7 +764,7 @@ export function getTitleKey(projectId){ return extendHealthyTitle[projectId+""] != null ? extendHealthyTitle[projectId+""] : extendHealthyTitle["0"]; } -export function getTitle(projectId, index){ +export function getTitle(projectId, index , flag){ if(extendHealthyIndex.includes(projectId)){ //跳过了减脂经历 if(notExperienceIndex.includes(projectId)){ @@ -776,7 +776,7 @@ export function getTitle(projectId, index){ }else{ if(index == 1){ return titleNumArray[index]+getTitleKey(projectId)+"经历评估"; - }else if(index == 8){ + }else if(index == 8 && flag != 1){ return titleNumArray[index+1] + titleArray[index]; }else{ return titleNumArray[index]+titleArray[index]; @@ -792,6 +792,8 @@ export function getTitle(projectId, index){ } } + + //获取展示时,根据项目不同返回不同标题 export function getTitleShowArray(projectId){ let keyName = getTitleKey(projectId); @@ -836,8 +838,12 @@ export const extendedYesNoAttrName = [ {"targetAttrName": "amenorrhoeaFlag", "healthyAttrName": "menstruationMessage,amenorrhoeaFlag"}, + {"targetAttrName": "medicationFlag", "healthyAttrName": "menstruationMessage,medicationFlag"}, + {"targetAttrName": "familyPlann", "healthyAttrName": "menstruationMessage,familyPlann"}, + {"targetAttrName": "sameRoomBleed", "healthyAttrName": "menstruationMessage,sameRoomBleed"}, - + {"targetAttrName": "ovulationBleed", "healthyAttrName": "menstruationMessage,ovulationBleed"}, + {"targetAttrName": "insulinResistanceFlag", "healthyAttrName": "menstruationMessage,insulinResistanceFlag"} ] @@ -883,7 +889,7 @@ export function dealHealthyExtend(detailHealthy){ eatFruitsMessage += (eatFruitsMessage == "" ? "" : ", ") + item.name + "/" + item.num; }); } - + //高血糖 detailHealthy.healthyExtend.eatFruitsMessage = eatFruitsMessage; detailHealthy.mealBloodSugar = "餐前血糖:"+(detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar+"mmol/L"))+", " @@ -908,33 +914,39 @@ export function dealHealthyExtend(detailHealthy){ detailHealthy.pressureInferiorSymptom = (detailHealthy.healthyExtend.bloodPressureMessage.inferiorSymptomFlag == 1 ? "是" : "否") + ", 具体症状:"+getStringByMuchValue(syndromeNameArray,detailHealthy.healthyExtend.bloodPressureMessage.inferiorSymptom); detailHealthy.pressureWeightChangeFlag = detailHealthy.healthyExtend.bloodPressureMessage.weightChangeFlag == 1 ? "是" : "否"; - - detailHealthy.menstrualCycle = "生理周期:" + detailHealthy.healthyExtend.menstruationMessage.menstrualCycle + ",生理天数:" + detailHealthy.healthyExtend.menstruationMessage.menstrualDays; - + //月经不调、多囊 + detailHealthy.menstrualCycle = "生理周期:" + nullToString(detailHealthy.healthyExtend.menstruationMessage.menstrualCycle) + ",生理天数:" + nullToString(detailHealthy.healthyExtend.menstruationMessage.menstrualDays); detailHealthy.menstrualForecast = detailHealthy.healthyExtend.menstruationMessage.menstrualForecast; - - dealHealthy.menstrualDelayDays = dealHealthy.healthyExtend.menstruationMessage.menstrualForecast; - - dealHealthy.menstrualAdvanceDays = dealHealthy.healthyExtend.menstruationMessage.menstrualAdvanceDays; - - dealHealthy.amenorrhoeaDays = dealHealthy.amenorrhoeaFlag + ",痛经时长:" + dealHealthy.healthyExtend.menstruationMessage.amenorrhoeaDays; - - dealHealthy.amenorrhoeaDays = dealHealthy.amenorrhoeaFlag + ",痛经时长:" + dealHealthy.healthyExtend.menstruationMessage.amenorrhoeaDays; - - dealHealthy.menstrualColor = getStringBySigleValue(menstrualColorArray, dealHealthy.healthyExtend.menstruationMessage.menstrualColor); - dealHealthy.menstrualColor += dealHealthy.menstrualColor != "" ? (","+ dealHealthy.healthyExtend.menstruationMessage.otherMenstrualColor) : dealHealthy.healthyExtend.menstruationMessage.otherMenstrualColor; - - dealHealthy.menstrualCharacter = getStringBySigleValue(menstrualCharacterArray, dealHealthy.healthyExtend.menstruationMessage.menstrualCharacter); - dealHealthy.menstrualCharacter += dealHealthy.menstrualCharacter != "" ? (","+dealHealthy.healthyExtend.menstruationMessage.otherMenstrualCharacter) : dealHealthy.healthyExtend.menstruationMessage.otherMenstrualCharacter; - - dealHealthy.menstrualNature = getStringBySigleValue(menstrualNatureArray, dealHealthy.healthyExtend.menstruationMessage.menstrualNature); - + detailHealthy.menstrualDelayDays = detailHealthy.healthyExtend.menstruationMessage.menstrualDelayDays; + detailHealthy.menstrualAdvanceDays = detailHealthy.healthyExtend.menstruationMessage.menstrualAdvanceDays; + detailHealthy.amenorrhoeaDays = detailHealthy.amenorrhoeaFlag + ",痛经时长:" + nullToString(detailHealthy.healthyExtend.menstruationMessage.amenorrhoeaDays); + detailHealthy.menstrualColor = getStringBySigleValue(menstrualColorArray, detailHealthy.healthyExtend.menstruationMessage.menstrualColor); + detailHealthy.menstrualColor += (detailHealthy.menstrualColor != "" ? "," : "") + nullToString(detailHealthy.healthyExtend.menstruationMessage.otherMenstrualColor); + detailHealthy.menstrualColor = removeEnd(detailHealthy.menstrualColor); + detailHealthy.menstrualCharacter = getStringBySigleValue(menstrualCharacterArray, detailHealthy.healthyExtend.menstruationMessage.menstrualCharacter); + detailHealthy.menstrualCharacter += (detailHealthy.menstrualCharacter != "" ? "," : "") + nullToString(detailHealthy.healthyExtend.menstruationMessage.otherMenstrualCharacter); + detailHealthy.menstrualCharacter = removeEnd(detailHealthy.menstrualCharacter); + detailHealthy.menstrualNature = getStringBySigleValue(menstrualNatureArray, detailHealthy.healthyExtend.menstruationMessage.menstrualNature); + detailHealthy.menstrualType = getStringBySigleValue(menstrualTypeArray, detailHealthy.healthyExtend.menstruationMessage.menstrualType); + detailHealthy.medication = detailHealthy.medicationFlag + ",具体药物:" + nullToString(detailHealthy.healthyExtend.menstruationMessage.medication); + detailHealthy.otherDescriptions = detailHealthy.healthyExtend.menstruationMessage.otherDescriptions; } export function nullToString(val){ return (val == undefined || val == null) ? "" : val; } +export function removeEnd(val){ + if(val == undefined || val == null){ + return ""; + } + let lastChar = val.substr(val.length-1, 1); + if(lastChar == "," || lastChar == ","){ + return val.substring(0, val.length-1); + } + return val; +} + // 健康评估标题 export const healthyTitleData = [ [