【chromeDownload】自定义组件:多用于登录框底部提供下载Chrome谷歌浏览器的链接

chromeDownload

html 复制代码
<template>
  <div :class="$options.name" :styleType="styleType">
    <el-divider />
    <div class="chrome-text">
      <div class="left">推荐使用先进的浏览器</div>
      <div class="right">
        <div class="left">
          <img src="~@/../static/img/login/chrome.svg" />
        </div>
        <div class="right">
          <p>谷歌浏览器</p>
          <p>Google Chrome</p>
        </div>
      </div>
    </div>
    <div class="chrome-download-link">
      <el-tag size="mini" @click="download(0)">官网下载</el-tag>
      <el-tag size="mini" @click="download(1)">下载在线安装包</el-tag>
      <el-tag size="mini" @click="download(2)">下载离线安装包</el-tag>
    </div>
  </div>
</template>
<script>
export default {
  name: `chromeDownload`,
  components: {},
  data() {
    return {
      visible: false,
      form: {},
      styleType: null,

      links: [
        `https://www.google.cn/chrome`,
        `https://www.wedoyun.cn/share/software/ChromeSetup.exe`,
        `https://www.wedoyun.cn/share/software/ChromeStandaloneSetup64.exe`,
      ],
    };
  },

  props: [`value`, `data`],

  watch: {
    data: {
      handler(newValue, oldValue) {
        //console.log(`深度监听${this.$options.name}:`, newValue, oldValue);
        if (Object.keys(newValue || {}).length) {
          this.form = this.$g.deepCopy(newValue);
          this.$g.cF2CP(`styleType`, this);
        }
      },
      deep: true,
      immediate: true,
    },
  },
  created() {},
  mounted() {},
  beforeDestroy() {},
  methods: {
    download(type) {
      this.$g.go2RouterPath(
        {
          path: this.links[type],
          query: {},
          target: `_blank`,
        },
        this
      );
    },
  },
};
</script>
<style lang="scss" scoped>
.chromeDownload {
  box-sizing: border-box;
  padding: 10px 0;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  color: #8896b3;
  line-height: normal;
  flex-direction: column;
  .el-divider {
    margin: 0;
  }
  .chrome-text {
    box-sizing: border-box;
    padding-top: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    & > .left {
      margin-right: 10px;
    }
    & > .right {
      display: flex;
      align-items: center;
      & > .left {
        margin-right: 5px;
        img {
          width: 30px;
          height: 30px;
          object-position: center;
          object-fit: contain;
        }
      }
      & > .right {
        text-align: left;
        p {
        }
      }
    }
  }
  .chrome-download-link {
    margin-top: 5px;
    display: flex;
    align-items: center;
    & > * + * {
      margin-left: 5px !important;
      margin-right: 0 !important;
    }
    & > * {
      cursor: pointer;
      transition: 0.2s;
      &:hover {
        border-color: #1f75d5;
        background-color: #1f75d5;
        color: white;
      }
      &:active {
        transform: translate(1px, 1px);
        opacity: 0.618;
      }
    }
  }
}
</style>
相关推荐
看浪的路人几秒前
第2讲:ReAct 模式从零实现——不用框架,手写一个 Agent 内核
前端·react.js·前端框架
独孤九剑打醒他7 分钟前
【原创开源·航空终极篇】氢能航空动力升级:双燃料掺氢、富氧补气与露天储氢安全模型
前端·架构·开源·硬件工程·能源
律宏阔10 分钟前
阿里云 ESA + Pages 域名部分电脑无法访问
前端
毕业设计70310 分钟前
(免费领源码)基于node的学生公寓管理系统06412- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·mysql·node.js·maven·mybatis·express·b/s
Lank_M14 分钟前
canvas 第一次画字没用上字体,字体却是它要来的
前端
古夕18 分钟前
iframe 授权失败时露出 60000 JSON 的复盘
前端·javascript
古夕21 分钟前
地址变了,页面是空的:一次 Vue Router 菜单切换复盘
前端·vue.js
JavaGuide22 分钟前
推荐一个好用 DeepSeek Harness 插件,直接把 Agent 上下文给可视化了!
前端·后端
数据掘金29 分钟前
白屏故障定位:从资源请求到路由渲染的排查顺序
前端
程序员Sunday33 分钟前
ES Module 和 CommonJS 有什么区别?循环依赖时会发生什么?
前端·javascript·面试