From ef905a448385c2a78f3ebaa51d2420e1d7765bb9 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期四, 24 七月 2025 23:30:14 +0800
Subject: [PATCH] 优化首检模块UI和功能
---
pages/QC/LLJ/List.vue | 1167 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 636 insertions(+), 531 deletions(-)
diff --git a/pages/QC/LLJ/List.vue b/pages/QC/LLJ/List.vue
index 14d90d4..73ab441 100644
--- a/pages/QC/LLJ/List.vue
+++ b/pages/QC/LLJ/List.vue
@@ -1,354 +1,439 @@
<template>
- <view class="inspection-app">
- <!-- 椤堕儴绛涢�夊尯 -->
- <view class="filter-section">
- <view class="filter-controls">
- <view class="dropdown-filter">
- <picker @change="onProjectChange" :value="projectIndex" :range="projects">
- <view class="picker">{{projects[projectIndex]}}</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 class="status-tabs">
- <button
- :class="['tab-button', activeTab === 0 ? 'active' : '']"
- @click="switchTab(0)"
- >鏈楠�({{uncheckedCount}})</button>
- <button
- :class="['tab-button', activeTab === 1 ? 'active' : '']"
- @click="switchTab(1)"
- >{{checkedCount}}</button>
- </view>
-
- </view>
- </view>
+ <view class="inspection-app">
+ <!-- 椤堕儴绛涢�夊尯 -->
+ <view class="filter-section">
+ <view class="filter-controls" style="margin-bottom: 5px;">
+ <view class="status-tabs">
+ <button :class="['tab-button', activeTab === 0 ? 'active' : '']"
+ @click="switchTab(0)">鏈楠�({{uncheckedCount}})</button>
+ <button :class="['tab-button', activeTab === 1 ? 'active' : '']"
+ @click="switchTab(1)">{{checkedCount}}</button>
+ </view>
+ </view>
+
+ <view class="filter-controls" style="margin-bottom: 5px;">
+ <view class="status-tabs" style="margin-right: 10px;">
+ <button :class="['tab-button', arrivalFilter === -1 ? 'active' : '']"
+ @click="switchArrivalFilter(-1)">鍏ㄩ儴</button>
+ <button :class="['tab-button', arrivalFilter === 1 ? 'active' : '']"
+ @click="switchArrivalFilter(1)">宸插埌杈�</button>
+ <button :class="['tab-button', arrivalFilter === 0 ? 'active' : '']"
+ @click="switchArrivalFilter(0)">鏈埌杈�</button>
+ </view>
+
+ <view class="dropdown-filter">
+ <picker @change="onProjectChange" :value="projectIndex" :range="projects">
+ <view class="picker">{{projects[projectIndex]}}</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 class="inspection-list">
- <!-- 妫�楠屽崟鍗$墖1 -->
- <view class="inspection-card" v-for="(item, index) in inspectionList" :key="index">
- <view class="card-header">
- <text class="badge urgent" v-if="item.urgentFlag == 1">鎬ユ枡</text>
- <text class="badge urgent" v-if="item.jycs == 1">瓒呮椂</text>
- <text class="badge normal" v-if="item.ftype == 1">濮斿</text>
- <text class="badge normal" v-if="item.first == 1">棣栨鏉ユ枡</text>
- <text class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</text>
- <text class="status pending" v-if="item.userName==null && item.activeTab==0">寰呭垎閰�</text>
- <text class="status assigned" v-if="item.userName!=null && item.activeTab==0">宸插垎閰�</text>
- <text class="status pass" v-if="item.fcheckResu=='鍚堟牸' && item.activeTab==1">鍚堟牸</text>
- <text class="status Unqualified" v-if="item.fcheckResu=='涓嶅悎鏍�' && item.activeTab==1">涓嶅悎鏍�</text>
- </view>
-
- <view class="card-body">
- <view class="info-row">
- <view class="info-item">
- <text class="info-label">鐗╂枡淇℃伅</text>
- <text class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</text>
- </view>
- <view class="info-item">
- <text class="info-label">鏁伴噺</text>
- <text class="info-content highlight">{{item.fcovertQty}}</text>
- </view>
- </view>
-
- <view class="info-row">
- <view class="info-item">
- <text class="info-label">渚涘簲鍟�</text>
- <text class="info-content">{{item.suppName}}</text>
- </view>
- <view class="info-item">
- <text class="info-label">椤圭洰</text>
- <text class="info-content">{{item.projectCodes}}</text>
- </view>
- </view>
- <view class="info-row" >
- <view class="info-item" v-if="item.newFngDesc!=null">
- <text class="info-label">涓婃涓嶈壇鎻忚堪</text>
- <text class="info-content">{{item.newFngDesc}}</text>
- </view>
- <view class="info-item" v-if="item.fngDesc!=null">
- <text class="info-label">涓嶈壇鎻忚堪</text>
- <text class="info-content">{{item.fngDesc}}</text>
- </view>
+
+
+ </view>
</view>
-
- <view class="meta-info">
- <text class="meta-item"><uni-icons type="calendar" size="14" color="#95a5a6"></uni-icons> {{item.createDate}}</text>
- <text class="meta-item"><uni-icons type="person" size="14" color="#95a5a6"></uni-icons> {{item.userName}}</text>
- </view>
- </view>
-
- <view class="card-actions">
- <button v-if="item.activeTab==0 && item.IQCJL==1" @click="assignTask(item)">{{item.userName == null ? '鍒嗛厤' : '閲嶆柊鍒嗛厤'}}</button>
- <button v-if="item.activeTab==0" class="primary" @click="startInspection(item)">寮�濮嬫楠�</button>
- <button v-if="item.activeTab==1" class="primary" @click="startInspection(item)">鏌ョ湅</button>
- </view>
- </view>
- </view>
- </view>
+ <view class="filter-controls" style="margin-bottom: 5px;">
+
+
+ <view class="dropdown-filter" v-if="activeTab==1">
+ <picker @change="onStateChange" :value="stateIndex" :range="state">
+ <view class="picker">{{state[stateIndex]}}</view>
+ </picker>
+
+ </view>
+ <view class="dropdown-filter" v-if="activeTab==1">
+ <picker mode="date" :value="startDate" :end="endDate" @change="bindStartDate">
+ <view class="picker">{{startDate}}</view>
+ </picker>
+
+ </view>
+ <view class="dropdown-filter" v-if="activeTab==1">
+ <picker mode="date" :value="endDate" :start="startDate" @change="bindEndDate">
+ <view class="picker">{{endDate}}</view>
+ </picker>
+ </view>
+
+ </view>
+
+ <!-- 妫�楠屽崟鍒楄〃 -->
+ <view class="inspection-list">
+ <!-- 妫�楠屽崟鍗$墖1 -->
+ <view class="inspection-card" v-for="(item, index) in inspectionList" :key="index">
+ <view class="card-header">
+ <text class="badge urgent" v-if="item.urgentFlag == 1">鎬ユ枡</text>
+ <text class="badge urgent" v-if="item.jycs == 1">瓒呮椂</text>
+ <text class="badge normal" v-if="item.ftype == 1">濮斿</text>
+ <text class="badge normal" v-if="item.first == 1">棣栨鏉ユ枡</text>
+ <text class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</text>
+ <text class="status arrived" v-if="item.isArrival == 1">宸插埌杈�</text>
+ <text class="status not-arrived" v-if="item.isArrival == 0">鏈埌杈�</text>
+ <text class="status pending" v-if="item.userName==null && item.activeTab==0">寰呭垎閰�</text>
+ <text class="status assigned" v-if="item.userName!=null && item.activeTab==0">宸插垎閰�</text>
+ <text class="status pass" v-if="item.fcheckResu=='鍚堟牸' && item.activeTab==1">鍚堟牸</text>
+ <text class="status Unqualified" v-if="item.fcheckResu=='涓嶅悎鏍�' && item.activeTab==1">涓嶅悎鏍�</text>
+ </view>
+
+ <view class="card-body">
+ <view class="info-row">
+ <view class="info-item">
+ <text class="info-label">鐗╂枡淇℃伅</text>
+ <text class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</text>
+ </view>
+
+ </view>
+
+
+ <view class="info-row">
+ <view class="info-item">
+ <text class="info-label">椤圭洰</text>
+ <text class="info-content">{{item.projectCodes}}</text>
+ </view>
+ <view class="info-item" v-if="item.extendNo1!=null">
+ <text class="info-label">鎶�鏀圭姸鎬�</text>
+ <text class="info-content">{{item.extendNo1}}</text>
+ </view>
+ <view class="info-item">
+ <text class="info-label">鏁伴噺</text>
+ <text class="info-content highlight">{{item.fcovertQty}}</text>
+ </view>
+ <view class="info-item">
+ <text class="info-label">鎶芥</text>
+ <text class="info-content highlight">{{item.maxCheckQyt}}</text>
+ </view>
+ </view>
+ <view class="info-row">
+ <view class="info-item">
+ <text class="info-label">渚涘簲鍟�</text>
+ <text class="info-content">{{item.suppName}}</text>
+ </view>
+ </view>
+ <view class="info-row">
+ <view class="info-item" v-if="item.newFngDesc!=null">
+ <text class="info-label">涓婃涓嶈壇鎻忚堪</text>
+ <text class="info-content">{{item.newFngDesc}}</text>
+ </view>
+ <view class="info-item" v-if="item.fngDesc!=null">
+ <text class="info-label">涓嶈壇鎻忚堪</text>
+ <text class="info-content">{{item.fngDesc}}</text>
+ </view>
+ </view>
+
+ <view class="meta-info" v-if="item.activeTab==0">
+ <text class="meta-item"><uni-icons type="calendar" size="14" color="#95a5a6"></uni-icons>
+ {{item.createDate}}</text>
+ <text class="meta-item"><uni-icons type="person" size="14" color="#95a5a6"></uni-icons>
+ {{item.userName}}</text>
+ </view>
+ <!-- 鏌ョ湅鏃舵樉绀烘楠屽畬鎴愮殑鏁版嵁 -->
+ <view class="meta-info" v-if="item.activeTab==1">
+ <text class="meta-item"><uni-icons type="calendar" size="14" color="#95a5a6"></uni-icons>
+ {{item.date01}}</text>
+ <text class="meta-item"><uni-icons type="person" size="14" color="#95a5a6"></uni-icons>
+ {{item.fcheckBy}}</text>
+ </view>
+ </view>
+
+ <view class="card-actions">
+ <button v-if="item.activeTab==0 && item.IQCJL==1"
+ @click="assignTask(item)">{{item.userName == null ? '鍒嗛厤' : '閲嶆柊鍒嗛厤'}}</button>
+ <button v-if="item.activeTab==0" class="primary" @click="startInspection(item)">寮�濮嬫楠�</button>
+ <button v-if="item.activeTab==1" class="primary" @click="startInspection(item)">鏌ョ湅</button>
+ </view>
+ </view>
+ </view>
+ </view>
</template>
<script>
-export default {
- data() {
- return {
- projectIndex: 0,
- optionsIndex:0,
- projects: ['褰撳墠', '鍏ㄩ儴'],
- activeTab: 0, // 0-鏈楠�, 1-宸叉楠�
- uncheckedCount: 0,
- checkedCount: '宸叉楠�',
- inspectionList: [],
- pageIndex: 1,
- limit: 20,
- IQCJL:0,
- options: ['椤圭洰', '鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '渚涘簲鍟�', '閲囪喘鍛�'],
- searchValue:''
-
- }
- },
- onLoad() {
- //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
- this.init();
- },
- methods: {
- //鎼滅储
- onOptionsChange(e) {
- this.optionsIndex = e.detail.value;
- // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
- const fieldMap = {
- 0: 'projectCodes', // 椤圭洰
- 1: 'itemNo', // 鐗╂枡缂栧彿
- 2: 'itemName', // 鐗╂枡鍚嶇О
- 3: 'suppName', // 渚涘簲鍟�
- 4: 'purchaser' // 閲囪喘鍛�
- };
- this.selectedField = fieldMap[this.optionsIndex];
- },
- //鎼滅储鎸夐挳鐐瑰嚮浜嬩欢
- handleSearch() {
- this.init();
- },
- init() {
-
- let result = "鏈畬鎴�";
- if (this.activeTab === 1) {
- result = "宸插畬鎴�";
- }
-
- if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
-
- this.isLoading = true;
-
- //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴�
- let userName = this.$loginInfo.account;
-
-
- //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
- this.$post({
- url: "/LLJ/getPage",
- data: {
- pageIndex: this.pageIndex,
- limit: this.limit,
- createUser: userName,
- result: result,
- SearchValue:this.searchValue,
- selectedIndex:this.optionsIndex,//涓嬫媺妗嗙瓫閫夋潯浠�
- userIndex:this.projectIndex
- }
- }).then(res => {
- if (this.pageIndex === 1) {
- // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
- this.inspectionList = res.data.tbBillList;
- //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁
- this.inspectionList.forEach((item, index) => {
- this.$set(item, 'activeTab', this.activeTab);
- this.$set(item, 'IQCJL', this.IQCJL);
- });
- } else {
-
- if (res.data.tbBillList.length > 0) {
- // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹�
- this.inspectionList = [...this.inspectionList, ...res.data.tbBillList];
- //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁
- this.inspectionList.forEach((item, index) => {
- this.$set(item, 'activeTab', this.activeTab);
- this.$set(item, 'IQCJL', this.IQCJL);
- });
- }
-
- }
- console.log(this.inspectionList)
- this.totalCount = res.data.totalCount;
- this.totalPage = Math.ceil(this.totalCount / this.limit);
-
- this.noData = this.pageIndex >= this.totalPage;
- this.isLoading = false; // 缁撴潫鍔犺浇
- if (this.activeTab === 1) {
- this.checkedCount='宸叉楠岋紙'+res.totalCount+'锛�';
- }else{
- this.uncheckedCount=res.totalCount;
+ export default {
+ data() {
+ return {
+ projectIndex: 0,
+ optionsIndex: 0,
+ stateIndex: 0,
+ projects: ['褰撳墠', '鍏ㄩ儴'],
+ state:['鎵�鏈夌姸鎬�','鍚堟牸','涓嶅悎鏍�'],
+ activeTab: 0, // 0-鏈楠�, 1-宸叉楠�
+ uncheckedCount: 0,
+ checkedCount: '宸叉楠�',
+ inspectionList: [],
+ pageIndex: 1,
+ limit: 20,
+ IQCJL: 0,
+ options: ['椤圭洰', '鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '渚涘簲鍟�', '閲囪喘鍛�'],
+ searchValue: '',
+ startDate:new Date().toISOString().slice(0, 10),
+ endDate:new Date().toISOString().slice(0, 10),
+ arrivalFilter: -1,
}
- }).catch(() => {
- this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
- });
- },
- onProjectChange(e) {
- this.projectIndex = e.detail.value
- // 杩欓噷鍙互娣诲姞绛涢�夐�昏緫
- // uni.showToast({
- // title: `宸查�夋嫨椤圭洰: ${this.projects[this.projectIndex]}`,
- // icon: 'none'
- // })
- this.init();
- },
- onOptionsChange(e) {
- this.optionsIndex = e.detail.value
- // 杩欓噷鍙互娣诲姞绛涢�夐�昏緫
- // uni.showToast({
- // title: `宸查�夋嫨椤圭洰: ${this.projects[this.projectIndex]}`,
- // icon: 'none'
- // })
-
- },
- switchTab(index) {
- this.activeTab = index
- // 杩欓噷鍙互娣诲姞鍒囨崲鏍囩椤电殑閫昏緫
- this.inspectionList=[];
- this.init();
- },
- //璺宠浆妫�楠屽崟
- startInspection(item) {
- if (this.activeTab === 1) {
- uni.navigateTo({
- url: 'Add?id='+item.id+'&lotNo='+item.lotNo+'&releaseNo='+item.releaseNo+'¤t=1'
- })
- }else{
- uni.navigateTo({
- url: 'Add?id='+item.id+'&lotNo='+item.lotNo+'&releaseNo='+item.releaseNo+'¤t=0'
- })
- }
-
- },
- assignTask(item) {
- // uni.showToast({
- // title: `${item.statusClass === 'assigned' ? '閲嶆柊鍒嗛厤' : '鍒嗛厤'}妫�楠屽崟: ${item.releaseNo}`,
- // icon: 'none'
- // })
- // 杩欓噷鍙互娣诲姞鍒嗛厤浠诲姟鐨勯�昏緫
- uni.navigateTo({
- url: 'UpdateCheckBy?releaseNo=' + item.releaseNo+'&userID='+this.$loginInfo.account+'&staffName='+item.userName
- });
- },
- /**
- * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
- */
- onPullDownRefresh() {
-
- this.pageIndex = 1;
- //閲嶆柊鎵ц涓�閬嶆煡璇�
- this.init();
- // this.tipShow = true;
- //鍏抽棴鍔ㄧ敾
- uni.stopPullDownRefresh();
-
- // setTimeout(function () {
- // this.tipShow = false;
- // }, 6000);
-
- },
- /**
- * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
- */
- onReachBottom() {
- if (this.noData || this.isLoading) return;
- this.pageIndex++;
- this.init(); // 鍔犺浇鏇村鏁版嵁
- },
- onShow() {
- //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
- // this.pageIndex = 1;
- // this.data = [];
- // //this.current = 0
- this.init();
- },
- async onLoad() {
- if(this.$loginInfo.roleid.indexOf("90134") != -1 || this.$loginInfo.account=="PL017")
- {
- this.IQCJL=1;
- }else
- {
- this.IQCJL=0;
- }
- await this.init(); // 鑷畾涔夌殑鍒锋柊鍑芥暟
+ },
+ onLoad() {
+ //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+ this.init();
+
+ },
+ methods: {
+ //鎼滅储
+ onOptionsChange(e) {
+ this.optionsIndex = e.detail.value;
+ // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
+ const fieldMap = {
+ 0: 'projectCodes', // 椤圭洰
+ 1: 'itemNo', // 鐗╂枡缂栧彿
+ 2: 'itemName', // 鐗╂枡鍚嶇О
+ 3: 'suppName', // 渚涘簲鍟�
+ 4: 'purchaser' // 閲囪喘鍛�
+ };
+ this.selectedField = fieldMap[this.optionsIndex];
+ },
+ onStateChange(e) {
+ this.pageIndex=1;
+ this.stateIndex = e.detail.value;
+ this.init();
+ },
+ //鎼滅储鎸夐挳鐐瑰嚮浜嬩欢
+ handleSearch() {
+ this.pageIndex=1;
+ this.init();
+ },
+ init() {
+
+ let result = "鏈畬鎴�";
+ if (this.activeTab === 1) {
+ result = "宸插畬鎴�";
+ }
+
+ if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
+
+ this.isLoading = true;
+
+ //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴�
+ let userName = this.$loginInfo.account;
+
+
+ //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+ this.$post({
+ url: "/LLJ/getPage",
+ data: {
+ pageIndex: this.pageIndex,
+ limit: this.limit,
+ createUser: userName,
+ result: result,
+ SearchValue: this.searchValue,
+ selectedIndex: this.optionsIndex, //涓嬫媺妗嗙瓫閫夋潯浠�
+ userIndex: this.projectIndex,
+ startDate:this.startDate,
+ endDate:this.endDate,
+ state:this.state[this.stateIndex],
+ arrivalFilter: this.arrivalFilter
+ }
+ }).then(res => {
+ if (this.pageIndex === 1) {
+ // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
+ this.inspectionList = res.data.tbBillList;
+ //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁
+ this.inspectionList.forEach((item, index) => {
+ this.$set(item, 'activeTab', this.activeTab);
+ this.$set(item, 'IQCJL', this.IQCJL);
+ });
+ } else {
+
+ if (res.data.tbBillList.length > 0) {
+ // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹�
+ this.inspectionList = [...this.inspectionList, ...res.data.tbBillList];
+ //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁
+ this.inspectionList.forEach((item, index) => {
+ this.$set(item, 'activeTab', this.activeTab);
+ this.$set(item, 'IQCJL', this.IQCJL);
+ });
+ }
+
+ }
+ //console.log(this.inspectionList)
+ this.totalCount = res.data.totalCount;
+ this.totalPage = Math.ceil(this.totalCount / this.limit);
+
+ this.noData = this.pageIndex >= this.totalPage;
+ this.isLoading = false; // 缁撴潫鍔犺浇
+ if (this.activeTab === 1) {
+ this.checkedCount = '宸叉楠岋紙' + res.totalCount + '锛�';
+ } else {
+ this.uncheckedCount = res.totalCount;
+ }
+ }).catch(() => {
+ this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+ });
+ },
+ onProjectChange(e) {
+ this.projectIndex = e.detail.value
+ // 杩欓噷鍙互娣诲姞绛涢�夐�昏緫
+ // uni.showToast({
+ // title: `宸查�夋嫨椤圭洰: ${this.projects[this.projectIndex]}`,
+ // icon: 'none'
+ // })
+ this.init();
+ },
+ onOptionsChange(e) {
+ this.optionsIndex = e.detail.value
+ // 杩欓噷鍙互娣诲姞绛涢�夐�昏緫
+ // uni.showToast({
+ // title: `宸查�夋嫨椤圭洰: ${this.projects[this.projectIndex]}`,
+ // icon: 'none'
+ // })
+
+ },
+ bindEndDate(e){
+ this.endDate=e.detail.value
+ console.log(e.detail.value)
+ },
+ bindStartDate(e){
+ this.startDate=e.detail.value
+ },
+ switchTab(index) {
+ this.activeTab = index
+ // 杩欓噷鍙互娣诲姞鍒囨崲鏍囩椤电殑閫昏緫
+ this.inspectionList = [];
+ this.init();
+ },
+ //璺宠浆妫�楠屽崟
+ startInspection(item) {
+
+ if (this.activeTab === 1) {
+ uni.navigateTo({
+ url: 'Add?id=' + item.id + '&lotNo=' + item.lotNo + '&releaseNo=' + item.releaseNo +
+ '¤t=B'
+ })
+ } else {
+ uni.navigateTo({
+ url: 'Add?id=' + item.id + '&lotNo=' + item.lotNo + '&releaseNo=' + item.releaseNo +
+ '¤t=A'
+ })
+ }
+
+ },
+ assignTask(item) {
+ // uni.showToast({
+ // title: `${item.statusClass === 'assigned' ? '閲嶆柊鍒嗛厤' : '鍒嗛厤'}妫�楠屽崟: ${item.releaseNo}`,
+ // icon: 'none'
+ // })
+ // 杩欓噷鍙互娣诲姞鍒嗛厤浠诲姟鐨勯�昏緫
+ uni.navigateTo({
+ url: 'UpdateCheckBy?releaseNo=' + item.releaseNo + '&userID=' + this.$loginInfo.account +
+ '&staffName=' + item.userName
+ });
+ },
+ /**
+ * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
+ */
+ onPullDownRefresh() {
+
+ this.pageIndex = 1;
+ //閲嶆柊鎵ц涓�閬嶆煡璇�
+ this.init();
+ // this.tipShow = true;
+ //鍏抽棴鍔ㄧ敾
+ uni.stopPullDownRefresh();
+
+ // setTimeout(function () {
+ // this.tipShow = false;
+ // }, 6000);
+
+ },
+ /**
+ * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
+ */
+ onReachBottom() {
+ if (this.noData || this.isLoading) return;
+ this.pageIndex++;
+ this.init(); // 鍔犺浇鏇村鏁版嵁
+ },
+ onShow() {
+ //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
+ // this.pageIndex = 1;
+ // this.data = [];
+ // //this.current = 0
+ this.init();
+ },
+ async onLoad() {
+ if (this.$loginInfo.roleid.indexOf("90134") != -1 || this.$loginInfo.account == "PL017") {
+ this.IQCJL = 1;
+ } else {
+ this.IQCJL = 0;
+ }
+ await this.init(); // 鑷畾涔夌殑鍒锋柊鍑芥暟
+
+ },
+ switchArrivalFilter(filter) {
+ this.arrivalFilter = filter;
+ this.pageIndex = 1;
+ this.inspectionList = [];
+ this.init();
+ }
+ }
}
- }
-}
</script>
<style scoped>
-/* 鍩虹鏍峰紡閲嶇疆 */
-.inspection-app {
- padding: 10px;
- background-color: #f5f7fa;
- min-height: 100vh;
-}
+ /* 鍩虹鏍峰紡閲嶇疆 */
+ .inspection-app {
+ padding: 10px;
+ background-color: #f5f7fa;
+ min-height: 100vh;
+ }
-/* 椤堕儴绛涢�夊尯 */
-.filter-section {
- margin-bottom: 24px;
-}
+ /* 椤堕儴绛涢�夊尯 */
+ .filter-section {
+ /* margin-bottom: 24px; */
+ }
-.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; /* 涓庡叾浠栨帶浠堕珮搴︿竴鑷� */
-}
+ .filter-section h1 {
+ font-size: 24px;
+ font-weight: 600;
+ color: #2c3e50;
+ margin-bottom: 16px;
+ }
-.search-input {
- flex: 1;
- padding: 8px 12px;
- border: 1px solid #ddd;
- border-radius: 4px 0 0 4px;
- font-size: 14px;
- background-color: white;
-}
+ /* 鏂板鎼滅储妗嗘牱寮� */
+ .search-container {
+ display: flex;
+ flex: 1;
+ margin: 0 10px;
+ height: 36px;
+ /* 涓庡叾浠栨帶浠堕珮搴︿竴鑷� */
+ }
-.search-button {
- padding: 0 12px;
- border: 1px solid #3498db;
- border-radius: 0 4px 4px 0;
- background-color: #3498db;
- color: white;
- font-size: 14px;
- margin: 0;
-}
-/* .filter-controls {
+ .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-color: #3498db;
+ color: white;
+ font-size: 14px;
+ margin: 0;
+ }
+
+ /* .filter-controls {
display: flex;
justify-content: space-between;
align-items: center;
@@ -361,226 +446,246 @@
align-items: center;
gap: 8px;
} */
-.filter-controls {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
-}
+ .filter-controls {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 5px;
+ }
-.dropdown-filter {
- min-width: 70px;
-}
-.filter-label {
- font-size: 14px;
- color: #7f8c8d;
-}
+ .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;
-}
+ .filter-label {
+ font-size: 14px;
+ color: #7f8c8d;
+ }
-.status-tabs {
- display: flex;
- border-radius: 4px;
- overflow: hidden;
- background-color: #ecf0f1;
-}
- .status-tabs {
- 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;
-}
+ .picker {
+ padding: 8px 12px;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ background-color: white;
+ font-size: 14px;
+ min-width: 120px;
+ }
-.tab-button.active {
- background-color: #3498db;
- color: white;
-}
+ .status-tabs {
+ display: flex;
+ border-radius: 4px;
+ overflow: hidden;
+ background-color: #ecf0f1;
+ }
-/* 妫�楠屽崟鍒楄〃 */
-.inspection-list {
- display: flex;
- flex-direction: column;
- gap: 20px;
-}
+ .status-tabs {
+ flex: 1;
+ min-width: 200px;
+ }
-/* 妫�楠屽崟鍗$墖 */
-.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;
-}
+ .tab-button {
+ padding: 0px 16px;
+ border: none;
+ background: none;
+ font-size: 14px;
+ transition: all 0.3s;
+ margin: 0;
+ height: 35px;
+ }
-.card-header {
- padding: 16px;
- border-bottom: 1px solid #eee;
- display: flex;
- align-items: center;
-}
+ .tab-button.active {
+ background-color: #3498db;
+ color: white;
+ }
-.card-title {
- font-size: 16px;
- font-weight: 600;
- flex: 1;
- margin: 0 8px;
-}
+ /* 妫�楠屽崟鍒楄〃 */
+ .inspection-list {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ }
-.badge {
- font-size: 12px;
- padding: 2px 6px;
- border-radius: 10px;
- margin-right: 8px;
-}
+ /* 妫�楠屽崟鍗$墖 */
+ .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;
+ }
-.badge.urgent {
- background-color: #e74c3c;
- color: white;
-}
-.badge.normal {
- background-color: #ffaa00;
- color: white;
-}
+ .card-header {
+ padding: 16px;
+ border-bottom: 1px solid #eee;
+ display: flex;
+ align-items: center;
+ }
-.status {
- font-size: 12px;
- padding: 4px 8px;
- border-radius: 4px;
- font-weight: 500;
-}
+ .card-title {
+ font-size: 16px;
+ font-weight: 600;
+ flex: 1;
+ margin: 0 8px;
+ }
-.status.pending {
- background-color: #f39c12;
- color: white;
-}
+ .badge {
+ font-size: 12px;
+ padding: 2px 6px;
+ border-radius: 10px;
+ margin-right: 8px;
+ }
-.status.assigned {
- background-color: #3498db;
- color: white;
-}
-.status.pass {
- background-color: #00cd00;
- color: white;
-}
-.status.Unqualified {
- background-color: #ff0000;
- color: white;
-}
+ .badge.urgent {
+ background-color: #e74c3c;
+ color: white;
+ }
-.card-body {
- padding: 16px;
-}
+ .badge.normal {
+ background-color: #ffaa00;
+ color: white;
+ }
-.info-row {
- display: flex;
- margin-bottom: 12px;
- gap: 16px;
-}
+ .status {
+ font-size: 12px;
+ padding: 4px 8px;
+ border-radius: 4px;
+ font-weight: 500;
+ margin-left: 8px;
+ }
-.info-item {
- flex: 1;
-}
+ .status.pending {
+ background-color: #f39c12;
+ color: white;
+ }
-.info-label {
- display: block;
- font-size: 12px;
- color: #7f8c8d;
- margin-bottom: 4px;
-}
+ .status.assigned {
+ background-color: #3498db;
+ color: white;
+ }
-.info-content {
- font-size: 14px;
- color: #2c3e50;
- line-height: 1.5;
-}
+ .status.arrived {
+ background-color: #00cd00;
+ color: white;
+ }
-.highlight {
- font-weight: 600;
- color: #2c3e50;
- font-size: 16px;
-}
+ .status.not-arrived {
+ background-color: #95a5a6;
+ color: white;
+ }
-.meta-info {
- display: flex;
- gap: 16px;
- font-size: 12px;
- color: #95a5a6;
- margin-top: 12px;
-}
+ .status.pass {
+ background-color: #00cd00;
+ color: white;
+ }
-.meta-item {
- display: flex;
- align-items: center;
- gap: 4px;
-}
+ .status.Unqualified {
+ background-color: #ff0000;
+ color: white;
+ }
-.card-actions {
- padding: 12px 16px;
- border-top: 1px solid #eee;
- display: flex;
- gap: 8px;
-}
+ .card-body {
+ padding: 16px;
+ }
-button {
- padding: 8px 16px;
- border: 1px solid #ddd;
- border-radius: 4px;
- background-color: white;
- font-size: 14px;
- transition: all 0.2s;
- flex: 1;
-}
+ .info-row {
+ display: flex;
+ margin-bottom: 12px;
+ gap: 16px;
+ }
-button.primary {
- background-color: #3498db;
- color: white;
- border-color: #2980b9;
-}
+ .info-item {
+ flex: 1;
+ }
-/* 鍝嶅簲寮忚璁� */
-@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;
- }
- /* .search-container {
+ .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: #2c3e50;
+ 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-color: #3498db;
+ color: white;
+ border-color: #2980b9;
+ }
+
+ /* 鍝嶅簲寮忚璁� */
+ @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;
+ }
+
+ /* .search-container {
order: 3;
width: 100%;
margin: 0px 0 0 0;
@@ -590,5 +695,5 @@
order: 4;
width: 100%;
} */
-}
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3