fix: Vue2 到 Vue3 迁移兼容修复

- 修复 uni-popup-dialog/uni-data-picker keypress.js 中 $once 在 H5 端报错(改用生命周期钩子清理监听)
- main.js 补 $delete globalProperties polyfill(z-paging 自动高度逻辑依赖)
- App.vue onLaunch 补设备信息初始化,修复 X-Device-Id 恒为 unknown
- 68 处 ::v-deep、/deep/ 旧深度选择器替换为 :deep()(含 login-page.scss)
- zetank-personalpage 组件 .sync 修饰符改为 v-model:xxx(Vue3 已移除 .sync)
- vite.config.js HBuilderX 路径支持 HBUILDERX_HOME 环境变量覆盖
- 根 package.json 清理 image-grid 插件遗留元数据
- 收录此前未提交的 uView Vue3 兜底补丁(common/uview-init.js 及各组件 props.js)
This commit is contained in:
2026-09-06 19:36:36 +08:00
parent a68bf43112
commit 99c139d6ce
126 changed files with 1223 additions and 1080 deletions
+10 -10
View File
@@ -1,3 +1,5 @@
// 优先初始化 uView 全局配置(uni.$u),避免页面组件先于其加载
import '@/uni_modules/uview-ui'
import App from './App'
// ================== Vue2 逻辑 ================== //
@@ -24,6 +26,14 @@ import uView from '@/uni_modules/uview-ui'
export function createApp() {
const app = createSSRApp(App)
app.use(uView)
// Vue3 已移除 $delete,补齐以兼容依赖该 API 的旧组件(如 z-paging 自动高度逻辑)
app.config.globalProperties.$delete = function $delete(target, key) {
if (target && typeof target === 'object') {
delete target[key]
}
}
return { app }
}
// #endif
@@ -88,13 +98,3 @@ function handleTokenExpired() {
}
})
}
// 在应用启动时预加载设备信息
export function initDeviceInfo() {
uni.getSystemInfo({
success: (res) => {
getApp().globalData = getApp().globalData || {}
getApp().globalData.deviceId = res.deviceId
}
})
}