<template> <a-dropdown> <slot> <a class="ant-dropdown-link" @click="(e) => e.preventDefault()"> {{ user.site_name }} <a-icon type="down" /> </a> </slot> <a-menu slot="overlay"> <a-menu-item v-for="(item, index) in sitelist" :key="index"> <a href="javascript:;" @click="clickSite(item.id, item.name)">{{ item.name }}</a> </a-menu-item> </a-menu> </a-dropdown> </template> <script> import { waitedListdata, waitedSavesite } from "@/services/default"; // import { setAuthorization } from "@/utils/request"; import { mapGetters, mapMutations } from "vuex"; export default { data() { return { sitelist: [], }; }, computed: { ...mapGetters("account", ["user"]), }, created() { this.getwaitedListdata(); }, methods: { ...mapMutations("account", ["setUser"]), getwaitedListdata() { waitedListdata({}).then((res) => { const { code, data, msg } = res.data; if (code == 0) { this.sitelist = data; } else { this.$message.error(`站点错误:${msg}`); } }); }, clickSite(siteid, site_name) { waitedSavesite({ siteid: siteid }).then((res) => { const { code, data, msg } = res.data; if (code == 0) { let user = JSON.parse( localStorage.getItem(process.env.VUE_APP_USER_KEY) ); user.siteid = siteid; user.site_name = site_name; this.setUser(user); // setAuthorization(data); } else { this.$message.error(msg); } }); }, }, }; </script> <style lang="less" scoped> .ant-dropdown-link { color: #fff; padding: 0 20px; } </style>