Commit 149f135a authored by 柳 佳乐's avatar 柳 佳乐
Browse files

20221115

parent 2423ec69
......@@ -101,9 +101,17 @@ export const componentMap = {
'spendreimbursementList_Update': () => import('@/views/Spendreimbursement/spendreimbursementListUpdate.vue').then(m => m.default),
// 公司文件模块
'company_file_list':()=>import('@/views/companyFile/companyFileList').then(m=>m.default),
'self_file_list':()=>import('@/views/companyFile/selfFileList').then(m=>m.default),
'company_file_add':()=>import('@/views/companyFile/companyFileAdd').then(m=>m.default),
'company_file_list': () => import('@/views/companyFile/companyFileList').then(m => m.default),
'self_file_list': () => import('@/views/companyFile/selfFileList').then(m => m.default),
'company_file_add': () => import('@/views/companyFile/companyFileAdd').then(m => m.default),
//公司资产
'assets_List': () => import('@/views/assets/assetslist').then(m => m.default),
'assets_Upedata': () => import('@/views/assets/assetsUpedata').then(m => m.default),
'administration_lsit': () => import('@/views/assets/administration/administrationlist').then(m => m.default),
'administration_Update': () => import('@/views/assets/administration/administrationUpdate').then(m => m.default),
'administration_select': () => import('@/views/assets/administration/administrationselect').then(m => m.default),
'assetuse_list': () => import('@/views/assets/assetuse/assetuselist').then(m => m.default),
}
/**
......
......@@ -113,9 +113,9 @@ export function pathValid (rule, value, callback) {
}
}
//定义金额校验
//定义金额校验
export function money(rule, value, callback) {
let RegExp = /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/;
let RegExp = /(^([-]?)[1-9]([0-9]+)?(\.[0-9]{1,6})?$)|(^([-]?)(0){1}$)|(^([-]?)[0-9]\.[0-9]([0-9])?$)/;
if (RegExp.test(value)) {
callback();
} else {
......
......@@ -12,11 +12,7 @@
<el-col :span="6">
<div class="grid-content bg-purple">
<!-- projectId -->
<el-form-item
label="报销项目"
:label-width="formLabelWidth"
prop="projectId"
>
<el-form-item label="报销项目" prop="projectId">
<el-select
placeholder="请选择"
v-model="spendreimbursementform.projectId"
......@@ -669,16 +665,13 @@ export default {
let time = this.timestampToTime(val);
this.spendreimbursementform.applyTime = time;
}
},
// 计算天数
}, // 计算天数
DateDiff(sDate1, sDate2) {
//sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]); //转换为12-18-2006格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]);
let oDate1, oDate2, iDays;
oDate1 = new Date(sDate1);
oDate2 = new Date(sDate2);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
console.log(iDays);
return iDays;
},
//开始结束 时间的处理 计算天数
......
<template>
<el-form
ref="ruleform"
:model="spendreimbursementform"
label-width="120px"
:label-position="labelPosition"
:rules="rules"
>
<el-row :gutter="20">
<!-- 第一列表单 -->
<el-col :span="6">
<div class="grid-content bg-purple">
<!-- projectId -->
<el-form-item
label="项目列表"
:label-width="formLabelWidth"
prop="projectId"
>
<el-select
placeholder="请选择"
v-model="spendreimbursementform.projectId"
>
<el-option
:label="item.projectName"
v-for="item in collectProject"
:key="item.projectId"
:value="item.projectId"
>
</el-option>
</el-select>
</el-form-item>
<!-- summary -->
<el-form-item label="摘要" prop="summary">
<el-input v-model="spendreimbursementform.summary"></el-input>
</el-form-item>
<!-- enclosureNumber -->
<el-form-item label="附件数量" prop="enclosureNumber">
<el-input
v-model="spendreimbursementform.enclosureNumber"
></el-input>
</el-form-item>
<!-- tripReason -->
<el-form-item label="出差缘由" prop="tripReason">
<el-input v-model="spendreimbursementform.tripReason"></el-input>
</el-form-item>
<!-- fromPlace -->
<el-form-item label="出发地点" prop="fromPlace">
<el-input v-model="spendreimbursementform.fromPlace"></el-input>
</el-form-item>
<!-- purposePlace -->
<el-form-item label="目的地点" prop="purposePlace">
<el-input v-model="spendreimbursementform.purposePlace"></el-input>
</el-form-item>
<!-- transitPlace -->
<el-form-item label="经过地点" prop="transitPlace">
<el-input v-model="spendreimbursementform.transitPlace"></el-input>
</el-form-item>
<!-- vehicle -->
<el-form-item label="交通工具" prop="vehicle">
<el-input v-model="spendreimbursementform.vehicle"></el-input>
</el-form-item>
<!-- applyTime -->
<el-form-item label="申请时间" prop="applyTime" required>
<el-date-picker
v-model="spendreimbursementform.applyTime"
type="date"
style="width: 90%"
@change="formtime3"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</div>
</el-col>
<!-- 第二列表单 -->
<el-col :span="6">
<div class="grid-content bg-purple">
<!-- receiveSubsidy -->
<el-form-item label="是否领取补贴">
<el-switch
v-model="values"
active-color="#13ce66"
inactive-color="#ff4949"
@change="changeswitch(values)"
>
</el-switch>
</el-form-item>
<!-- foodAllowance -->
<el-form-item label="伙食补贴" prop="foodAllowance">
<el-input
v-model.number="spendreimbursementform.foodAllowance"
></el-input>
</el-form-item>
<!-- publicMiscellaneousSubsidy -->
<el-form-item label="公杂补贴" prop="publicMiscellaneousSubsidy">
<el-input
v-model.number="spendreimbursementform.publicMiscellaneousSubsidy"
></el-input>
</el-form-item>
<!-- tripCost -->
<el-form-item label="火车/汽车/轮船费" prop="tripCost">
<el-input
v-model.number="spendreimbursementform.tripCost"
></el-input>
</el-form-item>
<!-- planeTicket -->
<el-form-item label="飞机票" prop="planeTicket">
<el-input
v-model.number="spendreimbursementform.planeTicket"
></el-input>
</el-form-item>
<!-- trafficCost -->
<el-form-item label="过路过桥汽油费" prop="trafficCost">
<el-input
v-model.number="spendreimbursementform.trafficCost"
></el-input>
</el-form-item>
<!-- lodgingCost -->
<el-form-item label="住宿费" prop="lodgingCost">
<el-input
v-model.number="spendreimbursementform.lodgingCost"
></el-input>
</el-form-item>
<!-- insuranceCost -->
<el-form-item label="保险费" prop="insuranceCost">
<el-input
v-model.number="spendreimbursementform.insuranceCost"
></el-input>
</el-form-item>
<!-- otherCost -->
<el-form-item label="其他费用" prop="otherCost">
<el-input
v-model.number="spendreimbursementform.otherCost"
></el-input>
</el-form-item>
</div>
</el-col>
<!-- 第三列表单 -->
<el-col :span="6">
<div class="grid-content bg-purple">
<!-- applyTotalAmountLarge -->
<el-form-item
label="申报总金额(大写)"
prop="applyTotalAmountLarge"
label-width="140"
>
<el-input
v-model="spendreimbursementform.applyTotalAmountLarge"
></el-input>
</el-form-item>
<!-- applyTotalAmountSmall -->
<el-form-item
label="申报总金额(小写)"
prop="applyTotalAmountSmall"
label-width="140"
>
<el-input
v-model="spendreimbursementform.applyTotalAmountSmall"
></el-input>
</el-form-item>
<el-form-item
label="出差时间"
prop="startTime"
required
:rules="[
{
type: 'daterange',
required: true,
message: '请选择日期',
trigger: 'change',
},
]"
>
<el-date-picker
v-model="timeSlot"
@change="formtime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<!-- nobillExplain -->
<el-form-item label="无票据说明" prop="nobillExplain">
<el-input v-model="spendreimbursementform.nobillExplain"></el-input>
</el-form-item>
<!-- remarks -->
<el-form-item label="备注" prop="remarks">
<el-input
type="textarea"
:rows="5"
v-model="spendreimbursementform.remarks"
></el-input>
</el-form-item>
</div>
</el-col>
<!-- 第四列表单 -->
<el-col :span="6">
<div class="grid-content bg-purple">
<!-- 其他 -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-circle-plus"
@click="addBtn1"
>随行人员</el-button
>
</el-form-item>
<!-- 对话框1 -->
<el-dialog title="选择随行人员" :visible.sync="dialogFormVisible">
<el-row :gutter="20">
<el-col
:span="6"
v-for="item in collectProjectpeople"
:key="item.userId"
>
<div class="grid-content bg-purple" style="margin: 20px 0px">
<el-checkbox v-model="peopleId" :label="item.userId" border>{{
item.userName
}}</el-checkbox>
</div>
</el-col>
</el-row>
<button @click="btn">测试</button>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogFormVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
</div>
</el-col>
</el-row>
<el-button type="primary" @click="submitForm()">提交</el-button>
<el-button @click="resetForm()">重置</el-button>
<el-button @click="back()">返回</el-button>
</el-form>
</template>
<script>
import { insert } from "@/api/spendreimbursement.js";
import { selectTypeitem } from "@/api/spendreimbursement.js";
// selectProjectitem
import { selectProjectitem } from "@/api/spendreimbursement.js";
//selectProjectpeople
import { selectProjectpeople } from "@/api/spendreimbursement.js";
// insertId
import { insertId } from "@/api/spendreimbursement.js";
export default {
created() {
this.Typeitem.companyId = this.$store.getters.companyId;
this.Projectitem.companyId = this.$store.getters.companyId;
this.Projectpeople.companyId = this.$store.getters.companyId;
this.spendreimbursementform.companyId = this.$store.getters.companyId;
this.spendreimbursementform.userId = this.$store.getters.urId;
this.reimebursementtypeItem();
this.reimebursementprojectItem();
this.reimebursementprojectpeopleItem();
},
data() {
return {
dialogFormVisible: false,
labelPosition: "left",
values: false,
timeSlot: null,
userId: [],
// 收集的是页面表单的数据
spendreimbursementform: {
companyId: null,
summary: "",
enclosureNumber: "",
tripReason: "",
typeId: "",
fromPlace: "",
remarks: "",
purposePlace: "",
transitPlace: "",
startTime: "",
endTime: "",
applyTime: "",
receiveSubsidy: 0,
vehicle: "",
foodAllowance: "",
publicMiscellaneousSubsidy: "",
tripCost: "",
planeTicket: "",
trafficCost: "",
lodgingCost: "",
insuranceCost: "",
otherCost: "",
remarks: "",
nobillExplain: "",
applyTotalAmountLarge: "",
applyTotalAmountSmall: "",
projectId: "",
companyId: null,
// 天数
days: null,
userId: null,
tripStatus: 0,
},
peopleId: [],
insertBatch: [
{
personnelId: null,
tripId: null,
},
],
// 报销类型
Typeitem: {
companyId: null,
typeCategory: 0,
},
// 项目类型
Projectitem: {
companyId: null,
},
// 随从成员
Projectpeople: {
companyId: null,
},
// 收集报销类型进行展示
collectType: [],
// 收集项目名称进行展示
collectProject: [],
// 收集随从人员进行展示
collectProjectpeople: [],
// 验证规则
rules: {
summary: [{ required: true, message: "此项不能为空!" }],
enclosureNumber: [{ required: true, message: "此项不能为空!" }],
tripReason: [{ required: true, message: "此项不能为空!" }],
typeId: [
{
required: true,
message: "此项不能为空!",
trigger: "change",
},
],
fromPlace: [{ required: true, message: "此项不能为空!" }],
purposePlace: [{ required: true, message: "此项不能为空!" }],
transitPlace: [{ required: true, message: "此项不能为空!" }],
applyTotalAmountLarge: [{ required: true, message: "此项不能为空!" }],
applyTotalAmountSmall: [{ required: true, message: "此项不能为空!" }],
applyTime: [
{
type: "daterange",
required: true,
message: "请选择日期!",
trigger: "change",
},
],
planeTicket: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
vehicle: [{ required: true, message: "此项不能为空!" }],
foodAllowance: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
publicMiscellaneousSubsidy: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
tripCost: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
planeTicket: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
trafficCost: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
lodgingCost: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
insuranceCost: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
otherCost: [
{ required: true, message: "此项不能为空!" },
{ type: "number", message: "该项必须为数字值" },
],
remarks: [{ required: true, message: "此项不能为空!" }],
projectId: [
{
required: true,
message: "此项不能为空!",
trigger: "change",
},
],
publicMiscellaneousSubsidy: [
{ required: true, message: "此项不能为空!" },
],
startTime: [{ required: true, message: "此项不能为空!" }],
endTime: [{ required: true, message: "此项不能为空!" }],
trafficCost: [{ required: true, message: "此项不能为空!" }],
lodgingCost: [{ required: true, message: "此项不能为空!" }],
insuranceCost: [{ required: true, message: "此项不能为空!" }],
otherCost: [{ required: true, message: "此项不能为空!" }],
nobillExplain: [{ required: true, message: "此项不能为空!" }],
},
};
},
methods: {
// 这是测试的数据
btn() {
this.insertBatch.splice(this.insertBatch.indexOf(0), 1);
this.peopleId.forEach((item) => {
let obj = {};
obj.personnelId = item;
obj.tripId = 3;
this.insertBatch.push(obj);
});
insertId(this.insertBatch)
.then((result) => {
if (result.success) {
console.log(result);
} else {
this.$message.error(result.msg);
}
})
.catch((error) => {
this.$message.error("失败");
});
this.insertBatch = [];
},
// 添加数据的方法
submitForm() {
this.$refs.ruleform.validate((valid) => {
console.log("1111");
if (valid) {
console.log("aaaa");
// insert(this.spendreimbursementform)
// .then((res) => {
// if (res.success) {
// this.insertBatch.tripId = res.data;
// var tid = this.insertBatch.tripId;
// // 处理数组 得到传递数据的对象
// this.insertBatch.splice(this.insertBatch.indexOf(0), 1);
// this.peopleId.forEach((item) => {
// let obj = {};
// obj.personnelId = item;
// obj.tripId = tid;
// this.insertBatch.push(obj);
// });
// // 第二个方法
// insertId(this.insertBatch)
// .then((result) => {
// if (result.success) {
// this.$message.success("添加成功!");
// // 添加成功以后 把表单的数据清空
// this.$refs.ruleform.resetFields();
// } else {
// this.$message.error(result.msg);
// }
// })
// .catch((error) => {
// this.$message.error("失败");
// });
// this.insertBatch = [];
// } else {
// this.$message.error(res.msg);
// }
// })
// .catch((error) => {
// this.$message.error("添加失败");
// });
} else {
console.log("error submit!!");
return false;
}
});
},
// 报销类型
reimebursementtypeItem() {
selectTypeitem(this.Typeitem)
.then((res) => {
if (res.success) {
this.collectType = res.data;
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
// 项目类型
reimebursementprojectItem() {
selectProjectitem(this.Projectitem)
.then((res) => {
if (res.success) {
this.collectProject = res.data;
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
// 随从人员
reimebursementprojectpeopleItem() {
selectProjectpeople(this.Projectpeople)
.then((res) => {
if (res.code == 20000) {
this.collectProjectpeople = res.data;
} else {
this.$message.error("失败");
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
// 弹窗按钮
addBtn1() {
this.dialogFormVisible = true;
},
// 开关选项
changeswitch(values) {
// console.log(values);
if (values == true) {
this.spendreimbursementform.receiveSubsidy = 1;
} else {
this.spendreimbursementform.receiveSubsidy = 0;
}
},
// 返回上一级
back() {
this.$store.dispatch("tagsView/delView", this.$route);
this.$router.push("/spendreimbursementList");
},
//申请时间处理
formtime3(val) {
if (val != null) {
let time = this.timestampToTime(val);
this.spendreimbursementform.applyTime = time;
}
},
// 计算天数
DateDiff(sDate1, sDate2) {
//sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]); //转换为12-18-2006格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
return iDays;
},
//开始结束 时间的处理 计算天数
formtime(val) {
if (val == null) {
this.spendreimbursementform.startTime = null;
this.spendreimbursementform.endTime = null;
} else {
this.spendreimbursementform.startTime = this.timestampToTime(val[0]);
this.spendreimbursementform.endTime = this.timestampToTime(val[1]);
let time = this.DateDiff(
this.spendreimbursementform.startTime,
this.spendreimbursementform.endTime
);
this.spendreimbursementform.days = time;
}
},
//时间处理
timestampToTime(value) {
var date = value;
var Y = date.getFullYear() + "-";
var M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
var D =
(date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
var h =
(date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
var m =
(date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) +
":";
var s =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
return Y + M + D + h + m + s;
},
//重置
resetForm() {
this.$refs.ruleform.resetFields();
},
},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="container">
<!-- 添加按钮 -->
<div class="total_top">
<el-button
type="success"
icon="el-icon-circle-plus"
@click="insertreimebursementItem"
>申请出差报销</el-button
>
</div>
<!-- 表格内容区域 -->
<div class="total_content">
<el-table :data="tableData" style="width: 100%" border>
<el-table-column type="expand">
<template slot-scope="props">
<el-form label-position="left" class="demo-table-expand">
<el-descriptions
title="报销详情"
:column="5"
border
style="width: 100%"
>
<el-descriptions-item label="组长审批状态" :span="2">
<el-tag
:type="
props.row.tripStatus == 0
? 'info'
: props.row.tripStatus == 2
? 'danger'
: 'success'
"
>
{{
props.row.tripStatus == 0
? "待审批"
: props.row.tripStatus == 2
? "驳回"
: "通过"
}}
</el-tag>
</el-descriptions-item>
<el-descriptions-item
label="组长审批时间"
:span="3"
:formatter="timestampToTime"
>{{ props.row.headmanTime }}</el-descriptions-item
>
<el-descriptions-item label="组长驳回缘由" :span="5">{{
props.row.headmanRefute || ""
}}</el-descriptions-item>
<el-descriptions-item label="财务审批状态" :span="2">
<el-tag
:type="
props.row.tripStatus == 4
? 'danger'
: props.row.tripStatus == 3
? 'success'
: 'info'
"
>
{{
props.row.tripStatus == 4
? "驳回"
: props.row.tripStatus == 3
? "通过"
: "待审批"
}}
</el-tag>
</el-descriptions-item>
<el-descriptions-item
label="财务审批时间"
:span="3"
:formatter="timestampToTime"
>{{ props.row.financeTime }}</el-descriptions-item
>
<el-descriptions-item label="财务驳回缘由" :span="5">{{
props.row.finaceRefute || ""
}}</el-descriptions-item>
<el-descriptions-item label="查看详情" :span="5">
<el-button
@click="getdetails(props.row)"
type="primary"
style="margin: 5px"
size="mini"
>查看详情</el-button
>
</el-descriptions-item>
</el-descriptions>
</el-form>
</template>
</el-table-column>
<el-table-column label="序号" width="50px">
<template slot-scope="scope">
{{
(queryitem.pageNum - 1) * queryitem.pageSize + scope.$index + 1
}}
</template>
</el-table-column>
<el-table-column label="项目列表" prop="projectName"> </el-table-column>
<el-table-column label="申报总金额" prop="applyTotalAmountSmall">
</el-table-column>
<el-table-column label="核报总金额">
<template slot-scope="props">
{{ props.row.verifyTotalAmountSmall || "还未核实金额" }}
</template>
</el-table-column>
<el-table-column label="组长审批人">
<template slot-scope="props">
{{ props.row.financeName || "暂无" }}
</template>
</el-table-column>
<el-table-column label="财务审批人">
<template slot-scope="props">
{{ props.row.financeName || "暂无" }}
</template>
</el-table-column>
<el-table-column
label="报销日期"
prop="applyTime"
:formatter="timestampToTime"
>
</el-table-column>
<el-table-column label="状态">
<template slot-scope="props">
<el-tag
:type="
props.row.tripStatus == 0
? 'info'
: props.row.tripStatus == 1 || props.row.tripStatus == 3
? 'success'
: 'danger'
"
>
{{
props.row.tripStatus == 0
? "待审批"
: props.row.tripStatus == 1
? "小组长通过"
: props.row.tripStatus == 2
? "小组长驳回"
: props.row.tripStatus == 3
? "财务通过"
: props.row.tripStatus == 4
? "财务驳回"
: "不存在"
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
style="margin: 5px"
size="mini"
icon="el-icon-edit"
type="info"
@click="updatereimbursementList(scope.row)"
v-if="scope.row.tripStatus != 3 && scope.row.tripStatus != 1"
>修改信息</el-button
>
<el-button
style="margin: 5px"
size="mini"
icon="el-icon-edit-outline"
type="success"
@click="updatebtn(scope.row)"
v-if="scope.row.tripStatus != 3 && scope.row.tripStatus != 1"
>修改随行人员</el-button
>
<el-button
style="margin: 5px"
size="mini"
type="danger"
@click="Resubmit(scope.row)"
v-if="scope.row.tripStatus == 2 || scope.row.tripStatus == 4"
>重新提交</el-button
>
<el-button
style="margin: 5px"
size="mini"
type="info"
@click="withdraw(scope.row)"
v-if="scope.row.tripStatus == 0"
>
撤回</el-button
>
<el-link
type="success"
style="margin: 5px"
size="mini"
v-if="scope.row.tripStatus == 3"
>已通过</el-link
>
<el-link
type="info"
style="margin: 5px"
size="mini"
v-if="scope.row.tripStatus == 1"
>待审批</el-link
>
</template>
</el-table-column>
</el-table>
<!-- 查看详情 -->
<el-drawer
title="查看详情"
:visible.sync="drawer"
:direction="direction"
size="50%"
>
<el-form :inline="true" label-width="180px">
<el-row>
<el-col :span="12">
<div>
<el-form-item label="审批状态">
<el-tag
:type="
paramlist.tripStatus == 0
? 'info'
: paramlist.tripStatus == 1 || paramlist.tripStatus == 3
? 'success'
: 'danger'
"
>
{{
paramlist.tripStatus == 0
? "待审批"
: paramlist.tripStatus == 1
? "小组长通过"
: paramlist.tripStatus == 2
? "小组长驳回"
: paramlist.tripStatus == 3
? "财务通过"
: paramlist.tripStatus == 4
? "财务驳回"
: "不存在"
}}
</el-tag>
</el-form-item>
<el-form-item label="附件数量">
<span>{{ paramlist.enclosureNumber }}</span>
</el-form-item>
<el-form-item label="出差理由">
<span>{{ paramlist.tripReason }}</span>
</el-form-item>
<el-form-item label="出发地点">
<span>{{ paramlist.fromPlace }}</span>
</el-form-item>
<el-form-item label="目的地点">
<span>{{ paramlist.purposePlace }}</span>
</el-form-item>
<el-form-item label="经过地点">
<span>{{ paramlist.transitPlace }}</span>
</el-form-item>
<el-form-item label="交通工具">
<span>{{ paramlist.vehicle }}</span>
</el-form-item>
<el-form-item label="伙食补贴">
<span>{{ paramlist.foodAllowance }}</span>
</el-form-item>
<el-form-item label="公杂补贴">
<span>{{ paramlist.publicMiscellaneousSubsidy }}</span>
</el-form-item>
<el-form-item label="随从人员">
<span
v-for="item in paramlist.entouragelist"
:key="item.tripId"
style="margin: 0px 5px"
>{{ item.userName }}</span
>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div>
<el-form-item label="火车/汽车/轮船费">
<span>{{ paramlist.tripCost }}</span>
</el-form-item>
<el-form-item label="机票费">
<span>{{ paramlist.planeTicket }}</span>
</el-form-item>
<el-form-item label="汽油费">
<span>{{ paramlist.trafficCost }}</span>
</el-form-item>
<el-form-item label="住宿费">
<span>{{ paramlist.lodgingCost }}</span>
</el-form-item>
<el-form-item label="其他费用">
<span>{{ paramlist.otherCost }}</span>
</el-form-item>
<el-form-item label="备注">
<span>{{ paramlist.remarks }}</span>
</el-form-item>
<el-form-item label="无票据说明">
<span>{{ paramlist.nobillExplain }}</span>
</el-form-item>
<el-form-item label="是否领取补贴">
<span>{{ paramlist.receiveSubsidy == 0 ? "否" : "是" }}</span>
</el-form-item>
<el-form-item label="天数">
<span>{{ paramlist.days }}</span>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
</el-drawer>
<!-- 对话框1 -->
<el-dialog title="修改随从人员" :visible.sync="dialogFormVisible">
<!-- 输入框的布局 -->
<el-row :gutter="20">
<el-col :span="16"
><div class="grid-content bg-purple">
<el-input placeholder="请输入..."></el-input></div
></el-col>
<el-col :span="8"
><div class="grid-content bg-purple">
<el-button type="primary" @click="onSubmit">查询</el-button>
</div></el-col
>
</el-row>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="员工" name="first">
<!-- v-model 绑定的是 数据少的那个数组 -->
<el-checkbox-group v-model="peopleId">
<el-checkbox
v-for="item in collectProjectpeople"
:label="item.userId"
:key="item.userId"
>{{ item.userName }}</el-checkbox
>
</el-checkbox-group>
</el-tab-pane>
<el-tab-pane label="财务人员" name="second">财务人员</el-tab-pane>
<el-tab-pane label="小组长" name="third">小组长</el-tab-pane>
<button @click="btn">测试</button>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogFormVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
</div>
<!-- 分页区域 -->
<div class="block">
<el-pagination
layout="->, total, prev, pager, next"
:total="10"
:page-size="queryitem.pageSize"
@current-change="getpagelist"
>
</el-pagination>
</div>
</div>
</template>
<script>
import { queryBypage } from "@/api/spendreimbursement";
import { selectAll } from "@/api/spendreimbursement";
import { reimbursementListid, resubmit } from "@/api/spendreimbursement";
// insertId
import { insertId } from "@/api/spendreimbursement.js";
//selectProjectpeople
import { selectProjectpeople } from "@/api/spendreimbursement.js";
export default {
created() {
this.Projectpeople.companyId = this.$store.getters.companyId;
// 获取 userId
this.queryitem.userId = this.$store.getters.urId;
this.reimebursementprojectpeopleItem();
this.getpagelist();
},
data() {
return {
activeName: "second",
list1: [],
queryitem: {
pageNum: 1,
pageSize: 10,
userId: null,
},
//抽屉
drawer: false,
// 对话框
dialogFormVisible: false,
// 接受的数据
tableData: [],
// 收集随从人员进行展示
collectProjectpeople: [],
// 随从成员
Projectpeople: {
companyId: null,
},
// 随从人员
entouragelist: [],
paramlist: {},
peopleId: [],
// 收集所选择的随从人员
insertBatch: [
{
personnelId: null,
tripId: null,
},
],
list: [],
};
},
methods: {
handleClick(tab, event) {
console.log(event);
},
// 这是测试的数据
btn() {
console.log(this.peopleId);
console.log(this.list1);
// this.insertBatch.splice(this.insertBatch.indexOf(0), 1);
// this.peopleId.forEach((item) => {
// let obj = {};
// obj.personnelId = item;
// obj.tripId = 3;
// this.insertBatch.push(obj);
// });
// insertId(this.insertBatch)
// .then((result) => {
// if (result.success) {
// console.log(result);
// } else {
// this.$message.error(result.msg);
// }
// })
// .catch((error) => {
// this.$message.error("失败");
// });
// this.insertBatch = [];
},
// 修改随从人员
updatereimbursementPeople() {
// 第二个方法
insertId(this.insertBatch)
.then((result) => {
if (result.success) {
this.$message.success("添加成功!");
// 添加成功以后 把表单的数据清空
this.$refs.ruleform.resetFields();
} else {
this.$message.error(result.msg);
}
})
.catch((error) => {
this.$message.error("失败");
});
},
// 查询de所有随从人员
reimebursementprojectpeopleItem() {
selectProjectpeople(this.Projectpeople)
.then((res) => {
if (res.code == 20000) {
this.collectProjectpeople = res.data;
} else {
this.$message.error("失败");
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
//添加的方法
insertreimebursementItem() {
this.$router.push("/spendreimbursementAdd");
},
// 展示数据的方法
getpagelist(pager = 1) {
this.queryitem.pageNum = pager;
queryBypage(this.queryitem)
.then((res) => {
if (res.success) {
this.tableData = res.data.list;
res.data.list.forEach((item) => {
selectAll({ tripId: item.tripId })
.then((resu) => {
if (resu.success) {
item.entouragelist = resu.data;
this.list = resu.data;
resu.data.forEach((element) => {
let obj = {};
let personnelId = "";
personnelId = element.personnelId;
obj.personnelId = element.personnelId;
obj.tripId = element.tripId;
this.peopleId.push(personnelId);
this.list1.push(obj);
});
} else {
this.$message.error(resu.msg);
}
})
.catch((error) => {
this.$message.error("失败");
});
});
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
// 跳转修改页面
updatereimbursementList(data) {
this.$router.push({
path: "/spendreimbursementListUpdate",
//query 找到我们需要的字段
query: {
tripid: data.tripId,
},
});
},
// 弹窗展示
updatebtn() {
this.dialogFormVisible = true;
},
// 查看详情
getdetails(data) {
this.drawer = true;
this.paramlist = data;
},
// 从新提交
Resubmit(data) {
resubmit(data)
.then((res) => {
if (res.success) {
this.$message.success("重新提交成功,等待审批");
this.getpagelist();
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("重新提交失败");
});
},
// 撤回申请
withdraw(data) {
reimbursementListid(data.tripId).then((res) => {
if (res.success) {
this.getpagelist();
}
});
},
//时间处理
timestampToTime(row, column, cellValue) {
return cellValue.split(" ")[0];
},
},
};
</script>
<style scoped>
.total_content {
padding: 0px 15px;
}
.demo-table-expand {
font-size: 0;
padding: 0px 100px;
width: 100%;
}
.demo-table-expand label {
width: 90px;
color: #99a9bf;
}
.demo-table-expand .el-form-item {
margin-right: 150px;
margin-bottom: 0;
width: 80%;
}
.total_top {
margin: 15px 20px;
}
</style>
\ No newline at end of file
......@@ -79,6 +79,7 @@
import { insert } from "@/api/assets";
import { secletAllStaff } from "@/api/user";
import user from "../../store/modules/user";
import { money } from "@/utils/myValidate";
export default {
data() {
return {
......@@ -109,7 +110,8 @@ export default {
{ required: true, message: "请输入活动名称", trigger: "change" }
],
fixedCode: [
{ required: true, message: "请收入资产编号", trigger: "change" }
{ required: true, message: "请收入资产编号", trigger: "change" },
{ validator: this.checkData, trigger: "blur" }
],
fixedAddress: [
{
......@@ -121,8 +123,7 @@ export default {
fixedMoney: [
{ required: true, message: "请输入资产金额", trigger: "change" },
{
pattern: /(^([-]?)[1-9]([0-9]+)?(\.[0-9]{1,6})?$)|(^([-]?)(0){1}$)|(^([-]?)[0-9]\.[0-9]([0-9])?$)/,
message: "输入资产金额不合法",
validator: money,
trigger: "change"
}
]
......@@ -131,7 +132,7 @@ export default {
nowDate: null, //存放年月日变量时分秒变量
timer: "", //定义一个定时器的变量
currentTime: new Date(), // 获取当前时间
name:"选择负责人",
name: "选择负责人"
};
},
created() {
......@@ -174,12 +175,12 @@ export default {
grtselect() {
if (this.falesId == true) {
this.falesId = false;
this.name="确定负责人"
this.name = "确定负责人";
} else {
if (this.options.length > 0) {
this.FixedAssetsAddDTO.fixedController = this.user.userId;
this.falesId = true;
this.name="修改负责人"
this.name = "修改负责人";
console.log(this.FixedAssetsAddDTO.fixedController);
} else {
this.$message.error("没有负责人哦亲");
......@@ -249,22 +250,30 @@ export default {
console.log(this.FixedAssetsAddDTO);
this.$refs.ruleForm.validate(valid => {
if (valid) {
insert(this.FixedAssetsAddDTO)
.then(res => {
if (res.success) {
this.$message({
showClose: true,
message: "提交资产成功",
type: "success"
});
this.$router.push("/assetslist");
} else {
this.$message.error(res.msg);
}
})
.catch(error => {
this.$message.error(error.msg);
if (this.FixedAssetsAddDTO.fixedController!=null) {
insert(this.FixedAssetsAddDTO)
.then(res => {
if (res.success) {
this.$message({
showClose: true,
message: "提交资产成功",
type: "success"
});
this.$router.push("/assetslist");
} else {
this.$message.error(res.msg);
}
})
.catch(error => {
this.$message.error(error.msg);
});
} else {
this.$message({
showClose: true,
message: "还没有添加管理员哦!!",
type: "warning"
});
}
}
});
},
......@@ -285,6 +294,17 @@ export default {
registerRemarks: null, //登记备注
registerTime: null //登记时间
};
},
//不能为中文的校验
checkData(rule, value, callback) {
if (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
callback(new Error("资产编码由数字或字符组成!"));
} else {
callback();
}
}
callback();
}
},
beforeDestroy() {
......
......@@ -31,6 +31,7 @@
</el-input>
</el-form-item>
<el-form-item label="上传公司文件">
<el-upload
class="upload-demo"
drag
......@@ -46,6 +47,7 @@
</div>
<div class="el-upload__tip" slot="tip">文件大小不超过500kb</div>
</el-upload>
</el-form-item>
<br />
<div class="items">
......@@ -104,6 +106,7 @@ export default {
},
//返回
returnback() {
this.$store.dispatch("tagsView/delView", this.$route);
this.$router.push("/selfFileList");
},
},
......
<template>
<!-- 公司文件列表(查询公司全部的文件信息) -->
<div class="container">
<!-- 头部 -->
<div class="header">
<el-form :inline="true" :model="companyFileQurey">
<el-form-item label="文件名称">
<el-input
v-model="companyFileQurey.conmpanyFileName"
placeholder="文件名称"
></el-input>
</el-form-item>
<!-- <el-form-item label="提交人姓名">
<el-input
v-model="companyFileQurey.userName"
placeholder="提交人姓名"
></el-input>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
@click="querycompanyFile()"
>查询</el-button
>
<el-button
type="primary"
icon="el-icon-refresh-right"
@click="reset()"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 中间 -->
<div class="center">
<el-table
:data="companyFIleList"
style="width: 100%"
text-align:
center
border
>
<el-table-column label="序号" width="100px" align="center">
<template slot-scope="scope">
{{
(companyFileQurey.pageNum - 1) * companyFileQurey.pageSize +
scope.$index +
1
}}
</template>
</el-table-column>
<el-table-column prop="conmpanyFileName" label="文件名称" align="center">
</el-table-column>
<el-table-column prop="fileRemarks" label="文件备注" align="center"> </el-table-column>
<el-table-column prop="userName" label="提交人" align="center"> </el-table-column>
<el-table-column prop="submitTime" label="上传时间" align="center" > </el-table-column>
<el-table-column prop="prop" label="操作" width="130px" align="center">
<template slot-scope="scope">
<el-button type="success" size="mini" @click="download(scope.row)"
>点击下载</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<!-- 尾部 -->
<div class="footer">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="companyFileQurey.pageNum"
:page-size="companyFileQurey.pageSize"
layout="total, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</div>
</template>
<script>
import { queryBypage } from "@/api/companyFile";
export default {
data() {
return {
companyFileQurey: {
conmpanyFileName: null,
pageNum: 1,
pageSize: 10,
companyId: null,
},
companyFIleList: [], //公司合同文件表格区域
total: 0,
};
},
created() {
this.companyFileQurey.companyId = this.$store.getters.companyId;
this.getCompanyFileList();
},
methods: {
//重置
reset(){
this.companyFileQurey={
pageNum: 1,
pageSize: 10,
companyId: null,
userId: null,
}
this.companyFileQurey.companyId = this.$store.getters.companyId;
this.getCompanyFileList();
},
//下载
download(row) {
console.log(row);
var a = document.createElement("a"); //创建一个<a></a>标
a.href = process.env.VUE_APP_BASE_API + row.companyFile; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
a.target = "_blank";
a.style.display = "none"; // 障眼法藏起来a标签
document.body.appendChild(a); // 将a标签追加到文档对象中
a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
a.remove(); // 一次性的,用完就删除a标签
},
//查询
querycompanyFile() {
this.companyFileQurey.pageNum = 1;
this.getCompanyFileList();
},
//分页查询(查询全公司的)
getCompanyFileList() {
queryBypage(this.companyFileQurey)
.then((res) => {
if (res.success) {
this.companyFIleList = res.data.list;
this.total = res.data.total;
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("获取数据失败");
});
},
//换页
handleCurrentChange(val) {
this.companyFileQurey.pageNum = val;
this.getCompanyFileList();
},
},
};
</script>
<style scoped>
.container {
padding: 10px;
}
.header {
padding: 10px;
}
.center {
margin-bottom: 10px;
}
.footer {
text-align: right;
}
</style>
\ No newline at end of file
......@@ -91,6 +91,20 @@
</template>
</el-table-column>
<el-table-column prop="mone" label="发票金额"></el-table-column>
<el-table-column prop="prop" label="发票文件" width="120px">
<template slot-scope="scope">
<div v-if="formatProtocolType(scope.row)">
<el-image
style="width: 80px; height: 80px"
:src="getimagin(scope.row)"
:preview-src-list="srcList"
></el-image>
</div>
<div v-else>
<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
......@@ -145,10 +159,18 @@
class="demo-ruleForm"
>
<el-form-item label="发票代码" prop="code">
<el-input v-model="addTO.code" maxlength="12" onkeyup="this.value=this.value.replace(/\D|^0/g,'')"></el-input>
<el-input
v-model="addTO.code"
maxlength="12"
onkeyup="this.value=this.value.replace(/\D|^/g,'')"
></el-input>
</el-form-item>
<el-form-item label="发票号码" prop="number">
<el-input v-model="addTO.number" maxlength="8" onkeyup="this.value=this.value.replace(/\D|^0/g,'')"></el-input>
<el-input
v-model="addTO.number"
maxlength="8"
onkeyup="this.value=this.value.replace(/\D|^/g,'')"
></el-input>
</el-form-item>
<el-form-item label="发票时间" required prop="time">
<el-date-picker
......@@ -216,11 +238,8 @@
</template>
<script>
import {
insertList,
queryBypageIncomeAdd,
deleteexpen
} from "@/api/project";
import { insertList, queryBypageIncomeAdd, deleteexpen } from "@/api/project";
import { money } from "@/utils/myValidate";
export default {
data() {
return {
......@@ -320,8 +339,7 @@ export default {
mone: [
{ required: true, message: "请输入发票金额", trigger: "change" },
{
pattern: /(^([-]?)[1-9]([0-9]+)?(\.[0-9]{1,6})?$)|(^([-]?)(0){1}$)|(^([-]?)[0-9]\.[0-9]([0-9])?$)/,
message: "输入发票金额不合法",
validator: money,
trigger: "change"
}
]
......@@ -359,7 +377,9 @@ export default {
total: 10,
//收集数据
newList: [],
visible: false //确认删除
visible: false, //确认删除
//查看发票图片
srcList: []
};
},
computed: {
......@@ -440,11 +460,21 @@ export default {
if (res.success) {
this.invoicegetList = res.data;
this.total = res.data.total;
let list = [];
res.data.list.forEach((item, index) => {
list.push({
status: item.status
});
// let list = [];
// res.data.list.forEach((item, index) => {
// list.push({
// status: item.status
// });
// });
this.srcList = [];
res.data.list.forEach(e => {
let fileNamepdf = e.filePath;
let fileType = fileNamepdf.substring(
fileNamepdf.lastIndexOf(".")
);
if (fileType != ".pdf") {
this.srcList.push(process.env.VUE_APP_BASE_API + e.filePath);
}
});
} else {
this.$message.errror(res.msg);
......@@ -587,6 +617,30 @@ export default {
.catch(e => {
this.$message.error(e.msg);
});
},
//图片格式
formatProtocolType(row) {
//这里判断的是是否有文件
if (row.filePath == null) {
return false;
} else {
let fileNamepdf = row.filePath;
let fileType = fileNamepdf.substring(fileNamepdf.lastIndexOf("."));
if (fileType != ".pdf") {
return true;
} else {
return false;
}
}
},
getimagin(row) {
return process.env.VUE_APP_BASE_API + row.filePath;
},
//点击查看发票
handlePreView(row) {
const photopath = process.env.VUE_APP_BASE_API + row.filePath;
console.log(photopath);
window.open(photopath, "_blank");
}
}
};
......
......@@ -98,7 +98,7 @@
</span>
</el-dialog>
<el-drawer :visible.sync="drawerVisible" size="50%" :with-header="false" @closed="">
<el-drawer :visible.sync="drawerVisible" size="50%" :with-header="false" >
<div class="drawerHeader">
申请详情
</div>
......@@ -137,7 +137,7 @@
<div class="drawerContainer">
<div class="repay-timeline">
<el-timeline>
<el-timeline-item v-for="(item, index) in repayDetailList" :key="item.repaymentId"
<el-timeline-item v-for="item in repayDetailList" :key="item.repaymentId"
:type="approveResult[item.repaymentApproval].type" :timestamp="item.repaymentTime">
<el-tag
......
......@@ -90,7 +90,7 @@
</span>
</el-dialog>
<el-drawer :visible.sync="drawerVisible" size="50%" :with-header="false" @closed="">
<el-drawer :visible.sync="drawerVisible" size="50%" :with-header="false">
<div class="drawerHeader">
申请详情
</div>
......@@ -128,7 +128,7 @@
<div class="drawerContainer ">
<div class="repay-timeline">
<el-timeline>
<el-timeline-item v-for="(item, index) in repayDetailList" :key="item.repaymentId"
<el-timeline-item v-for="item in repayDetailList" :key="item.repaymentId"
:type="approveResult[item.repaymentApproval].type" :timestamp="item.repaymentTime">
<el-tag
......
......@@ -76,7 +76,7 @@
<el-table-column prop="expendTime" label="支出时间" />
<el-table-column prop="expendInformation" label="支出详情" />
<el-table-column prop="expendRemarks" label="支出备注" />
<el-table-column prop="prop" label="发票图片">
<el-table-column prop="prop" label="发票文件">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="ReviseImage(scope.row)">点击查看</el-button>
</template>
......
......@@ -85,7 +85,7 @@
<el-table-column prop="incomeBody" label="收入内容" />
<el-table-column prop="incomeTime" label="收入时间" />
<el-table-column prop="prop" label="发票图片">
<el-table-column prop="prop" label="发票文件">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="ReviseImage(scope.row)">点击查看</el-button>
</template>
......
......@@ -7,7 +7,7 @@
<el-input v-model="projectFrom.projectName"></el-input>
</el-form-item>
<el-form-item label="项目编号" prop="projectNumber">
<el-input v-model="projectFrom.projectNumber"></el-input>
<el-input v-model="projectFrom.projectNumber" ></el-input>
</el-form-item>
<el-form-item label="项目合同金额" prop="projectAmount">
<el-input v-model="projectFrom.projectAmount"></el-input>
......@@ -97,6 +97,7 @@
<script>
import { insert } from "@/api/project";
import { selectAllByCompanyId, insertBatch, secletAllByRlid } from "@/api/role";
import { money } from "@/utils/myValidate";
export default {
data() {
return {
......@@ -132,7 +133,8 @@ export default {
{ required: true, message: "请输入项目名称", trigger: "blur" }
],
projectNumber: [
{ required: true, message: "请输入项目编号", trigger: "blur" }
{ required: true, message: "请输入项目编号", trigger: "blur" },
{ validator: this.checkData, trigger: "blur" }
],
projectAmount: [
{
......@@ -141,8 +143,7 @@ export default {
trigger: "blur"
},
{
pattern: /(^([-]?)[1-9]([0-9]+)?(\.[0-9]{1,6})?$)|(^([-]?)(0){1}$)|(^([-]?)[0-9]\.[0-9]([0-9])?$)/,
message: "输入项目合同金额不合法",
validator: money,
trigger: "change"
}
],
......@@ -209,9 +210,9 @@ export default {
AddSelect(row) {
if (this.projectLeaderList.indexOf(row.userId) > -1) {
this.userIdAdd.push(row.userName);
}else{
let index = this.userIdAdd.indexOf(row.userName);
this.userIdAdd.splice(index, 1);
} else {
let index = this.userIdAdd.indexOf(row.userName);
this.userIdAdd.splice(index, 1);
}
console.log(this.userIdAdd);
},
......@@ -290,6 +291,17 @@ export default {
var s =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
return Y + M + D + h + m + s;
},
//不能为中文的校验
checkData(rule, value, callback) {
if (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
callback(new Error("项目编码由数字或字符组成!"));
} else {
callback();
}
}
callback();
}
}
};
......
......@@ -72,14 +72,12 @@ export default {
projectExpend: 0,
projectExpense:0,
projectStartTime: null,
projecteEndTime: null,
projectEndTime: null,
projectFile: null,
userId: null,
companyId: null,
projectPartyb:null,
projectInformation:null,
timeSlot: null,
},
rules: {
......@@ -122,8 +120,8 @@ export default {
getProject(){
selectByProjectId({projectId:this.projectId}).then((res)=>{
if(res.success){
res.data.timeSlot = [res.data.projectStartTime,res.data.projectEndTime]
this.projectFrom = res.data
this.projectFrom.timeSlot = this.Stime(res.data)
}else{
this.$message.error(res.msg)
this.back()
......@@ -135,17 +133,16 @@ export default {
},
//时间处理
time(val) {
console.log("123123")
if (val == null) {
this.projectFrom.projectStartTime = null;
this.projectFrom.projecteEndTime = null;
this.projectFrom.projectEndTime = null;
} else {
this.projectFrom.projectStartTime = val[0];
this.projectFrom.projecteEndTime = val[1];
this.projectFrom.projectStartTime = this.timestampToTime(val[0]);
this.projectFrom.projectEndTime = this.timestampToTime(val[1]);
}
},
Stime(value){
return [value.projectStartTime,value.projectEndTime]
},
//重置数据
resetForm(){
this.$refs.form.resetFields()
......@@ -174,7 +171,24 @@ export default {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.push("/projectList")
},
//时间处理
timestampToTime(date) {
var Y = date.getFullYear() + "-";
var M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
var D =
(date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
var h =
(date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
var m =
(date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) +
":";
var s =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
return Y + M + D + h + m + s;
}
},
};
</script>
......
......@@ -3,12 +3,12 @@
<div>
<el-form :inline="true" :model="reimbursementQurey">
<el-form-item>
<!-- <el-button
type="success"
icon="el-icon-circle-plus-outline"
@click="addreimbursement()"
>申请报销</el-button
> -->
<el-form-item label="报销人">
<el-input v-model="reimbursementQurey.userName" placeholder="根据报销人姓名搜索"></el-input>
</el-form-item>
<el-form-item label="项目名称">
<el-input v-model="reimbursementQurey.userName" placeholder></el-input>
</el-form-item>
</el-form-item>
</el-form>
</div>
......
<template>
<div class="container">
<div>
<el-form :inline="true" :model="reimbursementQurey">
<el-form-item>
<el-button
type="success"
icon="el-icon-circle-plus-outline"
@click="addreimbursement()"
>申请报销</el-button
>
</el-form-item>
</el-form>
</div>
<div class="conter">
<el-table
:data="reimbursementList"
style="width: 100%; text-align: center"
border
>
<el-table-column type="expand">
<template slot-scope="props">
<div style="padding: 10px">
<el-descriptions title="报销详情" :column="5" border>
<el-descriptions-item label="支付方式" :span="5">{{
props.row.paymentMethod
}}</el-descriptions-item>
<el-descriptions-item label="组长审批状态" :span="2">
<el-tag
:type="
props.row.reimbursementState == 0
? 'info'
: props.row.reimbursementState == 2
? 'danger'
: 'success'
"
>
{{
props.row.reimbursementState == 0
? "待审批"
: props.row.reimbursementState == 2
? "驳回"
: "通过"
}}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="组长审批时间" :span="3">{{
props.row.headmanTime
}}</el-descriptions-item>
<el-descriptions-item label="组长驳回缘由" :span="5">{{
props.row.headmanRefute || ""
}}</el-descriptions-item>
<el-descriptions-item label="财务审批状态" :span="2">
<el-tag
:type="
props.row.reimbursementState == 4
? 'danger'
: props.row.reimbursementState == 3
? 'success'
: 'info'
"
>
{{
props.row.reimbursementState == 4
? "驳回"
: props.row.reimbursementState == 3
? "通过"
: "待审批"
}}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="财务审批时间" :span="3">{{
props.row.financeTime
}}</el-descriptions-item>
<el-descriptions-item label="财务驳回缘由" :span="5">{{
props.row.finaceRefute || ""
}}</el-descriptions-item>
<el-descriptions-item label="查看详情" :span="5">
<el-button
@click="getdetails(props.row)"
type="primary"
style="margin: 5px"
size="mini"
>查看详情</el-button
>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
</el-table-column>
<el-table-column label="序号" width="50px" align="center">
<template slot-scope="scope">
{{
(reimbursementQurey.pageNum - 1) * reimbursementQurey.pageSize +
scope.$index +
1
}}
</template>
</el-table-column>
<el-table-column prop="projectName" label="项目" align="center" />
<el-table-column prop="applyTotalAmountSmall" label="申报总金额(元)" align="center" />
<el-table-column label="核报总金额(元)" align="center">
<template slot-scope="props">
{{ props.row.verifyTotalAmountSmall || "还未核实金额" }}
</template>
</el-table-column>
<el-table-column label="组长审批人" align="center">
<template slot-scope="props">
{{ props.row.financeName || "暂无" }}
</template>
</el-table-column>
<el-table-column label="财务审批人" align="center">
<template slot-scope="props">
{{ props.row.financeName || "暂无" }}
</template>
</el-table-column>
<el-table-column
prop="fillingTime"
label="报销日期"
align="center"
:formatter="timestampToTime"
></el-table-column>
<el-table-column prop="prop" label="发票图片" align="center">
<template slot-scope="scope">
<el-button
style="margin: 5px"
type="primary"
size="mini"
@click="ReviseImage(scope.row)"
>点击查看</el-button
>
<el-button
style="margin: 5px"
size="mini"
icon="el-icon-edit"
type="info"
@click="getinvoive(scope.row)"
v-if="
scope.row.reimbursementState != 3 &&
scope.row.reimbursementState != 1 &&
scope.row.reimbursementState != 2 &&
scope.row.reimbursementState != 4
"
>修改发票</el-button
>
</template>
</el-table-column>
<el-table-column prop="prop" label="附件下载" align="center">
<template slot-scope="scope">
<el-button type="success" size="mini" @click="selectImage(scope.row)">点击下载</el-button>
</template>
</el-table-column>
<el-table-column prop="reimbursementState" label="状态" align="center">
<template slot-scope="props">
<el-tag
:type="
props.row.reimbursementState == 0 ||props.row.reimbursementState == 1
? 'info'
:
props.row.reimbursementState == 3
? 'success'
: 'danger'
"
>
{{
props.row.reimbursementState == 0
? "待小组长通过"
: props.row.reimbursementState == 1
? "待财务长通过"
: props.row.reimbursementState == 2
? "小组长驳回"
: props.row.reimbursementState == 3
? "财务长通过"
: "财务长驳回"
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center">
<template slot-scope="scope">
<el-button
style="margin: 5px"
size="mini"
icon="el-icon-edit"
type="info"
@click="updataReimbursement(scope.row)"
v-if="
scope.row.reimbursementState != 3 &&
scope.row.reimbursementState != 1&&
scope.row.reimbursementState != 2 &&
scope.row.reimbursementState != 4
"
>修改信息</el-button
>
<el-button
style="margin: 5px"
size="mini"
type="danger"
@click="Resubmit(scope.row)"
v-if="
scope.row.reimbursementState == 2 ||
scope.row.reimbursementState == 4
"
>重新提交</el-button
>
<el-button
style="margin: 5px"
size="mini"
type="info"
@click="withdraw(scope.row)"
v-if="scope.row.reimbursementState == 0"
>
撤回</el-button
>
<div v-if="scope.row.reimbursementState == 3" style="width:100%;text-align: center ; color:#67C23A;">已通过</div>
<div v-if="scope.row.reimbursementState == 1" style="width:100%;text-align: center ; color:darkgray;">待审批</div>
</template>
</el-table-column>
</el-table>
<!-- 查看详情 -->
<el-drawer title="查看详情" :visible.sync="drawer" :direction="direction" size="35%">
<div class="cd">
<el-row justify="center" align="middle" >
<el-col
v-for="(item, index) in reimbursementDetails.list"
:key="index"
:span="20"
>
<el-descriptions
:title="item.name"
border
:column="1"
style="margin: 10px 0"
>
<el-descriptions-item
label="金额"
:contentStyle="contentStyle"
:labelStyle="labelStyle"
>{{ item.money }}元</el-descriptions-item
>
<el-descriptions-item
label="备注"
:contentStyle="contentStyle"
:labelStyle="labelStyle"
>{{ item.explain }}</el-descriptions-item
>
<el-descriptions-item
label="说明"
:contentStyle="contentStyle"
:labelStyle="labelStyle"
>{{ item.remarks }}</el-descriptions-item
>
</el-descriptions>
</el-col>
</el-row>
</div>
</el-drawer>
<!-- 发票详情 -->
<el-drawer
title="发票详情"
:visible.sync="invoiceShow"
:direction="direction"
size="30%"
>
<!-- filePath-->
<el-table
:data="getinvoivelist"
style="width: 100%; text-align: center"
border
>
<el-table-column
type="index"
label="序号"
width="80"
></el-table-column>
<el-table-column prop="prop" label="发票详情">
<template slot-scope="scope">
<el-image
style="width: 100px; height: 100px"
:src="scope.row.filePath"
:preview-src-list="[scope.row.filePath]"
></el-image>
</template>
</el-table-column>
</el-table>
</el-drawer>
<!-- 修改发票信息 -->
<el-drawer title="修改发票" :visible.sync="drawer1">
<div>
<el-form :inline="true" :model="invoiceQurey">
<el-form-item>
<el-button
type="success"
icon="el-icon-circle-plus-outline"
style="margin:0 15px"
@click="addinvoice()"
>添加发票号码</el-button
>
</el-form-item>
</el-form>
</div>
<div>
<el-table
:data="invoicelist"
style="width: 100%; text-align: center"
border
>
<el-table-column
type="index"
label="序号"
width="40"
></el-table-column>
<el-table-column prop="number" label="发票号码" width="180" />
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
style="margin: 5px"
size="mini"
type="info"
@click="delinvoice(scope.row)"
>
删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</el-drawer>
<!-- 添加发票对话框 -->
<el-dialog
title="添加发票"
:visible.sync="dialogVisible"
width="30%"
>
<template>
<el-form
ref="form"
:model="invoiceQurey"
:inline="true"
label-width="150px"
>
<el-form-item prop="fromList">
<el-select
style="width:500px"
v-model="invoiceQurey.fromList"
multiple
filterable
allow-create
default-first-option
placeholder="请选择发票号码"
>
<el-option
v-for="item in getinvoivelist"
:key="item.invoiceId"
:label="item.number"
:value="item.invoiceId"
></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="submit()">确 定</el-button>
</span>
</el-dialog>
</div>
<div class="footer">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="reimbursementQurey.pageNum"
:page-size="reimbursementQurey.pageSize"
layout="total, prev, pager, next"
:total="total"
></el-pagination>
</div>
<!-- 附件的下载与添加 -->
<div>
<el-drawer title="附件操作" :visible.sync="drawer2" :direction="direction" size="50%">
<el-button
type="primary"
style=" margin-left:5%;margin:30px 50px "
@click="updatecard"
:disabled="isDisabled"
>添加附件</el-button>
<el-card
class="box-card"
style="width:90%; margin-left:5%; margin-top:20px"
v-show="getshow==1"
>
<el-row class="row-bg">
<div v-for="index in queryDTOList" :key="index.enclosureId" class="lsitall">
<el-col :span="10">
<div style=" margin-top: 6px;margin-left:40px">附件{{index.enclosureId}}</div>
</el-col>
<el-col :span="12" style="margin-left:-50px">
<el-button
type="primary"
icon="el-icon-folder-checked"
class="a-style"
size="mini"
style=" font-size: 13px"
@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"
:disabled="isDisabled"
>删除</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>
</div>
</template>
<script>
import { queryBypage, resubmit, reimbursementId } from "@/api/reimbursement";
import { selectByReimbursementId } from "@/api/reimbursementDetails";
import { selectAllById,deletBystatus,selectAllBystatus,updatesubmit, selectByIdF,deleteById } from "@/api/project";
export default {
data() {
return {
isDisabled:null,//判断是否显示附件的删除按钮
//修改发票表格
invoicelist: [],
invoiceQurey: {
companyId: null,
reimbursementId: null,
},
getinvoivelist: [], //可以选择的发票号
dialogVisible: false,
//内容样式
contentStyle: {
"text-align": "center",
},
//label样式
labelStyle: { width: "80px" },
reimbursementQurey: {
userId: null,
pageNum: 1,
pageSize: 10,
},
total: 0,
reimbursementList: [],
//抽屉
drawer: false,
drawer1: false,
invoiceShow: false,
direction: "rtl",
reimbursementDetails: {
list: [],
},
//查询图片给的值
getinvoiveId: {
companyId: null,
reimbursementId: 0,
},
//附件///-------
drawer: false,
direction: "rtl",
fileList1: [], //合同文件
disabled: false,//隐藏
getshow: 1, //判断show的显示与隐藏,
//查询附件
queryDTO: {
companyId: null,
reimbursementId: null
},
queryDTOList: [], //收集附件的数据
//附件抽屉
drawer2: false,
//发票对话框
dialogFormVisible: false,
invoiceListAdd: [], //查询发票的集合
getFormslist: {
userId: null,
companyId: null,
type: 0
}, //查询的能选择的表单信息
getListincom: [], //收集选择的数组
incomeIdgrt: null, //收集incomeId数据
getshow: 1, //判断show的显示与隐藏,
//合同文件上传携带参数
proutlist1: {
Id: null,
enclosureDescribe: "",
status: 2, //0收入 1支出
companyId: null,
userId: null
},
fileTypepdf: false, //判断合同文件是否存在
fileList1: [], //附件文件
disabled: false, //隐藏
};
},
created() {
this.getinvoiveId.companyId = this.$store.getters.companyId;
this.reimbursementQurey.userId = this.$store.getters.urId;
this.invoiceQurey.companyId = this.$store.getters.companyId;
this.queryDTO.companyId=this.$store.getters.companyId;
this.action1 = process.env.VUE_APP_BASE_API + "/file/updataEnclosures";//保存附件与下载的接口
this.getReimbursement();
},
methods: {
//添加
submit(){
this.dialogVisible = false;
let list = [];
this.invoiceQurey.fromList.forEach((item) => {
list.push({
invoiceId: item,
reimbursementId:this.invoiceQurey.reimbursementId,
status: 1
});
});
updatesubmit(list).then((res)=>{
if(res.success){
this.getinvoive({reimbursementId:this.invoiceQurey.reimbursementId});
this.$message.success(res.msg);
}
else {
this.$message.error("发票上传失败!");
}
})
},
//查询发票编号
Selectinvoielsit() {
let param = {
companyId: this.$store.getters.companyId,
status: 0,
type: 2,
userId: this.$store.getters.info.userId,
};
selectAllBystatus(param)
.then((res) => {
if (res.success) {
this.getinvoivelist = res.data;
} else {
this.$message.error(res.msg);
this.back();
}
})
.catch((error) => {
this.$message.error("获取发票编号失败");
this.back();
});
},
//添加发票号码
addinvoice(){
this.dialogVisible=true;
this.Selectinvoielsit()
},
//获取发票号列表详情
getinvoive(data) {
this.drawer1 = true;
this.invoiceQurey.reimbursementId = data.reimbursementId;
selectAllById(this.invoiceQurey).then((res) => {
console.log(res)
if (res.success) {
this.invoicelist = res.data;
} else {
this.$message.error(res.msg);
}
});
},
//删除关系
delinvoice(data){
deletBystatus(data).then((res)=>{
if(res.success){
this.getinvoive(data);
}
})
},
//查看详情
getdetails(data) {
this.drawer = true;
let param = {
reimbursementId: data.reimbursementId,
}; //接口是一个以对象的形式传值 所以定义了一个对象去拿这个参数
selectByReimbursementId(param)
.then((res) => {
if (res.success) {
//获取数据
console.log(res);
this.reimbursementDetails.list = res.data; //接口返回res里面
}
})
.catch((error) => {
this.$message.error("查询失败");
});
},
//申请报销
addreimbursement() {
this.$router.push({ path: "/reimbursementAdd" });
},
//获取申请报销列表
getReimbursement() {
queryBypage(this.reimbursementQurey)
.then((res) => {
if (res.success) {
this.reimbursementList = res.data.list;
this.total = res.data.total;
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("回去数据失败");
});
},
//修改信息
updataReimbursement(data) {
//data是列表中所有的数据
console.log(data);
this.$router.push({
path: "/reimbursementUpdata",
//query 找到我们需要的字段
query: {
reimbursementId: data.reimbursementId, //传那一行数据的id
projectId: data.projectId, //项目id 下拉框根据项目id选择
typeId: data.typeId, //报销类别id
money: data.money, //备注
applyTotalAmountLarge: data.applyTotalAmountLarge, //大写金额
applyTotalAmountSmall: data.applyTotalAmountSmall, //小写金额
summary: data.summary, //摘要
paymentMethod: data.paymentMethod, //支付方式
},
});
},
//换页
handleCurrentChange(val) {
this.reimbursementQurey.pageNum = val;
this.getReimbursement();
},
//时间处理
timestampToTime(row, column, cellValue) {
return cellValue.split(" ")[0];
},
//重新提交
Resubmit(data) {
//重新提交就要让之前的数据回复。
//两个审批人的id、状态、审批时间、驳回缘由、核实金额
//删除记录在重新填,或者删除字段记录
data.reimbursementState = 0; //状态
data.verifyTotalAmountLarge = null; //核实金额
data.verifyTotalAmountSmall = null; //核实金额
data.headmanRefute = null; //驳回缘由
data.finaceRefute = null; //驳回缘由
data.financeTime = null; //审批时间
data.headmanTime = null; //审批时间
data.financeId = null; //审批人的id
data.headmanId = null; //审批人的id
resubmit(data)
.then((res) => {
if (res.success) {
this.$message.success("重新提交成功,等待审批");
this.getReimbursement();
} else {
this.$message.error(res.msg);
}
})
.catch((error) => {
this.$message.error("重新提交失败");
});
},
//撤回
withdraw(data) {
// console.log(data.reimbursementId)
reimbursementId(data.reimbursementId).then((res) => {
if (res.success) {
this.getReimbursement();
}
});
},
//查看图片的方法
ReviseImage(row) {
this.invoiceShow = true;
this.getinvoiveId.reimbursementId = row.reimbursementId;
this.Selectinsertlsit();
},
//查询发票图片
Selectinsertlsit() {
console.log(this.getinvoivelist)
selectAllById(this.getinvoiveId)
.then((res) => {
if (res.success) {
this.getinvoivelist = res.data;
this.getinvoivelist.forEach((e) => {
e.filePath = process.env.VUE_APP_BASE_API + e.filePath;
});
} else {
this.$message.error(res.msg);
this.back();
}
})
.catch((error) => {
this.$message.error("获取发票图片失败");
this.back();
});
},
///----附件区域
//查看项目附件.....
selectImage(row) {
console.log(row);
if(row.reimbursementState==1 ||row.reimbursementState==3 || row.reimbursementState==2 ||row.reimbursementState==4){
this.isDisabled=true
}else{
this.isDisabled=false
}
this.queryDTO.reimbursementId = row.reimbursementId;
this.proutlist1.Id = row.reimbursementId;
selectByIdF(this.queryDTO)
.then(res => {
if (res.success) {
this.queryDTOList = res.data;
if (this.queryDTOList.length > 0) {
this.drawer2 = true;
this.getshow = 1;
this.disabled = false;
} else {
this.drawer2 = true;
this.disabled = false;
this.getshow = 3;
}
} else {
this.$message.error(res.msg);
}
})
.catch(error => {
this.$message.error("获取附件文件失败");
});
},
//下载附件
delProject(row) {
console.log(row)
var a = document.createElement("a"); //创建一个<a></a>标
a.href = process.env.VUE_APP_BASE_API + row.enclosureFile; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
//a.download = row.enclosureFile; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
a.target='_blank'
a.style.display = "none"; // 障眼法藏起来a标签
document.body.appendChild(a); // 将a标签追加到文档对象中
a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
a.remove(); // 一次性的,用完就删除a标签
},
//显示添加附件
updatecard() {
this.getshow = 0;
this.disabled = true;
this.delfile1();
},
//删除附件
deleteProject(row) {
this.submissionFlag=true;
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;
},
//确定提交附件
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() {
console.log(this.proutlist1.Id);
this.queryDTO.reimbursementId = this.proutlist1.Id;
console.log(this.proutlist1.Id);
selectByIdF(this.queryDTO)
.then(res => {
if (res.success) {
this.queryDTOList = res.data;
this.proutlist1.enclosureDescribe=""//初始化数据
} else {
this.$message.error(res.msg);
}
})
.catch(error => {
this.$message.error("获取附件文件失败");
});
},
//附件取消
remove() {
if (this.queryDTOList.length > 0) {
this.getshow = 1;
this.disabled = false;
this.delfile1();
} else {
this.getshow = 3;
this.disabled = false;
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;
}
}
},
};
</script>
<style scoped>
.container {
padding: 10px;
}
.conter {
margin-bottom: 10px;
}
.footer {
text-align: right;
}
.lsitall .el-col{
margin: 20px 10px;
}
.lsitall .el-button {
margin-left: 16px;
}
.row-bg {
margin-left: 15%;
}
.dialog-footer {
width:90%;
margin:20px 5%;
}
.lsitall .el-col {
margin: 20px 10px;
}
.lsitall .el-button {
margin-left: 16px;
}
.row-bg {
margin-left: 15%;
}
.dialog-footer {
width: 90%;
margin: 20px 5%;
}
.cd{
width: 90%;
margin: 30px 5%;
}
</style>
\ No newline at end of file
......@@ -3,6 +3,23 @@
<!-- 申请报销头部模块 -->
<div>
<el-form :inline="true" :model="reimbursementQurey">
<el-form-item label="项目名称">
<el-input v-model="reimbursementQurey.projectName" placeholder="根据项目名称搜索"></el-input>
</el-form-item>
<el-form-item label="审批状态">
<el-select v-model="reimbursementQurey.reimbursementState" placeholder="根据状态搜索">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</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-form-item>
<el-form-item>
<el-button
type="success"
......@@ -556,10 +573,34 @@ export default {
//label样式
labelStyle: { width: "80px" },
reimbursementQurey: {
reimbursementState:null,
projectName:null,
userId: null,
pageNum: 1,
pageSize: 10,
},
options:[
{
value: 0,
label: '待小组长审批'
},
{
value: 1,
label: '待财务审批'
},
{
value: 2,
label: '小组长驳回'
},
{
value: 3,
label: '审批全通过'
},
{
value: 4,
label: '财务驳回'
}
],
total: 0,
reimbursementList: [],
//抽屉
......@@ -746,6 +787,18 @@ export default {
this.$message.error("回去数据失败");
});
},
//查询
qurey(){
this.reimbursementQurey.pageNum = 1
this.getReimbursement()
},
//重置
reset(){
this.reimbursementQurey.projectName = null
this.reimbursementQurey.pageNum = 1
this.reimbursementQurey.reimbursementState = null
this.getReimbursement()
},
//修改信息
updataReimbursement(data) {
//data是列表中所有的数据
......
......@@ -11,14 +11,12 @@
</el-form-item>
<el-form-item label="员工手机号">
<el-input
v-model="staffQurey.companyAddress"
v-model="staffQurey.userPhone"
placeholder="员工手机号"
></el-input>
</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-search" @click="qurey()">查询</el-button>
<el-button
type="primary"
icon="el-icon-refresh-right"
......
<template>
<!-- 员工管理 -->
<div class="container">
<div class="header">
<el-form :inline="true" :model="staffQurey">
<el-form-item label="员工姓名">
<el-input
v-model="staffQurey.userName"
placeholder="员工姓名"
></el-input>
</el-form-item>
<el-form-item label="员工手机号">
<el-input
v-model="staffQurey.companyAddress"
placeholder="员工手机号"
></el-input>
</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="addstaff()"
>添加员工</el-button
>
</el-form-item>
</el-form>
</div>
<div class="conter">
<el-table
:data="staffList"
style="width: 100%; text-align: center"
border
>
<el-table-column label="序号" width="50px">
<template slot-scope="scope">
{{
(staffQurey.pageNum - 1) * staffQurey.pageSize + scope.$index + 1
}}
</template>
</el-table-column>
<el-table-column prop="userName" label="姓名" />
<el-table-column prop="userSex" label="性别" >
<template slot-scope="scope">
{{scope.row.userSex == '0' ? '' : ''}}
</template>
</el-table-column>
<el-table-column prop="userPhone" label="手机号" />
<el-table-column prop="userIdentification" label="身份证" />
<el-table-column prop="userBankNumber" label="银行卡号" />
<el-table-column prop="userBankAddress" label="开户银行" />
<el-table-column label="员工角色" >
<template slot-scope="scope">
<el-tag v-for="item in scope.row.roleList" :key="item.rlId" style="margin-right:10px;">{{item.rlName}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<el-button style="margin:5px" size="mini" icon="el-icon-edit" type="info" @click="updataStaff(scope.row)">修改信息</el-button>
<el-button style="margin:5px" size="mini" icon="el-icon-edit" type="info" @click="staffrole(scope.row)" :disabled="scope.row.roles.indexOf(2)>-1">修改员工角色</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="footer">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="staffQurey.pageNum"
:page-size="staffQurey.pageSize"
layout="total, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
<el-dialog
:title="staffdata.userName"
:visible.sync="dialogVisible"
width="30%"
>
<p>角色</p>
<el-checkbox-group v-model="staffdata.roles">
<el-checkbox v-for="item in rolesList" :key="item.rlId" :label="item.rlId" name="type" >{{item.rlName}}</el-checkbox>
</el-checkbox-group>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="updataStaffRole">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {selectAllByCompanyId} from '@/api/role'
import {secletStaff,updateRole} from '@/api/user'
export default {
data() {
return {
staffQurey: {
companyId: null,
pageNum: 1,
pageSize: 10,
userName: null,
userPhone: null,
},
total: 0,
staffList: [],
dialogVisible:false,
staffdata:{},
rolesList:[],
};
},
created() {
this.staffQurey.companyId = this.$store.getters.companyId
this.getSatff()
this.getRoles();
},
methods: {
//获取权限
getRoles() {
selectAllByCompanyId({companyId:this.$store.getters.companyId}).then((res)=>{
if(res.status == "success"){
this.rolesList = res.data
}else{
this.$message.error(res.data)
}
}).catch((error)=>{
this.$message.error("查询角色失败")
})
},
//获取员工
getSatff(){
secletStaff(this.staffQurey).then((res)=>{
if(res.status == 'success'){
// console.log(res.status)
this.staffList = res.data.list
this.total = res.data.total
}else{
this.$message.error(res.data)
}
}).catch((error)=>{
this.$message.error("获取员工失败")
})
},
//查询
qurey() {
this.staffQurey.pageNum = 1
this.getSatff()
},
//重置
reset() {
this.staffQurey = {
companyId: this.$store.getters.companyId,
pageNum: 1,
pageSize: 10,
userName: null,
userPhone: null,
}
this.getSatff()
},
//添加员工
addstaff() {
this.$router.push('/addStaff')
},
//换页
handleCurrentChange(val) {
this.staffQurey.pageNum = val
this.getSatff()
},
//修改员工信息
updataStaff(data){
this.$router.push({
path: '/updataStaff',
query:{
id:data.userId,
}
})
},
//修改员工角色
staffrole(data){
let roles = this.$store.getters.roles
console.log(data)
if(roles.indexOf(2) > -1){
this.staffdata = data
this.dialogVisible = true
}else{
this.$message.warning("只有管理员有权限修改员工角色")
}
},
//修改员工角色提交方法
updataStaffRole(){
// console.log(this.staffdata)
let param={
userId:this.staffdata.userId,
roles:this.staffdata.roles
}
console.log(param)
updateRole(param).then(res=>{
if(res.status == 'success'){
this.getSatff()
}else{
this.$message.error(res.data)
}
})
this.dialogVisible=false
}
},
};
</script>
<style scoped>
.container {
padding: 10px;
}
.conter {
margin-bottom: 10px;
}
.footer {
text-align: right;
}
</style>
\ No newline at end of file
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