Преглед изворни кода

feat(web-admin): register /m/crm/product static routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
wuzilong пре 3 недеља
родитељ
комит
a2769c86dc

+ 30 - 0
web-admin/src/router/routes/staticRoutes.ts

@@ -165,6 +165,36 @@ export const staticRoutes: AppRouteRecordRaw[] = [
     component: () => import('@views/m/pl/plan/detail.vue'),
     meta: { title: '计划详情', isHideTab: true, isMpWebview: true }
   },
+  {
+    path: '/m/crm/product',
+    name: 'MpCrmProductList',
+    component: () => import('@views/m/crm/product/index.vue'),
+    meta: { title: '产品管理', isHideTab: true, isMpWebview: true }
+  },
+  {
+    path: '/m/crm/product/new',
+    name: 'MpCrmProductNew',
+    component: () => import('@views/m/crm/product/form.vue'),
+    meta: { title: '新增产品', isHideTab: true, isMpWebview: true }
+  },
+  {
+    path: '/m/crm/product/categories',
+    name: 'MpCrmProductCategories',
+    component: () => import('@views/m/crm/product/categories.vue'),
+    meta: { title: '产品分类', isHideTab: true, isMpWebview: true }
+  },
+  {
+    path: '/m/crm/product/:id/edit',
+    name: 'MpCrmProductEdit',
+    component: () => import('@views/m/crm/product/form.vue'),
+    meta: { title: '编辑产品', isHideTab: true, isMpWebview: true }
+  },
+  {
+    path: '/m/crm/product/:id',
+    name: 'MpCrmProductDetail',
+    component: () => import('@views/m/crm/product/detail.vue'),
+    meta: { title: '产品详情', isHideTab: true, isMpWebview: true }
+  },
   {
     path: '/:pathMatch(.*)*',
     name: 'Exception404CatchAll',

+ 1 - 0
web-admin/src/utils/mp-webview.ts

@@ -1,5 +1,6 @@
 export const MP_WEBVIEW_PATH_PREFIX = '/m/'
 export const MP_PLAN_LIST_PATH = '/m/pl/plan'
+export const MP_CRM_PRODUCT_LIST_PATH = '/m/crm/product'
 export const MINI_WORKBENCH_PATH = '/pages/workbench/workbench'
 /** H5 iframe / uni 壳页约定:内嵌页请求返回工作台 */
 export const MP_WEBVIEW_GO_WORKBENCH = 'MP_WEBVIEW_GO_WORKBENCH'

+ 16 - 0
web-admin/src/views/m/crm/product/categories.vue

@@ -0,0 +1,16 @@
+<template>
+  <MpWebviewShell>
+    <header class="mp-wv-header">
+      <div class="mp-wv-header__row">
+        <h1 class="mp-wv-header__title">{{ title }}</h1>
+      </div>
+    </header>
+    <div class="mp-wv-empty">页面建设中</div>
+  </MpWebviewShell>
+</template>
+<script setup lang="ts">
+  import MpWebviewShell from '@/layouts/MpWebviewShell.vue'
+  import '@/styles/mp-webview.scss'
+
+  const title = '产品分类'
+</script>

+ 16 - 0
web-admin/src/views/m/crm/product/detail.vue

@@ -0,0 +1,16 @@
+<template>
+  <MpWebviewShell>
+    <header class="mp-wv-header">
+      <div class="mp-wv-header__row">
+        <h1 class="mp-wv-header__title">{{ title }}</h1>
+      </div>
+    </header>
+    <div class="mp-wv-empty">页面建设中</div>
+  </MpWebviewShell>
+</template>
+<script setup lang="ts">
+  import MpWebviewShell from '@/layouts/MpWebviewShell.vue'
+  import '@/styles/mp-webview.scss'
+
+  const title = '产品详情'
+</script>

+ 17 - 0
web-admin/src/views/m/crm/product/form.vue

@@ -0,0 +1,17 @@
+<template>
+  <MpWebviewShell>
+    <header class="mp-wv-header">
+      <div class="mp-wv-header__row">
+        <h1 class="mp-wv-header__title">{{ title }}</h1>
+      </div>
+    </header>
+    <div class="mp-wv-empty">页面建设中</div>
+  </MpWebviewShell>
+</template>
+<script setup lang="ts">
+  import MpWebviewShell from '@/layouts/MpWebviewShell.vue'
+  import '@/styles/mp-webview.scss'
+
+  const route = useRoute()
+  const title = computed(() => String(route.meta.title || '产品'))
+</script>

+ 16 - 0
web-admin/src/views/m/crm/product/index.vue

@@ -0,0 +1,16 @@
+<template>
+  <MpWebviewShell>
+    <header class="mp-wv-header">
+      <div class="mp-wv-header__row">
+        <h1 class="mp-wv-header__title">{{ title }}</h1>
+      </div>
+    </header>
+    <div class="mp-wv-empty">页面建设中</div>
+  </MpWebviewShell>
+</template>
+<script setup lang="ts">
+  import MpWebviewShell from '@/layouts/MpWebviewShell.vue'
+  import '@/styles/mp-webview.scss'
+
+  const title = '产品管理'
+</script>