|
|
|
|
@ -22,7 +22,7 @@
|
|
|
|
|
gap: 10px;
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<el-input
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="pendingQuery.keywords"
|
|
|
|
|
placeholder="关键词"
|
|
|
|
|
size="small"
|
|
|
|
|
@ -103,8 +103,7 @@
|
|
|
|
|
@click="handleBatchPay"
|
|
|
|
|
>批量支付</el-button
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<el-table
|
|
|
|
|
ref="pendingTable"
|
|
|
|
|
:data="pendingRows"
|
|
|
|
|
@ -118,35 +117,48 @@
|
|
|
|
|
width="50"
|
|
|
|
|
reserve-selection
|
|
|
|
|
></el-table-column>
|
|
|
|
|
<el-table-column label="申请人" width="120" align="center">
|
|
|
|
|
<el-table-column label="申请人" width="80" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.applicant }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="申请科室" width="140" align="center">
|
|
|
|
|
<el-table-column label="申请科室" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.department }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="流程名称" width="160" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<div @click="showModal(row)" style="cursor: pointer;color: #409EFF;">
|
|
|
|
|
<div
|
|
|
|
|
@click="showModal(row)"
|
|
|
|
|
style="cursor: pointer; color: #409eff"
|
|
|
|
|
>
|
|
|
|
|
{{ row.flowTitle }}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购内容" width="160" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购内容"
|
|
|
|
|
width="100"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaseContent }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购负责人" width="160" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购负责人"
|
|
|
|
|
width="100"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaser }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column label="本次报销数量" width="160" align="center">
|
|
|
|
|
|
|
|
|
|
<el-table-column label="本次报销数量" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-input-number
|
|
|
|
|
v-model="row.applyNum"
|
|
|
|
|
@ -154,12 +166,12 @@
|
|
|
|
|
:controls="false"
|
|
|
|
|
size="small"
|
|
|
|
|
:class="{ 'error-input': isApplyNumInvalid(row) }"
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
@change="validateApplyNum(row)"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="付款金额" width="160" align="center">
|
|
|
|
|
<el-table-column label="付款金额" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-input-number
|
|
|
|
|
v-model="row.money"
|
|
|
|
|
@ -167,33 +179,48 @@
|
|
|
|
|
:precision="2"
|
|
|
|
|
:controls="false"
|
|
|
|
|
size="small"
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="已报销数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="已报销数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.paidNum }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.total }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否合同审批" width="140" align="center">
|
|
|
|
|
<el-table-column label="是否合同审批" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.isContractFlow }}
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="row.shifouhetongshenpi"
|
|
|
|
|
placeholder="是否合同审批"
|
|
|
|
|
size="small"
|
|
|
|
|
@change="
|
|
|
|
|
(val) =>
|
|
|
|
|
handlePendingFieldUpdate(row, 'shifouhetongshenpi', val)
|
|
|
|
|
"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
>
|
|
|
|
|
<el-option label="是" value="是" />
|
|
|
|
|
<el-option label="否" value="否" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="清单情况" width="140" align="center">
|
|
|
|
|
<el-table-column label="清单情况" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="row.shifouqingdan"
|
|
|
|
|
placeholder="清单情况"
|
|
|
|
|
size="small"
|
|
|
|
|
@change="val => handlePendingFieldUpdate(row, 'shifouqingdan', val)"
|
|
|
|
|
style="width: 100px"
|
|
|
|
|
@change="
|
|
|
|
|
(val) =>
|
|
|
|
|
handlePendingFieldUpdate(row, 'shifouqingdan', val)
|
|
|
|
|
"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
>
|
|
|
|
|
<el-option label="清单内" value="清单内" />
|
|
|
|
|
<el-option label="清单外" value="清单外" />
|
|
|
|
|
@ -206,32 +233,36 @@
|
|
|
|
|
v-model="row.shifoubijia"
|
|
|
|
|
placeholder="是否比价"
|
|
|
|
|
size="small"
|
|
|
|
|
@change="val => handlePendingFieldUpdate(row, 'shifoubijia', val)"
|
|
|
|
|
style="width: 80px"
|
|
|
|
|
@change="
|
|
|
|
|
(val) => handlePendingFieldUpdate(row, 'shifoubijia', val)
|
|
|
|
|
"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
>
|
|
|
|
|
<el-option label="是" value="是" />
|
|
|
|
|
<el-option label="否" value="否" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否发货" width="120" align="center">
|
|
|
|
|
<el-table-column label="是否收货" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="row.shifoufahuo"
|
|
|
|
|
placeholder="是否发货"
|
|
|
|
|
placeholder="是否收货"
|
|
|
|
|
size="small"
|
|
|
|
|
@change="val => handlePendingFieldUpdate(row, 'shifoufahuo', val)"
|
|
|
|
|
style="width: 80px"
|
|
|
|
|
@change="
|
|
|
|
|
(val) => handlePendingFieldUpdate(row, 'shifoufahuo', val)
|
|
|
|
|
"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
>
|
|
|
|
|
<el-option label="是" value="是" />
|
|
|
|
|
<el-option label="否" value="否" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="品名或服务需求"
|
|
|
|
|
min-width="220"
|
|
|
|
|
min-width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
@ -240,14 +271,14 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="型号与规格"
|
|
|
|
|
width="160"
|
|
|
|
|
width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.model }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="产地" width="120" align="center">
|
|
|
|
|
<el-table-column label="产地" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.origin }}
|
|
|
|
|
</template>
|
|
|
|
|
@ -259,7 +290,7 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="用途"
|
|
|
|
|
min-width="240"
|
|
|
|
|
min-width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
@ -362,80 +393,93 @@
|
|
|
|
|
@click="handlePaidQueryChange"
|
|
|
|
|
>查询</el-button
|
|
|
|
|
>
|
|
|
|
|
</div>
|
|
|
|
|
<el-table
|
|
|
|
|
:data="paidRows"
|
|
|
|
|
border
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
row-key="id"
|
|
|
|
|
>
|
|
|
|
|
<el-table-column label="申请人" width="120" align="center">
|
|
|
|
|
</div>
|
|
|
|
|
<el-table :data="paidRows" border style="width: 100%" row-key="id">
|
|
|
|
|
<el-table-column label="申请人" width="80" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.applicant }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="申请科室" width="140" align="center">
|
|
|
|
|
<el-table-column label="申请科室" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.department }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="流程名称" width="160" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<div @click="showModal(row)" style="cursor: pointer;color: #409EFF;">
|
|
|
|
|
<div
|
|
|
|
|
@click="showModal(row)"
|
|
|
|
|
style="cursor: pointer; color: #409eff"
|
|
|
|
|
>
|
|
|
|
|
{{ row.flowTitle }}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购内容" width="160" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购内容"
|
|
|
|
|
width="100"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaseContent }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购负责人" width="160" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购负责人"
|
|
|
|
|
width="100"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaser }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column label="已报销数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="已报销数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.paidNum }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="付款金额" width="120" align="center">
|
|
|
|
|
<el-table-column label="付款金额" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.money }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.total }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否合同审批" width="140" align="center">
|
|
|
|
|
<el-table-column label="是否支付完成" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.isContractFlow }}
|
|
|
|
|
{{ row.fund_log.status ? '是' : '否' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="清单情况" width="140" align="center">
|
|
|
|
|
<el-table-column label="是否合同审批" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifouqingdan || '' }}
|
|
|
|
|
{{ row.shifouhetongshenpi || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否比价" width="120" align="center">
|
|
|
|
|
<el-table-column label="清单情况" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifouqingdan || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否比价" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoubijia || '' }}
|
|
|
|
|
{{ row.shifoubijia || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否发货" width="120" align="center">
|
|
|
|
|
<el-table-column label="是否收货" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoufahuo || '' }}
|
|
|
|
|
{{ row.shifoufahuo || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="品名或服务需求"
|
|
|
|
|
min-width="220"
|
|
|
|
|
min-width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
@ -444,14 +488,14 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="型号与规格"
|
|
|
|
|
width="160"
|
|
|
|
|
width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.model }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="产地" width="120" align="center">
|
|
|
|
|
<el-table-column label="产地" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.origin }}
|
|
|
|
|
</template>
|
|
|
|
|
@ -463,7 +507,7 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="用途"
|
|
|
|
|
min-width="240"
|
|
|
|
|
min-width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
@ -483,12 +527,12 @@
|
|
|
|
|
/>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
</el-tabs>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<payMx ref="payMx" :is-show.sync="isShowPay"></payMx>
|
|
|
|
|
|
|
|
|
|
<vxe-modal
|
|
|
|
|
<vxe-modal
|
|
|
|
|
v-model="isShowModal"
|
|
|
|
|
:z-index="zIndex"
|
|
|
|
|
transfer
|
|
|
|
|
@ -503,7 +547,7 @@
|
|
|
|
|
>
|
|
|
|
|
<iframe
|
|
|
|
|
:src="modalUrl"
|
|
|
|
|
style="display: block;width: 100%;height: 100%;border: 0;"
|
|
|
|
|
style="display: block; width: 100%; height: 100%; border: 0"
|
|
|
|
|
frameborder="0"
|
|
|
|
|
/>
|
|
|
|
|
</vxe-modal>
|
|
|
|
|
@ -524,34 +568,47 @@
|
|
|
|
|
@selection-change="handleSelectedPreviewSelectionChange"
|
|
|
|
|
>
|
|
|
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
|
|
|
<el-table-column label="申请人" width="120" align="center">
|
|
|
|
|
<el-table-column label="申请人" width="80" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.applicant }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="申请科室" width="140" align="center">
|
|
|
|
|
<el-table-column label="申请科室" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.department }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="流程名称" width="160" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<div @click="showModal(row)" style="cursor: pointer;color: #409EFF;">
|
|
|
|
|
<div
|
|
|
|
|
@click="showModal(row)"
|
|
|
|
|
style="cursor: pointer; color: #409eff"
|
|
|
|
|
>
|
|
|
|
|
{{ row.flowTitle }}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购内容" min-width="160" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购内容"
|
|
|
|
|
min-width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaseContent }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="采购负责人" width="140" align="center" show-overflow-tooltip>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="采购负责人"
|
|
|
|
|
width="100"
|
|
|
|
|
align="center"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purchaser }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="本次报销数量" width="160" align="center">
|
|
|
|
|
<el-table-column label="本次报销数量" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-input-number
|
|
|
|
|
v-model="row.applyNum"
|
|
|
|
|
@ -559,57 +616,68 @@
|
|
|
|
|
:controls="false"
|
|
|
|
|
size="small"
|
|
|
|
|
:class="{ 'error-input': isApplyNumInvalid(row) }"
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
@change="validateApplyNum(row)"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="付款金额" width="160" align="center">
|
|
|
|
|
<el-table-column label="付款金额" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-input-number v-model="row.money" :min="0" :precision="2" :controls="false" size="small" style="width: 120px" />
|
|
|
|
|
<el-input-number
|
|
|
|
|
v-model="row.money"
|
|
|
|
|
:min="0"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:controls="false"
|
|
|
|
|
size="small"
|
|
|
|
|
style="width: 90px"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="已报销数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="已报销数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.paidNum }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="数量" width="120" align="center">
|
|
|
|
|
<el-table-column label="数量" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.total }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否合同审批" width="140" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.isContractFlow }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="清单情况" width="140" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifouqingdan || '' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否比价" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoubijia || '' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否发货" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoufahuo || '' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="品名或服务需求" min-width="160" show-overflow-tooltip>
|
|
|
|
|
<el-table-column label="是否合同审批" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifouhetongshenpi || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="清单情况" width="120" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifouqingdan || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否比价" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoubijia || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="是否收货" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.shifoufahuo || "" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="品名或服务需求"
|
|
|
|
|
min-width="140"
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.itemName }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="型号与规格" width="160" show-overflow-tooltip>
|
|
|
|
|
<el-table-column label="型号与规格" width="140" show-overflow-tooltip>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.model }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="产地" width="120" align="center">
|
|
|
|
|
<el-table-column label="产地" width="100" align="center">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.origin }}
|
|
|
|
|
</template>
|
|
|
|
|
@ -619,7 +687,7 @@
|
|
|
|
|
{{ row.unit }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="用途" min-width="160" show-overflow-tooltip>
|
|
|
|
|
<el-table-column label="用途" min-width="140" show-overflow-tooltip>
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
{{ row.purpose }}
|
|
|
|
|
</template>
|
|
|
|
|
@ -627,10 +695,11 @@
|
|
|
|
|
</el-table>
|
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
|
<el-button @click="closeSelectedPreview">取 消</el-button>
|
|
|
|
|
<el-button type="primary" @click="confirmSelectedPreview">确认支付</el-button>
|
|
|
|
|
<el-button type="primary" @click="confirmSelectedPreview"
|
|
|
|
|
>确认支付</el-button
|
|
|
|
|
>
|
|
|
|
|
</span>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -640,13 +709,17 @@ import {
|
|
|
|
|
receiveList,
|
|
|
|
|
getFundLog,
|
|
|
|
|
detailContract,
|
|
|
|
|
updateList
|
|
|
|
|
} from '@/api/flow/pay';
|
|
|
|
|
updateList,
|
|
|
|
|
} from "@/api/flow/pay";
|
|
|
|
|
import payMx from "./components/payMx.vue";
|
|
|
|
|
import { departmentListNoAuth, caigoumingxiConfig,userListNoAuth } from '@/api/common';
|
|
|
|
|
import { PopupManager } from 'element-ui/lib/utils/popup';
|
|
|
|
|
import { defaultModalSize } from '@/settings';
|
|
|
|
|
import { getToken } from '@/utils/auth';
|
|
|
|
|
import {
|
|
|
|
|
departmentListNoAuth,
|
|
|
|
|
caigoumingxiConfig,
|
|
|
|
|
userListNoAuth,
|
|
|
|
|
} from "@/api/common";
|
|
|
|
|
import { PopupManager } from "element-ui/lib/utils/popup";
|
|
|
|
|
import { defaultModalSize } from "@/settings";
|
|
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
|
|
export default {
|
|
|
|
|
name: "PayList",
|
|
|
|
|
components: {
|
|
|
|
|
@ -654,8 +727,8 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
isShowModal:false,
|
|
|
|
|
modalUrl:'',
|
|
|
|
|
isShowModal: false,
|
|
|
|
|
modalUrl: "",
|
|
|
|
|
zIndex: PopupManager.nextZIndex(),
|
|
|
|
|
defaultModalSize,
|
|
|
|
|
departments: [],
|
|
|
|
|
@ -673,7 +746,7 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
pendingRows: [],
|
|
|
|
|
pendingPage: 1,
|
|
|
|
|
pendingPageSize: 40,
|
|
|
|
|
pendingPageSize: 10,
|
|
|
|
|
pendingTotal: 0,
|
|
|
|
|
pendingSelectedIds: [],
|
|
|
|
|
pendingSelectedMap: {},
|
|
|
|
|
@ -692,30 +765,36 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
paidRows: [],
|
|
|
|
|
paidPage: 1,
|
|
|
|
|
paidPageSize: 40,
|
|
|
|
|
paidPageSize: 10,
|
|
|
|
|
paidTotal: 0,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
pendingBadgeCount() {
|
|
|
|
|
return (this.pendingSelectedIds && this.pendingSelectedIds.length) ? this.pendingSelectedIds.length : 0;
|
|
|
|
|
return this.pendingSelectedIds && this.pendingSelectedIds.length
|
|
|
|
|
? this.pendingSelectedIds.length
|
|
|
|
|
: 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
async handlePendingFieldUpdate(row, field, value) {
|
|
|
|
|
const oldValue = row[field]
|
|
|
|
|
const oldValue = row[field];
|
|
|
|
|
// v-model 已经写入新值,这里确保使用传入值
|
|
|
|
|
try {
|
|
|
|
|
await updateList({ id: row.id, [field]: value })
|
|
|
|
|
this.$message.success('已保存')
|
|
|
|
|
await updateList({ id: row.id, [field]: value });
|
|
|
|
|
this.$message.success("已保存");
|
|
|
|
|
} catch (e) {
|
|
|
|
|
// 失败回滚
|
|
|
|
|
this.$message.error('保存失败,请重试')
|
|
|
|
|
this.$set(row, field, oldValue)
|
|
|
|
|
this.$message.error("保存失败,请重试");
|
|
|
|
|
this.$set(row, field, oldValue);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
showModal(row) {
|
|
|
|
|
this.modalUrl = `/oa/#/flow/detail?module_id=${row.yibancaigou?.flow?.custom_model_id}&flow_id=${row.yibancaigou?.flow?.id}&auth_token=${window.encodeURIComponent(getToken())}&isSinglePage=1`;
|
|
|
|
|
this.modalUrl = `/oa/#/flow/detail?module_id=${
|
|
|
|
|
row.yibancaigou?.flow?.custom_model_id
|
|
|
|
|
}&flow_id=${
|
|
|
|
|
row.yibancaigou?.flow?.id
|
|
|
|
|
}&auth_token=${window.encodeURIComponent(getToken())}&isSinglePage=1`;
|
|
|
|
|
this.isShowModal = true;
|
|
|
|
|
},
|
|
|
|
|
async getDepartmentList() {
|
|
|
|
|
@ -789,11 +868,11 @@ export default {
|
|
|
|
|
async handleBatchPay() {
|
|
|
|
|
// 检查是否选中数据
|
|
|
|
|
if (this.pendingSelectedIds.length === 0) {
|
|
|
|
|
this.$message.warning('请先选择需要支付的明细')
|
|
|
|
|
return
|
|
|
|
|
this.$message.warning("请先选择需要支付的明细");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.openSelectedPreview()
|
|
|
|
|
return
|
|
|
|
|
this.openSelectedPreview();
|
|
|
|
|
return;
|
|
|
|
|
// 以下老逻辑暂时保留(不执行)
|
|
|
|
|
if (this.pendingSelectedIds.length === 0) {
|
|
|
|
|
this.$message.warning("请先选择需要支付的明细");
|
|
|
|
|
@ -1088,7 +1167,9 @@ export default {
|
|
|
|
|
this.$refs.pendingTable.toggleRowSelection(row, true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
this.$nextTick(() => { this.syncingPendingSelection = false; });
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.syncingPendingSelection = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
@ -1120,10 +1201,10 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
openSelectedPreview() {
|
|
|
|
|
// 记录已存在的编辑值,便于重建时保留
|
|
|
|
|
const editedMap = {}
|
|
|
|
|
;(this.selectedPreviewRows || []).forEach(r => {
|
|
|
|
|
editedMap[r.id] = { applyNum: r.applyNum, money: r.money }
|
|
|
|
|
})
|
|
|
|
|
const editedMap = {};
|
|
|
|
|
(this.selectedPreviewRows || []).forEach((r) => {
|
|
|
|
|
editedMap[r.id] = { applyNum: r.applyNum, money: r.money };
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 按当前已选的待采购集合构建预览(始终以最新选择为准)
|
|
|
|
|
const rows = this.pendingSelectedIds
|
|
|
|
|
@ -1134,15 +1215,17 @@ export default {
|
|
|
|
|
this.$set(this.pendingSelectedMap, id, record);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const rec = this.pendingSelectedMap[id]
|
|
|
|
|
if (!rec) return null
|
|
|
|
|
const rec = this.pendingSelectedMap[id];
|
|
|
|
|
if (!rec) return null;
|
|
|
|
|
// 合并保留之前在弹窗中编辑过的值
|
|
|
|
|
const edited = editedMap[id]
|
|
|
|
|
const edited = editedMap[id];
|
|
|
|
|
if (edited) {
|
|
|
|
|
if (edited.applyNum !== undefined && edited.applyNum !== null) rec.applyNum = edited.applyNum
|
|
|
|
|
if (edited.money !== undefined && edited.money !== null) rec.money = edited.money
|
|
|
|
|
if (edited.applyNum !== undefined && edited.applyNum !== null)
|
|
|
|
|
rec.applyNum = edited.applyNum;
|
|
|
|
|
if (edited.money !== undefined && edited.money !== null)
|
|
|
|
|
rec.money = edited.money;
|
|
|
|
|
}
|
|
|
|
|
return rec
|
|
|
|
|
return rec;
|
|
|
|
|
})
|
|
|
|
|
.filter(Boolean);
|
|
|
|
|
this.selectedPreviewRows = rows;
|
|
|
|
|
@ -1157,7 +1240,9 @@ export default {
|
|
|
|
|
this.$refs.previewTable.toggleRowSelection(row, true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
this.$nextTick(() => { this.syncingPreviewSelection = false; });
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.syncingPreviewSelection = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
@ -1166,85 +1251,140 @@ export default {
|
|
|
|
|
this.selectedPreviewSelection = selection.map((row) => row.id);
|
|
|
|
|
},
|
|
|
|
|
confirmSelectedPreview() {
|
|
|
|
|
const selectedRows = this.selectedPreviewRows.filter(row => this.selectedPreviewSelection.includes(row.id))
|
|
|
|
|
const selectedRows = this.selectedPreviewRows.filter((row) =>
|
|
|
|
|
this.selectedPreviewSelection.includes(row.id)
|
|
|
|
|
);
|
|
|
|
|
if (selectedRows.length === 0) {
|
|
|
|
|
this.$message.warning('请至少勾选一条明细')
|
|
|
|
|
return
|
|
|
|
|
this.$message.warning("请至少勾选一条明细");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 校验数量
|
|
|
|
|
const invalidRows = []
|
|
|
|
|
selectedRows.forEach(row => {
|
|
|
|
|
const applyNum = Number(row.applyNum) || 0
|
|
|
|
|
const paidNum = Number(row.paidNum) || 0
|
|
|
|
|
const total = Number(row.total) || 0
|
|
|
|
|
const invalidRows = [];
|
|
|
|
|
selectedRows.forEach((row) => {
|
|
|
|
|
const applyNum = Number(row.applyNum) || 0;
|
|
|
|
|
const paidNum = Number(row.paidNum) || 0;
|
|
|
|
|
const total = Number(row.total) || 0;
|
|
|
|
|
if (applyNum === 0) {
|
|
|
|
|
invalidRows.push({ row, reason: '本次报销数量不能为0' })
|
|
|
|
|
invalidRows.push({ row, reason: "本次报销数量不能为0" });
|
|
|
|
|
} else if (applyNum + paidNum > total) {
|
|
|
|
|
invalidRows.push({ row, reason: '本次报销数量大于剩余可报销数量' })
|
|
|
|
|
invalidRows.push({ row, reason: "本次报销数量大于剩余可报销数量" });
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
if (invalidRows.length > 0) {
|
|
|
|
|
const errorMessages = invalidRows.map(item => `${item.row.itemName || '未知项目'}:${item.reason}`).join(';')
|
|
|
|
|
this.$message.warning(`以下数据不符合条件:${errorMessages}`)
|
|
|
|
|
this.$nextTick(() => { this.$forceUpdate() })
|
|
|
|
|
return
|
|
|
|
|
const errorMessages = invalidRows
|
|
|
|
|
.map((item) => `${item.row.itemName || "未知项目"}:${item.reason}`)
|
|
|
|
|
.join(";");
|
|
|
|
|
this.$message.warning(`以下数据不符合条件:${errorMessages}`);
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$forceUpdate();
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 同步选择状态
|
|
|
|
|
const newIds = [...this.selectedPreviewSelection]
|
|
|
|
|
this.pendingSelectedIds = newIds
|
|
|
|
|
const newMap = {}
|
|
|
|
|
newIds.forEach(id => {
|
|
|
|
|
const record = this.selectedPreviewRows.find(row => row.id === id) || this.pendingSelectedMap[id] || this.pendingRows.find(row => row.id === id)
|
|
|
|
|
if (record) newMap[id] = record
|
|
|
|
|
})
|
|
|
|
|
this.pendingSelectedMap = { ...newMap }
|
|
|
|
|
const newIds = [...this.selectedPreviewSelection];
|
|
|
|
|
this.pendingSelectedIds = newIds;
|
|
|
|
|
const newMap = {};
|
|
|
|
|
newIds.forEach((id) => {
|
|
|
|
|
const record =
|
|
|
|
|
this.selectedPreviewRows.find((row) => row.id === id) ||
|
|
|
|
|
this.pendingSelectedMap[id] ||
|
|
|
|
|
this.pendingRows.find((row) => row.id === id);
|
|
|
|
|
if (record) newMap[id] = record;
|
|
|
|
|
});
|
|
|
|
|
this.pendingSelectedMap = { ...newMap };
|
|
|
|
|
|
|
|
|
|
// 组装并跳转
|
|
|
|
|
const titleParts = selectedRows.map(r => `${r.itemName || ''}*${Number(r.applyNum) || 0}`)
|
|
|
|
|
const zhifutitle = `${titleParts.join(',')}${titleParts.length ? ',' : ''}`
|
|
|
|
|
const xiangxishuoming = zhifutitle
|
|
|
|
|
const titleParts = selectedRows.map(
|
|
|
|
|
(r) => `${r.itemName || ""}*${Number(r.applyNum) || 0}`
|
|
|
|
|
);
|
|
|
|
|
const zhifutitle = `${titleParts.join(",")}${
|
|
|
|
|
titleParts.length ? "," : ""
|
|
|
|
|
}`;
|
|
|
|
|
const xiangxishuoming = zhifutitle;
|
|
|
|
|
|
|
|
|
|
const contractIdSet = Array.from(new Set(selectedRows.map(r => r?.yibancaigou?.flow?.out_contract_id).filter(Boolean)))
|
|
|
|
|
const contractIdsStr = contractIdSet.join(',')
|
|
|
|
|
const contract_id = contractIdsStr
|
|
|
|
|
const amt = selectedRows.reduce((sum, r) => sum + (Number(r.money) || 0), 0)
|
|
|
|
|
const contractIdSet = Array.from(
|
|
|
|
|
new Set(
|
|
|
|
|
selectedRows
|
|
|
|
|
.map((r) => r?.yibancaigou?.flow?.out_contract_id)
|
|
|
|
|
.filter(Boolean)
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
const contractIdsStr = contractIdSet.join(",");
|
|
|
|
|
const contract_id = contractIdsStr;
|
|
|
|
|
const amt = selectedRows.reduce(
|
|
|
|
|
(sum, r) => sum + (Number(r.money) || 0),
|
|
|
|
|
0
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const proceed = async () => {
|
|
|
|
|
let yifujine = 0
|
|
|
|
|
let cishu = 0
|
|
|
|
|
let yifujine = 0;
|
|
|
|
|
let cishu = 0;
|
|
|
|
|
try {
|
|
|
|
|
const fundRes = await getFundLog({ contract_id: contractIdsStr, show_type: 1 })
|
|
|
|
|
const payments = fundRes?.data || []
|
|
|
|
|
const actNumsTotal = () => payments.reduce((pre, cur) => pre + (Number(cur?.act_money) ? Number(cur.act_money) : 0), 0)
|
|
|
|
|
yifujine = actNumsTotal()
|
|
|
|
|
cishu = Array.isArray(payments) ? payments.length : 0
|
|
|
|
|
const fundRes = await getFundLog({
|
|
|
|
|
contract_id: contractIdsStr,
|
|
|
|
|
show_type: 1,
|
|
|
|
|
});
|
|
|
|
|
const payments = fundRes?.data || [];
|
|
|
|
|
const actNumsTotal = () =>
|
|
|
|
|
payments.reduce(
|
|
|
|
|
(pre, cur) =>
|
|
|
|
|
pre + (Number(cur?.act_money) ? Number(cur.act_money) : 0),
|
|
|
|
|
0
|
|
|
|
|
);
|
|
|
|
|
yifujine = actNumsTotal();
|
|
|
|
|
cishu = Array.isArray(payments) ? payments.length : 0;
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
|
|
|
|
let xiangmuzonge = 0
|
|
|
|
|
let zhifucishu = 0
|
|
|
|
|
let liezhiqudao = ''
|
|
|
|
|
let contractno = ''
|
|
|
|
|
let guanlianliucheng = ''
|
|
|
|
|
let xiangmuzonge = 0;
|
|
|
|
|
let zhifucishu = 0;
|
|
|
|
|
let liezhiqudao = "";
|
|
|
|
|
let contractno = "";
|
|
|
|
|
let guanlianliucheng = "";
|
|
|
|
|
try {
|
|
|
|
|
let contracts = []
|
|
|
|
|
let contracts = [];
|
|
|
|
|
if (contractIdSet.length > 0) {
|
|
|
|
|
contracts = await Promise.all(contractIdSet.map(id => detailContract({ id })))
|
|
|
|
|
contracts = await Promise.all(
|
|
|
|
|
contractIdSet.map((id) => detailContract({ id }))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
const sumMoney = (contracts || []).reduce((sum, c) => sum + (Number(c?.money) || 0), 0)
|
|
|
|
|
const sumPlanLen = (contracts || []).reduce((sum, c) => sum + ((c?.sign_plan?.length) || 0), 0)
|
|
|
|
|
const plansNames = Array.from(new Set((contracts || []).flatMap(c => (c?.plans || []).map(p => p?.name)).filter(Boolean))).join(',')
|
|
|
|
|
const contractNos = (contracts || []).map(c => c?.number).filter(Boolean).join(',')
|
|
|
|
|
const relatedFlows = Array.from(new Set((contracts || []).flatMap(c => (c?.contract_flow_links || []).map(l => l?.flow_id)).filter(Boolean))).join(',')
|
|
|
|
|
xiangmuzonge = sumMoney
|
|
|
|
|
zhifucishu = sumPlanLen
|
|
|
|
|
liezhiqudao = plansNames
|
|
|
|
|
contractno = contractNos
|
|
|
|
|
guanlianliucheng = relatedFlows
|
|
|
|
|
const sumMoney = (contracts || []).reduce(
|
|
|
|
|
(sum, c) => sum + (Number(c?.money) || 0),
|
|
|
|
|
0
|
|
|
|
|
);
|
|
|
|
|
const sumPlanLen = (contracts || []).reduce(
|
|
|
|
|
(sum, c) => sum + (c?.sign_plan?.length || 0),
|
|
|
|
|
0
|
|
|
|
|
);
|
|
|
|
|
const plansNames = Array.from(
|
|
|
|
|
new Set(
|
|
|
|
|
(contracts || [])
|
|
|
|
|
.flatMap((c) => (c?.plans || []).map((p) => p?.name))
|
|
|
|
|
.filter(Boolean)
|
|
|
|
|
)
|
|
|
|
|
).join(",");
|
|
|
|
|
const contractNos = (contracts || [])
|
|
|
|
|
.map((c) => c?.number)
|
|
|
|
|
.filter(Boolean)
|
|
|
|
|
.join(",");
|
|
|
|
|
const relatedFlows = Array.from(
|
|
|
|
|
new Set(
|
|
|
|
|
(contracts || [])
|
|
|
|
|
.flatMap((c) =>
|
|
|
|
|
(c?.contract_flow_links || []).map((l) => l?.flow_id)
|
|
|
|
|
)
|
|
|
|
|
.filter(Boolean)
|
|
|
|
|
)
|
|
|
|
|
).join(",");
|
|
|
|
|
xiangmuzonge = sumMoney;
|
|
|
|
|
zhifucishu = sumPlanLen;
|
|
|
|
|
liezhiqudao = plansNames;
|
|
|
|
|
contractno = contractNos;
|
|
|
|
|
guanlianliucheng = relatedFlows;
|
|
|
|
|
} catch (e) {}
|
|
|
|
|
|
|
|
|
|
const wuzicaigou_items = selectedRows.map(r => ({
|
|
|
|
|
const wuzicaigou_items = selectedRows.map((r) => ({
|
|
|
|
|
flow_id: r?.yibancaigou?.flow?.id,
|
|
|
|
|
contract_id: r?.yibancaigou?.flow?.out_contract_id,
|
|
|
|
|
wuzicaigou_id: r?.yibancaigou?.id,
|
|
|
|
|
@ -1254,8 +1394,8 @@ export default {
|
|
|
|
|
total: Number(r?.num) || 0,
|
|
|
|
|
apply_money: Number(r?.money) || 0,
|
|
|
|
|
money: Number(r?.money) || 0,
|
|
|
|
|
is_receive: 0
|
|
|
|
|
}))
|
|
|
|
|
is_receive: 0,
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
const baseInfo = {
|
|
|
|
|
zhifutitle,
|
|
|
|
|
@ -1269,15 +1409,17 @@ export default {
|
|
|
|
|
liezhiqudao,
|
|
|
|
|
contractno,
|
|
|
|
|
guanlianliucheng,
|
|
|
|
|
wuzicaigou_items
|
|
|
|
|
}
|
|
|
|
|
wuzicaigou_items,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.selectedPreviewVisible = false
|
|
|
|
|
const url = `/flow/create?&module_name=oa&isSinglePage=1&module_id=75&default_json=${window.encodeURIComponent(JSON.stringify(baseInfo))}`
|
|
|
|
|
this.$router.push(url)
|
|
|
|
|
}
|
|
|
|
|
this.selectedPreviewVisible = false;
|
|
|
|
|
const url = `/flow/create?&module_name=oa&isSinglePage=1&module_id=75&default_json=${window.encodeURIComponent(
|
|
|
|
|
JSON.stringify(baseInfo)
|
|
|
|
|
)}`;
|
|
|
|
|
this.$router.push(url);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
proceed()
|
|
|
|
|
proceed();
|
|
|
|
|
},
|
|
|
|
|
closeSelectedPreview() {
|
|
|
|
|
// 仅关闭弹窗,不清空勾选与已编辑数据
|
|
|
|
|
@ -1314,10 +1456,11 @@ export default {
|
|
|
|
|
department: item.yibancaigou?.flow?.creator_department?.name || "",
|
|
|
|
|
flowTitle: item.yibancaigou?.flow?.title || "",
|
|
|
|
|
purchaseContent: item.yibancaigou?.caigouneirong || "",
|
|
|
|
|
purchaser: (item.yibancaigou?.flow?.logs && item.yibancaigou.flow.logs.length > 0)
|
|
|
|
|
? (item.yibancaigou.flow.logs[0]?.user?.name || "")
|
|
|
|
|
: "",
|
|
|
|
|
isContractFlow: item.yibancaigou?.flow?.contract_flow ? '是' : '否',
|
|
|
|
|
purchaser:
|
|
|
|
|
item.yibancaigou?.flow?.logs && item.yibancaigou.flow.logs.length > 0
|
|
|
|
|
? item.yibancaigou.flow.logs[0]?.user?.name || ""
|
|
|
|
|
: "",
|
|
|
|
|
isContractFlow: item.yibancaigou?.flow?.contract_flow ? "是" : "否",
|
|
|
|
|
paidNum: item.fund_log_wuzicaigou_items_sum_num || 0,
|
|
|
|
|
total: item.num || 0,
|
|
|
|
|
itemName: item.pinminghuofuwuxuqiu || "",
|
|
|
|
|
@ -1367,10 +1510,11 @@ export default {
|
|
|
|
|
department: item.yibancaigou?.flow?.creator_department?.name || "",
|
|
|
|
|
flowTitle: item.yibancaigou?.flow?.title || "",
|
|
|
|
|
purchaseContent: item.yibancaigou?.caigouneirong || "",
|
|
|
|
|
purchaser: (item.yibancaigou?.flow?.logs && item.yibancaigou.flow.logs.length > 0)
|
|
|
|
|
? (item.yibancaigou.flow.logs[0]?.user?.name || "")
|
|
|
|
|
: "",
|
|
|
|
|
isContractFlow: item.yibancaigou?.flow?.contract_flow ? '是' : '否',
|
|
|
|
|
purchaser:
|
|
|
|
|
item.yibancaigou?.flow?.logs && item.yibancaigou.flow.logs.length > 0
|
|
|
|
|
? item.yibancaigou.flow.logs[0]?.user?.name || ""
|
|
|
|
|
: "",
|
|
|
|
|
isContractFlow: item.yibancaigou?.flow?.contract_flow ? "是" : "否",
|
|
|
|
|
paidNum: item.num || 0,
|
|
|
|
|
money: item.money || 0,
|
|
|
|
|
total: item.caigoumingxi?.num || 0,
|
|
|
|
|
@ -1388,8 +1532,8 @@ export default {
|
|
|
|
|
watch: {
|
|
|
|
|
isShowModal(newVal) {
|
|
|
|
|
if (newVal) {
|
|
|
|
|
}else{
|
|
|
|
|
this.modalUrl = '';
|
|
|
|
|
} else {
|
|
|
|
|
this.modalUrl = "";
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
activeTab(newTab, oldTab) {
|
|
|
|
|
|