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
b1b08ce5
Commit
b1b08ce5
authored
Jan 31, 2020
by
黄媛媛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
2c99ba55
36bb924d
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1878 additions
and
8 deletions
+1878
-8
HotelInfo.vue
src/components/Hotel/HotelInfo.vue
+1
-1
AssetsShenpi.vue
src/components/administrative/AssetsSystem/AssetsShenpi.vue
+1
-1
index.vue
src/components/index.vue
+2
-2
scenicRecommentList.vue
src/components/scenicSpot/scenicRecommentList.vue
+587
-0
mywork.vue
src/components/work/mywork.vue
+517
-0
workDetails.vue
src/components/work/workDetails.vue
+275
-0
workManager.vue
src/components/work/workManager.vue
+459
-0
index.js
src/plug/index.js
+2
-2
config.js
src/router/config.js
+34
-2
No files found.
src/components/Hotel/HotelInfo.vue
View file @
b1b08ce5
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
@import
"../../assets/css/DMC.css"
;
@import
"../../assets/css/DMC.css"
;
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"flexOne changInfo"
>
<div
class=
"flexOne changInfo"
>
<div
class=
"resource-content clearfix"
>
<div
class=
"resource-content clearfix"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
>
...
...
src/components/administrative/AssetsSystem/AssetsShenpi.vue
View file @
b1b08ce5
...
@@ -479,7 +479,7 @@ export default {
...
@@ -479,7 +479,7 @@ export default {
GoZcUrl
(){
GoZcUrl
(){
let
url
=
''
;
let
url
=
''
;
if
(
!
this
.
isOnline
())
{
if
(
!
this
.
isOnline
())
{
url
=
"http://
www.test
.com:8080/#/Home"
;
url
=
"http://
testerp.oytour
.com:8080/#/Home"
;
}
else
{
}
else
{
url
=
"http://zcyx.oytour.com/#/Home"
;
url
=
"http://zcyx.oytour.com/#/Home"
;
}
}
...
...
src/components/index.vue
View file @
b1b08ce5
...
@@ -1965,7 +1965,7 @@ export default {
...
@@ -1965,7 +1965,7 @@ export default {
if
(
s
.
Type
==
7
){
if
(
s
.
Type
==
7
){
let
url
=
""
;
let
url
=
""
;
if
(
!
this
.
isOnline
())
{
if
(
!
this
.
isOnline
())
{
url
=
"http://
www.test
.com:8081/#/"
;
url
=
"http://
testerp.oytour
.com:8081/#/"
;
}
else
{
}
else
{
url
=
"http://yx.oytour.com/#/"
;
url
=
"http://yx.oytour.com/#/"
;
}
}
...
@@ -3611,7 +3611,7 @@ export default {
...
@@ -3611,7 +3611,7 @@ export default {
let
ObjInfo
=
JSON
.
stringify
(
obj
);
let
ObjInfo
=
JSON
.
stringify
(
obj
);
if
(
!
this
.
isOnline
())
{
if
(
!
this
.
isOnline
())
{
// url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
// url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
url
=
"http://
www.test
.com:8080/#/Autologin?token="
+
userinfo
.
token
+
"&SecretKey="
+
userinfo
.
SecretKey
;
url
=
"http://
testerp.oytour
.com:8080/#/Autologin?token="
+
userinfo
.
token
+
"&SecretKey="
+
userinfo
.
SecretKey
;
}
else
{
}
else
{
url
=
"http://zcyx.oytour.com/#/Autologin?ObjInfo="
+
userinfo
.
token
+
"&SecretKey="
+
userinfo
.
SecretKey
;
url
=
"http://zcyx.oytour.com/#/Autologin?ObjInfo="
+
userinfo
.
token
+
"&SecretKey="
+
userinfo
.
SecretKey
;
}
}
...
...
src/components/scenicSpot/scenicRecommentList.vue
0 → 100644
View file @
b1b08ce5
<
style
>
.scenicRecommentList
.clearfix
:after
{
content
:
"\0020"
;
display
:
block
;
height
:
0
;
clear
:
both
;
}
.scenicRecommentList
.hotelResource
{
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.scenicRecommentList
.resourceList
{
width
:
215px
;
height
:
240px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
.scenicRecommentList
.resourceList
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.scenicRecommentList
.reTopInfo
{
width
:
100%
;
height
:
123px
;
position
:
relative
;
}
.scenicRecommentList
.reTopInfo
img
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
top
:
0
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
;
}
.scenicRecommentList
.resTypeList
{
position
:
absolute
;
top
:
10px
;
left
:
10px
;
}
.scenicRecommentList
.resTypeList
span
{
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
margin-right
:
10px
;
}
.scenicRecommentList
.L1
{
background-color
:
#e95252
;
}
.scenicRecommentList
.L2
{
background-color
:
#47bf8c
;
}
.scenicRecommentList
.L3
{
background-color
:
#2aaef2
;
}
.scenicRecommentList
.L4
{
background-color
:
#9cf
;
}
.scenicRecommentList
.L5
{
background-color
:
#00c6ff
;
margin-top
:
5px
;
}
.scenicRecommentList
.starSu
{
position
:
absolute
;
bottom
:
8px
;
right
:
10px
;
display
:
flex
;
}
.scenicRecommentList
.starSu
.star
{
margin-left
:
5px
;
}
.scenicRecommentList
.sushe
{
background-color
:
#ffc800
;
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
}
.scenicRecommentList
.hotelTitle
{
margin
:
20px
16px
0
16px
;
font-size
:
14px
;
color
:
#333333
;
height
:
20px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.scenicRecommentList
.brandList
i
{
position
:
relative
;
top
:
2px
;
}
.scenicRecommentList
.brand
{
float
:
left
;
width
:
49%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
text-align
:
center
;
}
.scenicRecommentList
.dayNum
{
float
:
right
;
text-align
:
center
;
width
:
50%
;
}
.scenicRecommentList
.dieline
{
color
:
#2aaef2
;
font-size
:
14px
;
top
:
1px
!important
;
}
.scenicRecommentList
.AddressInner
{
float
:
right
;
width
:
160px
;
height
:
18px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
}
.scenicRecommentList
.btnList
{
margin-top
:
20px
;
text-align
:
center
;
}
.scenicRecommentList
.hotelBtn
{
width
:
60px
;
height
:
28px
;
background
:
#f76f6f
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
}
.scenicRecommentList
.w150
.el-input
{
width
:
150px
!important
;
}
.scenicRecommentList
.SupportCount
{
color
:
#4bca81
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
0
;
display
:
inline-block
;
}
.scenicRecommentList
.dayNumber
{
color
:
#2aaef2
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
5px
;
display
:
inline-block
;
}
.scenicRecommentList
.line
{
float
:
left
;
width
:
1px
;
height
:
35px
;
background-color
:
#ededed
;
margin-top
:
6px
;
}
.scenicRecommentList
.foodList
{
display
:
inline-block
;
padding
:
1px
5px
;
background-color
:
#ff9c00
;
color
:
#fff
;
margin-right
:
6px
;
border-radius
:
2px
;
}
.scenicRecommentList
.foodList
:last-child
{
margin-right
:
0
;
}
.scenicRecommentList
.delScien
{
position
:
absolute
;
right
:
10px
;
top
:
10px
;
display
:
none
;
}
.scenicRecommentList
.delScien
:hover
{
color
:
#f76f6f
;
cursor
:
pointer
;
}
.scenicRecommentList
.resourceList
:hover
.delScien
{
display
:
block
;
}
.scenicRecommentList
.comCursorUrl
{
cursor
:
pointer
;
}
.scenicRecommentList
.ql-container
{
min-height
:
150px
;
}
.scenicRecommentList
.el-upload-dragger
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
126px
;
height
:
80px
;
line-height
:
41px
;
text-align
:
center
;
}
.scenicRecommentList
.ql-editor
{
min-height
:
150px
;
}
/* 景区推荐列表 */
</
style
>
<
template
>
<div
class=
"flexOne scenicRecommentList"
>
<div
class=
"query-box"
>
<ul>
<li>
<span
class=
"hotel_name"
>
<em>
名称
</em>
<el-input
maxlength=
"50"
@
keyup
.
native
.
enter=
"resetPageIndex(),getList()"
v-model=
"msg.Name"
>
</el-input>
</span>
</li>
<li>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),getList()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
<button
class=
"normalBtn"
type=
"button"
@
click=
"outerVisible=true"
>
{{
$t
(
'pub.addBtn'
)
}}
</button>
</li>
</ul>
</div>
<div
class=
"hotelResource clearfix"
v-loading=
"loading"
>
<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,index) in DataList"
:key=
"index"
>
<td>
{{
item
.
Id
}}
</td>
<td>
{{
item
.
Name
}}
</td>
<td>
{{
item
.
ImgCover
}}
</td>
<td>
{{
item
.
UpdateName
}}
</td>
<td>
{{
item
.
UpdateTimeStr
}}
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"UpdateScenic(item.Id)"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top"
>
<el-button
type=
"danger"
icon=
"iconfont icon-img_delete_small"
circle
@
click=
"removeScenicRecomment(item.Id)"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
</div>
<el-dialog
custom-class=
"w800"
title=
"新增"
:visible
.
sync=
"outerVisible"
center
:before-close=
"closeChangeMachie"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
label-width=
"80px"
>
<el-form-item
label=
"名称"
prop=
"Name"
>
<el-input
v-model=
"addMsg.Name"
class=
"w217"
/>
</el-form-item>
<el-form-item
label=
"封面图"
>
<div
class=
"_addUpload_box"
>
<div
class=
"_pic_upload"
>
<template
v-if=
"addMsg.ImgCover!==''"
>
<div>
<div
style=
"width:125px;height:80px;overflow: hidden;display: flex;align-items: center;"
>
<img
:src=
"addMsg.ImgCover"
>
</div>
<div
style=
"font-size:12px; color:#666666;cursor: pointer;line-height: 20px;"
@
click=
"addMsg.ImgCover=''"
>
重新上传
</div>
</div>
</
template
>
<el-upload
v-else
drag
:http-request=
"uploadFileBtn"
:multiple=
"false"
:show-file-list=
"false"
action
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
<div
class=
"el-upload__text"
>
{{$t("active.ld_djscwj")}}
</div>
</el-upload>
</div>
</div>
</el-form-item>
<el-form-item
label=
"内容"
prop=
"lotteryRules"
>
<quill-editor
class=
"w595"
:options=
"editorOption"
v-model=
"addMsg.Content"
></quill-editor>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"outerVisible = false, resetForm('addMsg')"
>
{{$t('pub.cancelBtn')}}
</button>
<button
class=
"normalBtn"
@
click=
"submitForm('addMsg')"
>
{{$t('pub.saveBtn')}}
</button>
</div>
</el-dialog>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.currentPage"
:page-size=
"msg.pageSize"
layout=
"total,prev, pager, next, jumper"
:total=
"msg.total"
></el-pagination>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
countryList
:
""
,
provinceList
:
""
,
cityList
:
""
,
DataList
:
""
,
noData
:
false
,
loading
:
true
,
outerVisible
:
false
,
defaultImg
:
'this.src="'
+
require
(
"../../assets/img/bg_z1@2x.png"
)
+
'"'
,
msg
:
{
pageIndex
:
1
,
pageSize
:
14
,
Name
:
""
,
QCountry
:
0
,
QProvince
:
0
,
QCity
:
0
,
total
:
0
,
currentPage
:
1
,
Id
:
0
},
addMsg
:{
Id
:
0
,
Name
:
''
,
ImgCover
:
''
,
Content
:
''
},
editorOption
:{
modules
:{
toolbar
:[
[
'bold'
,
'italic'
,
'underline'
,
'strike'
],
// toggled buttons
[
'blockquote'
,
'code-block'
,
'align'
]
]
}
},
rules
:{
Name
:
[{
required
:
true
,
message
:
'请输入名称'
,
trigger
:
"change"
}],
},
};
},
methods
:
{
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
selectResource
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
currentPage
=
1
;
},
removeScenicRecomment
(
ID
)
{
var
that
=
this
;
that
.
Confirm
(
that
.
$t
(
'tips.shifoushanchu'
),
function
()
{
that
.
apipost
(
"ScenicRecomment_Post_RemoveScenicRecommentService"
,
{
Id
:
ID
},
response
=>
{
if
(
response
.
data
.
resultCode
==
1
)
{
that
.
Success
(
that
.
$$t
(
'tips.shanchuchenggong'
));
that
.
getList
();
}
else
{
that
.
Error
(
response
.
data
.
message
);
}
},
null
);
});
},
getList
()
{
this
.
loading
=
true
;
this
.
apipost
(
"ScenicRecomment_Get_GetScenicRecommentPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
msg
.
total
=
res
.
data
.
data
.
count
;
this
.
noData
=
!
this
.
msg
.
total
>
0
;
this
.
DataList
=
res
.
data
.
data
.
pageData
;
}
},
null
);
},
uploadFileBtn
(
file
){
//上传
if
(
file
.
file
.
size
>
1024
*
1024
*
10
)
{
this
.
$message
.
warning
(
this
.
$t
(
"tips.wjdxbncgsz"
));
return
;
}
// 1 文档 2 数据 3 图片
let
typeArr
=
[{
stringArr
:
"GIF|JPG|JPEG|PNG|BMP"
,
type
:
3
}];
let
ft
=
file
.
file
.
name
.
substring
(
file
.
file
.
name
.
lastIndexOf
(
"."
)
+
1
,
file
.
file
.
name
.
length
)
.
toUpperCase
();
let
fileTypeNumber
=
2
;
let
typeOk
=
false
;
typeArr
.
forEach
(
x
=>
{
if
(
x
.
stringArr
.
indexOf
(
ft
)
!=
"-1"
)
{
fileTypeNumber
=
x
.
type
;
typeOk
=
true
;
}
});
if
(
!
typeOk
)
return
this
.
Error
(
this
.
$t
(
"tips.qsctpian"
));
let
newArr
=
[];
newArr
.
push
(
file
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
Success
(
this
.
$t
(
"tips.shangchuanzhong"
));
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
fileSize
=
file
.
file
.
size
<
1024
?
file
.
file
.
size
:
(
file
.
file
.
size
/
1024
).
toFixed
(
0
);
this
.
addMsg
.
ImgCover
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
Success
(
this
.
$t
(
"tips.scchenggong"
));
this
.
$forceUpdate
();
});
},
closeChangeMachie
(
done
)
{
//弹出框关闭初始化弹框内表单
done
();
this
.
resetForm
(
"addMsg"
);
},
submitForm
(
addMsg
)
{
//提交创建、修改表单
this
.
$refs
[
addMsg
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
addScenic
();
}
else
{
return
false
;
}
});
},
//新增
addScenic
(){
this
.
apipost
(
"ScenicRecomment_Post_SetScenicRecommentService"
,
this
.
addMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
//修改
UpdateScenic
(
id
){
this
.
apipost
(
"ScenicRecomment_Post_SetScenicRecommentService"
,
this
.
addMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
goUrl
(
path
,
id
)
{
this
.
$store
.
commit
(
"pageConditionUpdate"
,
this
.
msg
);
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
id
,
blank
:
'y'
,
tab
:
'修改景区信息'
}
});
},
goUrlT
(
path
,
id
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
id
,
blank
:
'y'
,
tab
:
'门票管理'
}
});
}
},
mounted
()
{
//this.getCountryList();
},
created
()
{
if
(
this
.
$route
.
query
.
hasOwnProperty
(
"cache"
))
{
if
(
this
.
$store
.
state
.
pageCondition
!=
null
)
{
this
.
msg
=
this
.
$store
.
state
.
pageCondition
;
}
}
var
id
=
this
.
$route
.
query
.
ID
;
if
(
id
)
{
this
.
msg
.
getList
=
id
;
}
this
.
getList
();
}
};
</
script
>
src/components/work/mywork.vue
0 → 100644
View file @
b1b08ce5
<
style
scope
>
.circle
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
text-align
:
center
;
background
:
grey
;
border-radius
:
20px
;
margin-right
:
5px
;
}
.circle.red
{
background
:
#fe4433
;
}
.circle.green
{
background
:
green
;
}
.circle.black
{
background
:
black
;
}
.remark
{
margin-right
:
20px
;
font-size
:
12px
;
display
:
inline-block
;
vertical-align
:
text-top
;
}
.wd100
{
width
:
100%
!important
;
}
.el-tag
+
.el-tag
{
margin-left
:
10px
;
}
.button-new-tag
{
margin-left
:
10px
;
height
:
32px
;
line-height
:
30px
;
padding-top
:
0
;
padding-bottom
:
0
;
}
.input-new-tag
{
width
:
90px
;
margin-left
:
10px
;
vertical-align
:
bottom
;
}
</
style
>
<
template
>
<div
class=
"flexOne companyManagement"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
计划状态
</em>
<el-select
v-model=
"statusValue"
placeholder=
"请选择"
@
change=
"changeStatus"
>
<el-option
label=
"不限"
value=
"-1"
></el-option>
<el-option
label=
"进行中"
value=
"0"
></el-option>
<el-option
label=
"超时未完成"
value=
"1"
></el-option>
<el-option
label=
"超时完成"
value=
"2"
></el-option>
<el-option
label=
"完成"
value=
"3"
></el-option>
<!--
<el-option
label=
"未开始"
value=
"-2"
></el-option>
-->
</el-select>
</span>
</li>
<li>
<span>
<em>
立项审批状态
</em>
<el-select
v-model=
"examineStatusValue"
placeholder=
"请选择"
@
change=
"changeStatus"
>
<el-option
label=
"不限"
value=
"-2"
></el-option>
<el-option
label=
"审批中"
value=
"0"
></el-option>
<el-option
label=
"审批通过"
value=
"1"
></el-option>
<el-option
label=
"审批驳回"
value=
"-1"
></el-option>
</el-select>
</span>
</li>
<!--
<li>
<span><em>
{{
$t
(
'admin.admin_domain'
)
}}
</em>
<el-input
@
keyup
.
enter
.
native=
"getList"
v-model=
"msg.Domain"
:placeholder=
"$t('pub.pleaseImport')"
>
</el-input>
</span>
</li>
<li>
<span><em>
{{
$t
(
'admin.admin_status'
)
}}
</em>
<el-select
v-model=
"msg.Status"
:placeholder=
"$t('pub.unlimitedSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
''
></el-option>
<el-option
:label=
"$t('pub.openSel')"
value=
'0'
></el-option>
<el-option
:label=
"$t('pub.closeSel')"
value=
'1'
></el-option>
</el-select>
</span>
</li>
-->
<li>
<!--
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
/>
-->
<input
type=
"button"
class=
"normalBtn"
value=
"新增计划"
@
click=
"add"
/>
</li>
</ul>
</div>
<div
style=
"margin:10px 0;"
>
<span
class=
"circle green"
></span>
<span
class=
"remark"
>
进行中
</span>
<span
class=
"circle red"
></span>
<span
class=
"remark"
>
超时
</span>
<span
class=
"circle black"
></span>
<span
class=
"remark"
>
完成
</span>
<span
class=
"circle"
></span>
<span
class=
"remark"
>
未开始
</span>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
状态
</th>
<th>
标签
</th>
<th
width=
"300"
>
标题
</th>
<th>
内容概要
</th>
<th>
开始时间
</th>
<th>
截止时间
</th>
<th>
创建时间
</th>
<th>
立项审批信息
</th>
<th>
当前进度
</th>
<th>
完成审批信息
</th>
<th
width=
"200"
>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in tempList"
:key=
"index"
>
<td>
<span
class=
"circle"
v-if=
"item.ExamineStatus==0||item.ExamineStatus==-1"
></span>
<span
class=
"circle green"
v-else-if=
"item.Status==0"
></span>
<span
class=
"circle red"
v-else-if=
"item.Status==1||item.Status==2"
></span>
<span
class=
"circle black"
v-else-if=
"item.Status==3"
></span>
</td>
<td>
<el-tag
v-if=
"item.Tags.length>0"
>
{{
item
.
Tags
}}
</el-tag>
</td>
<td>
{{
item
.
Title
}}
</td>
<td
width=
"250"
>
<el-tooltip
effect=
"dark"
:content=
"item.Description"
placement=
"top-start"
>
<span>
{{
item
.
Description
.
length
>
23
?
item
.
Description
.
substring
(
0
,
23
)
+
"..."
:
item
.
Description
}}
</span>
</el-tooltip>
</td>
<td>
{{
item
.
BeginTime
}}
</td>
<td>
{{
item
.
EndTime
}}
</td>
<td>
{{
item
.
CreateDate
}}
</td>
<td>
<span
v-if=
"item.ExamineStatus==0"
style=
"color:grey"
>
审批中
</span>
<span
v-else-if=
"item.ExamineStatus==1"
style=
"color:green;text-decoration: underline;"
>
已通过
</span>
<span
v-else
style=
"color:red;text-decoration: underline;"
>
已驳回
</span>
</td>
<td>
<el-progress
:text-inside=
"true"
:stroke-width=
"24"
:percentage=
"item.Progree"
status=
"success"
></el-progress>
</td>
<td>
<span
v-if=
"item.Status==2||item.Status==3"
>
<span
v-if=
"item.FinishExamineStatus==0"
style=
"color:grey"
>
审批中
</span>
<span
v-else-if=
"item.FinishExamineStatus==1"
style=
"color:green;text-decoration: underline;"
>
已通过
</span>
<span
v-else
style=
"color:red;text-decoration: underline;"
>
已驳回
</span>
</span>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
v-if=
"item.ExamineStatus==0 || item.ExamineStatus==-1"
>
<el-button
@
click
.
stop=
"EditMsg(item)"
style=
"padding:4px"
type=
"primary"
icon=
"iconfont icon-bianji"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"item.ExamineStatus==0 || item.ExamineStatus==-1"
>
<el-button
style=
"padding:4px"
type=
"danger"
icon=
"el-icon-delete"
@
click
.
stop=
"deleteItem(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"详情"
placement=
"top-start"
>
<el-button
style=
"padding:4px"
type=
"info"
icon=
"el-icon-search"
@
click
.
stop=
"query(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"更新进度"
placement=
"top-start"
v-if=
"item.ExamineStatus==1 && (item.Status==1 || item.Status==0)"
>
<el-button
style=
"padding:4px"
type=
"primary"
icon=
"el-icon-check"
@
click
.
stop=
"query2(item.Id)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-dialog
width=
"40%"
:title=
"dialogTitle"
:visible
.
sync=
"outerVisible"
:close-on-click-modal=
"false"
center
:before-close=
"closeChangeMachie"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
label-width=
"120px"
>
<el-form-item
class=
"wd100"
label=
"计划标题"
prop=
"Title"
>
<el-input
clearable
type=
"text"
v-model=
"addMsg.Title"
placeholder=
"请输入计划标题"
></el-input>
</el-form-item>
<el-form-item
class=
"wd100"
label=
"计划内容"
prop=
"Description"
>
<el-input
clearable
type=
"textarea"
v-model=
"addMsg.Description"
:rows=
"8"
placeholder=
"请输入计划标题"
></el-input>
</el-form-item>
<el-form-item
label=
"计划日期"
prop=
"TimeRanges"
>
<el-date-picker
v-model=
"addMsg.TimeRanges"
type=
"datetimerange"
class=
"wd100"
align=
"right"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd HH:mm"
:default-time=
"['09:30:00', '18:00:00']"
></el-date-picker>
</el-form-item>
<el-form-item
class=
"wd100"
label=
"计划标签"
>
<el-tag
:key=
"tag"
v-for=
"tag in addMsg.TempTags"
closable
:disable-transitions=
"false"
@
close=
"handleClose(tag)"
>
{{
tag
}}
</el-tag>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible"
v-model=
"inputValue"
ref=
"saveTagInput"
size=
"small"
maxlength=
"6"
@
keyup
.
enter
.
native=
"handleInputConfirm"
@
blur=
"handleInputConfirm"
></el-input>
<el-button
v-else-if=
"addMsg.TempTags.length
<1
"
class=
"button-new-tag"
size=
"small"
@
click=
"showInput"
>
+ 新增标签
</el-button>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"outerVisible = false,resetForm('addMsg')"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"submitForm('addMsg')"
>
{{
$t
(
'pub.saveBtn'
)
}}
</button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
statusValue
:
"-1"
,
dialogTitle
:
"新增计划"
,
outerVisible
:
false
,
rules
:
{
//表单验证
Title
:
[
{
required
:
true
,
message
:
"请输入计划标题"
,
trigger
:
"blur"
}
],
Description
:
[
{
required
:
true
,
message
:
"请输入计划内容"
,
trigger
:
"blur"
}
],
TimeRanges
:
[
{
required
:
true
,
message
:
"请选择计划日期"
,
trigger
:
"blur"
}
]
},
addMsg
:
{
Id
:
"0"
,
Title
:
""
,
Description
:
""
,
TimeRanges
:
""
,
TempTags
:
[],
BeginTime
:
""
,
EndTime
:
""
,
Tags
:
""
},
inputVisible
:
false
,
inputValue
:
""
,
datas
:
[],
tempList
:
[],
examineStatusValue
:
"-2"
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
add
()
{
this
.
dialogTitle
=
"新增计划"
;
this
.
outerVisible
=
true
;
},
EditMsg
(
item
)
{
this
.
dialogTitle
=
"修改计划"
;
(
this
.
addMsg
=
{
Id
:
item
.
Id
,
Title
:
item
.
Title
,
Description
:
item
.
Description
,
TimeRanges
:
[
item
.
BeginTime
,
item
.
EndTime
],
TempTags
:
[
item
.
Tags
],
BeginTime
:
item
.
BeginTime
,
EndTime
:
item
.
EndTime
,
Tags
:
item
.
Tags
}),
(
this
.
outerVisible
=
true
);
},
changeStatus
()
{
this
.
tempList
=
[];
this
.
datas
.
forEach
(
x
=>
{
let
isAdd
=
false
;
if
(
(
this
.
statusValue
!=
-
1
&&
x
.
Status
==
this
.
statusValue
)
||
this
.
statusValue
==
-
1
)
{
isAdd
=
true
;
}
if
(
isAdd
)
{
if
(
(
this
.
examineStatusValue
!=
-
2
&&
x
.
ExamineStatus
==
this
.
examineStatusValue
)
||
this
.
examineStatusValue
==
-
2
)
{
isAdd
=
true
;
}
else
{
isAdd
=
false
;
}
}
if
(
isAdd
)
{
this
.
tempList
.
push
(
x
);
}
});
},
handleClose
(
tag
)
{
this
.
addMsg
.
TempTags
.
splice
(
this
.
addMsg
.
TempTags
.
indexOf
(
tag
),
1
);
},
showInput
()
{
this
.
inputVisible
=
true
;
this
.
$nextTick
(
_
=>
{
this
.
$refs
.
saveTagInput
.
$refs
.
input
.
focus
();
});
},
handleInputConfirm
()
{
let
inputValue
=
this
.
inputValue
;
if
(
inputValue
)
{
this
.
addMsg
.
TempTags
.
push
(
inputValue
);
}
this
.
inputVisible
=
false
;
this
.
inputValue
=
""
;
},
closeChangeMachie
(
done
)
{
this
.
resetForm
(
"addMsg"
);
done
();
},
resetForm
(
formName
)
{
//弹出框取消 初始化谈框内表单
this
.
$refs
[
formName
].
resetFields
();
this
.
addMsg
.
Id
=
"0"
;
},
submitForm
(
addMsg
)
{
//提交创建、修改表单
this
.
$refs
[
addMsg
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
addData
();
}
else
{
return
false
;
}
});
},
addData
()
{
console
.
log
(
this
.
addMsg
);
this
.
addMsg
.
BeginTime
=
this
.
addMsg
.
TimeRanges
[
0
];
this
.
addMsg
.
EndTime
=
this
.
addMsg
.
TimeRanges
[
1
];
this
.
addMsg
.
Tags
=
this
.
addMsg
.
TempTags
&&
this
.
addMsg
.
TempTags
.
length
==
1
?
this
.
addMsg
.
TempTags
[
0
]
:
""
;
//新增数据
this
.
apipost
(
"user_post_SetWork"
,
this
.
addMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
outerVisible
=
false
;
this
.
getList
();
this
.
resetForm
(
"addMsg"
);
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
//this.getList();
},
getList
()
{
this
.
apipost
(
"user_post_GetMyWork"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
//this.$message.success(res.data.message);
this
.
datas
=
res
.
data
.
data
;
this
.
tempList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
deleteItem
(
id
)
{
this
.
apipost
(
"user_post_DeleteWork"
,
{
id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
statusValue
=
"-1"
;
this
.
examineStatusValue
=
"-2"
;
this
.
getList
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
query
(
id
){
this
.
$router
.
push
({
name
:
"workDetails"
,
query
:
{
"id"
:
id
,
blank
:
'y'
}
})
},
query2
(
id
){
this
.
$router
.
push
({
name
:
"workDetails"
,
query
:
{
"id"
:
id
,
update
:
"u"
,
blank
:
'y'
}
})
}
}
};
</
script
>
src/components/work/workDetails.vue
0 → 100644
View file @
b1b08ce5
<
template
>
<div>
<div
style=
"margin:10px auto;"
>
<h3
v-if=
"d.w"
style=
"font-size:18px;border-bottom:1px solid #ddd;font-weight:400;font-family:pingfangR;padding-bottom:10px;"
>
<span
class=
"circle"
v-if=
"d.w.ExamineStatus==0||d.w.ExamineStatus==-1"
></span>
<span
class=
"circle green"
v-else-if=
"d.w.Status==0"
></span>
<span
class=
"circle red"
v-else-if=
"d.w.Status==1||d.w.Status==2"
></span>
<span
class=
"circle black"
v-else-if=
"d.w.Status==3"
></span>
<span
style=
"margin-right:15px;"
>
{{
d
.
w
.
Title
}}
</span>
<el-tag
v-if=
"d.w.Tags.length>0"
>
{{
d
.
w
.
Tags
}}
</el-tag>
</h3>
<div
v-if=
"d.w"
style=
"font-size:14px;font-family:pingfangR;margin: 10px 0;padding: 10px;background: #FFF;"
>
{{
d
.
w
.
Description
}}
</div>
<fieldset
style=
"border: 1px solid #DDD;padding: 13px;font-size: 12px;"
>
<legend
style=
"padding:0 10px; font-size:14px;"
>
计划工时信息
</legend>
<el-row
:gutter=
"12"
>
<el-col
:span=
"6"
>
创建人:
{{
d
.
w
.
CreateName
}}
</el-col>
<el-col
:span=
"6"
>
创建日期:
{{
d
.
w
.
CreateDate
}}
</el-col>
<el-col
:span=
"6"
>
开始时间:
{{
d
.
w
.
BeginTime
}}
</el-col>
<el-col
:span=
"6"
>
截止时间:
{{
d
.
w
.
EndTime
}}
</el-col>
</el-row>
</fieldset>
<fieldset
style=
"border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:30px;"
>
<legend
style=
"padding:0 10px; font-size:14px;"
>
计划操作记录
</legend>
<div
v-if=
"d.w.ExamineStatus==1"
>
<el-card
class=
"work-content green"
>
<h4>
主管立项审核通过
</h4>
<p>
{{
d
.
w
.
ExamineState
}}
提交于
{{
d
.
w
.
ExamineDate
}}
</p>
<div
class=
"cont"
>
{{
d
.
w
.
ExamineRemark
}}
</div>
</el-card>
</div>
<div
v-if=
"d.w.ExamineStatus==-1"
>
<el-card
class=
"work-content red"
>
<h4>
主管立项审核驳回
</h4>
<p>
{{
d
.
w
.
ExamineState
}}
提交于
{{
d
.
w
.
ExamineDate
}}
</p>
<div
class=
"cont"
>
{{
d
.
w
.
ExamineRemark
}}
</div>
</el-card>
</div>
<div
v-for=
"(item, index) in d.p"
:key=
"index"
>
<el-card
class=
"work-content"
>
<h4>
进度更新:
<div
style=
"width:120px;display: inline-block;margin-left: 15px;"
>
<el-progress
:text-inside=
"true"
:stroke-width=
"24"
:percentage=
"item.Progree"
status=
"success"
></el-progress>
</div>
</h4>
<p
v-if=
"d.w"
>
{{
d
.
w
.
CreateName
}}
提交于
{{
item
.
CreateDate
}}
</p>
<div
class=
"cont"
>
{{
item
.
Content
}}
</div>
<div
class=
"attach"
>
<a
href=
"http://baidu.com"
target=
"_blank"
>
附件:baidu.jpg
</a>
</div>
</el-card>
</div>
<div
v-if=
"d.w.FinishExamineStatus==1"
>
<el-card
class=
"work-content green"
>
<h4>
主管完结审核通过
</h4>
<p>
{{
d
.
w
.
FinishExamineState
}}
提交于
{{
d
.
w
.
FinishExamineDate
}}
</p>
<div
class=
"cont"
>
{{
d
.
w
.
FinishExamineRemark
}}
</div>
</el-card>
</div>
<div
v-if=
"d.w.FinishExamineStatus==-1"
>
<el-card
class=
"work-content red"
>
<h4>
主管完结审核驳回
</h4>
<p>
{{
d
.
w
.
FinishExamineState
}}
提交于
{{
d
.
w
.
FinishExamineDate
}}
</p>
<div
class=
"cont"
>
{{
d
.
w
.
FinishExamineRemark
}}
</div>
</el-card>
</div>
</fieldset>
<fieldset
v-if=
"isEaxmine && d.w && (d.w.ExamineStatus==0 || (d.w.Status>=2 && d.w.FinishExamineStatus==0))"
style=
"border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:20px;"
>
<legend
style=
"padding:0 10px; font-size:14px;"
>
审批
</legend>
<div
style=
"margin-bottom:10px"
>
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"-1"
>
驳回
</el-radio>
</div>
<div
style=
"margin-bottom:10px"
>
<el-input
type=
"textarea"
:rows=
"4"
style=
"width:100%"
placeholder=
"请输入审批意见"
v-model=
"textarea"
>
</el-input>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"goexamine"
>
确认提交
</button>
</div>
</fieldset>
<fieldset
v-if=
"isUpdate && d.w && ((d.w.Status==0 && d.w.ExamineStatus==1) || d.w.Status==1)"
style=
"border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:20px;"
>
<legend
style=
"padding:0 10px; font-size:14px;"
>
提交进度
</legend>
<div
style=
"margin-bottom:10px;"
>
<el-row
:gutter=
"12"
>
<el-col
:span=
"1"
>
当前进度:
</el-col>
<el-col
:span=
"4"
><el-slider
v-model=
"progree"
:min=
"d.w.Progree"
:max=
"100"
:step=
"1"
></el-slider></el-col>
</el-row>
</div>
<div
style=
"margin-bottom:10px"
>
<el-input
type=
"textarea"
:rows=
"4"
style=
"width:100%"
placeholder=
"请输入进度说明"
v-model=
"textarea2"
>
</el-input>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"setprogress"
>
确认提交
</button>
</div>
</fieldset>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
d
:
{},
radio
:
"1"
,
isEaxmine
:
false
,
isUpdate
:
false
,
textarea
:
''
,
textarea2
:
''
,
progree
:
0
};
},
mounted
()
{
let
id
=
this
.
$route
.
query
.
id
;
this
.
isEaxmine
=
this
.
$route
.
query
.
examine
?
true
:
false
;
this
.
isUpdate
=
this
.
$route
.
query
.
update
?
true
:
false
;
this
.
init
(
id
);
},
methods
:
{
init
(
id
)
{
this
.
apipost
(
"user_post_GetWorkDetails"
,
{
id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
d
=
res
.
data
.
data
;
this
.
progree
=
this
.
d
.
w
.
Progree
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
null
);
},
setprogress
(){
if
(
this
.
textarea2
==
""
){
this
.
$message
.
error
(
"请填写进度说明"
);
return
;
}
this
.
apipost
(
"user_post_SetWorkProcess"
,
{
pid
:
this
.
$route
.
query
.
id
,
content
:
this
.
textarea2
,
progree
:
this
.
progree
,
attach
:
""
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
window
.
location
.
reload
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
null
);
},
goexamine
(){
if
(
this
.
textarea
==
""
){
this
.
$message
.
error
(
"请填写审批意见"
);
return
;
}
this
.
apipost
(
"user_post_SetWorkExamine"
,
{
id
:
this
.
$route
.
query
.
id
,
content
:
this
.
textarea
,
status
:
this
.
radio
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
window
.
location
.
reload
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
null
);
}
}
};
</
script
>
<
style
scope
>
.circle
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
vertical-align
:
text-top
;
background
:
grey
;
border-radius
:
20px
;
margin-right
:
5px
;
}
.circle.red
{
background
:
#fe4433
;
}
.circle.green
{
background
:
green
;
}
.circle.black
{
background
:
black
;
}
.work-content
{
margin-bottom
:
20px
;
}
.work-content
h4
{
font-weight
:
400
;
font-size
:
16px
;
margin-bottom
:
10px
;
}
.work-content
p
{
font-size
:
12px
;
color
:
#ddd
!important
;
margin-bottom
:
10px
;
}
.work-content
.cont
{
font-size
:
14px
;
font-family
:
pingfangR
;
}
.work-content.green
{
color
:
#fff
;
background
:
#67c23a
;
}
.work-content.red
{
color
:
#fff
;
background
:
#f56c6c
;
}
.work-content.red
*,
.work-content.green
*
{
color
:
#fff
!important
;
}
.work-content
*
{
color
:
#333
;
}
.work-content
.attach
{
margin-top
:
10px
;
}
.work-content
.attach
a
{
color
:
#409EFF
;
text-decoration
:
underline
;
}
</
style
>
\ No newline at end of file
src/components/work/workManager.vue
0 → 100644
View file @
b1b08ce5
<
template
>
<div
class=
"flexOne groupts"
>
<div
class=
"enrollTotalSearch"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'system.table_company'
)
}}
</em>
<el-select
class=
"w200"
v-model=
"msg.BranchId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
change=
"linkageDepartment()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
"-1"
></el-option>
<el-option
v-for=
"item in companyList"
:label=
"item.BName"
:value=
"item.Id"
:key=
"item.Id"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em
class=
"fl"
style=
"margin-top: 10px!important;"
>
{{
$t
(
'fnc.bmxuanze'
)
}}
</em>
<treeselect
class=
"w200 fl"
:options=
"departmentList"
v-model=
"msg.RB_Department_Id"
:label=
"$t('pub.unlimitedSel')"
:normalizer=
"normalizer"
@
select=
"linkageEmployeeMsg"
/>
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'fnc.ryxuanze'
)
}}
</em>
</span>
<el-select
class=
"w200"
v-model=
"msg.CreateBy"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
"-1"
></el-option>
<el-option
v-for=
"item in employeeList"
:label=
"item.name"
:value=
"item.empId"
:key=
"item.empId"
></el-option>
</el-select>
</li>
<li>
<span>
<em>
审批状态
</em>
<el-select
class=
"w200"
v-model=
"msg.examineStatus"
>
<el-option
label=
"不限"
value=
"-1"
></el-option>
<el-option
label=
"待我审批"
value=
"0"
></el-option>
<el-option
label=
"我已审批"
value=
"1"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
计划日期
</em>
<el-date-picker
v-model=
"msg.timeRange"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<div
style=
"margin:10px 0;"
>
<span
class=
"circle green"
></span>
<span
class=
"remark"
>
进行中
</span>
<span
class=
"circle red"
></span>
<span
class=
"remark"
>
超时
</span>
<span
class=
"circle black"
></span>
<span
class=
"remark"
>
完成
</span>
<span
class=
"circle"
></span>
<span
class=
"remark"
>
未开始
</span>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th>
状态
</th>
<th>
标签
</th>
<th
width=
"300"
>
标题
</th>
<th>
内容概要
</th>
<th>
开始时间
</th>
<th>
截止时间
</th>
<th>
创建时间
</th>
<th>
立项审批信息
</th>
<th>
当前进度
</th>
<th>
完成审批信息
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in DataList"
:key=
"index"
>
<td>
<span
class=
"circle"
v-if=
"item.ExamineStatus==0||item.ExamineStatus==-1"
></span>
<span
class=
"circle green"
v-else-if=
"item.Status==0"
></span>
<span
class=
"circle red"
v-else-if=
"item.Status==1||item.Status==2"
></span>
<span
class=
"circle black"
v-else-if=
"item.Status==3"
></span>
</td>
<td>
<el-tag
v-if=
"item.Tags.length>0"
>
{{
item
.
Tags
}}
</el-tag>
</td>
<td>
{{
item
.
Title
}}
</td>
<td
width=
"250"
>
<el-tooltip
effect=
"dark"
:content=
"item.Description"
placement=
"top-start"
>
<span>
{{
item
.
Description
.
length
>
23
?
item
.
Description
.
substring
(
0
,
23
)
+
"..."
:
item
.
Description
}}
</span>
</el-tooltip>
</td>
<td>
{{
item
.
BeginTime
}}
</td>
<td>
{{
item
.
EndTime
}}
</td>
<td>
{{
item
.
CreateDate
}}
</td>
<td>
<span
v-if=
"item.ExamineStatus==0"
style=
"color:grey"
>
审批中
</span>
<span
v-else-if=
"item.ExamineStatus==1"
style=
"color:green;text-decoration: underline;"
>
已通过
</span>
<span
v-else
style=
"color:red;text-decoration: underline;"
>
已驳回
</span>
</td>
<td>
<el-progress
:text-inside=
"true"
:stroke-width=
"24"
:percentage=
"item.Progree"
status=
"success"
></el-progress>
</td>
<td>
<span
v-if=
"item.Status==2||item.Status==3"
>
<span
v-if=
"item.FinishExamineStatus==0"
style=
"color:grey"
>
审批中
</span>
<span
v-else-if=
"item.FinishExamineStatus==1"
style=
"color:green;text-decoration: underline;"
>
已通过
</span>
<span
v-else
style=
"color:red;text-decoration: underline;"
>
已驳回
</span>
</span>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"详情"
placement=
"top-start"
>
<el-button
style=
"padding:4px"
type=
"info"
icon=
"el-icon-search"
@
click
.
stop=
"query(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"审核"
placement=
"top-start"
v-if=
"item.ExamineStatus==0 || ((item.Status==2 || item.Status==3) && item.FinishExamineStatus==0)"
>
<el-button
style=
"padding:4px"
type=
"primary"
icon=
"el-icon-check"
@
click
.
stop=
"query2(item.Id)"
circle
></el-button>
</el-tooltip>
</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
Treeselect
from
"@riophae/vue-treeselect"
;
import
updateSalesMan
from
"../commonPage/updateSalesMan.vue"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
export
default
{
components
:
{
Treeselect
},
data
()
{
return
{
normalizer
(
node
)
{
var
obj
=
{
id
:
node
.
DepartmentId
,
label
:
node
.
DepartmentName
};
if
(
node
.
ChildList
!=
null
&&
node
.
ChildList
.
length
>
0
)
{
obj
.
children
=
node
.
ChildList
;
}
return
obj
;
},
msg
:
{
BranchId
:
"-1"
,
RB_Department_Id
:
null
,
pageIndex
:
0
,
pageSize
:
10
,
CreateBy
:
"-1"
,
examineStatus
:
"-1"
,
timeRange
:
[]
},
getCompanyMsg
:
{
RB_Group_Id
:
"0"
,
Status
:
"0"
},
getDepartmentMsg
:
{
RB_Group_Id
:
"0"
,
RB_Branch_Id
:
"-1"
,
Status
:
"0"
},
employeeMsg
:
{
RB_Group_id
:
"0"
,
RB_Branch_id
:
"-1"
,
departmentId
:
"0"
,
IsLeave
:
"-1"
},
departmentList
:
[],
companyList
:
[],
employeeList
:
[],
userInfo
:
{},
datas
:
[],
currentPage
:
1
,
total
:
0
,
DataList
:
[],
loading
:
true
};
},
mounted
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
userId
=
this
.
userInfo
.
EmployeeId
;
this
.
getCompanyMsg
.
RB_Group_Id
=
this
.
getDepartmentMsg
.
RB_Group_Id
=
this
.
userInfo
.
RB_Group_id
;
//集团
this
.
getCompany
();
//this.getEmployee();
},
methods
:
{
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
()
{
//获取数据
this
.
loading
=
true
;
if
(
this
.
msg
.
timeRange
&&
this
.
msg
.
timeRange
.
length
==
2
){
this
.
msg
.
bt
=
this
.
msg
.
timeRange
[
0
];
this
.
msg
.
et
=
this
.
msg
.
timeRange
[
1
];
}
else
{
this
.
msg
.
bt
=
""
;
this
.
msg
.
et
=
""
;
}
this
.
apipost
(
"user_post_GetWorkPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
DataList
=
res
.
data
.
data
.
pageData
;
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getCompany
()
{
this
.
apipost
(
"admin_get_BranchGetList"
,
this
.
getCompanyMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
1
)
{
let
that
=
this
;
this
.
companyList
=
res
.
data
.
data
.
filter
(
x
=>
{
if
(
x
.
Id
==
that
.
userInfo
.
RB_Branch_id
)
{
return
x
;
}
});
this
.
employeeMsg
.
RB_Branch_id
=
this
.
userInfo
.
RB_Branch_id
;
this
.
msg
.
RB_Department_Id
=
this
.
userInfo
.
RB_Branch_id
;
this
.
getEmployee
();
}
else
{
this
.
companyList
=
res
.
data
.
data
;
this
.
getEmployee
();
}
}
else
{
}
this
.
getList
();
},
err
=>
{}
);
},
linkageEmployeeMsg
(
node
,
instanceId
)
{
this
.
employeeMsg
.
departmentId
=
node
.
DepartmentId
;
this
.
msg
.
CreateBy
=
"-1"
;
this
.
getEmployee
();
},
linkageDepartment
()
{
//联动部门
this
.
msg
.
RB_Department_Id
=
null
;
if
(
this
.
msg
.
BranchId
!=
0
)
{
this
.
getDepartmentMsg
.
RB_Branch_Id
=
this
.
msg
.
BranchId
;
}
this
.
getDepartment
();
},
getDepartment
()
{
this
.
apipost
(
"admin_Get_GetDepartmentTreeForReceiveQuery"
,
this
.
getDepartmentMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
departmentList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
getEmployee
()
{
this
.
apipost
(
"app_get_company_employee"
,
this
.
employeeMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
employeeList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
query2
(
id
){
this
.
$router
.
push
({
name
:
"workDetails"
,
query
:
{
"id"
:
id
,
examine
:
"u"
,
blank
:
'y'
}
})
}
}
};
</
script
>
<
style
scope
>
.enrollTotalSearch
{
width
:
100%
;
min-height
:
auto
;
padding
:
0
0
20px
0
;
}
.enrollTotalSearch
::after
{
display
:
block
;
clear
:
both
;
content
:
""
;
visibility
:
hidden
;
height
:
0
;
}
.enrollTotalSearch
li
{
float
:
left
;
font-size
:
12px
;
height
:
40px
;
color
:
#666
;
margin
:
20px
10px
10px
0
;
}
.enrollTotalSearch
li
>
span
{
display
:
inline-block
;
}
.enrollTotalSearch
li
span
>
em
{
display
:
inline-block
;
min-width
:
60px
;
text-align
:
right
;
font-style
:
normal
;
margin
:
0
12px
0
0
;
}
.enrollTotalSearch
li
:last-child
{
float
:
right
;
position
:
fixed
;
top
:
36px
;
right
:
20px
;
text-align
:
right
;
z-index
:
50
;
}
.circle
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
text-align
:
center
;
background
:
grey
;
border-radius
:
20px
;
margin-right
:
5px
;
}
.circle.red
{
background
:
#fe4433
;
}
.circle.green
{
background
:
green
;
}
.circle.black
{
background
:
black
;
}
.remark
{
margin-right
:
20px
;
font-size
:
12px
;
display
:
inline-block
;
vertical-align
:
text-top
;
}
.wd100
{
width
:
100%
!important
;
}
.el-tag
+
.el-tag
{
margin-left
:
10px
;
}
.button-new-tag
{
margin-left
:
10px
;
height
:
32px
;
line-height
:
30px
;
padding-top
:
0
;
padding-bottom
:
0
;
}
.input-new-tag
{
width
:
90px
;
margin-left
:
10px
;
vertical-align
:
bottom
;
}
</
style
>
\ No newline at end of file
src/plug/index.js
View file @
b1b08ce5
...
@@ -111,14 +111,14 @@ export default {
...
@@ -111,14 +111,14 @@ export default {
//域名管理对象
//域名管理对象
Vue
.
prototype
.
domainManager
=
function
()
{
Vue
.
prototype
.
domainManager
=
function
()
{
let
domainUrl
=
''
;
let
domainUrl
=
''
;
domainUrl
=
"http://1
92.168.2.214
:8082"
;
domainUrl
=
"http://1
27.0.0.1
:8082"
;
let
locationName
=
window
.
location
.
hostname
;
let
locationName
=
window
.
location
.
hostname
;
let
javaUrldo
=
""
;
let
javaUrldo
=
""
;
javaUrldo
=
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'viitto'
)
!==
-
1
?
(
locationName
.
indexOf
(
'oytour'
)
!==
-
1
?
"http://efficient.oytour.com"
:
"http://47.96.12.235:9001"
)
:
"http://192.168.2.215:9000"
;
javaUrldo
=
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'viitto'
)
!==
-
1
?
(
locationName
.
indexOf
(
'oytour'
)
!==
-
1
?
"http://efficient.oytour.com"
:
"http://47.96.12.235:9001"
)
:
"http://192.168.2.215:9000"
;
if
(
locationName
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
if
(
locationName
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
domainUrl
=
"http://
testapi.oytour.com
"
;
domainUrl
=
"http://
127.0.0.1:8082
"
;
}
}
else
if
(
locationName
.
indexOf
(
'oytour'
)
!==
-
1
)
{
else
if
(
locationName
.
indexOf
(
'oytour'
)
!==
-
1
)
{
domainUrl
=
"http://reborn.oytour.com"
;
domainUrl
=
"http://reborn.oytour.com"
;
...
...
src/router/config.js
View file @
b1b08ce5
...
@@ -1413,7 +1413,16 @@ export default {
...
@@ -1413,7 +1413,16 @@ export default {
meta
:
{
meta
:
{
title
:
'景区票券列表'
title
:
'景区票券列表'
},
},
},
{
},
,
{
path
:
'/scenicRecommentList'
,
//景点攻略
name
:
'scenicRecommentList'
,
component
:
resolve
=>
require
([
'@/components/scenicSpot/scenicRecommentList'
],
resolve
),
meta
:
{
title
:
'景点攻略'
},
},
{
path
:
'/scenicSpotSupplier'
,
//景区票券供应商
path
:
'/scenicSpotSupplier'
,
//景区票券供应商
name
:
'scenicSpotSupplier'
,
name
:
'scenicSpotSupplier'
,
component
:
resolve
=>
require
([
'@/components/scenicSpot/scenicSpotSupplier'
],
resolve
),
component
:
resolve
=>
require
([
'@/components/scenicSpot/scenicSpotSupplier'
],
resolve
),
...
@@ -4264,7 +4273,30 @@ export default {
...
@@ -4264,7 +4273,30 @@ export default {
title
:
'票务规则配置'
title
:
'票务规则配置'
}
}
},
},
{
path
:
'/mywork'
,
name
:
'mywork'
,
component
:
resolve
=>
require
([
'@/components/work/mywork'
],
resolve
),
meta
:
{
title
:
'我的工作计划'
},
},
{
path
:
'/workDetails'
,
name
:
'workDetails'
,
component
:
resolve
=>
require
([
'@/components/work/workDetails'
],
resolve
),
meta
:
{
title
:
'工作计划详情'
},
},
{
path
:
'/workManager'
,
name
:
'workManager'
,
component
:
resolve
=>
require
([
'@/components/work/workManager'
],
resolve
),
meta
:
{
title
:
'工作计划详情'
},
}
]
]
},
},
{
{
...
...
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