同步web端组件到企微

This commit is contained in:
aixianling
2022-07-21 11:19:08 +08:00
parent 074fee775d
commit 4f77b3280f
2 changed files with 37 additions and 23 deletions

View File

@@ -341,5 +341,35 @@ export const wxwork = {
})
})
},
initOpenData({dispatch, commit}, params) {
const canvas = params?.canvas
if (canvas) delete params.canvas
if (timer.initOpenData) {
clearTimeout(timer.initOpenData)
}
const init = () => canvas ? dispatch('initCanvas') : dispatch('bindElements')
timer.initOpenData = setTimeout(() => {
window?.WWOpenData?.checkSession({
success: () => init(),
fail: () => {
dispatch('agentSign', params).then(() => dispatch("injectJWeixin")).then(() => init())
}
})
}, 50)
},
bindElements() {
const nodes = document.querySelectorAll('.AiOpenData')
window.WWOpenData?.bindAll(nodes)
},
initCanvas() {
window.WWOpenData?.initCanvas()
},
transCanvas(store, items) {
return new Promise((resolve, reject) => {
window.WWOpenData?.prefetch({items}, (err, data) => {
err ? reject(err) : resolve(data)
})
})
}
}
}

View File

@@ -1,5 +1,5 @@
<template>
<div :type="type" :openid="oid"/>
<div class="AiOpenData" :type="type" :openid="oid"/>
</template>
<script>
@@ -17,31 +17,15 @@ export default {
}
},
methods: {
...mapActions(['injectJWeixin']),
bindWWOpenData() {
window?.WWOpenData?.checkSession({
success: () => {
WWOpenData.bind(this.$el)
},
fail: () => {
this.injectJWeixin().then(() => {
WWOpenData.bind(this.$el)
})
}
}) || this.injectJWeixin().then(() => {
WWOpenData.bind(this.$el)
})
}
...mapActions(['initOpenData']),
},
watch: {
openid(v) {
v && this.bindWWOpenData()
}
openid: {
handler(v) {
v && this.initOpenData()
},
mounted() {
this.$nextTick(() => {
this.bindWWOpenData()
})
immediate: true
}
}
}
</script>