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
ee083724
Commit
ee083724
authored
Nov 15, 2022
by
柳 佳乐
Browse files
20221115
parent
43dd450d
Changes
29
Show whitespace changes
Inline
Side-by-side
.env.development
View file @
ee083724
...
...
@@ -3,7 +3,7 @@ ENV = 'development'
# base api 后端url
#VUE_APP_BASE_API = 'http://192.168.10.107:7080'
#
VUE_APP_BASE_API = 'http://192.168.10.109:11523'
VUE_APP_BASE_API = 'http://www.aishuhong.com:11549/prod-api/'
VUE_APP_BASE_API = 'http://192.168.10.109:11523'
#
VUE_APP_BASE_API = 'http://www.aishuhong.com:11549/prod-api/'
#VUE_APP_BASE_API = 'http://192.168.31.100:7081'
src/utils/myValidate.js
View file @
ee083724
...
...
@@ -72,7 +72,7 @@ export function chinaIdentityValid(rule, value, callback) {
callback
()
}
//银行卡号检测
export
function
bankAccountValid
(
rule
,
value
,
callback
)
{
export
function
bankAccountValid
(
rule
,
value
,
callback
)
{
const
strBin
=
'
10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99
'
if
(
!
value
)
{
return
callback
(
new
Error
(
'
收款账户不能为空
'
))
...
...
@@ -87,7 +87,7 @@ export function bankAccountValid (rule, value, callback) {
}
}
// 电话号码验证
export
function
checkPhone
(
rule
,
value
,
callback
)
{
export
function
checkPhone
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
console
.
log
(
1
)
return
callback
(
new
Error
(
'
手机号不能为空
'
));
...
...
@@ -96,35 +96,30 @@ export function checkPhone (rule, value, callback) {
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
'
手机号格式不对
'
));
}
else
{
}
else
{
callback
();
}
}
};
//路径校验
export
function
pathValid
(
rule
,
value
,
callback
)
{
export
function
pathValid
(
rule
,
value
,
callback
)
{
const
RegExp
=
/^
\/
.*/
if
(
!
value
)
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'
路劲不能为空
'
))
}
else
if
(
!
RegExp
.
test
(
value
)){
}
else
if
(
!
RegExp
.
test
(
value
))
{
callback
(
new
Error
(
"
路径必须已‘/’开头
"
))
}
else
{
}
else
{
callback
();
}
}
//定义金额校验
export
function
money
(
rule
,
value
,
callback
)
{
<<<<<<<
HEAD
let
RegExp
=
/
(
^
([
-
]?)[
1-9
]([
0-9
]
+
)?(\.[
0-9
]{1,6})?
$
)
|
(
^
([
-
]?)(
0
){1}
$
)
|
(
^
([
-
]?)[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
;
if
(
RegExp
.
test
(
value
))
{
=======
let
RegExp
=
/^
(([
1-9
]{1}\d
*
)
|
(
0
{1}))(\.\d{1,2})?
$/
;
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
callback
(
new
Error
(
'
金额不能为空
'
))
}
else
if
(
RegExp
.
test
(
value
))
{
>>>>>>>
4
d6bb737cd8f5c1dac548efd85ccb5f2d8bff4da
}
else
if
(
RegExp
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
金额格式错误
"
));
...
...
@@ -132,11 +127,11 @@ export function money(rule, value, callback) {
};
//校验账号密码,只允许数字和字母
export
function
account_password_valid
(
rule
,
value
,
callback
){
export
function
account_password_valid
(
rule
,
value
,
callback
)
{
let
reg
=
/^
[
a-zA-Z0-9
]
*$/
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
callback
(
new
Error
(
'
请填写正确信息,不能为空
'
))
}
else
if
(
reg
.
test
(
value
))
{
}
else
if
(
reg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
格式错误,只允许输入数字和字母
"
));
...
...
@@ -144,13 +139,35 @@ export function account_password_valid(rule, value, callback){
}
//只允许数字
export
function
number_valid
(
rule
,
value
,
callback
){
export
function
number_valid
(
rule
,
value
,
callback
)
{
let
reg
=
/^
[
0-9
]
*$/
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
return
callback
(
new
Error
(
'
不能为空
'
))
}
else
if
(
reg
.
test
(
value
))
{
}
else
if
(
reg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
只允许输入数字
"
));
}
}
//发票号码
export
function
Invoice_No
(
rule
,
value
,
callback
)
{
let
reg
=
/^
\d{8,}
$/
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
return
callback
(
new
Error
(
'
不能为空
'
))
}
else
if
(
reg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
输入数字格式为8位数字
"
));
}
}
//发票代码
export
function
Invoice_code
(
rule
,
value
,
callback
)
{
let
reg
=
/^
\d{12,}
$/
if
(
value
===
null
||
value
===
undefined
||
value
===
''
)
{
return
callback
(
new
Error
(
'
不能为空
'
))
}
else
if
(
reg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
输入数字格式为8位数字
"
));
}
}
src/views/Spendreimbursement/finance/financeList.vue
View file @
ee083724
<
template
>
<div
class=
"container"
>
<!-- 搜索区域 -->
<div
class=
"container_top"
>
<el-form
:inline=
"true"
class=
"demo-form-inline"
:model=
"queryitem"
>
<el-form-item
label=
"项目名称:"
>
<el-input
placeholder=
"请输入"
v-model=
"queryitem.projectName"
></el-input>
</el-form-item>
<el-form-item
label=
"报销人:"
>
<el-input
placeholder=
"请输入"
v-model=
"queryitem.userName"
></el-input>
</el-form-item>
<el-form-item
label=
"审批状态:"
>
<el-select
placeholder=
"请选择"
v-model=
"queryitem.tripStatus"
>
<el-option
label=
"待审批"
value=
"0"
></el-option>
<el-option
label=
"小组长通过"
value=
"1"
></el-option>
<el-option
label=
"小组长驳回"
value=
"2"
></el-option>
<el-option
label=
"财务通过"
value=
"3"
></el-option>
<el-option
label=
"财务驳回"
value=
"4"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"onSubmit()"
>
查询
</el-button
>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"reset()"
>
重置
</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 表格内容区域 -->
<div
class=
"total_content"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
>
...
...
@@ -167,8 +209,8 @@
<el-table-column
align=
"center"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.tripStatus == 1"
>
<el-button
type=
"primary"
@
click=
"agreeandrefuse(scope.row)"
>
同意
和
驳回
</el-button
<el-button
type=
"primary"
size=
"mini"
@
click=
"agreeandrefuse(scope.row)"
>
同意
或
驳回
</el-button
>
</div>
<div
...
...
@@ -331,7 +373,7 @@
</el-form>
</el-drawer>
</div>
<!-- 同意
和
驳回 -->
<!-- 同意
或
驳回 -->
<el-drawer
title=
"核实金额"
:visible.sync=
"dialogVisible"
...
...
@@ -436,10 +478,10 @@
<el-descriptions-item
label=
"随从人员"
>
<span
v-for=
"item in financelistData.entouragelist"
:key=
"item.
tripI
d"
:key=
"item.
i
d"
style=
"margin: 0px 5px"
>
{{ item.
user
Name }}
{{ item.
personnel
Name }}
</span>
</el-descriptions-item>
</el-descriptions>
...
...
@@ -503,14 +545,6 @@
:direction=
"direction"
size=
"50%"
>
<!-- <el-button
type="primary"
style="margin-left: 5%; margin: 30px 50px"
:disabled="disabled"
@click="updatecard"
>添加附件</el-button
> -->
<el-card
class=
"box-card"
style=
"width: 90%; margin-left: 5%; margin-top: 20px"
...
...
@@ -518,13 +552,13 @@
>
<el-row
class=
"row-bg"
>
<div
v-for=
"i
ndex
in queryDTOList"
:key=
"i
ndex
.enclosureId"
v-for=
"i
tem
in queryDTOList"
:key=
"i
tem
.enclosureId"
class=
"lsitall"
>
<el-col
:span=
"10"
>
<div
style=
"margin-top: 6px; margin-left: 40px"
>
附件{{ i
ndex
.enclosureId }}
附件{{ i
tem
.enclosureId }}
</div>
</el-col>
<el-col
:span=
"12"
style=
"margin-left: -50px"
>
...
...
@@ -534,89 +568,13 @@
class=
"a-style"
size=
"mini"
style=
"font-size: 13px"
@
click=
"delProject(i
ndex
)"
@
click=
"delProject(i
tem
)"
>
下载
</el-button
>
<!-- <el-popover placement="top" width="160" v-model="index.visible">
<p>确定要删除此条附件吗</p>
<div style="text-align: right; margin: 0">
<el-button
size="mini"
type="text"
@click="index.visible = false"
>取消</el-button
>
<el-button
type="primary"
size="mini"
@click="deleteProject(index)"
>确定</el-button
>
</div>
<el-button
type="danger"
icon="el-icon-delete"
class="a-style"
size="mini "
style="font-size: 13px"
slot="reference"
>删除</el-button
>
</el-popover> -->
</el-col>
</div>
</el-row>
</el-card>
<!-- 附件上传 -->
<!-- <el-card
class="box-card"
style="width: 90%; margin-left: 5%; margin-top: 20px"
v-show="getshow == 0"
>
<div style="width: 60%; margin-left: 30px">
<el-input
type="textarea"
:rows="2"
placeholder="请输入附件详情"
v-model="proutlist1.enclosureDescribe"
style="margin: 20px 0px"
></el-input>
<el-upload
class="upload-demo"
ref="upload1"
drag
:action="action1"
:file-list="fileList1"
:on-remove="delfile1"
:auto-upload="false"
:on-change="onChangepdf"
:on-success="Refresh"
:data="proutlist1"
multiple
style="margin: 20px 0px"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传附件</em>
</div>
<div class="el-upload__tip" slot="tip">
只能上传文件,且不超过500kb
</div>
</el-upload>
</div>
<div style="margin-left: 75%">
<el-button @click="remove()">取 消</el-button>
<el-button
type="primary"
@click="determine()"
style="margin-top: 20px"
>确 定</el-button
>
</div>
</el-card> -->
<div
class=
"box-card"
v-show=
"getshow == 3"
></div>
</el-drawer>
</div>
...
...
@@ -641,6 +599,9 @@ export default {
data
()
{
return
{
queryitem
:
{
projectName
:
null
,
userName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
companyId
:
null
,
...
...
@@ -656,7 +617,7 @@ export default {
tableData
:
[],
// 随从人员
entouragelist
:
[],
// 同意
和
驳回
// 同意
或
驳回
agreeOrapproval
:
{
tripId
:
null
,
tripStatus
:
0
,
//状态
...
...
@@ -670,6 +631,7 @@ export default {
drawer
:
false
,
paramlist
:
{},
financelistData
:
{},
getinvoivelist
:
[],
rules
:
{
verifyTotalAmountLarge
:
[
{
...
...
@@ -679,7 +641,10 @@ export default {
},
],
verifyTotalAmountSmall
:
[
{
required
:
true
,
validator
:
money
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
,
},
],
},
...
...
@@ -728,7 +693,6 @@ export default {
queryBypagefinance
(
this
.
queryitem
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
total
=
res
.
data
.
total
;
this
.
tableData
=
res
.
data
.
list
;
res
.
data
.
list
.
forEach
((
item
)
=>
{
...
...
@@ -756,6 +720,25 @@ export default {
this
.
financelistData
=
data
;
this
.
dialogVisible
=
true
;
},
// 搜索
onSubmit
()
{
this
.
queryitem
.
pageNum
=
1
;
this
.
getpagelist
();
},
// 重置
reset
()
{
this
.
queryitem
=
{
projectName
:
null
,
userName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
companyId
:
null
,
};
// 获取 companyId
this
.
queryitem
.
companyId
=
this
.
$store
.
getters
.
companyId
;
this
.
getpagelist
();
},
// 查看详情
getdetails
(
data
)
{
this
.
drawer
=
true
;
...
...
@@ -775,7 +758,6 @@ export default {
this
.
agreeOrapproval
.
tripStatus
=
3
;
this
.
agreeOrapproval
.
tripId
=
this
.
financelistData
.
tripId
;
this
.
agreeOrapproval
.
financeTime
=
this
.
time
();
console
.
log
(
this
.
agreeOrapproval
);
finApproval
(
this
.
agreeOrapproval
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
...
...
@@ -804,10 +786,20 @@ export default {
},
// 驳回
refuse
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$prompt
(
"
驳回理由
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
inputErrorMessage
:
"
驳回理由必填!
"
,
type
:
"
warning
"
,
inputValidator
:
(
value
)
=>
{
if
(
value
)
{
return
true
;
}
else
{
return
false
;
}
},
})
.
then
((
value
)
=>
{
this
.
agreeOrapproval
.
financeId
=
this
.
$store
.
getters
.
urId
;
...
...
@@ -835,6 +827,8 @@ export default {
message
:
"
取消操作
"
,
});
});
}
});
},
//时间处理 yyyy-MM-dd hh:mm:ss
time
()
{
...
...
@@ -874,7 +868,6 @@ export default {
this
.
getinvoivelist
.
forEach
((
e
)
=>
{
e
.
filePath
=
process
.
env
.
VUE_APP_BASE_API
+
e
.
filePath
;
});
// console.log(this.getinvoivelist);
}
else
{
this
.
$message
.
error
(
res
.
msg
);
this
.
back
();
...
...
@@ -1024,59 +1017,9 @@ export default {
a
.
click
();
// 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
a
.
remove
();
// 一次性的,用完就删除a标签
},
//显示添加附件
// updatecard() {
// this.getshow = 0;
// this.disabled = true;
// this.delfile1();
// },
//删除附件
// deleteProject(row) {
// deleteById(row)
// .then((res) => {
// if (res.success) {
// this.selectImage(row);
// this.$message({
// message: "删除成功",
// type: "success",
// });
// this.visible = false;
// console.log(res.msg);
// }
// })
// .catch((errror) => {
// this.$message.error(res.msg);
// });
// },
//清除附件文件
// delfile1(file) {
// this.fileList1 = this.fileList1.filter((item) => item.uid !== file.uid);
// this.fileTypepdf = false;
// this.proutlist1.enclosureDescribe = "";
// },
//确定提交附件
// determine() {
// //判断是否有附件文件
// if (this.fileTypepdf) {
// this.proutlist1.userId = this.$store.getters.urId;
// this.proutlist1.companyId = this.$store.getters.companyId;
// this.$refs.upload1.submit();
// this.getshow = 1; //隐藏与显示
// this.disabled = false;
// this.$message({
// showClose: true,
// message: "上传附件成功",
// type: "success",
// });
// this.Refresh();
// } else {
// this.$message.error("请添加附件,在进行提交");
// }
// },
//刷新附件
Refresh
()
{
this
.
queryDTO
.
tripId
=
this
.
proutlist1
.
Id
;
console
.
log
(
this
.
proutlist1
.
Id
);
selectByIdF
(
this
.
queryDTO
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
...
...
@@ -1090,33 +1033,6 @@ export default {
this
.
$message
.
error
(
"
获取附件文件失败
"
);
});
},
//附件取消
// remove() {
// if (this.queryDTOList.length > 0) {
// this.getshow = 1;
// this.disabled = false;
// this.backii();
// this.delfile1();
// } else {
// this.getshow = 3;
// this.disabled = false;
// this.backii();
// this.delfile1();
// }
// },
//附件文件校验
// onChangepdf(file) {
// console.log(this.proutlist1);
// const fileNamepdf = file.name;
// let fileType = fileNamepdf.substring(fileNamepdf.lastIndexOf("."));
// if (fileType != "") {
// this.fileTypepdf = true;
// } else {
// this.$message.warning("附件只能只能上传文件");
// this.$refs.upload1.clearFiles();
// this.fileTypepdf = false;
// }
// },
//判断图片与pdf显示与隐藏
fromgetlist
(
row
)
{
...
...
@@ -1135,7 +1051,6 @@ export default {
//跳转修改
Agrt
(
row
)
{
const
photopath
=
row
.
filePath
;
console
.
log
(
photopath
);
window
.
open
(
photopath
,
"
_blank
"
);
},
},
...
...
@@ -1143,6 +1058,9 @@ export default {
</
script
>
<
style
scoped
>
.container_top
{
padding
:
15px
;
}
.total_content
{
padding
:
15px
;
}
...
...
src/views/Spendreimbursement/headman/headmanList.vue
View file @
ee083724
<
template
>
<div
class=
"container"
>
<!-- 搜索区域 -->
<div
class=
"container_top"
>
<el-form
:inline=
"true"
class=
"demo-form-inline"
:model=
"queryitem"
>
<el-form-item
label=
"项目名称:"
>
<el-input
placeholder=
"请输入"
v-model=
"queryitem.projectName"
></el-input>
</el-form-item>
<el-form-item
label=
"报销人:"
>
<el-input
placeholder=
"请输入"
v-model=
"queryitem.userName"
></el-input>
</el-form-item>
<el-form-item
label=
"审批状态:"
>
<el-select
placeholder=
"请选择"
v-model=
"queryitem.tripStatus"
>
<el-option
label=
"待审批"
value=
"0"
></el-option>
<el-option
label=
"小组长通过"
value=
"1"
></el-option>
<el-option
label=
"小组长驳回"
value=
"2"
></el-option>
<el-option
label=
"财务通过"
value=
"3"
></el-option>
<el-option
label=
"财务驳回"
value=
"4"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"onSubmit"
>
查询
</el-button
>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"reset()"
>
重置
</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 表格内容区域 -->
<div
class=
"total_content"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
>
...
...
@@ -336,7 +378,6 @@
</el-table-column>
</el-table>
</el-drawer>
<!-- 附件的下载与添加 -->
<div>
<el-drawer
...
...
@@ -345,14 +386,6 @@
:direction=
"direction"
size=
"50%"
>
<!-- <el-button
type="primary"
style="margin-left: 5%; margin: 30px 50px"
:disabled="disabled"
@click="updatecard"
>添加附件</el-button
> -->
<el-card
class=
"box-card"
style=
"width: 90%; margin-left: 5%; margin-top: 20px"
...
...
@@ -379,33 +412,6 @@
@
click=
"delProject(index)"
>
下载
</el-button
>
<!-- <el-popover placement="top" width="160" v-model="index.visible">
<p>确定要删除此条附件吗</p>
<div style="text-align: right; margin: 0">
<el-button
size="mini"
type="text"
@click="index.visible = false"
>取消</el-button
>
<el-button
type="primary"
size="mini"
@click="deleteProject(index)"
>确定</el-button
>
</div>
<el-button
type="danger"
icon="el-icon-delete"
class="a-style"
size="mini "
style="font-size: 13px"
slot="reference"
>删除</el-button
>
</el-popover> -->
</el-col>
</div>
</el-row>
...
...
@@ -483,6 +489,9 @@ export default {
return
{
total
:
null
,
queryitem
:
{
projectName
:
null
,
userName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
userId
:
null
,
...
...
@@ -493,15 +502,15 @@ export default {
entouragelist
:
[],
drawer
:
false
,
paramlist
:
{},
// 同意
和
驳回
// 同意
或
驳回
agreeOrapproval
:
{
tripStatus
:
0
,
//状态
headmanId
:
null
,
// userid
headmanTime
:
""
,
headmanRefute
:
"
无
"
,
headmanRefute
:
""
,
tripId
:
null
,
},
getinvoivelist
:
[],
invoiceShow
:
false
,
//查询图片给的值
getinvoiveId
:
{
...
...
@@ -554,7 +563,6 @@ export default {
queryByheadman
(
this
.
queryitem
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
total
=
res
.
data
.
total
;
this
.
tableData
=
res
.
data
.
list
;
res
.
data
.
list
.
forEach
((
item
)
=>
{
...
...
@@ -578,11 +586,31 @@ export default {
this
.
$message
.
error
(
"
查询失败
"
);
});
},
// 搜索
onSubmit
()
{
this
.
queryitem
.
pageNum
=
1
;
this
.
getpagelist
();
},
// 重置
reset
()
{
this
.
queryitem
=
{
projectName
:
null
,
userName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
userId
:
null
,
};
// 获取 userId
this
.
queryitem
.
userId
=
this
.
$store
.
getters
.
urId
;
this
.
getpagelist
();
},
// 同意
agree
(
data
)
{
this
.
$confirm
(
"
是否同意此报销单?, 是否继续?
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
})
.
then
(()
=>
{
...
...
@@ -590,7 +618,6 @@ export default {
this
.
agreeOrapproval
.
tripStatus
=
1
;
this
.
agreeOrapproval
.
tripId
=
data
.
tripId
;
this
.
agreeOrapproval
.
headmanTime
=
this
.
time
();
console
.
log
(
this
.
agreeOrapproval
);
Approval
(
this
.
agreeOrapproval
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
...
...
@@ -599,7 +626,6 @@ export default {
message
:
"
同意成功!
"
,
});
this
.
getpagelist
();
console
.
log
(
data
);
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
...
...
@@ -620,7 +646,15 @@ export default {
this
.
$prompt
(
"
驳回理由
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
inputErrorMessage
:
"
驳回理由必填!
"
,
type
:
"
warning
"
,
inputValidator
:
(
value
)
=>
{
if
(
value
)
{
return
true
;
}
else
{
return
false
;
}
},
})
.
then
((
value
)
=>
{
this
.
agreeOrapproval
.
headmanId
=
data
.
userId
;
...
...
@@ -633,7 +667,6 @@ export default {
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
操作成功
"
);
this
.
getpagelist
();
console
.
log
(
data
);
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
...
...
@@ -744,7 +777,6 @@ export default {
//刷新附件
Refresh
()
{
this
.
queryDTO
.
tripId
=
this
.
proutlist1
.
Id
;
console
.
log
(
this
.
proutlist1
.
Id
);
selectByIdF
(
this
.
queryDTO
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
...
...
@@ -775,7 +807,6 @@ export default {
//跳转修改
Agrt
(
row
)
{
const
photopath
=
row
.
filePath
;
console
.
log
(
photopath
);
window
.
open
(
photopath
,
"
_blank
"
);
},
},
...
...
@@ -783,6 +814,9 @@ export default {
</
script
>
<
style
scoped
>
.container_top
{
padding
:
15px
;
}
.total_content
{
padding
:
15px
;
}
...
...
src/views/Spendreimbursement/spendreimbursementAdd.vue
View file @
ee083724
...
...
@@ -3,7 +3,6 @@
ref=
"ruleform"
:model=
"spendreimbursementform"
label-width=
"120px"
:label-position=
"labelPosition"
:rules=
"rules"
>
<el-main>
...
...
@@ -194,7 +193,7 @@
v-model=
"spendreimbursementform.fromList"
multiple
filterable
allow-create
default-first-option
placeholder=
"请选择"
>
...
...
@@ -232,43 +231,47 @@
<!-- 对话框1 -->
<el-dialog
title=
"选择随行人员"
:visible.sync=
"dialogFormVisible"
>
<!-- -->
<el-form
:model=
"peopleList"
:inline=
"true"
>
<el-form
:model=
"peopleList"
>
<el-row
v-for=
"(item, index) in peopleList.insertBatch"
:key=
"index"
>
<el-col
:span=
"32"
>
<el-form-item
:label=
"'姓名' + (index + 1)"
:prop=
"'peopleList.insertBatch.' + index"
:prop=
"'insertBatch.' + index + '.personnelName'"
:rules=
"
{
required: true,
message: '姓名不能为空',
trigger: 'blur',
}"
>
<el-row>
<el-col
:span=
"12"
><div
class=
"grid-content bg-purple"
>
<el-col
:span=
"8"
><div
class=
"grid-content bg-purple-light"
>
<el-input
v-model=
"item.personnelName"
v-model
.trim
=
"item.personnelName"
></el-input></div
></el-col>
<el-col
:span=
"
12
"
><div
class=
"grid-content bg-purple-light"
style=
"margin
: 0px
5px"
>
<el-button
@
click.prevent=
"removeDomain(item)"
<el-col
:span=
"
3
"
><div
class=
"grid-content bg-purple"
>
<el-button
style=
"margin
-left:
5px"
:disabled=
"deletestaus"
@
click.prevent=
"removeDomain(item)"
>
删除
</el-button
>
<el-button
@
click=
"addDomain"
>
新增类型
</el-button>
</div></el-col
>
</el-row>
<el-col
:span=
"6"
><div
class=
"grid-content bg-purple-light"
>
<el-button
@
click=
"addDomain"
>
新增人员
</el-button>
</div></el-col
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- -->
<!-- 操作 -->
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
@
click=
"btn"
>
测试
</button>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogFormVisible = false"
>
确 定
</el-button
...
...
@@ -298,6 +301,7 @@ import { selectProjectpeople } from "@/api/spendreimbursement.js";
import
{
insertId
}
from
"
@/api/spendreimbursement.js
"
;
import
{
Addinvoice
}
from
"
@/api/spendreimbursement.js
"
;
import
{
selectAllBystatus
}
from
"
@/api/project
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
created
()
{
this
.
Typeitem
.
companyId
=
this
.
$store
.
getters
.
companyId
;
...
...
@@ -311,15 +315,6 @@ export default {
this
.
reimebursementprojectpeopleItem
();
},
data
()
{
var
moneyrow
=
(
rule
,
value
,
callback
)
=>
{
let
RegExp
=
/
(
^
([
-
]?)[
1-9
]([
0-9
]
+
)?(\.[
0-9
]{1,2})?
$
)
|
(
^
([
-
]?)(
0
){1}
$
)
|
(
^
([
-
]?)[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
;
if
(
RegExp
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
金额格式错误
"
));
}
};
return
{
dialogFormVisible
:
false
,
labelPosition
:
"
left
"
,
...
...
@@ -393,6 +388,7 @@ export default {
// 收集随从人员进行展示
collectProjectpeople
:
[],
getinvoivelist
:
[],
deletestaus
:
true
,
// 验证规则
rules
:
{
fromList
:
[
...
...
@@ -417,8 +413,7 @@ export default {
transitPlace
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
applyTotalAmountLarge
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
applyTotalAmountSmall
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
applyTime
:
[
{
...
...
@@ -430,36 +425,28 @@ export default {
planeTicket
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
vehicle
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
foodAllowance
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
publicMiscellaneousSubsidy
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
tripCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
planeTicket
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
trafficCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
lodgingCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
insuranceCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
otherCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
remarks
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
...
...
@@ -481,20 +468,6 @@ export default {
};
},
methods
:
{
// 这是测试的数据
btn
()
{
console
.
log
(
this
.
peopleList
.
insertBatch
);
},
btn2
()
{
this
.
spendreimbursementform
.
fromList
.
forEach
((
e
)
=>
{
let
obj
=
{};
obj
.
companyId
=
this
.
$store
.
getters
.
companyId
;
obj
.
status
=
1
;
obj
.
invoiceId
=
e
;
this
.
form
.
push
(
obj
);
});
console
.
log
(
this
.
form
);
},
//查询发票编号
Selectinsertlsit
()
{
let
param
=
{
...
...
@@ -533,10 +506,8 @@ export default {
this
.
peopleList
.
insertBatch
.
forEach
((
e
)
=>
{
let
obj
=
{};
obj
.
personnelName
=
e
.
personnelName
;
obj
.
tripId
=
res
.
data
;
addpeopleList
.
push
(
obj1
,
obj
);
});
console
.
log
(
addpeopleList
);
// 第二个方法 添加随从人员
insertId
(
addpeopleList
)
...
...
@@ -564,6 +535,7 @@ export default {
.
then
((
resu
)
=>
{
if
(
resu
.
success
)
{
this
.
$message
.
success
(
"
添加成功!
"
);
this
.
back
();
}
else
{
this
.
$message
.
error
(
resu
.
msg
);
}
...
...
@@ -586,6 +558,7 @@ export default {
},
//
addDomain
()
{
this
.
deletestaus
=
false
;
this
.
peopleList
.
insertBatch
.
push
({
personnelName
:
""
,
tripId
:
null
,
...
...
@@ -643,6 +616,8 @@ export default {
},
// 弹窗按钮
addBtn1
()
{
this
.
peopleList
.
insertBatch
=
[
0
];
this
.
deletestaus
=
true
;
this
.
dialogFormVisible
=
true
;
},
// 开关选项
...
...
@@ -665,13 +640,17 @@ export default {
let
time
=
this
.
timestampToTime
(
val
);
this
.
spendreimbursementform
.
applyTime
=
time
;
}
},
// 计算天数
},
// 计算天数
DateDiff
(
sDate1
,
sDate2
)
{
let
oDate1
,
oDate2
,
iDays
;
oDate1
=
new
Date
(
sDate1
);
//sDate1和sDate2是2006-12-18格式
var
oDate1
,
oDate2
,
iDays
;
oDate1
=
new
Date
(
sDate1
);
//转换为12-18-2006格式
oDate2
=
new
Date
(
sDate2
);
iDays
=
parseInt
(
Math
.
abs
(
oDate1
-
oDate2
)
/
1000
/
60
/
60
/
24
);
//把相差的毫秒数转换为天数
console
.
log
(
iDays
);
return
iDays
;
},
//开始结束 时间的处理 计算天数
...
...
src/views/Spendreimbursement/spendreimbursementList.vue
View file @
ee083724
...
...
@@ -2,12 +2,47 @@
<div
class=
"container"
>
<!-- 添加按钮 -->
<div
class=
"total_top"
>
<el-form
:inline=
"true"
class=
"demo-form-inline"
:model=
"queryitem"
>
<el-form-item
label=
"项目名称:"
>
<el-input
placeholder=
"请输入"
v-model=
"queryitem.projectName"
></el-input>
</el-form-item>
<el-form-item
label=
"审批状态:"
>
<el-select
placeholder=
"请选择"
v-model=
"queryitem.tripStatus"
>
<el-option
label=
"待审批"
value=
"0"
></el-option>
<el-option
label=
"小组长通过"
value=
"1"
></el-option>
<el-option
label=
"小组长驳回"
value=
"2"
></el-option>
<el-option
label=
"财务通过"
value=
"3"
></el-option>
<el-option
label=
"财务驳回"
value=
"4"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"onSubmit()"
>
查询
</el-button
>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"reset()"
>
重置
</el-button
>
</el-form-item>
<el-form-item>
<el-button
type=
"success"
icon=
"el-icon-circle-plus"
@
click=
"insertreimebursementItem"
>
申请出差报销
</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 表格内容区域 -->
<div
class=
"total_content"
>
...
...
@@ -97,7 +132,7 @@
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"项目
列表
"
prop=
"projectName"
>
<el-table-column
align=
"center"
label=
"
报销
项目"
prop=
"projectName"
>
</el-table-column>
<el-table-column
align=
"center"
...
...
@@ -422,7 +457,6 @@
v-model=
"fromList"
multiple
filterable
allow-create
default-first-option
placeholder=
"请选择"
>
...
...
@@ -443,45 +477,43 @@
</div>
<!-- 对话框1 -->
<el-dialog
title=
"修改随从人员"
:visible.sync=
"dialogFormVisible"
>
<el-form
:model=
"peopleList"
:inline=
"true"
ref=
"peopleForm"
>
<el-form
:model=
"peopleList"
ref=
"peopleForm"
>
<el-row
v-for=
"(item, index) in peopleList.collectName"
:key=
"item.index"
>
<el-col
:span=
"32"
>
<el-form-item
:label=
"'姓名' + (index + 1)"
:prop=
"'collectName.' + index +'.personnelName'"
:prop=
"'collectName.' + index +
'.personnelName'"
:rules=
"{
required: true,
message: '姓名不能为空',
trigger: 'blur',
}"
>
<el-row>
<el-col
:span=
"12"
><div
class=
"grid-content bg-purple"
>
<el-col
:span=
"8"
><div
class=
"grid-content bg-purple-light"
>
<el-input
v-model.trim=
"item.personnelName"
:disabled=
"item.disable"
></el-input></div
></el-col>
<el-col
:span=
"12"
><div
class=
"grid-content bg-purple-light"
style=
"margin: 0px 5px"
>
<el-col
:span=
"3"
><div
class=
"grid-content bg-purple"
>
<el-button
style=
"margin-left: 5px"
@
click.prevent=
"removeDomain(item)"
:disabled=
"item.disable"
>
删除
</el-button
>
</div></el-col
>
<el-col
:span=
"6"
><div
class=
"grid-content bg-purple-light"
>
<el-button
@
click=
"addDomain"
>
新增人员
</el-button>
</div></el-col
>
</el-row>
</el-form-item>
</el-col>
</el-row>
</el-form>
...
...
@@ -644,7 +676,7 @@ import {
import
{
insertId
}
from
"
@/api/spendreimbursement.js
"
;
import
{
selectByinvoice
,
delet
einvoiceConnect
,
delet
Bystatus
,
selectAllBystatus
,
}
from
"
@/api/project
"
;
//selectProjectpeople
...
...
@@ -667,6 +699,8 @@ export default {
activeName
:
"
second
"
,
total
:
0
,
queryitem
:
{
projectName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
userId
:
null
,
...
...
@@ -747,13 +781,9 @@ export default {
tripId
:
null
,
companyId
:
null
,
},
find
:
false
,
};
},
methods
:
{
// 这是测试的数据
btn
()
{},
//
addDomain
()
{
this
.
peopleList
.
collectName
.
push
({
...
...
@@ -785,6 +815,24 @@ export default {
});
});
},
// 搜索
onSubmit
()
{
this
.
queryitem
.
pageNum
=
1
;
this
.
getpagelist
();
},
// 重置
reset
()
{
this
.
queryitem
=
{
projectName
:
null
,
tripStatus
:
null
,
pageNum
:
1
,
pageSize
:
10
,
userId
:
null
,
};
// 获取 userId
this
.
queryitem
.
userId
=
this
.
$store
.
getters
.
urId
;
this
.
getpagelist
();
},
// 修改随从人员
updatereimbursementPeople
()
{
this
.
$refs
.
peopleForm
.
validate
((
valid
)
=>
{
...
...
@@ -819,7 +867,7 @@ export default {
}
});
},
//查询发票编号
//查询
出要添加的
发票编号
Selectinvoicelsit
()
{
this
.
insertvioiceFrom
=
true
;
this
.
fromList
=
[];
...
...
@@ -884,7 +932,7 @@ export default {
type
:
"
warning
"
,
})
.
then
(()
=>
{
delet
einvoiceConnect
(
invoices
)
delet
Bystatus
(
invoices
)
.
then
((
result
)
=>
{
if
(
result
.
success
)
{
this
.
$message
({
...
...
@@ -1000,7 +1048,7 @@ export default {
},
//查询发票编号
Selectlsitinvoice
()
{
select
Byinvoice
(
this
.
parm
)
select
AllById
(
this
.
parm
)
.
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
invoicelist
=
res
.
data
;
...
...
src/views/Spendreimbursement/spendreimbursementListUpdate.vue
View file @
ee083724
...
...
@@ -3,7 +3,6 @@
ref=
"ruleform"
:model=
"spendreimbursementform"
label-width=
"120px"
:label-position=
"labelPosition"
:rules=
"rules"
:data=
"spendreimbursementform"
>
...
...
@@ -15,7 +14,6 @@
<!-- projectId -->
<el-form-item
label=
"报销项目"
:label-width=
"formLabelWidth"
prop=
"projectId"
>
<el-select
...
...
@@ -216,11 +214,11 @@
<
script
>
import
{
selectTypeitem
}
from
"
@/api/spendreimbursement.js
"
;
import
{
insertId
}
from
"
@/api/spendreimbursement.js
"
;
// selectProjectitem
import
{
selectProjectitem
}
from
"
@/api/spendreimbursement.js
"
;
import
{
update
}
from
"
@/api/spendreimbursement.js
"
;
import
{
selectByTripId
}
from
"
@/api/spendreimbursement.js
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
created
()
{
this
.
triplistfrom
();
...
...
@@ -231,21 +229,10 @@ export default {
this
.
spendreimbursementform
.
userId
=
this
.
$store
.
getters
.
urId
;
this
.
reimebursementtypeItem
();
this
.
reimebursementprojectItem
();
this
.
reimebursementprojectpeopleItem
();
},
data
()
{
var
moneyrow
=
(
rule
,
value
,
callback
)
=>
{
let
RegExp
=
/
(
^
([
-
]?)[
1-9
]([
0-9
]
+
)?(\.[
0-9
]{1,2})?
$
)
|
(
^
([
-
]?)(
0
){1}
$
)
|
(
^
([
-
]?)[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
;
// /^(([1-9][0-9]{0,14})|([0]{1})|(([0]\\.\\d{1,2}|[1-9][0-9]{0,14}\\.\\d{1,2})))$/;
if
(
RegExp
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
金额格式错误
"
));
}
};
return
{
dialogFormVisible
:
false
,
labelPosition
:
"
left
"
,
values
:
false
,
timeSlot
:
[],
userId
:
[],
...
...
@@ -328,8 +315,7 @@ export default {
transitPlace
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
applyTotalAmountLarge
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
applyTotalAmountSmall
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
applyTime
:
[
{
...
...
@@ -341,36 +327,28 @@ export default {
planeTicket
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
vehicle
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
foodAllowance
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
publicMiscellaneousSubsidy
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
tripCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
planeTicket
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
trafficCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
lodgingCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
insuranceCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
otherCost
:
[
{
required
:
true
,
message
:
"
此项不能为空!
"
},
{
validator
:
moneyrow
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
blur
"
},
],
remarks
:
[{
required
:
true
,
message
:
"
此项不能为空!
"
}],
...
...
@@ -545,7 +523,6 @@ export default {
},
// 大小写
convertCurrency
(
money
)
{
console
.
log
(
money
);
//汉字的数字
var
cnNums
=
new
Array
(
"
零
"
,
...
...
src/views/assets/administration/administrationUpdate.vue
View file @
ee083724
...
...
@@ -52,6 +52,7 @@
<
script
>
import
{
selectByFixedId
,
updates
}
from
"
@/api/assets
"
;
import
{
money
,
account_password_valid
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -74,7 +75,7 @@ export default {
{
required
:
true
,
message
:
"
请输入活动名称
"
,
trigger
:
"
change
"
}
],
fixedCode
:
[
{
required
:
true
,
message
:
"
请收入资产编号
"
,
trigger
:
"
change
"
}
{
validator
:
account_password_valid
,
trigger
:
"
blur
"
}
],
fixedAddress
:
[
{
...
...
@@ -84,7 +85,10 @@ export default {
}
],
fixedMoney
:
[
{
required
:
true
,
message
:
"
请输入资产金额
"
,
trigger
:
"
change
"
}
{
validator
:
money
,
trigger
:
"
change
"
}
]
}
};
...
...
src/views/assets/assetsUpedata.vue
View file @
ee083724
...
...
@@ -79,7 +79,7 @@
import
{
insert
}
from
"
@/api/assets
"
;
import
{
secletAllStaff
}
from
"
@/api/user
"
;
import
user
from
"
../../store/modules/user
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
import
{
money
,
account_password_valid
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -110,8 +110,7 @@ export default {
{
required
:
true
,
message
:
"
请输入活动名称
"
,
trigger
:
"
change
"
}
],
fixedCode
:
[
{
required
:
true
,
message
:
"
请收入资产编号
"
,
trigger
:
"
change
"
},
{
validator
:
this
.
checkData
,
trigger
:
"
blur
"
}
{
validator
:
account_password_valid
,
trigger
:
"
blur
"
}
],
fixedAddress
:
[
{
...
...
@@ -121,7 +120,6 @@ export default {
}
],
fixedMoney
:
[
{
required
:
true
,
message
:
"
请输入资产金额
"
,
trigger
:
"
change
"
},
{
validator
:
money
,
trigger
:
"
change
"
...
...
@@ -295,17 +293,6 @@ export default {
registerTime
:
null
//登记时间
};
},
//不能为中文的校验
checkData
(
rule
,
value
,
callback
)
{
if
(
value
)
{
if
(
/
[\u
4E00-
\u
9FA5
]
/g
.
test
(
value
))
{
callback
(
new
Error
(
"
资产编码由数字或字符组成!
"
));
}
else
{
callback
();
}
}
callback
();
}
},
beforeDestroy
()
{
if
(
this
.
timer
)
{
...
...
src/views/companyFile/companyFileAdd.vue
View file @
ee083724
...
...
@@ -31,7 +31,6 @@
</el-input>
</el-form-item>
<el-form-item
label=
"上传公司文件"
>
<el-upload
class=
"upload-demo"
drag
...
...
@@ -47,7 +46,6 @@
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
文件大小不超过500kb
</div>
</el-upload>
</el-form-item>
<br
/>
<div
class=
"items"
>
...
...
@@ -94,8 +92,10 @@ export default {
this
.
action
=
process
.
env
.
VUE_APP_BASE_API
+
"
/file/companyFile
"
;
},
methods
:
{
//提交公司文件
submitForm
()
{
//判断是否有文件
var
file
=
this
.
$refs
.
Upload
.
uploadFiles
;
if
(
file
!=
""
)
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$refs
.
Upload
.
submit
();
...
...
@@ -103,6 +103,9 @@ export default {
this
.
returnback
();
}
});
}
else
{
this
.
$message
.
error
(
"
请添加附件,在进行提交
"
);
}
},
//返回
returnback
()
{
...
...
src/views/contract/contractList.vue
View file @
ee083724
...
...
@@ -11,7 +11,7 @@
</el-form-item>
<el-form-item>
<el-select
v-model=
"contractQuery.typeId"
placeholder=
"请选择合同类型"
>
<el-option
v-for=
"
(
item
, index)
in contractTypeList"
:key=
"item.id"
:value=
"item.id"
<el-option
v-for=
"item in contractTypeList"
:key=
"item.id"
:value=
"item.id"
:label=
"item.name"
></el-option>
</el-select>
</el-form-item>
...
...
src/views/contract/contractType.vue
View file @
ee083724
<
template
>
<div
class=
"main"
>
<div
class=
"header"
>
<el-button
type=
"success"
icon=
"el-icon-circle-plus-outline"
@
click=
"dialogFormVisible = true;"
>
<el-form
:inline=
"true"
:model=
"contractTypeQuey"
>
<!-- 合同名称,合同编号,合同类型,合同性质 -->
<el-form-item>
<el-input
v-model=
"contractTypeQuey.name"
placeholder=
"根据类型名称查询"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"qurey()"
>
查询
</el-button
>
<el-button
type=
"primary"
icon=
"el-icon-refresh-right"
@
click=
"reset()"
>
重置
</el-button
>
<el-button
type=
"success"
icon=
"el-icon-circle-plus-outline"
@
click=
"dialogFormVisible = true"
>
添加类型
</el-button>
</el-form-item>
</el-form>
</div>
<div
class=
"container"
>
<el-table
:data=
"contractTypeList"
style=
"width: 100%;text-align: center;"
border
>
<el-table
:data=
"contractTypeList"
style=
"width: 100%; text-align: center"
border
>
<el-table-column
label=
"序号"
width=
"50px"
>
<template
slot-scope=
"scope"
>
{{
(
contractTypeQuey
.
pageNum
-
1
)
*
contractTypeQuey
.
pageSize
+
scope
.
$index
+
1
}}
{{
(
contractTypeQuey
.
pageNum
-
1
)
*
contractTypeQuey
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"类别名称"
/>
<el-table-column
prop=
"state"
label=
"启用状态"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.state"
@
change=
"updateState(
{ ...scope.row, state: Math.abs(scope.row.state - 1) })"
active-color="#13ce66" inactive-color="#ff4949">
<el-switch
v-model=
"scope.row.state"
@
change=
"
updateState(
{
...scope.row,
state: Math.abs(scope.row.state - 1),
})
"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
icon=
"el-icon-edit"
@
click=
"edit(scope.row)"
>
编辑
<el-button
type=
"text"
icon=
"el-icon-edit"
@
click=
"edit(scope.row)"
>
编辑
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"footer"
>
<el-pagination
@
current-change=
"getContractTypeList"
:current-page.sync=
"contractTypeQuey.pageNum"
:page-size=
"contractTypeQuey.pageSize"
layout=
"total, prev, pager, next"
:total=
"total"
>
<el-pagination
@
current-change=
"getContractTypeList"
:current-page.sync=
"contractTypeQuey.pageNum"
:page-size=
"contractTypeQuey.pageSize"
layout=
"total, prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
<el-dialog
:title=
"(isEdit ? '修改' : '添加') + '合同类型'"
:visible.sync=
"dialogFormVisible"
@
closed=
"resetData"
>
<el-dialog
:title=
"(isEdit ? '修改' : '添加') + '合同类型'"
:visible.sync=
"dialogFormVisible"
@
closed=
"resetData"
>
<el-form
ref=
"form"
:model=
"dynamicValidateForm"
label-width=
"130px"
>
<el-form-item
label=
"合同类型名称"
prop=
"name"
:rules=
"[{ required: true, message: '请输入合同类型名称' }]"
>
<el-input
v-model=
"dynamicValidateForm.name"
autocomplete=
"off"
></el-input>
<el-form-item
label=
"合同类型名称"
prop=
"name"
:rules=
"[{ required: true, message: '请输入合同类型名称' }]"
>
<el-input
v-model=
"dynamicValidateForm.name"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
v-show=
"!isEdit"
v-for=
"(name, index) in dynamicValidateForm.names"
:label=
"'合同类型名称' + (parseInt(index) + 1)"
:prop=
"'names.' + index + '.value'"
:key=
"index"
:rules=
"[{
required: true, message: '合同类型名称不能为空', trigger: 'blur'
}]"
>
<el-form-item
v-show=
"!isEdit"
v-for=
"(name, index) in dynamicValidateForm.names"
:label=
"'合同类型名称' + (parseInt(index) + 1)"
:prop=
"'names.' + index + '.value'"
:key=
"index"
:rules=
"[
{
required: true,
message: '合同类型名称不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model=
"name.value"
>
<el-button
slot=
"append"
icon=
"el-icon-delete"
@
click.prevent=
"dynamicValidateForm.names.splice(index, 1)"
>
删除
<el-button
slot=
"append"
icon=
"el-icon-delete"
@
click.prevent=
"dynamicValidateForm.names.splice(index, 1)"
>
删除
</el-button>
</el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
v-if=
"!isEdit"
@
click=
"dynamicValidateForm.names.push({ value: '' });"
>
增加类型
</el-button>
<el-button
v-if=
"!isEdit"
@
click=
"dynamicValidateForm.names.push({ value: '' })"
>
增加类型
</el-button
>
<el-button
@
click=
"resetData"
>
取 消
</el-button>
<el-button
v-if=
"isEdit"
type=
"primary"
@
click=
"update(dynamicValidateForm)"
>
确 定
</el-button>
<el-button
v-else
type=
"primary"
@
click=
"addContractType"
>
确 定
</el-button>
<el-button
v-if=
"isEdit"
type=
"primary"
@
click=
"update(dynamicValidateForm)"
>
确 定
</el-button
>
<el-button
v-else
type=
"primary"
@
click=
"addContractType"
>
确 定
</el-button
>
</div>
</el-dialog>
</div>
...
...
@@ -68,19 +148,18 @@ import {
selectContractTypeList
,
addContractType
as
insert
,
updateContractType
,
updateContractTypeState
}
from
'
@/api/contract
'
import
{
mapGetters
}
from
'
vuex
'
updateContractTypeState
,
}
from
"
@/api/contract
"
;
import
{
mapGetters
}
from
"
vuex
"
;
export
default
{
computed
:
{
...
mapGetters
([
'
companyId
'
])
...
mapGetters
([
"
companyId
"
]),
},
data
()
{
return
{
contractTypeQuey
:
{
name
:
null
,
pageSize
:
10
,
pageNum
:
1
,
},
...
...
@@ -89,99 +168,119 @@ export default {
typeList
:
[],
dialogFormVisible
:
false
,
dynamicValidateForm
:
{
names
:
[]
},
isEdit
:
false
}
isEdit
:
false
,
}
;
},
mounted
()
{
this
.
getContractTypeList
()
this
.
getContractTypeList
()
;
},
methods
:
{
resetData
()
{
this
.
isEdit
=
false
;
this
.
dialogFormVisible
=
false
this
.
dynamicValidateForm
=
{
names
:
[],
name
:
''
}
this
.
dialogFormVisible
=
false
;
this
.
dynamicValidateForm
=
{
names
:
[],
name
:
""
}
;
this
.
$refs
.
form
.
resetFields
();
},
edit
(
data
)
{
this
.
isEdit
=
true
;
this
.
dialogFormVisible
=
true
;
this
.
dynamicValidateForm
=
{
...
data
}
this
.
dynamicValidateForm
=
{
...
data
}
;
},
getContractTypeList
(
data
)
{
const
params
=
{
companyId
:
this
.
companyId
||
this
.
$store
.
getters
.
companyId
,
...
this
.
contractTypeQuey
,
...
data
}
...
data
,
}
;
selectContractTypeList
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
contractTypeList
=
res
.
data
.
list
.
map
(
item
=>
{
return
{
...
item
,
state
:
parseInt
(
item
.
state
)
===
0
}
})
this
.
total
=
res
.
data
.
total
this
.
contractTypeList
=
res
.
data
.
list
.
map
((
item
)
=>
{
return
{
...
item
,
state
:
parseInt
(
item
.
state
)
===
0
};
});
this
.
total
=
res
.
data
.
total
;
}
else
{
this
.
contractTypeList
=
[]
this
.
total
=
0
this
.
contractTypeList
=
[]
;
this
.
total
=
0
;
}
})
});
},
update
(
data
)
{
if
(
this
.
$refs
.
form
)
{
const
params
=
{
companyId
:
this
.
companyId
||
this
.
$store
.
getters
.
companyId
,
...
data
}
!
Number
.
isInteger
(
data
.
state
)
&&
(
params
.
state
=
Number
(
!
data
.
state
))
updateContractType
(
params
).
then
(
res
=>
{
...
data
,
}
;
!
Number
.
isInteger
(
data
.
state
)
&&
(
params
.
state
=
Number
(
!
data
.
state
))
;
updateContractType
(
params
).
then
(
(
res
)
=>
{
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
修改成功
"
)
this
.
dialogFormVisible
&&
(
this
.
dialogFormVisible
=
false
)
this
.
getContractTypeList
()
this
.
$message
.
success
(
"
修改成功
"
);
this
.
dialogFormVisible
&&
(
this
.
dialogFormVisible
=
false
);
this
.
getContractTypeList
();
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
})
})
;
}
},
updateState
(
data
){
updateState
(
data
)
{
const
params
=
{
companyId
:
this
.
companyId
||
this
.
$store
.
getters
.
companyId
,
...
data
}
!
Number
.
isInteger
(
data
.
state
)
&&
(
params
.
state
=
Number
(
!
data
.
state
))
updateContractTypeState
(
params
).
then
(
res
=>
{
...
data
,
}
;
!
Number
.
isInteger
(
data
.
state
)
&&
(
params
.
state
=
Number
(
!
data
.
state
))
;
updateContractTypeState
(
params
).
then
(
(
res
)
=>
{
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
修改成功
"
)
this
.
$message
.
success
(
"
修改成功
"
)
;
// this.dialogFormVisible && (this.dialogFormVisible = false)
this
.
getContractTypeList
()
this
.
getContractTypeList
()
;
}
})
})
;
},
addContractType
()
{
this
.
$refs
.
form
.
validate
((
valida
)
=>
{
if
(
valida
)
{
const
data
=
{
state
:
0
,
//默认开启,
state
:
0
,
//默认开启,
companyId
:
this
.
companyId
||
this
.
$store
.
getters
.
companyId
,
}
let
params
=
[{
};
let
params
=
[
{
...
data
,
name
:
this
.
dynamicValidateForm
.
name
}]
name
:
this
.
dynamicValidateForm
.
name
,
},
];
if
(
this
.
dynamicValidateForm
.
names
.
length
)
{
params
=
params
.
concat
(
this
.
dynamicValidateForm
.
names
.
map
(
name
=>
{
return
{
...
data
,
name
:
name
.
value
}
}))
params
=
params
.
concat
(
this
.
dynamicValidateForm
.
names
.
map
((
name
)
=>
{
return
{
...
data
,
name
:
name
.
value
};
})
);
}
insert
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
$message
.
success
(
"
添加成功
"
)
this
.
resetData
()
this
.
getContractTypeList
()
this
.
$message
.
success
(
"
添加成功
"
)
;
this
.
resetData
()
;
this
.
getContractTypeList
()
;
}
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
$message
.
error
(
res
.
msg
)
;
}
})
})
;
}
})
}
}
}
});
},
//查询
qurey
()
{
this
.
contractTypeQuey
.
pageNum
=
1
this
.
getContractTypeList
();
},
//重置
reset
()
{
this
.
contractTypeQuey
.
name
=
null
this
.
contractTypeQuey
.
pageNum
=
1
this
.
getContractTypeList
()
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.main
{
...
...
src/views/expense/expenseList.vue
View file @
ee083724
<
template
>
<div>
<!-- 发票模块 -->
<div
class=
"QueryInvoice"
style=
"margin:10px 15px"
>
<div
class=
"QueryInvoice"
style=
"margin:
10px 15px"
>
<el-row
:gutter=
"30"
>
<el-col
:span=
"30"
>
<el-form
:inline=
"true"
:model=
"invoiceList"
>
<el-form-item
label=
"发票号码"
style=
"margin-left"
>
<el-input
v-model=
"invoiceList.number"
placeholder=
"发票号码"
></el-input>
<el-input
v-model=
"invoiceList.number"
placeholder=
"发票号码"
></el-input>
</el-form-item>
<el-form-item
label=
"发票代码"
>
<el-input
v-model=
"invoiceList.code"
placeholder=
"发票代码"
></el-input>
<el-input
v-model=
"invoiceList.code"
placeholder=
"发票代码"
></el-input>
</el-form-item>
<el-form-item
label=
"发票类型"
>
<el-select
v-model=
"invoiceList.category"
placeholder=
"请选择"
>
...
...
@@ -43,26 +49,34 @@
</el-form-item>
</el-form>
</el-col>
<el-col
:span=
"12"
style=
"margin:20px 5px
;
"
>
<el-col
:span=
"12"
style=
"margin:
20px 5px"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
style=
"margin:1px 5px
;
"
style=
"margin:
1px 5px"
@
click=
"selectexpend()"
>
查询
</el-button>
<el-button
type=
"info"
icon=
"el-icon-refresh"
@
click=
"upddlist()"
>
刷新
</el-button>
<el-button
type=
"success"
icon=
"el-icon-download"
@
click=
"Reimbursement()"
>
添加发票单
</el-button>
>
查询
</el-button
>
<el-button
type=
"info"
icon=
"el-icon-refresh"
@
click=
"upddlist()"
>
刷新
</el-button
>
<el-button
type=
"success"
icon=
"el-icon-download"
@
click=
"Reimbursement()"
>
添加发票单
</el-button
>
</el-col>
</el-row>
</div>
<!-- 表格区域 -->
<div
class=
"drawer"
v-show=
"isgetid==0"
style=
"margin-left:15px"
>
<div
class=
"drawer"
v-show=
"isgetid
==
0"
style=
"margin-left:
15px"
>
<el-table
:data=
"invoicegetList.list"
border
style=
"width:99%"
:cell-style=
"
{'text-align':'center'}"
:header-cell-style="{'text-align':'center'}"
style=
"width:
99%"
:cell-style=
"
{
'text-align':
'center'
}"
:header-cell-style="{
'text-align':
'center'
}"
>
<el-table-column
label=
"序号"
width=
"50"
style
>
<template
slot-scope=
"scope"
>
...
...
@@ -74,20 +88,41 @@
</
template
>
</el-table-column>
<el-table-column
prop=
"code"
label=
"发票代码"
></el-table-column>
<el-table-column
prop=
"number"
label=
"发票号码"
width=
"width"
></el-table-column>
<el-table-column
prop=
"time"
label=
"发票时间"
></el-table-column>
<el-table-column
prop=
"number"
label=
"发票号码"
width=
"width"
></el-table-column>
<el-table-column
prop=
"time"
label=
"发票时间"
:formatter=
"getFroms"
></el-table-column>
<el-table-column
prop=
"category"
label=
"发票类型"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"
scope.row.category ==
'0' ? 'info':'primary'
"
>
{{
scope
.
row
.
category
==
'
0
'
?
'
普票
'
:
'
专票
'
}}
</el-tag>
<el-tag
:type=
"scope.row.category == '0' ? 'info' : 'primary'"
>
{{
scope
.
row
.
category
==
"
0
"
?
"
普票
"
:
"
专票
"
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
prop=
"type"
label=
"发票类别"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.type== '0' ? 'success' : scope.row.type == '1' ? 'danger':'warning' "
>
{{
scope
.
row
.
type
==
'
0
'
?
'
收入
'
:
scope
.
row
.
type
==
'
1
'
?
'
支出
'
:
'
报销
'
}}
</el-tag>
:type=
"
scope.row.type == '0'
? 'success'
: scope.row.type == '1'
? 'danger'
: 'warning'
"
>
{{
scope
.
row
.
type
==
"
0
"
?
"
收入
"
:
scope
.
row
.
type
==
"
1
"
?
"
支出
"
:
"
报销
"
}}
</el-tag
>
</
template
>
</el-table-column>
<el-table-column
prop=
"mone"
label=
"发票金额"
></el-table-column>
...
...
@@ -101,15 +136,17 @@
></el-image>
</div>
<div
v-else
>
<a
class=
"a-style"
@
click=
"handlePreView(scope.row)"
>
点击查看文件
</a>
<a
class=
"a-style"
@
click=
"handlePreView(scope.row)"
>
点击查看文件
</a
>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
label=
"发票状态"
width=
"90px"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"
scope.row.status ==
'0' ? 'info':'warning'
"
>
{{
scope
.
row
.
status
==
0
?
'
未报销
'
:
"
已报销
"
}}
</el-tag>
<el-tag
:type=
"scope.row.status == '0' ? 'info' : 'warning'"
>
{{
scope
.
row
.
status
==
0
?
"
未报销
"
:
"
已报销
"
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
prop=
"prop"
label=
"操作"
>
...
...
@@ -117,22 +154,29 @@
<el-popover
placement=
"top"
width=
"160"
v-model=
"scope.row.visible"
>
<p>
确定要删除当前发票吗
</p>
<div
style=
"text-align: right; margin: 0"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"scope.row.visible = false"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"YesGet(scope.row)"
>
确定
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"scope.row.visible = false"
>
取消
</el-button
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"YesGet(scope.row)"
>
确定
</el-button
>
</div>
<el-button
type=
"danger"
icon=
"el-icon-delete"
slot=
"reference"
size=
"mini"
:disabled=
"scope.row.status==
0?
false
:
true"
:disabled=
"scope.row.status
==
0 ?
false
:
true"
></el-button>
</el-popover>
</
template
>
</el-table-column>
</el-table>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
style=
" margin: 15px 70%;"
>
<el-col
:span=
"4"
>
<!-- 分页 -->
<div
class=
"foot_yi"
>
<el-pagination
...
...
@@ -140,18 +184,17 @@
layout=
"total, prev, pager, next"
:total=
"invoicegetList.total"
:current-page=
"invoiceList.pages"
background
></el-pagination>
</div>
</el-col>
</el-row>
</div>
<!-- 添加区域 -->
<div
class=
"getadd"
v-show=
"isgetid==1"
style=
"margin-left:5%"
>
<div
class=
"getadd"
v-show=
"isgetid
==
1"
style=
"margin-left:
5%"
>
<el-row>
<el-col
:xl=
"8"
:lg=
"10"
:md=
"8"
:sm=
"12"
:xs=
"24"
>
<el-form
style=
"width:100%;margin:30px 0px"
style=
"width:
100%;
margin:
30px 0px"
:model=
"addTO"
:rules=
"rules"
ref=
"addTO"
...
...
@@ -162,6 +205,7 @@
<el-input
v-model=
"addTO.code"
maxlength=
"12"
minlength=
"12"
onkeyup=
"this.value=this.value.replace(/\D|^/g,'')"
></el-input>
</el-form-item>
...
...
@@ -169,6 +213,7 @@
<el-input
v-model=
"addTO.number"
maxlength=
"8"
minlength=
"8"
onkeyup=
"this.value=this.value.replace(/\D|^/g,'')"
></el-input>
</el-form-item>
...
...
@@ -204,8 +249,15 @@
<el-input
v-model=
"addTO.mone"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"success"
icon=
"el-icon-folder-checked"
@
click=
"getlistForm()"
>
立即创建
</el-button>
<el-button
type=
"info"
icon=
"el-icon-refresh"
@
click=
"delectdd"
>
重置信息
</el-button>
<el-button
type=
"success"
icon=
"el-icon-folder-checked"
@
click=
"getlistForm()"
>
立即创建
</el-button
>
<el-button
type=
"info"
icon=
"el-icon-refresh"
@
click=
"delectdd"
>
重置信息
</el-button
>
<el-button
@
click=
"cancel()"
>
取消
</el-button>
</el-form-item>
</el-form>
...
...
@@ -221,15 +273,18 @@
:on-change=
"onChange"
:on-remove=
"delfile"
:limit=
"1"
style=
"margin-left:90px
;
"
style=
"margin-left:
90px"
>
<el-button
slot=
"trigger"
size=
"small"
type=
"primary"
style=
"margin-left:20px;margin-top:40px;"
>
选取文件
</el-button>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传jpg/png/pdf文件,且不超过500kb
</div>
style=
"margin-left: 20px; margin-top: 40px"
>
选取文件
</el-button
>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传jpg/png/pdf文件,且不超过500kb
</div>
</el-upload>
</el-col>
</el-row>
...
...
@@ -239,7 +294,7 @@
<
script
>
import
{
insertList
,
queryBypageIncomeAdd
,
deleteexpen
}
from
"
@/api/project
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
import
{
money
,
Invoice_code
,
Invoice_No
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -252,14 +307,14 @@ export default {
qurey
:
{
pageNum
:
1
,
pageSize
:
5
,
companyId
:
null
companyId
:
null
,
},
total
:
0
total
:
0
,
},
fileList
:
[],
proutlist
:
{
Id
:
1
,
status
:
0
status
:
0
,
},
companyId
:
0
,
isgetid
:
0
,
...
...
@@ -268,36 +323,36 @@ export default {
options
:
[
{
value
:
0
,
category
:
"
普票
"
category
:
"
普票
"
,
},
{
value
:
1
,
category
:
"
专票
"
}
category
:
"
专票
"
,
}
,
],
options1
:
[
{
value
:
0
,
type
:
"
收入
"
type
:
"
收入
"
,
},
{
value
:
1
,
type
:
"
支出
"
type
:
"
支出
"
,
},
{
value
:
2
,
type
:
"
报销
"
}
type
:
"
报销
"
,
}
,
],
options2
:
[
{
value
:
0
,
status
:
"
未报销
"
status
:
"
未报销
"
,
},
{
value
:
1
,
status
:
"
已报销
"
}
status
:
"
已报销
"
,
}
,
],
//添加发票的数组
addTO
:
{
...
...
@@ -308,41 +363,43 @@ export default {
number
:
null
,
status
:
0
,
time
:
null
,
type
:
null
type
:
null
,
},
//抽屉的临时数据
//表单验证内容
rules
:
{
time
:
[
{
required
:
true
,
message
:
"
请输入发票时间
"
,
trigger
:
"
change
"
}
{
required
:
true
,
message
:
"
请输入发票时间
"
,
trigger
:
"
change
"
}
,
],
number
:
[
{
required
:
true
,
message
:
"
请输入发票号码
"
,
trigger
:
"
change
"
}
{
validator
:
Invoice_No
,
trigger
:
"
blur
"
,
},
],
code
:
[
{
required
:
true
,
message
:
"
请输入发票代码
"
,
trigger
:
"
change
"
}
{
required
:
true
,
validator
:
Invoice_code
,
trigger
:
"
change
"
}
,
],
category
:
[
{
required
:
true
,
message
:
"
请至少选择一个发票类型
"
,
trigger
:
"
change
"
}
trigger
:
"
change
"
,
}
,
],
type
:
[
{
required
:
true
,
message
:
"
请至少选择一个发票类别
"
,
trigger
:
"
change
"
}
trigger
:
"
change
"
,
}
,
],
mone
:
[
{
required
:
true
,
message
:
"
请输入发票金额
"
,
trigger
:
"
change
"
},
{
validator
:
money
,
trigger
:
"
change
"
}
]
trigger
:
"
change
"
,
}
,
]
,
},
//查询发票数据
invoiceList
:
{
...
...
@@ -358,7 +415,7 @@ export default {
searchCount
:
null
,
status
:
null
,
time
:
null
,
type
:
null
type
:
null
,
},
//发票状态
status
:
0
,
...
...
@@ -371,7 +428,7 @@ export default {
//查询发票编号的数组
getinvoiveId
:
{
companyId
:
null
,
type
:
0
type
:
0
,
},
pageNum
:
10
,
total
:
10
,
...
...
@@ -379,7 +436,8 @@ export default {
newList
:
[],
visible
:
false
,
//确认删除
//查看发票图片
srcList
:
[]
srcList
:
[],
fileTypeJpg
:
false
,
};
},
computed
:
{
...
...
@@ -403,8 +461,8 @@ export default {
path
:
"
/incomeList
"
,
query
:
{
id
:
this
.
$route
.
query
.
id
,
backid
:
this
.
$route
.
query
.
backid
}
backid
:
this
.
$route
.
query
.
backid
,
}
,
});
},
//时间处理 yyyy-MM-dd hh:mm:ss
...
...
@@ -429,11 +487,11 @@ export default {
//抽屉的关闭
handleClose
(
done
)
{
this
.
$confirm
(
"
确认关闭?
"
)
.
then
(
_
=>
{
.
then
(
(
_
)
=>
{
this
.
isgetid
=
0
;
done
();
})
.
catch
(
_
=>
{});
.
catch
(
(
_
)
=>
{});
},
//发票页面的按钮事件
drawerAdd
()
{
...
...
@@ -446,9 +504,9 @@ export default {
},
selectggb
()
{
let
list
=
[];
this
.
invoicegetList
.
forEach
(
item
=>
{
this
.
invoicegetList
.
forEach
(
(
item
)
=>
{
list
.
push
({
status
:
item
.
status
status
:
item
.
status
,
});
});
},
...
...
@@ -456,7 +514,7 @@ export default {
getincomeSelectlist
(
pager
=
1
)
{
this
.
invoiceList
.
pageNum
=
pager
;
queryBypageIncomeAdd
(
this
.
invoiceList
)
.
then
(
res
=>
{
.
then
(
(
res
)
=>
{
if
(
res
.
success
)
{
this
.
invoicegetList
=
res
.
data
;
this
.
total
=
res
.
data
.
total
;
...
...
@@ -467,7 +525,7 @@ export default {
// });
// });
this
.
srcList
=
[];
res
.
data
.
list
.
forEach
(
e
=>
{
res
.
data
.
list
.
forEach
(
(
e
)
=>
{
let
fileNamepdf
=
e
.
filePath
;
let
fileType
=
fileNamepdf
.
substring
(
fileNamepdf
.
lastIndexOf
(
"
.
"
)
...
...
@@ -480,7 +538,7 @@ export default {
this
.
$message
.
errror
(
res
.
msg
);
}
})
.
catch
(
error
=>
{
.
catch
(
(
error
)
=>
{
this
.
$message
.
error
(
"
查询发票数据失败
"
);
});
},
...
...
@@ -488,13 +546,13 @@ export default {
handleSizeChange
(
val
)
{
this
.
invoicegetList
.
pageSize
=
val
;
},
handleCurrentChange
:
function
(
currentPage
)
{
handleCurrentChange
:
function
(
currentPage
)
{
this
.
total
=
this
.
invoicegetList
.
length
;
this
.
currentPage
=
currentPage
;
},
//取消隐藏tatle
cancel
()
{
this
.
fileList
=
this
.
fileList
.
filter
(
item
=>
item
.
uid
!==
file
.
uid
);
this
.
fileList
=
this
.
fileList
.
filter
(
(
item
)
=>
item
.
uid
!==
file
.
uid
);
this
.
isgetid
=
0
;
this
.
getincomeSelectlist
();
},
...
...
@@ -502,17 +560,17 @@ export default {
Reimbursement
()
{
this
.
isgetid
=
1
;
this
.
$refs
.
addTO
.
resetFields
();
this
.
fileList
=
this
.
fileList
.
filter
(
item
=>
item
.
uid
!==
file
.
uid
);
this
.
fileList
=
this
.
fileList
.
filter
(
(
item
)
=>
item
.
uid
!==
file
.
uid
);
},
//发票提交页面的提交
getlistForm
()
{
if
(
this
.
fileTypeJpg
==
true
)
{
this
.
$refs
.
addTO
.
validate
(
valid
=>
{
this
.
$refs
.
addTO
.
validate
(
(
valid
)
=>
{
if
(
valid
)
{
this
.
addTO
.
userId
=
this
.
$store
.
getters
.
urId
;
this
.
addTO
.
companyId
=
this
.
$store
.
getters
.
companyId
;
insertList
(
this
.
addTO
)
.
then
(
res
=>
{
.
then
(
(
res
)
=>
{
if
(
res
.
success
)
{
//发票记录添加成功
//提交发票文件
...
...
@@ -530,7 +588,7 @@ export default {
time
:
null
,
type
:
0
,
//0 普票 1专票
userId
:
null
,
pages
:
1
pages
:
1
,
};
//this.$refs.upload.clearFiles();
this
.
getincomeSelectlist
();
...
...
@@ -539,7 +597,7 @@ export default {
this
.
$message
.
error
(
res
.
msg
);
}
})
.
catch
(
e
=>
{
.
catch
(
(
e
)
=>
{
this
.
$message
.
error
(
"
发票添加失败,检测是否重复
"
);
});
}
...
...
@@ -581,15 +639,15 @@ export default {
orders
:
[
{
asc
:
null
,
column
:
null
}
column
:
null
,
}
,
],
pageNum
:
1
,
pageSize
:
10
,
searchCount
:
null
,
status
:
null
,
time
:
null
,
type
:
null
type
:
null
,
}),
(
this
.
invoiceList
.
companyId
=
this
.
$store
.
getters
.
companyId
);
this
.
invoiceList
.
pageNum
=
1
;
...
...
@@ -598,12 +656,12 @@ export default {
//发票的删除操作
YesGet
(
row
)
{
deleteexpen
(
row
)
.
then
(
res
=>
{
.
then
(
(
res
)
=>
{
if
(
res
.
success
)
{
this
.
visible
=
false
;
this
.
$message
({
message
:
"
发票删除成功
"
,
type
:
"
success
"
type
:
"
success
"
,
});
this
.
getincomeSelectlist
(
this
.
invoicegetList
.
list
.
length
>
1
...
...
@@ -614,7 +672,7 @@ export default {
this
.
$message
.
error
(
res
.
msg
);
}
})
.
catch
(
e
=>
{
.
catch
(
(
e
)
=>
{
this
.
$message
.
error
(
e
.
msg
);
});
},
...
...
@@ -633,6 +691,13 @@ export default {
}
}
},
getFroms
:
function
(
value
)
{
var
dt
=
new
Date
(
value
.
time
);
let
year
=
dt
.
getFullYear
();
let
month
=
dt
.
getMonth
()
+
1
;
let
date
=
dt
.
getDate
();
return
`
${
year
}
年
${
month
}
月
${
date
}
日`
;
},
getimagin
(
row
)
{
return
process
.
env
.
VUE_APP_BASE_API
+
row
.
filePath
;
},
...
...
@@ -641,8 +706,8 @@ export default {
const
photopath
=
process
.
env
.
VUE_APP_BASE_API
+
row
.
filePath
;
console
.
log
(
photopath
);
window
.
open
(
photopath
,
"
_blank
"
);
}
}
}
,
}
,
};
</
script
>
...
...
src/views/permission/role.vue
View file @
ee083724
...
...
@@ -92,8 +92,8 @@ export default {
dialogVisible
:
false
,
companyId
:
''
,
rules
:
{
rlName
:
[{
required
:
true
,
message
:
"
角色名称不能为空
"
}],
rlDesc
:
[{
required
:
true
,
message
:
"
角色描述不能为空
"
}]
rlName
:
[{
required
:
true
,
message
:
"
角色名称不能为空
"
,
trigger
:
'
blur
'
}],
rlDesc
:
[{
required
:
true
,
message
:
"
角色描述不能为空
"
,
trigger
:
'
blur
'
}]
}
}
},
...
...
src/views/project/expend/expendAdd.vue
View file @
ee083724
...
...
@@ -23,7 +23,6 @@
v-model=
"invoiceListAdd"
multiple
filterable
allow-create
default-first-option
placeholder=
"请选择发票编号"
>
...
...
@@ -52,15 +51,15 @@
<el-input
v-model=
"expendFrom.expendObject"
></el-input>
</el-form-item>
<el-form-item
label=
"支出
内容
"
prop=
"expendBody"
>
<el-form-item
label=
"支出
用途
"
prop=
"expendBody"
>
<el-input
v-model=
"expendFrom.expendBody"
></el-input>
</el-form-item>
<el-form-item
label=
"支出
备注"
prop=
"expendRemarks
"
>
<el-form-item
label=
"支出
附言
"
>
<el-input
v-model=
"expendFrom.expendRemarks"
></el-input>
</el-form-item>
<el-form-item
label=
"支出详情"
prop=
"expendInformation"
>
<el-form-item
label=
"支出详情"
>
<el-input
type=
"textarea"
:autosize=
"
{ minRows: 4, maxRows: 8 }"
...
...
@@ -134,6 +133,7 @@ import {
}
from
"
@/api/project
"
;
import
{
selectAll
}
from
"
@/api/type
"
;
import
{
insert
}
from
"
@/api/expend
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -159,10 +159,8 @@ export default {
//表单验证内容
rules
:
{
expendMoney
:
[
{
required
:
true
,
message
:
"
请输入支出金额
"
,
trigger
:
"
blur
"
},
{
pattern
:
/
(
^
([
-
]?)[
1-9
]([
0-9
]
+
)?(\.[
0-9
]{1,6})?
$
)
|
(
^
([
-
]?)(
0
){1}
$
)
|
(
^
([
-
]?)[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
,
message
:
"
输入支出金额不合法
"
,
validator
:
money
,
trigger
:
"
change
"
}
],
...
...
@@ -176,13 +174,7 @@ export default {
{
required
:
true
,
message
:
"
请输入支出对象
"
,
trigger
:
"
change
"
}
],
expendBody
:
[
{
required
:
true
,
message
:
"
请输入支出内容
"
,
trigger
:
"
change
"
}
],
expendRemarks
:
[
{
required
:
true
,
message
:
"
请输入支出备注
"
,
trigger
:
"
change
"
}
],
expendInformation
:
[
{
required
:
true
,
message
:
"
请输入支出详情
"
,
trigger
:
"
change
"
}
{
required
:
true
,
message
:
"
请输入支出用途
"
,
trigger
:
"
change
"
}
],
number
:
[
{
required
:
true
,
message
:
"
请输入发票号码
"
,
trigger
:
"
change
"
}
...
...
src/views/project/expend/expendList.vue
View file @
ee083724
...
...
@@ -2,10 +2,10 @@
<div
class=
"container"
>
<div
class=
"header"
>
<el-form
:inline=
"true"
:model=
"expendQurey"
>
<el-form-item
label=
"
收入
对象"
>
<el-form-item
label=
"
支出
对象"
>
<el-input
v-model=
"expendQurey.expendObject"
placeholder=
"收入对象"
></el-input>
</el-form-item>
<el-form-item
label=
"
收入
类别"
>
<el-form-item
label=
"
支出
类别"
>
<el-select
v-model=
"expendQurey.expendType"
>
<el-option
v-for=
"item in options"
...
...
@@ -16,11 +16,11 @@
</el-select>
</el-form-item>
<el-form-item
label=
"
收入
内容"
>
<el-form-item
label=
"
支出
内容"
>
<el-input
v-model=
"expendQurey.expendBody"
placeholder=
"收入内容"
></el-input>
</el-form-item>
<el-form-item
label=
"
收入
时间"
>
<el-form-item
label=
"
支出
时间"
>
<el-date-picker
v-model=
"mainTime"
type=
"datetimerange"
...
...
@@ -259,7 +259,6 @@
v-model=
"getListincom"
multiple
filterable
allow-create
default-first-option
style=
"width:100%;"
placeholder=
"请选择要添加的发票编号"
...
...
src/views/project/expend/expendUpdata.vue
View file @
ee083724
...
...
@@ -42,11 +42,11 @@
<el-input
v-model=
"expendFrom.expendObject"
></el-input>
</el-form-item>
<el-form-item
label=
"支出
内容
"
prop=
"expendBody"
>
<el-form-item
label=
"支出
用途
"
prop=
"expendBody"
>
<el-input
v-model=
"expendFrom.expendBody"
></el-input>
</el-form-item>
<el-form-item
label=
"支出
备注
"
prop=
"expendRemarks"
>
<el-form-item
label=
"支出
附言
"
prop=
"expendRemarks"
>
<el-input
v-model=
"expendFrom.expendRemarks"
></el-input>
</el-form-item>
...
...
@@ -81,6 +81,7 @@
<
script
>
import
{
selectAll
}
from
"
@/api/type
"
;
import
{
update
,
selectById
,
del
}
from
"
@/api/expend
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -106,7 +107,10 @@ export default {
{
required
:
true
,
message
:
"
请选择支出类型
"
,
trigger
:
"
change
"
},
],
expendMoney
:
[
{
required
:
true
,
message
:
"
请输入支出金额
"
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
change
"
}
],
expendTime
:
[
{
required
:
true
,
message
:
"
请选择支出时间
"
,
trigger
:
"
change
"
},
...
...
src/views/project/income/incomeAdd.vue
View file @
ee083724
...
...
@@ -22,7 +22,7 @@
v-model=
"invoiceListAdd"
multiple
filterable
allow-create
default-first-option
placeholder=
"请选择发票编号"
>
...
...
@@ -51,10 +51,10 @@
<el-form-item
label=
"收入用途"
prop=
"incomeBody"
>
<el-input
v-model=
"incomeFrom.incomeBody"
></el-input>
</el-form-item>
<el-form-item
label=
"收入附言"
prop=
"incomeRemarks"
>
<el-form-item
label=
"收入附言"
>
<el-input
v-model=
"incomeFrom.incomeRemarks"
></el-input>
</el-form-item>
<el-form-item
label=
"收入详情"
prop=
"incomeInformation"
>
<el-form-item
label=
"收入详情"
>
<el-input
type=
"textarea"
:autosize=
"
{ minRows: 4, maxRows: 8 }"
...
...
@@ -125,7 +125,7 @@ import {
}
from
"
@/api/project
"
;
import
{
selectAll
}
from
"
@/api/type
"
;
import
{
insert
}
from
"
@/api/imcome
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -156,58 +156,17 @@ export default {
incomeBody
:
[
{
required
:
true
,
message
:
"
没有输入对收入内容
"
,
trigger
:
"
change
"
}
],
incomeRemarks
:
[
{
required
:
true
,
message
:
"
没有输入收入备注
"
,
trigger
:
"
change
"
}
],
incomeInformation
:
[
{
required
:
true
,
message
:
"
没有输入收入详情
"
,
trigger
:
"
change
"
}
],
incomeMoney
:
[
{
required
:
true
,
message
:
"
请输入收入金额
"
,
trigger
:
"
blur
"
},
{
pattern
:
/
(
^
([
-
]?)[
1-9
]([
0-9
]
+
)?(\.[
0-9
]{1,6})?
$
)
|
(
^
([
-
]?)(
0
){1}
$
)
|
(
^
([
-
]?)[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
,
message
:
"
输入收入金额不合法
"
,
validator
:
money
,
trigger
:
"
change
"
}
],
incomeTime
:
[
{
required
:
true
,
message
:
"
请选择收到时间
"
,
trigger
:
"
change
"
}
],
time
:
[
{
required
:
true
,
message
:
"
请选择发票时间
"
,
trigger
:
"
change
"
}
],
number
:
[
{
required
:
true
,
message
:
"
请输入发票号码
"
,
trigger
:
"
change
"
}
],
code
:
[
{
required
:
true
,
message
:
"
请输入发票代码
"
,
trigger
:
"
change
"
}
],
category
:
[
{
required
:
true
,
message
:
"
请至少选择一个发票类型
"
,
trigger
:
"
change
"
}
],
type
:
[
{
required
:
true
,
message
:
"
请至少选择一个发票类别
"
,
trigger
:
"
change
"
}
],
mone
:
[{
required
:
true
,
message
:
"
请输入发票金额
"
,
trigger
:
"
change
"
}]
},
options
:
[
{
value
:
0
,
category
:
"
普票
"
},
{
value
:
1
,
category
:
"
专票
"
}
],
invoiceListAdd
:
[],
//选择的发票号
getinvoivelist
:
[],
//查询的能选择的表单信息
typeList
:
[],
//收入类型列表
...
...
src/views/project/income/incomeList.vue
View file @
ee083724
...
...
@@ -180,7 +180,7 @@
v-model=
"getListincom"
multiple
filterable
allow-create
default-first-option
style=
"width:100%;"
placeholder=
"请选择要添加的发票编号"
...
...
src/views/project/income/incomeUpdata.vue
View file @
ee083724
...
...
@@ -42,11 +42,11 @@
<el-input
v-model=
"incomeFrom.incomeObject"
></el-input>
</el-form-item>
<el-form-item
label=
"收入
内容
"
prop=
"incomeBody"
>
<el-form-item
label=
"收入
用途
"
prop=
"incomeBody"
>
<el-input
v-model=
"incomeFrom.incomeBody"
></el-input>
</el-form-item>
<el-form-item
label=
"收入
备注
"
prop=
"incomeRemarks"
>
<el-form-item
label=
"收入
附言
"
prop=
"incomeRemarks"
>
<el-input
v-model=
"incomeFrom.incomeRemarks"
></el-input>
</el-form-item>
...
...
@@ -81,6 +81,7 @@
<
script
>
import
{
selectAll
}
from
"
@/api/type
"
;
import
{
update
,
selectById
,
del
}
from
"
@/api/imcome
"
;
import
{
money
}
from
"
@/utils/myValidate
"
;
export
default
{
data
()
{
return
{
...
...
@@ -106,7 +107,10 @@ export default {
{
required
:
true
,
message
:
"
请选择收入类型
"
,
trigger
:
"
change
"
},
],
incomeMoney
:
[
{
required
:
true
,
message
:
"
请输入收入金额
"
,
trigger
:
"
blur
"
},
{
validator
:
money
,
trigger
:
"
change
"
}
],
incomeTime
:
[
{
required
:
true
,
message
:
"
请选择收入时间
"
,
trigger
:
"
change
"
},
...
...
Prev
1
2
Next
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