From 2d92826d942cd4c06e1f415d4a3896b99ec65e2b Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期四, 07 十一月 2024 19:32:00 +0800
Subject: [PATCH] 更改配片逻辑

---
 Albania_Mes-ui/src/views/home/index.vue |  205 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 161 insertions(+), 44 deletions(-)

diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 2d87286..c873062 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -327,6 +327,11 @@
     display: inline-block;
     cursor: pointer;
 }
+
+.bold-center {
+    font-weight: bold;
+    text-align: center;
+}
 </style>
 <template>
     <el-container>
@@ -432,7 +437,7 @@
                         </div>
                     </div>
                     <el-table :data="this.tasklist1" border style="width: 700px;">
-                        <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column>
+                        <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
                         <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column>
                         <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
                         <el-table-column prop="storageCage.glassWidth" :label="$t('Width')"></el-table-column>
@@ -447,7 +452,7 @@
                         </el-table-column>
                     </el-table>
                     <el-table :data="this.tasklist2" border style="width: 100%">
-                        <el-table-column prop="glassId" :label="$t('Glasstype')"></el-table-column>
+                        <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
                         <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column>
                         <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
                         <el-table-column prop="storageCage.glassWidth" :label="$t('Width')"></el-table-column>
@@ -478,7 +483,7 @@
                             <!-- 淇濆瓨 -->
                             <el-button type="primary" @click="importData()"
                                 style="margin-right: 10px;margin-bottom: 10px;">{{
-                                $t('Save') }}</el-button>
+                                    $t('Save') }}</el-button>
                             <input type="file" id="file-upload" multiple @change="Change" />
                             <label for="file-upload">{{ $t('Select file') }}</label>
                         </div>
@@ -504,17 +509,35 @@
 
         <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--娴嬮噺椤甸潰-->
             <!--娴嬮噺椤甸潰涓讳綋-->
-            <div style="height: 780px;">
+            <div style="height: 800px;">
                 <!--鍔熻兘-->
                 <div>
-                    <!-- <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state <= 0)"
+                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state > 1)"
                         style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
-                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state <= 0)"
+                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 1)"
                         style="z-index: 999;">{{
-                $t('Manual removal') }}</el-button> -->
-                    <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state <= 0)"
+                $t('Manual removal') }}</el-button> 
+                    <el-button type="primary" @click="AnewMeasure()" 
                         style="z-index: 999;">{{
                             $t('Remeasure') }}</el-button>
+                    <!-- 杈撳叆涓嬫媺妗�1 -->
+                    <!-- SelectSetting -->
+                    <label for="file-upload"  style="font-weight: bold;font-size: 16px;margin-left: 50px;">{{ $t('Films') }}:{{SelectSetting.films }}</label>
+                    <el-select v-model="selectedValue1" :placeholder="$t('Films')">
+                        <el-option v-for="item in selectedOption1.films" :key="item.value" :label="item.films"
+                            :value="item.films">
+                        </el-option>
+                    </el-select>
+                    <!-- 杈撳叆涓嬫媺妗�2 -->
+                    <label for="file-upload"  style="font-weight: bold;font-size: 16px;">{{ $t('Thickness') }}:{{SelectSetting.thickness }}mm</label>
+                    <el-select v-model="selectedValue2" :placeholder="$t('Thickness')">
+                        <el-option v-for="item in selectedOption2.thickness" :key="item.value" :label="item.thickness"
+                            :value="item.thickness">
+                        </el-option>
+                    </el-select>
+                    <el-button type="primary" @click="SaveMeasure(selectedValue1,selectedValue2)" 
+                        style="z-index: 999;">{{
+                            $t('Save') }}</el-button>
                 </div>
                 <br>
                 <!--鏄剧ず-->
@@ -544,7 +567,7 @@
                 </div>
                 <!--鏄剧ず-->
                 <div style="width:20px;height: 720px;float: left;"></div>
-                <div style="width:600px;height: 720px;border: 2px solid #d1d1d1;float: left;">
+                <div style="width:700px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                     <!--鐜荤拑鍥�  #81b337  padding: 50px 50px;-->
                     <!-- <span class="measuretitle">{{ $t('Width') }}锛�</span> <span class="measureValue">{{
                 this.LastQueue.glasswidth
@@ -564,8 +587,9 @@
                 this.LastQueue.state > 0 ? $t('Matching successful') :
                     (this.LastQueue.state == 0 ? $t('Multiple data matching') : $t('Matching failed')) }}</span>
                     <br> -->
-                    <el-table :data="this.tasklist3" :row-class-name="rowClassName" style="width: 100%;padding:0;">
+                    <el-table :data="this.tasklist3" :height="700"  :row-class-name="rowClassName" style="width: 100%;padding:0;">
                         <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column>
+                        <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
                         <el-table-column prop="films" :label="$t('Films')"></el-table-column>
                         <el-table-column prop="width" :label="$t('Width')"></el-table-column>
                         <el-table-column prop="height" :label="$t('Height')"></el-table-column>
@@ -579,16 +603,18 @@
         </el-dialog>
 
         <el-dialog :visible.sync="StorageCage" :title="$t('StorageCage')" top="5vh">
-            <el-table :data="this.StorageCageInfo" :height="700" border style="width: 100%;overflow: auto;">
+            <el-table :data="this.StorageCageInfo" :height="700" border style="width: 100%;overflow: auto;"
+                :span-method="spanMethod" class="bold-center">
                 <el-table-column :min-width="80" prop="cage" :label="$t('Cage No')"></el-table-column>
                 <el-table-column :min-width="80" prop="cell" :label="$t('Slot No')"></el-table-column>
-                <el-table-column :min-width="80" prop="glasstype" :label="$t('GlassType')"></el-table-column>
+                <el-table-column :min-width="80" prop="flowcard" :label="$t('Flowcard')"></el-table-column>
+                <el-table-column :min-width="80" prop="mateid" :label="$t('Mateid')"></el-table-column>
                 <el-table-column :min-width="80" prop="glassWidth" :label="$t('Width')"></el-table-column>
                 <el-table-column :min-width="80" prop="glassHeight" :label="$t('Height')"></el-table-column>
                 <el-table-column :min-width="80" prop="thickness" :label="$t('Thickness')"></el-table-column>
                 <el-table-column :min-width="80" prop="films" :label="$t('Films')"></el-table-column>
                 <el-table-column :min-width="80" prop="number" :label="$t('number')"></el-table-column>
-                <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column>
+                <!-- <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column> -->
                 <el-table-column :min-width="250" :label="$t('Operate')">
                     <template slot-scope='scope'>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@@ -617,17 +643,18 @@
                 :tree-props="{ children: 'glassinfo', hasChildren: 'hasChildren' }">
                 <el-table-column prop="flowcard" :label="$t('Order')" width="150" align="center">
                     <template slot-scope='scope'>
-                        <div
-                           >
+                        <div>
                             {{ scope.row.flowcard }}
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="glasstype" :label="$t('GlassType')" align="center">
+                <el-table-column prop="mateid" :label="$t('Mateid')" align="center">
                 </el-table-column>
-                <el-table-column prop="number" :label="$t('Order No')" align="center">
+                <el-table-column prop="tier" :label="$t('Tier')" align="center">
                 </el-table-column>
-                <el-table-column prop="cageno" :label="$t('No Of Cage')" align="center">
+                <el-table-column prop="number" :label="$t('Number')" align="center">
+                </el-table-column>
+                <el-table-column prop="cageno" :label="$t('Cage GlassNumber')" align="center">
                 </el-table-column>
                 <el-table-column prop="finishnumber" :label="$t('Finish No')" align="center">
                 </el-table-column>
@@ -644,7 +671,7 @@
                 <el-table-column prop="state" :label="$t('Task State')" align="center">
                     <template slot-scope='scope'>
                         <div
-                            :style="{ backgroundColor: scope.row.state === 0 ? '' : '#00FFFF', width: '105%', height: '125%',lineHeight: '50px'}">
+                            :style="{ backgroundColor: scope.row.state === 0 ? '' : '#00FFFF', width: '105%', height: '125%', lineHeight: '50px' }">
                             {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }}
                         </div>
                     </template>
@@ -654,9 +681,11 @@
                         {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }}
                     </template>
                 </el-table-column> -->
-                <el-table-column prop="method" :label="$t('Task Method')">
+                <el-table-column prop="method" :label="$t('Task Method')" align="center">
                     <template slot-scope='scope'>
-                        {{ scope.row.state >= 0 ? scope.row.method == 0 ? $t('Out') : $t('All Out') : "" }}
+                        <div style="text-align: center;width: 105%;">
+                            {{ scope.row.state >= 0 ? (scope.row.method == 0 ? $t('Out') : $t('All Out')) : "" }}
+                        </div>
                     </template>
                 </el-table-column>
                 <el-table-column prop="line" :label="$t('Task Line')">
@@ -681,24 +710,24 @@
                             {{ $t('Mode Change') }}</el-button>
 
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard)">
-                            {{ scope.row.orderstate > 0 ? $t('start work') : $t('start work') }}</el-button>
+                            v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard, scope.row.orderstate)">
+                            {{ scope.row.orderstate > 0 ? $t('stop work') : $t('start work') }}</el-button>
+
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            v-show="scope.row.state >= 0 ? true : false"
-                            @click="deleteTasks(scope.row.flowcard)">
+                            v-show="scope.row.state >= 0 ? true : false" @click="deleteTasks(scope.row.flowcard)">
                             {{ $t('langDelete') }}</el-button>
 
                     </template>
                 </el-table-column>
             </el-table>
         </el-dialog>
-
+        <!-- 浜哄伐鍖归厤 -->
         <el-dialog :visible.sync="StorageCageAdd" :title="$t('StorageCageAdd')" top="5vh" width="80%">
             <div style="display: flex;height: 40px;line-height: 40px;">
                 <label for="">{{ $t('Width') }}</label>
-                <el-input v-model="StorageCageForm.width" autocomplete="off" style="width:15%;" />
+                <el-input v-model="StorageCageForm.glasswidthmm" autocomplete="off" style="width:15%;" />
                 <label for="">{{ $t('Height') }}</label>
-                <el-input v-model="StorageCageForm.height" autocomplete="off" style="width:15%;" />
+                <el-input v-model="StorageCageForm.glassheightmm" autocomplete="off" style="width:15%;" />
                 <label for="">{{ $t('Thickness') }}</label>
                 <el-input v-model="StorageCageForm.thickness" autocomplete="off" style="width:15%;" />
                 <label for="">{{ $t('Films') }}</label>
@@ -709,7 +738,7 @@
             <el-table :data="this.StorageCageAddInfo" :height="700" border style="width: 100%;overflow: auto;">
                 <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column>
                 <el-table-column prop="tier" :label="$t('Tier')"></el-table-column>
-                <el-table-column prop="glasstype" :label="$t('GlassType')"></el-table-column>
+                <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
                 <el-table-column prop="width" :label="$t('Width')"></el-table-column>
                 <el-table-column prop="height" :label="$t('Height')"></el-table-column>
                 <el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column>
@@ -733,7 +762,7 @@
     Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
     isAllowReorderings,
 
-    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks
+    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks,SaveMeasure
 } from "../../api/home";
 
 
@@ -747,14 +776,28 @@
             carposition: 0,
             // selected: [],
             selected: Array.from({ length: 1000 }, () => 1),
+            selected2: Array.from({ length: 1000 }, () => 1),
+            selected3: Array.from({ length: 1000 }, () => 1),
             // selected: '1',
             options: [{
                 value: '1',
                 label: '1'
             }],
-            // mounted() {
-            //   this.selected[scope.$index] = '1'; // 鍋囪浣犳兂璁╃涓�涓笅鎷夋榛樿閫変腑 '閫夐」 1'
-            // },
+            // 娴嬮噺涓嬫媺妗嗚啘绯�
+            selectedOption1: {
+                films: [],
+              },
+              selectedOption2: {
+                thickness: [],
+              },
+            //  selectedOption1: [films],
+            //  selectedOption2: [thickness],
+
+            selectedValue1: null, // 鐢ㄤ簬瀛樺偍绗竴涓笅鎷夋鐨勯�変腑鍊�
+            selectedValue2: null, // 鐢ㄤ簬瀛樺偍绗簩涓笅鎷夋鐨勯�変腑鍊�
+            // 灏嗗�艰祴缁� selectedValue1 鍜� selectedValue2
+           
+
             dataList: [],
             tableData1: [],
             Measuermode: false,
@@ -775,8 +818,8 @@
             StorageCageAdd: false,
             StorageCageInfo: [],
             StorageCageForm: {
-                width: "",
-                height: "",
+                glasswidthmm: "",
+                glassheightmm: "",
                 thickness: "",
                 films: ""
             },
@@ -794,6 +837,8 @@
             cagelist2: [],
             cagelist3: [],
             cagelist4: [],
+            SelectMeasure: [],
+            SelectSetting: [],
             task1: 3,
             task2: 2,
             tasklist1: [],
@@ -847,7 +892,7 @@
             PromptSize: 250,
             reset: false,
             isQueueWarning: false,
-            CurrentFrame: [],
+            // CurrentFrame: [],
             DeviceList: [1, 1, 1, 1],
             GlassIdList: [],
             Scanningmethod: true,
@@ -859,11 +904,13 @@
     created() {
         this.load();
 
+
     },
     activated() {
         this.init();
     }
     ,
+
     methods: {
         showform(i) {
             if (i == 1) {
@@ -912,6 +959,23 @@
                     this.tasklist3 = obj.glassInfoFlowCard[0];
                     this.tasklist2 = obj.StoragTaskeTaskFeed[0];
                     this.tasklist1 = obj.StoragTaskeTaskOut[0];
+                    this.SelectSetting=obj.SelectSetting[0];
+                    this.selectedOption1.films = obj.SelectMeasure[0];
+                    this.selectedOption2.thickness = obj.SelectMeasure[0];
+                    // if(obj.StorageCageForm.length == 0){
+                    //     this.StorageCageForm.glasswidthmm = ""
+                    //     this.StorageCageForm.glassheightmm = ""
+                    //     this.StorageCageForm.films = ""
+                    //     this.StorageCageForm.thickness = ""
+                    // }else{
+                    //     this.StorageCageForm = obj.StorageCageForm[0];
+                    // }
+                    
+                    // console.log(obj.StorageCageForm[0]);
+
+
+                    //鍦ㄨ繖閲屽啓涓嬫媺閫夌殑v-for鐨勫悕绉�
+
                     if (obj.alarmmg[0].length > 0) {
                         if (this.alarm.length > 0) {
                             if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
@@ -952,6 +1016,7 @@
                     this.$forceUpdate();
 
                 }.bind(this);
+
                 //鍏抽棴浜嬩欢
                 socket.onclose = function () {
                     console.log("websocket宸插叧闂�");
@@ -966,6 +1031,7 @@
                 });
             }
         },
+        
         load() {
             //鍔犺浇鐢ㄦ埛鏉冮檺
             currentUsername().then(res => {
@@ -1005,6 +1071,7 @@
                 this.cageinfo = res.data.cageinfo;
                 this.currentPages = 1;
             });
+
         },
         //娣诲姞鐞嗙墖绗肩幓鐠�
         StorageCageAddGlass(index) {
@@ -1056,25 +1123,46 @@
                 }
             });
         },//閫夋嫨寮�濮嬪伐绋�
-        StartChange(flowcard) {
-            StartChange(flowcard).then(res => {
+        StartChange(flowcard,orderstate) {
+            if(orderstate==1){
+               
+            StartChange(flowcard,0).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        }else{
+            StartChange(flowcard,1).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        }
+        },
+        //閫夋嫨寮�濮嬪伐绋�
+        deleteTasks(flowcard) {
+            deleteTasks(flowcard).then(res => {
+                console.log("@" + flowcard + "@");
                 if (res.data.message == 200) {
                     this.$message.success(this.$t('Operation successful'));
                 }
             });
         },
-        //閫夋嫨寮�濮嬪伐绋�
-        deleteTasks(flowcard) {
-            deleteTasks(flowcard).then(res => {
-                console.log("@"+flowcard+"@");
-                if (res.data.message == 200) {
+        //淇濆瓨娴嬮噺鑶滅郴鐨勫弬鏁�
+        SaveMeasure(films,thickness) {
+            console.log('Films:', films);  // 鎵撳嵃 films
+            console.log('Thickness:', thickness);  // 鎵撳嵃 thickness
+            SaveMeasure(films,thickness).then(res => {
+                if (res.data.message >= 1) {
                     this.$message.success(this.$t('Operation successful'));
                 }
             });
         },
         //鏌ヨ鐜荤拑淇℃伅
         SelectGlassInfo() {
-            SelectGlassInfo(this.StorageCageForm.width, this.StorageCageForm.height, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => {
+            console.log(this.StorageCageForm.glasswidthmm);
+            
+            SelectGlassInfo(this.StorageCageForm.glasswidthmm, this.StorageCageForm.glassheightmm, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => {
                 this.StorageCageAddInfo = res.data.StorageCageAddInfo;
             })
         },
@@ -1112,7 +1200,35 @@
                 }
             });
         },
+        spanMethod({ rowIndex, columnIndex }) {
+            let zhi1 = this.StorageCageInfo[rowIndex].cage;
+            let zhi2 = 0;
+            if (rowIndex > 0) {
+                zhi2 = this.StorageCageInfo[rowIndex - 1].cage;
+            }
+            if (columnIndex === 0) { // 浠呭鐞� cage 鍒�
+                // console.log(columnIndex,rowIndex);
+                if (zhi1 != zhi2) {
+                    const currentCage = this.StorageCageInfo[rowIndex].cage;
+                    let span = { rowspan: 1, colspan: 1 };
 
+                    // 妫�鏌ュ悗缁锛屾壘鍒扮浉鍚岀殑 cage 鍊�
+                    for (let i = rowIndex + 1; i < this.StorageCageInfo.length; i++) {
+                        if (this.StorageCageInfo[i].cage === currentCage) {
+                            span.rowspan++;
+                        } else {
+                            break;
+                        }
+                    }
+                    return span;
+                } else {
+                    return { rowspan: 0, colspan: 0 };
+                }
+
+            }
+            // 鍏朵粬鍒椾繚鎸侀粯璁わ紝涓嶅悎骞�
+            return { rowspan: 1, colspan: 1 };
+        },
         //鏀瑰彉姣忛〉瀹圭撼鐨勬暟鎹噺
         handleSizeChange: function (size) {
             this.pagesize = size;
@@ -1234,6 +1350,7 @@
             importData(tbdata).then(res => {
                 if (res.data.message == 200) {
                     this.$message.success(this.$t('Operation successful'));
+                    this.dataList = null;
                 }
             });
         },

--
Gitblit v1.8.0