From 4039f4dce566ffddf444bed260906acdff0b164f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 16 五月 2026 15:58:08 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' into dev_NEW_pro_鹤壁

---
 src/pages/sales/salesQuotation/index.vue |  118 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 69 insertions(+), 49 deletions(-)

diff --git a/src/pages/sales/salesQuotation/index.vue b/src/pages/sales/salesQuotation/index.vue
index a6a5103..4ecf910 100644
--- a/src/pages/sales/salesQuotation/index.vue
+++ b/src/pages/sales/salesQuotation/index.vue
@@ -1,47 +1,50 @@
 <template>
   <view class="sales-account">
-    <PageHeader title="閿�鍞姤浠�" @back="goBack" />
-
+    <PageHeader title="閿�鍞姤浠�"
+                @back="goBack" />
     <view class="search-section">
       <view class="search-bar">
         <view class="search-input">
-          <up-input
-            class="search-text"
-            v-model="quotationNo"
-            placeholder="璇疯緭鍏ユ姤浠峰崟鍙锋悳绱�"
-            clearable
-            @change="getList"
-          />
+          <up-input class="search-text"
+                    v-model="quotationNo"
+                    placeholder="璇疯緭鍏ユ姤浠峰崟鍙锋悳绱�"
+                    clearable
+                    @change="getList" />
         </view>
-        <view class="filter-button" @click="getList">
-          <up-icon name="search" size="24" color="#999"></up-icon>
+        <view class="filter-button"
+              @click="getList">
+          <up-icon name="search"
+                   size="24"
+                   color="#999"></up-icon>
         </view>
       </view>
     </view>
-
     <view class="tabs-section">
-      <up-tabs
-        v-model="tabValue"
-        :list="tabList"
-        itemStyle="width: 20%;height: 80rpx;"
-        @change="onTabChange"
-      />
+      <up-tabs v-model="tabValue"
+               :list="tabList"
+               itemStyle="width: 20%;height: 80rpx;"
+               @change="onTabChange" />
     </view>
-
-    <view v-if="quotationList.length > 0" class="ledger-list">
-      <view v-for="item in quotationList" :key="item.id" class="ledger-item">
+    <view v-if="quotationList.length > 0"
+          class="ledger-list">
+      <view v-for="item in quotationList"
+            :key="item.id"
+            class="ledger-item">
         <view class="item-header">
           <view class="item-left">
             <view class="document-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="item-id">{{ item.quotationNo || "-" }}</text>
           </view>
-          <text class="item-index">{{ item.status || "-" }}</text>
+          <up-tag :text="item.status || '寰呭鎵�'"
+                  :type="getStatusType(item.status)"
+                  size="mini"
+                  shape="circle" />
         </view>
-
         <up-divider></up-divider>
-
         <view class="item-details">
           <view class="detail-row">
             <text class="detail-label">瀹㈡埛鍚嶇О</text>
@@ -60,43 +63,45 @@
             <text class="detail-value">{{ item.validDate || "-" }}</text>
           </view>
           <view class="detail-row">
-            <text class="detail-label">浠樻鏂瑰紡</text>
-            <text class="detail-value">{{ item.paymentMethod || "-" }}</text>
-          </view>
-          <view class="detail-row">
             <text class="detail-label">鎶ヤ环閲戦</text>
             <text class="detail-value highlight">{{ formatAmount(item.totalAmount) }}</text>
           </view>
-          <view class="detail-row">
+          <view class="detail-row"
+                v-if="item.remark">
             <text class="detail-label">澶囨敞</text>
-            <text class="detail-value">{{ item.remark || "-" }}</text>
+            <text class="detail-value">{{ item.remark }}</text>
           </view>
         </view>
-
         <view class="action-buttons">
-					<up-button
-						class="action-btn"
-		        size="small"
-		        type="primary"
-		        :disabled="!canEdit(item)"
-		        @click="goEdit(item)"
-					>
-						缂栬緫
-					</up-button>
-          <up-button class="action-btn" size="small" @click="goDetail(item)">璇︽儏</up-button>
-          <up-button class="action-btn" size="small" type="error" plain @click="handleDelete(item)">
+          <up-button class="action-btn"
+                     size="small"
+                     type="primary"
+                     :disabled="!canEdit(item)"
+                     @click="goEdit(item)">
+            缂栬緫
+          </up-button>
+          <up-button class="action-btn"
+                     size="small"
+                     @click="goDetail(item)">璇︽儏</up-button>
+          <up-button class="action-btn"
+                     size="small"
+                     type="error"
+                     plain
+                     @click="handleDelete(item)">
             鍒犻櫎
           </up-button>
         </view>
       </view>
     </view>
-
-    <view v-else class="no-data">
+    <view v-else
+          class="no-data">
       <text>鏆傛棤閿�鍞姤浠锋暟鎹�</text>
     </view>
-
-    <view class="fab-button" @click="goAdd">
-      <up-icon name="plus" size="28" color="#ffffff"></up-icon>
+    <view class="fab-button"
+          @click="goAdd">
+      <up-icon name="plus"
+               size="28"
+               color="#ffffff"></up-icon>
     </view>
   </view>
 </template>
@@ -105,7 +110,10 @@
   import { reactive, ref } from "vue";
   import { onShow } from "@dcloudio/uni-app";
   import PageHeader from "@/components/PageHeader.vue";
-  import { deleteQuotation, getQuotationList } from "@/api/salesManagement/salesQuotation";
+  import {
+    deleteQuotation,
+    getQuotationList,
+  } from "@/api/salesManagement/salesQuotation";
 
   const quotationNo = ref("");
   const quotationList = ref([]);
@@ -129,11 +137,13 @@
   };
 
   const goAdd = () => {
+    uni.removeStorageSync("salesQuotationDetail");
     uni.navigateTo({ url: "/pages/sales/salesQuotation/edit" });
   };
 
   const goEdit = item => {
     if (!canEdit(item)) return;
+    uni.setStorageSync("salesQuotationDetail", item || {});
     uni.navigateTo({ url: `/pages/sales/salesQuotation/edit?id=${item.id}` });
   };
 
@@ -159,6 +169,16 @@
     return `楼${num.toFixed(2)}`;
   };
 
+  const getStatusType = status => {
+    const statusMap = {
+      寰呭鎵�: "info",
+      瀹℃牳涓�: "primary",
+      閫氳繃: "success",
+      鎷掔粷: "danger",
+    };
+    return statusMap[status] || "info";
+  };
+
   const getList = () => {
     uni.showLoading({ title: "鍔犺浇涓�...", mask: true });
     getQuotationList({

--
Gitblit v1.9.3