Forráskód Böngészése

feat: 门户网站增加分销商端

周玉环 1 hete
szülő
commit
3e4aaf6e03

+ 2 - 2
xinkeaboard-web/.gitignore

@@ -1,8 +1,8 @@
 /yarn.lock
 /node_modules/
-/.nuxt/
+/.nuxt*/
 /.idea/workspace.xml
 /.vite-cache
 /.DS_Store
-/.output
+/.output*
 /stats.html

+ 4 - 0
xinkeaboard-web/composables/common.js

@@ -125,6 +125,10 @@ export function getCurLanguage() {
       'zh': lang_zn,
       'en': lang_en,
   }
+  const config = useRuntimeConfig()
+  if (config.public.appType === 'distributor') {
+    return language.zh;
+  }
   return language[curLang];
 }
 

+ 4 - 1
xinkeaboard-web/composables/request.js

@@ -72,7 +72,10 @@ export const post = async (url, data = {}, timeout,type = 'urlencoded') => {
  */
 const initRequestHeader = async (method, url, data = {}, type = 'urlencoded') => {
     let result = {};
-    let headers = {};
+    const config = useRuntimeConfig()
+    let headers = {
+        'X-App-Type': config.public.appType
+    };
     const filtersStore = useFiltersStore()
     //用户登录状态下,每次更新refresh_token58分钟之后需要更新access_token
     if (filtersStore.getToken) {

+ 9 - 1
xinkeaboard-web/composables/useFetchRaw.ts

@@ -1,7 +1,15 @@
 import { useFetch as _useFetch } from '#app'
 
 export async function useFetchRaw<T = any>(url: string, options?: any) {
-  const { data, error, pending, refresh, execute } = await _useFetch<T>(url, options)
+  const config = useRuntimeConfig()
+  const newOptions = {
+    ...(options ?? {}),
+    headers: {
+      ...(options?.headers || {}),
+      'X-App-Type': config.public.appType
+    },
+  }
+  const { data, error, pending, refresh, execute } = await _useFetch<T>(url, newOptions)
   return {
     data: {
       _rawValue: data.value,

+ 12 - 1
xinkeaboard-web/nuxt.config.ts

@@ -3,7 +3,14 @@ import Components from "unplugin-vue-components/vite";
 import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
 import ElementPlus from "unplugin-element-plus/vite";
 // import { visualizer } from 'rollup-plugin-visualizer'
+const isDev = process.env.NODE_ENV === 'development';
+const appType = process.env.APP_TYPE;
 export default defineNuxtConfig({
+  nitro: {
+    output: {
+      dir: isDev ? undefined : `.output-${appType}`
+    }
+  },
   css: [
     "@/assets/style/variable.scss",
     "@/assets/style/reset.scss",
@@ -68,7 +75,11 @@ export default defineNuxtConfig({
       },
     },
   },
-  runtimeConfig: {},
+  runtimeConfig: {
+    public: {
+      appType: process.env.APP_TYPE,
+    }
+  },
   app: {
     head: {
       htmlAttrs: {

+ 5 - 2
xinkeaboard-web/package.json

@@ -1,8 +1,11 @@
 {
   "private": true,
   "scripts": {
-    "build": "nuxt build",
-    "dev": "nuxt dev",
+    "build:user": "cross-env APP_TYPE=user nuxt build",
+    "build:distributor": "cross-env APP_TYPE=distributor nuxt build",
+    "build": "pnpm build:user && pnpm build:distributor",
+    "dev:user": "cross-env APP_TYPE=user nuxt dev",
+    "dev:distributor": "cross-env APP_TYPE=distributor nuxt dev",
     "generate": "nuxt generate",
     "preview": "nuxt preview",
     "postinstall": "nuxt prepare"