fcx
3 天以前 4dc0880780b52c0c35456666a4643a7866b454a7
pages/QC/SJ/List.vue
@@ -11,16 +11,47 @@
                  @click="onClickItem({currentIndex: 0})">未完成({{ uncheckedCount }})
          </button>
          <button :class="['tab-button', current === 1 ? 'active' : '']"
                  @click="onClickItem({currentIndex: 1})">{{ checkedCount }}
                  @click="onClickItem({currentIndex: 1})">已提交({{ checkedCount }})
          </button>
        </view>
      </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 v-model="searchValue" class="search-input" placeholder="请输入检验单号或物料编码"
                 @confirm="handleSearch"/>
          <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>
@@ -38,12 +69,12 @@
          <view :class="{
                  'status-pending': !item.result && current === 0,
                  'status-assigned': current === 0 && item.statusUser && !item.result,
                  'status-pass': item.result === '合格',
                  'status-fail': 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 ? item.result : '已提交') }}
            {{ current === 0 ? ('' ? item.result : '未提交') : (item.result ? item.result : '已提交') }}
          </view>
        </view>
@@ -142,9 +173,16 @@
      tipShow: false,
      searchValue: '',
      uncheckedCount: 0,
      checkedCount: '已完成',
      checkedCount: 0,
      IQCJL: 0, // IQC 检验员标识
     userId:""
     userId:"",
      optionsIndex: 0, // 新增:下拉选项索引
      options: ['项目', '线体', '工单号', '物料号', '物料名'], // 新增:搜索选项
      // 添加状态筛选和日期选择器相关变量
      stateIndex: 0,
      state: ['所有状态', '合格', '不合格'],
      startDate: new Date().toISOString().slice(0, 10),
      endDate: new Date().toISOString().slice(0, 10)
    };
  },
@@ -176,6 +214,45 @@
  },
  methods: {
    // 新增:搜索选项改变事件
    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;
@@ -191,11 +268,60 @@
            limit: this.limit,
            statusUser: userName,
            result: result,
            searchValue: this.searchValue
            searchValue: this.searchValue,
            selectedIndex: this.optionsIndex // 新增:传递搜索选项索引
          }
        });
        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 {
@@ -207,7 +333,7 @@
        this.noData = this.pageIndex >= this.totalPage;
        if (this.current === 1) {
          this.checkedCount = '已完成(' + this.totalCount + ')';
          this.checkedCount = this.totalCount;
        } else {
          this.uncheckedCount = this.totalCount;
        }
@@ -219,19 +345,18 @@
      }
    },
    // 搜索
    handleSearch() {
      this.pageIndex = 1;
      this.data = [];
      this.init();
    },
    // 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();
      }
    },
@@ -512,7 +637,7 @@
}
.status-fail {
  background: linear-gradient(135deg, #3498db, #2980b9);
  background: linear-gradient(135deg, #ff0000, #ff0000);
  color: white;
}