diff --git a/config/index.js b/config/index.js index a222aa5..a1c2365 100644 --- a/config/index.js +++ b/config/index.js @@ -13,13 +13,13 @@ module.exports = { assetsPublicPath: '/', proxyTable: { '/lz_management': { - target: 'http://localhost:8080', + target: 'http://192.168.43.94:8080', changeOrigin: true } }, // 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 autoOpenBrowser: true, errorOverlay: true, diff --git a/package-lock.json b/package-lock.json index 27b1e3a..5557794 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3657,6 +3657,14 @@ "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": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -15476,6 +15484,11 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "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": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -18493,6 +18506,11 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "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": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", diff --git a/package.json b/package.json index e799d67..4190202 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "axios": "^0.19.2", "babel-plugin-component": "0.10.1", "babel-polyfill": "6.26.0", + "dingtalk-jsapi": "^2.12.0", "echarts": "^4.7.0", "element-ui": "^2.13.1", "gulp": "3.9.1", @@ -34,6 +35,7 @@ "sass-loader": "6.0.6", "svg-sprite-loader": "3.7.3", "v-charts": "^1.19.0", + "vconsole": "^3.3.4", "vue": "2.5.16", "vue-cookie": "1.1.4", "vue-router": "3.0.1", diff --git a/src/api/api_staff.js b/src/api/api_staff.js index 99bb408..4aeeb7e 100644 --- a/src/api/api_staff.js +++ b/src/api/api_staff.js @@ -32,3 +32,13 @@ export const apiUploadFile = params => { export const apiExportFile = 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 }) +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 30ca83c..48966c5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -9,7 +9,8 @@ import Router from 'vue-router' import { apiGetMenuNav } from '@/api/api_menu' import { isURL } from '@/utils/validate' import { clearLoginInfo } from '@/utils' - +import VConsole from 'vconsole' +let vConsole = new VConsole()// eslint-disable-line no-unused-vars Vue.use(Router) // 开发环境不使用懒加载, 因为懒加载页面太多的话会造成webpack热更新太慢, 所以只有生产环境使用懒加载 @@ -17,6 +18,7 @@ const _import = require('./import-' + process.env.NODE_ENV) // 全局路由(无需嵌套上左右整体布局) const globalRoutes = [ + { path: '/dingtalkluck', component: _import('common/dingtalkluck'), name: 'dingtalkluck', meta: { title: '钉钉抽奖登记' } }, { path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } }, { path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } } ] @@ -48,10 +50,16 @@ const mainRoutes = { beforeEnter (to, from, next) { let token = Vue.cookie.get('token') if (!token || !/\S/.test(token)) { - clearLoginInfo() - next({ name: 'login' }) + if (isDingtalk()) { + 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) => { // 添加动态(菜单)路由 // 1. 已经添加 or 全局路由, 直接访问 - // 2. 获取菜单列表, 添加并保存本地存储 + // 2. 获取菜单列表, 添加并保存本地存储 if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') { next() } else { diff --git a/src/views/common/dingtalkluck.vue b/src/views/common/dingtalkluck.vue new file mode 100644 index 0000000..edaf7e2 --- /dev/null +++ b/src/views/common/dingtalkluck.vue @@ -0,0 +1,92 @@ + + + + diff --git a/src/views/common/login.vue b/src/views/common/login.vue index a2fa478..cb48bce 100644 --- a/src/views/common/login.vue +++ b/src/views/common/login.vue @@ -65,7 +65,9 @@