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): 简化收支借款管理页面并移除编辑功能
---
src/pages/financialManagement/loanManagement/index.vue | 130 +++----------------------------------------
1 files changed, 9 insertions(+), 121 deletions(-)
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 = () => {
--
Gitblit v1.9.3