Commit f6714003 authored by 赵啸非's avatar 赵啸非

修改部分字段

parent 5fd4a704
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
"@xunlei/vue-context-menu": "^1.0.2", "@xunlei/vue-context-menu": "^1.0.2",
"axios": "^0.18.0", "axios": "^0.18.0",
"clipboard": "2.0.6", "clipboard": "2.0.6",
"core-js": "3.8.1", "core-js": "3",
"echarts": "^4.3.0", "echarts": "^4.3.0",
"element-react": "^1.4.34", "element-react": "^1.4.34",
"element-ui": "^2.15.5", "element-ui": "^2.15.5",
......
import axios from 'axios'; import axios from "axios";
import Qs from 'qs'; import Vue from 'vue'
const JSONbig = require('json-bigint')({"storeAsString": true}); import ElementUI from 'element-ui'
import cookie from './cookie'; import 'element-ui/lib/theme-chalk/index.css'
import httpErrorHandler from './httpErrorHandler'; import Qs from "qs";
const JSONbig = require("json-bigint")({ storeAsString: true });
import cookie from "./cookie";
import httpErrorHandler from "./httpErrorHandler";
// loading框设置局部刷新,且所有请求完成后关闭loading框
let loading
let needLoadingRequestCount = 0 // 声明一个对象用于存储请求个数
function startLoading () {
loading = Vue.prototype.$loading({
lock: true,
customClass: 'createLoading', // 局部class名称
text: '服务加载中...',
background: 'rgba(0,0,0,0.5)',
target: document.querySelector('.loading-area') // 设置加载动画区域
})
}
function endLoading () {
loading.close()
}
function showFullScreenLoading () {
if (needLoadingRequestCount === 0) {
startLoading()
}
needLoadingRequestCount++
}
function hideFullScreenLoading () {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
endLoading()
}
}
const instance = axios.create({ const instance = axios.create({
baseURL: '/m', baseURL: "/m",
//baseURL: process.env.VUE_APP_BASE_API,
headers: { headers: {
post: { post: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', "Content-Type": "application/json;charset=UTF-8",
'dataType': 'json', dataType: "json",
} },
}, },
transformResponse: [data=>{ transformResponse: [
try { (data) => {
JSON.parse(data); try {
return JSONbig.parse(data); JSON.parse(data);
} catch (error) { return JSONbig.parse(data);
return data; } catch (error) {
} return data;
}], }
},
],
}); });
/**
* 请求拦截器
*/
instance.interceptors.request.use(
(config) => {
config.headers.Authorization = window.sessionStorage.getItem("token") || "";
if (config.isLoading == true) { // 如果配置了isLoading: false,则不显示loading
showFullScreenLoading()
}
instance.interceptors.request.use(config => { return config;
},
//config.data = Qs.stringify(config.data, {arrayFormat: 'repeat', allowDots: true}); (err) => {
hideFullScreenLoading()
config.data = Qs.stringify(config.data, {arrayFormat: 'indices', allowDots: true}); return Promise.reject(err);
//brackets }
// 也可以在这里给请求添加token之类的字段 );
// config.headers['Content-Type'] = 'application/json;charset=UTF-8' /**
// config.headers.timestamp = Math.floor(new Date().getTime() / 1000) * 响应拦截器
// config.headers.token = sessionStorage.getItem('token') || '' */
instance.interceptors.response.use((response) => {
console.log("request config",config); hideFullScreenLoading() // 响应成功关闭loading
return config;
}, err => {
return Promise.reject(err);
});
instance.interceptors.response.use(response=>{ return response.data;
return response.data }, httpErrorHandler);
},httpErrorHandler);
/** /**
* 封装后的axios post方法 * 封装后的axios post方法
...@@ -56,9 +93,9 @@ instance.interceptors.response.use(response=>{ ...@@ -56,9 +93,9 @@ instance.interceptors.response.use(response=>{
*/ */
export function post(url, option, config = {}) { export function post(url, option, config = {}) {
const data = Object.assign({}, option, { const data = Object.assign({}, option, {
__mortals_token__: cookie.getItem('__mortals_token__'), // __mortals_token__: cookie.getItem('__mortals_token__'),
}) });
return instance.post(url, data, config) return instance.post(url, data, config);
} }
/** /**
...@@ -71,25 +108,24 @@ export function post(url, option, config = {}) { ...@@ -71,25 +108,24 @@ export function post(url, option, config = {}) {
*/ */
export function get(url, option, config = {}) { export function get(url, option, config = {}) {
const data = Object.assign({}, option, { const data = Object.assign({}, option, {
__mortals_token__: cookie.getItem('__mortals_token__'), //__mortals_token__: cookie.getItem('__mortals_token__'),
}) });
return instance.get(url, { params: data }, config) return instance.get(url, { params: data }, config);
} }
// 文件上传 // 文件上传
const uploadInstance = axios.create({ const uploadInstance = axios.create({
baseURL: '/m', baseURL: "/m",
headers: { headers: {
post: { post: {
'Content-Type': 'multipart/form-data', "Content-Type": "multipart/form-data",
} },
} },
}); });
uploadInstance.interceptors.response.use(response=>{ uploadInstance.interceptors.response.use((response) => {
return response.data return response.data;
},httpErrorHandler); }, httpErrorHandler);
/** /**
* 封装后的axios upload方法 * 封装后的axios upload方法
...@@ -101,8 +137,10 @@ uploadInstance.interceptors.response.use(response=>{ ...@@ -101,8 +137,10 @@ uploadInstance.interceptors.response.use(response=>{
*/ */
export function upload(url, option, config = {}) { export function upload(url, option, config = {}) {
let formdata = new FormData(); let formdata = new FormData();
Object.keys(option).forEach(key=>{ Object.keys(option).forEach((key) => {
formdata.append(key, option[key]) formdata.append(key, option[key]);
}) });
return uploadInstance.post(url, formdata, config) return uploadInstance.post(url, formdata, config);
} }
...@@ -6,40 +6,41 @@ ...@@ -6,40 +6,41 @@
<script> <script>
export default { export default {
name: 'authentication', name: "authentication",
created () { created() {
this.login(); this.login();
}, },
methods: { methods: {
login() { login() {
this.$post('/login/index').then(this.loginSuccess).catch(this.loginFail) this.$post("/login/index").then(this.loginSuccess).catch(this.loginFail);
}, },
loginSuccess({data}) { loginSuccess({ data }) {
this.$store.commit('setUserData', data); this.$store.commit("setUserData", data);
this.$router.replace({ this.$router.replace({
path: this.redirect, path: this.redirect,
}); });
}, },
loginFail(error) { loginFail(error) {
this.$message.error(error.message || '请登录'); this.$message.error(error.message || "请登录");
// console.log("<<", process.env.VUE_APP_BASE_API);
this.$router.replace({ this.$router.replace({
path: '/login', path: '/login',
query: { query: {
redirect: this.redirect, redirect: this.redirect,
} }
}); });
} },
}, },
computed: { computed: {
isLogin() { isLogin() {
return this.$store.state.isLogin return this.$store.state.isLogin;
} },
}, },
data() { data() {
return { return {
redirect: this.$route.query.redirect, redirect: this.$route.query.redirect,
loading: true, loading: true,
} };
} },
} };
</script> </script>
...@@ -3,129 +3,147 @@ ...@@ -3,129 +3,147 @@
<template> <template>
<div class="page page-login flex flex-v"> <div class="page page-login flex flex-v">
<div class="form-wrap flex flex-1"> <div class="form-wrap flex flex-1">
<el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="80px" size="small"> <el-form
<h1>工作流管理平台</h1> @submit.prevent="onSubmit"
ref="form"
:model="form"
label-width="80px"
size="small"
>
<h1>{{ sysName ? sysName : systemName }}</h1>
<el-form-item label="用户名"> <el-form-item label="用户名">
<el-input v-model="form.loginName"></el-input> <el-input v-model="form.loginName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="密码"> <el-form-item label="密码">
<el-input v-model="form.password" type='password'></el-input> <el-input v-model="form.password" type="password"></el-input>
</el-form-item>
<el-form-item label="验证码">
<el-input v-model="form.securityCode">
<img slot="append" width='60' height="30" :src='securityCodeUrl' @click='refreshCode'/>
</el-input>
</el-form-item> </el-form-item>
<el-form-item size="large"> <el-form-item size="large">
<el-button type="primary" native-type='submit' :loading='loading' @click='onSubmit'>登录</el-button> <el-button
type="primary"
class="addclass"
native-type="submit"
:loading="loading"
@click="onSubmit"
>登录</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="footer"> <div class="footer">
登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { mapMutations, mapState } from "vuex";
import { createSocket } from '@/assets/utils/websocket'
const securityCodeUrl = '/m/securitycode/createCode?v=';
export default { export default {
name: 'login', name: "login",
data() {
return {
systemName: process.env.VUE_APP_sysName,
originData: [],
loading: false,
form: {
loginName: "admin",
password: "admin",
},
};
},
computed: {
...mapState(["sysName"]),
},
created() { created() {
this.refreshCode(); this.getInfo();
}, },
methods: { methods: {
...mapMutations(["SET_sysName", "SET_sysLogo"]),
// 获取token和站点信息
getInfo() {
let { sysName, sysLogo, siteid } = this.$route.query;
if (siteid && sysName && sysLogo) {
sessionStorage.setItem("siteid", siteid);
this.SET_sysName(sysName);
this.SET_sysLogo(sysLogo);
}
},
login() { login() {
this.loading = true; this.loading = true;
this.$post('/login/login', this.form).then(this.loginSuccess).catch(this.loginFail) this.$post("/login/login", this.form)
.then(this.loginSuccess)
.catch(this.loginFail);
}, },
loginSuccess({data}) { loginSuccess({ data }) {
this.$store.commit('setUserData', data); this.$store.commit("setUserData", data);
let { token } = data;
this.$router.replace({ sessionStorage.setItem("token", token);
path: this.redirect, this.$router.push("/index");
}); //成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API +
// createSocket("ws://"+process.env.VUE_APP_BASE_API +"/ws?accessToken="+data.id)
//成功 创建websocket连接
// createSocket('ws://127.0.0.1:17011/m/ws?accessToken='+data.id)
}, },
loginFail(error) { loginFail(error) {
this.loading = false; this.loading = false;
this.refreshCode(); //this.refreshCode();
this.$message.error(error.message); this.$message.error(error.message);
}, },
refreshCode() { // refreshCode() {
this.form.securityCode = ''; // this.form.securityCode = '';
this.securityCodeUrl = securityCodeUrl + Math.random(); // this.securityCodeUrl = securityCodeUrl + Math.random();
}, // },
onSubmit(e) { onSubmit(e) {
e.preventDefault(); e.preventDefault();
if(!this.form.loginName.length){ if (!this.form.loginName.length) {
return this.$message.warning('请输入用户名') return this.$message.warning("请输入用户名");
} }
if(!this.form.password.length){ if (!this.form.password.length) {
return this.$message.warning('请输入密码') return this.$message.warning("请输入密码");
}
if(!this.form.securityCode.length){
return this.$message.warning('请输入验证码')
} }
this.login(); this.login();
}, },
}, },
data() { };
return {
loading: false,
redirect: this.$route.query.redirect || '/',
securityCodeUrl: securityCodeUrl,
form: {
loginName: '',
password: '',
securityCode: '',
}
}
}
}
</script> </script>
<style lang="less"> <style lang="less">
.el-divider--horizontal {
margin: 5px 0;
background: 0 0;
border-top: 2px solid #e8eaec;
}
.page-login { .page-login {
background-image: linear-gradient(45deg, #333, #111); background-image: linear-gradient(45deg, #333, #111);
background-size: 40px 40px; background-size: 40px 40px;
margin: 0; margin: 0;
height: 100%; height: 100%;
.el-form{ .el-form {
margin: auto; margin: auto;
width: 400px; width: 400px;
padding: 25px 25px 0 0; padding: 25px 25px 0 0;
background: #fff; background: #fff;
h1{ h1 {
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
font-weight: 500; font-weight: 500;
margin-bottom: 20px; margin-bottom: 20px;
} }
button{ button {
margin-top: 10px; margin-top: 10px;
width: 240px; width: 240px;
} }
.el-input-group__append{ .el-input-group__append {
padding: 0; padding: 0;
font-size: 0; font-size: 0;
} }
} }
.footer{ .footer {
height: 80px; height: 80px;
font-size: 12px; font-size: 12px;
color: #999; color: #999;
text-align: center; text-align: center;
line-height: 80px; line-height: 80px;
a{ a {
color: #999; color: #999;
} }
} }
......
<template> <template>
<layout-form> <layout-form>
<Breadcrumb slot='breadcrumb' :list='breadcrumbList'></Breadcrumb> <!-- <Breadcrumb slot='breadcrumb' :list='breadcrumbList'></Breadcrumb> -->
<el-form :model="extendFormData" :rules="rules" ref="form" label-width="100px" size='small'> <el-form :model="extendFormData" :rules="rules" ref="form" label-width="100px" size='small'>
<el-row><Field label="旧密码" prop="oldPwd" v-model="extendFormData.oldPwd" type='password'/></el-row> <el-row><Field label="旧密码" prop="oldPwd" v-model="extendFormData.oldPwd" type='password'/></el-row>
<el-row> <el-row>
...@@ -41,10 +41,10 @@ export default { ...@@ -41,10 +41,10 @@ export default {
urls: { urls: {
saveUrl: '/login/updatePwd', saveUrl: '/login/updatePwd',
}, },
breadcrumbList: [ // breadcrumbList: [
{name: '系统管理',}, // {name: '系统管理',},
{name: '修改密码',}, // {name: '修改密码',},
], // ],
rules: { rules: {
oldPwd: [ oldPwd: [
{ required: true, message: '请输入旧密码', trigger: 'blur' }, { required: true, message: '请输入旧密码', trigger: 'blur' },
......
...@@ -16,7 +16,7 @@ module.exports = { ...@@ -16,7 +16,7 @@ module.exports = {
hot: true,//自动保存 hot: true,//自动保存
proxy: { proxy: {
'/m': { '/m': {
target: 'http://127.0.0.1:18011', target: 'http://192.168.0.250:18011',
changeOrigin: true, changeOrigin: true,
secure: false secure: false
} }
......
...@@ -3022,21 +3022,16 @@ core-js-compat@^3.40.0, core-js-compat@^3.6.5: ...@@ -3022,21 +3022,16 @@ core-js-compat@^3.40.0, core-js-compat@^3.6.5:
dependencies: dependencies:
browserslist "^4.24.4" browserslist "^4.24.4"
core-js@3.8.1: core-js@3, core-js@^3.6.5:
version "3.8.1" version "3.42.0"
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47" resolved "https://registry.npmmirror.com/core-js/-/core-js-3.42.0.tgz#edbe91f78ac8cfb6df8d997e74d368a68082fe37"
integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg== integrity sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==
core-js@^2.4.0: core-js@^2.4.0:
version "2.6.12" version "2.6.12"
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.6.5:
version "3.42.0"
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.42.0.tgz#edbe91f78ac8cfb6df8d997e74d368a68082fe37"
integrity sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==
core-util-is@1.0.2: core-util-is@1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
......
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