Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
柳 佳乐
finance
Commits
b4ec9d53
Commit
b4ec9d53
authored
Nov 17, 2022
by
cx49085
Browse files
新需求呀 顶不住呀
parent
2b231389
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/api/pettyMoney.js
View file @
b4ec9d53
...
@@ -71,6 +71,15 @@ export const rejectPetty = (data) => {
...
@@ -71,6 +71,15 @@ export const rejectPetty = (data) => {
})
})
}
}
// 撤回审批
export
const
revokePetty
=
(
data
)
=>
{
return
request
({
url
:
'
/pettyCash/revoke
'
,
method
:
'
post
'
,
data
})
}
/******还款********/
/******还款********/
...
...
src/utils/download.js
View file @
b4ec9d53
...
@@ -24,4 +24,14 @@ export const downloadPDFFile = function (url, fileName) {
...
@@ -24,4 +24,14 @@ export const downloadPDFFile = function (url, fileName) {
document
.
body
.
removeChild
(
a
)
document
.
body
.
removeChild
(
a
)
}
}
})
})
}
}
\ No newline at end of file
export
const
previewPDF
=
(
url
)
=>
{
const
a
=
document
.
createElement
(
"
a
"
);
//创建一个<a></a>标签
a
.
href
=
url
;
// 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
a
.
target
=
"
_blank
"
;
a
.
style
.
display
=
"
none
"
;
// 障眼法藏起来a标签
document
.
body
.
appendChild
(
a
);
// 将a标签追加到文档对象中
a
.
click
();
// 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
a
.
remove
();
// 一次性的,用完就删除a标签
}
\ No newline at end of file
src/views/contract/components/addContract.vue
View file @
b4ec9d53
...
@@ -8,12 +8,13 @@
...
@@ -8,12 +8,13 @@
<div
class=
"container"
>
<div
class=
"container"
>
<el-form
:model=
"formData"
:rules=
"addFormValidRules"
ref=
"form"
class=
"contract-form"
>
<el-form
:model=
"formData"
:rules=
"addFormValidRules"
ref=
"form"
class=
"contract-form"
>
<el-descriptions
:column=
"3"
border
class=
"contract-description-form"
>
<el-descriptions
:column=
"3"
border
class=
"contract-description-form"
>
<el-descriptions-item
labelClassName=
"required"
label=
"母合同名称"
:span=
"3"
v-if=
"parseInt(formData.contractNature) === 2"
>
<el-descriptions-item
labelClassName=
"required"
label=
"母合同名称"
:span=
"3"
v-if=
"parseInt(formData.contractNature) === 2"
>
<el-form-item
prop=
"contractParent"
>
<el-form-item
prop=
"contractParent"
>
<el-select
v-model=
"formData.contractParent"
:style=
"
{ width: '100%' }"
<el-select
v-model=
"formData.contractParent"
:style=
"
{ width: '100%' }"
placeholder="请选择母合同名称">
placeholder="请选择母合同名称">
<el-option
v-for=
"(item, index) in contractParentList"
:key=
"item.contractId"
<el-option
v-for=
"(item, index) in contractParentList"
:key=
"item.contractId"
:value=
"item.contractId"
:label=
"item.
n
ame"
></el-option>
:value=
"item.contractId"
:label=
"item.
contractN
ame"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
...
@@ -29,7 +30,8 @@
...
@@ -29,7 +30,8 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同乙方"
labelClassName=
"required"
:disabled=
"isEdit"
>
<el-descriptions-item
label=
"合同乙方"
labelClassName=
"required"
:disabled=
"isEdit"
>
<el-form-item
prop=
"contractPaetyb"
>
<el-form-item
prop=
"contractPaetyb"
>
<el-input
placeholder=
"请输入合同名称合同乙方"
:disabled=
"isEdit"
v-model=
"formData.contractPaetyb"
></el-input>
<el-input
placeholder=
"请输入合同名称合同乙方"
:disabled=
"isEdit"
v-model=
"formData.contractPaetyb"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同编号"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同编号"
labelClassName=
"required"
>
...
@@ -48,23 +50,27 @@
...
@@ -48,23 +50,27 @@
<el-descriptions-item
label=
"客户名称(甲方)"
labelClassName=
"required"
>
<el-descriptions-item
label=
"客户名称(甲方)"
labelClassName=
"required"
>
<el-form-item
prop=
"contractFirstParty"
>
<el-form-item
prop=
"contractFirstParty"
>
<el-input
placeholder=
"请输入客户名称(甲方)"
:disabled=
"isEdit"
v-model=
"formData.contractFirstParty"
></el-input>
<el-input
placeholder=
"请输入客户名称(甲方)"
:disabled=
"isEdit"
v-model=
"formData.contractFirstParty"
></el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"甲方签订人"
labelClassName=
"required"
>
<el-descriptions-item
label=
"甲方签订人"
labelClassName=
"required"
>
<el-form-item
prop=
"firstParty"
>
<el-form-item
prop=
"firstParty"
>
<el-input
placeholder=
"请输入甲方签订人"
:disabled=
"isEdit"
v-model=
"formData.firstParty"
></el-input>
<el-input
placeholder=
"请输入甲方签订人"
:disabled=
"isEdit"
v-model=
"formData.firstParty"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"客户联系电话"
labelClassName=
"required"
>
<el-descriptions-item
label=
"客户联系电话"
labelClassName=
"required"
>
<el-form-item
prop=
"firstPartyPhone"
>
<el-form-item
prop=
"firstPartyPhone"
>
<el-input
placeholder=
"请输入客户联系电话"
:disabled=
"isEdit"
v-model=
"formData.firstPartyPhone"
></el-input>
<el-input
placeholder=
"请输入客户联系电话"
:disabled=
"isEdit"
v-model=
"formData.firstPartyPhone"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"客户联系地址"
labelClassName=
"required"
>
<el-descriptions-item
label=
"客户联系地址"
labelClassName=
"required"
>
<el-form-item
prop=
"firstPartyAddress"
>
<el-form-item
prop=
"firstPartyAddress"
>
<el-input
placeholder=
"请输入客户联系地址"
:disabled=
"isEdit"
v-model=
"formData.firstPartyAddress"
></el-input>
<el-input
placeholder=
"请输入客户联系地址"
:disabled=
"isEdit"
v-model=
"formData.firstPartyAddress"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同开始日期"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同开始日期"
labelClassName=
"required"
>
...
@@ -86,7 +92,7 @@
...
@@ -86,7 +92,7 @@
<el-descriptions-item
label=
"合同金额"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同金额"
labelClassName=
"required"
>
<el-form-item
prop=
"contractMoney"
>
<el-form-item
prop=
"contractMoney"
>
<el-input
placeholder=
"请输入合同金额"
:disabled=
"isEdit"
v-model=
"formData.contractMoney"
>
<el-input
placeholder=
"请输入合同金额"
:disabled=
"isEdit"
v-model=
"formData.contractMoney"
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
...
@@ -100,8 +106,8 @@
...
@@ -100,8 +106,8 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"税点"
labelClassName=
"required"
>
<el-descriptions-item
label=
"税点"
labelClassName=
"required"
>
<el-form-item
prop=
"taxPoint"
>
<el-form-item
prop=
"taxPoint"
>
<el-input
placeholder=
"请输入税点"
:disabled=
"isEdit"
type=
"number"
v-model=
"formData.taxPoint"
min=
“0.00”
:min=
"0"
<el-input
placeholder=
"请输入税点"
:disabled=
"isEdit"
type=
"number"
v-model=
"formData.taxPoint"
step=
“0.01”
>
min=
“0.00”
:min=
"0"
step=
“0.01”
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
...
@@ -118,7 +124,7 @@
...
@@ -118,7 +124,7 @@
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"file-content"
:title=
"file.name"
>
{{
file
.
name
}}
</div>
<div
class=
"file-content"
:title=
"file.name"
>
{{
file
.
name
}}
</div>
<div
class=
"file-operate"
>
<div
class=
"file-operate"
>
<span
class=
""
@
click=
"handleDownload(file)"
>
<span
class=
""
v-if=
"isEdit"
@
click=
"handleDownload(file)"
>
<i
class=
"el-icon-download"
></i>
<i
class=
"el-icon-download"
></i>
</span>
</span>
...
@@ -127,6 +133,8 @@
...
@@ -127,6 +133,8 @@
</span>
</span>
</div>
</div>
</div>
</div>
<!--
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
只能上传pdf文件,且不超过500kb
</div>
-->
</el-upload>
</el-upload>
</el-descriptions-item>
</el-descriptions-item>
...
@@ -137,20 +145,23 @@
...
@@ -137,20 +145,23 @@
<el-descriptions
:column=
"3"
border
class=
"contract-description-form"
>
<el-descriptions
:column=
"3"
border
class=
"contract-description-form"
>
<el-descriptions-item
label=
"乙方签订人"
labelClassName=
"required"
>
<el-descriptions-item
label=
"乙方签订人"
labelClassName=
"required"
>
<el-form-item
prop=
"partybName"
>
<el-form-item
prop=
"partybName"
>
<el-input
placeholder=
"请输入乙方签订人"
:disabled=
"isEdit"
v-model=
"formData.partybName"
></el-input>
<el-input
placeholder=
"请输入乙方签订人"
:disabled=
"isEdit"
v-model=
"formData.partybName"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同签订时间"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同签订时间"
labelClassName=
"required"
>
<el-form-item
prop=
"signingTime"
>
<el-form-item
prop=
"signingTime"
>
<el-date-picker
v-model=
"formData.signingTime"
align=
"right"
type=
"datetime"
<el-date-picker
v-model=
"formData.signingTime"
align=
"right"
type=
"datetime"
placeholder=
"请输入合同签订时间"
:disabled=
"isEdit"
format=
"yyyy-MM-dd HH:mm:ss"
value-format=
"yyyy-MM-dd HH:mm:ss"
>
placeholder=
"请输入合同签订时间"
:disabled=
"isEdit"
format=
"yyyy-MM-dd HH:mm:ss"
value-format=
"yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同制定人"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同制定人"
labelClassName=
"required"
>
<el-form-item
prop=
"preparedBy"
>
<el-form-item
prop=
"preparedBy"
>
<el-input
placeholder=
"请输入合同制定人"
:disabled=
"isEdit"
v-model=
"formData.preparedBy"
></el-input>
<el-input
placeholder=
"请输入合同制定人"
:disabled=
"isEdit"
v-model=
"formData.preparedBy"
>
</el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"合同保管人"
labelClassName=
"required"
>
<el-descriptions-item
label=
"合同保管人"
labelClassName=
"required"
>
...
@@ -170,22 +181,18 @@
...
@@ -170,22 +181,18 @@
<br
/>
<br
/>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"dialogVisible = true"
>
{{
!
isEdit
?
'
创建合同
'
:
'
修改合同
'
}}
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible = true"
>
{{
!
isEdit
?
'
创建合同
'
:
'
修改合同
'
}}
</el-button>
<el-button
@
click=
"$store.dispatch('tagsView/delView', $route);$router.back();"
>
返回
</el-button>
<el-button
@
click=
"$store.dispatch('tagsView/delView', $route);
$router.back();"
>
返回
</el-button>
<!--
<el-button
@
click=
"closeDrawer"
>
取消
</el-button>
-->
<!--
<el-button
@
click=
"closeDrawer"
>
取消
</el-button>
-->
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
<el-dialog
<el-dialog
:title=
"isEdit ? '确认修改' : '确认提交'"
:visible.sync=
"dialogVisible"
width=
"30%"
>
:title=
"isEdit ? '确认修改' : '确认提交' "
<span>
确定
{{
isEdit
?
'
修改
'
:
'
添加
'
}}
合同
</span>
:visible.sync=
"dialogVisible"
width=
"30%"
>
<span>
确定
{{
isEdit
?
'
修改
'
:
'
添加
'
}}
合同
</span>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"addContract"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"addContract"
>
确 定
</el-button>
</span>
</span>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -193,7 +200,8 @@ import { selectAllContractTypeList, selectAllContractList, addContract, getContr
...
@@ -193,7 +200,8 @@ import { selectAllContractTypeList, selectAllContractList, addContract, getContr
import
{
deepClone
}
from
'
@/utils
'
import
{
deepClone
}
from
'
@/utils
'
import
{
contractNatures
,
addFormValidRules
}
from
'
../contractStaticData
'
import
{
contractNatures
,
addFormValidRules
}
from
'
../contractStaticData
'
import
{
mapGetters
}
from
'
vuex
'
import
{
mapGetters
}
from
'
vuex
'
import
{
downloadPDFFile
}
from
'
@/utils/download
'
import
{
previewPDF
}
from
'
@/utils/download
'
import
axios
from
'
axios
'
// import { checkPhone } from '@/utils/myValidate'
// import { checkPhone } from '@/utils/myValidate'
export
default
{
export
default
{
// props: ['drawerVisible'],
// props: ['drawerVisible'],
...
@@ -230,8 +238,8 @@ export default {
...
@@ -230,8 +238,8 @@ export default {
isEdit
:
false
,
isEdit
:
false
,
addFormValidRules
,
addFormValidRules
,
action
:
''
,
action
:
''
,
uploadChang
e
:
false
,
dialogVisibl
e
:
false
,
d
ialogVisib
le
:
false
d
eleteFi
le
s
:
[]
}
}
},
},
computed
:
{
computed
:
{
...
@@ -292,7 +300,7 @@ export default {
...
@@ -292,7 +300,7 @@ export default {
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
if
(
this
.
formData
.
contractStartTime
>
this
.
formData
.
contractEndTime
){
if
(
this
.
formData
.
contractStartTime
>
this
.
formData
.
contractEndTime
)
{
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
this
.
$message
.
warning
(
'
合同开始时间和结束时间不符合实际
'
)
this
.
$message
.
warning
(
'
合同开始时间和结束时间不符合实际
'
)
return
return
...
@@ -310,41 +318,46 @@ export default {
...
@@ -310,41 +318,46 @@ export default {
addContract
(
params
).
then
(
res
=>
{
addContract
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
成功添加合同
"
)
this
.
$message
.
success
(
"
成功添加合同
"
)
this
.
add
ContractFile
(
res
.
data
)
this
.
update
ContractFile
(
res
.
data
)
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$router
.
push
({
path
:
'
/contractList
'
})
this
.
$router
.
push
({
path
:
'
/contractList
'
})
},
1000
);
},
1000
);
}
else
{
}
else
{
this
.
$message
.
warning
(
"
添加合同失败:
"
+
res
.
msg
)
this
.
$message
.
warning
(
"
添加合同失败:
"
+
res
.
msg
)
}
}
})
})
}
else
{
}
else
{
this
.
addContractFile
(
this
.
formData
.
contractId
)
updateContract
(
params
).
then
(
res
=>
{
updateContract
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
this
.
updateContractFile
(
this
.
formData
.
contractId
)
this
.
$message
.
success
(
"
成功修改合同
"
)
this
.
$message
.
success
(
"
成功修改合同
"
)
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$router
.
push
({
path
:
'
/contractList
'
})
this
.
$router
.
push
({
path
:
'
/contractList
'
})
},
1000
);
},
1000
);
}
else
{
}
else
{
this
.
$message
.
warning
(
"
添加修改失败:
"
+
res
.
msg
)
this
.
$message
.
warning
(
"
添加修改失败:
"
+
res
.
msg
)
}
}
})
})
}
}
}
else
{
}
else
{
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
}
}
});
});
},
},
uploadOnchange
(
file
,
fileList
)
{
updateContractFile
(
contractId
)
{
this
.
uploadChange
=
true
},
addContractFile
(
contractId
)
{
this
.
fileParams
.
Id
=
String
(
contractId
)
this
.
fileParams
.
Id
=
String
(
contractId
)
this
.
fileParams
.
companyId
=
this
.
companyId
||
this
.
$store
.
getters
.
companyId
this
.
fileParams
.
companyId
=
this
.
companyId
this
.
uploadChange
&&
this
.
$refs
.
uploadContractFile
.
submit
()
this
.
$refs
.
uploadContractFile
.
submit
()
if
(
this
.
deleteFiles
.
length
)
{
this
.
deleteFiles
.
forEach
(
file
=>
{
if
(
file
.
id
){
deleteContract
(
file
)
}
})
// axios.all(httpArr)
}
},
},
getContractTypeList
()
{
getContractTypeList
()
{
const
params
=
{
const
params
=
{
...
@@ -394,20 +407,37 @@ export default {
...
@@ -394,20 +407,37 @@ export default {
}
}
})
})
},
},
uploadOnchange
(
file
,
fileList
)
{
const
index
=
this
.
fileList
.
findIndex
(
item
=>
item
.
uid
===
file
.
uid
)
if
(
index
>=
0
)
{
this
.
fileList
.
splice
(
index
,
1
)
}
else
{
this
.
fileList
.
push
(
file
)
}
},
handleDownload
(
file
)
{
handleDownload
(
file
)
{
let
{
name
,
filePath
}
=
file
let
{
filePath
}
=
file
let
url
=
process
.
env
.
VUE_APP_BASE_API
+
filePath
;
let
url
=
process
.
env
.
VUE_APP_BASE_API
+
filePath
;
downloadPDFFile
(
url
,
name
)
previewPDF
(
url
)
},
},
handleRemove
(
file
)
{
handleRemove
(
file
)
{
deleteContract
(
file
).
then
(
res
=>
{
const
index
=
this
.
fileList
.
findIndex
(
item
=>
item
.
uid
===
file
.
uid
)
if
(
res
.
success
)
{
if
(
index
>=
0
)
{
this
.
$message
.
success
(
"
成功删除合同文件
"
)
const
deleteFile
=
this
.
fileList
.
splice
(
index
,
1
)
this
.
getContractFiles
(
file
.
contractId
)
if
(
deleteFile
.
length
)
{
}
else
{
this
.
deleteFiles
.
push
(
deleteFile
[
0
])
this
.
$message
.
warning
(
"
删除合同文件失败
"
)
}
}
})
}
// splice(index,len,[item])
// deleteContract(file).then(res => {
// if (res.success) {
// this.$message.success("成功删除合同文件")
// this.getContractFiles(file.contractId)
// } else {
// this.$message.warning("删除合同文件失败")
// }
// })
},
},
validFormData
()
{
validFormData
()
{
let
requiredParams
=
deepClone
(
this
.
formData
);
let
requiredParams
=
deepClone
(
this
.
formData
);
...
...
src/views/pettyMoney/addPettyMoneyRecord.vue
View file @
b4ec9d53
...
@@ -21,21 +21,29 @@
...
@@ -21,21 +21,29 @@
<el-input
placeholder=
"请输入备注"
v-model=
"formData.pettyRemarks"
></el-input>
<el-input
placeholder=
"请输入备注"
v-model=
"formData.pettyRemarks"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"申请附件"
>
<el-form-item
label=
"申请附件"
>
<el-upload
ref=
"uploadPettyFile"
list-type=
"picture-card"
:action=
"action"
:file-list=
"fileList"
<div
v-if=
"isEdit && filename"
class=
"file-list"
:style=
"
{padding: '8px'}">
:on-change=
"uploadOnchange"
:data=
"fileParams"
:auto-upload=
"false"
multiple
accept=
'.pdf'
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"file-content"
:title=
"filename"
>
{{
filename
}}
</div>
<div
class=
"file-operate"
>
<span
class=
""
@
click=
"handleDownload()"
>
<i
class=
"el-icon-download"
></i>
</span>
</div>
</div>
<div
v-else-if=
"isEdit && !filename"
>
无
</div>
<el-upload
v-else
ref=
"uploadPettyFile"
list-type=
"picture-card"
:action=
"action"
:file-list=
"fileList"
:on-change=
"uploadOnchange"
:data=
"fileParams"
:auto-upload=
"false"
multiple
:limit=
"1"
class=
'el-contract-upload'
>
:limit=
"1"
class=
'el-contract-upload'
>
<i
slot=
"default"
class=
"el-icon-plus"
></i>
<i
slot=
"default"
class=
"el-icon-plus"
></i>
<div
slot=
"file"
slot-scope=
"
{file}" class="file-list">
<div
slot=
"file"
slot-scope=
"
{file}" class="file-list">
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"file-content"
:title=
"file.name"
>
{{
file
.
name
}}
</div>
<div
class=
"file-content"
:title=
"file.name"
>
{{
file
.
name
}}
</div>
<div
class=
"file-operate"
>
<div
class=
"file-operate"
>
<span
class=
""
@
click=
"handle
Download
(file)"
>
<span
class=
""
@
click=
"handle
Remove
(file)"
>
<i
class=
"el-icon-d
ownload
"
></i>
<i
class=
"el-icon-d
elete
"
></i>
</span>
</span>
</div>
</div>
</div>
</div>
<!--
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
只能上传pdf文件,且不超过500kb
</div>
-->
</el-upload>
</el-upload>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
...
@@ -49,10 +57,10 @@
...
@@ -49,10 +57,10 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
insertPettyMoneyRecord
,
selctByPettyId
,
updatePettyMoneyRecord
}
from
'
@/api/pettyMoney
'
import
{
insertPettyMoneyRecord
,
selctByPettyId
,
updatePettyMoneyRecord
}
from
'
@/api/pettyMoney
'
import
{
deepClone
}
from
'
@/utils
'
//
import { deepClone } from '@/utils'
// import { contractNatures } from '../contractStaticData'
// import { contractNatures } from '../contractStaticData'
import
{
mapGetters
}
from
'
vuex
'
import
{
mapGetters
}
from
'
vuex
'
import
{
downloadPDFFile
}
from
'
@/utils/download
'
import
{
previewPDF
}
from
'
@/utils/download
'
import
{
addRecordRules
as
rules
,
staticParams
}
from
'
./pettyMoneyStaticData
'
import
{
addRecordRules
as
rules
,
staticParams
}
from
'
./pettyMoneyStaticData
'
export
default
{
export
default
{
// props: ['drawerVisible'],
// props: ['drawerVisible'],
...
@@ -61,6 +69,10 @@ export default {
...
@@ -61,6 +69,10 @@ export default {
'
companyId
'
,
'
companyId
'
,
'
urId
'
'
urId
'
]),
]),
filename
:
function
()
{
const
{
pettyEnclosure
}
=
this
.
formData
return
pettyEnclosure
.
slice
(
pettyEnclosure
.
lastIndexOf
(
'
/
'
)
+
1
,
pettyEnclosure
.
length
)
}
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -76,7 +88,8 @@ export default {
...
@@ -76,7 +88,8 @@ export default {
fileParams
:
{},
fileParams
:
{},
action
:
''
,
action
:
''
,
uploadChange
:
false
,
uploadChange
:
false
,
isEdit
:
false
isEdit
:
false
,
deleteFiles
:
[]
}
}
},
},
created
()
{
created
()
{
...
@@ -103,6 +116,7 @@ export default {
...
@@ -103,6 +116,7 @@ export default {
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
},
},
addPettyMoneyRecord
()
{
addPettyMoneyRecord
()
{
this
.
$refs
.
form
.
validate
(
valida
=>
{
this
.
$refs
.
form
.
validate
(
valida
=>
{
if
(
valida
)
{
if
(
valida
)
{
const
params
=
{
const
params
=
{
...
@@ -115,7 +129,7 @@ export default {
...
@@ -115,7 +129,7 @@ export default {
if
(
this
.
isEdit
)
{
if
(
this
.
isEdit
)
{
updatePettyMoneyRecord
(
params
).
then
(
res
=>
{
updatePettyMoneyRecord
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
this
.
addPettyFile
(
params
.
pettyId
)
//
this.addPettyFile(params.pettyId)
this
.
$message
.
success
(
"
修改成功
"
)
this
.
$message
.
success
(
"
修改成功
"
)
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$router
.
push
(
'
/pettyMoneyRecord
'
)
this
.
$router
.
push
(
'
/pettyMoneyRecord
'
)
...
@@ -141,16 +155,32 @@ export default {
...
@@ -141,16 +155,32 @@ export default {
})
})
},
},
uploadOnchange
(
file
,
fileList
)
{
uploadOnchange
(
file
,
fileList
)
{
this
.
uploadChange
=
true
const
index
=
this
.
fileList
.
findIndex
(
item
=>
item
.
uid
===
file
.
uid
)
if
(
index
>=
0
)
{
this
.
fileList
.
splice
(
index
,
1
)
}
else
{
this
.
fileList
.
push
(
file
)
}
},
},
addPettyFile
(
pettyId
)
{
addPettyFile
(
pettyId
)
{
this
.
fileParams
.
Id
=
pettyId
this
.
fileParams
.
Id
=
pettyId
this
.
uploadChange
&&
this
.
$refs
.
uploadPettyFile
.
submit
()
this
.
fileParams
.
companyId
=
this
.
companyId
||
this
.
$store
.
getters
.
companyId
this
.
$refs
.
uploadPettyFile
.
submit
()
},
},
handleDownload
(
file
)
{
handleDownload
()
{
let
{
name
,
filePath
}
=
file
let
{
pettyEnclosure
:
filePath
}
=
this
.
formData
let
url
=
process
.
env
.
VUE_APP_BASE_API
+
filePath
;
let
url
=
process
.
env
.
VUE_APP_BASE_API
+
filePath
;
downloadPDFFile
(
url
,
name
)
previewPDF
(
url
)
},
handleRemove
(
file
)
{
const
index
=
this
.
fileList
.
findIndex
(
item
=>
item
.
uid
===
file
.
uid
)
if
(
index
>=
0
)
{
const
deleteFile
=
this
.
fileList
.
splice
(
index
,
1
)
if
(
deleteFile
.
length
)
{
this
.
deleteFiles
.
push
(
deleteFile
[
0
])
}
}
},
},
getPettytDetail
(
pettyId
)
{
getPettytDetail
(
pettyId
)
{
if
(
pettyId
)
{
if
(
pettyId
)
{
...
@@ -215,6 +245,8 @@ export default {
...
@@ -215,6 +245,8 @@ export default {
align-items
:
center
;
align-items
:
center
;
width
:
250px
;
width
:
250px
;
padding
:
0
5px
;
padding
:
0
5px
;
border
:
1px
solid
#e6ebf5
;
border-radius
:
5px
;
.avator
{
.avator
{
width
:
10%
;
width
:
10%
;
...
...
src/views/pettyMoney/components/applicateDetail.vue
View file @
b4ec9d53
...
@@ -26,9 +26,20 @@
...
@@ -26,9 +26,20 @@
</el-tag>
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"驳回原因"
span=
"3"
v-if=
"checkedRow.pettyApproval === 2"
>
{{
<el-descriptions-item
label=
"驳回原因"
span=
"3"
v-if=
"checkedRow.pettyApproval === 2"
>
{{
checkedRow
.
pettyReject
checkedRow
.
pettyReject
}}
</el-descriptions-item>
}}
</el-descriptions-item>
<el-descriptions-item
label=
"借款日期"
>
{{
checkedRow
.
pettyTime
}}
</el-descriptions-item>
<el-descriptions-item
label=
"借款日期"
span=
"3"
>
{{
checkedRow
.
pettyTime
}}
</el-descriptions-item>
<el-descriptions-item
label=
"合同附件"
span=
"3"
v-if=
"checkedRow.pettyEnclosure"
>
<div
class=
"file-list"
>
<div
class=
"avator"
><i
class=
"el-icon-document"
></i></div>
<div
class=
"file-content"
:title=
"filename"
>
{{
filename
}}
</div>
<div
class=
"file-operate"
>
<span
class=
""
@
click=
"handleDownload()"
>
<i
class=
"el-icon-download"
></i>
</span>
</div>
</div>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</div>
</div>
<div
v-if=
"checkedRow.pettyApproval === 1"
>
<div
v-if=
"checkedRow.pettyApproval === 1"
>
...
@@ -42,18 +53,19 @@
...
@@ -42,18 +53,19 @@
<el-timeline-item
v-for=
"item in repayDetailList"
:key=
"item.repaymentId"
<el-timeline-item
v-for=
"item in repayDetailList"
:key=
"item.repaymentId"
:type=
"approveResult[item.repaymentApproval].type"
:timestamp=
"item.repaymentTime"
>
:type=
"approveResult[item.repaymentApproval].type"
:timestamp=
"item.repaymentTime"
>
<div>
<div>
<
span
>
<
el-descriptions
size=
"mini"
>
<el-
tag
<el-
descriptions-item
label=
"审批结果"
><el-tag
size=
"mini"
:type=
"approveResult[item.repaymentApproval] && approveResult[item.repaymentApproval].type"
>
:type=
"approveResult[item.repaymentApproval] && approveResult[item.repaymentApproval].type"
>
{{
approveResult
[
item
.
repaymentApproval
]
&&
{{
approveResult
[
item
.
repaymentApproval
]
&&
approveResult
[
item
.
repaymentApproval
].
text
approveResult
[
item
.
repaymentApproval
].
text
}}
</el-tag>
}}
</el-tag></el-descriptions-item>
{{
(
item
.
repaymentApproval
===
2
&&
item
.
repaymentReject
)
&&
<el-descriptions-item
label=
"驳回原因"
v-if=
"item.repaymentApproval === 2 && item.repaymentReject"
>
{{
item
.
repaymentReject
}}
</el-descriptions-item>
`驳回原因:${item.repaymentReject
}
`
<el-descriptions-item
label=
"还款金额"
>
{{
item
.
repaymentMoney
}}
</el-descriptions-item>
}}
<el-descriptions-item
label=
"还款金额"
>
{{
item
.
repaymentMoney
}}
</el-descriptions-item>
<
/span
>
<el-descriptions-item
label=
"审批人"
>
{{
item
.
operationName
}}
</el-descriptions-item>
<
span
>
还款金额
:
{{
item
.
repaymentMoney
}}
<
/span
>
<el-descriptions-item
label=
"还款方式"
>
{{
item
.
repaymentMode
}}
</el-descriptions-item>
<
span
>
审批人
:
{{
item
.
operationName
}}
<
/span
>
<el-descriptions-item
label=
"还款详情"
>
{{
item
.
repaymentDetails
||
'
无
'
}}
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</el-timeline-item>
</el-timeline-item>
</el-timeline>
</el-timeline>
...
@@ -64,6 +76,7 @@
...
@@ -64,6 +76,7 @@
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
previewPDF
}
from
'
@/utils/download
'
import
{
approveResult
,
pettyStates
}
from
'
../pettyMoneyStaticData
'
import
{
approveResult
,
pettyStates
}
from
'
../pettyMoneyStaticData
'
export
default
{
export
default
{
props
:
{
props
:
{
...
@@ -76,23 +89,36 @@ export default {
...
@@ -76,23 +89,36 @@ export default {
type
:
Array
type
:
Array
},
},
},
},
computed
:
{
filename
:
function
()
{
const
{
pettyEnclosure
}
=
this
.
checkedRow
return
pettyEnclosure
.
slice
(
pettyEnclosure
.
lastIndexOf
(
'
/
'
)
+
1
,
pettyEnclosure
.
length
)
}
},
data
()
{
data
()
{
return
{
return
{
approveResult
,
approveResult
,
pettyStates
,
pettyStates
,
}
}
},
methods
:
{
handleDownload
()
{
let
{
pettyEnclosure
:
filePath
}
=
this
.
checkedRow
let
url
=
process
.
env
.
VUE_APP_BASE_API
+
filePath
;
previewPDF
(
url
)
},
}
}
}
}
</
script
>
</
script
>
<
style
scoped
lang
=
"
scss
"
>
<
style
scoped
lang=
"scss"
scoped
>
.drawerHeader
,
.drawerHeader
,
.drawerContainer
{
.drawerContainer
{
padding
:
15px
15px
0
;
padding
:
15px
15px
0
;
.repay-timeline
{
.repay-timeline
{
height
:
400
px
;
max-
height
:
400px
;
padding-top
:
5px
;
padding-top
:
5px
;
overflow
-
y
:
scroll
;
overflow-y
:
auto
;
span
{
span
{
margin-right
:
10px
;
margin-right
:
10px
;
...
@@ -100,4 +126,42 @@ export default {
...
@@ -100,4 +126,42 @@ export default {
}
}
}
}
}
}
.file-list
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
center
;
width
:
250px
;
padding
:
0
5px
;
border
:
1px
solid
#e6ebf5
;
border-radius
:
5px
;
.avator
{
width
:
10%
;
font-size
:
32px
;
color
:
#d75b5b
;
}
.file-content
{
width
:
80%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
padding-left
:
10px
;
}
.file-operate
{
width
:
15%
;
font-size
:
16px
;
display
:
flex
;
justify-content
:
space-around
;
align-items
:
center
;
span
{
cursor
:
pointer
;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/pettyMoney/pettyMoneyRecord.vue
View file @
b4ec9d53
...
@@ -14,13 +14,14 @@
...
@@ -14,13 +14,14 @@
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-select
v-model=
"pettyMoneyQuery.pettyState"
placeholder=
"请选择还款状态"
>
<el-select
v-model=
"pettyMoneyQuery.pettyState"
placeholder=
"请选择还款状态"
>
<el-option
v-for=
"(item, index) in pettyStates"
:key=
"index"
:value=
"index"
<el-option
v-for=
"(item, index) in pettyStates"
:key=
"index"
:value=
"index"
:label=
"item.text"
>
:label=
"item.text"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"getPettyMoneyList(true)"
>
查询
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"getPettyMoneyList(true)"
>
查询
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"pettyMoneyQuery =
{}; getPettyMoneyList(false)">重置
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"pettyMoneyQuery =
{}; getPettyMoneyList(false)">重置
</el-button>
<!--
<el-button
type=
"success"
icon=
"el-icon-circle-plus-outline"
@
click=
"dialogTableVisible = true"
>
添加合同
</el-button>
-->
<!--
<el-button
type=
"success"
icon=
"el-icon-circle-plus-outline"
@
click=
"dialogTableVisible = true"
>
添加合同
</el-button>
-->
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -58,12 +59,19 @@
...
@@ -58,12 +59,19 @@
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button-group>
<el-button-group>
<el-button
type=
"success"
size=
"mini"
v-if=
"parseInt(scope.row.pettyApproval) === 1"
<el-button
type=
"success"
size=
"mini"
v-if=
"parseInt(scope.row.pettyApproval) === 1"
@
click=
"controlDialogDrawerVisible('agree', scope.row)"
:disabled=
"parseInt(scope.row.pettySurplus) === 0"
>
{{
parseInt
(
scope
.
row
.
pettySurplus
)
===
0
?
'
已还清
'
:
'
还款
'
}}
@
click=
"controlDialogDrawerVisible('agree', scope.row)"
:disabled=
"parseInt(scope.row.pettySurplus) === 0"
>
{{
parseInt
(
scope
.
row
.
pettySurplus
)
===
0
?
'
已还清
'
:
'
还款
'
}}
</el-button>
</el-button>
<el-button
type=
"primary"
size=
"mini"
v-if=
"parseInt(scope.row.pettyApproval) === 0"
<el-button
type=
"primary"
size=
"mini"
v-if=
"parseInt(scope.row.pettyApproval) === 0"
@
click=
"$router.push(
{ path: '/editPetty', query: { pettyId: String(scope.row.pettyId) } })">
@
click=
"$router.push(
{ path: '/editPetty', query: { pettyId: String(scope.row.pettyId) } })">
编辑
</el-button>
编辑
</el-button>
<el-button
size=
"mini"
:style=
"
{background: '#5782df',color: '#fff',border: '1px solid #5782df'}"
<el-button
type=
"info"
size=
"mini"
v-if=
"parseInt(scope.row.pettyApproval) === 0"
@
click=
"revoke(scope.row)"
>
撤销
</el-button>
<el-button
size=
"mini"
:style=
"
{ background: '#5782df', color: '#fff', border: '1px solid #5782df' }"
@click="controlDialogDrawerVisible('drawerVisible', scope.row)">
@click="controlDialogDrawerVisible('drawerVisible', scope.row)">
详情
</el-button>
详情
</el-button>
</el-button-group>
</el-button-group>
...
@@ -79,9 +87,17 @@
...
@@ -79,9 +87,17 @@
</div>
</div>
<el-dialog
title=
"还款金额"
:visible=
"Boolean(dialogVisible)"
width=
"40%"
:show-close=
"false"
>
<el-dialog
title=
"还款金额"
:visible=
"Boolean(dialogVisible)"
width=
"40%"
:show-close=
"false"
>
<el-form
label-position=
"left"
:model=
"checkedRow"
label-width=
"100px"
ref=
"dialogForm"
>
<el-form
label-position=
"left"
:model=
"checkedRow"
label-width=
"100px"
ref=
"dialogForm"
>
<el-form-item
label=
"还款金额"
:rules=
"{ validator: checkRepayMoney, trigger: 'change' }"
<el-form-item
label=
"还款金额"
:rules=
"{
required: true,
validator: checkRepayMoney, trigger: 'change' }"
prop=
"repaymentMoney"
>
prop=
"repaymentMoney"
>
<el-input
v-model=
"checkedRow.repaymentMoney"
placeholder=
"请选择备用金名称"
type=
"number"
:min=
"1"
/>
<el-input
v-model=
"checkedRow.repaymentMoney"
placeholder=
"请选择备用金名称"
/>
</el-form-item>
<el-form-item
label=
"还款方式"
:rules=
"{ required: true, message: '请输入还款方式', trigger: 'blur' }"
prop=
"repaymentMode"
>
<el-input
v-model=
"checkedRow.repaymentMode"
placeholder=
"请输入还款方式"
/>
</el-form-item>
<el-form-item
label=
"还款详情"
:rules=
"{ required: false, message: '请输入详情', trigger: 'blur' }"
prop=
"repaymentDetails"
>
<el-input
v-model=
"checkedRow.repaymentDetails"
placeholder=
"请输入还款详情"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -97,7 +113,7 @@
...
@@ -97,7 +113,7 @@
</template>
</template>
<
script
>
<
script
>
import
{
mapGetters
}
from
'
vuex
'
import
{
mapGetters
}
from
'
vuex
'
import
{
selectSelfPettyRecord
,
repayMoney
,
repayRecordsByPettyId
}
from
'
@/api/pettyMoney
'
import
{
selectSelfPettyRecord
,
repayMoney
,
repayRecordsByPettyId
,
revokePetty
}
from
'
@/api/pettyMoney
'
import
{
approveResult
,
pettyStates
}
from
'
./pettyMoneyStaticData
'
import
{
approveResult
,
pettyStates
}
from
'
./pettyMoneyStaticData
'
import
{
parseTime
}
from
'
@/utils
'
import
{
parseTime
}
from
'
@/utils
'
import
applicateDetail
from
'
./components/applicateDetail
'
import
applicateDetail
from
'
./components/applicateDetail
'
...
@@ -136,11 +152,11 @@ export default {
...
@@ -136,11 +152,11 @@ export default {
methods
:
{
methods
:
{
checkRepayMoney
(
rule
,
value
,
callback
)
{
checkRepayMoney
(
rule
,
value
,
callback
)
{
// console.log(1)
// console.log(1)
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
callback
(
new
Error
(
'
还款金额不能为空
'
));
callback
(
new
Error
(
'
还款金额不能为空
'
));
}
else
if
(
parseFloat
(
value
)
<=
0
){
}
else
if
(
parseFloat
(
value
)
<=
0
)
{
callback
(
new
Error
(
'
请输入大于0的金额
'
));
callback
(
new
Error
(
'
请输入大于0的金额
'
));
}
else
if
(
value
>
this
.
checkedRow
.
pettySurplus
)
{
}
else
if
(
value
>
this
.
checkedRow
.
pettySurplus
)
{
callback
(
new
Error
(
'
超出应还款金额
'
));
callback
(
new
Error
(
'
超出应还款金额
'
));
}
else
{
}
else
{
callback
();
callback
();
...
@@ -153,11 +169,11 @@ export default {
...
@@ -153,11 +169,11 @@ export default {
userId
:
this
.
urId
userId
:
this
.
urId
}
}
//不能确定是不是条件查询,则根据上一个查询方式进行条件查询或者一般查询,=== 切换分页时候
//不能确定是不是条件查询,则根据上一个查询方式进行条件查询或者一般查询,=== 切换分页时候
if
(
isConditionSelect
===
undefined
||
isConditionSelect
===
''
){
if
(
isConditionSelect
===
undefined
||
isConditionSelect
===
''
)
{
this
.
isConditionSelect
&&
Object
.
assign
(
params
,
this
.
pettyMoneyQuery
)
this
.
isConditionSelect
&&
Object
.
assign
(
params
,
this
.
pettyMoneyQuery
)
Object
.
assign
(
params
,
this
.
pettyMoneyPageQuery
)
Object
.
assign
(
params
,
this
.
pettyMoneyPageQuery
)
//确定是某种查询方式,则更新标记,作为下一次查询的标准
//确定是某种查询方式,则更新标记,作为下一次查询的标准
}
else
{
}
else
{
this
.
isConditionSelect
=
isConditionSelect
this
.
isConditionSelect
=
isConditionSelect
isConditionSelect
&&
Object
.
assign
(
params
,
this
.
pettyMoneyQuery
)
isConditionSelect
&&
Object
.
assign
(
params
,
this
.
pettyMoneyQuery
)
params
.
pageNum
=
1
params
.
pageNum
=
1
...
@@ -188,7 +204,7 @@ export default {
...
@@ -188,7 +204,7 @@ export default {
this
.
$refs
[
'
dialogForm
'
].
resetFields
();
this
.
$refs
[
'
dialogForm
'
].
resetFields
();
},
},
getRepayDetailList
()
{
getRepayDetailList
()
{
const
params
=
{
const
params
=
{
...
@@ -205,12 +221,12 @@ export default {
...
@@ -205,12 +221,12 @@ export default {
repay
()
{
repay
()
{
this
.
$refs
.
dialogForm
.
validate
((
valida
)
=>
{
this
.
$refs
.
dialogForm
.
validate
((
valida
)
=>
{
if
(
valida
)
{
if
(
valida
)
{
const
{
pettyId
,
repaymentMoney
}
=
this
.
checkedRow
const
{
pettyId
,
repaymentMoney
,
repaymentMode
,
repaymentDetails
}
=
this
.
checkedRow
const
params
=
{
const
params
=
{
// companyId: this.companyId,
// companyId: this.companyId,
operationId
:
this
.
urId
,
operationId
:
this
.
urId
,
pettyId
,
pettyId
,
repaymentMode
,
repaymentDetails
,
repaymentMoney
,
repaymentMoney
,
repaymentMode
,
repaymentDetails
,
repaymentApproval
:
0
,
repaymentApproval
:
0
,
repaymentTime
:
parseTime
(
new
Date
()),
repaymentTime
:
parseTime
(
new
Date
()),
repaymentReason
:
''
repaymentReason
:
''
...
@@ -227,6 +243,15 @@ export default {
...
@@ -227,6 +243,15 @@ export default {
}
}
})
})
},
revoke
(
params
)
{
revokePetty
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
撤销成功
"
)
}
else
{
this
.
$message
.
error
(
"
撤销失败
"
)
}
})
}
}
}
}
}
}
...
...
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