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.

794 lines
21 KiB

2 years ago
<template>
<div class="container">
<div class="content">
<div class="content-top">
<div class="content-top-left">
<div class="content-top-left-data1">
1 year ago
{{ date }}
2 years ago
</div>
<div class="content-top-left-data2">
<div>
{{ dataNow(3) }}
</div>
<div>{{ dataNow(2) }}</div>
</div>
</div>
<div class="content-top-right">
1 year ago
<div class="content-top-fanhui">
1 year ago
<div class="content-top-fanhui-main" @click="fanhuimenhu">
1 year ago
<div class='black-bg'></div>
<span>返回门户</span>
2 years ago
</div>
</div>
1 year ago
<div class="userInfo">
1 year ago
<!-- <img src="@/assets/images/profile.jpg" alt="" /> -->
1 year ago
<el-dropdown trigger="click" @command="tuichudengl">
1 year ago
<span class="el-dropdown-link">
1 year ago
您好,{{ userName }}<i class="el-icon-arrow-down"></i>
1 year ago
</span>
1 year ago
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="0">退出登录</el-dropdown-item>
1 year ago
</el-dropdown-menu>
</el-dropdown>
</div>
2 years ago
</div>
</div>
<div class="content-content">
<div class="title">
<img src="@/assets/images/daping/guangxian.png" alt="" />
<div>产品画像搜索</div>
</div>
<div class="content-bottom-box">
<div class="content-bottom">
<div class="input">
<el-input v-model="input" placeholder="请输入产品名称、批准文号/备案编号"></el-input>
</div>
<div class="sousuo" @click="gotoBgpage">
<img src="@/assets/images/daping/searchicon.png" alt="" />
搜索
</div>
<div class="box-dialog" v-loading="loading" v-if="dialog">
<div class="dialog-item" v-for='(item, index) in searchList' :key="index" @click="getValue(item)">
{{ item.name }}
</div>
</div>
</div>
</div>
1 year ago
</div>
<div class="bottomList">
<div class="conbtm-item" v-for="(item, index) in btmLitstTitle" v-show="btmLitstTitleShow">
<span class="conitem-bgimg">{{ index + 1 }}</span>
<div class="conitme-title"><span class="spantext">{{ item.name }}</span></div>
<div class="conitme-right-item" v-for="(item, index) in item.childarray" @click="onActivebtm(item)"
:class="activebtm == item.value ? 'conitme-right-item-active' : ''">
{{ item.lable }}
1 year ago
</div>
</div>
<div class="bottomListShow">
<el-button type="success" @click="btmLitstTitleShow = !btmLitstTitleShow">{{ btmLitstTitleShow ? "收起" : "展开"
}}<i class="el-icon-d-arrow-left"></i></el-button>
</div>
<div class="listBottom" v-loading="loadingTow">
<div class="listBottom-title">
<div class="span1"></div>
<div class="div1">为您查询到
<span class="span2">{{ total }}</span>
条数据
</div>
1 year ago
</div>
<div class="listBottom-item" v-for="(item, index) in btmLise">
<div class="listBottom-item-left">
<div class="listitem-title">
{{ item.name || "" }}
</div>
<div class="listitemleft-bottom">
<span class="span1">
<span>药品批准文号</span>
<el-tooltip class="item" effect="dark" :content="item.code || ''" placement="top-start">
<span class="span2">{{ item.code || "" }}</span>
</el-tooltip>
</span>
<span class="span1">
<span>持有/注册/备案人:</span>
<el-tooltip class="item" effect="dark" :content="item.scqy || ''" placement="top-start">
<span class="span2">{{ item.scqy || "" }}</span>
</el-tooltip>
</span>
</div>
</div>
<!-- <div class="listBottom-item-right">
<div class="listitem-title">近3年统计</div>
<div class="listitemright-bottom">
<div class="listitemright-bottom-item">
<img src='../assets/images/icon-xxx1.png' alt="">抽检不合格:<span>{{ item.cjbhg || "0" }}</span>
</div>
<div class="listitemright-bottom-item">
<img src='../assets/images/icon-xxx2.png' alt="">不良反应:<span>{{ item.blfy || "0" }}</span>
</div>
<div class="listitemright-bottom-item">
<img src='../assets/images/icon-xxx3.png' alt="">产品召回:<span>{{ item.cpzh || "0" }}</span>
</div>
</div>
</div> -->
<div class="listBottom-item-xiangqing">
<el-button type="primary" @click="ListGO(item)"></el-button>
1 year ago
</div>
</div>
2 years ago
</div>
<div ref="pagination">
<Pagination :total="total" :page="query.current" :limit="query.size" @pagination="changeList"
:smallShow="false"></Pagination>
</div>
2 years ago
</div>
</div>
</div>
</template>
<script>
import Pagination from "@/views/components/Pagination";
import { findByType } from "@/api/largeScreen/index";
2 years ago
export default {
name: '',
components: { Pagination },
2 years ago
data() {
return {
1 year ago
input: "",
1 year ago
date: '',
1 year ago
dialog: false,
loading: true,
1 year ago
searchList: [],
getData: {},
userName: '',
btmLitstTitleShow: true,
btmLitstTitle: [{
name: "药品",
childarray: [{
lable: "本省注册药品",
value: 1,
}, {
lable: "本省持受托生产药品",
value: 2,
},]
}, {
name: "医疗器械",
childarray: [{
lable: "三类医疗器械",
value: 3,
}, {
lable: "三类体外诊断试剂",
value: 4,
}, {
lable: "二类医疗器械",
value: 5,
}, {
lable: "二类体外诊断试剂",
value: 6,
}, {
lable: "一类医疗器械",
value: 7,
}, {
lable: "一类体外诊断试剂",
value: 8,
},]
}, {
name: "化妆品",
childarray: [{
lable: "国产普通化妆品",
value: 9,
}, {
lable: "国产特殊化妆品",
value: 10,
}, {
lable: "进口普通化妆品",
value: 11,
}, {
lable: "进口特殊化妆品",
value: 12,
}]
},],
activebtm: 1,
query: {
current: 1,
size: 10,
type: 1,
},
total: 0,
btmLise: [],
loadingTow: true
2 years ago
}
},
1 year ago
watch: {
async input(newValue, oldValue) {
1 year ago
// let data = await this.$api.productPortrayal.findByName({current:1,size:10});
1 year ago
if (newValue) {
1 year ago
this.loading = true;
this.dialog = true;
1 year ago
// let a = this.throttle(this.getsearchList,500)
this.getsearchList(newValue);
1 year ago
} else {
this.dialog = false;
this.searchList = [];
this.loading = false;
}
}
},
created() { this.dataNow(1) },
1 year ago
mounted() {
this.getDataInterval(1)
this.getLiset()
1 year ago
let user = JSON.parse(localStorage.getItem('userDto'))
this.userName = user.realName
},
2 years ago
methods: {
ListGO(item) {
this.$router.push({ path: "/bgpage", query: { code: item.code, name: item.name, type: item.type } })
},
changeList(e) {
this.loadingTow = true
this.query.current = e.page;
this.query.size = e.limit;
this.getLiset()
},
onActivebtm(item) {
this.loadingTow = true
this.activebtm = item.value;
this.query.current = 1;
this.query.size = 10;
this.query.type = item.value
this.getLiset()
},
//获取列表
getLiset() {
findByType(this.query).then((res) => {
console.log(res);
if (res.code == 200) {
this.total = res.data.total
this.btmLise = res.data.records
this.loadingTow = false
}
})
},
2 years ago
gotoBgpage() {
1 year ago
if (this.input) {
console.log(this.searchList, 'this.searchList')
console.log(this.getData.code, " this.getData");
if (this.searchList.length == 1 || this.getData.code) {
1 year ago
this.$router.push({ path: "/bgpage", query: { code: this.getData.code, name: this.getData.name, type: this.getData.type } })
1 year ago
this.searchList = [];
1 year ago
} else if (this.searchList.length > 1) {
this.$router.push({ path: "/bgpage", query: { code: this.searchList[0].code, name: this.searchList[0].name, type: this.searchList[0].type } })
1 year ago
this.searchList = [];
}
}
},
1 year ago
getDataInterval(index) {
1 year ago
setInterval(() => {
this.dataNow(index)
}, 1000);
2 years ago
},
dataNow(index) {
let now = new Date();
if (index == 1) {
let hour = now.getHours();
if (hour < 10) hour = "0" + hour
let minute = now.getMinutes();
if (minute < 10) minute = "0" + minute
let second = now.getSeconds();
if (second < 10) second = "0" + second
1 year ago
this.date = `${hour}:${minute}:${second}`
2 years ago
} else if (index == 2) {
let year = now.getFullYear();
if (year < 10) year = "0" + year
let month = now.getMonth() + 1;
if (month < 10) month = "0" + month
let day = now.getDate();
if (day < 10) day = "0" + day
1 year ago
return `${year}/${month}/${day}`
2 years ago
} else if (index == 3) {
let dayOfWeek = now.getDay();
// 将星期几转换为对应的中文表示
let weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
let chineseDayOfWeek = weekDays[dayOfWeek];
return chineseDayOfWeek
}
1 year ago
},
1 year ago
getValue(item) {
1 year ago
this.input = item.name;
this.getData = item;
setTimeout(() => {
this.dialog = false;
}, 200);
1 year ago
},
1 year ago
async getsearchList(newValue) {
let data = await this.$api.productPortrayal.findByName({ name: newValue });
if (data.code == 200) {
1 year ago
this.loading = false;
this.searchList = data.data;
1 year ago
if (this.searchList.length < 1) {
1 year ago
this.dialog = false;
}
}
},
1 year ago
tuichudengl() {
console.log(111);
1 year ago
location.href = `${location.origin}/login`;
1 year ago
},
fanhuimenhu() {
location.href = `${location.origin}/ims/workbench/`;
1 year ago
}
2 years ago
},
computed: {}
}
</script>
<style scoped lang='scss'>
@import '../assets/styles/theme.scss';
.container {
width: 100vw;
min-height: 100vh;
2 years ago
padding: 10px 40px 0;
background-color: #000000;
position: relative;
/* 将内容水平居中对齐 */
1 year ago
background: url('../assets/images/daping/searchbg.png') no-repeat center;
background-size: cover;
2 years ago
}
.content-top {
display: flex;
justify-content: space-between;
align-items: center;
.content-top-left {
display: flex;
align-items: center;
color: #ffffff;
.content-top-left-data1 {
font-family: DIN;
margin: 0 20px 0 0;
1 year ago
font-size: 24px;
// font-family: Helvetica;
font-weight: bold;
color: #FFFFFF;
opacity: 0.72;
}
1 year ago
1 year ago
.content-top-left-data2 {
font-size: 14px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
opacity: 0.72;
2 years ago
}
}
.content-top-right {
display: flex;
align-items: center;
color: #ffffff;
.content-top-fanhui {
1 year ago
margin-right: 10px;
1 year ago
background: linear-gradient(0deg, rgba(103, 200, 255, 0.2) 0%, rgba(111, 176, 231, 0.1) 100%);
1 year ago
cursor: pointer;
1 year ago
1 year ago
.content-top-fanhui-main {
padding: 2px 15px;
border: 1px solid;
border-image: linear-gradient(0deg, #1865F2, #7BAAFF) 10 10;
border-radius: 4px;
display: flex;
align-items: center;
1 year ago
1 year ago
.black-bg {
width: 36px;
height: 34px;
background: url('../assets/images/daping/back.png') no-repeat center;
background-size: cover;
margin-top: 3px;
}
1 year ago
1 year ago
span {
font-size: 18px;
1 year ago
font-family: SourceHanSansSC;
font-weight: bold;
color: #FEFFFF;
1 year ago
text-shadow: 0px 4px 9px rgba(0, 0, 0, 0.29);
1 year ago
background: linear-gradient(0deg, #CAFFFF 0%, #CAFFFF 0%, #FFFFFF 0%, #74B4F4 38.96484375%, #3883FF 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
}
2 years ago
}
1 year ago
.userInfo {
1 year ago
cursor: pointer;
1 year ago
display: flex;
align-items: center;
1 year ago
1 year ago
img {
width: 31px;
height: 31px;
border-radius: 50%;
margin-right: 10px;
}
}
1 year ago
2 years ago
.el-dropdown-link {
1 year ago
font-size: 16px;
font-family: SourceHanSansSC;
font-weight: 400;
color: #FFFFFF;
2 years ago
}
}
}
.content-content {
height: 23vh;
position: relative;
}
1 year ago
.title {
margin-top: 60px;
1 year ago
color: #fff;
1 year ago
1 year ago
// display: flex;
// justify-content: center;
div {
position: relative;
z-index: 2;
1 year ago
padding-left: 50px;
text-align: center;
font-size: 48px;
font-family: Tensentype;
font-weight: 700;
1 year ago
color: #FFFFFF;
line-height: 18px;
1 year ago
text-shadow: 0px 8px 16px rgba(24, 118, 172, 0.6);
1 year ago
// background: linear-gradient(0deg, #C2E5FF 100%);
// -webkit-background-clip: text;
// -webkit-text-fill-color: transparent;
z-index: 20;
1 year ago
}
1 year ago
1 year ago
img {
width: 316px;
height: 316px;
position: absolute;
z-index: 1;
left: 50%;
transform: translate(-40%, -30%);
1 year ago
}
}
1 year ago
1 year ago
.content-bottom-box {
2 years ago
position: absolute;
top: 60%;
2 years ago
left: 50%;
transform: translate(-50%, -50%);
z-index: 999;
1 year ago
1 year ago
.content-bottom {
position: relative;
// width: 800px;
display: flex;
align-items: center;
color: #ffffff;
2 years ago
1 year ago
.input {
width: 739px;
1 year ago
1 year ago
::v-deep .el-input {
background-color: transparent;
1 year ago
1 year ago
input {
border: none;
background-color: transparent;
height: 150px;
background: url('../assets/images/daping/searchinputbg.png') no-repeat center;
background-size: 100% 100%;
padding-left: 50px;
font-size: 20px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #9CB4E2;
line-height: 18px;
1 year ago
overflow: hidden;
padding-right: 30px;
1 year ago
}
}
}
2 years ago
1 year ago
.sousuo {
position: absolute;
left: 710px;
// padding: 3px 5px;
width: 162px;
height: 55px;
display: flex;
align-items: center;
justify-content: center;
background: url('../assets/images/daping/searchbuttonbg.png') no-repeat center;
background-size: 100% 100%;
font-size: 24px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #FFFFFF;
line-height: 18px;
cursor: pointer;
1 year ago
1 year ago
img {
width: 25px;
height: 25px;
margin-right: 10px;
}
}
.box-dialog {
position: absolute;
width: 690px;
height: 300px;
top: 120px;
left: 10px;
padding: 2px;
// background: linear-gradient(to right, rgba(24, 101, 242, 0.1), rgba(24, 101, 242, 0.1));
background: linear-gradient(to right, rgb(1, 2, 62), rgb(25, 31, 84));
1 year ago
overflow: scroll;
1 year ago
.dialog-item {
// padding: 15px 27px;
padding: 5px 10px;
font-size: 18px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
1 year ago
cursor: pointer;
1 year ago
// line-height: 50px;
// background-color: rgb(63,110,204)
// background-color: rgba(205,235,243,0.1)
}
1 year ago
1 year ago
.dialog-item:hover {
1 year ago
background-color: rgb(63, 110, 204)
1 year ago
}
}
2 years ago
}
}
1 year ago
.bottomList {
padding-left: 50px;
color: #fff;
.conbtm-item {
display: flex;
align-items: center;
margin: 20px 0;
color: #fff;
.conitem-bgimg {
width: 45px;
height: 45px;
font-size: 16px;
background-image: url("../assets/images/icon-type.png");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
display: flex;
justify-content: center;
align-items: center;
}
.conitme-title {
color: #f28221;
padding: 0 15px;
font-size: 17px;
text-align: justify;
/* 将文字两端对齐 */
.spantext {
display: inline-block;
width: 70px;
text-align: justify;
text-align-last: justify;
}
}
.conitme-right-item {
padding: 10px 20px;
background-color: #314b70;
margin-right: 1rem;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
&:hover {
background: #1d82dc;
}
}
.conitme-right-item-active {
background: #1d82dc;
}
}
.bottomListShow {
position: relative;
z-index: 200;
text-align: center;
margin-left: -60px;
.el-icon-d-arrow-left {
transform: rotate(90deg);
font-size: 16px;
margin-left: 5px;
}
::v-deep .el-button {
font-size: 16px;
background: #4ed4a4;
}
}
.listBottom {
.listBottom-title {
display: flex;
align-items: center;
.span1 {
width: 25px;
height: 20px;
background-image: url("../assets/images/icon-search.png");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
margin-right: 10px;
}
.div1 {
color: #accbee;
font-size: 16px;
.span2 {
color: #0cc16e;
margin: 0 8px;
}
}
}
.listBottom-item {
width: 100%;
display: flex;
justify-content: space-between;
padding: 15px 20px;
color: #fff;
background: #1f3552;
border-radius: 10px;
margin: 15px 0;
.listitem-title {
width: 100%;
white-space: nowrap;
/* 禁止文本换行 */
overflow: hidden;
/* 溢出部分隐藏 */
text-overflow: ellipsis;
font-weight: 700;
font-size: 18px;
}
.listBottom-item-left {
width: 40%;
.listitemleft-bottom {
margin-top: 20px;
color: #accbee;
font-size: 18px;
display: flex;
align-items: center;
.span1 {
margin-right: 10px;
display: flex;
align-items: center;
.span2 {
display: inline-block;
width: 200px;
white-space: nowrap;
/* 禁止文本换行 */
overflow: hidden;
/* 溢出部分隐藏 */
text-overflow: ellipsis;
/* 显示省略号 */
}
}
}
}
.listBottom-item-right {
width: 50%;
.listitemright-bottom {
display: flex;
align-items: center;
.listitemright-bottom-item {
margin-top: 10px;
display: flex;
align-items: center;
font-size: 18px;
margin-right: 10px;
img {
width: 45px;
height: 45px;
margin-right: 10px;
}
span {
margin-left: 10px;
color: #35c4ff;
font-size: 28px;
font-weight: 700;
}
}
}
}
.listBottom-item-xiangqing {
display: flex;
align-items: center;
::v-deep .el-button {
font-size: 16px;
}
}
}
}
}
1 year ago
//设置遮罩层颜色
1 year ago
::v-deep .el-loading-mask {
background-color: rgba(205, 235, 243, 0.1);
1 year ago
}
1 year ago
// //设置图标颜色
1 year ago
// ::v-deep .el-loading-spinner .path{
// stroke: #005432;
// }
// 设置文字颜色
1 year ago
// ::v-deep .el-loading-spinner .el-loading-text{
// color: #005432;
// }</style>