mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2026-11-07 01:18:54 +08:00
- buyer(95) / seller(169) / im(53) / manager(280) 共 597 个组件全部从 Options API 转换为 <script setup> - 四端 vuex 全部移除,状态管理统一迁移至 pinia 4(stores/ 目录) - util.js 等基础设施去除 vm 首参依赖;全局属性($Message/$filters 等)在 script 内改为具名导入 - 被外部 ref 访问的公共组件均已补齐 defineExpose(清单见各端 MIGRATION-VUE3.md) - 各端 eslint 启用 vue/component-api-style 防止新代码回退 Options API - 四端 yarn build 全部通过;迁移约定与注意事项已更新至各端 MIGRATION-VUE3.md
4.1 KiB
4.1 KiB
seller Vue 3 + Element Plus 迁移说明
已完成
- 依赖升级:
vue@3、vue-router@4、element-plus、vue-lazyload@3、pinia@4 - 入口:
src/main.js(createApp+createPinia) - 路由、动态路由、全局
$Message/$Modal/$Notice、$filters - 移除
view-design,axios已改用@/utils/message - 页面装修模块从 manager 同步(
shop/wap、shop/modelList等) - 订单、促销、分销、统计等业务页从 manager 迁移并适配商家 API
yarn run build编译通过
组合式 API 迁移(2026-10 完成)
全部 169 个 .vue 组件已从 Options API 转换为 <script setup>,并完成 vuex → pinia:
- 状态管理:
src/stores/下 4 个 store(app/user/setting/dict),原src/store/(vuex)已删除,package.json 不再依赖 vuex。原 mutation 全部转为同名 action,两个例外:storeOpenedListmutation 改名updateOpenedList(避免与 state 同名);clearOtherTags改收路由 name 字符串(不再传组件实例 vm)。 - util.js 去 vm 化:
src/libs/util.js所有函数的vm首参已删除,内部直接用useAppStore()。调用方式从util.openNewPage(this, name)变为util.openNewPage(name)。 - defineExpose 清单(被外部通过 ref 访问的公共组件,改动其内部成员时注意保持暴露面):
lili-dialog/index.vue:open/goodsData/goodsFlag/flag/clearGoodsSelected/singleGoodslili-dialog/goods-dialog.vue:typesys/oss-manage/ossManage.vue:selectImagemy-components/verify/index.vue:show/initmy-components/map/multiple-map.vue:openlili-components/editor/index.vue(Tinymce):getEditor/setContent/getContentmy-components/lili/department-tree-choose.vue:setData/clearSelectlili-components/multiple-region.vue:clear/openmain-components/config-drawer.vue:open/closeshop/hotzone/index.vue:open/close;shop/hotzone/components/Zone.vue:showModalFn/delItem;shop/hotzone/components/Hotzone.vue:addItem/isOverRange/overRange/changeItem/eraseItem/zones(被自定义指令经binding.instance访问)shop/modelForm.vue:navList/topAdvert;goods-seller/goodsOperation.vue:activestep;goods-seller/goodsOperationFirst.vue:selectGoodsType;goods-seller/components/AppointmentPublishPanel.vue:全部 20 个方法
- 保留
export default普通 script 块的文件(统计 Options API 残留时需排除):shop/wap/template/下 3 个tpl_*组件(保留自定义title选项)。 - 修复的历史笔误:多处
this.$message(小写)修正为Message(全局只注册了$Message,原写法运行时会抛 TypeError)——appointment 模块 4 处、goods.vue 1 处等。 - 其余两端(manager / im)仍为 Options API + vuex,迁移时参照本端与 buyer 端模式。
本地运行
cd seller
yarn install
yarn run dev
Node 16+,包管理统一 yarn。商家后台默认端口见 src/config/index.js(10002)。
本轮补充(样式 / 商品发布)
goodsOperation.vue:el-steps步骤条goodsOperationFirst.vue/goodsOperationSec.vue:去除 iView 图标、ButtonGroupshop/hotzone/index.vue:el-dialog热区弹窗common.scss/table-common.scss:列表页双 Card 间距、el-form-item对齐addGoods.scss/home.scss等::deep()语法修复
可选后续
- 业务代码中仍可使用
this.$Message/this.$Modal(兼容层映射到 Element Plus) - 样式文件中残留的
.ivu-*类名可逐步清理 - 商品发布三步流程建议上线前重点回归测试
迁移脚本
scripts/migrate-iview-to-element.js— 从 manager 复制装修模板 + 批量替换scripts/copy-manager-migrations.js— 从 manager 复制已迁移业务页
上线前检查
四端统一清单(认证、axios、Element Plus、分端专项):../MIGRATION-VUE3.md