865 lines
31 KiB
Vue
865 lines
31 KiB
Vue
<template>
|
||
<el-dialog
|
||
:visible.sync="visible"
|
||
:title="title"
|
||
append-to-body
|
||
@closed="onClosed"
|
||
>
|
||
<div v-if="showFlag">
|
||
<div
|
||
style="float: right; margin-top: -10px; margin-bottom: 10px"
|
||
v-show="dataList.length > 0"
|
||
>
|
||
<!-- 只有新版健康评估信息才可修改,旧的体征数据不支持修改 -->
|
||
<el-button
|
||
type="info"
|
||
v-show="dataType == 0"
|
||
@click="generateReport()"
|
||
plain
|
||
>下载报告</el-button
|
||
>
|
||
<el-button
|
||
type="info"
|
||
v-show="dataType == 0"
|
||
@click="handleEditGuidanceClick()"
|
||
plain
|
||
>减脂指导</el-button
|
||
>
|
||
<el-button
|
||
v-hasPermi="['custom:healthy:edit']"
|
||
type="info"
|
||
v-show="dataType == 0"
|
||
@click="handleEditRemarkClick()"
|
||
plain
|
||
>修改备注</el-button
|
||
>
|
||
<el-button
|
||
v-hasPermi="['custom:healthy:edit']"
|
||
type="warning"
|
||
v-show="dataType == 0"
|
||
@click="handleEditHealthyClick()"
|
||
plain
|
||
>修改信息</el-button
|
||
>
|
||
<el-button
|
||
type="danger"
|
||
v-hasPermi="['custom:healthy:remove']"
|
||
@click="handleDelete()"
|
||
plain
|
||
>删除信息</el-button
|
||
>
|
||
</div>
|
||
<!-- 客户健康评估 -->
|
||
<div v-if="dataList.length > 0 && dataType == 0">
|
||
<!-- 基础信息 -->
|
||
<div
|
||
v-for="(item, index) in dataList.slice(0, 1)"
|
||
style="margin-bottom: 50px"
|
||
:key="index"
|
||
>
|
||
<div>
|
||
<p class="p_title_1" style="margin-top: 5px">
|
||
{{ titleArray[index] }}
|
||
</p>
|
||
<table-detail-message :data="item"></table-detail-message>
|
||
</div>
|
||
<!-- 备注 -->
|
||
<el-table
|
||
:data="remarkList"
|
||
:show-header="false"
|
||
border
|
||
:cell-style="remarkColumnStyle"
|
||
style="width: 100%"
|
||
>
|
||
<el-table-column width="140" prop="remarkTitle"> </el-table-column>
|
||
<el-table-column prop="remarkValue">
|
||
<template slot-scope="scope">
|
||
<auto-hide-message
|
||
:data="scope.row.remarkValue"
|
||
:maxLength="100"
|
||
/></template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<!-- 指导 -->
|
||
<el-table
|
||
:data="guidanceList"
|
||
:show-header="false"
|
||
border
|
||
:cell-style="remarkColumnStyle"
|
||
style="width: 100%"
|
||
>
|
||
<el-table-column width="140" prop="guidanceTitle">
|
||
</el-table-column>
|
||
<el-table-column prop="guidanceValue">
|
||
<template slot-scope="scope">
|
||
<auto-hide-message
|
||
:data="scope.row.guidanceValue"
|
||
:maxLength="100"
|
||
/></template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
<!-- 其他信息 -->
|
||
<div style="height: 400px; overflow: auto">
|
||
<div
|
||
v-for="(item, index) in dataList.slice(1, 10)"
|
||
style="margin-bottom: 50px"
|
||
:key="index"
|
||
>
|
||
<div>
|
||
<p class="p_title_1" style="margin-top: 5px">
|
||
{{ titleArray[index + 1] }}
|
||
</p>
|
||
<table-detail-message
|
||
:data="item"
|
||
v-if="index != dataList.length - 2"
|
||
></table-detail-message>
|
||
<el-table
|
||
:show-header="false"
|
||
v-if="index == dataList.length - 2"
|
||
:data="item"
|
||
border
|
||
:cell-style="columnStyle"
|
||
style="width: 100%"
|
||
>
|
||
<el-table-column width="140" prop="attr_name_one">
|
||
</el-table-column>
|
||
<el-table-column prop="value_one">
|
||
<template slot-scope="scope">
|
||
<auto-hide-message
|
||
:data="
|
||
scope.row.value_one == null
|
||
? ''
|
||
: scope.row.value_one + ''
|
||
"
|
||
:maxLength="20"
|
||
/>
|
||
<el-button
|
||
type="primary"
|
||
v-show="scope.row.value_one"
|
||
@click="downloadFile(medicalReportPathArray[0])"
|
||
>下载</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
width="140"
|
||
prop="attr_name_two"
|
||
></el-table-column>
|
||
<el-table-column prop="value_two">
|
||
<template slot-scope="scope">
|
||
<auto-hide-message
|
||
:data="
|
||
scope.row.value_two == null
|
||
? ''
|
||
: scope.row.value_two + ''
|
||
"
|
||
:maxLength="20"
|
||
/>
|
||
<el-button
|
||
type="primary"
|
||
v-show="scope.row.value_two"
|
||
@click="downloadFile(medicalReportPathArray[1])"
|
||
>下载</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
width="140"
|
||
prop="attr_name_three"
|
||
></el-table-column>
|
||
<el-table-column prop="value_three">
|
||
<template slot-scope="scope">
|
||
<auto-hide-message
|
||
:data="
|
||
scope.row.value_three == null
|
||
? ''
|
||
: scope.row.value_three + ''
|
||
"
|
||
:maxLength="20"
|
||
/>
|
||
<el-button
|
||
type="primary"
|
||
v-show="scope.row.value_three"
|
||
@click="downloadFile(medicalReportPathArray[2])"
|
||
>下载</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 客户体征 -->
|
||
<div v-else>
|
||
<table-detail-message
|
||
v-show="dataList.length > 0"
|
||
:data="dataList"
|
||
></table-detail-message>
|
||
<div
|
||
v-show="dataList.length == 0"
|
||
style="font-size: 20px; text-align: center"
|
||
>
|
||
<VueQr :text="copyValue" :logoSrc="logo" :size="256" />
|
||
<div style="text-align: center; margin-top: 20px">
|
||
<el-button
|
||
icon="el-icon-share"
|
||
size="small"
|
||
title="点击复制链接"
|
||
class="copyBtn"
|
||
type="primary"
|
||
:data-clipboard-text="copyValue"
|
||
@click="handleCopy()"
|
||
>健康评估表链接
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 编辑 -->
|
||
<physicalSigns-edit
|
||
ref="physicalSignsEditDialog"
|
||
@refreshHealthyData="getCustomerHealthyByCusId()"
|
||
></physicalSigns-edit>
|
||
<!-- 编辑备注 -->
|
||
<physicalSigns-remark
|
||
ref="physicalSignsRemarkDialog"
|
||
@refreshHealthyData="getCustomerHealthyByCusId()"
|
||
></physicalSigns-remark>
|
||
<!-- 编辑减脂指导 -->
|
||
<physicalSigns-guidance
|
||
ref="physicalSignsGuidanceDialog"
|
||
@refreshHealthyData="getCustomerHealthyByCusId()"
|
||
></physicalSigns-guidance>
|
||
</el-dialog>
|
||
</template>
|
||
<script>
|
||
import {
|
||
getCustomerPhysicalSignsByCusId,
|
||
delCustomerHealthy,
|
||
} from "@/api/custom/customer";
|
||
import { generateHealthyReport } from "@/api/custom/healthy";
|
||
import TableDetailMessage from "@/components/TableDetailMessage";
|
||
import AutoHideMessage from "@/components/AutoHideMessage";
|
||
import * as healthyData from "@/utils/healthyData";
|
||
import Clipboard from "clipboard";
|
||
import PhysicalSignsEdit from "@/components/PhysicalSignsEdit";
|
||
import PhysicalSignsRemark from "@/components/PhysicalSignsRemark";
|
||
import PhysicalSignsGuidance from "@/components/PhysicalSignsGuidance";
|
||
import VueQr from "vue-qr";
|
||
const logo = require("@/assets/logo/logo_b.png");
|
||
export default {
|
||
name: "PhysicalSignsDialog",
|
||
components: {
|
||
"auto-hide-message": AutoHideMessage,
|
||
"table-detail-message": TableDetailMessage,
|
||
"physicalSigns-edit": PhysicalSignsEdit,
|
||
"physicalSigns-remark": PhysicalSignsRemark,
|
||
"physicalSigns-guidance": PhysicalSignsGuidance,
|
||
VueQr,
|
||
},
|
||
data() {
|
||
return {
|
||
logo,
|
||
visible: false,
|
||
showFlag: false,
|
||
title: "",
|
||
data: null,
|
||
dataList: [],
|
||
dataType: 0,
|
||
healthyData: null,
|
||
remarkList: [{ remarkTitle: "备注信息", remarkValue: "" }],
|
||
guidanceList: [{ guidanceTitle: "减脂指导", guidanceValue: "" }],
|
||
// 体征标题
|
||
signTitleData: [
|
||
["创建时间", "姓名", "年龄"],
|
||
["性别", "手机号", "身高(cm)"],
|
||
["体重(斤)", "地域", "病史"],
|
||
["忌口或过敏源", "便秘", "熬夜失眠"],
|
||
["经常运动", "饮食方式", "饮食备注"],
|
||
["饮食特点", "工作职业", "上夜班"],
|
||
["久坐/运动多", "浑身乏力", "减脂反弹"],
|
||
["意识到生活习惯是减脂关键", "睡觉时间", "起床时间"],
|
||
["方便沟通时间", "湿气数据", "气血数据"],
|
||
["减脂经历", "减脂遇到的困难", "备注"],
|
||
],
|
||
// 体征属性
|
||
signValueData: [
|
||
["createTime", "name", "age"],
|
||
["sex", "phone", "tall"],
|
||
["weight", "position", "signStr"],
|
||
["dishesIngredientId", "constipation", "staylate"],
|
||
["motion", "makeFoodType", "remarks"],
|
||
["makeFoodTaste", "vocation", "night"],
|
||
["walk", "weakness", "rebound"],
|
||
["crux", "sleepTime", "getupTime"],
|
||
["connectTime", "bloodData", "moistureDate"],
|
||
["experience", "difficulty", "comments"],
|
||
],
|
||
//健康评估每个模板标题,与调查表保持一致
|
||
titleArray: healthyData["titleArray"],
|
||
// 健康评估标题
|
||
healthyTitleData: [
|
||
[
|
||
["创建时间", "客户姓名", "手机号"],
|
||
["调理项目", "性别", "年龄"],
|
||
["身高(厘米)", "体重(斤)", "地域"],
|
||
],
|
||
[
|
||
["减脂经历", "减脂遇到的困难", "减脂是否反弹"],
|
||
["是否意识到生活习惯是减脂关键", "", ""],
|
||
],
|
||
[
|
||
["调味品种", "烹调方式", "烹调频次"],
|
||
["洗菜方式", "", ""],
|
||
],
|
||
[
|
||
["早餐习惯", "早餐吃的食物", "午餐习惯"],
|
||
["晚餐习惯", "正餐中素菜占比", "最常吃的肉类"],
|
||
["晚餐时间", "每周吃夜宵次数", "夜宵通常吃的食物"],
|
||
["食物的冷热偏好", "食物的口味偏好", "平均每周吃生蔬菜几次"],
|
||
["每周吃生蔬菜的频次类型", "平均每天吃水果次数", "吃水果的时间段"],
|
||
["平时吃水果的频次", "一餐吃几碗饭", "吃几成饱"],
|
||
["吃饭速度", "饮食特点", "常吃的零食"],
|
||
["有无服用营养保健品", "营养保健品品牌名", "营养保健品产品名"],
|
||
["服用营养保健品频次", "忌口过敏食物", ""],
|
||
],
|
||
[
|
||
["每天的饮水量", "喜欢喝什么水", "喝水习惯"],
|
||
["常喝的饮品的每周频次", "是否喝酒", "喝酒种类"],
|
||
["对应酒的量", "是否抽烟", "抽烟频次和烟龄"],
|
||
["是否经常抽二手烟", "工作行业", "工作性质"],
|
||
["排便次数", "排便时间段", "排便的形状"],
|
||
["排便的气味", "排便的速度", "排便的颜色"],
|
||
],
|
||
[
|
||
["每周运动次数", "每次运动的时长", "每天运动的时间"],
|
||
["运动", "运动场地", ""],
|
||
],
|
||
[
|
||
["睡觉时间", "睡眠质量", "是否有辅助入睡药物"],
|
||
["辅助睡眠类药物名称", "是否经常熬夜", "熬夜频次"],
|
||
],
|
||
[
|
||
["病史体征", "湿气数据", "气血数据"],
|
||
["家族疾病史", "手术史", "近期是否做过手术"],
|
||
["手术恢复情况", "是否长期服用药物", "长期服用的药物"],
|
||
["是否出现过过敏症状", "过敏症状", "过敏源"],
|
||
],
|
||
[["体检报告(1)", "体检报告(2)", "体检报告(3)"]],
|
||
],
|
||
// 健康评估属性
|
||
healthyValueData: [
|
||
[
|
||
["createTime", "name", "phone"],
|
||
["conditioningProject", "sex", "age"],
|
||
["tall", "weight", "position"],
|
||
],
|
||
[
|
||
["experience", "difficulty", "rebound"],
|
||
["crux", "", ""],
|
||
],
|
||
[
|
||
["condiment", "cookingStyle", "cookingStyleRate"],
|
||
["washVegetablesStyle", "", ""],
|
||
],
|
||
[
|
||
["breakfastType", "breakfastFood", "lunchType"],
|
||
["dinner", "vegetableRate", "commonMeat"],
|
||
["dinnerTime", "supperNum", "supperFood"],
|
||
["dietHotAndCold", "dietFlavor", "vegetablesNum"],
|
||
["vegetablesRateType", "fruitsNum", "fruitsTime"],
|
||
["fruitsRate", "riceNum", "riceFull"],
|
||
["eatingSpeed", "makeFoodType", "snacks"],
|
||
["healthProductsFlag", "healthProductsBrand", "healthProductsName"],
|
||
["healthProductsWeekRate", "dishesIngredient", ""],
|
||
],
|
||
[
|
||
["waterNum", "waterType", "waterHabit"],
|
||
["drinksNum", "drinkWineFlag", "drinkWineClassify"],
|
||
["drinkWineAmount", "smokeFlag", "smokeRate"],
|
||
["secondSmoke", "workIndustry", "workType"],
|
||
["defecationNum", "defecationTime", "defecationShape"],
|
||
["defecationSmell", "defecationSpeed", "defecationColor"],
|
||
],
|
||
[
|
||
["motionNum", "motionDuration", "motionTime"],
|
||
["motion", "motionField", ""],
|
||
],
|
||
[
|
||
["sleepTime", "sleepQuality", "sleepDrugFlag"],
|
||
["sleepDrug", "stayupLateFlag", "stayupLateWeekNum"],
|
||
],
|
||
[
|
||
["physicalSigns", "moistureDate", "bloodData"],
|
||
["familyIllnessHistory", "operationHistory", "nearOperationFlag"],
|
||
["recoveryeSituation", "longEatDrugFlag", "longEatDrugClassify"],
|
||
["allergyFlag", "allergySituation", "allergen"],
|
||
],
|
||
[["medicalReport_one", "medicalReport_two", "medicalReport_three"]],
|
||
],
|
||
copyValue: "",
|
||
detailHealthy: null,
|
||
};
|
||
},
|
||
methods: {
|
||
// 自定义列背景色
|
||
columnStyle({ row, column, rowIndex, columnIndex }) {
|
||
if (columnIndex % 2 === 0) {
|
||
//第三第四列的背景色就改变了2和3都是列数的下标
|
||
return "background:#f3f6fc;font-weight:bold";
|
||
} else {
|
||
return "background:#ffffff;";
|
||
}
|
||
},
|
||
// 自定义备注列背景色
|
||
remarkColumnStyle({ row, column, rowIndex, columnIndex }) {
|
||
if (columnIndex % 2 === 0) {
|
||
//第三第四列的背景色就改变了2和3都是列数的下标
|
||
return "background:#f3f6fc;font-weight:bold";
|
||
} else {
|
||
return "background:#ffffff;";
|
||
}
|
||
},
|
||
showDialog(data) {
|
||
this.data = data;
|
||
this.title = `「${data.name}」客户健康评估信息`;
|
||
this.copyValue =
|
||
window.location.origin.replace("manage", "sign") +
|
||
"/subhealthyInvestigation/" +
|
||
this.data.encId;
|
||
this.getCustomerHealthyByCusId();
|
||
},
|
||
getCustomerHealthyByCusId() {
|
||
getCustomerPhysicalSignsByCusId(this.data.id).then((res) => {
|
||
this.showFlag = false;
|
||
if (res.data.customerHealthy) {
|
||
//判断是体征还是健康评估
|
||
this.dataType = res.data.type;
|
||
if (this.dataType == 0) {
|
||
this.healthyData = Object.assign({}, res.data.customerHealthy);
|
||
this.remarkList[0].remarkValue = this.healthyData.remark;
|
||
this.guidanceList[0].guidanceValue = this.healthyData.guidance;
|
||
this.getDataListByHealthyMessage(res.data.customerHealthy);
|
||
} else {
|
||
this.getDataListBySignMessage(res.data.customerHealthy);
|
||
}
|
||
}
|
||
//this.enc_id = res.data.enc_id;
|
||
this.showFlag = true;
|
||
this.visible = true;
|
||
});
|
||
},
|
||
onClosed() {
|
||
this.dataList = [];
|
||
this.data = null;
|
||
this.detailHealthy = null;
|
||
//this.enc_id = "";
|
||
this.copyValue = "";
|
||
},
|
||
//对体征信息进行处理
|
||
getDataListBySignMessage(sign) {
|
||
sign.sex = sign.sex === 0 ? `男` : "女";
|
||
sign.position = sign.position === 0 ? `南方` : "北方";
|
||
sign.signStr = this.getSignString(sign.signList);
|
||
sign.constipation = sign.constipation === 0 ? "是" : "否";
|
||
sign.staylate = sign.staylate === 0 ? "是" : "否";
|
||
sign.motion = sign.motion === 0 ? "是" : "否";
|
||
sign.makeFoodType = sign.makeFoodType === 0 ? `自己做` : "外面吃";
|
||
sign.makeFoodTaste = sign.makeFoodTaste === 0 ? "清淡" : "重口味";
|
||
sign.night = sign.night === 0 ? `是` : "否";
|
||
sign.walk = sign.walk === 0 ? `久坐多` : "走动多";
|
||
sign.weakness = sign.weakness === 0 ? `是` : "否";
|
||
sign.rebound = sign.rebound === 0 ? `是` : "否";
|
||
sign.crux = sign.crux === 0 ? `是` : "否";
|
||
sign.sleepTime = sign.sleepTime + "点";
|
||
sign.getupTime = sign.getupTime + "点";
|
||
sign.connectTime = sign.connectTime + "点";
|
||
for (let i = 0; i < this.signTitleData.length; i++) {
|
||
this.dataList.push({
|
||
attr_name_one: this.signTitleData[i][0],
|
||
value_one: sign[this.signValueData[i][0]],
|
||
attr_name_two: this.signTitleData[i][1],
|
||
value_two: sign[this.signValueData[i][1]],
|
||
attr_name_three: this.signTitleData[i][2],
|
||
value_three: sign[this.signValueData[i][2]],
|
||
});
|
||
}
|
||
},
|
||
//对健康评估信息进行处理
|
||
getDataListByHealthyMessage(healthy) {
|
||
let detailHealthy = this.dealHealthy(healthy);
|
||
//性别
|
||
detailHealthy.sex =
|
||
detailHealthy.sex == 0 ? "男" : detailHealthy.sex == 1 ? "女" : "未知";
|
||
detailHealthy.position = detailHealthy.position == 0 ? "南方" : "北方";
|
||
detailHealthy.rebound = detailHealthy.rebound == 0 ? "否" : "是";
|
||
detailHealthy.crux = detailHealthy.crux == 0 ? "否" : "是";
|
||
//调味品
|
||
detailHealthy.condiment += detailHealthy.otherCondiment
|
||
? "," + detailHealthy.otherCondiment
|
||
: "";
|
||
//烹饪
|
||
let cookingStyleRate = "";
|
||
if (detailHealthy.cookingStyleRate != null) {
|
||
detailHealthy.cookingStyleRate
|
||
.split(",")
|
||
.forEach(function (item, index) {
|
||
cookingStyleRate +=
|
||
(cookingStyleRate != "" ? "," : "") +
|
||
healthyData["cookingStyleRateArray"][index] +
|
||
item +
|
||
"次";
|
||
});
|
||
}
|
||
detailHealthy.cookingStyleRate = cookingStyleRate;
|
||
//洗菜方式
|
||
detailHealthy.washVegetablesStyle += detailHealthy.otherWashVegetablesStyle
|
||
? "," + detailHealthy.otherWashVegetablesStyle
|
||
: "";
|
||
//素菜占比
|
||
detailHealthy.vegetableRate += "成";
|
||
|
||
let makeFoodTypeOption = healthyData["makeFoodTypeArray"].find(
|
||
(opt) => opt.value == detailHealthy.makeFoodType + ""
|
||
);
|
||
detailHealthy.makeFoodType = makeFoodTypeOption
|
||
? makeFoodTypeOption.name
|
||
: "";
|
||
//零食
|
||
detailHealthy.snacks += detailHealthy.otherSnacks
|
||
? "," + detailHealthy.otherSnacks
|
||
: "";
|
||
detailHealthy.healthProductsFlag =
|
||
detailHealthy.healthProductsFlag == 1 ? "有" : "无";
|
||
detailHealthy.healthProductsWeekRate =
|
||
detailHealthy.healthProductsDayRate +
|
||
"次/天," +
|
||
detailHealthy.healthProductsWeekRate +
|
||
"次/周";
|
||
detailHealthy.waterNum += "毫升";
|
||
//饮品
|
||
let drinksNumString = "";
|
||
if (detailHealthy.drinksNum != null) {
|
||
detailHealthy.drinksNum.split(",").forEach(function (item, index) {
|
||
drinksNumString +=
|
||
(drinksNumString != "" ? "," : "") +
|
||
healthyData["drinksNumArray"][index] +
|
||
item +
|
||
"次";
|
||
});
|
||
}
|
||
detailHealthy.drinksNum = drinksNumString;
|
||
detailHealthy.drinkWineClassify += detailHealthy.otherWineClassify
|
||
? "," + detailHealthy.otherWineClassify
|
||
: "";
|
||
let drinkWineAmountString = "";
|
||
if (detailHealthy.drinkWineAmount != null) {
|
||
detailHealthy.drinkWineAmount
|
||
.split(",")
|
||
.forEach(function (item, index) {
|
||
drinkWineAmountString +=
|
||
(drinkWineAmountString != "" ? "," : "") +
|
||
healthyData["drinkWineAmountArray"][index] +
|
||
item +
|
||
healthyData["drinkWineAmountUnitArray"][index];
|
||
});
|
||
}
|
||
detailHealthy.drinkWineAmount = drinkWineAmountString;
|
||
detailHealthy.smokeFlag = detailHealthy.smokeFlag == 1 ? "是" : "否";
|
||
detailHealthy.secondSmoke = detailHealthy.secondSmoke == 1 ? "是" : "否";
|
||
let smokeRateString = "";
|
||
if (detailHealthy.smokeRate != null) {
|
||
detailHealthy.smokeRate.split(",").forEach(function (item, index) {
|
||
smokeRateString +=
|
||
(smokeRateString != "" ? "," : "") +
|
||
healthyData["smokeRateArray"][index] +
|
||
item +
|
||
healthyData["smokeRateUnitArray"][index];
|
||
});
|
||
}
|
||
detailHealthy.smokeRate = smokeRateString;
|
||
detailHealthy.defecationNum = detailHealthy.defecationNum + "次/天";
|
||
detailHealthy.motionDuration = detailHealthy.motionDuration + "分钟";
|
||
let motionStr = "";
|
||
if (detailHealthy.aerobicMotionClassify != null) {
|
||
detailHealthy.aerobicMotionClassify
|
||
.split(",")
|
||
.forEach(function (item, index) {
|
||
motionStr += item ? (motionStr != "" ? "," : "") + item : "";
|
||
});
|
||
}
|
||
if (detailHealthy.anaerobicMotionClassify != null) {
|
||
detailHealthy.anaerobicMotionClassify
|
||
.split(",")
|
||
.forEach(function (item, index) {
|
||
motionStr += item ? (motionStr != "" ? "," : "") + item : "";
|
||
});
|
||
}
|
||
if (detailHealthy.anaerobicAerobicMotionClassify != null) {
|
||
detailHealthy.anaerobicAerobicMotionClassify
|
||
.split(",")
|
||
.forEach(function (item, index) {
|
||
motionStr += item ? (motionStr != "" ? "," : "") + item : "";
|
||
});
|
||
}
|
||
detailHealthy.motion = this.trimComma(
|
||
motionStr +
|
||
(detailHealthy.otherMotionClassify
|
||
? "," + detailHealthy.otherMotionClassify
|
||
: "")
|
||
);
|
||
detailHealthy.motionField = this.trimComma(
|
||
detailHealthy.motionField +
|
||
(detailHealthy.otherMotionField
|
||
? "," + detailHealthy.otherMotionField
|
||
: "")
|
||
);
|
||
detailHealthy.sleepDrugFlag =
|
||
detailHealthy.sleepDrugFlag == 1 ? "有" : "无";
|
||
detailHealthy.stayupLateFlag =
|
||
detailHealthy.stayupLateFlag == 1 ? "有" : "无";
|
||
detailHealthy.stayupLateWeekNum += "次/周";
|
||
let physicalSigns = this.getSignString(detailHealthy.signList);
|
||
/*if(detailHealthy.signList != null && detailHealthy.signList.length > 0){
|
||
detailHealthy.signList.forEach(function (sign, index) {
|
||
physicalSigns += "," + sign.name;
|
||
})
|
||
}*/
|
||
physicalSigns +=
|
||
"," +
|
||
(detailHealthy.otherPhysicalSigns
|
||
? detailHealthy.otherPhysicalSigns
|
||
: "");
|
||
detailHealthy.physicalSigns = this.trimComma(physicalSigns);
|
||
detailHealthy.familyIllnessHistory = this.trimComma(
|
||
detailHealthy.familyIllnessHistory +
|
||
"," +
|
||
(detailHealthy.otherFamilyIllnessHistory
|
||
? detailHealthy.otherFamilyIllnessHistory
|
||
: "")
|
||
);
|
||
detailHealthy.operationHistory = this.trimComma(
|
||
detailHealthy.operationHistory +
|
||
"," +
|
||
(detailHealthy.otherOperationHistory
|
||
? detailHealthy.otherOperationHistory
|
||
: "")
|
||
);
|
||
detailHealthy.nearOperationFlag =
|
||
detailHealthy.nearOperationFlag == 1 ? "有" : "无";
|
||
detailHealthy.longEatDrugFlag =
|
||
detailHealthy.longEatDrugFlag == 1 ? "有" : "无";
|
||
detailHealthy.longEatDrugClassify = this.trimComma(
|
||
detailHealthy.longEatDrugClassify +
|
||
"," +
|
||
(detailHealthy.otherLongEatDrugClassify
|
||
? detailHealthy.otherLongEatDrugClassify
|
||
: "")
|
||
);
|
||
detailHealthy.allergyFlag = detailHealthy.allergyFlag == 1 ? "有" : "无";
|
||
detailHealthy.allergen = this.trimComma(
|
||
detailHealthy.allergen +
|
||
"," +
|
||
(detailHealthy.otherAllergen ? detailHealthy.otherAllergen : "")
|
||
);
|
||
let medicalReportPathArray = detailHealthy.medicalReport
|
||
? detailHealthy.medicalReport.split(",")
|
||
: [];
|
||
let medicalReportNameArray = detailHealthy.medicalReportName
|
||
? detailHealthy.medicalReportName.split(",")
|
||
: [];
|
||
this.medicalReportPathArray = medicalReportPathArray;
|
||
detailHealthy.medicalReport_one =
|
||
medicalReportPathArray.length > 0
|
||
? medicalReportNameArray.length > 0
|
||
? medicalReportNameArray[0]
|
||
: "体检报告(1)"
|
||
: "";
|
||
detailHealthy.medicalReport_two =
|
||
medicalReportPathArray.length > 1
|
||
? medicalReportNameArray.length > 1
|
||
? medicalReportNameArray[1]
|
||
: "体检报告(2)"
|
||
: "";
|
||
detailHealthy.medicalReport_three =
|
||
medicalReportPathArray.length > 2
|
||
? medicalReportNameArray.length > 2
|
||
? medicalReportNameArray[2]
|
||
: "体检报告(3)"
|
||
: "";
|
||
detailHealthy.moistureDate = detailHealthy.moistureDate
|
||
.split(",")
|
||
.reduce((arr, cur) => {
|
||
const tarData = healthyData.moistureDateArray.find(
|
||
(obj) => obj.value === cur
|
||
);
|
||
if (tarData) {
|
||
arr.push(tarData.name);
|
||
}
|
||
return arr;
|
||
}, []);
|
||
detailHealthy.bloodData = detailHealthy.bloodData
|
||
.split(",")
|
||
.reduce((arr, cur) => {
|
||
const tarData = healthyData.bloodDataArray.find(
|
||
(obj) => obj.value === cur
|
||
);
|
||
if (tarData) {
|
||
arr.push(tarData.name);
|
||
}
|
||
return arr;
|
||
}, []);
|
||
this.detailHealthy = detailHealthy;
|
||
for (let i = 0; i < this.healthyTitleData.length; i++) {
|
||
let stepArray = [];
|
||
for (let j = 0; j < this.healthyTitleData[i].length; j++) {
|
||
stepArray[j] = {
|
||
attr_name_one: this.healthyTitleData[i][j][0],
|
||
value_one: detailHealthy[this.healthyValueData[i][j][0]],
|
||
attr_name_two: this.healthyTitleData[i][j][1],
|
||
value_two: detailHealthy[this.healthyValueData[i][j][1]],
|
||
attr_name_three: this.healthyTitleData[i][j][2],
|
||
value_three: detailHealthy[this.healthyValueData[i][j][2]],
|
||
};
|
||
}
|
||
this.dataList[i] = stepArray;
|
||
}
|
||
},
|
||
//健康信息处理,将数组转为字符串
|
||
dealHealthy(customerHealthy) {
|
||
let array = healthyData["needAttrName"];
|
||
for (let i = 0; i < array.length; i++) {
|
||
customerHealthy[array[i]] = this.getHealthyStringByArray(
|
||
array[i] + "Array",
|
||
customerHealthy[array[i]]
|
||
);
|
||
}
|
||
return customerHealthy;
|
||
},
|
||
//将数组中的value值转为name
|
||
getHealthyStringByArray(key, valueArray) {
|
||
var str = "";
|
||
if (valueArray != null && valueArray.split(",").length > 0) {
|
||
valueArray.split(",").forEach(function (item, index) {
|
||
let data = healthyData[key].find((opt) => opt.value == item);
|
||
if (data != null) {
|
||
str += (str != "" ? "," : "") + data.name;
|
||
}
|
||
});
|
||
}
|
||
return str;
|
||
},
|
||
getSignString(signList) {
|
||
if (signList == null) {
|
||
return "";
|
||
}
|
||
let signStr = "";
|
||
for (let i in signList) {
|
||
signStr += "," + signList[i].name;
|
||
}
|
||
return signList.length > 0 ? signStr.substring(1) : signStr;
|
||
},
|
||
downloadFile(fileName) {
|
||
this.downloadResource(fileName);
|
||
},
|
||
generateReport() {
|
||
let data = this.detailHealthy;
|
||
if (
|
||
!this.guidanceList[0].guidanceValue ||
|
||
this.guidanceList[0].guidanceValue.length == 0
|
||
) {
|
||
this.$confirm("该客户还未添加减脂指导,是否确认下载报告?", "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(function () {
|
||
return generateHealthyReport(data);
|
||
})
|
||
.then((response) => {
|
||
if (response.code == 200 && response.path != null) {
|
||
this.download(response.path);
|
||
}
|
||
})
|
||
.catch(function () {});
|
||
} else {
|
||
generateHealthyReport(data).then((res) => {
|
||
if (res.code == 200 && res.path != null) {
|
||
this.download(res.path);
|
||
}
|
||
});
|
||
}
|
||
},
|
||
trimComma(str) {
|
||
if (str.startsWith(",") || str.startsWith(",")) {
|
||
str = str.substring(1, str.length);
|
||
}
|
||
if (str.endsWith(",") || str.endsWith(",")) {
|
||
str = str.substring(0, str.length - 1);
|
||
}
|
||
return str;
|
||
},
|
||
handleCopy() {
|
||
new Clipboard(".copyBtn");
|
||
this.$message({
|
||
message: "拷贝成功",
|
||
type: "success",
|
||
});
|
||
},
|
||
/** 删除健康信息操作 */
|
||
handleDelete() {
|
||
const ids = this.data.id;
|
||
this.$confirm(
|
||
'是否确认删除客户姓名为"' + this.data.name + '"的健康评估信息?',
|
||
"警告",
|
||
{
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
}
|
||
)
|
||
.then(function () {
|
||
return delCustomerHealthy(ids);
|
||
})
|
||
.then(() => {
|
||
this.dataList = [];
|
||
this.msgSuccess("删除成功");
|
||
})
|
||
.catch(function () {});
|
||
},
|
||
handleEditHealthyClick() {
|
||
//console.log(JSON.stringify(this.healthyData));
|
||
this.$refs["physicalSignsEditDialog"].showDialog(
|
||
this.data,
|
||
this.healthyData
|
||
);
|
||
},
|
||
handleEditRemarkClick() {
|
||
this.$refs["physicalSignsRemarkDialog"].showDialog(
|
||
this.data,
|
||
this.healthyData
|
||
);
|
||
},
|
||
handleEditGuidanceClick() {
|
||
this.$refs["physicalSignsGuidanceDialog"].showDialog(
|
||
this.data,
|
||
this.healthyData
|
||
);
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.margin-top-20 {
|
||
margin-top: 20px;
|
||
}
|
||
.p_title_1 {
|
||
font-size: 18px;
|
||
font-weight: bold;
|
||
margin-top: 20px;
|
||
}
|
||
</style>
|