| module.exports = { | module.exports = { | ||||
| root: true, | |||||
| env: { | |||||
| node: true | |||||
| }, | |||||
| extends: ['plugin:vue/essential', 'eslint:recommended'], | |||||
| parserOptions: { | |||||
| parser: 'babel-eslint' | |||||
| }, | |||||
| rules: { | |||||
| 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | |||||
| 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | |||||
| }, | |||||
| //过滤掉layui检测 | |||||
| globals: { | |||||
| layui: true | |||||
| }, | |||||
| }; | |||||
| root: true, | |||||
| env: { | |||||
| node: true, | |||||
| }, | |||||
| extends: ["plugin:vue/essential", "eslint:recommended"], | |||||
| parserOptions: { | |||||
| parser: "babel-eslint", | |||||
| }, | |||||
| rules: { | |||||
| "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", | |||||
| "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", | |||||
| }, | |||||
| }; |
| "test": "vue-cli-service build --mode prod --report" | "test": "vue-cli-service build --mode prod --report" | ||||
| }, | }, | ||||
| "dependencies": { | "dependencies": { | ||||
| "@tinymce/tinymce-vue": "^3.2.2", | |||||
| "axios": "^0.19.2", | "axios": "^0.19.2", | ||||
| "core-js": "^3.6.4", | "core-js": "^3.6.4", | ||||
| "crypto-js": "^4.0.0", | |||||
| "dayjs": "^1.10.4", | "dayjs": "^1.10.4", | ||||
| "echarts": "^4.9.0", | |||||
| "element-ui": "^2.13.0", | "element-ui": "^2.13.0", | ||||
| "fundebug-javascript": "^2.4.2", | |||||
| "fundebug-revideo": "^0.6.2", | |||||
| "fundebug-vue": "0.0.1", | |||||
| "html2canvas": "^1.0.0-rc.7", | |||||
| "js-base64": "^3.6.0", | |||||
| "prerender-spa-plugin": "^3.4.0", | |||||
| "npm-check": "^6.0.1", | |||||
| "qs": "^6.9.4", | "qs": "^6.9.4", | ||||
| "tinymce": "^5.4.1", | |||||
| "vue": "^2.6.11", | "vue": "^2.6.11", | ||||
| "vue-clipboard2": "^0.3.1", | "vue-clipboard2": "^0.3.1", | ||||
| "vue-lazyload": "^1.3.3", | "vue-lazyload": "^1.3.3", | ||||
| "vue-meta-info": "^0.1.7", | "vue-meta-info": "^0.1.7", | ||||
| "vue-router": "^3.1.6", | "vue-router": "^3.1.6", | ||||
| "vue-seamless-scroll": "^1.1.21", | "vue-seamless-scroll": "^1.1.21", | ||||
| "vue-wxlogin": "^1.0.2", | |||||
| "vuedraggable": "^2.24.0", | "vuedraggable": "^2.24.0", | ||||
| "vuex": "^3.1.3", | |||||
| "webpack-spritesmith": "^1.1.0" | |||||
| "vuex": "^3.1.3" | |||||
| }, | }, | ||||
| "devDependencies": { | "devDependencies": { | ||||
| "@vue/cli-plugin-babel": "^4.3.0", | "@vue/cli-plugin-babel": "^4.3.0", | ||||
| "prettier": "^1.19.1", | "prettier": "^1.19.1", | ||||
| "sass-loader": "^8.0.2", | "sass-loader": "^8.0.2", | ||||
| "swiper": "^3.4.2", | "swiper": "^3.4.2", | ||||
| "useless-files-webpack-plugin": "^1.0.1", | |||||
| "vue-awesome-swiper": "^4.1.0", | "vue-awesome-swiper": "^4.1.0", | ||||
| "vue-template-compiler": "^2.6.11" | "vue-template-compiler": "^2.6.11" | ||||
| } | } |
| </template> | </template> | ||||
| <script> | <script> | ||||
| // @ is an alias to /src | |||||
| export default { | export default { | ||||
| name: "Home", | name: "Home", | ||||
| components: {}, | components: {}, |
| import store from "./store"; | import store from "./store"; | ||||
| import ElementUI from "element-ui"; | import ElementUI from "element-ui"; | ||||
| import "element-ui/lib/theme-chalk/index.css"; | import "element-ui/lib/theme-chalk/index.css"; | ||||
| import vueSwiper from "vue-awesome-swiper"; | |||||
| import VueLazyload from "vue-lazyload"; | import VueLazyload from "vue-lazyload"; | ||||
| import "swiper/dist/css/swiper.css"; | |||||
| import * as filters from "./utils/filters"; | |||||
| import MetaInfo from "vue-meta-info"; | import MetaInfo from "vue-meta-info"; | ||||
| import scroll from "vue-seamless-scroll"; | |||||
| import VueClipboard from "vue-clipboard2"; | |||||
| Vue.use(VueLazyload, { | Vue.use(VueLazyload, { | ||||
| preLoad: 1.3, | preLoad: 1.3, | ||||
| Vue.use(scroll); | Vue.use(scroll); | ||||
| Vue.use(MetaInfo); | Vue.use(MetaInfo); | ||||
| Vue.use(VueClipboard); | |||||
| Object.keys(filters).forEach(key => { | |||||
| Vue.filter(key, filters[key]); | |||||
| }); | |||||
| Vue.config.productionTip = false; | Vue.config.productionTip = false; | ||||
| Vue.use(vueSwiper); | |||||
| Vue.use(ElementUI); | Vue.use(ElementUI); | ||||
| // 克隆对象 方便克隆以及调试 | // 克隆对象 方便克隆以及调试 |
| // 首页、搜索、关于我们路由 | |||||
| import index from "./modules/index"; | |||||
| export default [{ | export default [{ | ||||
| path: "*", | |||||
| redirect: "/index", // 重定向 | |||||
| }, ]; | |||||
| path: "*", | |||||
| redirect: "/index", // 重定向 | |||||
| }, | |||||
| ...index, | |||||
| ]; |
| import Vue from "vue"; | import Vue from "vue"; | ||||
| import VueRouter from "vue-router"; | import VueRouter from "vue-router"; | ||||
| import store from "../store/index"; | |||||
| import hhr from "./hhr"; | import hhr from "./hhr"; | ||||
| Vue.use(VueRouter); | Vue.use(VueRouter); | ||||
| const routes = [ | |||||
| ...hhr, // 禾获仁官网 | |||||
| ]; | |||||
| const routes = [...hhr]; | |||||
| const router = new VueRouter({ | const router = new VueRouter({ | ||||
| mode: "history", | mode: "history", |
| /** | |||||
| * | |||||
| *首页、搜索、关于我们路由 | |||||
| * | |||||
| */ | |||||
| export default [ | |||||
| // 官网首页 | |||||
| { | |||||
| path: "/index", | |||||
| name: "Index", | |||||
| component: () => | |||||
| import ("@views/index/Index.vue"), | |||||
| meta: { | |||||
| title: "园区首页", | |||||
| }, | |||||
| }, | |||||
| ]; |
| // 状态对象 | |||||
| export default { | |||||
| } |
| import {} from "./mutation-types"; | |||||
| export default {}; | export default {}; |
| import dayjs from "dayjs"; // 时间格式化组件 | |||||
| const formatDate = (time, fmtstring) => { | |||||
| time = new Date(time) | |||||
| // 使用momentjs这个日期格式化类库实现日期的格式化功能 | |||||
| if (time == '' || !time) { | |||||
| return '——' | |||||
| } else { | |||||
| return dayjs(time).format(fmtstring); | |||||
| } | |||||
| } | |||||
| export { formatDate } |
| //除法 方法注释了一部分,没有试过,慎 | |||||
| function accDiv(arg1, arg2) { | |||||
| var t1 = 0, | |||||
| t2 = 0, | |||||
| r1, | |||||
| r2; | |||||
| try { | |||||
| t1 = arg1.toString().split(".")[1].length; | |||||
| } catch (e) {} | |||||
| try { | |||||
| t2 = arg2.toString().split(".")[1].length; | |||||
| } catch (e) {} | |||||
| // with(Math){ | |||||
| r1 = Number(arg1.toString().replace(".", "")); | |||||
| r2 = Number(arg2.toString().replace(".", "")); | |||||
| return accMul(r1 / r2, pow(10, t2 - t1)); | |||||
| // } | |||||
| } | |||||
| //乘法 | |||||
| function accMul(arg1, arg2) { | |||||
| var m = 0, | |||||
| s1 = arg1.toString(), | |||||
| s2 = arg2.toString(); | |||||
| try { | |||||
| m += s1.split(".")[1].length; | |||||
| } catch (e) {} | |||||
| try { | |||||
| m += s2.split(".")[1].length; | |||||
| } catch (e) {} | |||||
| return (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) / Math.pow(10, m); | |||||
| } | |||||
| //加法 | |||||
| function accAdd(arg1, arg2) { | |||||
| var r1, r2, m; | |||||
| try { | |||||
| r1 = arg1.toString().split(".")[1].length; | |||||
| } catch (e) { | |||||
| r1 = 0; | |||||
| } | |||||
| try { | |||||
| r2 = arg2.toString().split(".")[1].length; | |||||
| } catch (e) { | |||||
| r2 = 0; | |||||
| } | |||||
| m = Math.pow(10, Math.max(r1, r2)); | |||||
| return (arg1 * m + arg2 * m) / m; | |||||
| } | |||||
| //减法 | |||||
| function Subtr(arg1, arg2) { | |||||
| var r1, r2, m, n; | |||||
| try { | |||||
| r1 = arg1.toString().split(".")[1].length; | |||||
| } catch (e) { | |||||
| r1 = 0; | |||||
| } | |||||
| try { | |||||
| r2 = arg2.toString().split(".")[1].length; | |||||
| } catch (e) { | |||||
| r2 = 0; | |||||
| } | |||||
| m = Math.pow(10, Math.max(r1, r2)); | |||||
| n = r1 >= r2 ? r1 : r2; | |||||
| return ((arg1 * m - arg2 * m) / m).toFixed(n); | |||||
| } | |||||
| //导出 {常量名||函数名} | |||||
| export { accDiv, accMul, accAdd, Subtr }; |
| <template> | |||||
| <div class="about"> | |||||
| 首页 | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| metaInfo: { | |||||
| title: "园区首页", // set a title | |||||
| }, | |||||
| components: { | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| }; | |||||
| }, | |||||
| computed: { | |||||
| }, | |||||
| mounted() { | |||||
| }, | |||||
| methods: { | |||||
| }, | |||||
| }; | |||||
| </script> | |||||
| /* vue单文件组件中无法修改swiper样式。 */ | |||||
| .cententSearch /deep/ .el-input { | |||||
| // width: 410px; | |||||
| height: 40px; | |||||
| } | |||||
| .cententSearchInput { | |||||
| width: 368px !important; | |||||
| height: 42px; | |||||
| } | |||||
| .cententSearch .el-icon-input { | |||||
| width: 132px; | |||||
| margin-right: 4px; | |||||
| padding-left: 10px; | |||||
| background: #ffffff; | |||||
| border-color: #2b5fe4; | |||||
| line-height: 36px; | |||||
| font-size: 14px; | |||||
| color: #999999; | |||||
| box-sizing: border-box; | |||||
| } | |||||
| .cententSearch .el-input__inner { | |||||
| height: 40px; | |||||
| background-color: #ffffff; | |||||
| border: solid 1px #2b5fe4; | |||||
| border-radius: 20px 0px 0px 20px; | |||||
| } | |||||
| .el-select .el-input__inner { | |||||
| color: #2b5fe4; | |||||
| } | |||||
| .featureBox .swiper-pagination-bullet { | |||||
| width: 26px !important; | |||||
| height: 7px !important; | |||||
| background-color: #d0d0d0 !important; | |||||
| border-radius: 3px !important; | |||||
| } | |||||
| .featureBox .swiper-pagination-bullet-active { | |||||
| background: #c5c5c5 !important; | |||||
| } | |||||
| .customer .swiper-pagination-bullet { | |||||
| background-color: #d0d0d0 !important; | |||||
| } | |||||
| .customer .swiper-pagination-bullet-active { | |||||
| width: 22px !important; | |||||
| height: 8px !important; | |||||
| border-radius: 4px !important; | |||||
| background: #a4beff !important; | |||||
| } | |||||
| .swiper-pagination-one .swiper-pagination-bullet { | |||||
| width: 34px !important; | |||||
| height: 5px !important; | |||||
| background-color: #d0d0d0 !important; | |||||
| border-radius: 3px !important; | |||||
| } | |||||
| .swiper-pagination-one .swiper-pagination-bullet { | |||||
| height: 3px !important; | |||||
| } | |||||
| .swiper-pagination-one .swiper-pagination-bullet-active { | |||||
| background: #ffffff !important; | |||||
| } | |||||
| .swiper-pagination .swiper-pagination-bullet, | |||||
| .swiper-entrepreneur .swiper-pagination-bullet { | |||||
| margin: 0 5px; | |||||
| } | |||||
| </style> | |||||
| <style lang="scss" scoped> | |||||
| </style> |
| const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV); | const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV); | ||||
| const CompressionWebpackPlugin = require("compression-webpack-plugin"); | const CompressionWebpackPlugin = require("compression-webpack-plugin"); | ||||
| const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i; | const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i; | ||||
| // 图形化打包详情 | |||||
| // const BundleAnalyzer = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; | |||||
| module.exports = { | module.exports = { | ||||
| publicPath: "/", // 默认'/',部署应用包时的基本 URL | publicPath: "/", // 默认'/',部署应用包时的基本 URL | ||||
| devServer: { | devServer: { | ||||
| open: true, | open: true, | ||||
| index: "index.html", //默认启动serve 打开index页面 | index: "index.html", //默认启动serve 打开index页面 | ||||
| port: 8088, | |||||
| port: 8089, | |||||
| https: false, | https: false, | ||||
| hotOnly: false, | hotOnly: false, | ||||
| disableHostCheck: true, | disableHostCheck: true, | ||||
| .set("@api", resolve("./src/api")) | .set("@api", resolve("./src/api")) | ||||
| .set("@utils", resolve("./src/utils")) | .set("@utils", resolve("./src/utils")) | ||||
| .set("@components", resolve("./src/components")) | .set("@components", resolve("./src/components")) | ||||
| .set("@views", resolve("./src/views")); | |||||
| .set("@views", resolve("./src/views")) | |||||
| .set("@customerService", resolve("./src/customerService")); | |||||
| // 移除prefetch | |||||
| config.plugins.delete("prefetch"); | |||||
| config.plugins.delete("preload"); | |||||
| }, | }, | ||||
| configureWebpack: config => { | configureWebpack: config => { | ||||
| config.optimization = { | config.optimization = { | ||||
| threshold: 10240, | threshold: 10240, | ||||
| minRatio: 0.8, | minRatio: 0.8, | ||||
| }) | }) | ||||
| // new BundleAnalyzer() | |||||
| ); | ); | ||||
| } | } | ||||
| config.plugins = [...config.plugins, ...plugins]; | config.plugins = [...config.plugins, ...plugins]; |