From ab826d12b52265bc4f25044d43a042df2104f972 Mon Sep 17 00:00:00 2001 From: kyy <3283105747@qq.com> Date: 星期一, 14 七月 2025 21:34:10 +0800 Subject: [PATCH] 最新代码 --- pages/QC/RKJ/detail.vue | 1058 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 705 insertions(+), 353 deletions(-) diff --git a/pages/QC/RKJ/detail.vue b/pages/QC/RKJ/detail.vue index 0983b85..2e391fd 100644 --- a/pages/QC/RKJ/detail.vue +++ b/pages/QC/RKJ/detail.vue @@ -1,147 +1,252 @@ <template> - <view> - <view class="form-container"> - <form :modelValue="formData"> - <view class="form-group"> + <view class="container"> + <!-- 椤甸潰鏍囬 --> + <view class="page-header"> + <text class="page-title">妫�楠岃鎯�</text> + </view> + + <!-- 鍩烘湰淇℃伅妯″潡 (2-1鎺掑垪) --> + <view class="module-card mb-2"> + <view class="module-header"> + <text class="module-title">鍩烘湰淇℃伅</text> + </view> + <view class="form-grid"> + <view class="form-group col-6"> + <label class="form-label">妫�楠屽崟鍙�:</label> + <input class="form-input" disabled="true" type="text" v-model="releaseNo" /> + </view> + <view class="form-group col-6"> <label class="form-label">椤圭洰鍚嶇О:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.projName"/> + <input class="form-input" disabled="true" type="text" v-model="formData.projName" /> </view> - <view class="form-group"> + <view class="form-group col-12"> <label class="form-label">璐ㄩ噺瑕佹眰:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.itemMod"/> + <input class="form-input quality-requirement" disabled="true" type="text" v-model="formData.itemMod" /> </view> - <view class="form-group"> + </view> + </view> + + <!-- 妫�楠岃缃ā鍧� (3涓瓧娈�) --> + <view class="module-card mb-2"> + <view class="module-header"> + <text class="module-title">妫�楠岃缃�</text> + </view> + <view class="form-grid"> + <view class="form-group col-4"> <label class="form-label">妫�楠屾柟娉�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.inspectionMethod"/> + <input class="form-input" disabled="true" type="text" v-model="formData.inspectionMethod" /> </view> - <view class="form-group"> + <view class="form-group col-4"> <label class="form-label">浣跨敤浠〃:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.usingInstruments"/> + <input class="form-input" disabled="true" type="text" v-model="formData.usingInstruments" /> </view> - <view class="form-group"> + <view class="form-group col-4"> <label class="form-label">妫�楠屾暟:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.levelNum"/> + <input class="form-input" disabled="true" type="text" v-model="formData.levelNum" /> </view> - <view class="form-group"> - <label class="form-label">妫�楠屾爣鍑嗙紪鐮�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.qsCode"/> - </view> - <view class="form-group"> - <label class="form-label">妫�楠屾爣鍑嗗悕绉�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.qsName"/> - </view> - <view class="form-group"> - <label class="form-label">妫�楠屾按骞�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.fcheckLevel"/> - </view> - <view class="form-group"> - <label class="form-label">鎺ユ敹姘村钩:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.facLevel"/> - </view> - <view class="form-group"> + </view> + </view> + + <!-- 鏁板�艰寖鍥存ā鍧� (3涓瓧娈�) --> + <view class="module-card mb-2"> + <view class="module-header"> + <text class="module-title">鏁板�艰寖鍥�</text> + </view> + <view class="form-grid"> + <view class="form-group col-4"> <label class="form-label">涓嬮檺:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.minValue"/> + <input class="form-input" disabled="true" type="text" v-model="formData.minValue" /> </view> - <view class="form-group"> + <view class="form-group col-4"> <label class="form-label">鏍囧噯鍊�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.standardValue"/> + <input class="form-input" disabled="true" type="text" v-model="formData.standardValue" /> </view> - <view class="form-group"> + <view class="form-group col-4"> <label class="form-label">涓婇檺:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.maxValue"/> + <input class="form-input" disabled="true" type="text" v-model="formData.maxValue" /> </view> - <view class="form-group"> + </view> + </view> + + <!-- 鏍囧噯瑙勮寖妯″潡 (4鍒楀竷灞�) --> + <view class="module-card mb-2"> + <view class="module-header"> + <text class="module-title">鏍囧噯瑙勮寖</text> + </view> + <view class="form-grid"> + <view class="form-group col-3"> + <label class="form-label">妫�楠屾爣鍑嗙紪鐮�:</label> + <input class="form-input" disabled="true" type="text" v-model="formData.qsCode" /> + </view> + <view class="form-group col-3"> + <label class="form-label">妫�楠屾爣鍑嗗悕绉�:</label> + <input class="form-input" disabled="true" type="text" v-model="formData.qsName" /> + </view> + <view class="form-group col-3"> + <label class="form-label">妫�楠屾按骞�:</label> + <input class="form-input" disabled="true" type="text" v-model="formData.fcheckLevel" /> + </view> + <view class="form-group col-3"> + <label class="form-label">鎺ユ敹姘村钩:</label> + <input class="form-input" disabled="true" type="text" v-model="formData.facLevel" /> + </view> + </view> + </view> + + <!-- 鍒ゅ畾鏍囧噯妯″潡 (4鍒楀竷灞�) --> + <view class="module-card mb-2"> + <view class="module-header"> + <text class="module-title">鍒ゅ畾鏍囧噯</text> + </view> + <view class="form-grid"> + <view class="form-group col-3"> <label class="form-label">AC鏁�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.freQty - 1"/> + <input class="form-input" disabled="true" type="text" v-model="formData.freQty - 1" /> </view> - <view class="form-group"> + <view class="form-group col-3"> <label class="form-label">RE鏁�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.freQty"/> + <input class="form-input" disabled="true" type="text" v-model="formData.freQty" /> </view> - <view class="form-group"> + <view class="form-group col-3"> <label class="form-label">涓嶅悎鏍兼暟:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.unqualified"/> + <input class="form-input" disabled="true" type="text" v-model="formData.unqualified" /> </view> - <view class="form-group"> + <view class="form-group col-3"> <label class="form-label">棰勮缁撴灉:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.result"/> + <!-- 鍔ㄦ�佹牱寮忕粦瀹� --> + <input + class="form-input" + disabled="true" + type="text" + v-model="formData.result" + :class="{ 'result-pass': formData.result === '鍚堟牸', 'result-fail': formData.result === '涓嶅悎鏍�' }" + /> </view> - <view class="form-group"> + </view> + </view> + + <!-- 妫�楠岀粨鏋滄ā鍧� (1鍒�3琛�) --> + <view class="module-card"> + <view class="module-header"> + <text class="module-title">妫�楠岀粨鏋�</text> + </view> + <view class="form-grid"> + <view class="form-group col-12"> <label class="form-label">涓嶅悎鏍兼弿杩�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.remarks"/> + <input class="form-input" disabled="true" type="text" v-model="formData.remarks" /> </view> - <view class="form-group edit"> - <input class="form-input" style="color: red" disabled="true" type="text" - value="娌℃湁鏈�澶у�煎拰鏈�灏忓�兼椂濉啓0锛堟湭閫氳繃妫�楠岋級鎴�1锛堥�氳繃妫�楠岋級"/> + <view class="form-group col-12 warning-tip"> + <label class="form-label">璀︾ず鎻愮ず</label> + <text class="tip-text">娌℃湁鏈�澶у�煎拰鏈�灏忓�兼椂濉啓0锛堟湭閫氳繃妫�楠岋級鎴�1锛堥�氳繃妫�楠岋級</text> </view> - <view class="form-group edit"> + <view class="form-group col-12"> <label class="form-label">妫�娴嬬粨鏋�:</label> - <input class="form-input" type="number" v-model="formData.fcheckResu"/> + <input class="form-input result-input" type="number" v-model="formData.fcheckResu" /> </view> - <button type="primary" v-if="tableData.length < formData.levelNum" @click="submit">淇濆瓨</button> - </form> + </view> + <button type="primary" v-if="tableData.length < formData.levelNum" @click="submit" class="submit-btn"> + <text class="btn-text">淇濆瓨</text> + </button> </view> - <view> - <img v-if="isShowImg" :src="base64Image" style="width:100%" @click="previewImage"/> + + <!-- 鍥剧墖棰勮鍖哄煙 --> + <view class="image-container card" v-if="isShowImg"> + <img :src="base64Image" style="width:100%; border-radius: 8px;" @click="previewImage" class="preview-image" /> </view> - <view class="list-container"> - <uni-table ref="table" border emptyText="鏆傛棤鏇村鏁版嵁"> - <uni-tr> - <uni-th align="center" style="color: #FFFFFF;background-color: lightskyblue;">缂栧彿</uni-th> - <uni-th align="center" style="color: #FFFFFF;background-color: lightskyblue;">鍒ゅ畾鏍囪瘑</uni-th> - <uni-th align="center" style="color: #FFFFFF;background-color: lightskyblue;">妫�楠岀粨鏋�</uni-th> - <uni-th width="150" align="center" - style="color: #FFFFFF;background-color: lightskyblue;">淇敼 - </uni-th> + + <!-- 琛ㄦ牸鍖哄煙 --> + <view class="table-container card"> + <view class="table-header"> + <text class="section-title">妫�楠岃褰�</text> + </view> + <uni-table ref="table" border emptyText="鏆傛棤鏇村鏁版嵁" class="custom-table"> + <uni-tr class="table-header-row"> + <uni-th align="center" class="th">缂栧彿</uni-th> + <uni-th align="center" class="th">鍒ゅ畾鏍囪瘑</uni-th> + <uni-th align="center" class="th">妫�楠岀粨鏋�</uni-th> + <uni-th width="150" align="center" class="th">鎿嶄綔</uni-th> </uni-tr> - <uni-tr v-for="(item, index) in tableData" :key="index"> + <uni-tr v-for="(item, index) in tableData" :key="index" class="table-row" + :class="{ 'row-success': item.fcheckResu == 1, 'row-warning': item.fcheckResu == 0 }" + @mouseenter="highlightRow(index)" @mouseleave="unhighlightRow(index)"> <uni-td align="center"> {{ index + 1 }} </uni-td> <uni-td align="center"> - <input class="form-input" disabled="true" type="text" v-model="item.fstand"/> + <input class="form-input" disabled="true" type="text" v-model="item.fstand" /> </uni-td> <uni-td align="center"> - <input class="form-input" disabled="true" type="text" v-model="item.fcheckResu"/> + <input class="form-input" disabled="true" type="text" v-model="item.fcheckResu" /> </uni-td> <uni-td> - <view class="uni-group"> - <button type="warn" v-if="isNumber" @click="toDetail(item)">淇敼</button> - <button type="warn" v-if="!isNumber" @click="numberEdit(item)">{{ editResult(item.fcheckResu) }}</button> + <view class="action-buttons"> + <button type="warn" v-if="isNumber" @click="toDetail(item)" class="action-btn"> + <text class="btn-text">淇敼</text> + </button> + <button type="warn" v-if="!isNumber" @click="numberEdit(item)" class="action-btn"> + <text class="btn-text">{{ editResult(item.fcheckResu) }}</text> + </button> </view> </uni-td> </uni-tr> </uni-table> </view> - <view class="plus-button"> - <button type="warn" @click="saveRemarks">娣诲姞涓嶅悎鏍兼弿杩�</button> + <!-- 鎿嶄綔鎸夐挳 --> + <view class="action-buttons-container"> + <button type="warn" @click="saveRemarks" class="action-btn"> + <text class="btn-text">娣诲姞涓嶅悎鏍兼弿杩�</text> + </button> </view> + <!-- 淇敼妫�楠岀粨鏋滃脊鍑哄眰 --> <view v-if="showPopup" class="overlay"> - <view class="popup"> - <h3>淇敼妫�楠岀粨鏋�</h3> + <view class="popup card"> + <view class="popup-header"> + <text class="popup-title">淇敼妫�楠岀粨鏋�</text> + <button @click="showPopup = !showPopup" class="close-btn"> + <text class="btn-text">脳</text> + </button> + </view> <form :modelValue="editData"> <view class="form-group"> <label class="form-label">妫�楠岀粨鏋�:</label> - <input class="form-input" type="text" v-model="editData.fcheckResu"/> + <input class="form-input" type="text" v-model="editData.fcheckResu" /> </view> - <button type="warn" @click="eidt">淇敼</button> - <button @click="showPopup = !showPopup">鍙栨秷</button> + <view class="popup-actions"> + <button type="warn" @click="eidt" class="action-btn"> + <text class="btn-text">淇敼</text> + </button> + <button @click="showPopup = !showPopup" class="action-btn btn-outline"> + <text class="btn-text">鍙栨秷</text> + </button> + </view> </form> </view> </view> + <!-- 淇敼涓嶅悎鏍兼弿杩板脊鍑哄眰 --> <view v-if="remarksPopup" class="overlay"> - <view class="popup"> - <h3>淇敼涓嶅悎鏍兼弿杩�</h3> + <view class="popup card"> + <view class="popup-header"> + <text class="popup-title">淇敼涓嶅悎鏍兼弿杩�</text> + <button @click="remarksPopup = !remarksPopup" class="close-btn"> + <text class="btn-text">脳</text> + </button> + </view> <form> <view class="form-group"> <label class="form-label">涓嶅悎鏍兼弿杩�:</label> - <input class="form-input" type="text" v-model="remarks"/> + <input class="form-input" type="text" v-model="remarks" /> </view> - <button type="warn" @click="editRemarks">淇敼</button> - <button @click="remarksPopup = !remarksPopup">鍙栨秷</button> + <view class="popup-actions"> + <button type="warn" @click="editRemarks" class="action-btn"> + <text class="btn-text">淇敼</text> + </button> + <button @click="remarksPopup = !remarksPopup" class="action-btn btn-outline"> + <text class="btn-text">鍙栨秷</text> + </button> + </view> </form> </view> </view> @@ -149,215 +254,174 @@ </template> <script> - -export default { - data() { - return { - formData: {}, - isNumber: false, - checkItem: "", - id: 0, - gid: 0, - billNo: "", - showPopup: false, - editData: {}, - tableData: [], - isShowImg: false, - base64Image:"", - remarks: "", - remarksPopup: false, - } - }, - methods: { - - previewImage() { - uni.previewImage({ - urls: [this.base64Image], - }); - }, - - editResult(fcheckResu) { - if (fcheckResu == '1') { - return "鏀逛负涓嶅悎鏍�"; - } else { - return "鏀逛负鍚堟牸"; + export default { + data() { + return { + formData: {}, + isNumber: false, + checkItem: "", + id: 0, + gid: 0, + billNo: "", + showPopup: false, + editData: {}, + tableData: [], + isShowImg: false, + base64Image: "", + remarks: "", + remarksPopup: false, + releaseNo: "" } }, - submit() { - - let count = this.formData.levelNum; - let fstand = "鈭�"; - - //鏈夋渶澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁绗﹀悎鏍囧噯鍊兼洿鏂板垽瀹氱粨鏋滐紝娌℃湁鏈�澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁閫氳繃妫�楠屽垽瀹氱粨鏋� - if (this.formData.maxValue && this.formData.minValue) { - - if (!this.formData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠屽��"); - return; - } - - if (this.formData.fcheckResu >= this.formData.minValue && this.formData.fcheckResu <= this.formData - .maxValue) { - fstand = "鈭�" + methods: { + previewImage() { + uni.previewImage({ + urls: [this.base64Image], + }); + }, + editResult(fcheckResu) { + if (fcheckResu == '1') { + return "鏀逛负涓嶅悎鏍�"; } else { - fstand = "脳"; + return "鏀逛负鍚堟牸"; } - count = 1; - } else { - - if (!this.formData.fcheckResu) { - this.formData.fcheckResu = 1 - } - - if (this.formData.fcheckResu == 0 || this.formData.fcheckResu == 1) { - this.formData.isPass = this.formData.fcheckResu + }, + submit() { + let count = this.formData.levelNum; + let fstand = "鈭�"; + if (this.formData.maxValue && this.formData.minValue) { + if (!this.formData.fcheckResu) { + this.$showMessage("璇疯緭鍏ユ楠屽��"); + return; + } + if (this.formData.fcheckResu >= this.formData.minValue && this.formData.fcheckResu <= this.formData.maxValue) { + fstand = "鈭�" + } else { + fstand = "脳"; + } + count = 1; } else { - this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); - return; + if (!this.formData.fcheckResu) { + this.formData.fcheckResu = 1 + } + if (this.formData.fcheckResu == 0 || this.formData.fcheckResu == 1) { + this.formData.isPass = this.formData.fcheckResu + } else { + this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); + return; + } + count = count - this.tableData.length; } - count = count - this.tableData.length; - } - - this.formData.updater = this.$loginInfo.account; - - this.$post({ - url: "/RKJ/SetQSItemDetail", - data: { - pid: this.id, - gid: this.gid, - fstand: fstand, - fcheckResu: this.formData.fcheckResu, - updateBy: this.formData.updater, - count: count - } - }).then(res => { - this.formData.fcheckResu = null; - this.$showMessage("淇濆瓨鎴愬姛"); - this.refreshResult(); - }) - - }, - refreshResult() { - this.$post({ - url: "/RKJ/getXjDetail02ById", - data: { - id: this.id - } - }).then(res => { - this.formData = res.data.tbBillList.itemXj01; - - this.tableData = res.data.tbBillList.itemXj02s; - - if (this.formData.imageData) { - this.isShowImg = true; - this.base64Image = 'data:image/jpeg;base64,' + this.formData.imageData; - } - - //maxValue minValue standardValue - if (this.formData.maxValue && this.formData.minValue && this.formData.standardValue) { - this.isNumber = true; - } - - }) - }, - toDetail(item) { - this.showPopup = !this.showPopup; - this.editData = item; - }, - eidt() { - - if (!this.editData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠岀粨鏋�"); - } - - if (this.formData.fcheckResu == this.editData.fcheckResu) { - this.$showMessage("淇敼鎴愬姛"); - return; - } - - let fstand = "鈭�"; - - if (this.formData.maxValue && this.formData.minValue) { - + this.formData.updater = this.$loginInfo.account; + this.$post({ + url: "/RKJ/SetQSItemDetail", + data: { + pid: this.id, + gid: this.gid, + fstand: fstand, + fcheckResu: this.formData.fcheckResu, + updateBy: this.formData.updater, + count: count + } + }).then(res => { + this.formData.fcheckResu = null; + this.$showMessage("淇濆瓨鎴愬姛"); + this.refreshResult(); + }) + }, + refreshResult() { + this.$post({ + url: "/RKJ/getXjDetail02ById", + data: { + id: this.id, + releaseNo: this.releaseNo + } + }).then(res => { + this.formData = res.data.tbBillList.itemXj01; + this.tableData = res.data.tbBillList.itemXj02s; + if (this.formData.imageData) { + this.isShowImg = true; + this.base64Image = 'data:image/jpeg;base64,' + this.formData.imageData; + } + if (this.formData.maxValue && this.formData.minValue && this.formData.standardValue) { + this.isNumber = true; + } + }) + }, + toDetail(item) { + this.showPopup = !this.showPopup; + this.editData = item; + }, + eidt() { if (!this.editData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠屽��"); + this.$showMessage("璇疯緭鍏ユ楠岀粨鏋�"); return; } - - if (this.editData.fcheckResu >= this.formData.minValue && this.editData.fcheckResu <= this.formData - .maxValue) { - this.editData.isPass = 1 - } else { - this.editData.isPass = 0 - fstand = "脳"; + if (this.editData.fcheckResu == this.formData.fcheckResu) { + this.$showMessage("鏃犻渶淇敼"); + return; } - } else { - - if (!this.editData.fcheckResu) { - this.editData.fcheckResu = 1 - } - - if (this.editData.fcheckResu == 0 || this.editData.fcheckResu == 1) { - if (this.editData.fcheckResu == 0) { + let fstand = "鈭�"; + if (this.formData.maxValue && this.formData.minValue) { + if (this.editData.fcheckResu >= this.formData.minValue && this.editData.fcheckResu <= this.formData.maxValue) { + this.editData.isPass = 1; + } else { + this.editData.isPass = 0; fstand = "脳"; } } else { - this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); + if (this.editData.fcheckResu == 0 || this.editData.fcheckResu == 1) { + fstand = this.editData.fcheckResu == 1 ? "鈭�" : "脳"; + } else { + this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); + return; + } + } + this.editData.updater = this.$loginInfo.account; + this.$post({ + url: "/RKJ/UpdateQSItemDetail", + data: { + id: this.editData.id, + pid: this.id, + gid: this.gid, + fstand: fstand, + fcheckResu: this.editData.fcheckResu, + updateBy: this.editData.updater, + } + }).then(res => { + this.showPopup = !this.showPopup; + this.$showMessage("淇敼鎴愬姛"); + this.refreshResult(); + }) + }, + numberEdit(item) { + let fstand = item.fcheckResu == '1' ? "脳" : "鈭�"; + let fcheckResu = item.fcheckResu == '1' ? 0 : 1; + + this.$post({ + url: "/RKJ/UpdateQSItemDetail", + data: { + id: item.id, + pid: item.pid, + gid: item.gid, + fstand: fstand, + fcheckResu: fcheckResu, + updateBy: this.$loginInfo.account, + } + }).then(res => { + this.$showMessage("淇敼鎴愬姛"); + this.refreshResult(); + }) + }, + saveRemarks() { + this.remarksPopup = !this.remarksPopup; + this.remarks = this.formData.remarks; + }, + editRemarks() { + if (!this.remarks) { + this.$showMessage("璇疯緭鍏ヤ笉鍚堟牸鎻忚堪"); return; } - } - - this.editData.updater = this.$loginInfo.account; - - this.$post({ - url: "/RKJ/UpdateQSItemDetail", - data: { - id: this.editData.id, - pid: this.id, - gid: this.gid, - fstand: fstand, - fcheckResu: this.editData.fcheckResu, - updateBy: this.editData.updater, - } - }).then(res => { - this.showPopup = !this.showPopup; - this.$showMessage("淇敼鎴愬姛"); - this.refreshResult(); //鍒锋柊椤甸潰 - }) - }, - - numberEdit(item) { - - let fstand = "鈭�"; - let fcheckResu = 1; - - if (item.fcheckResu == '1') { - fstand = "脳"; - fcheckResu = 0; - } - - this.$post({ - url: "/RKJ/UpdateQSItemDetail", - data: { - id: item.id, - pid: item.pid, - gid: item.gid, - fstand: fstand, - fcheckResu: fcheckResu, - updateBy: this.$loginInfo.account, - } - }).then(res => { - this.$showMessage("淇敼鎴愬姛"); - this.refreshResult(); //鍒锋柊椤甸潰 - }) - }, - saveRemarks() { - this.remarksPopup = !this.remarksPopup; - this.remarks = this.formData.remarks; - }, - editRemarks() { - if (this.remarks) { - //saveRemarksGid this.$post({ url: "/RKJ/saveRemarksPid", data: { @@ -365,97 +429,385 @@ remarks: this.remarks } }).then(res => { - if(res.data.tbBillList > 0){ + if (res.data.tbBillList > 0) { this.formData.remarks = this.remarks; this.remarksPopup = !this.remarksPopup; this.$showMessage("淇濆瓨鎴愬姛"); } }) + }, + highlightRow(index) { + this.tableData[index].isHighlighted = true; + }, + unhighlightRow(index) { + this.tableData[index].isHighlighted = false; } + }, + onLoad(options) { + let params = options; + this.id = params["id"]; + this.billNo = params["billNo"]; + this.gid = params["gid"]; + this.releaseNo = params["releaseNo"]; + this.refreshResult(); } - }, - onLoad(options) { - //options涓寘鍚簡url闄勫甫鐨勫弬鏁� - let params = options; - - this.id = params["id"]; - this.billNo = params["billNo"]; - this.gid = params["gid"]; - - this.refreshResult(); - } -} + }; </script> <style> -.form-group { - display: flex; - align-items: center; - border: 1px solid #c9c9c9; - background-color: #d4d4d4; -} - -.form-label { - margin-bottom: 0; - padding: 5px; -} - -.form-input { - flex: 1; - margin-bottom: 0; - padding: 5px; -} - -/* 榛樿鏍峰紡 */ -.list-container { - height: calc(100vh - 750px); - /* 璁剧疆鍒楄〃瀹瑰櫒鐨勯珮搴︿负鍓╀綑绌洪棿锛屽苟鍑忓幓琛ㄥ崟瀹瑰櫒鐨勯珮搴� */ - overflow-y: auto; - /* 鍏佽鍒楄〃瀹瑰櫒鍨傜洿婊氬姩 */ - padding: 10px; - /* 鍙�夛細娣诲姞涓�浜涘唴杈硅窛锛屼娇鍒楄〃鍐呭鏇寸編瑙� */ -} - -/* 鍦ㄥ皬灞忓箷璁惧涓婏紝閲嶇疆楂樺害涓洪�傚簲灞忓箷 */ -@media (max-width: 768px) { - .list-container { - height: calc(100vh - 485px); - /* 閫傚綋璋冩暣楂樺害 */ + /* 鍩虹鏍峰紡 */ + .container { + padding: 8px; + background-color: #f8fafc; } -} -.form-container { - /* 璁剧疆琛ㄥ崟瀹瑰櫒鐨勯珮搴︼紝浣垮叾鍙互婊氬姩 */ - overflow-y: auto; - /* 鍏佽琛ㄥ崟瀹瑰櫒鍨傜洿婊氬姩 */ - padding: 10px; - /* 鍙�夛細娣诲姞涓�浜涘唴杈硅窛锛屼娇琛ㄥ崟鍐呭鏇寸編瑙� */ -} + /* 椤甸潰鏍囬 */ + .page-header { + margin-bottom: 8px; + padding-bottom: 4px; + border-bottom: 1px solid #e2e8f0; + } -.overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; -} + .page-title { + font-size: 18px; + font-weight: 700; + color: #1e293b; + } -.popup { - background-color: #fff; - padding: 20px; - border: 1px solid #ccc; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); - width: 68vw; - /* 璁剧疆瀹藉害涓鸿鍙e搴︾殑80% */ - height: 25vh; - /* 璁剧疆楂樺害涓鸿鍙i珮搴︾殑80% */ -} + /* 妯″潡鍗$墖鏍峰紡 */ + .module-card { + background-color: #fff; + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); + padding: 12px; + margin-bottom: 8px; + border: none; + transition: transform 0.2s, box-shadow 0.2s; + } -.edit { - background-color: white; -} + .module-card:hover { + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); + } + + .mb-2 { + margin-bottom: 8px; + } + + .module-header { + margin-bottom: 8px; + padding-bottom: 4px; + border-bottom: 1px solid #e2e8f0; + } + + .module-title { + font-size: 16px; + font-weight: 600; + color: #1e293b; + } + + /* 琛ㄥ崟缃戞牸甯冨眬 */ + .form-grid { + display: grid; + grid-template-columns: repeat(12, 1fr); + gap: 8px; + } + + .form-group { + display: flex; + flex-direction: column; + border: 1px solid #e2e8f0; + border-radius: 6px; + padding: 8px; + background-color: #f8fafc; + transition: all 0.2s; + } + + .form-group:hover { + border-color: #94a3b8; + transform: translateY(-1px); + } + + .col-3 { grid-column: span 3; } + .col-4 { grid-column: span 4; } + .col-6 { grid-column: span 6; } + .col-12 { grid-column: span 12; } + + .form-label { + font-size: 14px; + color: #475569; + margin-bottom: 2px; + font-weight: 500; + } + + .form-input { + padding: 4px 5px; /* 鍐呰竟璺濈缉灏忎竴鍗� */ + border: 1px solid #cbd5e1; + border-radius: 4px; + font-size: 14px; + color: #1e293b; + background-color: rgba(59, 130, 246, 0.05); /* 鑻ラ殣鑻ョ幇鐨勮摑鑹茶儗鏅� */ + height: 24px; /* 楂樺害缂╁皬绾�1/3锛岃瑙変笂鎺ヨ繎涓�鍗� */ + transition: border-color 0.2s; + } + + .form-input:disabled { + background-color: #f1f5f9; + color: #94a3b8; + cursor: not-allowed; + } + + .quality-requirement { + min-width: 0; + flex-grow: 1; + } + + /* 鍚堟牸/涓嶅悎鏍肩粨鏋滄牱寮� */ + .result-pass { + background-color: rgba(16, 185, 129, 0.1) !important; /* 娴呯豢鑹茶儗鏅� */ + border-color: #10b981 !important; /* 缁胯壊杈规 */ + color: #059669 !important; /* 娣辩豢鑹叉枃瀛� */ + } + + .result-fail { + background-color: rgba(239, 68, 68, 0.1) !important; /* 娴呯孩鑹茶儗鏅� */ + border-color: #ef4444 !important; /* 绾㈣壊杈规 */ + color: #dc2626 !important; /* 娣辩孩鑹叉枃瀛� */ + } + + /* 璀︾ず鎻愮ず鏍峰紡 */ + .warning-tip { + background-color: #fef3c7; + border-color: #fbbf24; + } + + .tip-text { + font-size: 12px; + color: #92400e; + line-height: 1.4; + } + + /* 缁撴灉杈撳叆妗嗘牱寮� */ + .result-input { + border-color: #3b82f6; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); + } + + /* 鎸夐挳鏍峰紡 */ + .submit-btn { + display: flex; + align-items: center; + justify-content: center; + padding: 8px 16px; + border-radius: 18px; + font-size: 14px; + font-weight: 500; + background-color: #3b82f6; + color: white; + width: fit-content; + margin-top: 8px; + border: none; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 3px 8px rgba(59, 130, 246, 0.15); + } + + .submit-btn:hover { + background-color: #2563eb; + transform: translateY(-1px); + box-shadow: 0 4px 10px rgba(59, 130, 246, 0.2); + } + + /* 琛ㄦ牸鏍峰紡 */ + .table-container { + margin-bottom: 8px; + } + + .custom-table { + width: 100%; + font-size: 12px; + border-collapse: collapse; + } + + .table-header-row { + background-color: #3b82f6; + color: white; + } + + .th { + padding: 8px 10px; + text-align: center; + font-weight: 500; + } + + .table-row td { + padding: 8px 10px; + border: 1px solid #e2e8f0; + } + + .row-success td { + background-color: #ecfdf5; + } + + .row-warning td { + background-color: #fef3c7; + } + + /* 鎿嶄綔鎸夐挳 */ + .action-buttons-container { + display: flex; + justify-content: center; + margin: 12px 0; + } + + .action-btn { + padding: 8px 20px; + border-radius: 18px; + font-size: 14px; + font-weight: 500; + background-color: #f59e0b; + color: white; + border: none; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 3px 8px rgba(245, 158, 11, 0.15); + margin: 0 6px; + } + + .action-btn:hover { + background-color: #d97706; + transform: translateY(-1px); + box-shadow: 0 4px 10px rgba(245, 158, 11, 0.2); + } + + /* 寮瑰嚭灞傛牱寮� */ + .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + } + + .popup { + max-width: 90%; + max-height: 90vh; + overflow-y: auto; + border-radius: 10px; + background-color: white; + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); + animation: popIn 0.2s ease; + } + + @keyframes popIn { + from { transform: scale(0.95); opacity: 0; } + to { transform: scale(1); opacity: 1; } + } + + .popup-header { + padding: 12px 16px; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + } + + .popup-title { + font-size: 16px; + font-weight: 600; + color: #1e293b; + } + + .close-btn { + background: none; + border: none; + font-size: 20px; + cursor: pointer; + color: #64748b; + } + + .close-btn:hover { + color: #1e293b; + } + + .popup-actions { + display: flex; + justify-content: flex-end; + margin-top: 16px; + padding: 0 16px 16px; + } + + .btn-outline { + background-color: white; + color: #64748b; + border: 1px solid #e2e8f0; + box-shadow: none; + } + + .btn-outline:hover { + background-color: #f8fafc; + } + + /* 鍥剧墖棰勮 */ + .image-container { + text-align: center; + padding: 12px 0; + } + + .preview-image { + cursor: pointer; + border-radius: 8px; + transition: transform 0.2s ease; + max-height: 200px; + object-fit: contain; + } + + .preview-image:hover { + transform: scale(1.02); + } + + /* 鍝嶅簲寮忓竷灞� */ + @media (max-width: 768px) { + .form-grid { + grid-template-columns: repeat(6, 1fr); + gap: 6px; + } + + .col-3 { grid-column: span 3; } + .col-4 { grid-column: span 2; } + .col-6 { grid-column: span 6; } + .col-12 { grid-column: span 6; } + + .module-card { + padding: 10px; + border-radius: 6px; + } + + .page-title { + font-size: 16px; + } + + .module-title { + font-size: 14px; + } + + .form-label, .form-input, .th, .table-row td, .action-btn, .submit-btn { + font-size: 12px; + } + + .form-input { + height: 22px; + padding: 3px 4px; + } + + .submit-btn, .action-btn { + padding: 6px 16px; + border-radius: 16px; + } + } </style> \ No newline at end of file -- Gitblit v1.9.3