Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
f65503ff
Commit
f65503ff
authored
Nov 18, 2020
by
Mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
单据详情
parent
6bd1734b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
5922 additions
and
24 deletions
+5922
-24
axios.js
src/boot/axios.js
+2
-0
ChongDiPage.vue
src/pages/financial/components/ChongDiPage.vue
+95
-0
DjieMergeBillModule.vue
src/pages/financial/components/DjieMergeBillModule.vue
+393
-0
GuanBillModule.vue
src/pages/financial/components/GuanBillModule.vue
+150
-0
JiPiaoBillModule.vue
src/pages/financial/components/JiPiaoBillModule.vue
+150
-0
SaleOrderModule.vue
src/pages/financial/components/SaleOrderModule.vue
+69
-0
TicketFinace.vue
src/pages/financial/components/TicketFinace.vue
+104
-0
carouselT.vue
src/pages/financial/components/carouselT.vue
+54
-0
commonTeamInfo.vue
src/pages/financial/components/commonTeamInfo.vue
+1149
-0
czBillModule.vue
src/pages/financial/components/czBillModule.vue
+318
-0
huijiBill.vue
src/pages/financial/components/huijiBill.vue
+463
-0
teamProductModule.vue
src/pages/financial/components/teamProductModule.vue
+1149
-0
TicketingModule.css
src/pages/financial/css/TicketingModule.css
+40
-0
FinancialDocuments.vue
src/pages/financial/financalDocument/FinancialDocuments.vue
+8
-8
FinancialDocumentsDetail.vue
...s/financial/financalDocument/FinancialDocumentsDetail.vue
+1623
-0
addFinancialDocuments.vue
...ages/financial/financalDocument/addFinancialDocuments.vue
+32
-16
addReceivablesDocuments.vue
...es/financial/financalDocument/addReceivablesDocuments.vue
+2
-0
bg_z1@2x.png
src/pages/financial/image/bg_z1@2x.png
+0
-0
AuthCode.js
src/pages/financial/utils/AuthCode.js
+32
-0
routes.js
src/router/routes.js
+5
-0
erpindex.js
src/utils/erpindex.js
+84
-0
No files found.
src/boot/axios.js
View file @
f65503ff
...
...
@@ -8,9 +8,11 @@ import {VTable,VPagination} from 'vue-easytable'
import
commonUtils
from
'../pages/financial/utils/commonUtils'
import
'viewerjs/dist/viewer.css'
import
Viewer
from
'v-viewer'
import
AuthCode
from
'../pages/financial/utils/AuthCode'
//权限编码JS
Vue
.
http
=
Vue
.
prototype
.
$http
=
axios
Vue
.
commonUtils
=
Vue
.
prototype
.
$commonUtils
=
commonUtils
Vue
.
AuthCode
=
Vue
.
prototype
.
$AuthCode
=
AuthCode
// 时间扩展格式化
Date
.
prototype
.
Format
=
function
(
fmt
)
{
...
...
src/pages/financial/components/ChongDiPage.vue
0 → 100644
View file @
f65503ff
<
style
>
@import
url('../css/TicketingModule.css')
;
</
style
>
<
template
>
<div
v-if=
"dataList.length
<
1
"
>
</div>
<div
v-else
>
<div
class=
"m_TicketingModule"
v-if=
"type !== 7"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
挂账冲抵列表
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i>
</span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i>
</span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"_padding_20_15"
>
<table
class=
"singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
费用类型
</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>
{{
item
.
CostTypeName
}}
</td>
<td>
{{
item
.
TCNUM
}}
</td>
<td>
{{
item
.
FrID
}}
</td>
<td>
{{
item
.
HangingAccountsTypeStr
}}
</td>
<td>
{{
item
.
fmrMoney
}}
</td>
<td>
{{
item
.
RemitterName
}}
</td>
<td>
{{
item
.
Remark
}}
</td>
<td>
{{
item
.
CreateDateStr
}}
</td>
<td>
{{
item
.
createByStr
}}
</td>
</tr>
</table>
</div>
</div>
<div
v-else
class=
"m_TicketingModule"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
挂账冲抵列表
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i>
</span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i>
</span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"_padding_20_15"
>
<table
class=
"singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<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>
{{
item
.
FrID
}}
</td>
<td>
<span
v-for=
"(t, index) in item.DetailList"
>
{{
t
.
CostTypeName
}}
<span
v-if=
"index!==item.DetailList.length-1"
>
,
</span>
</span>
</td>
<td>
{{
item
.
Type
===
1
?
'收'
:
'支'
}}
</td>
<td>
{{
item
.
Money
}}
</td>
<td>
{{
item
.
Remark
}}
</td>
<td>
{{
item
.
CreateDateStr
}}
</td>
<td>
{{
item
.
createByStr
}}
</td>
</tr>
</table>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:[
"dataList"
,
'type'
],
data
(){
return
{
tableShow
:
false
,
}
},
watch
:{
},
created
(){
},
mounted
(){
},
methods
:{
}
}
</
script
>
src/pages/financial/components/DjieMergeBillModule.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/components/GuanBillModule.vue
0 → 100644
View file @
f65503ff
<
style
>
@import
url('../css/TicketingModule.css')
;
.sanjiao-box
{
position
:
relative
;
}
._sanjiao_
{
position
:
absolute
;
top
:
0px
;
left
:
0px
;
width
:
0px
;
height
:
0px
;
border-top
:
20px
solid
#e73828
;
border-bottom
:
20px
solid
transparent
;
border-left
:
20px
solid
#e73828
;
border-right
:
20px
solid
transparent
;
}
.sanjiao-box
._sanjiao_
:after
{
content
:
'关'
;
position
:
absolute
;
top
:
-15px
;
left
:
-14px
;
white-space
:
nowrap
;
color
:
#FFFFFF
;
font-size
:
12px
;
}
.sanjiao-box
.Receipt_table
td
{
padding
:
0
10px
;
}
.hover_text
span
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
</
style
>
<
template
>
<div
class=
"m_TicketingModule"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
{{
tit
}}
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i>
</span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i>
</span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"sanjiao-box _padding_20_15"
>
<div
class=
"_sanjiao_"
></div>
<table
border=
"1"
class=
"_border_color_b Receipt_table"
bordercolor=
"#c94052"
style=
"border-collapse:collapse;width: 100%;"
v-loading=
'loading'
>
<tr>
<th
rowspan=
"2"
width=
"100"
>
{{
$t
(
'system.query_company'
)
}}
</th>
<th
rowspan=
"2"
width=
"70"
>
{{
$t
(
'fnc.danhao'
)
}}
</th>
<th
rowspan=
"2"
width=
"120"
>
{{
$t
(
'fnc.fyshuoming'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'hotel.hotel_Currency'
)
}}
</th>
<th
colspan=
"3"
>
{{
$t
(
'fnc.jine'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'hotel.hotel_remark'
)
}}
</th>
<th
rowspan=
"2"
width=
"70"
>
{{
$t
(
'fnc.zhidanren'
)
}}
</th>
</tr>
<tr>
<th
width=
"88"
>
{{
$t
(
'fnc.yuanbi'
)
}}
</th>
<th
width=
"90"
>
{{
$t
(
'hotel.hotel_CurrentRate'
)
}}
</th>
<th
width=
"75"
>
{{
$t
(
'fnc.bweibi'
)
}}
</th>
</tr>
<template
v-if=
"details&&details.length"
>
<tr
v-for=
"(item) in details"
class=
"_color_b"
>
<td
height=
"34px"
>
{{
item
.
BName
}}
</td>
<td
height=
"34px"
@
click=
"goDetail(item.FinanceId)"
class=
"hover_text"
><span>
{{
item
.
FinanceId
}}
</span></td>
<td
height=
"34px"
>
{{
item
.
CostTypeName
}}
</td>
<td
height=
"34px"
>
{{
item
.
CurrencyName
}}
</td>
<td
height=
"34px"
>
{{
item
.
OriginalMoney
}}
</td>
<td
height=
"34px"
>
{{
item
.
Rate
}}
</td>
<td
height=
"34px"
>
{{
item
.
Money
}}
</td>
<td
height=
"34px"
style=
"max-width: 120px;"
>
{{
item
.
Remark
}}
</td>
<td
height=
"34px"
>
{{
item
.
EmName
}}
</td>
</tr>
</
template
>
<tr
v-if=
"details&&details.length<2"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
<tr
v-if=
"details&&details.length<3"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
<tr
v-if=
"details&&details.length<4"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
props
:[
"FrID"
,
"TemplateId"
],
data
(){
return
{
tableShow
:
true
,
tit
:
''
,
details
:
[],
loading
:
true
,
}
},
watch
:{
},
created
(){
if
(
this
.
TemplateId
==
59
||
this
.
TemplateId
==
63
)
{
this
.
tit
=
'相关地接报账单据'
}
if
(
this
.
TemplateId
==
43
||
this
.
TemplateId
==
48
||
this
.
TemplateId
==
53
||
this
.
TemplateId
==
56
)
{
this
.
tit
=
'相关领队用款单据'
}
this
.
getDetails
()
},
mounted
(){
},
methods
:{
goDetail
(
id
){
this
.
$router
.
push
({
name
:
'FinancialDocumentsDetail'
,
query
:{
"id"
:
id
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
getDetails
(){
this
.
loading
=
true
this
.
apipost
(
'Financial_post_GetLeaderFinaceRelevance'
,
{
FrId
:
this
.
FrID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
loading
=
false
let
data
=
res
.
data
.
data
;
this
.
details
=
data
;
}
},
null
)
}
}
}
</
script
>
src/pages/financial/components/JiPiaoBillModule.vue
0 → 100644
View file @
f65503ff
<
style
>
@import
url('../css/TicketingModule.css')
;
.sanjiao-box
{
position
:
relative
;
}
._sanjiao_
{
position
:
absolute
;
top
:
0px
;
left
:
0px
;
width
:
0px
;
height
:
0px
;
border-top
:
20px
solid
#e73828
;
border-bottom
:
20px
solid
transparent
;
border-left
:
20px
solid
#e73828
;
border-right
:
20px
solid
transparent
;
}
.sanjiao-box
._sanjiao_
:after
{
content
:
'关'
;
position
:
absolute
;
top
:
-15px
;
left
:
-14px
;
white-space
:
nowrap
;
color
:
#FFFFFF
;
font-size
:
12px
;
}
.sanjiao-box
.Receipt_table
td
{
padding
:
0
10px
;
}
.hover_text
span
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
</
style
>
<
template
>
<div
class=
"m_TicketingModule"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
{{
tit
}}
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i>
</span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i>
</span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"sanjiao-box _padding_20_15"
>
<div
class=
"_sanjiao_"
></div>
<table
border=
"1"
class=
"_border_color_b Receipt_table"
bordercolor=
"#c94052"
style=
"border-collapse:collapse;width: 100%;"
v-loading=
'loading'
>
<tr>
<th
rowspan=
"2"
>
{{
$t
(
'system.query_company'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'fnc.danhao'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'fnc.fyshuoming'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'hotel.hotel_Currency'
)
}}
</th>
<th
colspan=
"3"
>
{{
$t
(
'fnc.jine'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'hotel.hotel_remark'
)
}}
</th>
<th
rowspan=
"2"
>
{{
$t
(
'fnc.zhidanren'
)
}}
</th>
</tr>
<tr>
<th
width=
"88"
>
{{
$t
(
'fnc.yuanbi'
)
}}
</th>
<th
width=
"50"
>
{{
$t
(
'hotel.hotel_CurrentRate'
)
}}
</th>
<th
width=
"68"
>
{{
$t
(
'fnc.bweibi'
)
}}
</th>
</tr>
<template
v-if=
"details&&details.length"
>
<tr
v-for=
"(item) in details"
class=
"_color_b"
>
<td
height=
"34px"
>
{{
item
.
BName
}}
</td>
<td
height=
"34px"
@
click=
"goDetail(item.FinanceId)"
class=
"hover_text"
><span>
{{
item
.
FinanceId
}}
</span></td>
<td
height=
"34px"
>
{{
item
.
CostTypeName
}}
</td>
<td
height=
"34px"
>
{{
item
.
CurrencyName
}}
</td>
<td
height=
"34px"
>
{{
item
.
OriginalMoney
}}
</td>
<td
height=
"34px"
>
{{
item
.
Rate
}}
</td>
<td
height=
"34px"
>
{{
item
.
Money
}}
</td>
<td
height=
"34px"
style=
"max-width: 120px;"
>
{{
item
.
Remark
}}
</td>
<td
height=
"34px"
>
{{
item
.
EmName
}}
</td>
</tr>
</
template
>
<tr
v-else-if=
"details&&details.length<1"
>
<td
colspan=
"9"
height=
"34px"
style=
"text-align: center"
>
暂无数据
</td>
</tr>
<
template
v-else
>
<tr
v-if=
"details&&details.length
<2
"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
<tr
v-if=
"details&&details.length
<3
"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
<tr
v-if=
"details&&details.length
<4
"
>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
<td
height=
"34px"
></td>
</tr>
</
template
>
</table>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
props
:[
"FrID"
,
"TemplateId"
],
data
(){
return
{
tableShow
:
true
,
tit
:
''
,
details
:
[],
loading
:
true
,
}
},
watch
:{
},
created
(){
this
.
tit
=
'团相关机票单据'
this
.
getDetails
()
},
mounted
(){
},
methods
:{
goDetail
(
id
){
this
.
$router
.
push
({
name
:
'FinancialDocumentsDetail'
,
query
:{
"id"
:
id
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
getDetails
(){
this
.
loading
=
true
this
.
apipost
(
'Financial_post_GetTicketFinanceRelevance'
,
{
FrId
:
this
.
FrID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
this
.
details
=
data
;
}
this
.
loading
=
false
},
null
)
}
}
}
</
script
>
src/pages/financial/components/SaleOrderModule.vue
0 → 100644
View file @
f65503ff
<
style
>
@import
url('../css/TicketingModule.css')
;
</
style
>
<
template
>
<div
class=
"m_TicketingModule"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
签证信息
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i></span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i></span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"_padding_20_15"
>
<table
class=
"singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th
width=
'80'
>
订单编号
</th>
<th>
订单人数
</th>
<th>
实收价格
</th>
<th>
应收价格
</th>
<th>
创建人
</th>
<th>
产品名称
</th>
<th
width=
'150'
>
送签时间
</th>
</tr>
<tr
v-for=
"(item,index) in dataList"
:key=
"index"
>
<td>
{{
item
.
Id
}}
</td>
<td>
{{
item
.
PeopleNum
}}
人
</td>
<td>
¥
{{
moneyFormat
(
item
.
Income
)
}}
</td>
<td>
¥
{{
moneyFormat
(
item
.
TotalPrice
)
}}
</td>
<td>
{{
item
.
CreateBy
}}
</td>
<td>
{{
item
.
Name
}}
</td>
<td>
{{
item
.
SendStartDate
}}
</td>
</tr>
</table>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:[
"SourceID"
,
"OrderID"
],
data
(){
return
{
tableShow
:
true
,
dataList
:[],
}
},
watch
:{
},
created
(){
},
mounted
(){
let
id
=
this
.
OrderID
;
let
SourceID
=
this
.
SourceID
;
this
.
getDate
(
id
,
SourceID
);
},
methods
:{
getDate
(
id
,
SourceID
){
let
msg
=
{
visaOrderId
:
id
,
visaId
:
SourceID
,
}
this
.
apipost
(
'dmc_get_visa_GetOrderByVisaId'
,
msg
,
r
=>
{
if
(
r
.
data
.
resultCode
==
1
){
let
data
=
r
.
data
.
data
;
this
.
dataList
=
data
;
}
},
null
)
}
}
}
</
script
>
src/pages/financial/components/TicketFinace.vue
0 → 100644
View file @
f65503ff
<
style
>
@import
url("../css/TicketingModule.css")
;
</
style
>
<
template
>
<div
class=
"m_TicketingModule"
>
<div
class=
"_tit"
>
<span
class=
"_text"
>
机票信息
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i></span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i></span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"_padding_20_15"
>
<table
class=
"singeRowTable"
border=
"0"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
航空公司
</th>
<th>
航班号
</th>
<th>
时间
</th>
<th>
出发城市
</th>
<th>
到达城市
</th>
<th>
使用数量
</th>
<th>
状态
</th>
</tr>
<tr
v-for=
"item in DataList.FlightList"
>
<td>
{{
item
.
AlName
}}
</td>
<td>
{{
item
.
Flight_number
}}
</td>
<td>
{{
item
.
FlightDateStr
}}
{{
item
.
Departure_time
}}
</td>
<td>
{{
item
.
DepartureName
}}
</td>
<td>
{{
item
.
ArrivalCityName
}}
</td>
<td>
{{
DataList
.
UseAccount
}}
</td>
<td
v-if=
"Type"
>
{{
getTypeStr
()
}}
</td>
</tr>
</table>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:[
"SourceID"
,
"id"
,
"Callback"
],
data
()
{
return
{
tableShow
:
false
,
//机票编号
// SourceID: 0,
//数据列表
DataList
:
{},
//数据对象
// Callback: {},
//定金类型
Type
:
null
};
},
methods
:
{
getTypeStr
()
{
var
str
=
""
;
switch
(
this
.
Type
)
{
case
1
:
str
=
"一定"
;
break
;
case
2
:
str
=
"二定"
;
break
;
case
3
:
str
=
"三定"
;
break
;
case
4
:
str
=
"四定"
;
break
;
case
5
:
str
=
"尾款"
;
break
;
}
return
str
;
},
getList
()
{
this
.
apipost
(
"AirTicket_Get_GetAirticketById"
,
{
ID
:
this
.
SourceID
},
r
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
this
.
DataList
=
r
.
data
.
data
;
}
},
null
);
}
},
mounted
()
{
let
obj
=
JSON
.
parse
(
this
.
Callback
);
this
.
Type
=
obj
.
Type
;
this
.
getList
();
}
};
</
script
>
src/pages/financial/components/carouselT.vue
0 → 100644
View file @
f65503ff
<
template
>
<div
class=
"zj_carouselCont"
>
<ul
ref=
'ul'
@
mouseenter=
"play"
@
mouseleave=
"pause"
>
<li
v-for=
"(item,index) in imgArr"
>
<img
:src=
"item.Url"
/>
</li>
</ul>
<!--'+?x-oss-process=image/resize,m_lfit,h_120,w_160'-->
</div>
</
template
>
<
script
>
export
default
{
props
:
[
"imgArr"
],
data
()
{
return
{
i
:
0
,
isPlay
:
false
,
timer
:
null
};
},
mounted
()
{
this
.
$refs
.
ul
.
style
.
width
=
this
.
imgArr
.
length
*
120
+
'px'
;
},
computed
:
{},
methods
:
{
play
(){
this
.
isPlay
=
true
,
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
isPlay
==
true
){
if
(
this
.
i
<
this
.
imgArr
.
length
-
1
){
this
.
i
++
}
else
{
this
.
i
=
0
}
this
.
$refs
.
ul
.
style
.
left
=-
120
*
this
.
i
+
'px'
}
},
3000
)
},
pause
(){
this
.
isPlay
=
false
clearInterval
(
this
.
timer
)
}
},
created
()
{}
};
</
script
>
<
style
>
.zj_carouselCont
{
width
:
120px
;
height
:
80px
;
overflow
:
hidden
;
position
:
relative
;}
.zj_carouselCont
ul
{
width
:
auto
;
height
:
80px
;
position
:
absolute
;
left
:
0
;
transition
:
left
.2s
;}
.zj_carouselCont
ul
li
{
float
:
left
;
width
:
120px
;
height
:
80px
;
border
:
none
;
overflow
:
hidden
;}
.zj_carouselCont
ul
li
>
img
{
width
:
120px
;
height
:
80px
;}
</
style
>
src/pages/financial/components/commonTeamInfo.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/components/czBillModule.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/components/huijiBill.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/components/teamProductModule.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/css/TicketingModule.css
0 → 100644
View file @
f65503ff
.m_TicketingModule
{
border
:
1px
solid
#DDDDDD
;
border-bottom
:
none
;
}
.m_TicketingModule
._tit
{
padding-left
:
10px
;
font-size
:
14px
;
color
:
#000
;
padding
:
8px
15px
;
background-color
:
white
;
display
:
flex
;
justify-content
:
space-between
;
}
.m_TicketingModule
._text
{
border-left
:
3px
solid
#e95252
;
padding-left
:
10px
;
}
.m_TicketingModule
._tit
._btn
{
font-size
:
12px
;
color
:
#333333
;
cursor
:
pointer
;
}
.m_TicketingModule
._tit
._btn
:hover
{
color
:
#E95252
;
}
.m_TicketingModule
._tit
._btn
.iconfont
{
font-size
:
12px
;
display
:
inline-block
;
margin-left
:
10px
;
}
.m_TicketingModule
._rotate
{
transform
:
rotate
(
180deg
);
}
.m_TicketingModule
.singeRowTable
{
color
:
#333333
}
.m_TicketingModule
._padding_20_15
{
padding
:
20px
15px
;
background-color
:
white
;
}
src/pages/financial/financalDocument/FinancialDocuments.vue
View file @
f65503ff
...
...
@@ -1789,9 +1789,9 @@
},
err
=>
{});
}
},
goUrl
()
{
this
.
dialogFormVisible
=
true
;
},
//
goUrl() {
//
this.dialogFormVisible = true;
//
},
UpdateTradeDate
()
{
if
(
!
this
.
updateMsg
.
TradeDate
)
return
this
.
$message
.
error
(
this
.
$t
(
'rule.qxztzhdjyriqi'
));
if
(
!
this
.
updateMsg
.
Description
)
return
this
.
$message
.
error
(
this
.
$t
(
'rule.qtxshuoming'
));
...
...
@@ -2285,10 +2285,10 @@
this
.
currentPage
=
1
;
},
goUrl
(
path
,
id
,
Conditon
,
pageIndex
)
{
console
.
log
(
path
,
'path'
);
return
;
console
.
log
(
path
,
'path'
);
//
return;
this
.
$router
.
push
({
name
:
path
,
path
:
'/financial/financalDocument/'
+
path
,
query
:
{
"id"
:
id
,
"Conditon"
:
Conditon
,
...
...
@@ -2309,7 +2309,7 @@
if
(
type
===
1
)
{
path
=
'addReceivablesDocuments'
this
.
$router
.
push
({
name
:
path
,
path
:
'/financial/financalDocument/'
+
path
,
query
:
{
"type"
:
type
,
"FrID"
:
id
,
...
...
@@ -2326,7 +2326,7 @@
}
else
{
path
=
'addFinancialDocuments'
this
.
$router
.
push
({
name
:
path
,
path
:
'/financial/financalDocument/'
+
path
,
query
:
{
"type"
:
type
,
"FrID"
:
id
,
...
...
src/pages/financial/financalDocument/FinancialDocumentsDetail.vue
0 → 100644
View file @
f65503ff
This diff is collapsed.
Click to expand it.
src/pages/financial/financalDocument/addFinancialDocuments.vue
View file @
f65503ff
...
...
@@ -678,8 +678,8 @@
<div>
<p>
{{$t('fnc.fygsbumen')}}:
<span>
<el-select
filterable
v-model=
'msg.RB_Depart_Id'
class=
"w135 _border_b_1"
>
<el-option
v-for=
'item in departmentList'
:label=
'item.Dep
artmentName'
:value=
'item.DepartmentID
'
:key=
'item.Dep
artmentID
'
>
<el-option
v-for=
'item in departmentList'
:label=
'item.Dep
tName'
:value=
'item.DeptId
'
:key=
'item.Dep
tId
'
>
</el-option>
</el-select>
</span></p>
...
...
@@ -790,6 +790,8 @@
</template>
<
script
>
import
myFlowChartModule
from
"../components/FlowChartModule.vue"
;
import
{
getDeptList
}
from
'../../../api/system/dept'
import
{
UploadSelfFile
}
from
'../../../api/common/common'
import
{
getSchoolPage
}
from
'../../../api/school/index'
...
...
@@ -1082,18 +1084,20 @@
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
UploadSelfFile
(
'Temporary'
,
file
.
file
,
x
=>
{
let
fileSize
=
file
.
file
.
size
<
1024
?
file
.
file
.
size
:
(
file
.
file
.
size
/
1024
).
toFixed
(
0
);
this
.
saveMsg
.
push
({
Content
:
x
.
data
.
FilePath
,
Content
:
x
.
FileUrl
,
ID
:
0
,
Type
:
fileTypeNumber
,
Url
:
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
Url
:
x
.
FileUrl
,
})
this
.
$message
.
success
(
this
.
$t
(
'tips.scchenggong'
))
},
1
);
},
AuditOrRefund
()
{
this
.
$router
.
go
(
-
1
)
this
.
MsgBus
.
$emit
(
'msg'
);
// this.$router.push({
// name:'FinancialDocuments',
...
...
@@ -1228,7 +1232,7 @@
type
:
'warning'
}).
then
(()
=>
{
this
.
$router
.
push
({
name
:
'
addFinancialDocuments'
,
path
:
'/financial/financalDocument/
addFinancialDocuments'
,
query
:
{
"id"
:
this
.
$route
.
query
.
id
,
"Name"
:
this
.
$route
.
query
.
Name
,
...
...
@@ -1241,7 +1245,7 @@
})
}).
catch
(()
=>
{
this
.
$router
.
push
({
name
:
'
FinancialDocuments'
,
path
:
'/financial/financalDocument/
FinancialDocuments'
,
query
:
{
'Type'
:
this
.
$route
.
query
.
Type
,
'InPay'
:
this
.
$route
.
query
.
InPay
...
...
@@ -1564,10 +1568,10 @@
if
(
!
this
.
orderObj
&&
id
>
0
)
{
this
.
msg
.
RB_Branch_Id
=
this
.
msg
.
RB_Branch_Id
}
else
{
this
.
msg
.
RB_Branch_Id
=
this
.
getLocalStorage
().
RB_Branch_i
d
this
.
msg
.
RB_Branch_Id
=
this
.
getLocalStorage
().
School_I
d
}
}
else
{
this
.
msg
.
RB_Branch_Id
=
this
.
msg
.
RB_Branch_Id
==
0
?
this
.
getLocalStorage
().
RB_Branch_i
d
:
this
.
msg
this
.
msg
.
RB_Branch_Id
=
this
.
msg
.
RB_Branch_Id
==
0
?
this
.
getLocalStorage
().
School_I
d
:
this
.
msg
.
RB_Branch_Id
;
}
if
(
this
.
orderObj
&&
this
.
orderObj
.
companyIDList
&&
this
.
orderObj
.
companyIDList
.
length
>
0
)
{
...
...
@@ -1697,17 +1701,29 @@
// this.departmentMsg.RB_Branch_Id = Bid ? Bid : -1;
this
.
departmentMsg
.
RB_Branch_Id
=
-
1
;
this
.
msg
.
RB_Depart_Id
=
''
;
this
.
apipost
(
'admin_get_DepartmentGetList'
,
this
.
departmentMsg
,
res
=>
{
if
(
res
.
data
.
result
Code
==
1
)
{
this
.
departmentList
=
res
.
data
.
d
ata
;
getDeptList
(
this
.
departmentMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
departmentList
=
res
.
D
ata
;
if
(
this
.
orderObj
&&
this
.
orderObj
.
companyIDList
&&
this
.
orderObj
.
companyIDList
.
length
>
0
)
{
}
else
{
this
.
msg
.
RB_Depart_Id
=
this
.
msg
.
RB_Depart_Id
?
this
.
msg
.
RB_Depart_Id
:
this
.
getLocalStorage
()
.
RB_Department_Id
;
this
.
msg
.
RB_Depart_Id
=
this
.
msg
.
RB_Depart_Id
?
this
.
msg
.
RB_Depart_Id
:
this
.
getLocalStorage
().
DeptId
;
}
}
},
err
=>
{})
}).
catch
(()
=>
{
})
// this.apipost('admin_get_DepartmentGetList', this.departmentMsg, res => {
// if (res.data.resultCode == 1) {
// this.departmentList = res.data.data;
// if (this.orderObj && this.orderObj.companyIDList && this.orderObj.companyIDList.length > 0) {
//
// } else {
// this.msg.RB_Depart_Id = this.msg.RB_Depart_Id ? this.msg.RB_Depart_Id : this.getLocalStorage()
// .DeptId;
// }
// }
// }, err => {})
},
getCompany
()
{
//公司
getSchoolPage
(
this
.
schoolMsg
).
then
(
res
=>
{
...
...
@@ -1861,7 +1877,7 @@
let
userInfo
=
this
.
getLocalStorage
();
this
.
department
=
userInfo
.
DeptName
;
this
.
EmployeeId
=
userInfo
.
Id
;
this
.
emplyeeName
=
userInfo
.
em
Name
;
this
.
emplyeeName
=
userInfo
.
Group
Name
;
this
.
DepartIDs
=
this
.
msg
.
RB_Depart_Id
=
userInfo
.
DeptId
;
this
.
RB_Branch_id
=
this
.
departmentMsg
.
RB_Branch_Id
=
this
.
msg
.
RB_Branch_Id
=
userInfo
.
School_Id
;
this
.
companyMsg
.
RB_Group_Id
=
this
.
departmentMsg
.
RB_Group_Id
=
userInfo
.
Group_Id
;
...
...
src/pages/financial/financalDocument/addReceivablesDocuments.vue
View file @
f65503ff
...
...
@@ -1246,6 +1246,8 @@
},
err
=>
{})
},
AuditOrRefund
()
{
this
.
$router
.
go
(
-
1
)
this
.
MsgBus
.
$emit
(
'msg'
);
},
handleInput2
(
e
)
{
...
...
src/pages/financial/image/bg_z1@2x.png
0 → 100644
View file @
f65503ff
1.02 KB
src/pages/financial/utils/AuthCode.js
0 → 100644
View file @
f65503ff
/**
* Created by Administrator on 2018/7/17.
*/
var
AuthCode
=
{
EidtCoupon
:
"IsEidtCoupon"
,
//优惠券修改权限
LeaderAudit
:
'IsLeaderAudit'
,
//领队报账审核权限
EditOrderCreateBy
:
"EditOrderCreateBy"
,
//修改业务员
EditRoomDinnerTIcket
:
"EditRoomDinnerTIcket"
,
//房餐景点修改权限
EditQuotation
:
"EditQuotation"
,
//报价单修改权限
SupperOrderEdit
:
"SupperOrderEdit"
,
//获取总经理副总经理超级修改权限
LookOrder
:
"LookOrder"
,
//出纳查看订单权限
LookAllTeam
:
"LookAllTeam"
,
//查看所有团控
V_PersonalCenter
:
"V_PersonalCenter"
,
//个人中心导航查看权限,
F_InvoiceManagement
:
'F_InvoiceManagement'
,
//发票
F_Finance_Create
:
'F_Finance_Create'
,
//制单权限
F_ContractManagement
:
'F_ContractManagement'
,
//合同
F_PayMoney_CapitalPool
:
'F_PayMoney_CapitalPool'
,
//账户类型
S_Travel_Share
:
'S_Travel_Share'
,
//广告分享
A_AppMenu_Allot
:
'A_AppMenu_Allot'
,
//APP菜单分配
TeamShouZhi
:
"TeamShouZhi"
,
//团队收支明细权限
OutHotel
:
"OutHotel"
,
//酒店下架权限
FenXiaoLianYun
:
"FenXiaoLianYun"
,
//分销联运
ShangChuanFenFangbiao
:
"ShangChuanFenFangbiao"
,
//上传分房表
ChaKanGuest
:
"ChaKanGuest"
,
//查看旅客调查
FenFangBiaoXiaZai
:
"FenFangBiaoXiaZai"
,
//分房表下载
LookOPCommission
:
"LookOPCommission"
,
//查看OP提成
IsSanKeTicket
:
"IsSanKeTicket"
,
//是否有散客票权限
F_Disbursement_Schedule
:
'F_Disbursement_Schedule'
,
//财务团队用款计划权限
F_Advance_Match
:
'F_Advance_Match'
,
//预付款冲抵
};
export
default
AuthCode
;
src/router/routes.js
View file @
f65503ff
...
...
@@ -276,6 +276,11 @@ const routes = [{
component
:
()
=>
import
(
"pages/financial/financalDocument/addFinancialDocuments.vue"
)
},
{
path
:
"/financial/financalDocument/FinancialDocumentsDetail"
,
//我的财务单据详情
component
:
()
=>
import
(
"pages/financial/financalDocument/FinancialDocumentsDetail.vue"
)
},
{
path
:
"/test"
,
//API测试
component
:
()
=>
...
...
src/utils/erpindex.js
View file @
f65503ff
...
...
@@ -302,6 +302,90 @@ export default{
value
=
'-'
+
value
;
}
item
[
filed
]
=
value
;
},
//用户权限验证
Vue
.
prototype
.
CheckUserAuth
=
function
(
authCode
,
successCall
,
faildCall
)
{
let
localStorageJson
=
this
.
getLocalStorage
();
var
newCode
=
','
+
authCode
+
','
;
if
((
","
+
localStorageJson
.
ActionMenuCode
+
","
).
indexOf
(
newCode
)
>
-
1
)
{
var
data
=
{
resultCode
:
1
,
data
:
1
,
};
var
res
=
{
data
:
data
}
successCall
(
res
);
}
else
{
this
.
apipost
(
"userauth_get_GetCheckUserAuthService"
,
{
actionMenuCode
:
authCode
},
successCall
,
faildCall
);
}
},
Vue
.
prototype
.
QjGroupId
=
function
(
msg
)
{
let
GroupId
=
2
;
return
GroupId
;
},
Vue
.
prototype
.
orderBy
=
function
(
source
,
orders
,
type
)
{
if
(
source
instanceof
Array
&&
orders
instanceof
Array
&&
orders
.
length
>
0
)
{
var
ordersc
=
orders
.
concat
([]);
var
sorttype
=
type
||
"asc"
;
var
results
=
[];
var
totalSum
=
{};
function
grouporder
(
source
,
orders
,
totalSum
)
{
source
.
sort
(
function
(
a
,
b
)
{
var
convertA
=
a
[
orders
[
0
]];
var
convertB
=
b
[
orders
[
0
]];
if
(
typeof
convertA
==
"string"
&&
typeof
convertB
==
"string"
)
{
if
(
sorttype
.
toUpperCase
()
==
"ASC"
)
{
return
convertA
.
localeCompare
(
convertB
);
}
else
{
return
convertB
.
localeCompare
(
convertA
);
}
}
else
{
if
(
sorttype
.
toUpperCase
()
==
"ASC"
)
{
return
convertA
-
convertB
;
}
else
{
return
convertB
-
convertA
;
}
}
});
var
groupmap
=
new
Map
();
source
.
forEach
(
item
=>
{
if
(
groupmap
.
has
(
item
[
orders
[
0
]]))
{
groupmap
.
get
(
item
[
orders
[
0
]]).
push
(
item
);
}
else
{
groupmap
.
set
(
item
[
orders
[
0
]],
[]);
groupmap
.
get
(
item
[
orders
[
0
]]).
push
(
item
);
}
});
orders
.
shift
();
for
(
let
[
key
,
val
]
of
groupmap
)
{
totalSum
[
key
]
=
{};
totalSum
[
key
].
name
=
key
;
totalSum
[
key
].
value
=
val
.
length
;
if
(
orders
.
length
==
0
)
{
results
=
results
.
concat
(
val
);
}
else
{
totalSum
[
key
].
children
=
{};
var
orderscopy
=
orders
.
concat
([]);
grouporder
(
val
,
orderscopy
,
totalSum
[
key
].
children
);
}
}
}
grouporder
(
source
,
ordersc
,
totalSum
);
return
{
results
:
results
,
totalSum
:
totalSum
};
}
else
{
return
source
;
}
}
}
...
...
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