push onekey-root.sh

This commit is contained in:
cirry 2023-11-13 18:01:00 +08:00
parent 6a599ddbec
commit 4ea882d4d0

View File

@ -1,751 +1,143 @@
<template> #!/usr/bin/env bash
<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> # 提示红色的错误信息
<!-- 评估原因 --> error_msg() {
<el-row :gutter="10"> echo -e "\033[0;31m[$(date +"%F %T")]:\033[0m $*" >&2
<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: { success_msg() {
/** echo -e "\033[0;32m[$(date +"%F %T")]:\033[0m $*" >&1
* 获取用户基本信息
* @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 = ''; // 床位号 customAddUser() {
let response = await this.$axios.get("/api/v2.0/reception/elder-info", { read -p "请输入用户名:" user
params: {careObjectId: this.careObjectId, type: '1'} #使用z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
}) #没有输入用户名脚本退出后,使用$?查看的返回码为 2
if id -u ${user} >/dev/null 2>&1 ; then
if (response.status === '200') { echo "用户 ${user} 已存在."
let item = response.body; return 127
if (item.bedName) { fi
bedStr = item.bedName #使用 stty echo 关闭 shell 的回显功能
} #使用 stty echo 打开 shell 的回显功能
# read -s -p "请输入密码:" pass
# pass=${pass:-123456}
useradd $user
echo -e "\n"
# echo $user:$pass | chpasswd
if [[ $? -eq 0 ]]; then
read -p "是否将用户添加入sudo组?(y/n)" confirmAdd
if [[ "$confirmAdd" == `echo -e "\n"` || $confirmAdd == "Y" || $confirmAdd == "y" ]]; then
usermod -aG sudo cirry
fi
else
return $?
fi
return $?
} }
let params = { customDeleteUser() {
before: this.before read -p "请输入需要删除的用户名:" username
} deluser --remove-home $username
let result = await this.$axios.get(`/api/v2.0/reception/health-assess/object/${this.careObjectId}`, {params}) return $?
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 => { selectTips(){
if (result.body[key]) { Hostname=( '创建用户' '删除用户' '安装Caddy' '安装Docker' '卸载docker' '安装postgres数据库' '退出' )
this.form.careObject[key] = result.body[key].toString() PS3="Please input the number of host: "
} select host in ${Hostname[@]}; do
}) case ${host} in
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 => { customAddUser
if (result.body[key]) { if [[ $? -eq 0 ]]; then
this.form.assessmentRecord[key] = result.body[key].toString() echo "用户添加成功"
} else
}) echo "用户添加失败"
let temp = _.find(this.medicalTypeList, (item) => item.key === result.body.medicareType) fi
if (temp && temp.value) { ;;
this.form.careObject.medicareType = result.body.medicareType '删除用户')
} else { customDeleteUser
this.form.careObject.medicareType = '' if [[ $? -eq 0 ]]; then
} echo "用户删除成功"
if (this.finished) { // 如果是已完成的用户在查询阶段就会保存assessmentId和评估结果 else
localStorage.setItem('FinishAssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId) echo "用户删除失败"
if (this.openType === '4') { fi
localStorage.setItem('DetailAssessmentRecordId' + sessionStorage.accountId, result.body.assessmentRecordId) ;;
} '安装Caddy')
// 将总分传给父组件后,传递给长者评估页面,渲染页面 echo -e "------安装Caddy------\n"
this.$emit('saveAssessmentGrade', result.body.assessmentGrade); sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
} curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
localStorage.setItem('EditAssessmentStandard' + sessionStorage.accountId, result.body.assessmentStandard ? result.body.assessmentStandard : '2') curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
if (this.openType === '4') { sudo apt update
localStorage.setItem('DetailAssessmentStandard' + sessionStorage.accountId, result.body.assessmentStandard ? result.body.assessmentStandard : '2') sudo apt install caddy
echo -e "------Caddy安装完成------\n"
echo -e "------设置开机自启------\n"
sudo systemctl enable --now caddy
echo -e "------设置开机自启完成------\n"
echo -e "Caddy 配置路径为 /etc/caddy/Caddyfile \n"
;;
'安装Docker')
echo -e "------删除历史docker------\n"
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
echo -e "------删除历史docker完成------\n"
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo -e "------添加docker组------\n"
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
echo -e "------添加docker组完成------\n"
;;
'卸载docker')
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
;;
'安装postgres数据库')
sudo apt-get update && sudo apt-get upgrade
echo -e "------默认安装当前最新稳定版本------\n"
apt-get install postgresql # 默认安装当前最新稳定版本
systemctl enable postgresql
echo -e "------查看版本号------\n"
psql --version
echo -e "------开启Postgres的远程访问------\n"
ver=$(psql --version | grep -oP '\d+' | head -1)
sed -i '/listen_addresses =/s/=.*/= '\''*'\''/' /etc/postgresql/$ver/main/postgresql.conf
sed -i '/port =/s/=.*/= '\''5432'\''/' /etc/postgresql/$ver/main/postgresql.conf
echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/$ver/main/pg_hba.conf
echo -e "------开启Postgres的远程访问完成------\n"
echo -e "------重启psql------\n"
systemctl restart postgresql
echo -e "------设置默认的PostgreSQL用户密码------\n"
echo -e "1. 打开终端并以root用户身份登录\n"
echo -e "2. 切换到PostgreSQL默认用户postgressu - postgres\n"
echo -e "3. 进入PostgreSQL命令行界面psql\n"
echo -e "4. 在命令行中输入以下ALTER USER postgres WITH PASSWORD new_password;\n"
echo -e " new_password是您想要设置的新密码\n"
echo -e "5. 输入\q退出PostgreSQL命令行界面\n"
echo -e "------设置默认的PostgreSQL用户密码------\n"
;;
'退出')
exit
;;
*)
echo "请选择正确的选项"
selectTips;
esac
done
} }
} selectTips
},
/**
* 健康管理监测,评估管理,新增/编辑页面进入此页面调用的方法
* @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>