diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCustomerHealthyExtended.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCustomerHealthyExtended.java index aceb2abb6..90c66cd26 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCustomerHealthyExtended.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCustomerHealthyExtended.java @@ -57,6 +57,10 @@ public class SysCustomerHealthyExtended extends BaseEntity @Excel(name = "焦虑状态评估") private String anxietyStateMessage; + /** 月经不调、多囊信息 */ + @Excel(name = "月经不调、多囊信息") + private String menstruationMessage; + /** 删除标识 0未删除 1已删除 */ private Long delFlag; } \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyExtendedMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyExtendedMapper.xml index 472c1099e..eac78d073 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyExtendedMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyExtendedMapper.xml @@ -15,11 +15,12 @@ <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> <sql id="selectSysCustomerHealthyExtendedVo"> - select id, healthy_id, waist, hipline, eat_fruits_message, long_eat_drug_message, blood_sugar_message, depressed_state_message, blood_pressure_message, anxiety_state_message, del_flag from sys_customer_healthy_extended + select id, healthy_id, waist, hipline, eat_fruits_message, long_eat_drug_message, blood_sugar_message, depressed_state_message, blood_pressure_message, anxiety_state_message, menstruation_messag,del_flag from sys_customer_healthy_extended </sql> <select id="selectSysCustomerHealthyExtendedList" parameterType="SysCustomerHealthyExtended" resultMap="SysCustomerHealthyExtendedResult"> @@ -43,6 +44,7 @@ <if test="depressedStateMessage != null">depressed_state_message,</if> <if test="bloodPressureMessage != null">blood_pressure_message,</if> <if test="anxietyStateMessage != null">anxiety_state_message,</if> + <if test="menstruationMessage != null">menstruation_message,</if> <if test="delFlag != null">del_flag,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> @@ -55,6 +57,7 @@ <if test="depressedStateMessage != null">#{depressedStateMessage},</if> <if test="bloodPressureMessage != null">#{bloodPressureMessage},</if> <if test="anxietyStateMessage != null">#{anxietyStateMessage},</if> + <if test="menstruationMessage != null">#{menstruationMessage},</if> <if test="delFlag != null">#{delFlag},</if> </trim> </insert> @@ -71,6 +74,7 @@ <if test="depressedStateMessage != null">depressed_state_message = #{depressedStateMessage},</if> <if test="bloodPressureMessage != null">blood_pressure_message = #{bloodPressureMessage},</if> <if test="anxietyStateMessage != null">anxiety_state_message = #{anxietyStateMessage},</if> + <if test="menstruationMessage != null">menstruation_message = #{menstruationMessage},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> </trim> where id = #{id} diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml index 0cf157490..0a8ce7132 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerHealthyMapper.xml @@ -557,7 +557,7 @@ </resultMap> <select id="getHealthyExtendedByHealthyId" parameterType="Long" resultMap="HealthyExtendedResult"> - select id, healthy_id, waist, hipline, eat_fruits_message, long_eat_drug_message, blood_sugar_message, depressed_state_message, blood_pressure_message, anxiety_state_message from sys_customer_healthy_extended where del_flag = 0 and healthy_id = #{id} limit 1 + select id, healthy_id, waist, hipline, eat_fruits_message, long_eat_drug_message, blood_sugar_message, depressed_state_message, blood_pressure_message, anxiety_state_message,menstruation_message from sys_customer_healthy_extended where del_flag = 0 and healthy_id = #{id} limit 1 </select> </mapper> \ No newline at end of file diff --git a/stdiet-ui/src/components/HealthyForm/Form1.vue b/stdiet-ui/src/components/HealthyForm/Form1.vue index 165015ee8..959ffc575 100644 --- a/stdiet-ui/src/components/HealthyForm/Form1.vue +++ b/stdiet-ui/src/components/HealthyForm/Form1.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1" style="margin-top: 10px;">{{healthyData['titleArray'][0]}}</p> + <p class="p_title_1" style="margin-top: 10px;">{{getTitle()}}</p> <p style="font-size: 15px; margin-bottom: 12px;margin-top: 10px;">请您确认下方姓名、手机号是否正确</p> <el-form-item label="真实姓名" prop="name"> <el-input v-model="form.name" :readonly="true" placeholder="请输入真实姓名" maxlength="20"/> @@ -73,6 +73,9 @@ export default { }); } }, + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 0); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form3.vue b/stdiet-ui/src/components/HealthyForm/Form3.vue index 837a7061b..c8bc84842 100644 --- a/stdiet-ui/src/components/HealthyForm/Form3.vue +++ b/stdiet-ui/src/components/HealthyForm/Form3.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][2]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、家庭调味品</p> <el-form-item :label="'(1) 调味品种类'" prop="condiment" class="margin-left"> <el-checkbox-group v-model="form.condiment"> @@ -50,7 +50,9 @@ export default { }; }, methods: { - + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 2); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form4.vue b/stdiet-ui/src/components/HealthyForm/Form4.vue index ed5fb2c8c..be6f9088f 100644 --- a/stdiet-ui/src/components/HealthyForm/Form4.vue +++ b/stdiet-ui/src/components/HealthyForm/Form4.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][3]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、您三餐的习惯</p> <el-form-item :label="'(1) 早餐习惯'" prop="breakfast" class="margin-left"> <el-radio-group v-model="form.breakfastType"> @@ -151,7 +151,9 @@ export default { }; }, methods: { - + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 3); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form5.vue b/stdiet-ui/src/components/HealthyForm/Form5.vue index 8f3e07b1d..a09fcf88e 100644 --- a/stdiet-ui/src/components/HealthyForm/Form5.vue +++ b/stdiet-ui/src/components/HealthyForm/Form5.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][4]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、您每天的饮水习惯</p> <el-form-item label="(1) 每天饮水量(毫升)" prop="waterNum" class="margin-left"> <el-input-number v-model="form.waterNum" :step="50" :min="0"></el-input-number> @@ -145,7 +145,9 @@ export default { }; }, methods: { - + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 4); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form6.vue b/stdiet-ui/src/components/HealthyForm/Form6.vue index 55be8660a..0c11c1b88 100644 --- a/stdiet-ui/src/components/HealthyForm/Form6.vue +++ b/stdiet-ui/src/components/HealthyForm/Form6.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][5]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、运动频率</p> <el-form-item label="(1) 每周运动情况" prop="motionSituation" class="margin-left"> <div> @@ -60,7 +60,9 @@ export default { }; }, methods: { - + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 5); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form7.vue b/stdiet-ui/src/components/HealthyForm/Form7.vue index e967675cb..f698e4e5b 100644 --- a/stdiet-ui/src/components/HealthyForm/Form7.vue +++ b/stdiet-ui/src/components/HealthyForm/Form7.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][6]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、您的睡眠状况</p> <el-form-item label="(1) 一般晚上几点睡" prop="sleepTime" class="margin-left"> <el-time-select v-model="form.sleepTime" :picker-options="{ start: '00:00', step: '01:00', end: '24:00' }" placeholder="请选择时间" :editable="false"/> @@ -43,7 +43,9 @@ export default { }; }, methods: { - + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 6); + }, }, props: { form: { diff --git a/stdiet-ui/src/components/HealthyForm/Form8.vue b/stdiet-ui/src/components/HealthyForm/Form8.vue index 57a822e76..932593bda 100644 --- a/stdiet-ui/src/components/HealthyForm/Form8.vue +++ b/stdiet-ui/src/components/HealthyForm/Form8.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData['titleArray'][7]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、本人病史情况</p> <el-form-item label="(1) 病史体征(可多选)" prop="physicalSignsId" class="margin-left"> <el-select v-model="form.physicalSignsId" multiple placeholder="请选择"> @@ -161,6 +161,9 @@ export default { }; }, methods: { + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 7); + }, //获取湿气 getMoistureDictData() { if(this.flag == 0){ diff --git a/stdiet-ui/src/components/HealthyForm/Form9.vue b/stdiet-ui/src/components/HealthyForm/Form9.vue index 949bc58d3..95727ac60 100644 --- a/stdiet-ui/src/components/HealthyForm/Form9.vue +++ b/stdiet-ui/src/components/HealthyForm/Form9.vue @@ -1,6 +1,6 @@ <template> <div> - <p class="p_title_1">{{healthyData.extendHealthyIndex.indexOf(form.conditioningProjectId) != -1 ? '十、体检报告' : healthyData['titleArray'][8]}}</p> + <p class="p_title_1">{{getTitle()}}</p> <p class="p_title_2">1、体检报告</p> <el-form-item label="(1) 请上传相应的体检报告" prop="fileList" class="margin-left"> <el-upload style="margin-left: 20px;" @@ -22,6 +22,7 @@ <el-button style="margin-left: 10px;" size="small" @click="removeFileList()">移除文件</el-button> <div slot="tip" class="el-upload__tip">1、最多可上传三份,且每份文件不超过20M <br>2、仅支持bmp,gif, jpg, jpeg, png, doc, docx, xls, xlsx, ppt, pptx, html, htm, txt, rar, zip, gz, bz2, pdf格式文件 + <br><span style="color:red">{{ form.conditioningProjectId == 3 ? '3、体检报告必须包含精子活力检查、阴道彩超、地中海贫血基因筛查、甲状腺功能检查、叶酸代谢基因检测五个方面' : ""}}</span> </div> </el-upload> </el-form-item> @@ -59,6 +60,9 @@ export default { }; }, methods: { + getTitle(){ + return this.healthyData.getTitle(this.form.conditioningProjectId, 8); + }, uploadFile(){ if(this.upload.fileList.length > 0 && this.form.medicalReport.length != this.upload.fileList.length){ this.$refs.upload.submit(); diff --git a/stdiet-ui/src/components/HealthyForm/FormExtended.vue b/stdiet-ui/src/components/HealthyForm/FormExtended.vue index 3065f6e2c..0dc4ac3d0 100644 --- a/stdiet-ui/src/components/HealthyForm/FormExtended.vue +++ b/stdiet-ui/src/components/HealthyForm/FormExtended.vue @@ -6,8 +6,9 @@ <div v-show="form.conditioningProjectId == 6"> <p class="p_title_2">1、餐前餐后血糖</p> <div style="margin-top:10px"> - <div class="margin-left"><span>餐前:</span><el-input placeholder="输入血糖数值" v-model="form.healthyExtend.bloodSugarMessage.beforeMealBloodSugar" maxlength="100" style="width:50%"></el-input><span class="margin-left">mmol/L</span></div> - <div class="margin-left" style="margin-top:8px;"><span>餐后两小时:</span><el-input style="width:50%;" v-model="form.healthyExtend.bloodSugarMessage.afterMealBloodSugar" maxlength="100" placeholder="输入血糖数值"></el-input><span class="margin-left">mmol/L</span></div> + <div class="margin-left"><span>餐前:</span><el-input placeholder="输入血糖数值" v-model="form.healthyExtend.bloodSugarMessage.beforeMealBloodSugar" maxlength="100" style="width:40%"></el-input><span class="margin-left">mmol/L</span></div> + <div class="margin-left" style="margin-top:8px;"><span>餐后两小时:</span><el-input style="width:40%;" v-model="form.healthyExtend.bloodSugarMessage.afterMealBloodSugar" maxlength="100" placeholder="输入血糖数值"></el-input><span class="margin-left">mmol/L</span></div> + <div class="margin-left" style="margin-top:8px;"><span>糖化血红蛋白:</span><el-input style="width:40%;" v-model="form.healthyExtend.bloodSugarMessage.sugarHemoglobin" maxlength="100" placeholder="输入糖化血红蛋白数值"></el-input><span class="margin-left">mmol/L</span></div> </div> <p class="p_title_2">2、血糖水平以及测量时间</p> <el-form-item :label="'(1) 是否有规律测血糖'" class="margin-left"> @@ -66,6 +67,15 @@ <el-radio :label="1" >是</el-radio> <el-radio :label="0" >否</el-radio> </el-radio-group> + <div style="margin-top:8px;"><span>若存在体重变化,请您描述一下变化情况</span> + <el-input type="textarea" + v-model="form.healthyExtend.bloodSugarMessage.weightChangeDescribe" + placeholder="近三个月体重变化情况" + maxlength="200" + show-word-limit + rows="3" + ></el-input> + </div> </el-form-item> </div> @@ -121,7 +131,7 @@ </el-radio-group> <div style="margin-top:8px;"><span>若存在请选择对应症状</span> <el-checkbox-group v-model="form.healthyExtend.bloodPressureMessage.inferiorSymptom"> - <el-checkbox v-for="(item,index) in healthyData['syndromeNameArray']" :label="item.name" :key="index">{{ item.name }}</el-checkbox> + <el-checkbox v-for="(item,index) in healthyData['syndromeNameArray']" :label="item.value" :key="index">{{ item.name }}</el-checkbox> </el-checkbox-group> </div> @@ -188,6 +198,174 @@ </el-form-item> </div> </div> + <!-- 月经不调、多囊卵巢综合症 --> + <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"> + <div class="margin-left"><span class="text-span">月经周期:</span><el-input placeholder="输入月经周期" v-model="form.healthyExtend.menstruationMessage.menstrualCycle" maxlength="100" style="width:40%"></el-input><span class="margin-left">天</span></div> + <div class="margin-left text-span" style="margin-top:8px;"><span>月经天数:</span><el-input style="width:40%;" v-model="form.healthyExtend.menstruationMessage.menstrualDays" maxlength="100" placeholder="输入月经天数"></el-input><span class="margin-left">天</span></div> + </el-form-item> + </div> + <el-form-item label="(2) 月经大概预估量" class="margin-left"> + <el-input type="textarea" + v-model="form.healthyExtend.menstruationMessage.menstrualForecast" + placeholder="请描述下大概预估量,可以参考用的姨妈纸的量,比如日用280,换几次" + maxlength="100" + show-word-limit + rows="3" + ></el-input> + </el-form-item> + <el-form-item label="(3) 月经推迟时长" class="margin-left"> + <el-input type="textarea" + v-model="form.healthyExtend.menstruationMessage.menstrualDelayDays" + placeholder="请描述下推迟时长,可以填具体推迟天数,也可以填写具体的时间,如3个月2次之类的" + maxlength="100" + show-word-limit + 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" + placeholder="请描述下提前时长,可以填具体推迟天数,也可以填写具体的时间,如3个月2次之类的" + maxlength="100" + show-word-limit + 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> + <el-radio :label="0" >否</el-radio> + </el-radio-group> + <div style="margin-top:8px;"><span class="text-span">若存在闭经,请您描述一下闭经时长</span> + <el-input maxlength="100" + v-model="form.healthyExtend.bloodSugarMessage.amenorrhoeaDays" + placeholder="请输入闭经时长" + ></el-input> + </div> + </el-form-item> + + + <el-form-item label="(5) 月经颜色" class="margin-left"> + <el-radio-group v-model="form.healthyExtend.menstruationMessage.menstrualColor"> + <el-radio v-for="(item,index) in healthyData['menstrualColorArray']" :label="item.value" :key="index" >{{ item.name }}</el-radio> + </el-radio-group> + <div style="margin-top:8px"> + <span class="text-span">其他颜色:</span> + <el-input maxlength="100" + v-model="form.healthyExtend.menstruationMessage.otherMenstrualColor" + placeholder="请输入其他颜色" + style="width:50%" + ></el-input> + </div> + </el-form-item> + <el-form-item label="(6) 月经形状" class="margin-left"> + <el-radio-group v-model="form.healthyExtend.menstruationMessage.menstrualCharacter"> + <el-radio v-for="(item,index) in healthyData['menstrualCharacterArray']" :label="item.value" :key="index">{{ item.name }}</el-radio> + </el-radio-group> + <div style="margin-top:8px"> + <span class="text-span">其他形状:</span> + <el-input maxlength="100" + v-model="form.healthyExtend.menstruationMessage.otherMenstrualCharacter" + placeholder="请输入其他形状" + style="width:50%" + ></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"> + <el-radio :label="1" >是</el-radio> + <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> + + <p class="p_title_2">3、药物情况</p> + <el-form-item label="(1)、是否用药" class="margin-left"> + <el-radio-group v-model="form.healthyExtend.menstruationMessage.medicationFlag"> + <el-radio :label="1" >是</el-radio> + <el-radio :label="0" >否</el-radio> + </el-radio-group> + <div style="margin-top:8px;"><span class="text-span">若存在用药,请描述具体名称、剂量、服用时间等</span> + <el-input maxlength="100" + v-model="form.healthyExtend.bloodSugarMessage.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"> + + <el-input type="textarea" + v-model="form.healthyExtend.menstruationMessage.otherDescriptions" + placeholder="请输入其他补充" + maxlength="200" + show-word-limit + rows="3" + ></el-input> + + </el-form-item> + + </div> </div> </template> <script> @@ -261,6 +439,18 @@ export default { margin-right: 5px; } + .text-span{ + color:#606266; + font-weight: 700; + font-size: 14px + } + + .text-span-min{ + color:#606266; + font-weight: 400; + font-size: 13px + } + </style> diff --git a/stdiet-ui/src/components/PhysicalSignsDialog/index.vue b/stdiet-ui/src/components/PhysicalSignsDialog/index.vue index ff8b2fb65..7231f57e9 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" + v-show="dataType == 0 && healthyData.conditioningProjectId == 0" @click="generateReport" plain >下载报告</el-button @@ -25,7 +25,7 @@ v-show="dataType == 0" @click="handleEditGuidanceClick" plain - >{{guidanceButtonNmae ? guidanceButtonNmae : '减脂指导'}}</el-button + >{{guidanceButtonNmae ? guidanceButtonNmae : '指导'}}</el-button > <el-button v-hasPermi="['custom:healthy:edit']" @@ -108,7 +108,8 @@ style="margin-bottom: 50px" :key="index" > - <div> + <!-- 备孕 --> + <div v-if="index > 0 || healthyDataConstData['notExperienceIndex'].indexOf(healthyData.conditioningProjectId) == -1"> <p class="p_title_1" style="margin-top: 5px"> {{ getTitle(index+1) }} </p> @@ -277,6 +278,7 @@ export default { }, data() { return { + healthyDataConstData: healthyData, logo, visible: false, showFlag: false, @@ -317,145 +319,9 @@ export default { //健康评估每个模板标题,与调查表保持一致 titleArray: healthyData["titleArray"], // 健康评估标题 - healthyTitleData: [ - [ - ["创建时间", "客户姓名", "手机号"], - ["调理项目", "性别", "年龄"], - ["身高(厘米)", "体重(斤)", "腰围(厘米)"], - ["臀围(厘米)", "地域", "BMI"], - ], - [ - ["减脂经历", "减脂遇到的困难", "减脂是否反弹"], - ["是否意识到生活习惯是减脂关键", "", ""], - ], - [ - ["调味品种", "烹调方式", "烹调频次"], - ["洗菜方式", "", ""], - ], - [ - ["早餐习惯", "早餐吃的食物", "午餐习惯"], - ["晚餐习惯", "正餐中素菜占比", "最常吃的肉类"], - ["晚餐时间", "每周吃夜宵次数", "夜宵通常吃的食物"], - ["食物的冷热偏好", "食物的口味偏好", "平均每周吃生蔬菜几次"], - ["每周吃生蔬菜的频次类型", "平均每天吃水果次数", "吃水果的时间段"], - ["平时吃水果的频次", "经常吃的水果以及份量","一餐吃几碗饭"], - ["吃几成饱","吃饭速度", "饮食特点"], - ["常吃的零食","有无服用营养保健品", "营养保健品品牌名"], - ["营养保健品产品名","服用营养保健品频次", "忌口过敏食物"], - ], - [ - ["每天的饮水量", "喜欢喝什么水", "喝水习惯"], - ["常喝的饮品的每周频次", "是否喝酒", "喝酒种类"], - ["对应酒的量", "是否抽烟", "抽烟频次和烟龄"], - ["是否经常抽二手烟", "工作行业", "工作性质"], - ["排便次数", "排便时间段", "排便的形状"], - ["排便的气味", "排便的速度", "排便的颜色"], - ], - [ - ["每周运动次数", "每次运动的时长", "每天运动的时间"], - ["运动", "运动场地", ""], - ], - [ - ["睡觉时间", "睡眠质量", "是否有辅助入睡药物"], - ["辅助睡眠类药物名称", "是否经常熬夜", "熬夜频次"], - ], - [ - ["病史体征", "湿气数据", "气血数据"], - ["家族疾病史", "手术史", "近期是否做过手术"], - ["手术恢复情况", "是否长期服用药物", "长期服用的药物"], - ["是否出现过过敏症状", "过敏症状", "过敏源"], - ], - [["体检报告(1)", "体检报告(2)", "体检报告(3)"]], - [ - ["餐前餐后血糖", "是否有规律测血糖", "测量血糖时间"], - ["近期血糖水平", "是否有低血糖反应", "是否有出现并发症"], - ["并发症情况", "存在症状", "近三个月体重是否有变化"], - - ], - [ - ["餐前餐后血压", "是否有规律测血压", "测量血压时间"], - ["近期血压水平", "是否有低血压反应", "是否有出现并发症"], - ["并发症情况", "存在症状", "近三个月体重是否有变化"] - ], - [ - ["你认为你是一个容易焦虑或紧张的人吗","最近一段时间,你是否比平时更感到焦虑或忐忑不安","是否有一些特殊场合或情景更容易使得你紧张、焦虑"], - ["你曾经有过惊恐发作吗.即突然发生的强烈不适感或心慌、眩晕、感到憋气或呼吸困难等症状","",""] - ], - [ - ["过去几周(或几个月)是否感觉到无精打采、伤感、或对生活的乐趣减少","除了不开心之外,是否比平时更加悲观或想哭","经常有早醒吗(事实上不需那么早醒来)"], - ["近来是否经常想到活着没有意思","",""] - ] - ], + healthyTitleData: healthyData['healthyTitleData'], // 健康评估属性 - healthyValueData: [ - [ - ["createTime", "name", "phone"], - ["conditioningProject", "sex", "age"], - ["tall", "weight", "healthyExtend,waist"], - ["healthyExtend,hipline", "position", "bmi"], - ], - [ - ["experience", "difficulty", "rebound"], - ["crux", "", ""], - ], - [ - ["condiment", "cookingStyle", "cookingStyleRate"], - ["washVegetablesStyle", "", ""], - ], - [ - ["breakfastType", "breakfastFood", "lunchType"], - ["dinner", "vegetableRate", "commonMeat"], - ["dinnerTime", "supperNum", "supperFood"], - ["dietHotAndCold", "dietFlavor", "vegetablesNum"], - ["vegetablesRateType", "fruitsNum", "fruitsTime"], - ["fruitsRate", "healthyExtend,eatFruitsMessage", "riceNum"], - [ "riceFull","eatingSpeed", "makeFoodType"], - ["snacks","healthProductsFlag", "healthProductsBrand"], - ["healthProductsName","healthProductsWeekRate", "dishesIngredient"], - ], - [ - ["waterNum", "waterType", "waterHabit"], - ["drinksNum", "drinkWineFlag", "drinkWineClassify"], - ["drinkWineAmount", "smokeFlag", "smokeRate"], - ["secondSmoke", "workIndustry", "workType"], - ["defecationNum", "defecationTime", "defecationShape"], - ["defecationSmell", "defecationSpeed", "defecationColor"], - ], - [ - ["motionNum", "motionDuration", "motionTime"], - ["motion", "motionField", ""], - ], - [ - ["sleepTime", "sleepQuality", "sleepDrugFlag"], - ["sleepDrug", "stayupLateFlag", "stayupLateWeekNum"], - ], - [ - ["physicalSigns", "moistureDate", "bloodData"], - ["familyIllnessHistory", "operationHistory", "nearOperationFlag"], - ["recoveryeSituation", "longEatDrugFlag", "longEatDrugClassify"], - ["allergyFlag", "allergySituation", "allergen"], - ], - [["medicalReport_one", "medicalReport_two", "medicalReport_three"]], - [ - ["mealBloodSugar", "measureBloodSugarFlag", "measureBloodSugarTime"], - ["nearBloodSugar", "lowBloodSugarFlag", "complicationFlag"], - ["complication", "inferiorSymptom", "weightChangeFlag"] - ], - [ - ["mealBloodPressure", "measureBloodPressureFlag", "measureBloodPressureTime"], - ["nearBloodPressure", "lowBloodPressureFlag", "pressureComplicationFlag"], - ["pressureComplication", "pressureInferiorSymptom", "pressureWeightChangeFlag"], - ], - [ - ["easyAnxiousFlag","upsetRecently","nervousOnSpecialOccasionsFlag"], - ["terrifiedFlag","",""] - ], - [ - ["listlessRecentlyFlag","cryRecentlyFlag","wakeUpEarlyRecentlyFlag"], - ["noFunLiving","",""] - ] - - ], + healthyValueData: healthyData['healthyValueData'], extendedTitleArray:['十、高血糖信息评估',"十、高血压信息评估","十一、焦虑信息评估","十二、抑郁信息评估"], copyValue: "", detailHealthy: null, @@ -502,10 +368,8 @@ export default { this.showFlag = false; if (res.data.customerHealthy) { if(res.data.type == 0){ - //处理healthyExtend扩展数据 - healthyData["needJSONFieldName"].forEach(function (item, index) { - res.data.customerHealthy.healthyExtend[item] = res.data.customerHealthy.healthyExtend[item] != null ? JSON.parse(res.data.customerHealthy.healthyExtend[item]) : null; - }); + //json字符串转json对象 + res.data.customerHealthy.healthyExtend = healthyData.dealHealthyExtendJson(res.data.customerHealthy.healthyExtend, true); } //判断是体征还是健康评估 this.dataType = res.data.type; @@ -814,46 +678,10 @@ export default { (detailHealthy.tall / 100) / (detailHealthy.tall / 100) ).toFixed(1); - //常吃水果以及份量 - let eatFruitsMessage = ""; - if(detailHealthy.healthyExtend.eatFruitsMessage != null && detailHealthy.healthyExtend.eatFruitsMessage.length > 0){ - detailHealthy.healthyExtend.eatFruitsMessage.forEach((item,index) => { - eatFruitsMessage += (eatFruitsMessage == "" ? "" : ", ") + item.name + "/" + item.num; - }); - } - detailHealthy.healthyExtend.eatFruitsMessage = eatFruitsMessage; - detailHealthy.mealBloodSugar = "餐前血糖:"+(detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar+"mmol/L"))+", " - +"餐后两小时血糖:"+(detailHealthy.healthyExtend.bloodSugarMessage.afterMealBloodSugar == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.afterMealBloodSugar+"mmol/L")); - detailHealthy.measureBloodSugarFlag = detailHealthy.healthyExtend.bloodSugarMessage.measureBloodSugarFlag == 1 ? "是" : "否"; - detailHealthy.measureBloodSugarTime = detailHealthy.healthyExtend.bloodSugarMessage.measureBloodSugarTime; - detailHealthy.nearBloodSugar = detailHealthy.healthyExtend.bloodSugarMessage.nearBloodSugar; - detailHealthy.lowBloodSugarFlag = (detailHealthy.healthyExtend.bloodSugarMessage.lowBloodSugarFlag == 1 ? "是" : "否") + ", 出现时间:"+detailHealthy.healthyExtend.bloodSugarMessage.lowBloodSugarTime; - detailHealthy.complicationFlag = detailHealthy.healthyExtend.bloodSugarMessage.complicationFlag == 1 ? "是" : "否"; - detailHealthy.complication = detailHealthy.healthyExtend.bloodSugarMessage.complication; - detailHealthy.inferiorSymptom = (detailHealthy.healthyExtend.bloodSugarMessage.inferiorSymptomFlag == 1 ? "是" : "否") + ", 具体症状:"+detailHealthy.healthyExtend.bloodSugarMessage.inferiorSymptom.join(","); - detailHealthy.weightChangeFlag = detailHealthy.healthyExtend.bloodSugarMessage.weightChangeFlag == 1 ? "是" : "否"; - detailHealthy.mealBloodPressure = "餐前血压:"+(detailHealthy.healthyExtend.bloodPressureMessage.beforeMealBloodPressure == null ? "" : (detailHealthy.healthyExtend.bloodPressureMessage.beforeMealBloodPressure+"mmHg"))+", " - +"餐后两小时血压:"+(detailHealthy.healthyExtend.bloodPressureMessage.afterMealBloodPressure == null ? "" : (detailHealthy.healthyExtend.bloodPressureMessage.afterMealBloodPressure+"mmHg")); - detailHealthy.measureBloodPressureFlag = detailHealthy.healthyExtend.bloodPressureMessage.measureBloodPressureFlag == 1 ? "是" : "否"; - detailHealthy.measureBloodPressureTime = detailHealthy.healthyExtend.bloodPressureMessage.measureBloodPressureTime; - detailHealthy.nearBloodPressure = detailHealthy.healthyExtend.bloodPressureMessage.nearBloodPressure; - detailHealthy.lowBloodPressureFlag = (detailHealthy.healthyExtend.bloodPressureMessage.lowBloodPressureFlag == 1 ? "是" : "否") + ", 出现时间:"+detailHealthy.healthyExtend.bloodPressureMessage.lowBloodPressureTime; - detailHealthy.pressureComplicationFlag = detailHealthy.healthyExtend.bloodPressureMessage.complicationFlag == 1 ? "是" : "否"; - detailHealthy.pressureComplication = detailHealthy.healthyExtend.bloodPressureMessage.complication; - detailHealthy.pressureInferiorSymptom = (detailHealthy.healthyExtend.bloodPressureMessage.inferiorSymptomFlag == 1 ? "是" : "否") + ", 具体症状:"+detailHealthy.healthyExtend.bloodPressureMessage.inferiorSymptom.join(","); - detailHealthy.pressureWeightChangeFlag = detailHealthy.healthyExtend.bloodPressureMessage.weightChangeFlag == 1 ? "是" : "否"; + - detailHealthy.easyAnxiousFlag = detailHealthy.healthyExtend.anxietyStateMessage.easyAnxiousFlag == 1 ? "是" : "否"; - detailHealthy.upsetRecently = detailHealthy.healthyExtend.anxietyStateMessage.upsetRecently == 1 ? "是" : "否"; - detailHealthy.nervousOnSpecialOccasionsFlag = detailHealthy.healthyExtend.anxietyStateMessage.nervousOnSpecialOccasionsFlag == 1 ? "是" : "否"; - detailHealthy.terrifiedFlag = detailHealthy.healthyExtend.anxietyStateMessage.terrifiedFlag == 1 ? "是" : "否"; - detailHealthy.listlessRecentlyFlag = detailHealthy.healthyExtend.depressedStateMessage.listlessRecentlyFlag == 1 ? "是" : "否"; - detailHealthy.cryRecentlyFlag = detailHealthy.healthyExtend.depressedStateMessage.cryRecentlyFlag == 1 ? "是" : "否"; - detailHealthy.wakeUpEarlyRecentlyFlag = detailHealthy.healthyExtend.depressedStateMessage.wakeUpEarlyRecentlyFlag == 1 ? "是" : "否"; - detailHealthy.noFunLiving = detailHealthy.healthyExtend.depressedStateMessage.noFunLiving == 1 ? "是" : "否"; - - this.detailHealthy = detailHealthy; + 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++) { @@ -992,7 +820,8 @@ export default { this.editGuidanceShow(true); this.$refs["physicalSignsGuidanceDialog"].showDialog( this.data, - this.healthyData + this.healthyData, + this.guidanceButtonNmae ); }, editGuidanceShow(flag) { diff --git a/stdiet-ui/src/components/PhysicalSignsEdit/index.vue b/stdiet-ui/src/components/PhysicalSignsEdit/index.vue index 1c17cafcf..2bef65479 100644 --- a/stdiet-ui/src/components/PhysicalSignsEdit/index.vue +++ b/stdiet-ui/src/components/PhysicalSignsEdit/index.vue @@ -14,12 +14,15 @@ v-model="showModuleArray" @change="changeShowModule()" > - <el-checkbox - v-for="(item, index) in healthyData['titleArray']" - :label="index" - :key="index" - >{{ getTitle(index) }}</el-checkbox - > + <template v-for="(item, index) in healthyData['titleArray']"> + <el-checkbox + v-if="index != 1 || healthyData['notExperienceIndex'].indexOf(form.conditioningProjectId) == -1" + :label="index" + :key="index" + >{{ getTitle(index) }}</el-checkbox + > + </template> + </el-checkbox-group> </el-form-item> </el-form> diff --git a/stdiet-ui/src/components/PhysicalSignsGuidance/index.vue b/stdiet-ui/src/components/PhysicalSignsGuidance/index.vue index 44b2ddf62..c409ca17d 100644 --- a/stdiet-ui/src/components/PhysicalSignsGuidance/index.vue +++ b/stdiet-ui/src/components/PhysicalSignsGuidance/index.vue @@ -10,7 +10,7 @@ :rows="25" maxlength="300" show-word-limit - placeholder="请输入减脂指导" + placeholder="请输入指导内容" v-model="form.guidance"> </el-input> </el-form-item> @@ -45,9 +45,9 @@ export default { }; }, methods: { - showDialog(data, healthy) { + showDialog(data, healthy,guidanceButtonNmae) { this.data = data; - this.title = "修改"+`「${data.name}」`+"减脂指导"; + this.title = "修改"+guidanceButtonNmae;//"修改"+`「${data.name}」`+""+guidanceButtonNmae+"指导"; this.form.id = healthy.id; this.form.guidance = healthy.guidance; this.visible = true; diff --git a/stdiet-ui/src/utils/healthyData.js b/stdiet-ui/src/utils/healthyData.js index 06a7a9db2..b3fdb6434 100644 --- a/stdiet-ui/src/utils/healthyData.js +++ b/stdiet-ui/src/utils/healthyData.js @@ -1,13 +1,29 @@ export const titleArray = [ - "一、基础信息", - "二、减脂经历评估", - "三、食品安全评估", - "四、饮食结构评估", - "五、生活习惯评估", - "六、运动习惯评估", - "七、睡眠质量评估", - "八、既往病史/用药史评估", - "九、体检报告" + "基础信息", + "减脂经历评估", + "食品安全评估", + "饮食结构评估", + "生活习惯评估", + "运动习惯评估", + "睡眠质量评估", + "既往病史/用药史评估", + "体检报告" +]; + +export const titleNumArray = [ + "一、", + "二、", + "三、", + "四、", + "五、", + "六、", + "七、", + "八、", + "九、", + "十、", + "十一、", + "十二、", + "十三、" ]; export const condimentArray = [ @@ -332,6 +348,44 @@ export const syndromeNameArray = [ { name: "视力下降", value: "8" } ]; +//月经颜色 +export const menstrualColorArray = [ + { name: "鲜红色", value: "1" }, + { name: "褐色", value: "2" }, + { name: "暗黑色", value: "3" } +]; + +//月经形状 +export const menstrualCharacterArray = [ + { name: "带血块", value: "1" }, + { name: "豆腐渣", value: "2" }, + { name: "正常", value: "3" } +]; + +//痛经形状 +export const menstrualNatureArray = [ + { name: "无", value: "0" }, + { name: "生理性(原发性)", value: "1" }, + { name: "病理性(继发性,如子宫内膜炎)", value: "2" } +]; + +//痛经类型 +export const menstrualTypeArray = [ + { name: "无", value: "0" }, + { name: "气滞血瘀型", value: "1" }, + { name: "寒湿凝滞型", value: "2" }, + { name: "气血两虚型", value: "3" }, + { name: "湿热瘀结型", value: "4" } +]; + +//痛经类型特点说明 +export const menstrualTypeIntroduceArray = [ + { name: "气滞血瘀型", value: "经血排出不顺畅、颜色深有血块,血块排出后疼痛就减少" }, + { name: "寒湿凝滞型", value: "小腹冷痛、热敷或者喝热汤后有缓解,怕冷手脚冰凉,经量少,颜色深有血块,便溏" }, + { name: "气血两虚型", value: "小腹隐痛、月经稀少、颜色淡、脸色黄白没力气,吃不下还便溏" }, + { name: "湿热瘀结型", value: "湿热瘀结型,特点是经期疼痛、经血深红粘稠,腰部胀痛,或者有低热,小便黄,便秘" } +]; + //需要将数组转成字符串的属性名称,包含对象数组、字符串数组 export const arrayName = [ "condiment", @@ -512,7 +566,8 @@ export const needJSONFieldName = [ "bloodSugarMessage", "bloodPressureMessage", "anxietyStateMessage", - "depressedStateMessage" + "depressedStateMessage", + "menstruationMessage" ]; //健康信息处理,将数组转为字符串 @@ -698,23 +753,42 @@ export function dealHealthy(customerHealthy) { return customerHealthy; } -export const extendHealthyTitle = {"0":"减脂","5":"降血压","6":"降血糖"}; -export const projectName = {"0":"减脂","5":"高血压","6":"高血糖"}; -export const extendHealthyIndex = [5, 6]; +export const extendHealthyTitle = {"0":"减脂","5":"降血压","6":"降血糖","3": "备孕营养", "1": "月经不调", "2": "多囊调理", "11":"心脑血管调理"}; +export const projectName = {"0":"减脂","5":"高血压","6":"高血糖","3": "备孕营养", "1":"月经不调", "2":"多囊卵巢综合症"}; +//需要填写慢病调查问卷的项目 +export const extendHealthyIndex = [5, 6, 1, 2]; +//跳过减脂经历问卷的项目 +export const notExperienceIndex = [3,1,2]; export function getTitleKey(projectId){ - return extendHealthyTitle[projectId+""] ? extendHealthyTitle[projectId+""] : extendHealthyTitle["0"]; + return extendHealthyTitle[projectId+""] != null ? extendHealthyTitle[projectId+""] : extendHealthyTitle["0"]; } export function getTitle(projectId, index){ if(extendHealthyIndex.includes(projectId)){ - if(index == 1){ - return "二、"+getTitleKey(projectId)+"经历评估"; + //跳过了减脂经历 + if(notExperienceIndex.includes(projectId)){ + if(index > 1){ + return titleNumArray[index-1] + titleArray[index]; + }else{ + return titleNumArray[index]+titleArray[index]; + } }else{ - return titleArray[index]; + if(index == 1){ + return titleNumArray[index]+getTitleKey(projectId)+"经历评估"; + }else if(index == 8){ + return titleNumArray[index+1] + titleArray[index]; + }else{ + return titleNumArray[index]+titleArray[index]; + } } }else{ - return titleArray[index]; + //跳过了减脂经历 + if(notExperienceIndex.includes(projectId) && index > 1){ + return titleNumArray[index-1] + titleArray[index]; + }else{ + return titleNumArray[index]+titleArray[index]; + } } } @@ -728,3 +802,291 @@ export function getTitleShowArray(projectId){ return array; } +/** + * 新增、查询展示时用于json与json字符串互相转换 + * @param {*} healthyExtend 健康扩展数据 + * @param {*} jsonFlag true json字符串转JSON false json对象转json字符串 + */ +export function dealHealthyExtendJson(healthyExtend, jsonFlag){ + //处理healthyExtend扩展数据 + needJSONFieldName.forEach(function (item, index) { + healthyExtend[item] = healthyExtend[item] != null ? (jsonFlag ? JSON.parse(healthyExtend[item]) : JSON.stringify(healthyExtend[item])) : null; + }); + return healthyExtend; +} + + +export const extendedYesNoAttrName = [ + //焦虑 + {"targetAttrName": "easyAnxiousFlag", "healthyAttrName": "anxietyStateMessage,easyAnxiousFlag"}, + {"targetAttrName": "upsetRecently", "healthyAttrName": "anxietyStateMessage,upsetRecently"}, + {"targetAttrName": "nervousOnSpecialOccasionsFlag", "healthyAttrName": "anxietyStateMessage,nervousOnSpecialOccasionsFlag"}, + {"targetAttrName": "terrifiedFlag", "healthyAttrName": "anxietyStateMessage,terrifiedFlag"}, + //抑郁 + {"targetAttrName": "listlessRecentlyFlag", "healthyAttrName": "depressedStateMessage,listlessRecentlyFlag"}, + {"targetAttrName": "cryRecentlyFlag", "healthyAttrName": "depressedStateMessage,cryRecentlyFlag"}, + {"targetAttrName": "wakeUpEarlyRecentlyFlag", "healthyAttrName": "depressedStateMessage,wakeUpEarlyRecentlyFlag"}, + {"targetAttrName": "noFunLiving", "healthyAttrName": "depressedStateMessage,noFunLiving"}, + //高血糖 + {"targetAttrName": "measureBloodSugarFlag", "healthyAttrName": "bloodSugarMessage,measureBloodSugarFlag"}, + {"targetAttrName": "lowBloodSugarFlag", "healthyAttrName": "bloodSugarMessage,lowBloodSugarFlag"}, + {"targetAttrName": "complicationFlag", "healthyAttrName": "bloodSugarMessage,complicationFlag"}, + {"targetAttrName": "inferiorSymptom", "healthyAttrName": "bloodSugarMessage,inferiorSymptomFlag"}, + {"targetAttrName": "weightChangeFlag", "healthyAttrName": "bloodSugarMessage,weightChangeFlag"}, + + {"targetAttrName": "amenorrhoeaFlag", "healthyAttrName": "menstruationMessage,amenorrhoeaFlag"}, + + + + +] + +//单选的value转成对应name +export function getStringBySigleValue(array, value){ + if(value == undefined || value == null){ + return ""; + } + let val = ""; + array.forEach((item,index) => { + if(item.value == value){ + val = item.name; + } + }) + return val; +} + +//多选的value转成对应name +export function getStringByMuchValue(array, valueArray){ + if(valueArray == undefined || valueArray == null || valueArray.length == 0){ + return ""; + } + let val = []; + array.forEach((item,index) => { + if(valueArray.includes(item.value)){ + val.push(item.name); + } + }) + return val.join(","); +} + +export function dealHealthyExtend(detailHealthy){ + //将0、1处理成是、否 + extendedYesNoAttrName.forEach((item,index) => { + let array = item.healthyAttrName.split(","); + detailHealthy[item.targetAttrName] = (array.length > 1 ? detailHealthy.healthyExtend[array[0]][array[1]] : detailHealthy.healthyExtend[array[0]]) == 1 ? '是' : '否'; + }) + + //常吃水果以及份量 + let eatFruitsMessage = ""; + if(detailHealthy.healthyExtend.eatFruitsMessage != null && detailHealthy.healthyExtend.eatFruitsMessage.length > 0){ + detailHealthy.healthyExtend.eatFruitsMessage.forEach((item,index) => { + eatFruitsMessage += (eatFruitsMessage == "" ? "" : ", ") + item.name + "/" + item.num; + }); + } + + //高血糖 + detailHealthy.healthyExtend.eatFruitsMessage = eatFruitsMessage; + detailHealthy.mealBloodSugar = "餐前血糖:"+(detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.beforeMealBloodSugar+"mmol/L"))+", " + +"餐后两小时血糖:"+(detailHealthy.healthyExtend.bloodSugarMessage.afterMealBloodSugar == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.afterMealBloodSugar+"mmol/L")) + +",糖化血红蛋白:"+(detailHealthy.healthyExtend.bloodSugarMessage.sugarHemoglobin == null ? "" : (detailHealthy.healthyExtend.bloodSugarMessage.sugarHemoglobin+"mmol/L")) + detailHealthy.measureBloodSugarTime = detailHealthy.healthyExtend.bloodSugarMessage.measureBloodSugarTime; + detailHealthy.nearBloodSugar = detailHealthy.healthyExtend.bloodSugarMessage.nearBloodSugar; + detailHealthy.lowBloodSugarFlag = detailHealthy.lowBloodSugarFlag + ", 出现时间:"+nullToString(detailHealthy.healthyExtend.bloodSugarMessage.lowBloodSugarTime); + detailHealthy.complication = detailHealthy.healthyExtend.bloodSugarMessage.complication; + detailHealthy.inferiorSymptom = detailHealthy.inferiorSymptom +", 具体症状:"+getStringByMuchValue( syndromeNameArray, detailHealthy.healthyExtend.bloodSugarMessage.inferiorSymptom); + detailHealthy.weightChangeFlag = detailHealthy.weightChangeFlag + ",具体变化情况:"+detailHealthy.healthyExtend.bloodSugarMessage.weightChangeDescribe; + + //高血压 + detailHealthy.mealBloodPressure = "餐前血压:"+(detailHealthy.healthyExtend.bloodPressureMessage.beforeMealBloodPressure == null ? "" : (detailHealthy.healthyExtend.bloodPressureMessage.beforeMealBloodPressure+"mmHg"))+", " + +"餐后两小时血压:"+(detailHealthy.healthyExtend.bloodPressureMessage.afterMealBloodPressure == null ? "" : (detailHealthy.healthyExtend.bloodPressureMessage.afterMealBloodPressure+"mmHg")); + detailHealthy.measureBloodPressureFlag = detailHealthy.healthyExtend.bloodPressureMessage.measureBloodPressureFlag == 1 ? "是" : "否"; + detailHealthy.measureBloodPressureTime = detailHealthy.healthyExtend.bloodPressureMessage.measureBloodPressureTime; + detailHealthy.nearBloodPressure = detailHealthy.healthyExtend.bloodPressureMessage.nearBloodPressure; + detailHealthy.lowBloodPressureFlag = (detailHealthy.healthyExtend.bloodPressureMessage.lowBloodPressureFlag == 1 ? "是" : "否") + ", 出现时间:"+nullToString(detailHealthy.healthyExtend.bloodPressureMessage.lowBloodPressureTime); + detailHealthy.pressureComplicationFlag = detailHealthy.healthyExtend.bloodPressureMessage.complicationFlag == 1 ? "是" : "否"; + detailHealthy.pressureComplication = detailHealthy.healthyExtend.bloodPressureMessage.complication; + 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.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); + +} + +export function nullToString(val){ + return (val == undefined || val == null) ? "" : val; +} + +// 健康评估标题 +export const healthyTitleData = [ + [ + ["创建时间", "客户姓名", "手机号"], + ["调理项目", "性别", "年龄"], + ["身高(厘米)", "体重(斤)", "腰围(厘米)"], + ["臀围(厘米)", "地域", "BMI"], + ], + [ + ["减脂经历", "减脂遇到的困难", "减脂是否反弹"], + ["是否意识到生活习惯是减脂关键", "", ""], + ], + [ + ["调味品种", "烹调方式", "烹调频次"], + ["洗菜方式", "", ""], + ], + [ + ["早餐习惯", "早餐吃的食物", "午餐习惯"], + ["晚餐习惯", "正餐中素菜占比", "最常吃的肉类"], + ["晚餐时间", "每周吃夜宵次数", "夜宵通常吃的食物"], + ["食物的冷热偏好", "食物的口味偏好", "平均每周吃生蔬菜几次"], + ["每周吃生蔬菜的频次类型", "平均每天吃水果次数", "吃水果的时间段"], + ["平时吃水果的频次", "经常吃的水果以及份量","一餐吃几碗饭"], + ["吃几成饱","吃饭速度", "饮食特点"], + ["常吃的零食","有无服用营养保健品", "营养保健品品牌名"], + ["营养保健品产品名","服用营养保健品频次", "忌口过敏食物"], + ], + [ + ["每天的饮水量", "喜欢喝什么水", "喝水习惯"], + ["常喝的饮品的每周频次", "是否喝酒", "喝酒种类"], + ["对应酒的量", "是否抽烟", "抽烟频次和烟龄"], + ["是否经常抽二手烟", "工作行业", "工作性质"], + ["排便次数", "排便时间段", "排便的形状"], + ["排便的气味", "排便的速度", "排便的颜色"], + ], + [ + ["每周运动次数", "每次运动的时长", "每天运动的时间"], + ["运动", "运动场地", ""], + ], + [ + ["睡觉时间", "睡眠质量", "是否有辅助入睡药物"], + ["辅助睡眠类药物名称", "是否经常熬夜", "熬夜频次"], + ], + [ + ["病史体征", "湿气数据", "气血数据"], + ["家族疾病史", "手术史", "近期是否做过手术"], + ["手术恢复情况", "是否长期服用药物", "长期服用的药物"], + ["是否出现过过敏症状", "过敏症状", "过敏源"], + ], + [["体检报告(1)", "体检报告(2)", "体检报告(3)"]], + [ + ["餐前餐后血糖", "是否有规律测血糖", "测量血糖时间"], + ["近期血糖水平", "是否有低血糖反应", "是否有出现并发症"], + ["并发症情况", "存在症状", "近三个月体重是否有变化"], + + ], + [ + ["餐前餐后血压", "是否有规律测血压", "测量血压时间"], + ["近期血压水平", "是否有低血压反应", "是否有出现并发症"], + ["并发症情况", "存在症状", "近三个月体重是否有变化"] + ], + [ + ["你认为你是一个容易焦虑或紧张的人吗","最近一段时间,你是否比平时更感到焦虑或忐忑不安","是否有一些特殊场合或情景更容易使得你紧张、焦虑"], + ["你曾经有过惊恐发作吗.即突然发生的强烈不适感或心慌、眩晕、感到憋气或呼吸困难等症状","",""] + ], + [ + ["过去几周(或几个月)是否感觉到无精打采、伤感、或对生活的乐趣减少","除了不开心之外,是否比平时更加悲观或想哭","经常有早醒吗(事实上不需那么早醒来)"], + ["近来是否经常想到活着没有意思","",""] + ], + [ + ["月经周期、天数", "月经预估量", "月经推迟时长"], + ["月经提前时长", "是否闭经、闭经时长", "月经颜色"], + ["月经形状","痛经情况","痛经类型"], + ["用药情况","是否有生育计划","是否同房出血"], + ["是否排卵期出血","是否出现胰岛素抵抗","其他补充"] + ] +] + +// 健康评估属性 +export const healthyValueData = [ + [ + ["createTime", "name", "phone"], + ["conditioningProject", "sex", "age"], + ["tall", "weight", "healthyExtend,waist"], + ["healthyExtend,hipline", "position", "bmi"], + ], + [ + ["experience", "difficulty", "rebound"], + ["crux", "", ""], + ], + [ + ["condiment", "cookingStyle", "cookingStyleRate"], + ["washVegetablesStyle", "", ""], + ], + [ + ["breakfastType", "breakfastFood", "lunchType"], + ["dinner", "vegetableRate", "commonMeat"], + ["dinnerTime", "supperNum", "supperFood"], + ["dietHotAndCold", "dietFlavor", "vegetablesNum"], + ["vegetablesRateType", "fruitsNum", "fruitsTime"], + ["fruitsRate", "healthyExtend,eatFruitsMessage", "riceNum"], + [ "riceFull","eatingSpeed", "makeFoodType"], + ["snacks","healthProductsFlag", "healthProductsBrand"], + ["healthProductsName","healthProductsWeekRate", "dishesIngredient"], + ], + [ + ["waterNum", "waterType", "waterHabit"], + ["drinksNum", "drinkWineFlag", "drinkWineClassify"], + ["drinkWineAmount", "smokeFlag", "smokeRate"], + ["secondSmoke", "workIndustry", "workType"], + ["defecationNum", "defecationTime", "defecationShape"], + ["defecationSmell", "defecationSpeed", "defecationColor"], + ], + [ + ["motionNum", "motionDuration", "motionTime"], + ["motion", "motionField", ""], + ], + [ + ["sleepTime", "sleepQuality", "sleepDrugFlag"], + ["sleepDrug", "stayupLateFlag", "stayupLateWeekNum"], + ], + [ + ["physicalSigns", "moistureDate", "bloodData"], + ["familyIllnessHistory", "operationHistory", "nearOperationFlag"], + ["recoveryeSituation", "longEatDrugFlag", "longEatDrugClassify"], + ["allergyFlag", "allergySituation", "allergen"], + ], + [["medicalReport_one", "medicalReport_two", "medicalReport_three"]], + [ + ["mealBloodSugar", "measureBloodSugarFlag", "measureBloodSugarTime"], + ["nearBloodSugar", "lowBloodSugarFlag", "complicationFlag"], + ["complication", "inferiorSymptom", "weightChangeFlag"] + ], + [ + ["mealBloodPressure", "measureBloodPressureFlag", "measureBloodPressureTime"], + ["nearBloodPressure", "lowBloodPressureFlag", "pressureComplicationFlag"], + ["pressureComplication", "pressureInferiorSymptom", "pressureWeightChangeFlag"], + ], + [ + ["easyAnxiousFlag","upsetRecently","nervousOnSpecialOccasionsFlag"], + ["terrifiedFlag","",""] + ], + [ + ["listlessRecentlyFlag","cryRecentlyFlag","wakeUpEarlyRecentlyFlag"], + ["noFunLiving","",""] + ], + [ + ["menstrualCycle", "menstrualForecast", "menstrualDelayDays"], + ["menstrualAdvanceDays", "amenorrhoeaDays", "menstrualColor"], + ["menstrualCharacter","menstrualNature","menstrualType"], + ["medication","familyPlann","sameRoomBleed"], + ["ovulationBleed","insulinResistanceFlag","otherDescriptions"] + ] +] + diff --git a/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue b/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue index efa46efb3..6e0c16c50 100644 --- a/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue +++ b/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue @@ -222,7 +222,11 @@ export default { "complication": null, "inferiorSymptomFlag": 0, "inferiorSymptom": [], - "weightChangeFlag": 0 + "weightChangeFlag": 0, + //糖化血红蛋白 + "sugarHemoglobin": null, + //体重变化描述 + "weightChangeDescribe": null }, //高血压评估 bloodPressureMessage:{ @@ -252,6 +256,51 @@ export default { "cryRecentlyFlag":0, "wakeUpEarlyRecentlyFlag":0, "noFunLiving":0 + }, + //月经不调/多囊问卷信息 + menstruationMessage:{ + //月经周期(单位:天) + menstrualCycle: null, + //月经天数 + menstrualDays: null, + //月经预估量 + menstrualForecast: null, + //推迟天数 + menstrualDelayDays: null, + //提前天数 + menstrualAdvanceDays: null, + //是否闭经 + amenorrhoeaFlag: 0, + //闭经时长 + amenorrhoeaDays: null, + //颜色 + menstrualColor: null, + //其他颜色 + otherMenstrualColor: null, + //形状 + menstrualCharacter: null, + //其他形状 + otherMenstrualCharacter: null, + //是否痛经 + menstrualPainFlag: 0, + //痛经性质 + menstrualNature: "0", + //痛经类型 + menstrualType: "0", + //是否用药 + medicationFlag: 0, + //药物情况描述 + medication: null, + //有无生育计划 + familyPlann: 0, + //同房出血 + sameRoomBleed: 0, + //排卵期出血 + ovulationBleed: 0, + //是否出现胰岛素抵抗 + insulinResistanceFlag: 0, + //其他补充描述 + otherDescriptions: null } } }, @@ -355,10 +404,7 @@ export default { }); let cusMessageExtended = Object.assign({}, this.form.healthyExtend); //处理healthyExtend扩展数据 - this.healthyData["needJSONFieldName"].forEach(function (item, index) { - cusMessageExtended[item] = cusMessageExtended[item] != null ? JSON.stringify(cusMessageExtended[item]) : null; - }); - cusMessage.healthyExtend = cusMessageExtended; + cusMessage.healthyExtend = this.healthyData.dealHealthyExtendJson(cusMessageExtended, false); addCustomerHealthy(cusMessage) .then((response) => { if (response.code === 200) { @@ -400,11 +446,17 @@ export default { } } if((this.stepActive == 7 && step > 0) || (this.stepActive == 9 && step < 0)){ - // + //跳过慢病调理问卷 if(this.healthyData.extendHealthyIndex.indexOf(this.form.conditioningProjectId) == -1){ step = step * 2; } } + if((this.stepActive == 0 && step > 0) || (this.stepActive == 2 && step < 0)){ + //跳过减脂经历 + if(this.healthyData.notExperienceIndex.indexOf(this.form.conditioningProjectId) != -1){ + step = step * 2; + } + } this.stepArray[this.stepActive] = false; this.stepActive = this.stepActive + step; this.stepArray[this.stepActive] = true;