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.

347 lines
9.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="productinformation">
<div class="drugInfo-top">
<div class="top-left">
<div class="drug-name">
<span>{{ pruduct.key }} </span>
<!-- <span class="Name">{{ 暂无 }}</span> -->
<span class="Name">{{ pruduct.value || '暂无' }}</span>
</div>
<div class="drug-tag">
<span v-for="item in tags" :key="item.id">{{ item.name }}</span>
</div>
</div>
<div>
<el-button v-if="goback" type="primary" plain size="mini" @click="goBack">返回</el-button>
<i v-else class="el-icon-close close" @click="goBack"></i>
</div>
</div>
<div class="drugInfo-bottom">
<div class="content-tabs">
<div class="tabs">
<div class="tab" @click="actionTab(1)" :class="action == 1 ? 'actionTab':''">
<img :class="action !== 1 ? 'actionImage' : ''" :src="action == 1 ? `${require('@/assets/images/home/icon1-1@2x.png')}`:`${require('@/assets/images/home/icon1-2@2x.png')}`" alt="">
<span>基本信息</span>
</div>
<div class="tab" @click="actionTab(2)" :class="action == 2 ? 'actionTab':''">
<img :src="action == 2 ? `${require('@/assets/images/home/icon2-1@2x.png')}`:`${require('@/assets/images/home/icon2-2@2x.png')}`" alt="">
<span>品种抽样</span>
</div>
<div class="tab" @click="actionTab(3)" :class="action == 3 ? 'actionTab':''">
<img :src="action == 3 ? `${require('@/assets/images/home/icon5-1@2x.png')}`:`${require('@/assets/images/home/icon5-2@2x.png')}`" alt="">
<span>不良反应</span>
</div>
</div>
</div>
<!-- <div class="drug-input" v-show="action == 2 || action == 3 ">
<div class="inputs">
<div class="rank" v-show="action == 2">
<div class="input--label">抽样级别:</div>
<el-select v-model="value" placeholder="请选择抽样级别">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="rank" v-show="action == 3">
<div class="input--label">报告编号:</div>
<div>
<el-input v-model="number" placeholder="请输入报告编号"></el-input>
</div>
</div>
<div class="number">
<div class="input--label">{{ action == 3 ? '患者姓名:':'抽样编号:' }}</div>
<div>
<el-input v-model="name" :placeholder="action == 3 ? '请输入患者姓名':'请输入抽样编号'"></el-input>
</div>
</div>
</div>
<div class="search-btns">
<button class="reset" @click="reset">重置</button>
<button class="inquire" @click="inquire(1)">查询</button>
</div>
</div> -->
<div class="drug-exit" :style="drugExitStyle">
<!-- <router-view></router-view> -->
<component :is="currentComponent" :transinformation="transinformation" @getCPName="getCPName"></component>
</div>
</div>
</div>
</template>
<script>
import basicInfo from "./drugBasicInfo/drugBasicInfo"
import PZchouyang from "./PZchouyang/PZchouyang"
import adverseReaction from "./adverseReaction/adverseReaction"
export default {
data() {
return {
row:{},
tags:[
{
id:1,
name:'百年产品'
},{
id:2,
name:'疗效显著'
},
],
action:1,
currentComponent:'basicInfo',
drugExitStyle:{
height:'',
},
// isOne:false,
goback:true,
id:null,
token:null,
//产品名称
pruduct:{
key:'某某产品',
value:'-'
}
}
},
components:{
basicInfo,
PZchouyang,
adverseReaction
},
methods:{
//获取名称
getCPName(e){
this.pruduct.key = e.key
this.pruduct.value = e.value
},
goBack(){
this.$router.go(-1)
},
// tabs切换
actionTab(id){
this.action = id;
if(id == 1) {
this.currentComponent = 'basicInfo'
// this.$router.push({ name:'drugBasicInfo' })
this.$nextTick(()=>{
this.getHeight();
})
} else if(id == 2) {
this.currentComponent = 'PZchouyang'
this.$nextTick(()=>{
this.getHeight();
})
// this.$router.push({ name:'PZchouyang' })
} else if(id == 3) {
this.currentComponent = 'adverseReaction'
this.$nextTick(()=>{
this.getHeight();
})
// this.$router.push({ name:'adverseReaction' })
}
},
getHeight(){
let dom = document.getElementsByClassName('drug-exit');
let height = dom[0].getBoundingClientRect();
let windowWidth = window.innerWidth;
let windowHeight = window.innerHeight;
let relativeHeight = windowHeight - height.top - 10
this.drugExitStyle.height = relativeHeight + 'px'
},
async getVRdgYpwhGxwz(res){
let data = await this.$api.productDetails.vRdgYpwhGxwz(res);
this.name = data.data.yptymc;
},
async ylqxJnyelcp(res){
let data = await this.$api.productDetails.ylqxJnyelcp(res);
this.name = data.data.cpmc;
}
},
// watch: {
// $route: {
// handler(to, from) {
// // 药品详情的三个标签页tab高亮切换
// this.action = to.meta.id;
// },
// immediate: true, //第一次就执行
// },
// },
computed:{
transinformation(){
switch(this.currentComponent) {
case 'basicInfo':
return {
b:this.id,
token:this.token,
}
case 'PZchouyang':
return {
b:this.id,
token:this.token,
}
case 'adverseReaction':
return {
b:this.id,
token:this.token,
}
default:
return {
b:4,
token:'暂无'
}
}
}
},
mounted(){
// params刷新数据会丢失
// console.log(this.$route.params)
// this.row = JSON.parse(this.$route.params.row)
// this.row = this.$route.params.row;
let search = window.location.search.slice(1);
let params = search.split('&');
let paramsLabel = params[2].split('=')[0]
this.id = params[0].split('=')[1];
this.token = params[1].split('=')[1];
if (paramsLabel == 'yppzwh') {
this.isYppzwh = true;
this.getVRdgYpwhGxwz(params[2].split('=')[1]);
} else if(paramsLabel == 'qxzczh') {
this.ylqxJnyelcp(params[2].split('=')[1]);
}
// 判断是用⌈ 返回 ⌋ 还是用⌈ X ⌋ 用来返回上一级
if(this.id == '1') {
this.goback = true;
} else {
this.goback = false;
}
this.$nextTick(()=>{
this.getHeight();
})
}
}
</script>
<style lang="scss" scoped>
@import "@/assets/styles/utils.scss";
.productinformation {
width: 100%;
height: 100%;
background: rgba(255,255,255,0.9);
box-shadow: 0px 0px vw(12) 0px rgba(194,212,226,0.64);
border-radius: vw(10) vw(10) 0 0;
.drugInfo-top {
display: flex;
justify-content: space-between;
padding: vh(15) vw(25);
border-bottom: vw(1) solid #EDEEF0;
.close {
cursor: pointer;
}
.top-left {
display: flex;
align-items: center;
.drug-name {
display: flex;
align-items: center;
span {
font-size: vw(18);
font-family: Source Han Sans CN;
font-weight: 400;
color: #6A6C6F;
}
.Name {
// margin-left: ;
color: #292F38;
}
}
.drug-tag {
width: vw(200);
display: flex;
align-items: center;
margin-left: vw(10);
span {
font-size: vw(14);
margin-right: vw(10);
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
padding: vh(4) vw(13);
background-color: #66C691;
border-radius: vw(2);
&:nth-of-type(2) {
background-color: #EABB48;
}
&:last-child {
margin-right: 0;
}
}
}
}
}
.drugInfo-bottom {
padding: 0 vw(25);
.content-tabs {
margin-top: vh(25);
.tabs {
width: 100%;
display: flex;
border-bottom: vw(1) solid #DBE0E8;
.tab {
border: vw(1) solid #DBE0E8;
padding: vh(7) vw(22);
display: flex;
align-items: center;
border-bottom: none;
margin-right: vw(9);
cursor: pointer;
&:last-child{
margin-right: 0;
}
img {
width: vw(18);
height: vw(18);
margin-right: vw(3);
}
.actionImage {
padding: vw(1.5);
width: vw(18);
height: vw(18);
margin-right: vw(3);
}
span {
font-size: vw(16);
font-family: Source Han Sans CN;
font-weight: 400;
color: #2F3742;
}
}
.actionTab {
background-color: #1E80EB;
span {
color: #fff;
}
}
}
}
.drug-exit {
margin-top: vh(25);
padding-bottom: vw(20);
overflow-y: scroll;
}
}
}
</style>