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
938ba950
Commit
938ba950
authored
Oct 09, 2021
by
Mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
财务的收据功能
parent
f0551b0b
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
899 additions
and
4 deletions
+899
-4
index.js
src/api/finance/index.js
+43
-0
SJBillModule.vue
src/pages/financial/components/SJBillModule.vue
+358
-0
mySJModule.vue
src/pages/financial/components/mySJModule.vue
+318
-0
FinancialDocumentsDetail.vue
...s/financial/financalDocument/FinancialDocumentsDetail.vue
+38
-3
PrintPage.vue
src/pages/financial/financalDocument/PrintPage.vue
+10
-1
receiptManager.vue
src/pages/financial/financalDocument/receiptManager.vue
+126
-0
routes.js
src/router/routes.js
+6
-0
No files found.
src/api/finance/index.js
View file @
938ba950
...
@@ -438,6 +438,49 @@ export function setSellStudyAbroadSendEmployee(data) {
...
@@ -438,6 +438,49 @@ export function setSellStudyAbroadSendEmployee(data) {
})
})
}
}
/**
* 获取收据详情
*/
export
function
getReceiptInfoForFinanceId
(
data
)
{
return
request
({
url
:
'/Finance/GetReceiptInfoForFinanceId'
,
method
:
'post'
,
data
})
}
/**
* 新增修改收据信息
*/
export
function
setReceiptInfo
(
data
)
{
return
request
({
url
:
'/Finance/SetReceiptInfo'
,
method
:
'post'
,
data
})
}
/**
* 新增修改收据信息
*/
export
function
delReceiptInfo
(
data
)
{
return
request
({
url
:
'/Finance/DelReceiptInfo'
,
method
:
'post'
,
data
})
}
/**
* 获取收据分页列表
*/
export
function
getReceiptInfoPageList
(
data
)
{
return
request
({
url
:
'/Finance/GetReceiptInfoPageList'
,
method
:
'post'
,
data
})
}
src/pages/financial/components/SJBillModule.vue
0 → 100644
View file @
938ba950
<
style
scoped
>
p
{
margin
:
0
!important
;
}
.Receipt_box
{
padding
:
15px
;
color
:
#c94052
;
width
:
100%
;
background-color
:
rgba
(
245
,
245
,
245
,
1
);
position
:
relative
;
}
.Receipt_box
tr
th
{
color
:
#c94052
}
.Receipt_box.color_blur
tr
th
{
color
:
#106BAF
}
.Receipt_box.color_blur
{
color
:
#106BAF
;
}
.Receipt_box.color_blur
.rb_stit
span
{
display
:
inline-block
;
border-bottom
:
2px
solid
#106BAF
;
padding
:
0
20px
}
.rb_tit
{
font-size
:
16px
;
text-align
:
center
}
.rb_stit
{
font-size
:
14px
;
text-align
:
center
}
.rb_stit
span
{
display
:
inline-block
;
border-bottom
:
2px
solid
#C94052
;
padding
:
0
20px
}
.rb_top_row
{
display
:
flex
;
justify-content
:
space-between
;
font-size
:
12px
;
}
.rb_top_row
span
._r_name
{
color
:
#333333
;
border-bottom
:
1px
solid
#000000
}
.rb_top_row
span
._r_bold
{
font-weight
:
bold
}
.rb_top_row
._r_time
span
{
color
:
#333333
}
._r_mb5
{
margin-bottom
:
5px
;
}
.Receipt_table
{
width
:
100%
;
font-size
:
14px
;
text-align
:
center
}
.Receipt_table
th
{
font-weight
:
200
!important
}
.Receipt_table
tr
th
,
.Receipt_table
tr
td
{
background-color
:
white
}
._huik_info
td
{
padding
:
10px
0
;
}
._r_mt10
{
margin-top
:
10px
;
}
.Receipt_box.color_blur
{
color
:
#106BAF
;
}
.Receipt_box.color_blur
.rb_stit
span
{
display
:
inline-block
;
border-bottom
:
2px
solid
#106BAF
;
padding
:
0
20px
}
._color_b
{
color
:
#333333
!important
;
font-size
:
12px
}
.rb_top_row
span
._r_name._no_border
{
border
:
none
}
._font_size12
{
font-size
:
12px
}
._yewudanju
{
position
:
absolute
;
text-align
:
right
;
font-size
:
12px
;
right
:
15px
;
top
:
15px
;
}
._jump_page
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
i
{
font-style
:
initial
;
}
.Receipt_box
tr
th
,
.Receipt_box
*
{
color
:
#333333
;
font-size
:
14px
!important
;
}
.Receipt_box._PrintPageStyle
{
color
:
#333333
;
}
.Receipt_box._PrintPageStyle
.rb_stit
span
{
border-bottom
:
2px
solid
#333333
;
}
.Receipt_box._PrintPageStyle
td
{
height
:
40px
}
._border_color_r
{
border-color
:
#c94052
;
}
._border_color_b
{
border-color
:
#106BAF
;
}
._border_color_p
{
border-color
:
#333333
;
}
.Receipt_box
.rb_stit
span
._rb_stit_print
{
padding
:
0
;
padding-top
:
10px
;
border
:
none
;
}
.font_color_r
{
color
:
#c94052
!important
;
}
.sjbox
{
display
:
flex
;
align-items
:
center
;
margin
:
10px
0
;
}
.sjbox
.sjbox_l
{
border
:
1px
solid
#111
;
flex
:
1
;
padding
:
30px
;
}
.sjbox
.sjbox_l
.sjbox_l_t
{
font-size
:
16px
;
display
:
flex
;
align-items
:
center
;
}
.sjbox
.sjbox_l_t_x
{
border-bottom
:
1px
solid
#111
;
flex
:
1
;
margin-left
:
10px
;
}
.sjbianhao
{
font-size
:
20px
!important
;
color
:
red
;
}
.Receipt_box.background_red
{
background
:
#ecdaea
;
}
.color_bt
{
color
:
#323278
;
}
</
style
>
<
template
v-if=
"GetDetail.DetailList.length>0"
>
<div
class=
"Receipt_box"
:class=
"[name==1?'':'background_red']"
:style=
"
{width:width,}" @click.stop
v-loading='loading'>
<div
style=
"text-align:center;margin: 10px 0;font-weight: bold;"
>
<span
style=
"border-bottom:3px double black;cursor:pointer;letter-spacing:10px;font-size: 30px !important"
>
收款收据
</span>
</div>
<div
style=
"display: flex;align-items: center; justify-content: space-between;"
>
<div>
开票日期:
<span
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
CreateTime
}}
</span>
</div>
<div>
编号:
<span
class=
"sjbianhao"
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
ReceiptNo
}}
</span>
</div>
</div>
<!--
<p
class=
"_yewudanju"
v-if=
"isPrintPage"
>
打印时间:
<span
>
{{
printTime
}}
</span></p>
-->
<div
class=
"sjbox"
>
<div
class=
"sjbox_l"
>
<div
class=
"sjbox_l_t"
>
<span>
交款人
</span>
<span
class=
"sjbox_l_t_x"
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
Remitter
}}
</span>
</div>
<div
class=
"sjbox_l_t"
style=
"margin-top: 30px;"
>
<div
style=
"display: flex;align-items: center;flex:1"
>
<span>
人民币(大写)
</span>
<span
class=
"sjbox_l_t_x"
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
ChinesePayMoney
}}
</span>
</div>
<div
style=
"display: flex;align-items: center;margin-left: 10px;"
>
<span>
¥:
</span>
<span
class=
"sjbox_l_t_x"
style=
"width: 200px"
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
Money
}}
</span>
</div>
</div>
<div
class=
"sjbox_l_t"
style=
"margin-top: 30px;"
>
<span>
收款事由
</span>
<span
class=
"sjbox_l_t_x"
:class=
"[name==1?'':'color_bt']"
>
{{
GetDetail
.
Remark
}}
</span>
</div>
</div>
<div
style=
"writing-mode: tb-rl"
v-if=
"name==1"
>
第一版(白) 存根联
</div>
<div
style=
"writing-mode: tb-rl"
v-if=
"name==2"
>
第一版(红) 客户联
</div>
</div>
<div
class=
"rb_top_row _r_mt10"
v-if=
"AuditSteps&&AuditSteps.length"
>
<template
v-for=
"(item,index) in AuditSteps"
>
<p>
<span
class=
"_border_color_p"
>
{{
item
.
Name
}}
:
</span>
<template
v-if=
"item.Id==4"
>
<span
class=
"_r_name _no_border"
:style=
"
{color:name==1?'':'#323278'}"
:class="[item.Sort==0
&&
!isPrintPage?'_jump_page':'']">
{{
GetDetail
.
CreateByName
}}
</span>
</
template
>
<
template
v-if=
"item.Id==1"
>
<div
style=
"position: relative;"
>
<el-image
style=
"width: 100px; height: 100px;position: absolute;bottom: -5px;left: 75px;"
:src=
"GetDetail.SealImages"
></el-image>
</div>
</
template
>
</p>
</template>
</div>
</div>
</template>
<
script
>
import
{
getReceiptInfoForFinanceId
,
}
from
'../../../api/finance/index'
export
default
{
props
:
[
"ID"
,
"width"
,
"color"
,
"isPrintPage"
,
"name"
,
"Num"
,
"OrderSource"
],
//接收参数 ID width color isPrintPage
data
()
{
return
{
loading
:
false
,
EmployeeId
:
''
,
EndDate
:
''
,
StartDate
:
''
,
printTime
:
''
,
currentMoney
:
0
,
benMoney
:
0
,
GetDetail
:
{},
AuditSteps
:
[{
Id
:
1
,
Name
:
'单位盖章'
},
{
Id
:
2
,
Name
:
'出纳'
},
{
Id
:
3
,
Name
:
'交款方式'
},
{
Id
:
4
,
Name
:
'开票人'
},],
}
},
created
()
{
let
date
=
new
Date
(),
y
=
date
.
getFullYear
(),
m
=
date
.
getMonth
()
<
10
?
"0"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
,
d
=
date
.
getDate
()
<
10
?
"0"
+
date
.
getDate
()
:
date
.
getDate
(),
h
=
date
.
getHours
()
<
10
?
"0"
+
date
.
getHours
()
:
date
.
getHours
(),
min
=
date
.
getMinutes
()
<
10
?
"0"
+
date
.
getMinutes
()
:
date
.
getMinutes
(),
s
=
date
.
getSeconds
()
<
10
?
"0"
+
date
.
getSeconds
()
:
date
.
getSeconds
();
this
.
printTime
=
y
+
''
+
m
+
''
+
d
+
' '
+
h
+
':'
+
min
+
':'
+
s
;
},
methods
:
{
sendMsg
()
{
this
.
$emit
(
'helloPP'
,
'1'
)
},
jumpPageNew
()
{
this
.
$router
.
push
({
name
:
'platOrderquery'
,
query
:
{
platName
:
this
.
GetDetail
.
PlatFormName
,
TradeWay
:
this
.
GetDetail
.
OrderTradeWay
,
PlatformAccount
:
this
.
GetDetail
.
PlatformAccountId
,
blank
:
'y'
,
tab
:
'平台订单查询'
}
})
},
Financial_post_GetDetail
(
id
)
{
//获取单据详情
if
(
!
id
)
return
;
this
.
loading
=
true
;
getReceiptInfoForFinanceId
({
FinanceId
:
id
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
let
data
=
res
.
Data
;
data
.
ChinesePayMoney
=
this
.
$commonUtils
.
changeMoneyToChinese
(
data
.
Money
)
data
.
Money
=
this
.
$commonUtils
.
addCommas
(
Math
.
round
(
data
.
Money
*
100
)
/
100
)
this
.
GetDetail
=
data
;
console
.
log
(
this
.
GetDetail
)
this
.
$set
(
this
.
$data
,
"GetDetail"
,
data
);
}
})
},
},
mounted
()
{
const
myDate
=
new
Date
();
let
yaer
=
myDate
.
getFullYear
();
//获取完整的年份(4位,1970-????)
let
month
=
myDate
.
getMonth
()
+
1
;
//获取当前月份(0-11,0代表1月)
let
dateS
=
myDate
.
getDate
();
//获取当前日(1-31)
this
.
StartDate
=
yaer
+
'-'
+
month
+
'-'
+
'01'
;
this
.
EndDate
=
yaer
+
'-'
+
month
+
'-'
+
dateS
;
let
userInfo
=
this
.
getLocalStorage
();
this
.
EmployeeId
=
userInfo
.
EmployeeId
;
this
.
Financial_post_GetDetail
(
this
.
ID
);
},
watch
:
{
// 监听参数变化
ID
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
ID
=
val
this
.
Financial_post_GetDetail
(
this
.
ID
)
},
deep
:
true
},
}
}
</
script
>
\ No newline at end of file
src/pages/financial/components/mySJModule.vue
0 → 100644
View file @
938ba950
<
style
>
@import
url('../css/TicketingModule.css')
;
.sanjiao-box
{
position
:
relative
;
}
.sanjiao-box
.Receipt_table
td
{
padding
:
0
10px
;
}
.hover_text
span
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
.mySJbox
{
width
:
100%
;
}
.mySJbox
._btn
{
font-size
:
12px
;
color
:
#333333
;
cursor
:
pointer
;
margin-left
:
10px
;
}
.mySJbox
.sjbox_l_t
{
font-size
:
13px
;
display
:
flex
;
align-items
:
center
;
}
.mySJbox
.sjbox_l_t_x
{
border-bottom
:
1px
solid
#666
;
flex
:
1
;
margin-left
:
10px
;
}
</
style
>
<
template
>
<div
class=
"mySJbox"
v-if=
"!loading"
>
<div>
<div
style=
"font-size: 14px; color: #000;padding: 8px 15px;display: flex; justify-content: space-between;"
>
<span
style=
"border-left: 3px solid #e95252;padding-left: 10px;"
>
财务收据
</span>
<div
style=
"display: flex;align-items: center;"
v-if=
"data && data.State "
>
<span
class=
"_btn"
@
click=
"Printreceipt"
v-if=
"data.State==2"
>
打印
</span>
<span
class=
"_btn"
@
click=
'addreceipt'
v-if=
"data.State==2&& isoneself"
>
修改
</span>
<span
class=
"_btn"
@
click=
'setdelete'
v-if=
"data.State==2 && isoneself"
>
删除
</span>
<span
class=
"_btn"
@
click=
'getshare'
>
分享
</span>
</div>
</div>
<div
v-if=
"data && data.Id>0"
style=
"padding: 10px;"
>
<div
style=
"display: flex;align-items: center; justify-content: space-between;"
>
<div>
开票日期:
<span>
{{
data
.
CreateTime
}}
</span>
</div>
<div>
编号:
<span
class=
"sjbianhao"
>
{{
data
.
ReceiptNo
}}
</span>
</div>
</div>
<div
style=
"border: 1px solid #ddd;padding: 20px;margin-top: 10px;"
>
<div
class=
"sjbox_l_t"
>
<span>
交款人
</span>
<span
class=
"sjbox_l_t_x"
>
{{
data
.
Remitter
}}
</span>
</div>
<div
class=
"sjbox_l_t"
style=
"margin-top: 20px;"
>
<div
style=
"display: flex;align-items: center;flex:1"
>
<span>
人民币(大写)
</span>
<span
class=
"sjbox_l_t_x"
v-if=
"data.Money"
>
{{
$commonUtils
.
changeMoneyToChinese
(
data
.
Money
)
}}
</span>
</div>
<div
style=
"display: flex;align-items: center;margin-left: 10px;"
>
<span>
¥:
</span>
<span
class=
"sjbox_l_t_x"
style=
"width: 200px"
v-if=
"data.Money"
>
{{
$commonUtils
.
addCommas
(
Math
.
round
(
data
.
Money
*
100
)
/
100
)
}}
</span>
</div>
</div>
<div
class=
"sjbox_l_t"
style=
"margin-top: 20px;"
>
<span>
收款事由
</span>
<span
class=
"sjbox_l_t_x"
>
{{
data
.
Remark
}}
</span>
</div>
</div>
</div>
<div
v-else
>
<div
style=
"width: 100%;text-align: center;line-height: 35px;"
>
暂无收据
</div>
<div
style=
"width: 100%;display: flex;align-items: center;justify-content: center;height: 40px;"
v-if=
"isoneself"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增"
@
click=
"addreceipt()"
></q-btn>
</div>
</div>
</div>
<!-- 收据的新增和修改 -->
<el-dialog
custom-class=
'w600'
title=
"收据的新增/修改"
:visible
.
sync=
"receiptdialog"
center
>
<template>
<el-form
label-width=
"120px"
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
>
<el-form-item
label=
"收据金额"
>
<el-input
v-model=
"addMsg.Money"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"交款人"
prop=
"Remitter"
>
<el-input
v-model=
"addMsg.Remitter"
placeholder=
"请输入交款人"
></el-input>
</el-form-item>
<el-form-item
label=
"收款事由"
prop=
"Remark"
>
<el-input
v-model=
"addMsg.Remark"
type=
"textarea"
rows=
'3'
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"receiptdialog=false"
>
取消
</button>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"setreceipt('addMsg')"
>
确定
</button>
</div>
</
template
>
</el-dialog>
<!-- 收据的分享暂时 -->
<el-dialog
custom-class=
'w500'
title=
"分享图"
:visible
.
sync=
"sharedialog"
center
>
<
template
>
<el-image
style=
"width: 400px; height: 400px"
src=
"http://192.168.20.214:8130/EduSystem/Test/Upload/Temporary/202109290408209920000000003.jpeg"
>
</el-image>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"sharedialog=false"
>
关闭
</button>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"download()"
>
下载
</button>
</div>
</
template
>
</el-dialog>
<a
style=
"display:none"
ref=
'down'
></a>
</div>
</template>
<
script
>
import
{
getReceiptInfoForFinanceId
,
setReceiptInfo
,
delReceiptInfo
}
from
'../../../api/finance/index'
export
default
{
props
:
[
"FrID"
,
"GetDetail"
],
data
()
{
return
{
loading
:
false
,
data
:
null
,
addMsg
:
{
Id
:
0
,
FinanceId
:
''
,
//财务单据ID
ReceiptNo
:
''
,
//收据编码
Remitter
:
''
,
//交款人
Money
:
''
,
//金额
Remark
:
''
,
//事由
State
:
''
,
// 状态 1已认领 2未认领
ClaimCode
:
''
,
//认领码
},
//收据的保存对象
receiptdialog
:
false
,
//新增收据的弹窗
rules
:
{
Remitter
:
[
{
required
:
true
,
message
:
'请选择交款人'
,
trigger
:
'blur'
},
],
Remark
:
[
{
required
:
true
,
message
:
'请输入事由'
,
trigger
:
'blur'
},
],
},
Employeelist
:
[],
//人员下拉
EmployeeId
:
0
,
isoneself
:
false
,
//是否是本人操作
sharedialog
:
false
,
}
},
watch
:
{
},
created
()
{
this
.
addMsg
.
FinanceId
=
this
.
FrID
this
.
addMsg
.
Money
=
Number
(
this
.
GetDetail
.
Money
)
+
Number
(
this
.
GetDetail
.
Fee
)
let
userInfo
=
this
.
getLocalStorage
()
this
.
EmployeeId
=
userInfo
.
Id
;
if
(
this
.
EmployeeId
==
this
.
GetDetail
.
CreateBy
)
{
this
.
isoneself
=
true
}
},
mounted
()
{
this
.
getDetails
();
},
methods
:
{
getDetails
()
{
this
.
loading
=
true
;
this
.
data
=
null
getReceiptInfoForFinanceId
({
FinanceId
:
this
.
FrID
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Data
.
Id
!=
null
&&
res
.
Data
.
Id
>
0
)
{
this
.
data
=
res
.
Data
}
this
.
loading
=
false
;
}
})
},
Printreceipt
()
{
//打印收据
let
routeData
=
this
.
$router
.
resolve
({
path
:
'/financial/financalDocument/PrintPage'
,
query
:
{
type
:
3
,
id
:
116645
,
isKehu
:
0
,
Merge
:
0
,
OrderSource
:
-
1
}
});
window
.
open
(
routeData
.
href
,
"_blank"
);
},
addreceipt
()
{
//新增
if
(
this
.
data
&&
this
.
data
.
Id
>
0
)
{
//判断是否是新增
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
data
))
}
this
.
receiptdialog
=
true
},
setreceipt
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
setReceiptInfo
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
Success
(
res
.
Message
);
this
.
getDetails
()
this
.
receiptdialog
=
false
this
.
addMsg
=
{
//初始化
Id
:
0
,
FinanceId
:
''
,
//财务单据ID
ReceiptNo
:
''
,
//收据编码
Remitter
:
''
,
//交款人
Money
:
''
,
//金额
Remark
:
''
,
//事由
State
:
''
,
// 状态 1已认领 2未认领
ClaimCode
:
''
,
//认领码
}
this
.
addMsg
.
FinanceId
=
this
.
FrID
this
.
addMsg
.
Money
=
Number
(
this
.
GetDetail
.
Money
)
+
Number
(
this
.
GetDetail
.
Fee
)
}
}).
catch
(()
=>
{
})
}
else
{
return
false
;
}
});
},
setdelete
()
{
//删除
let
that
=
this
;
that
.
$confirm
(
'是否删除?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
delReceiptInfo
({
ReceiptId
:
that
.
data
.
Id
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
Success
(
res
.
Message
);
that
.
getDetails
()
}
}).
catch
(()
=>
{
})
}).
catch
(()
=>
{
});
},
getshare
()
{
// this.apipostDS(
// "/api/user/GetWeiXinQRCodeForHT", {
// Path: "/pages/school/personal/receiptDetails?FinanceId=" + this.FrID,
// With: 212
// },
// (res) => {
// if (res.data.resultCode == 1) {
// if (res.data.data) {
// let getBlob = this.domainManager().mallUrl + res.data.data
// console.log(getBlob)
// }
// } else {
// this.Error(res.data.message);
// }
// }
// );
this
.
sharedialog
=
true
},
blobToDataURL
(
blob
,
callback
)
{
var
a
=
new
FileReader
()
a
.
onload
=
function
(
e
)
{
callback
(
e
.
target
.
result
);
}
a
.
readAsDataURL
(
blob
)
},
download
()
{
//下载
this
.
downloadFile
(
'收据分享.png'
,
'http://192.168.20.214:8130/EduSystem/Test/Upload/Temporary/202109290408209920000000003.jpeg'
)
},
downloadFile
(
name
,
imgsrc
)
{
var
image
=
new
Image
();
// 解决跨域 Canvas 污染问题
image
.
setAttribute
(
"crossOrigin"
,
"anonymous"
);
image
.
onload
=
function
()
{
var
canvas
=
document
.
createElement
(
"canvas"
);
canvas
.
width
=
image
.
width
;
canvas
.
height
=
image
.
height
;
var
context
=
canvas
.
getContext
(
"2d"
);
context
.
drawImage
(
image
,
0
,
0
,
image
.
width
,
image
.
height
);
var
url
=
canvas
.
toDataURL
(
"image/png"
);
//得到图片的base64编码数据
var
a
=
document
.
createElement
(
"a"
);
// 生成一个a元素
var
event
=
new
MouseEvent
(
"click"
);
// 创建一个单击事件
a
.
download
=
name
||
"photo"
;
// 设置图片名称
a
.
href
=
url
;
// 将生成的URL设置为a.href属性
a
.
dispatchEvent
(
event
);
// 触发a的单击事件
};
image
.
src
=
imgsrc
;
}
}
}
</
script
>
\ No newline at end of file
src/pages/financial/financalDocument/FinancialDocumentsDetail.vue
View file @
938ba950
...
@@ -771,6 +771,7 @@
...
@@ -771,6 +771,7 @@
cursor
:
pointer
;
cursor
:
pointer
;
text-decoration
:
underline
;
text-decoration
:
underline
;
}
}
</
style
>
</
style
>
...
@@ -1076,6 +1077,16 @@
...
@@ -1076,6 +1077,16 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"ConfigInfo && ConfigInfo.Enable==1 && getreceipt() "
>
<p
class=
"_splic"
>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
</p>
<div
class=
"_tit _tit2 w890px ConfigInfoStyle"
>
<mySJModule
:FrID=
'ID'
:GetDetail=
"GetDetail"
></mySJModule>
</div>
</div>
<p
class=
"_splic"
>
<p
class=
"_splic"
>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
</p>
</p>
...
@@ -1359,6 +1370,7 @@
...
@@ -1359,6 +1370,7 @@
</div>
</div>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
<a
id=
'groupTourOrder_DownLoad'
target=
"_blank"
style=
"display:none"
>
1不要删除
</a>
<a
id=
'groupTourOrder_DownLoad'
target=
"_blank"
style=
"display:none"
>
1不要删除
</a>
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"classObjOption"
@
close=
"closeClass"
@
success=
"refreshClass"
>
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"classObjOption"
@
close=
"closeClass"
@
success=
"refreshClass"
>
</classinfo-form>
</classinfo-form>
...
@@ -1384,13 +1396,15 @@
...
@@ -1384,13 +1396,15 @@
import
huijiBill
from
"../components/huijiBill.vue"
;
import
huijiBill
from
"../components/huijiBill.vue"
;
import
czBillModule
from
"../components/czBillModule.vue"
;
import
czBillModule
from
"../components/czBillModule.vue"
;
import
mySJModule
from
"../components/mySJModule.vue"
;
import
{
import
{
UploadSelfFile
UploadSelfFile
}
from
'../../../api/common/common'
}
from
'../../../api/common/common'
import
{
import
{
getClassNameList
,
getClassNameList
,
queryStudyNameList
queryStudyNameList
,
getReceiptConfigInfo
}
from
'../../../api/finance/index'
}
from
'../../../api/finance/index'
import
classinfoForm
from
'../../../components/course/classinfo-form'
;
import
classinfoForm
from
'../../../components/course/classinfo-form'
;
import
viewquotationForm
from
'../../../components/sale/viewquotation-form'
;
import
viewquotationForm
from
'../../../components/sale/viewquotation-form'
;
...
@@ -1477,6 +1491,8 @@
...
@@ -1477,6 +1491,8 @@
isShowviewQuo
:
false
,
//是否显示预览报价单
isShowviewQuo
:
false
,
//是否显示预览报价单
rId
:
0
,
rId
:
0
,
showbohui
:
false
,
//5-10新加
showbohui
:
false
,
//5-10新加
ConfigInfo
:
null
,
//收据配置数据
}
}
},
},
components
:
{
components
:
{
...
@@ -1496,6 +1512,7 @@
...
@@ -1496,6 +1512,7 @@
'myJiPiaoBill'
:
myJiPiaoBill
,
'myJiPiaoBill'
:
myJiPiaoBill
,
'huijiBill'
:
huijiBill
,
'huijiBill'
:
huijiBill
,
"czBillModule"
:
czBillModule
,
"czBillModule"
:
czBillModule
,
"mySJModule"
:
mySJModule
,
'classinfo-form'
:
classinfoForm
,
'classinfo-form'
:
classinfoForm
,
'viewquotationForm'
:
viewquotationForm
'viewquotationForm'
:
viewquotationForm
},
},
...
@@ -2289,13 +2306,31 @@
...
@@ -2289,13 +2306,31 @@
this
.
OpenNewUrl
(
'/financial/financalDocument/FinancialDocumentsDetail'
,
{
this
.
OpenNewUrl
(
'/financial/financalDocument/FinancialDocumentsDetail'
,
{
"id"
:
item
"id"
:
item
});
});
}
},
getReceiptif
(){
getReceiptConfigInfo
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
ConfigInfo
=
res
.
Data
;
}
})
},
getreceipt
(){
if
(
this
.
ConfigInfo
.
TempleteIds
.
indexOf
(
this
.
GetDetail
.
TemplateId
)
!=-
1
){
return
true
}
else
{
return
false
}
},
},
},
mounted
()
{
mounted
()
{
this
.
GetAuth
();
this
.
GetAuth
();
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
qjGroupId
=
this
.
QjGroupId
();
this
.
qjGroupId
=
this
.
QjGroupId
();
this
.
Financial_post_GetDetail
(
this
.
ID
)
this
.
Financial_post_GetDetail
(
this
.
ID
)
this
.
getReceiptif
()
//获取收据配置
this
.
queryMsg
.
FinanceId
=
this
.
$route
.
query
.
id
;
this
.
queryMsg
.
FinanceId
=
this
.
$route
.
query
.
id
;
if
(
this
.
$route
.
query
.
Conditon
)
{
if
(
this
.
$route
.
query
.
Conditon
)
{
this
.
returnCode
=
this
.
$route
.
query
.
Conditon
;
this
.
returnCode
=
this
.
$route
.
query
.
Conditon
;
...
...
src/pages/financial/financalDocument/PrintPage.vue
View file @
938ba950
...
@@ -39,6 +39,12 @@
...
@@ -39,6 +39,12 @@
<my-GZ-Bill
:ID=
"id"
:width=
"widthSon"
:isPrintPage=
"true"
:color=
"colorSon"
:OrderSource=
"OrderSource"
:name=
'index+1'
></my-GZ-Bill>
<my-GZ-Bill
:ID=
"id"
:width=
"widthSon"
:isPrintPage=
"true"
:color=
"colorSon"
:OrderSource=
"OrderSource"
:name=
'index+1'
></my-GZ-Bill>
</div>
</div>
</
template
>
</
template
>
<!-- 收据3 -->
<
template
v-if=
"type==='3'"
>
<div
class=
"_border_1"
v-for=
"(item,index) in loopNumT"
>
<my-SJ-Bill
:ID=
"id"
:width=
"widthSon"
:isPrintPage=
"true"
:color=
"colorSon"
:OrderSource=
"OrderSource"
:name=
'index+1'
></my-SJ-Bill>
</div>
</
template
>
<
template
v-if=
"Merge==='1'"
>
<
template
v-if=
"Merge==='1'"
>
<div
class=
"_border_1"
v-for=
"(item,index) in loopNumN"
>
<div
class=
"_border_1"
v-for=
"(item,index) in loopNumN"
>
<my-HB-Bill
v-on:helloPP=
"numAdd"
:Num=
"num"
:ID=
"id"
:width=
"widthSon"
:isPrintPage=
"true"
:color=
"colorSon"
:name=
'index+1'
></my-HB-Bill>
<my-HB-Bill
v-on:helloPP=
"numAdd"
:Num=
"num"
:ID=
"id"
:width=
"widthSon"
:isPrintPage=
"true"
:color=
"colorSon"
:name=
'index+1'
></my-HB-Bill>
...
@@ -52,6 +58,7 @@
...
@@ -52,6 +58,7 @@
import
myrbvBill
from
"../components/ReceivablesModule.vue"
;
import
myrbvBill
from
"../components/ReceivablesModule.vue"
;
import
myhrBill
from
"../components/MergeBillModule.vue"
;
import
myhrBill
from
"../components/MergeBillModule.vue"
;
import
myGZBill
from
"../components/GZBillModule.vue"
;
import
myGZBill
from
"../components/GZBillModule.vue"
;
import
mySJBill
from
"../components/SJBillModule.vue"
;
export
default
{
export
default
{
data
(){
data
(){
return
{
return
{
...
@@ -71,7 +78,9 @@
...
@@ -71,7 +78,9 @@
'my-Bill'
:
myBill
,
'my-Bill'
:
myBill
,
'my-RVB-Bill'
:
myrbvBill
,
'my-RVB-Bill'
:
myrbvBill
,
'my-HB-Bill'
:
myhrBill
,
'my-HB-Bill'
:
myhrBill
,
'my-GZ-Bill'
:
myGZBill
'my-GZ-Bill'
:
myGZBill
,
'my-SJ-Bill'
:
mySJBill
,
},
methods
:{
},
methods
:{
numAdd
(){
numAdd
(){
this
.
num
=
this
.
num
+
1
this
.
num
=
this
.
num
+
1
...
...
src/pages/financial/financalDocument/receiptManager.vue
0 → 100644
View file @
938ba950
<
style
>
@import
"../css/cssReset.css"
;
</
style
>
<
template
>
<div
class=
'flexOne page-body'
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
财务单据
</em>
<el-input
type=
"text"
v-model=
"msg.FinanceId"
placeholder=
"请输入财务单据"
></el-input>
</span>
</li>
<li>
<span>
<em>
收据状态
</em>
<el-select
v-model=
"msg.State"
filterable
clearable
>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
label=
"已认领"
:value=
"1"
></el-option>
<el-option
label=
"未认领"
:value=
"2"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
收据编码
</em>
<el-input
type=
"text"
v-model=
"msg.ReceiptNo"
placeholder=
"请输入收据编码"
></el-input>
</span>
</li>
<li>
<span><em>
交款人
</em>
<el-input
type=
"text"
v-model=
"msg.Remitter"
placeholder=
"请输入交款人"
></el-input>
</span>
</li>
<li>
<q-btn
color=
"primary"
size=
"11px"
label=
"查询"
@
click=
"handleCurrentChange(1)"
/>
</li>
</ul>
</div>
<div
class=
"cm_content"
>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th
width=
"250"
>
财务单据
</th>
<th
>
收据编码
</th>
<th
>
交款人
</th>
<th
width=
"100"
>
金额
</th>
<th>
收款事由
</th>
<th>
状态
</th>
<th>
认领码
</th>
<th>
甲鹤用户
</th>
<th>
经办人
</th>
<th>
开票日期
</th>
</tr>
<tr
v-for=
"item in dataList"
>
<td>
<span
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goFinancialDetail(item)"
>
{{
item
.
FinanceId
}}
</span>
</td>
<td>
{{
item
.
ReceiptNo
}}
</td>
<td>
{{
item
.
Remitter
}}
</td>
<td>
{{
item
.
Money
}}
</td>
<td>
{{
item
.
Remark
}}
</td>
<td>
{{
item
.
State
==
1
?
'已认领'
:
'未认领'
}}
</td>
<td>
{{
item
.
ClaimCode
}}
</td>
<td>
{{
item
.
UserName
}}
</td>
<td>
{{
item
.
CreateByName
}}
</td>
<td>
{{
item
.
CreateTime
}}
</td>
</tr>
</table>
<div
class=
"noDataNotice"
v-if=
"dataList && dataList.length
<1
"
>
<i
class=
"iconfont icon-kong"
></i>
<p>
{{
$t
(
"active.ld_noData"
)
}}
</p>
</div>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
:page-size=
"msg.pageSize"
layout=
"total,prev, pager, next, jumper"
:total=
"msg.total"
></el-pagination>
</div>
</
template
>
<
script
>
import
{
getReceiptInfoPageList
,
}
from
'../../../api/finance/index'
export
default
{
data
()
{
return
{
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
FinanceId
:
''
,
State
:
0
,
ReceiptNo
:
''
,
Remitter
:
''
,
total
:
0
},
loading
:
false
,
dataList
:
[],
}
},
methods
:
{
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
()
{
//获取列表
this
.
loading
=
true
;
getReceiptInfoPageList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
msg
.
total
=
res
.
Data
.
Count
;
}
})
},
goFinancialDetail
(
item
){
this
.
OpenNewUrl
(
"/financial/financalDocument/FinancialDocumentsDetail"
,
{
id
:
item
.
FinanceId
});
},
},
mounted
()
{
this
.
getList
();
}
}
</
script
>
\ No newline at end of file
src/router/routes.js
View file @
938ba950
...
@@ -561,6 +561,11 @@ const routes = [{
...
@@ -561,6 +561,11 @@ const routes = [{
component
:
()
=>
component
:
()
=>
import
(
"pages/financial/financalDocument/InAndOutDdetails.vue"
)
import
(
"pages/financial/financalDocument/InAndOutDdetails.vue"
)
},
},
{
path
:
"/financial/financalDocument/receiptManager"
,
//财务收据管理
component
:
()
=>
import
(
"pages/financial/financalDocument/receiptManager.vue"
)
},
{
{
...
@@ -1377,6 +1382,7 @@ const routes = [{
...
@@ -1377,6 +1382,7 @@ const routes = [{
},
},
{
{
path
:
'/AssetsShenpi'
,
//资产管理审批
path
:
'/AssetsShenpi'
,
//资产管理审批
name
:
'AssetsShenpi'
,
name
:
'AssetsShenpi'
,
...
...
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