fcx
3 天以前 4dc0880780b52c0c35456666a4643a7866b454a7
pages/QC/SJ/List.vue
@@ -30,6 +30,30 @@
          <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>
    <!-- 检验单列表 -->
@@ -153,7 +177,12 @@
      IQCJL: 0, // IQC 检验员标识
     userId:"",
      optionsIndex: 0, // 新增:下拉选项索引
      options: ['项目', '线体', '工单号', '物料号', '物料名'] // 新增:搜索选项
      options: ['项目', '线体', '工单号', '物料号', '物料名'], // 新增:搜索选项
      // 添加状态筛选和日期选择器相关变量
      stateIndex: 0,
      state: ['所有状态', '合格', '不合格'],
      startDate: new Date().toISOString().slice(0, 10),
      endDate: new Date().toISOString().slice(0, 10)
    };
  },
@@ -190,6 +219,33 @@
      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;
@@ -217,7 +273,55 @@
          }
        });
        const list = res.data.tbBillList || [];
        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 {
@@ -250,6 +354,9 @@
        // 重置筛选条件
        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();
      }
    },