From bfffb0306f8e37ea39624499c55306837bf23ecf Mon Sep 17 00:00:00 2001 From: xwt <2740516069@qq.com> Date: 星期四, 21 八月 2025 17:55:42 +0800 Subject: [PATCH] 优化 --- pages/QC/LLJ/Add.vue | 494 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 319 insertions(+), 175 deletions(-) diff --git a/pages/QC/LLJ/Add.vue b/pages/QC/LLJ/Add.vue index 38afc4e..73e4d0b 100644 --- a/pages/QC/LLJ/Add.vue +++ b/pages/QC/LLJ/Add.vue @@ -63,36 +63,24 @@ </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;"> <view class="info-label">澶囨敞锛�</view> @@ -104,12 +92,13 @@ <view class="info-label">鐮村潖瀹為獙鏁伴噺锛�</view> <view class="info-value highlight">{{formData.phsy}}</view> </view> - - - - - + <!-- 琛ㄥ崟涓婃柟鎿嶄綔鎸夐挳鍖� --> + <view class="top-action-buttons"> + <button class="action-btn" @click="getInspectionItems" v-if="this.current">鑾峰彇妫�楠岄」鐩�</button> + <button class="action-btn" @click="handleEmergencyRelease" v-if="this.current">绱ф�ユ斁琛�</button> + <button class="action-btn" @click="handleWithdraw" v-if="this.current">鎾ゅ洖</button> + </view> <!-- 妫�楠岄」鐩〃鏍� --> <view class="inspection-table"> @@ -146,22 +135,14 @@ </table> </view> - <!-- 椤甸潰鍐呭鍖哄煙 --> - <view class="content-wrapper"> - <!-- 涓哄簳閮ㄦ寜閽暀鍑虹┖闂� --> - </view> - - <!-- 鍥哄畾鍦ㄥ簳閮ㄧ殑鎿嶄綔鎸夐挳鍖� --> - <view class="fixed-action-buttons"> - <button class="action-btn" @click="handleEmergencyRelease" v-if="this.current">绱ф�ユ斁琛�</button> - <button class="action-btn" @click="handleWithdraw" v-if="this.current">鎾ゅ洖</button> - <button class="action-btn" @click="getInspectionItems" v-if="this.current">鑾峰彇妫�楠岄」鐩�</button> - <button class="action-btn" @click="addDestruction" v-if="this.current">鐮村潖瀹為獙</button> - <button class="action-btn" @click="uploadImages">涓婁紶/鏌ョ湅鍥剧墖</button> - <button class="action-btn" @click="fetchDrawingNumber">璋冨彇PLM鍥剧焊</button> - <button class="action-btn" @click="viewAttachmentInfo">鏌ョ湅闄勪欢淇℃伅</button> - <button class="action-btn" @click="addDefectDescription" v-if="this.current">娣诲姞涓嶈壇鎻忚堪</button> - <button class="action-btn primary" @click="submitInspection" v-if="this.current">妫�楠屾彁浜�</button> + <!-- 琛ㄥ崟涓嬫柟鎿嶄綔鎸夐挳鍖� --> + <view class="bottom-action-buttons"> + <button class="action-btn small" @click="addDestruction" v-if="this.current">鐮村潖瀹為獙</button> + <button class="action-btn small" @click="uploadImages">涓婁紶/鏌ョ湅鍥剧墖</button> + <button class="action-btn small" @click="fetchDrawingNumber">璋冨彇PLM鍥剧焊</button> + <button class="action-btn small" @click="viewAttachmentInfo">鏌ョ湅闄勪欢淇℃伅</button> + <button class="action-btn small" @click="addDefectDescription" v-if="this.current">娣诲姞涓嶈壇鎻忚堪</button> + <button class="action-btn small primary" @click="submitInspection" v-if="this.current">妫�楠屾彁浜�</button> </view> <view v-if="remarksPopup" class="overlay"> <view class="popup"> @@ -204,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> @@ -289,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 鏂囦欢鎻愮ず --> @@ -358,6 +346,13 @@ PSTYPE: '', WORKSHOP: '', REMARK: '', + // picker 閫夐」鍜岀储寮� + badreasonOptions: ['', '澶栬涓嶈壇', '灏哄涓嶈壇', '鍖呰涓嶈壇', '鎬ц兘涓嶈壇', '瑁呴厤涓嶈壇', '瀹夎涓嶈壇'], + badreasonIndex: 0, + workshopOptions: ['', '鐢熶骇涓�閮�', '鐢熶骇浜岄儴', '娉ㄥ杞﹂棿', '鍏朵粬'], + workshopIndex: 0, + pstypeOptions: ['', '鐗归噰/璁╂浣跨敤', '鎸戦��/杩斿伐浣跨敤', '閫�璐�', '寰呭垽'], + pstypeIndex: 0, checkState: false, writeStatu: true, fileName:'', @@ -489,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; @@ -511,9 +559,9 @@ }) if (this.checkState) { - if (this.formData.fngDesc == '' || this.writeStatu == false) { + if (this.formData.fngDesc == '') { uni.showToast({ - title: '鏈~鍐欎笉鑹弿杩版垨涓嶈壇鍘熷洜鎴栨墍灞炶溅闂存垨璇勫鐘舵��', + title: '鏈~鍐欎笉鑹弿杩�', icon: 'none' }); } else { @@ -527,48 +575,28 @@ }).then(res => { if (res.status == 0) { - if(this.$loginInfo.account == 'PL017'){ - this.QcIssueResultDetailes = { - fbatchQty: this.formData.fbatchQty, - itemName: this.formData.itemName, - itemNo: this.formData.itemNo, - suppName: this.formData.suppName, - appicationReason: this.formData.fngDesc, - badReason: this.badreason, - remark: this.REMARK, - workShop: this.WORKSHOP, - releaseNo: this.formData.releaseNo, - staffNo: 'HMCS', - // staffNo: this.$loginInfo.account, - iqcStatus: this.PSTYPE, - department: this.DEPARTMENT, - EMERGENCY: this.formData.emergencyStatus ? "1" : "0" // 纭繚绱ф�ユ斁琛岀姸鎬佹纭紶閫� - }; - } - else{ - this.QcIssueResultDetailes = { - fbatchQty: this.formData.fbatchQty, - itemName: this.formData.itemName, - itemNo: this.formData.itemNo, - suppName: this.formData.suppName, - appicationReason: this.formData.fngDesc, - badReason: this.badreason, - remark: this.REMARK, - workShop: this.WORKSHOP, - releaseNo: this.formData.releaseNo, - // staffNo: 'HMCS', - staffNo: this.$loginInfo.account, - iqcStatus: this.PSTYPE, - department: this.DEPARTMENT, - EMERGENCY: this.formData.emergencyStatus ? "1" : "0" // 纭繚绱ф�ユ斁琛岀姸鎬佹纭紶閫� - }; - } + // 缁熶竴鎺ㄩ�佺粰HMCS锛屼笉绠″摢涓处鍙� + this.QcIssueResultDetailes = { + fbatchQty: this.formData.fbatchQty, + itemName: this.formData.itemName, + itemNo: this.formData.itemNo, + suppName: this.formData.suppName, + appicationReason: this.formData.fngDesc, + badReason: this.badreason, + remark: this.remarks || '', + workShop: this.WORKSHOP, + releaseNo: this.formData.releaseNo, + staffNo: 'HMCS', // 缁熶竴鎺ㄩ�佺粰HMCS + iqcStatus: this.PSTYPE, + department: this.WORKSHOP, // 浣跨敤WORKSHOP鏇夸唬鏈畾涔夌殑DEPARTMENT + EMERGENCY: this.formData.emergencyStatus ? "1" : "0" // 纭繚绱ф�ユ斁琛岀姸鎬佹纭紶閫� + }; console.log("鎻愪氦鐨勭揣鎬ユ斁琛岀姸鎬侊細", this.formData.emergencyStatus ? "1" : "0"); console.log("瀹屾暣鐨勬彁浜ゆ暟鎹細", this.QcIssueResultDetailes); const url = this.$store.state.serverInfo.serverAPI+`/QcIssueResult/GetProcessNo`; - if (this.PSTYPE === '鐗归噰/璁╂浣跨敤') {// 鍙戦�� POST 璇锋眰 + if (this.PSTYPE === '寰呭垽') {// 鍙戦�� POST 璇锋眰 uni.request({ url: url, // 璇锋眰鍦板潃 method: 'POST', // 璇锋眰鏂规硶 @@ -685,14 +713,23 @@ ...data, emergencyStatus: data.emergency === 1 || data.emergency === "1" || data.emergency === true }; + // 鍏抽敭锛氳祴鍊煎埌椤甸潰缁戝畾鍙橀噺 + this.badreason = data.blyy || ''; + this.PSTYPE = data.pszt || ''; + this.WORKSHOP = data.sscj || ''; + 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.badreason = data.blyy; - this.PSTYPE = data.pszt; - this.WORKSHOP = data.sscj; this.$post({ url: "/LLJ/getJYItem", data: { @@ -744,27 +781,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 @@ -795,7 +812,7 @@ success: (response) => { console.log(response) if (response.data.data == '杩斿洖缁撴灉涓虹┖') { - _this.drawing = null + _this.drawing = [] } else { _this.drawing = response.data.data // 閬嶅巻鏁版嵁锛屽垽鏂枃浠跺悗缂�骞舵坊鍔犲瓧娈� @@ -1247,24 +1264,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() { @@ -1274,10 +1291,8 @@ this.isInteger = true; }, editDestruction() { - // 楠岃瘉杈撳叆鏄惁涓烘暣鏁� if(this.PHSY === '') { this.isInteger = true; - // 濡傛灉涓虹┖锛屼紶閫掔┖瀛楃涓诧紝鍚庣浼氬鐞嗕负null } else { const isInteger = /^-?\d+$/.test(this.PHSY); this.isInteger = isInteger; @@ -1285,47 +1300,47 @@ return; } } - - // 淇濆瓨鐮村潖瀹為獙鏁伴噺 + this.$post({ - url: "/LLJ/saveRemarksGid", + url: "/LLJ/savePhsyGid", data: { gid: this.formData.id, releaseNo: this.formData.releaseNo, - PHSY: this.PHSY // 鍙互鏄┖瀛楃涓叉垨鏈夋晥鏁存暟 - // 涓嶅啀鍖呭惈remarks瀛楁 + 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 + 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() { @@ -1555,6 +1570,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鏂囦欢 @@ -1863,22 +1908,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 - } - }).then(res => { - if (res.data.tbBillList > 0) { - this.$showMessage("鑷姩淇濆瓨鎴愬姛"); - } - }); - }, + } } </script> @@ -1889,7 +1919,7 @@ font-family: 'Microsoft YaHei', 'Segoe UI', sans-serif; max-width: 1000px; margin: 0 auto; - padding: 20px 20px 160px 20px; /* 搴曢儴澧炲姞padding涓哄浐瀹氭寜閽暀绌洪棿 */ + padding: 20px 20px 100px 20px; /* 搴曢儴澧炲姞鍐呰竟璺濅负鍥哄畾鎸夐挳鐣欑┖闂� */ background-color: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); min-height: 100vh; @@ -1938,6 +1968,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 { @@ -2014,22 +2062,35 @@ background-color: #f1f5f9; } - /* 鍥哄畾搴曢儴鎸夐挳鏍峰紡 */ - .fixed-action-buttons { - position: fixed; - bottom: 0; - left: 0; - right: 0; - background-color: #fff; - box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); - padding: 10px 15px 20px 15px; - z-index: 100; + /* 琛ㄥ崟涓婃柟鎿嶄綔鎸夐挳鍖烘牱寮� */ + .top-action-buttons { display: flex; - flex-direction: column; - gap: 8px; - max-height: 150px; - overflow-y: auto; + justify-content: flex-end; + gap: 10px; + margin: 20px 0; + padding: 15px; + background-color: #f8f9fa; + border-radius: 8px; + border: 1px solid #e9ecef; } + + /* 琛ㄥ崟涓嬫柟鎿嶄綔鎸夐挳鍖烘牱寮� */ +.bottom-action-buttons { + display: flex; + justify-content: center; + gap: 8px; + padding: 12px; + flex-wrap: wrap; + align-items: center; + position: fixed; /* 鍥哄畾鍦ㄥ睆骞曞簳閮� */ + bottom: 0; /* 璺濈搴曢儴0px */ + left: 0; /* 璺濈宸﹁竟0px */ + right: 0; /* 璺濈鍙宠竟0px */ + background-color: #fff; /* 鑳屾櫙鑹� */ + border-top: 1px solid #e9ecef; /* 椤堕儴杈规 */ + z-index: 1000; /* 纭繚鍦ㄦ渶涓婂眰 */ + box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); /* 椤堕儴闃村奖 */ +} .action-btn { background-color: #ecf0f1; @@ -2062,9 +2123,16 @@ background-color: #2980b9; } - /* 鍐呭鍖呰鍣紝涓哄簳閮ㄦ寜閽暀鍑虹┖闂� */ - .content-wrapper { - height: 20px; /* 棰濆鐨勭┖鐧藉尯鍩� */ + /* 灏忓昂瀵告寜閽牱寮� */ + .action-btn.small { + padding: 10px 12px; + font-size: 14px; + min-height: 44px; + white-space: nowrap; + flex-shrink: 0; + min-width: 80px; + max-width: 120px; + flex: 1; } /* 鍘熸湁鎸夐挳鏍峰紡淇濇寔鍏煎 */ @@ -2506,4 +2574,80 @@ .attachment-popup-close:hover { background: #bdbdbd; } + + /* 鍝嶅簲寮忚璁� */ + @media (max-width: 500px) { + + .info-row, + .info-block { + flex-direction: column; + align-items: flex-start; + } + + .doc-links { + margin-left: 0; + margin-top: 10px; + } + + .top-action-buttons { + flex-direction: column; + align-items: stretch; + } + + .bottom-action-buttons { + flex-direction: row; + align-items: center; + justify-content: center; + padding: 8px; + gap: 6px; + position: fixed; /* 淇濇寔鍥哄畾鍦ㄥ睆骞曞簳閮� */ + bottom: 0; + left: 0; + right: 0; + background-color: #fff; + border-top: 1px solid #e9ecef; + z-index: 1000; + box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); + } + + .action-btn.small { + min-width: 70px; + max-width: 100px; + padding: 8px 10px; + font-size: 13px; + min-height: 40px; + } + + .inspection-table table { + display: block; + 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