From c3c23631be761f336789f4cc11d33fab2ec9f125 Mon Sep 17 00:00:00 2001 From: xwt <2740516069@qq.com> Date: 星期二, 12 八月 2025 09:43:02 +0800 Subject: [PATCH] 来料检修改,推送钉钉修改 --- pages/QC/LLJ/Add.vue | 304 +++++++++++++++++++++++++++++++++----------------- 1 files changed, 198 insertions(+), 106 deletions(-) diff --git a/pages/QC/LLJ/Add.vue b/pages/QC/LLJ/Add.vue index 12abf50..4492c63 100644 --- a/pages/QC/LLJ/Add.vue +++ b/pages/QC/LLJ/Add.vue @@ -63,37 +63,23 @@ </view> <view class="dropdown-row"> <view class="info-label">涓嶈壇鍘熷洜锛�</view> - <select id="defect-reason" v-model="badreason" v-if="current" @change="saveRemarksGid"> - <option value=""></option> - <option value="澶栬涓嶈壇">澶栬涓嶈壇</option> - <option value="灏哄涓嶈壇">灏哄涓嶈壇</option> - <option value="鍖呰涓嶈壇">鍖呰涓嶈壇</option> - <option value="鎬ц兘涓嶈壇">鎬ц兘涓嶈壇</option> - <option value="瑁呴厤涓嶈壇">瑁呴厤涓嶈壇</option> - <option value="瀹夎涓嶈壇">瀹夎涓嶈壇</option> - </select> + <picker v-if="current" :value="badreasonIndex" :range="badreasonOptions" @change="onBadreasonChange"> + <view class="picker-text" :class="{ 'selected': badreason }">{{ badreason || '' }}</view> + </picker> <view v-else class="info-value">{{ badreason }}</view> </view> <view class="dropdown-row"> <view class="info-label">鎵�灞炶溅闂达細</view> - <select id="defect-reason" v-model="WORKSHOP" v-if="current" @change="saveRemarksGid"> - <option value=""></option> - <option value="鐢熶骇涓�閮�">鐢熶骇涓�閮�</option> - <option value="鐢熶骇浜岄儴">鐢熶骇浜岄儴</option> - <option value="娉ㄥ杞﹂棿">娉ㄥ杞﹂棿</option> - <option value="鍏朵粬">鍏朵粬</option> - </select> + <picker v-if="current" :value="workshopIndex" :range="workshopOptions" @change="onWorkshopChange"> + <view class="picker-text" :class="{ 'selected': WORKSHOP }">{{ WORKSHOP || '' }}</view> + </picker> <view v-else class="info-value">{{ WORKSHOP }}</view> </view> <view class="dropdown-row"> <view class="info-label">璇勫鐘舵�侊細</view> - <select id="defect-reason" v-model="PSTYPE" v-if="current" @change="saveRemarksGid"> - <option value=""></option> - <option value="鐗归噰/璁╂浣跨敤">鐗归噰/璁╂浣跨敤</option> - <option value="鎸戦��/杩斿伐浣跨敤">鎸戦��/杩斿伐浣跨敤</option> - <option value="閫�璐�">閫�璐�</option> - <option value="寰呭垽">寰呭垽</option> - </select> + <picker v-if="current" :value="pstypeIndex" :range="pstypeOptions" @change="onPstypeChange"> + <view class="picker-text" :class="{ 'selected': PSTYPE }">{{ PSTYPE || '' }}</view> + </picker> <view v-else class="info-value">{{ PSTYPE }}</view> </view> <view class="info-block" style="margin-top: 10px;"> @@ -199,7 +185,7 @@ <uni-th align="center" width="90">鑳藉惁鎵撳紑鏂囦欢</uni-th> <uni-th align="center" width="150">鎿嶄綔锛堢偣鍑伙級</uni-th> </uni-tr> - <uni-tr v-for="(item,index) in drawing" style="height: 100px;"> + <uni-tr v-for="(item,index) in (drawing || [])" style="height: 100px;"> <uni-td align="center">{{item.fName}}</uni-td> <uni-td align="center" style="font-size:25px;"> <div v-if="item.fRelevantObject==' '" style="color: #E47470;">脳</div> @@ -284,7 +270,14 @@ <!-- 鍥剧墖鍐呭棰勮 --> <view v-else-if="previewType === 'image'" class="image-preview-container"> - <image :src="previewContent" mode="widthFix" style="width: 100%; max-height: 400px;"></image> + <image + :src="previewContent" + mode="aspectFit" + class="preview-image-clickable" + @click="previewImageInPopup" + style="width: 100%; max-height: 400px; cursor: pointer;" + /> + <div class="image-zoom-hint">鐐瑰嚮鍥剧墖鍙斁澶ф煡鐪�</div> </view> <!-- Excel 绛� Office 鏂囦欢鎻愮ず --> @@ -353,6 +346,13 @@ PSTYPE: '', WORKSHOP: '', REMARK: '', + // picker 閫夐」鍜岀储寮� + badreasonOptions: ['', '澶栬涓嶈壇', '灏哄涓嶈壇', '鍖呰涓嶈壇', '鎬ц兘涓嶈壇', '瑁呴厤涓嶈壇', '瀹夎涓嶈壇'], + badreasonIndex: 0, + workshopOptions: ['', '鐢熶骇涓�閮�', '鐢熶骇浜岄儴', '娉ㄥ杞﹂棿', '鍏朵粬'], + workshopIndex: 0, + pstypeOptions: ['', '鐗归噰/璁╂浣跨敤', '鎸戦��/杩斿伐浣跨敤', '閫�璐�', '寰呭垽'], + pstypeIndex: 0, checkState: false, writeStatu: true, fileName:'', @@ -484,18 +484,71 @@ addDefectDescription() { // 娣诲姞涓嶈壇鎻忚堪鐨勯�昏緫 this.remarksPopup = !this.remarksPopup; - this.remarks = this.formData.remarks; + this.remarks = this.formData.remarks || this.remarks || ''; + console.log('鎵撳紑寮圭獥鏃剁殑remarks鍊�:', this.remarks); + }, + // picker 浜嬩欢澶勭悊鏂规硶 + onBadreasonChange(e) { + const index = e.detail.value; + this.badreasonIndex = index; + this.badreason = this.badreasonOptions[index]; + this.saveRemarksGid('badreason'); + }, + onWorkshopChange(e) { + const index = e.detail.value; + this.workshopIndex = index; + this.WORKSHOP = this.workshopOptions[index]; + this.saveRemarksGid('WORKSHOP'); + }, + onPstypeChange(e) { + const index = e.detail.value; + this.pstypeIndex = index; + this.PSTYPE = this.pstypeOptions[index]; + this.saveRemarksGid('PSTYPE'); + }, + saveRemarksGid(fieldName) { + // 鐩存帴淇濆瓨鍒版暟鎹簱 + const requestData = { + gid: this.formData.id, + releaseNo: this.formData.releaseNo, + BLYY: this.badreason || '', + SSCJ: this.WORKSHOP || '', + PSZT: this.PSTYPE || '' + }; + console.log('鍙戦�佺殑鏁版嵁:', requestData); + console.log('badreason:', this.badreason); + console.log('WORKSHOP:', this.WORKSHOP); + console.log('PSTYPE:', this.PSTYPE); + console.log('閫夋嫨鐨勫瓧娈�:', fieldName); + this.$post({ + url: "/LLJ/saveDropdownFields", + data: requestData + }).then(res => { + if (res && res.data && res.data.data && res.data.data.tbBillList && res.data.data.tbBillList.length > 0) { + // 寤惰繜閲嶆柊鍔犺浇鏁版嵁锛岀‘淇濇暟鎹簱鏇存柊瀹屾垚 + setTimeout(() => { + this.init(); + }, 500); + } + }).catch(err => { + console.error('淇濆瓨澶辫触锛�', err); + }); }, submitInspection() { - if (this.PSTYPE == '') { - this.writeStatu = false - } - if (this.badreason == '') { - this.writeStatu = false - } - if (this.DEPARTMENT == '') { - this.writeStatu = false - } + + // 閲嶇疆楠岃瘉鐘舵�� + this.writeStatu = true; + + // if (this.PSTYPE == '') { + // this.writeStatu = false + // } + // if (this.badreason == '') { + // this.writeStatu = false + // } + // 绉婚櫎瀵规湭瀹氫箟鍙橀噺DEPARTMENT鐨勬鏌� + // if (this.DEPARTMENT == '') { + // this.writeStatu = false + // } console.log(this.tableData) this.checkState = false; @@ -506,9 +559,9 @@ }) if (this.checkState) { - if (this.formData.fngDesc == '' || this.writeStatu == false) { + if (this.formData.fngDesc == '') { uni.showToast({ - title: '鏈~鍐欎笉鑹弿杩版垨涓嶈壇鍘熷洜鎴栨墍灞炶溅闂存垨璇勫鐘舵��', + title: '鏈~鍐欎笉鑹弿杩�', icon: 'none' }); } else { @@ -530,13 +583,13 @@ suppName: this.formData.suppName, appicationReason: this.formData.fngDesc, badReason: this.badreason, - remark: this.REMARK, + remark: this.remarks || '', workShop: this.WORKSHOP, releaseNo: this.formData.releaseNo, staffNo: 'HMCS', // staffNo: this.$loginInfo.account, iqcStatus: this.PSTYPE, - department: this.DEPARTMENT, + department: this.WORKSHOP, // 浣跨敤WORKSHOP鏇夸唬鏈畾涔夌殑DEPARTMENT EMERGENCY: this.formData.emergencyStatus ? "1" : "0" // 纭繚绱ф�ユ斁琛岀姸鎬佹纭紶閫� }; } @@ -548,13 +601,13 @@ suppName: this.formData.suppName, appicationReason: this.formData.fngDesc, badReason: this.badreason, - remark: this.REMARK, + remark: this.remarks || '', workShop: this.WORKSHOP, releaseNo: this.formData.releaseNo, // staffNo: 'HMCS', staffNo: this.$loginInfo.account, iqcStatus: this.PSTYPE, - department: this.DEPARTMENT, + department: this.WORKSHOP, // 浣跨敤WORKSHOP鏇夸唬鏈畾涔夌殑DEPARTMENT EMERGENCY: this.formData.emergencyStatus ? "1" : "0" // 纭繚绱ф�ユ斁琛岀姸鎬佹纭紶閫� }; } @@ -684,10 +737,17 @@ this.badreason = data.blyy || ''; this.PSTYPE = data.pszt || ''; this.WORKSHOP = data.sscj || ''; - console.log('璧嬪�煎悗', this.badreason, this.PSTYPE, this.WORKSHOP); + this.remarks = data.remarks || ''; // 璁剧疆remarks鍙橀噺 + + // 璁剧疆 picker 绱㈠紩 + this.badreasonIndex = this.badreasonOptions.indexOf(this.badreason); + this.workshopIndex = this.workshopOptions.indexOf(this.WORKSHOP); + this.pstypeIndex = this.pstypeOptions.indexOf(this.PSTYPE); + // 纭繚PHSY瀛楁琚纭缃� this.formData.PHSY = data.PHSY; + this.PHSY = data.PHSY || ''; // 鍚屾椂璁剧疆椤甸潰缁戝畾鐨凱HSY鍙橀噺 console.log("鍔犺浇鐨勭揣鎬ユ斁琛岀姸鎬�:", this.formData.emergencyStatus); this.$post({ @@ -741,27 +801,7 @@ url: 'SysSubmitFrom?releaseNo=' + releaseNo + '&userID=' + this.$loginInfo.account }); }, - editRemarks() { - // 淇濆瓨涓嶈壇鎻忚堪 - this.$post({ - url: "/LLJ/saveRemarksGid", - data: { - gid: this.formData.id, - remarks: this.remarks || '', - releaseNo: this.formData.releaseNo - // 涓嶅啀鍖呭惈PHSY瀛楁 - } - }).then(res => { - if (res.data.tbBillList > 0) { - this.formData.remarks = this.remarks; - this.remarksPopup = !this.remarksPopup; - this.$showMessage("淇濆瓨鎴愬姛"); - setTimeout(() => { - this.init(); - }, 2000); - } - }) - }, + drawingConfirm() { this.drawingShow = false @@ -792,7 +832,7 @@ success: (response) => { console.log(response) if (response.data.data == '杩斿洖缁撴灉涓虹┖') { - _this.drawing = null + _this.drawing = [] } else { _this.drawing = response.data.data // 閬嶅巻鏁版嵁锛屽垽鏂枃浠跺悗缂�骞舵坊鍔犲瓧娈� @@ -1244,24 +1284,24 @@ }); }, editRemarks() { - // 淇濆瓨涓嶈壇鎻忚堪 this.$post({ url: "/LLJ/saveRemarksGid", data: { gid: this.formData.id, remarks: this.remarks || '', releaseNo: this.formData.releaseNo - // 涓嶅啀鍖呭惈PHSY瀛楁 } }).then(res => { if (res.data.tbBillList > 0) { this.formData.remarks = this.remarks; this.remarksPopup = !this.remarksPopup; - this.$showMessage("淇濆瓨鎴愬姛"); + // 绔嬪嵆閲嶆柊鍔犺浇鏁版嵁纭繚鍚屾 setTimeout(() => { this.init(); - }, 2000); + }, 500); } + }).catch(err => { + console.error('淇濆瓨澶辫触锛�', err); }) }, addDestruction() { @@ -1271,10 +1311,8 @@ this.isInteger = true; }, editDestruction() { - // 楠岃瘉杈撳叆鏄惁涓烘暣鏁� if(this.PHSY === '') { this.isInteger = true; - // 濡傛灉涓虹┖锛屼紶閫掔┖瀛楃涓诧紝鍚庣浼氬鐞嗕负null } else { const isInteger = /^-?\d+$/.test(this.PHSY); this.isInteger = isInteger; @@ -1282,52 +1320,47 @@ return; } } - - // 淇濆瓨鐮村潖瀹為獙鏁伴噺锛屽苟甯︿笂涓嶈壇鍘熷洜銆佹墍灞炶溅闂淬�佽瘎瀹$姸鎬� + this.$post({ - url: "/LLJ/saveRemarksGid", + url: "/LLJ/savePhsyGid", data: { gid: this.formData.id, releaseNo: this.formData.releaseNo, - PHSY: this.PHSY, // 鍙互鏄┖瀛楃涓叉垨鏈夋晥鏁存暟 - BLYY: this.badreason, - SSCJ: this.WORKSHOP, - PSZT: this.PSTYPE + PHSY: this.PHSY } }).then(res => { if (res.data.tbBillList > 0) { - // 濡傛灉杈撳叆涓虹┖锛岃缃负null浠ヤ究涓嶆樉绀� this.formData.PHSY = this.PHSY === '' ? null : this.PHSY; this.destructionPopup = false; - this.$showMessage("淇濆瓨鎴愬姛"); + // 绔嬪嵆閲嶆柊鍔犺浇鏁版嵁纭繚鍚屾 setTimeout(() => { this.init(); - }, 2000); + }, 500); } + }).catch(err => { + console.error('淇濆瓨澶辫触锛�', err); }) }, clearDestruction() { - // 娓呴櫎鐮村潖瀹為獙鏁伴噺 this.PHSY = ''; this.$post({ - url: "/LLJ/saveRemarksGid", + url: "/LLJ/savePhsyGid", data: { gid: this.formData.id, releaseNo: this.formData.releaseNo, - PHSY: '', // 绌哄瓧绗︿覆锛屽悗绔細澶勭悊涓簄ull - BLYY: this.badreason, - SSCJ: this.WORKSHOP, - PSZT: this.PSTYPE + PHSY: '' } }).then(res => { if (res.data.tbBillList > 0) { - this.formData.PHSY = null; // 纭繚鍓嶇涔熶负null锛屼笉鏄剧ず + this.formData.PHSY = null; this.destructionPopup = false; - this.$showMessage("娓呴櫎鎴愬姛"); + // 绔嬪嵆閲嶆柊鍔犺浇鏁版嵁纭繚鍚屾 setTimeout(() => { this.init(); - }, 2000); + }, 500); } + }).catch(err => { + console.error('娓呴櫎澶辫触锛�', err); }) }, viewAttachmentInfo() { @@ -1557,6 +1590,36 @@ const item = { fattach: this.previewTitle, itemNo: this.previewItemNo }; this.downloadAttachment(item); this.closeFilePreview(); + }, + + // 鍦ㄥ脊绐椾腑棰勮鍥剧墖锛堟斁澶у姛鑳斤級 + previewImageInPopup() { + // 浣跨敤uni.previewImage API瀹炵幇鍥剧墖鏀惧ぇ棰勮 + uni.previewImage({ + current: this.previewContent, // 褰撳墠鏄剧ず鍥剧墖鐨勯摼鎺� + urls: [this.previewContent], // 闇�瑕侀瑙堢殑鍥剧墖閾炬帴鍒楄〃 + loop: false, // 鏄惁寮�鍚浘鐗囪疆鎾� + indicator: 'default', // 鍥剧墖鎸囩ず鍣ㄧ被鍨� + longPressActions: { + itemList: ['鍙戦�佺粰鏈嬪弸', '淇濆瓨鍥剧墖', '鏀惰棌'], + success: function (data) { + console.log('閫変腑浜嗙' + (data.tapIndex + 1) + '涓寜閽�'); + }, + fail: function (err) { + console.log(err.errMsg); + } + }, + success: () => { + console.log('鍥剧墖棰勮鎴愬姛'); + }, + fail: (err) => { + console.error('鍥剧墖棰勮澶辫触:', err); + uni.showToast({ + title: '鍥剧墖棰勮澶辫触', + icon: 'none' + }); + } + }); }, // 棰勮Office鏂囦欢 @@ -1865,23 +1928,7 @@ } // #endif }, - saveRemarksGid() { - this.$post({ - url: "/LLJ/saveRemarksGid", - data: { - gid: this.formData.id, - releaseNo: this.formData.releaseNo, - BLYY: this.badreason, - SSCJ: this.WORKSHOP, - PSZT: this.PSTYPE, - PHSY: this.PHSY // 鏂板锛屼繚璇佺牬鍧忓疄楠屾暟涓嶄細琚埛鎺� - } - }).then(res => { - if (res.data.tbBillList > 0) { - this.$showMessage("鑷姩淇濆瓨鎴愬姛"); - } - }); - }, + } } </script> @@ -1941,6 +1988,24 @@ .info-value { color: #2c3e50; margin-right: 20px; + } + + .picker-text { + padding: 6px 10px; + border: 1px solid #ddd; + border-radius: 4px; + background-color: white; + color: #999; + font-size: 14px; + min-height: 32px; + display: flex; + align-items: center; + max-width: 150px; + } + + .picker-text.selected { + color: #e74c3c; + font-weight: 500; } .highlight { @@ -2578,4 +2643,31 @@ overflow-x: auto; } } + + /* 鍥剧墖鏀惧ぇ棰勮鐩稿叧鏍峰紡 */ + .preview-image-clickable { + transition: transform 0.2s ease; + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + } + + .preview-image-clickable:hover { + transform: scale(1.02); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + } + + .image-zoom-hint { + text-align: center; + margin-top: 8px; + font-size: 12px; + color: #666; + font-style: italic; + } + + .image-preview-container { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + } </style> \ No newline at end of file -- Gitblit v1.9.3