<template> <div class="box"> <banner></banner> <p class="list_title">{{ $t("nav.AntibodyDatabase") }}</p> <!-- 头部 --> <div class="classificationMenu"> <div class="list list_pc"> <div class="SpeciesBox"> <!-- Name --> <div class="list-s" v-if="nameObject.list.length"> <div class="list_tit">Name</div> <div class="SpeciesBox_list2" style="flex: 1;"> <el-checkbox-group style="flex: 1;" v-model="nameList" @change="nameChange" > <el-checkbox class="list_checkbox" v-for="(item, index) in nameObject.show ? nameObject.list : nameObject.list.slice(0, 12)" :key="index" :label="item.name"> <el-tooltip class="item" effect="dark" :content="item.name" placement="top-start" v-if="item.name.length > 20"> <span> {{subString(item.sampleName, 20)}}</span> </el-tooltip> <span v-else>{{ item.sampleName }}</span> <!-- ({{ item.count }}) --> </el-checkbox> </el-checkbox-group> </div> <img v-if="nameObject.show" class="SpeciesImg" src="@/assets/img/superscript.png" alt="" @click="nameObject.show = false"> <img v-else class="SpeciesImg" src="@/assets/img/subscript.png" alt="" @click="nameObject.show = true"> </div> <!-- Target --> <div class="list-s" v-if="targetObject.list.length"> <div class="list_tit">Target</div> <div class="SpeciesBox_list2" style="flex: 1;"> <el-checkbox-group style="flex: 1;" v-model="targetList" @change="targetChange" > <el-checkbox class="list_checkbox" v-for="(item, index) in targetObject.show ? targetObject.list : targetObject.list.slice(0, !$util.isMobileDevice() ? 12 : 0)" :key="index" :label="item.name"> <el-tooltip class="item" effect="dark" :content="item.name" placement="top-start" v-if="item.name.length > 20"> <span> {{subString(item.sampleName, 20)}}</span> </el-tooltip> <span v-else>{{ item.sampleName }}</span> ({{ item.count }}) </el-checkbox> </el-checkbox-group> </div> <img v-if="targetObject.show" class="SpeciesImg" src="@/assets/img/superscript.png" alt="" @click="targetObject.show = false"> <img v-else class="SpeciesImg" src="@/assets/img/subscript.png" alt="" @click="targetObject.show = true"> </div> <!-- Inventor --> <div class="list-s" v-if="companyObject.list.length" style="border: none;"> <div class="list_tit">Inventor</div> <div class="SpeciesBox_list2" style="flex: 1;"> <el-checkbox-group style="flex: 1;" v-model="companyList" @change="companyChange" > <el-checkbox class="list_checkbox" v-for="(item, index) in companyObject.show ? companyObject.list : companyObject.list.slice(0, !$util.isMobileDevice() ? 12 : 0)" :key="index" :label="item.name"> <el-tooltip class="item" effect="dark" :content="item.name" placement="top-start" v-if="item.name.length > 20"> <span> {{subString(item.sampleName, 20)}}</span> </el-tooltip> <span v-else>{{ item.sampleName }}</span> ({{ item.count }}) </el-checkbox> </el-checkbox-group> </div> <img v-if="companyObject.show" class="SpeciesImg" src="@/assets/img/superscript.png" alt="" @click="companyObject.show = false"> <img v-else class="SpeciesImg" src="@/assets/img/subscript.png" alt="" @click="companyObject.show = true"> </div> </div> </div> </div> <!-- 列表 --> <div class="article"> <template> <el-table :data="overView" stripe empty-text="Not Date" style="width: 100%" @row-click="gotoArticle"> <el-table-column prop="catalog" :label="$t('AntibodyDatabase.CatNo')" width="140"/> <el-table-column prop="name" :label="$t('AntibodyDatabase.AntibodyName')" /> <el-table-column prop="targetAbbreviation" :label="$t('AntibodyDatabase.Target')" width="400"> <!-- <template slot-scope="scope"> <span>{{ $util.targetDictionaries(scope.row.productTarget) }}</span> </template> --> </el-table-column> <!-- <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" /> --> <el-table-column prop="company" :label="$t('AntibodyDatabase.Inventor')"/> </el-table> </template> </div> <div class="articleMove"> <template> <el-table :data="overView" stripe empty-text="Not Date" style="width: 100%" @row-click="gotoArticle"> <el-table-column prop="catalog" width="75" :label="$t('AntibodyDatabase.CatNo')" /> <el-table-column prop="name" width="112" :label="$t('AntibodyDatabase.AntibodyName')" /> <el-table-column prop="target" :label="$t('AntibodyDatabase.Target')" > <template slot-scope="scope"> <span>{{ $util.targetDictionaries(scope.row.target) }}</span> </template> </el-table-column> <el-table-column prop="company" :label="$t('AntibodyDatabase.Inventor')" /> </el-table> </template> </div> </div> </template> <script> import banner from "@/components/banner"; export default { name: "antibody", components: { banner }, data() { return { overView: [], nameObject: { name: "Inventor", list: "", show: false }, targetObject: { name: "Inventor", list: "", show: false }, companyObject: { name: "Inventor", list: "", show: false }, checkList: [], nameList: [], targetList: [], companyList: [] }; }, methods: { tapSuperscript(i) { this.speciesList[i].show = !this.speciesList[i].show; }, // 搜索 nameChange(e) { console.log(e); this.nameList = e this.changeSearchAll() }, targetChange(e) { console.log(e); this.targetList = e this.changeSearchAll() }, companyChange(e) { console.log(e); this.companyList = e this.changeSearchAll() }, // 字符串截取 subString (str, len) { if (str.length > len) { return str.substring(0, len) + '...' } else { return str } }, changeSearchAll() { this.$api.post("/basb/searchAll", { articleFlag: 0, nameList: this.nameList, targetList: this.targetList, companyList: this.companyList }).then(res => { console.log(res) this.overView = res.data console.log(this.overView) }) }, gotoArticle(row, column, event) { console.log(row, column, event) this.$router.push({ path: "/antibodyDetail", query: { id: row.id } }); }, // 获取双特异性抗体-针对database获取统计信息 getDoubleInfo() { this.$api.post("/basb/searchStatisticForDatabase", {}).then(res => { console.log(res) if (res.code == 0) { // this.species = res.data this.nameObject.list = res.data.nameList this.targetObject.list = res.data.targetList this.companyObject.list = res.data.companyList } }) } }, mounted() {}, created() { this.changeSearchAll() this.getDoubleInfo() } }; </script> <style lang="scss"> .site-header-suggestion-select { .el-autocomplete-suggestion__wrap { max-height: 380px; } } </style> <style lang="scss" scoped> @media screen and (min-width: 751px) and (max-width: 9999px) { .box { .list_title{ width: 1200px; margin: 30px auto 0; font-size: 18px; font-weight: 600; } .article /deep/{ width: 1200px; margin: 30px auto 90px; .cell{ color: #000; } .el-table__row td{ background-color: #fff !important; cursor: pointer; } .el-table__row--striped td{ background-color: #F0FAFE !important; cursor: pointer; } } .articleMove{ display: none; } // 筛选项 .classificationMenu { width: 1200px; margin: 20px auto; .list { display: flex; align-content: center; .list-name { width: 190px; min-height: 40px; background: #dff3ff; // background-color: #f7faff; font-size: 16px; font-family: Arial; color: #000; padding-left: 20px; display: flex; align-items: center; } .SpeciesBox{ flex: 1; // background: #F7FAFF; background: #DFF3FE; position: relative; .SpeciesImg{ position: absolute; right: 10px; bottom: 10px; width: 15px; height: 15px; cursor: pointer; } } .list-s /deep/ { display: flex; // align-items: flex-start; align-items: center; position: relative; border-bottom: 1px solid rgba(7,91,169,.1); // padding: 10px 0; .list_tit{ width: 260px; text-align: center; font-weight: bold; // padding-top: 10px; } .SpeciesBox_list2{ padding: 10px; background-color: #F1FAFF; } .list_checkbox{ width: 23%; } .SpeciesBox_list{ max-height: 240px; overflow-y: auto; } .el-checkbox { padding: 6px 0; margin-right: 10px !important; .el-checkbox__label { font-size: 14px; font-family: Arial; color: #6f6f6f; } } .is-checked { .el-checkbox__label { color: #005bab; } } .top_img { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); width: 24px; cursor: pointer; } .purple_img { display: flex; align-items: center; background: #ffffff; border-radius: 2px; border: 1px solid #005bab; padding: 6px 10px; cursor: pointer; .icon { width: 26px; } .name { font-size: 14px; font-family: Arial; color: #005bab; } } .active { background: #005bab; border-radius: 2px; border: 1px solid #005bab; .name { color: #fff; } } } } } } } @media screen and (min-width: 0px) and (max-width: 750px) { .box { .list_title{ width: 100%; padding: 0.15rem 0.2rem; box-sizing: border-box; font-size: 16px; font-weight: 600; } .article{ display: none; } .articleMove /deep/{ width: 100%; padding: 0 0.15rem 0.15rem; // box-sizing: border-box; overflow-x: hidden; .cell{ color: #000; font-size: 0.1rem; } .el-table__row td{ background-color: #fff !important; cursor: pointer; } .el-table__row--striped td{ background-color: #F0FAFE !important; cursor: pointer; } } // 筛选项 .classificationMenu { margin-bottom: 0.2rem; .list { // border-bottom: 1px solid #ededed; .list-name { width: 100%; min-height: 0.4rem; background: #dff3ff; font-size: 16px; font-family: Arial; color: #000; padding-left: 0.2rem; display: flex; align-items: center; } .SpeciesBox{ padding: 0.1rem 0.15rem; } .list-s /deep/ { position: relative; background: #F7FAFF; // padding:0 0.15rem; .SpeciesBox_list{ max-height: 310px; overflow-y: auto; } .list_tit{ font-size: 14px; margin-bottom: .1rem; background: #dff3ff; line-height: 0.4rem; padding-left: 0.1rem; } .SpeciesBox_list2{ padding:0 0.1rem; } .SpeciesImg{ position: absolute; top: 0.14rem; right: 0.1rem; width: 26px; height: 14px; padding: 0 5px; background: #005bab; border-radius: 2px; } .SpeciesBox_name{ font-size: 14px; line-height: 1; margin-bottom: 0.1rem; } .el-checkbox { padding: 6px 0; .el-checkbox__label { font-size: 12px; font-family: Arial; color: #000; } } .is-checked { .el-checkbox__label { color: #005bab; } } } } } } } </style>