| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <template>
- <div class="header">
- <div class="left">
- <!-- <img class="first" src="../assets/three.png" alt="" />
- <div class="shu"></div> -->
- <img class="logo" src="../assets/white-logo.png" alt="" />
- <div
- class="ml20"
- style="color: #fff; font-size: 18px; height: 60px; padding-top: 30px"
- >
- version:{{ timelineData[0]?.version }}
- </div>
- </div>
- <div class="right">
- <img class="user-icon" src="../assets/user.png" alt="" />
- <div class="user">{{ contactName }}</div>
- <el-popover placement="bottom" trigger="hover" :width="280">
- <div
- style="
- width: 100%;
- height: 60vh;
- overflow-y: auto;
- padding-right: 10px;
- margin-right: 10px;
- "
- >
- <el-timeline>
- <el-timeline-item
- v-for="item in timelineData"
- :key="item"
- center
- :timestamp="item.timer"
- placement="top"
- >
- <div class="log-card">
- <p style="margin-bottom: 10px">Version: {{ item.version }}</p>
- <div
- style="margin-bottom: 5px; font-size: 12px"
- v-for="(item1, index) in item.remarks"
- :key="item1"
- >
- {{ index + 1 }}. {{ item1.text }}
- </div>
- </div>
- </el-timeline-item>
- </el-timeline>
- </div>
- <template #reference>
- <el-badge value="new">
- <div class="log">新功能日志</div>
- </el-badge>
- </template>
- </el-popover>
- <div class="quit" @click="quit">[退出]</div>
- </div>
- </div>
- </template>
- <script>
- import store from "../store";
- import router from "../router";
- import { onMounted, ref } from "vue";
- import { AnonymousLogin, tcb } from "../apis/cloudLogin";
- const db = tcb.database();
- const v = db.collection("huihenduo_versions");
- const __ = db.command;
- export default {
- setup() {
- let contactName = localStorage.contactName;
- function quit() {
- localStorage.clear();
- store.commit("changeLogin", false);
- router.push({ path: "/login" });
- }
- let timelineData = ref([]);
- onMounted(() => {
- cloudLogin();
- });
- async function getAbledVersions() {
- let res = await v
- .aggregate()
- .match({ deleted: __.neq(true) })
- .sort({
- createTime: -1,
- })
- .limit(10)
- .end();
- timelineData.value = res.data;
- }
- async function cloudLogin() {
- await AnonymousLogin();
- getAbledVersions();
- }
- return {
- quit,
- contactName,
- timelineData,
- };
- },
- };
- </script>
- <style scoped>
- .header {
- width: 100%;
- height: 60px;
- background: #212029;
- display: flex;
- align-items: center;
- justify-content: space-between;
- }
- .left,
- .right {
- display: flex;
- align-items: center;
- }
- .first {
- width: 22px;
- height: 20px;
- margin: 0 22px;
- }
- .shu {
- width: 1px;
- height: 60px;
- background: #101015;
- margin-right: 22px;
- }
- .logo {
- width: 120px;
- height: 40px;
- margin-left: 20px;
- }
- .title {
- font-size: 21px;
- font-family: PingFangSC-Regular, PingFang SC;
- font-weight: 400;
- color: #ffffff;
- margin-left: 26px;
- }
- .user,
- .quit,
- .log {
- font-size: 14px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #ffffff;
- cursor: pointer;
- margin-right: 16px;
- }
- .log-card p {
- font-size: 10px;
- }
- .user-icon {
- width: 18px;
- height: 18px;
- margin-right: 16px;
- }
- .log {
- margin-right: 4px;
- }
- .quit {
- margin-left: 26px;
- }
- </style>
|