Commit 2bdbe81c authored by 刘勇's avatar 刘勇

init

parents
Pipeline #447 failed with stages
> 1%
last 2 versions
not dead
module.exports = {
root: true,
env: {
node: true,
},
extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"],
parserOptions: {
parser: "babel-eslint",
},
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
},
};
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
app
app.zip
api/config.js
.vscode
.env.development
debug.log
jsconfig.json
# excel-analysis
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};
This diff is collapsed.
{
"name": "excel-analysis",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "npm run dev",
"dev": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.6.5",
"element-ui": "^2.15.3",
"stylus-loader": "^3.0.2",
"vue": "^2.6.11",
"vue-router": "^3.2.0",
"vuex": "^3.4.0",
"xlsx": "^0.17.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"css-loader": "^5.2.6",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2",
"prettier": "^2.2.1",
"style-loader": "^3.0.0",
"stylus": "^0.54.8",
"vue-template-compiler": "^2.6.11"
}
}
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<template>
<div id="app">
<router-view />
</div>
</template>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
font-size: 16px;
}
</style>
import consoleDev from '@/utils/console-dev';
const defaultConfig = {
devTime: '2021.6.29', // 开发时间
devVersion: `1.0`, // 开发版本
devBranch: 'master', // 开发分支
}
consoleDev(defaultConfig.devTime, defaultConfig.devVersion, defaultConfig.devBranch)
\ No newline at end of file
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false;
new Vue({
router,
store,
render: (h) => h(App),
}).$mount("#app");
import Vue from "vue";
import VueRouter from "vue-router";
import globalConfig from '@/config/global-config'
Vue.use(VueRouter);
const routes = [
{
path: '/',
redirect: '/excel',
},
{
path: "/excel",
name: "Excel",
component: () => import('@/views/excel/excel.vue')
},
];
const router = new VueRouter({
routes,
});
export default router;
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {},
});
import util from './util';
const consoleConfig = [
{
key: "dev", // 注册key值
label: "devLog", // 标识
labelColor: "#00f", // 标识颜色
logColor: "#666", // 日志颜色
},
]
const dateColor = '#f0f';
const consoleDev = (time, version, branch) => {
const typeofBase = data => typeof data == 'string' || typeof data == 'number';
console.branch = () => {
let arr = [`%c**** branch => ${branch} ****`,`color:${dateColor}`];
console.log(...arr)
};
console.date = () => {
let arr = [`%c**** devTime => ${time} v${version} ****`,`color:${dateColor}`];
console.log(...arr)
};
console.buildtime = () => {
let meta = document.querySelector('meta[name="buildtime"]');
let buildTime = meta ? meta.getAttribute('date') : '';
let arr = [`%c**** buildTime => ${buildTime} ****`,`color:${dateColor}`];
console.log(...arr)
}
console.detail = () => {
console.branch();
console.date();
console.buildtime();
}
console.json = (...rest) => console.dev(...rest.map(item => typeofBase(item) ? item : util.deepCopy2(item)));
// 自动复制
console.copy = str => {
if(str) return util.copy(str);
// copy串联方法
let copyEvent = {
href: (token=true) => { // 复制地址 参数为是否带token 默认为true
let href = location.href;
let query = '';
if(token){
let hasToken = href.indexOf('token' > -1);
if(!hasToken){
let hasQuery = href.indexOf('?') > -1;
query = hasQuery ? '&' : '?';
query = query + 'token=' + store.state.login.token
}
}
let result = location.href + query;
return util.copy(result);
},
local: (key) => { // 复制本地存储项
let result = window.localStorage.getItem(key);
return util.copy(result);
},
session: (key) => { // 复制本地存储项
let result = window.sessionStorage.getItem(key);
return util.copy(result);
},
}
return copyEvent;
};
const generateConsole = ({key, label, labelColor, logColor}) => {
label ? null : label = defaultConfig.label;
labelColor ? null : labelColor = defaultConfig.labelColor;
logColor ? null : logColor = defaultConfig.logColor;
console[key] = (...rest) => {
if(!rest.length){
console.detail();
}else{
let argStr = [];
let argOther = [];
rest.forEach(item => {
item == undefined ? item = 'undefined' : null;
return typeofBase(item)
? argStr.push(item)
: argOther.push(item);
});
let join = argStr.join(' ')
let params = [];
if(join){
params.push(`%c${label} => %c${join}`);
params.push(`color:${labelColor}`);
params.push(`color:${logColor}`);
}else{
params.push(`%c${label} =>`);
params.push(`color:${labelColor}`);
}
params = params.concat(argOther);
params.length && console.log(...params);
}
}
}
consoleConfig.map(conf => generateConsole(conf))
}
export default consoleDev;
export default {
copy(str){
var oInput = document.createElement('input');
oInput.value = str;
document.body.appendChild(oInput);
oInput.select()
document.execCommand("Copy");
document.body.removeChild(oInput)
return str;
},
deepCopy: (p, c) => {
c = c
? c
: Array.isArray(p)
? [] : {};
for (let i in p) {
if (typeof p[i] === 'object' && p[i] != null) {
c[i] = (p[i] instanceof Array) ? [] : {}
util.deepCopy(p[i], c[i])
} else {
c[i] = p[i] === null ? '' : p[i]
}
}
return c
},
deepCopy2: item => JSON.parse(JSON.stringify(item)),
}
\ No newline at end of file
This diff is collapsed.
const dev = process.env.NODE_ENV !== 'production';
module.exports = {
publicPath: dev ? './' : '/',
devServer: {
port: 8091,
host: 'localhost',
https: false,
open: true,
// proxy: {
// target: '',
// changeOrigin: true,
// pathRewrite: {
// '^/': ''
// },
// },
},
configureWebpack: {
name: 'Excel数据分析',
module: {
rules: [
// {
// test: '\.styl$',
// loader: 'style-loader!css-loader!stylus-loader'
// }
]
},
},
chainWebpack: config => {
config
.plugin('html')
.tap(args => {
args[0].title= 'Excel数据分析'
return args
})
},
lintOnSave:false,
productionSourceMap: false,
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment