Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CRM
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
华国豪
CRM
Commits
d7e57d68
Commit
d7e57d68
authored
Apr 24, 2022
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/huaguohao/crm
into master
parents
ec63a3bd
ebc43452
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
377 additions
and
378 deletions
+377
-378
index.js
src/plugins/index.js
+55
-64
login.vue
src/views/login.vue
+322
-314
No files found.
src/plugins/index.js
View file @
d7e57d68
...
@@ -6,14 +6,18 @@ export default {
...
@@ -6,14 +6,18 @@ export default {
apiurl
:
''
apiurl
:
''
},
},
install
(
Vue
,
options
)
{
install
(
Vue
,
options
)
{
Vue
.
prototype
.
isOnline
=
function
()
{
Vue
.
prototype
.
isOnline
=
function
()
{
return
process
.
env
.
NODE_ENV
!==
'development'
;
return
process
.
env
.
NODE_ENV
!==
'development'
;
},
},
//域名管理对象
//域名管理对象
Vue
.
prototype
.
domainManager
=
function
()
{
Vue
.
prototype
.
domainManager
=
function
()
{
let
domainUrl
=
"http://192.168.10.2:8098"
//CRM API
let
domainUrl
=
""
;
domainUrl
=
"http://192.168.10.2:8098"
;
//domainUrl = "http://localhost:5003";
let
locationName
=
window
.
location
.
hostname
;
let
locationName
=
window
.
location
.
hostname
;
let
domainPostUrl
=
"http://192.168.10.2:8083"
//旅游ERPApi
let
domainPostUrl
=
"http://192.168.10.214"
if
(
this
.
isOnline
())
{
if
(
this
.
isOnline
())
{
if
(
window
.
location
.
host
.
indexOf
(
'fcrmyx.oytour.com'
)
!=
-
1
)
{
if
(
window
.
location
.
host
.
indexOf
(
'fcrmyx.oytour.com'
)
!=
-
1
)
{
domainUrl
=
"http://crm.oytour.com"
domainUrl
=
"http://crm.oytour.com"
...
@@ -47,7 +51,7 @@ export default {
...
@@ -47,7 +51,7 @@ export default {
};
};
return
obj
;
return
obj
;
},
},
Vue
.
prototype
.
GetLocalFile
=
function
(
cmd
,
msg
,
fileName
,
successCall
)
{
Vue
.
prototype
.
GetLocalFile
=
function
(
cmd
,
msg
,
fileName
,
successCall
)
{
var
apiurl
=
this
.
domainManager
().
LocalFileStreamDownLoadUrl
;
var
apiurl
=
this
.
domainManager
().
LocalFileStreamDownLoadUrl
;
var
timestamp
=
(
new
Date
()).
valueOf
();
var
timestamp
=
(
new
Date
()).
valueOf
();
if
(
!
localStorage
.
userInfo
&&
localStorage
.
userInfo
!=
""
&&
this
.
$route
.
path
.
toLowerCase
()
!=
"/login"
)
{
if
(
!
localStorage
.
userInfo
&&
localStorage
.
userInfo
!=
""
&&
this
.
$route
.
path
.
toLowerCase
()
!=
"/login"
)
{
...
@@ -83,10 +87,10 @@ export default {
...
@@ -83,10 +87,10 @@ export default {
document
.
body
.
appendChild
(
link
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
link
.
click
();
successCall
(
res
);
successCall
(
res
);
}).
catch
(
function
(
res
)
{});
}).
catch
(
function
(
res
)
{});
},
},
//价钱格式化,三位数逗号分隔,保留两位小数 duanjun
//价钱格式化,三位数逗号分隔,保留两位小数 duanjun
Vue
.
prototype
.
moneyFormat
=
function
(
value
)
{
Vue
.
prototype
.
moneyFormat
=
function
(
value
)
{
let
nStr
=
Number
(
value
).
toFixed
(
2
)
let
nStr
=
Number
(
value
).
toFixed
(
2
)
nStr
+=
''
;
nStr
+=
''
;
let
x
=
nStr
.
split
(
'.'
);
let
x
=
nStr
.
split
(
'.'
);
...
@@ -99,7 +103,7 @@ export default {
...
@@ -99,7 +103,7 @@ export default {
return
x1
+
x2
;
return
x1
+
x2
;
},
},
//消息成功提示
//消息成功提示
Vue
.
prototype
.
Success
=
function
(
msg
)
{
Vue
.
prototype
.
Success
=
function
(
msg
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
duration
:
2000
,
duration
:
2000
,
...
@@ -107,7 +111,7 @@ export default {
...
@@ -107,7 +111,7 @@ export default {
});
});
},
},
//错误提示
//错误提示
Vue
.
prototype
.
Error
=
function
(
msg
)
{
Vue
.
prototype
.
Error
=
function
(
msg
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
duration
:
2000
,
duration
:
2000
,
...
@@ -116,7 +120,7 @@ export default {
...
@@ -116,7 +120,7 @@ export default {
},
},
//一般提示
//一般提示
Vue
.
prototype
.
Info
=
function
(
msg
)
{
Vue
.
prototype
.
Info
=
function
(
msg
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
duration
:
2000
,
duration
:
2000
,
...
@@ -124,7 +128,7 @@ export default {
...
@@ -124,7 +128,7 @@ export default {
});
});
},
},
//警告提示
//警告提示
Vue
.
prototype
.
Warning
=
function
(
msg
)
{
Vue
.
prototype
.
Warning
=
function
(
msg
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
duration
:
2000
,
duration
:
2000
,
...
@@ -132,7 +136,7 @@ export default {
...
@@ -132,7 +136,7 @@ export default {
});
});
},
},
//Confirm
//Confirm
Vue
.
prototype
.
Confirm
=
function
(
msg
,
callback
)
{
Vue
.
prototype
.
Confirm
=
function
(
msg
,
callback
)
{
this
.
$confirm
(
msg
,
"提示"
,
{
this
.
$confirm
(
msg
,
"提示"
,
{
confirmButtonText
:
"确定"
,
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
cancelButtonText
:
"取消"
,
...
@@ -152,7 +156,7 @@ export default {
...
@@ -152,7 +156,7 @@ export default {
//type : m_filt 填充 m_w 宽度固定 高度不固定 m_h 高度固定 宽度不固定
//type : m_filt 填充 m_w 宽度固定 高度不固定 m_h 高度固定 宽度不固定
// w : 宽
// w : 宽
// h : 高
// h : 高
Vue
.
prototype
.
compressImg
=
function
(
path
,
type
,
w
,
h
)
{
Vue
.
prototype
.
compressImg
=
function
(
path
,
type
,
w
,
h
)
{
let
url
=
this
.
domainManager
().
UploadUrl
;
let
url
=
this
.
domainManager
().
UploadUrl
;
let
poise
=
'width='
;
let
poise
=
'width='
;
w
=
w
?
w
:
''
w
=
w
?
w
:
''
...
@@ -164,14 +168,14 @@ export default {
...
@@ -164,14 +168,14 @@ export default {
}
}
return
path
.
split
(
'?'
)[
0
]
+
'?width='
+
w
;
return
path
.
split
(
'?'
)[
0
]
+
'?width='
+
w
;
}
}
//打开新窗口连接
//打开新窗口连接
Vue
.
prototype
.
OpenNewUrl
=
function
(
URL
)
{
Vue
.
prototype
.
OpenNewUrl
=
function
(
URL
)
{
if
(
URL
!=
''
)
{
if
(
URL
!=
''
)
{
window
.
open
(
'http://'
+
URL
,
'_blank'
);
window
.
open
(
'http://'
+
URL
,
'_blank'
);
}
}
}
//HTTP提交数据
}
Vue
.
prototype
.
apipost2
=
function
(
cmd
,
msg
,
successCall
,
faildCall
,
isOnline
)
{
//旅游ERP接口
Vue
.
prototype
.
apipost2
=
function
(
cmd
,
msg
,
successCall
,
faildCall
,
isOnline
)
{
if
(
msg
==
null
||
msg
==
""
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
msg
=
{}
}
}
...
@@ -218,7 +222,7 @@ export default {
...
@@ -218,7 +222,7 @@ export default {
}
}
},
faildCall
)
},
faildCall
)
}
}
Vue
.
prototype
.
apipost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
Vue
.
prototype
.
apipost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
if
(
msg
==
null
||
msg
==
""
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
msg
=
{}
}
}
...
@@ -234,13 +238,11 @@ export default {
...
@@ -234,13 +238,11 @@ export default {
var
md5Str
=
md5
(
`cmd=
${
cmd
}
&msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
var
md5Str
=
md5
(
`cmd=
${
cmd
}
&msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
var
postData
=
{
var
postData
=
{
"msg"
:
msg
,
"msg"
:
msg
,
// "cmd": cmd,
"timestamp"
:
timestamp
,
"timestamp"
:
timestamp
,
"token"
:
token
,
"token"
:
token
,
"sign"
:
md5Str
"sign"
:
md5Str
}
}
if
(
localStorage
.
g
&&
localStorage
.
g
!=
'undefined'
)
{
if
(
localStorage
.
g
&&
localStorage
.
g
!=
'undefined'
)
{
// postData.groupId = parseInt(JSON.parse(localStorage.g).i)
postData
.
groupId
=
2
;
postData
.
groupId
=
2
;
}
}
this
.
$http
.
post
(
apiurl
,
postData
,
{
this
.
$http
.
post
(
apiurl
,
postData
,
{
...
@@ -261,7 +263,7 @@ export default {
...
@@ -261,7 +263,7 @@ export default {
}
}
},
faildCall
)
},
faildCall
)
},
},
Vue
.
prototype
.
apiJavaPost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
Vue
.
prototype
.
apiJavaPost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
if
(
msg
==
null
||
msg
==
""
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
msg
=
{}
}
}
...
@@ -270,8 +272,7 @@ export default {
...
@@ -270,8 +272,7 @@ export default {
this
.
apiurl
=
apiurl
;
this
.
apiurl
=
apiurl
;
var
token
=
""
;
var
token
=
""
;
var
key
=
""
;
var
key
=
""
;
// let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : ''
// let uid = userInfo.accountId ? userInfo.accountId : 0
if
(
this
.
getLocalStorage
()
!=
null
)
{
if
(
this
.
getLocalStorage
()
!=
null
)
{
token
=
this
.
getLocalStorage
().
token
;
token
=
this
.
getLocalStorage
().
token
;
key
=
this
.
getLocalStorage
().
secretKey
;
key
=
this
.
getLocalStorage
().
secretKey
;
...
@@ -286,7 +287,7 @@ export default {
...
@@ -286,7 +287,7 @@ export default {
"sign"
:
md5Str
"sign"
:
md5Str
}
}
if
(
localStorage
.
g
&&
localStorage
.
g
!=
'undefined'
)
{
if
(
localStorage
.
g
&&
localStorage
.
g
!=
'undefined'
)
{
// postData.groupId = parseInt(JSON.parse(localStorage.g).i)
postData
.
groupId
=
2
;
postData
.
groupId
=
2
;
}
}
this
.
$http
.
post
(
apiurl
,
postData
,
{
this
.
$http
.
post
(
apiurl
,
postData
,
{
...
@@ -297,11 +298,11 @@ export default {
...
@@ -297,11 +298,11 @@ export default {
})
})
.
then
(
res
=>
{
.
then
(
res
=>
{
if
(
res
.
data
.
resultCode
==
10000
||
res
.
data
.
resultCode
==
10001
)
{
if
(
res
.
data
.
resultCode
==
10000
||
res
.
data
.
resultCode
==
10001
)
{
// if (window.location.href.indexOf('IntegralMall') === -1 && window.location.href.indexOf('productDetail') === -1) {
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/login'
path
:
'/login'
})
})
// }
}
else
if
(
res
.
data
.
resultCode
==
10005
)
{
}
else
if
(
res
.
data
.
resultCode
==
10005
)
{
this
.
$router
.
go
(
-
1
)
this
.
$router
.
go
(
-
1
)
}
else
{
}
else
{
...
@@ -312,16 +313,8 @@ export default {
...
@@ -312,16 +313,8 @@ export default {
}
}
},
faildCall
)
},
faildCall
)
},
},
Vue
.
prototype
.
getAction
=
function
(
actionId
,
lineId
)
{
Vue
.
prototype
.
getAction
=
function
(
actionId
,
lineId
)
{
// if(actionId==1){
// console.log("浏览签证产品",actionId)
// }
// if(actionId==7){
// console.log("浏览跟团游",actionId)
// }
// if(actionId==9){
// console.log("浏览跟团游下单",actionId)
// }
let
msg
=
{};
let
msg
=
{};
msg
.
actionId
=
actionId
;
msg
.
actionId
=
actionId
;
if
(
lineId
)
{
if
(
lineId
)
{
...
@@ -331,7 +324,6 @@ export default {
...
@@ -331,7 +324,6 @@ export default {
this
.
Travelload
=
false
;
this
.
Travelload
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
}
else
{
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
Error
(
res
.
data
.
message
);
}
}
...
@@ -339,28 +331,28 @@ export default {
...
@@ -339,28 +331,28 @@ export default {
}
}
//验证只能输入2位小数
//验证只能输入2位小数
Vue
.
prototype
.
checkPrice
=
function
(
item
,
filed
)
{
Vue
.
prototype
.
checkPrice
=
function
(
item
,
filed
)
{
var
value
=
""
;
var
value
=
""
;
if
(
typeof
item
[
filed
]
==
"string"
)
{
if
(
typeof
item
[
filed
]
==
"string"
)
{
value
=
item
[
filed
];
value
=
item
[
filed
];
}
else
{
}
else
{
value
=
item
[
filed
].
toString
();
value
=
item
[
filed
].
toString
();
}
}
value
=
value
.
replace
(
/
[^\d
.
]
/g
,
""
);
//清除“数字”和“.”以外的字符
value
=
value
.
replace
(
/
[^\d
.
]
/g
,
""
);
//清除“数字”和“.”以外的字符
value
=
value
.
replace
(
/
\.{2,}
/g
,
"."
);
//只保留第一个. 清除多余的
value
=
value
.
replace
(
/
\.{2,}
/g
,
"."
);
//只保留第一个. 清除多余的
value
=
value
value
=
value
.
replace
(
"."
,
"$#$"
)
.
replace
(
"."
,
"$#$"
)
.
replace
(
/
\.
/g
,
""
)
.
replace
(
/
\.
/g
,
""
)
.
replace
(
"$#$"
,
"."
);
.
replace
(
"$#$"
,
"."
);
value
=
value
.
replace
(
/^
(\-)
*
(\d
+
)\.(\d\d)
.*$/
,
"$1$2.$3"
);
//只能输入两个小数
value
=
value
.
replace
(
/^
(\-)
*
(\d
+
)\.(\d\d)
.*$/
,
"$1$2.$3"
);
//只能输入两个小数
if
(
value
.
indexOf
(
"."
)
<
0
&&
value
!=
""
)
{
if
(
value
.
indexOf
(
"."
)
<
0
&&
value
!=
""
)
{
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value
=
parseFloat
(
value
);
value
=
parseFloat
(
value
);
}
item
[
filed
]
=
value
;
}
}
//验证只能输入整数
item
[
filed
]
=
value
;
Vue
.
prototype
.
checkInteger
=
function
(
item
,
filed
)
{
}
//验证只能输入整数
Vue
.
prototype
.
checkInteger
=
function
(
item
,
filed
)
{
var
value
=
""
;
var
value
=
""
;
if
(
typeof
item
[
filed
]
==
"string"
)
{
if
(
typeof
item
[
filed
]
==
"string"
)
{
value
=
item
[
filed
];
value
=
item
[
filed
];
...
@@ -370,6 +362,5 @@ export default {
...
@@ -370,6 +362,5 @@ export default {
value
=
value
.
replace
(
this
.
$commonUtils
.
Regex
.
isInteger
,
""
);
value
=
value
.
replace
(
this
.
$commonUtils
.
Regex
.
isInteger
,
""
);
item
[
filed
]
=
value
;
item
[
filed
]
=
value
;
}
}
}
}
}
}
\ No newline at end of file
src/views/login.vue
View file @
d7e57d68
...
@@ -10,9 +10,8 @@
...
@@ -10,9 +10,8 @@
</div>
</div>
<div
class=
"publisher"
>
徐总
</div>
<div
class=
"publisher"
>
徐总
</div>
<div
class=
"job"
>
总经理
</div>
<div
class=
"job"
>
总经理
</div>
<div
<div
class=
"content"
>
職場上成功者與失敗者最大的分別就是,前者找機會,後者找藉口,今日的你痛恨每天上班「度日如年」,將來的你會感激經歷過這一切,你練成了更強大的自己,玻璃心不再怕碎。
class=
"content"
</div>
>
職場上成功者與失敗者最大的分別就是,前者找機會,後者找藉口,今日的你痛恨每天上班「度日如年」,將來的你會感激經歷過這一切,你練成了更強大的自己,玻璃心不再怕碎。
</div>
</div>
</div>
</el-carousel-item>
</el-carousel-item>
</el-carousel>
</el-carousel>
...
@@ -28,13 +27,8 @@
...
@@ -28,13 +27,8 @@
<div
class=
"mu-text-field has-label"
>
<div
class=
"mu-text-field has-label"
>
<div
class=
"mu-text-field-content"
>
<div
class=
"mu-text-field-content"
>
<div
class=
"mu-text-field-label"
>
账号
</div>
<div
class=
"mu-text-field-label"
>
账号
</div>
<input
<input
type=
"text"
v-model=
"account"
class=
"mu-text-field-input"
@
focus=
"accountStatus=true"
type=
"text"
@
blur=
"accountStatus=false"
/>
v-model=
"account"
class=
"mu-text-field-input"
@
focus=
"accountStatus=true"
@
blur=
"accountStatus=false"
/>
<div>
<div>
<hr
class=
"mu-text-field-line"
/>
<hr
class=
"mu-text-field-line"
/>
<hr
class=
"mu-text-field-focus-line"
:class=
"
{'focus':accountStatus}" />
<hr
class=
"mu-text-field-focus-line"
:class=
"
{'focus':accountStatus}" />
...
@@ -48,13 +42,8 @@
...
@@ -48,13 +42,8 @@
<div
class=
"mu-text-field has-label"
>
<div
class=
"mu-text-field has-label"
>
<div
class=
"mu-text-field-content"
>
<div
class=
"mu-text-field-content"
>
<div
class=
"mu-text-field-label"
>
密码
</div>
<div
class=
"mu-text-field-label"
>
密码
</div>
<input
<input
type=
"password"
v-model=
"pwd"
class=
"mu-text-field-input"
@
focus=
"pwdStatus=true"
type=
"password"
@
blur=
"pwdStatus=false"
/>
v-model=
"pwd"
class=
"mu-text-field-input"
@
focus=
"pwdStatus=true"
@
blur=
"pwdStatus=false"
/>
<div>
<div>
<hr
class=
"mu-text-field-line"
/>
<hr
class=
"mu-text-field-line"
/>
<hr
class=
"mu-text-field-focus-line"
:class=
"
{'focus':pwdStatus}" />
<hr
class=
"mu-text-field-focus-line"
:class=
"
{'focus':pwdStatus}" />
...
@@ -64,12 +53,8 @@
...
@@ -64,12 +53,8 @@
</div>
</div>
</div>
</div>
<div
class=
"field_wrap"
style=
"margin-top:30px;"
>
<div
class=
"field_wrap"
style=
"margin-top:30px;"
>
<el-button
<el-button
type=
"primary"
:loading=
"isLogining"
@
click=
"goLogin()"
type=
"primary"
style=
"width:100%; font-family:perfectFont;font-size: 16px;"
>
立即登录
</el-button>
:loading=
"isLogining"
@
click=
"goLogin()"
style=
"width:100%; font-family:perfectFont;font-size: 16px;"
>
立即登录
</el-button>
</div>
</div>
<div
class=
"field_wrap forget"
>
<div
class=
"field_wrap forget"
>
<div
class=
"item-forget"
>
<div
class=
"item-forget"
>
...
@@ -85,306 +70,329 @@
...
@@ -85,306 +70,329 @@
</div>
</div>
</div>
</div>
<div
class=
"logo-box"
>
<div
class=
"logo-box"
>
<el-row
:gutter=
"12"
>
<el-row
:gutter=
"12"
>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<img
src=
"../assets/img/logo.png"
/>
<img
src=
"../assets/img/logo.png"
/>
</el-col>
</el-col>
<el-col
:span=
"12"
>
CRM
</el-col>
<el-col
:span=
"12"
>
CRM
</el-col>
</el-row>
</el-row>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
accountStatus
:
false
,
accountStatus
:
false
,
account
:
""
,
account
:
""
,
pwdStatus
:
false
,
pwdStatus
:
false
,
pwd
:
""
,
pwd
:
""
,
isLogining
:
false
,
isLogining
:
false
,
isAutoLogin
:
false
,
isAutoLogin
:
false
,
};
},
created
()
{
let
autoLogin
=
localStorage
.
autoLogin
?
JSON
.
parse
(
localStorage
.
autoLogin
)
:
null
;
this
.
account
=
autoLogin
?
autoLogin
.
acc
:
""
;
this
.
pwd
=
autoLogin
?
autoLogin
.
pwd
:
""
;
this
.
isAutoLogin
=
autoLogin
?
true
:
false
;
},
methods
:
{
goLogin
()
{
if
(
this
.
account
==
""
)
{
return
this
.
$message
({
message
:
"请输入账号!"
,
type
:
"warning"
,
});
}
if
(
this
.
pwd
==
""
)
{
return
this
.
$message
({
message
:
"请输入密码!"
,
type
:
"warning"
,
});
}
var
msg
=
{
EmAccount
:
this
.
account
,
EmPassword
:
this
.
pwd
,
// Domain:'testerp.oytour.com'
Domain
:
"fcrmyx.oytour.com"
,
};
};
this
.
apipost
(
"/api/Login/UserLogin"
,
msg
,
(
res
)
=>
{
},
var
jsonData
=
res
.
data
;
created
()
{
if
(
jsonData
.
resultCode
==
1
)
{
let
autoLogin
=
localStorage
.
autoLogin
?
//登录成功
JSON
.
parse
(
localStorage
.
autoLogin
)
:
let
autoLogin
=
this
.
isAutoLogin
null
;
?
{
this
.
account
=
autoLogin
?
autoLogin
.
acc
:
""
;
acc
:
this
.
account
,
this
.
pwd
=
autoLogin
?
autoLogin
.
pwd
:
""
;
pwd
:
this
.
pwd
,
this
.
isAutoLogin
=
autoLogin
?
true
:
false
;
}
},
:
null
;
methods
:
{
localStorage
.
autoLogin
=
JSON
.
stringify
(
autoLogin
);
goLogin
()
{
var
userData
=
jsonData
.
data
;
if
(
this
.
account
==
""
)
{
var
userJson
=
JSON
.
stringify
(
userData
);
return
this
.
$message
({
localStorage
.
userInfo
=
userJson
;
message
:
"请输入账号!"
,
this
.
loginState
=
0
;
type
:
"warning"
,
this
.
$router
.
push
({
path
:
"/Home"
});
});
}
else
{
}
this
.
$message
({
if
(
this
.
pwd
==
""
)
{
message
:
res
.
data
.
message
,
return
this
.
$message
({
type
:
"error"
,
message
:
"请输入密码!"
,
type
:
"warning"
,
});
});
this
.
loginState
=
0
;
}
}
});
var
msg
=
{
EmAccount
:
this
.
account
,
EmPassword
:
this
.
pwd
,
Domain
:
"fcrmyx.oytour.com"
,
};
if
(
!
this
.
isOnline
())
{
msg
.
Domain
=
"www.test.com"
;
}
this
.
apipost
(
"/api/Login/UserLogin"
,
msg
,
(
res
)
=>
{
var
jsonData
=
res
.
data
;
if
(
jsonData
.
resultCode
==
1
)
{
//登录成功
let
autoLogin
=
this
.
isAutoLogin
?
{
acc
:
this
.
account
,
pwd
:
this
.
pwd
,
}
:
null
;
localStorage
.
autoLogin
=
JSON
.
stringify
(
autoLogin
);
var
userData
=
jsonData
.
data
;
var
userJson
=
JSON
.
stringify
(
userData
);
localStorage
.
userInfo
=
userJson
;
this
.
loginState
=
0
;
this
.
$router
.
push
({
path
:
"/Home"
});
}
else
{
this
.
$message
({
message
:
res
.
data
.
message
,
type
:
"error"
,
});
this
.
loginState
=
0
;
}
});
},
},
},
},
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.login
{
.login
{
background
:
url("../assets/img/login/bg.jpg")
no-repeat
100%
100%
;
background
:
url("../assets/img/login/bg.jpg")
no-repeat
100%
100%
;
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
overflow
:
hidden
;
overflow
:
hidden
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
}
}
.logo-box
{
position
:
absolute
;
.logo-box
{
top
:
30px
;
position
:
absolute
;
left
:
30px
;
top
:
30px
;
width
:
120px
;
left
:
30px
;
font-size
:
48px
;
width
:
120px
;
font-family
:
perfectFont
;
font-size
:
48px
;
color
:
#fff
;
font-family
:
perfectFont
;
}
color
:
#fff
;
.login
.login-box
{
}
width
:
1000px
;
height
:
560px
;
.login
.login-box
{
box-shadow
:
0
6px
20px
5px
rgba
(
40
,
120
,
255
,
0.1
),
width
:
1000px
;
0
16px
24px
2px
rgba
(
0
,
0
,
0
,
0.05
);
height
:
560px
;
border-radius
:
8px
;
box-shadow
:
0
6px
20px
5px
rgba
(
40
,
120
,
255
,
0.1
),
background
:
#fff
;
0
16px
24px
2px
rgba
(
0
,
0
,
0
,
0.05
);
display
:
flex
;
border-radius
:
8px
;
}
background
:
#fff
;
.login
.login-box
.left-card
{
display
:
flex
;
width
:
440px
;
}
height
:
100%
;
}
.login
.login-box
.left-card
{
.login
.login-box
.left-card
.item-card
{
width
:
440px
;
background
:
url("../assets/img/login/yinhao.png")
right
bottom
/
221px
no-repeat
,
height
:
100%
;
linear-gradient
(
180deg
,
#2878ff
,
#409efe
);
}
width
:
100%
;
height
:
100%
;
.login
.login-box
.left-card
.item-card
{
padding-top
:
96px
;
background
:
url("../assets/img/login/yinhao.png")
right
bottom
/
221px
no-repeat
,
color
:
white
;
linear-gradient
(
180deg
,
#2878ff
,
#409efe
);
box-sizing
:
border-box
;
width
:
100%
;
}
height
:
100%
;
.login
.login-box
.left-card
.item-card
.head-icon
{
padding-top
:
96px
;
width
:
104px
;
color
:
white
;
height
:
104px
;
box-sizing
:
border-box
;
margin
:
0
auto
;
}
border-radius
:
100%
;
background
:
rgba
(
40
,
120
,
255
,
0.5
);
.login
.login-box
.left-card
.item-card
.head-icon
{
padding
:
5px
;
width
:
104px
;
}
height
:
104px
;
.login
.login-box
.left-card
.item-card
.head-icon
img
{
margin
:
0
auto
;
width
:
100%
;
border-radius
:
100%
;
height
:
100%
;
background
:
rgba
(
40
,
120
,
255
,
0.5
);
border-radius
:
100%
;
padding
:
5px
;
}
}
.login
.login-box
.left-card
.item-card
.publisher
,
.login
.login-box
.left-card
.item-card
.job
{
.login
.login-box
.left-card
.item-card
.head-icon
img
{
margin-top
:
20px
;
width
:
100%
;
font-size
:
24px
;
height
:
100%
;
font-family
:
perfectFont
;
border-radius
:
100%
;
text-align
:
center
;
}
}
.login
.login-box
.left-card
.item-card
.publisher
{
.login
.login-box
.left-card
.item-card
.publisher
,
font-weight
:
bold
;
.login
.login-box
.left-card
.item-card
.job
{
}
margin-top
:
20px
;
.login
.login-box
.left-card
.item-card
.job
{
font-size
:
24px
;
font-size
:
16px
;
font-family
:
perfectFont
;
margin-top
:
10px
;
text-align
:
center
;
}
}
.login
.login-box
.left-card
.item-card
.content
{
font-size
:
13px
;
.login
.login-box
.left-card
.item-card
.publisher
{
font-family
:
perfectFont
;
font-weight
:
bold
;
margin-top
:
20px
;
}
margin
:
20px
;
line-height
:
24px
;
.login
.login-box
.left-card
.item-card
.job
{
text-indent
:
28px
;
font-size
:
16px
;
}
margin-top
:
10px
;
.login
.login-box
.right-card
{
}
flex
:
1
;
padding-top
:
50px
;
.login
.login-box
.left-card
.item-card
.content
{
font-family
:
perfectFont
;
font-size
:
13px
;
}
font-family
:
perfectFont
;
.login
.login-box
.right-card
.company
{
margin-top
:
20px
;
font-size
:
20px
;
margin
:
20px
;
text-align
:
center
;
line-height
:
24px
;
font-weight
:
bold
;
text-indent
:
28px
;
}
}
.login
.login-box
.right-card
.t
{
margin-top
:
20px
;
.login
.login-box
.right-card
{
font-size
:
34px
;
flex
:
1
;
text-align
:
center
;
padding-top
:
50px
;
font-weight
:
bold
;
font-family
:
perfectFont
;
margin-bottom
:
30px
;
}
}
.field_wrap
{
.login
.login-box
.right-card
.company
{
width
:
330px
;
font-size
:
20px
;
margin
:
0
auto
;
text-align
:
center
;
font-family
:
perfectFont
;
font-weight
:
bold
;
}
}
.field_wrap
.pwd_box
{
position
:
relative
;
.login
.login-box
.right-card
.t
{
}
margin-top
:
20px
;
.field_wrap
.pwd_box
.mu-text-field
{
font-size
:
34px
;
width
:
100%
;
text-align
:
center
;
color
:
rgba
(
0
,
0
,
0
,
0.54
);
font-weight
:
bold
;
}
margin-bottom
:
30px
;
.field_wrap
.pwd_box
.mu-text-field.has-label
{
}
min-height
:
72px
;
}
.field_wrap
{
.field_wrap
.pwd_box
.mu-text-field
.mu-text-field-content
{
width
:
330px
;
display
:
block
;
margin
:
0
auto
;
height
:
100%
;
font-family
:
perfectFont
;
padding-bottom
:
12px
;
}
padding-top
:
4px
;
}
.field_wrap
.pwd_box
{
.field_wrap
.pwd_box
.mu-text-field.has-label
.mu-text-field-content
{
position
:
relative
;
padding-top
:
28px
;
}
padding-bottom
:
12px
;
}
.field_wrap
.pwd_box
.mu-text-field
{
.field_wrap
width
:
100%
;
.pwd_box
color
:
rgba
(
0
,
0
,
0
,
0.54
);
.mu-text-field.has-label
}
.mu-text-field-content
.mu-text-field-label
{
.field_wrap
.pwd_box
.mu-text-field.has-label
{
line-height
:
20px
;
min-height
:
72px
;
transition
:
all
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
}
z-index
:
1
;
cursor
:
text
;
.field_wrap
.pwd_box
.mu-text-field
.mu-text-field-content
{
transform
:
translateZ
(
0
)
scale
(
0.75
);
display
:
block
;
transform-origin
:
left
top
;
height
:
100%
;
user-select
:
none
;
padding-bottom
:
12px
;
pointer-events
:
none
;
padding-top
:
4px
;
backface-visibility
:
hidden
;
}
font-size
:
16px
;
font-family
:
perfectFont
;
.field_wrap
.pwd_box
.mu-text-field.has-label
.mu-text-field-content
{
font-weight
:
bold
;
padding-top
:
28px
;
}
padding-bottom
:
12px
;
.field_wrap
}
.pwd_box
.mu-text-field.has-label
.field_wrap
.pwd_box
.mu-text-field.has-label
.mu-text-field-content
.mu-text-field-label
{
.mu-text-field-content
line-height
:
20px
;
.mu-text-field.has-label
transition
:
all
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
.mu-text-field-label
{
z-index
:
1
;
top
:
8px
;
cursor
:
text
;
position
:
absolute
;
transform
:
translateZ
(
0
)
scale
(
0.75
);
}
transform-origin
:
left
top
;
.field_wrap
user-select
:
none
;
.pwd_box
pointer-events
:
none
;
.mu-text-field.has-label
backface-visibility
:
hidden
;
.mu-text-field-content
font-size
:
16px
;
.mu-text-field-input
{
font-family
:
perfectFont
;
appearance
:
none
;
font-weight
:
bold
;
outline
:
none
;
}
border
:
none
;
background
:
none
;
.field_wrap
.pwd_box
.mu-text-field.has-label
.mu-text-field-content
.mu-text-field.has-label
.mu-text-field-label
{
border-radius
:
0
0
0
0
;
top
:
8px
;
box-shadow
:
none
;
position
:
absolute
;
display
:
block
;
}
padding
:
0
;
margin
:
0
;
.field_wrap
.pwd_box
.mu-text-field.has-label
.mu-text-field-content
.mu-text-field-input
{
width
:
100%
;
appearance
:
none
;
height
:
32px
;
outline
:
none
;
color
:
rgba
(
0
,
0
,
0
,
0.87
);
border
:
none
;
font-family
:
inherit
;
background
:
none
;
position
:
relative
;
border-radius
:
0
0
0
0
;
}
box-shadow
:
none
;
.field_wrap
.el-button
,
display
:
block
;
.field_wrap
.el-checkbox__inner
{
padding
:
0
;
border-radius
:
0
;
margin
:
0
;
}
width
:
100%
;
.mu-text-field-line
{
height
:
32px
;
background-color
:
rgba
(
0
,
0
,
0
,
0.4
);
color
:
rgba
(
0
,
0
,
0
,
0.87
);
margin
:
0
;
font-family
:
inherit
;
height
:
1px
;
position
:
relative
;
border
:
none
;
}
left
:
0
;
right
:
0
;
.field_wrap
.el-button
,
position
:
absolute
;
.field_wrap
.el-checkbox__inner
{
box-sizing
:
content-box
;
border-radius
:
0
;
overflow
:
visible
;
}
}
.mu-text-field-focus-line
{
.mu-text-field-line
{
margin
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
0.4
);
height
:
2px
;
margin
:
0
;
border
:
none
;
height
:
1px
;
background-color
:
#409efe
;
border
:
none
;
position
:
absolute
;
left
:
0
;
left
:
0
;
right
:
0
;
right
:
0
;
position
:
absolute
;
margin-top
:
-1px
;
box-sizing
:
content-box
;
transform
:
scaleX
(
0
);
overflow
:
visible
;
transition
:
-webkit-transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
}
transition
:
transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
transition
:
transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
),
.mu-text-field-focus-line
{
-webkit-transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
margin
:
0
;
}
height
:
2px
;
.mu-text-field-focus-line.focus
{
border
:
none
;
transform
:
scaleX
(
1
);
background-color
:
#409efe
;
}
position
:
absolute
;
.el-button--primary
,
left
:
0
;
.el-checkbox__input.is-checked
.el-checkbox__inner
,
right
:
0
;
.el-checkbox__input.is-indeterminate
.el-checkbox__inner
{
margin-top
:
-1px
;
background-color
:
#409efe
!important
;
transform
:
scaleX
(
0
);
border-color
:
#409efe
!important
;
transition
:
-webkit-transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
}
transition
:
transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
.login
.login-box
.right-card
.forget
{
transition
:
transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
),
margin-top
:
12px
;
-webkit-transform
0.45s
cubic-bezier
(
0.23
,
1
,
0.32
,
1
);
display
:
flex
;
}
}
.login
.login-box
.right-card
.forget
.item-forget
{
.mu-text-field-focus-line.focus
{
flex
:
1
;
transform
:
scaleX
(
1
);
font-size
:
14px
;
}
font-family
:
perfectFont
;
}
.el-button--primary
,
.login
.login-box
.right-card
.forget
.item-forget
:last-child
{
.el-checkbox__input.is-checked
.el-checkbox__inner
,
text-align
:
right
;
.el-checkbox__input.is-indeterminate
.el-checkbox__inner
{
}
background-color
:
#409efe
!important
;
.login
.login-box
.right-card
.forget
.item-forget
a
{
border-color
:
#409efe
!important
;
color
:
#000
;
}
text-decoration
:
none
;
}
.login
.login-box
.right-card
.forget
{
.login
.login-box
.right-card
.forget
.item-forget
a
:hover
{
margin-top
:
12px
;
color
:
#409efe
;
display
:
flex
;
}
}
</
style
>
.login
.login-box
.right-card
.forget
.item-forget
{
flex
:
1
;
font-size
:
14px
;
font-family
:
perfectFont
;
}
.login
.login-box
.right-card
.forget
.item-forget
:last-child
{
text-align
:
right
;
}
.login
.login-box
.right-card
.forget
.item-forget
a
{
color
:
#000
;
text-decoration
:
none
;
}
.login
.login-box
.right-card
.forget
.item-forget
a
:hover
{
color
:
#409efe
;
}
</
style
>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment