refactor: update icon system, fix login and add temp auth

refactor all icon map references from zniconsMap to iconsMap across the codebase
standardize icon import paths and add complete src/assets/fonts/znicons.ts definition file
fix login page query selector typo and replace hardcoded client ID with environment variable
add temporary auth token injection in request utility using env var
update ZnIcon documentation and development environment config
This commit is contained in:
DEV_DSW
2026-05-28 11:56:13 +08:00
parent 9d0890b541
commit 9af30b8b8a
12 changed files with 26 additions and 22 deletions

View File

@@ -12,3 +12,6 @@ VITE_SOCKET_BASE_URL = "/ingress/agent/ws/chat"
# Client ID
VITE_CLIENT_ID = "12"
# Token
VITE_TOKEN = "eyJraWQiOiJiMTVhZTk0Mi03MjI5LTMyOWUtODA1Yi0wNjFlNmRjYTE1MDQiLCJhbGciOiJSUzI1NiJ9.eyJ0ZW5hbnRfaWQiOjEsInN1YiI6ImJyb3RoZXI4IiwiY2xpZW50SWQiOiJwaWciLCJpc3MiOiJodHRwczovL3BpZzRjbG91ZC5jb20iLCJjbGllbnRfaWQiOiJwaWciLCJhdXRob3JpdGllcyI6WyIvbWFya2V0aW5nL2luZGV4IiwiUk9MRV8xIiwiY29kZWdlbl9ncm91cF9hZGQiLCJjb2RlZ2VuX2dyb3VwX2RlbCIsImNvZGVnZW5fZ3JvdXBfZWRpdCIsImNvZGVnZW5fZ3JvdXBfZXhwb3J0IiwiY29kZWdlbl9ncm91cF92aWV3IiwiY29kZWdlbl90ZW1wbGF0ZV9hZGQiLCJjb2RlZ2VuX3RlbXBsYXRlX2RlbCIsImNvZGVnZW5fdGVtcGxhdGVfZWRpdCIsImNvZGVnZW5fdGVtcGxhdGVfZXhwb3J0IiwiY29kZWdlbl90ZW1wbGF0ZV92aWV3Iiwiam9iX3N5c19qb2JfYWRkIiwiam9iX3N5c19qb2JfZGVsIiwiam9iX3N5c19qb2JfZWRpdCIsImpvYl9zeXNfam9iX2V4cG9ydCIsImpvYl9zeXNfam9iX3JlZnJlc2hfam9iIiwiam9iX3N5c19qb2JfcnVuX2pvYiIsImpvYl9zeXNfam9iX3NodXRkb3duX2pvYiIsImpvYl9zeXNfam9iX3N0YXJ0X2pvYiIsInN5c19jbGllbnRfYWRkIiwic3lzX2NsaWVudF9kZWwiLCJzeXNfY2xpZW50X2VkaXQiLCJzeXNfZGVwdF9hZGQiLCJzeXNfZGVwdF9kZWwiLCJzeXNfZGVwdF9lZGl0Iiwic3lzX2RpY3RfYWRkIiwic3lzX2RpY3RfZGVsIiwic3lzX2RpY3RfZWRpdCIsInN5c19maWxlX2RlbCIsInN5c19sb2dfZGVsIiwic3lzX2xvZ19leHBvcnQiLCJzeXNfbWVudV9hZGQiLCJzeXNfbWVudV9kZWwiLCJzeXNfbWVudV9lZGl0Iiwic3lzX3Bvc3RfYWRkIiwic3lzX3Bvc3RfZGVsIiwic3lzX3Bvc3RfZWRpdCIsInN5c19wb3N0X2V4cG9ydCIsInN5c19wb3N0X3ZpZXciLCJzeXNfcm9sZV9hZGQiLCJzeXNfcm9sZV9kZWwiLCJzeXNfcm9sZV9lZGl0Iiwic3lzX3JvbGVfZXhwb3J0Iiwic3lzX3JvbGVfcGVybSIsInN5c19zeXNwdWJsaWNwYXJhbV9hZGQiLCJzeXNfc3lzcHVibGljcGFyYW1fZGVsIiwic3lzX3N5c3B1YmxpY3BhcmFtX2VkaXQiLCJzeXNfdG9rZW5fZGVsIiwic3lzX3VzZXJfYWRkIiwic3lzX3VzZXJfZGVsIiwic3lzX3VzZXJfZWRpdCIsInN5c191c2VyX2V4cG9ydCJdLCJhdWQiOiJwaWciLCJsaWNlbnNlIjoiaHR0cHM6Ly9waWc0Y2xvdWQuY29tIiwibmJmIjoxNzc5OTM3MDMzLCJ1c2VyX2lkIjoiMTk2NjEzNTA2MDA2NTc4NzkwNiIsInNjb3BlIjpbInNlcnZlciJdLCJleHAiOjE3Nzk5ODAyMzMsImRlcHRfaWQiOjEsImlhdCI6MTc3OTkzNzAzMywianRpIjoiNzhiM2E3ODgtOGUwZS00Zjc2LWEwMDgtOGYxYzI4M2YxN2ZiIiwidXNlcm5hbWUiOiJicm90aGVyOCJ9.p6GSKT9JPbXD_L7BBGx4j4-amhqZZmzSVnjOZrAZ7klA3WfqWfNw6xgOgKyJHNeXgdJpFlJ-vw3vTTPxuaUJJ-57ugGc60PjH4PC5ARVGvGe4psbXDEw3oYJPBquzLSFDqwCpYThAvTxXmjE6EA6mlrw5y6__-dF5HREu0Bspew2z5a3DvUR4swBFz3g3yZnQCoYXoY32W7akJ5xz2oYjsib411_bAOkFTSsmde2qXqOZ2ij2hUjImCtEaURP0Exep8J_1AOFBp0VoWuhFlPHj6B1-JmyOW4d_aDEa3bUpo46iA_GsXOfSqVzekdhO1bU0KZQzCmiNqawhECdtW3Jw"

View File

@@ -14,8 +14,8 @@
- 字体映射表存在:`src/assets/fonts/znicons.js`
- 字体文件存在:`src/assets/fonts/znicons.ttf`
- 组件骨架存在但为空:`src/components/ZnIcon/index.vue`0 行)
- 业务中大量使用 `<uni-icons fontFamily="znicons">` + `zniconsMap[...]` 的方式展示字体图标,并且存在历史路径导入:
- `import { zniconsMap } from "@/static/fonts/znicons(.js)"`(仓库内当前没有 `src/static/`
- 业务中大量使用 `<uni-icons fontFamily="znicons">` + `iconsMap[...]` 的方式展示字体图标,并且存在历史路径导入:
- `import { iconsMap } from "@/static/fonts/znicons(.js)"`(仓库内当前没有 `src/static/`
- 多处样式中通过 `@font-face` 引用 `@/static/fonts/znicons.ttf`,但仓库内无该字体路径,导致字体加载不稳定:
- `src/components/ImageSwiper/styles/index.scss`
- `src/components/GoodDetail/index.vue`
@@ -42,7 +42,7 @@
#### Props 设计(建议)
- `name: string`(必填;对应 `zniconsMap` 的 key
- `name: string`(必填;对应 `iconsMap` 的 key
- `size?: number | string`(默认 16number 按 px 处理string 原样写入)
- `color?: string`(可选;不传则使用 `currentColor`,便于 Tailwind `text-*` 控制)
- `title?: string`(可选;用于无障碍/tooltip
@@ -72,9 +72,9 @@
### 3) 增加历史导入路径兼容层(不改业务代码也能编译)
新增文件:`src/static/fonts/znicons.js`
新增文件:`src/assets/fonts/znicons.js`
- 仅做 re-export`export { zniconsMap } from "@/assets/fonts/znicons.js"`
- 仅做 re-export`export { iconsMap } from "@/assets/fonts/znicons"`
说明:

View File

@@ -1,4 +1,4 @@
export const zniconsMap = {
export const iconsMap = {
"zn-wifi": "\ue681",
"zn-bath": "\ue69a",
"zn-frame": "\ue683",

View File

@@ -38,7 +38,7 @@
<div v-else class="w-full h-full flex flex-items-center flex-justify-center" @click="handleChooseImage">
<uni-icons fontFamily="znicons" size="24" color="#6A717F">
{{ zniconsMap["zn-camera"] }}
{{ iconsMap["zn-camera"] }}
</uni-icons>
</div>
</div>
@@ -74,7 +74,7 @@ import { ref, computed, onMounted, nextTick, defineProps, watch } from "vue";
import { SCROLL_TO_BOTTOM } from "@/constants/constant";
import { createWorkOrder } from "@/api/workOrder";
import { uploadFile } from "@/api/upload";
import { zniconsMap } from "@/assets/fonts/znicons";
import { iconsMap } from "@/assets/fonts/znicons";
const props = defineProps({
toolCall: {

View File

@@ -13,7 +13,7 @@
}">
<div class="flex flex-items-center flex-row flex-shrink-0 mr-8">
<van-icon fontFamily="znicons" size="20" color="#333">
{{ zniconsMap[moduleItem.moduleIcon] }}
{{ iconsMap[moduleItem.moduleIcon] }}
</van-icon>
<span class="ml-4 font-size-14 color-171717 line-height-20">
{{ moduleItem.moduleTitle }}
@@ -33,7 +33,7 @@
import { defineProps } from "vue";
import Vue3MarkdownIt from 'vue3-markdown-it';
import ModuleTitle from "@/components/ModuleTitle/index.vue";
import { zniconsMap } from "@/assets/fonts/znicons";
import { iconsMap } from "@/assets/fonts/znicons";
// Props定义
const props = defineProps({

View File

@@ -12,7 +12,7 @@
<div class="border-box rounded-12 bg-white p-12 ml-12 mr-12 mb-40">
<div class="flex flex-items-center mb-8">
<uni-icons fontFamily="znicons" size="20" color="#333">
{{ zniconsMap["zn-refund"] }}
{{ iconsMap["zn-refund"] }}
</uni-icons>
<span class="font-size-14 font-600 color-171717 ml-8">
{{ refundTitle }}
@@ -29,7 +29,7 @@
<script setup>
import { ref, computed, watch } from "vue";
import { zniconsMap } from "@/static/fonts/znicons";
import { iconsMap } from "@/static/fonts/znicons";
// Props定义
const props = defineProps({

View File

@@ -7,7 +7,7 @@
<script setup lang="ts">
import { computed } from "vue";
import { zniconsMap } from "@/assets/fonts/znicons.js";
import { iconsMap } from "@/assets/fonts/znicons";
const props = withDefaults(
defineProps<{
@@ -22,7 +22,7 @@ const props = withDefaults(
);
const glyph = computed(() => {
const value = (zniconsMap as Record<string, string>)[props.name];
const value = (iconsMap as Record<string, string>)[props.name];
return value ?? "";
});

View File

@@ -24,7 +24,7 @@
</template>
<script setup>
import { zniconsMap } from "@/assets/fonts/znicons";
import { iconsMap } from "@/assets/fonts/znicons";
import { defineProps } from "vue";
// Props定义

View File

@@ -84,7 +84,7 @@ onMounted(() => {
// 【后续业务】:你可以将这串 idToken 通过 axios 发送给你自己的后端接口
// 或者是直接利用第三方平台(如 Firebase / Supabase完成纯前端鉴权
console.log("拿到的 ID Token 是:", idToken);
oauthToken({ clientId: '6', openIdCode: [idToken], grant_type: 'google' })
oauthToken({ clientId: import.meta.env.VITE_CLIENT_ID, openIdCode: [idToken], grant_type: 'google' })
.then((res) => {
console.log("获取到的 oauth token:", res)

View File

@@ -8,7 +8,7 @@
<div class="tab-item-inner flex flex-items-center">
<uni-icons :class="['icon mr-4', activeIndex === index && 'icon-active']" fontFamily="znicons" size="20"
color="opacity">
{{ zniconsMap[item.iconCode] }}
{{ iconsMap[item.iconCode] }}
</uni-icons>
<span :class="[
@@ -28,7 +28,7 @@
<script setup>
import { onMounted, ref, watch } from "vue";
import { zniconsMap } from "@/static/fonts/znicons";
import { iconsMap } from "@/static/fonts/znicons";
import { commodityTypePageList } from "@/api/goods";
// Props

View File

@@ -1,2 +0,0 @@
export { zniconsMap } from "@/assets/fonts/znicons.js";

View File

@@ -99,6 +99,9 @@ function resolveRequestLanguage(): string | null {
function buildContextHeaders(options?: RequestOptions): Record<string, string> {
const headers: Record<string, string> = {};
// 临时token后续需要从登录获取token
setAuthToken(import.meta.env.VITE_TOKEN);
if (!options?.skipAuth && context.token) {
headers.Authorization = `Bearer ${context.token}`;
}