From 277ecf5567ebd2d28d9c1b6ae466d9a70e45c71b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 20 五月 2026 17:08:04 +0800
Subject: [PATCH] fix: 删除部分旧财务功能
---
/dev/null | 355 -----------------------------------------------------------
1 files changed, 0 insertions(+), 355 deletions(-)
diff --git a/src/api/financialManagement/expenseManagement.js b/src/api/financialManagement/expenseManagement.js
deleted file mode 100644
index a22af1b..0000000
--- a/src/api/financialManagement/expenseManagement.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import request from "@/utils/request";
-
-// 鏌ヨ鍒楄〃
-export const listPage = (params) => {
- return request({
- url: "/account/accountExpense/listPage",
- method: "get",
- params,
- });
-};
-export const listPageAnalysis = (params) => {
- return request({
- url: "/account/accountExpense/report/analysis",
- method: "get",
- params,
- });
-};
-
-// 鏂板
-export function add(data) {
- return request({
- url: "/account/accountExpense/add",
- method: "post",
- data: data,
- });
-}
-
-// 缂栬緫
-export function update(data) {
- return request({
- url: "/account/accountExpense/update",
- method: "post",
- data: data,
- });
-}
-
-//瀵煎嚭
-export const exportAccountExpense = (query) => {
- return request({
- url: "/account/accountExpense/export",
- method: "post",
- data: query,
- responseType: "blob",
- });
-};
-
-export const delAccountExpense = (query) => {
- return request({
- url: `account/accountExpense/del`,
- method: "delete",
- data: query,
- });
-};
-
-export const getAccountExpense = (id) => {
- return request({
- url: `/account/accountExpense/${id}`,
- method: "get",
- });
-};
-
-// 鏌ヨ闄勪欢鍒楄〃
-export function fileListPage(query) {
- return request({
- url: "/account/accountFile/listPage",
- method: "get",
- params: query,
- });
-}
-// 淇濆瓨闄勪欢鍒楄〃
-export function fileAdd(query) {
- return request({
- url: "/account/accountFile/add",
- method: "post",
- data: query,
- });
-}
-// 鍒犻櫎闄勪欢鍒楄〃
-export function fileDel(query) {
- return request({
- url: "/account/accountFile/del",
- method: "delete",
- data: query,
- });
-}
diff --git a/src/api/financialManagement/loanManagement.js b/src/api/financialManagement/loanManagement.js
deleted file mode 100644
index 46ea749..0000000
--- a/src/api/financialManagement/loanManagement.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import request from "@/utils/request";
-
-// 鏌ヨ鍒楄〃
-export const listPage = (params) => {
- return request({
- url: "/borrowInfo/listPage",
- method: "get",
- params,
- });
-};
-
-// 鏂板
-export function add(data) {
- return request({
- url: "/borrowInfo/add",
- method: "post",
- data: data,
- });
-}
-
-// 缂栬緫
-export function update(data) {
- return request({
- url: "/borrowInfo/update",
- method: "post",
- data: data,
- });
-}
-
-// 鍒犻櫎
-export const delAccountLoan = (data) => {
- return request({
- url: "/borrowInfo/delete",
- method: "delete",
- data,
- });
-};
diff --git a/src/api/financialManagement/revenueManagement.js b/src/api/financialManagement/revenueManagement.js
deleted file mode 100644
index 090ddf8..0000000
--- a/src/api/financialManagement/revenueManagement.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import request from "@/utils/request";
-
-// 鏌ヨ鍒楄〃
-export const listPage = (params) => {
- return request({
- url: "/account/accountIncome/listPage",
- method: "get",
- params,
- });
-};
-
-// 鏂板
-export function add(data) {
- return request({
- url: "/account/accountIncome/add",
- method: "post",
- data: data,
- });
-}
-
-// 缂栬緫
-export function update(data) {
- return request({
- url: "/account/accountIncome/update",
- method: "post",
- data: data,
- });
-}
-
-//瀵煎嚭
-export const exportAccountIncome = (query) => {
- return request({
- url: "/account/accountIncome/export",
- method: "post",
- data: query,
- responseType: "blob",
- });
-};
-
-export const delAccountIncome = (query) => {
- return request({
- url: `account/accountIncome/del`,
- method: "delete",
- data: query,
- });
-};
-
-export const getAccountIncome = (id) => {
- return request({
- url: `/account/accountIncome/${id}`,
- method: "get",
- });
-};
-
-// 鏌ヨ闄勪欢鍒楄〃
-export function fileListPage(query) {
- return request({
- url: "/account/accountFile/listPage",
- method: "get",
- params: query,
- });
-}
-// 淇濆瓨闄勪欢鍒楄〃
-export function fileAdd(query) {
- return request({
- url: "/account/accountFile/add",
- method: "post",
- data: query,
- });
-}
-// 鍒犻櫎闄勪欢鍒楄〃
-export function fileDel(query) {
- return request({
- url: "/account/accountFile/del",
- method: "delete",
- data: query,
- });
-}
diff --git a/src/views/financialManagement/expenseManagement/Modal.vue b/src/views/financialManagement/expenseManagement/Modal.vue
deleted file mode 100644
index 4d743c1..0000000
--- a/src/views/financialManagement/expenseManagement/Modal.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-<template>
- <FormDialog
- v-model="dialogVisible"
- :title="dialogTitle"
- :operationType="operationType"
- width="50%"
- @confirm="sendForm"
- @close="close"
- @cancel="close"
- >
- <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
- <el-form-item label="鏀嚭鏃ユ湡" prop="expenseDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.expenseDate"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- clearable
- />
- </el-form-item>
- <el-form-item label="鏀嚭绫诲瀷" prop="expenseType">
- <el-select
- v-model="form.expenseType"
- placeholder="璇烽�夋嫨"
- clearable
- >
- <el-option :label="item.label" :value="item.value" v-for="(item,index) in expense_types" :key="index" />
- </el-select>
- </el-form-item>
- <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
- <el-input v-model="form.supplierName" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="鏀嚭閲戦" prop="expenseMoney">
- <el-input-number :step="0.01" :min="0" style="width: 100%"
- v-model="form.expenseMoney"
- placeholder="璇疯緭鍏�"
- />
- </el-form-item>
- <el-form-item label="鏀嚭鎻忚堪" prop="expenseDescribed">
- <el-input v-model="form.expenseDescribed" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="浠樻鏂瑰紡" prop="expenseMethod">
- <el-select
- v-model="form.expenseMethod"
- placeholder="璇烽�夋嫨"
- clearable
- >
- <el-option :label="item.label" :value="item.value" v-for="(item,index) in checkout_payment" :key="index" />
- </el-select>
- </el-form-item>
- <el-form-item label="鍙戠エ鍙风爜" prop="invoiceNumber">
- <el-input v-model="form.invoiceNumber" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="澶囨敞" prop="note">
- <el-input
- v-model="form.note"
- placeholder="澶囨敞"
- />
- </el-form-item>
- </el-form>
- </FormDialog>
-</template>
-
-<script setup>
-import { add, update, getAccountExpense } from "@/api/financialManagement/expenseManagement";
-import { ElMessage } from "element-plus";
-import useFormData from "@/hooks/useFormData";
-import FormDialog from "@/components/Dialog/FormDialog.vue";
-import { ref } from "vue";
-
-const { proxy } = getCurrentInstance()
-
-defineOptions({
- name: "鏀嚭鏂板缂栬緫",
-});
-
-const emits = defineEmits(["success"]);
-
-const formRef = ref(null);
-const dialogVisible = ref(false);
-const operationType = ref("add"); // add | edit
-const id = ref(undefined);
-const submitting = ref(false);
-
-const dialogTitle = (type) => {
- if (type === "edit") return "缂栬緫鏀嚭";
- return "鏂板鏀嚭";
-};
-
-const { expense_types } = proxy.useDict("expense_types");
-const { checkout_payment } = proxy.useDict("checkout_payment");
-
-const formRules = {
- supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- expenseMoney: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- expenseDescribed: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- expenseDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
- expenseType: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
- expenseMethod: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
-}
-
-const { form, resetForm } = useFormData({
- expenseDate: undefined, // 鏀嚭鏃ユ湡
- expenseType: undefined, // 鏀嚭绫诲瀷
- supplierName: undefined, // 渚涘簲鍟嗗悕绉�
- expenseMoney: undefined, // 鏀嚭閲戦
- expenseDescribed: undefined, // 鏀嚭鎻忚堪
- expenseMethod: undefined, // 浠樻鏂瑰紡
- invoiceNumber: undefined, // 鍙戠エ鍙风爜
- note: undefined, // 澶囨敞
-});
-
-const sendForm = () => {
- if (submitting.value) return;
- formRef.value?.validate(async (valid) => {
- if (valid) {
- submitting.value = true;
- try {
- const { code } = id.value
- ? await update({ id: id.value, ...form })
- : await add(form);
- if (code == 200) {
- emits("success");
- ElMessage({ message: "鎿嶄綔鎴愬姛", type: "success" });
- close();
- }
- } finally {
- submitting.value = false;
- }
- }
- })
-};
-
-const close = () => {
- resetForm();
- formRef.value?.clearValidate();
- id.value = undefined;
- dialogVisible.value = false;
-};
-
-const loadForm = async (rowId) => {
- operationType.value = "edit";
- id.value = rowId;
- dialogVisible.value = true;
- if (rowId) {
- const { code, data } = await getAccountExpense(rowId);
- if (code == 200) {
- form.expenseDate = data.expenseDate;
- form.expenseType = data.expenseType;
- form.supplierName = data.supplierName;
- form.expenseMoney = data.expenseMoney;
- form.expenseDescribed = data.expenseDescribed;
- form.expenseMethod = data.expenseMethod;
- form.invoiceNumber = data.invoiceNumber;
- form.note = data.note;
- }
- } else {
- resetForm();
- formRef.value?.clearValidate();
- }
-};
-
-const openModal = () => {
- operationType.value = "add";
- id.value = undefined;
- resetForm();
- formRef.value?.clearValidate();
- dialogVisible.value = true;
-};
-
-defineExpose({
- openModal,
- loadForm,
-});
-</script>
diff --git a/src/views/financialManagement/expenseManagement/index.vue b/src/views/financialManagement/expenseManagement/index.vue
deleted file mode 100644
index 173f8e1..0000000
--- a/src/views/financialManagement/expenseManagement/index.vue
+++ /dev/null
@@ -1,332 +0,0 @@
-<template>
- <div class="app-container">
- <el-form :model="filters" :inline="true">
- <el-form-item label="鏀嚭鏃ユ湡:">
- <el-date-picker v-model="filters.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
- placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
- </el-form-item>
- <el-form-item label="浠樻鏂瑰紡:">
- <el-select
- v-model="filters.expenseMethod"
- placeholder="璇烽�夋嫨"
- clearable
- style="width: 200px;"
- >
- <el-option
- v-for="item in checkout_payment"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getTableData">鎼滅储</el-button>
- <el-button @click="resetFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div class="table_list">
- <div class="actions">
- <div></div>
- <div>
- <el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button>
- <el-button @click="handleOut" icon="download">瀵煎嚭</el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="multipleList.length <= 0 || hasBusinessIdInSelection"
- @click="handleBatchDelete"
- >
- 鎵归噺鍒犻櫎
- </el-button>
- </div>
- </div>
- <PIMTable
- rowKey="id"
- isSelection
- :column="columns"
- :tableData="dataList"
- :page="{
- current: pagination.currentPage,
- size: pagination.pageSize,
- total: pagination.total,
- }"
- :isShowSummary="true"
- :summaryMethod="summarizeMainTable"
- @selection-change="handleSelectionChange"
- @pagination="changePage"
- >
- <template #operation="{ row }">
- <el-button
- type="primary"
- link
- :disabled="!!row.businessId"
- @click="edit(row.id)"
- >
- 缂栬緫
- </el-button>
- <el-button
- type="primary"
- link
- @click="openFilesFormDia(row)"
- >
- 闄勪欢
- </el-button>
- </template>
- </PIMTable>
- </div>
- <Modal ref="modalRef" @success="getTableData"></Modal>
- <FileList v-if="fileDialogVisible" v-model:visible="fileDialogVisible" record-type="account_expense" :record-id="recordId" />
- </div>
-</template>
-
-<script setup>
-import { usePaginationApi } from "@/hooks/usePaginationApi";
-import { listPage, delAccountExpense } from "@/api/financialManagement/expenseManagement";
-import {onMounted, getCurrentInstance, ref, computed, defineAsyncComponent} from "vue";
-import Modal from "./Modal.vue";
-import { ElMessageBox, ElMessage } from "element-plus";
-import dayjs from "dayjs";
-const FileList = defineAsyncComponent(() => import("@/components/Dialog/FileList.vue"));
-
-defineOptions({
- name: "鏀嚭绠$悊",
-});
-
-// 琛ㄦ牸澶氶�夋閫変腑椤�
-const multipleList = ref([]);
-const { proxy } = getCurrentInstance();
-const modalRef = ref();
-const { checkout_payment } = proxy.useDict("checkout_payment");
-const { expense_types } = proxy.useDict("expense_types");
-const accountType = ref('鏀嚭');
-
-const {
- filters,
- columns,
- dataList,
- pagination,
- getTableData,
- resetFilters,
- onCurrentChange,
-} = usePaginationApi(
- listPage,
- {
- expenseMethod: undefined,
- entryDate: undefined,
- },
- [
- {
- label: "鏀嚭鏃ユ湡",
- prop: "expenseDate",
- },
- {
- label: "鏀嚭绫诲瀷",
- align: "center",
- prop: "expenseType",
- dataType: "tag",
- formatData: (params) => {
- if (expense_types.value.find((m) => m.value == params)) {
- return expense_types.value.find((m) => m.value == params).label;
- } else {
- return null
- }
- },
- },
- {
- label: "渚涘簲鍟嗗悕绉�",
- prop: "supplierName",
-
- },
- {
- label: "鏀嚭閲戦",
- prop: "expenseMoney",
-
- },
- {
- label: "鏀嚭鎻忚堪",
- prop: "expenseDescribed",
-
- },
- {
- label: "浠樻鏂瑰紡",
- align: "center",
- prop: "expenseMethod",
- width: '120',
- dataType: "tag",
- formatData: (params) => {
- if (checkout_payment.value.find((m) => m.value == params)) {
- return checkout_payment.value.find((m) => m.value == params).label;
- } else {
- return null
- }
- },
- },
- {
- label: "鍙戠エ鍙风爜",
- prop: "invoiceNumber",
-
- },
- {
- label: "澶囨敞",
- prop: "note",
-
- },
- {
- label: "褰曞叆浜�",
- prop: "inputUser",
- },
- {
- label: "褰曞叆鏃ユ湡",
- prop: "inputTime",
-
- },
- {
- fixed: "right",
- label: "鎿嶄綔",
- dataType: "slot",
- slot: "operation",
- align: "center",
- width: "160px",
- },
- ]
-);
-
-// 琛ㄦ牸鍚堣锛氭敮鍑洪噾棰�
-const summarizeMainTable = (param) => {
- return proxy.summarizeTable(param, ["expenseMoney"]);
-};
-
-// 澶氶�夊悗鍋氫粈涔�
-const handleSelectionChange = (selectionList) => {
- multipleList.value = selectionList;
-};
-
-// 鍒ゆ柇閫変腑鐨勯」涓槸鍚︽湁 businessId
-const hasBusinessIdInSelection = computed(() => {
- return multipleList.value.some(item => item.businessId);
-});
-
-const add = () => {
- modalRef.value.openModal();
-};
-const edit = (id) => {
- // 妫�鏌ュ綋鍓嶈鏄惁鏈� businessId
- const row = dataList.value.find(item => item.id === id);
- if (row && row.businessId) {
- proxy.$modal.msgWarning("璇ヨ褰曞凡鍏宠仈涓氬姟锛屼笉鑳界紪杈�");
- return;
- }
- modalRef.value.loadForm(id);
-};
-const changePage = ({ page, limit }) => {
- pagination.currentPage = page;
- pagination.pageSize = limit;
- onCurrentChange(page);
-};
-const deleteRow = (id) => {
- // 濡傛灉鏄暟缁勶紝妫�鏌ユ槸鍚︽湁 businessId
- if (Array.isArray(id)) {
- const hasBusinessId = id.some(itemId => {
- const row = dataList.value.find(item => item.id === itemId);
- return row && row.businessId;
- });
- if (hasBusinessId) {
- proxy.$modal.msgWarning("閫変腑鐨勮褰曚腑鍖呭惈宸插叧鑱斾笟鍔$殑璁板綍锛屼笉鑳藉垹闄�");
- return;
- }
- } else {
- // 鍗曚釜鍒犻櫎锛屾鏌ユ槸鍚︽湁 businessId
- const row = dataList.value.find(item => item.id === id);
- if (row && row.businessId) {
- proxy.$modal.msgWarning("璇ヨ褰曞凡鍏宠仈涓氬姟锛屼笉鑳藉垹闄�");
- return;
- }
- }
-
- ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?", "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- }).then(async () => {
- const { code } = await delAccountExpense(id);
- if (code == 200) {
- ElMessage({
- type: "success",
- message: "鍒犻櫎鎴愬姛",
- });
- getTableData();
- }
- });
-};
-
-// 鎵归噺鍒犻櫎
-const handleBatchDelete = () => {
- if (multipleList.value.length === 0) {
- proxy.$modal.msgWarning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
- return;
- }
-
- // 妫�鏌ユ槸鍚︽湁 businessId
- if (hasBusinessIdInSelection.value) {
- proxy.$modal.msgWarning("閫変腑鐨勮褰曚腑鍖呭惈宸插叧鑱斾笟鍔$殑璁板綍锛屼笉鑳藉垹闄�");
- return;
- }
-
- const ids = multipleList.value.map((item) => item.id);
- deleteRow(ids);
-};
-
-const changeDaterange = (value) => {
- if (value) {
- filters.entryDate = value;
- filters.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
- filters.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
- } else {
- filters.entryDate = null;
- filters.entryDateStart = undefined;
- filters.entryDateEnd = undefined;
- }
- getTableData();
-};
-
-const handleOut = () => {
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(() => {
- proxy.download(`/account/accountExpense/export`, {}, "鏀嚭鍙拌处.xlsx");
- })
- .catch(() => {
- proxy.$modal.msg("宸插彇娑�");
- });
-};
-
-// 鎵撳紑闄勪欢寮圭獥
-const recordId =ref(0)
-const fileDialogVisible = ref(false)
-
-// 鎵撳紑闄勪欢寮规
-const openFilesFormDia = async (row) => {
- recordId.value = row.id
- fileDialogVisible.value = true
-}
-
-onMounted(() => {
- getTableData();
-});
-</script>
-
-<style lang="scss" scoped>
-.table_list {
- margin-top: unset;
-}
-.actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-}
-</style>
-
diff --git a/src/views/financialManagement/loanManagement/Modal.vue b/src/views/financialManagement/loanManagement/Modal.vue
deleted file mode 100644
index 73b2cc3..0000000
--- a/src/views/financialManagement/loanManagement/Modal.vue
+++ /dev/null
@@ -1,222 +0,0 @@
-<template>
- <FormDialog
- v-model="dialogVisible"
- :title="dialogTitle"
- :operationType="operationType"
- width="60%"
- @confirm="sendForm"
- @close="close"
- @cancel="close"
- >
- <el-form
- ref="formRef"
- :model="form"
- :rules="formRules"
- label-width="120px"
- >
- <el-form-item label="鍊熸浜哄鍚�" prop="borrowerName">
- <el-input v-model="form.borrowerName" placeholder="璇疯緭鍏ュ�熸浜哄鍚�" />
- </el-form-item>
- <el-form-item label="鍊熸閲戦锛堝厓锛�" prop="borrowAmount">
- <el-input-number
- :step="0.01"
- :min="0"
- :precision="2"
- style="width: 100%"
- v-model="form.borrowAmount"
- placeholder="璇疯緭鍏ュ�熸閲戦"
- />
- </el-form-item>
- <el-form-item label="鍊熸鍒╃巼锛�%锛�" prop="interestRate">
- <el-input-number
- :step="0.01"
- :min="0"
- :precision="2"
- style="width: 100%"
- v-model="form.interestRate"
- placeholder="璇疯緭鍏ュ�熸鍒╃巼锛屽锛�5.85"
- />
- </el-form-item>
- <el-form-item label="鍊熸鏃ユ湡" prop="borrowDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.borrowDate"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨鍊熸鏃ユ湡"
- clearable
- />
- </el-form-item>
- <!-- 瀹為檯杩樻鏃ユ湡锛氫粎鈥滆繕娆锯�濇椂鍙~ -->
- <el-form-item
- v-if="operationType === 'repay'"
- label="瀹為檯杩樻鏃ユ湡"
- prop="repayDate"
- >
- <el-date-picker
- style="width: 100%"
- v-model="form.repayDate"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨瀹為檯杩樻鏃ユ湡锛堣繕娆惧悗濉啓锛�"
- clearable
- />
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input
- v-model="form.remark"
- type="textarea"
- :rows="3"
- placeholder="璇疯緭鍏ュ娉紙鍊熸璇存槑锛�"
- />
- </el-form-item>
- </el-form>
- </FormDialog>
-</template>
-
-<script setup>
-import { add, update } from "@/api/financialManagement/loanManagement";
-import useFormData from "@/hooks/useFormData";
-import FormDialog from "@/components/Dialog/FormDialog.vue";
-import { ElMessage } from "element-plus";
-import { ref } from "vue";
-
-defineOptions({
- name: "鍊熸鏂板缂栬緫",
-});
-
-const emits = defineEmits(["success"]);
-
-const formRef = ref(null);
-const dialogVisible = ref(false);
-const operationType = ref("add"); // add | edit
-const id = ref(undefined);
-const submitting = ref(false);
-
-const dialogTitle = (type) => {
- if (type === "edit") return "缂栬緫鍊熸";
- if (type === "repay") return "杩樻";
- return "鏂板鍊熸";
-};
-
-const formRules = {
- borrowerName: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ�熸浜哄鍚�" }],
- borrowAmount: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ�熸閲戦" }],
- interestRate: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ�熸鍒╃巼" }],
- borrowDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨鍊熸鏃ユ湡" }],
- repayDate: [
- {
- validator: (_rule, value, callback) => {
- if (operationType.value === "repay" && !value) {
- callback(new Error("璇烽�夋嫨瀹為檯杩樻鏃ユ湡"));
- return;
- }
- callback();
- },
- trigger: "change",
- },
- ],
-};
-
-const { form, resetForm } = useFormData({
- borrowerName: undefined, // 鍊熸浜哄鍚�
- borrowAmount: undefined, // 鍊熸閲戦锛堝厓锛�
- interestRate: undefined, // 鍊熸鍒╃巼锛堝锛�5.85 浠h〃5.85%锛�
- borrowDate: undefined, // 鍊熸鏃ユ湡
- repayDate: undefined, // 瀹為檯杩樻鏃ユ湡锛堣繕娆惧悗濉厖锛�
- remark: undefined, // 澶囨敞锛堝�熸璇存槑锛�
-});
-
-const sendForm = () => {
- if (submitting.value) return;
- formRef.value?.validate(async (valid) => {
- if (valid) {
- submitting.value = true;
- try {
- const isRepay = operationType.value === "repay";
- // 杩樻锛氫笉灞曠ず status锛屼絾鎻愪氦鏃跺己鍒朵紶 status=2锛岃蛋鏇存柊鎺ュ彛
- const payload = isRepay
- ? { id: id.value, ...form, status: 2 }
- : id.value
- ? { id: id.value, ...form }
- : form;
-
- const { code } = isRepay
- ? await update(payload)
- : id.value
- ? await update(payload)
- : await add(payload);
- if (code == 200) {
- emits("success");
- ElMessage({ message: "鎿嶄綔鎴愬姛", type: "success" });
- close();
- }
- } finally {
- submitting.value = false;
- }
- }
- });
-};
-
-const close = () => {
- resetForm();
- formRef.value?.clearValidate();
- id.value = undefined;
- dialogVisible.value = false;
-};
-
-// 缂栬緫锛氱洿鎺ョ敤鍒楄〃琛屾暟鎹洖濉紙閬垮厤渚濊禆璇︽儏鎺ュ彛锛�
-const loadForm = async (row) => {
- const rowId = row?.id;
- operationType.value = "edit";
- id.value = rowId;
- dialogVisible.value = true;
- if (rowId) {
- form.borrowerName = row.borrowerName;
- form.borrowAmount = row.borrowAmount;
- form.interestRate = row.interestRate;
- form.borrowDate = row.borrowDate;
- form.repayDate = row.repayDate;
- form.remark = row.remark;
- } else {
- resetForm();
- formRef.value?.clearValidate();
- }
-};
-
-// 杩樻锛氭墦寮�寮圭獥锛屼粎濉啓瀹為檯杩樻鏃ユ湡锛屾彁浜ゆ椂寮哄埗 status=2
-const repay = async (row) => {
- const rowId = row?.id;
- operationType.value = "repay";
- id.value = rowId;
- dialogVisible.value = true;
- if (rowId) {
- // 涓轰簡璧� update 鎺ュ彛鏇寸ǔ濡ワ紝甯︿笂鍘熸湁鏁版嵁锛涘彧璁╃敤鎴烽�� repayDate
- form.borrowerName = row.borrowerName;
- form.borrowAmount = row.borrowAmount;
- form.interestRate = row.interestRate;
- form.borrowDate = row.borrowDate;
- form.remark = row.remark;
- form.repayDate = undefined;
- } else {
- resetForm();
- formRef.value?.clearValidate();
- }
-};
-
-const openModal = () => {
- operationType.value = "add";
- id.value = undefined;
- resetForm();
- formRef.value?.clearValidate();
- dialogVisible.value = true;
-};
-
-defineExpose({
- openModal,
- loadForm,
- repay,
-});
-</script>
diff --git a/src/views/financialManagement/loanManagement/index.vue b/src/views/financialManagement/loanManagement/index.vue
deleted file mode 100644
index cb52ff1..0000000
--- a/src/views/financialManagement/loanManagement/index.vue
+++ /dev/null
@@ -1,278 +0,0 @@
-<template>
- <div class="app-container">
- <el-form :model="filters" :inline="true">
- <el-form-item label="鍊熸浜哄鍚�:">
- <el-input
- v-model="filters.borrowerName"
- placeholder="璇疯緭鍏ュ�熸浜哄鍚�"
- clearable
- style="width: 200px;"
- />
- </el-form-item>
- <el-form-item label="鍊熸鏃ユ湡:">
- <el-date-picker
- v-model="filters.borrowDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="daterange"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- clearable
- @change="changeDaterange"
- />
- </el-form-item>
- <el-form-item label="鍊熸鐘舵��:">
- <el-select
- v-model="filters.status"
- placeholder="璇烽�夋嫨"
- clearable
- style="width: 200px;"
- >
- <el-option label="寰呰繕娆�" :value="1" />
- <el-option label="宸茶繕娆�" :value="2" />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getTableData">鎼滅储</el-button>
- <el-button @click="resetFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div class="table_list">
- <div class="actions">
- <div></div>
- <div>
- <el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button>
- <el-button @click="handleOut" icon="download">瀵煎嚭</el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="multipleList.length <= 0"
- @click="deleteRow(multipleList.map((item) => item.id))"
- >
- 鎵归噺鍒犻櫎
- </el-button>
- </div>
- </div>
- <PIMTable
- rowKey="id"
- isSelection
- :column="columns"
- :tableData="dataList"
- :page="{
- current: pagination.currentPage,
- size: pagination.pageSize,
- total: pagination.total,
- }"
- :isShowSummary="true"
- :summaryMethod="summarizeMainTable"
- @selection-change="handleSelectionChange"
- @pagination="changePage"
- >
- <template #operation="{ row }">
- <el-button type="primary" link @click="edit(row)">
- 缂栬緫
- </el-button>
- <el-button
- :disabled="row.status !== 1"
- type="primary"
- link
- @click="repay(row)"
- >
- 杩樻
- </el-button>
- </template>
- </PIMTable>
- </div>
- <Modal ref="modalRef" @success="getTableData"></Modal>
- </div>
-</template>
-
-<script setup>
-import { usePaginationApi } from "@/hooks/usePaginationApi";
-import { listPage, delAccountLoan } from "@/api/financialManagement/loanManagement";
-import { onMounted, getCurrentInstance, ref, nextTick } from "vue";
-import Modal from "./Modal.vue";
-import { ElMessageBox, ElMessage } from "element-plus";
-import dayjs from "dayjs";
-
-defineOptions({
- name: "鍊熸绠$悊",
-});
-
-// 琛ㄦ牸澶氶�夋閫変腑椤�
-const multipleList = ref([]);
-const { proxy } = getCurrentInstance();
-const modalRef = ref();
-
-const {
- filters,
- columns,
- dataList,
- pagination,
- getTableData,
- resetFilters,
- onCurrentChange,
-} = usePaginationApi(
- listPage,
- {
- borrowerName: undefined,
- borrowDate: undefined,
- status: undefined,
- },
- [
- {
- label: "鍊熸浜哄鍚�",
- prop: "borrowerName",
- },
- {
- label: "鍊熸閲戦锛堝厓锛�",
- prop: "borrowAmount",
- formatData: (val) => {
- return val ? `楼${parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` : '楼0.00';
- },
- },
- {
- label: "鍊熸鍒╃巼锛�%锛�",
- prop: "interestRate",
- formatData: (val) => {
- return val ? `${parseFloat(val).toFixed(2)}%` : '-';
- },
- },
- {
- label: "鍊熸鏃ユ湡",
- prop: "borrowDate",
- },
- {
- label: "瀹為檯杩樻鏃ユ湡",
- prop: "repayDate",
- },
- {
- label: "鍊熸鐘舵��",
- prop: "status",
- dataType: "tag",
- align: 'center',
- formatData: (params) => {
- if (params == 1) {
- return "寰呰繕娆�";
- } else if (params == 2) {
- return "宸茶繕娆�";
- }
- return null;
- },
- formatType: (params) => {
- if (params == 1) {
- return "error";
- } else if (params == 2) {
- return "success";
- }
- return null;
- },
- },
- {
- fixed: "right",
- label: "鎿嶄綔",
- dataType: "slot",
- slot: "operation",
- align: "center",
- width: "120px",
- },
- ],
- null,
- {
- // 灏嗗墠绔�熸鏃ユ湡鑼冨洿杞崲涓哄悗绔渶瑕佺殑 entryDateStart / entryDateEnd锛屽苟涓斾笉浼� borrowDate
- borrowDate: (val) => {
- if (val && val.length === 2) {
- return {
- entryDateStart: dayjs(val[0]).format("YYYY-MM-DD"),
- entryDateEnd: dayjs(val[1]).format("YYYY-MM-DD"),
- };
- }
- return {};
- },
- }
-);
-
-// 琛ㄦ牸鍚堣锛氬�熸閲戦
-const summarizeMainTable = (param) => {
- return proxy.summarizeTable(param, ["borrowAmount"]);
-};
-
-// 澶氶�夊悗鍋氫粈涔�
-const handleSelectionChange = (selectionList) => {
- multipleList.value = selectionList;
-};
-
-const add = () => {
- modalRef.value.openModal();
-};
-
-const edit = (row) => {
- modalRef.value.loadForm(row);
-};
-
-const repay = (row) => {
- modalRef.value.repay(row);
-};
-
-const changePage = ({ page, limit }) => {
- pagination.currentPage = page;
- pagination.pageSize = limit;
- onCurrentChange(page);
-};
-
-const deleteRow = (id) => {
- ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?", "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- }).then(async () => {
- const { code } = await delAccountLoan(id);
- if (code == 200) {
- ElMessage({
- type: "success",
- message: "鍒犻櫎鎴愬姛",
- });
- getTableData();
- }
- });
-};
-
-const changeDaterange = (value) => {
- if (value) {
- filters.borrowDate = value;
- } else {
- filters.borrowDate = null;
- }
- getTableData();
-};
-
-const handleOut = () => {
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(() => {
- proxy.download(`/borrowInfo/export`, {}, "鍊熸鍙拌处.xlsx");
- })
- .catch(() => {
- proxy.$modal.msg("宸插彇娑�");
- });
-};
-
-onMounted(() => {
- getTableData();
-});
-</script>
-
-<style lang="scss" scoped>
-.table_list {
- margin-top: unset;
-}
-.actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-}
-</style>
diff --git a/src/views/financialManagement/revenueManagement/Modal.vue b/src/views/financialManagement/revenueManagement/Modal.vue
deleted file mode 100644
index 7dd6865..0000000
--- a/src/views/financialManagement/revenueManagement/Modal.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-<template>
- <FormDialog
- v-model="dialogVisible"
- :title="dialogTitle"
- :operationType="operationType"
- width="30%"
- @confirm="sendForm"
- @close="close"
- @cancel="close"
- >
- <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
- <el-form-item label="鏀跺叆鏃ユ湡" prop="incomeDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.incomeDate"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- clearable
- />
- </el-form-item>
- <el-form-item label="鏀跺叆绫诲瀷" prop="incomeType">
- <el-select
- v-model="form.incomeType"
- placeholder="璇烽�夋嫨"
- clearable
- >
- <el-option :label="item.label" :value="item.value" v-for="(item,index) in income_types.filter(item => item.value != 3)" :key="index" />
- </el-select>
- </el-form-item>
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
- <el-input v-model="form.customerName" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="鏀跺叆閲戦" prop="incomeMoney">
- <el-input-number :step="0.01" :min="0" style="width: 100%"
- v-model="form.incomeMoney"
- placeholder="璇疯緭鍏�"
- />
- </el-form-item>
- <el-form-item label="鏀跺叆鎻忚堪" prop="incomeDescribed">
- <el-input v-model="form.incomeDescribed" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="鏀舵鏂瑰紡" prop="incomeMethod">
- <el-select
- v-model="form.incomeMethod"
- placeholder="璇烽�夋嫨"
- clearable
- >
- <el-option :label="item.label" :value="item.value" v-for="(item,index) in payment_methods" :key="index" />
- </el-select>
- </el-form-item>
- <el-form-item label="鍙戠エ鍙风爜" prop="invoiceNumber">
- <el-input v-model="form.invoiceNumber" placeholder="璇疯緭鍏�" />
- </el-form-item>
- <el-form-item label="澶囨敞" prop="note">
- <el-input
- v-model="form.note"
- placeholder="澶囨敞"
- />
- </el-form-item>
- </el-form>
- </FormDialog>
-</template>
-
-<script setup>
-import { add, update, getAccountIncome } from "@/api/financialManagement/revenueManagement";
-import { ElMessage } from "element-plus";
-import useFormData from "@/hooks/useFormData";
-import FormDialog from "@/components/Dialog/FormDialog.vue";
-import { ref } from "vue";
-
-const { proxy } = getCurrentInstance()
-
-defineOptions({
- name: "鏀跺叆鏂板缂栬緫",
-});
-
-const emits = defineEmits(["success"]);
-
-const formRef = ref(null);
-const dialogVisible = ref(false);
-const operationType = ref("add"); // add | edit
-const id = ref(undefined);
-const submitting = ref(false);
-
-const dialogTitle = (type) => {
- if (type === "edit") return "缂栬緫鏀跺叆";
- return "鏂板鏀跺叆";
-};
-
-const { income_types } = proxy.useDict("income_types");
-const { payment_methods } = proxy.useDict("payment_methods");
-
-const formRules = {
- customerName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- incomeMoney: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- incomeDescribed: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- incomeDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
- incomeType: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
- incomeMethod: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
-}
-
-const { form, resetForm } = useFormData({
- incomeDate: undefined, // 鏀跺叆鏃ユ湡
- incomeType: undefined, // 鏀跺叆绫诲瀷
- customerName: undefined, // 瀹㈡埛鍚嶇О
- incomeMoney: undefined, // 鏀跺叆閲戦
- incomeDescribed: undefined, // 鏀跺叆鎻忚堪
- incomeMethod: undefined, // 鏀舵鏂瑰紡
- invoiceNumber: undefined, // 鍙戠エ鍙风爜
- note: undefined, // 澶囨敞
-});
-
-const sendForm = () => {
- if (submitting.value) return;
- formRef.value?.validate(async (valid) => {
- if (valid) {
- submitting.value = true;
- try {
- const { code } = id.value
- ? await update({ id: id.value, ...form })
- : await add(form);
- if (code == 200) {
- emits("success");
- ElMessage({ message: "鎿嶄綔鎴愬姛", type: "success" });
- close();
- }
- } finally {
- submitting.value = false;
- }
- }
- })
-};
-
-const close = () => {
- resetForm();
- formRef.value?.clearValidate();
- id.value = undefined;
- dialogVisible.value = false;
-};
-
-const loadForm = async (rowId) => {
- operationType.value = "edit";
- id.value = rowId;
- dialogVisible.value = true;
- if (rowId) {
- const { code, data } = await getAccountIncome(rowId);
- if (code == 200) {
- form.incomeDate = data.incomeDate;
- form.incomeType = data.incomeType;
- form.customerName = data.customerName;
- form.incomeMoney = data.incomeMoney;
- form.incomeDescribed = data.incomeDescribed;
- form.incomeMethod = data.incomeMethod;
- form.invoiceNumber = data.invoiceNumber;
- form.note = data.note;
- }
- } else {
- resetForm();
- formRef.value?.clearValidate();
- }
-};
-
-const openModal = () => {
- operationType.value = "add";
- id.value = undefined;
- resetForm();
- formRef.value?.clearValidate();
- dialogVisible.value = true;
-};
-
-defineExpose({
- openModal,
- loadForm,
-});
-</script>
diff --git a/src/views/financialManagement/revenueManagement/index.vue b/src/views/financialManagement/revenueManagement/index.vue
deleted file mode 100644
index bcef5b6..0000000
--- a/src/views/financialManagement/revenueManagement/index.vue
+++ /dev/null
@@ -1,355 +0,0 @@
-<template>
- <div class="app-container">
- <el-form :model="filters" :inline="true">
- <el-form-item label="鏀跺叆鏃ユ湡:">
- <el-date-picker v-model="filters.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
- placeholder="璇烽�夋嫨" clearable @change="changeDaterange"/>
- </el-form-item>
- <el-form-item label="鏀舵鏂瑰紡:">
- <el-select
- v-model="filters.incomeMethodLabel"
- placeholder="璇烽�夋嫨"
- clearable
- style="width: 200px;"
- >
- <el-option
- v-for="item in incomeMethodOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getTableData">鎼滅储</el-button>
- <el-button @click="resetFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div class="table_list">
- <div class="actions">
- <div></div>
- <div>
- <el-button type="primary" @click="add" icon="Plus"> 鏂板</el-button>
- <el-button @click="handleOut" icon="download">瀵煎嚭</el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="multipleList.length <= 0 || hasBusinessIdInSelection"
- @click="handleBatchDelete"
- >
- 鎵归噺鍒犻櫎
- </el-button>
- </div>
- </div>
- <PIMTable
- rowKey="id"
- isSelection
- :column="columns"
- :tableData="dataList"
- :page="{
- current: pagination.currentPage,
- size: pagination.pageSize,
- total: pagination.total,
- }"
- :isShowSummary="true"
- :summaryMethod="summarizeMainTable"
- @selection-change="handleSelectionChange"
- @pagination="changePage"
- >
- <template #incomeMethodSlot="{ row }">
- <el-tag>
- {{ getIncomeMethodLabel(row) }}
- </el-tag>
- </template>
- <template #operation="{ row }">
- <el-button
- type="primary"
- link
- :disabled="!!row.businessId"
- @click="edit(row.id)"
- >
- 缂栬緫
- </el-button>
- <el-button
- type="primary"
- link
- @click="openFilesFormDia(row)"
- >
- 闄勪欢
- </el-button>
- </template>
- </PIMTable>
- </div>
- <Modal ref="modalRef" @success="getTableData"></Modal>
- <FileListDialog v-if="fileListDialogVisible" :record-id="currentRecordId" record-type="account_income" v-model:visible="fileListDialogVisible"/>
- </div>
-</template>
-
-<script setup>
-import {usePaginationApi} from "@/hooks/usePaginationApi";
-import {listPage, delAccountIncome} from "@/api/financialManagement/revenueManagement";
-import {onMounted, getCurrentInstance, ref, computed} from "vue";
-import {ElMessageBox, ElMessage} from "element-plus";
-import dayjs from "dayjs";
-
-defineOptions({
- name: "鏀跺叆绠$悊",
-});
-
-// 琛ㄦ牸澶氶�夋閫変腑椤�
-const multipleList = ref([]);
-const {proxy} = getCurrentInstance();
-const modalRef = ref();
-const {payment_methods} = proxy.useDict("payment_methods");
-const {receipt_payment_type} = proxy.useDict("receipt_payment_type");
-const {income_types} = proxy.useDict("income_types");
-const fileListRef = ref(null);
-const fileListDialogVisible = ref(false);
-const currentRecordId = ref(0);
-
-const incomeMethodOptions = computed(() => {
- const merged = [...(payment_methods.value || []), ...(receipt_payment_type.value || [])];
- const uniqueMap = new Map();
- merged.forEach((item) => {
- const label = item?.label;
- if (!label) return;
- if (!uniqueMap.has(label)) {
- uniqueMap.set(label, {label, value: label});
- }
- });
- return Array.from(uniqueMap.values());
-});
-
-const {
- filters,
- columns,
- dataList,
- pagination,
- getTableData,
- resetFilters,
- onCurrentChange,
-} = usePaginationApi(
- listPage,
- {
- incomeMethodLabel: undefined,
- entryDate: undefined,
- },
- [
- {
- label: "鏀跺叆鏃ユ湡",
- prop: "incomeDate",
- },
- {
- label: "鏀跺叆绫诲瀷",
- prop: "incomeType",
- dataType: "tag",
- formatData: (params) => {
- if (income_types.value.find((m) => m.value == params)) {
- return income_types.value.find((m) => m.value == params).label;
- } else {
- return null
- }
- },
- },
- {
- label: "瀹㈡埛鍚嶇О",
- prop: "customerName",
- width: '200'
-
- },
- {
- label: "鏀跺叆閲戦",
- prop: "incomeMoney",
-
- },
- {
- label: "鏀跺叆鎻忚堪",
- prop: "incomeDescribed",
-
- },
- {
- label: "鏀舵鏂瑰紡",
- prop: "incomeMethodLabel",
- align: 'center',
- width: '100',
- dataType: "slot",
- slot: "incomeMethodSlot",
- },
- {
- label: "鍙戠エ鍙风爜",
- prop: "invoiceNumber",
-
- },
- {
- label: "澶囨敞",
- prop: "note",
-
- },
- {
- label: "褰曞叆浜�",
- prop: "inputUser",
- },
- {
- label: "褰曞叆鏃ユ湡",
- prop: "inputTime",
-
- },
- {
- fixed: "right",
- label: "鎿嶄綔",
- dataType: "slot",
- slot: "operation",
- align: "center",
- width: "160px",
- },
- ],
- undefined,
- {
- incomeMethodLabel: (value) => ({
- incomeMethodLabel: value || undefined,
- }),
- }
-);
-
-// 琛ㄦ牸鍚堣锛氭敹鍏ラ噾棰�
-const summarizeMainTable = (param) => {
- return proxy.summarizeTable(param, ["incomeMoney"]);
-};
-
-const getIncomeMethodLabel = (row) => {
- const methodValue = row?.incomeMethod;
- const dictList = String(row?.businessType) === "1"
- ? receipt_payment_type.value
- : payment_methods.value;
- return dictList.find((item) => item.value == methodValue)?.label || "--";
-};
-
-// 澶氶�夊悗鍋氫粈涔�
-const handleSelectionChange = (selectionList) => {
- multipleList.value = selectionList;
-};
-
-// 鍒ゆ柇閫変腑鐨勯」涓槸鍚︽湁 businessId
-const hasBusinessIdInSelection = computed(() => {
- return multipleList.value.some(item => item.businessId);
-});
-
-const add = () => {
- modalRef.value.openModal();
-};
-const edit = (id) => {
- // 妫�鏌ュ綋鍓嶈鏄惁鏈� businessId
- const row = dataList.value.find(item => item.id === id);
- if (row && row.businessId) {
- proxy.$modal.msgWarning("璇ヨ褰曞凡鍏宠仈涓氬姟锛屼笉鑳界紪杈�");
- return;
- }
- modalRef.value.loadForm(id);
-};
-const changePage = ({page, limit}) => {
- pagination.currentPage = page;
- pagination.pageSize = limit;
- onCurrentChange(page);
-};
-const deleteRow = (id) => {
- // 濡傛灉鏄暟缁勶紝妫�鏌ユ槸鍚︽湁 businessId
- if (Array.isArray(id)) {
- const hasBusinessId = id.some(itemId => {
- const row = dataList.value.find(item => item.id === itemId);
- return row && row.businessId;
- });
- if (hasBusinessId) {
- proxy.$modal.msgWarning("閫変腑鐨勮褰曚腑鍖呭惈宸插叧鑱斾笟鍔$殑璁板綍锛屼笉鑳藉垹闄�");
- return;
- }
- } else {
- // 鍗曚釜鍒犻櫎锛屾鏌ユ槸鍚︽湁 businessId
- const row = dataList.value.find(item => item.id === id);
- if (row && row.businessId) {
- proxy.$modal.msgWarning("璇ヨ褰曞凡鍏宠仈涓氬姟锛屼笉鑳藉垹闄�");
- return;
- }
- }
-
- ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?", "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- }).then(async () => {
- const {code} = await delAccountIncome(id);
- if (code == 200) {
- ElMessage({
- type: "success",
- message: "鍒犻櫎鎴愬姛",
- });
- getTableData();
- }
- });
-};
-
-// 鎵归噺鍒犻櫎
-const handleBatchDelete = () => {
- if (multipleList.value.length === 0) {
- proxy.$modal.msgWarning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
- return;
- }
-
- // 妫�鏌ユ槸鍚︽湁 businessId
- if (hasBusinessIdInSelection.value) {
- proxy.$modal.msgWarning("閫変腑鐨勮褰曚腑鍖呭惈宸插叧鑱斾笟鍔$殑璁板綍锛屼笉鑳藉垹闄�");
- return;
- }
-
- const ids = multipleList.value.map((item) => item.id);
- deleteRow(ids);
-};
-
-const changeDaterange = (value) => {
- if (value) {
- filters.entryDate = value;
- filters.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
- filters.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
- } else {
- filters.entryDate = null;
- filters.entryDateStart = undefined;
- filters.entryDateEnd = undefined;
- }
- getTableData();
-};
-
-const handleOut = () => {
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(() => {
- proxy.download(`/account/accountIncome/export`, {}, "鏀跺叆鍙拌处.xlsx");
- })
- .catch(() => {
- proxy.$modal.msg("宸插彇娑�");
- });
-};
-// 鎵撳紑闄勪欢寮规
-const openFilesFormDia = async (row) => {
- currentRecordId.value = row.id;
- fileListDialogVisible.value = true;
-};
-
-onMounted(() => {
- getTableData();
-});
-</script>
-
-<style lang="scss" scoped>
-.table_list {
- margin-top: unset;
-}
-
-.actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-}
-</style>
-
--
Gitblit v1.9.3