Commit ee083724 authored by 柳 佳乐's avatar 柳 佳乐
Browse files

20221115

parent 43dd450d
......@@ -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'
......@@ -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)) {
>>>>>>> 4d6bb737cd8f5c1dac548efd85ccb5f2d8bff4da
} 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位数字"));
}
}
<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.tripId"
:key="item.id"
style="margin: 0px 5px"
>
{{ item.userName }}
{{ item.personnelName }}
</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="index in queryDTOList"
:key="index.enclosureId"
v-for="item in queryDTOList"
:key="item.enclosureId"
class="lsitall"
>
<el-col :span="10">
<div style="margin-top: 6px; margin-left: 40px">
附件{{ index.enclosureId }}
附件{{ item.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(index)"
@click="delProject(item)"
>下载</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;
}
......
<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;
}
......
......@@ -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;
},
//开始结束 时间的处理 计算天数
......
......@@ -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,
deleteinvoiceConnect,
deletBystatus,
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(() => {
deleteinvoiceConnect(invoices)
deletBystatus(invoices)
.then((result) => {
if (result.success) {
this.$message({
......@@ -1000,7 +1048,7 @@ export default {
},
//查询发票编号
Selectlsitinvoice() {
selectByinvoice(this.parm)
selectAllById(this.parm)
.then((res) => {
if (res.success) {
this.invoicelist = res.data;
......
......@@ -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(
"",
......
......@@ -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"
}
]
}
};
......
......@@ -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 (/[\u4E00-\u9FA5]/g.test(value)) {
callback(new Error("资产编码由数字或字符组成!"));
} else {
callback();
}
}
callback();
}
},
beforeDestroy() {
if (this.timer) {
......
......@@ -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() {
......
......@@ -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>
......
<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 {
......
<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>
......
......@@ -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' }]
}
}
},
......
......@@ -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" }
......
......@@ -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="请选择要添加的发票编号"
......
......@@ -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" },
......
......@@ -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: [], //收入类型列表
......
......@@ -180,7 +180,7 @@
v-model="getListincom"
multiple
filterable
allow-create
default-first-option
style="width:100%;"
placeholder="请选择要添加的发票编号"
......
......@@ -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" },
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment