From 7c2192a2f000d94add173b77b6bd4c8c4fc6a5e4 Mon Sep 17 00:00:00 2001 From: xwt <2740516069@qq.com> Date: 星期三, 17 九月 2025 09:41:47 +0800 Subject: [PATCH] SJ穴模数 --- pages/QC/LLJ/List.vue | 165 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 146 insertions(+), 19 deletions(-) diff --git a/pages/QC/LLJ/List.vue b/pages/QC/LLJ/List.vue index d02936a..27c565e 100644 --- a/pages/QC/LLJ/List.vue +++ b/pages/QC/LLJ/List.vue @@ -16,7 +16,7 @@ </view> <!-- 鏂板鎼滅储妗嗗拰鎸夐挳 --> <view class="search-container"> - <input class="search-input" v-model="searchValue" :placeholder="'璇疯緭鍏�'+options[optionsIndex]" + <input class="search-input" v-model="searchValue" :placeholder="optionsIndex === 0 ? '閫夋嫨椤圭洰鏃舵樉绀哄叏閮ㄦ暟鎹�' : '璇疯緭鍏�'+options[optionsIndex]" @confirm="handleSearch" /> <button class="search-button" @click="handleSearch">鎼滅储</button> </view> @@ -42,8 +42,11 @@ <text class="badge normal" v-if="item.first == 1">棣栨鏉ユ枡</text> <text class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</text> <view v-if="item.userName == null && item.activeTab == 0"> - <text class="status pending" :class="{ 'emergency-pending': item.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!' }"> - {{ item.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!' ? '绱ф�ユ斁琛�/寰呭垎閰�' : '寰呭垎閰�' }} + <text class="status pending" :class="{ + 'emergency-pending': item.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!', + 'unmaintained-not-emergency': isUnmaintainedAndNotEmergency(item) + }"> + {{ item.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!' ? '绱ф�ユ斁琛�/' + getStatusText(item) : getStatusText(item) }} </text> </view> @@ -65,7 +68,7 @@ <view class="info-row"> <view class="info-item"> <text class="info-label">椤圭洰</text> - <text class="info-content">{{item.projectCodes}}</text> + <text class="info-content">{{item.DEPARTMENTNAME}}</text> </view> <view class="info-item" v-if="item.extendNo1!=null"> <text class="info-label">鎶�鏀圭姸鎬�</text> @@ -75,6 +78,7 @@ <text class="info-label">鏁伴噺</text> <text class="info-content highlight">{{item.fcovertQty}}</text> </view> + </view> <view class="info-row"> <view class="info-item"> @@ -83,10 +87,7 @@ </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> @@ -117,7 +118,7 @@ data() { return { projectIndex: 0, - optionsIndex: 0, + optionsIndex: 1, // 榛樿閫夋嫨鐗╂枡缂栧彿 projects: ['褰撳墠', '鍏ㄩ儴'], activeTab: 0, // 0-鏈楠�, 1-宸叉楠� uncheckedCount: 0, @@ -126,34 +127,52 @@ pageIndex: 1, limit: 20, IQCJL: 0, - options: ['椤圭洰', '鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '渚涘簲鍟�', '閲囪喘鍛�','鍒拌揣鍗曞彿','妫�楠屽崟鍙�','鐗╂枡瑙勬牸'], + options: ['椤圭洰', '鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '渚涘簲鍟�', '鍒拌揣鍗曞彿','妫�楠屽崟鍙�','鐗╂枡瑙勬牸'], searchValue: '' } }, onLoad() { //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 + // 鍒濆鍖杝electedField锛屽洜涓洪粯璁ら�夋嫨鐗╂枡缂栧彿 + const fieldMap = { + 0: 'DEPARTMENTNAME', // 椤圭洰 + 1: 'itemNo', // 鐗╂枡缂栧彿 + 2: 'itemName', // 鐗╂枡鍚嶇О + 3: 'suppName', // 渚涘簲鍟� + 4: 'lotNo' ,// 鍒拌揣鍗曞彿 + 5: 'releaseNo' ,// 妫�楠屽崟鍙� + 6: 'itemModel',//鐗╂枡瑙勬牸 + }; + this.selectedField = fieldMap[this.optionsIndex]; this.init(); }, methods: { //鎼滅储 onOptionsChange(e) { this.optionsIndex = e.detail.value; + // 褰撻�夋嫨椤圭洰鏃讹紝娓呯┖鎼滅储鍊� + if (this.optionsIndex === 0) { + this.searchValue = ''; + } // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁 const fieldMap = { - 0: 'projectCodes', // 椤圭洰 + 0: 'DEPARTMENTNAME', // 椤圭洰 1: 'itemNo', // 鐗╂枡缂栧彿 2: 'itemName', // 鐗╂枡鍚嶇О 3: 'suppName', // 渚涘簲鍟� - 4: 'purchaser' ,// 閲囪喘鍛� - 5: 'lotNO' ,// 鍒拌揣鍗曞彿 - 6: 'releaseNO' ,// 妫�楠屽崟鍙� - 7: 'ItemModel',//鐗╂枡瑙勬牸 + 4: 'lotNo' ,// 鍒拌揣鍗曞彿 + 5: 'releaseNo' ,// 妫�楠屽崟鍙� + 6: 'itemModel',//鐗╂枡瑙勬牸 }; this.selectedField = fieldMap[this.optionsIndex]; }, //鎼滅储鎸夐挳鐐瑰嚮浜嬩欢 handleSearch() { + // 褰撻�夋嫨椤圭洰鏃讹紝娓呯┖鎼滅储鍊� + if (this.optionsIndex === 0) { + this.searchValue = ''; + } this.init(); }, init() { @@ -185,9 +204,15 @@ emergency:this.meergency, } }).then(res => { + // 鍘婚噸澶勭悊 - 鏍规嵁 releaseNo 鍘婚噸 + const uniqueList = this.removeDuplicatesByReleaseNo(res.data.tbBillList); + + // 瀵规暟鎹繘琛屾帓搴忓鐞� + const sortedList = this.sortInspectionList(uniqueList); + if (this.pageIndex === 1) { // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹� - this.inspectionList = res.data.tbBillList; + this.inspectionList = sortedList; //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁 this.inspectionList.forEach((item, index) => { this.$set(item, 'activeTab', this.activeTab); @@ -196,9 +221,9 @@ }); } else { - if (res.data.tbBillList.length > 0) { + if (sortedList.length > 0) { // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹� - this.inspectionList = [...this.inspectionList, ...res.data.tbBillList]; + this.inspectionList = [...this.inspectionList, ...sortedList]; //娣诲姞Tab淇℃伅锛屽垽鏂槸宸叉杩樻槸鏈鏁版嵁 this.inspectionList.forEach((item, index) => { this.$set(item, 'activeTab', this.activeTab); @@ -323,6 +348,90 @@ } await this.init(); // 鑷畾涔夌殑鍒锋柊鍑芥暟 + }, + + // 鏍规嵁 releaseNo 鍘婚噸鐨勬柟娉� + removeDuplicatesByReleaseNo(array) { + const seen = new Set(); + return array.filter(item => { + const releaseNo = item.releaseNo; + if (seen.has(releaseNo)) { + return false; + } + seen.add(releaseNo); + return true; + }); + }, + + // 鏍规嵁妫�楠岄」鐩暟閲忚幏鍙栫姸鎬佹枃鏈� + getStatusText(item) { + // 浣跨敤JYXM瀛楁鍒ゆ柇鏄惁缁存姢浜嗘楠岄」鐩� + if (item.jyxm === 0 || item.jyxm === '0') { + return '鏈淮鎶�'; + } + // 濡傛灉缁存姢浜嗘楠岄」鐩紝鏄剧ず"寰呮楠�" + return '寰呮楠�'; + }, + + // 鍒ゆ柇鏄惁涓烘湭缁存姢涓旈潪绱ф�ユ斁琛� + isUnmaintainedAndNotEmergency(item) { + // 浣跨敤JYXM瀛楁妫�鏌ユ槸鍚︿负鏈淮鎶わ紙0琛ㄧず鏈淮鎶わ級 + const isUnmaintained = item.jyxm === 0 || item.jyxm === '0'; + // 妫�鏌ユ槸鍚︿负闈炵揣鎬ユ斁琛� + const isNotEmergency = item.lotNo1 !== '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!'; + return isUnmaintained && isNotEmergency; + }, + + // 鍒ゆ柇鏄惁涓哄緟鍒嗛厤鐘舵�侊紙鐗╂枡娌℃湁缁存姢妫�楠屽憳鎴栬�呰鐗╂枡鏈湪V_LLJ_USER閲岋級 + isUnmaintainedItem(item) { + // 妫�鏌ョ墿鏂欐槸鍚﹀湪V_LLJ_USER瑙嗗浘涓紙鍗虫槸鍚︽湁缁存姢妫�楠屽憳锛� + // 濡傛灉item.fcode涓簄ull鎴杣ndefined锛岃鏄庤鐗╂枡鏈湪V_LLJ_USER瑙嗗浘涓� + // 鎴栬�呰鐗╂枡娌℃湁缁存姢妫�楠屽憳 + return !item.fcode || item.fcode === null || item.fcode === ''; + }, + + // 瀵规楠屽崟鍒楄〃杩涜鎺掑簭 + sortInspectionList(list) { + return list.sort((a, b) => { + // 绗竴浼樺厛绾э細鐘舵�佸垎缁勶紙鏈彁浜� vs 宸叉彁浜わ級 + const aIsSubmitted = a.status === '宸叉彁浜�'; + const bIsSubmitted = b.status === '宸叉彁浜�'; + + if (aIsSubmitted && !bIsSubmitted) return 1; // 宸叉彁浜ょ殑鎺掑湪鍚庨潰 + if (!aIsSubmitted && bIsSubmitted) return -1; // 鏈彁浜ょ殑鎺掑湪鍓嶉潰 + + // 鏈彁浜ゅ崟鎹殑鎺掑簭閫昏緫 + if (!aIsSubmitted && !bIsSubmitted) { + // 绗竴浼樺厛绾э細绱ф�ユ斁琛� + const aIsEmergency = a.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!'; + const bIsEmergency = b.lotNo1 === '绱ф�ユ斁琛岋紝璇峰嬁楠岄��!'; + + if (aIsEmergency && !bIsEmergency) return -1; + if (!aIsEmergency && bIsEmergency) return 1; + + // 绗簩浼樺厛绾э細鏈淮鎶ゆ楠岄」鐩紙浣跨敤JYXM瀛楁锛� + const aIsUnmaintained = a.jyxm === 0 || a.jyxm === '0'; + const bIsUnmaintained = b.jyxm === 0 || b.jyxm === '0'; + + if (aIsUnmaintained && !bIsUnmaintained) return -1; + if (!aIsUnmaintained && bIsUnmaintained) return 1; + + // 绗笁浼樺厛绾э細鍒涘缓鏃堕棿锛堝垱寤烘椂闂磋秺鏅氳秺闈犲悗锛� + const aCreateTime = new Date(a.createDate || 0); + const bCreateTime = new Date(b.createDate || 0); + return aCreateTime - bCreateTime; // 鍗囧簭锛氭棭鐨勫湪鍓嶏紝鏅氱殑鍦ㄥ悗 + } + + // 宸叉彁浜ゅ崟鎹殑鎺掑簭閫昏緫 + if (aIsSubmitted && bIsSubmitted) { + // 鎸夋彁浜ゆ椂闂存帓搴忥紙鎻愪氦鐨勮秺鏅氳秺闈犲墠锛� + const aIqcTime = new Date(a.iqcDate || 0); + const bIqcTime = new Date(b.iqcDate || 0); + return bIqcTime - aIqcTime; // 闄嶅簭锛氭櫄鐨勫湪鍓嶏紝鏃╃殑鍦ㄥ悗 + } + + return 0; + }); } } } @@ -351,7 +460,7 @@ /* 鏂板鎼滅储妗嗘牱寮� */ .search-container { display: flex; - flex: 1; + width: 300px; /* 鍥哄畾瀹藉害 */ margin: 0 10px; height: 36px; /* 涓庡叾浠栨帶浠堕珮搴︿竴鑷� */ @@ -364,6 +473,8 @@ border-radius: 4px 0 0 4px; font-size: 14px; background-color: white; + min-width: 200px; /* 鏈�灏忓搴� */ + max-width: 250px; /* 鏈�澶у搴� */ } .search-button { @@ -487,6 +598,11 @@ color: white; } + .badge.unmaintained { + background-color: #1e8449; + color: white; + } + .badge.emergency { background-color: #ff4d4f; color: white; @@ -545,6 +661,11 @@ font-size: 14px; color: #2c3e50; line-height: 1.5; + } + + .info-content.unmaintained { + color: #e74c3c; + font-weight: 600; } .highlight { @@ -637,5 +758,11 @@ background-color: #ff0000; /* 绾㈣壊鑳屾櫙 */ color: white; } + + .status.unmaintained-not-emergency { + background-color: #9c27b0; /* 绱壊鑳屾櫙 */ + color: white; + box-shadow: 0 0 8px rgba(156, 39, 176, 0.3); + } } </style> \ No newline at end of file -- Gitblit v1.9.3