Commit c3f5f532 by 无尘

feat: 增加谷歌插件

parent 729740d2
{
"plugins": [
"@babel/plugin-proposal-optional-chaining"
],
"presets": [
["@babel/preset-env", {
"useBuiltIns": "usage",
"corejs": 3,
"targets": {
// https://jamie.build/last-2-versions
"browsers": ["> 0.25%", "not ie 11", "not op_mini all"]
}
}]
]
}
// https://eslint.org/docs/user-guide/configuring
// File taken from https://github.com/vuejs-templates/webpack/blob/1.3.1/template/.eslintrc.js, thanks.
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
},
env: {
browser: true,
webextensions: true,
},
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
'standard',
// https://prettier.io/docs/en/index.html
'plugin:prettier/recommended'
],
// required to lint *.vue files
plugins: [
'vue'
],
// add your custom rules here
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
}
}
/node_modules
/*.log
/dist-zip
{
"singleQuote": true,
"printWidth": 180,
"trailingComma": "es5"
}
MIT License
Copyright (c) 2020 front-ends-developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# vue-chrom-plugin
>vue-chrom-plugin
>[jQuery 版本](https://github.com/front-ends-developers/chrom-plugin-base)
## Usage
```bash
$ git clone
$ npm install
$ npm run build
```
### `npm run build`
Build the extension into `dist` folder for **production**.
### `npm run build:dev`
Build the extension into `dist` folder for **development**.
### `npm run watch`
Watch for modifications then run `npm run build`.
### `npm run watch:dev`
Watch for modifications then run `npm run build:dev`.
## creat new extension
```
$ vue init kocal/vue-web-extension my-extension
$ cd my-extension
$ npm install
$ npm run build
```
\ No newline at end of file
{
"pluginDesc": {"message": "A simple chrome extension demo"},
"helloWorld": {"message": "Hello World!"}
}
\ No newline at end of file
{
"pluginDesc": {"message": "一个简单的Chrome插件demo"},
"helloWorld": {"message": "你好啊,世界!"}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "vue-chrom-plugin",
"description": "A Vue.js web extension",
"version": "1.0.0",
"manifest_version": 2,
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
},
"browser_action": {
"default_icon": "images/icon38.png",
"default_title": "vue-chrom-plugin",
"default_popup": "popup/popup.html"
},
"background": {
"scripts": [
"background.js"
]
},
"options_ui": {
"page": "options/options.html",
"chrome_style": true
},
"permissions": [
"contextMenus",
"tabs",
"notifications",
"webRequest",
"webRequestBlocking",
"storage",
"http://*/*",
"https://*/*"
],
"homepage_url": "https://github.com/front-ends-developers/chrom-plugin-base/tree/open-web",
"default_locale": "zh_CN"
}
\ No newline at end of file
p[data-v-e6e07dd4] {
font-size: 20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue-chrom-plugin - Options</title>
<link rel="stylesheet" href="options.css">
</head>
<body>
<div id="app"></div>
<script src="options.js"></script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
p[data-v-06dcbd9e]{font-size:20px}
* {
margin: 0;
padding: 0;
}
body {
font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
width: 500px;
min-height: 100px;
}
a {
text-decoration: none;
}
ul, li {
list-style: none;
}
.p-b-20 {
padding-bottom: 20px;
}
.m-b-20 {
margin-bottom: 20px;
}
/* flex */
.flex {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flex-1 {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flex-column {
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
-o-flex-direction: column;
flex-direction: column;
}
.flex-row {
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
-o-flex-direction: row;
flex-direction: row;
}
.flex-align-center {
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-pack-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.flex-start {
-webkit-justify-content: flex-start;
-moz-justify-content: flex-start;
-ms-justify-content: flex-start;
-o-justify-content: flex-start;
justify-content: flex-start;
}
.flex-wrap {
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
}
.flex-space-between {
-webkit-justify-content: space-between;
-moz-justify-content: space-between;
-ms-justify-content: space-between;
-o-justify-content: space-between;
justify-content: space-between;
}
/* 彩色文字 */
.colour-text {
background: -webkit-gradient(linear,left top,right top,from(#ff8a00),to(#da1b60));
background: linear-gradient(to right,#ff8a00,#da1b60);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
font-weight: 700;
}
.pop-content {
width: 100%;
padding: 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.pop-content h1 {
padding-bottom: 10px;
font-size: 18px;
color: #232323
}
.common-title {
border-bottom: 1px solid #85cdf7;
}
.pop-content h1 img {
display: inline-block;
vertical-align: middle;
height: 24px;
padding-right: 6px;
}
.common-ul li {
display: inline-block;
width: 32%;
padding: 20px;
margin-right: 6px;
margin-bottom: 20px;
text-align: center;
border-radius: 4px;
border: 1px dashed #eaf4f9;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.common-ul li:nth-child(3n+3) {
margin-right: 0;
}
.common-ul li:hover {
border-radius: 6px;
border: 1px dashed #1890ff;
background: #94d6fc;
box-shadow: 1px 1px 3px #ececec, -1px -1px 3px #ececec
}
.common-ul img {
width: 40px;
}
.common-ul p {
font-size: 14px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
<link rel="stylesheet" href="popup.css">
</head>
<body>
<div id="app">
</div>
<script src="popup.js"></script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "vue-chrom-plugin",
"version": "1.0.0",
"description": "A Vue.js web extension",
"author": "yhq <yueheqing@demogic.com>",
"license": "MIT",
"engines": {
"node": ">=10"
},
"scripts": {
"lint": "eslint --ext .js,.vue src",
"prettier": "prettier \"src/**/*.{js,vue}\"",
"prettier:write": "npm run prettier -- --write",
"build": "cross-env NODE_ENV=production webpack --hide-modules",
"build:dev": "cross-env NODE_ENV=development webpack --hide-modules",
"build-zip": "node scripts/build-zip.js",
"watch": "npm run build -- --watch",
"watch:dev": "cross-env HMR=true npm run build:dev -- --watch"
},
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged"
}
},
"dependencies": {
"axios": "^0.19.0",
"vue": "^2.6.10",
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"webextension-polyfill": "^0.3.1"
},
"devDependencies": {
"@babel/core": "^7.1.2",
"@babel/plugin-proposal-optional-chaining": "^7.0.0",
"@babel/preset-env": "^7.1.0",
"@babel/runtime-corejs3": "^7.4.0",
"archiver": "^3.0.0",
"babel-eslint": "^10.0.3",
"babel-loader": "^8.0.2",
"copy-webpack-plugin": "^5.1.1",
"core-js": "^3.0.1",
"cross-env": "^5.2.0",
"css-loader": "^3.4.0",
"ejs": "^2.6.1",
"eslint": "^6.6.0",
"eslint-config-prettier": "^6.7.0",
"eslint-config-standard": "^14.1.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^3.0.2",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-node": "^10.0.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"eslint-plugin-vue": "^6.0.1",
"file-loader": "^5.0.2",
"husky": "^2.4.0",
"mini-css-extract-plugin": "^0.9.0",
"node-sass": "^4.9.3",
"prettier": "^1.17.1",
"pretty-quick": "^1.8.0",
"sass-loader": "^7.1.0",
"vue-loader": "^15.4.2",
"vue-template-compiler": "^2.6.10",
"web-ext-types": "^2.1.0",
"webpack": "^4.20.2",
"webpack-cli": "^3.3.10",
"webpack-extension-reloader": "^1.1.0"
}
}
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const archiver = require('archiver');
const DEST_DIR = path.join(__dirname, '../dist');
const DEST_ZIP_DIR = path.join(__dirname, '../dist-zip');
const extractExtensionData = () => {
const extPackageJson = require('../package.json');
return {
name: extPackageJson.name,
version: extPackageJson.version
}
};
const makeDestZipDirIfNotExists = () => {
if(!fs.existsSync(DEST_ZIP_DIR)) {
fs.mkdirSync(DEST_ZIP_DIR);
}
}
const buildZip = (src, dist, zipFilename) => {
console.info(`Building ${zipFilename}...`);
const archive = archiver('zip', { zlib: { level: 9 }});
const stream = fs.createWriteStream(path.join(dist, zipFilename));
return new Promise((resolve, reject) => {
archive
.directory(src, false)
.on('error', err => reject(err))
.pipe(stream);
stream.on('close', () => resolve());
archive.finalize();
});
};
const main = () => {
const {name, version} = extractExtensionData();
const zipFilename = `${name}-v${version}.zip`;
makeDestZipDirIfNotExists();
buildZip(DEST_DIR, DEST_ZIP_DIR, zipFilename)
.then(() => console.info('OK'))
.catch(console.err);
};
main();
{
"pluginDesc": {"message": "A simple chrome extension demo"},
"helloWorld": {"message": "Hello World!"}
}
\ No newline at end of file
{
"pluginDesc": {"message": "一个简单的Chrome插件demo"},
"helloWorld": {"message": "你好啊,世界!"}
}
\ No newline at end of file
import store from './store';
global.browser = require('webextension-polyfill');
document.addEventListener('DOMContentLoaded', function() {
console.log('我被执行了!');
});
/*
* 添加右键百度搜索
*/
chrome.contextMenus.create({
title: '使用百度搜索:%s', // %s表示选中的文字
contexts: ['selection'], // 只有当选中文字时才会出现此右键菜单
onclick: function(params)
{
// 注意不能使用location.href,因为location是属于background的window对象
chrome.tabs.create({url: 'https://www.baidu.com/s?ie=utf-8&wd=' + encodeURI(params.selectionText)});
}
});
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse)
{
console.log('收到来自content-script的消息:');
console.log(request, sender, sendResponse);
sendResponse('我是后台,我已收到你的消息:' + JSON.stringify(request));
});
* {
margin: 0;
padding: 0;
}
body {
font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
width: 500px;
min-height: 100px;
}
a {
text-decoration: none;
}
ul, li {
list-style: none;
}
.p-b-20 {
padding-bottom: 20px;
}
.m-b-20 {
margin-bottom: 20px;
}
/* flex */
.flex {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flex-1 {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flex-column {
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
-o-flex-direction: column;
flex-direction: column;
}
.flex-row {
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
-o-flex-direction: row;
flex-direction: row;
}
.flex-align-center {
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-pack-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.flex-start {
-webkit-justify-content: flex-start;
-moz-justify-content: flex-start;
-ms-justify-content: flex-start;
-o-justify-content: flex-start;
justify-content: flex-start;
}
.flex-wrap {
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
}
.flex-space-between {
-webkit-justify-content: space-between;
-moz-justify-content: space-between;
-ms-justify-content: space-between;
-o-justify-content: space-between;
justify-content: space-between;
}
/* 彩色文字 */
.colour-text {
background: -webkit-gradient(linear,left top,right top,from(#ff8a00),to(#da1b60));
background: linear-gradient(to right,#ff8a00,#da1b60);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
font-weight: 700;
}
\ No newline at end of file
.pop-content {
width: 100%;
padding: 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.pop-content h1 {
padding-bottom: 10px;
font-size: 18px;
color: #232323
}
.common-title {
border-bottom: 1px solid #85cdf7;
}
.pop-content h1 img {
display: inline-block;
vertical-align: middle;
height: 24px;
padding-right: 6px;
}
.common-ul li {
display: inline-block;
width: 32%;
padding: 20px;
margin-right: 6px;
margin-bottom: 20px;
text-align: center;
border-radius: 4px;
border: 1px dashed #eaf4f9;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.common-ul li:nth-child(3n+3) {
margin-right: 0;
}
.common-ul li:hover {
border-radius: 6px;
border: 1px dashed #1890ff;
background: #94d6fc;
box-shadow: 1px 1px 3px #ececec, -1px -1px 3px #ececec
}
.common-ul img {
width: 40px;
}
.common-ul p {
font-size: 14px;
}
\ No newline at end of file
{
"name": "vue-chrom-plugin",
"description": "A Vue.js web extension",
"version": 1.0,
"manifest_version": 2,
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
},
"browser_action": {
"default_icon": "images/icon38.png",
"default_title": "vue-chrom-plugin",
"default_popup": "popup/popup.html"
},
"background": {
"scripts": [
"background.js"
]
},
"options_ui": {
"page": "options/options.html",
"chrome_style": true
},
"permissions": [
"contextMenus",
"tabs",
"notifications",
"webRequest",
"webRequestBlocking",
"storage",
"http://*/*",
"https://*/*"
],
"homepage_url": "https://github.com/front-ends-developers/chrom-plugin-base/tree/open-web",
"default_locale": "zh_CN"
}
<template>
<div>
<p>Hello world!</p>
</div>
</template>
<script>
export default {
name: 'App',
};
</script>
<style scoped>
p {
font-size: 20px;
}
</style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue-chrom-plugin - Options</title>
<link rel="stylesheet" href="options.css">
<% if (NODE_ENV === 'development') { %>
<!-- Load some resources only in development environment -->
<% } %>
</head>
<body>
<div id="app"></div>
<script src="options.js"></script>
</body>
</html>
import Vue from 'vue';
import App from './App';
global.browser = require('webextension-polyfill');
/* eslint-disable no-new */
new Vue({
el: '#app',
render: h => h(App),
});
<template>
<div>
<router-view></router-view>
</div>
</template>
<script>
export default {
data() {
return {};
},
};
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
<link rel="stylesheet" href="popup.css">
<% if (NODE_ENV === 'development') { %>
<!-- Load some resources only in development environment -->
<% } %>
</head>
<body>
<div id="app">
</div>
<script src="popup.js"></script>
</body>
</html>
import Vue from 'vue';
import App from './App';
import store from '../store';
import router from './router';
import '../css/base.css';
import '../css/pop.css';
global.browser = require('webextension-polyfill');
Vue.prototype.$browser = global.browser;
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
render: h => h(App),
});
import Vue from 'vue';
import VueRouter from 'vue-router';
import routes from './routes';
Vue.use(VueRouter);
export default new VueRouter({
routes,
});
<template>
<div class="pop-content">
<h1 class="m-b-20 common-title"><img src="../../../images/title32.png" alt="" />综合网址</h1>
<ul class="common-ul dev-ul flex flex-start flex-wrap">
<li v-for="(item, index) in baseWeb" :key="index+'base'">
<a href="#" id="tapd" @click="toUrl(item)">
<img :src="item.src" />
<p class="colour-text">{{ item.webName }}</p>
</a>
</li>
</ul>
<br />
<h1 class="m-b-20 common-title"><img src="../../../images/title32.png" alt="" />3.0开发环境</h1>
<ul class="common-ul dev-ul flex flex-start flex-wrap">
<li v-for="(item, index) in threeDevWeb" :key="index+'three'">
<a href="#" id="tapd" @click="toUrl(item)">
<img :src="item.src" />
<p class="colour-text">{{ item.webName }}</p>
</a>
</li>
</ul>
<br />
<h1 class="m-b-20 common-title "><img src="../../../images/title32.png" alt="" />3.0生产环境</h1>
<ul class="common-ul pro-ul flex flex-start flex-wrap">
<li v-for="(item, index) in threeProWeb" :key="index+'threep'">
<a href="#" id="tapd" @click="toUrl(item)">
<img :src="item.src" />
<p class="colour-text">{{ item.webName }}</p>
</a>
</li>
</ul>
<h1 class="m-b-20 common-title "><img src="../../../images/title32.png" alt="" />4.0开发环境</h1>
<ul class="common-ul pro-ul flex flex-start flex-wrap">
<li v-for="(item, index) in fourDevWeb" :key="index+'four'">
<a href="#" id="tapd" @click="toUrl(item)">
<img :src="item.src" />
<p class="colour-text">{{ item.webName }}</p>
</a>
</li>
</ul>
<h1 class="m-b-20 common-title "><img src="../../../images/title32.png" alt="" />4.0生产环境</h1>
<ul class="common-ul pro-ul flex flex-start flex-wrap">
<li v-for="(item, index) in fourProWeb" :key="index+'fourp'">
<a href="#" id="tapd" @click="toUrl(item)">
<img :src="item.src" />
<p class="colour-text">{{ item.webName }}</p>
</a>
</li>
</ul>
</div>
</template>
<script>
import { baseWeb } from './base-web.js';
import { threeDevWeb } from './three-dev-web.js';
import { threeProWeb } from './three-pro-web.js';
import { fourDevWeb } from './four-dev-web.js';
import { fourProWeb } from './four-pro-web.js';
export default {
data() {
return {
baseWeb: baseWeb,
threeDevWeb: threeDevWeb,
threeProWeb: threeProWeb,
fourDevWeb: fourDevWeb,
fourProWeb: fourProWeb,
};
},
methods: {
/**
* 跳转网址
* @param {Object} item
*/
toUrl(item) {
window.open(item.url)
}
}
};
</script>
<style lang="scss" scoped>
p {
font-size: 20px;
}
</style>
\ No newline at end of file
export const baseWeb = [
{
src: require('../../../images/tapd.png'),
webName: 'Tapd',
url: 'https://www.tapd.cn/my_worktable/#&filter_close=true'
},
{
src: require('../../../images/jenkins.png'),
webName: 'Jenkins',
url: 'http://123.207.187.158:8888/jenkins/'
},
{
src: require('../../../images/gitlab.png'),
webName: 'Gitlab',
url: 'http://115.159.76.241/dashboard/groups'
},
{
src: require('../../../images/api.png'),
webName: 'Yapi',
url: 'http://yapi.gicdev.com'
},
{
src: require('../../../images/yuque.png'),
webName: '语雀',
url: 'https://www.yuque.com/kgrc1y'
},
{
src: require('../../../images/lanhu.png'),
webName: '蓝湖',
url: 'https://next.lanhuapp.com/web/#/item?fid=9af0d2e6-82bf-44b2-9f01-8c142a3fc99c&commonly=all'
},
]
\ No newline at end of file
export const fourDevWeb = [
{
src: require('../../../images/logo45.png'),
webName: '达摩网络',
url: 'https://www.demogic.com/',
},
{
src: require('../../../images/logo45.png'),
webName: '运维4.0',
url: 'https://four.gicdev.com/operation-platform/#/',
},
{
src: require('../../../images/logo45.png'),
webName: 'API网关4.0',
url: 'https://four.gicdev.com/gateway-web/#/',
},
{
src: require('../../../images/logo45.png'),
webName: '开放平台官网4.0',
url: 'https://four.gicdev.com/open-platform/#/index',
},
{
src: require('../../../images/logo45.png'),
webName: '应用中心4.0',
url: 'https://four.gicdev.com/app-center/applyIndex',
},
{
src: require('../../../images/logo45.png'),
webName: '服务市场4.0',
url: 'https://four.gicdev.com/market/index',
},
{
src: require('../../../images/logo45.png'),
webName: 'GIC商户后台登录4.0',
url: 'https://four.gicdev.com/damo-system/login',
},
{
src: require('../../../images/logo45.png'),
webName: '开发者中心4.0',
url: 'https://four.gicdev.com/gic-app-center/',
},
{
src: require('../../../images/logo40.png'),
webName: '好办 4.0',
url: 'https://four.gicdev.com/haoban-4/contactsList',
},
];
export const fourProWeb = [
{
src: require('../../../images/logo45.png'),
webName: '运维4.0',
url: 'https://ideal.demogic.com/operation-platform/#/',
},
{
src: require('../../../images/logo45.png'),
webName: 'API网关4.0',
url: 'https://ideal.demogic.com/gateway-web/#/',
},
{
src: require('../../../images/logo45.png'),
webName: '开放平台官网4.0',
url: 'https://ideal.demogic.com/open-platform/#/index',
},
{
src: require('../../../images/logo45.png'),
webName: '应用中心4.0',
url: 'https://ideal.demogic.com/app-center/applyIndex',
},
{
src: require('../../../images/logo45.png'),
webName: '服务市场4.0',
url: 'https://ideal.demogic.com/market/index',
},
{
src: require('../../../images/logo45.png'),
webName: 'GIC商户后台登录4.0',
url: 'https://ideal.demogic.com/damo-system/login',
},
{
src: require('../../../images/logo45.png'),
webName: '开发者中心4.0',
url: 'https://ideal.demogic.com/gic-app-center/',
},
{
src: require('../../../images/logo40.png'),
webName: '好办 4.0',
url: 'https://ideal.demogic.com/haoban-4/contactsList',
},
];
export const threeDevWeb = [
{
src: require('../../../images/logo45.png'),
webName: 'GIC-WEB',
url: 'http://gicdev.demogic.com/gic-web/#/login'
},
{
src: require('../../../images/logo40.png'),
webName: '好办 2.0 web',
url: 'https://www.gicdev.com/haoban-web/#/login/'
},
{
src: require('../../../images/logo40.png'),
webName: '好办3.0 web',
url: 'https://www.gicdev.com/haoban-3/#/login'
},
{
src: require('../../../images/logo45.png'),
webName: '老运维',
url: 'http://gicdev.demogic.com/gic-operations/manage_list'
},
{
src: require('../../../images/logo45.png'),
webName: '新运维',
url: 'https://www.gicdev.com/operation-platform/#/'
},
{
src: require('../../../images/logo45.png'),
webName: '分享有礼',
url: 'http://gicdev.demogic.com/share-config/shareIndex'
}
]
\ No newline at end of file
export const threeProWeb = [
{
src: require('../../../images/logo45.png'),
webName: 'GIC-WEB',
url: 'https://hope.demogic.com/gic-web/#/login',
},
{
src: require('../../../images/logo40.png'),
webName: '好办 2.0 web',
url: 'http://www.demosom.com/haoban-web/#/login',
},
{
src: require('../../../images/logo40.png'),
webName: '好办3.0 web',
url: 'https://www.demosom.com/haoban-3/#/login',
},
{
src: require('../../../images/logo45.png'),
webName: '老运维',
url: 'https://hope.demogic.com/gic-operations/manage_list',
},
{
src: require('../../../images/logo45.png'),
webName: '新运维',
url: 'https://hope.demogic.com/operation-platform/#/',
},
{
src: require('../../../images/logo45.png'),
webName: '分享有礼',
url: 'http://hope.demogic.com/share-config/shareIndex',
},
];
import index from './pages/index';
export default [
{
path: '/',
component: index,
},
];
import * as types from './mutation-types';
export const setFoo = ({ commit }, payload) => {
commit(types.UPDATE_FOO, payload);
};
export const foo = state => state.foo;
import Vue from 'vue';
import Vuex from 'vuex';
import * as getters from './getters';
import mutations from './mutations';
import * as actions from './actions';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
foo: 'bar',
},
getters,
mutations,
actions,
});
export const UPDATE_FOO = 'UPDATE_FOO';
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment