From 5c6c67ff6a447f55ed82bf925fcbb6c1ed6ab542 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期四, 26 六月 2025 08:34:08 +0800
Subject: [PATCH] 1.生产补料优化 2.条码拆分优化 3.入库前拆分界面

---
 H5/Js/IPQC_SJ/Add.js |  352 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 321 insertions(+), 31 deletions(-)

diff --git a/H5/Js/IPQC_SJ/Add.js b/H5/Js/IPQC_SJ/Add.js
index 936290a..d19e67d 100644
--- a/H5/Js/IPQC_SJ/Add.js
+++ b/H5/Js/IPQC_SJ/Add.js
@@ -2,34 +2,52 @@
     el: '#app',
     data: function () {
         return {
-            tableData: [],      // 鐢熸垚鐨勮〃鏍兼暟鎹�
+            tableTbData: [],      // "鍒剁儹鎬ц兘"鐢熸垚鐨勮〃鏍兼暟鎹�
             formTbData: {         // 琛ㄥ崟鏁版嵁
-            temperatureData: {} // 瀛樺偍娓╁害鏁版嵁
+            temperatureData: {} // 瀛樺偍鐨勫疄闄呮俯搴︺�佸疄闄呮祦閲忔暟鎹�
             },
+            indexZrxx:0,//鍒剁儹鎬ц兘index
             headers: [],
             showZr: false,
             waterOptions: [
+                { value: '100鈩�', text: '100鈩�' },
+                { value: '99鈩�', text: '99鈩�' },
+                { value: '90鈩�', text: '90鈩�' },
+                { value: '85鈩�', text: '85鈩�' },
+                { value: '80鈩�', text: '80鈩�' },
+                { value: '75鈩�', text: '75鈩�' },
+                { value: '65鈩�', text: '65鈩�' },
+                { value: '60鈩�', text: '60鈩�' },
+                { value: '55鈩�', text: '55鈩�' },
+                { value: '45鈩�', text: '45鈩�' },
+                { value: '42鈩�', text: '42鈩�' },
                 { value: '甯告俯姘�', text: '甯告俯姘�' },
-                { value: '0鈩�', text: '0鈩�' }, 
-                { value: '5鈩�', text: '5鈩�' }, 
-                { value: '15鈩�', text: '15鈩�' }, 
-                { value: '35鈩�', text: '35鈩�' }, 
-                { value: '55鈩�', text: '55鈩�' }, 
-                { value: '75鈩�', text: '75鈩�' }, 
-                { value: '100鈩�', text: '100鈩�' }
-            ],
+                { value: '鍐版按', text: '鍐版按' },
+                { value: '70鈩�', text: '70鈩�' },
+                { value: '50鈩�', text: '50鈩�' },
+                { value: '寰喎', text: '寰喎' }
+            ],//姘存俯閫夐」
             flowOptions: [
+                { value: '50ml', text: '50ml' },
                 { value: '100ml', text: '100ml' },
+                { value: '120ml', text: '120ml' },
+                { value: '150ml', text: '150ml' },
+                { value: '160ml', text: '160ml' },
                 { value: '200ml', text: '200ml' },
+                { value: '250ml', text: '250ml' },
+                { value: '260ml', text: '260ml' },
                 { value: '300ml', text: '300ml' },
-                { value: '400ml', text: '400ml' },
+                { value: '350ml', text: '350ml' },
+                { value: '360ml', text: '360ml' },
+                { value: '450ml', text: '450ml' },
                 { value: '500ml', text: '500ml' },
+                { value: '550ml', text: '550ml' },
                 { value: '600ml', text: '600ml' },
-                { value: '700ml', text: '700ml' },
-                { value: '800ml', text: '800ml' },
-                { value: '900ml', text: '900ml' },
-                { value: '1000ml', text: '1000ml' }
-            ],
+                { value: '750ml', text: '750ml' },
+                { value: '999ml', text: '999ml' },
+                { value: '涓�鍒嗛挓娴侀噺', text: '涓�鍒嗛挓娴侀噺' },
+                { value: '涓夊垎閽熸祦閲�', text: '涓夊垎閽熸祦閲�' }
+            ],//娴侀噺閫夐」
             selectedWater: [],// 宸查�夋按娓╁��
             selectedFlow: [],   // 宸查�夋祦閲忓��
             isLoading: false,
@@ -85,6 +103,19 @@
                 //    message: '涓婁紶澶辫触',
                 //},
             ],
+
+            //鏃堕棿閫夋嫨鍙傛暟
+            showScDatePicker: false,
+            minDate: new Date(new Date().getFullYear() - 1, 0, 1),  // 杩囧幓涓�骞�
+            maxDate: new Date(new Date().getFullYear() + 1, 11, 31), // 鏈潵涓�骞�
+            currentDate: new Date(),
+            scDate: '',  // 瀛樺偍鏍煎紡鍖栧悗鐨勬棩鏈�
+
+            //璁よ瘉淇℃伅閫夋嫨
+            showRzxx: false,
+            actions: [],
+            selectedRzxx: [], // 瀛樺偍澶氶�夊��
+            rzxxOptions: [], // 璁よ瘉淇℃伅閫夐」
         }
     },
     mounted() {
@@ -117,16 +148,16 @@
         },
 
 
-        openZrPopup() {
+        openZrPopup(index) {
             this.showZr = true;
+            this.indexZrxx = this.tabActive;
+            this.loadTableConfig();
         },
         closeZrPopup() {
             this.showZr = false;
-            this.selectedWater = [];  // 鍏抽棴鏃舵竻绌洪�夋嫨
-            this.selectedFlow = [];   // 鍏抽棴鏃舵竻绌洪�夋嫨
+            // this.selectedWater = [];  // 鍏抽棴鏃舵竻绌洪�夋嫨
+            // this.selectedFlow = [];   // 鍏抽棴鏃舵竻绌洪�夋嫨
         },
-
-
         //閽堝娌℃湁涓婁笅闄愬�肩殑鏁版嵁锛屽彧闇�閫夋嫨鍚堟牸鎴栦笉鍚堟牸.鎸夐挳瑙﹀彂
         handleQualified(isQualified) {
             var input = "";
@@ -329,9 +360,10 @@
             this.showDialog= true
         },
 
-        updateRzxx() {
-            this.showDialogRzxx = true
-        },
+        // updateRzxx() {
+        //     this.showDialogRzxx = true
+        // },
+        //鍒犻櫎妫�楠屾槑缁嗚褰�
         deleteDetail13(guid12) {
             const that = this;
             var guid1 = that.formData.guid;//涓昏〃id
@@ -367,6 +399,7 @@
                 that.isLoading = false;
             });
         },
+        //鏇存柊璁よ瘉淇℃伅
         rzxxConfirm() {
             var that = this;
             var guid1 = that.formData.guid;//涓昏〃id
@@ -380,7 +413,7 @@
                 var json = res;
                 if (json.status == 0) {
                     that.$notify({ type: 'success', message: '杈撳叆鎴愬姛' });
-                    that.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
+                    //that.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
                 }
                 else {
                     that.$toast.fail(json.message);
@@ -393,6 +426,31 @@
                 that.isLoading = false;
             });
         },
+        // 淇敼鍘焤zxxConfirm鏂规硶
+        updateRzxxToServer(selectedValues) {
+            var that = this;
+            that.AxiosHttp("post", 'Ipqc/updateIpqcRzxx', {
+            gid: that.formData.guid,
+            pid: that.tableData[that.tabActive].guid,
+            inRzxxValue: that.jymxData.ipqcrzxx  // 鏀逛负鏁扮粍鏍煎紡
+            }).then(res => {
+                var json = res;
+                if (json.status == 0) {
+                    that.$notify({ type: 'success', message: '杈撳叆鎴愬姛' });
+                    //that.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
+                }
+                else {
+                    that.$toast.fail(json.message);
+                }
+                //that.$notify({ type: 'success', message: json.message });
+                that.isLoading = false;
+            }).catch(function (error) {
+                that.$toast.fail("缃戠粶閿欒锛岃閲嶈瘯锛�");
+                that.inRzxxValue = null;
+                that.isLoading = false;
+            });
+        },
+        //鏇存柊涓嶅悎鏍艰〃杩�
         remarksConfirm() {
             const that = this;
             that.isLoading = true;
@@ -522,7 +580,7 @@
         },
         createTb() {
             // 娓呯┖鏃ф暟鎹�
-            this.tableData = [];
+            this.tableTbData = [];
             this.formTbData.temperatureData = {};
     
             // 鏍¢獙閫夋嫨
@@ -532,20 +590,28 @@
             }
     
             // 鐢熸垚琛ㄥご
-            const headers = ['璁惧畾娓╁害','瀹為檯娓╁害', ...this.selectedFlow.sort().map(f => f )];
+            // 淇敼headers鐢熸垚閫昏緫 鈫�
+            const headers = [
+                '璁惧畾娓╁害', 
+                '瀹為檯娓╁害锛堚剝锛�', 
+                ...this.selectedFlow.sort().map(f => `${f}`)
+            ];
             this.headers = headers;
             console.log(this.headers);
             // 鐢熸垚琛屾暟鎹�
-            this.tableData = this.selectedWater.sort((a,b) => a - b).map(water => {
+            this.tableTbData = this.selectedWater.sort((a,b) => a - b).map(water => {
                 const row = {
                     temperature: water === '甯告俯姘�' ? water : water,
-                    values: Object.fromEntries( // 浣跨敤瀵硅薄浠f浛鏁扮粍
-                        this.selectedFlow.map(flow => [flow, ''])
-                    )
+                    values: Object.fromEntries([
+                        ['temp', ''],  // 鍥哄畾娓╁害瀛楁
+                        ...this.selectedFlow.map(flow => [flow, ''])
+                    ])
                 };
                 
                 // 鍒濆鍖栬〃鍗曟暟鎹粨鏋�
                 this.$set(this.formTbData.temperatureData, water, {});
+                // 娣诲姞鍥哄畾瀛楁鈥濆疄闄呮俯搴︹�滃垵濮嬪寲
+                this.$set(this.formTbData.temperatureData[water], 'temp', '');
                 this.selectedFlow.forEach(flow => {
                     this.$set(this.formTbData.temperatureData[water], flow, '');
                 });
@@ -560,5 +626,229 @@
             }, 100);
             console.log(this.formTbData);
         },
+        // 鏂板淇濆瓨閰嶇疆鏂规硶
+        saveTableConfig() {
+            const that = this;
+            that.isLoading = true;
+            
+            that.AxiosHttp("post", 'Ipqc/SaveTableConfig', {
+                selectedWater: (that.selectedWater),
+                selectedFlow: (that.selectedFlow),
+                tableData: (that.formTbData.temperatureData),
+                mxguid: that.tableData[that.indexZrxx].guid // 浣跨敤涓昏〃ID鍏宠仈
+            }, true).then(res1 => {
+                if (res1.status === 0) {
+                    that.$notify({ type: 'success', message: '閰嶇疆淇濆瓨鎴愬姛' });
+                } else {
+                    that.$toast.fail(res1.rtnMsg);
+                }
+                that.isLoading = false;
+            }).catch(error => {
+                that.$toast.fail("缃戠粶閿欒锛岃閲嶈瘯锛�");
+                that.isLoading = false;
+            });
+        },
+        // 鏂板鍔犺浇閰嶇疆鏂规硶
+        loadTableConfig() {
+            const that = this;
+            that.isLoading = true;
+            var mxguid =  that.tableData[that.indexZrxx].guid;
+
+
+            that.AxiosHttp("post", 'Ipqc/GetTableConfig', {
+                mxguid: mxguid,
+            }, true).then(res1 => {
+                if (res1.status === 0 && res1.data) {
+                    // 瑙f瀽瀛樺偍鐨勬暟鎹�
+                    that.selectedWater = JSON.parse(res1.data.selectedWater || '[]');
+                    that.selectedFlow = JSON.parse(res1.data.selectedFlow || '[]');
+                    that.formTbData.temperatureData = JSON.parse(res1.data.tableData || '{}');
+                    
+                    // 璋冪敤鏂扮殑娓叉煋鏂规硶
+                    this.renderExistingTable();
+                }
+                that.isLoading = false;
+            }).catch(error => {
+                that.isLoading = false;
+                that.$toast.fail("鍔犺浇閰嶇疆澶辫触");
+            });
+        },
+
+        // 鏂板娓叉煋宸叉湁鏁版嵁琛ㄦ牸鐨勬柟娉�
+        renderExistingTable() {
+            const that = this;
+            console.log(that.formTbData.temperatureData);
+            // 浠庣幇鏈夋暟鎹弽鍚戞帹瀵奸�夋嫨椤�
+            const existingWaters = Object.keys(that.formTbData.temperatureData);
+            const existingFlows = existingWaters.length > 0 
+                ? Object.keys(that.formTbData.temperatureData[existingWaters[0]])
+                    .filter(k => k !== 'temp')
+                : [];
+            
+            // 鐢熸垚琛ㄥご锛堜繚鐣欏師濮媍reateTb鐨勬牸寮忥級
+            that.headers = [
+                '璁惧畾娓╁害', 
+                '瀹為檯娓╁害锛堚剝锛�', 
+                ...existingFlows.map(f => `${f}`)
+            ];
+            
+            // 鐢熸垚琛屾暟鎹紙淇濈暀鍘熷缁撴瀯锛�
+            that.tableTbData = existingWaters.map(water => {
+                const values = that.formTbData.temperatureData[water];
+                return {
+                    temperature: water,
+                    values: Object.fromEntries([
+                        ['temp', values.temp || ''],
+                        ...existingFlows.map(flow => [flow, values[flow] || ''])
+                    ])
+                };
+            });
+            console.log(that.formTbData.temperatureData);
+            // 淇濈暀鍘熷婊氬姩閫昏緫
+            setTimeout(() => {
+                const tableEl = document.getElementById('temperature-table');
+                if (tableEl) tableEl.scrollIntoView({ behavior: 'smooth' });
+            }, 100);
+            console.log(that.formTbData.temperatureData);
+        },
+        //淇濆瓨鐢熶骇鏃ユ湡
+        confirmScDate(value) {
+            const date = new Date(value);
+            this.scDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
+            //this.rzxxValue = this.scDate; // 鍚屾椂鏇存柊璁よ瘉淇℃伅瀛楁
+            console.log(this.scDate);
+
+            var that = this;
+            var guid1 = that.formData.guid;//涓昏〃id
+            var mxguid = that.tableData[that.tabActive].guid;//妫�楠岄」鐩殑guid
+            that.isLoading = true;
+            that.AxiosHttp("post", 'Ipqc/updateScDate', {
+                gid: guid1,
+                mxguid: mxguid,
+                scDateValue: that.scDate,//杈撳叆鐨勮璇佷俊鎭�
+            }, true, 0).then(function (res) {
+                var json = res;
+                if (json.status == 0) {
+                    that.$notify({ type: 'success', message: '杈撳叆鎴愬姛' });
+                    that.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
+                }
+                else {
+                    that.$toast.fail(json.message);
+                }
+                //that.$notify({ type: 'success', message: json.message });
+                that.isLoading = false;
+            }).catch(function (error) {
+                that.$toast.fail("缃戠粶閿欒锛岃閲嶈瘯锛�");
+                that.inRzxxValue = null;
+                that.isLoading = false;
+            });
+
+            this.showScDatePicker = false;
+        },
+
+        selectRzxx() {
+            this.showRzxx = true;
+            this.getRzxxList();
+        },
+        //鑾峰彇璁よ瘉淇℃伅鐩稿叧鍒楄〃
+        getRzxxList() {
+            var that = this;
+            that.rzxxOptions = [];
+            that.isLoading = true;
+            var mxguid = that.tableData[that.tabActive].guid;//妫�楠岄」鐩殑guid
+            that.AxiosHttp("post", 'Ipqc/GetRzxxList', {
+                // 鏍规嵁瀹為檯鎺ュ彛闇�瑕佷紶閫掑弬鏁�
+                mxguid: mxguid,
+            }, false)
+            .then(function (res) {
+                if (res.status == 0) {
+                    // that.actions = res.data.tbBillList.map(item => {
+                    //     return { name: item.defect_name } // 鏍规嵁瀹為檯鏁版嵁缁撴瀯璋冩暣
+                    // });
+                    that.rzxxOptions = res.data.tbBillList.map(item => ({
+                        value: item.defect_name, // 鍋囪guid鏄敮涓�鏍囪瘑绗�
+                        text: item.defect_name // 璁よ瘉淇℃伅鍚嶇О
+                    }));
+                } else {
+                    that.$toast.fail(res.message);
+                }
+                that.isLoading = false;
+            })
+            .catch(function (error) {
+                that.isLoading = false;
+                that.$toast.fail("鑾峰彇璁よ瘉淇℃伅澶辫触");
+            });
+        },
+        // 鏂板纭澶氶�夋柟娉�
+        confirmMultiRzxx() {
+            const selectedTexts = this.rzxxOptions
+            .filter(item => this.selectedRzxx.includes(item.value))
+            .map(item => item.text);
+            
+            // 淇敼杩欓噷锛氱敤鎹㈣绗︽浛浠i�楀彿鍒嗛殧
+            this.jymxData.ipqcrzxx = selectedTexts.join('\n');
+            this.showRzxx = false;
+            
+            // 鏇存柊澶氶�夊�煎埌鍚庣
+            this.updateRzxxToServer(selectedTexts);
+        },
+
+        //閫夋嫨璁よ瘉淇℃伅
+        onRzxxSelect(item) {
+            this.showRzxx = false;
+            this.rzxxValue = item.name;
+            this.rzxxConfirm();
+            //this.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
+            // 濡傛灉闇�瑕佽幏鍙栬缁嗕俊鎭彲鍦ㄦ澶勮皟鐢ㄥ叾浠栨柟娉�
+        },
+        //鏇存柊璁よ瘉淇℃伅浣跨敤鏁伴噺
+        updateRzxxNum(value, index) {
+            // 娣诲姞闃叉姈鍒ゆ柇
+            if (this.isLoading) {
+                return;
+            }
+
+            const that = this;
+            that.isLoading = true;
+            that.AxiosHttp("post", 'Ipqc/saveIpqcrzxxNum', {
+                guid: that.tableData[that.tabActive].guid,
+                ipqcrzxxNum: value
+            }, true, 0).then(res => {
+                if (res.status == 0) {
+                    //that.$notify({ type: 'success', message: '鏁伴噺鏇存柊鎴愬姛' });
+                    //that.refreshJYItem();//鍒锋柊妫�楠岄」鐩�
+                } else {
+                    that.$toast.fail(res.rtnMsg);
+                }
+                that.isLoading = false;
+            }).catch(error => {
+                that.isLoading = false;
+                that.$toast.fail("缃戠粶閿欒锛岃閲嶈瘯锛�");
+            });
+        },
+        //鏇存柊鏄惁鏈夋棤寮傚懗
+        updateCpscs(value) {
+            // 娣诲姞闃叉姈鍒ゆ柇
+            if (this.isLoading) {
+                return;
+            }
+            const that = this;
+            that.isLoading = true;
+            if (!value) return;
+            that.AxiosHttp("post", 'Ipqc/saveIpqCpscs', {
+                guid: that.tableData[that.tabActive].guid,
+                ipqCpscs: value
+            }, true, 0).then(res => {
+                if (res.status == 0) {
+                    //that.refreshJYItem();
+                } else {
+                    that.$toast.fail(res.rtnMsg);
+                }
+                that.isLoading = false;
+            }).catch(error => {
+                that.isLoading = false;
+                that.$toast.fail("缃戠粶閿欒锛岃閲嶈瘯锛�");
+            });
+        },
     }
 })

--
Gitblit v1.9.3