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