sh-script/onekey-root.sh
2023-11-13 18:00:01 +08:00

752 lines
36 KiB
Bash
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 class="form-component">
<el-row :class="[printable?'mb-2':'form-body']">
<el-col :span="13">
<el-form :model="form" :rules="rules" ref="formRef" label-width="14em">
<el-row class="form-title"><span class="title-line my-class"></span>{{ $t('elder.elderInformation') }}
</el-row>
<el-row :gutter="10">
<!-- 长者姓名 -->
<el-col :span="12">
<el-form-item class="required" :label="$t('elder.eldersName')+''" :prop="'careObject.name'"
:rules="otherRule.careObjectId">
<elder-autocomplete :name="form.careObject.name" @change="elderChange"
:disabled="openType!=='1'"></elder-autocomplete>
</el-form-item>
</el-col>
<!-- 身份证类型 -->
<el-col :span="12">
<el-form-item class="required" :label="$t('elder.identityType') + ''" prop="careObject.identityType"
:rules="identityType">
<el-select v-model="form.careObject.identityType" :placeholder="printable? '':$t('common.pleaseSelect')"
:disabled="true">
<el-option v-for="(item, index) in identityTypes" :key="index" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<!-- 身份证号 -->
<el-col :span="12">
<el-form-item :label="$t('common.identity')+''" prop="identity">
<el-input type="text" v-model="form.careObject.identity" auto-complete="off"
:placeholder="printable? '':$t('common.identityPlaceholder')" :disabled="true"></el-input>
</el-form-item>
</el-col>
<!-- 性别 -->
<el-col :span="12">
<el-form-item :label="$t('common.gender')+''" prop="gender">
<el-select v-model="form.careObject.gender" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in genderList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 民族、文化程度 -->
<el-row :gutter="10">
<!-- 年龄 -->
<!-- <el-col :span="12">
<el-form-item :label="$t('common.age')+''" prop="age">
<el-input type="text" v-model="form.careObject.age" auto-complete="off"
:placeholder="printable? '':$t('common.agePlaceholder')" :disabled="true"></el-input>
</el-form-item>
</el-col> -->
<!-- 出生日期 -->
<el-col :span="12">
<el-form-item :label="$t('elder.birthDate') + ''" prop="birthdayStr">
<el-date-picker v-model="form.careObject.birthdayStr" type="date" value-format="yyyy-MM-dd"
:placeholder="printable? '':$t('common.selectDate')" :disabled="true">
</el-date-picker>
</el-form-item>
</el-col>
<!-- 手机号 -->
<el-col :span="12">
<el-form-item :label="$t('system.phoneNumber')+ ''" :prop="'careObject.phoneNum'"
:rules="otherRule.phoneNum">
<el-input type="text" v-model="form.careObject.phoneNum"
:placeholder="printable? '':$t('common.pleaseEnter')"
auto-complete="off" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 宗教信仰、婚姻状况 -->
<el-row :gutter="10">
<!-- 民族 -->
<el-col :span="12">
<el-form-item :label="$t('elder.national')+''" prop="nation">
<el-select v-model="form.careObject.nation" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in nationList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 文化程度 -->
<el-col :span="12">
<el-form-item :label="$t('elder.levelOfEducation')+''" prop="educationalLevel">
<el-select v-model="form.careObject.educationalLevel"
:placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in educationalLevelList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 居住情况、经济来源 -->
<el-row :gutter="10">
<el-col :span="12">
<el-form-item :label="$t('elder.religiousBeliefs')+''" prop="faith">
<el-select v-model="form.careObject.faith" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in faithList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.maritalStatus')+''" prop="maritalStatus">
<el-select v-model="form.careObject.maritalStatus"
:placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in maritalStatusList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item :label="$t('elder.livingCondition')+''" prop="srcLive">
<el-select v-model="form.careObject.srcLive" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in srcLiveList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.economicSources')+''" prop="economicSources">
<el-select v-model="form.careObject.economicSources"
:placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="true">
<el-option v-for="(item, index) in economicSourcesList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 社保卡号、医疗费用支付方式 -->
<el-row :gutter="10">
<!-- 劳动能力 -->
<el-col :span="12">
<el-form-item :label="$t('elder.abilityToWork')+ ''" :prop="'careObject.laborPower'"
:rules="otherRule.laborPower">
<el-select v-model="form.careObject.laborPower" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" disabled>
<el-option v-for="(item, index) in abilityList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.socialSecurityCardNumber')+''" :prop="'careObject.medicalNumber'"
:rules="otherRule.medicalNumber">
<el-input type="text" v-model="form.careObject.medicalNumber" auto-complete="off"
:placeholder="printable? '':$t('elder.elderInfoPlaceholder5')"
:disabled="openType==='4'"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('elder.medicalExpensesPayment')+''" prop="medicareType">
<el-select v-model="form.careObject.medicareType" :placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select" :disabled="openType==='4'">
<el-option :label="printable?'':$t('common.pleaseSelect')" value=""></el-option>
<el-option v-for="(item, index) in medicalTypeList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row class="form-title"><span class="title-line"></span>{{ $t('elder.assessmentBaseInfo') }}</el-row>
<!-- 评估编号、评估基准日期 -->
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="评估标准" prop="assessmentRecord.assessmentStandard">
<el-select v-model="form.assessmentRecord.assessmentStandard"
:placeholder="printable? '':$t('common.pleaseSelect')+ ''"
class="search-select" :disabled="openType === '4' || finished">
<el-option v-for="(item, index) in assessmentStandardList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.assessmentNumber')+''" prop="assessmentRecord.assessmentNumber">
<el-input type="text" v-model="form.assessmentRecord.assessmentNumber" auto-complete="off"
:placeholder="printable? '':$t('reception.fileNumberPlaceholder')"
:disabled="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 评估原因 -->
<el-row :gutter="10">
<el-col :span="12">
<el-form-item class="required" :label="$t('elder.assessmentDate')+''"
prop="assessmentRecord.assessmentTimeStr" :rules="otherRule.assessmentTimeStr">
<el-date-picker type="date" v-model="form.assessmentRecord.assessmentTimeStr"
:picker-options="pickerOptions" value-format="timestamp"
:placeholder="printable? '':$t('common.pleaseSelect')"
:disabled="openType==='4'"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.assessmentCase')+''" :prop="'assessmentRecord.assessmentReason'"
:rules="otherRule.assessmentReason">
<el-input type="text" v-model="form.assessmentRecord.assessmentReason" auto-complete="off"
:placeholder="printable? '':$t('common.pleaseEnter')" :disabled="openType==='4'"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row class="form-title"><span class="title-line"></span>{{ $t('elder.provideInfo') }}</el-row>
<!-- 信息提供者姓名、信息提供者是长者的 -->
<el-row :gutter="10">
<el-col :span="12">
<el-form-item :label="$t('elder.provideName')+''" :prop="'assessmentRecord.provideName'"
:rules="otherRule.provideName">
<el-input type="text" v-model="form.assessmentRecord.provideName" auto-complete="off"
:placeholder="printable? '':$t('common.namePlaceholder')"
:disabled="openType==='4'"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.provideRelative')+''" :prop="'assessmentRecord.provideRelation'">
<el-select v-model="form.assessmentRecord.provideRelation"
:disabled="!form.assessmentRecord.provideName || openType==='4'"
:placeholder="printable? '':$t('common.pleaseSelect')"
class="search-select">
<el-option v-if="!printable" :label="$t('common.pleaseSelect')" value=""></el-option>
<el-option v-for="(item, index) in relationList" :key="index" :label="item.value"
:value="item.key"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<!-- 信息提供者手机号、紧急联系人姓名 -->
<el-col :span="12" v-if="openType!=='1' && openType!=='2'">
<el-form-item :label="$t('elder.informationProviderPhoneNumber')+''"
:prop="'assessmentRecord.providePhone'" :rules="otherRule.providePhone">
<el-input type="text" v-model="form.assessmentRecord.providePhone" auto-complete="off"
:placeholder="printable? '':$t('common.phoneNumPlaceholder')"
:disabled="openType==='4'"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('elder.emergencyName')+''" prop="contactsName">
<el-input type="text" v-model="form.assessmentRecord.contactsName" auto-complete="off"
:placeholder="printable? '':$t('common.namePlaceholder')" :disabled="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<!-- 紧急联系人手机号 -->
<el-col :span="12">
<el-form-item :label="$t('elder.emergencyContactPhoneNumber')+''" prop="contactsPhone">
<el-input type="text" v-model="form.assessmentRecord.contactsPhone" auto-complete="off"
:placeholder="printable? '':$t('common.phoneNumPlaceholder')" :disabled="true"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-col>
</el-row>
<el-row v-if="openType!=='4' && openType!=='5' && !printable" class="form-btns">
<el-button class="lb-btn lb-btn-primary" @click="save" :loading="btnLoad">{{
$t('common.save')
}}
</el-button>
</el-row>
</section>
</template>
<script>
import dictionary from "@ims/components2/system/dictionary/dictionary";
import elderAutocomplete from "../../../elder/components/elderAutocomplete";
import bedJs from '@ims/components2/bed/bed'
import {sexList} from 'lonbon-common/lib/dict.js'
export default {
components: {
elderAutocomplete
},
mixins: [dictionary, bedJs],
props: {
finished: {
type: Boolean
},
openType: {
type: String,
},
printable: {
type: Boolean,
}
},
data() {
let validateNumLetter = (rule, value, callback) => {
const repStr = /^[A-Za-z0-9]+$/
if (value && !repStr.test(value)) {
callback(new Error(this.$t('elder.validateTip3')));
} else {
callback();
}
};
return {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
}
},
btnLoad: false,
elderInfo: {}, // 长者信息
identityTypes: [{
label: "中国居民身份证",
value: "0"
}, {
label: "香港身份证",
value: "1"
}, {
label: "澳门身份证",
value: "2"
}, {
label: "台湾身份证",
value: "3"
}],
form: {
// 基本信息
careObject: {
careObjectId: '', // 长者id
name: '', // 长者姓名
identityType: '0', // 身份证类别
identity: '', // 身份证
gender: '', // 性别
age: '', // 年龄
birthdayStr: '', // 出生日期
nation: '', //民族,
educationalLevel: '', //文化程度
faith: '', //宗教信仰
maritalStatus: '', //婚姻状况
srcLive: '', //居住情况
economicSources: '',//经济来源
medicalNumber: '', //社保卡号
medicareType: '',//医疗费用支付方式
laborPower: '', // 劳动能力
phoneNum: '', // 手机号
},
// 评估信息开始
assessmentRecord: {
assessmentTime: '', //评估时间
assessmentTimeStr: '', //展示的评估时间
assessmentNumber: '', //评估编号
assessmentReason: '', //评估原因
assessmentStandard: '2', // 评估标准
//信息提供者
provideName: '', //信息提供者姓名
provideRelation: '', //信息提供者与长者关系
contactsName: '', //联系人姓名
contactsPhone: '', //联系人手机号
providePhone: '', // 信息提供者手机号
},
},
otherRule: {
careObjectId: [{validator: this.$validate.empty, trigger: 'blur'}],
assessmentTimeStr: [{validator: this.$validate.empty, trigger: 'blur'}],
provideName: [{max: 4, message: this.$t('common.validateTip3', [4]), trigger: 'blur'}],
providePhone: [{validator: this.$validate.phone, trigger: 'blur',}],
assessmentReason: [{max: 20, message: this.$t('common.validateTip3', [20]), trigger: 'blur'}],
medicalNumber: [{validator: validateNumLetter, trigger: 'blur',}, {
max: 32,
message: this.$t('common.validateTip3', [32]),
trigger: 'blur'
}]
},
genderList: sexList, // 性别列表
nationList: [],// 民族列表
educationalLevelList: [], // 文化程度列表
faithList: [], // 宗教信仰列表
maritalStatusList: [], // 婚姻状态列表
srcLiveList: [], //居住情况列表
economicSourcesList: [],// 经济来源列表
medicalTypeList: [], // 医疗费用支付方式
careObjectId: '', // 长者信息id
resultInfo: '',// 评估结果 json字符串
relationList: [], // 关系列表
before: '', // 长者入住状态
abilityList: [], // 劳动能力列表
assessmentStandardList: [
{key: '1', value: '2013年评估标准'},
{key: '2', value: '2022年评估标准'},
],
}
},
async mounted() {
await this.getDictList(); // 获取字典数据
if (this.openType === '1') {// 健康状况监测,评估管理, 新增进入
return '';
} else if (this.openType === '2') { // 健康状况监测,评估管理, 编辑进入
await this.getNewBaseInfo(); // 获取个人基本信息
} else {
await this.getOldBaseInfo(); // 获取个人基本信息
}
},
methods: {
/**
* 获取用户基本信息
* @author: cirry
* @date: 2020/9/28 - 下午6:12
*/
async getOldBaseInfo() {
if (this.finished) { //判断是从已完成页面进入还是从未完成页面进入
this.careObjectId = localStorage.getItem('FinishAssessCareObjectId' + sessionStorage.accountId)
this.before = localStorage.getItem('FinishAssessTryStatus' + sessionStorage.accountId)
} else {
this.careObjectId = localStorage.getItem('AssessCareObjectId' + sessionStorage.accountId)
this.before = localStorage.getItem('AssessTryStatus' + sessionStorage.accountId)
}
// 如果是详情页面,覆写
if (this.openType === '4') {
this.careObjectId = localStorage.getItem('DetailAssessCareObjectId' + sessionStorage.accountId)
this.before = localStorage.getItem('DetailAssessTryStatus' + sessionStorage.accountId)
} else if (this.openType === '5') {
this.careObjectId = localStorage.getItem('DetailNotFinishAssessCareObjectId' + sessionStorage.accountId)
this.before = localStorage.getItem('DetailNotFinishAssessTryStatus' + sessionStorage.accountId)
}
let bedStr = ''; // 床位号
let response = await this.$axios.get("/api/v2.0/reception/elder-info", {
params: {careObjectId: this.careObjectId, type: '1'}
})
if (response.status === '200') {
let item = response.body;
if (item.bedName) {
bedStr = item.bedName
}
}
let params = {
before: this.before
}
let result = await this.$axios.get(`/api/v2.0/reception/health-assess/object/${this.careObjectId}`, {params})
if (result.status === '200') {
this.$emit('saveElderInfo', {...result.body, bedStr})
if (result.body.assessmentTime) {
result.body.assessmentTimeStr = result.body.assessmentTime * 1000
}
Object.keys(this.form.careObject).forEach(key => {
if (result.body[key]) {
this.form.careObject[key] = result.body[key].toString()
}
})
this.form.careObject.birthdayStr = (result.body.birthday || result.body.birthday === 0) ? this.$moment(result.body.birthday * 1000).format("YYYY-MM-DD") : ''
Object.keys(this.form.assessmentRecord).forEach(key => {
if (result.body[key]) {
this.form.assessmentRecord[key] = result.body[key].toString()
}
})
let temp = _.find(this.medicalTypeList, (item) => item.key === result.body.medicareType)
if (temp && temp.value) {
this.form.careObject.medicareType = result.body.medicareType
} else {
this.form.careObject.medicareType = ''
}
if (this.finished) { // 如果是已完成的用户在查询阶段就会保存assessmentId和评估结果
localStorage.setItem('FinishAssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId)
if (this.openType === '4') {
localStorage.setItem('DetailAssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId)
}
// 将总分传给父组件后,传递给长者评估页面,渲染页面
this.$emit('saveAssessmentGrade', result.body.assessmentGrade);
}
localStorage.setItem('EditAssessmentStandard' + sessionStorage.accountId, result.body.assessmentStandard ? result.body.assessmentStandard : '2')
if (this.openType === '4') {
localStorage.setItem('DetailAssessmentStandard' + sessionStorage.accountId, result.body.assessmentStandard ? result.body.assessmentStandard : '2')
}
}
},
/**
* 健康管理监测,评估管理,新增/编辑页面进入此页面调用的方法
* @author: cirry
* @date: 2020/11/10 - 下午6:10
*/
async getNewBaseInfo() {
// 需要两个接口才能渲染完这个baseInfo页面
if (this.openType === '2') {
this.careObjectId = localStorage.getItem('EditCapabilityAssessCareObjectId' + sessionStorage.accountId)
let params = {
careObjectId: this.careObjectId
}
let response = await this.$axios.get('/api/v2.0/service/health/assessment/ability/object', {params})
this.form.careObject.name = response.body.name
this.form.careObject.gender = response.body.gender
this.form.careObject.identity = response.body.identity
this.form.careObject.phoneNum = response.body.phoneNum
this.form.careObject.age = response.body.age
this.form.careObject.bedStr = response.body.bedStr
this.form.careObject.nation = response.body.nation
this.form.careObject.medicalNumber = response.body.medicalNumber
this.form.careObject.medicareType = response.body.medicareType
this.form.careObject.gender = response.body.gender
let temp = _.find(this.medicalTypeList, (item) => item.key === response.body.medicareType)
if (temp && temp.value) {
this.form.careObject.medicareType = response.body.medicareType
} else {
this.form.careObject.medicareType = ''
}
this.form.careObject.economicSources = response.body.economicSources
this.form.careObject.faith = response.body.faith
this.form.careObject.srcLive = response.body.srcLive
if (response.body.maritalStatus) {
this.form.careObject.maritalStatus = response.body.maritalStatus.toString()
}
if (response.body.educationalLevel) {
this.form.careObject.educationalLevel = response.body.educationalLevel.toString()
}
this.form.assessmentRecord.contactsName = response.body.contactsName
this.form.assessmentRecord.contactsPhone = response.body.contactsPhone
await this.getAssessmentResult()
// 传递给父页面elderInfo信息在最后的【评估结果】页面中使用
this.$emit('saveElderInfo', {
name: this.form.careObject.name,
identity: this.form.careObject.identity,
careObjectId: this.careObjectId,
assessmentStandard: this.form.assessmentRecord.assessmentStandard.toString()
})
localStorage.setItem('EditCapabilityAssessStandard' + sessionStorage.accountId, this.form.assessmentRecord.assessmentStandard.toString())
}
},
async getAssessmentResult() {
let params = {
assessmentRecordId: localStorage.getItem('EditCapabilityAssessmentRecordId' + sessionStorage.accountId)
}
let response = await this.$axios.get('/api/v2.0/service/health/assessment/ability', {params})
if (response.status == '200') {
if (response.body.assessmentTime) {
this.form.assessmentRecord.assessmentTimeStr = response.body.assessmentTime * 1000
}
this.form.assessmentRecord.assessmentStandard = response.body.assessmentStandard.toString()
this.form.assessmentRecord.assessmentReason = response.body.assessmentReason
this.form.assessmentRecord.provideName = response.body.provideName
this.form.assessmentRecord.provideRelation = response.body.provideRelation
this.form.assessmentRecord.assessmentNumber = response.body.assessmentNumber
this.form.careObject.medicalNumber = response.body.medicalNumber
this.form.careObject.medicareType = response.body.medicareType
let temp = _.find(this.medicalTypeList, (item) => item.key === response.body.medicareType)
if (temp && temp.value) {
this.form.careObject.medicareType = response.body.medicareType
} else {
this.form.careObject.medicareType = ''
}
// 将总分传给父组件后,传递给长者评估页面,渲染页面
this.$emit('saveAssessmentGrade', response.body.assessmentGrade);
}
},
/**
* 获取页面所需字典数据
* @author: cirry
* @date: 2020/9/28 - 下午6:12
*/
async getDictList() {
let arr = ['medical_expenses_pay_type', 'national', 'educational_level', 'religion_faith', 'marital_status', 'live_status', 'economic_sources', 'information_provider', 'work_power']
let res = await this.getDictionaryByTypeList(arr)
this.nationList = res.national
this.educationalLevelList = res['educational_level']
this.faithList = res['religion_faith']
this.maritalStatusList = res['marital_status']
this.srcLiveList = res['live_status']
this.economicSourcesList = res['economic_sources']
this.relationList = res['information_provider']
this.abilityList = res['work_power']
// 获取 医疗费用的支付方式
this.medicalTypeList = res['medical_expenses_pay_type']
},
/**
* 基本信息保存按钮方法
* @author: cirry
* @date: 2020/9/25 - 上午9:22
* @returns {Promise<boolean>} assessmentRecordId // 评估结果id
*/
save() {
this.$refs.formRef.validate(async (valid) => {
if (valid) {
this.btnLoad = true
let accessParams = _.cloneDeep(this.form)
if (this.openType === '1') { // 如果有长者id说明是健康状况监测新增进来的
this.careObjectId = this.form.careObject.careObjectId
} else if (this.openType === '2') {
this.careObjectId = localStorage.getItem('EditCapabilityAssessCareObjectId' + sessionStorage.accountId)
} else {
if (this.finished) { //判断是从已完成页面进入还是从未完成页面进入
this.careObjectId = localStorage.getItem('FinishAssessCareObjectId' + sessionStorage.accountId)
accessParams.before = localStorage.getItem('FinishAssessTryStatus' + sessionStorage.accountId)
if (this.openType === '4') {
this.careObjectId = localStorage.getItem('DetailAssessCareObjectId' + sessionStorage.accountId)
accessParams.before = localStorage.getItem('DetailAssessTryStatus' + sessionStorage.accountId)
}
} else {
this.careObjectId = localStorage.getItem('AssessCareObjectId' + sessionStorage.accountId)
accessParams.before = localStorage.getItem('AssessTryStatus' + sessionStorage.accountId)
}
}
// 处理日期格式 /1000
this.form.assessmentRecord.assessmentTime = this.form.assessmentRecord.assessmentTimeStr / 1000;
accessParams.assessmentRecord.assessmentTime = accessParams.assessmentRecord.assessmentTimeStr / 1000;
// 获取主键id
if (this.openType === '1') { //从健康状况监测 新增进来的
let params = {
careObjectId: this.careObjectId,
assessmentTime: this.form.assessmentRecord.assessmentTime,
assessmentReason: this.form.assessmentRecord.assessmentReason,
provideName: this.form.assessmentRecord.provideName,
provideRelation: this.form.assessmentRecord.provideRelation,
medicalNumber: this.form.careObject.medicalNumber,
medicareType: this.form.careObject.medicareType,
assessmentStandard: this.form.assessmentRecord.assessmentStandard,
}
let result = await this.$axios.post(`/api/v2.0/service/health/assessment/ability`, params)
if (result.status == '200') {
this.$message.success(this.$t('common.saveSuccess'));
// 保存长者能力评估接口会用到长着评估id, 新增的长者id和长者评估id
localStorage.setItem('CapabilityAssessCareObjectId' + sessionStorage.accountId, this.careObjectId)
localStorage.setItem('CapabilityAssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId)
localStorage.setItem('CapabilityAssessmentStandard' + sessionStorage.accountId, this.form.assessmentRecord.assessmentStandard,)
this.$emit('saveElderInfo', {
name: this.form.careObject.name,
identity: this.form.careObject.identity,
careObjectId: this.careObjectId,
assessmentStandard: this.form.assessmentRecord.assessmentStandard.toString()
})
// 跳转到下一个页面
this.$emit('next')
}
} else if (this.openType === '2') {// 健康状况监测编辑进来的
let params = {
careObjectId: this.careObjectId,
assessmentTime: this.form.assessmentRecord.assessmentTime,
assessmentRecordId: localStorage.getItem('EditCapabilityAssessmentRecordId' + sessionStorage.accountId),
assessmentReason: this.form.assessmentRecord.assessmentReason,
provideName: this.form.assessmentRecord.provideName,
provideRelation: this.form.assessmentRecord.provideRelation,
medicalNumber: this.form.careObject.medicalNumber,
medicareType: this.form.careObject.medicareType,
assessmentStandard: this.form.assessmentRecord.assessmentStandard,
}
let result = await this.$axios.put(`/api/v2.0/service/health/assessment/ability`, params)
if (result.status == '200') {
localStorage.setItem('EditCapabilityAssessStandard' + sessionStorage.accountId, this.form.assessmentRecord.assessmentStandard,)
this.$message.success(this.$t('common.saveSuccess'));
// 跳转到下一个页面
this.$emit('next')
}
} else {
let result = await this.$axios.put(`/api/v2.0/reception/health-assess/object/${this.careObjectId}`, accessParams)
if (result.status == '200') {
this.$message.success(this.$t('common.saveSuccess'));
// 获取到的评估id并存储
// 未完成点击保存后后台会返回这个id已完成的在查询基本信息的时候就能查到此id
localStorage.setItem('AssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId)
// 跳转到下一个页面
this.$emit('next')
}
if (!this.finished) {
localStorage.setItem('EditAssessmentStandard' + sessionStorage.accountId, this.form.assessmentRecord.assessmentStandard)
}
}
this.btnLoad = false
}
})
},
async elderChange(elderInfo) {
// 获取到长者信息之后给表单赋值
this.form.careObject.careObjectId = elderInfo.careObjectId
// 根据此id 去查询长者的其他基本信息
await this.getElderInfo()
},
async getElderInfo() {
let params = {
careObjectId: this.form.careObject.careObjectId
}
let response = await this.$axios.get('/api/v2.0/service/health/assessment/ability/object', {params})
if (response.status == '200') {
this.form.careObject.name = response.body.name
this.form.careObject.gender = response.body.gender
this.form.careObject.identity = response.body.identity
this.form.careObject.phoneNum = response.body.phoneNum
this.form.careObject.laborPower = response.body.laborPower
this.form.careObject.age = response.body.age
this.form.careObject.bedStr = response.body.bedStr
this.form.careObject.nation = response.body.nation
this.form.careObject.medicalNumber = response.body.medicalNumber
this.form.careObject.economicSources = response.body.economicSources
this.form.careObject.faith = response.body.faith
this.form.careObject.medicareType = response.body.medicareType
this.form.careObject.srcLive = response.body.srcLive
if (_.toString(response.body.maritalStatus)) {
this.form.careObject.maritalStatus = response.body.maritalStatus.toString()
}
if (_.toString(response.body.educationalLevel)) {
this.form.careObject.educationalLevel = response.body.educationalLevel.toString()
}
this.form.assessmentRecord.contactsName = response.body.contactsName
this.form.assessmentRecord.contactsPhone = response.body.contactsPhone
}
}
},
watch: {
'form.assessmentRecord.provideName': {
handler(newVal, oldVal) {
if (!newVal) {
this.form.assessmentRecord.provideRelation = ''
}
},
immediate: true,
deep: true
}
}
}
</script>
<style lang="less" scoped>
.mb-2 {
margin-bottom: 2em;
}
</style>