├── .gitignore ├── LICENSE ├── README.md ├── admin ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── assets │ │ ├── css │ │ │ └── ali.css │ │ ├── img │ │ │ └── noinfo.png │ │ └── logo.png │ ├── components │ │ └── HelloWorld.vue │ ├── main.js │ ├── plugins │ │ └── element.js │ ├── router │ │ └── index.js │ ├── store │ │ ├── index.js │ │ └── modules │ │ │ └── user.js │ └── views │ │ ├── examine │ │ ├── comment.vue │ │ └── contentexamine.vue │ │ ├── kefu │ │ ├── fankui.vue │ │ ├── jubao.vue │ │ └── shensu.vue │ │ ├── login.vue │ │ ├── loginparticles.vue │ │ ├── main.vue │ │ ├── management │ │ ├── carousel.vue │ │ └── managementlable.vue │ │ ├── myself │ │ └── myself.vue │ │ ├── numbering │ │ └── numbering.vue │ │ └── user │ │ ├── useradmin.vue │ │ └── useruser.vue └── vue.config.js ├── server ├── console.txt ├── index.js ├── package-lock.json ├── package.json ├── plugins │ ├── DataBase.ini.js │ ├── config.js │ ├── db.js │ ├── jwt.js │ └── md5.js └── routers │ ├── admin │ ├── index.js │ └── service.js │ ├── web │ ├── index.js │ └── service.js │ └── webadmin │ ├── index.js │ └── service.js ├── tu ├── ht-gerenzhongxin.png ├── ht-gl1.png ├── ht-gl2.png ├── ht-shenhezhongxin1.png ├── ht-shenhezhongxin2.png ├── ht-shouye.png ├── ht-yh1.png ├── ht-yh2.png ├── qt-es-list.png ├── qt-grzx.png ├── qt-hd-list.png ├── qt-pl.png ├── qt-sy.png ├── qt-wd-content.png ├── qt-wd-list.png └── qt-wz-list.png ├── web ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public │ ├── favicon .ico │ └── index.html ├── src │ ├── App.vue │ ├── assets │ │ ├── css │ │ │ ├── ali.css │ │ │ ├── blue-skin │ │ │ │ ├── blue-bg.jpg │ │ │ │ ├── devine-art.png │ │ │ │ ├── facebook.png │ │ │ │ ├── flickr.png │ │ │ │ ├── footer-bg.png │ │ │ │ ├── google.png │ │ │ │ ├── linked-in.png │ │ │ │ ├── rss.png │ │ │ │ ├── skype.png │ │ │ │ ├── stumble.png │ │ │ │ └── twitter.png │ │ │ ├── blue-skin5152.css │ │ │ ├── bootstrap5152.css │ │ │ ├── green-skin │ │ │ │ ├── devine-art.png │ │ │ │ ├── facebook.png │ │ │ │ ├── faq-minus.png │ │ │ │ ├── faq-plus.png │ │ │ │ ├── flickr.png │ │ │ │ ├── footer-bg.png │ │ │ │ ├── google.png │ │ │ │ ├── green-bg.jpg │ │ │ │ ├── linked-in.png │ │ │ │ ├── plus-minus.png │ │ │ │ ├── rss.png │ │ │ │ ├── skype.png │ │ │ │ ├── stumble.png │ │ │ │ └── twitter.png │ │ │ ├── green-skin5152.css │ │ │ ├── main5152.css │ │ │ ├── red-skin │ │ │ │ ├── devine-art.png │ │ │ │ ├── facebook.png │ │ │ │ ├── faq-minus.png │ │ │ │ ├── faq-plus.png │ │ │ │ ├── flickr.png │ │ │ │ ├── footer-bg.png │ │ │ │ ├── google.png │ │ │ │ ├── linked-in.png │ │ │ │ ├── plus-minus.png │ │ │ │ ├── red-bg.jpg │ │ │ │ ├── rss.png │ │ │ │ ├── skype.png │ │ │ │ ├── stumble.png │ │ │ │ └── twitter.png │ │ │ ├── red-skin5152.css │ │ │ └── responsive5152.css │ │ ├── images │ │ │ ├── Descr.WD3 │ │ │ ├── calendar-icon.png │ │ │ ├── category-icon.png │ │ │ ├── category-main-icon.png │ │ │ ├── comment.png │ │ │ ├── devine-art.png │ │ │ ├── facebook.png │ │ │ ├── faq-minus.png │ │ │ ├── faq-plus.png │ │ │ ├── favicon.png │ │ │ ├── flickr.png │ │ │ ├── footer-bg.png │ │ │ ├── glyphicons-halflings-white.png │ │ │ ├── glyphicons-halflings.png │ │ │ ├── google.png │ │ │ ├── image-large.png │ │ │ ├── image.png │ │ │ ├── li-arrow.png │ │ │ ├── like-btn.png │ │ │ ├── like.png │ │ │ ├── linked-in.png │ │ │ ├── loading.gif │ │ │ ├── logo.png │ │ │ ├── main-bg.jpg │ │ │ ├── noinfo.png │ │ │ ├── plus-minus.png │ │ │ ├── question-large.png │ │ │ ├── question.png │ │ │ ├── quote.png │ │ │ ├── rss.png │ │ │ ├── scroll-top.png │ │ │ ├── search-loader.gif │ │ │ ├── skype.png │ │ │ ├── standard-large.png │ │ │ ├── standard.png │ │ │ ├── stumble.png │ │ │ ├── support.png │ │ │ ├── temp │ │ │ │ ├── Descr.WD3 │ │ │ │ ├── living-room-770x501.jpg │ │ │ │ └── man.png │ │ │ ├── twitter.png │ │ │ ├── user.png │ │ │ ├── video-large.png │ │ │ └── video.png │ │ └── logo.png │ ├── components │ │ ├── activity.vue │ │ ├── carousel.vue │ │ ├── comment.vue │ │ ├── company.vue │ │ ├── foot.vue │ │ ├── help.vue │ │ ├── job.vue │ │ ├── news.vue │ │ ├── oldstuff.vue │ │ └── oldstuffhot.vue │ ├── main.js │ ├── plugins │ │ └── element.js │ ├── router │ │ └── index.js │ ├── store │ │ ├── index.js │ │ └── modules │ │ │ └── user.js │ └── views │ │ ├── activity.vue │ │ ├── content │ │ ├── activitycontent.vue │ │ ├── companycontent.vue │ │ ├── helpcontent.vue │ │ ├── jobcontent.vue │ │ ├── newscontent.vue │ │ └── oldstuffcontent.vue │ │ ├── help.vue │ │ ├── home.vue │ │ ├── index.vue │ │ ├── job.vue │ │ ├── kefu │ │ ├── fankui.vue │ │ ├── jubao.vue │ │ └── shensu.vue │ │ ├── news.vue │ │ ├── oldstuff.vue │ │ ├── search.vue │ │ └── webadmin │ │ ├── activity │ │ ├── createactivity.vue │ │ └── createactivitylist.vue │ │ ├── adminhome.vue │ │ ├── adminindex.vue │ │ ├── article │ │ ├── articlelist.vue │ │ └── createarticle.vue │ │ ├── help │ │ ├── createhelp.vue │ │ └── createhelplist.vue │ │ ├── job │ │ └── company.vue │ │ ├── myself.vue │ │ ├── notice.vue │ │ └── oldstuff │ │ ├── createoldstuff.vue │ │ └── createoldstufflist.vue └── vue.config.js └── 数据库 └── changhangtong.sql /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | #mysql 18 | # DataBase.ini.js 19 | 20 | # Directory for instrumented libs generated by jscoverage/JSCover 21 | lib-cov 22 | 23 | # Coverage directory used by tools like istanbul地址 https://github.com/guoang6/changhangtong 作者郭昂 24 | coverage 25 | *.lcov 26 | 27 | # nyc test coverage 28 | .nyc_output 29 | 30 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 31 | .grunt 32 | 33 | # Bower dependency directory (https://bower.io/) 34 | bower_components 35 | 36 | # node-waf configuration 37 | .lock-wscript 38 | 39 | # Compiled binary addons (https://nodejs.org/api/addons.html) 40 | build/Release 41 | 42 | # Dependency directories 43 | node_modules/ 44 | jspm_packages/ 45 | 46 | # TypeScript v1 declaration files 47 | typings/ 48 | 49 | # TypeScript cache 50 | *.tsbuildinfo 51 | 52 | # Optional npm cache directory 53 | .npm 54 | 55 | # Optional eslint cache 56 | .eslintcache 57 | 58 | # Microbundle cache 59 | .rpt2_cache/ 60 | .rts2_cache_cjs/ 61 | .rts2_cache_es/ 62 | .rts2_cache_umd/ 63 | 64 | # Optional REPL history 65 | .node_repl_history 66 | 67 | # Output of 'npm pack' 68 | *.tgz 69 | 70 | # Yarn Integrity file 71 | .yarn-integrity 72 | 73 | # dotenv environment variables file 74 | .env 75 | .env.test 76 | 77 | # parcel-bundler cache (https://parceljs.org/) 78 | .cache 79 | 80 | # Next.js build output 81 | .next 82 | 83 | # Nuxt.js build / generate output 84 | .nuxt 85 | dist 86 | 87 | # Gatsby files 88 | .cache/ 89 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 90 | # https://nextjs.org/blog/next-9-1#public-directory-support 91 | # public 92 | 93 | # vuepress build output 94 | .vuepress/dist 95 | 96 | # Serverless directories 97 | .serverless/ 98 | 99 | # FuseBox cache 100 | .fusebox/ 101 | 102 | # DynamoDB Local files 103 | .dynamodb/ 104 | 105 | # TernJS port file 106 | .tern-port 107 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # changhangtong 2 | vue.js+node.js毕业设计 ----- 3 | ## 线上演示 4 | http://www.guoang.xyz/changhangtong
5 | http://www.guoang.xyz/changhangtong/admin 6 | 7 | 8 | # 简介 9 | 前端vue后端node的express框架数据库mysql。主要涵盖:校园信息交流平台(二手信息,交流问答,新闻文章,校内活动,招聘信息)评论 ,内容审核,实名认证,消息通知,移动端适配 10 | 11 | 12 | 13 | # 运行 14 | * 1.安装node环境(百度) 15 | * 2.导入数据库 16 | + 数据库文件:/数据库 17 | + 数据库配置文件:/server/plugins/DataBase.ini.js 18 | 19 | 数据库文件 20 | 21 | ![image](https://user-images.githubusercontent.com/50048496/141990468-25d1d534-0f8a-4836-8c75-fd2d05186ea3.png) 22 | 23 | * 3.分别在/admin;/server/;/web下面执行命令 24 | 25 | 26 | 27 | ``` 28 | npm i 29 | ``` 30 | * 4.分别在/admin;/server/;/web下面执行命令 31 | ``` 32 | npm run serve 33 | ``` 34 | 35 | # 主要功能模块 36 | - 前台 37 | * 问答 38 | * 活动 39 | * 失物认领 40 | * 二手交易 41 | * 招聘信息 42 | * 文章与新闻 43 | * 个人中心&&登录注册 44 | + 个人中心 45 | * 问答 46 | * 发布 47 | * 管理 48 | * 活动 49 | * 发布 50 | * 管理 51 | * 失物认领 52 | * 发布 53 | * 管理 54 | * 二手交易 55 | * 发布 56 | * 管理 57 | * 招聘信息 58 | * 发布 59 | * 管理 60 | * 文章与新闻 61 | * 发布 62 | * 管理 63 | * 后台 64 | * 数据中心 65 | * 审核中心 66 | * 问答 /活动/失物认领/ 二手交易/招聘信息/ 文章与新闻 67 | * 留言审核 68 | * 认证中心 69 | * 学生认证 70 | * 公司认证 71 | * 客服中心 72 | * 平台管理 73 | 分类管理 74 | * 账号管理 75 | 账号添加/删除/授权/ 76 | 77 | # 前台 78 | ## 前台-首页 79 | 80 | 81 | ## 前台-功能模块 82 | | | | 83 | | ----------- | --------------- | 84 | | ![](./tu/qt-wd-list.png) 交流问答列表核 | ![](./tu/qt-pl.png) 评论 | 85 | | ----------- | --------------- | 86 | | ![](./tu/qt-hd-list.png) 校内活动列表核 | ![](./tu/qt-es-list.png) 二手信息列表 | 87 | | ----------- | --------------- | 88 | | ![](./tu/qt-wd-list.png) 招聘列表核 | ![](./tu/qt-wz-list.png) 文章列表 | 89 | ## 前台-个人中心 90 | 91 | 92 | # 后台 93 | ## 后台-首页 94 | 95 | 96 | ## 后台-个人中心 97 | 98 | 99 | ## 后台-审核中心 100 | | | | 101 | | --------------------------------------------------------------------------------------- | ------------------------------------------- | 102 | | ![](./tu/ht-shenhezhongxin1.png) 内容审核 | ![](./tu/ht-shenhezhongxin2.png) 评论审核 | 103 | 104 | 105 | 106 | 107 | ## 后台-用户中心 108 | 109 | | | | 110 | | --------------------------------------------------------------------------------------- | ------------------------------------------- | 111 | | ![](./tu/ht-yh1.png)普通用户管理 | ![](./tu/ht-yh2.png) 管理员账号管理 | 112 | 113 | 114 | 115 | 116 | ## 后台-网站管理中心 117 | 118 | | | | 119 | | --------------------------------------------------------------------------------------- | ------------------------------------------- | 120 | | ![](./tu/ht-gl1.png)分类管理 | ![](./tu/ht-gl2.png) 轮播图管理 | 121 | 122 | 123 | 124 | 125 | ## 数据库设计 126 | ###### user表 127 | 字段名 | 描述 128 | -------- | ----- 129 | user_id| 用户id 130 | username | 用户名 131 | password|密码 132 | nickname|昵称 133 | avatar|头像 134 | realstate|是否学生认证 135 | realname|姓名 136 | studentid|学号 137 | studentcard|学生证 138 | iscompany|是否公司 139 | qq|QQ 140 | mail|邮箱 141 | describe|描述 142 | ###### notice表 143 | | 字段 | 含义 | 144 | |:--------:| -------------:| 145 | | notice_id | 消息 id | 146 | |user_from|发起者 147 | |user_to|接受者 148 | |action|动作 149 | |content_id|内容id 150 | |router|路由 151 | |createtime|时间 152 | |state|状态 153 | -------------------------------------------------------------------------------- /admin/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files地址 https://github.com/guoang6/changhangtong 作者郭昂 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /admin/README.md: -------------------------------------------------------------------------------- 1 | # admin 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /admin/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /admin/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "admin", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.19.2", 12 | "core-js": "^3.6.4", 13 | "echarts": "^4.7.0", 14 | "element-ui": "^2.4.5", 15 | "moment": "^2.24.0", 16 | "vue": "^2.6.11", 17 | "vue-echarts": "^5.0.0-beta.0", 18 | "vue-particles": "^1.0.9", 19 | "vue-router": "^3.1.5", 20 | "vuex": "^3.1.2" 21 | }, 22 | "devDependencies": { 23 | "@vue/cli-plugin-babel": "^4.2.0", 24 | "@vue/cli-plugin-eslint": "^4.2.0", 25 | "@vue/cli-plugin-router": "^4.2.2", 26 | "@vue/cli-service": "^4.2.0", 27 | "babel-eslint": "^10.0.3", 28 | "eslint": "^6.7.2", 29 | "eslint-plugin-vue": "^6.1.2", 30 | "vue-cli-plugin-element": "^1.0.1", 31 | "vue-template-compiler": "^2.6.11" 32 | }, 33 | "eslintConfig": { 34 | "root": true, 35 | "env": { 36 | "node": true 37 | }, 38 | "extends": [ 39 | "plugin:vue/essential", 40 | "eslint:recommended" 41 | ], 42 | "parserOptions": { 43 | "parser": "babel-eslint" 44 | }, 45 | "rules": { 46 | "generator-star-spacing": "off", 47 | "no-tabs": "off", 48 | "no-unused-vars": "off", 49 | "no-console": "off", 50 | "no-irregular-whitespace": "off", 51 | "no-debugger": "off" 52 | } 53 | }, 54 | "browserslist": [ 55 | "> 1%", 56 | "last 2 versions" 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /admin/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/admin/public/favicon.ico -------------------------------------------------------------------------------- /admin/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | "哈哈哈"信息平台后台管理 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /admin/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /admin/src/assets/css/ali.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; /* project id 1619251 */ 3 | src: url('//at.alicdn.com/t/font_1619251_8a88wui69av.eot'); 4 | src: url('//at.alicdn.com/t/font_1619251_8a88wui69av.eot?#iefix') format('embedded-opentype'), 5 | url('//at.alicdn.com/t/font_1619251_8a88wui69av.woff2') format('woff2'), 6 | url('//at.alicdn.com/t/font_1619251_8a88wui69av.woff') format('woff'), 7 | url('//at.alicdn.com/t/font_1619251_8a88wui69av.ttf') format('truetype'), 8 | url('//at.alicdn.com/t/font_1619251_8a88wui69av.svg#iconfont') format('svg'); 9 | } 10 | .iconfont{ 11 | font-family: 'iconfont'; 12 | margin-right: 10px; 13 | width: 24px; 14 | text-align: center; 15 | font-size: 18px; 16 | color: white; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /admin/src/assets/img/noinfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/admin/src/assets/img/noinfo.png -------------------------------------------------------------------------------- /admin/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/admin/src/assets/logo.png -------------------------------------------------------------------------------- /admin/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 41 | 42 | 43 | 59 | -------------------------------------------------------------------------------- /admin/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import './plugins/element.js' 4 | import router from './router' 5 | import ElementUI from 'element-ui'; 6 | 7 | //ecahrs 8 | import ECharts from 'vue-echarts' 9 | import 'echarts/lib/chart/line' 10 | import 'echarts/lib/chart/pie' 11 | import 'echarts/lib/chart/bar' 12 | 13 | Vue.component('chart', ECharts) 14 | import './assets/css/ali.css' 15 | //粒子特效 npm install vue-particles --save-dev 16 | import VueParticles from 'vue-particles' 17 | Vue.use(VueParticles) 18 | //vuex 19 | import Vuex from 'vuex' 20 | import store from './store' 21 | Vue.use(Vuex) 22 | //导入时间插件 23 | import moment from 'moment'; 24 | //定义全局时间过滤器 25 | Vue.filter('dataFormat', function (datastr, pattern = "YYYY-MM-DD HH:mm") { 26 | return moment(datastr).format(pattern) 27 | }) 28 | Vue.config.productionTip = false 29 | // aiox需要的包 30 | import axios from 'axios' 31 | // axios.defaults.withCredentials = true 32 | //aciox基础url 33 | axios.defaults.baseURL = 'http://127.0.0.1:3000'; 34 | // axios.defaults.baseURL = 'http://www.guoang.xyz:3000'; 35 | 36 | //将axios写成vue的原型属性 37 | Vue.prototype.$axios = axios; 38 | //为post请求设置默认请求头 39 | axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; 40 | //vue2中使用axios,我们请求的参数仍为json类型,是并没有序列化的。我们需要使用querystring解决该问题 41 | import qs from 'qs'; 42 | Vue.prototype.qs = qs; 43 | 44 | // 添加一个请求拦截器 45 | // http request 拦截器 46 | axios.interceptors.request.use( 47 | config => { 48 | let admin_jwt_token =window.localStorage.getItem('admin_jwt_token'); 49 | // console.log(admin_jwt_token) 50 | config.headers.Authorization = `Bearer ${admin_jwt_token}`; 51 | return config; 52 | }, 53 | err => { 54 | return Promise.reject(err); 55 | } 56 | ); 57 | 58 | // 添加一个响应拦截器 59 | axios.interceptors.response.use(function (response) { 60 | if (response.data && response.data.code) { 61 | if (parseInt(response.data.code) === 401) { 62 | //未登录 63 | ElementUI.Notification({ 64 | title: '警告', 65 | message: '登录过期请重新登录', 66 | type: 'warning' 67 | }); 68 | // store.dispatch('user/deleteuserinfo')//清除用户信息 69 | router.push('/login'); 70 | } 71 | if (parseInt(response.data.code) === -1) { 72 | ElementUI.Notification({ 73 | title: '警告', 74 | message: '请求失败', 75 | type: 'warning' 76 | }); 77 | } 78 | } 79 | return response; 80 | }, function (error) { 81 | console.log(error) 82 | // Do something with response error 83 | console.dir(error); 84 | ElementUI.Notification({ 85 | title: '警告', 86 | message: '服务器连接失败', 87 | type: 'warning' 88 | }); 89 | return Promise.reject(error); 90 | }) 91 | 92 | 93 | new Vue({ 94 | router, 95 | store, 96 | render: h => h(App) 97 | }).$mount('#app') 98 | -------------------------------------------------------------------------------- /admin/src/plugins/element.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Element from 'element-ui' 3 | import 'element-ui/lib/theme-chalk/index.css' 4 | 5 | Vue.use(Element) 6 | -------------------------------------------------------------------------------- /admin/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import main from '../views/main.vue' 4 | import login from '../views/login.vue' 5 | import contentexamine from '../views/examine/contentexamine.vue' 6 | import comment from '../views/examine/comment.vue' 7 | 8 | import useruser from '../views/user/useruser.vue' 9 | import useradmin from '../views/user/useradmin.vue' 10 | import carousel from '../views/management/carousel.vue' 11 | import managementlable from '../views/management/managementlable.vue' 12 | import numbering from '../views/numbering/numbering.vue' 13 | import myself from '../views/myself/myself.vue' 14 | import fankui from '../views/kefu/fankui.vue' 15 | import jubao from '../views/kefu/jubao.vue' 16 | import shensu from '../views/kefu/shensu.vue' 17 | Vue.use(VueRouter) 18 | 19 | const routes = [ 20 | {path: '/login',name: 'login',component: login ,meta:{ispublic:true}}, 21 | {path: '/',name: 'main',component: main ,children: [ 22 | { path: '', name: 'numbering', component: numbering, }, 23 | { path: 'myself', name: 'myself', component: myself, }, 24 | { path: 'contentexamine', name: 'contentexamine', component: contentexamine, }, 25 | { path: 'comment', name: 'comment', component: comment, }, 26 | { path: 'useruser', name: 'useruser', component: useruser, }, 27 | { path: 'useradmin', name: 'useradmin', component: useradmin, }, 28 | { path: 'managementlable', name: 'managementlable', component: managementlable, }, 29 | { path: 'carousel', name: 'carousel', component: carousel, }, 30 | { path: 'fankui', name: 'fankui', component: fankui, }, 31 | { path: 'jubao', name: 'jubao', component: jubao, }, 32 | { path: 'shensu', name: 'shensu', component: shensu, }, 33 | 34 | 35 | ] 36 | } 37 | // { 38 | // path: '/about', 39 | // name: 'About', 40 | // // route level code-splitting 41 | // // this generates a separate chunk (about.[hash].js) for this route 42 | // // which is lazy-loaded when the route is visited. 43 | // component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') 44 | // } 45 | ] 46 | 47 | const router = new VueRouter({ 48 | routes 49 | }) 50 | router.beforeEach((to,Form,next)=>{ 51 | // console.log(to) 52 | if(!to.meta.ispublic&&!localStorage.admin_jwt_token){ 53 | return next('/login') 54 | } 55 | next() 56 | }) 57 | export default router 58 | -------------------------------------------------------------------------------- /admin/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import user from './modules/user' 4 | Vue.use(Vuex) 5 | 6 | const state = { 7 | commentnum: '', 8 | contentid: '', 9 | contentname:'', 10 | contentuserid:'', 11 | url:'http://localhost:8080' 12 | } 13 | const getters = {} 14 | const mutations = { 15 | SET_CONTENTID(state, id) { 16 | state.contentid = id 17 | }, 18 | SET_COMMENTNUM(state, num) { 19 | state.commentnum = num 20 | }, 21 | SET_CONTENTINFO(state, data) { 22 | state.contentname = data.contentname 23 | state.contentuserid =data. contentuserid 24 | }, 25 | 26 | } 27 | const actions = { 28 | setcontentid({ commit }, data) { 29 | commit('SET_CONTENTID', data) 30 | }, 31 | setcommentnum({ commit }, data) { 32 | commit('SET_COMMENTNUM', data) 33 | }, 34 | setcontentinfo({ commit }, data) { 35 | commit('SET_CONTENTINFO', data) 36 | }, 37 | 38 | } 39 | export default new Vuex.Store({ 40 | state, 41 | actions, 42 | mutations, 43 | getters, 44 | modules: { 45 | user 46 | } 47 | 48 | }) 49 | 50 | 51 | -------------------------------------------------------------------------------- /admin/src/store/modules/user.js: -------------------------------------------------------------------------------- 1 | const state = { 2 | islog: true, 3 | islogin: true, 4 | isclose: false, 5 | uinfo: JSON.parse(localStorage.getItem("uinfo")) || {},//先去localStorage中获取数据 6 | unread: 0 7 | 8 | } 9 | const getters = { 10 | 11 | } 12 | const mutations = { 13 | SET_USERINFO(state, uinfo) { 14 | console.log(uinfo) 15 | state.uinfo = uinfo, 16 | localStorage.setItem('uinfo', JSON.stringify(uinfo)) 17 | }, 18 | CHANGE_ISLOG(state) { 19 | state.islog = !state.islog 20 | }, 21 | DELETE_USERINFO(state) { 22 | window.localStorage.removeItem('uinfo') 23 | window.localStorage.removeItem('admin_jwt_token') 24 | }, 25 | SET_TOKEN(state, data) { 26 | state.token = data 27 | window.localStorage.setItem('admin_jwt_token', state.token); 28 | }, 29 | JOIN() { 30 | state.islogin = !state.islogin; 31 | }, 32 | CLOSE() { 33 | state.isclose = !state.isclose; 34 | }, 35 | SET_UNREAD(state, num) { 36 | state.unread = num 37 | }, 38 | } 39 | const actions = { 40 | setUserInfo({ commit }, data) { 41 | commit('SET_USERINFO', data) 42 | }, 43 | changeislog({ commit }) { 44 | commit('CHANGE_ISLOG') 45 | }, 46 | join({ commit }) { 47 | commit('JOIN') 48 | }, 49 | close({ commit }) { 50 | commit('CLOSE') 51 | }, 52 | deleteuserinfo({ commit }) { 53 | commit('DELETE_USERINFO') 54 | }, 55 | setToken({ commit }, data) { 56 | commit('SET_TOKEN', data) 57 | }, 58 | setunread({ commit }, data) { 59 | commit('SET_UNREAD', data) 60 | }, 61 | } 62 | export default { 63 | namespaced: true, 64 | state, 65 | getters, 66 | mutations, 67 | actions 68 | } -------------------------------------------------------------------------------- /admin/src/views/login.vue: -------------------------------------------------------------------------------- 1 | 23 | 76 | -------------------------------------------------------------------------------- /admin/src/views/loginparticles.vue: -------------------------------------------------------------------------------- 1 | 25 | 44 | -------------------------------------------------------------------------------- /admin/src/views/main.vue: -------------------------------------------------------------------------------- 1 | 83 | 84 | 85 | 86 | 120 | -------------------------------------------------------------------------------- /admin/src/views/management/carousel.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 138 | -------------------------------------------------------------------------------- /admin/src/views/management/managementlable.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 108 | -------------------------------------------------------------------------------- /admin/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: process.env.NODE_ENV === 'production' 3 | ? '/changhangtong/admin/' 4 | : '/' 5 | } -------------------------------------------------------------------------------- /server/console.txt: -------------------------------------------------------------------------------- 1 | _ _ _ 2 | | | | | | | 3 | ___| |__ __ _ _ __ __ _| |__ __ _ _ __ __ _| |_ ___ _ __ __ _ 4 | / __| '_ \ / _` | '_ \ / _` | '_ \ / _` | '_ \ / _` | __/ _ \| '_ \ / _` | 5 | | (__| | | | (_| | | | | (_| | | | | (_| | | | | (_| | || (_) | | | | (_| | 6 | \___|_| |_|\__,_|_| |_|\__, |_| |_|\__,_|_| |_|\__, |\__\___/|_| |_|\__, | 7 | __/ | __/ | __/ | 8 | |___/ |___/ |___/ -------------------------------------------------------------------------------- /server/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const bodyParser = require('body-parser') 3 | const webadminrouter = require('./routers/webadmin') 4 | const webrouter = require('./routers/web') 5 | const adminrouter = require('./routers/admin') 6 | 7 | const localPort = 3000 8 | const app = express() 9 | //静态文件文件 10 | app.use('/uplodes',express.static(__dirname+'/uplodes'))//图片 11 | // 自定义跨域中间件 12 | var allowCors = function(req, res, next) { 13 | res.header('Access-Control-Allow-Origin', req.headers.origin); 14 | res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 15 | res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization,Origin,Accept,X-Requested-With'); 16 | res.header('Access-Control-Allow-Credentials','true'); 17 | res.header('Access-Control-Allow-Headers', 'Authorization'); 18 | if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/ 19 | else next(); 20 | }; 21 | app.use(allowCors);//使用跨域中间件 22 | 23 | // create application/json parser 24 | var jsonParser = bodyParser.json() 25 | 26 | // create application/x-www-form-urlencoded parser 27 | var urlencodedParser = bodyParser.urlencoded({ extended: false }) 28 | 29 | 30 | app.use(jsonParser) 31 | app.use(urlencodedParser) 32 | app.use(webadminrouter) 33 | app.use(webrouter) 34 | app.use(adminrouter) 35 | 36 | app.listen(localPort, () => { 37 | let fs =require("fs"); 38 | let data = fs.readFileSync('console.txt'); 39 | console.log(data.toString()); 40 | }) -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "serve": "nodemon index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "body-parser": "^1.19.0", 15 | "cors": "^2.8.5", 16 | "crypto": "^1.0.1", 17 | "express": "^5.0.0-alpha.7", 18 | "express-jwt": "^5.3.1", 19 | "jsonwebtoken": "^8.5.1", 20 | "mongoose": "^5.8.9", 21 | "multer": "^1.4.2", 22 | "multer-aliyun-oss": "^1.0.4", 23 | "mysql": "github:mysqljs/mysql", 24 | "node-uuid": "^1.4.8" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /server/plugins/DataBase.ini.js: -------------------------------------------------------------------------------- 1 | const Database = {} 2 | 3 | Database.host = '120.27.242.132'//ip 4 | Database.user = 'root'//用户名 5 | Database.password = ' '//密码 6 | Database.port = 3306//端口 7 | Database.database = 'changhangtong'//数据库名 8 | exports.dbmysql = Database 9 | -------------------------------------------------------------------------------- /server/plugins/config.js: -------------------------------------------------------------------------------- 1 | module.exports={ 2 | debug:true,//控制debug 3 | PED_SALT:'adadadadad',//用户密码加密密钥 4 | EXPIRE_SIN:60*60,//token过期时间 5 | PEIVATE_KEY:'asdadadada',//token加密密钥 6 | } -------------------------------------------------------------------------------- /server/plugins/db.js: -------------------------------------------------------------------------------- 1 | const mysql = require('mysql'); 2 | const { dbmysql } = require('./DataBase.ini')//数据库配置文件 3 | const { debug } = require('./config.js')//debug配置文件 4 | function connection() { 5 | return mysql.createConnection({ 6 | host: dbmysql.host, 7 | user: dbmysql.user, 8 | password: dbmysql.password, 9 | database: dbmysql.database, 10 | port: dbmysql.port 11 | }) 12 | } 13 | function query(sql, data) { 14 | const conn = connection() 15 | return new Promise((resovle, reject) => { 16 | debug && console.log('sql语句:' + JSON.stringify(sql)) 17 | try { 18 | conn.query(sql, data, function (error, results, fields) { 19 | if (error) { 20 | reject(error) 21 | debug && console.log('数据库操作失败:' + JSON.stringify(error)) 22 | return 23 | } 24 | else { 25 | resovle(results) 26 | debug && console.log('数据库操作成功:' + JSON.stringify(results)) 27 | } 28 | }); 29 | } catch (e) { 30 | reject(e) 31 | } 32 | finally { 33 | conn.end() 34 | } 35 | }) 36 | } 37 | module.exports ={ 38 | query 39 | } -------------------------------------------------------------------------------- /server/plugins/jwt.js: -------------------------------------------------------------------------------- 1 | const jwt = require('express-jwt') 2 | const { PEIVATE_KEY } = require('./config') 3 | module.exports = jwt({ 4 | secret:PEIVATE_KEY, 5 | credentialsRequired:true 6 | }).unless({ 7 | path:[ 8 | '/', 9 | '/webadmin/registered', 10 | '/admin/login', 11 | '/webadmin/login', 12 | '/uplod', 13 | '/web/webgetwebhelplist', 14 | '/webadmin/createjubao', 15 | '/web/webgetwebhelplist', 16 | '/web/gethelpcontent', 17 | '/web/getcomment', 18 | '/web/getreply', 19 | '/admin/contentexamine', 20 | '/web/getarticlelist', 21 | '/web/webgetwebactivitylist', 22 | '/web/webgetjoblist', 23 | '/web/webgetcompanylist', 24 | '/web/getoldstuffcontent', 25 | '/web/getactivitycontent', 26 | '/web/webgetweboldstufflist', 27 | '/web/getactivitycontent', 28 | '/web/search', 29 | '/admin/carousellist', 30 | '/admin/lablelist', 31 | '/web/getreply', 32 | '/web/getjobcontent', 33 | '/web/getarticlecontent', 34 | '/web/getcompanycontent', 35 | '/web/search', 36 | '/webadmin/jubaocontent', 37 | '/webadmin/createshensu', 38 | ] 39 | }) -------------------------------------------------------------------------------- /server/plugins/md5.js: -------------------------------------------------------------------------------- 1 | const crypto = require('crypto') 2 | function md5(s) { 3 | return crypto.createHash('md5').update(String(s)).digest('hex') 4 | } 5 | module.exports={ 6 | md5 7 | } -------------------------------------------------------------------------------- /server/routers/admin/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const router = express.Router() 3 | const service = require('./service')//相关操作逻辑 4 | //管理员账号 5 | 6 | router.post('/admin/registered', service.registered) 7 | router.post('/admin/getadminlist', service.getadminlist) 8 | router.post('/admin/changeadminstate', service.changeadminstate) 9 | router.post('/admin/login', service.login) 10 | router.post('/admin/changepassword', service.changepassword) 11 | router.post('/admin/changeuseruserstate', service.changeuseruserstate) 12 | router.post('/admin/deleteuser', service.deleteuser) 13 | router.post('/admin/getadmin', service.getadmin) 14 | 15 | router.post('/admin/getcomment', service.getcomment) 16 | router.post('/admin/getreply', service.getreply) 17 | router.post('/admin/admindelete', service.admindelete) 18 | router.post('/admin/contentexamine', service.contentexamine) 19 | router.post('/admin/changecontentstate', service.changecontentstate) 20 | 21 | router.post('/admin/getuserlist', service.getuserlist) 22 | router.post('/admin/changeuserstate', service.changeuserstate) 23 | router.post('/admin/changeuserstate', service.changeuserstate) 24 | 25 | //分类管理 26 | router.post('/admin/lablelist', service.lablelist) 27 | router.post('/admin/changelable', service.changelable) 28 | router.post('/admin/changecarousel', service.changecarousel) 29 | router.post('/admin/carousellist', service.carousellist) 30 | router.post('/admin/deletecarouse', service.deletecarouse) 31 | router.post('/admin/kefullist', service.kefullist) 32 | router.post('/admin/changkefustate', service.changkefustate) 33 | router.post('/admin/deletekefu', service.deletekefu) 34 | router.post('/admin/changresult', service.changresult) 35 | router.post('/admin/changeadminuser', service.changeadminuser) 36 | router.post('/admin/changeactivationdate', service.changeactivationdate) 37 | //公告列表 38 | 39 | router.post('/admin/announcementlist', service.announcementlist) 40 | 41 | //发布公告 42 | router.post('/admin/setannouncement', service.setannouncement) 43 | 44 | 45 | //仪表盘数据 46 | router.post('/admin/numbering', service.numbering) 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | module.exports = router 55 | -------------------------------------------------------------------------------- /server/routers/web/index.js: -------------------------------------------------------------------------------- 1 | 2 | const express = require('express') 3 | const router = express.Router() 4 | const service = require('./service')//相关操作逻辑s 5 | //求助 6 | router.post('/web/webgetwebhelplist', service.webgetwebhelplist) 7 | router.post('/web/gethelpcontent', service.gethelpcontent) 8 | 9 | 10 | //留言 11 | router.post('/web/setcomment', service.setcomment) 12 | router.post('/web/getcomment', service.getcomment) 13 | router.post('/web/setreply', service.setreply) 14 | router.post('/web/getreply', service.getreply) 15 | //活动 16 | router.post('/web/webgetwebactivitylist', service.webgetwebactivitylist) 17 | 18 | router.post('/web/webgetweboldstufflist', service.webgetweboldstufflist) 19 | //岗位列表 20 | router.post('/web/webgetjoblist', service.webgetjoblist) 21 | router.post('/web/getjobcontent', service.getjobcontent) 22 | 23 | 24 | //文章列表 25 | router.post('/web/getarticlelist', service.getarticlelist) 26 | router.post('/web/getarticlecontent', service.getarticlecontent) 27 | 28 | //公司列表 29 | router.post('/web/webgetcompanylist', service.webgetcompanylist) 30 | router.post('/web/getcompanycontent', service.getcompanycontent) 31 | 32 | 33 | 34 | 35 | router.post('/web/getoldstuffcontent', service.getoldstuffcontent) 36 | router.post('/web/getactivitycontent', service.getactivitycontent) 37 | router.post('/web/setjoin', service.setjoin) 38 | //搜索 39 | router.post('/web/search', service.search) 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | router.post('/web/getnotice', service.getnotice) 49 | router.post('/web/changenotice', service.changenotice) 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | module.exports = router 72 | -------------------------------------------------------------------------------- /server/routers/webadmin/index.js: -------------------------------------------------------------------------------- 1 | 2 | const express = require('express') 3 | const router = express.Router() 4 | const service = require('./service')//相关操作逻辑 5 | const jwt = require('../../plugins/jwt')//引入jwt 6 | router.use(jwt)//express-jwt中间件 7 | router.use(function (err, req, res, next) { 8 | if (err) { 9 | console.log(err) 10 | } 11 | if (err.name === 'UnauthorizedError') { 12 | // 这个需要根据自己的业务逻辑来处理( 具体的err值 请看下面) 13 | res.send({ 14 | state:{ 15 | "type": 'ERROE', 16 | "msg": "操作失败" 17 | }, 18 | code:401}); 19 | } 20 | }); 21 | //上传中间件 22 | const multer = require('multer')//上传npm i multer 23 | const MAO = require('multer-aliyun-oss');//npm install --save multer-aliyun-oss 24 | // const uplod = multer({ 25 | // storage: MAO({ 26 | // config: { 27 | // region: 'oss-cn-hangzhou',//地址 28 | // accessKeyId: 'ooooooooo',//accessKeyId 29 | // accessKeySecret: 'oooooooooo',//accessKeySecret 30 | // bucket: 'guoang'//用户名 31 | // } 32 | // }) 33 | // });//上传阿里云oss 34 | const uplod = multer({ dest: __dirname + '/../../uplodes' })//上传本地 35 | //图片图片上传 36 | router.post('/uplod', uplod.single('file'), service.uplod) 37 | /** 38 | * 用户信息 39 | * 40 | * 41 | * 42 | */ 43 | //注册 44 | router.post('/webadmin/registered', service.registered) 45 | //登录 46 | router.post('/webadmin/login', service.login) 47 | //用户信息 48 | router.post('/webadmin/getuser', service.getuser) 49 | router.post('/webadmin/updatauser', service.updatauser) 50 | 51 | 52 | 53 | /** 54 | * 55 | * 56 | * 求助 57 | */ 58 | // //创建求助 59 | router.post('/webadmin/createhelp', service.createhelp) 60 | //用户u获取求助列表 61 | router.post('/webadmin/getwebhelplist', service.getwebhelplist) 62 | //求助详情 63 | router.post('/webadmin/gethelpdetails', service.gethelpdetails) 64 | //修改求助 65 | router.post('/webadmin/updateehelp', service.updateehelp) 66 | //删除求助 67 | router.post('/webadmin/deletehelp', service.deletehelp) 68 | //创建活动 69 | router.post('/webadmin/createactivity', service.createactivity) 70 | //用户获取求助列表 71 | router.post('/webadmin/getwebactivitylist', service.getwebactivitylist) 72 | 73 | //活动详情 74 | router.post('/webadmin/getactivitydetails', service.getactivitydetails) 75 | 76 | //修改活动 77 | router.post('/webadmin/updateactivity', service.updateactivity) 78 | //删除活动 79 | router.post('/webadmin/deleteactivity', service.deleteactivity) 80 | //被joins列表 81 | router.post('/webadmin/getwebjoinslist', service.getwebjoinslist) 82 | //joins列表 83 | router.post('/webadmin/joinslist', service.joinslist) 84 | 85 | 86 | 87 | //添加二手信息 88 | router.post('/webadmin/createoldstuff', service.createoldstuff) 89 | //获取二手信息 90 | router.post('/webadmin/getweboldstufflist', service.getweboldstufflist) 91 | 92 | 93 | 94 | //获取个人公司详情 95 | router.post('/webadmin/getwebcompany', service.getwebcompany) 96 | //修改公司信息 97 | router.post('/webadmin/changewebcompany', service.changewebcompany) 98 | //添加岗位 99 | router.post('/webadmin/createjob', service.createjob) 100 | //删除工作 101 | router.post('/webadmin/deletejob', service.deletejob) 102 | //添加文章 103 | router.post('/webadmin/createarticle', service.createarticle) 104 | //文章列表 105 | router.post('/webadmin/articlelist', service.articlelist) 106 | //文章详情 107 | 108 | router.post('/webadmin/getarticledetails', service.getarticledetails) 109 | router.post('/webadmin/getoldstuffdetails', service.getoldstuffdetails) 110 | router.post('/webadmin/updatearticle', service.updatearticle) 111 | router.post('/webadmin/updateoldstuff', service.updateoldstuff) 112 | router.post('/webadmin/createfankui', service.createfankui) 113 | router.post('/webadmin/createjubao', service.createjubao) 114 | router.post('/webadmin/jubaocontent', service.jubaocontent) 115 | router.post('/webadmin/createshensu', service.createshensu) 116 | router.post('/webadmin/getusernumbering', service.getusernumbering) 117 | router.post('/webadmin/deletejoin', service.deletejoin) 118 | router.post('/webadmin/deleteoldstuff', service.deleteoldstuff) 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | module.exports = router 151 | -------------------------------------------------------------------------------- /tu/ht-gerenzhongxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-gerenzhongxin.png -------------------------------------------------------------------------------- /tu/ht-gl1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-gl1.png -------------------------------------------------------------------------------- /tu/ht-gl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-gl2.png -------------------------------------------------------------------------------- /tu/ht-shenhezhongxin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-shenhezhongxin1.png -------------------------------------------------------------------------------- /tu/ht-shenhezhongxin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-shenhezhongxin2.png -------------------------------------------------------------------------------- /tu/ht-shouye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-shouye.png -------------------------------------------------------------------------------- /tu/ht-yh1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-yh1.png -------------------------------------------------------------------------------- /tu/ht-yh2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/ht-yh2.png -------------------------------------------------------------------------------- /tu/qt-es-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-es-list.png -------------------------------------------------------------------------------- /tu/qt-grzx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-grzx.png -------------------------------------------------------------------------------- /tu/qt-hd-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-hd-list.png -------------------------------------------------------------------------------- /tu/qt-pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-pl.png -------------------------------------------------------------------------------- /tu/qt-sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-sy.png -------------------------------------------------------------------------------- /tu/qt-wd-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-wd-content.png -------------------------------------------------------------------------------- /tu/qt-wd-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-wd-list.png -------------------------------------------------------------------------------- /tu/qt-wz-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/tu/qt-wz-list.png -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /web/README.md: -------------------------------------------------------------------------------- 1 | # web 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /web/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ], 5 | plugins: [ 6 | "transform-remove-strict-mode" //配置插件,这里很重要 7 | ] 8 | 9 | } -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.19.1", 12 | "core-js": "^3.4.4", 13 | "echarts": "^4.7.0", 14 | "element": "^0.1.4", 15 | "element-ui": "^2.4.5", 16 | "moment": "^2.24.0", 17 | "vue": "^2.6.10", 18 | "vue-cookies": "^1.6.1", 19 | "vue-echarts": "^5.0.0-beta.0", 20 | "vue-router": "^3.1.3", 21 | "vue2-editor": "^2.10.2", 22 | "vuex": "^3.1.2" 23 | }, 24 | "devDependencies": { 25 | "@vue/cli-plugin-babel": "^4.1.0", 26 | "@vue/cli-plugin-eslint": "^4.1.0", 27 | "@vue/cli-plugin-router": "^4.1.2", 28 | "@vue/cli-service": "^4.1.0", 29 | "babel-eslint": "^10.0.3", 30 | "babel-plugin-transform-remove-strict-mode": "0.0.2", 31 | "eslint": "^5.16.0", 32 | "eslint-plugin-vue": "^5.0.0", 33 | "vue-cli-plugin-element": "^1.0.1", 34 | "vue-template-compiler": "^2.6.10" 35 | }, 36 | "eslintConfig": { 37 | "root": true, 38 | "env": { 39 | "node": true 40 | }, 41 | "extends": [ 42 | "plugin:vue/essential", 43 | "eslint:recommended" 44 | ], 45 | "rules": { 46 | "no-console": "off", 47 | "no-unused-vars": "off" 48 | }, 49 | "parserOptions": { 50 | "parser": "babel-eslint" 51 | } 52 | }, 53 | "browserslist": [ 54 | "> 1%", 55 | "last 2 versions" 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /web/public/favicon .ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/public/favicon .ico -------------------------------------------------------------------------------- /web/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 哈哈哈 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /web/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 23 | -------------------------------------------------------------------------------- /web/src/assets/css/ali.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; /* project id 1619251 */ 3 | src: url('//at.alicdn.com/t/font_1619251_7rezr6udav2.eot'); 4 | src: url('//at.alicdn.com/t/font_1619251_7rezr6udav2.eot?#iefix') format('embedded-opentype'), 5 | url('//at.alicdn.com/t/font_1619251_7rezr6udav2.woff2') format('woff2'), 6 | url('//at.alicdn.com/t/font_1619251_7rezr6udav2.woff') format('woff'), 7 | url('//at.alicdn.com/t/font_1619251_7rezr6udav2.ttf') format('truetype'), 8 | url('//at.alicdn.com/t/font_1619251_7rezr6udav2.svg#iconfont') format('svg'); 9 | } 10 | .iconfont{ 11 | font-family: 'iconfont'; 12 | } 13 | .iconfont{ 14 | font-size: 20px; 15 | } 16 | 17 | 18 | /**修改element样式**/ 19 | .el-carousel__indicators { 20 | z-index: -10; 21 | } -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/blue-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/blue-bg.jpg -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/devine-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/devine-art.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/facebook.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/flickr.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/footer-bg.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/google.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/linked-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/linked-in.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/rss.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/skype.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/stumble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/stumble.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/blue-skin/twitter.png -------------------------------------------------------------------------------- /web/src/assets/css/blue-skin5152.css: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------------------------------------------------------ */ 2 | /* -------------------------------------------------- Blue Skin ----------------------------------------------------- */ 3 | /* ------------------------------------------------------------------------------------------------------------------ */ 4 | /* Header ---------------------------------------------------------------------------------------------------------*/ 5 | .header-wrapper { 6 | background-color: #6392C6; 7 | } 8 | 9 | span.tag-line { 10 | color: #fff; 11 | } 12 | 13 | .main-nav div > ul > li a { 14 | color: #E3EDF8; 15 | } 16 | 17 | .main-nav .sub-menu li { 18 | background-color: #4A7AAF; 19 | } 20 | .main-nav .sub-menu li:hover { 21 | background-color: #3b618b; 22 | } 23 | 24 | .search-area-wrapper { 25 | background-image: url("blue-skin/blue-bg.jpg"); 26 | background-color: #4c4a77; 27 | } 28 | .search-area-wrapper form.search-form input.search-btn { 29 | background-color: #6392C6; 30 | } 31 | .search-area-wrapper form.search-form input.search-btn:hover { 32 | background-color: #588ac2; 33 | } 34 | 35 | /* Footer ------------------------------------------------------------------------------------------------------------*/ 36 | #footer-wrapper { 37 | background-image: url("blue-skin/footer-bg.png"); 38 | } 39 | 40 | #footer-bottom-wrapper { 41 | background-color: #2D3A4B; 42 | } 43 | 44 | #footer .widget { 45 | color: #7E95AF; 46 | } 47 | 48 | #footer .widget a { 49 | color: #fff; 50 | } 51 | 52 | #footer .widget ul li { 53 | border-color: #3E5064; 54 | } 55 | 56 | #footer .widget #twitter_update_list > ul > li span { 57 | color: #58687a; 58 | } 59 | 60 | #footer-bottom .copyright { 61 | color: #6F839B; 62 | } 63 | 64 | .flickr-photos img { 65 | background-color: #6F839B; 66 | } 67 | .flickr-photos img:hover { 68 | background-color: #9caaba; 69 | } 70 | 71 | .social-nav li.facebook a { 72 | background-image: url("blue-skin/facebook.png"); 73 | } 74 | .social-nav li.deviantart a { 75 | background-image: url("blue-skin/devine-art.png"); 76 | } 77 | .social-nav li.flickr a { 78 | background-image: url("blue-skin/flickr.png"); 79 | } 80 | .social-nav li.google a { 81 | background-image: url("blue-skin/google.png"); 82 | } 83 | .social-nav li.linkedin a { 84 | background-image: url("blue-skin/linked-in.png"); 85 | } 86 | .social-nav li.rss a { 87 | background-image: url("blue-skin/rss.png"); 88 | } 89 | .social-nav li.skype a { 90 | background-image: url("blue-skin/skype.png"); 91 | } 92 | .social-nav li.stumble a { 93 | background-image: url("blue-skin/stumble.png"); 94 | } 95 | .social-nav li.twitter a { 96 | background-image: url("blue-skin/twitter.png"); 97 | } 98 | 99 | a#scroll-top { 100 | background-color: #4278b4; 101 | } 102 | a#scroll-top:hover { 103 | background-color: #5085bf; 104 | } 105 | @media (min-width: 700px) { 106 | .ativity { 107 | width: 50%; 108 | float: left; 109 | } 110 | .oldstuffcontent { 111 | width: 40%; 112 | float: left; 113 | } 114 | } -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/devine-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/devine-art.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/facebook.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/faq-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/faq-minus.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/faq-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/faq-plus.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/flickr.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/footer-bg.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/google.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/green-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/green-bg.jpg -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/linked-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/linked-in.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/plus-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/plus-minus.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/rss.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/skype.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/stumble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/stumble.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/green-skin/twitter.png -------------------------------------------------------------------------------- /web/src/assets/css/green-skin5152.css: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------------------------------------------------------ */ 2 | /* -------------------------------------------------- Green Skin ---------------------------------------------------- */ 3 | /* ------------------------------------------------------------------------------------------------------------------ */ 4 | /* Header ---------------------------------------------------------------------------------------------------------*/ 5 | .header-wrapper { 6 | background-color: #4fb084; 7 | } 8 | 9 | span.tag-line { 10 | color: #ddf6e9; 11 | } 12 | 13 | .main-nav div > ul > li a { 14 | color: #ddf6e9; 15 | } 16 | 17 | .main-nav .sub-menu li { 18 | background-color: #34996c; 19 | } 20 | .main-nav .sub-menu li:hover { 21 | background-color: #277351; 22 | } 23 | 24 | .search-area-wrapper { 25 | background-image: url("green-skin/green-bg.jpg"); 26 | background-color: #229d8e; 27 | } 28 | .search-area-wrapper form.search-form input.search-btn { 29 | background-color: #4fb081; 30 | } 31 | .search-area-wrapper form.search-form input.search-btn:hover { 32 | background-color: #4aa579; 33 | } 34 | 35 | /* Footer ------------------------------------------------------------------------------------------------------------*/ 36 | #footer-wrapper { 37 | background-image: url("green-skin/footer-bg.png"); 38 | } 39 | 40 | #footer-bottom-wrapper { 41 | background-color: #2c493c; 42 | } 43 | 44 | #footer .widget { 45 | color: #7baa94; 46 | } 47 | 48 | #footer .widget a { 49 | color: #fff; 50 | } 51 | 52 | #footer .widget ul li { 53 | border-color: #3c614f; 54 | } 55 | 56 | #footer .widget #twitter_update_list > ul > li span { 57 | color: #537465; 58 | } 59 | 60 | #footer-bottom .copyright { 61 | color: #6c9683; 62 | } 63 | 64 | .flickr-photos img { 65 | background-color: #6c9683; 66 | } 67 | .flickr-photos img:hover { 68 | background-color: #99b6a9; 69 | } 70 | 71 | .social-nav li.facebook a { 72 | background-image: url("green-skin/facebook.png"); 73 | } 74 | .social-nav li.deviantart a { 75 | background-image: url("green-skin/devine-art.png"); 76 | } 77 | .social-nav li.flickr a { 78 | background-image: url("green-skin/flickr.png"); 79 | } 80 | .social-nav li.google a { 81 | background-image: url("green-skin/google.png"); 82 | } 83 | .social-nav li.linkedin a { 84 | background-image: url("green-skin/linked-in.png"); 85 | } 86 | .social-nav li.rss a { 87 | background-image: url("green-skin/rss.png"); 88 | } 89 | .social-nav li.skype a { 90 | background-image: url("green-skin/skype.png"); 91 | } 92 | .social-nav li.stumble a { 93 | background-image: url("green-skin/stumble.png"); 94 | } 95 | .social-nav li.twitter a { 96 | background-image: url("green-skin/twitter.png"); 97 | } 98 | 99 | a#scroll-top { 100 | background-color: #3f8d6a; 101 | } 102 | a#scroll-top:hover { 103 | background-color: #479e77; 104 | } 105 | 106 | .tabs-nav li.active a { 107 | color: #4fb084; 108 | border-top: 2px solid #4fb084; 109 | } 110 | 111 | .toggle dt span, 112 | .accordion dt span { 113 | background-image: url("green-skin/plus-minus.png"); 114 | } 115 | 116 | .faq-icon { 117 | background-image: url("green-skin/faq-plus.png"); 118 | } 119 | 120 | .faq-item.active .faq-icon { 121 | background-image: url("green-skin/faq-minus.png"); 122 | } 123 | 124 | .faq-item.active h3.faq-question { 125 | color: #3b4348; 126 | } 127 | -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/devine-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/devine-art.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/facebook.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/faq-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/faq-minus.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/faq-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/faq-plus.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/flickr.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/footer-bg.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/google.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/linked-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/linked-in.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/plus-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/plus-minus.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/red-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/red-bg.jpg -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/rss.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/skype.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/stumble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/stumble.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/css/red-skin/twitter.png -------------------------------------------------------------------------------- /web/src/assets/css/red-skin5152.css: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------------------------------------------------------ */ 2 | /* -------------------------------------------------- Red Skin ---------------------------------------------------- */ 3 | /* ------------------------------------------------------------------------------------------------------------------ */ 4 | /* Header ---------------------------------------------------------------------------------------------------------*/ 5 | 6 | 7 | .social-nav li.facebook a { 8 | background-image: url("red-skin/facebook.png"); 9 | } 10 | .social-nav li.deviantart a { 11 | background-image: url("red-skin/devine-art.png"); 12 | } 13 | .social-nav li.flickr a { 14 | background-image: url("red-skin/flickr.png"); 15 | } 16 | .social-nav li.google a { 17 | background-image: url("red-skin/google.png"); 18 | } 19 | .social-nav li.linkedin a { 20 | background-image: url("red-skin/linked-in.png"); 21 | } 22 | .social-nav li.rss a { 23 | background-image: url("red-skin/rss.png"); 24 | } 25 | .social-nav li.skype a { 26 | background-image: url("red-skin/skype.png"); 27 | } 28 | .social-nav li.stumble a { 29 | background-image: url("red-skin/stumble.png"); 30 | } 31 | .social-nav li.twitter a { 32 | background-image: url("red-skin/twitter.png"); 33 | } 34 | 35 | a#scroll-top { 36 | background-color: #8d433f; 37 | } 38 | a#scroll-top:hover { 39 | background-color: #9e4c47; 40 | } 41 | 42 | 43 | .toggle dt span, 44 | .accordion dt span { 45 | background-image: url("red-skin/plus-minus.png"); 46 | } 47 | 48 | .faq-icon { 49 | background-image: url("red-skin/faq-plus.png"); 50 | } 51 | 52 | .faq-item.active .faq-icon { 53 | background-image: url("red-skin/faq-minus.png"); 54 | } 55 | 56 | .faq-item.active h3.faq-question { 57 | color: #3b4348; 58 | } 59 | -------------------------------------------------------------------------------- /web/src/assets/images/Descr.WD3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/Descr.WD3 -------------------------------------------------------------------------------- /web/src/assets/images/calendar-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/calendar-icon.png -------------------------------------------------------------------------------- /web/src/assets/images/category-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/category-icon.png -------------------------------------------------------------------------------- /web/src/assets/images/category-main-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/category-main-icon.png -------------------------------------------------------------------------------- /web/src/assets/images/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/comment.png -------------------------------------------------------------------------------- /web/src/assets/images/devine-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/devine-art.png -------------------------------------------------------------------------------- /web/src/assets/images/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/facebook.png -------------------------------------------------------------------------------- /web/src/assets/images/faq-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/faq-minus.png -------------------------------------------------------------------------------- /web/src/assets/images/faq-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/faq-plus.png -------------------------------------------------------------------------------- /web/src/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/favicon.png -------------------------------------------------------------------------------- /web/src/assets/images/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/flickr.png -------------------------------------------------------------------------------- /web/src/assets/images/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/footer-bg.png -------------------------------------------------------------------------------- /web/src/assets/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /web/src/assets/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /web/src/assets/images/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/google.png -------------------------------------------------------------------------------- /web/src/assets/images/image-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/image-large.png -------------------------------------------------------------------------------- /web/src/assets/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/image.png -------------------------------------------------------------------------------- /web/src/assets/images/li-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/li-arrow.png -------------------------------------------------------------------------------- /web/src/assets/images/like-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/like-btn.png -------------------------------------------------------------------------------- /web/src/assets/images/like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/like.png -------------------------------------------------------------------------------- /web/src/assets/images/linked-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/linked-in.png -------------------------------------------------------------------------------- /web/src/assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/loading.gif -------------------------------------------------------------------------------- /web/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/logo.png -------------------------------------------------------------------------------- /web/src/assets/images/main-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/main-bg.jpg -------------------------------------------------------------------------------- /web/src/assets/images/noinfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/noinfo.png -------------------------------------------------------------------------------- /web/src/assets/images/plus-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/plus-minus.png -------------------------------------------------------------------------------- /web/src/assets/images/question-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/question-large.png -------------------------------------------------------------------------------- /web/src/assets/images/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/question.png -------------------------------------------------------------------------------- /web/src/assets/images/quote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/quote.png -------------------------------------------------------------------------------- /web/src/assets/images/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/rss.png -------------------------------------------------------------------------------- /web/src/assets/images/scroll-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/scroll-top.png -------------------------------------------------------------------------------- /web/src/assets/images/search-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/search-loader.gif -------------------------------------------------------------------------------- /web/src/assets/images/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/skype.png -------------------------------------------------------------------------------- /web/src/assets/images/standard-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/standard-large.png -------------------------------------------------------------------------------- /web/src/assets/images/standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/standard.png -------------------------------------------------------------------------------- /web/src/assets/images/stumble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/stumble.png -------------------------------------------------------------------------------- /web/src/assets/images/support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/support.png -------------------------------------------------------------------------------- /web/src/assets/images/temp/Descr.WD3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/temp/Descr.WD3 -------------------------------------------------------------------------------- /web/src/assets/images/temp/living-room-770x501.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/temp/living-room-770x501.jpg -------------------------------------------------------------------------------- /web/src/assets/images/temp/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/temp/man.png -------------------------------------------------------------------------------- /web/src/assets/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/twitter.png -------------------------------------------------------------------------------- /web/src/assets/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/user.png -------------------------------------------------------------------------------- /web/src/assets/images/video-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/video-large.png -------------------------------------------------------------------------------- /web/src/assets/images/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/images/video.png -------------------------------------------------------------------------------- /web/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoang6/xiaoyuan/50f0cf0869213886a030d560e5398cf0f8cebc18/web/src/assets/logo.png -------------------------------------------------------------------------------- /web/src/components/activity.vue: -------------------------------------------------------------------------------- 1 | 40 | 72 | 73 | 75 | -------------------------------------------------------------------------------- /web/src/components/carousel.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 52 | 53 | 54 | 74 | -------------------------------------------------------------------------------- /web/src/components/company.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 63 | -------------------------------------------------------------------------------- /web/src/components/foot.vue: -------------------------------------------------------------------------------- 1 | 102 | 103 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /web/src/components/help.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 67 | 68 | 69 | 71 | -------------------------------------------------------------------------------- /web/src/components/job.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 74 | 75 | 76 | 78 | -------------------------------------------------------------------------------- /web/src/components/news.vue: -------------------------------------------------------------------------------- 1 | 2 | 49 | 50 | 51 | 86 | -------------------------------------------------------------------------------- /web/src/components/oldstuff.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 39 | 69 | -------------------------------------------------------------------------------- /web/src/components/oldstuffhot.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 39 | 69 | -------------------------------------------------------------------------------- /web/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import './assets/css/blue-skin5152.css' 5 | import './assets/css/bootstrap5152.css' 6 | import './assets/css/green-skin5152.css' 7 | import './assets/css/main5152.css' 8 | import './assets/css/red-skin5152.css' 9 | import './assets/css/responsive5152.css' 10 | import './plugins/element.js' 11 | import ElementUI from 'element-ui'; 12 | import './assets/css/ali.css' 13 | 14 | 15 | //ecahrs 16 | import ECharts from 'vue-echarts' 17 | import 'echarts/lib/chart/bar' 18 | 19 | Vue.component('chart', ECharts) 20 | //vuex 21 | import Vuex from 'vuex' 22 | import store from './store' 23 | Vue.use(Vuex) 24 | //导入时间插件 25 | import moment from 'moment'; 26 | //在main.js 页面里添加自定义指令// 27 | Vue.directive('title', {//单个修改标题 28 | inserted: function (el, binding) { 29 | document.title = el.dataset.title 30 | } 31 | }) 32 | //定义全局时间过滤器 33 | Vue.filter('dataFormat', function (datastr, pattern = "YYYY-MM-DD HH:mm") { 34 | return moment(datastr).format(pattern) 35 | }) 36 | Vue.config.productionTip = false 37 | // aiox需要的包 38 | import axios from 'axios' 39 | // axios.defaults.withCredentials = true 40 | //aciox基础url 41 | axios.defaults.baseURL = 'http://127.0.0.1:3000'; 42 | 43 | // axios.defaults.baseURL = 'http://www.guoang.xyz:3000'; 44 | 45 | //将axios写成vue的原型属性 46 | Vue.prototype.$axios = axios; 47 | //为post请求设置默认请求头 48 | axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; 49 | //vue2中使用axios,我们请求的参数仍为json类型,是并没有序列化的。我们需要使用querystring解决该问题 50 | import qs from 'qs'; 51 | Vue.prototype.qs = qs; 52 | 53 | // 添加一个请求拦截器 54 | // http request 拦截器 55 | axios.interceptors.request.use( 56 | config => { 57 | let luffy_jwt_token =window.localStorage.getItem('luffy_jwt_token'); 58 | // console.log(luffy_jwt_token) 59 | config.headers.Authorization = `Bearer ${luffy_jwt_token}`; 60 | return config; 61 | }, 62 | err => { 63 | return Promise.reject(err); 64 | } 65 | ); 66 | 67 | // 添加一个响应拦截器 68 | axios.interceptors.response.use(function (response) { 69 | if (response.data && response.data.code) { 70 | if (parseInt(response.data.code) === 401) { 71 | //未登录 72 | ElementUI.Notification({ 73 | title: '警告', 74 | message: '登录过期请重新登录', 75 | type: 'warning' 76 | }); 77 | store.dispatch('user/close')//登录弹窗 78 | store.dispatch('user/deleteuserinfo')//清楚用户信息 79 | // routerIndex.push('/login'); 80 | } 81 | if (parseInt(response.data.code) === -1) { 82 | ElementUI.Notification({ 83 | title: '警告', 84 | message: '请求失败', 85 | type: 'warning' 86 | }); 87 | } 88 | } 89 | return response; 90 | }, function (error) { 91 | console.log(error) 92 | // Do something with response error 93 | console.dir(error); 94 | ElementUI.Notification({ 95 | title: '警告', 96 | message: '服务器连接失败', 97 | type: 'warning' 98 | }); 99 | return Promise.reject(error); 100 | }) 101 | 102 | 103 | new Vue({ 104 | router, 105 | store, 106 | render: h => h(App) 107 | }).$mount('#app') 108 | -------------------------------------------------------------------------------- /web/src/plugins/element.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Element from 'element-ui' 3 | import 'element-ui/lib/theme-chalk/index.css' 4 | 5 | Vue.use(Element) 6 | -------------------------------------------------------------------------------- /web/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import index from '../views/index.vue' 4 | import home from "../views/home.vue" 5 | import help from "../views//help.vue" 6 | import news from '../views/news.vue' 7 | import job from "../views/job.vue" 8 | import search from "../views/search.vue" 9 | import activity from "../views/activity.vue" 10 | import oldstuff from "../views/oldstuff.vue" 11 | import helpcontent from "../views/content/helpcontent.vue" 12 | import oldstuffcontent from "../views/content/oldstuffcontent.vue" 13 | import activitycontent from "../views/content/activitycontent.vue" 14 | import newscontent from "../views/content/newscontent.vue" 15 | import jobcontent from "../views/content/jobcontent.vue" 16 | import companycontent from "../views/content/companycontent.vue" 17 | import adminindex from "../views/webadmin/adminindex.vue" 18 | import adminhome from "../views/webadmin/adminhome.vue" 19 | import myself from "../views/webadmin/myself.vue" 20 | // import list from "../views/webadmin/list.vue" 21 | import notice from "../views/webadmin/notice.vue" 22 | import createhelp from "../views/webadmin/help/createhelp.vue" 23 | import createhelplist from "../views/webadmin/help/createhelplist.vue" 24 | import createactivity from "../views/webadmin/activity/createactivity.vue" 25 | import createactivitylist from "../views/webadmin/activity/createactivitylist.vue" 26 | import company from "../views/webadmin/job/company.vue" 27 | import createarticle from "../views/webadmin/article/createarticle.vue" 28 | import articlelist from "../views/webadmin/article/articlelist.vue" 29 | import createoldstuff from "../views/webadmin/oldstuff/createoldstuff.vue" 30 | import createoldstufflist from "../views/webadmin/oldstuff/createoldstufflist.vue" 31 | import fankui from "../views/kefu/fankui.vue" 32 | import jubao from "../views/kefu/jubao.vue" 33 | import shensu from "../views/kefu/shensu.vue" 34 | import Router from 'vue-router' 35 | 36 | Vue.use(VueRouter) 37 | 38 | /** 39 | * 重写路由的push方法 40 | */ 41 | const routerPush = Router.prototype.push 42 | Router.prototype.push = function push(location) { 43 | return routerPush.call(this, location).catch(error=> error) 44 | } 45 | const routes = [ 46 | // { path: '/', name: 'index', component: index, meta:{ispublic:true}}, 47 | { 48 | path: '/', name: 'index', component: index,meta:{ispublic:true}, children: [ 49 | { path: '', name: 'home', component: home, meta:{ispublic:true} }, 50 | { path: 'help', name: 'help', component: help, meta:{ispublic:true}}, 51 | { path: 'help/:tag', name: 'help', component: help,props:true ,meta:{ispublic:true }}, 52 | { path: 'search', name: 'search', component: search,meta:{ispublic:true }}, 53 | { path: 'helpcontent/:id', name: 'helpcontent', component: helpcontent,props:true, meta:{ispublic:true}}, 54 | { path: 'oldstuffcontent/:id', name: 'oldstuffcontent', component: oldstuffcontent,props:true, meta:{ispublic:true}}, 55 | { path: 'activitycontent/:id', name: 'activitycontent', component: activitycontent,props:true, meta:{ispublic:true}}, 56 | { path: 'newscontent/:id', name: 'newscontent', component: newscontent,props:true, meta:{ispublic:true}}, 57 | { path: 'jobcontent/:id', name: 'jobcontent', component: jobcontent,props:true, meta:{ispublic:true}}, 58 | { path: 'companycontent/:id', name: 'companycontent', component: companycontent,props:true, meta:{ispublic:true}}, 59 | { path: 'news', name: 'news', component: news, meta:{ispublic:true}}, 60 | { path: 'job', name: 'job', component: job, meta:{ispublic:true}}, 61 | { path: 'oldstuff', name: 'oldstuff', component: oldstuff, meta:{ispublic:true}}, 62 | { path: 'activity', name: 'activity', component: activity, meta:{ispublic:true}}, 63 | { path: 'fankui', name: 'fankui', component: fankui, meta:{ispublic:true}}, 64 | { path: 'jubao', name: 'jubao', component: jubao, meta:{ispublic:true}}, 65 | { path: 'shensu', name: 'shensu', component: shensu, meta:{ispublic:true}}, 66 | { 67 | path: 'admin', name: 'adminindex', component: adminindex, children: [ 68 | // { path: '*', redirect: 'admin/home', }, 69 | { path: '', name: 'adminhome', component: adminhome }, 70 | { path: 'myself', name: 'myself', component: myself }, 71 | { path: 'createhelp', name: 'createhelp', component: createhelp }, 72 | // { path: 'list', name: 'list', component: list }, 73 | { path: 'notice', name: 'notice', component: notice }, 74 | { path: 'updatehelp/:id', name: 'createhelp', component: createhelp ,props:true}, 75 | { path: 'createhelplist', name: 'createhelplist', component: createhelplist }, 76 | { path: 'updateactivity/:id', name: 'updateactivity', component: createactivity ,props:true}, 77 | { path: 'createactivitylist', name: 'createactivitylist', component: createactivitylist }, 78 | { path: 'createactivity', name: 'createactivity', component: createactivity }, 79 | { path: 'createarticle', name: 'createarticle', component: createarticle }, 80 | { path: 'updataarticle/:id', name: 'updataarticle', component: createarticle ,props:true}, 81 | { path: 'updateoldstuff/:id', name: 'updateoldstuff', component: createoldstuff ,props:true}, 82 | 83 | { path: 'articlelist', name: 'articlelist', component: articlelist }, 84 | { path: 'createoldstuff', name: 'createoldstuff', component: createoldstuff }, 85 | { path: 'createoldstufflist', name: 'createoldstufflist', component: createoldstufflist }, 86 | { path: 'company', name: 'company', component: company }, 87 | ] 88 | } 89 | ] 90 | }, 91 | ] 92 | 93 | const router = new VueRouter({ 94 | routes 95 | }) 96 | 97 | router.beforeEach((to,Form,next)=>{ 98 | // console.log(to) 99 | if(!to.meta.ispublic&&!localStorage.luffy_jwt_token){ 100 | return next('/home') 101 | } 102 | next() 103 | }) 104 | export default router 105 | -------------------------------------------------------------------------------- /web/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import user from './modules/user' 4 | Vue.use(Vuex) 5 | 6 | const state = { 7 | commentnum: '', 8 | contentid: '', 9 | contentname:'', 10 | contentuserid:'', 11 | // url:'http://localhost:8080', 12 | url:window.location.href.split('#')[0] 13 | } 14 | const getters = {} 15 | const mutations = { 16 | SET_CONTENTID(state, id) { 17 | state.contentid = id 18 | }, 19 | SET_COMMENTNUM(state, num) { 20 | state.commentnum = num 21 | }, 22 | SET_CONTENTINFO(state, data) { 23 | state.contentname = data.contentname 24 | state.contentuserid =data. contentuserid 25 | }, 26 | 27 | } 28 | const actions = { 29 | setcontentid({ commit }, data) { 30 | commit('SET_CONTENTID', data) 31 | }, 32 | setcommentnum({ commit }, data) { 33 | commit('SET_COMMENTNUM', data) 34 | }, 35 | setcontentinfo({ commit }, data) { 36 | commit('SET_CONTENTINFO', data) 37 | }, 38 | 39 | } 40 | export default new Vuex.Store({ 41 | state, 42 | actions, 43 | mutations, 44 | getters, 45 | modules: { 46 | user 47 | } 48 | 49 | }) 50 | 51 | 52 | -------------------------------------------------------------------------------- /web/src/store/modules/user.js: -------------------------------------------------------------------------------- 1 | const state = { 2 | islog: true, 3 | islogin: true, 4 | isclose: false, 5 | userinfo: JSON.parse(localStorage.getItem("userinfo")) || {avatar:''},//先去localStorage中获取数据 6 | unread: 0 7 | 8 | } 9 | const getters = { 10 | 11 | } 12 | const mutations = { 13 | SET_USERINFO(state, userinfo) { 14 | console.log(userinfo) 15 | state.userinfo = userinfo, 16 | localStorage.setItem('userinfo', JSON.stringify(userinfo)) 17 | }, 18 | CHANGE_ISLOG(state) { 19 | state.islog = !state.islog 20 | }, 21 | DELETE_USERINFO(state) { 22 | state.userinfo={avatar:''} 23 | window.localStorage.removeItem('userinfo') 24 | window.localStorage.removeItem('luffy_jwt_token') 25 | 26 | }, 27 | SET_TOKEN(state, data) { 28 | state.token = data 29 | window.localStorage.setItem('luffy_jwt_token', state.token); 30 | }, 31 | JOIN() { 32 | state.islogin = !state.islogin; 33 | }, 34 | CLOSE() { 35 | state.isclose = !state.isclose; 36 | }, 37 | SET_UNREAD(state, num) { 38 | state.unread = num 39 | }, 40 | } 41 | const actions = { 42 | setUserInfo({ commit }, data) { 43 | commit('SET_USERINFO', data) 44 | }, 45 | changeislog({ commit }) { 46 | commit('CHANGE_ISLOG') 47 | }, 48 | join({ commit }) { 49 | commit('JOIN') 50 | }, 51 | close({ commit }) { 52 | commit('CLOSE') 53 | }, 54 | deleteuserinfo({ commit }) { 55 | commit('DELETE_USERINFO') 56 | }, 57 | setToken({ commit }, data) { 58 | commit('SET_TOKEN', data) 59 | }, 60 | setunread({ commit }, data) { 61 | commit('SET_UNREAD', data) 62 | }, 63 | } 64 | export default { 65 | namespaced: true, 66 | state, 67 | getters, 68 | mutations, 69 | actions 70 | } -------------------------------------------------------------------------------- /web/src/views/activity.vue: -------------------------------------------------------------------------------- 1 | 73 | 74 | 75 | 137 | -------------------------------------------------------------------------------- /web/src/views/content/companycontent.vue: -------------------------------------------------------------------------------- 1 | 63 | 64 | 65 | 143 | -------------------------------------------------------------------------------- /web/src/views/content/jobcontent.vue: -------------------------------------------------------------------------------- 1 | 74 | 75 | 76 | 150 | -------------------------------------------------------------------------------- /web/src/views/help.vue: -------------------------------------------------------------------------------- 1 | 74 | 75 | 76 | 150 | -------------------------------------------------------------------------------- /web/src/views/home.vue: -------------------------------------------------------------------------------- 1 | 33 | 55 | -------------------------------------------------------------------------------- /web/src/views/job.vue: -------------------------------------------------------------------------------- 1 | 86 | 87 | 88 | 161 | -------------------------------------------------------------------------------- /web/src/views/kefu/fankui.vue: -------------------------------------------------------------------------------- 1 | 37 | 64 | -------------------------------------------------------------------------------- /web/src/views/kefu/jubao.vue: -------------------------------------------------------------------------------- 1 | 54 | 106 | -------------------------------------------------------------------------------- /web/src/views/news.vue: -------------------------------------------------------------------------------- 1 | 2 | 93 | 94 | 95 | 169 | -------------------------------------------------------------------------------- /web/src/views/oldstuff.vue: -------------------------------------------------------------------------------- 1 | 77 | 78 | 79 | 144 | -------------------------------------------------------------------------------- /web/src/views/webadmin/activity/createactivitylist.vue: -------------------------------------------------------------------------------- 1 | 60 | 61 | -------------------------------------------------------------------------------- /web/src/views/webadmin/adminhome.vue: -------------------------------------------------------------------------------- 1 | 35 | 102 | 115 | -------------------------------------------------------------------------------- /web/src/views/webadmin/adminindex.vue: -------------------------------------------------------------------------------- 1 | 46 | 63 | -------------------------------------------------------------------------------- /web/src/views/webadmin/article/articlelist.vue: -------------------------------------------------------------------------------- 1 | 45 | 46 | 116 | -------------------------------------------------------------------------------- /web/src/views/webadmin/article/createarticle.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 110 | -------------------------------------------------------------------------------- /web/src/views/webadmin/help/createhelp.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 164 | -------------------------------------------------------------------------------- /web/src/views/webadmin/help/createhelplist.vue: -------------------------------------------------------------------------------- 1 | 45 | 46 | 114 | -------------------------------------------------------------------------------- /web/src/views/webadmin/notice.vue: -------------------------------------------------------------------------------- 1 | 48 | 105 | -------------------------------------------------------------------------------- /web/src/views/webadmin/oldstuff/createoldstuff.vue: -------------------------------------------------------------------------------- 1 | 59 | 162 | 187 | 188 | -------------------------------------------------------------------------------- /web/src/views/webadmin/oldstuff/createoldstufflist.vue: -------------------------------------------------------------------------------- 1 | 68 | 69 | -------------------------------------------------------------------------------- /web/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: process.env.NODE_ENV === 'production' 3 | ? '/changhangtong/' 4 | : '/' 5 | } --------------------------------------------------------------------------------