From 2565d78042b7cc5ac500c4bac5edefdb7a046af5 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 17 九月 2025 14:04:52 +0800
Subject: [PATCH] Merge branch 'master' of http://43.142.96.171:8080/r/~cnf/HM_StandardPda-Browse
---
pages/QC/LLJ/List.vue | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 158 insertions(+), 22 deletions(-)
diff --git a/pages/QC/LLJ/List.vue b/pages/QC/LLJ/List.vue
index cffc6d1..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);
@@ -301,10 +326,19 @@
},
onShow() {
//姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
- // this.pageIndex = 1;
- // this.data = [];
- // //this.current = 0
+ // 妫�鏌ユ槸鍚﹂渶瑕佸埛鏂版暟鎹�
+ const app = getApp();
+ if (app.globalData && app.globalData.needRefreshList) {
+ // 娓呴櫎鏍囪
+ app.globalData.needRefreshList = false;
+ // 寮哄埗鍒锋柊鏁版嵁
+ this.pageIndex = 1; // 閲嶇疆椤电爜
+ this.inspectionList = []; // 娓呯┖鍒楄〃鏁版嵁
+ this.init(); // 閲嶆柊鍔犺浇鏁版嵁
+ } else {
+ // 姝e父鍒锋柊
this.init();
+ }
},
async onLoad() {
if (this.$loginInfo.roleid.indexOf("90134") != -1 || this.$loginInfo.account == "PL017") {
@@ -314,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;
+ });
}
}
}
@@ -342,7 +460,7 @@
/* 鏂板鎼滅储妗嗘牱寮� */
.search-container {
display: flex;
- flex: 1;
+ width: 300px; /* 鍥哄畾瀹藉害 */
margin: 0 10px;
height: 36px;
/* 涓庡叾浠栨帶浠堕珮搴︿竴鑷� */
@@ -355,6 +473,8 @@
border-radius: 4px 0 0 4px;
font-size: 14px;
background-color: white;
+ min-width: 200px; /* 鏈�灏忓搴� */
+ max-width: 250px; /* 鏈�澶у搴� */
}
.search-button {
@@ -478,6 +598,11 @@
color: white;
}
+ .badge.unmaintained {
+ background-color: #1e8449;
+ color: white;
+ }
+
.badge.emergency {
background-color: #ff4d4f;
color: white;
@@ -536,6 +661,11 @@
font-size: 14px;
color: #2c3e50;
line-height: 1.5;
+ }
+
+ .info-content.unmaintained {
+ color: #e74c3c;
+ font-weight: 600;
}
.highlight {
@@ -628,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