From d0a2c018b1612fb40d5e38f78d5180f2b90500fd Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 06 九月 2022 17:28:49 +0800
Subject: [PATCH] 1.新增车间公告页面2.新看板修改并部署

---
 src/views/kb/zhkb.vue |  798 ++++++++++++++++++--------------------------------------
 1 files changed, 262 insertions(+), 536 deletions(-)

diff --git a/src/views/kb/zhkb.vue b/src/views/kb/zhkb.vue
index b758dd0..4c538d4 100644
--- a/src/views/kb/zhkb.vue
+++ b/src/views/kb/zhkb.vue
@@ -10,44 +10,39 @@
           <span>{{ headTime }}</span>
         </div>
       </div>
-
+      <MarqueeTips
+        :content="MarqueeTipsContent"
+        class="MarqueeTipsContentClass"
+        :speed="speed"
+      />
       <div class="kb_content">
         <div class="kb_left">
           <!-- 1-->
-          <div class="kb_left_top_title01">
+          <div class="kb_left_top_title01 kb_title_text">
             <!--            <div class="PG01" />-->
             <!--            <svg-icon icon-class="sccx" />-->
-            鐢熶骇浜х嚎锛�
+            浜х嚎鍔犲伐涓换鍔�
           </div>
 
           <div class="kb_left_top kb_pd10">
-            <!--            {{ lineContent01 }}-->
 
-            <div class="kb_left_top_block">
-              <div class="kb_block01 kb_pd10">
-                <div>
-                  <div>浜х嚎鍚嶇О:{{ lineContent01.linename }}</div>
-                  <div class="kb_mt10">浜х嚎鎬婚噺:{{ lineContent01.children!==undefined?lineContent01.lineworkcont:'' }}</div>
-                </div>
-                <div>
-                  <!--                  <div>{{ lineContent01.linename }}</div>-->
-                  <!--                  <div v-if="lineContent01.children!==undefined" class="kb_mt10">{{ lineContent01.lineworkcont }}</div>-->
-                </div>
-              </div>
+            <div v-if="false" class="kb_left_top_block">
               <div class="kb_block02 kb_pd10">
                 <div>
-                  <div>閿�鍞崟鍙�:{{ lineContent01.children!==undefined?lineContent01.children.saleordercode:'' }}</div>
-                  <div class="kb_mt5">鍔犲伐鍗曞彿:{{ lineContent01.children!==undefined?lineContent01.children.workcode:'' }}</div>
-                  <div class="kb_mt5">浜у搧鍚嶇О:{{ lineContent01.children!==undefined?lineContent01.children.partname:'' }}</div>
-                  <div class="kb_mt5">浠诲姟鏁伴噺:{{ lineContent01.children!==undefined?parseFloat(lineContent01.children.qty):'' }}</div>
-                </div>
-                <div v-if="lineContent01.children!==undefined">
-                  <!--                  <div>{{ lineContent01.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent01.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent01.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent01.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent01.children.qty) }}-->
-                  <!--                  </div>-->
+                  <div>閿�鍞崟鍙�:{{ lineContent01.children !== undefined ? lineContent01.children.saleordercode : '' }}</div>
+                  <div class="kb_mt5">
+                    鍔犲伐鍗曞彿:{{ lineContent01.children !== undefined ? lineContent01.children.workcode : '' }}
+                  </div>
+                  <div class="kb_mt5">
+                    浜у搧鍚嶇О:{{ lineContent01.children !== undefined ? lineContent01.children.partname : '' }}
+                  </div>
+
+                  <div v-if="lineContent01.children&&lineContent01.children.length===0" class="kb_mt5">
+                    浠诲姟鏁伴噺:
+                  </div>
+                  <div v-else class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ lineContent01.children ? parseFloat(lineContent01.children.qty) : '' }}
+                  </div>
                 </div>
               </div>
               <div class="kb_block03 kb_pd10 ">
@@ -86,7 +81,7 @@
                       <div
                         v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
                         v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
@@ -105,243 +100,66 @@
               </div>
             </div>
 
-            <!--            234-->
-            <div class="kb_left_top_block">
-              <div class="kb_block01 kb_pd10">
-                <div>
-                  <div>浜х嚎鍚嶇О:{{ lineContent02.linename }}</div>
-                  <div class="kb_mt10">浜х嚎鎬婚噺:{{ lineContent02.children!==undefined?lineContent02.lineworkcont:'' }}</div>
-                </div>
-                <div>
-                  <!--                  <div>{{ lineContent02.linename }}</div>-->
-                  <!--                  <div v-if="lineContent02.children!==undefined" class="kb_mt10">{{ lineContent02.lineworkcont }}</div>-->
-                </div>
-              </div>
+            <div v-for="item in lineContent4" :key="item.workcode" class="kb_left_top_block">
               <div class="kb_block02 kb_pd10">
                 <div>
-                  <div>閿�鍞崟鍙�:{{ lineContent02.children!==undefined?lineContent02.children.saleordercode:'' }}</div>
-                  <div class="kb_mt5">鍔犲伐鍗曞彿:{{ lineContent02.children!==undefined?lineContent02.children.workcode:'' }}</div>
-                  <div class="kb_mt5">浜у搧鍚嶇О:{{ lineContent02.children!==undefined?lineContent02.children.partname:'' }}</div>
-                  <div class="kb_mt5">浠诲姟鏁伴噺:{{ lineContent02.children!==undefined?parseFloat(lineContent02.children.qty):'' }}</div>
-                </div>
-                <div v-if="lineContent02.children!==undefined">
-                  <!--                  <div>{{ lineContent02.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent02.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent02.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent02.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent02.children.qty) }}-->
-                  <!--                  </div>-->
+                  <div>閿�鍞崟鍙�:{{ item.saleordercode }}</div>
+                  <div class="kb_mt5">
+                    鍔犲伐鍗曞彿:{{ item.workcode }}
+                  </div>
+                  <div class="kb_mt5">
+                    浜у搧鍚嶇О:{{ item.partname }}
+                  </div>
+                  <div class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ parseFloat(item.qty) }}
+                  </div>
                 </div>
               </div>
               <div class="kb_block03 kb_pd10 ">
-                <div v-if="lineContent02.children!==undefined" class="flex_s_c">
+                <div v-if="item.children&&item.children.length>0" class="flex_s_c">
                   <div
-                    v-for="item in lineContent02.children.children"
-                    :key="item.stepseq"
+                    v-for="(it,ind) in item.children"
+                    :key="ind"
                     class="kb_block03_content flex_c_c"
                   >
                     <div>
-                      <div class="content01">{{ item.stepname }}</div>
+                      <div class="content01">{{ it.stepname }}</div>
                     </div>
                     <div class="content02Parent">
                       <div class="content02">
                         <div class="content02_1 ">浠诲姟</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.planqty) }}</div>
+                        <div class="content02_2 borderTop ">{{ parseFloat(it.planqty) }}</div>
                       </div>
                       <div class="content02">
                         <div class="content02_1 ">鍚堟牸</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.goodqty) }}</div>
+                        <div class="content02_2 borderTop ">{{ parseFloat(it.goodqty) }}</div>
                       </div>
                       <div class="content02" style="border-right: 0">
                         <div class="content02_1 ">涓嶈壇</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.ngqty) }}</div>
+                        <div class="content02_2 borderTop ">{{ parseFloat(it.ngqty) }}</div>
                       </div>
                     </div>
                   </div>
                 </div>
-                <div v-if="lineContent02.children!==undefined" class="kb_block03_02 flex_s_c">
+                <div v-if="item.children&&item.children.length>0" class="kb_block03_02 flex_s_c">
                   <div
-                    v-for="item in lineContent02.children.children"
-                    :key="item.stepseq"
+                    v-for="(it,ind) in item.children"
+                    :key="ind"
                     class="kb_block03_02_content flex_c_c"
                   >
                     <div class="flex_c_c content01">
                       <div
-                        v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
+                        v-if="it.status==='START'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
-                        v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
+                        v-else-if="it.status==='ALLO'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
                         class="circle"
                         style="background-color: rgb(255 255 255)"
                       />
                       <div
-                        v-else-if="parseFloat(item.ngqty)+parseFloat(item.goodqty)>=parseFloat(item.planqty)"
-                        class="circle"
-                      />
-                      <div v-else class="circleYellow" />
-                    </div>
-                  </div>
-                </div>
-
-              </div>
-            </div>
-
-            <div class="kb_left_top_block">
-              <div class="kb_block01 kb_pd10">
-                <div>
-                  <div>浜х嚎鍚嶇О:{{ lineContent03.linename }}</div>
-                  <div class="kb_mt10">浜х嚎鎬婚噺:{{ lineContent03.children!==undefined?lineContent03.lineworkcont:'' }}</div>
-                </div>
-                <div>
-                  <!--                  <div>{{ lineContent03.linename }}</div>-->
-                  <!--                  <div v-if="lineContent03.children!==undefined" class="kb_mt10">{{ lineContent03.lineworkcont }}</div>-->
-                </div>
-              </div>
-              <div class="kb_block02 kb_pd10">
-                <div>
-                  <div>閿�鍞崟鍙�:{{ lineContent03.children!==undefined?lineContent03.children.saleordercode:'' }}</div>
-                  <div class="kb_mt5">鍔犲伐鍗曞彿:{{ lineContent03.children!==undefined?lineContent03.children.workcode:'' }}</div>
-                  <div class="kb_mt5">浜у搧鍚嶇О:{{ lineContent03.children!==undefined?lineContent03.children.partname:'' }}</div>
-                  <div class="kb_mt5">浠诲姟鏁伴噺:{{ lineContent03.children!==undefined?parseFloat(lineContent03.children.qty):'' }}</div>
-                </div>
-                <div v-if="lineContent03.children!==undefined">
-                  <!--                  <div>{{ lineContent03.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent03.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent03.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent03.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent03.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
-              </div>
-              <div class="kb_block03 kb_pd10 ">
-                <div v-if="lineContent03.children!==undefined" class="flex_s_c">
-                  <div
-                    v-for="item in lineContent03.children.children"
-                    :key="item.stepseq"
-                    class="kb_block03_content flex_c_c"
-                  >
-                    <div>
-                      <div class="content01">{{ item.stepname }}</div>
-                    </div>
-                    <div class="content02Parent">
-                      <div class="content02">
-                        <div class="content02_1 ">浠诲姟</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.planqty) }}</div>
-                      </div>
-                      <div class="content02">
-                        <div class="content02_1 ">鍚堟牸</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.goodqty) }}</div>
-                      </div>
-                      <div class="content02" style="border-right: 0">
-                        <div class="content02_1 ">涓嶈壇</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.ngqty) }}</div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-                <div v-if="lineContent03.children!==undefined" class="kb_block03_02 flex_s_c">
-                  <div
-                    v-for="item in lineContent03.children.children"
-                    :key="item.stepseq"
-                    class="kb_block03_02_content flex_c_c"
-                  >
-                    <div class="flex_c_c content01">
-                      <div
-                        v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
-                        class="circle"
-                        style="background-color: red;"
-                      />
-                      <div
-                        v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
-                        class="circle"
-                        style="background-color: rgb(255 255 255)"
-                      />
-                      <div
-                        v-else-if="parseFloat(item.ngqty)+parseFloat(item.goodqty)>=parseFloat(item.planqty)"
-                        class="circle"
-                      />
-                      <div v-else class="circleYellow" />
-                    </div>
-                  </div>
-                </div>
-
-              </div>
-            </div>
-
-            <div class="kb_left_top_block">
-              <div class="kb_block01 kb_pd10">
-                <div>
-                  <div>浜х嚎鍚嶇О:{{ lineContent04.linename }}</div>
-                  <div class="kb_mt10">浜х嚎鎬婚噺:{{ lineContent04.children!==undefined?lineContent04.lineworkcont:'' }}</div>
-                </div>
-                <div>
-                  <!--                  <div>{{ lineContent04.linename }}</div>-->
-                  <!--                  <div v-if="lineContent04.children!==undefined" class="kb_mt10">{{ lineContent04.lineworkcont }}</div>-->
-                </div>
-              </div>
-              <div class="kb_block02 kb_pd10">
-                <div>
-                  <div>閿�鍞崟鍙�:{{ lineContent04.children!==undefined?lineContent04.children.saleordercode:'' }}</div>
-                  <div class="kb_mt5">鍔犲伐鍗曞彿:{{ lineContent04.children!==undefined?lineContent04.children.workcode:'' }}</div>
-                  <div class="kb_mt5">浜у搧鍚嶇О:{{ lineContent04.children!==undefined?lineContent04.children.partname:'' }}</div>
-                  <div class="kb_mt5">浠诲姟鏁伴噺:{{ lineContent04.children!==undefined?parseFloat(lineContent04.children.qty):'' }}</div>
-                </div>
-                <div v-if="lineContent04.children!==undefined">
-                  <!--                  <div>{{ lineContent04.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent04.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent04.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent04.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent04.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
-              </div>
-              <div class="kb_block03 kb_pd10 ">
-                <div v-if="lineContent04.children!==undefined" class="flex_s_c">
-                  <div
-                    v-for="item in lineContent04.children.children"
-                    :key="item.stepseq"
-                    class="kb_block03_content flex_c_c"
-                  >
-                    <div>
-                      <div class="content01">{{ item.stepname }}</div>
-                    </div>
-                    <div class="content02Parent">
-                      <div class="content02">
-                        <div class="content02_1 ">浠诲姟</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.planqty) }}</div>
-                      </div>
-                      <div class="content02">
-                        <div class="content02_1 ">鍚堟牸</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.goodqty) }}</div>
-                      </div>
-                      <div class="content02" style="border-right: 0">
-                        <div class="content02_1 ">涓嶈壇</div>
-                        <div class="content02_2 borderTop ">{{ parseFloat(item.ngqty) }}</div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-                <div v-if="lineContent04.children!==undefined" class="kb_block03_02 flex_s_c">
-                  <div
-                    v-for="item in lineContent04.children.children"
-                    :key="item.stepseq"
-                    class="kb_block03_02_content flex_c_c"
-                  >
-                    <div class="flex_c_c content01">
-                      <div
-                        v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
-                        class="circle"
-                        style="background-color: red;"
-                      />
-                      <div
-                        v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
-                        class="circle"
-                        style="background-color: rgb(255 255 255)"
-                      />
-                      <div
-                        v-else-if="parseFloat(item.ngqty)+parseFloat(item.goodqty)>=parseFloat(item.planqty)"
+                        v-else-if="parseFloat(it.ngqty)+parseFloat(it.goodqty)>=parseFloat(it.planqty)"
                         class="circle"
                       />
                       <div v-else class="circleYellow" />
@@ -356,7 +174,7 @@
           <!-- 2-->
           <div class="kb_left_bottom kb_pd10">
             <div class="kb_left_bottom_content">
-              <div class="content_head">鍦ㄥ埗璁㈠崟锛�</div>
+              <div class="content_head kb_title_text">浜х嚎鍔犲伐浠诲姟</div>
               <div class="content_body">
                 <el-table
                   ref="tableData"
@@ -369,12 +187,12 @@
                   <el-table-column
                     prop="RowNum"
                     label="搴忓彿"
-                    width="53"
+                    width="40"
                   />
                   <el-table-column
                     prop="status"
                     label="鍔犲伐鐘舵��"
-                    width="85"
+                    width="70"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
@@ -385,77 +203,87 @@
                   <el-table-column
                     prop="lm_date"
                     label="娲惧彂鏃堕棿"
-                    width="86"
+                    width="95"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.lm_date.substring(5, 10) }}</div>
+                      <div>{{ row.lm_date.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="saleOrderCode"
                     label="閿�鍞鍗曞彿"
-                    width="150"
-                  />
+                    width="158"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="wo_code"
                     label="鍔犲伐鍗曞彿"
-                    width="207"
+                    width="170"
                   />
                   <el-table-column
                     prop="partname"
                     label="浜у搧鍚嶇О"
-                    width="105"
+                    width="145"
                   />
                   <el-table-column
                     prop="partspec"
                     label="瑙勬牸"
-                    width="60"
-                  />
+                    width="130"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="name"
                     label="鍗曚綅"
-                    width="60"
+                    width="50"
                   />
                   <el-table-column
                     prop="plan_qty"
                     label="浠诲姟鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="good_qty"
                     label="瀹屽伐鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="ng_qty"
                     label="涓嶈壇鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="wcl"
                     label="瀹屾垚鐜�"
-                    width="70"
+                    width="50"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ parseFloat((row.good_qty / row.plan_qty).toFixed(2)) }}%</div>
+                      <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="planenddate"
                     label="棰勮寮�濮�"
-                    width="86"
+                    width="95"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.planenddate.substring(5, 10) }}</div>
+                      <div>{{ row.planenddate.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="planstartdate"
                     label="棰勮缁撴潫"
-                    width="86"
+                    width="105"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.planstartdate.substring(5, 10) }}</div>
+                      <div>{{ row.planstartdate.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                 </el-table>
@@ -466,7 +294,7 @@
         <div class="kb_right kb_pd10">
           <div class="kb_right_top kb_pd10">
             <div class="kb_right_top_content">
-              <div class="content_head">褰撴棩杞﹂棿浜х嚎浜у搧鏁伴噺鎺掕锛�</div>
+              <div class="content_head kb_title_text">褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕</div>
               <div class="content_body">
                 <el-table
                   ref="tableDataRank"
@@ -475,7 +303,7 @@
                   style="width: 100%;"
                   :header-cell-style="headerCellStyle"
                   :cell-style="cellStyle"
-                  height="426"
+                  height="396"
                 >
                   <el-table-column
                     type="index"
@@ -484,9 +312,14 @@
                   />
                   <el-table-column
                     prop="wkshname"
-                    label="杞﹂棿"
+                    label="杞﹂棿锛堜緵鏂癸級"
                     width="120"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.wkshname" class="ellipsis">{{ row.wkshname }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="linename"
                     label="浜х嚎"
@@ -507,8 +340,8 @@
             </div>
           </div>
           <div class="kb_right_bottom kb_pd10">
-            <div class="kb_right_bottom_content_title">
-              涓�鍛ㄥ唴Top5涓嶈壇锛�
+            <div class="kb_right_bottom_content_title kb_title_text">
+              涓�鍛ㄤ笉鑹疶op5
             </div>
             <div class="kb_right_bottom_content">
               <div id="bar02" style="width: 100%;height:100%" />
@@ -527,12 +360,16 @@
   LineSearchBottomLeftData,
   LineSearchBottomRightData,
   LineSearchTopLeftData,
-  LineSearchTopRightData,
+  LineSearchTopRightData, ShopSearch,
   ShopSearchLine
 } from '@/api/dzkb'
+import MarqueeTips from 'vue-marquee-tips'
 
 export default {
   name: 'Index2',
+  components: {
+    MarqueeTips
+  },
   data() {
     return {
       headTime: '',
@@ -544,62 +381,19 @@
         lineworkcont: '',
         children: undefined
       },
-      lineContent02: {
-        linename: '',
-        lineworkcont: '',
-        children: undefined
-      },
-      lineContent03: {
-        linename: '',
-        lineworkcont: '',
-        children: undefined
-      },
-      lineContent04: {
-        linename: '',
-        lineworkcont: '',
-        children: undefined
-        // children: {
-        //   workcode: '',
-        //   partname: '',
-        //   qty: 0,
-        //   saleordercode: '',
-        //   children: [
-        //     {
-        //       stepseq: '',
-        //       stepname: '',
-        //       planqty: 0,
-        //       goodqty: '',
-        //       ngqty: ''
-        //     }
-        //   ]
-        // }
-      },
+
+      lineContent: [],
+      lineContent4: [],
 
       leftTopData: [],
       tableData: [],
-      tableDataRank: [// 鎺掕
-        // { xh: 'NO.1', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.2', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.3', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.4', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.5', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.6', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.7', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.8', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.9', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.10', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.11', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.12', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.13', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.14', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.15', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.16', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.17', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.18', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.19', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.20', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 }
-        //
-      ]
+      tableDataRank: [],
+      lineCodeArr: [],
+
+      ShopArr: [], // 杞﹂棿缂栫爜鏁扮粍
+
+      MarqueeTipsContent: '', // 鍏憡
+      speed: 100// 鍏憡鎾斁鐨勯�熷害
 
     }
   },
@@ -612,221 +406,136 @@
   },
   methods: {
     async getValue() {
+      await this.getShopSearch()
       await this.getShopSearchLine()
-      await this.getLineSearchTopLeftData()
 
-      this.getEcharts()
-      this.getTableDataRoll()
-      this.getTableDataRankRoll()
+      await this.getEcharts()
+      await this.getTableDataRoll()
+      await this.getTableDataRankRoll()
+      await this.getMarqueeTipsContent()
     },
-    // 鐢熶骇浜х嚎
-    async getShopSearchLine() {
-      const { data: res } = await ShopSearchLine({ shopcode: 'CJ001' })
-      this.lineArr = res
+    // 鑾峰彇鍏憡
+    getMarqueeTipsContent() {
+      this.MarqueeTipsContent = '鍚勪綅鍛樺伐浠細鏍规嵁涓婄骇鐨勯�氱煡锛岀粨鍚堟垜浼佸疄闄呮儏鍐碉紝鐜板皢20xx骞寸殑鍏冩棪鏀惧亣閫氱煡濡備笅锛氫竴銆�1鏈�1鏃ヨ嚦1鏈�3鏃ユ斁鍋囪皟浼戯紝鍏�3澶┿��1鏈�4鏃ユ寮忎笂鐝�備簩銆佽妭鍋囨棩鏈熼棿锛屽悇鐝粍瑕佷弗鏍艰惤瀹炰笂绾х殑閲嶈鎸囩ず绮剧锛屾寜鐓т笂绾х殑鍏蜂綋瑕佹眰锛岃鐪熸姄濂借惤瀹炶妭鏃ユ湡闂村�肩彮澶囧嫟宸ヤ綔锛岀‘淇濊妭鏃ユ湡闂翠紒涓氬悇椤瑰伐浣滄甯歌繍杞�倄x浼佷笟20xx骞�12鏈�28鏃�'
+      const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ')
+      this.MarqueeTipsContent = this.MarqueeTipsContent + spance
+      this.speed = this.MarqueeTipsContent.length / 10
     },
-
-    getLineSearchTopLeftData() {
-      this.lineArr.forEach((item, index) => {
-        // if (index === 0) {
-        this.handleEveryLine(item, index)
-        // }
-      })
-    },
-    // 澶勭悊姣忎竴鏉′骇绾�
-    async handleEveryLine(item, index) {
-      const { data: res } = await LineSearchTopLeftData([item])
-      console.log(res, 8999)
-      let flag1 = true
-      let flag2 = true
-      let flag3 = true
-      let flag4 = true
-      if (index === 0) {
-        let count = 0
-        if (flag1) {
-          this.lineContent01 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
-          }
-          flag1 = false
-        }
-
-        setInterval(() => {
-          if (count > 0) {
-            this.lineContent01 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
-            }
-          }
-          // count++
-          if (res[0].children.length === count++) {
-            count = 0
-            LineSearchTopLeftData([item]).then(res => {
-              this.lineContent01 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
-              }
-            })
-
-            // this.handleEveryLine(item, index)
-          }
-        }, 1000 * 6)
-      } else if (index === 1) {
-        let count = 0
-        if (flag2) {
-          this.lineContent02 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
-          }
-          flag2 = false
-        }
-
-        setInterval(() => {
-          if (count > 0) {
-            this.lineContent02 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
-            }
-          }
-
-          // count++
-          console.log(this.lineContent02, 123)
-          if (res[0].children.length === count++) {
-            count = 0
-            LineSearchTopLeftData([item]).then(res => {
-              this.lineContent02 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
-              }
-            })
-
-            // this.handleEveryLine(item, index)
-          }
-        }, 1000 * 6)
-      } else if (index === 2) {
-        let count = 0
-        if (flag3) {
-          this.lineContent03 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
-          }
-          flag3 = false
-        }
-
-        setInterval(() => {
-          if (count > 0) {
-            this.lineContent03 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
-            }
-          }
-          // count++
-          if (res[0].children.length === count++) {
-            count = 0
-            LineSearchTopLeftData([item]).then(res => {
-              this.lineContent03 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
-              }
-            })
-            // this.handleEveryLine(item, index)
-          }
-        }, 1000 * 6)
-      } else if (index === 3) {
-        let count = 0
-        if (flag4) {
-          this.lineContent04 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
-          }
-          flag4 = false
-        }
-
-        setInterval(() => {
-          if (count > 0) {
-            this.lineContent04 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
-            }
-          }
-          // count++
-          if (res[0].children.length === count++) {
-            count = 0
-            LineSearchTopLeftData([item]).then(res => {
-              this.lineContent04 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
-              }
-            })
-            // this.handleEveryLine(item, index)
-          }
-        }, 1000 * 6)
+    // 鑾峰彇杞﹂棿缂栫爜
+    async  getShopSearch() {
+      const res1 = await ShopSearch()
+      if (res1.code === '200') {
+        this.ShopArr = []
+        res1.data.forEach(item => {
+          this.ShopArr.push(item.org_code)
+        })
       }
+      setInterval(() => {
+        ShopSearch().then(res1 => {
+          if (res1.code === '200') {
+            this.ShopArr = []
+            res1.data.forEach(item => {
+              this.ShopArr.push(item.org_code)
+            })
+          }
+          console.log(this.ShopArr, 997)
+        })
+      }, 1000 * 30)
+    },
+    // 浜х嚎鍔犲伐涓换鍔�
+    getShopSearchLine() {
+      let length, count
+      LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
+        this.lineContent = res.data
+        length = this.lineContent.length
+        count = Math.ceil(length / 4) // 闇�瑕佽疆鎾殑缁勬暟   4涓负涓�缁�
+        this.lineContent4 = this.lineContent.slice(0, 4)
+        // this.lineContent4[0].children.push({})
+      })
+
+      let start = 0
+      const task = setInterval(() => {
+        if (Math.floor(start / 4) === count) {
+          // clearInterval(task)
+          // this.getShopSearchLine()
+          start = 0
+          LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
+            this.lineContent = res.data
+            length = this.lineContent.length
+            count = Math.ceil(length / 4) // 闇�瑕佽疆鎾殑缁勬暟   4涓负涓�缁�
+            this.lineContent4 = this.lineContent.slice(0, 4)
+            console.log(count)
+          })
+        }
+        this.lineContent4 = this.lineContent.slice(start, start + 4)
+        start = start + 4
+        console.log(start)
+        console.log('鎵ц浜嗭紒锛侊紒')
+      }, 1000 * 3)
     },
 
-    // 鍦ㄥ埗璁㈠崟table
+    // 浜х嚎鍔犲伐浠诲姟
     getTableDataRoll() {
-      LineSearchBottomLeftData().then(res => {
+      LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
         this.tableData = res.data
+
+        const divData = this.$refs.tableData.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        const task = setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // divData.scrollTop += divData.scrollHeight / this.tableData.length
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
+              this.tableData = res.data
+              if (this.tableData.length > 10) {
+                clearInterval(task)
+                this.getTableDataRoll()
+              }
+            })
+          }
+        }, this.tableData.length <= 10 ? 1000 * 3 : 100)
       })
-      const divData = this.$refs.tableData.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        divData.scrollTop += 1
-        // divData.scrollTop += divData.scrollHeight / this.tableData.length
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          LineSearchBottomLeftData().then(res => {
-            this.tableData = res.data
-          })
-        }
-      }, this.tableData.length <= 10 ? 1000 * 6 : 100)
     },
-    // 浜х嚎浜у搧鏁伴噺鎺掕婊氬姩鏁堟灉
+    // 褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
     getTableDataRankRoll() {
-      LineSearchTopRightData().then(res => {
+      LineSearchTopRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
         this.tableDataRank = res.data
+
+        const divData = this.$refs.tableDataRank.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        const task = setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            LineSearchTopRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
+              this.tableDataRank = res.data
+
+              if (this.tableDataRank.length > 9) {
+                clearInterval(task)
+                this.getTableDataRankRoll()
+              }
+            })
+          }
+        }, this.tableDataRank.length <= 9 ? 1000 * 3 : 100)
       })
-      console.log(this.tableDataRank.length, 88)
-      const divData = this.$refs.tableDataRank.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          LineSearchTopRightData().then(res => {
-            this.tableDataRank = res.data
-          })
-        }
-      }, this.tableDataRank.length <= 10 ? 1000 * 6 : 100)
     },
     // 鑾峰彇echarts
     getEcharts() {
-      LineSearchBottomRightData().then(res => {
-        loadEcharts('bar02', bar02(res.data))
+      LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
+        loadEcharts('bar02', bar02(res.data.map(i => i.cont), res.data.map(i => i.name)))
       })
 
       setInterval(() => {
-        LineSearchBottomRightData().then(res => {
-          loadEcharts('bar02', bar02(res.data))
+        LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
+          loadEcharts('bar02', bar02(res.data.map(i => i.cont), res.data.map(i => i.name)))
         })
       }, 1000 * 15)
     },
@@ -872,8 +581,9 @@
 
 <style scoped lang="scss">
 //$kbBorderColor: #3A0088;
-$kbBorderColor: #09d8f2;
-$kbBackgroundColor: rgba(30, 33, 46,0.6);
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9, 216, 242, 0.4);
+$kbBackgroundColor: rgba(30, 33, 46, 0.6);
 .kb_content {
   display: flex;
   position: relative;
@@ -891,10 +601,11 @@
 
     .kb_left_top_title01 {
       position: absolute;
-      top: 10px;
+      top: 40px;
       left: 15px;
       font-size: 18px;
       display: flex;
+      color: #00ffff;
 
       .PG01 {
         background: url("../../assets/images/GP_1.png") no-repeat;
@@ -910,40 +621,38 @@
       display: flex;
       flex-direction: column;
       justify-content: flex-start;
-      padding-top: 30px;
+      //justify-content: flex-end;
+      //padding-top: 30px;
+      padding-top: 70px;
+      //padding-bottom: 25px;
 
       .kb_left_top_block {
-        margin-top: 10px;
+        //margin-top: 10px;
         width: 100%;
         height: 100px;
         display: flex;
         border-radius: 5px;
         font-size: 14px;
+        //padding: 10px 0;
         //border: 1px solid rgba(255, 255, 255, 0.6);
-        border: 1px solid $kbBorderColor;
+        //border: 1px solid $kbBorderColor;
+        //border-bottom: 1px solid $kbBorderColor;
+        border-top: 1px solid $kbBorderColor;
+        border-right: 1px solid $kbBorderColor;
+        border-left: 1px solid $kbBorderColor;
         justify-content: flex-start;
-
-        .kb_block01 {
-          width: 171px;
-          display: flex;
-          align-items: center;
-          border-right: 1px solid $kbBorderColor;
-          background-color: $kbBackgroundColor;
-          border-bottom-left-radius: 5px;
-          border-top-left-radius: 5px;
-
-        }
 
         .kb_block02 {
           width: 304px;
           display: flex;
           align-items: center;
           border-right: 1px solid $kbBorderColor;
-          background-color:$kbBackgroundColor;
+          background-color: $kbBackgroundColor;
         }
 
         .kb_block03 {
-          width: 843px;
+          width: 1020px;
+          //width: 100%;
           display: flex;
           flex-direction: column;
           font-size: 12px;
@@ -952,7 +661,8 @@
 
           .kb_block03_content {
             border: 1px solid $kbBorderColor;
-            width: 152px;
+            //width: 152px;
+            width: 180px;
             height: 50px;
             margin-right: 15px;
             //margin-right: 20px;
@@ -962,7 +672,7 @@
             .content01 {
               //width: 50px;
               width: 100%;
-              height: 20px;
+              height: 18px;
               border-bottom: 1px solid $kbBorderColor;
               display: flex;
               align-items: center;
@@ -971,9 +681,9 @@
 
             .content02Parent {
               display: flex;
-
+              //height:30px;
               .content02 {
-                width: 50px;
+                width: 60px;
                 border-right: 1px solid $kbBorderColor;
 
                 .content02_1 {
@@ -1004,7 +714,8 @@
           display: flex;
 
           .kb_block03_02_content {
-            width: 152px;
+            //width: 152px;
+            width: 180px;
             margin-right: 15px;
 
             .content01 {
@@ -1022,6 +733,9 @@
 
       }
 
+      .kb_left_top_block:last-child{
+        border-bottom: 1px solid $kbBorderColor;
+      }
     }
 
     .kb_left_bottom {
@@ -1047,6 +761,8 @@
           //padding-left: 10px;
           margin-bottom: 10px;
           margin-top: -10px;
+          color: #00ffff;
+
         }
 
         .content_body {
@@ -1061,12 +777,14 @@
     height: 100%;
 
     .kb_right_top {
+      margin-top: 30px;
+      margin-bottom: -30px;
       height: 476px;
       width: 100%;
 
       .kb_right_top_content {
         //border: 1px solid $kbBorderColor;
-        height: 460px;
+        height: 430px;
         display: flex;
         flex-direction: column;
 
@@ -1076,6 +794,7 @@
           //padding-left: 10px;
           margin-bottom: 10px;
           margin-top: -10px;
+          color: #00ffff;
         }
 
         .content_body {
@@ -1086,19 +805,22 @@
     }
 
     .kb_right_bottom {
-      height: 481px;
+      height: 482px;
       margin-top: 8px;
-      .kb_right_bottom_content_title{
-      font-size: 18px;
+
+      .kb_right_bottom_content_title {
+        color: #00ffff;
+        font-size: 18px;
         margin-bottom: 10px;
         margin-top: -10px;
       }
+
       .kb_right_bottom_content {
         border: 1px solid $kbBorderColor;
-        height: 440px;
+        height: 441px;
         width: 100%;
         border-radius: 5px;
-        background-color:$kbBackgroundColor;
+        background-color: $kbBackgroundColor;
         //height: 100%;
       }
     }
@@ -1119,6 +841,10 @@
   width: 0;
 }
 
+::v-deep .cell {
+  padding: 0 !important;
+}
+
 //
 ///* 瀹氫箟keyframes鍔ㄧ敾锛屽懡鍚嶄负blink*/
 //@keyframes blink {

--
Gitblit v1.9.3