From a26e8d708ab3c8899bee5cae4167ccc3be9b58cd Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期三, 03 九月 2025 14:00:23 +0800 Subject: [PATCH] 销售管理整体样式优化,搜索条件修改 --- src/pages/sales/receiptPaymentLedger/index.vue | 340 +++++++++++++++----------------------------------------- 1 files changed, 93 insertions(+), 247 deletions(-) diff --git a/src/pages/sales/receiptPaymentLedger/index.vue b/src/pages/sales/receiptPaymentLedger/index.vue index 068f4e6..d913f34 100644 --- a/src/pages/sales/receiptPaymentLedger/index.vue +++ b/src/pages/sales/receiptPaymentLedger/index.vue @@ -1,67 +1,68 @@ <template> - <view class="receipt-payment-ledger"> - <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 --> - <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" - /> - </view> - <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="item-header"> - <view class="item-left"> - <view class="customer-icon"> + <view class="sales-account"> + <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 --> + <PageHeader title="瀹㈡埛寰�鏉�" @back="goBack" /> + + <!-- 鎼滅储鍖哄煙 --> + <view class="search-section"> + <view class="search-bar"> + <view class="search-input"> + <up-input + class="search-text" + placeholder="璇疯緭鍏ュ鎴峰悕绉�" + v-model="searchForm.customerName" + @change="handleQuery" + clearable + /> + </view> + <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="item-header"> + <view class="item-left"> + <view class="customer-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> - </view> - </view> - <up-divider></up-divider> - <view class="item-details"> - <view class="detail-row"> - <text class="detail-label">寮�绁ㄩ噾棰�(鍏�)</text> - <text class="detail-value">{{ formattedNumber(item.invoiceTotal) }}</text> - </view> - <view class="detail-row"> - <text class="detail-label">鍥炴閲戦(鍏�)</text> - <text class="detail-value">{{ formattedNumber(item.receiptPaymentAmount) }}</text> - </view> - <view class="detail-row"> - <text class="detail-label">搴旀敹閲戦(鍏�)</text> - <text class="detail-value highlight danger">{{ formattedNumber(item.unReceiptPaymentAmount) }}</text> - </view> - </view> - </view> - </view> - <view v-else class="no-data"> - <text>鏆傛棤瀹㈡埛鏁版嵁</text> - </view> - </view> - </view> + </view> + <text class="customer-name">{{ item.customerName }}</text> + </view> + <view class="item-right"> + <up-icon name="arrow-right" size="16" color="#999"></up-icon> + </view> + </view> + <up-divider></up-divider> + <view class="item-details"> + <view class="detail-row"> + <text class="detail-label">寮�绁ㄩ噾棰�(鍏�)</text> + <text class="detail-value">{{ formattedNumber(item.invoiceTotal) }}</text> + </view> + <view class="detail-row"> + <text class="detail-label">鍥炴閲戦(鍏�)</text> + <text class="detail-value">{{ formattedNumber(item.receiptPaymentAmount) }}</text> + </view> + <view class="detail-row"> + <text class="detail-label">搴旀敹閲戦(鍏�)</text> + <text class="detail-value highlight danger">{{ formattedNumber(item.unReceiptPaymentAmount) }}</text> + </view> + </view> + </view> + </view> + <view v-else class="no-data"> + <text>鏆傛棤瀹㈡埛鏁版嵁</text> + </view> + </view> + </view> </template> <script setup> @@ -73,228 +74,73 @@ const tableData = ref([]); const page = reactive({ - current: -1, - size: -1, + current: -1, + size: -1, }); const data = reactive({ - searchForm: { - searchText: "", - invoiceDate: "", - }, + searchForm: { + customerName: "", + invoiceDate: "", + }, }); const { searchForm } = toRefs(data); // 杩斿洖涓婁竴椤� const goBack = () => { - uni.navigateBack(); + uni.navigateBack(); }; // 鏌ヨ鍒楄〃 const handleQuery = () => { - getList(); + getList(); }; const getList = () => { - invoiceLedgerSalesAccount({ ...searchForm.value, ...page }).then((res) => { - tableData.value = res.data.records; - }).catch(() => { - uni.showToast({ - title: '鏌ヨ澶辫触', - icon: 'error' - }); - }); + invoiceLedgerSalesAccount({ ...searchForm.value, ...page }).then((res) => { + tableData.value = res.data.records; + }).catch(() => { + uni.showToast({ + title: '鏌ヨ澶辫触', + icon: 'error' + }); + }); }; const formattedNumber = (value) => { - return parseFloat(value || 0).toFixed(2); + return parseFloat(value || 0).toFixed(2); }; const rowClickMethod = (row) => { - // 璺宠浆鍒板洖娆捐褰曟槑缁嗛〉闈� - uni.navigateTo({ - url: `/pages/sales/receiptPaymentLedger/detail?customerId=${row.id}` - }); + // 浣跨敤 uni.setStorageSync 瀛樺偍瀹㈡埛淇℃伅 + uni.setStorageSync('customerId', row.id); + // 璺宠浆鍒板洖娆捐褰曟槑缁嗛〉闈� + uni.navigateTo({ + url: '/pages/sales/receiptPaymentLedger/detail' + }); }; onShow(() => { - // 椤甸潰鏄剧ず鏃跺埛鏂板垪琛� - getList(); + // 椤甸潰鏄剧ず鏃跺埛鏂板垪琛� + getList(); }); onMounted(() => { - getList(); + 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); - } -} - -.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; + color: #ff4757; // 涓庡叕鍏辨牱寮忎腑鐨� #ee0a24 涓嶅悓 + font-weight: 500; } </style> \ No newline at end of file -- Gitblit v1.9.3