22
CI/CD / build (push) Failing after 3m40s
Details
CI/CD / build (push) Failing after 3m40s
Details
This commit is contained in:
parent
dd23fde1c0
commit
dc94341324
|
|
@ -18,7 +18,9 @@
|
||||||
"prettier": "^3.0.0",
|
"prettier": "^3.0.0",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"turbo": "^1.10.0",
|
"turbo": "^1.10.0",
|
||||||
"vite": "^7.2.2"
|
"vite": "^7.2.2",
|
||||||
|
"@element-plus/icons-vue": "^2.3.2",
|
||||||
|
"element-plus": "^2.11.7"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.0.0",
|
"node": ">=16.0.0",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,409 @@
|
||||||
|
const wx = window.wx || window.jWeixin
|
||||||
|
|
||||||
|
class WechatBus {
|
||||||
|
constructor() {
|
||||||
|
this.isReady = false
|
||||||
|
this.messageHandlers = new Map()
|
||||||
|
this.eventListeners = new Map()
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
if (wx) {
|
||||||
|
this.isReady = true
|
||||||
|
console.log('WechatBus initialized successfully')
|
||||||
|
} else {
|
||||||
|
console.warn('Wechat JSSDK not loaded')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
checkReady() {
|
||||||
|
if (!this.isReady) {
|
||||||
|
throw new Error('Wechat JSSDK is not ready')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
config(config) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.config({
|
||||||
|
debug: config.debug || false,
|
||||||
|
appId: config.appId,
|
||||||
|
timestamp: config.timestamp,
|
||||||
|
nonceStr: config.nonceStr,
|
||||||
|
signature: config.signature,
|
||||||
|
jsApiList: config.jsApiList || []
|
||||||
|
})
|
||||||
|
|
||||||
|
wx.ready(() => {
|
||||||
|
this.isReady = true
|
||||||
|
console.log('Wechat JSSDK config ready')
|
||||||
|
resolve(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
wx.error((res) => {
|
||||||
|
console.error('Wechat JSSDK config error:', res)
|
||||||
|
reject(res)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
postMessage(data) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.postMessage({
|
||||||
|
data
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Post message error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
navigateTo(url) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.navigateTo({
|
||||||
|
url,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Navigate to error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
navigateBack(delta = 1) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.navigateBack({
|
||||||
|
delta,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Navigate back error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
redirectTo(url) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.redirectTo({
|
||||||
|
url,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Redirect to error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
switchTab(url) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.switchTab({
|
||||||
|
url,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Switch tab error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
reLaunch(url) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.reLaunch({
|
||||||
|
url,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('ReLaunch error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
getEnv() {
|
||||||
|
this.checkReady()
|
||||||
|
return wx.miniProgram.getEnv()
|
||||||
|
}
|
||||||
|
|
||||||
|
getAccountInfoSync() {
|
||||||
|
this.checkReady()
|
||||||
|
return wx.getAccountInfoSync()
|
||||||
|
}
|
||||||
|
|
||||||
|
on(event, handler) {
|
||||||
|
if (!this.eventListeners.has(event)) {
|
||||||
|
this.eventListeners.set(event, new Set())
|
||||||
|
}
|
||||||
|
this.eventListeners.get(event).add(handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
off(event, handler) {
|
||||||
|
if (this.eventListeners.has(event)) {
|
||||||
|
if (handler) {
|
||||||
|
this.eventListeners.get(event).delete(handler)
|
||||||
|
} else {
|
||||||
|
this.eventListeners.delete(event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
emit(event, data) {
|
||||||
|
if (this.eventListeners.has(event)) {
|
||||||
|
this.eventListeners.get(event).forEach(handler => {
|
||||||
|
try {
|
||||||
|
handler(data)
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Event handler error for ${event}:`, error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setStorageSync(key, data) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.setStorageSync({
|
||||||
|
key,
|
||||||
|
data
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Set storage error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
getStorageSync(key) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
const data = wx.miniProgram.getStorageSync({
|
||||||
|
key
|
||||||
|
})
|
||||||
|
resolve(data)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Get storage error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
removeStorageSync(key) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.removeStorageSync({
|
||||||
|
key
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Remove storage error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
clearStorageSync() {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
wx.miniProgram.clearStorageSync()
|
||||||
|
resolve(true)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Clear storage error:', error)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
chooseImage(options = {}) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const defaultOptions = {
|
||||||
|
count: 1,
|
||||||
|
sizeType: ['original', 'compressed'],
|
||||||
|
sourceType: ['album', 'camera'],
|
||||||
|
...options
|
||||||
|
}
|
||||||
|
|
||||||
|
wx.chooseImage({
|
||||||
|
...defaultOptions,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
previewImage(options) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.previewImage({
|
||||||
|
...options,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
uploadImage(localId, isShowProgressTips = 1) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.uploadImage({
|
||||||
|
localId,
|
||||||
|
isShowProgressTips,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
getLocation(options = {}) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const defaultOptions = {
|
||||||
|
type: 'wgs84',
|
||||||
|
...options
|
||||||
|
}
|
||||||
|
|
||||||
|
wx.getLocation({
|
||||||
|
...defaultOptions,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
openLocation(options) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.openLocation({
|
||||||
|
...options,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
scanQRCode(options = {}) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const defaultOptions = {
|
||||||
|
needResult: 1,
|
||||||
|
scanType: ['qrCode', 'barCode'],
|
||||||
|
...options
|
||||||
|
}
|
||||||
|
|
||||||
|
wx.scanQRCode({
|
||||||
|
...defaultOptions,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
chooseWXPay(options) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.chooseWXPay({
|
||||||
|
...options,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMenuShareAppMessage(options) {
|
||||||
|
this.checkReady()
|
||||||
|
wx.onMenuShareAppMessage({
|
||||||
|
...options
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMenuShareTimeline(options) {
|
||||||
|
this.checkReady()
|
||||||
|
wx.onMenuShareTimeline({
|
||||||
|
...options
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
updateAppMessageShareData(options) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.updateAppMessageShareData({
|
||||||
|
...options,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
updateTimelineShareData(options) {
|
||||||
|
this.checkReady()
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.updateTimelineShareData({
|
||||||
|
...options,
|
||||||
|
success: (res) => resolve(res),
|
||||||
|
fail: (error) => reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
closeWindow() {
|
||||||
|
this.checkReady()
|
||||||
|
wx.closeWindow()
|
||||||
|
}
|
||||||
|
|
||||||
|
hideMenuItems(menuList = []) {
|
||||||
|
this.checkReady()
|
||||||
|
wx.hideMenuItems({
|
||||||
|
menuList
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
showMenuItems(menuList = []) {
|
||||||
|
this.checkReady()
|
||||||
|
wx.showMenuItems({
|
||||||
|
menuList
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
hideAllNonBaseMenuItem() {
|
||||||
|
this.checkReady()
|
||||||
|
wx.hideAllNonBaseMenuItem()
|
||||||
|
}
|
||||||
|
|
||||||
|
showAllNonBaseMenuItem() {
|
||||||
|
this.checkReady()
|
||||||
|
wx.showAllNonBaseMenuItem()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const wechatBus = new WechatBus()
|
||||||
|
|
||||||
|
export default wechatBus
|
||||||
|
export { WechatBus }
|
||||||
Loading…
Reference in New Issue