From 7ff67bff3b4ac5e503ca4291f03eee1ac213fd33 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期四, 26 三月 2026 16:33:36 +0800
Subject: [PATCH] refactor(financial): 简化收支借款管理页面并移除编辑功能

---
 /dev/null                                                 |  120 -----------------
 src/pages.json                                            |   21 ---
 src/api/financialManagement/revenueManagement.js          |    2 
 src/pages/financialManagement/revenueManagement/index.vue |   34 +---
 src/pages/financialManagement/expenseManagement/index.vue |   68 +--------
 src/pages/financialManagement/loanManagement/index.vue    |  130 +-----------------
 src/api/financialManagement/expenseManagement.js          |    2 
 7 files changed, 29 insertions(+), 348 deletions(-)

diff --git a/src/api/financialManagement/expenseManagement.js b/src/api/financialManagement/expenseManagement.js
index 49e63ac..2b16f5d 100644
--- a/src/api/financialManagement/expenseManagement.js
+++ b/src/api/financialManagement/expenseManagement.js
@@ -26,7 +26,7 @@
 
 export const delAccountExpense = (data) => {
   return request({
-    url: "account/accountExpense/del",
+    url: "/account/accountExpense/del",
     method: "delete",
     data,
   });
diff --git a/src/api/financialManagement/revenueManagement.js b/src/api/financialManagement/revenueManagement.js
index 3a270fd..68db0a5 100644
--- a/src/api/financialManagement/revenueManagement.js
+++ b/src/api/financialManagement/revenueManagement.js
@@ -26,7 +26,7 @@
 
 export const delAccountIncome = (data) => {
   return request({
-    url: "account/accountIncome/del",
+    url: "/account/accountIncome/del",
     method: "delete",
     data,
   });
diff --git a/src/pages.json b/src/pages.json
index 5c4283d..572e4f1 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -26,13 +26,6 @@
       }
     },
     {
-      "path": "pages/financialManagement/revenueManagement/edit",
-      "style": {
-        "navigationBarTitleText": "鏀跺叆缂栬緫",
-        "navigationStyle": "custom"
-      }
-    },
-    {
       "path": "pages/financialManagement/expenseManagement/index",
       "style": {
         "navigationBarTitleText": "鏀嚭绠$悊",
@@ -40,23 +33,9 @@
       }
     },
     {
-      "path": "pages/financialManagement/expenseManagement/edit",
-      "style": {
-        "navigationBarTitleText": "鏀嚭缂栬緫",
-        "navigationStyle": "custom"
-      }
-    },
-    {
       "path": "pages/financialManagement/loanManagement/index",
       "style": {
         "navigationBarTitleText": "鍊熸绠$悊",
-        "navigationStyle": "custom"
-      }
-    },
-    {
-      "path": "pages/financialManagement/loanManagement/edit",
-      "style": {
-        "navigationBarTitleText": "鍊熸缂栬緫",
         "navigationStyle": "custom"
       }
     },
diff --git a/src/pages/financialManagement/expenseManagement/edit.vue b/src/pages/financialManagement/expenseManagement/edit.vue
deleted file mode 100644
index 292957a..0000000
--- a/src/pages/financialManagement/expenseManagement/edit.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
-  <view class="sales-account">
-    <PageHeader :title="pageTitle" @back="goBack" />
-    <view class="search-section">
-      <up-form :model="form" :rules="rules" ref="formRef">
-        <up-form-item label="鏀嚭鏃ユ湡" prop="expenseDate">
-          <uni-datetime-picker type="date" v-model="form.expenseDate" />
-        </up-form-item>
-        <up-form-item label="鏀嚭绫诲瀷" prop="expenseType">
-          <up-picker :columns="[expenseTypes]" key-name="label" v-model="expenseTypeIndex" @confirm="onExpenseTypeConfirm" />
-        </up-form-item>
-        <up-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
-          <up-input v-model="form.supplierName" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鏀嚭閲戦" prop="expenseMoney">
-          <up-input type="number" v-model="form.expenseMoney" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鏀嚭鎻忚堪" prop="expenseDescribed">
-          <up-input v-model="form.expenseDescribed" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="浠樻鏂瑰紡" prop="expenseMethod">
-          <up-picker :columns="[checkoutPayment]" key-name="label" v-model="expenseMethodIndex" @confirm="onMethodConfirm" />
-        </up-form-item>
-        <up-form-item label="鍙戠エ鍙风爜" prop="invoiceNumber">
-          <up-input v-model="form.invoiceNumber" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="澶囨敞" prop="note">
-          <up-textarea v-model="form.note" placeholder="璇疯緭鍏�" autoHeight />
-        </up-form-item>
-      </up-form>
-      <view class="actions">
-        <u-button type="primary" @click="submitForm">淇濆瓨</u-button>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref, reactive, computed } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { useDict } from "@/utils/dict";
-import { add, update, getAccountExpense } from "@/api/financialManagement/expenseManagement";
-
-const operationType = ref("add");
-const id = ref(undefined);
-
-const { checkout_payment, expense_types } = useDict("checkout_payment", "expense_types");
-const checkoutPayment = ref([]);
-const expenseTypes = ref([]);
-const expenseTypeIndex = ref([0]);
-const expenseMethodIndex = ref([0]);
-
-const formRef = ref();
-const form = reactive({
-  expenseDate: undefined,
-  expenseType: undefined,
-  supplierName: "",
-  expenseMoney: undefined,
-  expenseDescribed: "",
-  expenseMethod: undefined,
-  invoiceNumber: "",
-  note: "",
-});
-
-const rules = {
-  expenseDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  expenseType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  supplierName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  expenseMoney: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  expenseDescribed: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  expenseMethod: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-};
-
-const pageTitle = computed(() => (operationType.value === "edit" ? "缂栬緫鏀嚭" : "鏂板鏀嚭"));
-
-const onExpenseTypeConfirm = (e) => {
-  const item = expenseTypes.value[e.value[0]];
-  if (item) form.expenseType = item.value;
-};
-const onMethodConfirm = (e) => {
-  const item = checkoutPayment.value[e.value[0]];
-  if (item) form.expenseMethod = item.value;
-};
-
-const syncDict = () => {
-  checkoutPayment.value = (checkout_payment?.value || []).map(i => ({ label: i.label, value: i.value }));
-  expenseTypes.value = (expense_types?.value || []).map(i => ({ label: i.label, value: i.value }));
-};
-
-const submitForm = () => {
-  formRef.value?.validate(async (valid) => {
-    if (!valid) return;
-    const payload = { ...form };
-    const res = operationType.value === "edit" ? await update({ id: id.value, ...payload }) : await add(payload);
-    if (res?.code === 200) {
-      uni.navigateBack();
-    }
-  });
-};
-
-const goBack = () => {
-  uni.navigateBack();
-};
-
-onLoad(async (query) => {
-  syncDict();
-  operationType.value = query?.type || "add";
-  if (query?.id) {
-    id.value = query.id;
-    const res = await getAccountExpense(id.value);
-    const data = res?.data ?? res;
-    Object.assign(form, data || {});
-  }
-});
-</script>
-
-<style scoped lang="scss">
-@import "@/styles/sales-common.scss";
-.actions { margin-top: 16px; }
-</style>
diff --git a/src/pages/financialManagement/expenseManagement/index.vue b/src/pages/financialManagement/expenseManagement/index.vue
index 397414b..d73c91c 100644
--- a/src/pages/financialManagement/expenseManagement/index.vue
+++ b/src/pages/financialManagement/expenseManagement/index.vue
@@ -4,17 +4,11 @@
     <view class="search-section">
       <view class="search-bar">
         <view class="search-input">
-          <uni-datetime-picker type="daterange" v-model="filters.entryDate" @change="onDateChange" />
+          <up-input class="search-text" placeholder="璇疯緭鍏ュ鎴峰悕绉版悳绱�" v-model="searchForm.supplierName" clearable />
         </view>
-        <view class="search-input">
-          <up-input readonly placeholder="浠樻鏂瑰紡" v-model="expenseMethodLabel" @click="methodPickerShow = true" />
+        <view class="filter-button" @click="handleQuery">
+          <up-icon name="search" size="24" color="#999"></up-icon>
         </view>
-        <view class="filter-button" @click="getList">
-          <up-icon name="search" size="24" color="#999" />
-        </view>
-      </view>
-    <view class="actions">
-        <u-button type="primary" size="small" @click="goAdd">鏂板</u-button>
       </view>
     </view>
     <view class="ledger-list" v-if="list.length>0">
@@ -36,31 +30,24 @@
           <view class="detail-row"><text class="detail-label">鍙戠エ鍙风爜</text><text class="detail-value">{{ item.invoiceNumber || '--' }}</text></view>
           <view class="detail-row"><text class="detail-label">澶囨敞</text><text class="detail-value">{{ item.note || '--' }}</text></view>
         </view>
-        <view class="card-actions">
-          <u-button size="small" @click="goEdit(item)" :disabled="!!item.businessId">缂栬緫</u-button>
-          <u-button size="small" type="error" @click="confirmDelete(item)" :disabled="!!item.businessId">鍒犻櫎</u-button>
-        </view>
       </view>
     </view>
     <view class="no-data" v-else><text>鏆傛棤鏁版嵁</text></view>
 
-    <up-action-sheet :show="methodPickerShow" :actions="checkoutPayment" title="浠樻鏂瑰紡" @select="onSelectMethod" @close="methodPickerShow=false" />
   </view>
   </template>
 
 <script setup>
 import { ref, reactive } from "vue";
 import { onShow } from "@dcloudio/uni-app";
-import { listPage, delAccountExpense } from "@/api/financialManagement/expenseManagement";
+import { listPage } from "@/api/financialManagement/expenseManagement";
 import { useDict } from "@/utils/dict";
 
 const list = ref([]);
-const filters = reactive({ entryDate: null, expenseMethod: undefined, entryDateStart: undefined, entryDateEnd: undefined });
 const { checkout_payment, expense_types } = useDict("checkout_payment", "expense_types");
 const checkoutPayment = ref([]);
 const expenseTypes = ref([]);
-const methodPickerShow = ref(false);
-const expenseMethodLabel = ref("");
+const searchForm = reactive({ supplierName: null,current:-1,size:-1 });
 
 const syncDict = () => {
   checkoutPayment.value = (checkout_payment?.value || []).map(i => ({ label: i.label, value: i.value }));
@@ -68,28 +55,13 @@
 };
 
 const getList = () => {
-  listPage({ expenseMethod: filters.expenseMethod, entryDateStart: filters.entryDateStart, entryDateEnd: filters.entryDateEnd, current: 1, size: 100 })
+  listPage({...searchForm })
     .then(res => {
       const records = res?.data?.records ?? res?.records ?? [];
       list.value = records;
     });
 };
 
-const onDateChange = (val) => {
-  if (val && val.length === 2) {
-    filters.entryDateStart = val[0];
-    filters.entryDateEnd = val[1];
-  } else {
-    filters.entryDateStart = undefined;
-    filters.entryDateEnd = undefined;
-  }
-};
-
-const onSelectMethod = (e) => {
-  filters.expenseMethod = e.value;
-  expenseMethodLabel.value = e.label;
-  methodPickerShow.value = false;
-};
 
 const methodText = (v) => {
   const m = checkoutPayment.value.find(i=>String(i.value)===String(v));
@@ -104,34 +76,10 @@
   return n.toFixed(2);
 };
 
-const goAdd = () => {
-  uni.navigateTo({ url: "/pages/financialManagement/expenseManagement/edit?type=add" });
-};
-const goEdit = (row) => {
-  uni.navigateTo({ url: `/pages/financialManagement/expenseManagement/edit?type=edit&id=${row.id}` });
-};
-const confirmDelete = (row) => {
-  uni.showModal({
-    title: "鎻愮ず",
-    content: "纭鍒犻櫎璇ヨ褰曪紵",
-    success: async (r) => {
-      if (r.confirm) {
-        const ids = Array.isArray(row) ? row.map(i=>i.id) : [row.id];
-        const res = await delAccountExpense(ids);
-        if (res?.code === 200) getList();
-      }
-    },
-  });
+const handleQuery = () => {
+  getList();
 };
 
-const onExpenseTypeConfirm = (e) => {
-  const item = expenseTypes.value[e.value[0]];
-  if (item) form.expenseType = item.value;
-};
-const onMethodConfirm = (e) => {
-  const item = checkoutPayment.value[e.value[0]];
-  if (item) form.expenseMethod = item.value;
-};
 
 const goBack = () => {
   uni.navigateBack();
diff --git a/src/pages/financialManagement/loanManagement/edit.vue b/src/pages/financialManagement/loanManagement/edit.vue
deleted file mode 100644
index a5226ed..0000000
--- a/src/pages/financialManagement/loanManagement/edit.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-<template>
-  <view class="sales-account">
-    <PageHeader :title="pageTitle" @back="goBack" />
-    <view class="search-section">
-      <up-form :model="form" :rules="rules" ref="formRef">
-        <up-form-item label="鍊熸浜哄鍚�" prop="borrowerName">
-          <up-input v-model="form.borrowerName" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鍊熸閲戦(鍏�)" prop="borrowAmount">
-          <up-input type="number" v-model="form.borrowAmount" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鍊熸鍒╃巼(%)" prop="interestRate">
-          <up-input type="number" v-model="form.interestRate" placeholder="渚嬪 5.85" />
-        </up-form-item>
-        <up-form-item label="鍊熸鏃ユ湡" prop="borrowDate">
-          <uni-datetime-picker type="date" v-model="form.borrowDate" />
-        </up-form-item>
-        <up-form-item v-if="operationType==='repay'" label="瀹為檯杩樻鏃ユ湡" prop="repayDate">
-          <uni-datetime-picker type="date" v-model="form.repayDate" />
-        </up-form-item>
-        <up-form-item label="澶囨敞" prop="remark">
-          <up-textarea v-model="form.remark" autoHeight />
-        </up-form-item>
-      </up-form>
-      <view class="actions">
-        <u-button type="primary" @click="submitForm">淇濆瓨</u-button>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref, reactive, computed } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { add, update } from "@/api/financialManagement/loanManagement";
-
-const operationType = ref("add");
-const id = ref(undefined);
-
-const formRef = ref();
-const form = reactive({
-  borrowerName: "",
-  borrowAmount: undefined,
-  interestRate: undefined,
-  borrowDate: undefined,
-  repayDate: undefined,
-  remark: "",
-});
-
-const rules = {
-  borrowerName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  borrowAmount: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  interestRate: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  borrowDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  repayDate: [{ validator: (_r, v, cb) => { if (operationType.value==='repay' && !v) return cb(new Error('璇烽�夋嫨')); cb(); }, trigger: "change" }],
-};
-
-const pageTitle = computed(() => operationType.value==='repay' ? "杩樻" : operationType.value==='edit' ? "缂栬緫鍊熸" : "鏂板鍊熸");
-
-const submitForm = () => {
-  formRef.value?.validate(async (valid) => {
-    if (!valid) return;
-    const payload = operationType.value==='repay' ? { ...form, status: 2 } : { ...form };
-    const res = operationType.value==='add' ? await add(payload) : await update({ id: id.value, ...payload });
-    if (res?.code === 200) {
-      uni.navigateBack();
-    }
-  });
-};
-
-const goBack = () => {
-  uni.navigateBack();
-};
-
-onLoad((query) => {
-  operationType.value = query?.type || "add";
-  if (query?.id) {
-    id.value = query.id;
-    // 閫氳繃瀵艰埅鍙傛暟鎼哄甫鐨勫瓧娈靛洖濉敱 index 椤靛喅瀹氾紝杩欓噷浠呬繚鐣欐渶绠�閫昏緫
-  }
-});
-</script>
-
-<style scoped lang="scss">
-@import "@/styles/sales-common.scss";
-.actions { margin-top: 16px; }
-</style>
diff --git a/src/pages/financialManagement/loanManagement/index.vue b/src/pages/financialManagement/loanManagement/index.vue
index 5383b9c..63877e2 100644
--- a/src/pages/financialManagement/loanManagement/index.vue
+++ b/src/pages/financialManagement/loanManagement/index.vue
@@ -4,22 +4,11 @@
     <view class="search-section">
       <view class="search-bar">
         <view class="search-input">
-          <up-input v-model="filters.borrowerName" placeholder="鍊熸浜哄鍚�" clearable />
+          <up-input class="search-text" placeholder="璇疯緭鍏ュ鎴峰悕绉版悳绱�" v-model="searchForm.borrowerName" clearable />
         </view>
-        <view class="search-input">
-          <uni-datetime-picker type="daterange" v-model="filters.borrowDate" @change="onDateChange" />
+        <view class="filter-button" @click="handleQuery">
+          <up-icon name="search" size="24" color="#999"></up-icon>
         </view>
-        <view class="search-input">
-          <up-picker :columns="[statusOptions]" key-name="label" v-model="statusIndex" @confirm="onStatusConfirm">
-            <up-input readonly :value="statusLabel" placeholder="鍊熸鐘舵��" />
-          </up-picker>
-        </view>
-        <view class="filter-button" @click="getList">
-          <up-icon name="search" size="24" color="#999" />
-        </view>
-      </view>
-    <view class="actions">
-        <u-button type="primary" size="small" @click="goAdd">鏂板</u-button>
       </view>
     </view>
     <view class="ledger-list" v-if="list.length>0">
@@ -41,103 +30,33 @@
           <view class="detail-row"><text class="detail-label">瀹為檯杩樻鏃ユ湡</text><text class="detail-value">{{ item.repayDate || '--' }}</text></view>
           <view class="detail-row"><text class="detail-label">澶囨敞</text><text class="detail-value">{{ item.remark || '--' }}</text></view>
         </view>
-        <view class="card-actions">
-          <u-button size="small" @click="goEdit(item)">缂栬緫</u-button>
-          <u-button size="small" type="warning" @click="goRepay(item)" :disabled="item.status!==1">杩樻</u-button>
-          <u-button size="small" type="error" @click="confirmDelete(item)">鍒犻櫎</u-button>
-        </view>
       </view>
     </view>
     <view class="no-data" v-else><text>鏆傛棤鏁版嵁</text></view>
-
-    <up-popup :show="formShow" mode="bottom" @close="closeForm">
-      <view class="popup">
-        <view class="popup-header">{{ formMode==='add'?'鏂板鍊熸': formMode==='repay'?'杩樻':'缂栬緫鍊熸' }}</view>
-        <up-form :model="form" :rules="rules" ref="formRef">
-          <up-form-item label="鍊熸浜哄鍚�" prop="borrowerName">
-            <up-input v-model="form.borrowerName" placeholder="璇疯緭鍏�" />
-          </up-form-item>
-          <up-form-item label="鍊熸閲戦" prop="borrowAmount">
-            <up-input type="number" v-model="form.borrowAmount" placeholder="璇疯緭鍏�" />
-          </up-form-item>
-          <up-form-item label="鍊熸鍒╃巼(%)" prop="interestRate">
-            <up-input type="number" v-model="form.interestRate" placeholder="渚嬪 5.85" />
-          </up-form-item>
-          <up-form-item label="鍊熸鏃ユ湡" prop="borrowDate">
-            <uni-datetime-picker type="date" v-model="form.borrowDate" />
-          </up-form-item>
-          <up-form-item v-if="formMode==='repay'" label="瀹為檯杩樻鏃ユ湡" prop="repayDate">
-            <uni-datetime-picker type="date" v-model="form.repayDate" />
-          </up-form-item>
-          <up-form-item label="澶囨敞" prop="remark">
-            <up-textarea v-model="form.remark" autoHeight />
-          </up-form-item>
-        </up-form>
-        <view class="popup-actions">
-          <u-button @click="closeForm">鍙栨秷</u-button>
-          <u-button type="primary" @click="submitForm">淇濆瓨</u-button>
-        </view>
-      </view>
-    </up-popup>
   </view>
 </template>
 
 <script setup>
 import { ref, reactive } from "vue";
 import { onShow } from "@dcloudio/uni-app";
-import { listPage, delAccountLoan } from "@/api/financialManagement/loanManagement";
+import { listPage } from "@/api/financialManagement/loanManagement";
 
 const list = ref([]);
-const filters = reactive({ borrowerName: "", borrowDate: null, entryDateStart: undefined, entryDateEnd: undefined, status: undefined });
-const statusOptions = ref([{ label: "鍏ㄩ儴", value: undefined }, { label: "寰呰繕娆�", value: 1 }, { label: "宸茶繕娆�", value: 2 }]);
-const statusIndex = ref([0]);
-const statusLabel = ref("");
+const searchForm = reactive({ borrowerName: "", current: -1, size: -1 });
 
-const formShow = ref(false);
-const formMode = ref("add");
-const formRef = ref();
-const form = reactive({
-  id: undefined,
-  borrowerName: "",
-  borrowAmount: undefined,
-  interestRate: undefined,
-  borrowDate: undefined,
-  repayDate: undefined,
-  remark: "",
-  status: undefined,
-});
-const rules = {
-  borrowerName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  borrowAmount: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  interestRate: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  borrowDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  repayDate: [{ validator: (_r, v, cb)=>{ if (formMode.value==='repay' && !v) return cb(new Error('璇烽�夋嫨')); cb(); }, trigger: "change" }],
-};
 
 const getList = () => {
-  const extra = {};
-  if (filters.entryDateStart && filters.entryDateEnd) {
-    extra.entryDateStart = filters.entryDateStart;
-    extra.entryDateEnd = filters.entryDateEnd;
-  }
-  if (filters.status) extra.status = filters.status;
-  listPage({ borrowerName: filters.borrowerName, ...extra, current: 1, size: 100 })
+  listPage({ ...searchForm, current: -1, size: -1 })  
     .then(res => {
       const records = res?.data?.records ?? res?.records ?? [];
       list.value = records;
     });
 };
 
-const onDateChange = (val) => {
-  if (val && val.length === 2) {
-    filters.entryDateStart = val[0];
-    filters.entryDateEnd = val[1];
-  } else {
-    filters.entryDateStart = undefined;
-    filters.entryDateEnd = undefined;
-  }
+const handleQuery = () => {
+  searchForm.current = 1;
+  getList();
 };
-
 const statusText = (s) => s===1?'寰呰繕娆�': s===2?'宸茶繕娆�':'';
 const statusType = (s) => s===1?'error': s===2?'success':'primary';
 const fmtAmount = (v) => {
@@ -148,37 +67,6 @@
   if (v===undefined || v===null || v==='') return '-';
   const n = parseFloat(v);
   return n.toFixed(2) + '%';
-};
-
-const goAdd = () => {
-  uni.navigateTo({ url: "/pages/financialManagement/loanManagement/edit?type=add" });
-};
-const goEdit = (row) => {
-  uni.navigateTo({ url: `/pages/financialManagement/loanManagement/edit?type=edit&id=${row.id}` });
-};
-const goRepay = (row) => {
-  uni.navigateTo({ url: `/pages/financialManagement/loanManagement/edit?type=repay&id=${row.id}` });
-};
-const confirmDelete = (row) => {
-  uni.showModal({
-    title: "鎻愮ず",
-    content: "纭鍒犻櫎璇ヨ褰曪紵",
-    success: async (r) => {
-      if (r.confirm) {
-        const ids = Array.isArray(row) ? row.map(i=>i.id) : [row.id];
-        const res = await delAccountLoan(ids);
-        if (res?.code === 200) getList();
-      }
-    },
-  });
-};
-
-const onStatusConfirm = (e) => {
-  const item = statusOptions.value[e.value[0]];
-  if (item) {
-    filters.status = item.value;
-    statusLabel.value = item.label || "";
-  }
 };
 
 const goBack = () => {
diff --git a/src/pages/financialManagement/revenueManagement/edit.vue b/src/pages/financialManagement/revenueManagement/edit.vue
deleted file mode 100644
index 869e12c..0000000
--- a/src/pages/financialManagement/revenueManagement/edit.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
-  <view class="sales-account">
-    <PageHeader :title="pageTitle" @back="goBack" />
-    <view class="search-section">
-      <up-form :model="form" :rules="rules" ref="formRef">
-        <up-form-item label="鏀跺叆鏃ユ湡" prop="incomeDate">
-          <uni-datetime-picker type="date" v-model="form.incomeDate" />
-        </up-form-item>
-        <up-form-item label="鏀跺叆绫诲瀷" prop="incomeType">
-          <up-picker :columns="[incomeTypes]" key-name="label" v-model="incomeTypeIndex" @confirm="onIncomeTypeConfirm" />
-        </up-form-item>
-        <up-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
-          <up-input v-model="form.customerName" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鏀跺叆閲戦" prop="incomeMoney">
-          <up-input type="number" v-model="form.incomeMoney" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鏀跺叆鎻忚堪" prop="incomeDescribed">
-          <up-input v-model="form.incomeDescribed" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="鏀舵鏂瑰紡" prop="incomeMethod">
-          <up-picker :columns="[paymentMethods]" key-name="label" v-model="incomeMethodIndex" @confirm="onMethodConfirm" />
-        </up-form-item>
-        <up-form-item label="鍙戠エ鍙风爜" prop="invoiceNumber">
-          <up-input v-model="form.invoiceNumber" placeholder="璇疯緭鍏�" />
-        </up-form-item>
-        <up-form-item label="澶囨敞" prop="note">
-          <up-textarea v-model="form.note" placeholder="璇疯緭鍏�" autoHeight />
-        </up-form-item>
-      </up-form>
-      <view class="actions">
-        <u-button type="primary" @click="submitForm">淇濆瓨</u-button>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref, reactive, computed } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { useDict } from "@/utils/dict";
-import { add, update, getAccountIncome } from "@/api/financialManagement/revenueManagement";
-
-const operationType = ref("add");
-const id = ref(undefined);
-
-const { payment_methods, income_types } = useDict("payment_methods", "income_types");
-const paymentMethods = ref([]);
-const incomeTypes = ref([]);
-const incomeTypeIndex = ref([0]);
-const incomeMethodIndex = ref([0]);
-
-const formRef = ref();
-const form = reactive({
-  incomeDate: undefined,
-  incomeType: undefined,
-  customerName: "",
-  incomeMoney: undefined,
-  incomeDescribed: "",
-  incomeMethod: undefined,
-  invoiceNumber: "",
-  note: "",
-});
-
-const rules = {
-  incomeDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  incomeType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  customerName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  incomeMoney: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  incomeDescribed: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  incomeMethod: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-};
-
-const pageTitle = computed(() => (operationType.value === "edit" ? "缂栬緫鏀跺叆" : "鏂板鏀跺叆"));
-
-const onIncomeTypeConfirm = (e) => {
-  const item = incomeTypes.value[e.value[0]];
-  if (item) form.incomeType = item.value;
-};
-const onMethodConfirm = (e) => {
-  const item = paymentMethods.value[e.value[0]];
-  if (item) form.incomeMethod = item.value;
-};
-
-const syncDict = () => {
-  paymentMethods.value = (payment_methods?.value || []).map(i => ({ label: i.label, value: i.value }));
-  incomeTypes.value = (income_types?.value || []).filter(i=>i.value!=3).map(i => ({ label: i.label, value: i.value }));
-};
-
-const submitForm = () => {
-  formRef.value?.validate(async (valid) => {
-    if (!valid) return;
-    const payload = { ...form };
-    const res = operationType.value === "edit" ? await update({ id: id.value, ...payload }) : await add(payload);
-    if (res?.code === 200) {
-      uni.navigateBack();
-    }
-  });
-};
-
-const goBack = () => {
-  uni.navigateBack();
-};
-
-onLoad(async (query) => {
-  syncDict();
-  operationType.value = query?.type || "add";
-  if (query?.id) {
-    id.value = query.id;
-    const res = await getAccountIncome(id.value);
-    const data = res?.data ?? res;
-    Object.assign(form, data || {});
-  }
-});
-</script>
-
-<style scoped lang="scss">
-@import "@/styles/sales-common.scss";
-.actions { margin-top: 16px; }
-</style>
diff --git a/src/pages/financialManagement/revenueManagement/index.vue b/src/pages/financialManagement/revenueManagement/index.vue
index e7a4de5..a23272a 100644
--- a/src/pages/financialManagement/revenueManagement/index.vue
+++ b/src/pages/financialManagement/revenueManagement/index.vue
@@ -4,18 +4,12 @@
     <view class="search-section">
       <view class="search-bar">
         <view class="search-input">
-          <uni-datetime-picker type="daterange" v-model="filters.entryDate" @change="onDateChange" />
+          <up-input class="search-text" placeholder="璇疯緭鍏ュ鎴峰悕绉版悳绱�" v-model="searchForm.customerName" clearable />
         </view>
-        <view class="search-input">
-          <up-input readonly placeholder="鏀舵鏂瑰紡" v-model="incomeMethodLabel" @click="methodPickerShow = true" />
-        </view>
-        <view class="filter-button" @click="getList">
-          <up-icon name="search" size="24" color="#999" />
+        <view class="filter-button" @click="handleQuery">
+          <up-icon name="search" size="24" color="#999"></up-icon>
         </view>
       </view>
-    <view class="actions">
-        <u-button type="primary" size="small" @click="goAdd">鏂板</u-button>
-    </view>
     </view>
     <view class="ledger-list" v-if="list.length>0">
       <view class="ledger-item" v-for="item in list" :key="item.id">
@@ -31,14 +25,10 @@
         <up-divider></up-divider>
         <view class="item-details">
           <view class="detail-row"><text class="detail-label">鏀跺叆鏃ユ湡</text><text class="detail-value">{{ item.incomeDate || '--' }}</text></view>
-          <view class="detail-row"><text class="detail-label">鏀跺叆绫诲瀷</text><text class="detail-value">{{ incomeTypeText(item.incomeType) || '--' }}</text></view>
+          <view class="detail-row"><text class="detail-label">鏀跺叆绫诲瀷</text><text class="detail-value">{{ incomeTypeText(item.incomeMethod) || '鍏朵粬鏀跺叆' }}</text></view>
           <view class="detail-row"><text class="detail-label">鏀跺叆閲戦(鍏�)</text><text class="detail-value highlight">{{ fmtAmount(item.incomeMoney) }}</text></view>
           <view class="detail-row"><text class="detail-label">鍙戠エ鍙风爜</text><text class="detail-value">{{ item.invoiceNumber || '--' }}</text></view>
           <view class="detail-row"><text class="detail-label">澶囨敞</text><text class="detail-value">{{ item.note || '--' }}</text></view>
-        </view>
-        <view class="card-actions">
-          <u-button size="small" @click="goEdit(item)" :disabled="!!item.businessId">缂栬緫</u-button>
-          <u-button size="small" type="error" @click="confirmDelete(item)" :disabled="!!item.businessId">鍒犻櫎</u-button>
         </view>
       </view>
     </view>
@@ -61,28 +51,24 @@
 const incomeTypes = ref([]);
 const methodPickerShow = ref(false);
 const incomeMethodLabel = ref("");
+const searchForm = reactive({ customerName: null,current:1,size:100 });
 
 const syncDict = () => {
   paymentMethods.value = (payment_methods?.value || []).map(i => ({ label: i.label, value: i.value }));
-  incomeTypes.value = (income_types?.value || []).filter(i=>i.value!=3).map(i => ({ label: i.label, value: i.value }));
+  incomeTypes.value = (income_types?.value || []).map(i => ({ label: i.label, value: i.value }));
 };
 
 const getList = () => {
-  listPage({ incomeMethod: filters.incomeMethod, entryDateStart: filters.entryDateStart, entryDateEnd: filters.entryDateEnd, current: 1, size: 100 })
+  listPage({ ...searchForm })
     .then(res => {
       const records = res?.data?.records ?? res?.records ?? [];
       list.value = records;
     });
 };
 
-const onDateChange = (val) => {
-  if (val && val.length === 2) {
-    filters.entryDateStart = val[0];
-    filters.entryDateEnd = val[1];
-  } else {
-    filters.entryDateStart = undefined;
-    filters.entryDateEnd = undefined;
-  }
+const handleQuery = () => {
+  searchForm.current = 1;
+  getList();
 };
 
 const onSelectMethod = (e) => {

--
Gitblit v1.9.3