From 2e77330d87341624c88301562fd137b58f9a101a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 25 十二月 2025 10:57:35 +0800
Subject: [PATCH] 1.海川开心-录入日期都默认当天,封装公用组件和方法

---
 src/views/reportAnalysis/projectProfit/index.vue |  314 +++++++++++++++-------------------------------------
 1 files changed, 90 insertions(+), 224 deletions(-)

diff --git a/src/views/reportAnalysis/projectProfit/index.vue b/src/views/reportAnalysis/projectProfit/index.vue
index 942b0dd..f61cbe5 100644
--- a/src/views/reportAnalysis/projectProfit/index.vue
+++ b/src/views/reportAnalysis/projectProfit/index.vue
@@ -1,30 +1,32 @@
 <template>
-  <div class="app-container">
-    <el-form :model="filters" :inline="true" label-width="80px">
-      <el-form-item label="瀹㈡埛鍚嶇О">
-        <el-input v-model="filters.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" @click="getTableData"> 鎼滅储 </el-button>
-        <el-button @click="resetFilters"> 閲嶇疆 </el-button>
-        <el-button @click="handleOut"> 瀵煎嚭 </el-button>
-      </el-form-item>
-    </el-form>
-    <div class="table_list">
-      <PIMTable
-        rowKey="id"
-        :column="columns"
-        :tableLoading="loading"
-        :tableData="dataList"
-        :page="{
+	<div class="app-container">
+		<el-form :model="filters" :inline="true" label-width="80px">
+			<el-form-item label="瀹㈡埛鍚嶇О">
+				<el-input v-model="filters.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" clearable style="width: 240px"/>
+			</el-form-item>
+			<el-form-item>
+				<el-button type="primary" @click="getTableData"> 鎼滅储 </el-button>
+				<el-button @click="resetFilters"> 閲嶇疆 </el-button>
+				<el-button @click="handleOut"> 瀵煎嚭 </el-button>
+			</el-form-item>
+		</el-form>
+		<div class="table_list">
+			<PIMTable
+				rowKey="id"
+				:column="columns"
+				:tableLoading="loading"
+				:tableData="dataList"
+				:page="{
           current: pagination.currentPage,
           size: pagination.pageSize,
-          total: pagination.total,
+          total: pagination.total
         }"
-        @pagination="changePage"
-      ></PIMTable>
-    </div>
-  </div>
+				:isShowSummary="true"
+				:summaryMethod="summarizeMainTable"
+				@pagination="changePage"
+			></PIMTable>
+		</div>
+	</div>
 </template>
 
 <script setup>
@@ -36,225 +38,89 @@
 const { proxy } = getCurrentInstance();
 
 defineOptions({
-  name: "椤圭洰鍒╂鼎",
+	name: "椤圭洰鍒╂鼎",
 });
 
 const {
-  loading,
-  filters,
-  columns,
-  dataList,
-  pagination,
-  resetFilters,
-  onCurrentChange,
+	loading,
+	filters,
+	columns,
+	dataList,
+	pagination,
+	getTableData,
+	resetFilters,
+	onCurrentChange,
 } = usePaginationApi(
-  getPurchaseList,
-  {
-    customerName: undefined,
-  },
-  [
-    {
-      label: "閿�鍞悎鍚屽彿",
-      align: "center",
-      prop: "customerContractNo",
-    },
-    {
-      label: "瀹㈡埛鍚嶇О",
-      align: "center",
-      prop: "customerName",
-    },
-    {
-      label: "鍚堝悓閲戦",
-      align: "center",
-      prop: "contractAmount",
-    },
-    {
-      label: "閲囪喘閲戦",
-      align: "center",
-      prop: "purchaseAmount",
-    },
-    {
-      label: "鍒╂鼎",
-      align: "center",
-      prop: "balance",
-    },
-    {
-      label: "鍒╂鼎鐜�",
-      align: "center",
-      prop: "balanceRatio",
-    },
-  ]
+	getPurchaseList,
+	{
+		customerName: undefined,
+	},
+	[
+		{
+			label: "閿�鍞悎鍚屽彿",
+			align: "center",
+			prop: "customerContractNo",
+		},
+		{
+			label: "瀹㈡埛鍚嶇О",
+			align: "center",
+			prop: "customerName",
+		},
+		{
+			label: "鍚堝悓閲戦",
+			align: "center",
+			prop: "contractAmount",
+		},
+		{
+			label: "閲囪喘閲戦",
+			align: "center",
+			prop: "purchaseAmount",
+		},
+		{
+			label: "鍒╂鼎",
+			align: "center",
+			prop: "balance",
+		},
+		{
+			label: "鍒╂鼎鐜�",
+			align: "center",
+			prop: "balanceRatio",
+		},
+	]
 );
 
-// 璁剧疆鍋囨暟鎹�
-const mockData = [
-  {
-    customerContractNo: "HCKX20251220011",
-    customerName: "宸存鍘块珮瀹忓啗 - 鏂扮枂鍚嶅埄鍟嗚锤鏈夐檺鍏徃",
-    contractAmount: "10189.00",
-    purchaseAmount: "6113.00",
-    balance: "4076.00",
-    balanceRatio: "40.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220002", 
-    customerName: "鍠�浠�绂忔柊婧愬晢璐告湁闄愬叕鍙�",
-    contractAmount: "35321.00",
-    purchaseAmount: "19436.00",
-    balance: "15885.00",
-    balanceRatio: "45.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220001",
-    customerName: "閮戝窞鎸嚎鍟嗚锤鏈夐檺鍏徃",
-    contractAmount: "26491.00",
-    purchaseAmount: "13245.50",
-    balance: "13245.50",
-    balanceRatio: "50.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220009",
-    customerName: "闃滃悍鑻楃华娑�",
-    contractAmount: "58868.00",
-    purchaseAmount: "35321.00",
-    balance: "23547.00",
-    balanceRatio: "40.0%"
-  },
-  {
-    customerContractNo: "HCKX20251210013",
-    customerName: "娌冲寳鎻寸枂寮曟搸绉戞妧鏈夐檺鍏徃",
-    contractAmount: "41678.00",
-    purchaseAmount: "18755.10",
-    balance: "22922.90",
-    balanceRatio: "55.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220015",
-    customerName: "鐜嬫枃 - 闃垮厠鑻忓弸閼晢璐告湁闄愬叕鍙�",
-    contractAmount: "37358.00",
-    purchaseAmount: "20547.00",
-    balance: "16811.00",
-    balanceRatio: "45.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220010",
-    customerName: "闃垮嫆娉板紶钂�",
-    contractAmount: "203773.60",
-    purchaseAmount: "81509.44",
-    balance: "122264.16",
-    balanceRatio: "60.0%"
-  },
-  {
-    customerContractNo: "HCKX20250930002",
-    customerName: "涔岄瞾鏈ㄩ綈甯備紬绛瑰晢璐告湁闄愬叕鍙�",
-    contractAmount: "56612.30",
-    purchaseAmount: "28306.15",
-    balance: "28306.15",
-    balanceRatio: "50.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220016",
-    customerName: "鏂扮枂澶╂鼎鍟嗚锤鏈夐檺鍏徃",
-    contractAmount: "89245.00",
-    purchaseAmount: "53547.00",
-    balance: "35698.00",
-    balanceRatio: "40.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220017",
-    customerName: "鍝堝瘑甯傚畯杈捐锤鏄撴湁闄愬叕鍙�",
-    contractAmount: "123456.00",
-    purchaseAmount: "55555.20",
-    balance: "67900.80",
-    balanceRatio: "55.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220018",
-    customerName: "浼婄妬鍝堣惃鍏嬭嚜娌诲窞璐告槗鍏徃",
-    contractAmount: "78912.00",
-    purchaseAmount: "31564.80",
-    balance: "47347.20",
-    balanceRatio: "60.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220019",
-    customerName: "鍏嬫媺鐜涗緷鐭虫补璐告槗鏈夐檺鍏徃",
-    contractAmount: "156789.00",
-    purchaseAmount: "78394.50",
-    balance: "78394.50",
-    balanceRatio: "50.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220020",
-    customerName: "鐭虫渤瀛愬啘涓氳锤鏄撳叕鍙�",
-    contractAmount: "234567.00",
-    purchaseAmount: "129011.85",
-    balance: "105555.15",
-    balanceRatio: "45.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220021",
-    customerName: "鍚愰瞾鐣憽钀勮锤鏄撴湁闄愬叕鍙�",
-    contractAmount: "98765.00",
-    purchaseAmount: "59259.00",
-    balance: "39506.00",
-    balanceRatio: "40.0%"
-  },
-  {
-    customerContractNo: "HCKX20251220022",
-    customerName: "鍜岀敯鐜夌煶璐告槗鍏徃",
-    contractAmount: "345678.00",
-    purchaseAmount: "138271.20",
-    balance: "207406.80",
-    balanceRatio: "60.0%"
-  }
-];
-
-// 閲嶅啓鑾峰彇琛ㄦ牸鏁版嵁鐨勬柟娉曪紝浣跨敤鍋囨暟鎹�
-const loadMockData = () => {
-  loading.value = true;
-  setTimeout(() => {
-    dataList.value = mockData;
-    pagination.total = mockData.length;
-    loading.value = false;
-  }, 500);
+const changePage = ({ page, limit }) => {
+	pagination.currentPage = page;
+	pagination.pageSize = limit;
+	onCurrentChange(page);
 };
 
-// 閲嶅啓getTableData鏂规硶
-const getTableData = () => {
-  loadMockData();
-};
-
-const changePage = ({ page }) => {
-  pagination.currentPage = page;
-  onCurrentChange(page);
+// 涓昏〃鍚堣鏂规硶
+const summarizeMainTable = (param) => {
+	return proxy.summarizeTable(param, ["contractAmount", "purchaseAmount", "balance"]);
 };
 
 // 瀵煎嚭
 const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-    .then(() => {
-      proxy.download("/purchase/report/export", {}, "椤圭洰鍒╂鼎.xlsx");
-    })
-    .catch(() => {
-      proxy.$modal.msg("宸插彇娑�");
-    });
+	ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+		confirmButtonText: "纭",
+		cancelButtonText: "鍙栨秷",
+		type: "warning",
+	})
+		.then(() => {
+			proxy.download("/purchase/report/export", {}, "椤圭洰鍒╂鼎.xlsx");
+		})
+		.catch(() => {
+			proxy.$modal.msg("宸插彇娑�");
+		});
 };
 
 onMounted(() => {
-  getTableData();
+	getTableData();
 });
 </script>
 <style lang="scss" scoped>
 .table_list {
-  margin-top: unset;
+	margin-top: unset;
 }
 </style>
-
-
-
-

--
Gitblit v1.9.3