From 46fecd0d5b011f508d4ec70456f95dba193aa782 Mon Sep 17 00:00:00 2001
From: 如洲 陈 <1278080563@qq.com>
Date: 星期五, 19 九月 2025 10:28:32 +0800
Subject: [PATCH] 巡检已提交显示修改

---
 pages/QC/XJ/List.vue | 1052 +++++++++++++++++++++++++++++-----------------------------
 store/index.js       |    2 
 2 files changed, 527 insertions(+), 527 deletions(-)

diff --git a/pages/QC/XJ/List.vue b/pages/QC/XJ/List.vue
index 8e19351..94ab1ca 100644
--- a/pages/QC/XJ/List.vue
+++ b/pages/QC/XJ/List.vue
@@ -1,553 +1,553 @@
 <template>
-  <view class="inspection-app">
-    <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� -->
-    <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view>
-    
-    <!-- 椤堕儴绛涢�夊尯 -->
-    <view class="filter-section">
-      <view class="filter-controls" style="margin-bottom: 5px;">
-        <view class="status-tabs">
-          <button :class="['tab-button', current === 0 ? 'active' : '']"
-            @click="onClickItem({currentIndex: 0})">鏈彁浜�({{uncheckedCount}})</button>
-          <button :class="['tab-button', current === 1 ? 'active' : '']"
-            @click="onClickItem({currentIndex: 1})">宸叉彁浜�({{checkedCount}})</button>
-        </view>
-      </view>
+    <view class="inspection-app">
+      <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� -->
+      <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view>
       
-      <view class="filter-controls" style="margin-bottom: 5px;">
-        <view class="dropdown-filter">
-          <picker @change="onLineChange" :value="lineIndex" :range="lineOptions">
-            <view class="picker">{{lineOptions[lineIndex]}}</view>
-          </picker>
+      <!-- 椤堕儴绛涢�夊尯 -->
+      <view class="filter-section">
+        <view class="filter-controls" style="margin-bottom: 5px;">
+          <view class="status-tabs">
+            <button :class="['tab-button', current === 0 ? 'active' : '']"
+              @click="onClickItem({currentIndex: 0})">鏈彁浜�({{uncheckedCount}})</button>
+            <button :class="['tab-button', current === 1 ? 'active' : '']"
+              @click="onClickItem({currentIndex: 1})">宸叉彁浜{checkedCount > 0 ? '(' + checkedCount + ')' : ''}}</button>
+          </view>
         </view>
-        <view class="dropdown-filter">
-          <picker @change="onOptionsChange" :value="optionsIndex" :range="options">
-            <view class="picker">{{options[optionsIndex]}}</view>
-          </picker>
-        </view>
-        <view class="search-container">
-          <input class="search-input" v-model="searchValue" :placeholder="'璇疯緭鍏�'+options[optionsIndex]"
-            @confirm="handleSearch" />
-          <button class="search-button" @click="handleSearch">鎼滅储</button>
+        
+        <view class="filter-controls" style="margin-bottom: 5px;">
+          <view class="dropdown-filter">
+            <picker @change="onLineChange" :value="lineIndex" :range="lineOptions">
+              <view class="picker">{{lineOptions[lineIndex]}}</view>
+            </picker>
+          </view>
+          <view class="dropdown-filter">
+            <picker @change="onOptionsChange" :value="optionsIndex" :range="options">
+              <view class="picker">{{options[optionsIndex]}}</view>
+            </picker>
+          </view>
+          <view class="search-container">
+            <input class="search-input" v-model="searchValue" :placeholder="'璇疯緭鍏�'+options[optionsIndex]"
+              @confirm="handleSearch" />
+            <button class="search-button" @click="handleSearch">鎼滅储</button>
+          </view>
         </view>
       </view>
-    </view>
-
-    <!-- 妫�楠屽崟鍒楄〃 -->
-    <view class="inspection-list">
-      <!-- 妫�楠屽崟鍗$墖 -->
-      <view class="inspection-card" v-for="item in data" :key="item.id" 
-            @click="navigateToDetail(item)">
-        <view class="card-header">
-          <view class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</view>
-          <view class="status" :class="{'status-pending': item.fsubmit === 0 || item.fsubmit == null, 'status-pass': item.fsubmit === 1 && item.fcheckResu === '鍚堟牸', 'status-fail': item.fsubmit === 1 && item.fcheckResu === '涓嶅悎鏍�'}">
-            {{(item.fsubmit === 0 || item.fsubmit == null) ? '鏈彁浜�' : (item.fcheckResu ? item.fcheckResu : '宸叉彁浜�')}}
-          </view>
-        </view>
-
-        <view class="card-body">
-          <view class="info-row">
-            <view class="info-item">
-              <view class="info-label">鐗╂枡淇℃伅</view>
-              <view class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</view>
+  
+      <!-- 妫�楠屽崟鍒楄〃 -->
+      <view class="inspection-list">
+        <!-- 妫�楠屽崟鍗$墖 -->
+        <view class="inspection-card" v-for="item in data" :key="item.id" 
+              @click="navigateToDetail(item)">
+          <view class="card-header">
+            <view class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</view>
+            <view class="status" :class="{'status-pending': item.fsubmit === 0 || item.fsubmit == null, 'status-pass': item.fsubmit === 1 && item.fcheckResu === '鍚堟牸', 'status-fail': item.fsubmit === 1 && item.fcheckResu === '涓嶅悎鏍�'}">
+              {{(item.fsubmit === 0 || item.fsubmit == null) ? '鏈彁浜�' : (item.fcheckResu ? item.fcheckResu : '宸叉彁浜�')}}
             </view>
           </view>
-          
-          <view class="info-row">
-            <view class="info-item">
-              <view class="info-label">浜х嚎</view>
-              <view class="info-content">{{item.daa020}}</view>
+  
+          <view class="card-body">
+            <view class="info-row">
+              <view class="info-item">
+                <view class="info-label">鐗╂枡淇℃伅</view>
+                <view class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</view>
+              </view>
             </view>
-            <view class="info-item">
-              <view class="info-label">宸ュ崟鏁伴噺</view>
-              <view class="info-content highlight">{{item.planQty}}</view>
+            
+            <view class="info-row">
+              <view class="info-item">
+                <view class="info-label">浜х嚎</view>
+                <view class="info-content">{{item.daa020}}</view>
+              </view>
+              <view class="info-item">
+                <view class="info-label">宸ュ崟鏁伴噺</view>
+                <view class="info-content highlight">{{item.planQty}}</view>
+              </view>
+            </view>
+  
+            <view class="info-row">
+              <view class="info-item">
+                <view class="info-label">鍒涘缓浜�</view>
+                <view class="info-content">{{item.createBy}}</view>
+              </view>
+              <view class="info-item" v-if="item.fcheckBy">
+                <view class="info-label">妫�楠屼汉</view>
+                <view class="info-content">{{item.fcheckBy}}</view>
+              </view>
+            </view>
+            
+            <view class="meta-info">
+              <view class="meta-item">{{item.createDate}}</view>
+              <view class="meta-item">鍒涘缓浜�: {{item.createBy}}</view>
+              <view class="meta-item" v-if="item.fcheckResu">妫�楠岀粨鏋�: {{item.fcheckResu}}</view>
             </view>
           </view>
-
-          <view class="info-row">
-            <view class="info-item">
-              <view class="info-label">鍒涘缓浜�</view>
-              <view class="info-content">{{item.createBy}}</view>
-            </view>
-            <view class="info-item" v-if="item.fcheckBy">
-              <view class="info-label">妫�楠屼汉</view>
-              <view class="info-content">{{item.fcheckBy}}</view>
-            </view>
+  
+          <view class="card-actions">
+            <button class="primary">{{(item.fsubmit === 0 || item.fsubmit == null) ? '缁х画妫�楠�' : '鏌ョ湅璇︽儏'}}</button>
           </view>
-          
-          <view class="meta-info">
-            <view class="meta-item">{{item.createDate}}</view>
-            <view class="meta-item">鍒涘缓浜�: {{item.createBy}}</view>
-            <view class="meta-item" v-if="item.fcheckResu">妫�楠岀粨鏋�: {{item.fcheckResu}}</view>
-          </view>
-        </view>
-
-        <view class="card-actions">
-          <button class="primary">{{(item.fsubmit === 0 || item.fsubmit == null) ? '缁х画妫�楠�' : '鏌ョ湅璇︽儏'}}</button>
         </view>
       </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, // 鏄惁姝e湪鍔犺浇
-      tipShow: false, // 鏄惁鏄剧ず椤堕儴鎻愮ず妗�
-      searchValue: '',
-      uncheckedCount: 0,
-      checkedCount: '宸插畬鎴�',
-      optionsIndex: 0,
-      options: ['鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '妫�楠屽崟鍙�'],
-      lineIndex: 0,
-      lineOptions: ['鍏ㄩ儴浜х嚎'],
-      lineData: []
-    };
-  },
-  onLoad() {
-    //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
-    this.loadLineData();
-    this.init();
-  },
-  methods: {
-    //鍔犺浇浜х嚎鏁版嵁
-    loadLineData() {
-      this.$post({
-        url: "/XJ/getLineAll",
-        data: {}
-      }).then(res => {
-        if (res.data && res.data.tbBillList) {
-          this.lineData = res.data.tbBillList;
-          this.lineOptions = ['鍏ㄩ儴浜х嚎', ...res.data.tbBillList.map(item => item.lineName)];
-        }
-      }).catch(error => {
-        console.error('鍔犺浇浜х嚎鏁版嵁澶辫触:', error);
-      });
-    },
-    //浜х嚎閫夋嫨鍙樺寲
-    onLineChange(e) {
-      this.lineIndex = e.detail.value;
-      this.pageIndex = 1;
-      this.data = [];
-      this.init();
-    },
-    //鎼滅储閫夐」鍙樺寲
-    onOptionsChange(e) {
-      this.optionsIndex = e.detail.value;
-      // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
-      const fieldMap = {
-        0: 'itemNo', // 鐗╂枡缂栧彿
-        1: 'itemName', // 鐗╂枡鍚嶇О
-        2: 'releaseNo' // 妫�楠屽崟鍙�
+  </template>
+  
+  <script>
+  export default {
+    components: {},
+    data() {
+      return {
+        items: ['鏈彁浜�', '宸叉彁浜�'],
+        current: 0,
+        data: [],
+        pageIndex: 1,
+        limit: 20,
+        totalPage: 0,
+        totalCount: 0,
+        noData: false, // 娌℃湁鏇村鏁版嵁浜�
+        isLoading: false, // 鏄惁姝e湪鍔犺浇
+        tipShow: false, // 鏄惁鏄剧ず椤堕儴鎻愮ず妗�
+        searchValue: '',
+        uncheckedCount: 0,
+        checkedCount: 0,
+        optionsIndex: 0,
+        options: ['鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '妫�楠屽崟鍙�'],
+        lineIndex: 0,
+        lineOptions: ['鍏ㄩ儴浜х嚎'],
+        lineData: []
       };
-      this.selectedField = fieldMap[this.optionsIndex];
     },
-    handleSearch() {
+    onLoad() {
+      //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+      this.loadLineData();
+      this.init();
+    },
+    methods: {
+      //鍔犺浇浜х嚎鏁版嵁
+      loadLineData() {
+        this.$post({
+          url: "/XJ/getLineAll",
+          data: {}
+        }).then(res => {
+          if (res.data && res.data.tbBillList) {
+            this.lineData = res.data.tbBillList;
+            this.lineOptions = ['鍏ㄩ儴浜х嚎', ...res.data.tbBillList.map(item => item.lineName)];
+          }
+        }).catch(error => {
+          console.error('鍔犺浇浜х嚎鏁版嵁澶辫触:', error);
+        });
+      },
+      //浜х嚎閫夋嫨鍙樺寲
+      onLineChange(e) {
+        this.lineIndex = e.detail.value;
+        this.pageIndex = 1;
+        this.data = [];
+        this.init();
+      },
+      //鎼滅储閫夐」鍙樺寲
+      onOptionsChange(e) {
+        this.optionsIndex = e.detail.value;
+        // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
+        const fieldMap = {
+          0: 'itemNo', // 鐗╂枡缂栧彿
+          1: 'itemName', // 鐗╂枡鍚嶇О
+          2: 'releaseNo' // 妫�楠屽崟鍙�
+        };
+        this.selectedField = fieldMap[this.optionsIndex];
+      },
+      handleSearch() {
+        this.pageIndex = 1;
+        this.data = [];
+        this.init();
+      },
+      init() {
+        let fsubmit = null;
+        if (this.current === 0) {
+          fsubmit = 0; // 鏈彁浜�
+        } else if (this.current === 1) {
+          fsubmit = 1; // 宸叉彁浜�
+        }
+        
+        if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
+        
+        this.isLoading = true;
+        
+        //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - 鍙栨秷鐢ㄦ埛鏉冮檺鎺у埗鍜屼骇绾胯繃婊わ紝鎵�鏈変汉閮藉彲浠ョ湅鍒版墍鏈夎〃鍗�
+        this.$post({
+          url: "/XJ/GetPage",
+          data: {
+            pageIndex: this.pageIndex,
+            limit: this.limit,
+            fsubmit: fsubmit,
+            searchValue: this.searchValue,
+            SelectedIndex: this.optionsIndex
+          }
+        }).then(res => {
+          console.log('API鍝嶅簲鏁版嵁:', res);
+          console.log('褰撳墠鏍囩椤�:', this.current, 'FSUBMIT鍙傛暟:', fsubmit);
+          
+          if (this.pageIndex === 1) {
+            // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
+            this.data = res.data.tbBillList;
+            console.log('鍔犺浇鐨勬暟鎹�:', this.data);
+            // 鎵撳嵃姣忔潯鏁版嵁鐨凢SUBMIT鐘舵��
+            this.data.forEach((item, index) => {
+              console.log(`鏁版嵁${index}: ID=${item.id}, FSUBMIT=${item.fsubmit}, FcheckResu=${item.fcheckResu}`);
+            });
+          } else {
+            if (res.data.tbBillList.length > 0) {
+              // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹�
+              this.data = [...this.data, ...res.data.tbBillList];
+            }
+          }
+          this.totalCount = res.data.totalCount;
+          this.totalPage = Math.ceil(this.totalCount / this.limit);
+          
+          this.noData = this.pageIndex >= this.totalPage;
+          this.isLoading = false; // 缁撴潫鍔犺浇
+          
+          // 鏇存柊璁℃暟 - 鍙傝�僑J鐨勫疄鐜版柟寮�
+          if (this.current === 1) {
+            this.checkedCount = this.totalCount;
+          } else {
+            this.uncheckedCount = this.totalCount;
+          }
+        }).catch(() => {
+          this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+        });
+      },
+      handleFabClick() {
+        uni.navigateTo({
+          url: 'Add?id'
+        });
+      },
+      onClickItem(index) {
+        if (this.current !== index.currentIndex) {
+          this.current = index.currentIndex;
+          this.data = [];
+          this.pageIndex = 1;
+          this.init();
+        }
+      },
+      navigateToDetail(item) {
+        uni.navigateTo({
+          url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo
+        });
+      }
+    },
+    /**
+     * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
+     */
+    onPullDownRefresh() {
+      this.pageIndex = 1;
+      //閲嶆柊鎵ц涓�閬嶆煡璇�
+      this.init();
+      this.tipShow = true;
+      //鍏抽棴鍔ㄧ敾
+      uni.stopPullDownRefresh();
+  
+      setTimeout(() => {
+        this.tipShow = false;
+      }, 3000);
+    },
+    /**
+     * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
+     */
+    onReachBottom() {
+      if (this.noData || this.isLoading) return;
+      this.pageIndex++;
+      this.init(); // 鍔犺浇鏇村鏁版嵁
+    },
+    onShow() {
+      //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
       this.pageIndex = 1;
       this.data = [];
       this.init();
-    },
-    init() {
-      let fsubmit = null;
-      if (this.current === 0) {
-        fsubmit = 0; // 鏈彁浜�
-      } else if (this.current === 1) {
-        fsubmit = 1; // 宸叉彁浜�
-      }
-      
-      if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
-      
-      this.isLoading = true;
-      
-      //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - 鍙栨秷鐢ㄦ埛鏉冮檺鎺у埗鍜屼骇绾胯繃婊わ紝鎵�鏈変汉閮藉彲浠ョ湅鍒版墍鏈夎〃鍗�
-      this.$post({
-        url: "/XJ/GetPage",
-        data: {
-          pageIndex: this.pageIndex,
-          limit: this.limit,
-          fsubmit: fsubmit,
-          searchValue: this.searchValue,
-          SelectedIndex: this.optionsIndex
-        }
-      }).then(res => {
-        console.log('API鍝嶅簲鏁版嵁:', res);
-        console.log('褰撳墠鏍囩椤�:', this.current, 'FSUBMIT鍙傛暟:', fsubmit);
-        
-        if (this.pageIndex === 1) {
-          // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
-          this.data = res.data.tbBillList;
-          console.log('鍔犺浇鐨勬暟鎹�:', this.data);
-          // 鎵撳嵃姣忔潯鏁版嵁鐨凢SUBMIT鐘舵��
-          this.data.forEach((item, index) => {
-            console.log(`鏁版嵁${index}: ID=${item.id}, FSUBMIT=${item.fsubmit}, FcheckResu=${item.fcheckResu}`);
-          });
-        } else {
-          if (res.data.tbBillList.length > 0) {
-            // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹�
-            this.data = [...this.data, ...res.data.tbBillList];
-          }
-        }
-        this.totalCount = res.totalCount;
-        this.totalPage = Math.ceil(this.totalCount / this.limit);
-        
-        this.noData = this.pageIndex >= this.totalPage;
-        this.isLoading = false; // 缁撴潫鍔犺浇
-        
-        // 鏇存柊璁℃暟 - 鍙傝�僑J鐨勫疄鐜版柟寮�
-        if (this.current === 1) {
-          this.checkedCount = '宸插畬鎴愶紙' + this.totalCount + '锛�';
-        } else {
-          this.uncheckedCount = this.totalCount;
-        }
-      }).catch(() => {
-        this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
-      });
-    },
-    handleFabClick() {
-      uni.navigateTo({
-        url: 'Add?id'
-      });
-    },
-    onClickItem(index) {
-      if (this.current !== index.currentIndex) {
-        this.current = index.currentIndex;
-        this.data = [];
-        this.pageIndex = 1;
-        this.init();
-      }
-    },
-    navigateToDetail(item) {
-      uni.navigateTo({
-        url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo
-      });
     }
-  },
-  /**
-   * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
-   */
-  onPullDownRefresh() {
-    this.pageIndex = 1;
-    //閲嶆柊鎵ц涓�閬嶆煡璇�
-    this.init();
-    this.tipShow = true;
-    //鍏抽棴鍔ㄧ敾
-    uni.stopPullDownRefresh();
-
-    setTimeout(() => {
-      this.tipShow = false;
-    }, 3000);
-  },
-  /**
-   * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
-   */
-  onReachBottom() {
-    if (this.noData || this.isLoading) return;
-    this.pageIndex++;
-    this.init(); // 鍔犺浇鏇村鏁版嵁
-  },
-  onShow() {
-    //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
-    this.pageIndex = 1;
-    this.data = [];
-    this.init();
+  };
+  </script>
+  
+  <style scoped>
+  /* 鍩虹鏍峰紡閲嶇疆 */
+  .inspection-app {
+    padding: 10px;
+    background-color: #f5f7fa;
+    min-height: 100vh;
   }
-};
-</script>
-
-<style scoped>
-/* 鍩虹鏍峰紡閲嶇疆 */
-.inspection-app {
-  padding: 10px;
-  background-color: #f5f7fa;
-  min-height: 100vh;
-}
-
-/* 椤堕儴绛涢�夊尯 */
-.filter-section {
-  margin-bottom: 0;
-}
-
-/* 鎼滅储妗嗘牱寮� */
-.search-container {
-  display: flex;
-  flex: 1;
-  margin: 0 10px;
-  height: 36px;
-}
-
-.search-input {
-  flex: 1;
-  padding: 8px 12px;
-  border: 1px solid #ddd;
-  border-radius: 4px 0 0 4px;
-  font-size: 14px;
-  background-color: white;
-}
-
-.search-button {
-  padding: 0 12px;
-  border: 1px solid #3498db;
-  border-radius: 0 4px 4px 0;
-  background: linear-gradient(135deg, #3498db, #2980b9);
-  color: white;
-  font-size: 14px;
-  margin: 0;
-  cursor: pointer;
-  transition: all 0.3s ease;
-}
-
-.search-button:hover {
-  background: linear-gradient(135deg, #2980b9, #1f618d);
-  transform: translateY(-1px);
-  box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
-}
-
-.search-button:active {
-  transform: translateY(0);
-}
-
-.filter-controls {
-  display: flex;
-  flex-wrap: wrap;
-  gap: 5px;
-}
-
-.dropdown-filter {
-  min-width: 70px;
-}
-
-.picker {
-  padding: 8px 12px;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  background-color: white;
-  font-size: 14px;
-  min-width: 120px;
-}
-
-.status-tabs {
-  display: flex;
-  border-radius: 4px;
-  overflow: hidden;
-  background-color: #ecf0f1;
-  flex: 1;
-  min-width: 200px;
-}
-
-.tab-button {
-  padding: 0px 16px;
-  border: none;
-  background: none;
-  font-size: 14px;
-  transition: all 0.3s;
-  margin: 0;
-  height: 35px;
-}
-
-.tab-button.active {
-  background: linear-gradient(135deg, #3498db, #2980b9);
-  color: white;
-  box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
-}
-
-/* 妫�楠屽崟鍒楄〃 */
-.inspection-list {
-  display: flex;
-  flex-direction: column;
-  gap: 20px;
-}
-
-/* 妫�楠屽崟鍗$墖 */
-.inspection-card {
-  background-color: white;
-  border-radius: 8px;
-  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
-  overflow: hidden;
-  transition: all 0.3s ease;
-  border: 1px solid rgba(52, 152, 219, 0.1);
-}
-
-.inspection-card:hover {
-  transform: translateY(-2px);
-  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
-  border-color: rgba(52, 152, 219, 0.3);
-}
-
-.card-header {
-  padding: 16px;
-  border-bottom: 1px solid #eee;
-  display: flex;
-  align-items: center;
-  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
-}
-
-.card-title {
-  font-size: 16px;
-  font-weight: 600;
-  flex: 1;
-  margin: 0 8px;
-  color: #2c3e50;
-}
-
-.status {
-  font-size: 12px;
-  padding: 4px 8px;
-  border-radius: 6px;
-  font-weight: 500;
-  letter-spacing: 0.3px;
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.status-pending {
-  background: linear-gradient(135deg, #f39c12, #e67e22);
-  color: white;
-}
-
-.status-pass {
-  background: linear-gradient(135deg, #27ae60, #229954);
-  color: white;
-}
-
-.status-fail {
-  background: linear-gradient(135deg, #e74c3c, #c0392b);
-  color: white;
-}
-
-.card-body {
-  padding: 16px;
-}
-
-.info-row {
-  display: flex;
-  margin-bottom: 12px;
-  gap: 16px;
-}
-
-.info-item {
-  flex: 1;
-}
-
-.info-label {
-  display: block;
-  font-size: 12px;
-  color: #7f8c8d;
-  margin-bottom: 4px;
-}
-
-.info-content {
-  font-size: 14px;
-  color: #2c3e50;
-  line-height: 1.5;
-}
-
-.highlight {
-  font-weight: 600;
-  color: #e74c3c;
-  font-size: 16px;
-}
-
-.meta-info {
-  display: flex;
-  gap: 16px;
-  font-size: 12px;
-  color: #95a5a6;
-  margin-top: 12px;
-}
-
-.meta-item {
-  display: flex;
-  align-items: center;
-  gap: 4px;
-}
-
-.card-actions {
-  padding: 12px 16px;
-  border-top: 1px solid #eee;
-  display: flex;
-  gap: 8px;
-}
-
-button {
-  padding: 8px 16px;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  background-color: white;
-  font-size: 14px;
-  transition: all 0.2s;
-  flex: 1;
-}
-
-button.primary {
-  background: linear-gradient(135deg, #3498db, #2980b9);
-  color: white;
-  border-color: #2980b9;
-  box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
-  transition: all 0.3s ease;
-}
-
-button.primary:hover {
-  background: linear-gradient(135deg, #2980b9, #1f618d);
-  transform: translateY(-1px);
-  box-shadow: 0 4px 8px rgba(52, 152, 219, 0.4);
-}
-
-button.primary:active {
-  transform: translateY(0);
-}
-
-
-/* 鍝嶅簲寮忚璁� */
-@media (min-width: 768px) {
+  
+  /* 椤堕儴绛涢�夊尯 */
+  .filter-section {
+    margin-bottom: 0;
+  }
+  
+  /* 鎼滅储妗嗘牱寮� */
+  .search-container {
+    display: flex;
+    flex: 1;
+    margin: 0 10px;
+    height: 36px;
+  }
+  
+  .search-input {
+    flex: 1;
+    padding: 8px 12px;
+    border: 1px solid #ddd;
+    border-radius: 4px 0 0 4px;
+    font-size: 14px;
+    background-color: white;
+  }
+  
+  .search-button {
+    padding: 0 12px;
+    border: 1px solid #3498db;
+    border-radius: 0 4px 4px 0;
+    background: linear-gradient(135deg, #3498db, #2980b9);
+    color: white;
+    font-size: 14px;
+    margin: 0;
+    cursor: pointer;
+    transition: all 0.3s ease;
+  }
+  
+  .search-button:hover {
+    background: linear-gradient(135deg, #2980b9, #1f618d);
+    transform: translateY(-1px);
+    box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+  }
+  
+  .search-button:active {
+    transform: translateY(0);
+  }
+  
+  .filter-controls {
+    display: flex;
+    flex-wrap: wrap;
+    gap: 5px;
+  }
+  
+  .dropdown-filter {
+    min-width: 70px;
+  }
+  
+  .picker {
+    padding: 8px 12px;
+    border: 1px solid #ddd;
+    border-radius: 4px;
+    background-color: white;
+    font-size: 14px;
+    min-width: 120px;
+  }
+  
+  .status-tabs {
+    display: flex;
+    border-radius: 4px;
+    overflow: hidden;
+    background-color: #ecf0f1;
+    flex: 1;
+    min-width: 200px;
+  }
+  
+  .tab-button {
+    padding: 0px 16px;
+    border: none;
+    background: none;
+    font-size: 14px;
+    transition: all 0.3s;
+    margin: 0;
+    height: 35px;
+  }
+  
+  .tab-button.active {
+    background: linear-gradient(135deg, #3498db, #2980b9);
+    color: white;
+    box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+  }
+  
+  /* 妫�楠屽崟鍒楄〃 */
   .inspection-list {
-    display: grid;
-    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
+    display: flex;
+    flex-direction: column;
+    gap: 20px;
   }
-
+  
+  /* 妫�楠屽崟鍗$墖 */
+  .inspection-card {
+    background-color: white;
+    border-radius: 8px;
+    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
+    overflow: hidden;
+    transition: all 0.3s ease;
+    border: 1px solid rgba(52, 152, 219, 0.1);
+  }
+  
+  .inspection-card:hover {
+    transform: translateY(-2px);
+    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+    border-color: rgba(52, 152, 219, 0.3);
+  }
+  
+  .card-header {
+    padding: 16px;
+    border-bottom: 1px solid #eee;
+    display: flex;
+    align-items: center;
+    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
+  }
+  
+  .card-title {
+    font-size: 16px;
+    font-weight: 600;
+    flex: 1;
+    margin: 0 8px;
+    color: #2c3e50;
+  }
+  
+  .status {
+    font-size: 12px;
+    padding: 4px 8px;
+    border-radius: 6px;
+    font-weight: 500;
+    letter-spacing: 0.3px;
+    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+  }
+  
+  .status-pending {
+    background: linear-gradient(135deg, #f39c12, #e67e22);
+    color: white;
+  }
+  
+  .status-pass {
+    background: linear-gradient(135deg, #27ae60, #229954);
+    color: white;
+  }
+  
+  .status-fail {
+    background: linear-gradient(135deg, #e74c3c, #c0392b);
+    color: white;
+  }
+  
+  .card-body {
+    padding: 16px;
+  }
+  
   .info-row {
-    flex-direction: row;
+    display: flex;
+    margin-bottom: 12px;
+    gap: 16px;
   }
-}
-
-@media (min-width: 300px) {
-  .inspection-list {
-    display: grid;
-    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
+  
+  .info-item {
+    flex: 1;
   }
-
-  .info-row {
-    flex-direction: row;
+  
+  .info-label {
+    display: block;
+    font-size: 12px;
+    color: #7f8c8d;
+    margin-bottom: 4px;
   }
-}
-
-/* 鍒锋柊鎻愮ず鏍峰紡 */
-.tips {
-  color: #67c23a;
-  font-size: 14px;
-  line-height: 40px;
-  text-align: center;
-  background-color: #f0f9eb;
-  height: 0;
-  opacity: 0;
-  transform: translateY(-100%);
-  transition: all 0.3s;
-}
-
-.tips-ani {
-  transform: translateY(0);
-  height: 40px;
-  opacity: 1;
-}
-</style>
\ No newline at end of file
+  
+  .info-content {
+    font-size: 14px;
+    color: #2c3e50;
+    line-height: 1.5;
+  }
+  
+  .highlight {
+    font-weight: 600;
+    color: #e74c3c;
+    font-size: 16px;
+  }
+  
+  .meta-info {
+    display: flex;
+    gap: 16px;
+    font-size: 12px;
+    color: #95a5a6;
+    margin-top: 12px;
+  }
+  
+  .meta-item {
+    display: flex;
+    align-items: center;
+    gap: 4px;
+  }
+  
+  .card-actions {
+    padding: 12px 16px;
+    border-top: 1px solid #eee;
+    display: flex;
+    gap: 8px;
+  }
+  
+  button {
+    padding: 8px 16px;
+    border: 1px solid #ddd;
+    border-radius: 4px;
+    background-color: white;
+    font-size: 14px;
+    transition: all 0.2s;
+    flex: 1;
+  }
+  
+  button.primary {
+    background: linear-gradient(135deg, #3498db, #2980b9);
+    color: white;
+    border-color: #2980b9;
+    box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+    transition: all 0.3s ease;
+  }
+  
+  button.primary:hover {
+    background: linear-gradient(135deg, #2980b9, #1f618d);
+    transform: translateY(-1px);
+    box-shadow: 0 4px 8px rgba(52, 152, 219, 0.4);
+  }
+  
+  button.primary:active {
+    transform: translateY(0);
+  }
+  
+  
+  /* 鍝嶅簲寮忚璁� */
+  @media (min-width: 768px) {
+    .inspection-list {
+      display: grid;
+      grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
+    }
+  
+    .info-row {
+      flex-direction: row;
+    }
+  }
+  
+  @media (min-width: 300px) {
+    .inspection-list {
+      display: grid;
+      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
+    }
+  
+    .info-row {
+      flex-direction: row;
+    }
+  }
+  
+  /* 鍒锋柊鎻愮ず鏍峰紡 */
+  .tips {
+    color: #67c23a;
+    font-size: 14px;
+    line-height: 40px;
+    text-align: center;
+    background-color: #f0f9eb;
+    height: 0;
+    opacity: 0;
+    transform: translateY(-100%);
+    transition: all 0.3s;
+  }
+  
+  .tips-ani {
+    transform: translateY(0);
+    height: 40px;
+    opacity: 1;
+  }
+  </style>
\ No newline at end of file
diff --git a/store/index.js b/store/index.js
index f9c07da..49e3c8c 100644
--- a/store/index.js
+++ b/store/index.js
@@ -16,7 +16,7 @@
 	// },
 	{
 		name: '鏈湴璋冭瘯',
-		url: 'http://localhost:5184/api'
+		url: 'http://localhost:10054/api'
 	},
 	{
 		name: '姝e紡鍦板潃',

--
Gitblit v1.9.3