You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.9 KiB
167 lines
4.9 KiB
<template>
|
|
<scroll-view class="h-full" :scroll-y="true">
|
|
<view class="pt-2">
|
|
<view class="px-3 bg-white">
|
|
<view v-for="(item, index) in itemList" :key="index" :style="headStyle" class="py-3">
|
|
<!-- 头部 -->
|
|
<view class="w-full flex flex-row items-center justify-between">
|
|
<view class="flex flex-1 items-center" @click="changeOpen(index)">
|
|
<img class="w-5 h-5 mr-2" :src="item.img" alt="" />
|
|
{{ item.head }}
|
|
<u-badge
|
|
type="error"
|
|
:count="remindNum"
|
|
size="mini"
|
|
class="relative"
|
|
style="top: -25px; right: -25px"
|
|
v-if="remindNum && index === 3"
|
|
></u-badge>
|
|
</view>
|
|
<view class="flex flex-row">
|
|
<view v-if="index === 0 && personalInfo && personalInfo.userName" class="text-gray-400 mr-2" @click="changeOpen(index)">
|
|
{{ personalInfo.userName }}
|
|
</view>
|
|
<view v-if="index === 1 || index === 2" class="mr-4">
|
|
<u-icon name="plus" @click="add(index)"></u-icon>
|
|
</view>
|
|
<u-icon name="arrow-up" v-if="item.open" @click="changeOpen(index)"></u-icon>
|
|
<u-icon name="arrow-down" v-else @click="changeOpen(index)"></u-icon>
|
|
</view>
|
|
</view>
|
|
<!-- 内容区 -->
|
|
<view v-if="item.open" class="w-full mt-3">
|
|
<view style="border: 1px solid #e5e5e5" v-if="index === 0">
|
|
<Info @showToast="showToast" :personalInfo="personalInfo" :isEdit="true" />
|
|
</view>
|
|
<Medicine @showToast="showToast" ref="medicineChild" v-if="index === 1" />
|
|
<Caregiver @showToast="showToast" ref="caregiverChild" v-if="index === 2" />
|
|
<Family @showToast="showToast" v-if="index === 3" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="py-6 flex flex-col text-center">
|
|
<img class="mx-auto weixin-png" src="https://www.tall.wiki/staticrec/yanyuan/weixin.png" />
|
|
<view class="mt-2" style="color: #999">扫码添加客服微信</view>
|
|
</view>
|
|
</view>
|
|
<u-toast ref="uToast"></u-toast>
|
|
</scroll-view>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState, mapActions, mapGetters } from 'vuex';
|
|
import Medicine from './components/Medicine.vue';
|
|
import Caregiver from './components/Caregiver.vue';
|
|
import Family from './components/Family.vue';
|
|
|
|
export default {
|
|
name: 'ConfigInfo',
|
|
components: { Medicine, Caregiver, Family },
|
|
|
|
data() {
|
|
return {
|
|
itemList: [
|
|
{ head: '长者信息', open: true, img: 'https://www.tall.wiki/staticrec/yanyuan/menu1.png' },
|
|
{ head: '药物使用记录', open: false, img: 'https://www.tall.wiki/staticrec/yanyuan/menu2.png' },
|
|
{ head: 'Zarit照顾者负担量表', open: false, img: 'https://www.tall.wiki/staticrec/yanyuan/menu3.png' },
|
|
{ head: '家属成员', open: false, img: 'https://www.tall.wiki/staticrec/yanyuan/menu4.png' },
|
|
],
|
|
headStyle: {
|
|
borderBottom: '1px solid #f8f8f8',
|
|
fontSize: '16px',
|
|
width: '100%',
|
|
},
|
|
personalInfo: null,
|
|
};
|
|
},
|
|
|
|
computed: {
|
|
...mapGetters('project', ['projectId']),
|
|
...mapState('role', ['remindNum']),
|
|
},
|
|
|
|
async created() {
|
|
await this.handlePersonalInfo();
|
|
},
|
|
|
|
mounted() {
|
|
if (this.remindNum > 0) {
|
|
this.itemList.forEach((item, i) => {
|
|
if (i === 3) {
|
|
item.open = true;
|
|
} else {
|
|
item.open = false;
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
destroyed() {
|
|
this.$t.ui.hideLoading();
|
|
},
|
|
|
|
methods: {
|
|
...mapActions('yanyuan', ['getPersonalInfo']),
|
|
|
|
// 切换手风琴
|
|
changeOpen(index) {
|
|
this.itemList.forEach((item, i) => {
|
|
if (i === index) {
|
|
item.open = !item.open;
|
|
if (index === 0 && item.open) {
|
|
this.handlePersonalInfo();
|
|
}
|
|
} else {
|
|
item.open = false;
|
|
}
|
|
});
|
|
},
|
|
|
|
// 成功弹框
|
|
showToast(type, title, icon) {
|
|
this.$refs.uToast.show({
|
|
type,
|
|
title,
|
|
icon,
|
|
});
|
|
},
|
|
|
|
// 添加
|
|
add(index) {
|
|
if (index === 1) {
|
|
if (this.itemList[index].open) {
|
|
this.$refs.medicineChild[0].add();
|
|
}
|
|
}
|
|
if (index === 2) {
|
|
if (this.itemList[index].open) {
|
|
this.$refs.caregiverChild[0].add();
|
|
}
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 查询个人信息
|
|
*/
|
|
async handlePersonalInfo() {
|
|
try {
|
|
this.$t.ui.showLoading();
|
|
const params = { projectId: this.projectId };
|
|
const data = await this.$u.api.queryTrainee(params);
|
|
this.personalInfo = data;
|
|
this.$t.ui.hideLoading();
|
|
} catch (error) {
|
|
this.$t.ui.hideLoading();
|
|
console.error('error: ', error);
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.weixin-png {
|
|
width: 120px;
|
|
height: 120px;
|
|
}
|
|
</style>
|
|
|