Commit 68a2195c authored by 郝聪敏's avatar 郝聪敏

添加prettier

parent 9216a9cc
......@@ -9,13 +9,16 @@ module.exports = {
extends: [
'plugin:vue/essential',
'standard',
'prettier',
],
plugins: [
'vue',
'prettier',
],
rules: {
'prettier/prettier': 'error',
// 防止iview的标签报错
"vue/no-parsing-error": [2, { "x-invalid-end-tag": false }],
'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }],
},
}
This diff is collapsed.
......@@ -6,13 +6,13 @@
<script>
export default {
name: 'App'
}
name: "App"
};
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* text-align: center;
......
import axios from '../services/http.service'
import {
sapi
} from '../config'
import qs from 'qs'
import axios from "../services/http.service";
import { sapi } from "../config";
import qs from "qs";
// 获取服务列表
export function getservicelist () {
return axios.get(`/heimdallr/service/list`)
export function getservicelist() {
return axios.get(`/heimdallr/service/list`);
}
// 获取文字说明
export function getkey (key) {
return axios.get(`/heimdallr/get-key-explain/${key}`)
export function getkey(key) {
return axios.get(`/heimdallr/get-key-explain/${key}`);
}
// 获取配置列表
export function getconfigurelist (data) {
return axios.get(`/heimdallr/config/service/${data.key}/${data.service_name}`)
export function getconfigurelist(data) {
return axios.get(
`/heimdallr/config/service/${data.key}/${data.service_name}`
);
}
// 发布
export function postconfigurelist (data, params) {
return axios.post(`/heimdallr/config/service/${data.key}/${data.service_name}`, params, {headers: {
'Content-Type': 'application/json'
}})
export function postconfigurelist(data, params) {
return axios.post(
`/heimdallr/config/service/${data.key}/${data.service_name}`,
params,
{
headers: {
"Content-Type": "application/json"
}
}
);
}
// 获取版本
export function getVersionnumber (data) {
return axios.get(`/heimdallr/config-version/service/${data.key}/${data.service_name}/list`)
export function getVersionnumber(data) {
return axios.get(
`/heimdallr/config-version/service/${data.key}/${data.service_name}/list`
);
}
// 回滚版本
export function rollbacknum (data) {
return axios.get(`/heimdallr/config-version/service/${data.key}/${data.service_name}/set/${data.version}`)
export function rollbacknum(data) {
return axios.get(
`/heimdallr/config-version/service/${data.key}/${data.service_name}/set/${data.version}`
);
}
// 获取节点列表
export function getnodelist (data) {
return axios.get(`/heimdallr/node/list/${data.service_name}`)
export function getnodelist(data) {
return axios.get(`/heimdallr/node/list/${data.service_name}`);
}
// 获取节点配置
export function getnodeconfig (data) {
return axios.get(`/heimdallr/config/node/${data.service_name}/${data.node_id}`)
export function getnodeconfig(data) {
return axios.get(
`/heimdallr/config/node/${data.service_name}/${data.node_id}`
);
}
// 设置节点配置
export function nodeconfig (data, weight) {
return axios.post(`/heimdallr/config/node/${data.service_name}/${data.node_id}`, weight, {headers: {
'Content-Type': 'application/json'
}})
export function nodeconfig(data, weight) {
return axios.post(
`/heimdallr/config/node/${data.service_name}/${data.node_id}`,
weight,
{
headers: {
"Content-Type": "application/json"
}
}
);
}
import axios from '../services/http.service'
import {
sapi
} from '../config'
export function login (data) {
return axios.get(`/heimdallr/login`, {headers: {
'heimdallr-user': data
}})
import axios from "../services/http.service";
import { sapi } from "../config";
export function login(data) {
return axios.get(`/heimdallr/login`, {
headers: {
"heimdallr-user": data
}
});
}
export function logout () {
return axios.get(`/heimdallr/logout`)
export function logout() {
return axios.get(`/heimdallr/logout`);
}
<template>
<div class="layout">
<Layout class="layout_content">
<Sider breakpoint="md" collapsible :collapsed-width="78" v-model="isCollapsed">
<Sider
breakpoint="md"
collapsible
:collapsed-width="78"
v-model="isCollapsed"
>
<div class="title">
Quantgroup
</div>
<Menu active-name="1-2" theme="dark" width="auto" :class="menuitemClasses">
<Menu
active-name="1-2"
theme="dark"
width="auto"
:class="menuitemClasses"
>
<MenuItem name="1-1">
<Icon type="ios-navigate"></Icon>
<span @click="go">网关配置</span>
......@@ -25,7 +35,9 @@
<Header class="layout-header-bar">
<span class="signout" @click="logOut">退出</span>
</Header>
<Content :style="{margin: '20px', background: '#fff', minHeight: '220px'}">
<Content
:style="{ margin: '20px', background: '#fff', minHeight: '220px' }"
>
<router-view></router-view>
</Content>
</Layout>
......@@ -33,35 +45,32 @@
</div>
</template>
<script>
import {logout} from '../api/user.api'
import { logout } from "../api/user.api";
export default {
data () {
data() {
return {
isCollapsed: false
}
};
},
computed: {
menuitemClasses: function () {
return [
'menu-item',
this.isCollapsed ? 'collapsed-menu' : ''
]
menuitemClasses: function() {
return ["menu-item", this.isCollapsed ? "collapsed-menu" : ""];
}
},
methods: {
go () {
this.$router.push('/mainconfiguration')
go() {
this.$router.push("/mainconfiguration");
},
logOut () {
logout().then((data) => {
this.$router.push('/')
})
logOut() {
logout().then(data => {
this.$router.push("/");
});
}
}
}
};
</script>
<style scoped>
.layout{
.layout {
border: 1px solid #d7dde4;
background: #f5f7f9;
position: relative;
......@@ -69,45 +78,45 @@ export default {
overflow: hidden;
height: 100%;
}
.layout_content{
height: 100%
.layout_content {
height: 100%;
}
.layout-header-bar{
.layout-header-bar {
background: #fff;
box-shadow: 0 1px 1px rgba(0,0,0,.1);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}
.menu-item span{
.menu-item span {
display: inline-block;
overflow: hidden;
width: 69px;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: bottom;
transition: width .2s ease .2s;
transition: width 0.2s ease 0.2s;
}
.menu-item i{
.menu-item i {
transform: translateX(0px);
transition: font-size .2s ease, transform .2s ease;
transition: font-size 0.2s ease, transform 0.2s ease;
vertical-align: middle;
font-size: 16px;
}
.collapsed-menu span{
.collapsed-menu span {
width: 0px;
transition: width .2s ease;
transition: width 0.2s ease;
}
.collapsed-menu i{
.collapsed-menu i {
transform: translateX(5px);
transition: font-size .2s ease .2s, transform .2s ease .2s;
transition: font-size 0.2s ease 0.2s, transform 0.2s ease 0.2s;
vertical-align: middle;
font-size: 22px;
}
.signout{
.signout {
font-size: 16px;
float: right;
margin-right: 30px;
color: #0092ff
color: #0092ff;
}
.title{
.title {
width: 100%;
height: 60px;
line-height: 60px;
......
......@@ -4,12 +4,20 @@
<div class="login">
<Form ref="loginForm" :model="loginForm" :rules="ruleLoginForm">
<FormItem prop="loginName">
<Input v-model="loginForm.loginName" type="text" placeholder="Username">
<Input
v-model="loginForm.loginName"
type="text"
placeholder="Username"
>
<Icon type="ios-person-outline" slot="prepend"></Icon>
</Input>
</FormItem>
<FormItem prop="password">
<Input type="password" v-model="loginForm.password" placeholder="Password">
<Input
type="password"
v-model="loginForm.password"
placeholder="Password"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input>
</FormItem>
......@@ -17,86 +25,87 @@
<Button @click="login()" type="primary" long>登录</Button>
</FormItem>
</Form>
<div style="margin-top: 20px; color: #999; font-size: 10px;">
</div>
<div style="margin-top: 20px; color: #999; font-size: 10px;"></div>
</div>
</div>
</template>
<script>
import {login} from '../api/user.api'
import localStorage from '../services/localStorage.service.js'
import { login } from "../api/user.api";
import localStorage from "../services/localStorage.service.js";
export default {
data () {
var that = this
data() {
var that = this;
const validateMenuClassifyId = (rule, value, callback) => {
if (this.status) {
callback(new Error('用户名或密码错误'))
this.status = false
callback(new Error("用户名或密码错误"));
this.status = false;
} else {
callback()
callback();
}
}
};
return {
loginForm: {
loginName: '',
password: ''
loginName: "",
password: ""
},
error: '',
error: "",
status: false,
ruleLoginForm: {
loginName: [
{required: true, message: '请输入用户名', trigger: 'blur'}
{ required: true, message: "请输入用户名", trigger: "blur" }
],
password: [
{required: true, message: '请输入密码', trigger: 'blur'},
{ required: true, validator: validateMenuClassifyId, trigger: 'blur'}
{ required: true, message: "请输入密码", trigger: "blur" },
{ required: true, validator: validateMenuClassifyId, trigger: "blur" }
]
}
}
};
},
methods: {
login () {
this.$refs['loginForm'].validate((valid) => {
login() {
this.$refs["loginForm"].validate(valid => {
if (valid) {
let data = btoa(`${this.loginForm.loginName}:${this.loginForm.password}`)
login(data).then((data) => {
let data = btoa(
`${this.loginForm.loginName}:${this.loginForm.password}`
);
login(data).then(data => {
if (data.code === 400) {
this.error = data.body
this.status = true
this.$refs['loginForm'].validate()
this.error = data.body;
this.status = true;
this.$refs["loginForm"].validate();
} else {
this.status = false
localStorage.set('heimdallr-token', data.body['heimdallr-token'])
this.$Message.success('登陆成功')
this.$router.push('/mainconfiguration')
this.status = false;
localStorage.set("heimdallr-token", data.body["heimdallr-token"]);
this.$Message.success("登陆成功");
this.$router.push("/mainconfiguration");
}
})
});
}
})
});
}
}
}
};
</script>
<style scoped>
.wrapper {
position: relative;
width: 100%;
height: 100%;
padding-top: 100px;
padding-bottom: 200px;
}
.wrapper {
position: relative;
width: 100%;
height: 100%;
padding-top: 100px;
padding-bottom: 200px;
}
.wrapper > h1 {
text-align: center;
vertical-align: middle;
margin-bottom: 20px;
color: #000;
}
.wrapper > h1 {
text-align: center;
vertical-align: middle;
margin-bottom: 20px;
color: #000;
}
.login {
margin: 0 auto;
padding-top: 15px;
width: 360px;
height: 100%;
}
.login {
margin: 0 auto;
padding-top: 15px;
width: 360px;
height: 100%;
}
</style>
const sapi = 'http://heimdallr-arch.liangkebang.net'
const sapi = "http://heimdallr-arch.liangkebang.net";
// const sapi = 'http://192.168.29.88:5555'
export {
sapi
}
export { sapi };
module.exports = process.env.NODE_ENV === 'production' ? require('./prod.config.js') : require('./env.config.js')
module.exports =
process.env.NODE_ENV === "production"
? require("./prod.config.js")
: require("./env.config.js");
const sapi = '//api.stantoo.com'
export {
sapi
}
const sapi = "//api.stantoo.com";
export { sapi };
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import iView from 'iview'
import 'iview/dist/styles/iview.css'
Vue.use(iView)
Vue.config.productionTip = false
import Vue from "vue";
import App from "./App";
import router from "./router";
import iView from "iview";
import "iview/dist/styles/iview.css";
Vue.use(iView);
Vue.config.productionTip = false;
/* eslint-disable no-new */
new Vue({
el: '#app',
el: "#app",
router,
components: { App },
template: '<App/>'
})
template: "<App/>"
});
import Vue from 'vue'
import Router from 'vue-router'
import login from '@/components/login'
import home from '@/components/home'
import mainconfiguration from '../pages/mainconfiguration/mainconfiguration.vue'
import Vue from "vue";
import Router from "vue-router";
import login from "@/components/login";
import home from "@/components/home";
import mainconfiguration from "../pages/mainconfiguration/mainconfiguration.vue";
Vue.use(Router)
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
name: 'login',
path: "/",
name: "login",
component: login
},
{
path: '/home',
name: 'home',
path: "/home",
name: "home",
component: home,
children: [
{
path: '/mainconfiguration',
name: 'mainconfiguration',
path: "/mainconfiguration",
name: "mainconfiguration",
component: mainconfiguration
}
]
}
]
})
});
import axios from 'axios'
import { Notice } from 'iview'
import localStorage from './localStorage.service'
import axios from "axios";
import { Notice } from "iview";
import localStorage from "./localStorage.service";
// window.Promise = require('es6-promise').Promise
const config = {
timeout: 600000
// withCredentials: true // 允许携带cookie
}
const instance = axios.create(Object.assign({}, config))
instance._extend = {}
};
const instance = axios.create(Object.assign({}, config));
instance._extend = {};
function requestInterceptor (config) {
config.headers['x-requested-with'] = 'XMLHttpRequest'
function requestInterceptor(config) {
config.headers["x-requested-with"] = "XMLHttpRequest";
// if (!config.headers['Content-Type']) {
// config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
// }
if (!config.headers['heimdallr-token']) {
config.headers['heimdallr-token'] = localStorage.get('heimdallr-token') || ''
if (!config.headers["heimdallr-token"]) {
config.headers["heimdallr-token"] =
localStorage.get("heimdallr-token") || "";
}
return config
return config;
}
function responseInterceptor (response) {
function responseInterceptor(response) {
if (response.status < 200 || response.status > 300) {
Notice.error({
title: '请求发生错误',
desc: response && response.data && response.data.errorMsg || '请联系系统管理员'
})
return Promise.reject(response && response.data)
title: "请求发生错误",
desc:
(response && response.data && response.data.errorMsg) ||
"请联系系统管理员"
});
return Promise.reject(response && response.data);
}
// code是0000表示成功
if (response.data.code === 200 || response.data.code === 400) {
return Promise.resolve(response.data || null)
return Promise.resolve(response.data || null);
}
// Notice.error({
// title: '',
// desc: response.data.errorMsg || response.data.message || '请联系客服'
// })
return Promise.reject(response && response.data)
return Promise.reject(response && response.data);
}
/**
......@@ -50,22 +53,22 @@ function responseInterceptor (response) {
* axios.interceptors.request.eject(0)
* axios.interceptors.response.eject(0)
*/
instance.interceptors.request.use(requestInterceptor, (error) => {
instance.interceptors.request.use(requestInterceptor, error => {
// return Promise.reject(error)
})
});
instance.interceptors.response.use(responseInterceptor, error => {
if (error.response && error.response.status === 401) {
window.location.href = window.location.origin + '/login'
window.location.href = window.location.origin + "/login";
}
if (error.message.indexOf('timeout') !== -1) {
if (error.message.indexOf("timeout") !== -1) {
Notice.error({
title: '',
desc: '请求超时'
})
title: "",
desc: "请求超时"
});
}
// return Promise.reject(error)
})
});
export default instance
export default instance;
export default {
get (key) {
let result = localStorage.getItem(key)
get(key) {
let result = localStorage.getItem(key);
try {
result = JSON.parse(result)
result = JSON.parse(result);
} catch (e) {}
return result
return result;
},
set (key, value) {
let toString = Object.prototype.toString
if (toString.call(value) === '[object Array]' || toString.call(value) === '[object Object]') {
value = JSON.stringify(value)
set(key, value) {
let toString = Object.prototype.toString;
if (
toString.call(value) === "[object Array]" ||
toString.call(value) === "[object Object]"
) {
value = JSON.stringify(value);
}
return localStorage.setItem(key, value)
return localStorage.setItem(key, value);
},
remove (key) {
return localStorage.removeItem(key)
remove(key) {
return localStorage.removeItem(key);
},
clear () {
return localStorage.clear()
clear() {
return localStorage.clear();
}
}
};
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