Browse Source

增加微信开关

old
wangqing 4 years ago
parent
commit
de5087b87a
  1. 4
      .env.development
  2. 4
      .env.production
  3. 2
      src/utils/constants.js
  4. 94
      src/views/account/login.vue
  5. 4
      src/views/form/write/index.vue
  6. 1
      src/views/project/template/index.vue

4
.env.development

@ -9,5 +9,5 @@ VUE_APP_CDN = OFF
VUE_APP_DEBUG_TOOL = VUE_APP_DEBUG_TOOL =
# 高德地图key # 高德地图key
VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d
# 微信功能开关 # 微信功能开关 开启设置 ON,关闭设置 OFF
VUE_APP_WX = true VUE_APP_WX = ON

4
.env.production

@ -9,5 +9,5 @@ VUE_APP_CDN = OFF
VUE_APP_DEBUG_TOOL = VUE_APP_DEBUG_TOOL =
# 高德地图key # 高德地图key
VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d
# 微信功能开关 # 微信功能开关 开启设置 ON,关闭设置 OFF
VUE_APP_WX = true VUE_APP_WX = ON

2
src/utils/constants.js

@ -6,5 +6,5 @@ export default {
passwordRegDesc: '密码最少为6位字符', passwordRegDesc: '密码最少为6位字符',
userUploadUrl: `${process.env.VUE_APP_API_ROOT}/user/file/upload`, userUploadUrl: `${process.env.VUE_APP_API_ROOT}/user/file/upload`,
// 启用微信功能 // 启用微信功能
enableWx: process.env.VUE_APP_WX enableWx: process.env.VUE_APP_WX == 'ON'
} }

94
src/views/account/login.vue

@ -1,20 +1,20 @@
<template> <template>
<div class="login-container"> <div class="login-container">
<el-row class="login-body"> <el-row class="login-body">
<el-col :span="5" :offset="4"> <el-col :offset="4" :span="5">
<img class="login-img" src="@/assets/images/5b968a75b5e42.png"> <img class="login-img" src="@/assets/images/5b968a75b5e42.png">
</el-col> </el-col>
<el-col :offset="3" :span="10"> <el-col :offset="3" :span="10">
<el-tabs v-if="formType=='login'" <el-tabs v-if="formType=='login'"
v-model="loginType" class="login-form-tab" v-model="loginType" class="login-form-tab"
> >
<el-tab-pane label="微信扫码登录" name="wx"> <el-tab-pane v-if="enableWx" label="微信扫码登录" name="wx">
<div class="wx-login"> <div class="wx-login">
<div> <div>
<el-image <el-image
v-loading="wxQrCodeLoading" v-loading="wxQrCodeLoading"
class="wx-login-qrcode"
:src="wxLoginQrCode" :src="wxLoginQrCode"
class="wx-login-qrcode"
fit="fill" fit="fill"
@load="(e)=>{ @load="(e)=>{
this.wxQrCodeLoading=false this.wxQrCodeLoading=false
@ -22,8 +22,8 @@
/> />
</div> </div>
<div> <div>
<el-link icon="el-icon-refresh-left" <el-link :underline="false"
:underline="false" icon="el-icon-refresh-left"
@click="getLoginWxQrCode" @click="getLoginWxQrCode"
> >
刷新二维码 刷新二维码
@ -39,10 +39,10 @@
<el-link class="login-tip" @click="()=>{this.formType='reg'}">立即注册</el-link> <el-link class="login-tip" @click="()=>{this.formType='reg'}">立即注册</el-link>
</el-link> </el-link>
</el-col> </el-col>
<el-col :span="9" :offset="3"> <el-col :offset="3" :span="9">
<div class="other-login"> <div class="other-login">
<span @click="redirectUrl(qqLoginAuthorizeUrl)"> <span @click="redirectUrl(qqLoginAuthorizeUrl)">
<svg-icon name="loginQQ" class="other-login-icon" /> <svg-icon class="other-login-icon" name="loginQQ" />
</span> </span>
</div> </div>
</el-col> </el-col>
@ -57,23 +57,24 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="账号密码登录" name="account"> <el-tab-pane label="账号密码登录" name="account">
<el-form ref="accountLoginForm" label-position="top" size="small" :model="accountForm" <el-form ref="accountLoginForm" :model="accountForm" :rules="accountLoginRules"
:rules="accountLoginRules"
status-icon
hide-required-asterisk
class="account-login-form" class="account-login-form"
hide-required-asterisk
label-position="top"
size="small"
status-icon
@keyup.enter.native="loginHandle" @keyup.enter.native="loginHandle"
> >
<el-form-item label="手机号/邮箱登录" prop="account"> <el-form-item label="手机号/邮箱登录" prop="account">
<el-input v-model="accountForm.account" placeholder="请输入手机号/邮箱" autocomplete="off" /> <el-input v-model="accountForm.account" autocomplete="off" placeholder="请输入手机号/邮箱" />
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input v-model="accountForm.password" placeholder="请输入密码" autocomplete="off" <el-input v-model="accountForm.password" autocomplete="off" placeholder="请输入密码"
show-password show-password
/> />
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-row type="flex" align="middle"> <el-row align="middle" type="flex">
<el-col :span="3"> <el-col :span="3">
<el-radio v-model="agreeProtocol" label="" /> <el-radio v-model="agreeProtocol" label="" />
</el-col> </el-col>
@ -81,12 +82,12 @@
<span class="protocol-tip">我已同意</span> <span class="protocol-tip">我已同意</span>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-link :underline="false" type="primary" class="protocol-tip"> <el-link :underline="false" class="protocol-tip" type="primary">
TDuck用户服务协议 TDuck用户服务协议
</el-link> </el-link>
</el-col> </el-col>
<el-col :span="6" :offset="1"> <el-col :offset="1" :span="6">
<el-link :underline="false" type="primary" class="protocol-tip" <el-link :underline="false" class="protocol-tip" type="primary"
@click="toForgetPwdHandle" @click="toForgetPwdHandle"
> >
忘记密码 忘记密码
@ -98,12 +99,12 @@
<el-button class="width-full" type="primary" @click="loginHandle">登录</el-button> <el-button class="width-full" type="primary" @click="loginHandle">登录</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-row type="flex" align="middle"> <el-row align="middle" type="flex">
<el-col :span="8" :offset="6"> <el-col :offset="6" :span="8">
<span class="protocol-tip">使用第三方登录 </span> <span class="protocol-tip">使用第三方登录 </span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-link :underline="false" type="primary" class="protocol-tip" <el-link :underline="false" class="protocol-tip" type="primary"
@click="()=>{this.formType='reg'}" @click="()=>{this.formType='reg'}"
> >
立即注册 立即注册
@ -114,10 +115,10 @@
<el-col :offset="8"> <el-col :offset="8">
<div class="other-login"> <div class="other-login">
<span @click="redirectUrl(qqLoginAuthorizeUrl)"> <span @click="redirectUrl(qqLoginAuthorizeUrl)">
<svg-icon name="loginQQ" class="other-login-icon" /> <svg-icon class="other-login-icon" name="loginQQ" />
</span> </span>
<svg-icon name="loginWx" <svg-icon class="other-login-icon"
class="other-login-icon" name="loginWx"
@click="()=>{ @click="()=>{
this.formType='login' this.formType='login'
this.loginType='wx' this.loginType='wx'
@ -136,53 +137,53 @@
<el-tab-pane label="手机号注册" name="regPhone"> <el-tab-pane label="手机号注册" name="regPhone">
<el-form ref="phoneRegForm" :model="accountForm" :rules="phoneRegRules" label-width="0px"> <el-form ref="phoneRegForm" :model="accountForm" :rules="phoneRegRules" label-width="0px">
<el-form-item label="" prop="phoneNumber"> <el-form-item label="" prop="phoneNumber">
<el-input v-model="accountForm.phoneNumber" placeholder="请输入手机号" autocomplete="off" /> <el-input v-model="accountForm.phoneNumber" autocomplete="off" placeholder="请输入手机号" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="password"> <el-form-item label="" prop="password">
<el-input v-model="accountForm.password" show-password placeholder="请输入密码" <el-input v-model="accountForm.password" autocomplete="off" placeholder="请输入密码"
autocomplete="off" show-password
/> />
</el-form-item> </el-form-item>
<el-form-item label="" prop="code"> <el-form-item label="" prop="code">
<el-input v-model="accountForm.code" class="code-input" placeholder="请输入验证码" <el-input v-model="accountForm.code" autocomplete="off" class="code-input"
autocomplete="off" placeholder="请输入验证码"
/> />
<el-button class="ml-20" :disabled="phoneValidateCodeBtn" type="primary" <el-button :disabled="phoneValidateCodeBtn" class="ml-20" type="primary"
@click="sendPhoneCodeHandle" @click="sendPhoneCodeHandle"
> >
{{ phoneValidateCodeBtnText }} {{ phoneValidateCodeBtnText }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" class="width-full" @click="phoneRegHandle">确定</el-button> <el-button class="width-full" type="primary" @click="phoneRegHandle">确定</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="邮箱注册" name="regEmail"> <el-tab-pane label="邮箱注册" name="regEmail">
<el-form ref="emailRegForm" status-icon :rules="emailRegRules" :model="accountForm" <el-form ref="emailRegForm" :model="accountForm" :rules="emailRegRules" label-width="0px"
label-width="0px" status-icon
> >
<el-form-item label="" prop="email"> <el-form-item label="" prop="email">
<el-input v-model="accountForm.email" placeholder="请输入邮箱" autocomplete="off" /> <el-input v-model="accountForm.email" autocomplete="off" placeholder="请输入邮箱" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="password"> <el-form-item label="" prop="password">
<el-input v-model="accountForm.password" show-password placeholder="请输入密码" <el-input v-model="accountForm.password" autocomplete="off" placeholder="请输入密码"
autocomplete="off" show-password
/> />
</el-form-item> </el-form-item>
<el-form-item label="" prop="code"> <el-form-item label="" prop="code">
<el-input v-model="accountForm.code" oninput="value=value.replace(/[^\d]/g,'')" <el-input v-model="accountForm.code" autocomplete="off"
class="code-input" maxlength="4" placeholder="请输入验证码" class="code-input" maxlength="4" oninput="value=value.replace(/[^\d]/g,'')"
autocomplete="off" placeholder="请输入验证码"
/> />
<el-button class="ml-20" :disabled="emailValidateCodeBtn" type="primary" <el-button :disabled="emailValidateCodeBtn" class="ml-20" type="primary"
@click="sendEmailCodeHandle" @click="sendEmailCodeHandle"
> >
{{ emailValidateCodeBtnText }} {{ emailValidateCodeBtnText }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" class="width-full" @click="emailRegHandle">确定</el-button> <el-button class="width-full" type="primary" @click="emailRegHandle">确定</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
@ -191,10 +192,10 @@
<el-link class="ml-20" @click="registerHandleClick">立即注册</el-link> <el-link class="ml-20" @click="registerHandleClick">立即注册</el-link>
<div class="other-login"> <div class="other-login">
<span @click="redirectUrl(qqLoginAuthorizeUrl)"> <span @click="redirectUrl(qqLoginAuthorizeUrl)">
<svg-icon name="loginQQ" class="other-login-icon" /> <svg-icon class="other-login-icon" name="loginQQ" />
</span> </span>
<svg-icon name="loginWx" <svg-icon class="other-login-icon"
class="other-login-icon" name="loginWx"
@click="()=>{ @click="()=>{
this.formType='login', this.formType='login',
this.loginType='wx' this.loginType='wx'
@ -292,6 +293,11 @@ export default {
qqLoginAuthorizeUrl: '' qqLoginAuthorizeUrl: ''
} }
}, },
computed: {
enableWx() {
return constants.enableWx
}
},
watch: {}, watch: {},
created() { created() {
if (constants.enableWx) { if (constants.enableWx) {
@ -303,6 +309,8 @@ export default {
this.getLoginWxQrCodeResult() this.getLoginWxQrCodeResult()
}, 5 * 1000) }, 5 * 1000)
this.getQQLoginAuthorizeUrl() this.getQQLoginAuthorizeUrl()
} else {
this.loginType = 'account'
} }
}, },
destroyed() { destroyed() {

4
src/views/form/write/index.vue

@ -40,6 +40,7 @@ import ProjectForm from '../preview/ProjectForm'
import loadWXJs from '@/utils/loadWxSdk' import loadWXJs from '@/utils/loadWxSdk'
import defaultValue from '@/utils/defaultValue' import defaultValue from '@/utils/defaultValue'
import { getQueryString} from '@/utils' import { getQueryString} from '@/utils'
import constants from '@/utils/constants'
const uaParser = require('ua-parser-js') const uaParser = require('ua-parser-js')
const ua = uaParser(navigator.userAgent) const ua = uaParser(navigator.userAgent)
@ -89,11 +90,14 @@ export default {
this.getWxAuthorizationUrl() this.getWxAuthorizationUrl()
this.queryProjectSettingStatus() this.queryProjectSettingStatus()
this.queryProjectSetting() this.queryProjectSetting()
if (constants.enableWx) {
// //
this.$api.get('/wx/jsapi/signature', {params: {url: window.location.href}}).then(res => { this.$api.get('/wx/jsapi/signature', {params: {url: window.location.href}}).then(res => {
this.wxSignature = res.data this.wxSignature = res.data
this.setWxConfig() this.setWxConfig()
}) })
}
}, },
mounted() { mounted() {
this.viewProjectHandle() this.viewProjectHandle()

1
src/views/project/template/index.vue

@ -192,6 +192,7 @@ export default {
} }
.project-template-view:hover .project-template-use-view { .project-template-view:hover .project-template-use-view {
display: block; display: block;
cursor: pointer;
} }
.project-template-use-view { .project-template-use-view {
position: absolute; position: absolute;

Loading…
Cancel
Save