我们已经准备好了,你呢?

2025我们与您携手共赢,为您的企业形象保驾护航!

基于分析,以下是迁移方案:

分销功能迁移方案

一、功能结构分析

uni-app端(手机端)分销功能包含:

1. 页面文件(16个):
  • index.vue - 分销首页

  • promote.vue - 推广规则页

  • promote_code.vue - 推广海报/二维码页

  • apply.vue - 申请成为分销商

  • order.vue - 分销订单列表

  • order_detail.vue - 分销订单详情

  • withdraw_apply.vue - 申请提现

  • withdraw_list.vue - 提现记录列表

  • withdrawal_detail.vue - 提现详情

  • bill.vue - 账单报表

  • team.vue - 我的团队

  • child_fenxiao.vue - 下级分销商

  • relation.vue - 分销关系

  • level.vue - 分销等级

  • goods_list.vue - 分销商品列表

  • ranking_list.vue - 排行榜

2. 路由配置: pages.json 中13个路由
3. 语言包: lang/zh-cn/fenxiao/ 下12个语言文件
4. 样式文件: public/css/ 下4个scss文件
5. 公共JS: public/js/goods_list.js
6. API接口: 使用 /fenxiao/api/fenxiao/ 开头的接口

二、详细迁移步骤

阶段一:准备工作

步骤1.1:创建目录结构

pc/src/views/promotion/fenxiao/

├── index.vue              # 分销首页

├── promote.vue            # 推广规则

├── promote_code.vue       # 推广二维码

├── apply.vue              # 申请分销商

├── order.vue              # 分销订单列表

├── order_detail.vue        # 分销订单详情

├── withdraw_apply.vue      # 申请提现

├── withdraw_list.vue       # 提现记录

├── withdrawal_detail.vue   # 提现详情

├── bill.vue                # 账单报表

├── team.vue                # 我的团队

├── child_fenxiao.vue       # 下级分销商

├── relation.vue            # 分销关系

├── level.vue               # 分销等级

├── goods_list.vue          # 分销商品列表

└── ranking_list.vue        # 排行榜

步骤1.2:创建API文件

pc/src/api/fenxiao/

└── index.js                # 分销相关API接口

步骤1.3:创建语言包

pc/src/lang/zh-cn/fenxiao/

├── index.js

├── apply.js

├── order.js

├── order_detail.js

├── withdraw_apply.js

├── withdraw_list.js

├── bill.js

├── team.js

├── level.js

├── goods_list.js

├── promote_code.js

└── ranking_list.js


阶段二:API接口迁移

步骤2.1:创建API文件
在 pc/src/api/fenxiao/index.js 中创建所有分销相关的API方法:

import http from "../../utils/http"


// 获取分销商信息

export function fenxiaoDetail(params) {

    return http({

        url: "/fenxiao/api/fenxiao/detail",

        data: params,

        forceLogin: true

    })

}


// 获取分销订单列表

export function fenxiaoOrderList(params) {

    return http({

        url: "/fenxiao/api/fenxiao/order",

        data: params,

        forceLogin: true

    })

}


// 获取分销订单详情

export function fenxiaoOrderDetail(params) {

    return http({

        url: "/fenxiao/api/fenxiao/orderdetail",

        data: params,

        forceLogin: true

    })

}


// 申请成为分销商

export function applyFenxiao(params) {

    return http({

        url: "/fenxiao/api/fenxiao/apply",

        data: params,

        forceLogin: true

    })

}


// 获取团队列表

export function fenxiaoTeam(params) {

    return http({

        url: "/fenxiao/api/fenxiao/team",

        data: params,

        forceLogin: true

    })

}


// 获取提现记录

export function withdrawList(params) {

    return http({

        url: "/fenxiao/api/fenxiao/withdraw",

        data: params,

        forceLogin: true

    })

}


// 申请提现

export function applyWithdraw(params) {

    return http({

        url: "/fenxiao/api/fenxiao/withdrawapply",

        data: params,

        forceLogin: true

    })

}


// 获取账单

export function fenxiaoBill(params) {

    return http({

        url: "/fenxiao/api/fenxiao/bill",

        data: params,

        forceLogin: true

    })

}


// 获取分销商品列表

export function fenxiaoGoodsList(params) {

    return http({

        url: "/fenxiao/api/fenxiao/goods",

        data: params,

        forceLogin: true

    })

}


// 获取分销海报

export function fenxiaoPoster(params) {

    return http({

        url: "/fenxiao/api/fenxiao/poster",

        data: params,

        forceLogin: true

    })

}


// 获取推广规则

export function promoteRule(params) {

    return http({

        url: "/fenxiao/api/config/promoterule",

        data: params,

        forceLogin: true

    })

}


// 获取分销等级

export function fenxiaoLevel(params) {

    return http({

        url: "/fenxiao/api/fenxiao/level",

        data: params,

        forceLogin: true

    })

}


// 获取排行榜

export function rankingList(params) {

    return http({

        url: "/fenxiao/api/fenxiao/ranking",

        data: params,

        forceLogin: true

    })

}

阶段三:页面组件迁移

步骤3.1:转换uni-app组件到Vue组件
需要转换的关键点:
  1. 模板语法转换:

  • <view> → <div>

  • <image> → <img>

  • <text> → <span> 或直接文本

  • <scroll-view> → 使用PC端滚动(通常不需要)

  • @click → @click(保持不变)

  • v-if/v-for → 保持不变

  1. 样式转换:

  • rpx → px(1rpx ≈ 0.5px,或按设计稿调整)

  • uni-app的样式类 → PC端Element UI或自定义样式

  1. API调用转换:

  • this.$api.sendRequest() → import { fenxiaoDetail } from '@/api/fenxiao'

  • uni-app的Promise风格 → 标准axios调用

  1. 工具函数转换:

  • this.$util.img() → this.$img()(PC端已有)

  • this.$util.redirectTo() → this.$router.push()

  • uni.getStorageSync() → localStorage.getItem() 或使用store

步骤3.2:示例 - index.vue迁移
参考 niushopuni/pages_promotion/fenxiao/index.vue,创建 pc/src/views/promotion/fenxiao/index.vue
主要转换点:
  • 将uni-app的页面结构改为PC端布局

  • 使用Element UI组件(如表格、分页等)

  • 调整样式适配PC端

  • 使用PC端的路由和状态管理


阶段四:路由配置

步骤4.1:创建路由模块
在 pc/src/router/modules/ 下创建 fenxiao.js

import MemberLayout from "../../layout/member"


const fenxiaoRoutes = [

    {

        path: "fenxiao/index",

        name: "fenxiao_index",

        meta: {

            module: "fenxiao",

            auth: true

        },

        component: () => import("@/views/promotion/fenxiao/index")

    },

    {

        path: "fenxiao/promote",

        name: "fenxiao_promote",

        meta: {

            module: "fenxiao",

            auth: true

        },

        component: () => import("@/views/promotion/fenxiao/promote")

    },

    {

        path: "fenxiao/promote_code",

        name: "fenxiao_promote_code",

        meta: {

            module: "fenxiao",

            auth: true

        },

        component: () => import("@/views/promotion/fenxiao/promote_code")

    },

    // ... 其他路由

]


export default {

    path: "/promotion",

    component: MemberLayout, // 或使用合适的布局

    redirect: "fenxiao/index",

    children: fenxiaoRoutes

}步骤4.2:在 router/index.js 中引入

import fenxiaoRoutes from "./modules/fenxiao"


const mainRouters = [

    indexRoutes,

    authRoutes,

    memberRoutes,

    fenxiaoRoutes, // 添加分销路由

    // ...

]

阶段五:语言包迁移

步骤5.1:复制并转换语言包
将 niushopuni/lang/zh-cn/fenxiao/ 下的所有语言文件复制到 pc/src/lang/zh-cn/fenxiao/
步骤5.2:调整语言包格式
PC端语言包格式可能与uni-app略有不同,需要检查 pc/src/lang/zh-cn/member/ 的格式并保持一致。

阶段六:样式迁移

步骤6.1:转换SCSS文件
将 niushopuni/pages_promotion/fenxiao/public/css/ 下的scss文件:
  • 将 rpx 转换为 px

  • 调整移动端样式为PC端样式

  • 适配Element UI组件样式

步骤6.2:创建统一的样式文件
在 pc/src/views/promotion/fenxiao/ 下创建 fenxiao.scss,或在各组件中单独引入样式。

阶段七:会员中心集成

步骤7.1:在会员中心添加分销入口
修改 pc/src/views/member/index.vue,添加分销相关菜单项:

<div class="item">

    <router-link to="/promotion/fenxiao/index" class="item-content">

        <img src="@/assets/images/fenxiao.png" alt />

        <div class="name">分销中心</div>

    </router-link>

</div>

步骤7.2:在会员中心侧边栏添加分销菜单
修改 pc/src/layout/components/NsAside.vue(如果存在),添加分销相关菜单项。

阶段八:组件适配

步骤8.1:替换uni-app特有组件
  • mescroll-uni → PC端分页组件(Element UI Pagination)

  • ns-empty → PC端空状态组件

  • ns-login → PC端登录组件

  • loading-cover → Element UI Loading

步骤8.2:图片资源处理
  • 将 public/uniapp/fenxiao/ 下的图片资源复制到 pc/src/assets/images/fenxiao/

  • 更新图片路径引用


阶段九:功能测试

步骤9.1:功能测试清单
  • [ ] 分销商申请功能

  • [ ] 分销首页数据展示

  • [ ] 分销订单列表和详情

  • [ ] 提现申请和记录

  • [ ] 团队管理

  • [ ] 分销商品列表

  • [ ] 推广二维码生成

  • [ ] 账单报表

  • [ ] 分销等级

  • [ ] 排行榜

步骤9.2:兼容性测试
  • 浏览器兼容性

  • 响应式布局(如果需要)

  • API接口调用

  • 路由跳转


三、关键注意事项

  1. API接口统一: uni-app和PC端使用相同的后端API,无需修改后端

  1. 数据格式: 保持与uni-app端相同的数据结构

  1. 权限控制: 确保分销功能需要登录(auth: true

  1. 样式适配: PC端需要重新设计布局,不能直接复制移动端样式

  1. 组件库: PC端使用Element UI,需要将uni-app组件替换为Element UI组件

  1. 路由结构: PC端使用Vue Router,路由结构与uni-app不同

  1. 状态管理: PC端使用Vuex,需要将uni-app的存储方式转换为Vuex


四、预估工作量

  • API接口迁移: 1-2小时

  • 页面组件迁移(16个页面): 2-3天

  • 路由配置: 1-2小时

  • 语言包迁移: 2-3小时

  • 样式适配: 1-2天

  • 会员中心集成: 2-3小时

  • 测试和调试: 1-2天

总计:约5-7个工作日

五、建议的执行顺序

  1. 先迁移API接口(确保接口可用)

  1. 迁移核心页面(index.vue, order.vue, withdraw_list.vue)

  1. 迁移其他功能页面

  1. 集成到会员中心

  1. 全面测试

我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 138-519-41123,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2025我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

138-519-41123

上班时间

周一到周五

公司电话

138-519-41123

二维码
微信
线