From 90e7cf2c4b1f47e5165e8132686bd49f842744a8 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期二, 09 四月 2024 13:55:53 +0800
Subject: [PATCH] 更新

---
 Albania_Mes-ui/src/views/home/index.vue |  811 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 621 insertions(+), 190 deletions(-)

diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 187cd5b..9f571a7 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -5,8 +5,8 @@
 }
 
 .occupy {
-    height: 100%;
-    width: 10%;
+    height: 50%;
+    width: 45%;
     background-color: white;
     margin: 0px 8px 0px 8px;
     border: 1px #EBEEF5 solid;
@@ -64,15 +64,17 @@
 }
 
 .blocks {
-    background-image: url('../../img/xmjc.png');
-    margin: 0 auto;
+    background-image: url('../../img/device.png');
+    /* margin: 0 auto; */
+    /* clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); */
     background-repeat: no-repeat;
     background-attachment: local;
-    min-height: 55vh;
-    width: 1400px;
-    max-width: 94vw;
-    background-size: 1200px 510px;
-    margin: 0 auto;
+    min-height: 118vh;
+    width: 1124px;
+    max-width: 57%;
+    background-size: 1050px 1400px;
+    margin-top: -280px;
+    overflow: hidden;
     /* width: 1660px;
     max-width: 100vw;
     background-size: 1660px 560px; */
@@ -81,17 +83,14 @@
 }
 
 .blocks-img {
-    height: 88px;
-    line-height: 90px;
-    color: white;
+    height: 900px;
     max-width: 100vw;
     background-repeat: no-repeat;
     background-attachment: local;
-    width: 32px;
+    width: 1200px;
     position: absolute;
-    background-image: url('../../img/bigcar01.png');
-    background-size: 40px 87px;
-    /* background-size: 46px 94px; */
+    background-image: url(/img/car.c2f92670.png);
+    background-size: 800px 1200px;
 }
 
 .blocks-img2 {
@@ -198,12 +197,13 @@
     font-size: 25px;
 }
 
+/* 
 @media screen and (min-width: 1900px) {
     .blocks {
         transform: scale(1.5, 1.05);
         width: 1210px;
     }
-}
+} */
 
 .el-message-box__btns {
     padding: 0px 15px 0;
@@ -235,12 +235,103 @@
     height: 15px;
     position: absolute;
 }
+
+/*
+
+*/
+#fileinput .container {
+    width: 800px;
+    margin: 0 auto;
+}
+
+#fileinput .header {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 10px;
+}
+
+#fileinput table {
+    width: 100%;
+    border-collapse: collapse;
+    border: 1px solid;
+}
+
+#fileinput tr,
+#fileinput th,
+#fileinput td {
+    border: 1px solid #000;
+    padding: 5px;
+}
+
+#fileinput button {
+    border: none;
+    padding: 5px;
+    background-color: #00a297;
+    color: #fff;
+    border-radius: 5px;
+    cursor: pointer;
+    margin: 0 5px;
+}
+
+#fileinput tr:nth-child(2n) {
+    background-color: #dcdcdc;
+}
+
+#fileinput .hide {
+    display: none;
+}
+
+#fileinput .c1 {
+    position: fixed;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background: rgba(0, 0, 0, .5);
+    z-index: 2;
+}
+
+#fileinput .c2 {
+    background-color: white;
+    position: fixed;
+    width: 400px;
+    height: 300px;
+    top: 50%;
+    left: 50%;
+    z-index: 3;
+    margin-top: -150px;
+    margin-left: -200px;
+}
+
+.cells {
+    height: 100%;
+}
+.measure_Content{
+    margin-bottom: 20px;
+    font-size: 30px;
+}
+.measuretitle{
+
+}
+.measureValue{
+
+}
+.measureUnit{
+    margin-left: 10px;
+}
 </style>
 <template>
     <el-container>
         <!-- <el-header style="padding: 10px;"></el-header> -->
         <el-main>
-            <div class="box" @click="dialogFormVisible2 = true">
+            <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
+                <el-table :data="this.alarm" border style="width: 100%;font-size: 25px;">
+                    <el-table-column prop="id" :label="$t('id')"></el-table-column>
+                    <el-table-column prop="content" :label="$t('content')"></el-table-column>
+                    <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
+                </el-table>
+            </el-dialog>
+            <div class="box" @click="dialogFormVisible2 = true" style="z-index: 999;">
                 <div class="text">
                     <!-- Alarm: -->
                     {{ this.text }}
@@ -249,131 +340,384 @@
                     </label>
                 </div>
             </div>
-            <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;">
-                <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState"
+            <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
+                <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                     :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Import order') }}</el-button>
-                <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState"
+
+                <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                     :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Measure') }}</el-button>
-                <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState"
+
+                <el-button type="primary" @click="showform(3)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                     :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('StorageCage') }}</el-button>
-                <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState"
+                <el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                     :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Task queue') }}</el-button>
-            </div>
-            <div>
-                <el-table :data="this.tasklist1" border style="width: 100%">
-                    <el-table-column :min-width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
-                    <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
-                    <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
-                    <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
-                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
-                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
-                    <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')">
-                        <template slot-scope='scope'>
-                            {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
-                        </template>
-                    </el-table-column>
-                    <el-table-column :label="$t('Terminate Task')">
-                        <template slot-scope='scope'>
-                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
-                                }}</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-                <el-table :data="this.tasklist2" border style="width: 100%">
-                    <el-table-column :min-width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
-                    <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
-                    <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
-                    <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
-                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
-                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
-                    <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')">
-                        <template slot-scope='scope'>
-                            {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
-                        </template>
-                    </el-table-column>
 
-                    <el-table-column :label="$t('Terminate Task')">
-                        <template slot-scope='scope'>
-                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
-                                }}</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
             </div>
-            <div style="padding: 10px;display: flex;height:85px;">
-                <div v-for="item in tableData" :key="item['cageno']" class="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] }}</span>
-                    </el-col>
+            <div style="display: flex;align-items: center;overflow: hidden;">
+                <div class="blocks" style="position: relative;width: 100%;">
+                    <div class="blocks-img" :style="'z-index:99;left:150px;top:555px;'">
+
+                    </div>
+                    <div
+                        :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'">
+                    </div>
+                    <div
+                        :style="'position: absolute;z-index:99;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';'">
+                    </div>
+                    <div
+                        :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
+                    </div>
+                    <div
+                        :style="'position: absolute;z-index:99;left:800px;top:675px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
+                    </div>
+                    <div :style="'position: absolute;z-index:1000;left:740px;top:507px;width:230px;height:114px;'">
+                        <div v-for="item in cagelist4" :key="item['id']"
+                            :style="'display:flex;height:4.55px;position: relative;'">
+                            <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' +
+                ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'">
+                            </div>
+                        </div>
+                    </div>
+                    <div :style="'position: absolute;z-index:1000;left:740px;top:730px;width:230px;height:90px;'">
+                        <div v-for="item in cagelist3" :key="item['id']"
+                            :style="'display:flex;height:2.25px;position: relative;'">
+                            <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' +
+                ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'">
+                            </div>
+                        </div>
+                    </div>
+                    <div :style="'position: absolute;z-index:1000;left:740px;top:830px;width:230px;height:90px;'">
+                        <div v-for="item in cagelist2" :key="item['id']"
+                            :style="'display:flex;height:2.25px;position: relative;'">
+                            <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' +
+                ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'">
+                            </div>
+                        </div>
+                    </div>
+                    <div :style="'position: absolute;z-index:1000;left:740px;top:930px;width:230px;height:90px;'">
+                        <div v-for="item in cagelist1" :key="item['id']"
+                            :style="'display:flex;height:2.25px;position: relative;'">
+                            <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' +
+                ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div>
+                    <div style="padding: 10px;display: flex;height: 300px;flex-wrap: wrap;">
+                        <div v-for="item in tableData" :key="item['cageno']" class="occupy">
+                            <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col>
+                            <el-col
+                                style="text-align:left;display:flex;justify-content: space-between;align-items: center;height: 70px;">
+                                <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['width'] }}%</span>
+                            </el-col>
+                            <hr style="width:80%;margin: 0 auto;" />
+                            <el-col
+                                style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+                                <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['cell']
+                                    }}</span>
+                            </el-col>
+                        </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="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>
+                        <el-table-column prop="storageCage.glassHeight" :label="$t('Height')"></el-table-column>
+                        <el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column>
+                        <el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column>
+                        <el-table-column :min-width="100" :label="$t('Terminate Task')">
+                            <template slot-scope='scope'>
+                                <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                                    @click="FinishTask(0, scope.row.id)">{{ $t('Complete') }}</el-button>
+                            </template>
+                        </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="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>
+                        <el-table-column prop="storageCage.glassHeight" :label="$t('Height')"></el-table-column>
+                        <el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column>
+                        <el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column>
+
+                        <el-table-column :min-width="100" :label="$t('Terminate Task')">
+                            <template slot-scope='scope'>
+                                <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                                    @click="FinishTask(1, scope.row.id)">{{ $t('Complete') }}</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
                 </div>
             </div>
+
+
         </el-main>
-        <el-dialog :visible.sync="Importorder" :title="$t('Import order')"
-            top="5vh">
+        <el-dialog :visible.sync="Importorder" :title="$t('Import order')" top="5vh">
+            <!--鏂囦欢瀵煎叆鏁版嵁椤甸潰-->
+            <div id="" class="container">
+                <div class="header">
+                    <div class="btn">
+                        <el-button type="primary" @click="importData()">淇濆瓨</el-button>
+
+                        <input type="file" id="uploadExcel" multiple @change="Change" />
+                    </div>
+                </div>
+                <el-table :data="this.dataList" border style="width: 100%;">
+                    <el-table-column prop="Customer" :label="$t('Customer')"></el-table-column>
+                    <el-table-column prop="order" :label="$t('Order')"></el-table-column>
+                    <el-table-column prop="base" :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>
+                    <el-table-column prop="films" :label="$t('Films')"></el-table-column>
+                    <el-table-column prop="quantity" :label="$t('No')"></el-table-column>
+                    <el-table-column prop="tier" :label="$t('Tier')"></el-table-column>
+                    <el-table-column prop="matching" :label="$t('Matching')"></el-table-column>
+                    <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column>
+                    <el-table-column prop="productname" :label="$t('Productname')"></el-table-column>
+                </el-table>
+                <!-- <table id="table">
+                    <thead>
+                        <tr>
+                            <th>Customer</th>
+                            <th>order</th>
+                            <th>base</th>
+                            <th>height</th>
+                            <th>thickness</th>
+                            <th>films</th>
+                            <th>quantity</th>
+                            <th>tier</th>
+                            <th>matching</th>
+                            <th>glasstype</th>
+                            <th>productname</th>
+                        </tr>
+                    </thead>
+                    <tbody style="text-align: center">
+                        <tr v-for="item in dataList" :key="item.id">
+                            <td>{{ item.Customer }}</td>
+                            <td>{{ item.order }}</td>
+                            <td>{{ item.base }}</td>
+                            <td>{{ item.height }}</td>
+                            <td>{{ item.thickness }}</td>
+                            <td>{{ item.films }}</td>
+                            <td>{{ item.quantity }}</td>
+                            <td>{{ item.tier }}</td>
+                            <td>{{ item.matching }}</td>
+                            <td>{{ item.glasstype }}</td>
+                            <td>{{ item.productname }}</td>
+                        </tr>
+                    </tbody>
+                </table> -->
+            </div>
         </el-dialog>
 
-        <el-dialog :visible.sync="Measure" :title="$t('Measure')"
-            top="5vh"><!--娴嬮噺椤甸潰-->
+        <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--娴嬮噺椤甸潰-->
+            <!--娴嬮噺椤甸潰涓讳綋-->
+            <div style="height: 780px;">
+                <!--鍔熻兘-->
+                <div>
+                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">浜哄伐鍖归厤</el-button>
+                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">浜哄伐鎷胯蛋</el-button>
+                    <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">閲嶆柊娴嬮噺</el-button>
+                </div>
+                <br>
+                <!--鏄剧ず-->
+                <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;">
+                    <!--鐜荤拑鍥�  #81b337-->
+                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((1000-(this.LastQueue.glasswidth / 25 * 7))/2)+'px auto;width:'
+                        + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
+                        + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
+                        + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
+                        + (this.LastQueue.glassheight / 25 * 7) + 'px; background-color: '
+                        + (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+';text-align: center;'">
+                        {{ (this.LastQueue.glasswidth+this.LastQueue.glassheight)!=0?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }} 
+                    </div>
+
+                </div>
+                <!--鏄剧ず-->
+                <div style="width:20px;height: 720px;float: left;"></div>
+                <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
+                    <!--鐜荤拑鍥�  #81b337-->
+                    <div class="measure_Content">
+                        <span class="measuretitle" style="font-size: 30px;">闀匡細</span> 
+                        <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> 
+                        <span class="measureUnit"> mm</span>
+                    </div>
+                    <div class="measure_Content">
+                        <span class="measuretitle">瀹斤細</span> 
+                        <span class="measureValue">{{ this.LastQueue.glassheight }}</span> 
+                        <span class="measureUnit">mm</span>
+                    </div>
+                    <div class="measure_Content">
+                        <span class="measuretitle">娴嬮噺闀匡細</span> 
+                        <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> 
+                        <span class="measureUnit">mm</span>
+                    </div>
+                    <div class="measure_Content">
+                        <span class="measuretitle">娴嬮噺瀹斤細</span> 
+                        <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> 
+                        <span class="measureUnit">mm</span>
+                    </div>
+                    <div class="measure_Content">
+                        <span class="measuretitle">鍖归厤缁撴灉锛�</span> 
+                        <span class="measureValue">{{ this.LastQueue.state>0?"鍖归厤鎴愬姛":(this.LastQueue.state==0?"鍖归厤澶辫触":"澶氭暟鎹尮閰�") }}</span>
+                    </div>
+                    
+                </div>
+            </div>
         </el-dialog>
 
-        <el-dialog :visible.sync="StorageCage" :title="$t('StorageCage')"
-            top="5vh">
+        <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-column :min-width="50" prop="cage" :label="$t('Cage No')"></el-table-column>
-                <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')"></el-table-column>
-                <el-table-column :min-width="145" prop="glassId" :label="$t('Barcode')"></el-table-column>
-                <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column>
-                <el-table-column :min-width="80" prop="height" :label="$t('Height')"></el-table-column>
+                <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="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="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="250" :label="$t('Operate')">
                     <template slot-scope='scope'>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            :disabled="scope.row.state == 1 ? false : true"
-                            @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('Delete') }}</el-button>
+
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                             @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
                             {{ scope.row.disabled == 0 ? $t('Disable') : $t('Enable') }}</el-button>
+
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            :disabled="scope.row.glassId != null ? true : false"
-                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Add')
+                            :disabled="(scope.row.width < scope.row.glassWidth + 100 ? true : false)"
+                            @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, 1)">{{ $t('Add')
+                            }}
+                        </el-button>
+
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="scope.row.number >= 1 ? false : true"
+                            @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, -1)">{{ $t('Reduce')
+                            }}</el-button>
+
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="scope.row.number >= 1 ? false : true"
+                            @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, 0)">{{ $t('Delete')
                             }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
         </el-dialog>
-        
-        <el-dialog :visible.sync="Taskqueue" :title="$t('Task queue')"
-            top="5vh">
+
+        <el-dialog :visible.sync="Taskqueue" :title="$t('Task queue')" top="5vh">
+            <el-table :data="tableData1" style="width: 100%;margin-bottom: 20px;" row-key="id" border lazy
+                default-expand-all :tree-props="{ children: 'glassinfo', hasChildren: 'hasChildren' }">
+                <el-table-column prop="flowcard" :label="$t('Order')">
+                </el-table-column>
+                <el-table-column prop="glasstype" :label="$t('GlassType')">
+                </el-table-column>
+                <el-table-column prop="number" :label="$t('Order No')">
+                </el-table-column>
+                <el-table-column prop="cageno" :label="$t('No Of Cage')">
+                </el-table-column>
+                <el-table-column prop="finishnumber" :label="$t('Finish No')">
+                </el-table-column>
+                <el-table-column prop="mateid" :label="$t('Mate No')">
+                </el-table-column>
+                <el-table-column prop="films" :label="$t('Films')">
+                </el-table-column>
+                <el-table-column prop="thickness" :label="$t('Thickness')">
+                </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="state" :label="$t('Task State')">
+                    <template slot-scope='scope'>
+                        {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Start') : $t('Stop') : "" }}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="method" :label="$t('Task Method')">
+                    <template slot-scope='scope'>
+                        {{ scope.row.state >= 0 ? scope.row.method == 0 ? $t('Out') : $t('All Out') : "" }}
+                    </template>
+
+                </el-table-column>
+                <el-table-column prop="line" :label="$t('Task Line')">
+                </el-table-column>
+                <el-table-column width="220" :label="$t('Operate')">
+                    <template slot-scope='scope'>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            v-show="scope.row.state >= 0 ? true : false"
+                            @click="ClaimTasks(scope.row.flowcard, scope.row.state)">
+                            {{ scope.row.status == '0' ? $t('Start Task') : $t('Stop Task') }}</el-button>
+
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            v-show="scope.row.state >= 0 ? true : false"
+                            @click="ModeChange(scope.row.flowcard, scope.row.method)">
+                            {{ $t('Mode Change') }}</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%;" />
+                <label for="">{{ $t('Height') }}</label>
+                <el-input v-model="StorageCageForm.height" 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>
+                <el-input v-model="StorageCageForm.films" autocomplete="off" style="width:15%;" />
+                <el-button @click="SelectGlassInfo()" type="primary">
+                    {{ $t('Select') }}</el-button>
+            </div>
+            <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="glasstype" :label="$t('GlassType')"></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>
+                <el-table-column prop="films" :label="$t('Films')"></el-table-column>
+                <el-table-column :label="$t('Operate')">
+                    <template slot-scope='scope'>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            @click="StorageCageAddGlass(scope.$index)">
+                            {{ $t('Add') }}</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-dialog>
+
     </el-container>
 </template>
 <script>
 
 import {
-    home, home2,  UpdateTask, SelectCageInfo, DeleteByGlassID, 
-    SelectPassword,  Disabled,  SelectPermissionByUserName, currentUsername, CompleteQueue,
-    isAllowReorderings
+    home, SelectCageInfo,
+    Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
+    isAllowReorderings,
+
+    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue,importData,ManualTake,AnewMeasure
 } from "../../api/home";
 
 
-import LanguageMixin from '../../lang/LanguageMixin'
+import LanguageMixin from '../../lang/LanguageMixin';
+import * as XLSX from "../../../node_modules/xlsx/xlsx.mjs";
 let socket;
 export default {
     name: "Home",
     data() {
         return {
+            dataList: [],
+            tableData1: [],
+            Measuermode: false,
             confirm1: false,
             confirm2: false,
             insertcage: 0,
@@ -384,12 +728,21 @@
             dialogFormVisible: false,
             dialogFormVisible1: false,
             dialogFormVisible2: false,
-            Importorder:false,
-            Measure:false,
-            StorageCage:false,
-            Taskqueue:false,
-            StorageCageInfo:[],
-            TaskqueueInfo:[],
+            Importorder: false,
+            Measure: false,
+            StorageCage: false,
+            Taskqueue: false,
+            StorageCageAdd: false,
+            StorageCageInfo: [],
+            StorageCageForm: {
+                width: "",
+                height: "",
+                thickness: "",
+                films: ""
+            },
+            StorageCageAddInfo: [],
+            TaskqueueInfo: [],
+            cell: "",
             form1: {},
             form2: {},
             form3: {},
@@ -454,10 +807,11 @@
             reset: false,
             isQueueWarning: false,
             CurrentFrame: [],
-            DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+            DeviceList: [1, 1, 1, 1],
             GlassIdList: [],
             Scanningmethod: true,
-            CurrrentGlassId: ""
+            CurrrentGlassId: "",
+            LastQueue: {}
         };
     },
     created() {
@@ -469,15 +823,15 @@
     }
     ,
     methods: {
-        showform(i){
-            if(i==1){
-                this.Importorder=true;
-            }else if(i==2){
-                this.Measure=true;
-            }else if(i==3){
-                this.StorageCage=true;
-            }else if(i==4){
-                this.Taskqueue=true;
+        showform(i) {
+            if (i == 1) {
+                this.Importorder = true;
+            } else if (i == 2) {
+                this.Measure = true;
+            } else if (i == 3) {
+                this.StorageCage = true;
+            } else if (i == 4) {
+                this.Taskqueue = true;
             }
         },
         init() {
@@ -509,17 +863,21 @@
                         // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                         // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                     }
-
+                    // 鑾峰彇璁惧鐘舵��
+                    if (obj.DeviceList != null) {
+                        this.DeviceList = obj.DeviceList[0];
+                    }
                     this.tableData = obj.tableData[0];
                     this.cagelist1 = obj.cagelist1[0];
                     this.cagelist2 = obj.cagelist2[0];
                     this.cagelist3 = obj.cagelist3[0];
                     this.cagelist4 = obj.cagelist4[0];
-                    this.tasklist1 = obj.tasklist1[0];
-                    this.tasklist2 = obj.tasklist2[0];
+                    this.tasklist2 = obj.StoragTaskeTaskFeed[0];
+                    this.tasklist1 = obj.StoragTaskeTaskOut[0];
                     this.alarm = obj.alarmmg[0];
-                    
 
+                    this.tableData1 = obj.OrderTask[0];
+                    this.LastQueue = obj.LastQueue[0];
 
 
                     //鏄惁鍏佽鍑虹墖
@@ -538,9 +896,8 @@
                             this.cageinfo = res.data.cageinfo;
                         });
                     }
-                    if(obj.StorageCageInfo!=null){
-                        this.StorageCageInfo=obj.StorageCageInfo[0];
-                        console.log(this.StorageCageInfo);
+                    if (obj.StorageCageInfo != null) {
+                        this.StorageCageInfo = obj.StorageCageInfo[0];
                     }
                     this.$forceUpdate();
 
@@ -598,73 +955,72 @@
                 this.cageinfo = res.data.cageinfo;
                 this.currentPages = 1;
             });
-            //鍔犺浇鐞嗙墖绗肩幓鐠冩暟鎹�
-            home2().then(res => {
-                this.cagelist1 = res.data.list1;
-                this.cagelist2 = res.data.list2;
-                this.cagelist3 = res.data.list3;
-                this.cagelist4 = res.data.list4;
-            });
-            //鍔犺浇纭瀵嗙爜
-            SelectPassword().then(res => {
-                this.password = res.data.password;
-            });
         },
-        
-        //缁撴潫杩�/鍑虹墖浠诲姟
-        endtask(type, glassid, cell) {
-            this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
-                inputType: 'password',
-                inputPlaceholder: this.$t('Please enter the password'),
-                confirmButtonText: this.$t('Yes'),
-                cancelButtonText: this.$t('No'),
-                type: 'warning'
-            }).then(({ value }) => {
-                if (this.password == value) {
-                    UpdateTask(type, glassid, cell).then(res => {
-                        if (res.data.message3 == 200) {
-                            this.$message.success(this.$t('Operation successful'));
-                        }
-                    });
-                } else {
-                    this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
-                }
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: this.$t('Operation canceled')
-                });
-            });
-        },
-        //鍒犻櫎鐞嗙墖绗肩幓鐠�
-        deleteglass(glassid, state) {
-            this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
-                inputType: 'password',
-                inputPlaceholder: this.$t('Please enter the password'),
-                confirmButtonText: this.$t('Yes'),
-                cancelButtonText: this.$t('No'),
-                type: 'warning'
-            }).then(({ value }) => {
-                if (this.password == value) {
-                    if (state == 1) {
-                        DeleteByGlassID(glassid).then(res => {
-                            if (res.data.message3 == 200) {
-                                this.$message.success(this.$t('Operation successful'));
-                            }
-                        });
-                    } else {
-                        this.$message.error(this.$t('No delete allowed'));
+        //娣诲姞鐞嗙墖绗肩幓鐠�
+        StorageCageAddGlass(index) {
+            if (this.Measuermode == true) {
+                StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => {
+                    if (res.data.message == 200) {
+                        this.$message.success(this.$t('Operation successful'));
                     }
-                } else {
-                    this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
-                }
-
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: this.$t('Operation canceled')
+                })
+            } else {
+                UpdateQueue(this.StorageCageAddInfo[index]).then(res => {
+                    if (res.data.message == 200) {
+                        this.$message.success(this.$t('Operation successful'));
+                    } else {
+                        this.$message.error(this.$t('Operation failed'));
+                    }
                 });
+            }
+
+        },
+        //棰嗗彇/鏆傚仠浠诲姟
+        ClaimTasks(flowcard, state) {
+            ClaimTasks(flowcard, state).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
             });
+        },
+        //淇敼鍑虹墖鏂瑰紡
+        ModeChange(flowcard, method) {
+            ModeChange(flowcard, method).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        },
+        //鏌ヨ鐜荤拑淇℃伅
+        SelectGlassInfo() {
+            SelectGlassInfo(this.StorageCageForm.width, this.StorageCageForm.height, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => {
+                this.StorageCageAddInfo = res.data.StorageCageAddInfo;
+            })
+        },
+        //瀹屾垚杩�/鍑虹墖浠诲姟
+        FinishTask(tasktype, id) {
+            FinishTask(tasktype, id).then(res => {
+                if (res.data.message3 == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        },
+        //淇敼鐞嗙墖绗肩幓鐠冧俊鎭�
+        UpdateStroageCageByCell(cell, nownum, num) {
+            if (nownum == null && num == 1) {
+                this.StorageCageAdd = true;
+                this.cell = cell;
+            } else {
+                if (nownum + num == 0) {
+                    num = 0;
+                }
+                UpdateStroageCageByCell(cell, num).then(res => {
+                    if (res.data.message3 == 200) {
+                        this.$message.success(this.$t('Operation successful'));
+                    }
+                });
+            }
+
         },
         //鍚敤//鐞嗙墖绗肩鐢�
         UpdateDisabled(cage, cell, disabled) {
@@ -674,7 +1030,7 @@
                 }
             });
         },
-        
+
         //鏀瑰彉姣忛〉瀹圭撼鐨勬暟鎹噺
         handleSizeChange: function (size) {
             this.pagesize = size;
@@ -691,7 +1047,7 @@
         handleCurrentChanges: function (currentPage) {
             this.currentPages = currentPage;
         },
-        
+
         //鏄惁鍏佽鍑虹墖闃熷垪鎺掑簭
         isAllowReorderings() {
             isAllowReorderings(!this.isAllowReordering, this.OutSlice).then(res => {
@@ -721,14 +1077,89 @@
                 }
             }
         },
+        //鑾峰彇璁惧鏄剧ず鐘舵��
+        ShowCellList(num) {
+            if (num == null) {
+                return "";
+            } else if (num > 0) {
+                return "gray";
+                // return "rgba(0,0,0,1)";
+            }
+        },
         //鑾峰彇璁惧鐜荤拑id
         ShowGlassIdList(num) {
             if (this.GlassIdList != null && this.GlassIdList.length > 0) {
                 const specialChars = /[^\w\s]/g;
                 return this.GlassIdList[num].replace(specialChars, "");
             }
+        },
+        //浜哄伐鍖归厤
+        ManualMatching() {
+            this.StorageCageAdd = true;
+        },
+        //浜哄伐鎷胯蛋
+        ManualTake() {
+            let s="123";
+            ManualTake(s).then(res => {
+                if (res.data.message == 200) {
+                    console.log(res.data.message);
+                }
+            })
+        },
+        //閲嶆柊娴嬮噺
+        AnewMeasure() {
+            let s="123";
+            AnewMeasure(s).then(res => {
+                if (res.data.message == 200) {
+                    console.log(res.data.message);
+                }
+            })
+        },
+        Change(event) {
+            // 鑾峰彇鍒版枃浠跺す
+            let fileList = event.target.files;
+            // 濡傛灉鏁版嵁涓嶄负绌�
+            if (fileList) {
+                // FileReader鏄竴绉嶅紓姝ユ枃浠惰鍙栨満鍒讹紝缁撳悎input:file鍙互寰堟柟渚跨殑璇诲彇鏈湴鏂囦欢銆�
+                let reader = new FileReader();
+                let file = fileList[0]; //鎷垮埌绗竴鏉℃暟鎹�
+                reader.readAsBinaryString(file)// 灏嗘枃浠朵互浜岃繘鍒跺舰寮忚鍏ラ〉闈�
+                let _this = this //鎶奷ata閲岀殑鏁版嵁璧嬪�肩粰鏂扮殑鍙橀噺
+                // wb:wordbook 宸ヤ綔琛�  
+                reader.addEventListener("load", function (e) {
+
+                    var data = e.target.result; //璇诲彇鎴愬姛鍚巖esult涓殑鏁版嵁
+                    var wb = XLSX.read(data, { type: "binary" });
+                    let sheetName = wb.SheetNames[0]; //鏄幏鍙朣heets涓涓�涓猄heet鐨勫悕瀛�
+                    let sheets = wb.Sheets[sheetName];
+                    let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets));
+                    let dataList3 = (JSON.parse(dataList2));
+                    _this.dataList = dataList3;//璧嬪��
+                    //console.log(dataList2);  
+                    console.log(dataList3);
+
+                })
+            }
+        },
+        Add() {
+
+        },
+        importData() {
+            //let tbdata=JSON.stringify(this.dataList);
+            let tbdata=this.dataList;
+            console.log(tbdata);
+            importData(tbdata).then(res => {
+                if (res.data.message == 200) {
+                    //this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        },
+        del() {
+
+            this.StorageCageAdd = true;
         }
-        
+
+
     }
 }
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.8.0