From 3f88a4f81bbfc424caa1391f4b3969c26fbf8485 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 05 九月 2025 17:57:41 +0800
Subject: [PATCH] 销售管理真机测试,bug修改
---
src/pages/cooperativeOffice/clientVisit/index.vue | 259 ++++++++-------------------------------------------
1 files changed, 42 insertions(+), 217 deletions(-)
diff --git a/src/pages/cooperativeOffice/clientVisit/index.vue b/src/pages/cooperativeOffice/clientVisit/index.vue
index c701e3d..6ff2467 100644
--- a/src/pages/cooperativeOffice/clientVisit/index.vue
+++ b/src/pages/cooperativeOffice/clientVisit/index.vue
@@ -1,62 +1,36 @@
<template>
- <view class="client-visit-list">
+ <view class="sales-accoun">
<!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
<PageHeader title="瀹㈡埛鎷滆" @back="goBack" />
<!-- 鎼滅储鍜岀瓫閫夊尯鍩� -->
- <view class="search-filter-section">
+ <view class="search-section">
<view class="search-bar">
<view class="search-input">
- <input
+ <up-input
class="search-text"
placeholder="璇疯緭鍏ュ鎴峰悕绉�"
v-model="customerName"
- confirm-type="search"
- @confirm="getList"
+ @blur="getList"
+ clearable
/>
</view>
<view class="filter-button" @click="getList">
- <up-icon name="search" size="24" color="#999"></up-icon>
+ <u-icon name="search" size="24" color="#999"></u-icon>
</view>
</view>
</view>
<!-- 鎷滆璁板綍鍒楄〃 -->
- <view class="visit-list" v-if="visitList.length > 0">
+ <view class="ledger-list" v-if="visitList.length > 0">
<view v-for="(item, index) in visitList" :key="index">
- <view class="visit-item">
+ <view class="ledger-item">
<view class="item-header">
<view class="item-left">
<view class="document-icon">
- <up-icon name="user" size="16" color="#ffffff"></up-icon>
+ <up-icon name="file-text" size="16" color="#ffffff"></up-icon>
</view>
<text class="item-id">瀹㈡埛锛歿{ item.customerName }}</text>
- </view>
- <view class="visit-status">
- <!-- 鏇挎崲鏍囩鍜屾寜閽� -->
- <template>
- <u-tag type="success">宸插畬鎴�</u-tag>
-
- <!-- 鎿嶄綔鎸夐挳 -->
- <view class="action-buttons">
- <u-button
- type="primary"
- size="small"
- class="action-btn"
- @click="openDetail(item)"
- >
- 鏌ョ湅璇︽儏
- </u-button>
- <u-button
- type="warning"
- size="small"
- class="action-btn"
- @click="editVisit(item)"
- >
- 缂栬緫
- </u-button>
- </view>
- </template>
</view>
</view>
<up-divider></up-divider>
@@ -98,18 +72,9 @@
type="primary"
size="small"
class="action-btn"
- @click="viewDetail(item.id)"
+ @click="viewDetail(item)"
>
鏌ョ湅璇︽儏
- </u-button>
- <u-button
- type="error"
- size="small"
- plain
- class="action-btn"
- @click="deleteRecord(item.id)"
- >
- 鍒犻櫎
</u-button>
</view>
</view>
@@ -131,7 +96,7 @@
import { ref, onMounted } from 'vue'
import { onShow } from '@dcloudio/uni-app'
import PageHeader from '@/components/PageHeader.vue'
-import { getVisitRecords, deleteVisitRecord } from '@/api/cooperativeOffice/clientVisit'
+import { getVisitRecords } from '@/api/cooperativeOffice/clientVisit'
import useUserStore from "@/store/modules/user"
// 鏇挎崲 toast 鏂规硶
defineOptions({name: 'client-visit-index'})
@@ -157,27 +122,37 @@
uni.navigateBack()
}
-// 鏍煎紡鍖栨棩鏈熸椂闂�
-const formatDateTime = (dateStr) => {
- if (!dateStr) return ''
- return dayjs(dateStr).format("YYYY-MM-DD HH:mm")
-}
-
// 鏌ヨ鍒楄〃
const getList = () => {
+ showLoadingToast('鍔犺浇涓�...')
const params = {
current: -1,
size: -1,
- customerName: customerName.value || undefined,
+ customerName: customerName.value,
}
getVisitRecords(params)
.then((res) => {
visitList.value = res.records || res.data?.records || []
+ closeToast()
})
.catch(() => {
+ closeToast()
showToast('鑾峰彇鏁版嵁澶辫触')
})
}
+
+// 鏄剧ず鍔犺浇鎻愮ず
+const showLoadingToast = (message) => {
+ uni.showLoading({
+ title: message,
+ mask: true
+ });
+};
+
+// 鍏抽棴鎻愮ず
+const closeToast = () => {
+ uni.hideLoading();
+};
// 鏂板鎷滆 - 璺宠浆鍒扮櫥璁伴〉闈�
const addVisit = () => {
@@ -187,29 +162,11 @@
}
// 鏌ョ湅璇︽儏
-const viewDetail = (id) => {
- if (!id) return
+const viewDetail = (item) => {
+ uni.setStorageSync('clientVisit', item)
+ // 鏌ョ湅璇︽儏璺宠浆鍒板彧璇诲睍绀洪〉闈�
uni.navigateTo({
- url: `/pages/cooperativeOffice/clientVisit/detail?id=${id}`
- })
-}
-
-// 鍒犻櫎璁板綍
-const deleteRecord = async (id) => {
- if (!id) return
- uni.showModal({
- title: '鎻愮ず',
- content: '姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ嫓璁胯褰�, 鏄惁缁х画?',
- success: async (res) => {
- if (!res.confirm) return
- try {
- await deleteVisitRecord(id)
- showToast('鍒犻櫎鎴愬姛')
- getList()
- } catch (e) {
- showToast('鍒犻櫎澶辫触')
- }
- }
+ url: '/pages/cooperativeOffice/clientVisit/view'
})
}
@@ -223,167 +180,35 @@
</script>
<style scoped lang="scss">
-.u-divider {
- margin: 0 !important;
-}
+@import "../../../styles/sales-common.scss";
-.client-visit-list {
+// 椤甸潰鐗瑰畾鐨勬牱寮忚鐩�
+.sales-accoun {
min-height: 100vh;
background: #f8f9fa;
position: relative;
padding-bottom: 80px;
}
-.search-filter-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;
-}
-
-.filter-button {
- width: 40px;
- height: 40px;
- border-radius: 8px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.visit-list {
- padding: 20px;
-}
-
-.visit-item {
- background: #ffffff;
- border-radius: 12px;
- margin-bottom: 16px;
- overflow: hidden;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- padding: 0 16px;
-}
-
-.item-header {
- padding: 16px 0;
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.item-left {
- display: flex;
- align-items: center;
- gap: 8px;
-}
-
+// 鐗瑰畾鐨勫浘鏍囨牱寮�
.document-icon {
- width: 24px;
- height: 24px;
- background: #667eea;
- border-radius: 4px;
- display: flex;
- align-items: center;
- justify-content: center;
+ background: #667eea; // 淇濇寔椤甸潰鐗规湁鐨勮儗鏅壊
}
-.item-id {
- font-size: 14px;
- color: #333;
- font-weight: 500;
-}
-
+// 鐗规湁鏍峰紡
.visit-status {
display: flex;
align-items: center;
}
-.item-details {
- padding: 16px 0;
-}
-
-.detail-row {
- display: flex;
- align-items: flex-start;
- 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;
- word-break: break-all;
+ word-break: break-all; // 淇濈暀椤甸潰鐗规湁鐨勬枃鏈崲琛屾牱寮�
}
-.no-data {
- padding: 40px 0;
- text-align: center;
- color: #999;
-}
-
-.action-buttons {
- display: flex;
- gap: 12px;
- padding: 0 0 16px 0;
- justify-content: space-between;
-}
-
-.action-btn {
- flex: 1;
-}
-
+// 鐗瑰畾鐨勬诞鍔ㄦ寜閽牱寮�
.fab-button {
- position: fixed;
- bottom: calc(30px + env(safe-area-inset-bottom));
- right: 30px;
- width: 56px;
- height: 56px;
- background: #667eea;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3);
- z-index: 1000;
+ background: #667eea; // 淇濇寔椤甸潰鐗规湁鐨勮儗鏅壊
+ box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3); // 淇濇寔椤甸潰鐗规湁鐨勯槾褰辨晥鏋�
}
</style>
--
Gitblit v1.9.3