<template>
    <div class='screening-first-cont'>
        <van-form ref='form'>
            <div class='title'>筛查信息</div>
            <div v-if='ageShow'>
                <div class='no-req-label mt-5'>年龄</div>
                <van-field
                    v-model='form.currentAge'
                    readonly
                    placeholder='年龄'
                    class='input-back mt-2 form-input'
                />
            </div>
            <div v-if='sexShow'>
                <div class='no-req-label mt-5'>性别</div>
                <van-field
                    v-model='form.genderName'
                    readonly
                    placeholder='性别'
                    class='input-back mt-2 form-input'
                />
            </div>

            <div v-if='medicalHistoryShow'>
                <div class='label-title mt-5'>病史</div>
                <van-field
                    v-model='form.medicalHistoryName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    :rules='rules.medicalHistoryName'
                    @click='showMedicalHistory= true'
                >
                    <template #input>
                        <span class='text-end' v-if='form.medicalHistoryName'>{{ form.medicalHistoryName }}</span>
                        <span class='text-end' v-if='!form.medicalHistoryName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showMedicalHistory' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showMedicalHistory = false' style='font-weight: 400'>取消</div>
                            <div>病史(可多选)</div>
                            <div class='blueColor' @click='medicalHistoryConfirm'>确定</div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn multiple
                                      column-1
                                      :options='medicalHistoryList'
                                      v-model:value='form.medicalHistory'
                                      :fieldNames="{text: 'name', value: 'value'}"
                                      @change='e => form.medicalHistory = checkboxReject(form.medicalHistory, [99])'
                            />
                        </div>
                    </div>
                </van-popup>
            </div>

            <div v-if='familyHistoryShow'>
                <div class='label-title mt-5'>家族史(可多选)</div>
                <van-field class='checkbox-his'>
                    <template #input>
                        <van-checkbox-group v-model='form.familyHistory' class='w-full'>
                            <div v-for='(item, index) in familyHistoryInfoList' :key='item.value'>
                                <div
                                    @click='toggle(index)'
                                    class='form-input input-back mt-2 flex justify-between'
                                    :style="{borderRadius: form.familyHistory.includes(item.value) && [1, 3, 5, 7].includes(item.value) ? '8px 8px 0px 0px ': '8px'}"
                                >
                                    <div>{{ item.name }}</div>
                                    <div>
                                        <van-checkbox
                                            :name='item.value'
                                            :ref='el => checkboxRefs[index] = el'
                                            @click.stop='toggle(index)'
                                        />
                                    </div>
                                </div>
                                <div v-for='(item2, index2) in familyHistoryList'>
                                    <div
                                        v-if='form.familyHistory.includes(item.value) && item2.diseaseType == item.value'
                                        class='relation-bis'>
                                        <div class='top-title'>以下亲人若存在{{ item2.diseaseTypeName }}病史,请填写发病年龄</div>
                                        <div class='flex flex-wrap justify-between gap-x-2.5 gap-y-2.5'>
                                            <div v-for='(item1,index1) in item2.relativeAgeList' :key='index1'
                                                 style='width: 48%;'>
                                                <div>
                                                    <van-field
                                                        colon
                                                        label-width='42px'
                                                        v-model='item1.age'
                                                        :label='item1.relativeTypeName'
                                                        placeholder='请输入'
                                                        style='padding: 8px;border-radius: 4px'
                                                    >
                                                        <template #extra>
                                                            <span class='mr-2'>岁</span>
                                                        </template>
                                                    </van-field>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>


                        </van-checkbox-group>
                    </template>
                </van-field>
            </div>

            <div v-if='highShow'>
                <div class='label-title mt-5'>身高</div>
                <van-field
                    v-model='form.height'
                    clear-icon
                    placeholder='请输入10~300之间数字,允许1位小数'
                    class='input-back mt-2 form-input'
                    :rules='rules.height'
                >
                    <template #extra>
                        <span class='mr-2'>cm</span>
                    </template>
                </van-field>
            </div>
            <div v-if='highShow'>
                <div class='label-title mt-5'>体重</div>
                <van-field
                    v-model='form.weight'
                    clear-icon
                    placeholder='请输入20~500之间数字,允许2位小数'
                    class='input-back mt-2 form-input'
                    :rules='rules.weight'
                >
                    <template #extra>
                        <span class='mr-2'>kg</span>
                    </template>
                </van-field>
            </div>
            <div v-if='highShow'>
                <div class='no-req-label mt-5'>BMI</div>
                <van-field
                    v-model='form.bmi'
                    readonly
                    placeholder='请输入'
                    class='input-back mt-2 form-input'
                >
                    <template #extra>
                        <span class='mr-2'>kg/m²</span>
                    </template>
                </van-field>
            </div>
            <div v-if='waistShow'>
                <div class='label-title mt-5'>腰围</div>
                <van-field
                    v-model='form.waistline'
                    clear-icon
                    placeholder='请输入10~150之间数字,允许1位小数'
                    class='input-back mt-2 form-input'
                    :rules='rules.waistline'
                >
                    <template #extra>
                        <span class='mr-2'>cm</span>
                    </template>
                </van-field>
            </div>

            <div v-if='exerciseShow'>
                <div class='label-title mt-5'>锻炼频率</div>
                <van-field
                    v-model='form.exerciseFrequencyName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    @click='showExerciseFrequency = true'
                    :rules='rules.exerciseFrequencyName'
                >
                    <template #input>
                        <span class='text-end' v-if='form.exerciseFrequencyName'>{{ form.exerciseFrequencyName }}</span>
                        <span class='text-end' v-if='!form.exerciseFrequencyName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showExerciseFrequency' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showExerciseFrequency = false' style='font-weight: 400'>
                                取消
                            </div>
                            <div>锻炼频率(仅单选)</div>
                            <div></div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn clearable
                                column-1
                                :options='exerciseFrequencyList'
                                v-model:value='form.exerciseFrequency'
                                :fieldNames="{text: 'name', value: 'value'}"
                                @change='exerciseFrequencyConfirm'
                            />
                        </div>
                    </div>
                </van-popup>

                <div v-if='[1, 2, 3, 5, 6].includes(form.exerciseFrequency)'>
                    <div class='no-req-label mt-5'>每次锻炼时间</div>
                    <van-field
                        v-model='form.everyExercise'
                        clear-icon
                        placeholder='请输入'
                        class='input-back mt-2 form-input'
                    >
                        <template #extra>
                            <span class='mr-2'>分钟</span>
                        </template>
                    </van-field>

                    <div class='no-req-label mt-5'>可达到中等及以上运动强度</div>
                    <van-field
                        class='no-back form-input mt-2'
                        style='padding: 0'
                    >
                        <template #input>
                            <van-radio-group v-model='form.mediumStrength'
                                             direction='horizontal'
                                             shape="dot"
                                             class='w-full doc-radio-group'>
                                <van-radio v-for="item in store.getDict('CP00120')"
                                           :key='item.value' :name='item.value'
                                           label-position='left'>{{ item.name }}
                                </van-radio>
                            </van-radio-group>
                        </template>
                    </van-field>
                </div>
            </div>

            <div v-if='womanMHShow'>
                <div class='no-req-label mt-5'>女性病史</div>
                <van-field
                    v-model='form.femaleMedicalHistoryName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    @click='showFemaleMedicalHistory= true'
                >
                    <template #input>
                        <span class='text-end' v-if='form.femaleMedicalHistoryName'>{{ form.femaleMedicalHistoryName
                            }}</span>
                        <span class='text-end' v-if='!form.femaleMedicalHistoryName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showFemaleMedicalHistory' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showFemaleMedicalHistory = false' style='font-weight: 400'>
                                取消
                            </div>
                            <div>女性病史(可多选)</div>
                            <div class='blueColor' @click='femaleMedicalHistoryConfirm'>确定</div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn multiple
                                      column-1
                                      :options="store.getDict('CP00127')"
                                      v-model:value='form.femaleMedicalHistory'
                                      :fieldNames="{text: 'name', value: 'value'}"
                            />
                        </div>
                    </div>
                </van-popup>
            </div>
            <div v-if='medicationHShow'>
                <div class='no-req-label mt-5'>用药史</div>
                <van-field
                    v-model='form.medicineHistoryName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    @click='showMedicineHistory= true'
                >
                    <template #input>
                        <span class='text-end' v-if='form.medicineHistoryName'>{{ form.medicineHistoryName }}</span>
                        <span class='text-end' v-if='!form.medicineHistoryName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showMedicineHistory' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showMedicineHistory = false' style='font-weight: 400'>取消
                            </div>
                            <div>用药史(可多选)</div>
                            <div class='blueColor' @click='medicineHistoryConfirm'>确定</div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn multiple
                                      column-1
                                      :options='medicineHistoryList'
                                      v-model:value='form.medicineHistory'
                                      :fieldNames="{text: 'name', value: 'value'}"
                            />
                        </div>
                    </div>
                </van-popup>
            </div>

            <div v-if='triglycerideShow'>
                <div class='no-req-label mt-5'>高密度脂蛋白胆固醇</div>
                <van-field
                    v-model='form.hdlCholesterin'
                    clear-icon
                    placeholder='请输入'
                    class='input-back mt-2 form-input'
                >
                    <template #extra>
                        <span class='mr-2'>mmol/L</span>
                    </template>
                </van-field>
            </div>
            <div v-if='triglycerideShow'>
                <div class='no-req-label mt-5'>甘油三酯</div>
                <van-field
                    v-model='form.triglyceride'
                    clear-icon
                    placeholder='请输入'
                    class='input-back mt-2 form-input'
                >
                    <template #extra>
                        <span class='mr-2'>mmol/L</span>
                    </template>
                </van-field>
            </div>
            <div v-if='triglycerideShow'>
                <div class='no-req-label mt-5'>总胆固醇</div>
                <van-field
                    v-model='form.serumCholesterin'
                    clear-icon
                    placeholder='请输入'
                    class='input-back mt-2 form-input'
                >
                    <template #extra>
                        <span class='mr-2'>mmol/L</span>
                    </template>
                </van-field>
            </div>

            <div v-if='babyMHShow'>
                <div class='no-req-label mt-5'>有害物质接触或婴幼儿时期病史</div>
                <van-field
                    v-model='form.touchHarmfulName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    @click='showTouchHarmful= true'
                >
                    <template #input>
                        <span class='text-end' v-if='form.touchHarmfulName'>{{ form.touchHarmfulName }}</span>
                        <span class='text-end' v-if='!form.touchHarmfulName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showTouchHarmful' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showTouchHarmful = false' style='font-weight: 400'>取消</div>
                            <div>可多选</div>
                            <div class='blueColor' @click='touchHarmfulConfirm'>确定</div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn multiple
                                      column-1
                                      :options="store.getDict('CP00130')"
                                      v-model:value='form.touchHarmful'
                                      :fieldNames="{text: 'name', value: 'value'}"
                            />
                        </div>
                    </div>
                </van-popup>
            </div>

            <div v-if='bloodPressureShow'>
                <div class='flex items-center justify-between tip-box mt-5'>
                    <div class='doc-form-label shrink-0'>现测血压(mmHg)</div>
                    <BloodPressurePanel :pressureObj='pressureObj' />
                </div>
                <div class='sub-text my-3'>第一次</div>
                <table class='w-full mb-2'>
                    <tr class='sub-text'>
                        <td>收缩压(高压)</td>
                        <td style='width: 1em'></td>
                        <td>舒张压(低压)</td>
                    </tr>
                    <tr>
                        <td class='flex items-center'>
                            <van-field v-model='form.pressureOneSbp'
                                       name='pressureOneSbp'
                                       label=''
                                       type='number'
                                       placeholder='60~300,整数'
                                       maxlength='10'
                                       :rules='rules.pressureDbp'
                                       error-message-align='left'
                                       input-align='left'
                                       class='input-back form-input'
                            />
                        </td>
                        <td class='text-center'>
                            <span class='divide'>/</span>
                        </td>
                        <td>
                            <van-field v-model='form.pressureOneDbp'
                                       name='pressureOneDbp'
                                       label=''
                                       type='number'
                                       placeholder='30~300,整数'
                                       maxlength='10'
                                       :rules='rules.pressureSbp'
                                       error-message-align='left'
                                       input-align='left'
                                       class='input-back form-input'
                            />
                        </td>
                    </tr>
                </table>
                <BloodPressureBt :pressureObj='pressureObj' @getValue='setPressureOne'>第一次测量</BloodPressureBt>
                <div class='sub-text my-3'>第二次</div>
                <table class='w-full mb-2'>
                    <tr class='sub-text'>
                        <td>收缩压(高压)</td>
                        <td style='width: 1em'></td>
                        <td>舒张压(低压)</td>
                    </tr>
                    <tr>
                        <td>
                            <van-field v-model='form.pressureTwoSbp'
                                       name='pressureTwoSbp'
                                       label=''
                                       type='number'
                                       placeholder='60~300,整数'
                                       maxlength='10'
                                       :rules='rules.pressureDbp'
                                       error-message-align='left'
                                       input-align='left'
                                       class='input-back form-input'
                            />
                        </td>

                        <td class='text-center'>
                            <span class='divide'>/</span>
                        </td>
                        <td>
                            <van-field v-model='form.pressureTwoDbp'
                                       name='pressureTwoDbp'
                                       label=''
                                       type='number'
                                       placeholder='30~300,整数'
                                       maxlength='10'
                                       :rules='rules.pressureSbp'
                                       error-message-align='left'
                                       input-align='left'
                                       class='input-back form-input'
                            />
                        </td>
                    </tr>
                </table>
                <BloodPressureBt :pressureObj='pressureObj' @getValue='setPressureTwo'>第二次测量</BloodPressureBt>
            </div>

            <div v-if='eatHabitShow'>
                <div class='label-title mt-5'>饮食习惯</div>
                <van-field
                    v-model='form.dietaryHabitName'
                    readonly
                    is-link
                    placeholder='请选择'
                    class='input-back mt-2 form-input'
                    @click='showDietaryHabit= true'
                    :rules='rules.dietaryHabitName'
                >
                    <template #input>
                        <span class='text-end' v-if='form.dietaryHabitName'>{{ form.dietaryHabitName }}</span>
                        <span class='text-end' v-if='!form.dietaryHabitName' style='color: #dfdfe1'>请选择</span>
                    </template>
                </van-field>
                <van-popup v-model:show='showDietaryHabit' position='bottom'>
                    <div class='p-4' style='height: 100%'>
                        <div class='flex justify-between items-center mb-4 pop-title'>
                            <div class='greyColor' @click='showDietaryHabit = false' style='font-weight: 400'>取消</div>
                            <div>饮食习惯(可多选)</div>
                            <div class='blueColor' @click='dietaryHabitConfirm'>确定</div>
                        </div>
                        <div style='height: 80%;overflow: auto'>
                            <CheckBtn multiple
                                      column-1
                                      :options="store.getDict('CP00131')"
                                      v-model:value='form.dietaryHabit'
                                      :fieldNames="{text: 'name', value: 'value'}"
                            />
                        </div>
                    </div>
                </van-popup>
            </div>

            <div v-if='drinkShow'>
                <div class='label-title mt-5'>饮酒情况</div>
                <div class='bg-fa mt-2'>
                    <div class='label-title lh-24'>饮酒频率</div>
                    <van-field
                        class='form-input mt-2'
                        style='padding: 0;background: #FAFAFA'
                        :rules='rules.drinkFrequency'
                    >
                        <template #input>
                            <van-radio-group v-model='form.drinkFrequency'
                                             direction='horizontal'
                                             shape="dot"
                                             class='w-full doc-radio-group-now'
                                             @change='drinkFrequencyChange'
                            >
                                <van-radio v-for="item in store.getDict('CP00132')"
                                           :key='item.value' :name='item.value'
                                           label-position='left'>{{ item.name }}
                                </van-radio>
                            </van-radio-group>
                        </template>
                    </van-field>
                </div>

                <div class='bg-f5 mt-2' v-if='[2,3,4].includes(form.drinkFrequency)'>
                    <div class='label-title lh-24'>饮酒种类</div>
                    <van-field
                        class='form-input mt-2'
                        style='padding: 0;background: #F5F5F5'
                        :rules='rules.drinkKind'
                    >
                        <template #input>
                            <div class='flex justify-between gap-x-2.5 w-full' style='background: #F5F5F5'>
                                <div v-for="(item, index) in store.getDict('CP00133')" :key='item.value' class='bg-ff'>
                                    <div
                                        @click='toggleDrink(item)'
                                        :class="['form-input', 'flex', 'justify-between', this.form.drinkKind.includes(item.value)  ? 'active-drinkKind' : '' ]"
                                    >
                                        <div>{{ item.name }}</div>
                                    </div>
                                </div>

                            </div>
                        </template>
                    </van-field>
                    <div class='mt-2' v-if='form?.drinkKind?.includes(99)'>
                        <van-field
                            v-model='form.drinkKindOther'
                            clear-icon
                            placeholder='请输入饮酒种类名称'
                            class=' mt-2 form-input'
                        >
                        </van-field>
                    </div>
                </div>

                <div class='bg-f5 mt-2' v-if='[2,3,4].includes(form.drinkFrequency)'>
                    <div class='no-req-label lh-24'>请输入日酒饮量</div>
                    <div class='flex flex-wrap justify-between gap-x-2.5 gap-y-2.5 mt-2'
                         v-if='drinkKindCapacityList.length'>
                        <div v-for='(item,index) in drinkKindCapacityList' :key='index'
                             style='width: 48%;'>
                            <div>
                                <van-field
                                    colon
                                    label-width='42px'
                                    v-model='item.drinkCapacity'
                                    :label='item.drinkKindName'
                                    placeholder='请输入'
                                    style='padding: 8px;border-radius: 4px'
                                >
                                    <template #extra>
                                        <span class='mr-2'>mL</span>
                                    </template>
                                </van-field>
                            </div>
                        </div>
                    </div>
                    <div class='mt-2'>
                        <van-field
                            colon
                            label-width='40%'
                            v-model='form.dayDrink'
                            label='平均日饮酒量'
                            placeholder='请输入'
                            style='padding: 8px;border-radius: 4px'
                        >
                            <template #extra>
                                <span class='mr-2'>mL</span>
                            </template>
                        </van-field>
                    </div>
                </div>

                <div class='bg-f5 mt-2' v-if='[2,3,4].includes(form.drinkFrequency)'>
                    <div class='no-req-label lh-24'>请输入开始饮酒年龄</div>
                    <van-field
                        colon
                        v-model='form.startDrinkAge'
                        placeholder='请输入'
                        class='mt-2'
                        style='padding: 8px;border-radius: 4px'
                        :rules='rules.startDrinkAge'
                    >
                        <template #extra>
                            <span class='mr-2'>岁</span>
                        </template>
                    </van-field>
                </div>

                <div class='bg-f5 mt-2' v-if='[2,3,4].includes(form.drinkFrequency)'>
                    <div class='label-title lh-24'>是否戒酒</div>
                    <van-field
                        class='form-input mt-2'
                        style='padding: 0;background: #F5F5F5'
                        :rules='rules.giveDrink'
                    >
                        <template #input>
                            <van-radio-group v-model='form.giveDrink'
                                             direction='horizontal'
                                             shape="dot"
                                             class='w-full doc-radio-group-now'
                                             style='background: #F5F5F5'
                            >
                                <van-radio v-for="item in store.getDict('CP00120')"
                                           :key='item.value' :name='item.value'
                                           label-position='left'>{{ item.name }}
                                </van-radio>
                            </van-radio-group>
                        </template>
                    </van-field>
                </div>

                <div class='bg-f5 mt-2' v-if='[2,3,4].includes(form.drinkFrequency) && form.giveDrink == 1'>
                    <div class='no-req-label lh-24'>请输入开始戒酒年龄</div>
                    <van-field
                        colon
                        v-model='form.giveDrinkStart'
                        placeholder='请输入'
                        class='mt-2'
                        style='padding: 8px;border-radius: 4px'
                        :rules='rules.giveDrinkStart'
                    >
                        <template #extra>
                            <span class='mr-2'>岁</span>
                        </template>
                    </van-field>
                </div>
            </div>

            <div v-if='smokeShow'>
                <div class='label-title mt-5'>吸烟情况</div>

                <div class='bg-fa mt-2'>
                    <div class='label-title lh-24'>吸烟情况</div>
                    <van-field
                        class='form-input mt-2'
                        style='padding: 0;background: #FAFAFA'
                        :rules='rules.isSmoking'
                    >
                        <template #input>
                            <van-radio-group v-model='form.isSmoking'
                                             direction='horizontal'
                                             shape="dot"
                                             class='w-full doc-radio-group-now'
                            >
                                <van-radio v-for="item in store.getDict('CP00162')"
                                           :key='item.value' :name='item.value'
                                           label-position='left'>{{ item.name }}
                                </van-radio>
                            </van-radio-group>
                        </template>
                    </van-field>
                </div>
                <div class='bg-f5 mt-2' v-if='form.isSmoking === 3'>
                    <div class='label-title lh-24'>日吸烟量</div>
                    <van-field
                        colon
                        v-model='form.daySmoking'
                        placeholder='请输入'
                        class='mt-2'
                        style='padding: 8px;border-radius: 4px'
                        :rules='rules.daySmoking'
                    >
                    </van-field>
                </div>
                <div class='bg-f5 mt-2' v-if='form.isSmoking === 3'>
                    <div class='label-title lh-24'>开始吸烟年龄</div>
                    <van-field
                        colon
                        v-model='form.startSmoking'
                        placeholder='请输入'
                        class='mt-2'
                        style='padding: 8px;border-radius: 4px'
                        :rules='rules.startSmoking'
                    >
                        <template #extra>
                            <span class='mr-2'>岁</span>
                        </template>
                    </van-field>
                </div>

                <div class='bg-f5 mt-2' v-if='form.isSmoking === 2'>
                    <div class='label-title lh-24'>戒烟年龄</div>
                    <van-field
                        colon
                        v-model='form.giveSmokingAge'
                        placeholder='请输入'
                        class='mt-2'
                        style='padding: 8px;border-radius: 4px'
                        :rules='rules.giveSmokingAge'
                    >
                        <template #extra>
                            <span class='mr-2'>岁</span>
                        </template>
                    </van-field>
                </div>

                <div class='bg-f5 mt-2' v-if='form.diseaseArrays?.includes(1)'>
                    <div class='label-title lh-24'>经常吸入二手烟(家中有吸烟者,且经常吸入二手烟)</div>
                    <van-field
                        class='form-input mt-2'
                        style='padding: 0;background: #F5F5F5'
                        :rules='rules.secondSmoking'
                    >
                        <template #input>
                            <van-radio-group v-model='form.secondSmoking'
                                             direction='horizontal'
                                             shape="dot"
                                             class='w-full doc-radio-group-now'
                                             style='background: #F5F5F5'
                            >
                                <van-radio v-for="item in store.getDict('CP00120')"
                                           :key='item.value' :name='item.value'
                                           label-position='left'>{{ item.name }}
                                </van-radio>
                            </van-radio-group>
                        </template>
                    </van-field>
                </div>
            </div>

            <div v-if='blackSpinySkinShow'>
                <div class='no-req-label mt-5'>黑棘皮病</div>
                <van-field
                    class='no-back form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <van-radio-group v-model='form.blackSpinySkin'
                                         direction='horizontal'
                                         shape="dot"
                                         class='w-full doc-radio-group'>
                            <van-radio v-for="item in store.getDict('CP00134')"
                                       :key='item.value' :name='item.value'
                                       label-position='left'>{{ item.name }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
            </div>

            <div v-if='mentalTensionShow'>
                <div class='no-req-label mt-5'>长期精神紧张</div>
                <van-field
                    class='no-back form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <van-radio-group v-model='form.mentalTension'
                                         direction='horizontal'
                                         shape="dot"
                                         class='w-full doc-radio-group'>
                            <van-radio v-for="item in store.getDict('CP00135')"
                                       :key='item.value' :name='item.value'
                                       label-position='left'>{{ item.name }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
            </div>

            <div v-if='xanthomaShow'>
                <div class='no-req-label mt-5'>皮肤或肌腱黄色瘤</div>
                <van-field
                    class='no-back form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <van-radio-group v-model='form.xanthoma'
                                         direction='horizontal'
                                         shape="dot"
                                         class='w-full doc-radio-group'>
                            <van-radio v-for="item in store.getDict('CP00135')"
                                       :key='item.value' :name='item.value'
                                       label-position='left'>{{ item.name }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
            </div>

            <div v-if='tendoIncrassationShow'>
                <div class='no-req-label mt-5'>跟腱增厚</div>
                <van-field
                    class='no-back form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <van-radio-group v-model='form.tendoIncrassation'
                                         direction='horizontal'
                                         shape="dot"
                                         class='w-full doc-radio-group'>
                            <van-radio v-for="item in store.getDict('CP00120')"
                                       :key='item.value' :name='item.value'
                                       label-position='left'>{{ item.name }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
            </div>

            <div v-if='riskScoreShow'>
                <div class='no-req-label mt-5'>中国糖尿病风险评分</div>
                <van-field
                    class='no-back form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <van-radio-group v-model='riskScoreInfo'
                                         direction='horizontal'
                                         shape="dot"
                                         class='w-full doc-radio-group'>
                            <van-radio v-for="item in store.getDict('CP00136')"
                                       :key='item.value' :name='item.value'
                                       label-position='left'>{{ item.name }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
            </div>

            <div>
                <div class='no-req-label mt-5'>知情同意书</div>
                <DocImageUpload
                    description='支持上传jpg、png、jpeg文件,大小请在10M以内'
                    lengthMessage='抱歉,最多可上传6个文件。'
                    :imageData='[]'
                    @change='(ids, option) => form.informedConsent = ids'
                    :maxLength='6'
                    class='mt-2'
                />
            </div>

            <div>
                <div class='label-title lh-24'>专病高危评估结果</div>
                <van-field
                    class='form-input mt-2'
                    style='padding: 0'
                >
                    <template #input>
                        <div class='flex  gap-x-2.5 gap-y-2.5 w-full flex-wrap' style='background: #FFFFFF'>
                            <div v-for="(item, index) in store.getDict('CP00137')" :key='item.value' class='bg-ff'>
                                <div
                                    @click='toggleResult(item)'
                                    :class="['form-input', 'bg-fa', this.specialScreenResultSelect.includes(item.value)  ? 'active-drinkKind' : '' ]"
                                >
                                    <div>{{ item.name }}</div>
                                </div>
                            </div>

                        </div>
                    </template>
                </van-field>
            </div>
        </van-form>
    </div>
</template>

<script>

import { useStore } from '@/doctor/store'
import { checkboxReject, fetchDataHandle } from '@/utils/common'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload'

const defaultForm = (info = {}) => {
    const form = {
        id: undefined,
        residentInfoId: undefined,
        diseaseArrays: [],
        currentAge: undefined,
        gender: undefined,
        genderName: undefined,
        medicalHistory: [],
        medicalHistoryName: undefined,
        familyHistory: [],
        relativeType: undefined,
        height: undefined,
        weight: undefined,
        bmi: undefined,
        waistline: undefined,
        exerciseFrequency: undefined,
        exerciseFrequencyName: undefined,
        everyExercise: undefined,
        femaleMedicalHistory: undefined,
        femaleMedicalHistoryName: undefined,
        hdlCholesterin: undefined,
        triglyceride: undefined,
        serumCholesterin: undefined,
        touchHarmful: [],
        touchHarmfulName: undefined,
        pressureOneSbp: undefined,
        pressureOneDbp: undefined,
        pressureTwoSbp: undefined,
        pressureTwoDbp: undefined,
        dietaryHabit: [],
        dietaryHabitName: undefined,
        drinkFrequency: undefined,
        startDrinkAge: undefined,
        drinkKind: [],
        drinkKindOther: undefined,
        dayDrink: undefined,
        giveDrink: undefined,
        giveDrinkStart: undefined,
        // 吸烟情况
        isSmoking: undefined,
        daySmoking: undefined,
        startSmoking: undefined,
        secondSmoking: undefined,
        // 戒烟年龄
        giveSmokingAge: undefined,
        blackSpinySkin: undefined,
        mentalTension: undefined,
        xanthoma: undefined,
        tendoIncrassation: undefined,
        riskScore: undefined,
        specialScreenResult: [],
        hypertensionHighItem: [],
        diabetesHighItem: [],
        coronaryHighItem: [],
        strokeHighItem: [],
        pulmonaryHighItem: [],
        nephrosisHighItem: [],
        dyslipemiaHighItem: [],
        // 日饮酒量
        drinkKindCapacityList: [],
        diseaseRelativeList: [],
        mediumStrength: undefined,
        medicineHistory: [],
        medicineHistoryName: undefined,
        informedConsent: undefined,
        isExerciseFive: undefined
    }
    Reflect.ownKeys(form).forEach(key => {
        if (info[key] != undefined) {
            form[key] = info[key]
        }
    })
    return form
}
export default {
    components: { DocImageUpload, BloodPressurePanel, BloodPressureBt, CheckBtn },
    props: {
        info: Object,
        diseaseArraysInfo: Array
    },
    inject: ['pressureObj'],
    data() {
        return {
            store: useStore(),
            //病史弹窗
            showMedicalHistory: false,
            //女性病史
            showFemaleMedicalHistory: false,
            //用药史
            showMedicineHistory: false,
            //有害物质接触或婴幼儿时期病史
            showTouchHarmful: false,
            //饮食习惯
            showDietaryHabit: false,
            //锻炼频率
            showExerciseFrequency: false,

            checkboxRefs: [],
            checkboxDrinkRefs: [],
            form: {},
            formRight: {
                hypertensionHighItemSelect: [],
                diabetesHighItemSelect: [],
                coronaryHighItemSelect: [],
                strokeHighItemSelect: [],
                pulmonaryHighItemSelect: [],
                nephrosisHighItemSelect: [],
                dyslipemiaHighItemSelect: []
            },
            specialScreenResultSelect: [],
            riskScoreInfo: undefined,
            // 饮酒种类及饮用量关系
            drinkKindCapacityList: [],
            familyHistoryList: [],
            imageData: [],
            rules: {
                diseaseArrays: [{ required: true, message: '请选择' }],
                medicalHistoryName: [{ required: true, message: '请选择' }],
                familyHistory: [{ required: true, message: '请选择' }],
                height: [
                    { required: true, message: '请输入' },
                    {
                        validator: (value, rule) => {
                            let res = true
                            const regex = /^\d+(\.\d{1})?$/
                            if (value && !(Number(value) >= 10 && Number(value) <= 300 && regex.test(Number(value)))) {
                                res = false
                            }
                            return res
                        },
                        message: `请输入10到300之间的数字,允许一位小数`
                    }
                ],
                weight: [
                    { required: true, message: '请输入' },
                    {
                        validator: (value, rule) => {
                            let res = true
                            const regex = /^\d+(\.\d{1,2})?$/
                            if (value && !(Number(value) >= 20 && Number(value) <= 500 && regex.test(Number(value)))) {
                                res = false
                            }
                            return res
                        },
                        message: `请输入20~500之间数字,允许2位小数`
                    }
                ],
                waistline: [
                    { required: true, message: '请输入' },
                    {
                        validator: (value, rule) => {
                            let res = true
                            const regex = /^\d+(\.\d{1})?$/
                            if (value && !(Number(value) >= 10 && Number(value) <= 150 && regex.test(Number(value)))) {
                                res = false
                            }
                            return res
                        },
                        message: `请输入10~150之间数字,允许1位小数`
                    }
                ],
                hdlCholesterin: [{
                    validator: (value, rule) => {
                        const regex = /^\d+(\.\d{1,2})?$/
                        let res = true
                        if (value && !regex.test(value)) {
                            res = false
                        }
                        return res
                    },
                    message: `请输入正确的数字`
                }],
                triglyceride: [{
                    validator: (value, rule) => {
                        const regex = /^\d+(\.\d{1,2})?$/
                        let res = true
                        if (value && !regex.test(value)) {
                            res = false
                        }
                        return res
                    },
                    message: `请输入正确的数字`
                }],
                serumCholesterin: [{
                    validator: (value, rule) => {
                        const regex = /^\d+(\.\d{1,2})?$/
                        let res = true
                        if (value && !regex.test(value)) {
                            res = false
                        }
                        return res
                    },
                    message: `请输入正确的数字`
                }],
                exerciseFrequencyName: [{ required: true, message: '请选择' }],
                dietaryHabitName: [{ required: true, message: '请选择' }],
                drinkFrequency: [{ required: true, message: '请选择' }],
                isSmoking: [{ required: true, message: '请选择' }],
                specialScreenResult: [{ required: true, message: '请选择' }],
                secondSmoking: [{ required: true, message: '请选择' }],
                drinkKind: [{ required: true, message: '请选择' }],
                startDrinkAge: [{ required: true, message: '请输入' }],
                giveDrink: [{ required: true, message: '请选择' }],
                giveDrinkStart: [{ required: true, message: '请输入' }],
                giveSmokingAge: [{ required: true, message: '请输入' }],
                startSmoking: [{ required: true, message: '请输入' }],
                daySmoking: [{ required: true, message: '请输入' }],
                everyExercise: [{ required: true, message: '请输入' }],
                mediumStrength: [{ required: true, message: '请选择' }]
            }
        }
    },
    computed: {
        //判断年龄显示隐藏
        ageShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2) || diseaseArrays.includes(3)
                || diseaseArrays.includes(5) || diseaseArrays.includes(6)) {
                res = true
            }
            return res
        },
        //判断性别显示隐藏
        sexShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(3)) {
                res = true
            }
            return res
        },
        //判断病史显示隐藏
        medicalHistoryShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2) || diseaseArrays.includes(3) || diseaseArrays.includes(4)
                || diseaseArrays.includes(5) || diseaseArrays.includes(6) || diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断家族史显示隐藏
        familyHistoryShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2) || diseaseArrays.includes(3) || diseaseArrays.includes(4)
                || diseaseArrays.includes(5) || diseaseArrays.includes(6) || diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断身高、体重、BMI显示隐藏
        highShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2) || diseaseArrays.includes(4)
                || diseaseArrays.includes(6) || diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断腰围显示隐藏
        waistShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2)) {
                res = true
            }
            return res
        },
        //判断锻炼频率显示隐藏
        exerciseShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(2) || diseaseArrays.includes(4)) {
                res = true
            }
            return res
        },
        //判断女性病史显示隐藏
        womanMHShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2)) {
                res = true
            }
            return res
        },
        //判断用药史显示隐藏
        medicationHShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2) || diseaseArrays.includes(4) || diseaseArrays.includes(6)) {
                res = true
            }
            return res
        },
        //判断高密度脂蛋白胆固醇、甘油三酯、总胆固醇显示隐藏
        triglycerideShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2)) {
                res = true
            }
            return res
        },
        //判断有害物质接触或婴幼儿时期病史显示隐藏
        babyMHShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(5)) {
                res = true
            }
            return res
        },
        //判断血压显示隐藏
        bloodPressureShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                res = true
            }
            return res
        },
        //判断饮食习惯显示隐藏
        eatHabitShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                res = true
            }
            return res
        },
        //判断饮酒情况显示隐藏
        drinkShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                res = true
            }
            return res
        },
        //判断吸烟情况显示隐藏
        smokeShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1) || diseaseArrays.includes(3) || diseaseArrays.includes(4) || diseaseArrays.includes(5) || diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断黑棘皮病显示隐藏
        blackSpinySkinShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2)) {
                res = true
            }
            return res
        },
        //判断长期精神紧张显示隐藏
        mentalTensionShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                res = true
            }
            return res
        },
        //判断皮肤或肌腱黄色瘤显示隐藏
        xanthomaShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断跟腱增厚显示隐藏
        tendoIncrassationShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(7)) {
                res = true
            }
            return res
        },
        //判断中国糖尿病风险评分显示隐藏
        riskScoreShow() {
            let res = false
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2)) {
                res = true
            }
            return res
        },
        //生成病史选择项
        medicalHistoryList() {
            //默认为无
            let result = []
            let res = [99]
            let list = this.store.getDict('CP00125')
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                let arr = [1, 2, 7]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(2)) {
                let arr = [3, 5, 18, 19]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(3)) {
                let arr = [1, 2, 7]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(4)) {
                let arr = [2, 7, 16, 17]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(5)) {
                let arr = [8, 9, 10, 11]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(6)) {
                let arr = [1, 2, 3, 5, 12, 13, 14, 15]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(7)) {
                let arr = [1, 2, 3, 5]
                res = [
                    ...res,
                    ...arr
                ]
            }
            res = Array.from(new Set(res))
            list.forEach(item1 => {
                res.forEach(item2 => {
                    if (item1.value == item2) {
                        result.push(item1)
                    }
                })
            })
            return result
        },
        //生成家族史选择项
        familyHistoryInfoList() {
            //默认为无
            let result = []
            let res = [9]
            let list = this.store.getDict('CP00149')
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(1)) {
                let arr = [2]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(2)) {
                let arr = [1]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(3)) {
                let arr = [3]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(4)) {
                let arr = [4]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(5)) {
                let arr = [5]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(6)) {
                let arr = [6]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(7)) {
                let arr = [7]
                res = [
                    ...res,
                    ...arr
                ]
            }
            res = Array.from(new Set(res))
            list.forEach(item1 => {
                res.forEach(item2 => {
                    if (item1.value == item2) {
                        result.push(item1)
                    }
                })
            })
            return result
        },
        //生成用药史选择项
        medicineHistoryList() {
            //默认为无
            let result = []
            let res = []
            let list = this.store.getDict('CP00129')
            const { diseaseArrays = [] } = this.form
            if (diseaseArrays.includes(2)) {
                let arr = [1, 2, 3, 4]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(4)) {
                let arr = [1]
                res = [
                    ...res,
                    ...arr
                ]
            }
            if (diseaseArrays.includes(6)) {
                let arr = [5]
                res = [
                    ...res,
                    ...arr
                ]
            }
            res = Array.from(new Set(res))
            list.forEach(item1 => {
                res.forEach(item2 => {
                    if (item1.value == item2) {
                        result.push(item1)
                    }
                })
            })
            return result
        },
        //锻炼频率单选list (pc端两个字典,移动端则合为一个字典提交时在分开为两个字段)
        exerciseFrequencyList() {
            let res = []
            let listOne = this.store.getDict(`CP00126`)
            // let listTwo = this.store.getDict(`CP00163`)
            let listTwo = [
                { value: 5, name: '每周5次及以上' },
                { value: 6, name: '每周不到5次' }
            ]
            return res = [...listOne, ...listTwo]

        }
    },
    watch: {
        'info': {
            handler() {
                this.initForm()
            },
            immediate: true
        },
        diseaseArraysInfo: {
            handler() {
                this.form.diseaseArrays = this.diseaseArraysInfo
            }
        },
        'form': {
            handler(now, old) {
                if (Object.keys(old).length === 0) return
                this.formChangeHandle()
            },
            deep: true
        },
        'form.height': {
            handler() {
                this.calculateBMI()
            }
        },
        'form.weight': {
            handler() {
                this.calculateBMI()
            }
        },
        //右侧高危选项变化监测
        'formRight': {
            handler(now, old) {
                if (Object.keys(old).length === 0) return
                this.changeFormRightHandle()
            },
            deep: true
        },
        // 计算日均饮酒量
        drinkKindCapacityList: {
            handler(val) {
                if (!val) {
                    this.form.dayDrink = 0
                    return
                }
                let num = 0
                val.forEach(e => {
                    if (e.drinkKind == 2) { // 啤酒
                        num = num + e.drinkCapacity * 0.1
                    } else if (e.drinkKind == 3) { // 红酒
                        num = num + e.drinkCapacity * 0.25
                    } else if (e.drinkKind == 4) { // 黄酒
                        num = num + e.drinkCapacity * 0.2
                    } else {
                        num = num + e.drinkCapacity
                    }

                })
                this.form.dayDrink = Math.round(num * 100) / 100
            },
            deep: true
        },
        //家族史
        'form.familyHistory': {
            handler() {
                //非空校验
                this.familyHistoryReq()
            }
        },
        'familyHistoryList': {
            handler(now, old) {
                if (old.length == 0) return
                if (this.form.diseaseArrays?.includes(3)) {
                    this.coronaryHigh()
                }
                //非空校验
                this.familyHistoryReq()
            },
            deep: true
        },
        //病种变更监听
        'form.diseaseArrays': {
            handler(val = []) {
                const option = this.store.getDict('CP00117')
                this.cleanFormRight()
                this.cleanMedicalHistory()
                this.cleanFamilyHistory()
                this.cleanMedicineHistory()
                this.changeFamilyHis()
            },
            immediate: true
        }
    },
    methods: {
        checkboxReject,
        //初始化表单
        initForm() {
            this.form = defaultForm(this.info)
            if (this.info.isExerciseFive == 1) {
                this.form.exerciseFrequency = 5
            }
            if (this.info.isExerciseFive == 2) {
                this.form.exerciseFrequency = 6
            }
            if (!this.info.id) {
                //是否是引用上一次复筛数据
                if (this.info.flag && this.info.flag == 'lastInfo') {
                    this.setUpdateInfo()
                } else {//新增时
                    this.form.diseaseArrays = [1, 2, 3, 4, 5, 6, 7]
                }
            } else {
                this.setUpdateInfo()
            }
        },
        //修改时 或者引用上一次复筛数据时赋值
        setUpdateInfo() {
            this.formRight.hypertensionHighItemSelect = this.form.hypertensionHighItem || []
            this.formRight.diabetesHighItemSelect = this.form.diabetesHighItem || []
            this.formRight.coronaryHighItemSelect = this.form.coronaryHighItem || []
            this.formRight.strokeHighItemSelect = this.form.strokeHighItem || []
            this.formRight.pulmonaryHighItemSelect = this.form.pulmonaryHighItem || []
            this.formRight.nephrosisHighItemSelect = this.form.nephrosisHighItem || []
            this.formRight.dyslipemiaHighItemSelect = this.form.dyslipemiaHighItem || []
            this.drinkKindCapacityList = this.form.drinkKindCapacityList || []
            this.familyHistoryList = this.form.diseaseRelativeList || []

            //修改时若中国糖尿病风险评分、专病高危评估结果存在时 以用户选择的结果为主展示
            //利用setTimeout改变值的赋值顺序让这两个值在watch事件结束后再被赋值
            setTimeout(() => {
                this.riskScoreInfo = this.form.riskScore
                this.specialScreenResultSelect = this.form.specialScreenResult || [9]
            }, 0)

            this.imageData = this.info.informedConsentUrl
        },
        //表单触发事件
        formChangeHandle() {
            //高血压
            if (this.form.diseaseArrays?.includes(1)) {
                this.hypertensionHigh()
            }
            //糖尿病
            if (this.form.diseaseArrays?.includes(2)) {
                this.diabetesHigh()
                //糖尿病风险
                this.diabetesHighCompute()
            }
            //冠心病
            if (this.form.diseaseArrays?.includes(3)) {
                this.coronaryHigh()
            }
            //脑卒中
            if (this.form.diseaseArrays?.includes(4)) {
                this.strokeHigh()
            }
            //慢阻肺
            if (this.form.diseaseArrays?.includes(5)) {
                this.pulmonaryHigh()
            }
            //慢性肾病
            if (this.form.diseaseArrays?.includes(6)) {
                this.nephrosisHigh()
            }
            //血脂异常
            if (this.form.diseaseArrays?.includes(7)) {
                this.dyslipemiaHigh()
            }
        },
        //右侧高危选项触发事件
        changeFormRightHandle() {
            let list = []
            const {
                hypertensionHighItemSelect = [],
                diabetesHighItemSelect = [],
                coronaryHighItemSelect = [],
                strokeHighItemSelect = [],
                pulmonaryHighItemSelect = [],
                nephrosisHighItemSelect = [],
                dyslipemiaHighItemSelect = []
            } = this.formRight
            //高血压高危选项
            if (hypertensionHighItemSelect.length >= 3) {
                list.push(1)
            }
            //糖尿病高危选项
            if (diabetesHighItemSelect.length >= 1) {
                list.push(2)
            }
            //冠心病高危选项
            if (coronaryHighItemSelect.length >= 3) {
                list.push(3)
            }
            //脑卒中高危选项
            if (strokeHighItemSelect.length >= 3) {
                list.push(4)
            }
            //慢阻肺高危选项
            if (pulmonaryHighItemSelect.length >= 1) {
                list.push(5)
            }
            //慢性肾脏病高危选项
            if (nephrosisHighItemSelect.length >= 2) {
                list.push(6)
            }
            //血脂异常高危选项
            if (dyslipemiaHighItemSelect.length >= 1) {
                list.push(7)
            }
            //不满足高危病种时默认为无
            if (!list.length) {
                list = [9]
            }
            list = Array.from(new Set(list))
            this.specialScreenResultSelect = list
            // this.form.specialScreenResult = this.specialScreenResultSelect
        },
        //清洗右侧高危选项表单
        cleanFormRight() {
            if (!this.form.diseaseArrays?.includes(1)) {
                this.formRight.hypertensionHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(2)) {
                this.formRight.diabetesHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(3)) {
                this.formRight.coronaryHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(4)) {
                this.formRight.strokeHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(5)) {
                this.formRight.pulmonaryHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(6)) {
                this.formRight.nephrosisHighItemSelect = []
            }
            if (!this.form.diseaseArrays?.includes(7)) {
                this.formRight.dyslipemiaHighItemSelect = []
            }
        },
        //清洗病史的选择数据(去掉不存在的病种对应的选项选择)
        cleanMedicalHistory() {
            if (!this.form.diseaseArrays.length) {
                this.form.medicalHistory = []
            } else {
                if (this.form.medicalHistory && this.form.medicalHistory.length) {
                    let res = []
                    this.medicalHistoryList.forEach(item => {
                        res.push(item.value)
                    })
                    let list = this.form.medicalHistory.filter(item => {
                            return res.includes(item)
                        }
                    ) || []
                    this.form.medicalHistory = list
                }
            }

        },
        //清洗家族史的选择数据
        cleanFamilyHistory() {
            if (!this.form.diseaseArrays.length) {
                this.form.familyHistory = []
            } else {
                if (this.form.familyHistory && this.form.familyHistory.length) {
                    let res = []
                    this.familyHistoryInfoList.forEach(item => {
                        res.push(item.value)
                    })
                    let list = this.form.familyHistory.filter(item => {
                            return res.includes(item)
                        }
                    ) || []
                    this.form.familyHistory = list
                }
            }
        },
        //清洗用药史的选择数据
        cleanMedicineHistory() {
            if (!this.form.diseaseArrays.length) {
                this.form.medicineHistory = []
            } else {
                if (this.form.medicineHistory && this.form.medicineHistory.length) {
                    let res = []
                    this.medicineHistoryList.forEach(item => {
                        res.push(item.value)
                    })
                    let list = this.form.medicineHistory.filter(item => {
                            return res.includes(item)
                        }
                    ) || []
                    this.form.medicineHistory = list
                }
            }
        },
        changeFamilyHis() {
            this.form.familyHistory = this.checkboxReject(this.form.familyHistory, [9])
            let temp = []
            this.form.familyHistory.forEach((item, index) => {
                if (item == 1 || item == 3 || item == 5 || item == 7) {
                    let name = this.store.getDictValue(this.store.getDict('CP00149'), item)
                    let base = this.familyHistoryList.filter(item1 => item1.diseaseType == item) || []
                    let obj = {
                        id_: index + 1,
                        diseaseTypeName: `${name}`,
                        diseaseType: item,
                        selectRelativeType: [],
                        checkRequired: false,
                        relativeAgeList: [
                            {
                                relativeTypeName: '父亲',
                                relativeType: 1,
                                gender: 1,
                                age: undefined,
                                inputRequired: false
                            },
                            {
                                relativeTypeName: '母亲',
                                relativeType: 2,
                                gender: 2,
                                age: undefined,
                                inputRequired: false
                            },
                            {
                                relativeTypeName: '兄弟',
                                relativeType: 3,
                                gender: 1,
                                age: undefined,
                                inputRequired: false
                            },
                            {
                                relativeTypeName: '姐妹',
                                relativeType: 4,
                                gender: 2,
                                age: undefined,
                                inputRequired: false
                            },
                            {
                                relativeTypeName: '儿子',
                                relativeType: 5,
                                gender: 1,
                                age: undefined,
                                inputRequired: false
                            },
                            { relativeTypeName: '女儿', relativeType: 6, gender: 2, age: undefined, inputRequired: false }
                        ]
                    }
                    if (base.length) {
                        obj = base[0]
                    }
                    temp.push(obj)
                }
            })
            this.familyHistoryList = temp
        },
        calculateBMI() {
            if (this.form.weight && this.form.height) {
                let res = this.form.weight / (this.form.height * this.form.height / 100 / 100)
                this.form.bmi = parseFloat(res.toFixed(1))
            } else {
                this.form.bmi = null
            }
        },
        hypertensionHigh() {
            const {
                currentAge,
                height = 0,
                weight = 0,
                waistline,
                familyHistory = [],
                isSmoking,
                medicalHistory = [],
                dietaryHabit = [],
                pressureOneSbp,
                pressureOneDbp,
                pressureTwoSbp,
                pressureTwoDbp,
                dayDrink,
                secondSmoking,
                gender,
                exerciseFrequency,
                everyExercise,
                mentalTension
            } = this.form
            let list = []
            if (((pressureOneSbp >= 120) || (pressureTwoSbp >= 120)) ||
                ((pressureOneDbp >= 80) || (pressureTwoDbp >= 80))
            ) {
                list.push(1)
            }
            if (currentAge >= 45) {
                list.push(2)
            }
            let res = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res.toFixed(1))
            if ((bmi >= 24) ||
                (gender == 2 && waistline >= 85) ||
                (gender == 1 && waistline >= 90)) {
                list.push(3)
            }
            if (familyHistory.includes(2)) {
                list.push(4)
            }
            if (dietaryHabit.includes(4)) {
                list.push(5)
            }
            if (dayDrink >= 100) {
                list.push(6)
            }
            if (isSmoking == 3 || secondSmoking == 1) {
                list.push(7)
            }
            if (exerciseFrequency == 3 || exerciseFrequency == 4 || everyExercise < 30) {
                list.push(8)
            }
            if (mentalTension == 2) {
                list.push(9)
            }
            if (medicalHistory.includes(7)) {
                list.push(10)
            }
            if (medicalHistory.includes(2)) {
                list.push(11)
            }
            this.formRight.hypertensionHighItemSelect = Array.from(new Set(list))
        },
        diabetesHigh() {
            let list = []
            const {
                currentAge,
                medicalHistory = [],
                height = 0,
                weight = 0,
                waistline,
                gender,
                exerciseFrequency,
                everyExercise,
                familyHistory = [],
                femaleMedicalHistory = [],
                blackSpinySkin,
                medicineHistory = [],
                hdlCholesterin,
                triglyceride
            } = this.form
            if (currentAge >= 40) {
                list.push(1)
            }
            if (medicalHistory.includes(19)) {
                list.push(2)
            }
            let res = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res.toFixed(1))
            if ((bmi >= 24) ||
                (gender == 2 && waistline >= 85) ||
                (gender == 1 && waistline >= 90)) {
                list.push(3)
            }
            if (exerciseFrequency == 3 || exerciseFrequency == 4 || everyExercise < 30) {
                list.push(4)
            }
            if (familyHistory.includes(1)) {
                list.push(5)
            }
            if (femaleMedicalHistory.includes(1)) {
                list.push(6)
            }
            if (femaleMedicalHistory.includes(3)) {
                list.push(7)
            }
            if (blackSpinySkin == 2) {
                list.push(8)
            }
            if (medicalHistory.includes(1) || medicineHistory.includes(1)) {
                list.push(9)
            }
            if ((hdlCholesterin != null && hdlCholesterin < 0.9) || (triglyceride != null && triglyceride > 2.22) || medicineHistory.includes(2)) {
                list.push(10)
            }
            if (medicalHistory.includes(3) || medicalHistory.includes(5)) {
                list.push(11)
            }
            if (medicineHistory.includes(3)) {
                list.push(12)
            }
            if (medicineHistory.includes(4)) {
                list.push(13)
            }
            let socre = this.diabetesHighScore()
            if (socre >= 25) {
                list.push(14)
            }
            this.formRight.diabetesHighItemSelect = Array.from(new Set(list))
        },
        //冠心病高危选择
        coronaryHigh() {
            let list = []
            const { currentAge, gender, isSmoking, medicalHistory = [], familyHistory = [] } = this.form
            if (gender == 1) {
                list.push(2)
                if (currentAge >= 45) {
                    list.push(1)
                }
            }
            if (gender == 2 && currentAge >= 55) {
                list.push(1)
            }
            if (isSmoking == 3) {
                list.push(3)
            }
            if (medicalHistory.includes(1)) {
                list.push(4)
            }
            if (medicalHistory.includes(2)) {
                list.push(5)
            }
            if (medicalHistory.includes(7)) {
                list.push(6)
            }
            if (familyHistory.includes(3)) {
                let obj = this.familyHistoryList.filter(item => item.diseaseType == 3)[0] || {}
                let objList = obj.selectRelativeType || []
                let listArry = obj?.relativeAgeList || []
                let flag = 0
                listArry.forEach(item => {
                    if (item.gender == 1 && item.age && item.age < 55) {
                        flag++
                    }
                    if (item.gender == 2 && item.age && item.age < 65) {
                        flag++
                    }
                })
                if (flag > 0 && objList.length) {
                    list.push(7)
                }
            }
            this.formRight.coronaryHighItemSelect = Array.from(new Set(list))
        },
        strokeHigh() {
            let list = []
            const {
                medicalHistory = [],
                medicineHistory = [],
                isSmoking,
                familyHistory = [],
                exerciseFrequency,
                everyExercise,
                height = 0,
                weight = 0
            } = this.form
            if (medicalHistory.includes(1) || medicineHistory.includes(1)) {
                list.push(1)
            }
            if (medicalHistory.includes(16) || medicalHistory.includes(17)) {
                list.push(2)
            }
            if (isSmoking == 3) {
                list.push(3)
            }
            if (medicalHistory.includes(7)) {
                list.push(4)
            }
            if (medicalHistory.includes(2)) {
                list.push(5)
            }
            if (exerciseFrequency == 3 || exerciseFrequency == 4 || everyExercise < 30) {
                list.push(6)
            }
            let res = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res.toFixed(1))
            if (bmi >= 26) {
                list.push(7)
            }
            if (familyHistory.includes(4)) {
                list.push(8)
            }
            this.formRight.strokeHighItemSelect = Array.from(new Set(list))
        },
        pulmonaryHigh() {
            let list = []
            const {
                currentAge,
                isSmoking,
                secondSmoking,
                medicalHistory = [],
                familyHistory = [],
                touchHarmful = []
            } = this.form
            if (currentAge >= 35) {
                list.push(1)
            }
            if (isSmoking == 3) {
                list.push(2)
            }
            if (touchHarmful.includes(1)) {
                list.push(3)
            }
            if (medicalHistory.includes(8)) {
                list.push(4)
            }
            if (medicalHistory.includes(11)) {
                list.push(5)
            }
            if (medicalHistory.includes(9)) {
                list.push(6)
            }
            if (medicalHistory.includes(10)) {
                list.push(7)
            }
            if (familyHistory.includes(5)) {
                list.push(8)
            }
            if (touchHarmful.includes(4)) {
                list.push(9)
            }
            if (touchHarmful.includes(2)) {
                list.push(10)
            }
            if (touchHarmful.includes(3)) {
                list.push(11)
            }
            if (touchHarmful.includes(5)) {
                list.push(12)
            }
            if (touchHarmful.includes(6)) {
                list.push(13)
            }
            if (touchHarmful.includes(7)) {
                list.push(14)
            }
            this.formRight.pulmonaryHighItemSelect = Array.from(new Set(list))
        },
        nephrosisHigh() {
            let list = []
            const {
                currentAge,
                familyHistory = [],
                medicalHistory = [],
                height = 0,
                weight = 0,
                medicineHistory = []
            } = this.form
            if (currentAge > 65) {
                list.push(1)
            }
            if (familyHistory.includes(6)) {
                list.push(2)
            }
            if (medicalHistory.includes(2)) {
                list.push(3)
            }
            if (medicalHistory.includes(1)) {
                list.push(4)
            }
            if (medicalHistory.includes(3) || medicalHistory.includes(5)) {
                list.push(5)
            }
            if (medicalHistory.includes(12)) {
                list.push(6)
            }
            let res = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res.toFixed(1))
            if (bmi >= 28) {
                list.push(7)
            }
            if (medicalHistory.includes(14) || medicalHistory.includes(15)) {
                list.push(8)
            }
            if (medicineHistory.includes(5)) {
                list.push(9)
            }
            if (medicalHistory.includes(13)) {
                list.push(10)
            }
            this.formRight.nephrosisHighItemSelect = Array.from(new Set(list))
        },
        dyslipemiaHigh() {
            let list = []
            const {
                currentAge,
                gender,
                medicalHistory = [],
                height = 0,
                weight = 0,
                isSmoking,
                familyHistory = [],
                xanthoma,
                tendoIncrassation
            } = this.form
            if (medicalHistory.includes(3) || medicalHistory.includes(5)) {
                list.push(1)
            }
            let res = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res.toFixed(1))
            if (medicalHistory.includes(1) || medicalHistory.includes(2) || bmi >= 28 || isSmoking == 3) {
                list.push(2)
            }
            if (familyHistory.includes(3) || familyHistory.includes(4) || familyHistory.includes(7)) {
                list.push(3)
            }
            if (xanthoma == 2) {
                list.push(4)
            }
            if (tendoIncrassation == 1) {
                list.push(5)
            }
            this.formRight.dyslipemiaHighItemSelect = Array.from(new Set(list))
        },

        diabetesHighCompute() {
            let score = this.diabetesHighScore()
            if (score < 25) {
                this.riskScoreInfo = 2
            }
            if (score >= 25) {
                this.riskScoreInfo = 1
            }
        },

        //糖尿病风险评分
        diabetesHighScore() {
            let total = 0
            const {
                currentAge,
                height = 0,
                weight = 0,
                waistline,
                gender,
                familyHistory = [],
                pressureOneSbp,
                pressureTwoSbp
            } = this.form
            //年龄分数
            if (currentAge >= 20 && currentAge <= 24) {
                total += 0
            }
            if (currentAge >= 25 && currentAge <= 34) {
                total += 4
            }
            if (currentAge >= 35 && currentAge <= 39) {
                total += 8
            }
            if (currentAge >= 40 && currentAge <= 44) {
                total += 11
            }
            if (currentAge >= 45 && currentAge <= 49) {
                total += 12
            }
            if (currentAge >= 50 && currentAge <= 54) {
                total += 13
            }
            if (currentAge >= 55 && currentAge <= 59) {
                total += 15
            }
            if (currentAge >= 60 && currentAge <= 64) {
                total += 16
            }
            if (currentAge >= 65 && currentAge <= 74) {
                total += 18
            }
            //体质分数
            let res1 = weight / (height * height / 100 / 100)
            let bmi = parseFloat(res1.toFixed(1))
            if (bmi < 22) {
                total += 0
            }
            if (bmi >= 22 && bmi <= 23.9) {
                total += 1
            }
            if (bmi >= 24 && bmi <= 29.9) {
                total += 3
            }
            if (bmi >= 30) {
                total += 5
            }
            //腰围分数 以及性别分数
            //男性
            if (gender == 1) {
                total += 2
                if (waistline < 75) {
                    total += 0
                }
                if (waistline >= 75 && waistline <= 79.9) {
                    total += 3
                }
                if (waistline >= 80 && waistline <= 84.9) {
                    total += 5
                }
                if (waistline >= 85 && waistline <= 89.9) {
                    total += 7
                }
                if (waistline >= 90 && waistline <= 94.9) {
                    total += 8
                }
                if (waistline >= 95) {
                    total += 10
                }
            }
            //女性
            if (gender == 2) {
                total += 0
                if (waistline < 70) {
                    total += 0
                }
                if (waistline >= 70 && waistline <= 74.9) {
                    total += 3
                }
                if (waistline >= 75 && waistline <= 79.9) {
                    total += 5
                }
                if (waistline >= 80 && waistline <= 84.9) {
                    total += 7
                }
                if (waistline >= 85 && waistline <= 89.9) {
                    total += 8
                }
                if (waistline >= 90) {
                    total += 10
                }
            }
            //糖尿病家族史
            if (familyHistory.includes(1)) {
                total += 6
            }
            //收缩压分数(取两次测试结果的最大值)
            let pressureSbp = pressureTwoSbp || 0
            let res = Number(pressureOneSbp || 0) - Number(pressureTwoSbp || 0)
            if (res > 0) {
                pressureSbp = pressureOneSbp
            }
            if (pressureSbp < 110) {
                total += 0
            }
            if (pressureSbp >= 110 && pressureSbp <= 119) {
                total += 1
            }
            if (pressureSbp >= 120 && pressureSbp <= 129) {
                total += 3
            }
            if (pressureSbp >= 130 && pressureSbp <= 139) {
                total += 6
            }
            if (pressureSbp >= 140 && pressureSbp <= 149) {
                total += 7
            }
            if (pressureSbp >= 150 && pressureSbp <= 159) {
                total += 8
            }
            if (pressureSbp >= 160) {
                total += 10
            }
            return total

        },
        //家族史 非空校验
        familyHistoryReq() {
            let flag = 0
            // this.familyHistoryList.forEach(item => {
            //     let list = item.selectRelativeType || []
            //     if (!item.selectRelativeType.length) {
            //         item.checkRequired = true
            //         flag++
            //     } else {
            //         item.checkRequired = false
            //     }
            //     item.relativeAgeList.forEach(item1 => {
            //         if (list.includes(item1.relativeType) && !item1.age) {
            //             item1.inputRequired = true
            //             flag++
            //         } else {
            //             item1.inputRequired = false
            //         }
            //         if (!list.includes(item1.relativeType)) {
            //             item1.age = undefined
            //         }
            //     })
            // })
            return flag
        },
        // 饮酒种类变化
        drinkKindChange(val = [], option) {
            // console.log(val, option)
            this.drinkKindCapacityList = val.map(e => {
                const item = this.drinkKindCapacityList.find(i => i.drinkKind == e) || {}
                return {
                    drinkKind: e,
                    drinkKindName: this.store.getDictValue('CP00133', e),
                    drinkCapacity: item.drinkCapacity || 0
                }
            })
        },
        drinkFrequencyChange() {
            const val = this.form.drinkFrequency
            if (!val || val == 1) {
                this.drinkKindCapacityList = []
            }
        },

        //锻炼频率弹窗确认选择
        exerciseFrequencyConfirm() {
            this.exerciseFrequencyList.forEach(item => {
                if (item.value == this.form.exerciseFrequency) {
                    this.form.exerciseFrequencyName = item.name
                }
            })
            this.showExerciseFrequency = false
        },
        //病史弹窗确认选择
        medicalHistoryConfirm() {
            let res = []
            this.medicalHistoryList.forEach(item => {
                let selected = this.form.medicalHistory.filter(i => i == item.value)
                if (selected && selected.length) {
                    res.push(item.name)
                }
            })
            this.form.medicalHistoryName = res.join()
            this.showMedicalHistory = false
        },
        //女性病史弹窗确认选择
        femaleMedicalHistoryConfirm() {
            let res = []
            this.store.getDict('CP00127').forEach(item => {
                let selected = this.form.femaleMedicalHistory.filter(i => i == item.value)
                if (selected && selected.length) {
                    res.push(item.name)
                }
            })
            this.form.femaleMedicalHistoryName = res.join()
            this.showFemaleMedicalHistory = false
        },
        //用药史弹窗确认选择
        medicineHistoryConfirm() {
            let res = []
            this.medicineHistoryList.forEach(item => {
                let selected = this.form.medicineHistory.filter(i => i == item.value)
                if (selected && selected.length) {
                    res.push(item.name)
                }
            })
            this.form.medicineHistoryName = res.join()
            this.showMedicineHistory = false
        },
        //有害物质接触或婴幼儿时期病史弹窗确认选择
        touchHarmfulConfirm() {
            let res = []
            this.store.getDict('CP00130').forEach(item => {
                let selected = this.form.touchHarmful.filter(i => i == item.value)
                if (selected && selected.length) {
                    res.push(item.name)
                }
            })
            this.form.touchHarmfulName = res.join()
            this.showTouchHarmful = false
        },
        //饮食习惯弹窗确认选择
        dietaryHabitConfirm() {
            let res = []
            this.store.getDict('CP00131').forEach(item => {
                let selected = this.form.dietaryHabit.filter(i => i == item.value)
                if (selected && selected.length) {
                    res.push(item.name)
                }
            })
            this.form.dietaryHabitName = res.join()
            this.showDietaryHabit = false
        },
        //血压仪器测量
        setPressureOne(val) {
            if (!val) return
            this.form.pressureOneSbp = val.systolicPressure
            this.form.pressureOneDbp = val.diastolicPressure
        },
        setPressureTwo(val) {
            if (!val) return
            this.form.pressureTwoSbp = val.systolicPressure
            this.form.pressureTwoDbp = val.diastolicPressure
        },

        //家族史多选
        toggle(index) {
            this.checkboxRefs[index].toggle()
            this.changeFamilyHis()
        },
        //饮酒种类
        toggleDrink(val) {
            if (this.form.drinkKind.includes(val.value)) {
                this.form.drinkKind = this.form.drinkKind.filter(e => e !== val.value)
            } else {
                this.form.drinkKind.push(val.value)
            }
            this.drinkKindChange(this.form.drinkKind)
        },
        //专病高危评估结果
        toggleResult(val) {
            if (this.specialScreenResultSelect.includes(val.value)) {
                this.specialScreenResultSelect = this.specialScreenResultSelect.filter(e => e !== val.value)
            } else {
                this.specialScreenResultSelect.push(val.value)
            }
            this.specialScreenResultSelect = this.checkboxReject(this.specialScreenResultSelect, [9])
            // this.form.specialScreenResult = this.specialScreenResultSelect
        },
        //提交
        onSubmit() {
            return new Promise((resolve, reject) => {
                this.$refs.form.validate().then(() => {

                    if (!this.specialScreenResultSelect.length) {
                        this.$message.info('请选择专病高危评估结果')
                        return
                    }
                    let exerciseFrequencyInfo = ''
                    let isExerciseFiveInfo = ''
                    const { exerciseFrequency } = this.form
                    if (exerciseFrequency == 5) {
                        exerciseFrequencyInfo = 1
                        isExerciseFiveInfo = 1
                    } else if (exerciseFrequency == 6) {
                        exerciseFrequencyInfo = 1
                        isExerciseFiveInfo = 2
                    } else {
                        exerciseFrequencyInfo = exerciseFrequency
                    }
                    let res = {
                        ...this.form,

                        exerciseFrequency: exerciseFrequencyInfo,
                        isExerciseFive: isExerciseFiveInfo,

                        hypertensionHighItem: this.formRight.hypertensionHighItemSelect,
                        diabetesHighItem: this.formRight.diabetesHighItemSelect,
                        coronaryHighItem: this.formRight.coronaryHighItemSelect,
                        strokeHighItem: this.formRight.strokeHighItemSelect,
                        pulmonaryHighItem: this.formRight.pulmonaryHighItemSelect,
                        nephrosisHighItem: this.formRight.nephrosisHighItemSelect,
                        dyslipemiaHighItem: this.formRight.dyslipemiaHighItemSelect,
                        specialScreenResult: this.specialScreenResultSelect,
                        drinkKindCapacityList: this.drinkKindCapacityList,
                        diseaseRelativeList: this.familyHistoryList,
                        riskScore: this.riskScoreInfo
                    }
                    resolve(
                        fetchDataHandle(res, {
                            diseaseArrays: 'arrToStr',
                            medicalHistory: 'arrToStr',
                            familyHistory: 'arrToStr',
                            relativeType: 'arrToStr',
                            femaleMedicalHistory: 'arrToStr',
                            medicineHistory: 'arrToStr',
                            touchHarmful: 'arrToStr',
                            dietaryHabit: 'arrToStr',
                            drinkKind: 'arrToStr',
                            specialScreenResult: 'arrToStr',
                            highItem: 'arrToStr',
                            hypertensionHighItem: 'arrToStr',
                            diabetesHighItem: 'arrToStr',
                            coronaryHighItem: 'arrToStr',
                            strokeHighItem: 'arrToStr',
                            pulmonaryHighItem: 'arrToStr',
                            nephrosisHighItem: 'arrToStr',
                            dyslipemiaHighItem: 'arrToStr'
                        })
                    )
                }).catch((e) => {
                    console.warn('FormCont error', e)
                })
            })
        }

    }

}
</script>

<style lang='less' scoped>
.title {
    font-weight: bold;
    margin-bottom: 20px;
}

.label-title {
    font-size: 13px;
    color: #595959;
    font-weight: 500;

    &::after {
        content: "*";
        color: red;
        font-weight: bold;
        margin-left: 4px;
    }
}

.no-req-label {
    font-size: 13px;
    color: #595959;
    font-weight: 500;
}

.form-input {
    padding: 8px 12px;
    border-radius: 8px;
}

.input-back {
    background: #FAFAFA;
}

.pop-title {
    color: #262626;
    font-size: 16px;
    line-height: 24px;
    font-weight: bold;
}

.checkbox-his {
    padding: 0px !important;
    margin-top: 4px;
}

.relation-bis {
    background: #F5F5F5;
    padding: 8px 12px;
    border-radius: 0px 0px 8px 8px;

    .top-title {
        color: #8C8C8C;
        font-size: 12px;
        line-height: 24px;
        margin-bottom: 4px;
    }
}

.bg-fa {
    background: #FAFAFA;
    border-radius: 8px;
    padding: 8px;
}

.bg-ff {
    background: #FFFFFF;
    border-radius: 8px;
}

.bg-f5 {
    background: #F5F5F5;
    border-radius: 8px;
    padding: 8px;
}

.doc-radio-group-now {
    column-gap: 10px;
    row-gap: 10px;
    background-color: #FAFAFA;

    .van-radio {
        background-color: #FFFFFF;
        width: 48%;
        padding: 8px 12px;
        border-radius: 8px;
        justify-content: space-between;
        margin-right: 0;
        flex-grow: 1;
    }
}

.active-drinkKind {
    //border: 1px solid var(--van-primary-color);
    background-color: #F0F6FF;
    color: var(--van-primary-color);
}

.lh-24 {
    line-height: 24px;
}

:deep(.van-popup) {
    height: 50% !important;
}

:deep(.van-cell-group--inset) {
    overflow: visible;
}

:deep(.van-cell) {
    overflow: visible;
}

:deep(.van-cell:after) {
    border-bottom: 0px;
}
</style>