├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ ├── Connect_logo_5.png │ ├── bootstrap4-business-tycoon.min.css │ ├── coding.svg │ ├── dingtalk.svg │ ├── gitee.svg │ ├── github.svg │ ├── oschina.svg │ └── qq_new.png ├── main.js ├── router │ └── index.js └── views │ ├── Callback.vue │ ├── Deploy.vue │ ├── Docs.vue │ ├── Feature.vue │ ├── Home.vue │ ├── Login.vue │ ├── NotFound.vue │ └── Proxy.vue ├── vercel.json └── vue.config.js /.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 | pnpm-debug.log* 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw? 23 | 24 | .vercel 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CoolPush的web客户端 2 | 3 | > 样例: https://cp.xuthus.cc 4 | 5 | ### 准备 6 | ``` 7 | npm install 8 | ``` 9 | 10 | ### 测试运行 11 | ``` 12 | npm run serve 13 | ``` 14 | 15 | ### 编译 16 | ``` 17 | npm run build 18 | ``` 19 | 20 | ### 需要做什么 21 | 22 | - 修改`src/main.js`文件,替换回调地址 23 | - 修改`src/views/Home.vue`文件,替换机器人QQ列表 -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ct", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build" 8 | }, 9 | "dependencies": { 10 | "axios": "^0.22.0", 11 | "bootstrap": "^5.1.2", 12 | "bootstrap-vue": "^2.21.2", 13 | "vue": "^2.6.14", 14 | "vue-router": "^3.5.2", 15 | "vue-sweetalert2": "^5.0.2" 16 | }, 17 | "devDependencies": { 18 | "@vue/cli-plugin-router": "~4.5.13", 19 | "@vue/cli-service": "~4.5.13", 20 | "sass": "^1.42.1", 21 | "sass-loader": "^12.1.0", 22 | "vue-template-compiler": "^2.6.14" 23 | }, 24 | "browserslist": [ 25 | "> 1%", 26 | "last 2 versions", 27 | "not dead" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoolPush/WebClient/5e2c97b7d3a58d1ea8e2a9759bccaebef8d5c1a8/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | CoolPush - 酷推 - QQ消息推送服务 13 | 14 | 15 | 16 | 17 | 18 | 22 |
23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/assets/Connect_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoolPush/WebClient/5e2c97b7d3a58d1ea8e2a9759bccaebef8d5c1a8/src/assets/Connect_logo_5.png -------------------------------------------------------------------------------- /src/assets/coding.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 6 | 7 | 8 | 10 | -------------------------------------------------------------------------------- /src/assets/dingtalk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/gitee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/assets/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/oschina.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /src/assets/qq_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoolPush/WebClient/5e2c97b7d3a58d1ea8e2a9759bccaebef8d5c1a8/src/assets/qq_new.png -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | 5 | import VueSweetalert2 from 'vue-sweetalert2'; 6 | 7 | import Axios from "axios"; 8 | import {BootstrapVue, IconsPlugin} from 'bootstrap-vue' 9 | 10 | import './assets/bootstrap4-business-tycoon.min.css' 11 | import 'bootstrap/dist/css/bootstrap.css' 12 | import 'bootstrap-vue/dist/bootstrap-vue.css' 13 | import 'sweetalert2/dist/sweetalert2.min.css'; 14 | 15 | Vue.use(BootstrapVue) 16 | Vue.use(IconsPlugin) 17 | Vue.use(VueSweetalert2); 18 | 19 | // axios挂载 20 | Vue.prototype.$api = Axios; 21 | //基地址 22 | Vue.prototype.serverUrl = 'https://push.xuthus.cc'; 23 | Vue.prototype.clientUrl = 'https://cp.xuthus.cc'; 24 | //授权回调地址 25 | Vue.prototype.github = 'https://github.com/login/oauth/authorize?client_id=cc74ff2d2f067e5671f1&redirect_uri=https://cp.xuthus.cc'; 26 | Vue.prototype.gitee = 'https://gitee.com/oauth/authorize?client_id=6c40ca5143961574faba6b8b9e49b5b6ecc9345ce8cc82eaa2b2d2a30b5f3c70&redirect_uri=https://cp.xuthus.cc&response_type=code&scope=user_info'; 27 | Vue.prototype.osc = 'https://www.oschina.net/action/oauth2/authorize?response_type=code&client_id=VVAVHVNBpANuC6PFuZhn&state=xuthus&redirect_uri=https://cp.xuthus.cc'; 28 | Vue.prototype.qq = 'https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id=101936300&redirect_uri=https://cp.xuthus.cc/?&scope=get_user_info&state=coolpush' 29 | Vue.prototype.dingTalk = 'https://oapi.dingtalk.com/connect/qrconnect?appid=dingoavfe0tqfbkvm1ccul&response_type=code&scope=snsapi_login&state=coolpush&redirect_uri=https://cp.xuthus.cc/?' 30 | // 当前年份 31 | Vue.prototype.fullYear = new Date().getFullYear(); 32 | 33 | Vue.config.productionTip = false 34 | 35 | new Vue({ 36 | router, 37 | render: function (h) { 38 | return h(App) 39 | } 40 | }).$mount('#app') 41 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const routes = [ 7 | { 8 | path: '/', 9 | name: 'Home', 10 | component: () => import('../views/Home.vue') 11 | }, 12 | { 13 | path: '/docs', 14 | name: 'Docs', 15 | component: () => import('../views/Docs.vue') 16 | }, 17 | { 18 | path: '/callback', 19 | name: 'Callback', 20 | component: () => import('../views/Callback.vue') 21 | }, 22 | { 23 | path: '/deploy', 24 | name: 'Deploy', 25 | component: () => import('../views/Deploy.vue') 26 | }, 27 | { 28 | path: '/login', 29 | name: 'Login', 30 | component: () => import('../views/Login.vue') 31 | }, 32 | { 33 | path: '/feat', 34 | name: 'Feat', 35 | component: () => import('../views/Feature.vue') 36 | }, 37 | { 38 | path: '/proxy', 39 | name: 'Proxy', 40 | component: () => import('../views/Proxy.vue') 41 | }, 42 | { 43 | path: '/*', 44 | name: 'NotFound', 45 | // component: () => import('../views/NotFound.vue') 46 | redirect: { name: 'Home' } 47 | } 48 | ] 49 | 50 | const router = new VueRouter({ 51 | mode: 'history', 52 | base: process.env.BASE_URL, 53 | routes 54 | }) 55 | 56 | export default router 57 | -------------------------------------------------------------------------------- /src/views/Callback.vue: -------------------------------------------------------------------------------- 1 | 66 | 67 | 144 | 145 | 168 | -------------------------------------------------------------------------------- /src/views/Deploy.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | -------------------------------------------------------------------------------- /src/views/Docs.vue: -------------------------------------------------------------------------------- 1 | 240 | 241 | 249 | 250 | 284 | -------------------------------------------------------------------------------- /src/views/Feature.vue: -------------------------------------------------------------------------------- 1 | 495 | 496 | 1212 | 1213 | 1278 | -------------------------------------------------------------------------------- /src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 396 | 397 | 895 | 896 | 961 | -------------------------------------------------------------------------------- /src/views/Login.vue: -------------------------------------------------------------------------------- 1 | 138 | 139 | 172 | 173 | 201 | -------------------------------------------------------------------------------- /src/views/NotFound.vue: -------------------------------------------------------------------------------- 1 | 349 | 350 | -------------------------------------------------------------------------------- /src/views/Proxy.vue: -------------------------------------------------------------------------------- 1 | 150 | 151 | 246 | 247 | 323 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "routes": [ 4 | { "src": "/css/(.*)", "dest": "dist/css/$1" }, 5 | { "src": "/js/(.*)", "dest": "dist/js/$1" }, 6 | { "src": "/img/(.*)", "dest": "dist/img/$1" }, 7 | { "src": "/", "dest": "dist/index.html" }, 8 | { "src": "/(.*)", "dest": "dist/index.html" } 9 | ] 10 | } -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | devServer: { 3 | port: 80, // 端口号 4 | }, 5 | // productionSourceMap: false 6 | }; 7 | --------------------------------------------------------------------------------