diff --git a/web-admin/src/router/routes/staticRoutes.ts b/web-admin/src/router/routes/staticRoutes.ts
index d2a3f1112..b0cf02413 100644
--- a/web-admin/src/router/routes/staticRoutes.ts
+++ b/web-admin/src/router/routes/staticRoutes.ts
@@ -195,6 +195,42 @@ export const staticRoutes: AppRouteRecordRaw[] = [
component: () => import('@views/m/crm/product/detail.vue'),
meta: { title: '产品详情', isHideTab: true, isMpWebview: true }
},
+ {
+ path: '/m/crm/quote',
+ name: 'MpCrmQuoteList',
+ component: () => import('@views/m/crm/quote/index.vue'),
+ meta: { title: '报价单管理', isHideTab: true, isMpWebview: true }
+ },
+ {
+ path: '/m/crm/quote/approval',
+ name: 'MpCrmQuoteApproval',
+ component: () => import('@views/m/crm/quote/approval.vue'),
+ meta: { title: '报价单审批', isHideTab: true, isMpWebview: true }
+ },
+ {
+ path: '/m/crm/quote/new',
+ name: 'MpCrmQuoteNew',
+ component: () => import('@views/m/crm/quote/form.vue'),
+ meta: { title: '新增报价单', isHideTab: true, isMpWebview: true }
+ },
+ {
+ path: '/m/crm/quote/:id/edit',
+ name: 'MpCrmQuoteEdit',
+ component: () => import('@views/m/crm/quote/form.vue'),
+ meta: { title: '编辑报价单', isHideTab: true, isMpWebview: true }
+ },
+ {
+ path: '/m/crm/quote/:id/versions',
+ name: 'MpCrmQuoteVersions',
+ component: () => import('@views/m/crm/quote/versions.vue'),
+ meta: { title: '版本历史', isHideTab: true, isMpWebview: true }
+ },
+ {
+ path: '/m/crm/quote/:id',
+ name: 'MpCrmQuoteDetail',
+ component: () => import('@views/m/crm/quote/detail.vue'),
+ meta: { title: '报价单详情', isHideTab: true, isMpWebview: true }
+ },
{
path: '/:pathMatch(.*)*',
name: 'Exception404CatchAll',
diff --git a/web-admin/src/utils/mp-webview.ts b/web-admin/src/utils/mp-webview.ts
index 6b7693205..09dd6efbb 100644
--- a/web-admin/src/utils/mp-webview.ts
+++ b/web-admin/src/utils/mp-webview.ts
@@ -1,6 +1,8 @@
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 MP_CRM_QUOTE_LIST_PATH = '/m/crm/quote'
+export const MP_CRM_QUOTE_APPROVAL_PATH = '/m/crm/quote/approval'
export const MINI_WORKBENCH_PATH = '/pages/workbench/workbench'
/** H5 iframe / uni 壳页约定:内嵌页请求返回工作台 */
export const MP_WEBVIEW_GO_WORKBENCH = 'MP_WEBVIEW_GO_WORKBENCH'
diff --git a/web-admin/src/views/m/crm/quote/approval.vue b/web-admin/src/views/m/crm/quote/approval.vue
new file mode 100644
index 000000000..51fc3291b
--- /dev/null
+++ b/web-admin/src/views/m/crm/quote/approval.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/web-admin/src/views/m/crm/quote/detail.vue b/web-admin/src/views/m/crm/quote/detail.vue
new file mode 100644
index 000000000..51fc3291b
--- /dev/null
+++ b/web-admin/src/views/m/crm/quote/detail.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/web-admin/src/views/m/crm/quote/form.vue b/web-admin/src/views/m/crm/quote/form.vue
new file mode 100644
index 000000000..51fc3291b
--- /dev/null
+++ b/web-admin/src/views/m/crm/quote/form.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/web-admin/src/views/m/crm/quote/index.vue b/web-admin/src/views/m/crm/quote/index.vue
new file mode 100644
index 000000000..51fc3291b
--- /dev/null
+++ b/web-admin/src/views/m/crm/quote/index.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/web-admin/src/views/m/crm/quote/versions.vue b/web-admin/src/views/m/crm/quote/versions.vue
new file mode 100644
index 000000000..51fc3291b
--- /dev/null
+++ b/web-admin/src/views/m/crm/quote/versions.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+