feat: 顶部 title + logo 配色 + 侧栏外部系统快捷入口

- index.html: 浏览器 title 改为"中国产业基础能力发展战略研究院战知大模型"
- properties.ts: 加 fullProjectName 字段,projectName 短名保留用于 footer
- title.svg / chatLogo.svg: 米字图标左下主笔染 #FF2500 红,其余 5 笔染 #636E77 灰,"战知"汉字保留默认黑色
- Operates.vue: 侧栏底部 user 头像上方新增 3 个浅蓝按钮风格外链入口(钢研门户/项目管理/数据中心),点击新窗口打开内网系统

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-06 16:51:00 +08:00
parent 0c3a393d04
commit f8e8017434
7 changed files with 60 additions and 10 deletions

View File

@@ -92,3 +92,4 @@ xss:
# 词向量模型名称
embedding-model-name: bge_m3

View File

@@ -6,7 +6,7 @@
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" href="/favicon.svg">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>战知</title>
<title>中国产业基础能力发展战略研究院战知大模型</title>
</head>
<body>

View File

@@ -7,13 +7,13 @@
<path d="M109.69,12.44s3.91,7.74,7.82,10.54c.39,.28,.92,.27,1.31-.01,1.96-1.45,2.1-1.86,2.1-1.86,0,0-3.8-1.82-9.5-9.58-1.73,.41-1.73,.91-1.73,.91Z"/>
<path d="M109.23,5.22h3.14s.24,10.69-8.85,17.49c-.4,.3-.93,.37-1.39,.17-.52-.23-.99-.57-.99-.57,0,0,7.02-4.62,8.09-17.09Z"/>
</g>
<g>
<g fill="#636E77">
<path d="M4.91,6.25c.18,0,.74-.6,.87-.71,.17,0,.65-.53,.79-.65,.32-.26,.63-.52,.95-.78,.56-.46,1.12-.92,1.69-1.38,.15,0,.72,1.25,.84,1.45,.45,.78,.9,1.56,1.35,2.35l-1.69,1.36c-1.6-.55-3.19-1.1-4.79-1.65Z"/>
<path d="M13.06,5.43c-.5-1.29,.38-3.57,1.27-4.51C15.49-.3,17.51,0,19.03,.14c0,0-2.48,2.93-3.55,5.08-.82-.01-1.63,.02-2.42,.21Z"/>
<path d="M17.66,4.96L25.6,.8s2.68,1.49,3.63,2.72c-1.4,.41-9.1,2.6-9.37,2.77-.88-.55-2.2-1.33-2.2-1.33Z"/>
<polygon points="20.85 7.78 31.75 7.86 31.79 12.24 20.74 9.98 20.85 7.78"/>
<path d="M19.56,13.33c-.17,0-.29,.12-.57,.33-.62,.47-1.24,.94-1.86,1.41,1.64,1.94,3.21,3.94,4.81,5.91,.62,.77,1.23,1.55,1.87,2.3,.97-.59,1.7-1.47,2.6-2.15,.32-.25,1.43-.76,1.45-1.22,0-.13-.86-.71-.99-.82-.42-.34-.84-.69-1.26-1.03-1.49-1.22-2.97-2.43-4.47-3.63-.4-.32-.81-.71-1.25-.98-.14-.08-.24-.12-.32-.13Z"/>
<path d="M14.11,26.46l-.16-17.73c0-.06-2.36,.1-2.45,.11-1.79,.15-3.65,.33-5.45,.55-1.43,.18-3.03,.26-4.27,1.12C.46,11.43-.13,13.17,.02,14.73l.17,.55s3.27-1.55,3.58-1.7c.63-.3,1.26-.58,1.9-.84,.54-.22,1.32-.65,1.9-.64-.17,.37-.57,.73-.84,1.05l-1.51,1.81-3.24,3.89c-.48,.57-1.02,.92-.79,1.69,.43,1.47,1.54,2.63,2.77,3.5,1.21-1.91,4.39-7.62,6.15-10.35l-.89,12.76h4.89Z"/>
<path fill="#FF2500" d="M14.11,26.46l-.16-17.73c0-.06-2.36,.1-2.45,.11-1.79,.15-3.65,.33-5.45,.55-1.43,.18-3.03,.26-4.27,1.12C.46,11.43-.13,13.17,.02,14.73l.17,.55s3.27-1.55,3.58-1.7c.63-.3,1.26-.58,1.9-.84,.54-.22,1.32-.65,1.9-.64-.17,.37-.57,.73-.84,1.05l-1.51,1.81-3.24,3.89c-.48,.57-1.02,.92-.79,1.69,.43,1.47,1.54,2.63,2.77,3.5,1.21-1.91,4.39-7.62,6.15-10.35l-.89,12.76h4.89Z"/>
</g>
<path d="M46.69,9.69v-1.09h-3.34v-3.7h-2.81V13.08h-2.44v7.1h8.57v-5.93c0-.61-.5-1.11-1.11-1.11h-2.21v-3.45h3.34Zm-3.32,4.42c.26,0,.46,.21,.46,.47v4.22c0,.26-.2,.46-.46,.46h-1.89c-.26,0-.47-.2-.47-.46v-4.22c0-.26,.21-.47,.47-.47h1.89Z"/>
<path d="M47.63,4.92h2.83l3.11,16.59h3.2v1.19h-3.69c-.88,0-1.7-.42-2.22-1.13l-.05-.07c-.15-.21-.25-.44-.3-.69l-2.88-15.89Z"/>

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -2,13 +2,13 @@
<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.79 46.77">
<g id="_图层_1-2" data-name="图层 1">
<g>
<g>
<g fill="#636E77">
<path d="M9.21,2.74c.13,.23,.72,1.25,.84,1.45,.45,.78,.9,1.56,1.35,2.35l-1.69,1.36c-1.6-.55-3.19-1.1-4.79-1.65"/>
<path d="M13.06,5.43c-.5-1.29,.38-3.57,1.27-4.51C15.49-.3,17.51,0,19.03,.14c0,0-2.48,2.93-3.55,5.08-.82-.01-1.63,.02-2.42,.21Z"/>
<path d="M17.66,4.96L25.6,.8s2.68,1.49,3.63,2.72c-1.4,.41-9.1,2.6-9.37,2.77-.88-.55-2.2-1.33-2.2-1.33Z"/>
<polygon points="20.85 7.78 31.75 7.86 31.79 12.24 20.74 9.98 20.85 7.78"/>
<path d="M19.56,13.33c-.17,0-.29,.12-.57,.33-.62,.47-1.24,.94-1.86,1.41,1.64,1.94,3.21,3.94,4.81,5.91,.62,.77,1.23,1.55,1.87,2.3,.97-.59,1.7-1.47,2.6-2.15,.32-.25,1.43-.76,1.45-1.22,0-.13-.86-.71-.99-.82-.42-.34-.84-.69-1.26-1.03-1.49-1.22-2.97-2.43-4.47-3.63-.4-.32-.81-.71-1.25-.98-.14-.08-.24-.12-.32-.13Z"/>
<path d="M14.11,26.46s-.16-17.73-.16-17.73c0-.06-2.36,.1-2.45,.11-1.79,.15-3.65,.33-5.45,.55-1.43,.18-3.03,.26-4.27,1.12C.46,11.43-.13,13.17,.02,14.73l.17,.55s3.27-1.55,3.58-1.7c.63-.3,1.26-.58,1.9-.84,.54-.22,1.32-.65,1.9-.64-.17,.37-.57,.73-.84,1.05l-1.51,1.81-3.24,3.89c-.48,.57-1.02,.92-.79,1.69,.43,1.47,1.54,2.63,2.77,3.5,1.21-1.91,4.39-7.62,6.15-10.35l-.89,12.76h4.89Z"/>
<path fill="#FF2500" d="M14.11,26.46s-.16-17.73-.16-17.73c0-.06-2.36,.1-2.45,.11-1.79,.15-3.65,.33-5.45,.55-1.43,.18-3.03,.26-4.27,1.12C.46,11.43-.13,13.17,.02,14.73l.17,.55s3.27-1.55,3.58-1.7c.63-.3,1.26-.58,1.9-.84,.54-.22,1.32-.65,1.9-.64-.17,.37-.57,.73-.84,1.05l-1.51,1.81-3.24,3.89c-.48,.57-1.02,.92-.79,1.69,.43,1.47,1.54,2.63,2.77,3.5,1.21-1.91,4.39-7.62,6.15-10.35l-.89,12.76h4.89Z"/>
</g>
<g>
<path d="M7.06,36.55v-.85h-2.6v-2.88H2.27v6.37H.37v5.53H7.04v-4.62c0-.48-.39-.86-.86-.86h-1.72v-2.69h2.6Zm-2.59,3.44c.2,0,.36,.16,.36,.37v3.29c0,.2-.16,.36-.36,.36h-1.47c-.2,0-.37-.16-.37-.36v-3.29c0-.2,.16-.37,.37-.37h1.47Z"/>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -14,6 +14,18 @@
<span :style="{ fontFamily:item.operateItemed ? 'PingFangSC-Blod' : '' }">{{item.name}}</span>
</div>
<el-divider />
<div class="externalLinksBlock">
<div
v-for="link in externalLinks"
:key="link.name"
class="extItem"
:title="link.name + ' (新窗口打开)'"
@click="openExtLink(link.url)"
>
<span class="extName">{{ link.name }}</span>
</div>
</div>
<el-divider />
<div class="operateBottom">
<el-popover placement="right" :width="140" trigger="click">
<template #reference>
@@ -44,7 +56,7 @@
import { useAuthStore } from "@/store";
import { reactive, watch, computed } from "vue";
import { useRouter, useRoute } from "vue-router";
import { User, Setting, SwitchButton } from "@element-plus/icons-vue";
import { User, Setting, SwitchButton, TopRight } from "@element-plus/icons-vue";
const authStore = useAuthStore();
const isAdmin = computed(() => authStore.session?.admind === true);
@@ -89,6 +101,17 @@ const menuList = reactive([
]);
// 外部系统快捷入口(侧栏底部)
const externalLinks = [
{ name: '钢研门户', url: 'http://192.168.203.15:8030/zk/index' },
{ name: '项目管理', url: 'http://192.168.203.23:8080/' },
{ name: '数据中心', url: 'http://192.168.203.21:8600/kd' },
];
const openExtLink = (url: string) => {
window.open(url, '_blank');
};
const quit = () => {
authStore.removeToken();
router.push("/login");
@@ -158,8 +181,9 @@ watch(
margin-left: 20px;
.operates {
width: 76px;
height: 600px;
max-height: 100vh;
min-height: 600px;
max-height: calc(100vh - 40px);
overflow-y: auto;
background: #fafbff;
box-shadow: 0px 0px 8px 1px rgba(180, 189, 221, 0.56);
position: absolute;
@@ -269,6 +293,29 @@ watch(
background-size: 100%;
}
}
.externalLinksBlock {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
.extItem {
cursor: pointer;
color: #606771;
padding: 6px 6px;
border-radius: 6px;
text-align: center;
white-space: nowrap;
transition: all 0.2s;
background: rgba(0, 78, 160, 0.05);
.extName {
font-size: 12px;
}
&:hover {
background: rgba(0, 78, 160, 0.14);
color: #004ea0;
}
}
}
.operateBottom {
display: flex;
flex-direction: column;

View File

@@ -1,3 +1,4 @@
export const PROJECT_PROPERTIES = {
projectName: '战知'
}
projectName: '战知',
fullProjectName: '中国产业基础能力发展战略研究院战知大模型'
}

View File

@@ -138,6 +138,7 @@ const handleVerify = async () => {
} finally {
}
};
</script>
<style scoped lang="scss">
.loginPage {