refine settings
This commit is contained in:
parent
e855f6a121
commit
b0e3dc8617
|
@ -1,19 +0,0 @@
|
||||||
import Vue from 'vue'
|
|
||||||
import store from './store'
|
|
||||||
|
|
||||||
// you can set only in production env show the error-log
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
Vue.config.errorHandler = function(err, vm, info, a) {
|
|
||||||
// Don't ask me why I use Vue.nextTick, it just a hack.
|
|
||||||
// detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500
|
|
||||||
Vue.nextTick(() => {
|
|
||||||
store.dispatch('addErrorLog', {
|
|
||||||
err,
|
|
||||||
vm,
|
|
||||||
info,
|
|
||||||
url: window.location.href
|
|
||||||
})
|
|
||||||
console.error(err, info)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,8 +15,8 @@ import router from './router'
|
||||||
|
|
||||||
import i18n from './lang' // Internationalization
|
import i18n from './lang' // Internationalization
|
||||||
import './icons' // icon
|
import './icons' // icon
|
||||||
import './errorLog' // error log
|
|
||||||
import './permission' // permission control
|
import './permission' // permission control
|
||||||
|
import './utils/errorLog' // error log
|
||||||
|
|
||||||
import * as filters from './filters' // global filters
|
import * as filters from './filters' // global filters
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
export default {
|
export default {
|
||||||
|
title: 'vue-element-admin',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {boolean} true | false
|
* @type {boolean} true | false
|
||||||
|
@ -16,7 +17,7 @@ export default {
|
||||||
* @type {string | array} 'production' | ['production','development']
|
* @type {string | array} 'production' | ['production','development']
|
||||||
* @description Need show err logs component.
|
* @description Need show err logs component.
|
||||||
* The default is only used in the production env
|
* The default is only used in the production env
|
||||||
* If you want to use it in dev, you can pass ['production','development']
|
* If you want to also use it in dev, you can pass ['production','development']
|
||||||
*/
|
*/
|
||||||
errorLog: 'production'
|
errorLog: 'production'
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
import Vue from 'vue'
|
||||||
|
import store from '@/store'
|
||||||
|
import { isString, isArray } from '@/utils/validate'
|
||||||
|
import settings from '@/settings'
|
||||||
|
|
||||||
|
// you can set in settings.js
|
||||||
|
// errorLog:'production' | ['production','development']
|
||||||
|
const { errorLog: needErrorLog } = settings
|
||||||
|
|
||||||
|
function checkNeed(arg) {
|
||||||
|
const env = process.env.NODE_ENV
|
||||||
|
if (isString(needErrorLog)) {
|
||||||
|
return env === needErrorLog
|
||||||
|
}
|
||||||
|
if (isArray(needErrorLog)) {
|
||||||
|
return needErrorLog.includes(env)
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkNeed()) {
|
||||||
|
Vue.config.errorHandler = function(err, vm, info, a) {
|
||||||
|
// Don't ask me why I use Vue.nextTick, it just a hack.
|
||||||
|
// detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500
|
||||||
|
Vue.nextTick(() => {
|
||||||
|
store.dispatch('addErrorLog', {
|
||||||
|
err,
|
||||||
|
vm,
|
||||||
|
info,
|
||||||
|
url: window.location.href
|
||||||
|
})
|
||||||
|
console.error(err, info)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,36 +11,41 @@ export function validUsername(str) {
|
||||||
return valid_map.indexOf(str.trim()) >= 0
|
return valid_map.indexOf(str.trim()) >= 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 合法uri*/
|
|
||||||
export function validURL(url) {
|
export function validURL(url) {
|
||||||
const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
|
const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
|
||||||
return reg.test(url)
|
return reg.test(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 小写字母*/
|
|
||||||
export function validLowerCase(str) {
|
export function validLowerCase(str) {
|
||||||
const reg = /^[a-z]+$/
|
const reg = /^[a-z]+$/
|
||||||
return reg.test(str)
|
return reg.test(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 大写字母*/
|
|
||||||
export function validUpperCase(str) {
|
export function validUpperCase(str) {
|
||||||
const reg = /^[A-Z]+$/
|
const reg = /^[A-Z]+$/
|
||||||
return reg.test(str)
|
return reg.test(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 大小写字母*/
|
|
||||||
export function validAlphabets(str) {
|
export function validAlphabets(str) {
|
||||||
const reg = /^[A-Za-z]+$/
|
const reg = /^[A-Za-z]+$/
|
||||||
return reg.test(str)
|
return reg.test(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* validate email
|
|
||||||
* @param email
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
export function validEmail(email) {
|
export function validEmail(email) {
|
||||||
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
||||||
return re.test(email)
|
return reg.test(email)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isString(str) {
|
||||||
|
if (typeof str === 'string' || str instanceof String) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isArray(arg) {
|
||||||
|
if (typeof Array.isArray === 'undefined') {
|
||||||
|
return Object.prototype.toString.call(arg) === '[object Array]'
|
||||||
|
}
|
||||||
|
return Array.isArray(arg)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
const settings = require('./src/settings.js')
|
||||||
|
const { name } = settings
|
||||||
|
|
||||||
function resolve(dir) {
|
function resolve(dir) {
|
||||||
return path.join(__dirname, dir)
|
return path.join(__dirname, dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: change to Settings
|
|
||||||
const port = 9527
|
|
||||||
const name = 'vue-element-admin'
|
|
||||||
|
|
||||||
// Explanation of each configuration item You can find it in https://cli.vuejs.org/config/
|
// Explanation of each configuration item You can find it in https://cli.vuejs.org/config/
|
||||||
module.exports = {
|
module.exports = {
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +23,7 @@ module.exports = {
|
||||||
lintOnSave: process.env.NODE_ENV === 'development' ? 'error' : false,
|
lintOnSave: process.env.NODE_ENV === 'development' ? 'error' : false,
|
||||||
productionSourceMap: false,
|
productionSourceMap: false,
|
||||||
devServer: {
|
devServer: {
|
||||||
port: port,
|
port: 9527,
|
||||||
open: true,
|
open: true,
|
||||||
overlay: {
|
overlay: {
|
||||||
warnings: false,
|
warnings: false,
|
||||||
|
|
Loading…
Reference in New Issue