├── .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 | 
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 | |  交流问答列表核 |  评论 |
85 | | ----------- | --------------- |
86 | |  校内活动列表核 |  二手信息列表 |
87 | | ----------- | --------------- |
88 | |  招聘列表核 |  文章列表 |
89 | ## 前台-个人中心
90 |
91 |
92 | # 后台
93 | ## 后台-首页
94 |
95 |
96 | ## 后台-个人中心
97 |
98 |
99 | ## 后台-审核中心
100 | | | |
101 | | --------------------------------------------------------------------------------------- | ------------------------------------------- |
102 | |  内容审核 |  评论审核 |
103 |
104 |
105 |
106 |
107 | ## 后台-用户中心
108 |
109 | | | |
110 | | --------------------------------------------------------------------------------------- | ------------------------------------------- |
111 | | 普通用户管理 |  管理员账号管理 |
112 |
113 |
114 |
115 |
116 | ## 后台-网站管理中心
117 |
118 | | | |
119 | | --------------------------------------------------------------------------------------- | ------------------------------------------- |
120 | | 分类管理 |  轮播图管理 |
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 |
2 |
3 |
4 |
5 |
6 |
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 |
2 |
3 |
{{ msg }}
4 |
5 | For a guide and recipes on how to configure / customize this project,
6 | check out the
7 | vue-cli documentation.
8 |
9 |
Installed CLI Plugins
10 |
14 |
Essential Links
15 |
22 |
Ecosystem
23 |
30 |
31 |
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 |
2 |
22 |
23 |
76 |
--------------------------------------------------------------------------------
/admin/src/views/loginparticles.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
23 |
24 |
25 |
44 |
--------------------------------------------------------------------------------
/admin/src/views/main.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
64 |
65 |
66 |
67 |
68 | “哈哈哈”信息平台
69 |
70 |
71 |
72 | {{uinfo.nickname}}
73 | 退出
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
120 |
--------------------------------------------------------------------------------
/admin/src/views/management/carousel.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 首页
7 | 网站管理里
8 | 轮播图管理
9 |
10 |
11 |
12 |
19 |
20 | 温馨提示:
21 | 填写完毕后按回车保存,如果上传图片前其相应的链接不为空,则自动完成相应的添加或修改动作
22 |
23 |
24 |
25 |
26 |
27 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
138 |
--------------------------------------------------------------------------------
/admin/src/views/management/managementlable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 首页
7 | 网站管理里
8 | 分类管理
9 |
10 |
11 |
12 |
13 |
{{lable.lable_name}}
14 |
15 | {{tag}}
24 |
32 | + 添加新的分类
33 |
34 |
35 |
36 |
37 |
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 |
2 |
3 |
4 |
5 |
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 |
2 |
39 |
40 |
72 |
73 |
75 |
--------------------------------------------------------------------------------
/web/src/components/carousel.vue:
--------------------------------------------------------------------------------
1 |
2 |
22 |
23 |
24 |
52 |
53 |
54 |
74 |
--------------------------------------------------------------------------------
/web/src/components/company.vue:
--------------------------------------------------------------------------------
1 |
2 |
22 |
23 |
24 |
63 |
--------------------------------------------------------------------------------
/web/src/components/foot.vue:
--------------------------------------------------------------------------------
1 |
2 |
101 |
102 |
103 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/web/src/components/help.vue:
--------------------------------------------------------------------------------
1 |
2 |
30 |
31 |
32 |
67 |
68 |
69 |
71 |
--------------------------------------------------------------------------------
/web/src/components/job.vue:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
74 |
75 |
76 |
78 |
--------------------------------------------------------------------------------
/web/src/components/news.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
15 |
20 |
21 |
22 | {{item.article_title}}
23 |
24 |
25 |
26 |
{{ item.article_createtime| dataFormat}}
27 |
28 | {{item.nickname}}
29 |
30 |
33 |
34 |
35 | {{item.article_read_num}}
36 |
37 |
38 |
39 |
40 |
41 |
42 | {{item.article_introduction}}
43 | ...查看更多
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
86 |
--------------------------------------------------------------------------------
/web/src/components/oldstuff.vue:
--------------------------------------------------------------------------------
1 |
2 |
36 |
37 |
38 |
39 |
69 |
--------------------------------------------------------------------------------
/web/src/components/oldstuffhot.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
35 |
36 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
活动区
13 |
14 |
15 |
28 |
53 |
58 |
59 |
60 |
61 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
137 |
--------------------------------------------------------------------------------
/web/src/views/content/companycontent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
公司规模:
17 | {{content.company_scale}}
18 |
19 |
20 |
21 |
22 |
23 | 公司介绍
24 |
25 | 岗位列表
26 |
27 |
28 |
29 | {{job.job_name}}
30 |
31 |
{{job.job_salary}}
32 |
33 |
34 |
35 |
36 |
37 |
38 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
143 |
--------------------------------------------------------------------------------
/web/src/views/content/jobcontent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
岗位名称:
17 | {{content.job_name}}
18 |
19 |
20 |
21 |
类型:
22 | {{content.job_lable}}
23 |
24 |
25 |
26 |
薪资:
27 | {{content.job_salary}}
28 |
29 |
30 |
31 |
招聘人数:
32 | {{content.job_num}}
33 |
34 |
35 |
36 |
投递方式:
37 | {{content.company_mail}}
38 |
39 |
40 |
41 |
42 |
43 | 岗位描述
44 |
45 | 公司信息
46 |
47 | {{content.company_name}}
48 |
49 |
50 |
51 |
52 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
150 |
--------------------------------------------------------------------------------
/web/src/views/help.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 问答区
14 | {{smallttle}}
15 |
16 |
17 |
18 |
34 |
54 |
59 |
60 |
61 |
62 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
150 |
--------------------------------------------------------------------------------
/web/src/views/home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
16 |
17 |
18 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
55 |
--------------------------------------------------------------------------------
/web/src/views/job.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 岗位
14 | {{smallttle}}
15 |
16 |
17 |
18 |
37 |
63 |
68 |
69 |
70 |
71 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
161 |
--------------------------------------------------------------------------------
/web/src/views/kefu/fankui.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 确定
23 | 取消
24 |
25 |
26 |
27 |
28 | 反馈成功
29 |
30 |
31 |
感谢您的反馈,我们会尽快做出处理,对于好的建议我们会进行采纳,并对平台做出相应的调整
32 |
33 |
34 |
35 |
36 |
37 |
64 |
--------------------------------------------------------------------------------
/web/src/views/kefu/jubao.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | 确定
40 | 取消
41 |
42 |
43 |
44 |
45 | 举报成功
46 |
47 |
48 |
感谢您的举报,我们会尽快做出处理,根据用户的违规程度,我们会对账号进行时间不等的封号处理,对于违规类容绝不姑息
49 |
50 |
51 |
52 |
53 |
54 |
106 |
--------------------------------------------------------------------------------
/web/src/views/news.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 |
19 |
38 |
39 |
44 |
45 |
46 | {{item.article_title}}
47 |
48 |
49 |
50 |
{{ item.article_createtime| dataFormat}}
51 |
52 | {{item.nickname}}
53 |
54 |
60 |
61 | {{item.article_read_num}}
62 |
63 |
64 |
65 |
66 |
67 |
68 | {{item.article_introduction}}
69 | ...查看更多
70 |
71 |
72 |
73 |
78 |
79 |
80 |
81 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
169 |
--------------------------------------------------------------------------------
/web/src/views/oldstuff.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
二手交易中心
13 |
14 |
15 |
28 |
55 |
61 |
62 |
63 |
64 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
144 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/activity/createactivitylist.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
活动管理
4 |
5 |
6 | 发布新的活动
11 |
12 |
13 | {{ scope.row.createtime | dataFormat }}
14 |
15 |
16 |
17 |
18 |
19 | 编辑
24 | 删除
25 |
26 |
27 |
28 |
36 |
37 |
38 |
39 |
40 | {{ scope.row.joins_createtime | dataFormat }}
41 |
42 |
43 |
44 |
45 |
46 |
49 |
50 | 查看
51 |
52 | 取消报名
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/adminhome.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
邮箱:
19 |
{{form.mail}}
20 |
21 |
22 |
QQ:
23 |
{{form.qq}}
24 |
25 |
26 |
个人简介:
27 |
{{form.synopsis}}
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
102 |
115 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/adminindex.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
63 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/article/articlelist.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
文章/新闻管理
6 |
7 |
8 | 发布文章/信息
13 |
14 |
15 |
16 |
17 | {{ scope.row.article_createtime | dataFormat }}
18 |
19 |
20 |
21 |
22 | {{ scope.row.ispublic |statefilter}}
23 |
24 |
25 |
26 | 编辑
31 | 删除
32 |
33 |
34 |
35 |
43 |
44 |
45 |
46 |
116 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/article/createarticle.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{id?'编辑':'创建' }}文章/新闻
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{item}}
19 |
20 |
21 |
26 |
27 |
28 | 确定
29 | 取消
30 |
31 |
32 |
33 |
34 |
35 |
110 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/help/createhelp.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{id?'编辑':'创建' }}信息
4 |
5 |
6 |
7 |
8 |
9 | {{item}}
16 |
17 |
18 | {{tag}}
25 |
34 | + 新标签
35 |
36 |
37 |
42 |
43 |
44 | 确定
45 | 取消
46 |
47 |
48 |
49 |
50 |
51 |
164 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/help/createhelplist.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
交流信息
6 |
7 |
8 | 发布交流信息
13 |
14 |
15 |
16 |
17 | {{ scope.row.createtime | dataFormat }}
18 |
19 |
20 |
21 |
22 | {{ scope.row.ispublic |statefilter}}
23 |
24 |
25 |
26 | 编辑
31 | 删除
32 |
33 |
34 |
35 |
43 |
44 |
45 |
46 |
114 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/notice.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
未读消息:{{unread}}/{{num}}
4 |
5 |
6 | 全部已读
12 | 全部删除
18 |
19 |
20 |
21 |
22 |
23 |

24 |
暂无消息通知
25 |
26 |
27 |
31 |
{{notice.createtime| dataFormat}}
32 |
{{notice.nickname}}
33 |
{{notice.action}}
34 |
35 | 来自 {{notice.router| platename}}
36 | {{notice.content_name}}
42 |
43 |
44 |
45 |
46 |
47 |
48 |
105 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/oldstuff/createoldstuff.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{id?'编辑':'发布' }}二手信息
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | {{item}}
32 |
33 |
34 |
39 |
40 |
41 | 确定
42 | 取消
43 |
44 |
45 |
46 |
47 |
48 |
49 | {{ scope.row.joins_createtime | dataFormat }}
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
162 |
187 |
188 |
--------------------------------------------------------------------------------
/web/src/views/webadmin/oldstuff/createoldstufflist.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
二手信息
4 |
5 |
6 |
7 | 发布二手信息
12 |
13 |
14 |
15 | {{ scope.row.createtime | dataFormat }}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 编辑
28 | 删除
29 |
30 |
31 |
32 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | {{ scope.row.joins_createtime | dataFormat }}
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | 查看
59 |
60 | 取消意向
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/web/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | publicPath: process.env.NODE_ENV === 'production'
3 | ? '/changhangtong/'
4 | : '/'
5 | }
--------------------------------------------------------------------------------
{{form.nickname}}
10 | 11 |认证用户
12 |未认证用户
13 |