From 4606f230a2c64fef2f54f61a35e67acd087df51c Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 30 七月 2025 08:56:56 +0800
Subject: [PATCH] 1111

---
 pages/QC/OQC/Add.vue  |    2 
 pages/QC/OQC/List.vue | 1009 ++++++++++++++++++++++++++++------------------------------
 2 files changed, 487 insertions(+), 524 deletions(-)

diff --git a/pages/QC/OQC/Add.vue b/pages/QC/OQC/Add.vue
index d62de86..c9263fb 100644
--- a/pages/QC/OQC/Add.vue
+++ b/pages/QC/OQC/Add.vue
@@ -116,7 +116,7 @@
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
     <view class="action-buttons">
       <button class="btn btn-primary" @click="submitInspection">鎻愪氦</button>
-      <button class="btn btn-primary" @click="regenerate">鐢熸垚妫�楠岄」鐩�</button>
+      <button v-if="formData.fsubmit != 1" class="btn btn-primary" @click="regenerate">鐢熸垚妫�楠岄」鐩�</button>
       <button class="secondary-btn" @click="uploadImages">涓婁紶/鏌ョ湅鍥剧墖</button>
       <button class="btn btn-secondary" @click="addDefectDescription">娣诲姞涓嶅悎鏍兼弿杩�</button>
     </view>
diff --git a/pages/QC/OQC/List.vue b/pages/QC/OQC/List.vue
index fc5e94c..d1f79d9 100644
--- a/pages/QC/OQC/List.vue
+++ b/pages/QC/OQC/List.vue
@@ -1,478 +1,461 @@
 <template>
-	<view class="page-container">
-		<!-- 鍒锋柊鎻愮ず妗� -->
-		<view class="success-toast" :class="{ 'show': tipShow }">
-			<view class="toast-icon">鉁�</view>
-			<text class="toast-text">鍒锋柊鎴愬姛</text>
-		</view>
+  <view class="page-container">
+    <!-- 鍒锋柊鎻愮ず妗� -->
+    <view :class="{ 'show': tipShow }" class="success-toast">
+      <view class="toast-icon">鉁�</view>
+      <text class="toast-text">鍒锋柊鎴愬姛</text>
+    </view>
 
-		<!-- 澶撮儴鍖哄煙 -->
-		<view class="header-section">
-			<!-- 椤甸潰鏍囬 -->
-			<view class="page-header">
-				<view class="header-content">
-					<view class="title-section">
-						<text class="page-title">OQC妫�楠屽崟</text>
-						<text class="page-subtitle">璐ㄩ噺妫�楠岀鐞�</text>
-					</view>
-					<view class="stats-badge">
-						<text class="stats-number">{{ totalCount }}</text>
-						<text class="stats-label">鎬昏</text>
-					</view>
-				</view>
-			</view>
+    <!-- 澶撮儴鍖哄煙 -->
+    <view class="header-section">
+      <!-- 椤甸潰鏍囬 -->
+      <view class="page-header">
+        <view class="header-content">
+          <view class="title-section">
+            <text class="page-title">OQC妫�楠屽崟</text>
+            <text class="page-subtitle">璐ㄩ噺妫�楠岀鐞�</text>
+          </view>
+          <view class="stats-badge">
+            <text class="stats-number">{{ totalCount }}</text>
+            <text class="stats-label">鎬昏</text>
+          </view>
+        </view>
+      </view>
 
-			<!-- 鎼滅储鏍� -->
-			<view class="search-section">
-				<view class="search-container">
-					<view class="search-input-wrapper">
-						<uni-icons type="search" size="18" color="#94a3b8"></uni-icons>
-						<input class="search-input" type="text" v-model="searchValue" 
-							@confirm="getInputValue" placeholder="鎼滅储鐗╂枡缂栫爜銆佺墿鏂欏悕绉般�佸垱寤轰汉鍛�..." />
-						<view v-if="searchValue" class="clear-btn" @tap="clearSearch">
-							<uni-icons type="clear" size="16" color="#94a3b8"></uni-icons>
-						</view>
-					</view>
-					<view class="filter-btn" @tap="toggleFilter">
-						<uni-icons type="tune" size="18" color="#4f46e5"></uni-icons>
-					</view>
-				</view>
-				
-				<!-- 绛涢�夊櫒 -->
-				<view v-if="showFilter" class="filter-panel">
-					<picker mode="selector" :range="searchOptions" v-model="selectedOption" @change="onPickerChange">
-						<view class="filter-option">
-							<text class="filter-label">绛涢�夋潯浠�</text>
-							<text class="filter-value">{{ searchOptions[selectedOption] }}</text>
-							<uni-icons type="arrowdown" size="14" color="#64748b"></uni-icons>
-						</view>
-					</picker>
-				</view>
-			</view>
+      <!-- 鎼滅储鏍忔牱寮� -->
+      <view class="search-bar">
+        <view class="search-card">
+          <picker v-model="selectedOption" :range="searchOptions" mode="selector" @change="onPickerChange">
+            <view class="picker">
+              {{ searchOptions[selectedOption] }}
+            </view>
+          </picker>
+          <input v-model="searchValue" class="search-input" placeholder="璇疯緭鍏ユ悳绱㈠��" type="text"
+                 @keypress.enter="getInputValue"/>
+          <button class="search-btn" @click="getInputValue">鎼滅储</button>
+        </view>
+      </view>
 
-			<!-- 閫夐」鍗� -->
-			<view class="tab-section">
-				<view class="custom-tabs">
-					<view v-for="(item, index) in items" :key="index" 
-						class="tab-item" :class="{ 'active': current === index }"
-						@tap="onClickItem({ currentIndex: index })">
-						<text class="tab-text">{{ item }}</text>
-						<view class="tab-indicator" v-if="current === index"></view>
-					</view>
-				</view>
-			</view>
-		</view>
+      <!-- 閫夐」鍗� -->
+      <view class="tab-section">
+        <view class="custom-tabs">
+          <view v-for="(item, index) in items" :key="index"
+                :class="{ 'active': current === index }" class="tab-item"
+                @tap="onClickItem({ currentIndex: index })">
+            <text class="tab-text">{{ item }}</text>
+            <view v-if="current === index" class="tab-indicator"></view>
+          </view>
+        </view>
+      </view>
+    </view>
 
-		<!-- 鍐呭鍖哄煙 -->
-		<view class="content-container">
-			<view v-show="current === 0">
-				<!-- 鍔犺浇鐘舵�� -->
-				<view v-if="isLoading" class="loading-state">
-					<view class="loading-spinner"></view>
-					<text class="loading-text">鍔犺浇涓�...</text>
-				</view>
-				
-				<!-- 绌虹姸鎬� -->
-				<view v-else-if="data.length === 0" class="empty-state">
-					<view class="empty-icon">馃搵</view>
-					<text class="empty-title">鏆傛棤妫�楠屽崟</text>
-					<text class="empty-desc">鐐瑰嚮鍙充笅瑙掓寜閽垱寤烘柊鐨勬楠屽崟</text>
-				</view>
-				
-				<!-- 妫�楠屽崟鍒楄〃 -->
-				<view v-else class="inspection-list">
-					<view v-for="item in data" :key="item.id || item.releaseNo" 
-						class="inspection-card" @tap="navigateToDetail(item)">
-						
-						<!-- 鍗$墖澶撮儴 -->
-						<view class="card-header">
-							<view class="header-left">
-								<view class="inspection-number">
-									<text class="number-label">妫�楠屽崟鍙�</text>
-									<text class="number-value">{{ item.releaseNo }}</text>
-								</view>
-								<view class="material-info">
-									<text class="material-code">{{ item.itemNo }}</text>
-									<text class="material-name">{{ item.itemName || '鏈煡鐗╂枡' }}</text>
-								</view>
-							</view>
-							<view class="header-right">
-								<view class="status-badge" 
-									:class="{ 
-										'status-submitted': item.fsubmit == 1, 
-										'status-pending': item.fsubmit != 1 
-									}">
-									<view class="status-dot"></view>
-									<text class="status-text">{{ item.fsubmit == 1 ? '宸叉彁浜�' : '寰呮彁浜�' }}</text>
-								</view>
-							</view>
-						</view>
-						
-						<!-- 妫�楠岀粨鏋滃尯鍩� -->
-						<view class="inspection-result">
-							<view class="result-item">
-								<view class="result-icon" 
-									:class="{ 
+    <!-- 鍐呭鍖哄煙 -->
+    <view class="content-container">
+      <view v-show="current === 0">
+        <!-- 鍔犺浇鐘舵�� -->
+        <view v-if="isLoading" class="loading-state">
+          <view class="loading-spinner"></view>
+          <text class="loading-text">鍔犺浇涓�...</text>
+        </view>
+
+        <!-- 绌虹姸鎬� -->
+        <view v-else-if="data.length === 0" class="empty-state">
+          <view class="empty-icon">馃搵</view>
+          <text class="empty-title">鏆傛棤妫�楠屽崟</text>
+          <text class="empty-desc">鐐瑰嚮鍙充笅瑙掓寜閽垱寤烘柊鐨勬楠屽崟</text>
+        </view>
+
+        <!-- 妫�楠屽崟鍒楄〃 -->
+        <view v-else class="inspection-list">
+          <view v-for="item in data" :key="item.id || item.releaseNo"
+                class="inspection-card" @tap="navigateToDetail(item)">
+
+            <!-- 鍗$墖澶撮儴 -->
+            <view class="card-header">
+              <view class="header-left">
+                <view class="inspection-number">
+                  <text class="number-label">妫�楠屽崟鍙�</text>
+                  <text class="number-value">{{ item.releaseNo }}</text>
+                </view>
+                <view class="material-info">
+                  <text class="material-code">{{ item.itemNo }}</text>
+                  <text class="material-name">{{ item.itemName || '鏈煡鐗╂枡' }}</text>
+                </view>
+              </view>
+              <view class="header-right">
+                <view :class="{
+										'status-submitted': item.fsubmit == 1,
+										'status-pending': item.fsubmit != 1
+									}"
+                      class="status-badge">
+                  <view class="status-dot"></view>
+                  <text class="status-text">{{ item.fsubmit == 1 ? '宸叉彁浜�' : '寰呮彁浜�' }}</text>
+                </view>
+              </view>
+            </view>
+
+            <!-- 妫�楠岀粨鏋滃尯鍩� -->
+            <view class="inspection-result">
+              <view class="result-item">
+                <view :class="{
 										'icon-pass': item.fcheckResu === '鍚堟牸',
 										'icon-fail': item.fcheckResu === '涓嶅悎鏍�',
 										'icon-pending': !item.fcheckResu || item.fcheckResu === '鏈楠�'
-									}">
-									<text class="result-symbol">{{ 
-										item.fcheckResu === '鍚堟牸' ? '鉁�' : 
-										item.fcheckResu === '涓嶅悎鏍�' ? '鉁�' : '鈼�' 
-									}}</text>
-								</view>
-								<view class="result-content">
-									<text class="result-label">妫�楠岀粨鏋�</text>
-									<text class="result-value" 
-										:class="{ 
+									}"
+                      class="result-icon">
+                  <text class="result-symbol">{{
+                      item.fcheckResu === '鍚堟牸' ? '鉁�' :
+                          item.fcheckResu === '涓嶅悎鏍�' ? '鉁�' : '鈼�'
+                    }}
+                  </text>
+                </view>
+                <view class="result-content">
+                  <text class="result-label">妫�楠岀粨鏋�</text>
+                  <text :class="{
 											'value-pass': item.fcheckResu === '鍚堟牸',
 											'value-fail': item.fcheckResu === '涓嶅悎鏍�',
 											'value-pending': !item.fcheckResu || item.fcheckResu === '鏈楠�'
-										}">
-										{{ item.fcheckResu || '鏈楠�' }}
-									</text>
-								</view>
-							</view>
-							
-							<view class="inspector-info">
-								<text class="inspector-label">妫�楠屼汉</text>
-								<text class="inspector-name">{{ item.modify1By || '寰呭垎閰�' }}</text>
-							</view>
-						</view>
-						
-						<!-- 璇︾粏淇℃伅 -->
-						<view class="card-details">
-							<view class="detail-grid">
-								<view class="detail-item">
-									<text class="detail-label">鍒涘缓鏃堕棿</text>
-									<text class="detail-value">{{ item.createDate }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">鏁伴噺</text>
-									<text class="detail-value">{{ item.planQty }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">鍒涘缓浜�</text>
-									<text class="detail-value">{{ item.createUser }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">閫佹浜�</text>
-									<text class="detail-value">{{ item.fcheckUser || '-' }}</text>
-								</view>
-							</view>
-						</view>
-						
-						<!-- 鎿嶄綔鎸囩ず鍣� -->
-						<view class="action-indicator">
-							<uni-icons type="arrowright" size="16" color="#94a3b8"></uni-icons>
-						</view>
-					</view>
-				</view>
-			</view>
-			<!-- 绗簩涓�夐」鍗″唴瀹� - 宸叉楠� -->
-			<view v-show="current === 1">
-				<!-- 鍔犺浇鐘舵�� -->
-				<view v-if="isLoading" class="loading-state">
-					<view class="loading-spinner"></view>
-					<text class="loading-text">鍔犺浇涓�...</text>
-				</view>
-				
-				<!-- 绌虹姸鎬� -->
-				<view v-else-if="data.length === 0" class="empty-state">
-					<view class="empty-icon">鉁�</view>
-					<text class="empty-title">鏆傛棤宸叉楠屽崟鎹�</text>
-					<text class="empty-desc">瀹屾垚妫�楠岀殑鍗曟嵁灏嗘樉绀哄湪杩欓噷</text>
-				</view>
-				
-				<!-- 妫�楠屽崟鍒楄〃 -->
-				<view v-else class="inspection-list">
-					<view v-for="item in data" :key="item.id || item.releaseNo" 
-						class="inspection-card completed" @tap="navigateToDetail(item)">
-						
-						<!-- 鍗$墖澶撮儴 -->
-						<view class="card-header">
-							<view class="header-left">
-								<view class="inspection-number">
-									<text class="number-label">妫�楠屽崟鍙�</text>
-									<text class="number-value">{{ item.releaseNo }}</text>
-								</view>
-								<view class="material-info">
-									<text class="material-code">{{ item.itemNo }}</text>
-									<text class="material-name">{{ item.itemName || '鏈煡鐗╂枡' }}</text>
-								</view>
-							</view>
-							<view class="header-right">
-								<view class="status-badge status-completed">
-									<view class="status-dot"></view>
-									<text class="status-text">宸插畬鎴�</text>
-								</view>
-							</view>
-						</view>
-						
-						<!-- 妫�楠岀粨鏋滃尯鍩� -->
-						<view class="inspection-result">
-							<view class="result-item">
-								<view class="result-icon" 
-									:class="{ 
+										}"
+                        class="result-value">
+                    {{ item.fcheckResu || '鏈楠�' }}
+                  </text>
+                </view>
+              </view>
+
+              <view class="inspector-info">
+                <text class="inspector-label">妫�楠屼汉</text>
+                <text class="inspector-name">{{ item.modify1By || '寰呭垎閰�' }}</text>
+              </view>
+            </view>
+
+            <!-- 璇︾粏淇℃伅 -->
+            <view class="card-details">
+              <view class="detail-grid">
+                <view class="detail-item">
+                  <text class="detail-label">鍒涘缓鏃堕棿</text>
+                  <text class="detail-value">{{ item.createDate }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">鏁伴噺</text>
+                  <text class="detail-value">{{ item.planQty }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">鍒涘缓浜�</text>
+                  <text class="detail-value">{{ item.createUser }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">閫佹浜�</text>
+                  <text class="detail-value">{{ item.fcheckUser || '-' }}</text>
+                </view>
+              </view>
+            </view>
+
+            <!-- 鎿嶄綔鎸囩ず鍣� -->
+            <view class="action-indicator">
+              <uni-icons color="#94a3b8" size="16" type="arrowright"></uni-icons>
+            </view>
+          </view>
+        </view>
+      </view>
+      <!-- 绗簩涓�夐」鍗″唴瀹� - 宸叉楠� -->
+      <view v-show="current === 1">
+        <!-- 鍔犺浇鐘舵�� -->
+        <view v-if="isLoading" class="loading-state">
+          <view class="loading-spinner"></view>
+          <text class="loading-text">鍔犺浇涓�...</text>
+        </view>
+
+        <!-- 绌虹姸鎬� -->
+        <view v-else-if="data.length === 0" class="empty-state">
+          <view class="empty-icon">鉁�</view>
+          <text class="empty-title">鏆傛棤宸叉楠屽崟鎹�</text>
+          <text class="empty-desc">瀹屾垚妫�楠岀殑鍗曟嵁灏嗘樉绀哄湪杩欓噷</text>
+        </view>
+
+        <!-- 妫�楠屽崟鍒楄〃 -->
+        <view v-else class="inspection-list">
+          <view v-for="item in data" :key="item.id || item.releaseNo"
+                class="inspection-card completed" @tap="navigateToDetail(item)">
+
+            <!-- 鍗$墖澶撮儴 -->
+            <view class="card-header">
+              <view class="header-left">
+                <view class="inspection-number">
+                  <text class="number-label">妫�楠屽崟鍙�</text>
+                  <text class="number-value">{{ item.releaseNo }}</text>
+                </view>
+                <view class="material-info">
+                  <text class="material-code">{{ item.itemNo }}</text>
+                  <text class="material-name">{{ item.itemName || '鏈煡鐗╂枡' }}</text>
+                </view>
+              </view>
+              <view class="header-right">
+                <view class="status-badge status-completed">
+                  <view class="status-dot"></view>
+                  <text class="status-text">宸插畬鎴�</text>
+                </view>
+              </view>
+            </view>
+
+            <!-- 妫�楠岀粨鏋滃尯鍩� -->
+            <view class="inspection-result">
+              <view class="result-item">
+                <view :class="{
 										'icon-pass': item.fcheckResu === '鍚堟牸',
 										'icon-fail': item.fcheckResu === '涓嶅悎鏍�'
-									}">
-									<text class="result-symbol">{{ 
-										item.fcheckResu === '鍚堟牸' ? '鉁�' : '鉁�'
-									}}</text>
-								</view>
-								<view class="result-content">
-									<text class="result-label">鏈�缁堢粨鏋�</text>
-									<text class="result-value" 
-										:class="{ 
+									}"
+                      class="result-icon">
+                  <text class="result-symbol">{{
+                      item.fcheckResu === '鍚堟牸' ? '鉁�' : '鉁�'
+                    }}
+                  </text>
+                </view>
+                <view class="result-content">
+                  <text class="result-label">鏈�缁堢粨鏋�</text>
+                  <text :class="{
 											'value-pass': item.fcheckResu === '鍚堟牸',
 											'value-fail': item.fcheckResu === '涓嶅悎鏍�'
-										}">
-										{{ item.fcheckResu }}
-									</text>
-								</view>
-							</view>
-							
-							<view class="inspector-info">
-								<text class="inspector-label">妫�楠屼汉</text>
-								<text class="inspector-name">{{ item.modify1By }}</text>
-							</view>
-						</view>
-						
-						<!-- 璇︾粏淇℃伅 -->
-						<view class="card-details">
-							<view class="detail-grid">
-								<view class="detail-item">
-									<text class="detail-label">妫�楠屾椂闂�</text>
-									<text class="detail-value">{{ item.modify1Date }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">鏁伴噺</text>
-									<text class="detail-value">{{ item.planQty }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">鍒涘缓浜�</text>
-									<text class="detail-value">{{ item.createUser }}</text>
-								</view>
-								<view class="detail-item">
-									<text class="detail-label">閫佹浜�</text>
-									<text class="detail-value">{{ item.fcheckUser || '-' }}</text>
-								</view>
-							</view>
-						</view>
-						
-						<!-- 鎿嶄綔鎸囩ず鍣� -->
-						<view class="action-indicator">
-							<uni-icons type="arrowright" size="16" color="#94a3b8"></uni-icons>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		
-		<!-- 娴姩鎿嶄綔鎸夐挳 -->
-		<view class="fab-container">
-			<view class="fab-button" @tap="handleFabClick">
-				<uni-icons type="plus" size="24" color="#ffffff"></uni-icons>
-			</view>
-		</view>
-	</view>
+										}"
+                        class="result-value">
+                    {{ item.fcheckResu }}
+                  </text>
+                </view>
+              </view>
+
+              <view class="inspector-info">
+                <text class="inspector-label">妫�楠屼汉</text>
+                <text class="inspector-name">{{ item.modify1By }}</text>
+              </view>
+            </view>
+
+            <!-- 璇︾粏淇℃伅 -->
+            <view class="card-details">
+              <view class="detail-grid">
+                <view class="detail-item">
+                  <text class="detail-label">妫�楠屾椂闂�</text>
+                  <text class="detail-value">{{ item.modify1Date }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">鏁伴噺</text>
+                  <text class="detail-value">{{ item.planQty }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">鍒涘缓浜�</text>
+                  <text class="detail-value">{{ item.createUser }}</text>
+                </view>
+                <view class="detail-item">
+                  <text class="detail-label">閫佹浜�</text>
+                  <text class="detail-value">{{ item.fcheckUser || '-' }}</text>
+                </view>
+              </view>
+            </view>
+
+            <!-- 鎿嶄綔鎸囩ず鍣� -->
+            <view class="action-indicator">
+              <uni-icons color="#94a3b8" size="16" type="arrowright"></uni-icons>
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <!-- 娴姩鎿嶄綔鎸夐挳 -->
+    <view class="fab-container">
+      <view class="fab-button" @tap="handleFabClick">
+        <uni-icons color="#ffffff" size="24" type="plus"></uni-icons>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		components: {},
-		data() {
-			return {
-				items: ['鏈楠�', '宸叉楠�'],
-				current: 0,
-				data: [],
-				pageIndex: 1,
-				limit: 20,
-				totalPage: 0,
-				totalCount: 0,
-				noData: false,
-				isLoading: false,
-				tipShow: false,
-				searchOptions: ['鐗╂枡缂栫爜', '鐗╂枡鍚嶇О', '鍒涘缓浜哄憳'],
-				selectedOption: 0,
-				searchValue: '',
-				copiedText: '',
-				headerHeight: 0,
-				showFilter: false, // 鎺у埗绛涢�夐潰鏉挎樉绀�
-			};
-		},
-		onLoad() {
-			this.init();
-		},
-		onShow() {
-			// 椤甸潰鏄剧ず鏃跺埛鏂版暟鎹�
-			this.pageIndex = 1;
-			this.loadData();
-		},
-		methods: {
-			onPickerChange(e) {
-				this.selectedOption = e.detail.value;
-			},
-			getInputValue() {
-				this.pageIndex = 1; // 鎼滅储鏃堕噸缃〉鐮�
-				this.loadData(); // 璋冪敤缁熶竴鐨勬暟鎹姞杞芥柟娉�
-			},
-			loadData() {
-				let result = "鏈畬鎴�";
-				if (this.current === 1) {
-					result = "宸插畬鎴�";
-				}
+export default {
+  components: {},
+  data() {
+    return {
+      items: ['鏈楠�', '宸叉楠�'],
+      current: 0,
+      data: [],
+      pageIndex: 1,
+      limit: 20,
+      totalPage: 0,
+      totalCount: 0,
+      noData: false,
+      isLoading: false,
+      tipShow: false,
+      searchOptions: ['鐗╂枡缂栫爜', '鐗╂枡鍚嶇О', '鍒涘缓浜哄憳', '妫�楠屽崟鍙�'],
+      selectedOption: 0,
+      searchValue: '',
+      copiedText: '',
+      headerHeight: 0
+    };
+  },
+  onLoad() {
+    this.init();
+  },
+  onShow() {
+    // 椤甸潰鏄剧ず鏃跺埛鏂版暟鎹�
+    this.pageIndex = 1;
+    this.loadData();
+  },
+  methods: {
+    onPickerChange(e) {
+      this.selectedOption = e.detail.value;
+    },
+    getInputValue() {
+      this.pageIndex = 1; // 鎼滅储鏃堕噸缃〉鐮�
+      this.loadData(); // 璋冪敤缁熶竴鐨勬暟鎹姞杞芥柟娉�
+    },
+    loadData() {
+      let result = "鏈畬鎴�";
+      if (this.current === 1) {
+        result = "宸插畬鎴�";
+      }
 
-				if (this.isLoading) return;
+      if (this.isLoading) return;
 
-				this.isLoading = true;
+      this.isLoading = true;
 
-				let userName = this.$loginInfo.account;
-				let url = "/MesOqcItemsDetect02/getPage"; // 榛樿璋冪敤getPage
-				let requestData = {
-					pageIndex: this.pageIndex,
-					limit: this.limit,
-					createUser: userName,
-					result: result
-				};
+      let userName = this.$loginInfo.account;
+      let url = "/MesOqcItemsDetect02/getPage"; // 榛樿璋冪敤getPage
+      let requestData = {
+        pageIndex: this.pageIndex,
+        limit: this.limit,
+        createUser: userName,
+        result: result
+      };
 
-				console.log("璇锋眰鍙傛暟:", requestData);
-				console.log("褰撳墠閫夐」鍗�:", this.current);
-				console.log("result鐘舵��:", result);
+      console.log("璇锋眰鍙傛暟:", requestData);
+      console.log("褰撳墠閫夐」鍗�:", this.current);
+      console.log("result鐘舵��:", result);
 
-				// 鍒ゆ柇鎼滅储妗嗘槸鍚︽湁鍊�
-				if (this.searchValue != null && this.searchValue.trim() !== '') {
-					// 鏍规嵁閫夋嫨鐨勬悳绱㈤�夐」璁剧疆鎼滅储鏉′欢
-					switch (this.selectedOption) {
-						case 0: // 鐗╂枡缂栫爜
-							requestData.itemNo = this.searchValue;
-							break;
-						case 1: // 鐗╂枡鍚嶇О
-							requestData.itemName = this.searchValue;
-							break;
-						case 2: // 鍒涘缓浜哄憳
-							requestData.createUser = this.searchValue;
-							break;
-					}
-				}
+      // 鍒ゆ柇鎼滅储妗嗘槸鍚︽湁鍊�
+      if (this.searchValue != null && this.searchValue.trim() !== '') {
+        // 鏍规嵁閫夋嫨鐨勬悳绱㈤�夐」璁剧疆鎼滅储鏉′欢
+        switch (this.selectedOption) {
+          case 0: // 鐗╂枡缂栫爜
+            requestData.itemNo = this.searchValue;
+            break;
+          case 1: // 鐗╂枡鍚嶇О
+            requestData.itemName = this.searchValue;
+            break;
+          case 2: // 鍒涘缓浜哄憳
+            requestData.createUser = this.searchValue;
+            break;
+          case 3: // 妫�楠屽崟鍙�
+            requestData.releaseNo = this.searchValue;
+            break;
+        }
+        requestData.searchIndex = this.selectedOption;
+      }
 
-				this.$post({
-					url: url,
-					data: requestData
-				}).then(res => {
-					console.log("API杩斿洖瀹屾暣鏁版嵁:", JSON.stringify(res, null, 2));
-					console.log("res缁撴瀯:", res);
-					console.log("res.data:", res.data);
-					console.log("res.totalCount:", res.totalCount);
-					
-					// 鏍规嵁鍝嶅簲鏍煎紡.json锛屾纭殑鏁版嵁缁撴瀯鏄細
-					// res.data 鏄暟缁勶紝res.totalCount 鏄�绘暟
-					let dataList = null;
-					let totalCount = 0;
-					
-					if (res.data && Array.isArray(res.data)) {
-						// 姝g‘鐨勬暟鎹粨鏋勶細data鏄暟缁�
-						dataList = res.data;
-						totalCount = res.totalCount || 0;
-					} else if (res.tbBillList) {
-						// 澶囩敤缁撴瀯锛堝吋瀹瑰叾浠栨帴鍙o級
-						dataList = res.tbBillList;
-						totalCount = res.totalCount || 0;
-					} else {
-						console.error("鏃犳硶瑙f瀽鐨勬暟鎹粨鏋�:", res);
-						console.error("鏈熸湜鐨勫瓧娈� data (鏁扮粍) 涓嶅瓨鍦�");
-						this.$showMessage("鏁版嵁鏍煎紡閿欒锛岃鑱旂郴鎶�鏈敮鎸�");
-						this.isLoading = false;
-						return;
-					}
-					
-					console.log("瑙f瀽鍚庣殑dataList:", dataList);
-					console.log("dataList闀垮害:", dataList ? dataList.length : 0);
-					
-					if (this.pageIndex === 1) {
-						this.data = dataList || [];
-					} else {
-						if (dataList && dataList.length > 0) {
-							this.data = [...this.data, ...dataList];
-						}
-					}
-					
-					console.log("澶勭悊鍚庣殑data:", this.data);
-					console.log("data闀垮害:", this.data.length);
-					
-					this.totalCount = totalCount;
-					this.totalPage = Math.ceil(this.totalCount / this.limit);
+      this.$post({
+        url: url,
+        data: requestData
+      }).then(res => {
+        console.log("API杩斿洖瀹屾暣鏁版嵁:", JSON.stringify(res, null, 2));
+        console.log("res缁撴瀯:", res);
+        console.log("res.data:", res.data);
+        console.log("res.totalCount:", res.totalCount);
 
-					this.noData = this.pageIndex >= this.totalPage;
-					this.isLoading = false;
-				}).catch((error) => {
-					console.error("API璇锋眰澶辫触:", error);
-					this.isLoading = false;
-					this.searchValue = '';
-					this.$showMessage("璇锋眰澶辫触锛岃閲嶈瘯");
-				});
-			},
-			init() {
-				this.loadData(); // 缁熶竴璋冪敤loadData鏂规硶
-			},
-			handleFabClick() {
-				uni.navigateTo({
-					url: 'ScanCode'
-				});
-			},
-			onClickItem(index) {
-				if (this.current !== index.currentIndex) {
-					this.current = index.currentIndex;
-					this.data = [];
-					this.pageIndex = 1;
-					this.loadData(); // 閫夐」鍗″垏鎹㈡椂璋冪敤loadData
-				}
-			},
-			copyText(text) {
-				uni.setClipboardData({
-					data: text,
-					success: () => {
-						this.copiedText = text;
-						this.tipShow = true;
-						setTimeout(() => {
-							this.tipShow = false;
-						}, 1000);
-					}
-				});
-			},
-			// 鏂板鏂规硶
-			navigateToDetail(item) {
-				uni.navigateTo({
-					url: 'Add?id=' + item.id
-				});
-			},
-			toggleFilter() {
-				this.showFilter = !this.showFilter;
-			},
-			clearSearch() {
-				this.searchValue = '';
-				this.pageIndex = 1;
-				this.loadData();
-			}
-		},
-		onPullDownRefresh() {
-			this.pageIndex = 1;
-			this.loadData();
-			this.tipShow = true;
-			uni.stopPullDownRefresh();
+        // 鏍规嵁鍝嶅簲鏍煎紡.json锛屾纭殑鏁版嵁缁撴瀯鏄細
+        // res.data 鏄暟缁勶紝res.totalCount 鏄�绘暟
+        let dataList = null;
+        let totalCount = 0;
 
-			setTimeout(() => {
-				this.tipShow = false;
-			}, 1000);
-		},
-		onReachBottom() {
-			if (this.noData || this.isLoading) return;
-			this.pageIndex++;
-			this.loadData(); // 涓婃媺鍔犺浇鏃惰皟鐢╨oadData
-		}
-	};
+        if (res.data && Array.isArray(res.data)) {
+          // 姝g‘鐨勬暟鎹粨鏋勶細data鏄暟缁�
+          dataList = res.data;
+          totalCount = res.totalCount || 0;
+        } else if (res.tbBillList) {
+          // 澶囩敤缁撴瀯锛堝吋瀹瑰叾浠栨帴鍙o級
+          dataList = res.tbBillList;
+          totalCount = res.totalCount || 0;
+        } else {
+          console.error("鏃犳硶瑙f瀽鐨勬暟鎹粨鏋�:", res);
+          console.error("鏈熸湜鐨勫瓧娈� data (鏁扮粍) 涓嶅瓨鍦�");
+          this.$showMessage("鏁版嵁鏍煎紡閿欒锛岃鑱旂郴鎶�鏈敮鎸�");
+          this.isLoading = false;
+          return;
+        }
+
+        console.log("瑙f瀽鍚庣殑dataList:", dataList);
+        console.log("dataList闀垮害:", dataList ? dataList.length : 0);
+
+        if (this.pageIndex === 1) {
+          this.data = dataList || [];
+        } else {
+          if (dataList && dataList.length > 0) {
+            this.data = [...this.data, ...dataList];
+          }
+        }
+
+        console.log("澶勭悊鍚庣殑data:", this.data);
+        console.log("data闀垮害:", this.data.length);
+
+        this.totalCount = totalCount;
+        this.totalPage = Math.ceil(this.totalCount / this.limit);
+
+        this.noData = this.pageIndex >= this.totalPage;
+        this.isLoading = false;
+      }).catch((error) => {
+        console.error("API璇锋眰澶辫触:", error);
+        this.isLoading = false;
+        this.searchValue = '';
+        this.$showMessage("璇锋眰澶辫触锛岃閲嶈瘯");
+      });
+    },
+    init() {
+      this.loadData(); // 缁熶竴璋冪敤loadData鏂规硶
+    },
+    handleFabClick() {
+      uni.navigateTo({
+        url: 'ScanCode'
+      });
+    },
+    onClickItem(index) {
+      if (this.current !== index.currentIndex) {
+        this.current = index.currentIndex;
+        this.data = [];
+        this.pageIndex = 1;
+        this.loadData(); // 閫夐」鍗″垏鎹㈡椂璋冪敤loadData
+      }
+    },
+    copyText(text) {
+      uni.setClipboardData({
+        data: text,
+        success: () => {
+          this.copiedText = text;
+          this.tipShow = true;
+          setTimeout(() => {
+            this.tipShow = false;
+          }, 1000);
+        }
+      });
+    },
+    // 鏂板鏂规硶
+    navigateToDetail(item) {
+      uni.navigateTo({
+        url: 'Add?id=' + item.id
+      });
+    },
+  },
+  onPullDownRefresh() {
+    this.pageIndex = 1;
+    this.loadData();
+    this.tipShow = true;
+    uni.stopPullDownRefresh();
+
+    setTimeout(() => {
+      this.tipShow = false;
+    }, 1000);
+  },
+  onReachBottom() {
+    if (this.noData || this.isLoading) return;
+    this.pageIndex++;
+    this.loadData(); // 涓婃媺鍔犺浇鏃惰皟鐢╨oadData
+  }
+};
 </script>
 
 <style>
@@ -576,95 +559,71 @@
   margin-top: 2px;
 }
 
-/* 鎼滅储鍖哄煙 */
-.search-section {
+/* 鎼滅储鏍忔牱寮� */
+.search-bar {
   margin-bottom: 16px;
 }
 
-.search-container {
-  display: flex;
-  gap: 8px;
-  align-items: center;
-}
-
-.search-input-wrapper {
-  flex: 1;
-  position: relative;
+.search-card {
   display: flex;
   align-items: center;
-  background: #f8f8f8;
-  border: 1px solid #ddd;
-  border-radius: 8px;
-  padding: 0 12px;
+  background-color: white;
+  border-radius: 12px;
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
+  height: 44px;
 }
 
-.search-input-wrapper:focus-within {
-  border-color: #007AFF;
-  background: white;
+.picker {
+  width: 120px;
+  height: 44px;
+  line-height: 44px;
+  text-align: center;
+  font-size: 14px;
+  color: #666;
+  border-right: 1px solid #e0e0e0;
+  white-space: nowrap;
 }
 
 .search-input {
   flex: 1;
-  height: 40px;
-  border: none;
-  background: transparent;
+  height: 44px;
+  line-height: 44px;
   font-size: 14px;
   color: #333;
-  margin-left: 8px;
+  padding: 0 12px;
+  border: none;
   outline: none;
+  background: transparent;
 }
 
 .search-input::placeholder {
   color: #999;
 }
 
-.clear-btn {
-  padding: 4px;
-  cursor: pointer;
-}
-
-.filter-btn {
-  width: 40px;
-  height: 40px;
-  background: #f0f0f0;
-  border: 1px solid #ddd;
-  border-radius: 8px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  cursor: pointer;
-}
-
-.filter-btn:active {
-  background: #e0e0e0;
-}
-
-/* 绛涢�夐潰鏉� */
-.filter-panel {
-  margin-top: 8px;
-  background: white;
-  border: 1px solid #ddd;
-  border-radius: 8px;
-  padding: 12px;
-}
-
-.filter-option {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 8px 0;
-  cursor: pointer;
-}
-
-.filter-label {
+.search-btn {
+  background: linear-gradient(135deg, #007AFF, #0056D6);
+  color: white;
+  text-align: center;
   font-size: 14px;
-  color: #666;
+  width: 80px;
+  height: 44px;
+  line-height: 44px;
+  border-radius: 0 12px 12px 0;
+  border: none;
+  cursor: pointer;
+  transition: all 0.3s;
+  box-shadow: 0 2px 6px rgba(0, 122, 255, 0.2);
 }
 
-.filter-value {
-  font-size: 14px;
-  color: #333;
-  font-weight: 500;
+.search-btn:hover {
+  background: linear-gradient(135deg, #0056D6, #004BB8);
+  transform: translateY(-1px);
+  box-shadow: 0 3px 8px rgba(0, 122, 255, 0.25);
+}
+
+.search-btn:active {
+  transform: translateY(1px);
+  box-shadow: 0 1px 4px rgba(0, 122, 255, 0.15);
 }
 
 /* 閫夐」鍗� */
@@ -730,8 +689,12 @@
 }
 
 @keyframes spin {
-  0% { transform: rotate(0deg); }
-  100% { transform: rotate(360deg); }
+  0% {
+    transform: rotate(0deg);
+  }
+  100% {
+    transform: rotate(360deg);
+  }
 }
 
 .loading-text {
@@ -1049,30 +1012,30 @@
     align-items: flex-start;
     gap: 12px;
   }
-  
+
   .stats-badge {
     align-self: flex-end;
   }
-  
+
   .search-container {
     flex-direction: column;
     gap: 8px;
   }
-  
+
   .filter-btn {
     align-self: flex-end;
   }
-  
+
   .detail-grid {
     grid-template-columns: 1fr;
   }
-  
+
   .inspection-result {
     flex-direction: column;
     align-items: flex-start;
     gap: 12px;
   }
-  
+
   .inspector-info {
     text-align: left;
     width: 100%;

--
Gitblit v1.9.3