From 9e862bee835f1b88bf4694ee7694b6cf99f476a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=84=9A=E9=81=93?= Date: Tue, 25 Dec 2018 17:07:46 +0800 Subject: [PATCH] remove useless util and move e2e outside --- {src/e2e => e2e}/baseLayout.e2e.js | 4 +- {src/e2e => e2e}/home.e2e.js | 0 {src/e2e => e2e}/login.e2e.js | 0 {src/e2e => e2e}/topMenu.e2e.js | 0 {src/e2e => e2e}/userLayout.e2e.js | 4 +- src/utils/Yuan.js | 33 ------ src/utils/utils.js | 179 +---------------------------- src/utils/utils.test.js | 26 +---- 8 files changed, 8 insertions(+), 238 deletions(-) rename {src/e2e => e2e}/baseLayout.e2e.js (91%) rename {src/e2e => e2e}/home.e2e.js (100%) rename {src/e2e => e2e}/login.e2e.js (100%) rename {src/e2e => e2e}/topMenu.e2e.js (100%) rename {src/e2e => e2e}/userLayout.e2e.js (90%) delete mode 100644 src/utils/Yuan.js diff --git a/src/e2e/baseLayout.e2e.js b/e2e/baseLayout.e2e.js similarity index 91% rename from src/e2e/baseLayout.e2e.js rename to e2e/baseLayout.e2e.js index 74938719..456861f9 100644 --- a/src/e2e/baseLayout.e2e.js +++ b/e2e/baseLayout.e2e.js @@ -1,4 +1,6 @@ -import RouterConfig from '../../config/router.config'; +import config from '../config/config'; + +const RouterConfig = config.routes; const BASE_URL = `http://localhost:${process.env.PORT || 8000}`; diff --git a/src/e2e/home.e2e.js b/e2e/home.e2e.js similarity index 100% rename from src/e2e/home.e2e.js rename to e2e/home.e2e.js diff --git a/src/e2e/login.e2e.js b/e2e/login.e2e.js similarity index 100% rename from src/e2e/login.e2e.js rename to e2e/login.e2e.js diff --git a/src/e2e/topMenu.e2e.js b/e2e/topMenu.e2e.js similarity index 100% rename from src/e2e/topMenu.e2e.js rename to e2e/topMenu.e2e.js diff --git a/src/e2e/userLayout.e2e.js b/e2e/userLayout.e2e.js similarity index 90% rename from src/e2e/userLayout.e2e.js rename to e2e/userLayout.e2e.js index a2edfc7b..14b60416 100644 --- a/src/e2e/userLayout.e2e.js +++ b/e2e/userLayout.e2e.js @@ -1,4 +1,6 @@ -import RouterConfig from '../../config/router.config'; +import config from '../config/config'; + +const RouterConfig = config.routes; const BASE_URL = `http://localhost:${process.env.PORT || 8000}`; diff --git a/src/utils/Yuan.js b/src/utils/Yuan.js deleted file mode 100644 index 26e5e90e..00000000 --- a/src/utils/Yuan.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import { Charts } from 'ant-design-pro'; - -const { yuan } = Charts; -/** - * 减少使用 dangerouslySetInnerHTML - */ -export default class Yuan extends React.PureComponent { - componentDidMount() { - this.rendertoHtml(); - } - - componentDidUpdate() { - this.rendertoHtml(); - } - - rendertoHtml = () => { - const { children } = this.props; - if (this.main) { - this.main.innerHTML = yuan(children); - } - }; - - render() { - return ( - { - this.main = ref; - }} - /> - ); - } -} diff --git a/src/utils/utils.js b/src/utils/utils.js index d8d1739f..c4564bbf 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -1,183 +1,6 @@ -import moment from 'moment'; -import React from 'react'; -import nzh from 'nzh/cn'; -import { parse, stringify } from 'qs'; - -export function fixedZero(val) { - return val * 1 < 10 ? `0${val}` : val; -} - -export function getTimeDistance(type) { - const now = new Date(); - const oneDay = 1000 * 60 * 60 * 24; - - if (type === 'today') { - now.setHours(0); - now.setMinutes(0); - now.setSeconds(0); - return [moment(now), moment(now.getTime() + (oneDay - 1000))]; - } - - if (type === 'week') { - let day = now.getDay(); - now.setHours(0); - now.setMinutes(0); - now.setSeconds(0); - - if (day === 0) { - day = 6; - } else { - day -= 1; - } - - const beginTime = now.getTime() - day * oneDay; - - return [moment(beginTime), moment(beginTime + (7 * oneDay - 1000))]; - } - - if (type === 'month') { - const year = now.getFullYear(); - const month = now.getMonth(); - const nextDate = moment(now).add(1, 'months'); - const nextYear = nextDate.year(); - const nextMonth = nextDate.month(); - - return [ - moment(`${year}-${fixedZero(month + 1)}-01 00:00:00`), - moment(moment(`${nextYear}-${fixedZero(nextMonth + 1)}-01 00:00:00`).valueOf() - 1000), - ]; - } - - const year = now.getFullYear(); - return [moment(`${year}-01-01 00:00:00`), moment(`${year}-12-31 23:59:59`)]; -} - -export function getPlainNode(nodeList, parentPath = '') { - const arr = []; - nodeList.forEach(node => { - const item = node; - item.path = `${parentPath}/${item.path || ''}`.replace(/\/+/g, '/'); - item.exact = true; - if (item.children && !item.component) { - arr.push(...getPlainNode(item.children, item.path)); - } else { - if (item.children && item.component) { - item.exact = false; - } - arr.push(item); - } - }); - return arr; -} - -export function digitUppercase(n) { - return nzh.toMoney(n); -} - -function getRelation(str1, str2) { - if (str1 === str2) { - console.warn('Two path are equal!'); // eslint-disable-line - } - const arr1 = str1.split('/'); - const arr2 = str2.split('/'); - if (arr2.every((item, index) => item === arr1[index])) { - return 1; - } - if (arr1.every((item, index) => item === arr2[index])) { - return 2; - } - return 3; -} - -function getRenderArr(routes) { - let renderArr = []; - renderArr.push(routes[0]); - for (let i = 1; i < routes.length; i += 1) { - // 去重 - renderArr = renderArr.filter(item => getRelation(item, routes[i]) !== 1); - // 是否包含 - const isAdd = renderArr.every(item => getRelation(item, routes[i]) === 3); - if (isAdd) { - renderArr.push(routes[i]); - } - } - return renderArr; -} - -/** - * Get router routing configuration - * { path:{name,...param}}=>Array<{name,path ...param}> - * @param {string} path - * @param {routerData} routerData - */ -export function getRoutes(path, routerData) { - let routes = Object.keys(routerData).filter( - routePath => routePath.indexOf(path) === 0 && routePath !== path - ); - // Replace path to '' eg. path='user' /user/name => name - routes = routes.map(item => item.replace(path, '')); - // Get the route to be rendered to remove the deep rendering - const renderArr = getRenderArr(routes); - // Conversion and stitching parameters - const renderRoutes = renderArr.map(item => { - const exact = !routes.some(route => route !== item && getRelation(route, item) === 1); - return { - exact, - ...routerData[`${path}${item}`], - key: `${path}${item}`, - path: `${path}${item}`, - }; - }); - return renderRoutes; -} - -export function getPageQuery() { - return parse(window.location.href.split('?')[1]); -} - -export function getQueryPath(path = '', query = {}) { - const search = stringify(query); - if (search.length) { - return `${path}?${search}`; - } - return path; -} - -/* eslint no-useless-escape:0 */ +/* eslint no-useless-escape:0 import/prefer-default-export:0 */ const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; export function isUrl(path) { return reg.test(path); } - -export function formatWan(val) { - const v = val * 1; - if (!v || Number.isNaN(v)) return ''; - - let result = val; - if (val > 10000) { - result = Math.floor(val / 10000); - result = ( - - {result} - - 万 - - - ); - } - return result; -} - -// 给官方演示站点用,用于关闭真实开发环境不需要使用的特性 -export function isAntdPro() { - return window.location.hostname === 'preview.pro.ant.design'; -} diff --git a/src/utils/utils.test.js b/src/utils/utils.test.js index c97d3254..d0053f0f 100644 --- a/src/utils/utils.test.js +++ b/src/utils/utils.test.js @@ -1,28 +1,4 @@ -import { fixedZero, isUrl } from './utils'; - -describe('fixedZero tests', () => { - it('should not pad large numbers', () => { - expect(fixedZero(10)).toEqual(10); - expect(fixedZero(11)).toEqual(11); - expect(fixedZero(15)).toEqual(15); - expect(fixedZero(20)).toEqual(20); - expect(fixedZero(100)).toEqual(100); - expect(fixedZero(1000)).toEqual(1000); - }); - - it('should pad single digit numbers and return them as string', () => { - expect(fixedZero(0)).toEqual('00'); - expect(fixedZero(1)).toEqual('01'); - expect(fixedZero(2)).toEqual('02'); - expect(fixedZero(3)).toEqual('03'); - expect(fixedZero(4)).toEqual('04'); - expect(fixedZero(5)).toEqual('05'); - expect(fixedZero(6)).toEqual('06'); - expect(fixedZero(7)).toEqual('07'); - expect(fixedZero(8)).toEqual('08'); - expect(fixedZero(9)).toEqual('09'); - }); -}); +import { isUrl } from './utils'; describe('isUrl tests', () => { it('should return false for invalid and corner case inputs', () => { -- GitLab