QYF-GitLab1
17 小时以前 cf7e71c6d0fb64eeb6b5deac540da843b4bb465c
src/layout/components/footerPage.vue
@@ -1,16 +1,325 @@
<template>
  <div class="footerBox">FOOT</div>
  <div class="pageFooter">
    <div class="footerContent contentBox flex">
      <div class="infoBox">
        <ul class="linkBox">
          <li class="link" @click="innerLink(item)" v-for="(item, index) in linkList" :key="index">
            {{ item.name }}
          </li>
        </ul>
        <ul class="linkBox">
          <li class="link" @click="innerLink(item)" v-for="(item, index) in newList" :key="index">
            {{ item.name }}
          </li>
        </ul>
        <ul class="linkBox">
          <li
            class="link"
            @click="toAboutus(item)"
            v-for="(item, index) in serviceList"
            :key="index"
          >
            {{ item.name }}
          </li>
        </ul>
        <ul class="linkBox">
          <li class="link" @click="toAboutus({ name: '天猫旗舰店' })">天猫旗舰店</li>
          <li
            class="link"
            style="opacity: 1; font-size: 16px"
            @click="toAboutus({ name: '京东旗舰店' })"
          >
            京东旗舰店
          </li>
        </ul>
      </div>
      <div class="QRCodeBox">
        <div style="font-size: 16px; color: #fff">媒体矩阵</div>
        <div class="codeItem">
          <img src="@/assets/images/pageFooter/xieheCode.png" />
        </div>
      </div>
    </div>
    <el-divider
      style="border-color: rgba(255, 255, 255, 0.25); width: 1369px; margin: auto"
    ></el-divider>
    <div class="copyrightBox">
      <span
        >中国协和医科大学出版社有限公司 丨 备案序号:<span class="beian" @click="toLink"
          >京ICP备 05029104号-4互联网出版许可证 新出网证 (京 )</span
        >
      </span>
      <span style="display: block">Copyright©2013 中国协和医科大学出版社有限公司 版权所有!</span>
    </div>
    <teacherCertification :isShow="teacherDialog" @dialog-Change="dialogChange" />
  </div>
</template>
<script setup lang="ts"></script>
<script setup lang="ts">
import { inject, onMounted, reactive, ref } from 'vue'
import teacherCertification from '@/views/personalCenter/teacherCertification.vue'
const MG = inject('MG')
const config = inject('config')
import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
import { ElMessage } from 'element-plus'
const logIn = inject('logIn')
const toLinkList = reactive([])
const thirdPartyLink = reactive([])
let teacherDialog = ref(false)
onMounted(() => {
  getBanner()
  getLinkList()
})
<style scoped>
.footerBox {
  width: 100%;
  height: 240px;
  min-width: 1200px;
  color: #fff;
  background-color: #f0f0f0;
  text-align: center;
const dialogChange = (val) => {
  getTeacherInfo()
  if (val == false) {
    teacherDialog.value = false
  } else {
    teacherDialog.value = true
  }
}
//教师信息
function getTeacherInfo() {
  const data = {
    start: 0,
    size: 10,
    topicIdOrRefCode: 'teacherRoleApproval',
    appRefCode: config.appRefCode,
    sort: {
      type: 'Desc',
      field: 'CreateDate',
    },
  }
  MG.ugc.getTopicMessageList(data).then((res) => {
    try {
      const resData = res.datas.find((i) => i.appUserCreator.userId == userId.value)
      if (resData) {
        teacherState.value = resData.state
        if (resData.feedBack != null) {
          reasonTxt.value = JSON.parse(resData.feedBack).reason
        }
      } else {
        teacherState.value = ''
      }
      loading.value = false
    } catch (error) {
      loading.value = false
    }
  })
}
const getBanner = () => {
  MG.resource
    .getItem({
      path: 'friendshipLink',
      fields: { link: [] },
      paging: { start: 0, size: 99 },
    })
    .then((res) => {
      console.log(res, 'link')
      toLinkList.push(...res.datas)
    })
}
const getLinkList = () => {
  MG.resource
    .getItem({
      path: 'purchaseMethod',
      fields: { link: [] },
      paging: { start: 0, size: 99 },
    })
    .then((res) => {
      toLinkList.push(...res.datas)
      console.log(toLinkList, 'toLinkList')
    })
}
const innerLink = (item) => {
  console.log(item, 'item')
  switch (item.name) {
    case '关于我们':
      router.push('/aboutUs')
      break
    case '联系我们':
      router.push('/aboutUs')
      break
    case '意见反馈':
      ElMessage({
        message: '建设中...',
        type: 'warning',
      })
      break
    case '操作指南':
      ElMessage({
        message: '建设中...',
        type: 'warning',
      })
      break
    case '教师认证':
      console.log(localStorage.getItem(config.tokenKey))
      if (localStorage.getItem(config.tokenKey)) {
        teacherDialog.value = true
      } else {
        logIn()
      }
      break
    default:
      break
  }
}
const toAboutus = (item) => {
  console.log(item.name, 'item')
  const currentLink = toLinkList.find((i) => i.name === item.name)
  console.log(currentLink, 'currentLink')
  console.log(toLinkList, 'toLinkList')
  if (currentLink) {
    window.open(currentLink.link)
  }
}
const linkList = reactive([
  {
    name: '关于我们',
    url: '',
  },
  {
    name: '关于我们',
    url: '',
  },
  {
    name: '联系我们',
    url: '',
  },
  {
    name: '意见反馈',
    url: '',
  },
])
const newList = reactive([
  {
    name: '新手上路',
    url: '',
  },
  {
    name: '操作指南',
    url: '',
  },
  {
    name: '教师认证',
    url: '',
  },
])
const serviceList = reactive([
  {
    name: '友情链接',
    url: '',
  },
  {
    name: '国家科学技术部',
    url: '',
  },
  {
    name: '国家卫生健康委',
    url: '',
  },
  {
    name: '国家教育部',
    url: '',
  },
  {
    name: '北京市卫生健康委',
    url: '',
  },
])
</script>
<style lang="less" scoped>
.pageFooter {
  background: #444444;
  background-image: url('@/assets/images/xiehe/home/footer-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  .footerContent {
    padding: 30px 0;
    justify-content: start;
    .infoBox {
      display: flex;
      .linkBox {
        font-size: 16px;
        margin-left: 50px;
        .link {
          padding-right: 15px;
          cursor: pointer;
          color: #fff;
          margin-top: 20px;
          font-size: 14px;
          opacity: 0.7;
          &::after {
            margin-left: 15px;
          }
          &:last-child::after {
            display: none;
          }
          &:first-child {
            color: #fff;
            opacity: 1;
            font-size: 16px;
            margin-bottom: 10px;
          }
        }
      }
      .address {
        margin-top: 30px;
        font-size: 14px;
        color: #ccc;
        span {
          margin-right: 30px;
        }
      }
      .logo {
        height: 50px;
        margin-top: 30px;
        img {
          height: 100%;
        }
      }
    }
    .QRCodeBox {
      margin-left: 240px;
      .codeItem {
        display: inline-block;
        text-align: center;
        p {
          font-size: 16px;
        }
        img {
          width: 100px;
          height: 100px;
          margin-top: 20px;
        }
      }
    }
  }
  .copyrightBox {
    text-align: center;
    color: #fff;
    height: 80px;
    line-height: 40px;
    font-size: 14px;
    // border-top: 1px solid #ccc;
    .beian {
      cursor: pointer;
    }
    .beian:hover {
      color: blue;
    }
  }
}
</style>