From 1bcee828a3340d5f5642b3dbcf4cd9733072b7aa Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期一, 21 七月 2025 14:24:35 +0800 Subject: [PATCH] LLJ检验结果录入优化:添加自动保存和回车保存功能 --- pages/QC/RKJ/Add.vue | 1578 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 786 insertions(+), 792 deletions(-) diff --git a/pages/QC/RKJ/Add.vue b/pages/QC/RKJ/Add.vue index 9c82542..d4a4d1c 100644 --- a/pages/QC/RKJ/Add.vue +++ b/pages/QC/RKJ/Add.vue @@ -1,837 +1,831 @@ <template> - <view class="container"> - <!-- 澶撮儴 --> - <view class="header"> - <view class="title">鍏ュ簱妫�楠�</view> - <view class="order-number">妫�楠屽崟鍙�: {{formData.releaseNo}}</view> - </view> - - <!-- 鍩烘湰淇℃伅 --> - <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.releaseNo }}</view> - </view> - <view class="info-item"> - <view class="info-label">鍒涘缓浜�</view> - <view class="info-value">{{ formData.createBy }}</view> - </view> - <view class="info-item"> - <view class="info-label">鍒涘缓鏃堕棿</view> - <view class="info-value">{{ formData.createDate }}</view> - </view> - <view class="info-item"> - <view class="info-label">鐢熶骇绾垮埆</view> - <superwei-combox v-if="isUpdate" :candidates="DAA020List" placeholder="璇烽�夋嫨鎴栬緭鍏�" - v-model="formData.lineName" - @select="onDaa020Change" - class="picker-input"></superwei-combox> - <view v-else class="info-value">{{ formData.daa015 }}</view> - </view> - <view class="info-item"> - <view class="info-label">宸ュ崟鍙�</view> - <superwei-combox v-if="isUpdate" :candidates="DAA001List" placeholder="璇烽�夋嫨鎴栬緭鍏�" - v-model="formData.billNo" - @select="onDaa001Change" - class="picker-input"></superwei-combox> - <view v-else class="info-value">{{ formData.billNo }}</view> - </view> - <view class="info-item"> - <view class="info-label">閫佹鎵规</view> - <input class="info-input" type="text" v-model="formData.rbillNo" :readonly="true" /> - </view> - <view class="info-item"> - <view class="info-label">鐗╂枡缂栫爜</view> - <view class="info-value">{{ formData.itemNo }}</view> - </view> - <view class="info-item"> - <view class="info-label">浜у搧鍚嶇О</view> - <view class="info-value">{{ formData.itemName }}</view> - </view> - <view class="info-item"> - <view class="info-label">瑙勬牸鍨嬪彿</view> - <view class="info-value">{{ formData.itemModel }}</view> - </view> - <view class="info-item"> - <view class="info-label">閫佹鏁伴噺</view> - <view class="info-value highlight">{{ formData.quantity }}</view> - </view> - <view class="info-item"> - <view class="info-label">鎶ュ伐浜�</view> - <view class="info-value">{{ formData.bgr }}</view> - </view> - <view class="info-item"> - <view class="info-label">妫�楠岀粨鏋�</view> - <view class="info-value">{{ formData.fcheckResu }}</view> - </view> - <view class="info-item" v-if="formData.remarks"> - <view class="info-label">涓嶅悎鏍兼弿杩�</view> - <view class="info-value danger">{{ formData.remarks }}</view> + <view class="container"> + <!-- 澶撮儴 --> + <view class="header"> + <view class="title">鍏ュ簱妫�楠�</view> + <view class="order-number">妫�楠屽崟鍙�: {{formData.releaseNo}}</view> + </view> + + <!-- 鍩烘湰淇℃伅 --> + <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.releaseNo }}</view> + </view> + <view class="info-item"> + <view class="info-label">鍒涘缓浜�</view> + <view class="info-value">{{ formData.createBy }}</view> + </view> + <view class="info-item"> + <view class="info-label">鍒涘缓鏃堕棿</view> + <view class="info-value">{{ formData.createDate }}</view> + </view> + <view class="info-item"> + <view class="info-label">鐢熶骇绾垮埆</view> + <superwei-combox v-if="isUpdate" :candidates="DAA020List" placeholder="璇烽�夋嫨鎴栬緭鍏�" + v-model="formData.lineName" + @select="onDaa020Change" + class="picker-input"></superwei-combox> + <view v-else class="info-value">{{ formData.daa015 }}</view> + </view> + <view class="info-item"> + <view class="info-label">宸ュ崟鍙�</view> + <superwei-combox v-if="isUpdate" :candidates="DAA001List" placeholder="璇烽�夋嫨鎴栬緭鍏�" + v-model="formData.rBillNo" + @select="onDaa001Change" + class="picker-input"></superwei-combox> + <view v-else class="info-value">{{ formData.rBillNo }}</view> + </view> + <view class="info-item"> + <view class="info-label">閫佹鎵规</view> + <superwei-combox v-if="isUpdate" :candidates="billNoList" placeholder="璇烽�夋嫨" + v-model="formData.billNo" + @select="onBillNoChange" + class="picker-input"></superwei-combox> + <view v-else class="info-value">{{ formData.billNo }}</view> + </view> + <view class="info-item"> + <view class="info-label">鐗╂枡缂栫爜</view> + <view class="info-value">{{ formData.itemNo }}</view> + </view> + <view class="info-item"> + <view class="info-label">浜у搧鍚嶇О</view> + <view class="info-value">{{ formData.itemName }}</view> + </view> + <view class="info-item"> + <view class="info-label">瑙勬牸鍨嬪彿</view> + <view class="info-value">{{ formData.itemModel }}</view> + </view> + <view class="info-item"> + <view class="info-label">閫佹鏁伴噺</view> + <view class="info-value highlight">{{ formData.quantity }}</view> + </view> + <view class="info-item"> + <view class="info-label">鎶ュ伐浜�</view> + <view class="info-value">{{ formData.bgr }}</view> + </view> + <view class="info-item"> + <view class="info-label">妫�楠岀粨鏋�</view> + <view class="info-value">{{ formData.fcheckResu }}</view> + </view> + <view class="info-item" v-if="formData.remarks"> + <view class="info-label">涓嶅悎鏍兼弿杩�</view> + <view class="info-value danger">{{ formData.remarks }}</view> + </view> </view> </view> </view> - </view> - - <!-- 妫�楠岄」鐩� --> - <view class="section" v-if="tableData.length > 0"> - <view class="section-header">妫�楠岄」鐩�</view> - <view class="section-body"> - <view class="inspection-table"> - <table> - <thead> - <tr> - <th width="20%" style="text-align: center;">妫�楠岄」鐩�</th> - <th width="50%" style="text-align: center;">妫�楠屾弿杩�</th> - <th width="15%" style="text-align: center;">璁板綍(鐐瑰嚮)</th> - </tr> - </thead> - <tbody> - <tr v-for="(item, index) in tableData" :key="index"> - <td>{{ item.projName }}</td> - <td> - <view v-if="item.result=='鍚堟牸'" class="watermark approved"> - {{ getStatusText(item.result) }} - </view> - <view v-if="item.result=='涓嶅悎鏍�'" class="watermark rejected"> - {{ getStatusText(item.result) }} - </view> - <view v-if="item.result==null || item.result=='鏈畬鎴�'" class="watermark pending"> - {{ getStatusText(item.result) }} - </view> - <view class="description-text">{{ item.projName }}</view> - </td> - <td> - <button v-if="item.isCheck >= item.levelNum" class="record-btn" @click="toDetail(item)">鏌ョ湅</button> - <button v-else class="record-btn" @click="toDetail(item)">濉啓</button> - </td> - </tr> - </tbody> - </table> - </view> - </view> - </view> - - <!-- 鎿嶄綔鎸夐挳 --> - <view class="action-buttons"> - <button class="action-btn primary" v-if="isUpdate && !isShowTable" @click="getItem">鐢熸垚妫�楠屽崟</button> - <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="toImage">涓婁紶/鏌ョ湅鍥剧墖</button> - <button class="action-btn warning" v-if="!isUpdate && !isShowTable" @click="saveRemarks">娣诲姞涓嶅悎鏍兼弿杩�</button> - <button class="action-btn danger" v-if="!isUpdate && !isShowTable && this.formData.fsubmit != 1" @click="cleanResult">娓呴櫎妫�楠岀粨鏋�</button> - <button class="action-btn primary" v-if="isShowTable" @click="getTable">鑾峰彇妫�楠岄」鐩�</button> - <button class="action-btn primary" v-if="isShowTable && isUpdate" @click="saveTable">鐢熸垚妫�楠岄」鐩�</button> - </view> - - - <!-- 淇敼涓嶅悎鏍兼弿杩板脊鍑烘 --> - <view v-if="showPopup" class="overlay"> - <view class="popup"> - <view class="popup-header"> - <h3>淇敼涓嶅悎鏍兼弿杩�</h3> - </view> - <view class="popup-content"> - <view class="input-group"> - <view class="input-label">涓嶅悎鏍兼弿杩帮細</view> - <input class="input-field" type="text" v-model="remarks" placeholder="璇疯緭鍏ヤ笉鍚堟牸鎻忚堪"/> + + <!-- 妫�楠岄」鐩� --> + <view class="section" v-if="tableData.length > 0"> + <view class="section-header">妫�楠岄」鐩�</view> + <view class="section-body"> + <view class="inspection-table"> + <table> + <thead> + <tr> + <th width="20%" style="text-align: center;">妫�楠岄」鐩�</th> + <th width="50%" style="text-align: center;">妫�楠屾弿杩�</th> + <th width="15%" style="text-align: center;">璁板綍(鐐瑰嚮)</th> + </tr> + </thead> + <tbody> + <tr v-for="(item, index) in tableData" :key="index"> + <td>{{ item.projName }}</td> + <td> + <view v-if="item.result=='鍚堟牸'" class="watermark approved"> + {{ getStatusText(item.result) }} + </view> + <view v-if="item.result=='涓嶅悎鏍�'" class="watermark rejected"> + {{ getStatusText(item.result) }} + </view> + <view v-if="item.result==null || item.result=='鏈畬鎴�'" class="watermark pending"> + {{ getStatusText(item.result) }} + </view> + <view class="description-text">{{ item.projName }}</view> + </td> + <td> + <button v-if="item.isCheck >= item.levelNum" class="record-btn" @click="toDetail(item)">鏌ョ湅</button> + <button v-else class="record-btn" @click="toDetail(item)">濉啓</button> + </td> + </tr> + </tbody> + </table> </view> </view> - <view class="popup-actions"> - <button class="action-btn primary" @click="edit">淇敼</button> - <button class="action-btn secondary" @click="showPopup = !showPopup">鍙栨秷</button> + </view> + + <!-- 鎿嶄綔鎸夐挳 --> + <view class="action-buttons"> + <button class="action-btn primary" v-if="isUpdate && !isShowTable" @click="getItem">鐢熸垚妫�楠屽崟</button> + <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="toImage">涓婁紶/鏌ョ湅鍥剧墖</button> + <button class="action-btn warning" v-if="!isUpdate && !isShowTable" @click="saveRemarks">娣诲姞涓嶅悎鏍兼弿杩�</button> + <button class="action-btn danger" v-if="!isUpdate && !isShowTable && this.formData.fsubmit != 1" @click="cleanResult">娓呴櫎妫�楠岀粨鏋�</button> + <button class="action-btn primary" v-if="isShowTable" @click="getTable">鑾峰彇妫�楠岄」鐩�</button> + <button class="action-btn primary" v-if="isShowTable && isUpdate" @click="saveTable">鐢熸垚妫�楠岄」鐩�</button> + </view> + + + <!-- 淇敼涓嶅悎鏍兼弿杩板脊鍑烘 --> + <view v-if="showPopup" class="overlay"> + <view class="popup"> + <view class="popup-header"> + <h3>淇敼涓嶅悎鏍兼弿杩�</h3> + </view> + <view class="popup-content"> + <view class="input-group"> + <view class="input-label">涓嶅悎鏍兼弿杩帮細</view> + <input class="input-field" type="text" v-model="remarks" placeholder="璇疯緭鍏ヤ笉鍚堟牸鎻忚堪"/> + </view> + </view> + <view class="popup-actions"> + <button class="action-btn primary" @click="edit">淇敼</button> + <button class="action-btn secondary" @click="showPopup = !showPopup">鍙栨秷</button> + </view> </view> </view> - </view> - - </view> -</template> - <script> - export default { - data() { - return { - formData: { - id: "", - releaseNo: "", - createBy: "", - createDate: "", - daa020: "", - itemNo: "", - billNo: "", - catQty: "", - detailMem: "", - taskNo: "", - fcheckResu: "", + </view> + </template> + + <script> + export default { + data() { + return { + formData: { + id: "", + releaseNo: "", + createBy: "", + createDate: "", + daa020: "", + itemNo: "", + billNo: "", + catQty: "", + detailMem: "", + taskNo: "", + fcheckResu: "", + remarks: "", + rbillNo: "" + }, + + DAA020List: [], + + DAA001List: [], + + BillNoList: [], + + lineList: [], + + lineNo: "", + + tableData: [], + + isSubmit: true, + + isUpdate: true, + + isShowTable: false, + remarks: "", - rbillNo: "" - }, - - DAA020List: [], - - DAA001List: [], - - BillNoList: [], - - lineList: [], - - lineNo: "", - - tableData: [], - - isSubmit: true, - - isUpdate: true, - - isShowTable: false, - - remarks: "", - - showPopup: false, - }; - }, - onLoad(options) { - //options涓寘鍚簡url闄勫甫鐨勫弬鏁� - - let params = options; - - if (params["id"]) { - this.isUpdate = false; - this.formData.id = params["id"]; - this.formData.releaseNo = params["releaseNo"]; - //getQaItemXj02 - this.init(); - } else { - //鍒濆鍖栨楠屽崟鍙� - this.$post({ - url: "/RKJ/getMaxReleaseNo" - }).then(res => { - this.formData.releaseNo = res.data.tbBillList; - this.formData.createBy = this.$loginInfo.account; - this.formData.createDate = this.$getDate("yyyy-mm-dd"); - }); - - //杞﹂棿涓嬫媺妗嗙殑鍒濆鍖� - this.$post({ - url: "/XJ/getLineAll" - }).then(res => { - this.lineList = res.data.tbBillList; - this.DAA020List = res.data.tbBillList.map(item => item.lineName); - }) - } - }, - methods: { - getStatusClass(result) { - if (result === '鍚堟牸') return 'status-pass'; - if (result === '涓嶅悎鏍�') return 'status-fail'; - return 'status-pending'; + + showPopup: false, + billNoList: [], + }; }, - - getStatusText(status) { - const statusMap = { - approved: '鍚堟牸', - rejected: '涓嶅悎鏍�', - pending: '寰呯‘璁�' - } - if (status == null || status == '鏈畬鎴�') { - return statusMap['pending'] || '寰呯‘璁�'; - } else if (status == '鍚堟牸') { - return statusMap['approved'] || '鍚堟牸'; + onLoad(options) { + //options涓寘鍚簡url闄勫甫鐨勫弬鏁� + + let params = options; + + if (params["id"]) { + this.isUpdate = false; + this.formData.id = params["id"]; + this.formData.releaseNo = params["releaseNo"]; + //getQaItemXj02 + this.init(); } else { - return statusMap['rejected'] || '涓嶅悎鏍�'; + //鍒濆鍖栨楠屽崟鍙� + this.$post({ + url: "/RKJ/getMaxReleaseNo" + }).then(res => { + this.formData.releaseNo = res.data.tbBillList; + this.formData.createBy = this.$loginInfo.account; + this.formData.createDate = this.$getDate("yyyy-mm-dd"); + }); + + //杞﹂棿涓嬫媺妗嗙殑鍒濆鍖� + this.$post({ + url: "/XJ/getLineAll" + }).then(res => { + this.lineList = res.data.tbBillList; + this.DAA020List = res.data.tbBillList.map(item => item.lineName); + }) } }, - - removeXJ() { - if (this.formData.id) { + methods: { + getStatusClass(result) { + if (result === '鍚堟牸') return 'status-pass'; + if (result === '涓嶅悎鏍�') return 'status-fail'; + return 'status-pending'; + }, + + getStatusText(status) { + const statusMap = { + approved: '鍚堟牸', + rejected: '涓嶅悎鏍�', + pending: '寰呯‘璁�' + } + if (status == null || status == '鏈畬鎴�') { + return statusMap['pending'] || '寰呯‘璁�'; + } else if (status == '鍚堟牸') { + return statusMap['approved'] || '鍚堟牸'; + } else { + return statusMap['rejected'] || '涓嶅悎鏍�'; + } + }, + + removeXJ() { + if (this.formData.id) { + this.$post({ + url: "/RKJ/removeXJ", + data: { + id: this.formData.id + } + }).then(res => { + if (res.data.tbBillList > 0) { + this.$showMessage("鍒犻櫎鎴愬姛"); + //鍏抽棴褰撳墠椤甸潰锛岃繑鍥炰笂涓�椤甸潰鎴栧绾ч〉闈� + uni.navigateBack(); + } else { + this.$showMessage("鍒犻櫎澶辫触"); + } + }); + } else { + this.$showMessage("璇峰厛閫夋嫨妫�楠屽崟鍙�"); + } + }, + getItem() { + + if (!this.formData.billNo) { + this.$showMessage("璇烽�夋嫨宸ュ崟鍙�"); + return; + } + + if (this.isSubmit) { + this.$showMessage("姝ょ墿鏂欐棤鍚敤鐨勬楠岄」鐩紝璇风淮鎶�!"); + return; + } + this.$post({ - url: "/RKJ/removeXJ", + url: "/RKJ/save", data: { - id: this.formData.id + from: this.formData, + userNo: this.$loginInfo.account, + //moidNum: this.formData.moidNum + items: this.tableData } }).then(res => { - if (res.data.tbBillList > 0) { - this.$showMessage("鍒犻櫎鎴愬姛"); - //鍏抽棴褰撳墠椤甸潰锛岃繑鍥炰笂涓�椤甸潰鎴栧绾ч〉闈� - uni.navigateBack(); - } else { - this.$showMessage("鍒犻櫎澶辫触"); + this.formData.id = res.data.tbBillList; + this.$showMessage("鐢熸垚妫�楠岄」鐩垚鍔�"); + this.init(); + this.isUpdate = false; + }); + }, + //鐢熶骇绾垮埆閫夋嫨骞跺垵濮嬭瘽宸ュ崟鍙� + onDaa020Change(event) { + //鑾峰彇鐢熶骇绾垮埆鐨勪笅鏍囧湴鍧� + this.formData.lineName = event; + + this.lineNo = this.lineList[this.DAA020List.indexOf(event)].lineNo; + + this.formData.line = this.lineNo; + + this.$post({ + url: "/RKJ/getDaa001", + data: { + lineNo: this.lineNo + } + }).then(res => { + this.BillNoList = res.data.tbBillList; + // 宸ュ崟鍙峰幓閲嶏紝鍙樉绀哄敮涓� + this.DAA001List = Array.from(new Set(res.data.tbBillList.map(s => s.rBillNo))); + this.formData.rBillNo = ""; + this.formData.billNo = ""; + this.formData.itemName = ""; + this.formData.itemNo = ""; + this.formData.quantity = ""; + this.billNoList = []; + this.tableData = []; + }) + }, + //閫夊彇宸ュ崟濉厖鐗╂枡鍙峰拰鍏朵粬淇℃伅 + onDaa001Change(e) { + + this.formData.rBillNo = e; + + // 鎵惧嚭鎵�鏈夊睘浜庤宸ュ崟鍙风殑閫佹鎵规 + this.billNoList = this.BillNoList.filter(item => item.rBillNo === e).map(item => item.billNo); + this.formData.billNo = ""; + this.formData.itemName = ""; + this.formData.itemNo = ""; + this.formData.quantity = ""; + this.tableData = []; + }, + onBillNoChange(e) { + this.formData.billNo = e; + // 鎵惧埌褰撳墠宸ュ崟鍙�+閫佹鎵规鍙风殑瀹屾暣鏁版嵁 + let data = this.BillNoList.find(item => item.rBillNo === this.formData.rBillNo && item.billNo === e); + if (!data) { + this.formData.itemName = ""; + this.formData.itemNo = ""; + this.formData.quantity = ""; + this.formData.itemModel = ""; + this.tableData = []; + return; + } + this.formData.itemName = data.itemName; + this.formData.itemNo = data.itemNo; + this.formData.quantity = data.quantity; + this.formData.itemModel = data.itemModel || ""; + // 濡傞渶鑷姩璇锋眰妫�楠岄」鐩紝鍙湪姝ゅ琛ュ厖閫昏緫 + }, + init() { + this.$post({ + url: "/RKJ/getPage", + data: { + id: this.formData.id, + createUser: this.$loginInfo.account, + pageIndex: 1, + limit: 1, + } + }).then(res => { + let data = res.data.tbBillList[0]; + if (data) { + this.formData = data; + + this.$post({ + url: "/RKJ/getItems", + data: { + pid: this.formData.id + } + }).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.tableData = tableData; + + if (this.tableData.length === 0) { + this.isShowTable = true; + } + }) } }); - } else { - this.$showMessage("璇峰厛閫夋嫨妫�楠屽崟鍙�"); - } - }, - getItem() { - - if (!this.formData.billNo) { - this.$showMessage("璇烽�夋嫨宸ュ崟鍙�"); - return; - } - - if (this.isSubmit) { - this.$showMessage("姝ょ墿鏂欐棤鍚敤鐨勬楠岄」鐩紝璇风淮鎶�!"); - return; - } - - this.$post({ - url: "/RKJ/save", - data: { - from: this.formData, - userNo: this.$loginInfo.account, - //moidNum: this.formData.moidNum - items: this.tableData - } - }).then(res => { - this.formData.id = res.data.tbBillList; - this.$showMessage("鐢熸垚妫�楠岄」鐩垚鍔�"); - this.init(); - this.isUpdate = false; - }); - }, - //鐢熶骇绾垮埆閫夋嫨骞跺垵濮嬭瘽宸ュ崟鍙� - onDaa020Change(event) { - //鑾峰彇鐢熶骇绾垮埆鐨勪笅鏍囧湴鍧� - this.formData.lineName = event; - - this.lineNo = this.lineList[this.DAA020List.indexOf(event)].lineNo; - - this.formData.line = this.lineNo; - - this.$post({ - url: "/RKJ/getDaa001", - data: { - lineNo: this.formData.lineName - } - }).then(res => { - this.BillNoList = res.data.tbBillList; - this.DAA001List = res.data.tbBillList.map(s => s.billNo); - - this.formData.billNo = ""; - this.formData.mocode = ""; - this.formData.boardModel = ""; - this.formData.taskNo = ""; - this.formData.itemNo = ""; - this.formData.boardName = ""; - this.formData.quantity = ""; - this.tableData = []; - }) - }, - //閫夊彇宸ュ崟濉厖鐗╂枡鍙峰拰鍏朵粬淇℃伅 - onDaa001Change(e) { - - this.formData.billNo = e; - - let data = this.BillNoList[this.DAA001List.indexOf(e)]; - - //褰撹繑鍥炵殑缁撴灉闆嗕负绌烘椂缃┖鍘熸湁鐨勫�� - if (!data) { - this.formData.billNo = ""; - this.formData.mocode = ""; - this.formData.boardModel = ""; - this.formData.taskNo = ""; - this.formData.itemNo = ""; - this.formData.boardName = ""; - this.formData.quantity = ""; - this.tableData = []; - return; - } - //涓嶄负绌烘椂璧嬪�� - this.formData.billNo = data.billNo; - this.formData.mocode = data.mocode; - this.formData.boardModel = data.boardModel; - this.formData.taskNo = data.taskNo; - this.formData.itemNo = data.itemNo; - this.formData.boardName = data.boardName; - this.formData.quantity = data.quantity; - - - this.$post({ - url: "/RKJ/setJYItem", - data: { - itemNo: this.formData.itemNo, - quantity:this.formData.quantity - } - }).then(res => { - this.tableData = res.data.tbBillList; - if (this.tableData.length === 0) { - this.$showMessage("璇ョ墿鏂欐潯鐮佹病鏈夋楠岄」鐩�"); - this.isSubmit = true; - this.tableData = []; + }, + toDetail(item) { + + if (this.isUpdate) { + uni.showToast({ + icon: "none", + title: "璇峰厛鐢熸垚妫�楠岄」鐩�", + duration: 2000, + }); } else { - this.isSubmit = false; + uni.navigateTo({ + url: 'detail?id=' + item.id + '&billNo=' + this.formData.billNo + '&gid=' + this.formData + .id + '&itemInId=' + this.formData.itemInId + }); } - }); - }, - init() { - this.$post({ - url: "/RKJ/getPage", - data: { - id: this.formData.id, - createUser: this.$loginInfo.account, - pageIndex: 1, - limit: 1, - } - }).then(res => { - let data = res.data.tbBillList[0]; - if (data) { - this.formData = data; - + }, + toImage() { + uni.navigateTo({ + url: 'ImageItem?id=' + this.formData.id + }); + }, + saveRemarks() { + this.showPopup = !this.showPopup; + this.remarks = this.formData.remarks; + }, + edit() { + if (this.remarks) { + //saveRemarksGid this.$post({ - url: "/RKJ/getItems", + url: "/RKJ/saveRemarksGid", data: { - pid: this.formData.id + gid: this.formData.id, + remarks: this.remarks } - }).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.tableData = tableData; - - if (this.tableData.length === 0) { - this.isShowTable = true; + }).then(res => { + if(res.data.tbBillList > 0){ + this.formData.remarks = this.remarks; + this.showPopup = !this.showPopup; + this.$showMessage("淇濆瓨鎴愬姛"); } }) } - }); - }, - toDetail(item) { - - if (this.isUpdate) { - uni.showToast({ - icon: "none", - title: "璇峰厛鐢熸垚妫�楠岄」鐩�", - duration: 2000, - }); - } else { - uni.navigateTo({ - url: 'detail?id=' + item.id + '&billNo=' + this.formData.billNo + '&gid=' + this.formData - .id + '&itemInId=' + this.formData.itemInId - }); - } - }, - toImage() { - uni.navigateTo({ - url: 'ImageItem?id=' + this.formData.id - }); - }, - saveRemarks() { - this.showPopup = !this.showPopup; - this.remarks = this.formData.remarks; - }, - edit() { - if (this.remarks) { - //saveRemarksGid + },getTable() { this.$post({ - url: "/RKJ/saveRemarksGid", + url: "/RKJ/setJYItem", data: { - gid: this.formData.id, - remarks: this.remarks + itemNo: this.formData.itemNo, + quantity:this.formData.quantity } }).then(res => { - if(res.data.tbBillList > 0){ - this.formData.remarks = this.remarks; - this.showPopup = !this.showPopup; - this.$showMessage("淇濆瓨鎴愬姛"); + + this.tableData = res.data.tbBillList; + if (this.tableData.length === 0) { + this.$showMessage("璇ョ墿鏂欐潯鐮佹病鏈夋楠岄」鐩�"); + this.isSubmit = true; + this.tableData = []; + this.isShowTable = true; + this.isUpdate = false; + } else { + this.isSubmit = false; + this.isShowTable = true; + this.isUpdate = true; } - }) - } - },getTable() { - this.$post({ - url: "/RKJ/setJYItem", - data: { - itemNo: this.formData.itemNo, - quantity:this.formData.quantity - } - }).then(res => { - - this.tableData = res.data.tbBillList; + }); + }, + saveTable() { if (this.tableData.length === 0) { - this.$showMessage("璇ョ墿鏂欐潯鐮佹病鏈夋楠岄」鐩�"); - this.isSubmit = true; - this.tableData = []; - this.isShowTable = true; - this.isUpdate = false; - } else { - this.isSubmit = false; - this.isShowTable = true; - this.isUpdate = true; + return; } - }); - }, - saveTable() { - if (this.tableData.length === 0) { - return; - } - - this.$post({ - url: "/RKJ/saveItem", - data: { - gid: this.formData.id, - items: this.tableData, - userNo: this.$loginInfo.account - } - }).then(res => { - this.formData.id = res.data.tbBillList; - this.isShowTable = false; - this.isUpdate = false; - this.init(); - }) - }, - cleanResult(){ + this.$post({ - url: "/RKJ/cleanReqResult", + url: "/RKJ/saveItem", data: { gid: this.formData.id, + items: this.tableData, userNo: this.$loginInfo.account } }).then(res => { - console.log(res); - if(res.status == 0){ - this.init(); - }else{ - this.$showMessage(res.message); - } - + this.formData.id = res.data.tbBillList; + this.isShowTable = false; + this.isUpdate = false; + this.init(); }) - } - }, - onShow() { - //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉� - if (this.formData.id) { - this.init(); - } - }, - }; - </script> - - <style scoped> - /* 鍩虹鏍峰紡 */ - .container { - padding: 10px; - background-color: #f5f7fa; - min-height: 100vh; - } - - /* 澶撮儴鏍峰紡 */ - .header { - background-color: white; - padding: 20px; - border-radius: 8px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); - margin-bottom: 20px; - } - - .title { - font-size: 20px; - font-weight: 600; - color: #2c3e50; - margin-bottom: 8px; - } - - .order-number { - font-size: 14px; - color: #3498db; - font-weight: 500; - } - - /* 鍖哄煙鏍峰紡 */ - .section { - background-color: white; - border-radius: 8px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); - margin-bottom: 20px; - overflow: hidden; - } - - .section-header { - background-color: #f8f9fa; - padding: 15px 20px; - border-bottom: 1px solid #eee; - font-size: 16px; - font-weight: 600; - color: #2c3e50; - } - - .section-body { - padding: 20px; - } - - /* 淇℃伅缃戞牸 */ - .info-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 15px; - } - - .info-item { - display: flex; - flex-direction: column; - gap: 5px; - } - - .info-label { - font-size: 12px; - color: #7f8c8d; - font-weight: 500; - } - - .info-value { - font-size: 14px; - color: #2c3e50; - } - - .info-value.highlight { - font-weight: 600; - color: #3498db; - font-size: 16px; - } - - .info-value.danger { - color: #e74c3c; - font-weight: 500; - } - - /* 杈撳叆妗嗘牱寮� */ - .info-input { - padding: 8px 12px; - border: 1px solid #ddd; - border-radius: 4px; - font-size: 14px; - background-color: white; - } - - /* 閫夋嫨鍣ㄦ牱寮� */ - .picker-input { - border: 1px solid #ddd; - border-radius: 4px; - padding: 8px 12px; - background-color: white; - cursor: pointer; - font-size: 14px; - color: #2c3e50; - } - - /* 妫�楠岄」鐩〃鏍� */ - .inspection-table { - width: 100%; - border-radius: 8px; - overflow: hidden; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - margin: 25px 0; - } - - .inspection-table table { - width: 100%; - border-collapse: collapse; - } - - .inspection-table th { - background-color: #f8f9fa; - color: #34495e; - padding: 12px 15px; - font-weight: bold; - text-align: left; - border: 1px solid #ddd; - } - - .inspection-table td { - padding: 12px 15px; - text-align: left; - border: 1px solid #ddd; - } - - .inspection-table tr:nth-child(even) { - background-color: #f9f9f9; - } - - .inspection-table tr:hover { - background-color: #f1f5f9; - } - - /* 姘村嵃鏍峰紡 */ - .watermark { - position: absolute; - font-size: 40px; - font-weight: bold; - opacity: 1; - z-index: 1; - pointer-events: none; - transform: rotate(-15deg); - width: 100%; - text-align: center; - top: 50%; - left: 50%; - transform: translate(-50%, -50%) rotate(-15deg); - } - - .watermark.approved { - color: #2ecc71; - } - - .watermark.rejected { - color: #e74c3c; - } - - .watermark.pending { - color: #f39c12; - } - - /* 鎻忚堪鏂囨湰瀹瑰櫒 */ - .description-text { - position: relative; - z-index: 2; - padding: 25px; - background-color: rgba(255, 255, 255, 0.7); - } - - /* 璋冩暣琛ㄦ牸鍗曞厓鏍� */ - .inspection-table td:nth-child(2) { - position: relative; - overflow: hidden; - padding: 0; - } - - .record-btn { - padding: 6px 12px; - background-color: #f8f9fa; - border: 1px solid #ddd; - border-radius: 3px; - cursor: pointer; - transition: all 0.2s; - font-size: 14px; - color: #333; - } - - .record-btn:hover { - background-color: #e9ecef; - } - - - /* 鎿嶄綔鎸夐挳 */ - .action-buttons { - display: flex; - flex-direction: column; - gap: 10px; - margin-bottom: 20px; - } - - .action-btn { - padding: 12px 20px; - border: none; - border-radius: 6px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.2s; - } - - .action-btn.primary { - background-color: #3498db; - color: white; - } - - .action-btn.secondary { - background-color: #95a5a6; - color: white; - } - - .action-btn.danger { - background-color: #e74c3c; - color: white; - } - - .action-btn.warning { - background-color: #f39c12; - color: white; - } - - /* 寮瑰嚭妗嗘牱寮� */ - .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 { - background-color: white; - border-radius: 8px; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); - width: 90%; - max-width: 400px; - max-height: 80vh; - overflow-y: auto; - } - - .popup-header { - padding: 20px; - border-bottom: 1px solid #eee; - } - - .popup-header h3 { - font-size: 18px; - font-weight: 600; - color: #2c3e50; - margin: 0; - } - - .popup-content { - padding: 20px; - } - - .input-group { - display: flex; - flex-direction: column; - gap: 8px; - } - - .input-label { - font-size: 14px; - color: #7f8c8d; - font-weight: 500; - } - - .input-field { - padding: 8px 12px; - border: 1px solid #ddd; - border-radius: 4px; - font-size: 14px; - background-color: white; - } - - .popup-actions { - padding: 20px; - border-top: 1px solid #eee; - display: flex; - gap: 10px; - justify-content: flex-end; - } - - /* 鍝嶅簲寮忚璁� */ - @media (max-width: 768px) { - .info-grid { - grid-template-columns: 1fr; + }, + cleanResult(){ + this.$post({ + url: "/RKJ/cleanReqResult", + data: { + gid: this.formData.id, + userNo: this.$loginInfo.account + } + }).then(res => { + console.log(res); + if(res.status == 0){ + this.init(); + }else{ + this.$showMessage(res.message); + } + + }) + } + }, + onShow() { + //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉� + if (this.formData.id) { + this.init(); + } + }, + }; + </script> + + <style scoped> + /* 鍩虹鏍峰紡 */ + .container { + padding: 10px; + background-color: #f5f7fa; + min-height: 100vh; } - .action-buttons { - flex-direction: column; + /* 澶撮儴鏍峰紡 */ + .header { + background-color: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); + margin-bottom: 20px; } - } - </style> \ No newline at end of file + + .title { + font-size: 24px; + font-weight: 600; + color: #2c3e50; + margin-bottom: 8px; + } + + .order-number { + font-size: 14px; + color: #3498db; + font-weight: 500; + } + + /* 鍖哄煙鏍峰紡 */ + .section { + background-color: white; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); + margin-bottom: 20px; + overflow: hidden; + } + + .section-header { + background-color: #f8f9fa; + padding: 32px 32px; + border-bottom: 1px solid #eee; + font-size: 20px; + font-weight: 600; + color: #2c3e50; + } + + .section-body { + padding: 56px 40px; + } + + /* 淇℃伅缃戞牸 */ + .info-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 48px; + } + + .info-item { + display: flex; + flex-direction: column; + gap: 5px; + } + + .info-label { + font-size: 16px; + font-weight: 600; + color: #7f8c8d; + } + + .info-value { + font-size: 18px; + font-weight: 500; + color: #2c3e50; + } + + .info-value.highlight { + font-weight: 600; + color: #3498db; + font-size: 16px; + } + + .info-value.danger { + color: #e74c3c; + font-weight: 500; + } + + /* 杈撳叆妗嗘牱寮� */ + .info-input { + padding: 14px 20px; + border: 1px solid #ddd; + border-radius: 4px; + font-size: 16px; + background-color: white; + } + + /* 閫夋嫨鍣ㄦ牱寮� */ + .picker-input { + border: 1px solid #ddd; + border-radius: 4px; + padding: 14px 20px; + background-color: white; + cursor: pointer; + font-size: 16px; + color: #2c3e50; + } + + /* 妫�楠岄」鐩〃鏍� */ + .inspection-table { + width: 100%; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + margin: 25px 0; + } + + .inspection-table table { + width: 100%; + border-collapse: collapse; + } + + .inspection-table th { + background-color: #f8f9fa; + color: #34495e; + padding: 12px 15px; + font-weight: bold; + text-align: left; + border: 1px solid #ddd; + } + + .inspection-table td { + padding: 12px 15px; + text-align: left; + border: 1px solid #ddd; + } + + .inspection-table tr:nth-child(even) { + background-color: #f9f9f9; + } + + .inspection-table tr:hover { + background-color: #f1f5f9; + } + + /* 姘村嵃鏍峰紡 */ + .watermark { + position: absolute; + font-size: 40px; + font-weight: bold; + opacity: 1; + z-index: 1; + pointer-events: none; + transform: rotate(-15deg); + width: 100%; + text-align: center; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) rotate(-15deg); + } + + .watermark.approved { + color: #2ecc71; + } + + .watermark.rejected { + color: #e74c3c; + } + + .watermark.pending { + color: #f39c12; + } + + /* 鎻忚堪鏂囨湰瀹瑰櫒 */ + .description-text { + position: relative; + z-index: 2; + padding: 25px; + background-color: rgba(255, 255, 255, 0.7); + } + + /* 璋冩暣琛ㄦ牸鍗曞厓鏍� */ + .inspection-table td:nth-child(2) { + position: relative; + overflow: hidden; + padding: 0; + } + + .record-btn { + padding: 6px 12px; + background-color: #f8f9fa; + border: 1px solid #ddd; + border-radius: 3px; + cursor: pointer; + transition: all 0.2s; + font-size: 14px; + color: #333; + } + + .record-btn:hover { + background-color: #e9ecef; + } + + + /* 鎿嶄綔鎸夐挳 */ + .action-buttons { + display: flex; + flex-direction: row; + justify-content: flex-end; + gap: 20px; + margin-bottom: 20px; + } + + .action-btn { + padding: 12px 20px; + border: none; + border-radius: 6px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s; + } + + .action-btn.primary { + background-color: #3498db; + color: white; + } + + .action-btn.secondary { + background-color: #95a5a6; + color: white; + } + + .action-btn.danger { + background-color: #e74c3c; + color: white; + } + + .action-btn.warning { + background-color: #f39c12; + color: white; + } + + /* 寮瑰嚭妗嗘牱寮� */ + .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 { + background-color: white; + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + width: 90%; + max-width: 400px; + max-height: 80vh; + overflow-y: auto; + } + + .popup-header { + padding: 20px; + border-bottom: 1px solid #eee; + } + + .popup-header h3 { + font-size: 18px; + font-weight: 600; + color: #2c3e50; + margin: 0; + } + + .popup-content { + padding: 20px; + } + + .input-group { + display: flex; + flex-direction: column; + gap: 8px; + } + + .input-label { + font-size: 14px; + color: #7f8c8d; + font-weight: 500; + } + + .input-field { + padding: 8px 12px; + border: 1px solid #ddd; + border-radius: 4px; + font-size: 14px; + background-color: white; + } + + .popup-actions { + padding: 20px; + border-top: 1px solid #eee; + display: flex; + gap: 10px; + justify-content: flex-end; + } + + /* 鍝嶅簲寮忚璁� */ + @media (max-width: 768px) { + .info-grid { + grid-template-columns: 1fr; + gap: 20px; + } + + .action-buttons { + flex-direction: column; + justify-content: flex-start; + gap: 10px; + } + } + </style> \ No newline at end of file -- Gitblit v1.9.3