From 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期五, 28 八月 2026 10:16:32 +0800
Subject: [PATCH] feat: 综合业务模块页面重构与交互完善
---
src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/index.vue | 83 +++++++++++++++++++++++++++++------------
1 files changed, 59 insertions(+), 24 deletions(-)
diff --git a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/index.vue b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/index.vue
index 4b33707..a74d541 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/index.vue
+++ b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/index.vue
@@ -12,31 +12,42 @@
:prefix-icon="Search"
@keyup.enter="handleQuery"
/>
- <span class="search_title" style="margin-left: 12px">鐢宠鏃堕棿锛�</span>
- <el-date-picker
- v-model="searchForm.applyTimeFrom"
- type="date"
- placeholder="寮�濮嬫棩鏈�"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- style="width: 150px"
+ <span class="search_title" style="margin-left: 10px;">閮ㄩ棬锛�</span>
+ <el-tree-select
+ v-model="searchForm.deptId"
+ :data="deptOptions"
+ :props="{ value: 'id', label: 'label', children: 'children' }"
+ value-key="id"
+ placeholder="閫夋嫨閮ㄩ棬"
+ check-strictly
clearable
+ style="width: 180px"
/>
- <span class="search_title" style="margin-left: 8px">鑷�</span>
+ <span class="search_title" style="margin-left: 10px;">椤圭洰锛�</span>
+ <el-select v-model="searchForm.expenseCategory" clearable placeholder="閫夋嫨椤圭洰" style="width: 150px">
+ <el-option
+ v-for="opt in EXPENSE_CATEGORY_OPTIONS"
+ :key="opt.value"
+ :label="opt.label"
+ :value="opt.value"
+ />
+ </el-select>
+ <span class="search_title" style="margin-left: 10px;">鐢宠鏃堕棿锛�</span>
<el-date-picker
- v-model="searchForm.applyTimeTo"
- type="date"
- placeholder="缁撴潫鏃ユ湡"
- format="YYYY-MM-DD"
+ v-model="searchForm.applyTimeRange"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮�"
+ end-placeholder="缁撴潫"
value-format="YYYY-MM-DD"
- style="width: 150px; margin-left: 8px"
clearable
+ style="width: 240px"
/>
<el-button type="primary" style="margin-left: 10px" @click="handleQuery">鎼滅储</el-button>
<el-button @click="resetSearch">閲嶇疆</el-button>
</div>
<div class="search_actions">
- <el-button type="success" plain @click="handleImportClick">瀵煎叆</el-button>
+<!-- <el-button type="success" plain @click="handleImportClick">瀵煎叆</el-button>-->
<el-button type="warning" plain @click="handleExport">瀵煎嚭</el-button>
<el-button type="primary" @click="openFormDialog('add')">鏂板璐圭敤鎶ラ攢</el-button>
</div>
@@ -99,12 +110,21 @@
<el-card class="form-section" shadow="never">
<template #header><span class="card-header-title">鍩烘湰淇℃伅</span></template>
<el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="鍛樺伐缂栧彿">
- <el-input v-model="form.employeeNo" readonly placeholder="閫夋嫨鍛樺伐鍚庤嚜鍔ㄥ甫鍑�" />
+ <el-col :span="8">
+ <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId">
+ <el-tree-select
+ v-model="form.deptId"
+ :data="deptOptions"
+ :props="{ value: 'id', label: 'label', children: 'children' }"
+ value-key="id"
+ placeholder="璇烽�夋嫨閮ㄩ棬"
+ check-strictly
+ style="width: 100%"
+ @change="onDeptChange"
+ />
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="8">
<el-form-item label="鍛樺伐濮撳悕" prop="applicantId">
<el-select
v-model="form.applicantId"
@@ -125,6 +145,11 @@
:value="u.userId"
/>
</el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鍛樺伐缂栧彿">
+ <el-input v-model="form.employeeNo" readonly placeholder="閫夋嫨鍛樺伐鍚庤嚜鍔ㄥ甫鍑�" />
</el-form-item>
</el-col>
</el-row>
@@ -268,17 +293,22 @@
<el-card class="form-section" shadow="never">
<template #header><span class="card-header-title">鏀舵淇℃伅</span></template>
<el-row :gutter="20">
- <el-col :span="8">
+ <el-col :span="6">
+ <el-form-item label="浠樻鏂�" prop="payer">
+ <el-input v-model="form.payer" placeholder="璇疯緭鍏ヤ粯娆炬柟" maxlength="50" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
<el-form-item label="鏀舵浜�" prop="payee">
<el-input v-model="form.payee" placeholder="璇疯緭鍏ユ敹娆句汉" maxlength="50" />
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="6">
<el-form-item label="鏀舵璐﹀彿" prop="payeeAccount">
<el-input v-model="form.payeeAccount" placeholder="閾惰鍗″彿" maxlength="30" />
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="6">
<el-form-item label="寮�鎴锋敮琛�" prop="bankBranch">
<el-input v-model="form.bankBranch" placeholder="寮�鎴锋敮琛屽叏绉�" maxlength="100" />
</el-form-item>
@@ -335,7 +365,10 @@
<div v-loading="detailLoading">
<DetailPanel :row="detailRow" />
<el-divider content-position="left">瀹℃壒娴佺▼</el-divider>
- <ApprovalFlowProgress :nodes="detailRow.approvalFlowNodes" :current-index="detailRow.currentNodeIndex ?? 0" />
+ <ApprovalFlowProgress
+ :nodes="detailRow.approvalFlowProgressNodes ?? detailRow.approvalFlowNodes"
+ :current-index="detailRow.currentNodeIndex ?? 0"
+ />
<el-divider content-position="left">瀹℃壒璁板綍</el-divider>
<el-timeline v-if="detailRow.approvalRecords?.length">
<el-timeline-item
@@ -366,7 +399,7 @@
<DetailPanel :row="approveDialog.row" />
<el-divider content-position="left">娴佺▼杩涘害</el-divider>
<ApprovalFlowProgress
- :nodes="approveDialog.row?.approvalFlowNodes"
+ :nodes="approveDialog.row?.approvalFlowProgressNodes ?? approveDialog.row?.approvalFlowNodes"
:current-index="approveDialog.row?.currentNodeIndex ?? 0"
/>
<el-form label-width="100px" class="mt16">
@@ -421,6 +454,7 @@
approveOpinion,
applicantFormSearchLoading,
applicantFormOptions,
+ deptOptions,
flowUserOptions,
detailTotalAmount,
approvalRuleHint,
@@ -430,6 +464,7 @@
remoteSearchApplicantForm,
userSelectLabel,
onApplicantChange,
+ onDeptChange,
onExpenseCategoryChange,
applyTemplate,
onDetailAmountChange,
--
Gitblit v1.9.3