t push -u oMerge branch 'version_1.0' of http://gitlab.ldxinyong.com/enterpriseManagement/lz_management_vue into version_1.0
This commit is contained in:
commit
6ec4a4f444
@ -13,13 +13,13 @@ module.exports = {
|
|||||||
assetsPublicPath: '/',
|
assetsPublicPath: '/',
|
||||||
proxyTable: {
|
proxyTable: {
|
||||||
'/lz_management': {
|
'/lz_management': {
|
||||||
target: 'http://localhost:8080',
|
target: 'http://192.168.43.94:8080',
|
||||||
changeOrigin: true
|
changeOrigin: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Various Dev Server settings
|
// Various Dev Server settings
|
||||||
host: IP, // can be overwritten by process.env.HOST
|
host: '192.168.43.94', // can be overwritten by process.env.HOST
|
||||||
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||||
autoOpenBrowser: true,
|
autoOpenBrowser: true,
|
||||||
errorOverlay: true,
|
errorOverlay: true,
|
||||||
|
|||||||
18
package-lock.json
generated
18
package-lock.json
generated
@ -3657,6 +3657,14 @@
|
|||||||
"randombytes": "^2.0.0"
|
"randombytes": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dingtalk-jsapi": {
|
||||||
|
"version": "2.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dingtalk-jsapi/-/dingtalk-jsapi-2.12.0.tgz",
|
||||||
|
"integrity": "sha512-hpktx8R0bE7/XEarV47RhR89o2R9m5nKnm6gB27HKNzZaLyRenzyzQNCBR5KeJ/qqbRsPM/U8mZmUla7/bI5WQ==",
|
||||||
|
"requires": {
|
||||||
|
"promise-polyfill": "^7.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dns-equal": {
|
"dns-equal": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
|
||||||
@ -15476,6 +15484,11 @@
|
|||||||
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
|
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"promise-polyfill": {
|
||||||
|
"version": "7.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz",
|
||||||
|
"integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ=="
|
||||||
|
},
|
||||||
"proto-list": {
|
"proto-list": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
|
||||||
@ -18493,6 +18506,11 @@
|
|||||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"vconsole": {
|
||||||
|
"version": "3.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.3.4.tgz",
|
||||||
|
"integrity": "sha512-9yihsic96NPoMLQx/lCQwH9d89H0bbMW3LZPzo/t4yGQcS1X+vTCe9OHm1XSH7WNxzGDmcSwBiKLsFGwvJpQBg=="
|
||||||
|
},
|
||||||
"vendors": {
|
"vendors": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
"axios": "^0.19.2",
|
"axios": "^0.19.2",
|
||||||
"babel-plugin-component": "0.10.1",
|
"babel-plugin-component": "0.10.1",
|
||||||
"babel-polyfill": "6.26.0",
|
"babel-polyfill": "6.26.0",
|
||||||
|
"dingtalk-jsapi": "^2.12.0",
|
||||||
"echarts": "^4.7.0",
|
"echarts": "^4.7.0",
|
||||||
"element-ui": "^2.13.1",
|
"element-ui": "^2.13.1",
|
||||||
"gulp": "3.9.1",
|
"gulp": "3.9.1",
|
||||||
@ -34,6 +35,7 @@
|
|||||||
"sass-loader": "6.0.6",
|
"sass-loader": "6.0.6",
|
||||||
"svg-sprite-loader": "3.7.3",
|
"svg-sprite-loader": "3.7.3",
|
||||||
"v-charts": "^1.19.0",
|
"v-charts": "^1.19.0",
|
||||||
|
"vconsole": "^3.3.4",
|
||||||
"vue": "2.5.16",
|
"vue": "2.5.16",
|
||||||
"vue-cookie": "1.1.4",
|
"vue-cookie": "1.1.4",
|
||||||
"vue-router": "3.0.1",
|
"vue-router": "3.0.1",
|
||||||
|
|||||||
@ -32,3 +32,13 @@ export const apiUploadFile = params => {
|
|||||||
export const apiExportFile = params => {
|
export const apiExportFile = params => {
|
||||||
return http({ url: '/lz_management/staff/info/downloadTemplate', method: 'post', responseType: 'blob', data: params })
|
return http({ url: '/lz_management/staff/info/downloadTemplate', method: 'post', responseType: 'blob', data: params })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 钉钉免登录
|
||||||
|
export const apiDingtalkLogin = data => {
|
||||||
|
return http({ url: '/lz_management/dtlg/login', method: 'post', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 钉钉抽奖登记
|
||||||
|
export const apiDingtalkLuck = data => {
|
||||||
|
return http({ url: '/lz_management/dtlg/luck', method: 'post', data })
|
||||||
|
}
|
||||||
@ -9,7 +9,8 @@ import Router from 'vue-router'
|
|||||||
import { apiGetMenuNav } from '@/api/api_menu'
|
import { apiGetMenuNav } from '@/api/api_menu'
|
||||||
import { isURL } from '@/utils/validate'
|
import { isURL } from '@/utils/validate'
|
||||||
import { clearLoginInfo } from '@/utils'
|
import { clearLoginInfo } from '@/utils'
|
||||||
|
import VConsole from 'vconsole'
|
||||||
|
let vConsole = new VConsole()// eslint-disable-line no-unused-vars
|
||||||
Vue.use(Router)
|
Vue.use(Router)
|
||||||
|
|
||||||
// 开发环境不使用懒加载, 因为懒加载页面太多的话会造成webpack热更新太慢, 所以只有生产环境使用懒加载
|
// 开发环境不使用懒加载, 因为懒加载页面太多的话会造成webpack热更新太慢, 所以只有生产环境使用懒加载
|
||||||
@ -17,6 +18,7 @@ const _import = require('./import-' + process.env.NODE_ENV)
|
|||||||
|
|
||||||
// 全局路由(无需嵌套上左右整体布局)
|
// 全局路由(无需嵌套上左右整体布局)
|
||||||
const globalRoutes = [
|
const globalRoutes = [
|
||||||
|
{ path: '/dingtalkluck', component: _import('common/dingtalkluck'), name: 'dingtalkluck', meta: { title: '钉钉抽奖登记' } },
|
||||||
{ path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } },
|
{ path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } },
|
||||||
{ path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } }
|
{ path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } }
|
||||||
]
|
]
|
||||||
@ -48,10 +50,16 @@ const mainRoutes = {
|
|||||||
beforeEnter (to, from, next) {
|
beforeEnter (to, from, next) {
|
||||||
let token = Vue.cookie.get('token')
|
let token = Vue.cookie.get('token')
|
||||||
if (!token || !/\S/.test(token)) {
|
if (!token || !/\S/.test(token)) {
|
||||||
clearLoginInfo()
|
if (isDingtalk()) {
|
||||||
next({ name: 'login' })
|
console.log('钉钉免登测试')
|
||||||
|
next({ name: 'dingtalklogin' })
|
||||||
|
} else {
|
||||||
|
clearLoginInfo()
|
||||||
|
next({ name: 'login' })
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
}
|
}
|
||||||
next()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +74,7 @@ const router = new Router({
|
|||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
// 添加动态(菜单)路由
|
// 添加动态(菜单)路由
|
||||||
// 1. 已经添加 or 全局路由, 直接访问
|
// 1. 已经添加 or 全局路由, 直接访问
|
||||||
// 2. 获取菜单列表, 添加并保存本地存储
|
// 2. 获取菜单列表, 添加并保存本地存储
|
||||||
if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') {
|
if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') {
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
92
src/views/common/dingtalkluck.vue
Normal file
92
src/views/common/dingtalkluck.vue
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h2 class="brand-info__text">{{dataForm.verify}}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { apiDingtalkLuck } from '@/api/api_staff'
|
||||||
|
import * as dd from 'dingtalk-jsapi'
|
||||||
|
var dingCode
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
isloading: false,
|
||||||
|
dataForm: {
|
||||||
|
userName: '',
|
||||||
|
password: '',
|
||||||
|
uuid: '',
|
||||||
|
// captcha: ''
|
||||||
|
verify: '霖梓七夕抽奖登记中...'
|
||||||
|
},
|
||||||
|
dataRule: {
|
||||||
|
userName: [{ required: true, message: '帐号不能为空', trigger: 'blur' }],
|
||||||
|
password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
|
||||||
|
// captcha: [{ required: true, message: '验证码不能为空', trigger: 'blur' }]
|
||||||
|
verify: [{ required: true, message: '验证码不能为空', trigger: 'blur' }]
|
||||||
|
},
|
||||||
|
// captchaPath: '' // 图像验证码请求地址
|
||||||
|
time: 0,
|
||||||
|
timer: true,
|
||||||
|
hasSendCode: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
// this.handleGetImgCaptcha()
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
if(this.isDingtalk()){
|
||||||
|
console.log('走钉钉免登流程')
|
||||||
|
this.dingtalkLogin()
|
||||||
|
setTimeout(() =>{
|
||||||
|
this.loginWtihCode(dingCode)
|
||||||
|
}, 3000)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
isDingtalk () {
|
||||||
|
if (/(DingTalk)/i.test(navigator.userAgent)) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dingtalkLogin () {
|
||||||
|
dd.runtime.permission.requestAuthCode({
|
||||||
|
corpId: 'ding02853c26606ba7d4a1320dcb25e91351',
|
||||||
|
onSuccess: function (result) {
|
||||||
|
dingCode = result
|
||||||
|
},
|
||||||
|
onFail: function (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
loginWtihCode (result) {
|
||||||
|
console.log('免登流程')
|
||||||
|
console.log(result)
|
||||||
|
apiDingtalkLuck(result).then(res => {
|
||||||
|
console.log('获取登录结果')
|
||||||
|
console.log(res)
|
||||||
|
if (res && res.code === 0) {
|
||||||
|
console.log('获取token')
|
||||||
|
this.dataForm.verify='已经登记,祝你好运!如若中将行政将会通知'
|
||||||
|
|
||||||
|
console.log('跳转')
|
||||||
|
} else {
|
||||||
|
this.dataForm.verify='无法登记。' + res.msg
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@ -65,7 +65,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getUUID } from '@/utils'
|
import { getUUID } from '@/utils'
|
||||||
import { apiLogin, apiSsysSendSMS } from '@/api/api_sys'
|
import { apiLogin, apiSsysSendSMS } from '@/api/api_sys'
|
||||||
|
import { apiDingtalkLogin } from '@/api/api_staff'
|
||||||
|
import * as dd from 'dingtalk-jsapi'
|
||||||
|
var dingCode = ''
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -92,6 +94,16 @@ export default {
|
|||||||
created () {
|
created () {
|
||||||
// this.handleGetImgCaptcha()
|
// this.handleGetImgCaptcha()
|
||||||
},
|
},
|
||||||
|
mounted () {
|
||||||
|
if(this.isDingtalk()){
|
||||||
|
console.log('走钉钉免登流程')
|
||||||
|
this.dingtalkLogin()
|
||||||
|
setTimeout(() =>{
|
||||||
|
this.loginWtihCode(dingCode)
|
||||||
|
}, 3000)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// // 获取图像验证码
|
// // 获取图像验证码
|
||||||
// handleGetImgCaptcha () {
|
// handleGetImgCaptcha () {
|
||||||
@ -107,8 +119,11 @@ export default {
|
|||||||
apiLogin(param).then(res => {
|
apiLogin(param).then(res => {
|
||||||
this.isloading = false
|
this.isloading = false
|
||||||
if (res && res.code === 0) {
|
if (res && res.code === 0) {
|
||||||
|
console.log('获取token')
|
||||||
this.$cookie.set('token', res.token)
|
this.$cookie.set('token', res.token)
|
||||||
|
console.log('保存token')
|
||||||
this.$router.replace({ name: 'home' })
|
this.$router.replace({ name: 'home' })
|
||||||
|
console.log('跳转')
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.msg)
|
this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
@ -118,6 +133,44 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
isDingtalk () {
|
||||||
|
if (/(DingTalk)/i.test(navigator.userAgent)) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dingtalkLogin () {
|
||||||
|
dd.runtime.permission.requestAuthCode({
|
||||||
|
corpId: 'ding02853c26606ba7d4a1320dcb25e91351',
|
||||||
|
onSuccess: function (result) {
|
||||||
|
dingCode = result
|
||||||
|
},
|
||||||
|
onFail: function (err) {
|
||||||
|
this.$router.replace({ name: 'login' })
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
loginWtihCode (result) {
|
||||||
|
console.log('免登流程')
|
||||||
|
console.log(result)
|
||||||
|
apiDingtalkLogin(result).then(res => {
|
||||||
|
console.log('获取登录结果')
|
||||||
|
console.log(res)
|
||||||
|
if (res && res.code === 0) {
|
||||||
|
console.log('获取token')
|
||||||
|
|
||||||
|
this.$cookie.set('token', res.token)
|
||||||
|
console.log('保存token')
|
||||||
|
this.$router.replace({ name: 'home' })
|
||||||
|
console.log('跳转')
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
this.$router.replace({ name: 'login' })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
// 获取验证码
|
// 获取验证码
|
||||||
handleVerify () {
|
handleVerify () {
|
||||||
this.dataForm.uuid = getUUID()
|
this.dataForm.uuid = getUUID()
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
import MainSidebar from './main-sidebar'
|
import MainSidebar from './main-sidebar'
|
||||||
import MainContent from './main-content'
|
import MainContent from './main-content'
|
||||||
import { apiGetUserInfo } from '@/api/api_sys'
|
import { apiGetUserInfo } from '@/api/api_sys'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
provide () {
|
provide () {
|
||||||
return {
|
return {
|
||||||
@ -63,7 +63,9 @@
|
|||||||
this.handleGetUserInfo()
|
this.handleGetUserInfo()
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.resetDocumentClientHeight()
|
|
||||||
|
this.resetDocumentClientHeight()
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 重置窗口可视高度
|
// 重置窗口可视高度
|
||||||
@ -87,6 +89,8 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user