From 4dc0880780b52c0c35456666a4643a7866b454a7 Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期六, 20 十二月 2025 16:00:35 +0800
Subject: [PATCH] 1.产检提交增加日期选择器

---
 pages/QC/SJ/List.vue | 1022 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 724 insertions(+), 298 deletions(-)

diff --git a/pages/QC/SJ/List.vue b/pages/QC/SJ/List.vue
index 2b95d77..c6feaed 100644
--- a/pages/QC/SJ/List.vue
+++ b/pages/QC/SJ/List.vue
@@ -1,310 +1,734 @@
 <template>
-  <view>
+  <view class="inspection-app">
     <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� -->
-    <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view>
+    <view :class="{ 'tips-ani': tipShow }" class="tips">鍒锋柊鎴愬姛</view>
 
-    <view class="newsTab">
-      <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" style-type="button"
-                             active-color="#87cefa"></uni-segmented-control>
-      <view class="content">
-        <view v-show="current===0">
-          <!-- 鍩轰簬 uni-list 鐨勯〉闈㈠竷灞� -->
-          <uni-list>
-            <!-- to 灞炴�ф惡甯﹀弬鏁拌烦杞鎯呴〉闈紝褰撳墠鍙负鍙傝�� -->
-            <uni-list-item style="margin-top: 10px;background-color: #EFEFF4;border-radius: 5px;"
-                           class="list-item" direction="column" v-for="item in data" :key="item.id"
-                           :to="'Add?id='+item.id+'&billNo='+item.billNo">
-              <!-- 閫氳繃header鎻掓Ы瀹氫箟鍒楄〃鐨勬爣棰� -->
-              <template v-slot:header>
-                <view class="form-group uni-title" style="margin-bottom: 0;">
-                  <label class="form-label">妫�楠屽崟鍙�:</label>
-                  <input class="form-input" disabled="true" type="text" v-model="item.billNo"/>
-                </view>
-              </template>
-              <!-- 閫氳繃body鎻掓Ы瀹氫箟鍒楄〃鍐呭鏄剧ず -->
-              <template v-slot:body>
-                <view style="margin-top: 0;">
-                  <view class="uni-content">
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">鍒涘缓鏃堕棿:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.statusDate"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">浜х嚎:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.line"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">鐗╂枡缂栫爜:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.itemNo"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">浜у搧鍚嶇О:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa003"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">瑙勬牸鍨嬪彿:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa004"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">宸ュ崟鏁伴噺:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa008"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">鍒涘缓浜�:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.fName"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">妫�楠屼汉:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.statusUser"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">妫�娴嬬粨鏋�:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.result"/>
-                      </view>
-                    </view>
-
-                  </view>
-                </view>
-              </template>
-            </uni-list-item>
-          </uni-list>
-          <!-- 閫氳繃 loadMore 缁勪欢瀹炵幇涓婃媺鍔犺浇鏁堟灉锛屽闇�鑷畾涔夋樉绀哄唴瀹癸紝鍙弬鑰冿細https://ext.dcloud.net.cn/plugin?id=29 -->
-          <!-- <uni-load-more v-if="loading || options.status === 'noMore' " :status="options.status" /> -->
-
-          <!-- <view class="fab" @click="handleFabClick">
-            <text class="fab-icon">+</text>
-          </view> -->
-          <view class="plus-button" @click="handleFabClick">
-            +
-          </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 v-show="current===1">
-          <uni-list>
-            <!-- to 灞炴�ф惡甯﹀弬鏁拌烦杞鎯呴〉闈紝褰撳墠鍙负鍙傝�� -->
-            <uni-list-item style="margin-top: 10px;background-color: #EFEFF4;border-radius: 5px;"
-                           class="list-item" direction="column" v-for="item in data" :key="item.id"
-                           :to="'Add?id='+item.id+'&billNo='+item.billNo">
-              <!-- 閫氳繃header鎻掓Ы瀹氫箟鍒楄〃鐨勬爣棰� -->
-              <template v-slot:header>
-                <view class="form-group uni-title" style="margin-bottom: 0;">
-                  <label class="form-label">妫�楠屽崟鍙�:</label>
-                  <input class="form-input" disabled="true" type="text" v-model="item.billNo"/>
-                </view>
-              </template>
-              <!-- 閫氳繃body鎻掓Ы瀹氫箟鍒楄〃鍐呭鏄剧ず -->
-              <template v-slot:body>
-                <view style="margin-top: 0;">
-                  <view class="uni-content">
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">鍒涘缓鏃堕棿:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.statusDate"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">浜х嚎:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.line"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label lab">鐗╂枡缂栫爜:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.itemNo"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">浜у搧鍚嶇О:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa003"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">瑙勬牸鍨嬪彿:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa004"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-title-sub uni-ellipsis-2">
-                      <view class="form-group">
-                        <label class="form-label">宸ュ崟鏁伴噺:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.daa008"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">鍒涘缓浜�:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.fName"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">妫�楠屼汉:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.statusUser"/>
-                      </view>
-                    </view>
-
-                    <view class="uni-note" style="color: red">
-                      <view class="form-group">
-                        <label class="form-label lab">妫�娴嬬粨鏋�:</label>
-                        <input class="form-input" disabled="true" type="text" v-model="item.result"/>
-                      </view>
-                    </view>
-                  </view>
-                </view>
-              </template>
-            </uni-list-item>
-          </uni-list>
+      </view>
+      
+      <!-- 娣诲姞鎼滅储绛涢�夊尯鍩� -->
+      <view class="filter-controls" style="margin-bottom: 5px;">
+        <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 class="filter-controls" style="margin-bottom: 5px;">
+        <!-- 鏈彁浜ら〉闈細鏄剧ず鏃堕棿鏃ユ湡鏂囨湰 -->
+        <view v-if="current === 0" class="dropdown-filter">
+          <view class="picker">鏃堕棿鏃ユ湡</view>
+        </view>
+        <!-- 宸叉彁浜ら〉闈細鏄剧ず鐘舵�佷笅鎷夋 -->
+        <view v-if="current === 1" class="dropdown-filter">
+          <picker @change="onStateChange" :value="stateIndex" :range="state">
+            <view class="picker">{{state[stateIndex]}}</view>
+          </picker>
+        </view>
+        <view class="dropdown-filter">
+          <picker mode="date" :value="startDate" :end="endDate" @change="bindStartDate">
+            <view class="picker">{{startDate}}</view>
+          </picker>
+        </view>
+        <view class="dropdown-filter">
+          <picker mode="date" :value="endDate" :start="startDate" @change="bindEndDate">
+            <view class="picker">{{endDate}}</view>
+          </picker>
         </view>
       </view>
     </view>
 
+    <!-- 妫�楠屽崟鍒楄〃 -->
+    <view class="inspection-list">
+      <!-- 妫�楠屽崟鍗$墖 -->
+      <view v-for="(item, index) in data" :key="item.id" class="inspection-card"
+            @click="navigateToDetail(item)">
+        <view class="card-header">
+          <!-- 娣诲姞鏍囪瘑badge -->
+          <view v-if="item.urgent == 1" class="badge urgent">鎬ユ枡</view>
+          <view v-if="item.isFirst == 1" class="badge normal">棣栨</view>
+          <view class="card-title">妫�楠屽崟鍙�: {{ item.billNo }}</view>
+          <view :class="{
+                  'status-pending': !item.result && current === 0,
+                  'status-assigned': current === 0 && item.statusUser && !item.result,
+                  'status-pass': item.result === '鍚堟牸'&& current === 1,
+                  'status-fail': item.result === '涓嶅悎鏍�'&& current === 1,
+                  'status-submitted': !item.result && current === 1
+                }"
+                class="status">
+            {{ current === 0 ? ('' ? item.result : '鏈彁浜�') : (item.result ? item.result : '宸叉彁浜�') }}
+          </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.daa003 }}<br>{{ item.daa004 }}</view>
+            </view>
+          </view>
+
+          <view class="info-row">
+            <view class="info-item">
+              <view class="info-label">椤圭洰</view>
+              <view class="info-content">{{ item.projecT_CODE }}</view>
+            </view>
+            <view class="info-item">
+              <view class="info-label">寮�宸ョ姸鎬�</view>
+              <view class="info-content">{{ item.daa018 }}</view>
+            </view>
+			<view class="info-item">
+			  <view class="info-label">榻愬鐘舵��</view>
+			  <view class="info-content">{{ item.daA019 }}</view>
+			</view>
+          </view>
+		<view class="info-row">
+            <view class="info-item">
+              <view class="info-label">浜х嚎</view>
+              <view class="info-content">{{ item.line }}</view>
+            </view>
+            <view class="info-item">
+              <view class="info-label">宸ュ崟鍙�</view>
+              <view class="info-content">{{ item.daa001 }}</view>
+            </view>
+			<view class="info-item">
+			  <view class="info-label">宸ュ崟鏁�</view>
+			  <view class="info-content highlight">{{ item.daa008 }}</view>
+			</view>
+          </view>
+          <view class="info-row">
+            <!-- <view class="info-item">
+              <view class="info-label">鍒涘缓浜�1</view>
+              <view class="info-content">{{ item.fName }}</view>
+            </view> -->
+           <!-- <view v-if="item.statusUser" class="info-item">
+              <view class="info-label">妫�楠屼汉</view>
+              <view class="info-content">{{ item.statusUser }}</view>
+            </view> -->
+          </view>
+
+          <!-- 鍦ㄦ湭瀹屾垚鐘舵�佷笅鏄剧ず鍒涘缓鏃堕棿锛屽凡瀹屾垚鐘舵�佷笅鏄剧ず妫�娴嬬粨鏋� -->
+          <view v-if="current === 0" class="meta-info">
+            
+            <view class="meta-item">鍒涘缓浜�: {{ item.fName }}</view>
+			<view class="meta-item">妫�楠屼汉: {{ item.statusUser }}</view>
+          </view>
+		  
+		  <view v-if="current === 0" class="meta-info">
+		  	<view class="meta-item">鍒涘缓鏃堕棿: {{ item.createTime }}</view>
+		  </view>
+
+          <view v-if="current === 1" class="meta-info">
+            <view class="meta-item">{{ item.statusDate }}</view>
+            <view v-if="item.result" class="meta-item">妫�楠岀粨鏋�: {{ item.result }}</view>
+          </view>
+        </view>
+
+        <view class="card-actions">
+			<button v-if="current === 0 && IQCJL==1"
+				@click.stop="assignTask(item)">{{item.statusUser == null ? '鍒嗛厤' : '閲嶆柊鍒嗛厤'}}</button>
+          <button class="primary">{{ current === 0 ? '寮�濮嬫楠�' : '鏌ョ湅璇︽儏' }}</button>
+        </view>
+      </view>
+    </view>
+
+    <!-- 娣诲姞鎸夐挳 -->
+    <view v-if="current === 0" class="plus-button" @click="handleFabClick">
+      <view class="plus-icon">+</view>
+    </view>
   </view>
 </template>
 
 <script>
 export default {
-  components: {},
   data() {
     return {
       items: ['鏈畬鎴�', '宸插畬鎴�'],
       current: 0,
       data: [],
-      tipShow: false // 鏄惁鏄剧ず椤堕儴鎻愮ず妗�
+      pageIndex: 1,
+      limit: 20,
+      totalPage: 0,
+      totalCount: 0,
+      noData: false,
+      isLoading: false,
+      tipShow: false,
+      searchValue: '',
+      uncheckedCount: 0,
+      checkedCount: 0,
+      IQCJL: 0, // IQC 妫�楠屽憳鏍囪瘑
+	  userId:"",
+      optionsIndex: 0, // 鏂板锛氫笅鎷夐�夐」绱㈠紩
+      options: ['椤圭洰', '绾夸綋', '宸ュ崟鍙�', '鐗╂枡鍙�', '鐗╂枡鍚�'], // 鏂板锛氭悳绱㈤�夐」
+      // 娣诲姞鐘舵�佺瓫閫夊拰鏃ユ湡閫夋嫨鍣ㄧ浉鍏冲彉閲�
+      stateIndex: 0,
+      state: ['鎵�鏈夌姸鎬�', '鍚堟牸', '涓嶅悎鏍�'],
+      startDate: new Date().toISOString().slice(0, 10),
+      endDate: new Date().toISOString().slice(0, 10)
     };
   },
-  onLoad() {
-    //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
-    this.init();
+
+  // 椤甸潰鍔犺浇鏃跺彧鎵ц涓�娆�
+  async onLoad() {
+    // 鍒ゆ柇褰撳墠鐧诲綍浜烘槸鍚︿负IQC妫�楠屽憳鎴栫壒瀹氳处鍙�
+    const user = this.$loginInfo;
+	this.userId=user.account;
+    if (user.roleid && user.roleid.indexOf("90134") !== -1 || user.account === "PL017") {
+      this.IQCJL = 1;
+    } else {
+      this.IQCJL = 0;
+    }
+
+    console.log("IQC妫�楠屽憳鏍囪瘑 IQCJL =", this.IQCJL);
+
+    // 鍒濆鍖栧姞杞芥暟鎹�
+    await this.init();
   },
+
+  // 姣忔椤甸潰閲嶆柊鏄剧ず鏃惰Е鍙戯紙杩斿洖椤甸潰涔熶細瑙﹀彂锛�
+  onShow() {
+    console.log("onShow 瑙﹀彂锛孖QCJL =", this.IQCJL);
+    // 閬垮厤閲嶅鍔犺浇锛氬彧鍦ㄧ涓�娆℃垨鏁版嵁涓虹┖鏃堕噸鏂板姞杞�
+    if (this.data.length === 0) {
+      this.pageIndex = 1;
+      this.init();
+    }
+  },
+
   methods: {
-    init() {
-      let result = "鏈畬鎴�";
-      if (this.current === 1) {
-        result = "宸插畬鎴�";
-      }
-      //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
-      this.$post({
-        url: "/SJ/GetPage",
-        data: {
-          pageIndex: 1,
-          limit: 20,
-          statusUser: this.$loginInfo.account,
-          result: result
-        }
-      }).then(res => {
-        this.data = res.data.tbBillList;
-      })
+    // 鏂板锛氭悳绱㈤�夐」鏀瑰彉浜嬩欢
+    onOptionsChange(e) {
+      this.optionsIndex = e.detail.value;
     },
+    
+    // 鏂板锛氱姸鎬佺瓫閫夋敼鍙樹簨浠�
+    onStateChange(e) {
+      this.pageIndex = 1;
+      this.stateIndex = e.detail.value;
+      this.data = [];
+      console.log("鐘舵�佺瓫閫夋敼鍙橈紝閫変腑鐘舵��:", this.state[this.stateIndex]);
+      this.init();
+    },
+    
+    // 鏂板锛氬紑濮嬫棩鏈熸敼鍙樹簨浠�
+    bindStartDate(e) {
+      this.startDate = e.detail.value;
+      this.pageIndex = 1;
+      this.data = [];
+      console.log("寮�濮嬫棩鏈熸敼鍙�:", this.startDate);
+      this.init();
+    },
+    
+    // 鏂板锛氱粨鏉熸棩鏈熸敼鍙樹簨浠�
+    bindEndDate(e) {
+      this.endDate = e.detail.value;
+      this.pageIndex = 1;
+      this.data = [];
+      console.log("缁撴潫鏃ユ湡鏀瑰彉:", this.endDate);
+      this.init();
+    },
+    
+    // 鏂板锛氭悳绱㈡寜閽偣鍑讳簨浠�
+    handleSearch() {
+      this.pageIndex = 1;
+      this.data = [];
+      this.init();
+    },
+
+    async init() {
+      let result = this.current === 1 ? "宸插畬鎴�" : "鏈畬鎴�";
+      if (this.isLoading) return;
+
+      this.isLoading = true;
+      const userName = this.$loginInfo.account;
+
+      try {
+        const res = await this.$post({
+          url: "/SJ/GetPage",
+          data: {
+            pageIndex: this.pageIndex,
+            limit: this.limit,
+            statusUser: userName,
+            result: result,
+            searchValue: this.searchValue,
+            selectedIndex: this.optionsIndex // 鏂板锛氫紶閫掓悳绱㈤�夐」绱㈠紩
+          }
+        });
+
+        let list = res.data.tbBillList || [];
+        
+        // 瀵规墍鏈夐〉闈㈣繘琛屽墠绔瓫閫夛紙鏈畬鎴愬拰宸叉彁浜わ級
+        // 鐘舵�佺瓫閫�
+        if (this.stateIndex > 0) {
+          const selectedState = this.state[this.stateIndex];
+          console.log("鍓嶇鐘舵�佺瓫閫�:", selectedState);
+          if (selectedState === '鍚堟牸') {
+            list = list.filter(item => item.result === '鍚堟牸');
+          } else if (selectedState === '涓嶅悎鏍�') {
+            list = list.filter(item => item.result === '涓嶅悎鏍�');
+          }
+        }
+        
+        // 鏃ユ湡鑼冨洿绛涢��
+        if (this.startDate || this.endDate) {
+          console.log("鍓嶇鏃ユ湡绛涢��:", this.startDate, "鍒�", this.endDate);
+          const startDateObj = this.startDate ? new Date(this.startDate) : null;
+          const endDateObj = this.endDate ? new Date(this.endDate) : null;
+          
+          // 璁剧疆寮�濮嬫棩鏈熺殑鏃堕棿涓哄綋澶╃殑寮�濮嬫椂闂� (00:00:00)
+          if (startDateObj) {
+            startDateObj.setHours(0, 0, 0, 0);
+          }
+          
+          // 璁剧疆缁撴潫鏃ユ湡鐨勬椂闂翠负褰撳ぉ鐨勭粨鏉熸椂闂� (23:59:59)
+          if (endDateObj) {
+            endDateObj.setHours(23, 59, 59, 999);
+          }
+          
+          list = list.filter(item => {
+            if (item.createTime) {
+              const itemDate = new Date(item.createTime);
+              let isValid = true;
+              
+              if (startDateObj && itemDate < startDateObj) {
+                isValid = false;
+              }
+              
+              if (endDateObj && itemDate > endDateObj) {
+                isValid = false;
+              }
+              
+              return isValid;
+            }
+            return true;
+          });
+        }
+        
+        if (this.pageIndex === 1) {
+          this.data = list;
+        } else {
+          this.data.push(...list);
+        }
+
+        this.totalCount = res.totalCount;
+        this.totalPage = Math.ceil(this.totalCount / this.limit);
+        this.noData = this.pageIndex >= this.totalPage;
+
+        if (this.current === 1) {
+          this.checkedCount = this.totalCount;
+        } else {
+          this.uncheckedCount = this.totalCount;
+        }
+
+      } catch (e) {
+        console.error("鍔犺浇妫�楠屽崟鏁版嵁澶辫触:", e);
+      } finally {
+        this.isLoading = false;
+      }
+    },
+
+    // Tab 鍒囨崲
+    onClickItem(index) {
+      if (this.current !== index.currentIndex) {
+        this.current = index.currentIndex;
+        this.data = [];
+        this.pageIndex = 1;
+        // 閲嶇疆绛涢�夋潯浠�
+        this.optionsIndex = 0;
+        this.searchValue = '';
+        this.stateIndex = 0;
+        this.startDate = new Date().toISOString().slice(0, 10);
+        this.endDate = new Date().toISOString().slice(0, 10);
+        this.init();
+      }
+    },
+
+    // 璺宠浆璇︽儏
+    navigateToDetail(item) {
+      const type = this.current === 1 ? "B" : "A";
+      uni.navigateTo({
+        url: `Add?id=${item.id}&billNo=${item.billNo}&current=${type}`
+      });
+    },
+	assignTask(item) {
+			console.log(item);
+				// 杩欓噷鍙互娣诲姞鍒嗛厤浠诲姟鐨勯�昏緫
+				uni.navigateTo({
+					url: 'UpdateCheckBy?releaseNo=' + item.billNo + '&userID=' + this.userId +
+						'&staffName=' + item.statusUser
+				});
+			},
+    // 娣诲姞鎸夐挳
     handleFabClick() {
       uni.navigateTo({
         url: 'Add?id'
       });
-    },
-    onClickItem(index) {
-      if (this.current !== index.currentIndex) {
-        this.current = index.currentIndex;
-        this.init();
-      }
-    },
+    }
   },
-  /**
-   * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
-   */
-  onPullDownRefresh() {
-    //閲嶆柊鎵ц涓�閬嶆煡璇�
-    this.init();
-    this.tipShow = true;
-    //鍏抽棴鍔ㄧ敾
-    uni.stopPullDownRefresh();
 
-    setTimeout(function () {
-      this.tipShow = false;
-    }, 3000);
+  // 涓嬫媺鍒锋柊
+  onPullDownRefresh() {
+    this.pageIndex = 1;
+    this.init().then(() => {
+      this.tipShow = true;
+      uni.stopPullDownRefresh();
+      setTimeout(() => (this.tipShow = false), 3000);
+    });
   },
-  /**
-   * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
-   */
+
+  // 涓婃媺鍔犺浇鏇村
   onReachBottom() {
-    this.init();
-  },
-  onShow() {
-    //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
+    if (this.noData || this.isLoading) return;
+    this.pageIndex++;
     this.init();
   }
 };
 </script>
 
-<style lang="scss">
-@import '@/common/uni-ui.scss';
 
-.uni-note {
-  margin-top: 0;
+<style scoped>
+/* 鍩虹鏍峰紡閲嶇疆 */
+.inspection-app {
+  padding: 10px;
+  background-color: #f5f7fa;
+  min-height: 100vh;
 }
 
-/* Set the input backgrounds to be gray */
-.form-input {
-  background-color: #f2f2f2; /* Or any other shade of gray you prefer */
+/* 椤堕儴绛涢�夊尯 */
+.filter-section {
+  /* margin-bottom: 24px; */
 }
 
-/* Ensure automatic adaptation based on page size */
-.form-group {
+.filter-section h1 {
+  font-size: 24px;
+  font-weight: 600;
+  color: #2c3e50;
+  margin-bottom: 16px;
+}
+
+/* 鎼滅储妗嗘牱寮� */
+.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;
+}
+
+.badge {
+  font-size: 12px;
+  padding: 4px 8px;
+  border-radius: 12px;
+  margin-right: 8px;
+  font-weight: 500;
+  letter-spacing: 0.5px;
+}
+
+.badge.urgent {
+  background: linear-gradient(135deg, #e74c3c, #c0392b);
+  color: white;
+  box-shadow: 0 2px 4px rgba(231, 76, 60, 0.3);
+}
+
+.badge.normal {
+  background: linear-gradient(135deg, #f39c12, #e67e22);
+  color: white;
+  box-shadow: 0 2px 4px rgba(243, 156, 18, 0.3);
+}
+
+.meta-info {
+  display: flex;
+  gap: 16px;
+  font-size: 12px;
+  color: #95a5a6;
+  margin-top: 12px;
+}
+
+.meta-item {
   display: flex;
   align-items: center;
+  gap: 4px;
 }
 
-.form-label {
-  margin-bottom: 0;
-  border-bottom: 1px solid #FFFFFF;
-  padding: 5px;
-  font-size: 12px;
-  width: 60px;
-  /* Adjust the font size as per your requirement */
+.picker {
+  padding: 8px 12px;
+  border: 1px solid #ddd;
+  border-radius: 4px;
+  background-color: white;
+  font-size: 14px;
+  min-width: 120px;
 }
 
-.form-input {
+.filter-label {
+  font-size: 14px;
+  color: #7f8c8d;
+}
+
+.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;
-  margin-bottom: 0;
-  border-bottom: 1px solid #c7c7c7;
-  padding: 5px;
-  font-size: 12px;
-  background-color: #FFFFFF;
-  /* Adjust the font size as per your requirement */
+  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;
+}
+
+.badge {
+  font-size: 12px;
+  padding: 2px 6px;
+  border-radius: 10px;
+  margin-right: 8px;
+}
+
+.badge.urgent {
+  background-color: #e74c3c;
+  color: white;
+}
+
+.badge.normal {
+  background-color: #ffaa00;
+  color: white;
+}
+
+.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-assigned {
+  background: linear-gradient(135deg, #3498db, #2980b9);
+  color: white;
+}
+
+.status-pass {
+  background: linear-gradient(135deg, #27ae60, #229954);
+  color: white;
+}
+
+.status-fail {
+  background: linear-gradient(135deg, #ff0000, #ff0000);
+  color: white;
+}
+
+.status-submitted {
+  background: linear-gradient(135deg, #95a5a6, #7f8c8d);
+  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);
+}
+
+/* 娣诲姞鎸夐挳鏍峰紡 */
 .plus-button {
   position: fixed;
   bottom: 20px;
@@ -312,25 +736,60 @@
   width: 60px;
   height: 60px;
   border-radius: 50%;
-  background-color: #007bff;
+  background: linear-gradient(135deg, #3498db, #2980b9);
   color: #ffffff;
   text-align: center;
   line-height: 59px;
   font-size: 24px;
   cursor: pointer;
   z-index: 1000;
-  margin-bottom: 35px;
+  box-shadow: 0 4px 12px rgba(52, 152, 219, 0.4);
+  transition: all 0.3s ease;
 }
 
-page {
-  display: flex;
-  flex-direction: column;
-  box-sizing: border-box;
-  background-color: #efeff4;
-  min-height: 100%;
-  height: auto;
+.plus-button:hover {
+  transform: translateY(-2px);
+  box-shadow: 0 6px 16px rgba(52, 152, 219, 0.5);
 }
 
+.plus-button: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;
+  }
+
+  .picker {
+    padding: 8px 12px;
+    border: 1px solid #ddd;
+    border-radius: 4px;
+    background-color: white;
+    font-size: 14px;
+    min-width: 10px;
+  }
+}
+
+/* 鍒锋柊鎻愮ず鏍峰紡 */
 .tips {
   color: #67c23a;
   font-size: 14px;
@@ -347,38 +806,5 @@
   transform: translateY(0);
   height: 40px;
   opacity: 1;
-}
-
-.content {
-  width: 100%;
-}
-
-.list-picture {
-  width: 100%;
-  height: 145px;
-}
-
-.thumb-image {
-  width: 100%;
-  height: 100%;
-}
-
-.ellipsis {
-  display: flex;
-  overflow: hidden;
-}
-
-.uni-ellipsis-1 {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-
-.uni-ellipsis-2 {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: -webkit-box;
-  -webkit-line-clamp: 2;
-  -webkit-box-orient: vertical;
 }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3