燕园
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

954 lines
33 KiB

<template>
<view>
<view v-for="(item, index) in infoList" :key="index">
<template v-for="(colItem, itemIndex) in item">
<view v-if="colItem.showType === 1" :key="itemIndex" class="flex flex-col mx-4 border-b">
<view class="my-3 flex justify-between items-center text-sm" @click="changeShow(index, itemIndex)">
{{ colItem.name }}
<u-icon name="arrow-up" class="ml-2" color="#909399" v-if="colItem.show"></u-icon>
<u-icon name="arrow-down" class="ml-2" color="#909399" v-else></u-icon>
</view>
<view v-if="colItem.show" class="pb-2">
<!-- 单选 -->
<view v-if="colItem.type === 1">
<u-radio-group v-model="colItem.value">
<u-radio
@change="change($event, index, itemIndex, colItem.type)"
v-for="(radioItem, radioIndex) in colItem.radioList"
:key="radioIndex"
:name="radioItem"
>
<view class="py-1">{{ radioItem }}</view>
</u-radio>
</u-radio-group>
<u-input
v-if="colItem.showOther"
:placeholder="`请输入其他${colItem.name}`"
v-model="colItem.otherValue"
:clearable="false"
@blur="change(colItem.otherValue, index, itemIndex, 99)"
/>
</view>
<!-- 多选 -->
<view v-if="colItem.type === 5">
<u-checkbox-group>
<u-checkbox
@change="change($event, index, itemIndex, colItem.type)"
v-model="checkboxItem.checked"
v-for="(checkboxItem, checkboxIndex) in colItem.checkList"
:key="checkboxIndex"
:name="checkboxItem.name"
>
<view class="py-1">{{ checkboxItem.name }}</view>
</u-checkbox>
</u-checkbox-group>
<u-input
v-if="colItem.showOther"
:placeholder="`请输入其他${colItem.name}`"
v-model="colItem.otherValue"
:clearable="false"
@blur="change(colItem.otherValue, index, itemIndex, 99)"
/>
</view>
<!-- 失眠 -->
<view v-if="colItem.type === 10">
<u-radio-group v-model="colItem.value" class="flex flex-col" @change="change($event, index, itemIndex, colItem.type)">
<u-radio class="flex mb-1" :name="0"><text class="py-1 text-sm">否</text></u-radio>
<u-radio class="flex mb-1" :name="1">
<view class="flex flex-nowrap items-center py-1 text-sm">
是,每天能睡
<input
class="mx-1 w-12 h-6 text-center border-b"
v-model="colItem.value1"
:clearable="false"
type="number"
@change="changeInput(colItem.value1, index, itemIndex, 'value1')"
/>
小时
</view>
</u-radio>
</u-radio-group>
</view>
<!-- 吸烟 -->
<view v-if="colItem.type === 11">
<u-radio-group v-model="colItem.value" class="flex flex-col" @change="change($event, index, itemIndex, colItem.type)">
<u-radio class="flex mb-1 w-full" :name="0"><text class="py-1 text-sm">否</text></u-radio>
<u-radio class="flex mb-1" :name="1">
<view class="flex flex-nowrap items-center py-1 text-sm">
曾经是,但已经戒烟,已戒
<input
class="mx-1 w-12 h-6 text-center border-b"
v-model="colItem.value1"
:clearable="false"
type="number"
@change="changeInput(colItem.value1, index, itemIndex, 'value1')"
/>
</view>
</u-radio>
<u-radio class="flex mb-1" :name="2">
<view class="flex flex-nowrap items-center py-1 text-sm">
是,烟龄
<input
class="mx-1 w-12 h-6 text-center border-b"
v-model="colItem.value2"
:clearable="false"
type="number"
@change="changeInput(colItem.value2, index, itemIndex, 'value2')"
/>
年,每天
<input
class="mx-1 w-12 h-6 text-center border-b"
:border="true"
v-model="colItem.value3"
type="number"
@change="changeInput(colItem.value3, index, itemIndex, 'value3')"
/>只
</view>
</u-radio>
</u-radio-group>
</view>
<!-- 饮酒 -->
<view v-if="colItem.type === 12">
<u-radio-group v-model="colItem.value" class="flex flex-col" @change="change($event, index, itemIndex, colItem.type)">
<u-radio class="flex mb-1" :name="0"><text class="py-1 text-sm">否</text></u-radio>
<u-radio class="flex mb-1" :name="1">
<view class="flex flex-nowrap items-center py-1 text-sm">
曾经是,但已经戒酒,已戒
<input
class="mx-1 w-12 h-6 text-center border-b"
placeholder=" "
v-model="colItem.value1"
:clearable="false"
type="number"
@change="changeInput(colItem.value1, index, itemIndex, 'value1')"
/>
</view>
</u-radio>
<u-radio class="flex mb-1" :name="2"><text class="py-1 text-sm">是</text></u-radio>
</u-radio-group>
<!-- 饮酒种类 -->
<view class="mt-2 flex flex-col" v-if="colItem.showClasses">
<view>饮酒种类</view>
<u-radio-group v-model="colItem.classesValue" class="my-2">
<u-radio
@change="changeInput($event, index, itemIndex, 'classesValue')"
v-for="(radioItem, classRadioIndex) in colItem.radioList"
:key="classRadioIndex"
:name="radioItem"
>
<text class="py-1 text-sm">{{ radioItem }}</text>
</u-radio>
</u-radio-group>
<u-input
v-if="colItem.showOther"
placeholder="请输入其他种类"
v-model="colItem.otherValue"
:clearable="false"
@blur="changeInput(colItem.otherValue, index, itemIndex, 'otherValue')"
/>
</view>
</view>
<!-- 饮茶 -->
<view v-if="colItem.type === 13">
<u-radio-group v-model="colItem.value" class="flex flex-col" @change="change($event, index, itemIndex, colItem.type)">
<u-radio class="flex mb-1" :name="0"><text class="py-1 text-sm">否</text></u-radio>
<u-radio class="flex mb-1" :name="1">
<view class="flex flex-nowrap items-center py-1 text-sm">
曾经是,但已经不喝,已不喝
<input
class="mx-1 w-12 h-6 text-center border-b"
v-model="colItem.value1"
:clearable="false"
type="number"
@change="changeInput(colItem.value1, index, itemIndex, 'value1')"
/>
</view>
</u-radio>
<u-radio class="flex mb-1" :name="2">
<view class="flex flex-nowrap items-center py-1 text-sm">
已持续
<input
class="mx-1 w-12 h-6 text-center border-b"
v-model="colItem.value2"
:clearable="false"
type="number"
@change="changeInput(colItem.value2, index, itemIndex, 'value2')"
/>
</view>
</u-radio>
</u-radio-group>
<!-- 饮茶种类 -->
<view class="mt-2 flex flex-col" v-if="colItem.showClasses">
<view>饮茶种类</view>
<u-radio-group v-model="colItem.classesValue" class="my-2">
<u-radio
@change="changeInput($event, index, itemIndex, 'classesValue')"
v-for="(radioItem, classIndex) in colItem.classesList"
:key="classIndex"
:name="radioItem"
>
<text class="py-1 text-sm">{{ radioItem }}</text>
</u-radio>
</u-radio-group>
<view>饮茶频率</view>
<u-radio-group v-model="colItem.frequencyValue" class="my-2">
<u-radio
@change="changeInput($event, index, itemIndex, 'frequencyValue')"
v-for="(radioItem, frequencyIndex) in colItem.frequencyList"
:key="frequencyIndex"
:name="radioItem"
>
<text class="py-1 text-sm">{{ radioItem }}</text>
</u-radio>
</u-radio-group>
</view>
</view>
<!-- 单选 有id -->
<view v-if="colItem.type === 14">
<u-radio-group v-model="colItem.value">
<u-radio
@change="change($event, index, itemIndex, colItem.type)"
v-for="(radioItem, radioIndex) in colItem.radioList"
:key="radioIndex"
:name="radioItem.id"
>
<view class="py-1 text-sm">{{ radioItem.value }}</view>
</u-radio>
</u-radio-group>
</view>
</view>
</view>
<view v-else :key="itemIndex" class="mx-4 flex justify-between items-center border-b">
<view class="my-3 text-sm">{{ colItem.name }}</view>
<!-- 日期: 年月日 -->
<view v-if="colItem.type === 2">
<view @click="changeShow(index, itemIndex)" class="text-sm">
<text :class="colItem.value ? '' : 'text-gray-350'">{{ colItem.value || '请选择' }} </text>
<u-icon name="arrow-right" class="ml-2" color="#909399"></u-icon>
</view>
<u-picker
@confirm="change($event, index, itemIndex, colItem.type)"
v-model="colItem.show"
:default-time="colItem.value"
mode="time"
:start-year="startYear"
:end-year="endYear"
:params="paramsDay"
:title="colItem.name"
></u-picker>
</view>
<!-- 数字输入框 -->
<view v-if="colItem.type === 3" class="pr-5">
<u-input
placeholder="请输入"
v-model="colItem.value"
:clearable="false"
type="number"
input-align="right"
@blur="change(colItem.value, index, itemIndex, colItem.type)"
/>
</view>
<!-- 单列下拉选框 -->
<view v-if="colItem.type === 4">
<view @click="changeShow(index, itemIndex)" class="text-sm">
<text :class="colItem.value ? '' : 'text-gray-350'">{{ colItem.value || '请选择' }} </text>
<u-icon name="arrow-right" class="ml-2" color="#909399"></u-icon>
</view>
<u-select
v-model="colItem.show"
mode="single-column"
:list="colItem.radioList"
@confirm="change($event, index, itemIndex, colItem.type)"
:default-value="[colItem.defaultValue]"
:title="colItem.name"
></u-select>
</view>
<!-- 多列下拉选框 -->
<view v-if="colItem.type === 7">
<view @click="changeShow(index, itemIndex)" class="text-sm">
<text :class="colItem.value ? '' : 'text-gray-350'">{{ colItem.value || '请选择' }} </text>
<u-icon name="arrow-right" class="ml-2" color="#909399"></u-icon>
</view>
<u-select
v-model="colItem.show"
mode="mutil-column"
:list="colItem.radioList"
@confirm="change($event, index, itemIndex, colItem.type)"
:default-value="colItem.defaultValue"
title="低血压/高血压"
></u-select>
</view>
<!-- input 文本输入框 -->
<view v-if="colItem.type === 8" class="pr-5">
<u-input
placeholder="请输入"
v-model="colItem.value"
:clearable="false"
input-align="right"
@blur="change(colItem.value, index, itemIndex, colItem.type)"
/>
</view>
<!-- 地区选择器 -->
<view v-if="colItem.type === 9">
<view @click="changeShow(index, itemIndex)" class="text-sm">
<text :class="colItem.value ? '' : 'text-gray-350'">{{ colItem.value || '请选择' }} </text>
<u-icon name="arrow-right" class="ml-2" color="#909399"></u-icon>
</view>
<u-picker
@confirm="change($event, index, itemIndex, colItem.type)"
mode="region"
class="text-sm"
v-model="colItem.show"
:params="paramsArea"
:title="colItem.name"
:area-code="colItem.defaultValue"
></u-picker>
</view>
<!-- 带小数点的数字键盘 -->
<view v-if="colItem.type === 15" class="pr-3">
<view @click="change($event, index, itemIndex, colItem.type)" class="w-24 text-right" v-if="colItem.value">
{{ colItem.value }}
</view>
<view @click="change($event, index, itemIndex, colItem.type)" class="w-full text-right text-gray-350" v-else>
{{ colItem.placeholder }}
</view>
<u-keyboard
mode="number"
:mask="false"
:show-tips="false"
v-model="colItem.show"
@change="changeVal($event, index, itemIndex)"
@backspace="backspace($event, index, itemIndex)"
@confirmText="confirmText(index, itemIndex)"
@cancelText="confirmText(index, itemIndex)"
></u-keyboard>
</view>
</view>
</template>
<view class="w-full h-2 bg-gray-100" v-if="index !== infoList.length - 1"></view>
</view>
<view class="p-4 bg" v-if="!isEdit">
<u-button type="primary" class="w-full" @click="submit">完成</u-button>
</view>
</view>
</template>
<script>
import { mapGetters } from 'vuex';
import { infoList } from '@/config/yyInfo';
export default {
name: 'Info',
props: {
personalInfo: { type: Object, default: () => {} },
isEdit: { type: Boolean, default: false },
},
data() {
return {
infoList,
paramsDay: {
year: true,
month: true,
day: true,
hour: false,
minute: false,
second: false,
},
paramsArea: {
province: true,
city: true,
area: false,
},
};
},
computed: {
...mapGetters('project', ['projectId']),
startYear() {
var date = new Date();
return date.getFullYear() - 130;
},
endYear() {
var date = new Date();
return date.getFullYear();
},
},
watch: {
personalInfo(val) {
if (val && val.userName) {
this.setDate(val);
}
},
},
mounted() {
this.$nextTick(() => {
if (!this.isEdit) {
this.$emit('setEmptyInfo');
const info = this.$t.storage.getStorageSync('infoList');
if (info !== 'null' && !this.isEdit) {
this.infoList = JSON.parse(info);
}
}
});
},
methods: {
changeVal(e, index, itemIndex) {
const info = this.infoList[index][itemIndex];
if (info.value === null) {
info.value = e.toString();
} else {
if (typeof e === 'number') {
const str = e.toString();
info.value += str;
} else {
info.value += e;
}
}
if (this.isEdit) {
this.updateTrainee(info);
}
},
// 退格键被点击
backspace(e, index, itemIndex) {
const info = this.infoList[index][itemIndex];
// 删除value的最后一个字符
if (info.value.length) info.value = info.value.substr(0, info.value.length - 1);
if (this.isEdit) {
this.updateTrainee(info);
}
},
confirmText(index, itemIndex) {
const info = this.infoList[index][itemIndex];
info.show = false;
},
changeShow(index, itemIndex) {
this.infoList[index][itemIndex].show = !this.infoList[index][itemIndex].show;
},
change(e, index, itemIndex, type) {
const info = this.infoList[index][itemIndex];
switch (type) {
case 2: {
// 日期选择器(年月日)
const valueDay = e.year + '-' + e.month + '-' + e.day;
info.value = valueDay;
break;
}
case 4: {
// 单列下拉选框
info.value = e[0].value;
break;
}
case 5: {
// 多选
let checkerList = info.value || [];
if (checkerList.length) {
const i = checkerList.findIndex(item => item === e.name || item.substring(0, 2) === e.name);
if (i < 0) {
checkerList.push(e.name);
} else {
checkerList.splice(i, 1);
}
} else {
checkerList.push(e.name);
}
info.value = checkerList;
const otherIndex = checkerList.findIndex(checker => checker === '其他');
if (otherIndex !== -1) {
info.showOther = true;
} else {
info.showOther = false;
info.otherValue = null;
}
break;
}
case 7: {
// 多列下拉选框
info.value = e[0].value + '/' + e[1].value;
break;
}
case 9: {
// 地区选择
info.value = e.province.label + e.city.label;
info.hospitalCityId = e.city.value;
info.hospitalProvinceId = e.province.value;
info.defaultValue = [e.province.value, e.city.value];
break;
}
case 15: {
// 带小数点的数字键盘
info.show = !info.show;
break;
}
case 99: {
// 其他
info.otherValue = e;
break;
}
default: {
info.value = e;
if (type === 1) {
if (e === '其他') {
info.showOther = true;
} else {
info.showOther = false;
info.otherValue = null;
}
}
// 吸烟饮酒失眠饮茶 操作
this.setEmpty(e, info, index, itemIndex);
if (type === 12 || type === 13) {
if (e === 2) {
info.showClasses = true;
} else {
info.showClasses = false;
}
}
break;
}
}
if (this.isEdit) {
this.updateTrainee(info);
this.$t.storage.setStorageSync('infoList', null);
} else {
this.$t.storage.setStorageSync('infoList', this.infoList);
}
},
changeInput(e, index, itemIndex, type) {
const info = this.infoList[index][itemIndex];
if (type === 'classesValue') {
if (e === '其他') {
info.showOther = true;
} else {
info.showOther = false;
}
}
info[type] = e;
if (this.isEdit) {
this.updateTrainee(info);
}
},
// 吸烟饮酒失眠饮茶
setEmpty(e, info, index, itemIndex) {
if (e === 0) {
if (info.value1) {
info.value1 = null;
this.changeInput('', index, itemIndex, 'value1');
}
if (info.value2) {
info.value2 = null;
this.changeInput('', index, itemIndex, 'value2');
}
if (info.value3) {
info.value3 = null;
this.changeInput('', index, itemIndex, 'value3');
}
}
if (e === 1) {
if (info.value2) {
info.value2 = null;
this.changeInput('', index, itemIndex, 'value2');
}
if (info.value3) {
info.value3 = null;
this.changeInput('', index, itemIndex, 'value3');
}
}
if (e === 2) {
if (info.value1) {
info.value1 = null;
this.changeInput('', index, itemIndex, 'value1');
}
}
},
// 提交用户信息
submit() {
if (!this.AddvalidationRequired()) return;
const params = this.saveInfo();
this.$emit('submit', params, this.infoList);
},
// 添加用户信息 设置参数
saveInfo() {
const params = {};
for (let i = 0; i < this.infoList.length; i++) {
const item = this.infoList[i];
for (let j = 0; j < item.length; j++) {
const info = item[j];
// 默认 否 的
params.apoeGene = '0';
params.isInsomnic = 0;
params.isSmoke = 0;
params.isDrink = 0;
params.isTea = 0;
params.isStrongFlavour = 0;
params.isMoreOil = 0;
// 赋值
params[info.label] = info.value;
// 其他
if (info.value === '其他' && info.showOther && info.otherValue) {
params[info.label] = info.otherValue;
}
// 疾病史
if (info.showType === 1 && info.type === 5) {
let arrValue = '';
if (info.showOther && info.otherValue) {
const index = info.value.indexOf('其他');
info.value.splice(index, 1, '其他:' + info.otherValue);
}
arrValue = info.value.toString();
params[info.label] = arrValue;
}
// 血压
if (info.label === 'BloodPressure') {
const arr = info.value.split('/');
params.minBloodPressure = arr[0];
params.maxBloodPressure = arr[1];
}
// 医院地址
if (info.type === 9) {
params.hospitalCityId = info.hospitalCityId;
params.hospitalProvinceId = info.hospitalProvinceId;
}
// 失眠
if (info.type === 10) {
params.insomnicPeriod = info.value1;
}
// 吸烟
if (info.type === 11) {
params.quitPeriod = info.value1;
params.sustainPeriod = info.value2;
params.averageNum = info.value3;
}
// 饮酒
if (info.type === 12) {
params.abstinencePeriod = info.value1;
if (info.classesValue) {
params.drinkType = info.classesValue;
if (info.classesValue === '其他' && info.showOther && info.otherValue) {
params.drinkType = info.otherValue;
}
}
}
// 饮茶
if (info.type === 13) {
params.quitTea = info.value1;
params.continuePeriod = info.value2;
params.teaType = info.classesValue;
params.teaPeriod = info.frequencyValue;
}
}
}
return params;
},
// 验证必填项
AddvalidationRequired() {
let isComplete = true;
for (let i = 0; i < this.infoList.length; i++) {
const info = this.infoList[i];
for (let j = 0; j < info.length; j++) {
const item = info[j];
if (item.type !== 5) {
if (item.value === null) {
this.$emit('showToast', 'default', `请填写${item.name}`, false);
isComplete = false;
break;
}
if (item.showOther && !item.otherValue) {
this.$emit('showToast', 'default', `请填写${item.name}`, false);
isComplete = false;
break;
}
if (item.type === 10 || item.type === 11 || item.type === 12 || item.type === 13) {
if (item.value === 1 && !item.value1) {
this.$emit('showToast', 'default', `请填写${item.name}`, false);
isComplete = false;
break;
}
}
if (item.showClasses && !item.classesValue) {
this.$emit('showToast', 'default', `请填写${item.name}种类`, false);
isComplete = false;
break;
}
if (item.type === 13) {
if (item.showClasses && !item.frequencyValue) {
this.$emit('showToast', 'default', `请填写${item.name}频率`, false);
isComplete = false;
break;
}
}
if (item.type === 11) {
if (item.value === 2) {
if (!item.value2) {
this.$emit('showToast', 'default', `请填写烟龄`, false);
isComplete = false;
break;
}
if (!item.value3) {
this.$emit('showToast', 'default', `请填写每天抽烟数量`, false);
isComplete = false;
break;
}
}
}
if (item.type === 13) {
if (item.value === 2 && !item.value2) {
this.$emit('showToast', 'default', `请填写持续喝茶时长`, false);
isComplete = false;
break;
}
}
} else {
if (item.value.length === 0) {
this.$emit('showToast', 'default', `请填写${item.name}`, false);
isComplete = false;
break;
}
if (item.showOther && !item.otherValue) {
this.$emit('showToast', 'default', `请填写其他${item.name}`, false);
isComplete = false;
break;
}
}
}
if (!isComplete) {
break;
}
}
if (isComplete) return true;
},
// 回显
setDate(date) {
if (!date || !date.userName) return;
const { infoList } = this;
for (let i = 0; i < infoList.length; i++) {
const info = infoList[i];
for (let j = 0; j < info.length; j++) {
const item = info[j];
item.value = date[item.label];
if (item.label === 'jobTitle' || item.label === 'educateStatus' || item.label === 'diagnoseResult') {
const list = item.radioList.find(i => i === date[item.label]);
if (!list) {
item.value = '其他';
item.otherValue = date[item.label];
item.showOther = true;
} else {
item.showOther = false;
}
}
if (item.type === 4) {
const index = item.radioList.findIndex(list => list.value === date[item.label]);
item.defaultValue = index;
}
if (item.type === 5) {
const array = date[item.label].split(',');
item.value = array;
for (let i = 0; i < item.checkList.length; i++) {
const A = item.checkList[i];
for (let j = 0; j < array.length; j++) {
const arr = array[j];
if (A.name === arr) {
A.checked = true;
}
if (A.name === arr.substring(0, 2) && A.name === '其他') {
A.checked = true;
item.showOther = true;
item.otherValue = arr.split(':')[1];
}
}
}
}
if (item.type === 7) {
item.value = date.minBloodPressure + '/' + date.maxBloodPressure;
item.defaultValue = [date.minBloodPressure, date.maxBloodPressure];
}
if (item.type === 9) {
item.defaultValue = [date.hospitalProvinceId, date.hospitalCityId];
}
if (item.type === 10 && date[item.label] === 1) {
item.value1 = date.insomnicPeriod;
}
if (item.type === 11) {
if (date[item.label] === 1) {
item.value1 = date.quitPeriod;
}
if (date[item.label] === 2) {
item.value2 = date.sustainPeriod;
item.value3 = date.averageNum;
}
}
if (item.type === 12) {
if (date[item.label] === 1) {
item.value1 = date.abstinencePeriod;
}
if (date[item.label] === 2) {
item.showClasses = true;
const list = item.radioList.find(list => list === date.drinkType);
if (list) {
item.classesValue = date.drinkType;
} else {
item.classesValue = '其他';
item.showOther = true;
item.otherValue = date.drinkType;
}
}
}
if (item.type === 13) {
if (date[item.label] === 1) {
item.value1 = date.quitTea;
}
if (date[item.label] === 2) {
item.value2 = date.continuePeriod;
item.showClasses = true;
item.classesValue = date.teaType;
item.frequencyValue = date.teaPeriod;
}
}
}
}
},
/**
* 修改用户信息
*/
async updateTrainee(item) {
try {
if (!this.validationRequired(item)) return;
const params = this.setParams(item);
await this.$u.api.updateTrainee(params);
} catch (error) {
console.error('error: ', error);
this.$emit('showToast', 'default', `${item.name}修改失败`, false);
}
},
// 验证必填项
validationRequired(item) {
if (item.showOther && !item.otherValue) {
this.$emit('showToast', 'default', `请填写其他${item.name}`, false);
return;
}
if (item.type === 10 || item.type === 11 || item.type === 12 || item.type === 13) {
if (item.value === 1 && !item.value1) {
this.$emit('showToast', 'default', `请填写${item.name}`, false);
return;
}
}
if (item.showClasses && !item.classesValue) {
this.$emit('showToast', 'default', `请填写${item.name}种类`, false);
return;
}
if (item.type === 13) {
if (item.showClasses && !item.frequencyValue) {
this.$emit('showToast', 'default', `请填写${item.name}频率`, false);
return;
}
}
if (item.type === 11) {
if (item.value === 2) {
if (!item.value2) {
this.$emit('showToast', 'default', `请填写烟龄`, false);
return;
}
if (!item.value3) {
this.$emit('showToast', 'default', `请填写每天抽烟数量`, false);
return;
}
}
}
if (item.type === 13) {
if (item.value === 2 && !item.value2) {
this.$emit('showToast', 'default', `请填写持续喝茶时长`, false);
return;
}
}
return true;
},
// 设置参数
setParams(item) {
let params = {};
params.projectId = this.projectId;
params[item.label] = item.value;
// 其他
if (item.value === '其他' && item.showOther && item.otherValue) {
params[item.label] = item.otherValue;
}
// 血压
if (item.label === 'BloodPressure') {
const arr = item.value.split('/');
params.minBloodPressure = arr[0];
params.maxBloodPressure = arr[1];
}
// 疾病史
if (item.showType === 1 && item.type === 5) {
let arrValue = '';
if (item.showOther && item.otherValue) {
const index = item.value.indexOf('其他');
item.value.splice(index, 1, '其他:' + item.otherValue);
}
arrValue = item.value.toString();
params[item.label] = arrValue;
}
// 医院地址
if (item.type === 9) {
params.hospitalCityId = item.hospitalCityId;
params.hospitalProvinceId = item.hospitalProvinceId;
}
// 失眠
if (item.type === 10) {
params.insomnicPeriod = item.value1;
}
// 吸烟
if (item.type === 11) {
params.quitPeriod = item.value1;
params.sustainPeriod = item.value2;
params.averageNum = item.value3;
}
// 饮酒
if (item.type === 12) {
params.abstinencePeriod = item.value1;
if (item.classesValue) {
params.drinkType = item.classesValue;
if (item.classesValue === '其他' && item.showOther && item.otherValue) {
params.drinkType = item.otherValue;
}
}
}
// 饮茶
if (item.type === 13) {
params.quitTea = item.value1;
params.continuePeriod = item.value2;
params.teaType = item.classesValue;
params.teaPeriod = item.frequencyValue;
}
return params;
},
},
};
</script>
<style lang="scss" scoped></style>