|
@@ -7,7 +7,9 @@ import logoMini from '/@/assets/logo-mini.svg'
|
|
|
import loginMain from '/@/assets/login-main.svg'
|
|
|
import loginBg from '/@/assets/login-bg.svg'
|
|
|
import AnsjerImg from '/@/assets/ansjer_image.png'
|
|
|
-import { getWorkWeChatCode } from './api'
|
|
|
+import { getWorkWeChatCode, WeComLogin } from './api'
|
|
|
+import * as ww from '@wecom/jssdk'
|
|
|
+import emitter from '/@/utils/emitter'
|
|
|
|
|
|
// 引入组件
|
|
|
const Account = defineAsyncComponent(() => import('/@/views/system/login/component/account.vue'))
|
|
@@ -29,17 +31,40 @@ const getThemeConfig = computed(() => {
|
|
|
|
|
|
const qrCode = ref('')
|
|
|
|
|
|
-async function fetchWorkWeChatCode() {
|
|
|
+function createWXQRCode() {
|
|
|
+ ww.createWWLoginPanel({
|
|
|
+ el: '#wx_qrcode',
|
|
|
+ params: {
|
|
|
+ login_type: 'CorpApp',
|
|
|
+ appid: 'ww467ec1685e8262e6',
|
|
|
+ agentid: '1000065',
|
|
|
+ redirect_uri: 'http://amzads.zositechc.cn/web/',
|
|
|
+ state: 'Wechat',
|
|
|
+ scope: 'snsapi_privateinfo',
|
|
|
+ redirect_type: 'callback',
|
|
|
+ },
|
|
|
+ onCheckWeComLogin({ isWeComLogin }) {
|
|
|
+ console.log(isWeComLogin)
|
|
|
+ },
|
|
|
+ onLoginSuccess({ code }) {
|
|
|
+ // console.log({ code })
|
|
|
+ handleWeComLogin({ code: code, state: 'Wechat' })
|
|
|
+ },
|
|
|
+ onLoginFail(err) {
|
|
|
+ console.log(err)
|
|
|
+ },
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+async function handleWeComLogin(query) {
|
|
|
try {
|
|
|
- if (!state.isScan) {
|
|
|
- const response = await getWorkWeChatCode()
|
|
|
- qrCode.value = response.data
|
|
|
- window.location.href = qrCode.value
|
|
|
+ const res = await WeComLogin(query)
|
|
|
+ console.log('res', res)
|
|
|
+ if (res.code === '2000') {
|
|
|
+ emitter.emit('scan-wecomLogin', {loginInfo: res.data} )
|
|
|
}
|
|
|
} catch (error) {
|
|
|
console.log('error:', error)
|
|
|
- } finally {
|
|
|
- state.isScan = !state.isScan
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -82,14 +107,10 @@ onMounted(() => {
|
|
|
<!-- <el-tab-pane :label="$t('message.label.two2')" name="mobile">
|
|
|
<Mobile />
|
|
|
</el-tab-pane> -->
|
|
|
- <!-- 二维码扫码登录 -->
|
|
|
- <!--<el-tab-pane :label="$t('message.label.qrcode')" name="QRCode">-->
|
|
|
- <!-- <Account />-->
|
|
|
- <!--</el-tab-pane>-->
|
|
|
</el-tabs>
|
|
|
</div>
|
|
|
- <Scan v-if="state.isScan" :qrCode="qrCode" />
|
|
|
- <div class="login-content-main-sacn" @click="fetchWorkWeChatCode">
|
|
|
+ <Scan v-if="state.isScan" />
|
|
|
+ <div class="login-content-main-sacn" @click="createWXQRCode">
|
|
|
<i class="iconfont" :class="state.isScan ? 'icon-diannao1' : 'icon-barcode-qr'"></i>
|
|
|
<div class="login-content-main-sacn-delta"></div>
|
|
|
</div>
|