wangxl@jiinfo.cn 1 сар өмнө
parent
commit
2f66ba0b5e

+ 1 - 1
config/dev.env.js

@@ -5,5 +5,5 @@ const prodEnv = require('./prod.env')
 module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
   BASE_API: '"/api/"',
-  LANG_CODE: '"cn"'
+  LANG_CODE: '"en"'
 })

+ 14 - 14
src/components/homeHeader.vue

@@ -9,12 +9,12 @@
         <div class="input_box">
 
           <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" text-color="#065BA9" active-text-color="#065BA9" @select="handleSelect">
-            <el-menu-item index="home">全览图</el-menu-item>
-            <el-menu-item index="article">相关文章</el-menu-item>
-            <el-menu-item index="product">产品详情</el-menu-item>
-            <el-menu-item index="antibody">抗体数据库</el-menu-item>
-            <!-- <el-menu-item index="profile">资料下载</el-menu-item> -->
-            <el-menu-item index="">资料下载</el-menu-item>
+            <el-menu-item index="home">{{ $t("nav.Overview") }}</el-menu-item>
+            <el-menu-item index="article">{{ $t("nav.RelatedArticles") }}</el-menu-item>
+            <el-menu-item index="product">{{ $t("nav.ProductDetails") }}</el-menu-item>
+            <el-menu-item index="antibody">{{ $t("nav.AntibodyDatabase") }}</el-menu-item>
+            <el-menu-item index="profile">{{ $t("nav.MaterialsDownload") }}</el-menu-item>
+            <!-- <el-menu-item index="">Materials Download</el-menu-item> -->
           </el-menu>
 
         </div>
@@ -34,13 +34,13 @@
           </div>
           <!-- 移动端菜单 -->
           <el-menu class="el-menu-demo" default-active="1" background-color="#005bab" text-color="#ffffff" active-text-color="#ffffff" @select="handleSelect">
-            <el-menu-item index="home">全览图</el-menu-item>
-            <el-menu-item index="article">相关文章</el-menu-item>
-            <el-menu-item index="product">产品详情</el-menu-item>
-            <el-menu-item index="antibody">抗体数据库</el-menu-item>
-            <!-- <el-menu-item index="profile">资料下载</el-menu-item> -->
-            <el-menu-item index="">资料下载</el-menu-item>
-            <!-- <el-menu-item index="contact">{{ $t("button.contactUs") }}</el-menu-item> -->
+            <el-menu-item index="home">{{ $t("nav.Overview") }}</el-menu-item>
+            <el-menu-item index="article">{{ $t("nav.RelatedArticles") }}</el-menu-item>
+            <el-menu-item index="product">{{ $t("nav.ProductDetails") }}</el-menu-item>
+            <el-menu-item index="antibody">{{ $t("nav.AntibodyDatabase") }}</el-menu-item>
+            <el-menu-item index="profile">{{ $t("nav.MaterialsDownload") }}</el-menu-item>
+            <!-- <el-menu-item index="">Materials Download</el-menu-item> -->
+            <el-menu-item index="contact">{{ $t("button.contactUs") }}</el-menu-item>
           </el-menu>
         </div>
       </div>
@@ -417,7 +417,7 @@ export default {
   .el-menu-demo /deep/{
     .is-active{
       .el-submenu__title{
-        font-size: 18px !important;
+        font-size: 16px !important;
         border-bottom: none !important;
       }
     }

+ 4 - 2
src/components/userInfo.vue

@@ -11,7 +11,7 @@
               >{{ $t("homePage.us") }}</router-link
             >
           </p>
-          <el-row class="block-col-2">
+          <!-- <el-row class="block-col-2">
             <el-col>
               <el-select v-model="locale" placeholder="" @change="changeLocale">
                 <el-option
@@ -23,7 +23,7 @@
                 </el-option>
               </el-select>
             </el-col>
-          </el-row>
+          </el-row> -->
         </div>
         <div class="center_landingr">
           <el-row class="block-col-2" v-if="tokenShow">
@@ -270,6 +270,8 @@ export default {
         .center_landingl {
           text-align: center;
           font-weight: 500;
+          margin-top: 10px;
+          margin-left: 10px;
           .block-col-2 /deep/ {
             cursor: pointer;
             .el-col {

+ 29 - 0
src/langs/cn/index.js

@@ -15,6 +15,35 @@ export default {
     Eukaryotic: 'Eukaryotic Protein Preparation All-inclusive Package',
     loading: 'Loading',
   },
+  // 导航栏
+  nav: {
+    Overview: "全览图",
+    RelatedArticles: "相关文章",
+    ProductDetails: "产品详情",
+    AntibodyDatabase: "抗体数据库",
+    MaterialsDownload: "资料下载",
+    inquire: "查询",
+    reset: "重置"
+  },
+  // 相关文章
+  RelatedArticles: {
+    No: "序号",
+    CatNo: "货号",
+    Inventor: "原研公司",
+    MOA: "MOA",
+    Country: "上市国家",
+    AntibodyName: "抗体名称",
+    ArticleTitle: "文章题目"
+  },
+  // 抗体数据库
+  AntibodyDatabase: {
+    CatNo: "产品货号",
+    AntibodyName: "抗体名称",
+    Target: "靶点",
+    TargetName: "靶点名称",
+    MOA: "MOA",
+    Inventor: "公司"
+  },
   immuneCheckpoint: {
     title: "Immune Checkpoint Protein",
     background: ["Immune checkpoint proteins are proteins expressed in immune cells and can maintain immune homeostasis. Their abnormal expression and functional imbalance lead to various diseases, such as tumors and autoimmunity. In recent years, the successive marketing of antibody drugs developed for immune checkpoints, such as PD-1/PD-L1 and CTL-4, has opened the door to immunotherapy. Clinical trials on popular targets such as CD24, B7-H3, and 4-1BB are also in full swing, and new immune checkpoints such as CD161 and TREAM2 have also provided new ideas for immunotherapy."],

+ 29 - 0
src/langs/en/index.js

@@ -15,6 +15,35 @@ export default {
     Eukaryotic: 'Eukaryotic Protein Preparation All-inclusive Package',
     loading: 'Loading',
   },
+  // 导航栏
+  nav: {
+    Overview: "Overview",
+    RelatedArticles: "Related Articles",
+    ProductDetails: "Product Details",
+    AntibodyDatabase: "Antibody Database",
+    MaterialsDownload: "Materials Download",
+    inquire: "Inquire",
+    reset: "Reset"
+  },
+  // 相关文章
+  RelatedArticles: {
+    No: "No.",
+    CatNo: "Cat No.",
+    Inventor: "Inventor",
+    MOA: "MOA",
+    Country: "Country",
+    AntibodyName: "Antibody Name",
+    ArticleTitle: "Article Title"
+  },
+  // 抗体数据库
+  AntibodyDatabase: {
+    CatNo: "Cat No.",
+    AntibodyName: "Antibody Name",
+    Target: "Target",
+    TargetName: "Target Name",
+    MOA: "MOA",
+    Inventor: "Inventor"
+  },
   immuneCheckpoint: {
     title: "Immune Checkpoint Protein",
     background: ["Immune checkpoint proteins are proteins expressed in immune cells and can maintain immune homeostasis. Their abnormal expression and functional imbalance lead to various diseases, such as tumors and autoimmunity. In recent years, the successive marketing of antibody drugs developed for immune checkpoints, such as PD-1/PD-L1 and CTL-4, has opened the door to immunotherapy. Clinical trials on popular targets such as CD24, B7-H3, and 4-1BB are also in full swing, and new immune checkpoints such as CD161 and TREAM2 have also provided new ideas for immunotherapy."],

+ 3 - 3
src/router/index.js

@@ -50,9 +50,9 @@ myRouter.afterEach((to, from) => {
   // store.commit('settapscart', '')
   Bus.$emit('onmycar', '2')
   // localStorage.setItem('cartTap', '2')
-  setTimeout(() => {
-    tdkTitle(to)
-  }, 2000)
+  // setTimeout(() => {
+  //   tdkTitle(to)
+  // }, 2000)
 })
 
 // sitemap

+ 5 - 5
src/router/routerList.js

@@ -26,7 +26,7 @@ export default [
     hidden: true,
     meta: {
       pageTitle: "overView",
-      chineseTitle: "全览图",
+      chineseTitle: "Overview", // // 全览图
       navActive: "overView",
       fullScreen: true
     }
@@ -48,7 +48,7 @@ export default [
     hidden: true,
     meta: {
       pageTitle: 'Product Detail',
-      chineseTitle: '产品详情',
+      chineseTitle: 'Product Detail', // 产品详情
       navActive: 'Product detail', // 匹配路由名字 产品详情
       fullScreen: true
     }
@@ -91,7 +91,7 @@ export default [
     hidden: true,
     meta: {
       pageTitle: "article",
-      chineseTitle: "相关文章",
+      chineseTitle: "Related Articles",
       navActive: "article",
       fullScreen: true
     }
@@ -102,7 +102,7 @@ export default [
     hidden: true,
     meta: {
       pageTitle: "profile",
-      chineseTitle: "资料下载",
+      chineseTitle: "Materials Download", // 资料下载
       navActive: "profile",
       fullScreen: true
     }
@@ -113,7 +113,7 @@ export default [
     hidden: true,
     meta: {
       pageTitle: "antibody",
-      chineseTitle: "抗体数据库",
+      chineseTitle: "Antibody Database", // 抗体数据库
       navActive: "antibody",
       fullScreen: true
     }

+ 12 - 8
src/view/antibody/index.vue

@@ -1,25 +1,27 @@
 <template>
     <div class="box">
         <banner></banner>
-        <p class="list_title">抗体数据库</p>
+        <p class="list_title">{{ $t("nav.AntibodyDatabase") }}</p>
         <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="产品货号" width="100"/>
-                    <el-table-column prop="name" label="抗体名称" width="400"/>
-                    <el-table-column prop="targetList" label="靶点" >
+                    <el-table-column prop="catalog" :label="$t('AntibodyDatabase.CatNo')" width="100"/>
+                    <el-table-column prop="name" :label="$t('AntibodyDatabase.AntibodyName')" width="400"/>
+                    <el-table-column prop="target" :label="$t('AntibodyDatabase.Target')" >
                       <template slot-scope="scope">
-                        <span v-for="(one, i) in scope.row.targetList" :key="i">
+                        <!-- <span v-for="(one, i) in scope.row.targetList" :key="i">
                           {{ one }}
-                        </span>
+                        </span> -->
+                        <span>{{ $util.targetDictionaries(scope.row.target) }}</span>
                       </template>
                     </el-table-column>
-                    <el-table-column prop="moa" label="MOA" />
-                    <el-table-column prop="company" label="公司" />
+                    <el-table-column prop="moa" :label="$t('AntibodyDatabase.MOA')" />
+                    <el-table-column prop="company" :label="$t('AntibodyDatabase.Inventor')" />
                 </el-table>
             </template>
         </div>
@@ -40,9 +42,11 @@ export default {
   methods: {
     changeSearchAll() {
       this.$api.post("/basb/searchAll", {
+        articleFlag: 0
       }).then(res => {
         console.log(res)
         this.overView = res.data
+        console.log(this.overView)
       })
     },
     gotoArticle(row, column, event) {

+ 12 - 12
src/view/antibodyDetail/index.vue

@@ -202,7 +202,7 @@
             <div class="antibodyDetail_box">
                 <p class="Detail_boxTitle">Patent</p>
                 <div class="source_box">
-                    <p v-for="(one, index) in overView.patentList" :key="index">[{{ index + 1 }}] {{ one.contentOne }}</p>
+                    <p v-for="(one, index) in overView.patentList" :key="index">[{{ index + 1 }}] {{ one.contentTwo }}</p>
                 </div>
             </div>
         </div>
@@ -252,10 +252,10 @@ export default {
         width: 1200px;
         margin: 30px auto 90px;
         .Detail_line{
-            border-bottom: 1px solid #DDDDDD;
+            border-bottom: 1px solid #D4E5EF;
         }
         .line_right{
-            border-right: 1px solid #DDDDDD;
+            border-right: 1px solid #D4E5EF;
         }
         .drop{
             color: #0259AE;
@@ -272,7 +272,7 @@ export default {
                 font-weight: 600;
             }
             .Detail_boxContent{
-                border: 2px solid #0259AE;
+                border: 1px solid #0259AE;
                 padding: 5px 10px;
                 box-sizing: border-box;
                 font-size: 14px;
@@ -280,7 +280,7 @@ export default {
                 margin: 10px 0 20px;
             }
             .Background_box{
-                border: 2px solid #0259AE;
+                border: 1px solid #0259AE;
                 margin: 10px 0 20px;
                 font-size: 14px;
                 line-height: 18px;
@@ -297,7 +297,7 @@ export default {
                     .Background_text{
                         min-height: 38px;
                         background: #fff;
-                        border-left: 1px solid #DDDDDD;
+                        border-left: 1px solid #D4E5EF;
                         padding: 10px;
                         box-sizing: border-box;
                         flex: 1;
@@ -308,7 +308,7 @@ export default {
                 display: flex;
                 .Properties_content{
                     width: 50%;
-                    border: 2px solid #0259AE;
+                    border: 1px solid #0259AE;
                     margin: 10px 0 20px;
                     font-size: 14px;
                     line-height: 18px;
@@ -328,7 +328,7 @@ export default {
                         .Background_text{
                             min-height: 38px;
                             background: #fff;
-                            border-left: 1px solid #DDDDDD;
+                            border-left: 1px solid #D4E5EF;
                             padding: 10px;
                             box-sizing: border-box;
                             flex: 1;
@@ -364,7 +364,7 @@ export default {
                         .Background_text{
                             min-height: 38px;
                             background: #fff;
-                            border-left: 1px solid #DDDDDD;
+                            border-left: 1px solid #D4E5EF;
                             padding: 10px;
                             box-sizing: border-box;
                             flex: 1;
@@ -376,7 +376,7 @@ export default {
                 }
             }
             .Clinical_box{
-                border: 2px solid #0259AE;
+                border: 1px solid #0259AE;
                 margin: 5px 0 20px;
                 font-size: 14px;
                 line-height: 18px;
@@ -417,7 +417,7 @@ export default {
                 }
             }
             .history_box{
-                border: 2px solid #0259AE;
+                border: 1px solid #0259AE;
                 padding: 20px 10px;
                 box-sizing: border-box;
                 font-size: 14px;
@@ -429,7 +429,7 @@ export default {
                 }
             }
             .source_box{
-                border: 2px solid #0259AE;
+                border: 1px solid #0259AE;
                 padding: 20px 10px;
                 box-sizing: border-box;
                 font-size: 14px;

+ 19 - 14
src/view/article/index.vue

@@ -1,28 +1,29 @@
 <template>
     <div class="box">
         <banner></banner>
-        <p class="list_title">相关文章</p>
-        <div class="article">
+        <p class="list_title">{{ $t("nav.RelatedArticles") }}</p>
+        <div class="article_box">
             <template>
                 <el-table
-                    :data="overView"
+                    :data="list"
                     stripe
+                    empty-text="Not Date"
                     style="width: 100%"
                     @row-click="gotoArticle">
-                    <el-table-column type="index" label="序号" width="80" />
-                    <el-table-column prop="catalog" label="货号" />
-                    <el-table-column prop="company" label="原研公司" />
+                    <el-table-column type="index" :label="$t('RelatedArticles.No')" width="80" />
+                    <el-table-column prop="catalog" :label="$t('RelatedArticles.CatNo')" />
+                    <el-table-column prop="company" :label="$t('RelatedArticles.Inventor')" />
                     <el-table-column
                         prop="moa"
-                        label="MOA"
+                        :label="$t('RelatedArticles.MOA')"
                         width="180"
                         :filters="filters"
                         :filter-method="filterHandler"
                         >
                     </el-table-column>
-                    <el-table-column prop="country" label="上市国家" />
-                    <el-table-column prop="name" label="抗体名称" />
-                    <el-table-column prop="articleTitle" label="文章题目" />
+                    <el-table-column prop="country" :label="$t('RelatedArticles.Country')" />
+                    <el-table-column prop="name" :label="$t('RelatedArticles.AntibodyName')" />
+                    <el-table-column prop="articleTitle" :label="$t('RelatedArticles.ArticleTitle')" />
                 </el-table>
             </template>
         </div>
@@ -31,21 +32,25 @@
 <script>
 import banner from "@/components/banner";
 export default {
-  name: "article",
+  name: "Article",
   components: {
     banner
   },
   data() {
     return {
-      overView: [],
+      list: [],
       filters: []
     };
   },
   methods: {
     changeSearchAll() {
       this.$api.post("/basb/searchAll", {
+        articleFlag: 1
       }).then(res => {
-        this.overView = res.data
+        if (res.code == 0) {
+          this.list = res.data || []
+          console.log(this.list)
+        }
       })
     },
     gotoArticle(row, column, event) {
@@ -99,7 +104,7 @@ export default {
         font-size: 18px;
         font-weight: 600;
       }
-      .article /deep/{
+      .article_box /deep/{
         width: 1200px;
         margin: 30px auto 90px;
         .cell{

+ 13 - 6
src/view/overView/index.vue

@@ -1,18 +1,18 @@
 <template>
     <div class="box">
         <banner></banner>
-        <p class="list_title">全览图</p>
+        <p class="list_title">{{ $t("nav.Overview") }}</p>
         <div class="list_box">
           <div class="list" v-for="(item, index) in overView" :key="index" :class="index % 2 == 0 ? '' : 'list_active'">
               <div class="format-box" v-for="(one, i) in item" :key="i">
                   <div class="images_box">
                       <p class="images_title">{{one.catalog}}</p>
-                      <img class="icons-item-imgbox" src="@/assets/img/Mab004.jpg">
+                      <img class="icons-item-imgbox" :src="one.coverUrl">
                       <p class="images_weight">{{ one.name }}</p>
                       <p class="images_text">{{one.moa}} </p>
                       <p class="images_text">{{one.proteinWeight}}</p>
                       <p class="images_text">({{one.company}})</p>
-                      <p class="images_footer">{{one.country}}, {{ one.stage }}</p>
+                      <p class="images_footer">{{one.country}}{{one.stage? ',':''}} {{ one.stage }}{{ one.year? "("+one.year+")" : '' }}</p>
                   </div>
               </div>
           </div>
@@ -35,13 +35,16 @@ export default {
     // 重组数据,没6条数据一组
     recombination(list) {
       let arr = []
-      for (let i = 0; i < list.length; i += 6) {
-        arr.push(list.slice(i, i + 6))
+      if (list && list.length > 0) {
+        for (let i = 0; i < list.length; i += 6) {
+          arr.push(list.slice(i, i + 6))
+        }
+        this.overView = arr
       }
-      this.overView = arr
     },
     changeSearchAll() {
       this.$api.post("/basb/searchAll", {
+        articleFlag: 0
       }).then(res => {
         console.log(res)
         this.recombination(res.data)
@@ -79,6 +82,7 @@ export default {
         flex-wrap: wrap;
       }
       .list{
+        width: 100%;
         // width: 1200px;
         // margin: 30px auto 90px;
         display: flex;
@@ -103,13 +107,16 @@ export default {
                     font-size: 14px;
                     font-weight: 600;
                     margin-bottom: 10px;
+                    // height: 40px;
                 }
                 .images_text{
                     font-size: 12px;
+                    height: 20rpx;
                 }
                 .images_footer{
                     font-size: 12px;
                     margin-top: 10px;
+                    height: 20rpx;
                 }
                 .icons-item-imgbox{
                     width: 100%;

+ 6 - 6
src/view/product/index.vue

@@ -4,15 +4,15 @@
     <div class="antibody_box" ref="tablePar">
       <!-- 搜索 -->
       <el-form :inline="true" :model="form" class="demo-form-inline">
-        <el-form-item label="抗体名称:">
-          <el-input v-model="form.name" placeholder="抗体名称"></el-input>
+        <el-form-item :label="$t('RelatedArticles.AntibodyName')+':'">
+          <el-input v-model="form.name" placeholder=""></el-input>
         </el-form-item>
-        <el-form-item label="靶点名称:">
-          <el-input v-model="form.target" placeholder="靶点名称"></el-input>
+        <el-form-item :label="$t('AntibodyDatabase.TargetName')+':'">
+          <el-input v-model="form.target" placeholder=""></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="onSubmit">查询</el-button>
-          <el-button type="danger" @click="reset">重置</el-button>
+          <el-button type="primary" @click="onSubmit">{{ $t("nav.inquire") }}</el-button>
+          <el-button type="danger" @click="reset">{{ $t("nav.reset") }}</el-button>
         </el-form-item>
       </el-form>
        <!-- 列表 -->