浏览代码

feat: connect local frontend to domestic voc api

gangvy 1 月之前
父节点
当前提交
b63ba02d6a
共有 5 个文件被更改,包括 28 次插入7 次删除
  1. 16 7
      README.md
  2. 2 0
      angular.json
  3. 1 0
      package.json
  4. 1 0
      src/index.html
  5. 8 0
      src/runtime-config.js

+ 16 - 7
README.md

@@ -85,9 +85,10 @@ E:\xwechat_files\wxid_ay08t6ugo2h922_df4f\msg\file\2026-07\德玛仕产品及竟
 
 - Parse:`/parse`
 - 国内电商中转:`/api/voc-e-commerce`
+- 国内 VOC 后端:`/api/domestic-voc`
 - 德玛仕本地数据:`/assets/data/demashi-summary.json`
 
-运行时配置定义在 `src/app/core/config/runtime-config.ts`,部署环境可以在 Angular 脚本加载前注入 `window.__SAAS_VOC_CONFIG__` 覆盖同源路径
+运行时配置定义在 `src/runtime-config.js` 和 `src/app/core/config/runtime-config.ts`。开发环境默认使用 `api` 模式并通过 `/api/domestic-voc` 读取后端快照;部署环境可以在 Angular 脚本加载前覆盖 `window.__SAAS_VOC_CONFIG__`
 
 禁止将以下内容写入浏览器代码或 Git:
 
@@ -117,10 +118,18 @@ npm ci
 npm run verify:data
 npm run build
 npm test
-npm start
+npm run start:local
 ```
 
-默认开发地址为 `http://localhost:4200/`。本地 `/api/voc-e-commerce` 通过 `proxy.conf.json` 转发到 `http://127.0.0.1:3000`,API Key 仍应只配置在该服务端进程中。
+启动前端前,在 `E:\workspace\server\saas-voc-server` 运行无数据库本地后端:
+
+```powershell
+npm run start:local
+```
+
+前端地址为 `http://127.0.0.1:4200/`。`/api/domestic-voc` 通过 `proxy.conf.json` 转发到 `http://127.0.0.1:4400`。本地后端读取同一份德玛仕规范化快照,不访问 PostgreSQL、Parse 或外部采集接口。
+
+`/api/voc-e-commerce` 仍代理到 `http://127.0.0.1:3000`;需要真实采集时,API Key 只能配置在服务端进程中。
 
 从 Excel 重新生成规范化数据:
 
@@ -131,20 +140,20 @@ npm run import:demashi -- "E:\xwechat_files\wxid_ay08t6ugo2h922_df4f\msg\file\20
 ## 当前验证
 
 - `npm run build`:通过
-- `npm test`:5 项 Jasmine 测试通过
+- `npm test`:8 项 Jasmine 测试通过
 - `npm run verify:data`:通过
 - 桌面端:29 个启用入口的页面身份、主内容、导航、空状态和交互通过
 - 移动端:29 个启用入口无页面级横向溢出,导航抽屉展开/收起、标题和控件布局通过
 - 浏览器控制台:启用入口无 Angular 运行时错误、警告或失败请求
-- 运行时请求:当前激活闭环只请求同源德玛仕 JSON,没有访问旧 Parse 或旧跨境域名
+- 运行时请求:当前激活闭环请求同源 `/api/domestic-voc`,本地后端返回 2,817 个商品、9,717 条日指标和 40 条竞品关系,没有访问旧 Parse 或旧跨境域名
 - `npm audit --omit=dev`:17 项原框架依赖公告(1 critical、11 high、5 moderate),正式公网部署前必须升级处理
 
 ## 尚未完成
 
 - 创建独立 PostgreSQL 数据库和独立 Parse 应用
-- 验证公司电商数据中转的京东商品详情、评论接口和真实字段契约
+- 获取至少一页非空京东评论样本,完成评论字段契约确认
 - 将商品、日指标、竞品关系和评论幂等写入新 Parse 应用
-- 将前端主数据源从静态 JSON 切换为新 Parse 应用
+- 将 `/api/domestic-voc` 从本地快照实现切换为新 PostgreSQL / Parse 持久化实现
 - 部署独立环境并完成端到端验收
 - 升级原框架的 Angular 17、`xlsx`、ECharts、Parse 依赖基线并处理安全公告
 

+ 2 - 0
angular.json

@@ -34,6 +34,7 @@
             "inlineStyleLanguage": "scss",
             "assets": [
               "src/favicon.ico",
+              "src/runtime-config.js",
               "src/assets"
             ],
             "styles": [
@@ -136,6 +137,7 @@
             "inlineStyleLanguage": "scss",
             "assets": [
               "src/favicon.ico",
+              "src/runtime-config.js",
               "src/assets"
             ],
             "styles": [

+ 1 - 0
package.json

@@ -5,6 +5,7 @@
   "scripts": {
     "ng": "ng",
     "start": "ng serve",
+    "start:local": "ng serve --host 127.0.0.1 --port 4200",
     "build": "ng build",
     "build:prod": "ng build",
     "watch": "ng build --watch --configuration development",

+ 1 - 0
src/index.html

@@ -8,6 +8,7 @@
   <meta name="description" content="基于原 AI-VOC 框架的国内电商用户声音分析模板。">
   <meta name="keywords" content="VOC,用户反馈,国内电商,京东,德玛仕">
   <link rel="icon" type="image/x-icon" href="favicon.ico">
+  <script src="runtime-config.js"></script>
   
   <!-- 预加载关键字体 -->
   <link rel="preconnect" href="https://fonts.googleapis.com">

+ 8 - 0
src/runtime-config.js

@@ -0,0 +1,8 @@
+(function (window) {
+  window.__SAAS_VOC_CONFIG__ = Object.assign({
+    apiBaseUrl: '',
+    domesticDatasetMode: 'api',
+    domesticVocPath: '/api/domestic-voc',
+    domesticWorkspaceId: 'demashi',
+  }, window.__SAAS_VOC_CONFIG__ || {});
+})(window);