Files
xkrs_ms/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue

349 lines
10 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<section>
<div style="padding: 5px; text-align: center">
<img :src="logo" style="width: 150px; height: 35px" alt="logo" />
</div>
<div style="margin: 10px 15px 10px 15px;" >
<el-steps :active="stepActive" finish-status="success">
<el-step v-for="(item,index) in stepArray" title=""></el-step>
</el-steps>
</div>
<el-form ref="form" label-position="top" :model="form" :rules="rules" label-width="100px" style="padding: 16px">
<healthy-form1 v-show="stepArray[0]" :form.sync="form"></healthy-form1>
<healthy-form2 v-show="stepArray[1]" :form.sync="form"></healthy-form2>
<healthy-form3 v-show="stepArray[2]" :form.sync="form"></healthy-form3>
<healthy-form4 v-show="stepArray[3]" :form.sync="form"></healthy-form4>
<healthy-form5 v-show="stepArray[4]" :form.sync="form"></healthy-form5>
<healthy-form6 v-show="stepArray[5]" :form.sync="form"></healthy-form6>
<healthy-form7 v-show="stepArray[6]" :form.sync="form"></healthy-form7>
<healthy-form8 v-show="stepArray[7]" :form.sync="form"></healthy-form8>
<healthy-form9 v-show="stepArray[8]" ref="fileForm" @addOrEditHealthy="addCustomerHealthy()" :form.sync="form"></healthy-form9>
<el-form-item style="text-align: center; margin: 30px auto" >
<el-button @click="nextStep(-1)" style="margin-right: 10px;width: 40%" v-show="stepActive != 0">上一步</el-button>
<el-button type="primary" @click="nextStep(1)" style="width: 40%" v-show="stepActive != stepArray.length-1">下一步</el-button>
<el-button type="primary" @click="submit()" style="width: 40%" v-show="stepActive == stepArray.length-1">提交数据</el-button>
</el-form-item>
</el-form>
</section>
</template>
<script>
import { getDictData,addCustomerHealthy,physicalSignsList,getCustomerBaseMessage } from "@/api/custom/customerInvestigation";
import * as healthyData from "@/utils/healthyData";
const logo = require("@/assets/logo/st_logo.png");
import Form1 from "@/components/HealthyForm/Form1";
import Form2 from "@/components/HealthyForm/Form2";
import Form3 from "@/components/HealthyForm/Form3";
import Form4 from "@/components/HealthyForm/Form4";
import Form5 from "@/components/HealthyForm/Form5";
import Form6 from "@/components/HealthyForm/Form6";
import Form7 from "@/components/HealthyForm/Form7";
import Form8 from "@/components/HealthyForm/Form8";
import Form9 from "@/components/HealthyForm/Form9";
export default {
name: "index",
data() {
return {
//客户是否存在标识
customerExistFlag:false,
healthyData:healthyData,
logo,
submitFlag: false,
stepArray: [true,false,false,false,false,false,false,false,false],
stepActive: 0,
form: {
customerEncId: null,
name: null,
phone: null,
conditioningProjectId: 0,
sex: 1,
age: null,
tall: null,
weight: null,
condiment:["1","2","3"],
otherCondiment:null,
cookingStyle: ["8","9","4","11"],
cookingStyleRate:[1,1,1,1,1,1],
washVegetablesStyle:["2"],
otherWashVegetablesStyle: null,
breakfastType:"2",
breakfastFood: null,
lunchType:["3"],
dinner:["2"],
vegetableRate: 5,
commonMeat: null,
dinnerTime: "19:00",
supperNum:1,
supperFood:null,
dietHotAndCold: "3",
dietFlavor: ["1","2"],
vegetablesNum: 1,
vegetablesRateType: "3",
fruitsNum: 1,
fruitsTime: "2",
fruitsRate: "2",
riceNum: 1,
riceFull: 8,
eatingSpeed: "3",
snacks: ["1"],
otherSnacks:null,
healthProductsFlag: 0,
healthProductsBrand:null,
healthProductsName: null,
healthProductsWeekRate:0,
healthProductsDayRate:0,
waterNum: 1500,
waterType: ["3"],
waterHabit: ["5"],
drinksNum:[0,0,0,0,0,0,0,0],
drinkWineFlag: "3",
drinkWineClassify:["3"],
otherWineClassify: null,
drinkWineAmount:[0,0,0],
smokeFlag: 0,
smokeRate:[0,0,0],
secondSmoke: 0,
workIndustry: null,
workType:["2"],
defecationNum: 1,
otherDefecationNum:0,
defecationTime: ["1"],
defecationShape: null,
defecationSmell: null,
defecationSpeed: null,
defecationColor: null,
motionNum: 3,
motionDuration: 40,
motionTime: "08:00",
//motionMode:"有氧",
aerobicMotionClassify:["2"],
anaerobicMotionClassify:[],
anaerobicAerobicMotionClassify:[],
otherMotionClassify: null,
motionField:["1"],
otherMotionField:null,
sleepTime: "23:00",
sleepQuality:["2"],
sleepDrugFlag: 0,
sleepDrug: null,
stayupLateFlag: 0,
stayupLateWeekNum: 0,
physicalSignsId:[],
otherPhysicalSigns: null,
bloodData:[],
moistureDate:[],
familyIllnessHistory:[],
otherFamilyIllnessHistory:null,
operationHistory:[],
otherOperationHistory:null,
nearOperationFlag:0,
recoveryeSituation:null,
longEatDrugFlag:0,
longEatDrugClassify:[],
otherLongEatDrugClassify:null,
allergyFlag: 0,
allergySituation: null,
allergen:[],
otherAllergen:null,
medicalReport:[],
medicalReportName:[],
position:0,
experience: null,
rebound: 1,
difficulty:null,
crux:1,
dishesIngredient:null,
makeFoodType:3
},
timer: null,
rules: {
sex: [{ required: true, trigger: "blur", message: "请选择性别" }],
age: [
{ required: true, trigger: "blur", message: "请填写年龄" },
{
required: true,
trigger: "blur",
pattern: /^[1-9]\d*$/,
message: "年龄格式不正确",
},
],
tall: [
{ required: true, trigger: "blur", message: "请填写身高" },
{
required: true,
trigger: "blur",
pattern: /^[1-9]\d*$/,
message: "身高格式不正确",
},
],
weight: [
{ required: true, trigger: "blur", message: "请填写体重" },
{
required: true,
trigger: "blur",
pattern: /^(\d+)(\.\d{1})?$/,
message: "体重格式不正确",
},
],
conditioningProjectId:[
{ required: true, trigger: "blur", message: "请选择调理项目" }
],
position:[
{ required: true, trigger: "blur", message: "请选择地理位置" }
]
}
};
},
components: {
'healthy-form1': Form1,
'healthy-form2': Form2,
'healthy-form3': Form3,
'healthy-form4': Form4,
'healthy-form5': Form5,
'healthy-form6': Form6,
'healthy-form7': Form7,
'healthy-form8': Form8,
'healthy-form9': Form9,
},
methods: {
//根据用户ID获取用户基本信息手机号、姓名
getCustomerBase(id){
if(id == null || id == undefined){
return;
}
getCustomerBaseMessage(id).then((response) => {
if (response.code === 200) {
if(response.data){
this.customerExistFlag = true;
this.form.name = response.data.name;
this.form.phone = response.data.phone;
}
}
}).catch(function() {
console.log("error");
});
},
submit(){
if (this.submitFlag) {
this.$message({
message: "请勿重复提交1分钟后重试",
type: "warning",
});
return;
}
this.$refs.form.validate((valid) => {
if (valid) {
this.submitFlag = true;
this.timer = setTimeout(this.fail,1000*60);
this.$refs.fileForm.uploadFile();
} else {
this.$message({
message: "数据未填写完整",
type: "warning",
});
}
});
},
addCustomerHealthy(){
//数据处理
let cusMessage = Object.assign({}, this.form);
this.healthyData['arrayName'].forEach(function (item, index) {
cusMessage[item] = cusMessage[item] != null ? cusMessage[item].join(",") : null;
});
addCustomerHealthy(cusMessage).then((response) => {
if (response.code === 200) {
this.$notify({
title: "提交成功",
message: "",
type: "success",
});
}
}).catch(function() {
console.log("error");
});
},
fail(){
// console.log("定时--------");
this.submitFlag = false;
},
nextStep(step){
if(!this.customerExistFlag){
this.$message.error('客户不存在');
return;
}
this.$refs.form.validate((valid) => {
if(valid || step < 0){
this.stepArray[this.stepActive] = false;
this.stepActive = this.stepActive + step;
this.stepArray[this.stepActive] = true;
this.goTop();
}else{
this.$message({
message: "数据未填写完整",
type: "warning",
});
}
});
},
goTop (){
window.scroll(0, 0);
},
},
created() {
this.form.customerEncId = this.$route.params.id;
this.getCustomerBase(this.form.customerEncId);
},
beforeCreate() {
document.title = this.$route.meta.title;
},
};
</script>
<style scoped>
.el-form-item {
margin-bottom: 8px;
}
.p_title_1{
font-size: 18px;
font-weight: bold;
margin-top: 30px;
}
.p_title_2{
font-size: 16px;
font-weight: bold;
margin-top: 30px;
}
.p_title_3{
font-size: 14px;
font-weight: bold;
margin-top: 30px;
}
.margin-left{
margin-left: 14px;
}
.el-input__inner{
width: 30%;
}
.margin-top-10{
margin-top: 10px;
}
.width-50-left-8-right-5{
width:50%;
margin-left: 8px;
margin-right: 5px;
}
.width-70-left-8-right-5{
width:70%;
margin-left: 8px;
margin-right: 5px;
}
</style>