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
30a7e1da
Commit
30a7e1da
authored
Apr 12, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
4e736e6f
d6c041be
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
2381 additions
and
212 deletions
+2381
-212
Details.vue
src/components/Details.vue
+3
-0
EditTemplate.vue
src/components/EditTemplate.vue
+9
-2
invoicesManagerAdd.vue
src/components/FinancialModule/invoicesManagerAdd.vue
+6
-0
HotelProductManage2.vue
src/components/Hotel/HotelProductManage2.vue
+3
-3
HotelQueryList.vue
src/components/Hotel/HotelQueryList.vue
+19
-8
HouseTypeList.vue
src/components/Hotel/HouseTypeList.vue
+177
-0
PrintPage.vue
src/components/PrintPage.vue
+4
-5
VisaFinancialDocuments.vue
src/components/SalesModule/VisaFinancialDocuments.vue
+5
-1
ModifyVisaProduct.vue
src/components/SalesVisa/ModifyVisaProduct.vue
+1238
-0
VisaProduct.vue
src/components/SalesVisa/VisaProduct.vue
+41
-6
VisaProductCountryManager.vue
src/components/SalesVisa/VisaProductCountryManager.vue
+775
-0
index.vue
src/components/index.vue
+9
-98
systemLogs.vue
src/components/systemLogs.vue
+92
-89
No files found.
src/components/Details.vue
View file @
30a7e1da
...
...
@@ -821,6 +821,9 @@ export default {
let
that
=
this
this
.
$router
.
beforeEach
((
to
,
from
,
next
)
=>
{
console
.
log
(
"to.query.blank && to.query.blank=='y'"
,
to
.
query
)
if
(
to
.
path
==
"/ModifyVisaProduct"
){
this
.
reloadpage
();
}
if
(
that
.
openMode
==
1
){
let
isThreeNav
=
false
to
.
matched
.
forEach
(
x
=>
{
...
...
src/components/EditTemplate.vue
View file @
30a7e1da
...
...
@@ -506,7 +506,7 @@
<div
class=
"TNcontent"
v-else
>
<div
class=
"EtNodata"
>
暂无数据
</div>
</div>
<span
class=
"defaultAccount"
slot=
"reference"
>
默认叙述
</span>
<span
class=
"defaultAccount"
slot=
"reference"
v-if=
"defaultA"
>
默认叙述
</span>
</el-popover>
</span>
</div>
...
...
@@ -534,7 +534,7 @@
Quill
.
register
(
Font
,
true
);
export
default
{
name
:
'edit'
,
props
:
[
"editValue"
,
"toolbarShow"
,
"referenceList"
,
"placeholder"
],
props
:
[
"editValue"
,
"toolbarShow"
,
"referenceList"
,
"placeholder"
,
"defaultAccount"
],
data
()
{
return
{
myToolbar
:
''
,
...
...
@@ -542,6 +542,7 @@
myImageUploader
:
''
,
quillValue
:
this
.
editValue
,
popvisible
:
false
,
defaultA
:
true
,
//字体样式
fonts
:
[
"SimSun"
,
...
...
@@ -591,6 +592,12 @@
}
},
created
()
{
if
(
this
.
defaultAccount
==
undefined
){
this
.
defaultA
=
true
;
}
else
{
this
.
defaultA
=
this
.
defaultAccount
;
}
this
.
myToolbar
=
"toolbar_"
+
this
.
guid
();
this
.
editorOption
.
placeholder
=
this
.
placeholder
;
this
.
myQuillEditor
=
"editer_"
+
this
.
guid
();
...
...
src/components/FinancialModule/invoicesManagerAdd.vue
View file @
30a7e1da
...
...
@@ -161,10 +161,13 @@ export default {
InvoiceApplyState
:
1
,
CustomerId
:
0
,
IsDefaultInfo
:
1
,
<<<<<<<
HEAD
=======
Address
:
''
,
CompanyPhone
:
''
,
OpeningBank
:
''
,
BankNo
:
''
,
>>>>>>>
8
e6bb64928beef82a7e4f060b1248eaebd93e197
},
DepartName
:
""
,
emName
:
""
,
...
...
@@ -192,10 +195,13 @@ export default {
Addiis
:
function
()
{
// 新增接口
if
(
this
.
msg
.
CompanyName
===
''
)
return
this
.
$message
.
error
(
'请填写公司名称!'
)
if
(
this
.
msg
.
DutyParagraph
===
''
)
return
this
.
$message
.
error
(
'请填写税号!'
)
<<<<<<<
HEAD
=======
if
(
this
.
msg
.
Address
===
''
)
return
this
.
$message
.
error
(
'请填写地址!'
)
if
(
this
.
msg
.
CompanyPhone
===
''
)
return
this
.
$message
.
error
(
'请填写电话!'
)
if
(
this
.
msg
.
OpeningBank
===
''
)
return
this
.
$message
.
error
(
'请填写开户行!'
)
if
(
this
.
msg
.
BankNo
===
''
)
return
this
.
$message
.
error
(
'请填写账号!'
)
>>>>>>>
8
e6bb64928beef82a7e4f060b1248eaebd93e197
if
(
this
.
checked
)
{
this
.
msg
.
IsDefaultInfo
=
1
}
else
{
...
...
src/components/Hotel/HotelProductManage2.vue
View file @
30a7e1da
...
...
@@ -512,7 +512,7 @@
editShow
:
false
,
msg
:
{
Hotel
:
'0'
,
Supplier
:
'0'
,
Supplier
:
30
,
Inventory
:
'0'
,
B2BPrice
:
'0'
,
B2CPrice
:
'0'
,
...
...
@@ -541,7 +541,7 @@
},
msg2
:
{
Hotel
:
'0'
,
Supplier
:
'0'
,
Supplier
:
30
,
Inventory
:
'0'
,
B2BPrice
:
'0'
,
B2CPrice
:
'0'
,
...
...
@@ -868,7 +868,7 @@
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
;
this
.
msg
.
Supplier
=
data
.
Supplier
===
0
?
'0'
:
data
.
Supplier
this
.
msg
.
Supplier
=
data
.
Supplier
===
0
?
30
:
data
.
Supplier
this
.
msg
.
Inventory
=
data
.
Inventory
this
.
msg
.
B2BPrice
=
data
.
B2BPrice
this
.
msg
.
B2CPrice
=
data
.
B2CPrice
...
...
src/components/Hotel/HotelQueryList.vue
View file @
30a7e1da
...
...
@@ -145,12 +145,12 @@
</el-row>
<div
class=
"Hq_addDetail"
>
<el-row>
<el-col
:span=
"
9
"
>
<el-col
:span=
"
12
"
>
<el-form-item
label=
"说明"
>
<el-input
type=
"textarea"
v-model=
"postMsg.TipContent"
maxlength=
"200"
></el-input
>
<quill-editor
class=
"w595"
:options=
"editorOption"
v-model=
"postMsg.TipContent"
></quill-editor
>
</el-form-item>
</el-col>
<el-col
:span=
"1
5
"
>
<el-col
:span=
"1
2
"
>
<input
type=
"button"
class=
"normalBtn"
value=
"保存"
@
click=
"SaveHotelTip()"
/>
</el-col>
</el-row>
...
...
@@ -168,7 +168,7 @@
<
template
v-if=
"queryMsg.total>0"
>
<tr
v-for=
"(item,index) in HotelTipList"
>
<td>
{{
item
.
Id
}}
</td>
<td>
{{
item
.
TipContent
}}
</td>
<td>
<p
style=
"text-align:left;padding-left:5px;"
v-html=
"item.TipContent"
></p>
</td>
<td>
{{
item
.
CreateByName
}}
</td>
<td>
{{
item
.
CreateTimeStr
}}
</td>
<td>
...
...
@@ -192,8 +192,6 @@
</div>
<el-dialog
custom-class=
"w800"
title=
"信息"
:visible
.
sync=
"showHQinfo"
center
>
<el-form>
<div
class=
"HQ_miaoshu"
>
1.酒店库存系统已开放使用,欢迎前往参观选购!!
</div>
<div
class=
"HQ_miaoshu"
>
2.库存酒店皆为时时更新,请上传人员细心上传!!
</div>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"HouseTypeList Hq_addTable"
style=
"width:100%;"
>
<tr>
<th>
编号
</th>
...
...
@@ -204,7 +202,7 @@
<
template
v-if=
"queryMsg.total>0"
>
<tr
v-for=
"(item,index) in HotelTipList"
>
<td>
{{
item
.
Id
}}
</td>
<td>
{{
item
.
TipContent
}}
</td>
<td>
<p
style=
"text-align:left;padding-left:5px;"
v-html=
"item.TipContent"
></p>
</td>
<td>
{{
item
.
CreateByName
}}
</td>
<td>
{{
item
.
CreateTimeStr
}}
</td>
</tr>
...
...
@@ -282,7 +280,16 @@
let
startTime
=
new
Date
(
this
.
queryMsg
.
QEndDate
)
return
startTime
.
getTime
()
>=
time
.
getTime
()
}
}
},
editorOption
:{
placeholder
:
'请输入内容'
,
modules
:{
toolbar
:[
[
'bold'
,
'italic'
,
'underline'
,
'strike'
],
// toggled buttons
[
'blockquote'
,
'code-block'
,
'align'
]
]
}
},
};
},
methods
:
{
...
...
@@ -518,6 +525,10 @@
text-decoration
:
underline
;
}
.HqCom_bottom
.ql-container
{
min-height
:
100px
;
}
.classHong
{
background-color
:
rgb
(
255
,
55
,
55
);
}
...
...
src/components/Hotel/HouseTypeList.vue
0 → 100644
View file @
30a7e1da
<
template
>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li>
<span>
<em>
酒店
</em>
<el-select
v-model=
"msg.HotelId"
:placeholder=
"$t('pub.pleaseSel')"
filterable
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
></el-option>
<el-option
v-for=
"item in HotelList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li><span><em>
日期
</em>
<el-date-picker
v-model=
'msg.StartDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.EndDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList()"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"HouseTypeList"
v-if=
"isShow"
>
<tr>
<th
width=
"300"
>
酒店名称
</th>
<th
width=
"80"
></th>
<th
v-for=
"item in dataList[0].subList"
>
{{
getDateList
(
item
.
DateStr
)
}}
</th>
</tr>
<tr>
<th></th>
<th></th>
<th
v-for=
"item in dataList[0].subList"
>
{{
getWeek
(
item
.
DateStr
)
}}
</th>
</tr>
<tr
v-for=
"item in dataList"
>
<td>
<div
style=
"min-width:300px; text-align:left;padding-left:5px;"
>
{{
item
.
HotelName
}}
</div>
</td>
<td>
<div
class=
"Hotel_kong"
style=
"min-width:60px;"
>
空房
</div>
<div
class=
"Hotel_kong"
>
超定
</div>
</td>
<td
v-for=
"subItem in item.subList"
>
<div
class=
"Hotel_kong Com_hoteldiv"
:class=
"
{'noKucun':subItem.Status==0}">
{{
subItem
.
RemainingInventory
}}
</div>
<div
class=
"Hotel_kong Com_hoteldiv"
>
<span
v-if=
"subItem.UseInventory-subItem.Inventory>0"
style=
"color:red;"
>
{{
subItem
.
UseInventory
-
subItem
.
Inventory
}}
</span>
</div>
</td>
</tr>
</table>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
msg
:{
HotelId
:
0
,
StartDate
:
new
Date
().
Format
(
"yyyy-MM-dd"
),
EndDate
:
this
.
setEdate
(),
},
HotelList
:
[],
dataList
:
[],
isShow
:
false
,
};
},
methods
:
{
getList
()
{
if
(
this
.
msg
.
StartDate
==
null
)
{
this
.
msg
.
StartDate
=
new
Date
().
Format
(
"yyyy-MM-dd"
)
}
if
(
this
.
msg
.
EndDate
==
null
)
{
this
.
msg
.
EndDate
=
this
.
setEdate
()
}
this
.
apipost
(
"dict_post_HotelOffer_GetHotelStatics"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
this
.
isShow
=
true
;
console
.
log
(
this
.
dataList
,
'dataList'
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//获取酒店列表
GetHotelList
()
{
this
.
apipost
(
"hotel_post_GetHasStockHotelList"
,
{
Country
:
651
,
IsMoreThanZero
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
HotelList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
setEdate
(){
return
this
.
addMoth
(
new
Date
().
Format
(
"yyyy-MM-dd"
),
1
)
},
addMoth
(
d
,
m
)
{
let
ds
=
d
.
split
(
'-'
),
_d
=
ds
[
2
]
-
0
;
let
nextM
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
+
1
,
0
);
let
max
=
nextM
.
getDate
();
d
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
,
_d
>
max
?
max
:
_d
);
return
d
.
toLocaleDateString
().
match
(
/
\d
+/g
).
join
(
'-'
)
},
//格式化返回显示日期
getDateList
(
dateStr
){
var
str
=
dateStr
.
split
(
'-'
);
return
str
[
1
]
+
'/'
+
str
[
2
];
},
//获取星期几
getWeek
(
dateStr
){
var
weekDay
=
[
"天"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
];
var
myDate
=
new
Date
(
Date
.
parse
(
dateStr
));
return
weekDay
[
myDate
.
getDay
()]
}
},
mounted
()
{
this
.
GetHotelList
();
this
.
getList
();
}
};
</
script
>
<
style
>
.HouseTypeList
{
background
:
#ccc
;
width
:
100%
;
}
.Com_hoteldiv
{
min-width
:
40px
;
}
.noKucun
{
background-color
:
black
;
}
.Hotel_kong
{
width
:
100%
;
height
:
35px
;
line-height
:
35px
;
border-bottom
:
1px
solid
#d1d1d1
;
}
.Hotel_kong
:last-child
{
border
:
0
;
}
.HouseTypeList
tr
th
{
background
:
#e6e6e6
;
height
:
35px
;
font-size
:
12px
;
color
:
#333
;
}
.HouseTypeList
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
35px
;
}
.HouseTypeList
tr
td
{
font-size
:
12px
;
}
</
style
>
src/components/PrintPage.vue
View file @
30a7e1da
...
...
@@ -2,25 +2,24 @@
._PrintPage
{
width
:
100%
;
background-color
:
white
;
/* position: absolute; */
position
:
absolute
;
padding-top
:
20px
;
}
._PrintPage_box
{
width
:
1000px
;
/* margin-left: 160px; */
margin
:
0
auto
;
padding
:
0
!important
;
}
._border_1
{
border
:
1px
solid
#333333
;
margin-bottom
:
30px
;
page-break-after
:
always
;
/* page-break-after: always; */
}
@media
print
{
/*
@media print {
._PrintPage{
margin-left:-145px;
}
}
}
*/
</
style
>
<
template
v-loading=
"loading"
>
<div
class=
"_PrintPage"
>
...
...
src/components/SalesModule/VisaFinancialDocuments.vue
View file @
30a7e1da
...
...
@@ -519,7 +519,6 @@ export default {
})
},
addFinancialOrder
()
{
// 新增单据方法
let
userInfo
=
[];
this
.
checkList
.
forEach
(
check
=>
{
this
.
checknameList
.
forEach
(
item
=>
{
...
...
@@ -528,6 +527,11 @@ export default {
}
})
})
if
(
userInfo
.
length
==
0
){
this
.
Error
(
"至少选择一人!"
);
return
;
}
sessionStorage
.
setItem
(
"saveGuestInfo"
,
JSON
.
stringify
(
userInfo
))
// this.$store.commit('saveGuestInfo',userInfo)
// console.log("getGuestInfo",this.$store.getters.getGuestInfo)
...
...
src/components/SalesVisa/ModifyVisaProduct.vue
0 → 100644
View file @
30a7e1da
<
style
>
/* @import "../../assets/css/newTravelManager.css"; */
.ModifyVisaProduct
.TravelLeftMenu
{
width
:
120px
;
float
:
left
;
position
:
fixed
;
padding-bottom
:
20px
;
border-radius
:
4px
;
background-color
:
#fff
;
margin-top
:
30px
;
text-align
:
center
;
z-index
:
1
;
}
.ModifyVisaProduct
.TravelTopTitle
{
width
:
100%
;
height
:
40px
;
background-color
:
#333333
;
color
:
#fff
;
line-height
:
40px
;
font-size
:
14px
;
}
.ModifyVisaProduct
.TravelTopTitle
{
width
:
100%
;
height
:
40px
;
background-color
:
#333333
;
color
:
#fff
;
line-height
:
40px
;
font-size
:
14px
;
}
.ModifyVisaProduct
.rightTravelInfo
{
float
:
left
;
margin-left
:
160px
;
/* min-width: 1150px; */
width
:
85%
;
}
.ModifyVisaProduct
.TravelNavList
{
width
:
72px
;
height
:
28px
;
line-height
:
28px
;
cursor
:
pointer
;
margin
:
10px
auto
;
font-size
:
12px
;
border-radius
:
4px
;
}
.ModifyVisaProduct
.TravelNavList
:hover
{
background-color
:
#e95252
;
color
:
#fff
;
}
.ModifyVisaProduct
.TravelLine
{
width
:
13px
;
height
:
2px
;
background-color
:
#333333
;
margin
:
auto
;
}
.ModifyVisaProduct
.TravelCked
{
background-color
:
#e95252
;
color
:
#fff
;
}
.ModifyVisaProduct
.newTravelRight
{
float
:
left
;
margin-left
:
130px
;
padding
:
20px
0
;
width
:
calc
(
100%
-
130px
);
box-sizing
:
content-box
;
}
.ModifyVisaProduct
.btnFixedDiv
{
position
:
fixed
;
z-index
:
999
;
width
:
60px
;
height
:
auto
;
padding-bottom
:
10px
;
right
:
30px
;
bottom
:
20%
;
background-color
:
#e95252
;
border-radius
:
4px
;
}
.ModifyVisaProduct
.toTop
{
width
:
100%
;
height
:
40px
;
text-align
:
center
;
line-height
:
40px
;
color
:
#fff
;
cursor
:
pointer
;
}
.ModifyVisaProduct
.toTop
i
{
font-size
:
20px
;
}
.ModifyVisaProduct
.DTSaveBtn
{
width
:
37px
;
height
:
37px
;
border-radius
:
4px
;
background-color
:
#ffc2c2
;
margin
:
8px
;
color
:
#cc1212
;
text-align
:
center
;
line-height
:
37px
;
font-size
:
12px
;
cursor
:
pointer
;
}
.ModifyVisaProduct
.DTSaveBtn
span
{
display
:
block
;
}
.ModifyVisaProduct
.disClick
{
background-color
:
#d1d1d1
;
color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
.ModifyVisaProduct
.TMTitle
{
display
:
inline-block
;
padding-left
:
10px
;
font-size
:
14px
;
}
.ModifyVisaProduct
.TMTitle
i
{
display
:
inline-block
;
width
:
3px
;
height
:
14px
;
background-color
:
#e95252
;
margin-right
:
10px
;
position
:
relative
;
top
:
2px
;
}
.ModifyVisaProduct
.TC_tcnum
{
margin-left
:
20px
;
}
.ModifyVisaProduct
.TC_OneKeyUp
{
margin-left
:
35%
;
width
:
140px
;
line-height
:
38px
;
text-align
:
center
;
color
:
#fff
;
cursor
:
pointer
;
text-shadow
:
1px
1px
1px
#333
;
border-radius
:
5px
;
margin-left
:
32%
;
position
:
relative
;
padding
:
5px
15px
;
overflow
:
hidden
;
border
:
1px
solid
#64c878
;
box-shadow
:
0
1px
2px
#b9ecc4
inset
,
0
-1px
0
#6c9f76
inset
,
0
-2px
3px
#b9ecc4
inset
;
background
:
-webkit-linear-gradient
(
top
,
#90dfa2
,
#47bf8c
);
background
:
-moz-linear-gradient
(
top
,
#90dfa2
,
#47bf8c
);
background
:
linear-gradient
(
top
,
#90dfa2
,
#47bf8c
);
}
.ModifyVisaProduct
.foldList
{
width
:
90px
;
height
:
28px
;
background-color
:
#e95252
;
color
:
#fff
;
text-align
:
center
;
font-size
:
12px
;
cursor
:
pointer
;
float
:
right
;
line-height
:
28px
;
border-radius
:
16px
;
}
.ModifyVisaProduct
.Travel_Nav
{
margin
:
40px
0
;
}
.ModifyVisaProduct
.Travel_TT
{
display
:
inline-block
;
padding
:
3px
8px
;
background-color
:
#333333
;
color
:
#fff
;
border-radius
:
4px
;
font-size
:
12px
;
margin-left
:
20px
;
}
.ModifyVisaProduct
.Travel_Line
{
display
:
block
;
width
:
95%
;
margin
:
15px
auto
;
border-bottom
:
1px
dashed
#bfbfbf
;
}
.ModifyVisaProduct
.modify_form
.el-form-item
{
display
:
inline-block
;
width
:
290px
;
}
#firstAnchor
,
#feiyXInxi
,
#visacailiao
,
#wenxintips
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
15px
6px
;
box-sizing
:
border-box
;
}
.ModifyVisaProduct
.NotContain
{
margin-top
:
50px
;
}
.ModifyVisaProduct
.TNtitle
{
height
:
35px
;
padding
:
0
10px
;
text-align
:
center
;
line-height
:
35px
;
color
:
#fff
;
display
:
inline-block
;
font-size
:
14px
;
background-color
:
#333333
;
}
.ModifyVisaProduct
.ql-container
{
box-sizing
:
border-box
;
min-height
:
200px
;
}
.ModifyVisaProduct
.el-textarea
{
border
:
none
;
height
:
100%
;
}
.ModifyVisaProduct
.el-textarea
textarea
{
border
:
none
;
height
:
100%
;
}
.ModifyVisaProduct
.tag_ul
{
font-size
:
14px
;
color
:
#606266
;
padding-left
:
50px
;
}
.ModifyVisaProduct
.tag_ul
li
.input-new-tag
{
width
:
150px
;
}
.ModifyVisaProduct
.tag_ul
li
.el-tag
{
margin-right
:
15px
;
margin-bottom
:
15px
;
width
:
70px
;
padding
:
0
;
text-align
:
center
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
cursor
:
pointer
;
position
:
relative
;
}
.ModifyVisaProduct
.tag_ul
li
>
div
{
margin
:
15px
0
;
}
.ModifyVisaProduct
.el-tag
.el-icon-close
{
position
:
absolute
;
top
:
2px
;
right
:
0px
;
}
.ModifyVisaProduct
.Travel_ImgList
{
margin
:
10px
0
0
60px
;
}
.ModifyVisaProduct
.TFimgList
{
float
:
left
;
width
:
170px
;
height
:
120px
;
border-radius
:
4px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
overflow
:
hidden
;
}
.ModifyVisaProduct
.TFIMGzhe
{
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.4
);
position
:
absolute
;
top
:
0
;
text-align
:
center
;
line-height
:
115px
;
border-radius
:
4px
;
display
:
none
;
}
.ModifyVisaProduct
.TFimgList
img
{
width
:
100%
;
height
:
100%
;
}
.ModifyVisaProduct
.TFreupload
{
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
line-height
:
32px
;
top
:
50px
;
left
:
53px
;
display
:
inline-block
;
text-align
:
center
;
background-color
:
gray
;
color
:
#fff
;
}
.ModifyVisaProduct
.TFimgList
:hover
.TFIMGzhe
{
display
:
block
;
}
.ModifyVisaProduct
.TFreupload
:hover
{
color
:
#e95252
;
background-color
:
#fff
;
cursor
:
pointer
;
}
.ModifyVisaProduct
.TFimgList
.re-delte
{
width
:
32px
;
height
:
32px
;
background
:
gray
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
32px
;
display
:
inline-block
;
color
:
#fff
;
margin
:
40px
auto
;
cursor
:
pointer
;
}
.ModifyVisaProduct
.TFimgList
.re-delte
:hover
{
color
:
#e95252
;
background
:
#fff
;
}
.ModifyVisaProduct
.btn_color
{
background
:
#e95252
;
border
:
1px
solid
#e95252
;
color
:
#fff
;
padding
:
4px
10px
;
}
.ModifyVisaProduct
.el-date-editor
.el-range-separator
{
width
:
auto
;
}
.el-date-table
td
.end-date
span
{
background
:
#e95252
;
}
.el-date-table
td
.start-date
span
{
background
:
#e95252
;
}
.el-date-table
td
.start-date
:hover
span
{
color
:
#fff
!important
;
}
.el-date-table
td
.end-date
:hover
span
{
color
:
#fff
!important
;
}
.ModifyVisaProduct
.tag_span
{
display
:
inline-block
;
width
:
150px
;
margin-bottom
:
15px
;
}
.ModifyVisaProduct
.icon-img_bianji_small
{
font-size
:
12px
;
}
.ModifyVisaProduct
.el-upload-list
{
width
:
500px
;
}
</
style
>
<
template
>
<div
class=
"ModifyVisaProduct"
>
<div
class=
"clearfix"
style=
"margin:auto;width:1300px;"
>
<div
class=
"TravelLeftMenu"
>
<div
class=
"TravelTopTitle"
>
页面导航
</div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==1}" @click.prevent="custormAnchor('firstAnchor',1)">
基础信息
</div>
<div
class=
"TravelLine"
></div>
<!--
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('secondAnchor',2)">
预定须知
</div>
<div
class=
"TravelLine"
></div>
-->
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('feiyXInxi',2)">
费用说明
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==3}" @click.prevent="custormAnchor('visacailiao',3)">
签证材料
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('wenxintips',4)">
温馨提示
</div>
<div
class=
"TravelLine"
></div>
</div>
<div
class=
"newTravelRight"
v-loading=
"loading"
>
<!-- 基础信息 -->
<div
id=
"firstAnchor"
>
<span
class=
"TMTitle"
>
<i></i>
基础设置
</span>
<!--
<span
class=
"foldList"
>
点击折叠
</span>
<span
class=
"foldList"
>
点击展开
</span>
-->
<div
class=
"Travel_Nav"
>
<span
class=
"Travel_TT"
>
信息
</span>
<span
class=
"Travel_Line"
></span>
</div>
<el-form
class=
"modify_form"
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
label-width=
"120px"
>
<el-form-item
label=
"产品名称"
prop=
"Name"
>
<el-input
v-model=
"addMsg.Name"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"签证类型"
prop=
"VisaType"
>
<el-select
v-model=
"addMsg.VisaType"
@
change=
"getVisaManagementList"
>
<!--
<el-option
label=
'不限'
value=
'-1'
key=
'-1'
></el-option>
-->
<el-option
label=
"个签"
:value=
"1"
key=
"1"
></el-option>
<el-option
label=
"团签"
:value=
"2"
key=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"签证国家"
prop=
"VisaManagementId"
>
<el-select
v-model=
"addMsg.VisaManagementId"
>
<el-option
label=
"不限"
:value=
"0"
key=
"0"
></el-option>
<el-option
v-for=
"item in VisaManagementList"
:label=
"item.Name"
:value=
"item.Id"
:key=
"item.Id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"成本价"
prop=
"CostPrice"
>
<el-input
v-model
.
number=
"addMsg.CostPrice"
@
keyup
.
native=
"checkInteger(addMsg,'CostPrice')"
placeholder=
"请输入"
maxlength=
"20"
></el-input>
</el-form-item>
<el-form-item
label=
"同业价"
prop=
"VisaPrice"
>
<el-input
v-model
.
number=
"addMsg.VisaPrice"
@
keyup
.
native=
"checkInteger(addMsg,'VisaPrice')"
placeholder=
"请输入"
maxlength=
"20"
></el-input>
</el-form-item>
<el-form-item
label=
"直客价"
prop=
"VisaB2CPrice"
>
<el-input
v-model
.
number=
"addMsg.VisaB2CPrice"
@
keyup
.
native=
"checkInteger(addMsg,'VisaB2CPrice')"
placeholder=
"请输入"
maxlength=
"20"
></el-input>
</el-form-item>
<el-form-item
label=
"提成金额"
prop=
"CommissionPrice"
>
<el-input
v-model=
"addMsg.CommissionPrice"
placeholder=
"请输入"
@
keyup
.
native=
"checkInteger(addMsg,'CommissionPrice')"
></el-input>
</el-form-item>
<el-form-item
label=
"提前预定天数"
prop=
"BookAdvance"
>
<el-input
v-model=
"addMsg.BookAdvance"
@
keyup
.
native=
"checkInteger(addMsg,'BookAdvance')"
placeholder=
"工作日"
></el-input>
</el-form-item>
<el-form-item
label=
"价格有效日期"
>
<el-date-picker
v-model=
"PriceDates"
type=
"daterange"
range-separator=
"至"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"热门签证"
prop=
"HotVisa"
>
<el-select
v-model=
"addMsg.HotVisa"
>
<el-option
label=
"是"
:value=
"1"
key=
"1"
></el-option>
<el-option
label=
"否"
:value=
"0"
key=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"送签地"
prop=
"SendCityName"
>
<el-input
v-model=
"addMsg.SendCityName"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"入境次数"
prop=
"EntryType"
>
<el-select
v-model=
"addMsg.EntryType"
>
<el-option
label=
"单次"
:value=
"1"
key=
"1"
></el-option>
<el-option
label=
"多次"
:value=
"2"
key=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"办理时长"
prop=
"ManageDuration"
>
<el-input
v-model
.
number=
"addMsg.ManageDuration"
placeholder=
"工作日"
@
keyup
.
native=
"checkInteger(addMsg,'ManageDuration')"
></el-input>
</el-form-item>
<el-form-item
label=
"停留天数"
>
<el-input
v-model=
"addMsg.StayDays"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"限时优惠"
prop=
"FlashSale"
>
<el-select
v-model=
"addMsg.FlashSale"
>
<el-option
label=
"是"
:value=
"1"
key=
"1"
></el-option>
<el-option
label=
"否"
:value=
"0"
key=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"签证有效期"
>
<el-input
v-model=
"addMsg.VisaValidity"
placeholder=
"请输入"
></el-input>
</el-form-item>
<span
class=
"Travel_Line"
></span>
<div>
<el-form-item
label=
"签证关联国家"
prop=
"VisaCountryId"
>
<el-select
@
change=
"VisaCountry"
v-model=
"addMsg.VisaCountryId"
class=
"dateClass"
>
<el-option
v-for=
"item in Visacountry"
:label=
"item.CountryName"
:value=
"item.Id"
:key=
"item.Id"
></el-option>
</el-select>
</el-form-item>
<ul
class=
"tag_ul"
>
<li>
<span>
签证类型
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible1"
v-model=
"inputValue"
ref=
"saveTagInput1"
size=
"small"
@
blur=
"CloseTag"
@
keyup
.
enter
.
native=
"handleInputConfirm(1)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag btn_color"
size=
"mini"
@
click=
"showInput(1)"
>
新增
</el-button>
</span>
<div>
<span
class=
"tag_span"
v-for=
"tag in CountryTagList"
v-if=
"tag.TagType==1"
:key=
"tag.Id"
>
<input
type=
"checkbox"
:value=
"tag.Id"
v-model=
"checkList"
:id=
"tag.Id"
>
<label
:for=
"tag.Id"
>
{{
tag
.
TagTame
}}
</label>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<el-button
type=
"primary"
style=
"background:#409EFF; border-color:#409EFF;padding:2px"
icon=
"iconfont icon-img_bianji_small"
@
click=
"EditTag(tag,1)"
></el-button>
</el-tooltip>
</span>
</div>
</li>
<li>
<span>
产品标签
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible2"
v-model=
"inputValue"
ref=
"saveTagInput2"
size=
"small"
@
blur=
"CloseTag"
@
keyup
.
enter
.
native=
"handleInputConfirm(2)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag btn_color"
size=
"mini"
@
click=
"showInput(2)"
>
新增
</el-button>
</span>
<div>
<span
class=
"tag_span"
v-for=
"tag in CountryTagList"
v-if=
"tag.TagType==2"
:key=
"tag.Id"
>
<input
type=
"checkbox"
:value=
"tag.Id"
v-model=
"checkList"
:id=
"tag.Id"
>
<label
:for=
"tag.Id"
>
{{
tag
.
TagTame
}}
</label>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<el-button
type=
"primary"
style=
"background:#409EFF; border-color:#409EFF;padding:2px"
icon=
"iconfont icon-img_bianji_small"
@
click=
"EditTag(tag,2)"
></el-button>
</el-tooltip>
</span>
</div>
</li>
<li>
<span>
特色服务
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible3"
v-model=
"inputValue"
ref=
"saveTagInput3"
size=
"small"
@
blur=
"CloseTag"
@
keyup
.
enter
.
native=
"handleInputConfirm(3)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag btn_color"
size=
"mini"
@
click=
"showInput(3)"
>
新增
</el-button>
</span>
<div>
<span
class=
"tag_span"
v-for=
"tag in CountryTagList"
v-if=
"tag.TagType==3"
:key=
"tag.Id"
>
<input
type=
"checkbox"
:value=
"tag.Id"
v-model=
"checkList"
:id=
"tag.Id"
>
<label
:for=
"tag.Id"
>
{{
tag
.
TagTame
}}
</label>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<el-button
type=
"primary"
style=
"background:#409EFF; border-color:#409EFF;padding:2px"
icon=
"iconfont icon-img_bianji_small"
@
click=
"EditTag(tag,3)"
></el-button>
</el-tooltip>
</span>
</div>
</li>
</ul>
</div>
<div
class=
"Travel_ImgList clearfix"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in addMsg.CoverImageList"
:key=
"item.subCode"
v-if=
"index==0"
>
<img
v-if=
"!item.Url"
src=
"../../assets/img/bg_c3@3x.png"
>
<img
v-else
:src=
'compressImg(item.Url, "filt", 170, "")'
>
<div
class=
"TFIMGzhe"
>
<div
class=
"TFreupload"
@
click=
"updateTFimg(index)"
>
<el-upload
:file-list=
"addMsg.CoverImageList"
:http-request=
"reUpload"
:multiple=
"true"
accept=
"image/jpeg, image/gif, image/png, image/bmp"
:show-file-list=
"false"
action
>
<i
class=
"iconfont icon-Edit"
></i>
</el-upload>
</div>
<!--
<div
class=
"re-delte"
@
click
.
stop=
"ExchangeImg(index,0)"
v-if=
"index!=0&&item.Url"
>
<i
class=
"iconfont icon-zuoyi"
></i>
</div>
<div
class=
"re-delte"
@
click
.
stop=
"ExchangeImg(index,1)"
v-if=
"index!=addMsg.CoverImageList.length-1&&item.Url"
>
<i
class=
"iconfont icon-youyi"
></i>
</div>
-->
<!--
<div
class=
"re-delte"
@
click
.
stop=
"addImgOpen(index)"
>
<i
class=
"iconfont icon-img_cz"
></i>
</div>
-->
</div>
</div>
</div>
</el-form>
</div>
<!-- 费用说明(费用包含,费用不包含) -->
<div
id=
"feiyXInxi"
>
<span
class=
"TMTitle"
>
<i></i>
费用说明
</span>
<!--
<span
class=
"foldList"
>
点击折叠
</span>
<span
class=
"foldList"
>
点击展开
</span>
-->
<div>
<div
class=
"TNtitle NotContain"
>
费用包含
</div>
<div
class=
"ql-container"
>
<my-edit
v-on:edit-value=
"addMsg.VisaProductInfo.FeeInclude = arguments[0]"
v-bind:editValue=
"addMsg.VisaProductInfo.FeeInclude"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"FeeInclude"
v-bind:defaultAccount=
"false"
></my-edit>
</div>
<div
class=
"TNtitle NotContain"
>
费用不包含
</div>
<div
class=
"ql-container"
>
<my-edit
v-on:edit-value=
"addMsg.VisaProductInfo.FeeNonInclude = arguments[0]"
v-bind:editValue=
"addMsg.VisaProductInfo.FeeNonInclude"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"FeeInclude"
v-bind:defaultAccount=
"false"
></my-edit>
</div>
</div>
</div>
<!-- 签证材料 -->
<div
id=
"visacailiao"
>
<span
class=
"TMTitle"
>
<i></i>
签证材料
</span>
<!--
<span
class=
"foldList"
>
点击折叠
</span>
<span
class=
"foldList"
>
点击展开
</span>
-->
<div>
<div
class=
"TNtitle NotContain"
>
签证材料
</div>
<div
class=
"ql-container"
>
<my-edit
v-on:edit-value=
"addMsg.VisaProductInfo.VisaMaterials = arguments[0]"
v-bind:editValue=
"addMsg.VisaProductInfo.VisaMaterials"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"FeeInclude"
v-bind:defaultAccount=
"false"
></my-edit>
</div>
<div>
<el-upload
class=
"upload-demo"
:file-list=
"addMsg.VisaProductInfo.DownloadMaterialsFileList"
:http-request=
"uploadTest"
:on-remove=
"handleRemove"
:multiple=
"true"
:limit=
"10"
action=
""
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</div>
</div>
</div>
<!-- 温馨提示 -->
<div
id=
"wenxintips"
>
<span
class=
"TMTitle"
>
<i></i>
温馨提示
</span>
<div>
<div
class=
"TNtitle NotContain"
>
温馨提示
</div>
<div
class=
"ql-container"
>
<my-edit
v-on:edit-value=
"addMsg.VisaProductInfo.WarmTip = arguments[0]"
v-bind:editValue=
"addMsg.VisaProductInfo.WarmTip"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"FeeInclude"
v-bind:defaultAccount=
"false"
></my-edit>
</div>
</div>
</div>
<!-- 返回顶部 -->
<div
class=
"btnFixedDiv"
>
<div
class=
"toTop"
@
click=
"backTop"
>
<i
class=
"iconfont icon-huidaodingbu"
></i>
</div>
<!-- @click="submitForm(1)" -->
<div
class=
"DTSaveBtn"
@
click=
"SaveVisaProduct('addMsg')"
>
保存
</div>
<!--
<div
class=
"DTSaveBtn"
>
提交
</div>
-->
<!--
<div
v-if=
"ConfigId>0"
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="goB2B()">预览
</div>
-->
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
moment
from
"moment"
;
import
{
quillEditor
}
from
"vue-quill-editor"
;
import
*
as
Quill
from
"quill"
;
//引入编辑器
import
MyEdit
from
"../EditTemplate.vue"
;
//quill编辑器的字体
var
fonts
=
[
"SimSun"
,
"SimHei"
,
"Microsoft-YaHei"
,
"KaiTi"
,
"FangSong"
,
"Arial"
,
"Times-New-Roman"
,
"sans-serif"
];
var
Font
=
Quill
.
import
(
"formats/font"
);
Font
.
whitelist
=
fonts
;
//将字体加入到白名单
Quill
.
register
(
Font
,
true
);
export
default
{
components
:
{
"my-edit"
:
MyEdit
},
data
()
{
return
{
fileList
:[],
checkList
:[],
fonts
:
[
"SimSun"
,
"SimHei"
,
"Microsoft-YaHei"
,
"KaiTi"
,
"FangSong"
,
"Arial"
,
"Times-New-Roman"
,
"sans-serif"
],
toolbar
:
{
clean
:
false
,
//加粗
font
:
false
,
//字体
narrative
:
true
//叙述,
},
referenceList
:[],
FeeInclude
:[],
//选中的导航
ckedNav
:
1
,
loading
:
false
,
value6
:
""
,
VisaManagementList
:[],
addMsg
:
{
Id
:
0
,
Name
:
""
,
VisaType
:
1
,
SendVisaDate
:
""
,
VisaPrice
:
""
,
PeopleNum
:
0
,
CostPrice
:
""
,
EntryType
:
0
,
CommissionPrice
:
""
,
VisaManagementId
:
""
,
VisaB2CPrice
:
""
,
VisaProductInfo
:
{
DownloadMaterialsFileList
:[],
},
CoverImageList
:
[],
},
rules
:
{
Name
:
[{
required
:
true
,
message
:
"请输入产品名称"
,
trigger
:
"blur"
}],
// ManageDuration:[{ type: 'number', message: '必须为数字值'}],
customerName
:
[
{
required
:
true
,
message
:
"请输入客户名"
,
trigger
:
"blur"
}
],
VisaPrice
:
[
{
required
:
true
,
message
:
"请输入同业价"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_Isdecimal
,
message
:
"请输入同业价"
}
],
VisaB2CPrice
:
[
{
required
:
true
,
message
:
"请输入直客价"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_Isdecimal
,
message
:
"请输入数字"
}
],
CostPrice
:
[
{
required
:
true
,
message
:
"请输入成本价"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_Isdecimal
,
message
:
"请输入数字"
}
],
VisaType
:
[
{
required
:
true
,
message
:
"请选择类型"
,
trigger
:
"change"
}
],
PeopleNum
:
[{
required
:
true
,
message
:
"请输入人数"
,
trigger
:
"blur"
}],
CommissionPrice
:
[
{
required
:
true
,
message
:
"请输入提成金额"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_Isdecimal
,
message
:
"请输入提成金额"
}
],
SendVisaDate
:
[
{
required
:
true
,
message
:
"请输入价格有效期"
,
trigger
:
"blur"
}
]
},
inputVisible1
:
false
,
inputVisible2
:
false
,
inputVisible3
:
false
,
productlabel
:
{},
inputValue
:
""
,
CountryTagList
:
[],
Visacountry
:
[],
// 图片
updateChoseIndex
:
0
,
addimg
:
false
,
ChooseImgIndex
:
0
,
// 价格有效期
PriceDates
:[],
Pid
:
0
,
};
},
mounted
()
{
if
(
this
.
$route
.
query
.
Id
){
this
.
Pid
=
this
.
$route
.
query
.
Id
;
this
.
GetVisaProductDetails
(
this
.
Pid
);
}
// this.ScrollMethod();
this
.
Getvisacountry
();
this
.
getVisaManagementList
();
this
.
initFileList
();
},
created
()
{
},
methods
:
{
onEditorChange
({
editor
,
html
,
text
},
typeStr
)
{
//富文本编辑器 文本改变时 设置字段值
switch
(
typeStr
)
{
case
"FeeInclude"
:
this
.
addMsg
.
VisaProductInfo
.
FeeInclude
=
html
;
break
;
case
"FeeNonInclude"
:
this
.
addMsg
.
VisaProductInfo
.
FeeNonInclude
=
html
;
break
;
case
"VisaMaterials"
:
this
.
addMsg
.
VisaProductInfo
.
VisaMaterials
=
html
;
break
;
case
"WarmTip"
:
this
.
addMsg
.
VisaProductInfo
.
WarmTip
=
html
;
break
;
}
},
handleRemove
(
file
,
fileList
)
{
this
.
addMsg
.
VisaProductInfo
.
DownloadMaterialsFileList
=
fileList
;
},
uploadTest
(
file
)
{
let
newArr
=
[];
newArr
.
push
(
file
.
file
);
let
path
=
"/Upload/DMC/Icon/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
let
Name
=
x
.
data
.
SourceFileName
;
this
.
addMsg
.
VisaProductInfo
.
DownloadMaterialsFileList
.
push
({
Url
:
url
,
Name
:
Name
,
name
:
Name
})
});
},
// 请求签证产品详情
GetVisaProductDetails
(
Pid
){
this
.
PriceDates
=
[];
this
.
apipost
(
"dmc_get_visa_GetVisaProductInfo_V1"
,
{
Pid
:
Pid
},
res
=>
{
// console.log(res);
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
this
.
addMsg
=
res
.
data
.
data
;
this
.
PriceDates
.
push
(
data
.
EffectiveStartDate
)
this
.
PriceDates
.
push
(
data
.
SendVisaDate
)
let
val
=
data
.
VisaCountryId
;
if
(
val
){
this
.
GetProductLabel
(
val
);
}
this
.
initFileList
();
// 新增签证字段
let
Download
=
data
.
VisaProductInfo
.
DownloadMaterialsFileList
;
if
(
Download
.
length
>
0
){
Download
.
forEach
(
item
=>
{
item
.
name
=
item
.
Name
;
})
}
// 初始化产品标签被选中的
let
TagList
=
data
.
VisaProductTagList
;
if
(
TagList
.
length
>
0
){
TagList
.
forEach
(
tag
=>
{
this
.
checkList
.
push
(
tag
.
TagId
);
})
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
initAddMasg
(){
this
.
addMsg
=
{
Id
:
0
,
Name
:
""
,
VisaType
:
""
,
SendVisaDate
:
""
,
VisaPrice
:
""
,
PeopleNum
:
0
,
CostPrice
:
""
,
CommissionPrice
:
""
,
VisaManagementId
:
""
,
VisaB2CPrice
:
""
,
VisaProductInfo
:
{},
CoverImageList
:
[],
};
this
.
PriceDates
=
[]
},
SaveVisaProduct
(
formName
)
{
this
.
$refs
[
formName
].
validate
(
valid
=>
{
if
(
valid
)
{
let
that
=
this
;
this
.
addMsg
.
VisaProductTagList
=
[];
if
(
this
.
checkList
.
length
>
0
){
this
.
checkList
.
forEach
(
item
=>
{
let
obj_tag
=
{
TagId
:
0
};
obj_tag
.
TagId
=
item
;
this
.
addMsg
.
VisaProductTagList
.
push
(
obj_tag
);
})
}
if
(
!
this
.
PriceDates
||
this
.
PriceDates
==
""
||
this
.
PriceDates
.
length
==
0
)
{
this
.
Error
(
"请选择价格有效期!"
);
return
;
}
this
.
addMsg
.
EffectiveStartDate
=
moment
(
this
.
PriceDates
[
0
]).
format
(
"YYYY-MM-DD"
);
this
.
addMsg
.
SendVisaDate
=
moment
(
this
.
PriceDates
[
1
]).
format
(
"YYYY-MM-DD"
);
// console.log("this.addMsg", this.addMsg);
this
.
loading
=
true
;
this
.
apipost
(
"dmc_post_visa_SetVisaProduct_V1"
,
this
.
addMsg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
initAddMasg
();
this
.
$router
.
push
({
name
:
"VisaProduct"
,
query
:
{
blank
:
"y"
,
tab
:
"签证产品"
}});
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
else
{
return
false
;
}
});
},
initFileList
()
{
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
if
(
this
.
addMsg
.
CoverImageList
.
length
<=
5
)
{
this
.
addMsg
.
CoverImageList
.
push
(
fileObj
);
}
}
},
getVisaManagementList
()
{
// 获取签证管理
this
.
VisaManagementList
=
[];
this
.
addMsg
.
VisaManagementId
=
""
;
this
.
apipost
(
"dmc_get_visa_GetVisaManagementList"
,
{
Status
:
-
1
,
BranchId
:
-
1
,
SignStatus
:
this
.
addMsg
.
VisaType
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
VisaManagementList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//上传图片
reUpload
(
file
)
{
let
newArr
=
[];
newArr
.
push
(
file
.
file
);
let
fileName
=
file
.
file
.
name
;
let
that
=
this
;
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
str
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
that
.
addMsg
.
CoverImageList
[
this
.
updateChoseIndex
].
Url
=
this
.
$commonUtils
.
GetALiFileUrl
(
str
);
that
.
addMsg
.
CoverImageList
[
this
.
updateChoseIndex
].
Name
=
fileName
;
});
},
updateTFimg
(
index
)
{
this
.
updateChoseIndex
=
index
;
},
//图片左移右移
// ExchangeImg(index, IsMove) {
// var imgItem = this.addMsg.CoverImageList[index];
// //左移
// if (IsMove == 0) {
// var upItem = this.addMsg.CoverImageList[index - 1];
// this.$set(this.addMsg.CoverImageList, index - 1, imgItem);
// this.$set(this.addMsg.CoverImageList, index, upItem);
// } else {
// //右移动
// var downItem = this.addMsg.CoverImageList[index + 1];
// this.$set(this.addMsg.CoverImageList, index + 1, imgItem);
// this.$set(this.addMsg.CoverImageList, index, downItem);
// }
// },
// 签证国家Id改变
VisaCountry
(
val
)
{
this
.
GetProductLabel
(
val
);
},
// 双击编辑标签
EditTag
(
tag
,
num
)
{
this
.
showInput
(
num
);
this
.
inputValue
=
tag
.
TagTame
;
this
.
productlabel
.
Id
=
tag
.
Id
;
},
handleClose
(
tag
)
{
this
.
tagloading
=
true
;
this
.
apipost
(
"dmc_post_visa_DeleteVisaProductCountryTag"
,
{
Id
:
tag
.
Id
},
res
=>
{
this
.
tagloading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
GetProductLabel
(
tag
.
VisaCountryId
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
CloseTag
(){
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
},
showInput
(
num
)
{
if
(
!
this
.
addMsg
.
VisaCountryId
||
this
.
addMsg
.
VisaCountryId
==
""
)
{
this
.
Error
(
"请先选择签证国家!"
);
return
;
}
this
.
productlabel
.
Id
=
0
;
this
.
inputValue
=
""
;
this
.
productlabel
.
VisaCountryId
=
this
.
addMsg
.
VisaCountryId
;
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
if
(
num
==
1
)
{
this
.
inputVisible1
=
true
;
}
if
(
num
==
2
)
{
this
.
inputVisible2
=
true
;
}
if
(
num
==
3
)
{
this
.
inputVisible3
=
true
;
}
// `${this.inputVisible}num` = true;
this
.
$nextTick
(
_
=>
{
this
.
$refs
[
`saveTagInput
${
num
}
`
].
$refs
.
input
.
focus
();
// this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm
(
num
)
{
// 标签类型
this
.
productlabel
.
TagType
=
num
;
this
.
productlabel
.
TagTame
=
this
.
inputValue
;
this
.
apipost
(
"dmc_post_visa_SetVisaProductCountryTag"
,
this
.
productlabel
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
inputValue
=
""
;
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
this
.
GetProductLabel
(
this
.
productlabel
.
VisaCountryId
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
GetProductLabel
(
item
)
{
this
.
tagloading
=
true
;
this
.
apipost
(
"dmc_post_visa_GetVisaProductCountryTagList"
,
{
VisaCountryId
:
item
},
res
=>
{
this
.
tagloading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
CountryTagList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
// 获取签证国家
Getvisacountry
()
{
this
.
apipost
(
"dmc_post_visa_GetVisaProductCountrySelect"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Visacountry
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
custormAnchor
(
anchorName
,
index
)
{
// 找到锚点
let
anchorElement
=
document
.
getElementById
(
anchorName
);
// 如果对应id的锚点存在,就跳转到锚点
if
(
anchorElement
)
{
anchorElement
.
scrollIntoView
();
}
this
.
ckedNav
=
index
;
},
//滚动事件
// ScrollMethod() {
// var that = this;
// var s1, s2, s3, s4, s5;
// document
// .getElementsByClassName("frame-box")[0]
// .addEventListener("scroll", function() {
// if (document.getElementById("firstAnchor") != null) {
// s1 = document.getElementById("firstAnchor").offsetTop;
// }
// if (document.getElementById("secondAnchor") != null) {
// s2 = document.getElementById("secondAnchor").offsetTop;
// }
// if (document.getElementById("thirdAnchor") != null) {
// s3 = document.getElementById("thirdAnchor").offsetTop;
// }
// if (document.getElementById("fourAnchor") != null) {
// s4 = document.getElementById("fourAnchor").offsetTop;
// }
// if (document.getElementById("fiveAnchor") != null) {
// s5 = document.getElementById("fiveAnchor").offsetTop;
// }
// if (s1 >= this.scrollTop - 50 && s1
<=
this
.
scrollTop
+
50
)
{
// that.ckedNav = 1;
// } else if (s2 >= this.scrollTop - 50 && s2
<=
this
.
scrollTop
+
50
)
{
// that.ckedNav = 2;
// } else if (s3 >= this.scrollTop - 50 && s3
<=
this
.
scrollTop
+
50
)
{
// that.ckedNav = 3;
// } else if (s4 >= this.scrollTop - 50 && s4
<=
this
.
scrollTop
+
50
)
{
// that.ckedNav = 4;
// } else if (s5 >= this.scrollTop - 50 && s5
<=
this
.
scrollTop
+
50
)
{
// that.ckedNav = 5;
// }
// });
// },
//返回顶部
backTop
()
{
var
timer
=
setInterval
(
function
()
{
var
scrollTop
=
document
.
getElementsByClassName
(
"frame-box"
)[
0
]
.
scrollTop
;
var
ispeed
=
Math
.
floor
(
-
scrollTop
/
6
);
if
(
scrollTop
==
0
)
{
clearInterval
(
timer
);
}
document
.
getElementsByClassName
(
"frame-box"
)[
0
].
scrollTop
=
scrollTop
+
ispeed
;
},
30
);
}
},
watch
:
{
},
};
</
script
>
src/components/SalesVisa/VisaProduct.vue
View file @
30a7e1da
...
...
@@ -28,14 +28,14 @@
.page_MyCustomer
._mc_edit
{
overflow
:
auto
;
display
:
none
;
position
:
absolute
;
position
:
fixed
;
z-index
:
50
;
bottom
:
0
;
left
:
0
;
left
:
50px
;
border-top
:
3px
solid
#38425d
;
background-color
:
#f9f9f9
;
padding
:
10px
;
width
:
100%
;
width
:
calc
(
100%
-
50px
)
;
min-width
:
1146px
;
}
.page_MyCustomer
.edHeight
{
...
...
@@ -291,7 +291,8 @@
</li>
<li>
<button
class=
"hollowFixedBtn"
@
click=
"getList()"
>
查询
</button>
<button
class=
"normalBtn"
@
click=
"cancelEdit(),addShow=true"
v-if=
"msg.isFinacial==1"
>
添加
</button>
<!--
<button
class=
"normalBtn"
@
click=
"cancelEdit(),addShow=true"
v-if=
"msg.isFinacial==1"
>
添加
</button>
-->
<button
class=
"normalBtn"
@
click=
"AddVisaProduct"
v-if=
"msg.isFinacial==1"
>
添加
</button>
</li>
</ul>
</div>
...
...
@@ -370,7 +371,7 @@
</td>
<td
class=
"groupTourOrderIcon"
>
<el-button-group>
<el-tooltip
<
!--
<
el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
...
...
@@ -383,6 +384,20 @@
icon=
"iconfont icon-img_bianji_small"
@
click=
"getDetail(item)"
></el-button>
</el-tooltip>
-->
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
v-if=
"item.SendVisaStatus==1&&msg.isFinacial==1"
>
<el-button
type=
"primary"
style=
"background:#409EFF; border-color:#409EFF"
icon=
"iconfont icon-img_bianji_small"
@
click=
"EditVisaProduct(item)"
></el-button>
</el-tooltip>
<el-tooltip
effect=
"dark"
content=
"查看"
placement=
"top-start"
v-if=
"msg.isFinacial==1"
>
<el-button
...
...
@@ -629,6 +644,27 @@ export default {
};
},
methods
:
{
// 修改签证产品
EditVisaProduct
(
item
){
this
.
$router
.
push
({
name
:
"ModifyVisaProduct"
,
query
:
{
Id
:
item
.
Id
,
blank
:
"y"
,
tab
:
"配置签证产品"
}
});
},
// 添加签证产品
AddVisaProduct
(){
this
.
$router
.
push
({
name
:
"ModifyVisaProduct"
,
query
:
{
blank
:
"y"
,
tab
:
"配置签证产品"
}
});
},
saveitem
(
tcid
)
{
this
.
uploadTCID
=
tcid
;
},
...
...
@@ -736,7 +772,6 @@ export default {
err
=>
{}
);
},
goUrl
(
obj
)
{
this
.
$router
.
push
({
name
:
"VisaProductOrder"
,
...
...
src/components/SalesVisa/VisaProductCountryManager.vue
0 → 100644
View file @
30a7e1da
<
style
>
.page_visaMG
._vMG_edit
{
position
:
fixed
;
font-family
:
"PingFangSc-Fine"
;
bottom
:
0
;
left
:
50px
;
border-top
:
3px
solid
#38425d
;
background-color
:
#fff
;
padding
:
10px
;
width
:
calc
(
100%
-
50px
);
min-width
:
1146px
;
padding-right
:
10px
;
}
/* .page_visaMG .edHeight{display: block;height: 330px;} */
.page_visaMG
._vMG_conten
{
padding
:
30px
0
;
overflow-x
:
auto
;
}
.page_visaMG
._vMG_conten
.list
li
{
width
:
175px
;
height
:
auto
;
padding
:
20px
;
float
:
left
;
background-color
:
#ffffff
;
margin-right
:
26px
;
}
.page_visaMG
._vMG_conten
ul
li
._top
{
text-align
:
center
;
position
:
relative
;
}
.page_visaMG
._vMG_conten
ul
li
._top
p
{
font-size
:
14px
;
color
:
#333333
;
font-weight
:
bold
;
margin-top
:
8px
;
padding-bottom
:
10px
;
font-weight
:
bold
;
}
.page_visaMG
._vMG_conten
ul
li
._btm
{
border-top
:
1px
dashed
#b8b8b8
;
display
:
flex
;
text-align
:
center
;
padding-top
:
22px
;
}
.page_visaMG
._vMG_conten
ul
li
._btmt
{
border
:
none
;
}
.page_visaMG
._vMG_conten
ul
li
._btm
>
div
{
width
:
50%
;
}
.page_visaMG
._vMG_conten
ul
li
._btm
>
div
:nth-child
(
1
)
{
border-right
:
1px
solid
#b8b8b8
;
}
.page_visaMG
._vMG_conten
ul
li
._btm
>
div
._num
{
font-size
:
16px
;
color
:
#333333
;
font-weight
:
bold
;
}
.page_visaMG
._vMG_conten
ul
li
._btmt
>
div
._num
{
font-size
:
14px
;
}
.page_visaMG
._vMG_conten
ul
li
._btm
>
div
._text
{
font-size
:
12px
;
color
:
#666666
;
}
.page_visaMG
._vMG_conten
ul
li
.tcenter
{
margin-top
:
15px
;
}
.page_visaMG
._vMG_conten
li
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.page_visaMG
._black
{
filter
:
gray
;
-webkit-filter
:
grayscale
(
100%
);
}
.page_visaMG
._noOpen
{
line-height
:
34px
;
color
:
#666666
;
font-size
:
12px
;
text-align
:
center
;
padding-top
:
22px
;
border-top
:
1px
dashed
#b8b8b8
;
}
.page_visaMG
._vMG_edit
._tit
{
padding-left
:
10px
;
border-left
:
3px
solid
#e95252
;
font-size
:
16px
;
color
:
#000000
;
}
.page_visaMG
._vMG_edit
._tit
span
{
color
:
#666666
;
font-size
:
14px
;
}
.page_visaMG
._info_box
{
padding
:
30px
15px
;
font-size
:
12px
!important
;
margin-bottom
:
20px
;
}
.page_visaMG
._info_box
>
div
{
float
:
left
;
}
.page_visaMG
.w400
{
width
:
450px
;
margin-right
:
20px
;
height
:
100px
;
}
.page_visaMG
.w225
{
width
:
225px
;
margin-right
:
20px
;
}
.page_visaMG
.wauto
label
{
width
:
98px
;
}
.page_visaMG
._info_box
{
/* padding-bottom: 0; */
}
.page_visaMG
._info_box
ul
{
margin-top
:
10px
;
}
.page_visaMG
._info_box
ul
li
{
}
.page_visaMG
._info_box
ul
li
.el-form-item
{
display
:
flex
;
height
:
30px
;
line-height
:
30px
;
}
.page_visaMG
._info_box
ul
li
.el-form-item
.el-input
{
display
:
flex
;
height
:
30px
;
line-height
:
30px
;
}
.page_visaMG
._info_box
ul
li
:nth-child
(
odd
)
{
margin-right
:
15px
;
}
.page_visaMG
._info_box
ul
li
.el-form-item__label
{
font-size
:
12px
!important
;
line-height
:
30px
;
}
.page_visaMG
._info_box
ul
li
.el-form-item
input
{
height
:
30px
;
line-height
:
30px
;
}
.page_visaMG
._info_box
ul
li
.el-form-item
textarea
{
height
:
80px
;
resize
:
none
;
width
:
280px
;
}
.page_visaMG
._edHeight
{
height
:
400px
;
}
.page_visaMG
._scrollbar
::-webkit-scrollbar
{
width
:
4px
;
height
:
8px
;
}
.page_visaMG
._scrollbar
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
.page_visaMG
._scrollbar
::-webkit-scrollbar-track
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#ededed
;
}
.page_visaMG
._status
{
position
:
absolute
;
left
:
-20px
;
top
:
0px
;
}
.page_visaMG
._status
span
{
display
:
inline-block
;
padding
:
2px
5px
;
background-color
:
#4bca81
;
color
:
white
;
font-size
:
12px
;
border-top-right-radius
:
15px
;
border-bottom-right-radius
:
15px
;
}
.page_visaMG
._status
span
:nth-child
(
2
)
{
background-color
:
#e95252
;
}
.page_visaMG
._tips
{
display
:
inline-block
;
width
:
16px
;
height
:
16px
;
border-radius
:
50%
;
border
:
1px
solid
#e95252
;
color
:
#e95252
;
font-size
:
12px
;
line-height
:
15px
;
cursor
:
pointer
;
}
.page_visaMG_tips
{
text-align
:
center
;
}
.page_visaMG_tips
.hollowFixedBtn
{
margin-top
:
10px
;
}
.el-upload-list__item-status-label
{
}
._info_box
.el-form-item
{
display
:
inline-block
;
margin-left
:
10px
;
}
._top
img
{
width
:
71px
;
height
:
46px
;
}
.productlabel
.el-form-item__content
{
line-height
:
30px
;
}
.tag_ul
li
.input-new-tag
{
width
:
150px
;
}
.tag_ul
li
.el-tag
{
margin-right
:
15px
;
margin-bottom
:
15px
;
width
:
70px
;
padding
:
0
;
text-align
:
center
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
cursor
:
pointer
;
position
:
relative
;
}
.tag_ul
li
>
div
{
margin-top
:
15px
;
}
.page_visaMG
.country
.el-upload-list--text
{
max-width
:
200px
;
}
.visa_pro_country
.el-tag
.el-icon-close
{
position
:
absolute
;
top
:
2px
;
right
:
0px
;
}
</
style
>
<
template
>
<div
class=
"page_visaMG visa_pro_country"
>
<p
style=
"padding-top:10px"
>
<span>
国家:
<el-input
style=
"width:200px;display:inline-block"
v-model=
"countryList.countryName"
placeholder=
"请输入国家"
/>
<button
type=
"button"
class=
"normalBtn"
@
click=
"getVisaManagementList(),resetPageIndex()"
>
查询
</button>
</span>
<button
style=
"float:right"
type=
"button"
class=
"normalBtn"
@
click=
"AddForm"
>
新增
</button>
</p>
<div
class=
"_vMG_conten _scrollbar"
>
<ul
class=
"clearfix list"
>
<li
v-for=
"(item,index) in DataList"
:key=
"index"
>
<div
class=
"_top"
>
<img
:src=
"item.Icon"
alt=
""
>
<p
class=
"PingFangSC"
>
{{
item
.
CountryName
}}
</p>
<div
class=
"_status"
>
<span
v-if=
"item.HotCountry==1"
>
热门
</span>
</div>
</div>
<div
class=
"tcenter"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<el-button
@
click=
"EditCountry(item)"
style=
"padding:6px"
type=
"primary"
icon=
"el-icon-edit"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"产品标签"
placement=
"top-start"
>
<el-button
@
click=
"Product(item)"
style=
"padding:6px;background:#4bca81;color:#fff;border:none"
icon=
"el-icon-edit-outline"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-button
@
click=
"Delete(item)"
style=
"padding:6px;background:#E95252;color:#fff;border:none"
icon=
"el-icon-delete"
circle
></el-button>
</el-tooltip>
</div>
</li>
</ul>
<el-pagination
background
@
current-change=
"handleCurrentChange"
v-if=
"DataList.length>0"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"countryList.pageSize"
:total=
"total"
></el-pagination>
</div>
<div
class=
"_vMG_edit"
v-show=
"addShow"
>
<p
class=
"_tit"
>
签证国家
<span
style=
"float:right"
>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"cancelEdit()"
>
取消
</button>
<button
type=
"button"
class=
"normalBtn"
@
click=
"saveVisa"
>
保存
</button>
</span>
</p>
<el-form
class=
"country _info_box clearfix"
label-width=
"80px"
>
<el-form-item
label=
"国家"
>
<el-select
@
change=
"Selectchange"
filterable
v-model=
"country.CountryId"
placeholder=
"请选择"
>
<el-option
v-for=
"item in allcountry"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否热门"
>
<el-select
v-model=
"country.HotCountry"
placeholder=
"请选择"
>
<el-option
key=
"1"
label=
"是"
:value=
"1"
></el-option>
<el-option
key=
"0"
label=
"否"
:value=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"排序"
>
<el-input
v-model=
"country.Sort"
placeholder=
"排序"
/>
</el-form-item>
<el-form-item
label=
"国家图标"
>
<el-upload
:file-list=
"fileList"
:http-request=
"uploadTest"
:multiple=
"true"
:limit=
"2"
:on-change=
"handleChange1"
action=
""
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
<el-form-item
label=
"背景图片"
>
<el-upload
:file-list=
"fileList2"
:http-request=
"uploadTest2"
:multiple=
"true"
:limit=
"2"
:on-change=
"handleChange2"
action=
""
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
<!--
<el-form-item>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"cancelEdit()"
>
取消
</button>
<button
type=
"button"
class=
"normalBtn"
@
click=
"saveVisa"
>
保存
</button>
</el-form-item>
-->
</el-form>
</div>
<!-- 国家产品标签 -->
<el-dialog
@
close=
"dialogclose"
v-loading=
"tagloading"
title=
"提示"
:visible
.
sync=
"CPBQ"
width=
"550px"
>
<ul
class=
"tag_ul"
>
<li>
<span>
签证类型
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible1"
v-model=
"inputValue"
ref=
"saveTagInput1"
size=
"small"
@
keyup
.
enter
.
native=
"handleInputConfirm(1)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag"
size=
"mini"
@
click=
"showInput(1)"
>
新增
</el-button>
</span>
<div>
<el-tag
size=
"small"
v-for=
"tag in CountryTagList"
v-if=
"tag.TagType==1"
:key=
"tag.Id"
closable
:disable-transitions=
"false"
@
click
.
native=
"EditTag(tag,1)"
@
close=
"handleClose(tag)"
>
<!--
<el-input
v-model=
"tag.TagTame"
:disabled=
"tagstate==tag.Id"
></el-input>
-->
{{
tag
.
TagTame
}}
</el-tag>
</div>
</li>
<li>
<span>
产品标签
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible2"
v-model=
"inputValue"
ref=
"saveTagInput2"
size=
"small"
@
keyup
.
enter
.
native=
"handleInputConfirm(2)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag"
size=
"mini"
@
click=
"showInput(2)"
>
新增
</el-button>
</span>
<div>
<el-tag
v-if=
"tag.TagType==2"
size=
"small"
:key=
"tag.Id"
v-for=
"tag in CountryTagList"
closable
:disable-transitions=
"false"
@
click
.
native=
"EditTag(tag,2)"
@
close=
"handleClose(tag)"
>
{{
tag
.
TagTame
}}
</el-tag>
</div>
</li>
<li>
<span>
特色服务
</span>
<span
style=
"margin-left:10px"
>
<el-input
class=
"input-new-tag"
v-if=
"inputVisible3"
v-model=
"inputValue"
ref=
"saveTagInput3"
size=
"small"
@
keyup
.
enter
.
native=
"handleInputConfirm(3)"
>
</el-input>
<el-button
v-else
class=
"button-new-tag"
size=
"mini"
@
click=
"showInput(3)"
>
新增
</el-button>
</span>
<div>
<el-tag
v-if=
"tag.TagType==3"
size=
"small"
:key=
"tag.Id"
v-for=
"tag in CountryTagList"
closable
:disable-transitions=
"false"
@
click
.
native=
"EditTag(tag,3)"
@
close=
"handleClose(tag)"
>
{{
tag
.
TagTame
}}
</el-tag>
</div>
</li>
</ul>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
tagstate
:
13
,
tagloading
:
false
,
CPBQ
:
false
,
productlabel
:{},
country
:
{
CountryId
:
2
,
HotCountry
:
1
,
Icon
:
""
,
ImageFileList
:
[],
Sort
:
0
,
},
// fileList: [],
fileList
:
[],
fileList2
:
[],
DataList
:
[],
editData
:
[],
VisaSalesPlatformEnum
:
[],
CommuneInfoList
:
[],
addShow
:
false
,
countryList
:
{
pageIndex
:
1
,
pageSize
:
20
},
currentPage
:
1
,
total
:
0
,
allcountry
:
[],
CountryTagList
:[],
dynamicTags
:[],
inputVisible1
:
false
,
inputVisible2
:
false
,
inputVisible3
:
false
,
inputValue
:
""
,
};
},
methods
:
{
resetPageIndex
()
{
this
.
countryList
.
pageIndex
=
1
;
this
.
currentPage
=
1
},
handleCurrentChange
(
val
)
{
this
.
countryList
.
pageIndex
=
val
;
this
.
getVisaManagementList
();
},
dialogclose
(){
this
.
CountryTagList
=
[];
},
// 编辑标签
EditTag
(
tag
,
num
){
console
.
log
(
tag
);
this
.
showInput
(
num
);
this
.
inputValue
=
tag
.
TagTame
;
this
.
productlabel
.
Id
=
tag
.
Id
;
},
handleClose
(
tag
)
{
this
.
tagloading
=
true
;
this
.
apipost
(
"dmc_post_visa_DeleteVisaProductCountryTag"
,
{
Id
:
tag
.
Id
},
res
=>
{
this
.
tagloading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
GetProductLabel
(
tag
.
VisaCountryId
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
showInput
(
num
)
{
this
.
inputValue
=
""
;
this
.
productlabel
.
Id
=
0
;
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
if
(
num
==
1
){
this
.
inputVisible1
=
true
;
}
if
(
num
==
2
){
this
.
inputVisible2
=
true
;
}
if
(
num
==
3
){
this
.
inputVisible3
=
true
;
}
// `${this.inputVisible}num` = true;
this
.
$nextTick
(
_
=>
{
this
.
$refs
[
`saveTagInput
${
num
}
`
].
$refs
.
input
.
focus
();
// this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm
(
num
)
{
// 标签类型
this
.
productlabel
.
TagType
=
num
;
this
.
productlabel
.
TagTame
=
this
.
inputValue
;
this
.
apipost
(
"dmc_post_visa_SetVisaProductCountryTag"
,
this
.
productlabel
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
inputValue
=
''
;
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
this
.
GetProductLabel
(
this
.
productlabel
.
VisaCountryId
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
Product
(
item
){
this
.
inputVisible1
=
false
;
this
.
inputVisible2
=
false
;
this
.
inputVisible3
=
false
;
this
.
tagloading
=
true
;
this
.
productlabel
.
VisaCountryId
=
item
.
CountryId
;
this
.
GetProductLabel
(
item
.
CountryId
);
this
.
CPBQ
=
true
;
},
// 新增
AddForm
(){
this
.
addShow
=
true
;
this
.
country
=
{
CountryId
:
""
,
HotCountry
:
1
,
Icon
:
""
,
ImageFileList
:
[],
Sort
:
0
,
};
this
.
fileList2
=
[];
this
.
fileList
=
[];
},
// 获取签证国家产品标签列表
GetProductLabel
(
item
){
this
.
tagloading
=
true
;
this
.
apipost
(
"dmc_post_visa_GetVisaProductCountryTagList"
,
{
VisaCountryId
:
item
},
res
=>
{
this
.
tagloading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
CountryTagList
=
res
.
data
.
data
;
console
.
log
(
this
.
CountryTagList
,
'countrylist'
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
// 删除签证国家
Delete
(
item
)
{
this
.
$confirm
(
"是否删除?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
this
.
apipost
(
"dmc_post_visa_DeleteVisaProductCountry"
,
{
Id
:
item
.
Id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getVisaManagementList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
})
.
catch
(()
=>
{
this
.
$message
.
info
(
"已取消停用"
);
});
},
Selectchange
(
val
)
{
let
obj
=
{};
obj
=
this
.
allcountry
.
find
(
item
=>
{
//这里的userList就是上面遍历的数据源
return
item
.
ID
===
val
;
//筛选出匹配数据
});
this
.
country
.
CountryName
=
obj
.
Name
;
},
uploadTest2
(
file
)
{
let
newArr
=
[];
this
.
country
.
ImageFileList
=
[];
newArr
.
push
(
file
.
file
);
let
path
=
"/Upload/DMC/Icon/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
country
.
ImageFileList
[
0
]
=
url
;
// this.fileList.push({url:url})
});
},
handleChange2
(
file
,
fileList
)
{
this
.
fileList2
=
fileList
.
slice
(
-
1
);
},
handleChange1
(
file
,
fileList
)
{
this
.
fileList
=
fileList
.
slice
(
-
1
);
},
uploadTest
(
file
)
{
let
newArr
=
[];
newArr
.
push
(
file
.
file
);
let
path
=
"/Upload/DMC/Icon/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
country
.
Icon
=
url
;
// this.fileList.push({url:url})
});
},
EditCountry
(
item
)
{
this
.
fileList2
=
[];
this
.
fileList
=
[];
this
.
addShow
=
true
;
this
.
country
=
Object
.
assign
({},
item
);
let
obj1
=
{
name
:
""
,
url
:
''
};
obj1
.
name
=
item
.
Icon
;
obj1
.
url
=
item
.
Icon
;
this
.
fileList
.
push
(
obj1
);
let
obj2
=
{
name
:
""
,
url
:
''
};
obj2
.
name
=
item
.
ImageFileList
[
0
];
obj2
.
url
=
item
.
ImageFileList
[
0
];
this
.
fileList2
.
push
(
obj2
);
},
editVisa
(
item
)
{
let
data
=
item
;
data
.
Status
=
data
.
Status
.
toString
();
this
.
addShow
=
true
;
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
},
// 获取签证列表
getVisaManagementList
()
{
this
.
apipost
(
"dmc_get_visa_GetVisaProductCountryPageList"
,
this
.
countryList
,
res
=>
{
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
=>
{}
);
},
saveVisa
()
{
//修改保存
// console.log("this.country",this.country);
if
(
this
.
country
.
CountryId
==
""
)
{
this
.
$message
.
error
(
"请选择国家!"
);
return
;
}
if
(
this
.
country
.
Icon
==
""
)
{
this
.
$message
.
error
(
"请上传国家图片!"
);
return
;
}
if
(
this
.
country
.
ImageFileList
.
length
==
0
)
{
this
.
$message
.
error
(
"请上传背景图片!"
);
return
;
}
this
.
apipost
(
"dmc_post_visa_SetVisaProductCountry"
,
this
.
country
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
country
=
{
CountryId
:
""
,
HotCountry
:
1
,
Icon
:
""
,
ImageFileList
:
[],
Sort
:
0
,
};
this
.
fileList
=
[];
this
.
fileList2
=
[];
this
.
addShow
=
false
;
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getVisaManagementList
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
cancelEdit
()
{
this
.
addMsg
=
{
Id
:
0
,
Discription
:
""
,
Sort
:
1
,
Status
:
0
,
B2B_Price
:
""
,
B2C_Price
:
""
,
DaySet
:
""
,
Interior_Price
:
""
,
SalesPlatform
:
""
,
Unit_Price
:
""
};
this
.
addShow
=
false
;
},
// 获取国家列表
getcountryList
()
{
this
.
apipost
(
"dict_post_Destination_GetCountry"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
allcountry
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
},
mounted
()
{
this
.
getVisaManagementList
();
this
.
getcountryList
();
}
};
</
script
>
src/components/index.vue
View file @
30a7e1da
...
...
@@ -117,7 +117,7 @@
<i
class=
"iconfont icon-imessage_top"
:class=
"[hasNewMsg>0&&!IM_bodyIsShow?'animation red':'',IM_bodyIsShow?'red':'']"
@
click=
"IM_bodyIsShow=!IM_bodyIsShow"
></i>
<!--<i class="iconfont icon-imessage_top" @click="togglebox($event)"></i>-->
</li>
<li><i
class=
"iconfont icon-
banbengengxin"
@
click=
"goUrlLog()
"
></i></li>
<li><i
class=
"iconfont icon-
help_top
"
></i></li>
<li>
<el-dropdown
trigger=
"click"
>
<span
class=
"el-dropdown-link"
>
...
...
@@ -574,18 +574,6 @@
<div
style=
"width: 100%; height: 50px;"
></div>
</div>
</div>
<div
class=
"logsBack"
v-if=
"logsShow"
>
<div
class=
"updateLogs"
>
<img
src=
"../assets/img/logsImg.png"
alt=
""
class=
"logsImg"
/>
<div
class=
"logsTitle"
>
{{versionList[0].UpdateTitle}}版本更新
</div>
<div
class=
"inlogs_Content"
v-html=
"versionList[0].UpdateContent"
>
</div>
<input
type=
"button"
value=
"我知道了"
class=
"normalBtn"
style=
"margin:10px 0 0 155px;"
@
click=
"logsShow=false"
/>
</div>
</div>
<div
class=
"downmz"
v-show=
"downmz"
>
<div
class=
"top_1"
></div>
<div
style=
"text-align:center"
>
...
...
@@ -610,7 +598,7 @@
</div>
</div>
<div
style=
"text-align:center;margin-top:20px"
>
<span
class=
"khd"
><a
href=
"http
s://reborndev.oss-cn-hangzhou.aliyuncs.com/IM/%E9%BA%A6%E5%AD%90%E5%8A%A9%E6%89%8B
.exe"
>
IM客户端下载
</a></span>
<span
class=
"khd"
><a
href=
"http
://im.oytour.com/麦子助手
.exe"
>
IM客户端下载
</a></span>
</div>
<div
class=
"im_bottom"
></div>
</div>
...
...
@@ -620,7 +608,8 @@
</audio>
</div>
<div
class=
"temDivs"
>
<router-view></router-view>
<!-- :key="key" -->
<router-view
></router-view>
</div>
...
...
@@ -808,7 +797,7 @@
<div
v-show=
"mazip==0"
id=
"downzip"
>
<div>
<div>
<a
href=
"http
s://reborndev.oss-cn-hangzhou.aliyuncs.com/IM/%E9%BA%A6%E5%AD%90%E5%8A%A9%E6%89%8B
.exe"
>
<a
href=
"http
://im.oytour.com/麦子助手
.exe"
>
<img
@
click=
"CloseZip"
src=
"../assets/img/mzzip.png"
alt=
""
>
</a>
<img
@
click=
"CloseZip"
class=
"close"
src=
"../assets/img/close.png"
alt=
""
>
...
...
@@ -831,7 +820,6 @@ import emojiObj from "../configs/emoji";
import
loading
from
"./commonPage/loading"
;
import
VueDraggableResizable
from
"vue-draggable-resizable"
;
import
{
setInterval
,
clearInterval
}
from
'timers'
;
import
{
version
}
from
'punycode'
;
export
default
{
components
:
{
ChatList
,
...
...
@@ -936,9 +924,6 @@ export default {
displayNone
:
true
,
dialogTitle
:
""
,
outerVisible
:
false
,
logsShow
:
false
,
newVersion
:
''
,
versionList
:[],
msg
:
{
ParentId
:
0
,
MenuStatus
:
""
,
...
...
@@ -1077,6 +1062,9 @@ export default {
}
},
computed
:
{
key
(){
return
this
.
$route
.
path
+
Math
.
random
();
},
sysMsgUnread
()
{
let
temp
=
this
.
$store
.
state
.
sysMsgUnread
;
let
sysMsgUnread
=
temp
.
addFriend
||
0
;
...
...
@@ -1314,8 +1302,6 @@ export default {
this
.
allPartMsg
.
RB_Group_Id
=
this
.
deleteMsg
.
groupId
=
this
.
likeMsg
.
groupId
=
this
.
addDynamicMsg
.
rB_GroupId
=
this
.
dynamicMsg
.
groupId
=
UserInfo
.
RB_Group_id
;
this
.
addDynamicMsg
.
rB_BranchId
=
UserInfo
.
RB_Branch_id
;
//获取版本
this
.
getVersion
();
this
.
getMenu
();
this
.
setCheckMenu
();
...
...
@@ -1323,6 +1309,7 @@ export default {
this
.
getMyDynamic
();
this
.
getAboutMeDynamic
();
this
.
getWebAllPart
();
document
.
getElementById
(
"allDynamic"
)
.
addEventListener
(
"scroll"
,
function
()
{
...
...
@@ -3023,10 +3010,6 @@ export default {
// this.$router.push({ path: url });
// }
},
goUrlLog
(){
console
.
log
(
'AAAAAAAA'
);
this
.
$router
.
push
({
path
:
'systemLogs'
,
query
:{}
});
},
goUrlPayment
()
{
let
eid
=
this
.
getLocalStorage
().
EmployeeId
;
this
.
$router
.
push
({
path
:
'empBankAccount'
,
query
:
{
id
:
eid
,
type
:
10
,
blank
:
'y'
}
});
...
...
@@ -3257,34 +3240,6 @@ export default {
this
.
$message
.
error
(
r
.
data
.
message
);
}
},
null
)
},
//获取版本号
getVersion
(){
let
msg
=
{
pageIndex
:
1
,
pageSize
:
5
}
this
.
apipost
(
"sysrecord_get_GetPageList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
versionList
=
res
.
data
.
data
.
pageData
;
if
(
this
.
versionList
.
length
>
0
){
let
oldVersion
=
localStorage
.
version
;
this
.
newVersion
=
this
.
versionList
[
0
].
UpdateTitle
;
if
(
this
.
newVersion
!=
oldVersion
){
this
.
logsShow
=
true
;
localStorage
.
version
=
this
.
newVersion
;
}
else
{
this
.
logsShow
=
false
;
}
}
else
{
this
.
logsShow
=
false
;
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
}
...
...
@@ -3477,50 +3432,6 @@ export default {
box-shadow: 1px 1px 50px rgba(0, 0, 0, 0.3);
background-clip: content-box;
}
.logsBack{
position: fixed;
z-index: 999;
background: rgba(0, 0, 0, 0.2);
width: 100%;
height: 100%;
left: 0;
top: 0;
}
.updateLogs{
position: absolute;
width:400px;
height:400px;
left:50%;
top:50%;
margin-left:-200px;
margin-top:-200px;
border-radius: 4px;
border:1px solid #DCDCDC;
z-index: 9999;
background-color: #fff;
}
.logsTitle{
width:100%;
padding:0 10px;
text-align: center;
color:#333333;
font-size:12px;
margin-top:10px;
font-weight: bold;
}
.inlogs_Content{
width:100%;
padding:0 15px;
height:260px;
overflow: auto;
margin-top:20px;
color:#666666;
font-size:12px;
}
.logsImg{
margin-top:-30px;
margin-left:155px;
}
.myDocumentsLink {
margin: 25px 0;
}
...
...
src/components/systemLogs.vue
View file @
30a7e1da
<
style
>
.sysLog_Content
{
border-left
:
2px
solid
#D2D2D2
;
margin
:
40px
0
0
40px
;
}
.sysLog_List
{
position
:
relative
;
margin
:
0
0
20px
16px
;
}
.sysCircle
{
display
:
inline-block
;
width
:
13px
;
height
:
13px
;
background-color
:
#36AF84
;
border
:
2px
solid
#58D2A7
;
border-radius
:
50%
;
margin-right
:
10px
;
position
:
relative
;
top
:
-4px
;
}
.sysFirDate
{
color
:
#38425D
;
font-weight
:
bold
;
font-size
:
12px
;
position
:
relative
;
top
:
-4px
;
}
.sysContent_main
{
width
:
894px
;
min-height
:
101px
;
background-color
:
#fff
;
border
:
1px
solid
#E5E5E5
;
border-radius
:
8px
;
margin-top
:
10px
;
color
:
#333333
;
font-size
:
14px
;
padding
:
20px
;
}
.sysPosi_div
{
margin
:
-4px
0
0
-24px
;
}
.sysCircle_other
{
width
:
13px
;
height
:
13px
;
display
:
inline-block
;
border-radius
:
50%
;
background-color
:
#B1B1B1
;
border
:
2px
solid
#EFEFEF
;
margin-right
:
10px
;
position
:
relative
;
top
:
-3px
;
}
.sysFirDate_other
{
color
:
#38425D
;
font-size
:
12px
;
position
:
relative
;
top
:
-4px
;
}
.sysLog_Content
{
border-left
:
2px
solid
#D2D2D2
;
margin
:
40px
0
0
40px
;
}
.sysLog_List
{
position
:
relative
;
margin
:
0
0
20px
16px
;
}
.sysCircle
{
display
:
inline-block
;
width
:
13px
;
height
:
13px
;
background-color
:
#36AF84
;
border
:
2px
solid
#58D2A7
;
border-radius
:
50%
;
margin-right
:
10px
;
position
:
relative
;
top
:
-4px
;
}
.sysFirDate
{
color
:
#38425D
;
font-weight
:
bold
;
font-size
:
12px
;
position
:
relative
;
top
:
-4px
;
}
.sysContent_main
{
width
:
894px
;
min-height
:
101px
;
background-color
:
#fff
;
border
:
1px
solid
#E5E5E5
;
border-radius
:
8px
;
margin-top
:
10px
;
color
:
#333333
;
font-size
:
14px
;
padding
:
20px
;
}
.sysPosi_div
{
margin
:
-4px
0
0
-24px
;
}
.sysCircle_other
{
width
:
13px
;
height
:
13px
;
display
:
inline-block
;
border-radius
:
50%
;
background-color
:
#B1B1B1
;
border
:
2px
solid
#EFEFEF
;
margin-right
:
10px
;
position
:
relative
;
top
:
-3px
;
}
.sysFirDate_other
{
color
:
#38425D
;
font-size
:
12px
;
position
:
relative
;
top
:
-4px
;
}
</
style
>
<
template
>
<div
class=
"sysLog_Content"
>
<div
class=
"sysLog_List"
v-for=
"(item,index) in dataList"
>
<div
class=
"sysPosi_div"
>
<span
class=
"sysCircle"
v-if=
"index==0"
></span>
<span
class=
"sysCircle_other"
v-else
></span>
<span
style=
"font-size:14px;margin-right:20px;position:relative;top:-4px;"
>
{{
item
.
UpdateTitle
}}
</span>
<span
class=
"sysFirDate"
v-if=
"index==0"
>
{{
item
.
UpdateTimeStr
}}
</span>
<span
class=
"sysFirDate_other"
v-else
>
{{
item
.
UpdateTimeStr
}}
</span>
</div>
<div
class=
"sysContent_main"
v-html=
"item.UpdateContent"
>
</div>
</div>
<div
class=
"sysLog_Content"
>
<div
class=
"sysLog_List"
v-for=
"(item,index) in dataList"
>
<div
class=
"sysPosi_div"
>
<span
class=
"sysCircle"
v-if=
"index==0"
></span>
<span
class=
"sysCircle_other"
v-else
></span>
<span
style=
"font-size:14px;margin-right:20px;position:relative;top:-4px;"
>
{{
item
.
UpdateTitle
}}
</span>
<span
class=
"sysFirDate"
v-if=
"index==0"
>
{{
item
.
UpdateTimeStr
}}
</span>
<span
class=
"sysFirDate_other"
v-else
>
{{
item
.
UpdateTimeStr
}}
</span>
</div>
<div
class=
"sysContent_main"
v-html=
"item.UpdateContent"
>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
msg
:
{
pageIndex
:
1
,
pageSize
:
15
},
dataList
:
[],
msg
:
{
pageIndex
:
1
,
pageSize
:
15
},
dataList
:
[],
};
},
methods
:
{
getList
()
{
this
.
apipost
(
"sysrecord_get_GetPageList"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
getList
()
{
this
.
apipost
(
"sysrecord_get_GetPageList"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
}
},
err
=>
{}
);
},
},
mounted
()
{
this
.
getList
();
}
};
</
script
>
</
script
>
\ 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