Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
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
罗超
SuperMan
Commits
d9aa6455
Commit
d9aa6455
authored
Sep 19, 2019
by
黄媛媛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
783d64d2
8bf3e931
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1285 additions
and
4 deletions
+1285
-4
login2019.css
src/assets/css/login2019.css
+192
-0
Login2019.vue
src/components/Login2019.vue
+433
-0
TravelContractDetail.vue
src/components/TravelContractDetail.vue
+1
-1
RegistrationList.vue
src/components/TravelManager/TravelList/RegistrationList.vue
+3
-3
NewSurvey.vue
src/components/administrative/NewSurvey.vue
+107
-0
NewSurveyList.vue
src/components/administrative/NewSurveyList.vue
+217
-0
Survey.vue
src/components/administrative/Survey.vue
+307
-0
config.js
src/router/config.js
+25
-0
No files found.
src/assets/css/login2019.css
0 → 100644
View file @
d9aa6455
.newSummaryLogin
.item
img
{
width
:
100%
;
}
.login_Div
{
background
:
#fff
;
padding
:
60px
0
20px
0
;
box-sizing
:
border-box
;
height
:
100%
;
width
:
60%
;
margin
:
0
auto
;
}
.newSummaryLogin
.error-msg
{
color
:
#cccccc
;
font-size
:
12px
;
text-align
:
left
;
width
:
300px
;
margin
:
0
auto
0
;
height
:
20px
;
padding-left
:
16px
;
}
.newSummaryLogin
.error-msg
img
{
position
:
relative
;
top
:
3px
;
margin
:
0
10px
0
5px
;
}
.login_Div
.sumMainTitle
{
font-size
:
28px
;
padding-top
:
40px
;
color
:
#333
;
margin-bottom
:
40px
;
font-weight
:
bold
;
}
.login_Div
.littTitle
{
font-size
:
18px
;
color
:
#333333
;
}
.login_Div
.icon-login-name
,
.login_Div
.icon-login-password
{
width
:
16px
;
height
:
15px
;
display
:
inline-block
;
position
:
absolute
;
top
:
10px
;
color
:
#000000
}
.login_Div
.login-commonBotm
{
width
:
100%
;
position
:
relative
;
margin
:
10px
auto
0
0
;
}
.login_Div
.login-commonBotm
img
{
float
:
left
;
margin-top
:
14px
;
}
.login_Div
input
.input
{
width
:
100%
;
height
:
40px
;
outline
:
none
;
padding-left
:
30px
;
border
:
none
;
border-bottom
:
1px
solid
#CCCCCC
;
color
:
#333333
;
caret-color
:
#E95252
;
}
.login_Div
input
::-webkit-input-placeholder
{
color
:
#999999
;
font-size
:
12px
;
}
.newSummaryLogin
.sumPhone
{
width
:
100%
;
text-align
:
center
;
color
:
#333
;
margin-bottom
:
10px
;}
.login_Div
input
:-webkit-autofill
,
.login_Div
textarea
:-webkit-autofill
,
.login_Div
select
:-webkit-autofill
{
-webkit-text-fill-color
:
#ededed
!important
;
-webkit-box-shadow
:
0
0
0px
1000px
transparent
inset
!important
;
background-color
:
transparent
;
background-image
:
none
;
transition
:
background-color
50000s
ease-in-out
0s
;
}
.login_Div
.sLoginBtn
{
margin-top
:
30px
;
width
:
100%
;
height
:
40px
;
background
:
#EE4454
;
border-radius
:
4px
;
outline
:
none
;
border
:
none
;
color
:
#fff
;
transition
:
all
linear
0.5s
;
}
.login_Div
.sLoginBtn
:hover
{
opacity
:
.8
;
cursor
:
pointer
;
background-color
:
#E95252
;
color
:
#FFFFFF
}
.login_Div
.validatCode
{
color
:
#333333
;
}
.newSummaryLogin
.msgTips
p
{
color
:
#333333
!important
;
}
.newSummaryLogin
.msgTips
p
,
.newSummaryLogin
.msgTips
h2
{
color
:
#333333
!important
;
}
.newSummaryLogin
.bindTitle
{
margin-bottom
:
10px
;}
.newSummaryLogin
.changeBtn
{
margin-top
:
10px
;
}
.login-box
.forgetPw
{
/* width:300px; */
height
:
40px
;
text-align
:
right
;
margin
:
auto
;
color
:
#999999
;
font-size
:
12px
;
text-align
:
right
;
line-height
:
40px
;
}
.forgetPw
span
{
cursor
:
pointer
;
}
.newSummaryLogin
.login-box
.forgetPw
span
:hover
{
color
:
#E95252
;
}
.newSummaryLogin
.login-way
{
width
:
300px
;
height
:
40px
;
margin
:
25px
auto
;
font-size
:
12px
;
color
:
#CCCCCC
;
display
:
none
;
line-height
:
40px
;
}
.newSummaryLogin
.wayLeft
{
float
:
left
;
}
.newSummaryLogin
.icon-login-qqicon
{
width
:
16px
;
height
:
15px
;
display
:
inline-block
;
position
:
relative
;
top
:
3px
;
background
:
url(../img/qqIco.png)
no-repeat
;
}
.newSummaryLogin
.icon-login-wechaticon
{
width
:
19px
;
height
:
15px
;
display
:
inline-block
;
position
:
relative
;
top
:
3px
;
background
:
url(../img/wechatIco.png)
no-repeat
;
}
.newSummaryLogin
.wayRight
{
float
:
right
;
}
.newSummaryLogin
.validatCode
{
position
:
absolute
;
right
:
0
;
top
:
13px
;
padding-left
:
10px
;
color
:
#333
;
font-size
:
12px
;
letter-spacing
:
2px
;
border-left
:
1px
solid
#cccccc
;
}
.newSummaryLogin
.validatCode
span
:first-child
{
cursor
:
pointer
;}
.newSummaryLogin
.btValidate
{
margin-top
:
30px
;
}
.newSummaryLogin
.login_elephant
{
position
:
absolute
;
left
:
-15px
;
top
:
-80px
;
}
.newSummaryLogin
.homepage-hero-module
,
.video-container
{
position
:
relative
;
height
:
100vh
;
overflow
:
hidden
;
}
.newSummaryLogin
.name_bline_left
{
position
:
absolute
;
right
:
50%
;
bottom
:
0
;
width
:
0
;
height
:
2px
;
background-color
:
#E95252
;
transition
:
all
linear
0.5s
;}
.newSummaryLogin
.name_bline_right
{
position
:
absolute
;
left
:
50%
;
bottom
:
0
;
width
:
0
;
height
:
2px
;
background-color
:
#E95252
;
transition
:
all
linear
0.5s
;}
.newSummaryLogin
.pwd_bline_left
{
position
:
absolute
;
right
:
50%
;
bottom
:
0
;
width
:
0
;
height
:
2px
;
background-color
:
#E95252
;
transition
:
all
linear
0.5s
;}
.newSummaryLogin
.pwd_bline_right
{
position
:
absolute
;
left
:
50%
;
bottom
:
0
;
width
:
0
;
height
:
2px
;
background-color
:
#E95252
;
transition
:
all
linear
0.5s
;}
.newSummaryLogin
.login-Div
input
:-webkit-autofill
,
.login-Div
textarea
:-webkit-autofill
,
.login-Div
select
:-webkit-autofill
{
-webkit-text-fill-color
:
#ededed
!important
;
-webkit-box-shadow
:
0
0
0px
1000px
transparent
inset
!important
;
background-color
:
transparent
;
background-image
:
none
;
transition
:
background-color
50000s
ease-in-out
0s
;
}
.newSummaryLogin
._bline_w
{
width
:
50%
;}
src/components/Login2019.vue
0 → 100644
View file @
d9aa6455
<
style
>
@import
"../assets/css/login2019.css"
;
.login_body
{
height
:
calc
(
100vh
);
width
:
100%
;
background-color
:
white
;
}
.logo_box
{
display
:
flex
;
align-items
:
center
;
font-size
:
16px
;
}
.logo_box
img
{
margin-right
:
10px
;
}
.jitang
{
margin-top
:
40px
;
}
.jitang
p
{
color
:
#424242
;
font-size
:
14px
;
text-indent
:
25px
;
width
:
60%
;
margin
:
0
auto
;
}
.FPF_s
{
font-family
:
'PingFangR'
;
}
.FPF_b
{
font-family
:
'PingFangR'
;
font-weight
:
600
;
}
</
style
>
<
template
>
<div>
<el-row
class=
"login_body"
>
<el-col
:span=
"16"
>
<my-carousel
:speed=
'speed'
:imgList=
'imgList'
/>
</el-col>
<el-col
:span=
"8"
class=
"login-box newSummaryLogin"
>
<div
v-if=
"isShow==1"
class=
"login_Div"
>
<div
class=
"logo_box"
>
<img
style=
"width: 40px;"
src=
"http://imgfile.oytour.com/Upload/CompanyImage/20181219/636808340326373827.png"
alt=
""
>
<p
class=
"FPF_b"
>
{{
groupModel
.
GroupName
?
groupModel
.
GroupName
:
''
}}
</p>
</div>
<div
class=
"sumMainTitle FPF_s"
>
登录
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-name iconfont icon-user11"
:style=
"
{color: name_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b"
@
focus=
"name_bline=true"
@
blur=
"name_bline=false"
maxlength=
"20"
autocomplete=
"new-password"
v-model=
"userInfo.name"
style=
"background-color:transparent !important;"
type=
"text"
:placeholder=
"$t('login.login_account')"
@
keyup
.
enter=
"doLogin"
/>
<div
class=
"name_bline_left"
:class=
"name_bline==true?'_bline_w':''"
></div>
<div
class=
"name_bline_right"
:class=
"name_bline==true?'_bline_w':''"
></div>
</div>
<div
class=
"error-msg"
>
<div
v-show=
"nameIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
nameErrorMsg
}}
</div>
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-password iconfont icon-mima"
:style=
"
{color: pwd_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b"
@
focus=
"pwd_bline=true"
@
blur=
"pwd_bline=false"
maxlength=
"20"
autocomplete=
"new-password"
v-model=
"userInfo.password"
style=
"background-color:transparent !important"
type=
"password"
:placeholder=
"$t('login.login_password')"
@
keyup
.
enter=
"doLogin"
/>
<div
class=
"pwd_bline_left"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
<div
class=
"pwd_bline_right"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
</div>
<div
class=
"error-msg"
>
<div
v-show=
"passwordIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
passwordErrorMsg
}}
</div>
</div>
<div
style=
"text-align: center;margin-top: 40px;"
>
<button
type=
"button"
class=
"sLoginBtn FPF_s"
:class=
"
{'loginIng':loginState==1}" :disabled="loginState==1" @click="doLogin">
{{
loginState
==
1
?
'登录中...'
:
'登录'
}}
</button>
</div>
<div
class=
"forgetPw"
>
<span
@
click=
"updatePwd"
>
{{
$t
(
'login.login_forgetpwd'
)
}}
?
</span>
</div>
<!--
<div
class=
"login-way"
>
<div
class=
"wayLeft"
>
<i
class=
"icon-login-qqicon"
></i>
<span>
QQ登录
</span>
</div>
<div
class=
"wayRight"
>
<i
class=
"icon-login-wechaticon"
></i>
<span>
微信登录
</span>
</div>
</div>
-->
</div>
<div
v-if=
"isShow==2"
class=
"phoneLogin login_Div>"
>
<div
class=
"logo_box"
>
<img
style=
"width: 40px;"
src=
"http://imgfile.oytour.com/Upload/CompanyImage/20181219/636808340326373827.png"
alt=
""
>
<p
class=
"FPF_b"
>
{{
groupModel
.
GroupName
?
groupModel
.
GroupName
:
''
}}
</p>
</div>
<div
class=
"sumMainTitle FPF_s"
>
绑定手机号
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-name iconfont icon-shouji1"
:style=
"
{color: name_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b"
@
focus=
"name_bline=true"
@
blur=
"name_bline=false"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
maxlength=
"11"
autocomplete=
"new-password"
v-model=
"mobileNumber"
style=
"background-color:transparent !important;"
type=
"text"
placeholder=
"请输入手机号"
/>
<div
class=
"name_bline_left"
:class=
"name_bline==true?'_bline_w':''"
></div>
<div
class=
"name_bline_right"
:class=
"name_bline==true?'_bline_w':''"
></div>
</div>
<div
class=
"error-msg"
>
<div
v-show=
"nameIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
nameErrorMsg
}}
</div>
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-password iconfont icon-yanzhengma"
:style=
"
{color: pwd_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b phoneValidate"
maxlength=
"4"
@
focus=
"pwd_bline=true"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
@
blur=
"pwd_bline=false"
v-model=
"code"
autocomplete=
"new-password"
style=
"background-color:transparent !important"
type=
"text"
placeholder=
"验证码"
@
keyup
.
enter=
"doBind"
/>
<div
class=
"pwd_bline_left"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
<div
class=
"pwd_bline_right"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
<div
class=
"validatCode"
>
<span
v-show=
"show"
@
click=
"getCode"
class=
"FPF_s"
>
获取验证码
</span>
<span
v-show=
"!show"
class=
"count FPF_s"
>
{{
count
}}
s重新获取
</span>
</div>
</div>
<div
class=
"error-msg"
>
<div
v-show=
"passwordIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
passwordErrorMsg
}}
</div>
</div>
<input
type=
"button"
class=
"sLoginBtn"
@
click=
"doBind"
value=
"确认绑定"
/>
</div>
<div
v-if=
"isShow==3"
class=
"phoneLogin login_Div"
>
<div
class=
"logo_box"
>
<img
style=
"width: 40px;"
src=
"http://imgfile.oytour.com/Upload/CompanyImage/20181219/636808340326373827.png"
alt=
""
>
<p>
{{
groupModel
.
GroupName
?
groupModel
.
GroupName
:
''
}}
</p>
</div>
<div
class=
"sumMainTitle FPF_s"
>
修改密码
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-name iconfont icon-shouji1"
:style=
"
{color: name_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b"
@
focus=
"name_bline=true"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
maxlength=
"11"
@
blur=
"name_bline=false"
autocomplete=
"new-password"
v-model=
"mobileNumber"
style=
"background-color:transparent !important;"
type=
"text"
placeholder=
"请输入手机号"
/>
<div
class=
"name_bline_left"
:class=
"name_bline==true?'_bline_w':''"
></div>
<div
class=
"name_bline_right"
:class=
"name_bline==true?'_bline_w':''"
></div>
</div>
<div
class=
"error-msg"
>
<div
v-show=
"nameIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
nameErrorMsg
}}
</div>
</div>
<div
class=
"login-commonBotm"
>
<i
class=
"icon-login-password iconfont icon-mima"
:style=
"
{color: pwd_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b"
@
focus=
"pwd_bline=true"
@
blur=
"pwd_bline=false"
autocomplete=
"new-password"
maxlength=
"20"
v-model=
"password"
style=
"background-color:transparent !important"
type=
"password"
placeholder=
"请输入新密码"
/>
<div
class=
"pwd_bline_left"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
<div
class=
"pwd_bline_right"
:class=
"pwd_bline==true?'_bline_w':''"
></div>
</div>
<div
class=
"login-commonBotm btValidate"
>
<i
class=
"icon-login-password iconfont icon-yanzhengma"
:style=
"
{color: validate_bline==true?'#E95252':'#000000'}">
</i>
<input
class=
"input FPF_b phoneValidate"
maxlength=
"4"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
@
focus=
"validate_bline=true"
@
blur=
"validate_bline=false"
v-model=
"code"
autocomplete=
"new-password"
style=
"background-color:transparent !important"
type=
"text"
placeholder=
"验证码"
@
keyup
.
enter=
"changePwd"
/>
<div
class=
"pwd_bline_left"
:class=
"validate_bline==true?'_bline_w':''"
></div>
<div
class=
"pwd_bline_right"
:class=
"validate_bline==true?'_bline_w':''"
></div>
<div
class=
"validatCode"
>
<span
v-show=
"show"
@
click=
"getCode"
class=
"FPF_s"
>
获取验证码
</span>
<span
v-show=
"!show"
class=
"count FPF_s"
>
{{
count
}}
s重新获取
</span>
</div>
</div>
<div
class=
"forgetPw"
>
<div
class=
"error-msg"
style=
"float:left;width:auto;"
>
<div
v-show=
"passwordIsShow"
><img
src=
"../assets/img/login-error-tips.png"
/>
{{
passwordErrorMsg
}}
</div>
</div>
<span
@
click=
"goLogin"
class=
"FPF_s"
>
去登录
</span>
</div>
<input
type=
"button"
class=
"sLoginBtn changeBtn"
@
click=
"changePwd"
value=
"确认修改"
/>
</div>
<div
class=
"jitang FPF_s"
>
<p>
職場上成功者與失敗者最大的分別就是,前者找機會,後者找藉口,今日的你痛恨每天上班「度日如年」,將來的你會感激經歷過這一切,你練成了更強大的自己,玻璃心不再怕碎。
</p>
</div>
</el-col>
</el-row>
</div>
</
template
>
<
script
>
import
Carousel
from
"./public/Carousel"
export
default
{
data
(){
return
{
speed
:
3000
,
imgList
:
[
{
src
:
'http://imgfile.oytour.com/Upload/DMC/20190522030104834.jpg?x-oss-process=image/resize,l_140'
,
text
:
'蓝白相间 星月相伴'
,
text1
:
'土耳其希腊深度13日'
},
{
src
:
'http://imgfile.oytour.com/Upload/DMC/xESG4FERFri7JXnjQTbcZymGYkQx3sNG.png?x-oss-process=image/resize,l_140'
,
text
:
'浪漫邂逅 历史遗迹'
,
text1
:
'天然钟乳石地形'
},
{
src
:
'http://imgfile.oytour.com/Upload/DMC/T5TyQsQwekQGkWcMxceY5xXhCdJjeFX6.jpg'
,
text
:
'艾菲索斯古城'
,
text1
:
'凯马克勒地下城市'
},
],
userInfo
:
{
name
:
""
,
password
:
""
,
Domain
:
""
},
groupModel
:
""
,
password
:
""
,
mobileNumber
:
""
,
code
:
""
,
mobileCodeType
:
1
,
show
:
true
,
count
:
""
,
timer
:
null
,
isShow
:
1
,
vedioCanPlay
:
false
,
fixStyle
:
""
,
nameIsShow
:
false
,
passwordIsShow
:
false
,
nameErrorMsg
:
""
,
passwordErrorMsg
:
""
,
name_bline
:
false
,
pwd_bline
:
false
,
validate_bline
:
false
,
loginState
:
0
,
height
:
0
,
clock
:
null
,
crtIndex
:
0
,
}
},
components
:{
'my-carousel'
:
Carousel
},
methods
:{
//初始化数据
initData
()
{
//判断是否是线上环境
if
(
!
this
.
isOnline
())
{
this
.
userInfo
.
name
=
"18117845617"
;
this
.
userInfo
.
password
=
"123456"
;
}
this
.
userInfo
.
Domain
=
window
.
location
.
hostname
},
doLogin
()
{
if
(
this
.
userInfo
.
name
==
""
)
{
this
.
nameIsShow
=
true
;
this
.
nameErrorMsg
=
"请输入用户名"
;
return
;
}
else
if
(
this
.
userInfo
.
password
==
""
)
{
this
.
passwordIsShow
=
true
;
this
.
passwordErrorMsg
=
"请输入密码"
;
return
;
}
else
{
this
.
nameIsShow
=
false
;
this
.
passwordIsShow
=
false
;
}
this
.
loginState
=
1
;
var
msg
=
{
EmAccount
:
this
.
userInfo
.
name
,
EmPassword
:
this
.
userInfo
.
password
,
Domain
:
this
.
userInfo
.
Domain
};
this
.
apipost
(
"admin_get_EmployeeLogin"
,
msg
,
response
=>
{
var
jsonData
=
response
.
data
;
//未绑定手机号码
if
(
jsonData
.
resultCode
==
10006
)
{
this
.
$notify
.
error
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
"请绑定手机号"
,
showClose
:
false
,
duration
:
3000
});
this
.
isShow
=
2
;
}
else
if
(
jsonData
.
resultCode
==
1
)
{
//登录成功
var
userData
=
jsonData
.
data
;
var
userJson
=
JSON
.
stringify
(
userData
);
localStorage
.
removeItem
(
'navTabs'
)
localStorage
.
removeItem
(
'orderObj'
)
localStorage
.
userInfo
=
userJson
;
let
firstTire
=
[]
userData
.
UserMenu
.
forEach
(
x
=>
{
if
(
x
.
MenuUrl
==
''
)
{
firstTire
.
push
(
x
.
MenuName
)
}
})
//UserMenu
this
.
$cookie
.
set
(
"account"
,
this
.
userInfo
.
name
);
this
.
$cookie
.
set
(
"EmployeeId"
,
userData
.
EmployeeId
);
this
.
$cookie
.
set
(
"RB_Branch_id"
,
userData
.
RB_Branch_id
);
this
.
$cookie
.
set
(
"RB_Group_id"
,
userData
.
RB_Group_id
);
localStorage
.
menu
=
JSON
.
stringify
(
firstTire
)
this
.
loginState
=
0
;
// let previousPathInfo = localStorage.previousPathInfo ? JSON.parse(localStorage.previousPathInfo) : ''
// if (previousPathInfo) {
// let path = previousPathInfo.path.indexOf('login') === -1 ? previousPathInfo.path : 'index'
// let query = previousPathInfo.query ? previousPathInfo.query : {}
// this.$router.push({ path: "/"+ path, query: query });
// }else {
// this.$router.push({ path: "/index" });
// }
this
.
$router
.
push
({
path
:
"/personalCenter"
});
//登录成功后跳转页面
// this.$notify.success({
// title:'提示',
// customClass:'msgTips',
// message: '登陆成功',
// showClose: false,
// duration:1000
// });
}
else
{
this
.
$notify
.
error
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
response
.
data
.
message
,
showClose
:
false
,
duration
:
3000
});
this
.
loginState
=
0
;
}
},
err
=>
{}
);
},
getCode
()
{
var
phoneReg
=
/
(
^1
[
3|4|5|6|7|8|9
]\d{9}
$
)
|
(
^09
\d{8}
$
)
/
;
//电话
var
phone
=
this
.
mobileNumber
.
replace
(
/^
\s
+|
\s
+$/gm
,
""
);
if
(
!
phoneReg
.
test
(
phone
))
{
this
.
nameIsShow
=
true
;
this
.
nameErrorMsg
=
"请输入有效的手机号码!"
;
return
false
;
}
else
{
this
.
nameIsShow
=
false
;
}
const
TIME_COUNT
=
60
;
this
.
code
=
""
;
if
(
!
this
.
timer
)
{
this
.
count
=
TIME_COUNT
;
this
.
show
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
TIME_COUNT
)
{
this
.
count
--
;
}
else
{
this
.
show
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
}
let
msg
=
{
mobileNumber
:
this
.
mobileNumber
,
mobileCodeType
:
this
.
mobileCodeType
};
this
.
apipost
(
"user_get_moblieNumber_code"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
}
else
{
this
.
$notify
.
error
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
res
.
data
.
message
,
showClose
:
false
,
duration
:
3000
});
}
});
},
doBind
()
{
if
(
this
.
mobileNumber
==
""
)
{
this
.
nameIsShow
=
true
;
this
.
nameErrorMsg
=
"请输入手机号"
;
return
;
}
else
if
(
this
.
code
==
""
)
{
this
.
passwordIsShow
=
true
;
this
.
passwordErrorMsg
=
"请输入验证码"
;
return
;
}
let
msg
=
{
account
:
this
.
userInfo
.
name
,
password
:
this
.
userInfo
.
password
,
mobileNumber
:
this
.
mobileNumber
,
code
:
this
.
code
};
this
.
apipost
(
"user_account_bind_moblieNumber"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
isShow
=
1
;
this
.
loginState
=
0
;
this
.
userInfo
.
name
=
this
.
mobileNumber
;
}
else
{
this
.
$notify
.
error
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
res
.
data
.
message
,
showClose
:
false
,
duration
:
3000
});
}
});
},
getGroup
()
{
//获取集团
let
Domain
=
window
.
location
.
hostname
this
.
apipost
(
'admin_get_GetModelByDomain'
,{
'Domain'
:
Domain
},
res
=>
{
this
.
groupModel
=
res
.
data
.
data
;
document
.
title
=
"欢迎使用 "
+
this
.
groupModel
.
GroupName
+
" ERP系统"
;
},
err
=>
{})
},
updatePwd
()
{
this
.
isShow
=
3
;
this
.
mobileCodeType
=
2
;
},
changePwd
()
{
let
msg
=
{
password
:
this
.
password
,
mobileNumber
:
this
.
mobileNumber
,
code
:
this
.
code
};
this
.
apipost
(
"user_change_password_by_mobileNumber"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
isShow
=
1
;
this
.
$notify
.
success
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
res
.
data
.
message
,
showClose
:
false
,
duration
:
3000
});
}
else
{
this
.
$notify
.
error
({
title
:
"提示"
,
customClass
:
"msgTips"
,
message
:
res
.
data
.
message
,
showClose
:
false
,
duration
:
3000
});
}
});
},
goLogin
()
{
this
.
isShow
=
1
;
}
},
mounted
(){
this
.
initData
()
this
.
getGroup
()
},
created
(){
}
}
</
script
>
\ No newline at end of file
src/components/TravelContractDetail.vue
View file @
d9aa6455
...
@@ -527,7 +527,7 @@
...
@@ -527,7 +527,7 @@
<span
v-if=
"dataList.payType==2"
>
转账
</span>
<span
v-if=
"dataList.payType==2"
>
转账
</span>
<span
v-if=
"dataList.payType==3"
>
支票
</span>
。
<span
v-if=
"dataList.payType==3"
>
支票
</span>
。
</p>
</p>
<p>
旅游费用支付时间:
<span>
{{
getDate
(
dataList
.
payDate
)
}}
</span>
。
</p>
<p>
旅游费用支付时间:
<span
v-if=
"dataList.payDate"
>
{{
getDate
(
dataList
.
payDate
)
}}
</span>
。
</p>
<h3>
第二十二条 人身意外伤害保险
</h3>
<h3>
第二十二条 人身意外伤害保险
</h3>
<p>
1.出境社提示旅游者购买人身意外伤害保险;
</p>
<p>
1.出境社提示旅游者购买人身意外伤害保险;
</p>
<p>
<p>
...
...
src/components/TravelManager/TravelList/RegistrationList.vue
View file @
d9aa6455
...
@@ -1869,7 +1869,7 @@
...
@@ -1869,7 +1869,7 @@
<el-tooltip
effect=
"dark"
content=
"更多"
placement=
"top-start"
style=
"float:left"
>
<el-tooltip
effect=
"dark"
content=
"更多"
placement=
"top-start"
style=
"float:left"
>
<el-popover
width=
'100'
trigger=
"hover"
>
<el-popover
width=
'100'
trigger=
"hover"
>
<div
class=
"groupTourOrder_more"
>
<div
class=
"groupTourOrder_more"
>
<div
@
click=
"
goToPassenger(item)
"
>
旅客名单
</div>
<div
@
click=
""
>
旅客名单
</div>
<div
@
click=
"toTrip(item)"
>
出团通知书({{SetNoticeMsg.OutNotice==1?'OK':'暂定'}})
</div>
<div
@
click=
"toTrip(item)"
>
出团通知书({{SetNoticeMsg.OutNotice==1?'OK':'暂定'}})
</div>
<div
v-if=
"isEditOrderCreate==1"
@
click=
"getSalerInfo(item)"
>
修改业务员
</div>
<div
v-if=
"isEditOrderCreate==1"
@
click=
"getSalerInfo(item)"
>
修改业务员
</div>
<div
@
click=
'zhuanLoading = true,OPRemarkMsg.OrderId = item.OrderId'
>
OP备注
</div>
<div
@
click=
'zhuanLoading = true,OPRemarkMsg.OrderId = item.OrderId'
>
OP备注
</div>
...
@@ -1896,7 +1896,7 @@
...
@@ -1896,7 +1896,7 @@
<span
class=
"RL-remarkTitle"
v-if=
"item.GuestList.length>0"
>
名单:
</span>
<span
class=
"RL-remarkTitle"
v-if=
"item.GuestList.length>0"
>
名单:
</span>
<p
class=
"RL-redType RL-remarkCon"
v-if=
"item.GuestList.length>0"
>
<p
class=
"RL-redType RL-remarkCon"
v-if=
"item.GuestList.length>0"
>
<span
style=
"color:blue !important"
v-for=
"(childItem) in item.GuestList"
<span
style=
"color:blue !important"
v-for=
"(childItem) in item.GuestList"
@
click=
"
goToPassenger(childItem, 2)
"
>
{{childItem.userName}}
</span>
@
click=
""
>
{{childItem.userName}}
</span>
<!-- <span style="color:blue !important" v-for="(childItem) in item.GuestList"
<!-- <span style="color:blue !important" v-for="(childItem) in item.GuestList"
@click="goUrl('TravelPassengerList',msg.TCID,childItem.OrderId,'旅客名单')">{{childItem.userName}}</span> -->
@click="goUrl('TravelPassengerList',msg.TCID,childItem.OrderId,'旅客名单')">{{childItem.userName}}</span> -->
</p>
</p>
...
@@ -3568,7 +3568,7 @@
...
@@ -3568,7 +3568,7 @@
SetShouSunClick
(
OrderId
,
GuestNum
)
{
SetShouSunClick
(
OrderId
,
GuestNum
)
{
this
.
shousunDialog
=
true
;
this
.
shousunDialog
=
true
;
this
.
SetShouSunGuestNum
=
GuestNum
this
.
SetShouSunGuestNum
=
GuestNum
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
childShou
.
getShouSunList
(
OrderId
);
this
.
$refs
.
childShou
.
getShouSunList
(
OrderId
);
})
})
},
},
...
...
src/components/administrative/NewSurvey.vue
0 → 100644
View file @
d9aa6455
<
style
>
.investigationList
td
button
{
width
:
30px
;
height
:
30px
;
display
:
inline-block
;
color
:
white
!important
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
30px
;
margin-right
:
10px
;
cursor
:
pointer
;
outline
:
none
;
padding
:
0
;
}
.investigationList
.el-button.is-circle
{
padding
:
0
;
}
</
style
>
<
template
>
<div
class=
"investigationList"
>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th>
订单号
</th>
<th>
客人名称
</th>
<th>
销售名称
</th>
<th>
客户名称
</th>
<th>
分数
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"item in dataList"
>
<td>
{{
OrderId
}}
</td>
<td>
{{
item
.
GuestName
}}
</td>
<td>
{{
item
.
EnterName
}}
</td>
<td>
{{
item
.
CustomerName
}}
</td>
<td>
{{
item
.
ScoreNum
}}
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"填写"
placement=
"top"
>
<el-button
v-if=
"item.ID==0"
type=
"primary"
icon=
"iconfont icon-Edit"
circle
@
click=
"chaKan(item)"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"详情"
placement=
"top"
>
<el-button
v-if=
"item.ID!==0"
type=
"primary"
icon=
"iconfont icon-sousuo"
circle
@
click=
"openPage(item)"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<div
class=
"noDataNotice"
v-if=
"dataList.length
<1
"
>
<i
class=
"iconfont icon-kong"
></i>
<p>
{{
$t
(
"active.ld_noData"
)
}}
</p>
</div>
<a
href=
""
id=
"blankLink"
target=
"_blank"
style=
"display:none"
>
1
</a>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
loading
:
false
,
dataList
:
[],
DiaoChaShow
:
false
,
YouJiShow
:
false
,
showID
:
0
,
dialogTitle
:
''
,
OrderId
:
''
,
TCIDL
:
''
}
},
mounted
()
{
let
TCID
=
this
.
$route
.
query
.
TCID
,
OrderID
=
this
.
$route
.
query
.
OrderId
;
this
.
OrderId
=
OrderID
this
.
TCID
=
TCID
this
.
getList
(
TCID
,
OrderID
);
},
methods
:
{
openPage
:
function
(
obj
){
console
.
log
(
obj
)
let
dom
=
document
.
querySelector
(
"#blankLink"
);
dom
.
href
=
"http://activity.oytour.com/html/invesDetails2.html"
+
'?ID='
+
obj
.
ID
+
'&name='
+
encodeURI
(
obj
.
GuestName
)
+
'&MobilePhone='
+
obj
.
CustomerPhone
dom
.
click
();
},
chaKan
(
item
){
let
obj
=
JSON
.
stringify
(
item
)
this
.
$router
.
push
({
name
:
'NewSurveyList'
,
query
:{
"TCID"
:
this
.
TCID
,
"OrderId"
:
this
.
OrderId
,
obj
:
obj
,
blank
:
'y'
}
})
},
getList
:
function
(
TCID
,
OrderID
)
{
this
.
apipost
(
'survey_post_GetTotalListAPP'
,
{
TCID
:
TCID
,
OrderID
:
OrderID
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
dataList
=
res
.
data
.
data
.
objAll
;
}
},
null
)
}
}
}
</
script
>
src/components/administrative/NewSurveyList.vue
0 → 100644
View file @
d9aa6455
<
style
>
.NewSurveyList.main
{
padding
:
1.5rem
;
}
.NewSurveyList
.tit
{
font-size
:
2rem
;
text-align
:
center
;
margin-bottom
:
.5rem
;
}
.NewSurveyList
.sub_tit
{
font-size
:
1.4rem
;
margin-bottom
:
.4rem
;
}
.NewSurveyList
.indet_2
{
text-indent
:
2.4rem
;
}
.NewSurveyList
.tit_det
{
text-indent
:
2.4rem
;
font-size
:
1rem
;
}
.NewSurveyList
table
{
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.NewSurveyList
table
{
margin-top
:
1rem
;
width
:
100%
;
}
.NewSurveyList
tr
td
{
padding
:
.5rem
;
border
:
1px
solid
#5b5653
;
font-size
:
1rem
;
}
.NewSurveyList
.qianming
{
margin-top
:
2.5rem
;
}
.NewSurveyList
.qianming
label
{
margin-right
:
.2rem
;
}
.NewSurveyList.main
{
width
:
720px
;
margin
:
0
auto
;
}
.NewSurveyList
#table
td
,
.NewSurveyList
.qianming
span
{
color
:
#111
;
}
.NewSurveyList
#table
td
._name
,
.NewSurveyList
.qianming
label
{
color
:
#5d5d5d
;
}
</
style
>
<
template
>
<div
class=
"main NewSurveyList"
>
<!--
<p
class=
"tit"
>
印象旅游服务意见表
</p>
<div
class=
"message-box"
>
<p
class=
"sub_tit"
>
亲爱的旅客:
</p>
<div
class=
"tit_det"
>
<p>
感谢与您同行,让我们的旅行更加圆满!
</p>
<p>
我们十分珍视倾听您的声音。它将是我们改善服务的重要基础。
</p>
<p>
最后,需要您花一点点时间填写此表。诚挚地感谢您!
</p>
</div>
</div>
-->
<div
class=
"qianming"
>
<label
class=
"_name"
>
旅客签名:
<span
id=
"name"
>
{{
obj
.
GuestName
}}
</span></label>
<!--
<label
class=
"_name"
>
手机:
<span
id=
"phone"
></span></label>
<label
class=
"_name"
>
日期:
<span
id=
"day"
></span></label>
-->
</div>
<div
class=
""
>
<table
id=
"table"
>
<!--
<tr>
<td
class=
"_name"
>
线路:
</td>
<td
id=
"LineName"
></td>
<td
class=
"_name"
>
出发时间:
</td>
<td
id=
"StartDateStr"
></td>
<td
class=
"_name"
>
领队:
</td>
<td
width=
"80"
id=
"LeaderName"
></td>
</tr>
<tr>
<td
class=
"_name"
>
您的报名公司:
</td>
<td
id=
"BranchName"
></td>
<td
class=
"_name"
>
报名接待员:
</td>
<td
id=
"ContactName"
></td>
<td
class=
"_name"
>
专业度及服务评价:
</td>
<td></td>
</tr>
-->
<tr>
<td
class=
"_name"
>
旅客意见
</td>
<td
class=
"_name"
>
非常满意
</td>
<td
class=
"_name"
>
满意
</td>
<td
class=
"_name"
>
基本合格
</td>
<td
class=
"_name"
>
不满意
</td>
<!--
<td
class=
"_name"
>
评价
</td>
-->
</tr>
<tr
v-for=
"(item, index) in dataList"
>
<td
class=
"_name"
>
{{
index
+
1
}}
、
{{
item
.
Title
}}
</td>
<template
v-if=
"item.SurveyType === 1"
>
<td
colspan=
"4"
>
<el-rate
v-model=
"item.ScoreNum"
show-text
:texts=
"texts"
>
</el-rate>
</td>
</
template
>
<
template
v-if=
"item.SurveyType === 2"
>
<td
colspan=
"4"
>
<el-radio-group
v-model=
"item.ScoreNum"
>
<el-radio
v-for=
"(radio, rIndex) in item.SurveyOptionsList"
:label=
"radio.ID"
:key=
"rIndex"
>
{{
radio
.
OptionsName
}}
</el-radio>
</el-radio-group>
</td>
</
template
>
<
template
v-if=
"item.SurveyType === 3"
>
<td
colspan=
"4"
>
<el-checkbox-group
v-model=
"item.SurveyOptionsList"
>
<el-checkbox
v-for=
"(radio, rIndex) in item.SurveyOptionsList"
:label=
"radio.ID"
:key=
"rIndex"
>
{{
radio
.
OptionsName
}}
</el-checkbox>
</el-checkbox-group>
</td>
</
template
>
<
template
v-if=
"item.SurveyType === 4"
>
<td
colspan=
"4"
>
<el-input
type=
"textarea"
:rows=
"2"
placeholder=
"请输入内容"
v-model=
"item.TextContent"
>
</el-input>
</td>
</
template
>
</tr>
</table>
</div>
<div
style=
"margin: 20px 0; text-align: right;"
>
<button
class=
"normalBtn"
@
click=
"saveMessage"
>
{{$t('fnc.tijiao')}}
</button>
</div>
</div>
</template>
<
script
>
export
default
{
components
:{
},
data
(){
return
{
leaderData
:
{},
loading
:
false
,
dataList
:
[],
TCID
:
''
,
OrderID
:
''
,
GuestId
:
''
,
obj
:
{},
texts
:
[
'非常不满意'
,
'不满意'
,
'感觉一般'
,
'满意'
,
'非常满意'
]
}
},
mounted
()
{
this
.
TCID
=
this
.
$route
.
query
.
TCID
;
this
.
OrderID
=
this
.
$route
.
query
.
OrderId
;
this
.
obj
=
JSON
.
parse
(
this
.
$route
.
query
.
obj
)
this
.
GuestId
=
this
.
obj
.
GuestId
this
.
GetSurveyShowList
();
},
methods
:
{
saveMessage
:
function
(){
let
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataList
))
data
.
forEach
(
x
=>
{
x
.
TCID
=
this
.
TCID
;
x
.
OrderID
=
this
.
OrderID
;
x
.
GuestId
=
this
.
GuestId
;
if
(
x
.
SurveyType
===
2
||
x
.
SurveyType
===
3
)
{
x
.
SurveyOptionsList
.
forEach
(
y
=>
{
y
.
IsCheck
=
x
.
ScoreNum
==
y
.
ID
?
'1'
:
'0'
})
x
.
ScoreNum
=
0
}
})
this
.
apipost
(
'survey_post_SetGuestSurvey'
,
data
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
$message
.
success
(
'提交成功!'
)
setTimeout
(()
=>
{
window
.
close
()
},
1000
)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
})
},
GetSurveyShowList
:
function
()
{
let
data
=
{
IsShow
:
1
,
SurveyType
:
-
1
}
this
.
apipost
(
'survey_post_GetSurveyShowList'
,
data
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
data
.
map
(
item
=>
{
if
(
item
.
SurveyType
===
2
)
{
item
.
SurveyOptionsList
.
map
((
cItem
,
cIndex
)
=>
{
cItem
.
IsCheckS
=
false
})
}
if
(
item
.
SurveyType
===
3
)
{
item
.
SurveyOptionsList
.
map
((
cItem
,
cIndex
)
=>
{
cItem
.
IsCheckS
=
false
})
}
if
(
item
.
SurveyType
===
1
)
{
item
.
ScoreNum
=
5
;
}
})
this
.
dataList
=
data
;
}
},
null
)
}
}
}
</
script
>
src/components/administrative/Survey.vue
0 → 100644
View file @
d9aa6455
<
template
>
<div
class=
"Feedback"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
订单号
</em>
<el-input
v-model=
"msg.OrderId"
></el-input>
</span>
</li>
<li>
<span>
<em>
线路
</em>
</span>
<el-select
filterable
v-model=
"obj.LineID"
value-key=
"LineID"
@
change=
"getLineTeamList"
>
<el-option
label=
"不限"
:value=
'
{LineName:"不限",LineID:0}'>
</el-option>
<el-option
v-for=
"item in LineList"
:label=
'item.LineName'
:value=
'item'
:key=
'item.LineID'
></el-option>
</el-select>
</li>
<li>
<span>
<em>
系列
</em>
</span>
<el-select
filterable
v-model=
"obj.LineteamId"
value-key=
"LtID"
@
change=
"getLineLtID"
>
<el-option
label=
"不限"
:value=
'
{LtName:"不限",LtID:0}'>
</el-option>
<el-option
v-for=
"item in LineTeamList"
:label=
'item.LtName'
:value=
'item'
:key=
'item.LtID'
>
</el-option>
</el-select>
</li>
<!--
<li>
<span>
<em>
只看有评分
</em>
</span>
<el-select
filterable
class=
'multiple_input'
v-model=
'msg.isScore'
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
label=
"是"
:value=
"1"
></el-option>
<el-option
label=
"否"
:value=
"-1"
></el-option>
</el-select>
</li>
-->
<li>
<span>
<em>
发团时间
</em>
</span>
<el-date-picker
value-format=
"yyyy-MM-dd"
:picker-options=
"pickerDisabled"
size=
"small"
v-model=
"dateList"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"resetPageIndex(),getList()"
>
</li>
</ul>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th>
发团日期
</th>
<th>
订单号
</th>
<th>
团号
</th>
<th>
整体评分
</th>
<th
v-for=
"(item,i) in fields"
:key=
"i"
>
{{
item
}}
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"(item,i) in dataList"
:key=
"i"
>
<td>
{{
item
.
start
}}
</td>
<td>
{{
item
.
orderId
}}
</td>
<td>
{{
item
.
tCNUM
}}
</td>
<td>
<span
v-if=
"fields.length>0"
>
<span
v-if=
"item.sumScore/fields.length>3.5"
>
{{
(
item
.
sumScore
/
fields
.
length
).
toFixed
(
1
)
}}
</span>
<span
v-else
style=
"color:red"
>
{{
(
item
.
sumScore
/
fields
.
length
).
toFixed
(
1
)
}}
</span>
</span>
<span
v-else
>
<span
v-if=
"item.sumScore>3.5"
>
{{
item
.
sumScore
}}
</span>
<span
v-else
style=
"color:red"
>
{{
item
.
sumScore
}}
</span>
</span>
</td>
<td
v-for=
"(c,childIndex) in fields"
:key=
"childIndex"
>
<span
v-if=
"item[c]&&item[c]>3.5"
>
{{
item
[
c
]?
item
[
c
]:
0
}}
</span>
<span
v-else
style=
"color:red"
>
{{
item
[
c
]?
item
[
c
]:
0
}}
</span>
</td>
<td>
<span
style=
"cursor:pointer"
@
click=
"chaKan(item)"
>
明细
</span>
</td>
</tr>
<tr
v-if=
"dataList.length==0"
>
<td
colspan=
"12"
align=
"center"
>
暂无数据
</td>
</tr>
</table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
></el-pagination>
</div>
</
template
>
<
script
>
import
moment
from
"moment"
export
default
{
name
:
'Feedback'
,
data
(){
return
{
obj
:{},
dataList
:[],
loading
:
false
,
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
lineID
:
0
,
LineteamId
:
0
,
reStartDate
:
''
,
reEndDate
:
''
,
OrderId
:
''
,
isScore
:
0
,
lineName
:
"不限"
,
LineteamName
:
"不限"
,
},
total
:
0
,
currentPage
:
1
,
dateList
:[],
LineList
:[],
LineTeamList
:[],
fields
:[],
pickerDisabled
:
{
//验证时间范围
disabledDate
:(
time
)
=>
{
let
_now
=
Date
.
now
();
return
time
.
getTime
()
>
_now
;
}
}
}
},
created
(){
this
.
dateList
[
0
]
=
moment
().
subtract
(
6
,
"month"
).
format
(
"YYYY-MM-DD"
);
this
.
dateList
[
1
]
=
moment
().
format
(
"YYYY-MM-DD"
);
// console.log("this.dateList",this.dateList)
this
.
getTitle
();
},
mounted
(){
this
.
getLineList
();
this
.
getList
();
},
methods
:{
chaKan
(
item
){
this
.
$router
.
push
({
name
:
'NewSurvey'
,
query
:{
"TCID"
:
item
.
tcid
,
"OrderId"
:
item
.
orderId
,
blank
:
'y'
}
})
},
goUrl
(){
this
.
$router
.
push
({
name
:
'FeedbackChart'
,
query
:{
"msg"
:
JSON
.
stringify
(
this
.
msg
),
blank
:
'y'
}
})
},
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList_V2"
,
{
LineDirection
:
0
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineList
=
res
.
data
.
data
;
}
});
},
getLineLtID
(
val
){
this
.
msg
.
LineteamId
=
val
.
LtID
;
this
.
msg
.
LineteamName
=
val
.
LtName
;
},
//获取系列列表
getLineTeamList
(
val
)
{
let
lineId
=
val
.
LineID
;
this
.
msg
.
lineID
=
val
.
LineID
;
this
.
msg
.
lineName
=
val
.
LineName
;
this
.
LineTeamList
=
[]
this
.
apipost
(
"team_post_GetList"
,
{
lineID
:
lineId
,
isTOOP
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineTeamList
=
res
.
data
.
data
;
}
});
},
getTitle
()
{
this
.
apiJavaPost
(
"/api/erp/survey/getSurveyTitleList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
res
.
data
.
data
.
forEach
(
item
=>
{
this
.
fields
.
push
(
item
.
title
)
})
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
getList
(){
if
(
this
.
dateList
&&
this
.
dateList
.
length
>
0
){
this
.
msg
.
reStartDate
=
this
.
dateList
[
0
];
this
.
msg
.
reEndDate
=
this
.
dateList
[
1
];
//计算相差多少天 day可以是second minute
let
m1
=
moment
(
this
.
msg
.
reStartDate
)
let
m2
=
moment
(
this
.
msg
.
reEndDate
)
let
year
=
m2
.
diff
(
m1
,
'year'
);
if
(
year
>
0
){
this
.
Error
(
"最多查询一年的数据!"
)
return
;
}
}
else
{
this
.
msg
.
reStartDate
=
""
;
this
.
msg
.
reEndDate
=
""
;
}
this
.
loading
=
true
;
this
.
apiJavaPost
(
"/api/erp/survey/getOrderSurveyList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
let
arrays
=
[];
// console.log("res.data.data.pageData",res.data.data)
res
.
data
.
data
.
pageData
.
forEach
(
x
=>
{
let
isHave
=
false
if
(
x
.
tCID
!=
0
||
x
.
tCID
||
x
.
tCID
!=
''
){
// if(this.fields.indexOf(x.title)==-1&&x.title!=''){
// this.fields.push(x.title)
// console.log("fields",this.fields)
// }
if
(
arrays
.
length
>
0
){
arrays
.
forEach
(
y
=>
{
if
(
y
.
orderId
==
x
.
orderId
){
y
[
x
.
title
]
=
x
.
scoreNum
y
.
sumScore
+=
x
.
scoreNum
isHave
=
true
return
false
}
})
}
if
(
!
isHave
){
let
obj
=
{
tcid
:
x
.
tCID
,
orderId
:
x
.
orderId
,
start
:
""
,
sumScore
:
x
.
scoreNum
,
tCNUM
:
x
.
tCNUM
}
if
(
x
.
startDate
){
obj
.
start
=
x
.
startDate
.
split
(
'T'
)[
0
]
}
obj
[
x
.
title
]
=
x
.
scoreNum
arrays
.
push
(
obj
)
}
}
});
this
.
dataList
=
arrays
;
// console.log("this.dataList",this.dataList)
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
null
);
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
}
}
</
script
>
<
style
scoped
>
.Feedback
ul
>
li
{
display
:
inline-block
;
font-size
:
12px
;
color
:
#666
;
margin
:
20px
30px
0px
0
;
}
.Feedback
.singeRowTable
{
margin-top
:
20px
;
}
</
style
>
src/router/config.js
View file @
d9aa6455
import
login
from
'../components/Login'
import
login
from
'../components/Login'
// import login from '../components/Login2019'
import
index
from
'../components/index'
import
index
from
'../components/index'
import
clientConfirm
from
'../components/clientConfirm'
import
clientConfirm
from
'../components/clientConfirm'
import
SignName
from
'../components/SignName'
import
SignName
from
'../components/SignName'
...
@@ -448,6 +449,30 @@ export default {
...
@@ -448,6 +449,30 @@ export default {
title
:
'岗位管理'
title
:
'岗位管理'
},
},
},
},
{
path
:
'/Survey'
,
//意见调查
name
:
'Survey'
,
component
:
resolve
=>
require
([
'@/components/administrative/Survey'
],
resolve
),
meta
:
{
title
:
'意见调查'
},
},
{
path
:
'/NewSurvey'
,
//意见调查 订单列表
name
:
'NewSurvey'
,
component
:
resolve
=>
require
([
'@/components/administrative/NewSurvey'
],
resolve
),
meta
:
{
title
:
'意见调查'
},
},
{
path
:
'/NewSurveyList'
,
//意见调查填写
name
:
'NewSurveyList'
,
component
:
resolve
=>
require
([
'@/components/administrative/NewSurveyList'
],
resolve
),
meta
:
{
title
:
'意见调查填写'
},
},
{
{
path
:
'/Announcement'
,
//公告管理
path
:
'/Announcement'
,
//公告管理
name
:
'Announcement'
,
name
:
'Announcement'
,
...
...
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