oa 一般采购支付 最后一笔

master
lion 1 month ago
parent a31db2adb5
commit cb9a80e2b2

@ -473,7 +473,7 @@ import {getToken} from "@/utils/auth";
return
}
}
//
//
const groupMap = records.reduce((acc, row) => {
const gid = row.sourceFlowId
if (!acc[gid]) acc[gid] = []
@ -485,19 +485,37 @@ import {getToken} from "@/utils/auth";
const rows = groupMap[gid]
let count = 0
let totalCount = 0
let allToRemain = true
// ""
console.log(`当前分组gid: ${gid}`)
console.log(`this.list中所有sourceFlowId:`, this.list.map(r => r.sourceFlowId))
const allItemsInGroup = this.list.filter(r => r.sourceFlowId == gid)
console.log(`匹配到的明细数量: ${allItemsInGroup.length}`)
let allCompleted = true
//
rows.forEach(item => {
const payNum = Number(item.payNum)
const num = Number(item.num)
const hasPay = Number(item.hasPayNum)
const remain = num - hasPay
if (isNaN(payNum) || payNum === 0 || payNum > num) count++
if (payNum + hasPay > num) totalCount++
//
if (!(payNum > 0 && Math.abs(payNum - remain) < 1e-6)) {
allToRemain = false
})
// +
allItemsInGroup.forEach(item => {
const hasPay = Number(item.hasPayNum)
const num = Number(item.num)
//
const selectedItem = rows.find(r => r.id === item.id)
const totalPay = hasPay + (selectedItem ? Number(selectedItem.payNum) : 0)
console.log(`分组${gid}明细${item.id}: hasPay=${hasPay}, payNum=${selectedItem ? selectedItem.payNum : 0}, totalPay=${totalPay}, num=${num}, 是否完成=${totalPay >= num}`)
if (totalPay < num) {
allCompleted = false
}
})
console.log(`分组${gid} allCompleted:`, allCompleted, `总明细数:${allItemsInGroup.length}`)
if (count > 0) {
this.$message({
message: `${idToTitle[gid] || gid}】报销数量不能为0或报销数量大于总数量`,
@ -515,7 +533,7 @@ import {getToken} from "@/utils/auth";
return
}
//
if (allToRemain && this.fundlogFormMap[gid] && !this.fundlogFormMap[gid].isLast) {
if (allCompleted && this.fundlogFormMap[gid] && !this.fundlogFormMap[gid].isLast) {
groupsToAutoEnd.push(gid)
}
}
@ -577,11 +595,7 @@ import {getToken} from "@/utils/auth";
// ID
const contractIdStr = Array.from(new Set(wuzicaigou_items.map(i => i.contract_id).filter(Boolean))).join(',')
//
const amtTotal = (this.payList || []).reduce((sum, p) => {
const form = this.fundlogFormMap[p.id] || {}
return sum + (Number(form.applyMoney) || 0)
}, 0)
const amtTotal = wuzicaigou_items.reduce((sum, i) => sum + (Number(i.group_apply_money || i.apply_money) || 0), 0)
//
const sumMoney = (contracts || []).reduce((sum, c) => sum + (Number(c?.money) || 0), 0)

@ -15,7 +15,7 @@
<template>
<Steps :logs="config.logs" :current-node="node"></Steps>
<div v-if="(/\/detail/.test($route.path) || ( /\/create/.test($route.path) && $route.query.flow_id)) && config && config.flow">
<div v-if="/\/detail/.test($route.path) && config && config.flow">
<div v-if="config.flow.hasOwnProperty('out_contracts') && config.flow.out_contracts && config.flow.out_contracts.length > 0" style="margin-bottom: 10px;color:#F56C6C;">
<!-- 单条数据 -->
<div v-if="config.flow.out_contracts.length === 1">
@ -186,7 +186,7 @@
@click="isShowRollback = true"
>退回</el-button
>
<!-- <el-button
<el-button
v-if="$route.query.flow_id"
icon="el-icon-caret-right"
type="primary"
@ -194,7 +194,7 @@
size="small"
@click="isShowForward = true"
>部门内转办</el-button
> -->
>
<el-button
v-if="$route.query.flow_id"
icon="el-icon-document-add"
@ -271,29 +271,6 @@
frameborder="0"
/>
</vxe-modal>
<!-- 更改时间 -->
<el-dialog
title="请选择时间"
:visible.sync="isShowTime"
:close-on-click-modal="false"
width="30%"
>
<!-- 日期时间选择器 -->
<el-date-picker
v-model="selectedDateTime"
type="datetime"
placeholder="选择日期时间"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
:clearable="false"
style="width: 100%"
></el-date-picker>
<div slot="footer" class="dialog-footer">
<el-button @click="isShowTime = false,timeId='',selectedDateTime=''">取消</el-button>
<el-button type="primary" @click="updateTime"></el-button>
</div>
</el-dialog>
</div>
</template>
@ -330,10 +307,6 @@ export default {
},
data() {
return {
timeId:'',
isShowTime:false,
selectedDateTime:'',
selectedDateType:'',
isShowModal:false,
contractUrl:'',
printKey: 0,
@ -916,42 +889,23 @@ export default {
async cellDblclickEvent({ row, column }) {
// if(this.$store.state.user.username !== 'admin') return
if(!this.$store.state.user.roles.includes("全局流程监管")) return
if(column.field === 'created_at' || column.field === 'updated_at') {
this.timeId = row.id
this.selectedDateType = column.field
this.selectedDateTime = row[column.field]
this.isShowTime = true
// this.$prompt('', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// inputPattern: /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/,
// inputErrorMessage: ''
// }).then(({ value }) => {
// updateNodeTime({
// id: row.id,
// date: value,
// date_type: column.field
// }).then(_ => {
// this.$message.success('')
// this.getConfig()
// })
// })
}
},
updateTime(){
this.$prompt('请输入时间', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPattern: /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/,
inputErrorMessage: '时间格式不正确'
}).then(({ value }) => {
updateNodeTime({
id: this.timeId,
date: this.selectedDateTime,
date_type:this.selectedDateType,
}).then((_) => {
this.$message.success("更新成功");
this.timeId = ''
this.selectedDateTime = ''
this.selectedDateType = ''
this.isShowTime = false
id: row.id,
date: value,
date_type: column.field
}).then(_ => {
this.$message.success('更新成功')
this.getConfig()
});
})
})
}
},
},
computed: {

Loading…
Cancel
Save