|
@@ -2,6 +2,77 @@
|
|
|
<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, 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="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, 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="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
|
|
@@ -12,15 +83,12 @@
|
|
|
@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="target" :label="$t('AntibodyDatabase.Target')" width="400">
|
|
|
- <template slot-scope="scope">
|
|
|
- <!-- <span v-for="(one, i) in scope.row.targetList" :key="i">
|
|
|
- {{ one }}
|
|
|
- </span> -->
|
|
|
+ <el-table-column prop="targetAbbreviation" :label="$t('AntibodyDatabase.Target')" width="400">
|
|
|
+ <!-- <template slot-scope="scope">
|
|
|
<span>{{ $util.targetDictionaries(scope.row.productTarget) }}</span>
|
|
|
- </template>
|
|
|
+ </template> -->
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" />
|
|
|
+ <!-- <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" /> -->
|
|
|
<el-table-column prop="company" :label="$t('AntibodyDatabase.Inventor')"/>
|
|
|
</el-table>
|
|
|
</template>
|
|
@@ -40,7 +108,7 @@
|
|
|
<span>{{ $util.targetDictionaries(scope.row.target) }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" />
|
|
|
+ <!-- <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" /> -->
|
|
|
<el-table-column prop="company" :label="$t('AntibodyDatabase.Inventor')" />
|
|
|
</el-table>
|
|
|
</template>
|
|
@@ -56,13 +124,62 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- overView: []
|
|
|
+ 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
|
|
|
+ articleFlag: 0,
|
|
|
+ nameList: this.nameList,
|
|
|
+ targetList: this.targetList,
|
|
|
+ companyList: this.companyList
|
|
|
}).then(res => {
|
|
|
console.log(res)
|
|
|
this.overView = res.data
|
|
@@ -77,11 +194,24 @@ export default {
|
|
|
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>
|
|
@@ -119,6 +249,105 @@ export default {
|
|
|
.articleMove{
|
|
|
display: none;
|
|
|
}
|
|
|
+ // 筛选项
|
|
|
+ .classificationMenu {
|
|
|
+ width: 1200px;
|
|
|
+ margin: 20px auto;
|
|
|
+ .list {
|
|
|
+ display: flex;
|
|
|
+ align-content: center;
|
|
|
+ .list-name {
|
|
|
+ width: 190px;
|
|
|
+ min-height: 40px;
|
|
|
+ background: #dff3ff;
|
|
|
+ font-size: 16px;
|
|
|
+ font-family: Arial;
|
|
|
+ color: #000;
|
|
|
+ padding-left: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .SpeciesBox{
|
|
|
+ flex: 1;
|
|
|
+ background: #F7FAFF;
|
|
|
+ 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 #E3F1FF;
|
|
|
+ padding: 10px 0;
|
|
|
+ .list_tit{
|
|
|
+ width: 260px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .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) {
|
|
@@ -150,6 +379,10 @@ export default {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|
|
|
+ // 筛选项
|
|
|
+ .classificationMenu {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|