From 17d3d61e12f537eb2ee7ec6f4de1590102377afa Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期二, 29 四月 2025 08:18:15 +0800 Subject: [PATCH] 代码提交 --- pages/QC/SJ/detail.vue | 1101 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 707 insertions(+), 394 deletions(-) diff --git a/pages/QC/SJ/detail.vue b/pages/QC/SJ/detail.vue index 4de2ef6..2cde35f 100644 --- a/pages/QC/SJ/detail.vue +++ b/pages/QC/SJ/detail.vue @@ -1,438 +1,751 @@ <template> - <view> - <view class="form-container"> - <form :modelValue="formData"> - <view class="form-group"> - <label class="form-label">椤圭洰鍚嶇О:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.projName"/> - </view> - <view class="form-group"> - <label class="form-label">璐ㄩ噺瑕佹眰:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.itemMod"/> - </view> - <view class="form-group"> - <label class="form-label">妫�楠屾柟娉�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.inspectionMethod"/> - </view> - <view class="form-group"> - <label class="form-label">浣跨敤浠〃:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.usingInstruments"/> - </view> - <view class="form-group"> - <label class="form-label">妫�楠屾暟:</label> - <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.minValue"/> - </view> - <view class="form-group"> - <label class="form-label">鏍囧噯鍊�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.standardValue"/> - </view> - <view class="form-group"> - <label class="form-label">涓婇檺:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.maxValue"/> - </view> - <view class="form-group"> - <label class="form-label">鏇存柊浜�:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.updater"/> - </view> - <view class="form-group"> - <label class="form-label">鏇存柊鏃堕棿:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.updateTime"/> - </view> - <view class="form-group"> - <label class="form-label">棰勮缁撴灉:</label> - <input class="form-input" disabled="true" type="text" v-model="formData.result"/> - </view> - <view class="form-group"> - <label class="form-label">涓嶅悎鏍兼弿杩�:</label> - <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> - <view class="form-group edit"> - <label class="form-label">妫�娴嬬粨鏋�:</label> - <input class="form-input" type="number" v-model="formData.fcheckResu"/> - </view> - <button type="primary" v-if="tableData.length < formData.levelNum" @click="submit">淇濆瓨</button> - </form> - </view> - <view> - <img v-if="isShowImg" :src="base64Image" style="width:100%" @click="previewImage"/> - </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> - </uni-tr> - <uni-tr v-for="(item, index) in tableData" :key="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"/> - </uni-td> - <uni-td align="center"> - <input class="form-input" disabled="true" type="text" v-model="item.fcheckResu"/> - </uni-td> - <uni-td> - <view class="uni-group edit"> - <button type="warn" v-if="isNumber" @click="toDetail(item)">淇敼</button> - <button type="warn" v-if="!isNumber" @click="numberEdit(item)">{{ editResult(item.fcheckResu) }}</button> - </view> - </uni-td> - </uni-tr> - </uni-table> - </view> + <view class="container"> + <!-- 澶撮儴 --> + <view class="header"> + <view class="title">棣栨妫�楠岄」鐩槑缁�</view> + <view class="order-number">褰撳墠妫�楠屽崟鍙�: {{releaseNo}}</view> + </view> - <view class="plus-button"> - <button type="warn" @click="saveRemarks">娣诲姞涓嶅悎鏍兼弿杩�</button> - </view> + <!-- 鏍囩鏍� --> + <view class="tabs"> + <view v-for="(tab, index) in tabs" :key="index" class="tab" :class="{active: currentTab === index}" + @tap="switchTab(index,tab.id)"> + {{ tab.projName }} + </view> + </view> + <view class="tab-content"> + <!-- 鍩烘湰淇℃伅 --> + <view class="section"> + <view class="section-header">鍩烘湰淇℃伅</view> + <view class="section-body"> + <view class="info-grid"> + <view class="info-item"> + <view class="info-label">椤圭洰鍚嶇О</view> + <view class="info-value">{{ formData.projName }}</view> + </view> + <view class="info-item"> + <view class="info-label">浣跨敤浠〃</view> + <view class="info-value">{{ formData.usingInstruments }}</view> + </view> + <view class="info-item"> + <view class="info-label">妫�楠屾暟閲�</view> + <view class="info-value">{{ formData.levelNum }}</view> + </view> - <view v-if="remarksPopup" class="overlay"> - <view class="popup"> - <h3>淇敼涓嶅悎鏍兼弿杩�</h3> - <form> - <view class="form-group"> - <label class="form-label">涓嶅悎鏍兼弿杩�:</label> - <input class="form-input" type="text" v-model="remarks"/> - </view> - <button type="warn" @click="editRemarks">淇敼</button> - <button @click="remarksPopup = !remarksPopup">鍙栨秷</button> - </form> - </view> - </view> + <view v-if="formData.minValue!=null" class="info-item"> + <view class="info-label">涓嬮檺</view> + <view class="info-value">{{ formData.minValue }}</view> + </view> + <view v-if="formData.standardValue!=null" class="info-item"> + <view class="info-label">鏍囧噯鍊�</view> + <view class="info-value">{{ formData.standardValue }}</view> + </view> + <view v-if="formData.maxValue!=null" class="info-item"> + <view class="info-label">涓婇檺</view> + <view class="info-value">{{ formData.maxValue }}</view> + </view> + </view> + </view> + </view> - <view v-if="showPopup" class="overlay"> - <view class="popup"> - <h3>淇敼妫�楠岀粨鏋�</h3> - <form :modelValue="editData"> - <view class="form-group"> - <label class="form-label">妫�楠岀粨鏋�:</label> - <input class="form-input" type="text" v-model="editData.fcheckResu"/> - </view> - <button type="warn" @click="eidt">淇敼</button> - <button @click="showPopup = !showPopup">鍙栨秷</button> - </form> - </view> - </view> - </view> + <!-- 瑙勬牸瑕佹眰 --> + <view class="section"> + <view class="section-header">璐ㄩ噺瑕佹眰</view> + <view class="section-body"> + <text class="spec-text">{{ formData.itemMod }}</text> + </view> + </view> + <!-- 瑙勬牸瑕佹眰 --> + <view class="section"> + <view class="section-header">妫�楠屾弿杩�</view> + <view class="section-body"> + <text class="spec-text">{{ formData.inspectionMethod }}</text> + </view> + </view> + <!-- 妫�楠岀粨鏋� --> + <view class="section"> + <view class="section-header">妫�楠岀粨鏋�</view> + <view class="section-body"> + <view v-if="formData.result!=null" class="result-preview"> + <view class="info-label">棰勮缁撴灉</view> + <view class="info-value"><b>{{formData.result}}</b></view> + </view> + + <view v-if="formData.remarks!=null" class="result-ng"> + <view class="info-label">涓嶈壇鎻忚堪</view> + <view class="info-value danger">{{formData.remarks}}</view> + </view> + </view> + </view> + + <!-- 缁撴灉褰曞叆 --> + <view class="section"> + <view class="section-header">妫�楠岀粨鏋滃綍鍏�</view> + <view class="section-body"> + <view class="input-group input1"> + <view class="input-wrapper"> + + <button class="btn upload-btn" @tap="chooseImage"> + <uni-icons type="upload" size="16" color="#fff"></uni-icons> + 涓婁紶/鏌ョ湅鍥剧墖 + </button> + <button v-if="this.current" class="btn upload-btn" @tap="upRemarks"> + <uni-icons type="compose" size="16" color="#fff"></uni-icons> + 涓嶈壇鎻忚堪 + </button> + <input v-if="(tableData.length < formData.levelNum)" @input="search($event)" + v-model="inputTxt" type="text" class="result-input" placeholder="璇疯緭鍏ユ楠岀粨鏋�..." + placeholder-class="placeholder" /> + <button v-if="(tableData.length < formData.levelNum)" + style="margin: 0px;background-color: #3498db;color:#ffffff ;" class="btn primary-btn" + @tap="saveResult">淇濆瓨缁撴灉</button> + </view> + </view> + + <view class="input-group input2"> + <view class="input-wrapper"> + + <button class="btn upload-btn" @tap="chooseImage"> + <uni-icons type="upload" size="16" color="#fff"></uni-icons> + 涓婁紶/鏌ョ湅鍥剧墖 + </button> + <button v-if="this.current" class="btn upload-btn" @tap="upRemarks"> + <uni-icons type="compose" size="16" color="#fff"></uni-icons> + 涓嶈壇鎻忚堪 + </button> + </view> + <view class="input-wrapper" style="margin-top: 15px;"> + + <input v-if="(tableData.length < formData.checkQyt)" @input="search($event)" + v-model="inputTxt" type="text" class="result-input" placeholder="璇疯緭鍏ユ楠岀粨鏋�..." + placeholder-class="placeholder" /> + <button v-if="(tableData.length < formData.checkQyt)" + style="margin: 0px;background-color: #3498db;color:#ffffff ;" class="btn primary-btn" + @tap="saveResult">淇濆瓨缁撴灉</button> + </view> + </view> + </view> + </view> + + <!-- 缁撴灉琛ㄦ牸 --> + <view v-if="tableData.length>0" class="table-container"> + <view class="table-header"> + <view class="th">缂栧彿</view> + <view class="th">妫�楠岀粨鏋�<i style="color: rgb(0 212 68);" + v-if="!(tableData.length < formData.levelNum)">锛堣緭鍏ュ凡瀹屾垚锛�</i></view> + <view class="th" v-if="current">鎿嶄綔</view> + </view> + + <view v-for="(item, index) in tableData" :key="index" class="table-row"> + <view class="td">{{ index + 1 }}</view> + <view v-if="!isNumber" class="td"> + <view :class="['result-badge', 'OK']" v-if="item.fcheckResu==1"> + OK + </view> + <view :class="['result-badge', 'NG']" v-if="item.fcheckResu==0"> + NG + </view> + </view> + <view v-if="isNumber" class="td"> + <view :class="['result-badge', item.fcheckResu]"> + {{ item.fcheckResu }} + </view> + </view> + <view class="td" v-if="current"> + <button v-if="!isNumber" class="btn danger-btn" @tap="toggleResult(item)"> + {{ editResult(item.fcheckResu) }} + </button> + <button v-if="isNumber" class="btn danger-btn" @tap="toDetail(item)"> + 淇敼 + </button> + </view> + </view> + </view> + <view v-if="remarksPopup" class="overlay"> + <view class="popup"> + <h3>淇敼涓嶅悎鏍兼弿杩�</h3> + <form> + <view class="form-group"> + <label class="form-label">涓嶅悎鏍兼弿杩�:</label> + <input class="form-input" type="text" v-model="remarks" /> + </view> + <button class="updateBut" type="warn" @click="editRemarks">淇敼</button> + <button @click="remarksPopup = !remarksPopup">鍙栨秷</button> + </form> + </view> + </view> + <view v-if="showPopup" class="overlay"> + <view class="popup"> + <h3>淇敼妫�楠岀粨鏋�</h3> + <form :modelValue="editData"> + <view class="form-group"> + <label class="form-label">妫�楠岀粨鏋�:</label> + <input class="form-input" type="text" v-model="editData.fcheckResu" /> + </view> + <button type="warn" @click="eidt">淇敼</button> + <button @click="showPopup = !showPopup">鍙栨秷</button> + </form> + </view> + </view> + + </view> + </view> </template> <script> -export default { - data() { - return { - formData: {}, - isNumber: false, - checkItem: "", - id: 0, - gid: 0, - billNo: "", - showPopup: false, - editData: {}, - tableData: [], - base64Image: "", - isShowImg: false, - remarks: "", - remarksPopup: false, - } - }, - methods: { + import { + compile + } from "vue"; - previewImage() { - uni.previewImage({ - urls: [this.base64Image], - }); - }, - editResult(fcheckResu) { - if (fcheckResu == '1') { - return "鏀逛负涓嶅悎鏍�"; - } else { - return "鏀逛负鍚堟牸"; - } - }, - submit() { + export default { + data() { + return { + formData: {}, + tableData: {}, + mainId: '', + isNumber: false, + currentTab: 0, + tabs: [], + inputResult: '', + remarksPopup: false, + showPopup: false, + editData: {}, + inputTxt: '', + formID: '', + releaseNo: '', + current: false + } + }, + methods: { + switchTab(index, mainIds) { + this.currentTab = index + this.mainId = mainIds; + this.refreshResult(); + }, + //妫�娴嬭緭鍏ユ鐨勮緭鍏ワ紝骞剁粰鍙橀噺璧嬪�� + search(event) { + this.formData.fcheckResu = event.detail.value; + }, + toggleResult(item) { + let fstand = "鈭�"; + let fcheckResu = 1; - let count = this.formData.levelNum; - let fstand = "鈭�"; + if (item.fcheckResu == '1') { + fstand = "脳"; + fcheckResu = 0; + } - //鏈夋渶澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁绗﹀悎鏍囧噯鍊兼洿鏂板垽瀹氱粨鏋滐紝娌℃湁鏈�澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁閫氳繃妫�楠屽垽瀹氱粨鏋� - if (this.formData.maxValue && this.formData.minValue) { + this.$post({ + url: "/SJ/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(); //鍒锋柊椤甸潰 + }) + }, + chooseImage() { + uni.navigateTo({ + url: 'ImageItem?id=' + this.formData.id + }); + }, + upRemarks() { + this.remarksPopup = true; + }, + saveResult() { + let count = this.formData.levelNum; + let fstand = "鈭�"; - if (!this.formData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠屽��"); - return; - } + //鏈夋渶澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁绗﹀悎鏍囧噯鍊兼洿鏂板垽瀹氱粨鏋滐紝娌℃湁鏈�澶у�煎拰鏈�灏忓�煎氨鏍规嵁鏄惁閫氳繃妫�楠屽垽瀹氱粨鏋� + if (this.formData.maxValue && this.formData.minValue) { - if (this.formData.fcheckResu >= this.formData.minValue && this.formData.fcheckResu <= this.formData.maxValue) { - fstand = "鈭�" - } else { - fstand = "脳"; - } - count = 1; - } else { + if (!this.formData.fcheckResu) { + this.$showMessage("璇疯緭鍏ユ楠屽��"); + return; + } - if (!this.formData.fcheckResu) { - this.formData.fcheckResu = 1 - } + if (this.formData.fcheckResu >= this.formData.minValue && this.formData.fcheckResu <= this.formData + .maxValue) { + fstand = "鈭�" + } else { + fstand = "脳"; + } + count = 1; + } else { - 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; - } + if (!this.formData.fcheckResu) { + this.formData.fcheckResu = 1 + } - this.formData.updater = this.$loginInfo.account; + 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; + } - this.$post({ - url: "/SJ/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(); - }) + this.formData.updater = this.$loginInfo.account; - }, - refreshResult() { - this.$post({ - url: "/SJ/getQSItems", - data: { - id: this.id - } - }).then(res => { - this.formData = res.data.tbBillList[0]; - this.formData.billNo = this.billNo; - 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; - } - }) + this.$post({ + url: "/SJ/SetQSItemDetail", + data: { + pid: this.mainId, + gid: this.formID, + fstand: fstand, + fcheckResu: this.formData.fcheckResu, + updateBy: this.formData.updater, + count: count + } + }).then(res => { + this.formData.fcheckResu = null; + this.$showMessage("淇濆瓨鎴愬姛"); + this.refreshResult(); + }) - this.$post({ - url: "/SJ/getQSItemDetail", - data: { - pid: this.id, - gid: this.gid - } - }).then(res => { - this.tableData = res.data.tbBillList; - }) - }, - toDetail(item) { - this.showPopup = !this.showPopup; - this.editData = item; - }, - eidt() { - if (!this.editData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠岀粨鏋�"); - } + }, + goBack() { + uni.navigateBack() + }, + //鑾峰彇妫�楠屽崟璇︽儏 + refreshResult() { + this.$post({ + url: "/SJ/getQSItems", + data: { + id: this.mainId + } + }).then(res => { - if (this.formData.fcheckResu == this.editData.fcheckResu) { - this.$showMessage("淇敼鎴愬姛"); - return; - } + this.formData = res.data.tbBillList[0]; + this.$post({ + url: "/SJ/getQSItemDetail", + data: { + pid: this.mainId, + gid: this.formID + } + }).then(res => { + this.tableData = res.data.tbBillList; + }) + // this.tableData = res.data.tbBillList.itemXj02s; - let fstand = "鈭�"; + if (this.formData.imageData) { + this.isShowImg = true; + this.base64Image = 'data:image/jpeg;base64,' + this.formData.imageData; + } - if (this.formData.maxValue && this.formData.minValue) { + //fupAllow fdownAllow standardValue + if (this.formData.maxValue && this.formData.minValue && this.formData.standardValue) { + this.isNumber = true; + } else { + this.isNumber = false; + } + }) + }, + editResult(fcheckResu) { + if (fcheckResu == '1') { + return "鏀逛负涓嶅悎鏍�"; + } else { + return "鏀逛负鍚堟牸"; + } + }, + toDetail(item) { + this.showPopup = !this.showPopup; + this.editData = item; + }, + editRemarks() { + if (this.remarks) { + //saveRemarksGid + this.$post({ + url: "/SJ/saveRemarksPid", + data: { + pid: this.formData.id, + remarks: this.remarks + } + }).then(res => { + if (res.data.tbBillList > 0) { + this.formData.remarks = this.remarks; + this.remarksPopup = !this.remarksPopup; + this.$showMessage("淇濆瓨鎴愬姛"); + } + }) + } else { + this.$post({ + url: "/SJ/saveRemarksPid", + data: { + pid: this.formData.id, + remarks: '' + } + }).then(res => { + if (res.data.tbBillList > 0) { + this.formData.remarks = this.remarks; + this.remarksPopup = !this.remarksPopup; + this.$showMessage("淇濆瓨鎴愬姛"); + } + }) + } + }, + eidt() { - if (!this.editData.fcheckResu) { - this.$showMessage("璇疯緭鍏ユ楠屽��"); - return; - } + if (!this.editData.fcheckResu) { + this.$showMessage("璇疯緭鍏ユ楠岀粨鏋�"); + } - if (this.editData.fcheckResu >= this.formData.minValue && this.editData.fcheckResu <= this.formData.maxValue) { - this.editData.isPass = 1 - } else { - this.editData.isPass = 0 - fstand = "脳"; - } - } else { + if (this.formData.fcheckResu == this.editData.fcheckResu) { + this.$showMessage("淇敼鎴愬姛"); + return; + } - if (!this.editData.fcheckResu) { - this.editData.fcheckResu = 1 - } + let fstand = "鈭�"; - if (this.editData.fcheckResu == 0 || this.editData.fcheckResu == 1) { - if (this.editData.fcheckResu == 0) { - fstand = "脳"; - } - } else { - this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); - return; - } - } + if (this.formData.maxValue && this.formData.minValue) { - this.editData.updater = this.$loginInfo.account; + if (!this.editData.fcheckResu) { + this.$showMessage("璇疯緭鍏ユ楠屽��"); + return; + } - this.$post({ - url: "/SJ/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) { + if (parseFloat(this.editData.fcheckResu) >= parseFloat(this.formData.fdownAllow) && parseFloat(this + .editData + .fcheckResu) <= parseFloat(this.formData.fupAllow)) { + this.editData.isPass = 1 + } else { + this.editData.isPass = 0 + fstand = "脳"; + } + } else { - let fstand = "鈭�"; - let fcheckResu = 1; + if (!this.editData.fcheckResu) { + this.editData.fcheckResu = 1 + } - if (item.fcheckResu == '1') { - fstand = "脳"; - fcheckResu = 0; - } + if (this.editData.fcheckResu == 0 || this.editData.fcheckResu == 1) { + if (this.editData.fcheckResu == 0) { + fstand = "脳"; + } + } else { + this.$showMessage("鏃犳爣鍑嗗�兼椂锛屾楠岀粨鏋滃彧鑳戒负0鎴�1!"); + return; + } + } - this.$post({ - url: "/SJ/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: "/SJ/saveRemarksPid", - data: { - pid: this.formData.id, - remarks: this.remarks - } - }).then(res => { - if (res.data.tbBillList > 0) { - this.formData.remarks = this.remarks; - this.remarksPopup = !this.remarksPopup; - this.$showMessage("淇濆瓨鎴愬姛"); - } - }) - } - } - }, - onLoad(options) { -//options涓寘鍚簡url闄勫甫鐨勫弬鏁� - let params = options; + this.editData.updater = this.$loginInfo.account; - this.id = params["id"]; - this.billNo = params["billNo"]; - this.gid = params["gid"]; - - this.refreshResult(); - } -} + this.$post({ + url: "/SJ/UpdateQSItemDetail", + data: { + id: this.editData.id, + pid: this.mainId, + gid: this.formID, + fstand: fstand, + fcheckResu: this.editData.fcheckResu, + updateBy: this.editData.updater, + } + }).then(res => { + this.showPopup = !this.showPopup; + this.$showMessage("淇敼鎴愬姛"); + this.refreshResult(); //鍒锋柊椤甸潰 + }) + }, + }, + onLoad(options) { + //options涓寘鍚簡url闄勫甫鐨勫弬鏁� + let params = options; + this.mainId = params["mainId"]; + this.refreshResult(); + this.formID = params["formID"]; + this.releaseNo = params["releaseNo"]; + this.currentTab = parseInt(params["index"]); + this.current = params["current"] === 'true' ? true : false; + this.$post({ + url: "/SJ/getQSItems", + data: { + pid: this.formID + } + }).then(res1 => { + let tableData = res1.data.tbBillList + //褰撳凡妫�楠屼釜鏁伴兘涓嶄负绌烘椂鎸夌収妫�娴嬬粨鏋勬帓搴� + tableData.sort((a, b) => { + if (a.result === '鏈畬鎴�' && b.result === '鍚堟牸') { + return -1; + } else if (a.result === '鍚堟牸' && b.result === '鏈畬鎴�') { + return 1; + } else { + return 0; + } + }); + this.tabs = tableData; + // if (this.tableData.length === 0) { + // this.isShowTable = true; + // } + this.tableData.forEach((item, index) => { + this.set(item, 'current', this.current); + }); + console.log(this.tableData); + }) + } + } </script> -<style> +<style lang="scss"> + $primary-color: #409EFF; + $success-color: #67C23A; + $danger-color: #F56C6C; + $border-color: #DCDFE6; + $bg-color: #f5f7fa; -.form-group { - display: flex; - align-items: center; - border: 1px solid #c9c9c9; - background-color: #d4d4d4; -} + .container { + padding: 20px; + background-color: #fff; + } -.form-label { - margin-bottom: 0; - padding: 5px; -} + .header { + padding: 20px; + border-bottom: 1px solid $border-color; + background: linear-gradient(90deg, #f0f7ff, #e1f0ff); -.form-input { - flex: 1; - margin-bottom: 0; - padding: 5px; -} + .title { + font-size: 24px; + color: #333; + margin-bottom: 10px; + } -/* 榛樿鏍峰紡 */ -.list-container { - height: calc(100vh - 750px); - /* 璁剧疆鍒楄〃瀹瑰櫒鐨勯珮搴︿负鍓╀綑绌洪棿锛屽苟鍑忓幓琛ㄥ崟瀹瑰櫒鐨勯珮搴� */ - overflow-y: auto; - /* 鍏佽鍒楄〃瀹瑰櫒鍨傜洿婊氬姩 */ - padding: 10px; - /* 鍙�夛細娣诲姞涓�浜涘唴杈硅窛锛屼娇鍒楄〃鍐呭鏇寸編瑙� */ -} + .order-number { + color: #666; + font-size: 14px; + } + } -/* 鍦ㄥ皬灞忓箷璁惧涓婏紝閲嶇疆楂樺害涓洪�傚簲灞忓箷 */ -@media (max-width: 768px) { - .list-container { - height: calc(100vh - 485px); - /* 閫傚綋璋冩暣楂樺害 */ - } -} + .tabs { + display: flex; + background-color: $bg-color; + border-bottom: 1px solid $border-color; -.form-container { - /* 璁剧疆琛ㄥ崟瀹瑰櫒鐨勯珮搴︼紝浣垮叾鍙互婊氬姩 */ - overflow-y: auto; - /* 鍏佽琛ㄥ崟瀹瑰櫒鍨傜洿婊氬姩 */ - padding: 10px; - /* 鍙�夛細娣诲姞涓�浜涘唴杈硅窛锛屼娇琛ㄥ崟鍐呭鏇寸編瑙� */ -} + .tab { + flex: 1; + text-align: center; + padding: 12px 0; + border-right: 1px solid $border-color; + color: #666; + transition: all 0.3s; -.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; -} + &:last-child { + border-right: none; + } -.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% */ -} + &.active { + background-color: #fff; + color: $primary-color; + font-weight: bold; + position: relative; -.edit { - background-color: white; -} + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 2px; + background-color: $primary-color; + } + } + } + } + + .section { + margin: 20px 0; + border: 1px solid $border-color; + border-radius: 4px; + + &-header { + padding: 12px 16px; + background-color: $bg-color; + border-bottom: 1px solid $border-color; + font-weight: bold; + } + + &-body { + padding: 16px; + } + } + + .info-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 16px; + + .info-item { + margin-bottom: 12px; + + .info-label { + color: #909399; + font-size: 14px; + margin-bottom: 4px; + } + + .info-value { + color: #333; + font-weight: 500; + } + } + } + + .input-group { + margin: 16px 0; + + .input-wrapper { + display: flex; + gap: 12px; + + .result-input { + flex: 1; + height: 45px; + padding: 0 12px; + border: 1px solid $border-color; + border-radius: 4px; + font-size: 14px; + } + + .upload-btn { + background-color: #909399; + color: #fff; + padding: 0 10px; + margin: 0; + //height: 40rpx; + } + } + } + + .table-container { + border: 1px solid $border-color; + border-radius: 4px; + margin-top: 20px; + + .table-header { + display: flex; + background-color: $bg-color; + border-bottom: 1px solid $border-color; + + .th { + flex: 1; + padding: 12px; + font-weight: bold; + } + } + + .table-row { + display: flex; + border-bottom: 1px solid $border-color; + padding: 12px; + + &:last-child { + border-bottom: none; + } + + .td { + flex: 1; + display: flex; + align-items: center; + } + } + } + + .result-badge { + display: inline-block; + padding: 4px 8px; + border-radius: 4px; + font-size: 12px; + font-weight: bold; + + &.OK { + background-color: rgba($success-color, 0.1); + color: $success-color; + } + + &.NG { + background-color: rgba($danger-color, 0.1); + color: $danger-color; + } + } + + .action-buttons { + margin-top: 20px; + display: flex; + justify-content: flex-end; + gap: 12px; + + .btn { + padding: 8px 20px; + border-radius: 4px; + + &.primary-btn { + background-color: $primary-color; + color: #fff; + + } + + &.cancel-btn { + background-color: #909399; + color: #fff; + } + } + } + + .danger { + color: $danger-color; + } + + .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; + } + + .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% */ + } + + .updateBut { + background-color: #3498db; + color: white; + } + + .input1 { + display: block; + } + + .input2 { + display: none; + } + + /* 鍝嶅簲寮忚璁� */ + @media (max-width: 500px) { + .input1 { + display: none; + } + + .input2 { + display: block; + } + } </style> \ No newline at end of file -- Gitblit v1.9.3