杨磊
3 天以前 87d2fac9c381de99f75ce6c6c39b7d638b980d7e
src/views/aboutUs/index.vue
@@ -1,14 +1,13 @@
<template>
  <div class="bgcfff">
    <div class="bannerBox">
      <div class="imgBox">
        <img src="@/assets/images/xiehe/about/about_bg.png" alt="" />
        <div class="bannerText">
          <div>中国协和医科大学出版社</div>
          <div class="enText">ABOUT US</div>
  <div class="homePage">
    <el-carousel :height="screenheight + 'px'">
      <el-carousel-item v-for="(item, index) in banner" :key="index">
        <div class="bannerBox imgBox">
          <img id="autoHeight" class="bannerImg" :src="item.icon" @click="bannerLink(item)" />
        </div>
      </div>
    </div>
      </el-carousel-item>
    </el-carousel>
    <div class="contentBox">
      <div class="crumbs">
        <el-breadcrumb separator-class="el-icon-arrow-right">
@@ -19,57 +18,39 @@
      <div class="aboutUs">
        <div class="aboutTitle">
          <div class="titleBox1">
            <img
              class="autoImg"
              src="@/assets/images/xiehe/about/yinhao.png"
              alt=""
            />
            <img class="autoImg" src="@/assets/images/xiehe/about/yinhao.png" alt="" />
          </div>
          <div class="titleText">Publisher Introduction</div>
        </div>
        <div class="textBox">
          <p>
            中国协和医科大学出版社(以下简称“协和出版社”)成立于
            <span class="colorText">1989</span> 年,是
            <span class="colorText"
              >国家卫生健康委主管、中国医学科学院北京协和医学院主办
              的大学出版社。</span
            >
          </p>
          <p>
            协和出版社的出版宗旨是,以积淀文化、弘扬思想为己任,面向医学科学前沿,面向医学教育,面向临床实践,面向大众健康,为学校、学术界及全社会提供高品质的内容产品,为协和的学术声誉增光添彩,为医学界提高医学学术水平做出实质性贡献,为中国公众提供权威的健康科普服务,最终为我国卫生健康事业发展发挥应有作用。
          </p>
          <p>
            建社以来,协和出版社秉承协和母校优秀的学术传统,坚守学术出版阵地,搭建高水平的学术传播平台,以“当好医生,读协和医书”为目标,铸造学术品牌,强化精品意识,倾力打造八大品类图书,包括教材教辅、医学专著、临床实用手册、辞书、卫生管理、医学人文、健康科普、工具类图书。不仅在提升医务人员职业能力、拓展专业视野以及助力执业资格考试方面发挥了重要作用,也为医学生夯实医学基础、掌握临床技能、提升科研素养提供了系统性支持,成为其成长过程中的重要学习资源,口碑相传,品牌既树。
          </p>
          <p>
            协和出版社作为具有高度医学专业性的国家级出版社,肩负着服务院校教材建设与课程建设的重要责任。未来,协和出版社将充分发挥专业优势,为图书出版、发行及宣传提供全方位、有力支持,推动医学教育事业不断发展。
          </p>
        </div>
        <div class="textBox" v-html="publisherIntroduction"></div>
        <div class="statisticsBox">
          <div class="statisticsItem">
            <div class="statisticsNum">
              35 <span class="circleBox">年</span>
              {{ publisherData.focusOnMedical }} <span class="circleBox">年</span>
            </div>
            <div class="statisticsTitle">专注医学出版</div>
          </div>
          <div class="statisticsItem">
            <div class="statisticsNum">8000+ 位</div>
            <div class="statisticsNum">{{ publisherData.topExpertDatabase }}+ 位</div>
            <div class="statisticsTitle">顶级专家库</div>
          </div>
          <div class="statisticsItem">
            <div class="statisticsNum">
              500+ <span class="circleBox">本</span>
              {{ publisherData.accumulatedTextbooks }}+ <span class="circleBox">本</span>
            </div>
            <div class="statisticsTitle">累计出版教材教辅</div>
          </div>
          <div class="statisticsItem">
            <div class="statisticsNum">4 <span class="circleBox">本</span></div>
            <div class="statisticsNum">
              {{ publisherData.academicJournals }} <span class="circleBox">本</span>
            </div>
            <div class="statisticsTitle">学术期刊</div>
          </div>
          <div class="statisticsItem">
            <div class="statisticsNum">4 <span class="circleBox">本</span></div>
            <div class="statisticsTitle">学术期刊</div>
            <div class="statisticsNum">
              {{ publisherData.dualCoreJournal }} <span class="circleBox">本</span>
            </div>
            <div class="statisticsTitle">双核心期刊</div>
          </div>
        </div>
      </div>
@@ -81,359 +62,246 @@
            <div>理念与品牌文化</div>
            <div class="enText">Philosophy & Brand Culture</div>
          </div>
          <div class="cultureList">
          <div class="cultureList" v-loading="loading">
            <div class="cultureItem firstItem">
              <div
                class="cultureTitle"
                style="border-bottom: 1px solid rgba(255, 255, 255, 0.1)"
              >
              <div class="cultureTitle" style="border-bottom: 1px solid rgba(255, 255, 255, 0.1)">
                <div class="leftIcon">
                  <img
                    class="autoImg"
                    src="@/assets/images/xiehe/about/zongzhi.png"
                    alt=""
                  />
                  <img class="autoImg" src="@/assets/images/xiehe/about/zongzhi.png" alt="" />
                </div>
                <div class="titleTextInfo">
                  <div class="itemTitle" style="color: #fff">出版宗旨</div>
                  <div class="itemTitle" style="color: #fff">{{ ideaBrandCulture[0]?.name }}</div>
                  <div class="itemSubTitle" style="color: #fff">
                    Publishing Mission
                    {{ ideaBrandCulture[0]?.EnglishName }}
                  </div>
                </div>
              </div>
              <div class="itemText" style="color: #d5d5d5">
                以积淀文化、弘扬思想为己任,聚焦医学科学前沿、医学教育、临床实践与大众健康,为建设健康中国贡献出版力量。
              </div>
              <div
                class="itemText"
                style="color: #d5d5d5"
                v-html="ideaBrandCulture[0]?.content"
              ></div>
            </div>
            <div class="cultureItem">
              <div class="cultureTitle">
                <div class="leftIcon">
                  <img
                    class="autoImg"
                    src="@/assets/images/xiehe/about/beijing.png"
                    alt=""
                  />
                  <img class="autoImg" src="@/assets/images/xiehe/about/beijing.png" alt="" />
                </div>
                <div class="titleTextInfo">
                  <div class="itemTitle">出版宗旨</div>
                  <div class="itemSubTitle">Publishing Mission</div>
                  <div class="itemTitle">{{ ideaBrandCulture[1]?.name }}</div>
                  <div class="itemSubTitle">
                    {{ ideaBrandCulture[1]?.EnglishName }}
                  </div>
                </div>
              </div>
              <div class="itemText">
                由国家卫生健康委主管、中国医学科学院北京协和医学院主办,专注医学出版 35年,持续引领医学专业出版方向。
              </div>
              <div class="itemText" v-html="ideaBrandCulture[1]?.content"></div>
            </div>
            <div class="cultureItem">
              <div class="cultureTitle">
                <div class="leftIcon">
                  <img
                    class="autoImg"
                    src="@/assets/images/xiehe/about/zizhi.png"
                    alt=""
                  />
                  <img class="autoImg" src="@/assets/images/xiehe/about/zizhi.png" alt="" />
                </div>
                <div class="titleTextInfo">
                  <div class="itemTitle">出版宗旨</div>
                  <div class="itemSubTitle">Publishing Mission</div>
                  <div class="itemTitle">{{ ideaBrandCulture[2]?.name }}</div>
                  <div class="itemSubTitle">
                    {{ ideaBrandCulture[2]?.EnglishName }}
                  </div>
                </div>
              </div>
              <div class="itemText">
                多次荣获“高校优秀出版社”“全国良好出版社”“卫生部杰出科技著作突出贡献出版社”等称号,出版图书屡获 中国出版政府奖、中华优秀出版物奖 等国家级荣誉。
              </div>
              <div class="itemText" v-html="ideaBrandCulture[2]?.content"></div>
            </div>
            <div class="cultureItem">
              <div class="cultureTitle">
                <div class="leftIcon">
                  <img
                    class="autoImg"
                    src="@/assets/images/xiehe/about/fazhan.png"
                    alt=""
                  />
                  <img class="autoImg" src="@/assets/images/xiehe/about/fazhan.png" alt="" />
                </div>
                <div class="titleTextInfo">
                  <div class="itemTitle">出版宗旨</div>
                  <div class="itemSubTitle">Publishing Mission</div>
                  <div class="itemTitle">{{ ideaBrandCulture[3]?.name }}</div>
                  <div class="itemSubTitle">
                    {{ ideaBrandCulture[3]?.EnglishName }}
                  </div>
                </div>
              </div>
              <div class="itemText">
                致力于为学校、学术界及全社会提供高品质的医学内容产品,为协和的学术声誉增光添彩,为医学界提升学术水平提供实质支持,为中国公众提供权威健康科普服务,为我国卫生健康事业持续发展贡献协和力量。
              </div>
              <div class="itemText" v-html="ideaBrandCulture[3]?.content"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="page-container">
      <MapContainer />
    </div>
  </div>
</template>
<script>
import { requestCtx } from "@/assets/js/config";
<script setup>
import moment from 'moment'
import MapContainer from '@/components/MapContainer.vue'
import { ref, onBeforeMount, inject, reactive, onMounted } from 'vue'
let screenheight = ref(document.documentElement.clientHeight / 2)
const MG = inject('MG')
const config = inject('config')
const tool = inject('tool')
const banner = reactive([])
let publisherIntroduction = ref('')
let publisherData = ref('')
let ideaBrandCulture = ref([])
let loading = ref(false)
export default {
  name: "home",
  components: {},
  data() {
    return {
      bannerList: [],
      tabsSelected: 0,
      tabSelect: [
        {
          name: "出版社概括",
          path: "caupress_pressOverview",
        },
        {
          name: "组织架构",
          path: "caupress_organization",
        },
        {
          name: "荣誉奖励",
          path: "caupress_honorAward",
        },
        {
          name: "大事记",
          path: "caupress_majorEvents",
        },
        {
          name: "联系方式",
          path: "caupress_contact",
        },
        {
          name: "招纳贤士",
          path: "caupress_recruit",
        },
      ],
      contentList: [],
      reLoading: true,
      contentIndex: 0,
      paginationData: {
        page: 1,
        totalCount: 0,
        limit: 5,
        totalPage: 0,
const getBanner = () => {
  MG.resource
    .getItem({
      path: 'banner\\homeBanner',
      fields: { link: [] },
      paging: { start: 0, size: 9 },
    })
    .then((res) => {
      banner.push(...res.datas)
      console.log(res.datas)
    })
}
const getPublisherIntroduction = () => {
  MG.resource
    .getItem({
      path: 'aboutUs\\publisherIntroduction',
      fields: { content: [] },
      paging: { start: 0, size: 9 },
    })
    .then((res) => {
      console.log(res.datas)
      publisherIntroduction.value = res.datas[0].content
    })
}
const getIdeaBrandCulture = () => {
  loading.value = true
  MG.resource
    .getItem({
      path: 'aboutUs\\ideaBrandCulture',
      fields: { content: [], EnglishName: [] },
      paging: { start: 0, size: 9 },
    })
    .then((res) => {
      console.log(res.datas, 'ideaBrandCulture')
      ideaBrandCulture.value = res.datas
      loading.value = false
    })
}
const getPublisherData = () => {
  MG.resource
    .getItem({
      path: 'aboutUs\\publisherData',
      fields: {
        academicJournals: [],
        accumulatedTextbooks: [],
        dualCoreJournal: [],
        focusOnMedical: [],
        topExpertDatabase: [],
      },
      screenheight: document.documentElement.clientWidth / 2.628,
    };
  },
  created() {
    window.onresize = () => {
      let c = 2.628;
      if (document.documentElement.clientWidth >= 1220) {
        this.screenheight = document.documentElement.clientWidth / c;
      }
    };
    // 从关于我们详情页跳转回来,选中大事记
    if (this.$route.query.aboutUs) {
      this.tabsSelected = this.$route.query.aboutUs;
    }
    this.getBanner();
    this.getData();
  },
  watch: {
    $route: {
      handler: function (val, oldval) {
        console.log(val, "val");
        if (val.query.aboutUs || val.query.aboutUs == 0) {
          scrollTo(0, 0);
          this.tabsSelected = val.query.aboutUs;
          this.getData();
        }
      },
      deep: true,
    },
  },
  methods: {
    bannerLink(val) {
      if (val.caupress_link) {
        window.open(val.caupress_link);
      }
    },
    selectTab(val) {
      this.paginationData.page = 1;
      this.$router.replace({
        name: "aboutUs",
        query: {
          aboutUs: val,
        },
      });
    },
    getBanner() {
      this.MG.resource
        .getItem({
          path: "caupress_banner\\caupress_about",
          fields: {
            caupress_link: [],
          },
          coverSize: {
            height: 750,
          },
          paging: {
            start: 0,
            size: 999,
          },
        })
        .then((res) => {
          this.bannerList = res.datas;
        });
    },
    getData() {
      this.reLoading = true;
      let path = "caupress_aboutUs\\" + this.tabSelect[this.tabsSelected].path;
      let { limit, page } = this.paginationData;
      this.MG.resource
        .getItem({
          path: path,
          fields: {
            caupress_content: [],
            caupress_author: [],
            caupress_file: [],
            caupress_detailedAddress: [],
            caupress_publishDate: [],
          },
          paging: {
            start: limit * page - limit,
            size: limit,
          },
        })
        .then((res) => {
          this.contentList = res.datas;
          this.paginationData.totalCount = res.total;
          this.reLoading = false;
        });
    },
    downloading(md5) {
      let url = requestCtx + "/file/api/ApiDownload/?md5=" + md5;
      window.open(url, "_blank");
    },
    toDetail(linkInfo) {
      this.$router.push({
        name: "informationCenter-detail",
        query: {
          type: "aboutUs",
          path: linkInfo[0].LinkPath,
          id: linkInfo[0].ChildrenId,
        },
      });
    },
  },
};
      paging: { start: 0, size: 1 },
    })
    .then((res) => {
      console.log(res.datas, 'publisherData')
      publisherData.value = res.datas[0]
    })
}
onMounted(() => {
  getBanner()
  getPublisherIntroduction()
  getPublisherData()
  getIdeaBrandCulture()
})
</script>
<style lang="less" scoped>
.autoImg {
  max-height: none;
}
.bgcfff {
.homePage {
  min-width: 1220px;
  min-height: calc(100vh - 61.8%);
  background-color: #fff;
  .bannerBox {
    background: #f3f3f3;
    position: relative;
  }
  .imgBox {
    position: relative;
    width: 100%;
    height: 100%;
  }
  .bannerText {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0px 0px 10px #000000;
    text-align: center;
  }
  .enText {
    font-size: 36px;
    opacity: 0.45;
    margin-top: 20px;
  }
  .contentBox {
    background-color: #fff;
}
.contentBox {
  background-color: #fff;
    padding-bottom: 100px;
    margin-top: 35px;
    .aboutUs {
  padding-bottom: 100px;
  margin-top: 35px;
  .aboutUs {
    width: 100%;
    font-size: 16px;
    border-top: 1px solid #ededed;
    margin-top: 40px;
    .aboutTitle {
      display: flex;
      width: 100%;
      font-size: 16px;
      border-top: 1px solid #ededed;
      margin-top: 40px;
      .aboutTitle {
        display: flex;
        width: 100%;
        padding-top: 30px;
        .titleBox1 {
          position: relative;
          width: 50px;
          height: 50px;
          margin-right: 20px;
        }
        .titleText {
          font-size: 48px;
          font-weight: 700;
          opacity: 0.05;
        }
      padding-top: 30px;
      .titleBox1 {
        position: relative;
        width: 50px;
        height: 50px;
        margin-right: 20px;
      }
      .block {
        display: inline-block;
        width: 4px;
        height: 4px;
        margin-right: 10px;
        vertical-align: middle;
        background: #dadada;
      }
      .selected {
        background-color: #e7f9ef;
        .block {
          background-color: #008e3f;
        }
      }
      .title {
        padding: 0;
      .titleText {
        font-size: 48px;
        font-weight: 700;
        text-align: center;
        background: #008e3f;
        color: #fff;
        line-height: 36px;
        border-bottom: 0;
      }
      div {
        cursor: pointer;
        // border-bottom: 1px dashed #ededed;
      }
      .colorText {
        color: #144941;
      }
      .textBox {
        line-height: 20px;
        p {
          margin-top: 30px;
        }
        opacity: 0.05;
      }
    }
    .statisticsBox {
      display: flex;
      justify-content: space-between;
      margin-top: 80px;
    .block {
      display: inline-block;
      width: 4px;
      height: 4px;
      margin-right: 10px;
      vertical-align: middle;
      background: #dadada;
    }
    .selected {
      background-color: #e7f9ef;
      .block {
        background-color: #008e3f;
      }
    }
    .title {
      padding: 0;
      font-weight: 700;
      text-align: center;
      .statisticsNum {
        font-size: 48px;
      background: #008e3f;
      color: #fff;
      line-height: 36px;
      border-bottom: 0;
    }
    div {
      cursor: pointer;
      // border-bottom: 1px dashed #ededed;
    }
    .colorText {
      color: #144941;
    }
    .textBox {
      line-height: 20px;
      margin-top: 30px;
      p {
        margin-top: 30px;
      }
      .statisticsTitle {
        margin-top: 10px;
      }
      .circleBox {
        width: 26px;
        height: 26px;
        display: inline-block;
        font-size: 20px;
        line-height: 26px;
        color: #fff;
        background-color: #144941;
        border-radius: 50%;
      }
    }
  }
  .statisticsBox {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
    text-align: center;
    .statisticsNum {
      font-size: 48px;
    }
    .statisticsTitle {
      margin-top: 10px;
    }
    .circleBox {
      width: 26px;
      height: 26px;
      display: inline-block;
      font-size: 20px;
      line-height: 26px;
      color: #fff;
      background-color: #144941;
      border-radius: 50%;
    }
  }
}
@@ -484,7 +352,7 @@
}
.cultureTitle {
  display: flex;
  border-bottom: 1px solid #DEDEDE;
  border-bottom: 1px solid #dedede;
  padding-bottom: 16px;
}
.titleTextInfo {