From ad47579fa77295dd2ebd0610c02421deeff8b982 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期三, 12 六月 2024 09:59:25 +0800
Subject: [PATCH] 1.工单SOP开发完成

---
 src/views/kanbanManager/ckgl.vue      |  426 +++++-------
 src/views/kanbanManager/cgdd.vue      |  976 ++++++++++++++--------------
 vue.config.js                         |    1 
 src/views/kanbanManager/cj.vue        |   14 
 src/views/sopManager/sopWorkOrder.vue |  509 +++++++++++++++
 src/api/GeneralBasicData.js           |   10 
 src/views/kanbanManager/zhkb.vue      |    6 
 src/api/SopManager.js                 |   37 +
 8 files changed, 1,248 insertions(+), 731 deletions(-)

diff --git a/src/api/GeneralBasicData.js b/src/api/GeneralBasicData.js
index 395e6b7..6d1a61e 100644
--- a/src/api/GeneralBasicData.js
+++ b/src/api/GeneralBasicData.js
@@ -8,6 +8,7 @@
     params: data
   })
 }
+
 // 缁勭粐鏋舵瀯鍩虹璧勬枡(鏃犲叕鍙�)
 export function PrentOrganizationNoCompany(data) {
   return request({
@@ -155,6 +156,7 @@
     params: data
   })
 }
+
 // 浠撳簱鏌ユ壘浠撲綅淇℃伅
 export function WareHouseSelectLocation(data) {
   return request({
@@ -173,3 +175,11 @@
   })
 }
 
+// 鑾峰彇宸ュ崟浜у搧淇℃伅
+export function WrkOrderDataSelect(data) {
+  return request({
+    url: 'GeneralBasicData/WrkOrderDataSelect',
+    method: 'get',
+    params: data
+  })
+}
diff --git a/src/api/SopManager.js b/src/api/SopManager.js
index f332a64..0209670 100644
--- a/src/api/SopManager.js
+++ b/src/api/SopManager.js
@@ -62,3 +62,40 @@
     params: data
   })
 }
+
+// 绯荤粺璁剧疆,宸ュ崟SOP鏌ヨ
+export function WrkOrderSearch(data) {
+  return request({
+    url: 'SopManageMent/WrkOrderSearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 绯荤粺璁剧疆,宸ュ崟SOP涓婁紶鑾峰彇鏈�澶х増鏈彿
+export function WrkOrderSopMaxVersion(data) {
+  return request({
+    url: 'SopManageMent/WrkOrderSopMaxVersion',
+    method: 'get',
+    params: data
+  })
+}
+
+// 绯荤粺璁剧疆,宸ュ崟SOP鏂板
+export function WrkOrderSopAddSeave(data) {
+  return request({
+    url: 'SopManageMent/WrkOrderSopAddSeave',
+    method: 'post',
+    data
+  })
+}
+
+// 绯荤粺璁剧疆,宸ュ崟SOP鍒犻櫎
+export function WrkOrderSopDeleteSeave(data) {
+  return request({
+    url: 'SopManageMent/WrkOrderSopDeleteSeave',
+    method: 'post',
+    params: data
+  })
+}
+
diff --git a/src/views/kanbanManager/cgdd.vue b/src/views/kanbanManager/cgdd.vue
index 1b835b4..2ed54b2 100644
--- a/src/views/kanbanManager/cgdd.vue
+++ b/src/views/kanbanManager/cgdd.vue
@@ -1,517 +1,517 @@
-<template>
-  <div>
-    <div class="kb_dashboard">
+<!--<template>-->
+<!--  <div>-->
+<!--    <div class="kb_dashboard">-->
 
-      <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
+<!--      &lt;!&ndash;    鏄熺┖鑳屾櫙&ndash;&gt;-->
+<!--      <div ref="starsRef" class="stars">-->
+<!--        <div v-for="(item, index) in starsCount" :key="index" class="star" />-->
+<!--      </div>-->
 
-      <div class="kb_header">
-        <div class="flex_c_c kb_header_text">
-          <div id="topBarLeft" style="width:600px;height:100%" />
-          閲囪喘璺熻釜鏁板瓧鍖栫湅鏉�
-          <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />
-        </div>
+<!--      <div class="kb_header">-->
+<!--        <div class="flex_c_c kb_header_text">-->
+<!--          <div id="topBarLeft" style="width:600px;height:100%" />-->
+<!--          閲囪喘璺熻釜鏁板瓧鍖栫湅鏉�-->
+<!--          <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />-->
+<!--        </div>-->
 
-        <div class="kb_headTime" style="left: 85px">
-          <span>娴欐睙鏂板嚡杩暟瀛楃鎶�鑲′唤鏈夐檺鍏徃</span>
-        </div>
+<!--        <div class="kb_headTime" style="left: 85px">-->
+<!--          <span>娴欐睙鏂板嚡杩暟瀛楃鎶�鑲′唤鏈夐檺鍏徃</span>-->
+<!--        </div>-->
 
-        <div class="kb_headTime">
-          <span>{{ headTime }}</span>
-        </div>
-      </div>
-      <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px;height: 980px">
-        <div style="width: 1250px;" class="flex_c_b">
-          <div style="height: 380px;">
-            <div>
-              <div class="smallTitle">
-                <svg-icon icon-class="cggz" class="svg_class" />
-                閲囪喘璺熻釜
-              </div>
-              <div class="lineContent horn" style="height: 345px">
-                <div id="cgddchart" class="flex_c_c" style="width: 100%;height:100%" />
-              </div>
-            </div>
-          </div>
-          <div style="height: 560px; ">
-            <div>
-              <div class="smallTitle">
-                <svg-icon icon-class="cggz" class="svg_class" />
-                閲囪喘鍒拌揣璺熻釜
-              </div>
-              <div class="lineContent horn" style="height: 525px">
-                <el-table
-                  ref="tableData"
-                  :data="tableData"
-                  class="tableData"
-                  style="width: 100%;"
-                  :header-cell-style="headerCellStyleCenter"
-                  :cell-style="cellStyleCenter"
-                  height="515"
-                >
-                  <el-table-column
-                    prop="PurchaseOrder"
-                    label="閲囪喘璁㈠崟"
-                    width="225"
-                  >
-                    <template slot-scope="{row}">
-                      <div class="ellipsis">{{ row.PurchaseOrder }}</div>
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    prop="suppername"
-                    label="渚涘簲鍟�"
-                    width="183"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>
-                      <div v-else />
-                    </template>
-                  </el-table-column>
-                  <!--                  <el-table-column-->
-                  <!--                    prop="username"-->
-                  <!--                    label="閲囪喘鍛�"-->
-                  <!--                    width="78"-->
-                  <!--                  >-->
-                  <!--                    <template slot-scope="{row}">-->
-                  <!--                      <div v-if="row.username">{{ row.username }}</div>-->
-                  <!--                      <div v-else>/</div>-->
-                  <!--                    </template>-->
-                  <!--                  </el-table-column>-->
+<!--        <div class="kb_headTime">-->
+<!--          <span>{{ headTime }}</span>-->
+<!--        </div>-->
+<!--      </div>-->
+<!--      <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px;height: 980px">-->
+<!--        <div style="width: 1250px;" class="flex_c_b">-->
+<!--          <div style="height: 380px;">-->
+<!--            <div>-->
+<!--              <div class="smallTitle">-->
+<!--                <svg-icon icon-class="cggz" class="svg_class" />-->
+<!--                閲囪喘璺熻釜-->
+<!--              </div>-->
+<!--              <div class="lineContent horn" style="height: 345px">-->
+<!--                <div id="cgddchart" class="flex_c_c" style="width: 100%;height:100%" />-->
+<!--              </div>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--          <div style="height: 560px; ">-->
+<!--            <div>-->
+<!--              <div class="smallTitle">-->
+<!--                <svg-icon icon-class="cggz" class="svg_class" />-->
+<!--                閲囪喘鍒拌揣璺熻釜-->
+<!--              </div>-->
+<!--              <div class="lineContent horn" style="height: 525px">-->
+<!--                <el-table-->
+<!--                  ref="tableData"-->
+<!--                  :data="tableData"-->
+<!--                  class="tableData"-->
+<!--                  style="width: 100%;"-->
+<!--                  :header-cell-style="headerCellStyleCenter"-->
+<!--                  :cell-style="cellStyleCenter"-->
+<!--                  height="515"-->
+<!--                >-->
+<!--                  <el-table-column-->
+<!--                    prop="PurchaseOrder"-->
+<!--                    label="閲囪喘璁㈠崟"-->
+<!--                    width="225"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div class="ellipsis">{{ row.PurchaseOrder }}</div>-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  <el-table-column-->
+<!--                    prop="suppername"-->
+<!--                    label="渚涘簲鍟�"-->
+<!--                    width="183"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>-->
+<!--                      <div v-else />-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    prop="username"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    label="閲囪喘鍛�"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    width="78"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  >&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    <template slot-scope="{row}">&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-if="row.username">{{ row.username }}</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-else>/</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    </template>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  </el-table-column>&ndash;&gt;-->
 
-                  <!--                  <el-table-column-->
-                  <!--                    prop="partcode"-->
-                  <!--                    label="浜у搧缂栫爜"-->
-                  <!--                    width="108"-->
-                  <!--                  />-->
-                  <el-table-column
-                    prop="partname"
-                    label="浜у搧鍚嶇О"
-                    width="215"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
-                      <div v-else />
-                    </template>
-                  </el-table-column>
-                  <!--                  <el-table-column-->
-                  <!--                    prop="partspec"-->
-                  <!--                    label="瑙勬牸鍨嬪彿"-->
-                  <!--                    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="quantity"
-                    label="璁㈠崟鏁伴噺"
-                    width="114"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>
-                      <div v-else>0</div>
-                    </template>
-                  </el-table-column>
-                  <!--                  <el-table-column-->
-                  <!--                    prop="checktype"-->
-                  <!--                    label="妫�楠岀姸鎬�"-->
-                  <!--                    width="104"-->
-                  <!--                  >-->
-                  <!--                    <template slot-scope="{row}">-->
-                  <!--                      <div v-if="row.checktype===null">鏈楠�</div>-->
-                  <!--                      <div v-else>宸叉楠�</div>-->
-                  <!--                    </template>-->
-                  <!--                  </el-table-column>-->
-                  <!--                  <el-table-column-->
-                  <!--                    prop="checkuser"-->
-                  <!--                    label="妫�楠屼汉鍛�"-->
-                  <!--                    width="94"-->
-                  <!--                  >-->
-                  <!--                    <template slot-scope="{row}">-->
-                  <!--                      <div v-if="row.checkuser===null">/</div>-->
-                  <!--                      <div v-else>{{ row.checkuser }}</div>-->
-                  <!--                    </template>-->
-                  <!--                  </el-table-column>-->
-                  <el-table-column
-                    prop="quantity1"
-                    label="宸叉敹鏁伴噺"
-                    width="114"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.quantity1">{{ parseFloat(row.quantity1) }}</div>
-                      <div v-else>0</div>
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    label="鏈敹鏁伴噺"
-                    width="114"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity - row.quantity1) }}</div>
-                      <div v-else>0</div>
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    prop="acceptDate"
-                    label="棰勮浜ゆ湡"
-                    width="135"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>
-                      <div v-else>/</div>
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    prop="warning"
-                    label="寤舵湡澶╂暟"
-                    width="144"
-                  >
-                    <template slot-scope="{row}">
-                      <div v-if="parseFloat(row.warning)<0" style="color: red">{{
-                        Math.abs(parseFloat(row.warning))
-                      }}
-                      </div>
-                      <div v-else-if="row.warning===null||row.warning===''||row.warning>=0">0</div>
-                      <!--                      <div v-else-if="parseFloat(row.warning)>3">{{ row.warning }}</div>-->
-                      <!--                      <div v-else-if="parseFloat(row.warning)>0&&parseFloat(row.warning)<=3" style="color:yellow;">-->
-                      <!--                        {{ row.warning }}-->
-                      <!--                      </div>-->
-                    </template>
-                  </el-table-column>
-                </el-table>
-                <!--                <div id="cgddchart" class="flex_c_c" style="width: 100%;height:100%" />-->
-              </div>
-            </div>
-          </div>
-        </div>
-        <div style="width: 600px;">
-          <div>
-            <div class="smallTitle">
-              <svg-icon icon-class="yqjh" class="svg_class" />
-              渚涘簲鍟嗗欢鏈熶氦璐ф帓琛�
-            </div>
-            <div class="lineContent horn" style="height: 925px">
-              <el-table
-                ref="tableDataRank"
-                :data="tableDataRank"
-                class="tableData"
-                style="width: 100%;"
-                :header-cell-style="headerCellStyleCenter"
-                :cell-style="cellStyleCenter"
-                :row-class-name="tableRowClassName"
-                height="920"
-              >
-                <el-table-column
-                  type="index"
-                  label="搴忓彿"
-                  width="80"
-                >
-                  <template slot-scope="{row}">
-                    <div>NO.{{ row.index }}</div>
-                    <!--                      <div>NO.100</div>-->
-                  </template>
-                </el-table-column>
-                <!--                  <el-table-column-->
-                <!--                    prop="cj"-->
-                <!--                    label="杞﹂棿"-->
-                <!--                    width="100"-->
-                <!--                  />-->
-                <el-table-column
-                  prop="suppercode"
-                  label="渚涘簲鍟嗙紪鐮�"
-                  width="140"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.suppercode" class="ellipsis">{{ row.suppercode }}</div>
-                    <div v-else />
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="suppername"
-                  width="293"
-                  label="渚涘簲鍟嗗悕绉�"
-                >
-                  <template slot-scope="{row}">
-                    <div class="ellipsis">{{ row.suppername }}</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="cont"
-                  label="娆℃暟"
-                  width="81"
-                />
-              </el-table>
-            </div>
-          </div>
-        </div>
-      </div>
+<!--                  &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    prop="partcode"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    label="浜у搧缂栫爜"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    width="108"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  />&ndash;&gt;-->
+<!--                  <el-table-column-->
+<!--                    prop="partname"-->
+<!--                    label="浜у搧鍚嶇О"-->
+<!--                    width="215"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>-->
+<!--                      <div v-else />-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    prop="partspec"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    label="瑙勬牸鍨嬪彿"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    width="130"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  >&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    <template slot-scope="{row}">&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-else>/</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    </template>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  </el-table-column>&ndash;&gt;-->
+<!--                  <el-table-column-->
+<!--                    prop="quantity"-->
+<!--                    label="璁㈠崟鏁伴噺"-->
+<!--                    width="114"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>-->
+<!--                      <div v-else>0</div>-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    prop="checktype"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    label="妫�楠岀姸鎬�"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    width="104"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  >&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    <template slot-scope="{row}">&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-if="row.checktype===null">鏈楠�</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-else>宸叉楠�</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    </template>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  </el-table-column>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    prop="checkuser"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    label="妫�楠屼汉鍛�"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    width="94"&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  >&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    <template slot-scope="{row}">&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-if="row.checkuser===null">/</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                      <div v-else>{{ row.checkuser }}</div>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                    </template>&ndash;&gt;-->
+<!--                  &lt;!&ndash;                  </el-table-column>&ndash;&gt;-->
+<!--                  <el-table-column-->
+<!--                    prop="quantity1"-->
+<!--                    label="宸叉敹鏁伴噺"-->
+<!--                    width="114"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.quantity1">{{ parseFloat(row.quantity1) }}</div>-->
+<!--                      <div v-else>0</div>-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  <el-table-column-->
+<!--                    label="鏈敹鏁伴噺"-->
+<!--                    width="114"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity - row.quantity1) }}</div>-->
+<!--                      <div v-else>0</div>-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  <el-table-column-->
+<!--                    prop="acceptDate"-->
+<!--                    label="棰勮浜ゆ湡"-->
+<!--                    width="135"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>-->
+<!--                      <div v-else>/</div>-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                  <el-table-column-->
+<!--                    prop="warning"-->
+<!--                    label="寤舵湡澶╂暟"-->
+<!--                    width="144"-->
+<!--                  >-->
+<!--                    <template slot-scope="{row}">-->
+<!--                      <div v-if="parseFloat(row.warning)<0" style="color: red">{{-->
+<!--                        Math.abs(parseFloat(row.warning))-->
+<!--                      }}-->
+<!--                      </div>-->
+<!--                      <div v-else-if="row.warning===null||row.warning===''||row.warning>=0">0</div>-->
+<!--                      &lt;!&ndash;                      <div v-else-if="parseFloat(row.warning)>3">{{ row.warning }}</div>&ndash;&gt;-->
+<!--                      &lt;!&ndash;                      <div v-else-if="parseFloat(row.warning)>0&&parseFloat(row.warning)<=3" style="color:yellow;">&ndash;&gt;-->
+<!--                      &lt;!&ndash;                        {{ row.warning }}&ndash;&gt;-->
+<!--                      &lt;!&ndash;                      </div>&ndash;&gt;-->
+<!--                    </template>-->
+<!--                  </el-table-column>-->
+<!--                </el-table>-->
+<!--                &lt;!&ndash;                <div id="cgddchart" class="flex_c_c" style="width: 100%;height:100%" />&ndash;&gt;-->
+<!--              </div>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div style="width: 600px;">-->
+<!--          <div>-->
+<!--            <div class="smallTitle">-->
+<!--              <svg-icon icon-class="yqjh" class="svg_class" />-->
+<!--              渚涘簲鍟嗗欢鏈熶氦璐ф帓琛�-->
+<!--            </div>-->
+<!--            <div class="lineContent horn" style="height: 925px">-->
+<!--              <el-table-->
+<!--                ref="tableDataRank"-->
+<!--                :data="tableDataRank"-->
+<!--                class="tableData"-->
+<!--                style="width: 100%;"-->
+<!--                :header-cell-style="headerCellStyleCenter"-->
+<!--                :cell-style="cellStyleCenter"-->
+<!--                :row-class-name="tableRowClassName"-->
+<!--                height="920"-->
+<!--              >-->
+<!--                <el-table-column-->
+<!--                  type="index"-->
+<!--                  label="搴忓彿"-->
+<!--                  width="80"-->
+<!--                >-->
+<!--                  <template slot-scope="{row}">-->
+<!--                    <div>NO.{{ row.index }}</div>-->
+<!--                    &lt;!&ndash;                      <div>NO.100</div>&ndash;&gt;-->
+<!--                  </template>-->
+<!--                </el-table-column>-->
+<!--                &lt;!&ndash;                  <el-table-column&ndash;&gt;-->
+<!--                &lt;!&ndash;                    prop="cj"&ndash;&gt;-->
+<!--                &lt;!&ndash;                    label="杞﹂棿"&ndash;&gt;-->
+<!--                &lt;!&ndash;                    width="100"&ndash;&gt;-->
+<!--                &lt;!&ndash;                  />&ndash;&gt;-->
+<!--                <el-table-column-->
+<!--                  prop="suppercode"-->
+<!--                  label="渚涘簲鍟嗙紪鐮�"-->
+<!--                  width="140"-->
+<!--                >-->
+<!--                  <template slot-scope="{row}">-->
+<!--                    <div v-if="row.suppercode" class="ellipsis">{{ row.suppercode }}</div>-->
+<!--                    <div v-else />-->
+<!--                  </template>-->
+<!--                </el-table-column>-->
+<!--                <el-table-column-->
+<!--                  prop="suppername"-->
+<!--                  width="293"-->
+<!--                  label="渚涘簲鍟嗗悕绉�"-->
+<!--                >-->
+<!--                  <template slot-scope="{row}">-->
+<!--                    <div class="ellipsis">{{ row.suppername }}</div>-->
+<!--                  </template>-->
+<!--                </el-table-column>-->
+<!--                <el-table-column-->
+<!--                  prop="cont"-->
+<!--                  label="娆℃暟"-->
+<!--                  width="81"-->
+<!--                />-->
+<!--              </el-table>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--      </div>-->
 
-    </div>
-  </div>
-</template>
+<!--    </div>-->
+<!--  </div>-->
+<!--</template>-->
 
-<script>
-import './kbCommon.css'
-import { cgddchart, kbTop, loadEcharts } from '@/utils/myEcharts'
-import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/kanbanManager'
+<!--<script>-->
+<!--import './kbCommon.css'-->
+<!--import { cgddchart, kbTop, loadEcharts } from '@/utils/myEcharts'-->
+<!--import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/kanbanManager'-->
 
-export default {
-  name: 'Index2',
-  data() {
-    return {
-      onLine: navigator.onLine, // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
+<!--export default {-->
+<!--  name: 'Index2',-->
+<!--  data() {-->
+<!--    return {-->
+<!--      onLine: navigator.onLine, // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎-->
 
-      headTime: '',
-      purchaseLeftTopData: {},
+<!--      headTime: '',-->
+<!--      purchaseLeftTopData: {},-->
 
-      tableData: [],
-      tableDataRank: [],
+<!--      tableData: [],-->
+<!--      tableDataRank: [],-->
 
-      PurchaseRight: null,
-      PurchaseLeftBottom: null,
+<!--      PurchaseRight: null,-->
+<!--      PurchaseLeftBottom: null,-->
 
-      starsCount: 800, // 鏄熸槦鏁伴噺
-      distance: 900 // 闂磋窛
+<!--      starsCount: 800, // 鏄熸槦鏁伴噺-->
+<!--      distance: 900 // 闂磋窛-->
 
-    }
-  },
+<!--    }-->
+<!--  },-->
 
-  created() {
-    setInterval(this.getNowTime, 1000)
+<!--  created() {-->
+<!--    setInterval(this.getNowTime, 1000)-->
 
-    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
-    setInterval(() => {
-      window.location.reload()
-    }, 1000 * 60 * 60 * 10)
-  },
-  mounted() {
-    // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
-    window.addEventListener('online', this.updateOnlineStatus)
-    window.addEventListener('offline', this.updateOnlineStatus)
-    this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
+<!--    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�-->
+<!--    setInterval(() => {-->
+<!--      window.location.reload()-->
+<!--    }, 1000 * 60 * 60 * 10)-->
+<!--  },-->
+<!--  mounted() {-->
+<!--    // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎-->
+<!--    window.addEventListener('online', this.updateOnlineStatus)-->
+<!--    window.addEventListener('offline', this.updateOnlineStatus)-->
+<!--    this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })-->
 
-    this.getTopBar()
-    this.getEcharts()
-    this.getPurchaseLeftBottom()
-    this.getPurchaseRight()
+<!--    this.getTopBar()-->
+<!--    this.getEcharts()-->
+<!--    this.getPurchaseLeftBottom()-->
+<!--    this.getPurchaseRight()-->
 
-    this.setStarsRef()
-  },
-  beforeDestroy() {
-    window.removeEventListener('online', this.updateOnlineStatus)
-    window.removeEventListener('offline', this.updateOnlineStatus)
-  },
-  methods: {
-    // 鏇存柊缃戠粶鐘舵��
-    updateOnlineStatus(e) {
-      if (e.isFirst) {
-        // console.log('x')
-      } else {
-        const loading = this.$loading({
-          lock: true,
-          text: '鏂綉浜嗭紝姝e湪鎷煎懡鑱旂綉涓紝璇锋鏌ョ綉缁滄槸鍚︽甯�...',
-          spinner: 'el-icon-loading',
-          customClass: 'osloading',
-          background: 'rgba(0, 0, 0, 0.7)'
-        })
-        const { type } = e
-        this.onLine = type === 'online'
-        if (this.onLine) {
-          loading.close()
-          this.$message.success('缃戠粶杩炴帴鎴愬姛锛�')
-        } else {
-          this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')
-        }
-      }
-    },
-    setStarsRef() {
-      const starNodes = Array.from(this.$refs.starsRef.children)
-      starNodes.forEach(item => {
-        const speed = 0.2 + Math.random() * 1
-        const thisDistance = this.distance + Math.random() * 300
-        item.style.transformOrigin = `0 0 ${thisDistance}px`
-        item.style.transform = `
-        translate3d(0,0,-${thisDistance}px)
-        rotateY(${Math.random() * 360}deg)
-        rotateX(${Math.random() * -50}deg)
-        scale(${speed},${speed})`
-      })
-    },
-    // 鑾峰彇topEcharts
-    getTopBar() {
-      loadEcharts('topBarLeft', kbTop())
-      loadEcharts('topBarRight', kbTop())
-    },
-    // 鑾峰彇echarts
-    async getEcharts() {
-      PurchaseLeftTop().then(res => {
-        this.purchaseLeftTopData = res.data[0]
-        loadEcharts('cgddchart', cgddchart(this.purchaseLeftTopData.ThisMonthPurchaseOrderCont, this.purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont, this.purchaseLeftTopData.ThisMonthWareHouseOrderCont))
-        // loadEcharts('cgddchart', cgddchart(30, 5, 10))
-      })
-      setInterval(() => {
-        PurchaseLeftTop().then(res => {
-          this.purchaseLeftTopData = res.data[0]
-          loadEcharts('cgddchart', cgddchart(this.purchaseLeftTopData.ThisMonthPurchaseOrderCont, this.purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont, this.purchaseLeftTopData.ThisMonthWareHouseOrderCont))
-        })
-      }, 1000 * 6)
-    },
-    getPurchaseLeftBottom() {
-      PurchaseLeftBottom().then(res => {
-        this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��
+<!--    this.setStarsRef()-->
+<!--  },-->
+<!--  beforeDestroy() {-->
+<!--    window.removeEventListener('online', this.updateOnlineStatus)-->
+<!--    window.removeEventListener('offline', this.updateOnlineStatus)-->
+<!--  },-->
+<!--  methods: {-->
+<!--    // 鏇存柊缃戠粶鐘舵��-->
+<!--    updateOnlineStatus(e) {-->
+<!--      if (e.isFirst) {-->
+<!--        // console.log('x')-->
+<!--      } else {-->
+<!--        const loading = this.$loading({-->
+<!--          lock: true,-->
+<!--          text: '鏂綉浜嗭紝姝e湪鎷煎懡鑱旂綉涓紝璇锋鏌ョ綉缁滄槸鍚︽甯�...',-->
+<!--          spinner: 'el-icon-loading',-->
+<!--          customClass: 'osloading',-->
+<!--          background: 'rgba(0, 0, 0, 0.7)'-->
+<!--        })-->
+<!--        const { type } = e-->
+<!--        this.onLine = type === 'online'-->
+<!--        if (this.onLine) {-->
+<!--          loading.close()-->
+<!--          this.$message.success('缃戠粶杩炴帴鎴愬姛锛�')-->
+<!--        } else {-->
+<!--          this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')-->
+<!--        }-->
+<!--      }-->
+<!--    },-->
+<!--    setStarsRef() {-->
+<!--      const starNodes = Array.from(this.$refs.starsRef.children)-->
+<!--      starNodes.forEach(item => {-->
+<!--        const speed = 0.2 + Math.random() * 1-->
+<!--        const thisDistance = this.distance + Math.random() * 300-->
+<!--        item.style.transformOrigin = `0 0 ${thisDistance}px`-->
+<!--        item.style.transform = `-->
+<!--        translate3d(0,0,-${thisDistance}px)-->
+<!--        rotateY(${Math.random() * 360}deg)-->
+<!--        rotateX(${Math.random() * -50}deg)-->
+<!--        scale(${speed},${speed})`-->
+<!--      })-->
+<!--    },-->
+<!--    // 鑾峰彇topEcharts-->
+<!--    getTopBar() {-->
+<!--      loadEcharts('topBarLeft', kbTop())-->
+<!--      loadEcharts('topBarRight', kbTop())-->
+<!--    },-->
+<!--    // 鑾峰彇echarts-->
+<!--    async getEcharts() {-->
+<!--      PurchaseLeftTop().then(res => {-->
+<!--        this.purchaseLeftTopData = res.data[0]-->
+<!--        loadEcharts('cgddchart', cgddchart(this.purchaseLeftTopData.ThisMonthPurchaseOrderCont, this.purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont, this.purchaseLeftTopData.ThisMonthWareHouseOrderCont))-->
+<!--        // loadEcharts('cgddchart', cgddchart(30, 5, 10))-->
+<!--      })-->
+<!--      setInterval(() => {-->
+<!--        PurchaseLeftTop().then(res => {-->
+<!--          this.purchaseLeftTopData = res.data[0]-->
+<!--          loadEcharts('cgddchart', cgddchart(this.purchaseLeftTopData.ThisMonthPurchaseOrderCont, this.purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont, this.purchaseLeftTopData.ThisMonthWareHouseOrderCont))-->
+<!--        })-->
+<!--      }, 1000 * 6)-->
+<!--    },-->
+<!--    getPurchaseLeftBottom() {-->
+<!--      PurchaseLeftBottom().then(res => {-->
+<!--        this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��-->
 
-        // this.number1 = this.tableData.length
+<!--        // this.number1 = this.tableData.length-->
 
-        const divData = this.$refs.tableData.bodyWrapper
-        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-        this.PurchaseLeftBottom = setInterval(() => {
-          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-          divData.scrollTop += 1
-          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-            // 閲嶇疆table璺濈椤堕儴璺濈
-            divData.scrollTop = 0
-            PurchaseLeftBottom().then(res => {
-              this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��
-              // this.number1 = this.tableData.length
-              if (this.tableData.length > 13) {
-                clearInterval(this.PurchaseLeftBottom)
-                this.getPurchaseLeftBottom()
-              }
-            })
-          }
-        }, this.tableData.length <= 13 ? 1000 * 3 : 100)
-      })
-    },
-    getPurchaseRight() {
-      PurchaseRight().then(res => {
-        this.tableDataRank = res.data
-        const divData = this.$refs.tableDataRank.bodyWrapper
-        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-        this.PurchaseRight = setInterval(() => {
-          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-          divData.scrollTop += 1
-          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-            // 閲嶇疆table璺濈椤堕儴璺濈
-            divData.scrollTop = 0
-            PurchaseRight().then(res => {
-              this.tableDataRank = res.data
-              if (this.tableDataRank.length > 23) {
-                clearInterval(this.PurchaseRight)
-                this.getPurchaseRight()
-              }
-            })
-          }
-        }, this.tableDataRank.length <= 23 ? 1000 * 3 : 100)
-      })
-    },
-    tableRowClassName({ row, rowIndex }) {
-      // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row
-      row.index = rowIndex + 1
-    },
+<!--        const divData = this.$refs.tableData.bodyWrapper-->
+<!--        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)-->
+<!--        this.PurchaseLeftBottom = setInterval(() => {-->
+<!--          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌-->
+<!--          divData.scrollTop += 1-->
+<!--          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)-->
+<!--          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {-->
+<!--            // 閲嶇疆table璺濈椤堕儴璺濈-->
+<!--            divData.scrollTop = 0-->
+<!--            PurchaseLeftBottom().then(res => {-->
+<!--              this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��-->
+<!--              // this.number1 = this.tableData.length-->
+<!--              if (this.tableData.length > 13) {-->
+<!--                clearInterval(this.PurchaseLeftBottom)-->
+<!--                this.getPurchaseLeftBottom()-->
+<!--              }-->
+<!--            })-->
+<!--          }-->
+<!--        }, this.tableData.length <= 13 ? 1000 * 3 : 100)-->
+<!--      })-->
+<!--    },-->
+<!--    getPurchaseRight() {-->
+<!--      PurchaseRight().then(res => {-->
+<!--        this.tableDataRank = res.data-->
+<!--        const divData = this.$refs.tableDataRank.bodyWrapper-->
+<!--        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)-->
+<!--        this.PurchaseRight = setInterval(() => {-->
+<!--          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌-->
+<!--          divData.scrollTop += 1-->
+<!--          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)-->
+<!--          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {-->
+<!--            // 閲嶇疆table璺濈椤堕儴璺濈-->
+<!--            divData.scrollTop = 0-->
+<!--            PurchaseRight().then(res => {-->
+<!--              this.tableDataRank = res.data-->
+<!--              if (this.tableDataRank.length > 23) {-->
+<!--                clearInterval(this.PurchaseRight)-->
+<!--                this.getPurchaseRight()-->
+<!--              }-->
+<!--            })-->
+<!--          }-->
+<!--        }, this.tableDataRank.length <= 23 ? 1000 * 3 : 100)-->
+<!--      })-->
+<!--    },-->
+<!--    tableRowClassName({ row, rowIndex }) {-->
+<!--      // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row-->
+<!--      row.index = rowIndex + 1-->
+<!--    },-->
 
-    // 鑾峰彇褰撳墠鏃堕棿
-    getNowTime() {
-      const dt = new Date()
-      const wk = dt.getDay()
-      const y = dt.getFullYear()
-      const m = (dt.getMonth() + 1 + '').padStart(2, '0')
-      const d = (dt.getDate() + '').padStart(2, '0')
+<!--    // 鑾峰彇褰撳墠鏃堕棿-->
+<!--    getNowTime() {-->
+<!--      const dt = new Date()-->
+<!--      const wk = dt.getDay()-->
+<!--      const y = dt.getFullYear()-->
+<!--      const m = (dt.getMonth() + 1 + '').padStart(2, '0')-->
+<!--      const d = (dt.getDate() + '').padStart(2, '0')-->
 
-      const hh = (dt.getHours() + '').padStart(2, '0')
-      const mm = (dt.getMinutes() + '').padStart(2, '0')
-      const ss = (dt.getSeconds() + '').padStart(2, '0')
-      const weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�']
-      const week = weeks[wk]
+<!--      const hh = (dt.getHours() + '').padStart(2, '0')-->
+<!--      const mm = (dt.getMinutes() + '').padStart(2, '0')-->
+<!--      const ss = (dt.getSeconds() + '').padStart(2, '0')-->
+<!--      const weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�']-->
+<!--      const week = weeks[wk]-->
 
-      this.headTime = `${y}-${m}-${d}  ${hh}:${mm}:${ss}   ${week}`
-    },
-    headerCellStyleCenter() {
-      return {
-        // backgroundColor: 'rgb(30 ,33, 46)',
-        backgroundColor: '#000',
-        padding: '10px 0',
-        textAlign: 'center',
-        color: '#07acc2',
-        border: 'none',
-        fontSize: '18px'
-      }
-    },
-    cellStyleCenter() {
-      return {
-        padding: '7.5px 0',
-        textAlign: 'center',
-        backgroundColor: '#000',
-        color: '#fff',
-        border: 'none',
-        fontSize: '18px'
-      }
-    }
-  }
-}
-</script>
+<!--      this.headTime = `${y}-${m}-${d}  ${hh}:${mm}:${ss}   ${week}`-->
+<!--    },-->
+<!--    headerCellStyleCenter() {-->
+<!--      return {-->
+<!--        // backgroundColor: 'rgb(30 ,33, 46)',-->
+<!--        backgroundColor: '#000',-->
+<!--        padding: '10px 0',-->
+<!--        textAlign: 'center',-->
+<!--        color: '#07acc2',-->
+<!--        border: 'none',-->
+<!--        fontSize: '18px'-->
+<!--      }-->
+<!--    },-->
+<!--    cellStyleCenter() {-->
+<!--      return {-->
+<!--        padding: '7.5px 0',-->
+<!--        textAlign: 'center',-->
+<!--        backgroundColor: '#000',-->
+<!--        color: '#fff',-->
+<!--        border: 'none',-->
+<!--        fontSize: '18px'-->
+<!--      }-->
+<!--    }-->
+<!--  }-->
+<!--}-->
+<!--</script>-->
 
-<style scoped lang="scss">
-$main_color: #09d8f2;
-$color01: #00FFFF;
-.tableData {
-  background: #000;
-}
+<!--<style scoped lang="scss">-->
+<!--$main_color: #09d8f2;-->
+<!--$color01: #00FFFF;-->
+<!--.tableData {-->
+<!--  background: #000;-->
+<!--}-->
 
-.el-table__empty-text {
-  color: $main_color;
-}
+<!--.el-table__empty-text {-->
+<!--  color: $main_color;-->
+<!--}-->
 
-::v-deep .el-table::before {
-  height: 0;
-}
+<!--::v-deep .el-table::before {-->
+<!--  height: 0;-->
+<!--}-->
 
-::v-deep .el-table__body-wrapper::-webkit-scrollbar {
-  /* width: 0;瀹藉害涓�0鏆楄棌 */
-  width: 0;
-}
+<!--::v-deep .el-table__body-wrapper::-webkit-scrollbar {-->
+<!--  /* width: 0;瀹藉害涓�0鏆楄棌 */-->
+<!--  width: 0;-->
+<!--}-->
 
-::v-deep .cell {
-  padding: 0 !important;
-  font-size: 18px;
-}
-</style>
-<!--鏄熺┖-->
-<style lang="css" scoped>
-@keyframes rotate {
-  0% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
-  }
-  100% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
-  }
-}
+<!--::v-deep .cell {-->
+<!--  padding: 0 !important;-->
+<!--  font-size: 18px;-->
+<!--}-->
+<!--</style>-->
+<!--&lt;!&ndash;鏄熺┖&ndash;&gt;-->
+<!--<style lang="css" scoped>-->
+<!--@keyframes rotate {-->
+<!--  0% {-->
+<!--    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);-->
+<!--  }-->
+<!--  100% {-->
+<!--    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);-->
+<!--  }-->
+<!--}-->
 
-.stars {
-  transform: perspective(500px);
-  transform-style: preserve-3d;
-  position: absolute;
-  perspective-origin: 50% 100%;
-  left: 45%;
-  animation: rotate 90s infinite linear;
-  bottom: 0;
-  z-index: 102;
-}
+<!--.stars {-->
+<!--  transform: perspective(500px);-->
+<!--  transform-style: preserve-3d;-->
+<!--  position: absolute;-->
+<!--  perspective-origin: 50% 100%;-->
+<!--  left: 45%;-->
+<!--  animation: rotate 90s infinite linear;-->
+<!--  bottom: 0;-->
+<!--  z-index: 102;-->
+<!--}-->
 
-.star {
-  width: 2px;
-  height: 2px;
-  /*background: #f7f7b6;*/
-  background: #8edffc;
-  position: absolute;
-  left: 0;
-  top: 0;
-  backface-visibility: hidden;
-  z-index: 102;
-}
-</style>
+<!--.star {-->
+<!--  width: 2px;-->
+<!--  height: 2px;-->
+<!--  /*background: #f7f7b6;*/-->
+<!--  background: #8edffc;-->
+<!--  position: absolute;-->
+<!--  left: 0;-->
+<!--  top: 0;-->
+<!--  backface-visibility: hidden;-->
+<!--  z-index: 102;-->
+<!--}-->
+<!--</style>-->
diff --git a/src/views/kanbanManager/cj.vue b/src/views/kanbanManager/cj.vue
index 84972af..2bc0594 100644
--- a/src/views/kanbanManager/cj.vue
+++ b/src/views/kanbanManager/cj.vue
@@ -6,10 +6,10 @@
 
       <div class="kb_header">
         <div class="kb_headTime" style="top: 35px;left:  20px">
-          <span>鍦f玻</span>
+          <span>娴欐睙浼樺厠宸ヨ锤鑲′唤鏈夐檺鍏徃</span>
         </div>
 
-        <div class="kb_headTime kb_header_text" style="top: 35px;left:  765px">
+        <div class="kb_headTime kb_header_text" style="top: 35px;left:  800px">
           <span>{{ title }}鏁板瓧鍖栫湅鏉�</span>
         </div>
 
@@ -251,14 +251,14 @@
         })
       }, 1000 * 50)
 
-      const res5 = await WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') })
+      const res5 = await WorkShopProduceBottomRightData({ wkshopcode: 'CJ001' })
       this.RightBottom = res5.data
       if (this.RightBottom.length > 0) {
         loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
       }
 
       setInterval(() => {
-        WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') }).then(res5 => {
+        WorkShopProduceBottomRightData({ wkshopcode: 'CJ001' }).then(res5 => {
           this.RightBottom = res5.data
           if (this.RightBottom.length > 0) {
             loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
@@ -266,7 +266,7 @@
         })
       }, 1000 * 60)
 
-      this.getWorkShopProduceTopData()
+      await this.getWorkShopProduceTopData()
     },
 
     // 鑾峰彇褰撳墠鏃堕棿
@@ -348,6 +348,10 @@
   background-color: transparent;
 }
 
+::v-deep .gutter {
+  display: none;
+}
+
 .all_block01 {
   width: 237px;
   height: 180px;
diff --git a/src/views/kanbanManager/ckgl.vue b/src/views/kanbanManager/ckgl.vue
index 1b94f5f..11474d4 100644
--- a/src/views/kanbanManager/ckgl.vue
+++ b/src/views/kanbanManager/ckgl.vue
@@ -2,34 +2,29 @@
   <div>
     <div class="kb_dashboard">
 
-      <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
-
+      <div class="kb_backgroundCustom" />
       <div class="kb_header">
-        <div class="flex_c_c kb_header_text">
-          <div id="topBarLeft" style="width:600px;height:100%" />
-          浠撳簱绠$悊鏁板瓧鍖栫湅鏉�
-          <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />
+        <div class="kb_headTime" style="top: 35px;left:  20px">
+          <span>娴欐睙浼樺厠宸ヨ锤鑲′唤鏈夐檺鍏徃</span>
         </div>
 
-        <div class="kb_headTime" style="left: 85px">
-          <span>娴欐睙鏂板嚡杩暟瀛楃鎶�鑲′唤鏈夐檺鍏徃</span>
+        <div class="kb_headTime kb_header_text" style="top: 35px;left:  800px">
+          <span>浠撳簱绠$悊鏁板瓧鍖栫湅鏉�</span>
         </div>
 
-        <div class="kb_headTime">
+        <div class="kb_headTime" style="top: 35px;right:  25px">
           <span>{{ headTime }}</span>
         </div>
       </div>
-      <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px;height: 980px">
-        <div style="width: 1350px; " class="flex_c_b">
+
+      <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px;height: 950px">
+        <div style="width: 1350px;z-index: 2;margin-top: 50px;" class="flex_c_b">
           <div style="height: 470px;">
             <div class="smallTitle">
               <svg-icon icon-class="cpdrk" class="svg_class" />
-              鐢熶骇寰呭叆搴�
+              閲囪喘寰呭叆搴�
             </div>
-            <div class="lineContent horn" style="height: 435px">
+            <div class="lineContent horn" style="height: 410px">
               <el-table
                 ref="tableDataTopRef"
                 :data="tableDataTop"
@@ -37,12 +32,12 @@
                 class="tableData"
                 :header-cell-style="headerCellStyleCenter"
                 :cell-style="cellStyleCenter"
-                height="430"
+                height="405"
               >
                 <el-table-column
                   prop="voucherdate"
                   label="鍗曟嵁鏃ユ湡"
-                  width="131"
+                  width="161"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.voucherdate" class="ellipsis">{{ row.voucherdate.substring(0, 10) }}</div>
@@ -52,63 +47,55 @@
                 <el-table-column
                   prop="wo"
                   label="鍗曟嵁缂栧彿"
-                  width="189"
+                  width="209"
                 >
                   <template slot-scope="{row}">
                     <div class="ellipsis">{{ row.wo }}</div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  prop="wkshp_name"
-                  label="鐢熶骇杞﹂棿"
-                  width="105"
-                >
-                  <template slot-scope="{row}">
-                    <div class="ellipsis">{{ row.wkshp_name }}</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="saleOrderCode"
-                  label="閿�鍞鍗曞彿"
-                  width="200"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="materiel_code"
-                  label="浜у搧缂栧彿"
-                  width="136"
-                >
-                  <template slot-scope="{row}">
-                    <div class="ellipsis">{{ row.materiel_code }}</div>
-                  </template>
-                </el-table-column>
+                <!--                <el-table-column-->
+                <!--                  prop="wkshp_name"-->
+                <!--                  label="鐢熶骇杞﹂棿"-->
+                <!--                  width="105"-->
+                <!--                >-->
+                <!--                  <template slot-scope="{row}">-->
+                <!--                    <div class="ellipsis">{{ row.wkshp_name }}</div>-->
+                <!--                  </template>-->
+                <!--                </el-table-column>-->
+                <!--                <el-table-column-->
+                <!--                  prop="saleOrderCode"-->
+                <!--                  label="閿�鍞鍗曞彿"-->
+                <!--                  width="210"-->
+                <!--                >-->
+                <!--                  <template slot-scope="{row}">-->
+                <!--                    <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div>-->
+                <!--                    <div v-else>/</div>-->
+                <!--                  </template>-->
+                <!--                </el-table-column>-->
+
                 <el-table-column
                   prop="materiel_name"
                   label="浜у搧鍚嶇О"
-                  width="180"
+                  width="390"
                 >
                   <template slot-scope="{row}">
                     <div class="ellipsis">{{ row.materiel_name }}</div>
                   </template>
                 </el-table-column>
-                <!--                  <el-table-column-->
-                <!--                    prop="specification"-->
-                <!--                    label="瑙勬牸鍨嬪彿"-->
-                <!--                    width="128"-->
-                <!--                  >-->
-                <!--                    <template slot-scope="{row}">-->
-                <!--                      <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>-->
-                <!--                      <div v-else>/</div>-->
-                <!--                    </template>-->
-                <!--                  </el-table-column>-->
+                <el-table-column
+                  prop="specification"
+                  label="瑙勬牸鍨嬪彿"
+                  width="146"
+                >
+                  <template slot-scope="{row}">
+                    <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+                    <div v-else>/</div>
+                  </template>
+                </el-table-column>
                 <el-table-column
                   prop="stck_name"
                   label="棰勫叆浠撳簱"
-                  width="100"
+                  width="145"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.stck_name" class="ellipsis">{{ row.stck_name }}</div>
@@ -118,52 +105,28 @@
                 <el-table-column
                   prop="quantity"
                   label="鏁伴噺"
-                  width="63"
+                  width="113"
                 />
                 <el-table-column
                   prop="totalStockInQuantity"
                   label="宸插叆搴撴暟閲�"
-                  width="100"
+                  width="160"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>
                     <div v-else>0</div>
                   </template>
                 </el-table-column>
-                <!--                  <el-table-column-->
-                <!--                    prop="uomname"-->
-                <!--                    label="鍗曚綅"-->
-                <!--                    width="50"-->
-                <!--                  />-->
-                <!--                  <el-table-column-->
-                <!--                    prop="preStartDate"-->
-                <!--                    label="棰勮寮�宸�"-->
-                <!--                    width="100"-->
-                <!--                  >-->
-                <!--                    <template slot-scope="{row}">-->
-                <!--                      <div v-if="row.preStartDate">{{ row.preStartDate.substring(0, 10) }}</div>-->
-                <!--                      <div v-else />-->
-                <!--                    </template>-->
-                <!--                  </el-table-column>-->
-                <el-table-column
-                  prop="preFinishDate"
-                  label="棰勮鍏ュ簱"
-                  width="140"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.preFinishDate">{{ row.preFinishDate.substring(0, 10) }}</div>
-                    <div v-else />
-                  </template>
-                </el-table-column>
+
               </el-table>
             </div>
           </div>
-          <div style="height: 470px;">
+          <div style="height: 470px;margin-top: 30px;">
             <div class="smallTitle">
               <svg-icon icon-class="cpdfh" class="svg_class" />
-              浜у搧寰呭彂璐�
+              閿�鍞緟鍙戣揣
             </div>
-            <div class="lineContent horn" style="height: 435px">
+            <div class="lineContent horn" style="height: 410px">
               <el-table
                 ref="tableDataBottomRef"
                 :data="tableDataBottom"
@@ -171,7 +134,7 @@
                 class="tableData"
                 :header-cell-style="headerCellStyleCenter"
                 :cell-style="cellStyleCenter"
-                height="430"
+                height="405"
               >
                 <el-table-column
                   prop="voucherdate"
@@ -192,60 +155,26 @@
                     <div class="ellipsis">{{ row.wo }}</div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  prop="customename"
-                  label="瀹㈡埛"
-                  width="388"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.customename" class="ellipsis">{{ row.customename }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
-                <!--                  <el-table-column-->
-                <!--                    prop="username"-->
-                <!--                    label="涓氬姟鍛�"-->
-                <!--                    width="65"-->
-                <!--                  >-->
-                <!--                    <template slot-scope="{row}">-->
-                <!--                      <div v-if="row.username" class="ellipsis">{{ row.username }}</div>-->
-                <!--                      <div v-else>/</div>-->
-                <!--                    </template>-->
-                <!--                  </el-table-column>-->
-                <!--                <el-table-column-->
-                <!--                  prop="SourceVoucherCode"-->
-                <!--                  label="鏉ユ簮鍗曞彿"-->
-                <!--                  width="185"-->
-                <!--                >-->
-                <!--                  <template slot-scope="{row}">-->
-                <!--                    <div v-if="row.SourceVoucherCode" class="ellipsis">{{ row.SourceVoucherCode }}</div>-->
-                <!--                    <div v-else>/</div>-->
-                <!--                  </template>-->
-                <!--                </el-table-column>-->
-                <!--                  <el-table-column-->
-                <!--                    prop="materiel_code"-->
-                <!--                    label="浜у搧缂栧彿"-->
-                <!--                    width="96"-->
-                <!--                  />-->
+
                 <el-table-column
                   prop="materiel_name"
                   label="浜у搧鍚嶇О"
-                  width="200"
+                  width="258"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.materiel_name" class="ellipsis">{{ row.materiel_name }}</div>
                   </template>
                 </el-table-column>
-                <!--                  <el-table-column-->
-                <!--                    prop="specification"-->
-                <!--                    label="瑙勬牸鍨嬪彿"-->
-                <!--                    width="100"-->
-                <!--                  >-->
-                <!--                    <template slot-scope="{row}">-->
-                <!--                      <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>-->
-                <!--                      <div v-else>/</div>-->
-                <!--                    </template>-->
-                <!--                  </el-table-column>-->
+                <el-table-column
+                  prop="specification"
+                  label="瑙勬牸鍨嬪彿"
+                  width="200"
+                >
+                  <template slot-scope="{row}">
+                    <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+                    <div v-else>/</div>
+                  </template>
+                </el-table-column>
                 <el-table-column
                   prop="quantity"
                   label="鏁伴噺"
@@ -265,33 +194,25 @@
                     <div v-else>0</div>
                   </template>
                 </el-table-column>
-                <!--                <el-table-column-->
-                <!--                  prop="priuserdefnvc1"-->
-                <!--                  label="妫�楠屾柟寮�"-->
-                <!--                  width="110"-->
-                <!--                >-->
-                <!--                  <template slot-scope="{row}">-->
-                <!--                    <div v-if="row.priuserdefnvc1">{{ row.priuserdefnvc1 }}</div>-->
-                <!--                    <div v-else>/</div>-->
-                <!--                  </template>-->
-                <!--                </el-table-column>-->
-                <!--                <el-table-column-->
-                <!--                  prop="priuserdefnvc2"-->
-                <!--                  label="妫�楠屼汉鍛�"-->
-                <!--                  width="110"-->
-                <!--                >-->
-                <!--                  <template slot-scope="{row}">-->
-                <!--                    <div v-if="row.priuserdefnvc2">{{ row.priuserdefnvc2 }}</div>-->
-                <!--                    <div v-else>/</div>-->
-                <!--                  </template>-->
-                <!--                </el-table-column>-->
+
                 <el-table-column
                   prop="deliveryDate"
-                  label="棰勮浜よ揣鏃ユ湡"
+                  label="棰勮浜や粯鏃ユ湡"
                   width="200"
                 >
                   <template slot-scope="{row}">
-                    <div v-if="row.deliveryDate">{{ row.deliveryDate.substring(0,10) }}</div>
+                    <div v-if="row.deliveryDate">{{ row.deliveryDate.substring(0, 10) }}</div>
+                    <div v-else>/</div>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  prop="warning"
+                  label="寤舵湡澶╂暟"
+                  width="130"
+                >
+                  <template slot-scope="{row}">
+                    <div v-if="row.warning">{{ row.warning }}</div>
                     <div v-else>/</div>
                   </template>
                 </el-table-column>
@@ -300,23 +221,23 @@
           </div>
 
         </div>
-        <div style="width: 500px;" class="flex_c_b">
+        <div style="width: 500px;z-index: 2;margin-top: 50px;" class="flex_c_b">
           <div style="height: 470px;">
             <div class="smallTitle">
               <svg-icon icon-class="ph" class="svg_class" />
-              鍗婃垚鍝併�佷骇鍝佸簱瀛橀噺鎺掕Top5
+              杩戜竴鍛ㄩ噰璐緟鍏ュ簱鐗╂枡鎺掕Top5
             </div>
-            <div class="lineContent horn" style="height: 435px">
+            <div class="lineContent horn" style="height: 410px">
               <div id="bar03" style="width: 100%;height:100%; " />
               <!--/*              <div id="bar03" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />*/-->
             </div>
           </div>
-          <div style="height: 470px;">
+          <div style="height: 470px;margin-top: 30px;">
             <div class="smallTitle">
               <svg-icon icon-class="ph" class="svg_class" />
-              鍘熸潗鏂欏簱瀛橀噺鎺掕Top5
+              杩戜竴鍛ㄩ攢鍞緟鍙戣揣浜у搧鎺掕Top5
             </div>
-            <div class="lineContent horn" style="height: 435px">
+            <div class="lineContent horn" style="height: 410px">
               <div id="bar04" style="width: 100%;height:100%;" />
               <!--              <div id="bar04" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />-->
             </div>
@@ -332,10 +253,10 @@
 import './kbCommon.css'
 import { bar02, kbTop, loadEcharts } from '@/utils/myEcharts'
 import {
-  WareHouseRightBottomData,
-  WareHouseRightTopData,
+  WareHouseTopLeftData,
   WareHouseTopBottomData,
-  WareHouseTopLeftData
+  WareHouseRightTopData,
+  WareHouseRightBottomData
 } from '@/api/kanbanManager'
 
 export default {
@@ -369,7 +290,7 @@
     // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
     setInterval(() => {
       window.location.reload()
-    }, 1000 * 60 * 60 * 10)
+    }, 1000 * 60 * 120)
   },
   mounted() {
     // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
@@ -377,12 +298,9 @@
     window.addEventListener('offline', this.updateOnlineStatus)
     this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
 
-    this.getTopBar()
-
     this.getWareHouseTopLeftData()
     this.getWareHouseTopBottomData()
     this.getEcharts()
-    this.setStarsRef()
   },
   beforeDestroy() {
     window.removeEventListener('online', this.updateOnlineStatus)
@@ -410,24 +328,6 @@
           this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')
         }
       }
-    },
-    setStarsRef() {
-      const starNodes = Array.from(this.$refs.starsRef.children)
-      starNodes.forEach(item => {
-        const speed = 0.2 + Math.random() * 1
-        const thisDistance = this.distance + Math.random() * 300
-        item.style.transformOrigin = `0 0 ${thisDistance}px`
-        item.style.transform = `
-        translate3d(0,0,-${thisDistance}px)
-        rotateY(${Math.random() * 360}deg)
-        rotateX(${Math.random() * -50}deg)
-        scale(${speed},${speed})`
-      })
-    },
-    // 鑾峰彇topEcharts
-    getTopBar() {
-      loadEcharts('topBarLeft', kbTop())
-      loadEcharts('topBarRight', kbTop())
     },
     // 鑾峰彇宸︿笂table鏁版嵁
     getWareHouseTopLeftData() {
@@ -525,8 +425,7 @@
     },
     headerCellStyleCenter() {
       return {
-        // backgroundColor: 'rgb(30 ,33, 46)',
-        backgroundColor: '#000',
+        backgroundColor: 'transparent ',
         padding: '10px 0',
         textAlign: 'center',
         color: '#07acc2',
@@ -538,8 +437,8 @@
       return {
         padding: '7.5px 0',
         textAlign: 'center',
-        backgroundColor: '#000',
-        color: '#fff',
+        backgroundColor: 'transparent ',
+        color: '#c7e7ff',
         border: 'none',
         fontSize: '18px'
       }
@@ -548,65 +447,130 @@
 }
 </script>
 
-<style scoped lang="scss">
-
-$main_color:#09d8f2;
+<style lang="scss" scoped>
+$main_color: #09d8f2;
 $color01: #00FFFF;
-.tableData{
-  background: #000;
+.tableData {
+  background: transparent;
 }
 
-.el-table__empty-text{
+.el-table::before {
+  height: 0;
+}
+
+.el-table__empty-text {
   color: $main_color;
+}
+
+.tableDataCell {
+  ::v-deep .cell {
+    padding: 0 2px;
+  }
 }
 
 ::v-deep .el-table__body-wrapper::-webkit-scrollbar {
   /* width: 0;瀹藉害涓�0鏆楄棌 */
   width: 0;
+  background: transparent;
 }
 
-::v-deep .el-table::before {
-  height: 0;
+::v-deep .el-table__body-wrapper {
+  background: transparent;
 }
 
-::v-deep .cell {
-  padding: 0 !important;
-  //font-size: 16px;
-  font-size: 18px;
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+  background-color: transparent;
 }
-</style>
 
-<!--鏄熺┖-->
-<style lang="css" scoped>
-@keyframes rotate {
+::v-deep .gutter {
+  display: none;
+}
+
+.all_block01 {
+  width: 237px;
+  height: 180px;
+}
+
+.all_block02 {
+  width: 100%;
+  height: 49px;
+  background: rgba(9, 216, 242, 0.1);
+}
+
+.all_block03 {
+  width: 199px;
+  height: 180px;
+}
+
+.all_block04 {
+  width: 100%;
+  height: 49px;
+  background: rgba(9, 216, 242, 0.1);
+}
+
+.kb_center_block_children {
+  height: 180px;
+  //border: 1px solid $kbBorderColor;
+  width: 240px;
+  display: flex;
+  z-index: 2;
+  justify-content: space-around;
+  align-items: center;
+  flex-direction: column;
+  margin: 10px;
+  font-size: 22px;
+
+  .box02 {
+    background: url("../../assets/images/box02.png") no-repeat;
+    transform: scale(1.5);
+    width: 145px;
+    height: 84px;
+
+  }
+}
+
+.all_block05 {
+  position: absolute;
+  animation: upDown 3s ease-in-out infinite;
+  left: 60px;
+}
+
+.all_block06 {
+  position: absolute;
+  animation: upDown2 3s ease-in-out infinite;
+  left: 290px;
+}
+
+.all_block07 {
+  position: absolute;
+  animation: upDown 3s ease-in-out infinite;
+  left: 520px;
+}
+
+@keyframes upDown {
   0% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
+    top: 50px;
+  }
+  50% {
+    top: 100px;
   }
   100% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
+    top: 50px;
   }
 }
 
-.stars {
-  transform: perspective(500px);
-  transform-style: preserve-3d;
-  position: absolute;
-  perspective-origin: 50% 100%;
-  left: 45%;
-  animation: rotate 90s infinite linear;
-  bottom: 0;
-  z-index: 102;
+@keyframes upDown2 {
+  0% {
+    top: 100px;
+  }
+  50% {
+    top: 50px;
+  }
+  100% {
+    top: 100px;
+  }
 }
 
-.star {
-  width: 2px;
-  height: 2px;
-  /*background: #f7f7b6;*/
-  background: #8edffc;
-  position: absolute;
-  left: 0;
-  top: 0;
-  backface-visibility: hidden;
-  z-index: 102;
-}
 </style>
diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index 4c34ef1..7633af7 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -6,7 +6,7 @@
 
       <div class="kb_header">
         <div class="kb_headTime" style="top: 35px;left:  20px">
-          <span>姘稿悍甯傚法绔嬮槻鎶ょ敤鍝佹湁闄愬叕鍙�</span>
+          <span>娴欐睙浼樺厠宸ヨ锤鑲′唤鏈夐檺鍏徃</span>
         </div>
 
         <div class="kb_headTime kb_header_text" style="top: 35px;left:  800px">
@@ -33,7 +33,7 @@
             >
               <div style="height: 180px;padding: 10px;display: flex;justify-content: space-around">
                 <div v-for="i in LeftTopData01" :key="i.wkshp_code" class="flex_c_s">
-                  <div class="all_block01 flex_c_s">
+                  <div class="all_block01 flex_c_s" style="width: 317px;">
                     <div class="flex_c_c all_block02">{{ i.wkshp_name }}</div>
                     <div class="" style="display: flex;justify-content:space-between">
                       <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
@@ -175,7 +175,7 @@
       const res = await PrentOrganizationNoCompany()
       this.wkshopArr = res.data
 
-      const temp = ['00401', '00402', '00501']
+      const temp = ['00301', '00302', '00303']
 
       temp.forEach(i => {
         const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
diff --git a/src/views/sopManager/sopWorkOrder.vue b/src/views/sopManager/sopWorkOrder.vue
index 2258028..72b17dd 100644
--- a/src/views/sopManager/sopWorkOrder.vue
+++ b/src/views/sopManager/sopWorkOrder.vue
@@ -1,11 +1,512 @@
-<template />
+<template>
+  <div>
+    <div class="body" :style="{height:mainHeight+'px'}">
+      <div class="bodyTopButtonGroup" style="justify-content: space-between;align-items: center">
+        <el-button v-waves icon="el-icon-circle-plus-outline" type="primary" @click="add">鏂囦欢涓婁紶</el-button>
+        <div style="display: flex;align-items: center">
+          <el-form
+            ref="form"
+            :model="form"
+            label-width="100px"
+            inline
+          >
+            <div class="elForm" style="justify-content: flex-start">
+              <el-form-item style="margin-right: 30px">
+                <el-checkbox v-model="checked" @change="checkedChange">鏈�鏂扮増鏈�</el-checkbox>
+              </el-form-item>
+              <el-form-item>
+                <el-input v-model="form.search" placeholder="璇疯緭鍏ュ叧閿瓧" style="width: 260px" />
+              </el-form-item>
+            </div>
+          </el-form>
+          <el-button v-waves type="primary" style="margin-left: 30px" icon="el-icon-search" @click="search">鏌ヨ
+          </el-button>
+          <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+        </div>
+      </div>
+
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataRef"
+          class="tableFixed"
+          :data="tableData"
+          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+          border
+          :row-class-name="tableRowClassName"
+          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+          @sort-change="sortChange"
+        >
+          <el-table-column
+            prop="rowNum"
+            width="50"
+            fixed
+            label="搴忓彿"
+          />
+          <el-table-column
+            prop="filename"
+            label="鏂囦欢鍚嶇О"
+            min-width="160"
+            show-tooltip-when-overflow
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.filename">{{ row.filename }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="filetypename"
+            label="鏂囦欢绫诲瀷"
+            min-width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.filetypename">{{ row.filetypename }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="version"
+            label="鐗堟湰鍙�"
+            min-width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.version">{{ row.version }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="wo"
+            label="宸ュ崟鍙�"
+            min-width="110"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            prop="materielcode"
+            label="鐗╂枡缂栫爜"
+            min-width="110"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            prop="materielname"
+            label="鐗╂枡鍚嶇О"
+            min-width="110"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            prop="username"
+            min-width="110"
+            label="涓婁紶浜哄憳"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.username">{{ row.username }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="lm_date"
+            label="涓婁紶鏃堕棿"
+            min-width="160"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.lm_date">{{ row.lm_date }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鎿嶄綔"
+            width="120"
+            fixed="right"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-tooltip v-del-tab-index class="item" effect="dark" content="棰勮" placement="top">
+                  <i
+                    class="el-icon-files"
+                    style="cursor: pointer;color:#42b983;margin-right: 15px"
+                    @click="check(row)"
+                  />
+                </el-tooltip>
+                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+                  <i class="el-icon-delete" style="cursor: pointer;color:#42b983;" @click="del(row)" />
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!--鍒嗛〉-->
+      <pagination
+        :total="total"
+        :page.sync="form.page"
+        :limit.sync="form.rows"
+        align="right"
+        layout="total,prev, pager, next,sizes"
+        popper-class="select_bottom"
+        @pagination="getWrkOrderSearch"
+      />
+    </div>
+
+    <el-dialog
+      v-el-drag-dialog
+      title="鏂囦欢涓婁紶"
+      :visible.sync="dialogVisible"
+      width="800px"
+      :close-on-click-modal="false"
+      top="15vh"
+      @closed="handleClose"
+      @close="handleClose"
+    >
+      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+        <el-form-item label="宸ュ崟淇℃伅" prop="wocode">
+          <el-select
+            v-model="dialogForm.wocode"
+            style="width: 200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :popper-append-to-body="false"
+            @change="devicetypecodeChange"
+          >
+            <el-option
+              v-for="item in workOrderArr"
+              :key="item.wo_code"
+              :label="item.wo_code"
+              :value="item.wo_code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="浜у搧淇℃伅" prop="partcode">
+          <el-select
+            v-model="dialogForm.partcode"
+            style="width: 200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            disabled
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in partcodeArr"
+              :key="item.partcode"
+              :label="item.partname"
+              :value="item.partcode"
+            />
+          </el-select>
+        </el-form-item>
+        <!--        <el-form-item label="鏂囦欢鍚嶇О" prop="defilename">-->
+        <!--        <el-form-item label="鏂囦欢鍚嶇О">-->
+        <!--          <el-input v-model="dialogForm.defilename" disabled style="width: 200px" />-->
+        <!--        </el-form-item>-->
+        <el-form-item label="鏂囦欢绫诲瀷" prop="filetypecode">
+          <el-select
+            v-model="dialogForm.filetypecode"
+            style="width: 200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :popper-append-to-body="false"
+            @change="filetypecodeChange"
+          >
+            <el-option
+              v-for="item in filetypeArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鐗堟湰鍙�">
+          <el-input v-model="dialogForm.fileversion" disabled style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="鏂囦欢涓婁紶" prop="Files">
+          <div style="width: 200px;">
+            <el-upload
+              ref="uploadFileRef"
+              style="display: inline-block;"
+              action="#"
+              :limit="1"
+              :show-file-list="true"
+              :on-exceed="handleExceed"
+              :auto-upload="false"
+              :multiple="false"
+            >
+              <!--              accept=".mp4,.pdf"-->
+              <el-button
+                v-waves
+                type="primary"
+                style="width: 200px;display: flex;justify-content: center"
+                icon="el-icon-upload2"
+              >閫夋嫨鏂囦欢
+              </el-button>
+            </el-upload>
+          </div>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button
+            v-waves
+            type="primary"
+            :loading="$store.state.app.buttonIsDisabled"
+            :disabled="$store.state.app.buttonIsDisabled"
+            @click="dialogVisibleConfirm"
+          >纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
 
 <script>
+import Pagination from '@/components/Pagination'
+import { WrkOrderSopAddSeave, WrkOrderSopDeleteSeave, WrkOrderSearch, WrkOrderSopMaxVersion } from '@/api/SopManager'
+import { DeviceTypeSearch } from '@/api/DeviceManager'
+import { EqpTypecodeSeachEqpPermissions, WrkOrderDataSelect } from '@/api/GeneralBasicData'
+import waves from '@/directive/waves'
+import elDragDialog from '@/directive/el-drag-dialog'
+import { PartSelect } from '@/api/ProductModel'
+
 export default {
-  name: 'SopWorkOrder'
+  name: 'Zzjg',
+  components: {
+    Pagination
+  },
+  directives: { waves, elDragDialog },
+  data() {
+    return {
+      mouseHoverType: 'mouseout',
+      isExpandForm: false,
+      mainHeight: 0,
+      tableHeight: 0,
+      form: {
+        check: 'N', // 鏄惁閫変腑鏈�楂樼増鏈�
+        search: '', // 鎼滅储鍏抽敭瀛�
+        prop: 'lm_date', // 鎺掑簭瀛楁
+        order: 'desc', // 鎺掑簭瀛楁
+        page: 1, // 绗嚑椤�
+        rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      checked: false,
+
+      total: 10,
+      tableData: [],
+      dialogVisible: false,
+      dialogForm: {
+        wocode: '', // 璁惧绫诲瀷缂栫爜
+        partcode: '', // 鐗╂枡缂栫爜
+        defilename: '',
+        filetypecode: '', // 鏂囦欢绫诲瀷缂栫爜
+        Files: '', // 鏂囦欢
+        fileversion: ''// 鏂囦欢鐗堟湰鍙�
+      },
+      dialogFormRules: {
+        wocode: [
+          { required: true, message: '璇烽�夋嫨璁惧绫诲瀷', trigger: ['blur', 'change'] }
+        ],
+        partcode: [
+          { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] }
+        ],
+        defilename: [
+          { required: true, message: '璇疯緭鍏ュ悕鏂囦欢绉�', trigger: ['blur', 'change'] }
+        ],
+        filetypecode: [
+          { required: true, message: '璇烽�夋嫨鏂囦欢绫诲瀷', trigger: ['blur', 'change'] }
+        ]
+      },
+      partcodeArr: [],
+      workOrderArr: [],
+      filetypeArr: [// 鏂囦欢绫诲瀷涓嬫媺鏁扮粍
+        { code: 'P001', name: '浣滀笟鎸囧涔�' },
+        { code: 'P002', name: '妫�楠屾寚瀵间功' },
+        { code: 'P003', name: '鍥剧焊' }
+      ]
+
+    }
+  },
+
+  created() {
+    this.getWrkOrderSearch()
+
+    this.getPartSelect()
+    this.getWrkOrderDataSelect()
+  },
+  mounted() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+  },
+  methods: {
+    async getWrkOrderSearch() {
+      const res = await WrkOrderSearch(this.form)
+      this.tableData = res.data
+      this.total = res.count
+    },
+    async getWrkOrderDataSelect() {
+      const { data: res } = await WrkOrderDataSelect()
+      this.workOrderArr = res
+    },
+    // 鑾峰彇浜у搧淇℃伅
+    async getPartSelect() {
+      const { data: res } = await PartSelect()
+      this.partcodeArr = res
+    },
+
+    // 鎺掑簭鏀瑰彉鏃�
+    sortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.getWrkOrderSearch()
+    },
+    // 鏌ヨ
+    search() {
+      this.getWrkOrderSearch()
+    },
+    // 鏈�鏂扮増鏈敼鍙樻椂瑙﹀彂
+    checkedChange(val) {
+      this.form.check = val ? 'Y' : 'N'
+      this.getWrkOrderSearch()
+    },
+    // 鏂囦欢鏁伴噺瓒呰繃闄愬畾瑙﹀彂
+    handleExceed() {
+      this.$message.info('鏆備笉鏀寔澶氭枃浠朵笂浼狅紒')
+    },
+    async devicetypecodeChange(val) {
+      const t = this.workOrderArr.find(i => i.wo_code === val)
+      this.dialogForm.partcode = t.materiel_code
+      await this.filetypecodeChange()
+    },
+
+    async filetypecodeChange() {
+      const data = {
+        wocode: this.dialogForm.wocode,
+        partcode: this.dialogForm.partcode,
+        filetypecode: this.dialogForm.filetypecode
+      }
+      const { data: res } = await WrkOrderSopMaxVersion(data)
+      this.dialogForm.fileversion = res
+    },
+    // 閲嶇疆
+    reset() {
+      this.form.search = ''
+      this.getWrkOrderSearch()
+    },
+    // 鏂板鎸夐挳
+    add() {
+      this.dialogVisible = true
+    },
+
+    // 棰勮
+    async check(row) {
+      window.open(process.env.VUE_APP_BASE_API_FILE + row.filepath)
+    },
+
+    // 鍒犻櫎鎸夐挳
+    async del(row) {
+      this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        const data = {
+          id: row.id,
+          wocode: row.wo,
+          partcode: row.materielcode,
+          filepath: row.filepath
+        }
+        WrkOrderSopDeleteSeave(data).then(res => {
+          if (res.code === '200') {
+            this.$message.success('鍒犻櫎鎴愬姛!')
+            if (this.form.page > 1 && this.tableData.length === 1) {
+              this.form.page--
+            }
+            this.getWrkOrderSearch()
+          }
+        })
+      }).catch(() => {
+        this.$message.info('宸插彇娑堝垹闄�')
+      })
+    },
+    // 瀵硅瘽妗嗗叧闂簨浠�
+    handleClose() {
+      this.dialogForm.wocode = ''
+      this.dialogForm.partcode = ''
+      this.dialogForm.defilename = ''
+      this.dialogForm.filetypecode = ''
+      this.dialogForm.fileversion = ''
+      this.dialogForm.Files = ''
+      this.$refs.uploadFileRef.clearFiles()
+      this.$refs.dialogForm.clearValidate()
+    },
+    // 瀵硅瘽妗嗗彇娑�
+    dialogVisibleCancel() {
+      this.dialogVisible = false
+      this.$store.state.app.buttonIsDisabled = false
+    },
+    // 瀵硅瘽妗嗙‘璁�
+    dialogVisibleConfirm() {
+      if (!this.$refs.uploadFileRef.uploadFiles[0]) {
+        this.$message.info('璇烽�夋嫨鏂囦欢涓婁紶锛�')
+      }
+
+      this.$refs.dialogForm.validate(valid => {
+        if (valid) {
+          const formData = new FormData()
+          formData.append('wocode', this.dialogForm.wocode)
+          formData.append('partcode', this.dialogForm.partcode)
+          formData.append('filename', this.$refs.uploadFileRef.uploadFiles[0].name)
+          formData.append('filetypecode', this.dialogForm.filetypecode)
+          formData.append('version', this.dialogForm.fileversion)
+          formData.append('file', this.$refs.uploadFileRef.uploadFiles[0].raw)
+          // for (var [key, value] of formData) {
+          //   console.log(key, value)
+          // }
+          this.$store.state.app.buttonIsDisabled = true
+          WrkOrderSopAddSeave(formData).then(res => {
+            if (res.code === '200') {
+              this.$message.success('鏂囦欢涓婁紶鎴愬姛锛�')
+              this.dialogVisible = false
+              this.$store.state.app.buttonIsDisabled = false
+              this.getWrkOrderSearch()
+            } else {
+              this.$message.error('鏂囦欢涓婁紶澶辫触锛�')
+              this.$store.state.app.buttonIsDisabled = false
+            }
+          })
+        }
+      })
+    },
+    // 鑾峰彇椤甸潰楂樺害
+    getHeight() {
+      this.$nextTick(() => {
+        this.mainHeight = window.innerHeight - 85
+        this.tableHeight = this.mainHeight - 185
+        this.$refs.tableDataRef.doLayout()
+      })
+    },
+    tableRowClassName({ row, rowIndex }) {
+      return 'custom-row'
+    }
+  }
 }
 </script>
 
-<style scoped>
-
+<style>
+.el-table .custom-row {
+  background: #f8f8fa;
+}
 </style>
diff --git a/vue.config.js b/vue.config.js
index 82d5a3f..9608024 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,6 +53,7 @@
     proxy: {
       [process.env.VUE_APP_BASE_API]: {
         target: 'http://121.196.36.24:8019', // 鏈湴
+        // target: 'http://192.168.0.147:8000', // 浼樺厠
         changeOrigin: true, // 璇锋眰璺ㄥ煙鏃讹紝闇� 閰嶇疆姝ら」
         pathRewrite: { // 璺緞閲嶅啓,鏇挎崲target涓殑璇锋眰鍦板潃
           ['^' + process.env.VUE_APP_BASE_API]: '/api/'

--
Gitblit v1.9.3