gaoluyang
3 天以前 7eebd7981c1f5d2c569556d1e87f7818cef18cce
src/pages/sales/salesAccount/index.vue
@@ -1,14 +1,7 @@
<template>
   <view class="sales-account">
      <!-- 页面头部 -->
      <view class="page-header">
         <view class="header-left">
            <up-icon name="arrow-left" size="20" color="#333" @click="goBack"></up-icon>
         </view>
         <view class="header-center">
            <text class="page-title">销售台账</text>
         </view>
      </view>
      <!-- 使用通用页面头部组件 -->
      <PageHeader title="销售台账" @back="goBack" />
      
      <!-- 搜索和筛选区域 -->
      <view class="search-filter-section">
@@ -50,7 +43,7 @@
                  </view>
                  <view class="detail-row">
                     <text class="detail-label">客户合同号</text>
                     <text class="detail-value highlight">{{ item.customerContractNo }}</text>
                     <text class="detail-value">{{ item.customerContractNo }}</text>
                  </view>
                  <view class="detail-row">
                     <text class="detail-label">业务员</text>
@@ -102,6 +95,9 @@
import { ref } from 'vue';
import { onShow } from '@dcloudio/uni-app';
import {ledgerListPage} from "@/api/salesManagement/salesLedger";
import useUserStore from "@/store/modules/user";
import PageHeader from "@/components/PageHeader.vue";
const userStore = useUserStore()
// 搜索关键词
const searchKeyword = ref('');
@@ -127,33 +123,54 @@
         // tableLoading.value = false;
   });
};
// 显示筛选选项
const showFilterOptions = () => {
   uni.showActionSheet({
      itemList: ['按日期筛选', '按状态筛选', '按金额筛选'],
      success: (res) => {
         console.log('选择了筛选选项:', res.tapIndex);
      }
   });
};
// 点击列表项
const handleItemClick = (item) => {
   uni.showToast({
      title: `查看合同: ${item.contractId}`,
      icon: 'none'
   });
};
// 添加新记录
// 处理台账信息操作(查看/编辑/新增)
const handleInfo = (type, row) => {
  uni.setStorageSync('operationType', type);
  if (row) {
    uni.setStorageSync('editData', JSON.stringify(row));
  try {
    // 设置操作类型
    uni.setStorageSync('operationType', type);
    // 如果是查看或编辑操作
    if (type !== 'add') {
      // 验证行数据是否存在
      if (!row) {
        uni.showToast({
          title: '数据不存在',
          icon: 'error'
        });
        return;
      }
      // 检查权限:只有录入人才能编辑
      if (row.entryPerson != userStore.id) {
        // 非录入人跳转到只读详情页面
        uni.setStorageSync('editData', JSON.stringify(row));
        uni.navigateTo({
          url: '/pages/sales/salesAccount/view'
        });
        return;
      }
      // 录入人编辑:存储数据并跳转到编辑页面
      uni.setStorageSync('editData', JSON.stringify(row));
      uni.navigateTo({
        url: '/pages/sales/salesAccount/detail'
      });
      return;
    }
    // 新增操作:直接跳转到编辑页面
    uni.navigateTo({
      url: '/pages/sales/salesAccount/detail'
    });
  } catch (error) {
    console.error('处理台账信息操作失败:', error);
    uni.showToast({
      title: '操作失败,请重试',
      icon: 'error'
    });
  }
  uni.navigateTo({
    url: '/pages/sales/salesAccount/detail'
  });
};
onShow(() => {
@@ -172,70 +189,7 @@
   position: relative;
}
.page-header {
   background: #ffffff;
  padding: 16px 20px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   border-bottom: 1px solid #f0f0f0;
   position: sticky;
  /* 兼容 iOS 刘海/灵动岛安全区 */
  padding-top: env(safe-area-inset-top);
  top: 0;
   z-index: 100;
}
.header-left {
   display: flex;
   align-items: center;
   gap: 8px;
}
.nav-icon {
   width: 24px;
   height: 24px;
   background: #2979ff;
   border-radius: 4px;
   display: flex;
   align-items: center;
   justify-content: center;
}
.nav-text {
   font-size: 14px;
   color: #2979ff;
   font-weight: 500;
}
.header-center {
   flex: 1;
   text-align: center;
}
.page-title {
   font-size: 18px;
   font-weight: 600;
   color: #333;
}
.header-right {
   display: flex;
   align-items: center;
}
.status-bar {
   display: flex;
   align-items: center;
   gap: 4px;
}
.signal, .wifi, .battery {
   width: 16px;
   height: 8px;
   background: #333;
   border-radius: 2px;
}
.search-filter-section {
   padding: 10px 20px;
@@ -382,7 +336,7 @@
.fab-button {
   position: fixed;
   bottom: 30px;
   bottom: calc(30px + env(safe-area-inset-bottom));
   right: 30px;
   width: 56px;
   height: 56px;
@@ -393,5 +347,6 @@
   justify-content: center;
   box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
   z-index: 1000;
   /* 确保浮动按钮不被底部安全区域遮挡 */
}
</style>