From a9eb04aa315d6bd08625fd983d8c4356688a9bad Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期三, 04 二月 2026 16:24:58 +0800
Subject: [PATCH] 客户往来筛选客户名称展示有误

---
 src/pages/sales/receiptPaymentLedger/index.vue |  350 +++++++++++++++++----------------------------------------
 1 files changed, 105 insertions(+), 245 deletions(-)

diff --git a/src/pages/sales/receiptPaymentLedger/index.vue b/src/pages/sales/receiptPaymentLedger/index.vue
index 11a16c1..7daa076 100644
--- a/src/pages/sales/receiptPaymentLedger/index.vue
+++ b/src/pages/sales/receiptPaymentLedger/index.vue
@@ -1,50 +1,47 @@
 <template>
-  <view class="receipt-payment-ledger">
-    <!-- 椤甸潰澶撮儴 -->
-    <van-nav-bar
-      title="瀹㈡埛寰�鏉�"
-      left-text="杩斿洖"
-      left-arrow
-      @click-left="goBack"
-      fixed
-      placeholder
-    />
-    
+  <view class="sales-account">
+    <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
+    <PageHeader title="瀹㈡埛寰�鏉�"
+                @back="goBack" />
     <!-- 鎼滅储鍖哄煙 -->
     <view class="search-section">
       <view class="search-bar">
         <view class="search-input">
-          <input
-            class="search-text"
-            placeholder="璇疯緭鍏ュ鎴峰悕绉�"
-            v-model="searchForm.searchText"
-            @input="handleQuery"
-          />
+          <up-input class="search-text"
+                    placeholder="璇疯緭鍏ュ鎴峰悕绉�"
+                    v-model="searchForm.searchText"
+                    @change="searchChange"
+                    clearable />
         </view>
-        <view class="search-button" @click="handleQuery">
-          <up-icon name="search" size="24" color="#999"></up-icon>
+        <view class="search-button"
+              @click="handleQuery">
+          <up-icon name="search"
+                   size="24"
+                   color="#999"></up-icon>
         </view>
       </view>
     </view>
-
     <!-- 瀹㈡埛鍒楄〃 -->
     <view class="customer-list-container">
-      <view class="customer-list" v-if="tableData.length > 0">
-        <view 
-          v-for="(item, index) in tableData" 
-          :key="item.id"
-          class="customer-item"
-          @click="rowClickMethod(item)"
-        >
+      <view class="customer-list"
+            v-if="tableData.length > 0">
+        <view v-for="(item, index) in tableData"
+              :key="item.id"
+              class="customer-item"
+              @click="rowClickMethod(item)">
           <view class="item-header">
             <view class="item-left">
               <view class="customer-icon">
-								<up-icon name="file-text" size="16" color="#ffffff"></up-icon>
+                <up-icon name="file-text"
+                         size="16"
+                         color="#ffffff"></up-icon>
               </view>
               <text class="customer-name">{{ item.customerName }}</text>
             </view>
             <view class="item-right">
-              <up-icon name="arrow-right" size="16" color="#999"></up-icon>
+              <up-icon name="arrow-right"
+                       size="16"
+                       color="#999"></up-icon>
             </view>
           </view>
           <up-divider></up-divider>
@@ -64,7 +61,8 @@
           </view>
         </view>
       </view>
-      <view v-else class="no-data">
+      <view v-else
+            class="no-data">
         <text>鏆傛棤瀹㈡埛鏁版嵁</text>
       </view>
     </view>
@@ -72,236 +70,98 @@
 </template>
 
 <script setup>
-import { onMounted, ref, reactive, toRefs } from "vue";
-import { onShow } from '@dcloudio/uni-app';
-import { invoiceLedgerSalesAccount } from "@/api/salesManagement/invoiceLedger";
+  import { onMounted, ref, reactive, toRefs } from "vue";
+  import { onShow } from "@dcloudio/uni-app";
+  import { invoiceLedgerSalesAccount } from "@/api/salesManagement/invoiceLedger";
 
+  const tableData = ref([]);
 
-const tableData = ref([]);
+  const page = reactive({
+    current: -1,
+    size: -1,
+  });
 
-const page = reactive({
-  current: -1,
-  size: -1,
-});
+  const data = reactive({
+    searchForm: {
+      searchText: "",
+      invoiceDate: "",
+    },
+  });
 
+  const { searchForm } = toRefs(data);
 
+  // 杩斿洖涓婁竴椤�
+  const goBack = () => {
+    uni.navigateBack();
+  };
+  // 鎼滅储妗嗗彉鍖栨椂瑙﹀彂
+  const searchChange = val => {
+    searchForm.value.searchText = val;
+    getList();
+  };
+  // 鏌ヨ鍒楄〃
+  const handleQuery = () => {
+    getList();
+  };
 
-const data = reactive({
-  searchForm: {
-    searchText: "",
-    invoiceDate: "",
-  },
-});
+  const getList = () => {
+    showLoadingToast("鍔犺浇涓�...");
+    invoiceLedgerSalesAccount({ ...searchForm.value, ...page })
+      .then(res => {
+        tableData.value = res.data.records;
+        closeToast();
+      })
+      .catch(() => {
+        closeToast();
+        uni.showToast({
+          title: "鏌ヨ澶辫触",
+          icon: "error",
+        });
+      });
+  };
 
-const { searchForm } = toRefs(data);
+  const formattedNumber = value => {
+    return parseFloat(value || 0).toFixed(2);
+  };
 
-// 杩斿洖涓婁竴椤�
-const goBack = () => {
-  uni.navigateBack();
-};
-
-// 鏌ヨ鍒楄〃
-const handleQuery = () => {
-  getList();
-};
-
-const getList = () => {
-  invoiceLedgerSalesAccount({ ...searchForm.value, ...page }).then((res) => {
-    tableData.value = res.data.records;
-  }).catch(() => {
-    uni.showToast({
-      title: '鏌ヨ澶辫触',
-      icon: 'error'
+  // 鏄剧ず鍔犺浇鎻愮ず
+  const showLoadingToast = message => {
+    uni.showLoading({
+      title: message,
+      mask: true,
     });
+  };
+
+  // 鍏抽棴鎻愮ず
+  const closeToast = () => {
+    uni.hideLoading();
+  };
+
+  const rowClickMethod = row => {
+    // 浣跨敤 uni.setStorageSync 瀛樺偍瀹㈡埛淇℃伅
+    uni.setStorageSync("customerId", row.id);
+    // 璺宠浆鍒板洖娆捐褰曟槑缁嗛〉闈�
+    uni.navigateTo({
+      url: "/pages/sales/receiptPaymentLedger/detail",
+    });
+  };
+
+  onShow(() => {
+    // 椤甸潰鏄剧ず鏃跺埛鏂板垪琛�
+    getList();
   });
-};
 
-const formattedNumber = (value) => {
-  return parseFloat(value || 0).toFixed(2);
-};
-
-
-
-const rowClickMethod = (row) => {
-  // 璺宠浆鍒板洖娆捐褰曟槑缁嗛〉闈�
-  uni.navigateTo({
-    url: `/pages/sales/receiptPaymentLedger/detail?customerId=${row.id}`
+  onMounted(() => {
+    getList();
   });
-};
-
-onShow(() => {
-  // 椤甸潰鏄剧ず鏃跺埛鏂板垪琛�
-  getList();
-});
-
-onMounted(() => {
-  getList();
-});
 </script>
 
 <style scoped lang="scss">
-.u-divider {
-  margin: 0 !important;
-}
+  @import "@/styles/sales-common.scss";
 
-.receipt-payment-ledger {
-  min-height: 100vh;
-  background: #f8f9fa;
-  position: relative;
-}
-
-.search-section {
-  padding: 10px 20px;
-  background: #ffffff;
-}
-
-.search-bar {
-  display: flex;
-  align-items: center;
-  gap: 12px;
-}
-
-.search-input {
-  flex: 1;
-  background: #f5f5f5;
-  border-radius: 24px;
-  padding: 10px 16px;
-  display: flex;
-  align-items: center;
-  gap: 8px;
-}
-
-.search-text {
-  flex: 1;
-  font-size: 14px;
-  color: #333;
-  background: transparent;
-  border: none;
-  outline: none;
-}
-
-.search-text::placeholder {
-  color: #999;
-}
-
-.search-button {
-  width: 40px;
-  height: 40px;
-  border-radius: 8px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-.customer-list-container {
-  padding: 20px;
-}
-
-.customer-list {
-  display: flex;
-  flex-direction: column;
-  gap: 16px;
-}
-
-.customer-item {
-  background: #ffffff;
-  border-radius: 12px;
-  overflow: hidden;
-  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
-  padding: 0 16px;
-  transition: all 0.3s ease;
-  
-  &:active {
-    transform: scale(0.98);
-    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
+  // 瀹㈡埛寰�鏉ョ壒鏈夋牱寮�
+  .detail-value.danger {
+    color: #ff4757; // 涓庡叕鍏辨牱寮忎腑鐨� #ee0a24 涓嶅悓
+    font-weight: 500;
   }
-}
-
-.item-header {
-  padding: 16px 0;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-.item-left {
-  display: flex;
-  align-items: center;
-  gap: 8px;
-}
-
-.item-right {
-  display: flex;
-  align-items: center;
-  gap: 8px;
-}
-
-.customer-icon {
-  width: 24px;
-  height: 24px;
-  background: #2979ff;
-  border-radius: 4px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-.customer-name {
-  font-size: 14px;
-  color: #333;
-  font-weight: 500;
-}
-
-.item-index {
-  font-size: 12px;
-  color: #999;
-  background: #f5f5f5;
-  padding: 2px 8px;
-  border-radius: 12px;
-}
-
-.item-details {
-  padding: 16px 0;
-}
-
-.detail-row {
-  display: flex;
-  align-items: flex-end;
-  justify-content: space-between;
-  margin-bottom: 8px;
-  
-  &:last-child {
-    margin-bottom: 0;
-  }
-}
-
-.detail-label {
-  font-size: 12px;
-  color: #777777;
-  min-width: 60px;
-}
-
-.detail-value {
-  font-size: 12px;
-  color: #000000;
-  text-align: right;
-  flex: 1;
-  margin-left: 16px;
-}
-
-.detail-value.highlight {
-  color: #2979ff;
-  font-weight: 500;
-}
-
-.detail-value.danger {
-  color: #ff4757;
-  font-weight: 500;
-}
-
-.no-data {
-  padding: 40px 0;
-  text-align: center;
-  color: #999;
-}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3