Commit 126c9bfb authored by 祁正's avatar 祁正

项目费用申报销-审核

parent c6240561
...@@ -72,3 +72,5 @@ export function getAllapproveList(id) { ...@@ -72,3 +72,5 @@ export function getAllapproveList(id) {
method: 'get' method: 'get'
}) })
} }
...@@ -74,46 +74,49 @@ ...@@ -74,46 +74,49 @@
<text>项目编号</text> <text>项目编号</text>
<text>{{changProjectNumber}}</text> <text>{{changProjectNumber}}</text>
</div> </div>
<FlowChart :dataList="list" :widthDontai="'70%'" :activeIndex="stepActive"/> <div>
<FlowChart :dataList="list" :itemWidth="'130px'" :activeIndex="stepActive"/>
</div>
</div> </div>
<!-- 列表--> <!-- 列表-->
<div class="contentTable"> <div class="contentTable">
<el-table v-loading="loading" :data="ReimbursementRequestList" border> <el-table v-loading="loading" :data="ReimbursementRequestList" border @cell-mouse-enter="handleHover" @cell-mouse-leave="handleLeave">
<el-table-column type="selection" align="center"></el-table-column> <el-table-column type="selection" align="center"></el-table-column>
<el-table-column width="180px" prop="updateTime" label="申请时间" align="center"> <el-table-column width="180px" prop="updateTime" label="申请时间" align="center">
<template #default="scope"> <template #default="scope">
<span @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave">{{scope.row.updateTime}}</span> <span >{{scope.row.updateTime}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectName" label="项目名称" align="center"> <el-table-column prop="projectName" label="项目名称" align="center">
<template #default="scope"> <template #default="scope">
<span @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave">{{scope.row.projectName}}</span> <span >{{scope.row.projectName}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectType" label="项目类型" align="center"> <el-table-column prop="projectType" label="项目类型" align="center">
<template #default="scope"> <template #default="scope">
<dict-tag :options="project_type" :value="scope.row.projectType" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"/> <dict-tag :options="project_type" :value="scope.row.projectType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="timeOfExpense" label="费用发生时间" align="center"> <el-table-column prop="timeOfExpense" label="费用发生时间" align="center">
<template #default="scope"> <template #default="scope">
<span @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave">{{scope.row.timeOfExpense}}</span> <span >{{scope.row.timeOfExpense}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="costType" label="费用类型" align="center"> <el-table-column prop="costType" label="费用类型" align="center">
<template #default="scope"> <template #default="scope">
<dict-tag :options="project_cost_type" :value="scope.row.costType" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"/> <dict-tag :options="project_cost_type" :value="scope.row.costType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actualAmount" label="实际金额(元)" align="center"> <el-table-column prop="actualAmount" label="实际金额(元)" align="center">
<template #default="scope"> <template #default="scope">
<span @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave">{{scope.row.actualAmount}}</span> <span >{{scope.row.actualAmount}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reimbursmentApproveStatus" label="报销审批状态" align="center"> <el-table-column prop="reimbursmentApproveStatus" label="报销审批状态" align="center">
<template #default="scope"> <template #default="scope">
<dict-tag :options="project_cost_request_status" :value="scope.row.reimbursmentApproveStatus" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"/> <dict-tag :options="project_cost_request_status" :value="scope.row.reimbursmentApproveStatus" />
</template> </template>
</el-table-column> </el-table-column>
...@@ -121,22 +124,22 @@ ...@@ -121,22 +124,22 @@
<el-table-column label="操作" align="center" width="230px"> <el-table-column label="操作" align="center" width="230px">
<template #default="scope" > <template #default="scope" >
<el-tooltip content="编辑" placement="top" > <el-tooltip content="编辑" placement="top" >
<el-button :disabled="scope.row.reimbursmentApproveStatus === 3" link type="text" @click="handleUpdate(scope.row)" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"> <el-button :disabled="scope.row.reimbursmentApproveStatus === 3" link type="text" @click="handleUpdate(scope.row)" >
<img src="@/assets/icons/common/edit.png" height="32" width="32"/> <img src="@/assets/icons/common/edit.png" height="32" width="32"/>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="详情" placement="top"> <el-tooltip content="详情" placement="top">
<el-button link type="text" @click="handleView(scope.row)" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"> <el-button link type="text" @click="handleView(scope.row)" >
<img src="@/assets/icons/common/check.png" height="32" width="32"/> <img src="@/assets/icons/common/check.png" height="32" width="32"/>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="删除" placement="top"> <el-tooltip content="删除" placement="top">
<el-button link type="text" @click="handleDelete(scope.row)" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"> <el-button link type="text" @click="handleDelete(scope.row)" >
<img src="@/assets/icons/common/delete.png" height="32" width="32"/> <img src="@/assets/icons/common/delete.png" height="32" width="32"/>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="打印报销单" placement="top"> <el-tooltip content="打印报销单" placement="top">
<el-button :disabled="scope.row.reimbursmentApproveStatus!== 3" link type="text" @click="handlePrint()" @mouseenter="handleHover(scope.row)" @mouseleave="handleLeave"> <el-button :disabled="scope.row.reimbursmentApproveStatus!== 3" link type="text" @click="handlePrint()" >
<img src="@/assets/icons/common/print.png" height="32" width="32"/> <img src="@/assets/icons/common/print.png" height="32" width="32"/>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
...@@ -158,11 +161,26 @@ ...@@ -158,11 +161,26 @@
</template> </template>
<script setup> <script setup>
import { useRouter } from 'vue-router'
import {
delCostRequest,
getCostRequestDetail,
getCostRequestList,
getProjectName,
getAllapproveList
} from "../../../api/projectCostRequest/projectCostRequest.js";
import {ArrowDown} from "@element-plus/icons-vue";
import {
delReimbursement,
getReimbursementList
} from "../../../api/projectCostReimbursement/projectCostReimbursement.js";
import FlowChart from '@/components/FlowChart/index.vue' import FlowChart from '@/components/FlowChart/index.vue'
import { reactive, ref } from 'vue' import { reactive, ref } from 'vue'
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { project_status, project_cost_type,project_cost_request_status,project_type} = proxy.useDict('project_status', 'project_cost_type','project_cost_request_status','project_type'); const { project_status, project_cost_type,project_cost_request_status,project_type} = proxy.useDict('project_status', 'project_cost_type','project_cost_request_status','project_type');
const total = ref(2); const total = ref(2);
const ReimbursementRequestList = ref([]);
const queryParams = reactive({ const queryParams = reactive({
pageNum:1, pageNum:1,
pageSize:10, pageSize:10,
...@@ -180,10 +198,19 @@ const toggleSearch = () => { ...@@ -180,10 +198,19 @@ const toggleSearch = () => {
} }
// 流程图内容 // 流程图内容
const list = ['个人','PM','事业部负责人','财务','领导'] const list = ref([]) // 流程图内容,只有值
const allList = ref([]) // 流程图内容,值和角色id
//获取列表第一个顶部信息
const getTopApproveInfo = ()=>{
let item2 = ReimbursementRequestList.value[0]
console.log("first",item2)
changProjectNumber.value = item2.projectNumber
let i = allList.value.findIndex((item)=>item.nodeId === item2.currentAuditNodeId)
if(i === -1) stepActive.value = 1
else stepActive.value = i+1
}
// 列表 // 列表
const ReimbursementRequestList = ref([]);
// 获取报销列表数据 // 获取报销列表数据
const getList=()=> { const getList=()=> {
getReimbursementList(queryParams).then(response => { getReimbursementList(queryParams).then(response => {
...@@ -200,29 +227,53 @@ const getList=()=> { ...@@ -200,29 +227,53 @@ const getList=()=> {
} }
}); });
ReimbursementRequestList.value = sortedRows; ReimbursementRequestList.value = sortedRows;
getTopApproveInfo()
}); });
} }
getList() getList()
//获取所有审批流程
const getAllshenpiList = ()=>{
getAllapproveList(15).then(response => {
list.value = response.data.nodeList.map((item)=>{
return item.roleName
})
allList.value = response.data.nodeList
console.log("所有节点",allList.value)
})
}
getAllshenpiList()
//鼠标悬停更改步骤条 //鼠标悬停更改步骤条
const hoverColumnData = ref(''); const hoverColumnData = ref('');
const stepActive = ref(1); const stepActive = ref(1);
const changProjectNumber = ref('') const changProjectNumber = ref('')
const handleHover = (row) => { let timer = null;
const handleHover = (row, column, cell, event) => {
changProjectNumber.value = row.projectNumber changProjectNumber.value = row.projectNumber
// console.log("当前行的项目编号",row.projectNumber) // console.log("当前行的项目编号",row.projectNumber)
const Status = row.reimbursmentApproveStatus; //防抖
if (Status === 1 ) {
stepActive.value = 1; if (timer) {
} else if (Status === 3) { clearTimeout(timer);
stepActive.value = 5;
}else if(Status === 2){
stepActive.value = 3;
} }
timer = setTimeout(() => {
changProjectNumber.value = row.projectNumber
let i = allList.value.findIndex((item)=>item.nodeId === row.currentAuditNodeId)
if(i === -1) stepActive.value = 1
else stepActive.value = i+1
}, 300);
} }
const handleLeave = () => { const handleLeave = () => {
stepActive.value = 1;
hoverColumnData.value = ''; if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
getTopApproveInfo()
}, 300);
} }
//表单——获取所有项目名称 //表单——获取所有项目名称
const projectNameList = ref([]); const projectNameList = ref([]);
...@@ -250,18 +301,7 @@ const onSearch = () => { ...@@ -250,18 +301,7 @@ const onSearch = () => {
} }
//新增按钮 //新增按钮
import { useRouter } from 'vue-router'
import {
delCostRequest,
getCostRequestDetail,
getCostRequestList,
getProjectName
} from "../../../api/projectCostRequest/projectCostRequest.js";
import {ArrowDown} from "@element-plus/icons-vue";
import {
delReimbursement,
getReimbursementList
} from "../../../api/projectCostReimbursement/projectCostReimbursement.js";
const router = useRouter() const router = useRouter()
const goToApplyPage = () => { const goToApplyPage = () => {
router.push({ path: '/costManage/projectCostReimbursement/waitReimbursement' ,query:{type:"新增"}}) router.push({ path: '/costManage/projectCostReimbursement/waitReimbursement' ,query:{type:"新增"}})
......
...@@ -196,7 +196,8 @@ const getTopApproveInfo = ()=>{ ...@@ -196,7 +196,8 @@ const getTopApproveInfo = ()=>{
console.log("first",item2) console.log("first",item2)
changProjectNumber.value = item2.projectNumber changProjectNumber.value = item2.projectNumber
let i = allList.value.findIndex((item)=>item.nodeId === item2.currentAuditRoleId) let i = allList.value.findIndex((item)=>item.nodeId === item2.currentAuditRoleId)
stepActive.value = i+1 if(i === -1) stepActive.value = 1
else stepActive.value = i+1
} }
// 列表 // 列表
...@@ -276,7 +277,8 @@ const handleHover = (row, column, cell, event) => { ...@@ -276,7 +277,8 @@ const handleHover = (row, column, cell, event) => {
changProjectNumber.value = row.projectNumber changProjectNumber.value = row.projectNumber
console.log("劲来了",row) console.log("劲来了",row)
let i = allList.value.findIndex((item)=>item.nodeId === row.currentAuditRoleId) let i = allList.value.findIndex((item)=>item.nodeId === row.currentAuditRoleId)
stepActive.value = i+1 if(i === -1) stepActive.value = 1
else stepActive.value = i+1
}, 300); }, 300);
......
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