From 3d563665b5fbb6a93afcff5566dd64ef0566492b Mon Sep 17 00:00:00 2001
From: Mr.Shi <1878285526@qq.com>
Date: 星期三, 30 八月 2023 10:58:22 +0800
Subject: [PATCH] Merge branch 'dev' of ssh://139.186.142.91:29418/productDev/dmMes into dev

---
 minipro_standard/common/css/common.css                                        |    8 
 minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue |  996 +++++++++
 minipro_standard/pages/index/index.vue                                        |    3 
 minipro_standard/common/config.js                                             |    8 
 minipro_standard/App.vue                                                      |    1 
 h5_standard/.env.development                                                  |    4 
 minipro_standard/pages.json                                                   |   21 
 minipro_standard/common/css/lib.css                                           |   23 
 minipro_standard/components/workOrderInfo.vue                                 |   82 
 minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue                 |  317 +++
 minipro_standard/util/request/index.js                                        |    8 
 minipro_standard/components/selectMaterial.vue                                |   61 
 h5_standard/src/views/workOrder/workOrderReporting.vue                        | 3764 ++++++++++++++++++-----------------
 minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue               | 1002 +++++++++
 minipro_standard/static/ic_edit@2x.png                                        |    0 
 15 files changed, 4,447 insertions(+), 1,851 deletions(-)

diff --git a/h5_standard/.env.development b/h5_standard/.env.development
index e73b1db..5b5d10a 100644
--- a/h5_standard/.env.development
+++ b/h5_standard/.env.development
@@ -10,13 +10,13 @@
 # VUE_APP_API = 'https://106.14.220.133:10012/'
 
 # 钀嶅鏈湴
- VUE_APP_API = 'http://192.168.3.219:10021/'
+#  VUE_APP_API = 'http://192.168.3.219:10021/'
 
 # 浠诲悍鏈湴
 # VUE_APP_API = 'http://192.168.0.15:10021/'
 # VUE_APP_API = 'http://192.168.0.127:10021/'
 
-#VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/'
+VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/'
 
 # VUE_APP_API = 'http://192.168.0.13:10012/'
 
diff --git a/h5_standard/src/views/workOrder/workOrderReporting.vue b/h5_standard/src/views/workOrder/workOrderReporting.vue
index 3057755..df6f007 100644
--- a/h5_standard/src/views/workOrder/workOrderReporting.vue
+++ b/h5_standard/src/views/workOrder/workOrderReporting.vue
@@ -1,9 +1,9 @@
 <template>
-    <div class="bg">
-        <!--  宸ュ崟淇℃伅  -->
-        <V-WorkOrderInfo :info="info"></V-WorkOrderInfo>
-        <!--  鎵爜鎶曟枡/浜у嚭  -->
-        <!-- <div class="details_cz">
+  <div class="bg">
+    <!--  宸ュ崟淇℃伅  -->
+    <V-WorkOrderInfo :info="info"></V-WorkOrderInfo>
+    <!--  鎵爜鎶曟枡/浜у嚭  -->
+    <!-- <div class="details_cz">
             <div class="details_cz_smtl" @click="jump1('tl')" v-if="proxy.$auth('h5:workorderinput:create')">
                 <img src="@/assets/icon/gongdan_ic_saoma@2x.png" alt="" />
                 <span>鎵爜鎶曟枡</span>
@@ -14,173 +14,182 @@
                 <span>鎵爜浜у嚭</span>
             </div>
         </div> -->
-        <div class="bg_cate">
-            <div @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'" v-for="(item, index) in cate" :key="index">{{ item.name }}</div>
+    <div class="bg_cate">
+      <div @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
+        v-for="(item, index) in cate" :key="index">{{ item.name }}</div>
+    </div>
+    <!--  鎶曟枡鏄庣粏/鍚堟牸浜у嚭鏄庣粏/涓嶈壇浜у嚭鏄庣粏  -->
+    <div class="bg_list" v-if="typeView === 0">
+      <div class="bg_list_item">
+        <div class="bg_list_item_top">
+          <div class="bg_list_item_top_left">
+            <div class="bg_list_item_top_left_x"></div>
+            <span>鎶曟枡鏄庣粏</span>
+            <!-- <span class="blue left">{{tlTotal()}}</span> -->
+          </div>
+          <div class="bg_list_item_top_right" @click="jumpTL"
+            v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)">
+            <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
+            <span>鎵嬪姩褰曞叆</span>
+          </div>
         </div>
-        <!--  鎶曟枡鏄庣粏/鍚堟牸浜у嚭鏄庣粏/涓嶈壇浜у嚭鏄庣粏  -->
-        <div class="bg_list" v-if="typeView === 0">
-                <div class="bg_list_item">
-                    <div class="bg_list_item_top">
-                        <div class="bg_list_item_top_left">
-                            <div class="bg_list_item_top_left_x"></div>
-                            <span>鎶曟枡鏄庣粏</span>
-                            <!-- <span class="blue left">{{tlTotal()}}</span> -->
-                        </div>
-                        <div class="bg_list_item_top_right" @click="jumpTL" v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)">
-                            <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
-                            <span>鎵嬪姩褰曞叆</span>
-                        </div>
+        <template v-if="feedingData && feedingData.length > 0">
+          <van-swipe-cell v-for="(item, index) in feedingData" :key="index">
+            <div class="bg_list_item_h">
+              <div class="bg_list_item_num">
+                <div class="bg_list_item_num_item">
+                  <!-- <span>{{item.code}}</span> -->
+                  <div class="bg_list_item_num_item_wl">
+                    <span> {{ item.materialName }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
+                    }}</span>
+                    <div class="bg_list_item_num_item_wl_lx">
+                      <span class="green" v-if="item.qualityType == 0">鍚堟牸&nbsp;/&nbsp;</span>
+                      <span class="yellow" v-if="item.qualityType == 1">涓嶈壇&nbsp;/&nbsp;</span>
+                      <span class="red" v-if="item.qualityType == 2">鎶ュ簾&nbsp;/&nbsp;</span>
+                      <span>{{ item.locationName }}</span>
+                      <span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
                     </div>
-                    <template v-if="feedingData && feedingData.length > 0">
-                        <van-swipe-cell v-for="(item, index) in feedingData" :key="index">
-                            <div class="bg_list_item_h">
-                                <div class="bg_list_item_num">
-                                    <div class="bg_list_item_num_item">
-                                        <!-- <span>{{item.code}}</span> -->
-                                        <div class="bg_list_item_num_item_wl">
-                                            <span> {{ item.materialName }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : '' }}</span>
-                                            <div class="bg_list_item_num_item_wl_lx">
-                                                <span class="green" v-if="item.qualityType == 0">鍚堟牸&nbsp;/&nbsp;</span>
-                                                <span class="yellow" v-if="item.qualityType == 1">涓嶈壇&nbsp;/&nbsp;</span>
-                                                <span class="red" v-if="item.qualityType == 2">鎶ュ簾&nbsp;/&nbsp;</span>
-                                                <span>{{ item.locationName }}</span>
-                                                <span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
-                                            </div>
-                                        </div>
-                                        <div class="bg_list_item_num_item_sr">
-                                            <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')" @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
-                                            <span>{{item.unitName}}</span>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                            
-                            <template #right v-if="proxy.$auth('h5:workorderinput:delete')">
-                                <van-button style="height: 100%;" square text="鍒犻櫎" @click="deleItem(item.id, 'T')" type="danger" />
-                            </template>
-                        </van-swipe-cell>
-                    </template>
-                    <template v-else>
-                        <div class="kong">
-                            <span>鏆傛棤鏁版嵁</span>
-                        </div>
-                    </template>
+                  </div>
+                  <div class="bg_list_item_num_item_sr">
+                    <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')"
+                      @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
+                    <span>{{ item.unitName }}</span>
+                  </div>
                 </div>
-                <div class="bg_list_item">
-                    <div class="bg_list_item_top">
-                        <div class="bg_list_item_top_left">
-                            <div class="bg_list_item_top_left_x"></div>
-                            <span>浜у嚭鏄庣粏</span>
-                        </div>
-                    </div>
-                    <!-- <template v-if="produceData && produceData.length > 0"> -->
-                        <!-- v-for="(item, index) in produceData" :key="index" -->
-                        <van-swipe-cell>
-                            <div class="bg_list_item_h">
-                                <div class="bg_list_item_num">
-                                    <div class="bg_list_item_num_item">
-                                        <span>鑹搧鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
-                                        <div class="bg_list_item_num_item_sr">
-                                            <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
-                                            <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
-                                            <input type="number" v-model="produceFrom.qualified" @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)" placeholder="璇疯緭鍏�" />
-                                            <span v-if="info.umodel">{{info.umodel.name}}</span>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </van-swipe-cell>
-                        <van-swipe-cell>
-                            <div class="bg_list_item_h">
-                                <div class="bg_list_item_num">
-                                    <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
-                                    <div class="bg_list_item_num_item">
-                                        <span>涓嶈壇鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
-                                        <div class="bg_list_item_num_item_sr">
-                                            <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
-                                            <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
-                                            <input type="number" v-model="produceFrom.undesirable" @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)" placeholder="璇疯緭鍏�" />
-                                            <span v-if="info.umodel">{{info.umodel.name}}</span>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </van-swipe-cell>
-                        <van-swipe-cell v-if="produceFrom.undesirable > 0">
-                            <div class="bg_list_item_h">
-                                <div class="bg_list_item_num">
-                                    <div class="bg_list_item_num_item" @click="show = true">
-                                        <span>涓嶈壇椤�</span>
-                                        <div class="bg_list_item_num_item_sr">
-                                            <span class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '璁剧疆'}}</span>
-                                            <img src="@/assets/icon/ic_ar@2x.png" alt="" />
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </van-swipe-cell>
-                    <!-- </template>
+              </div>
+            </div>
+
+            <template #right v-if="proxy.$auth('h5:workorderinput:delete')">
+              <van-button style="height: 100%;" square text="鍒犻櫎" @click="deleItem(item.id, 'T')" type="danger" />
+            </template>
+          </van-swipe-cell>
+        </template>
+        <template v-else>
+          <div class="kong">
+            <span>鏆傛棤鏁版嵁</span>
+          </div>
+        </template>
+      </div>
+      <div class="bg_list_item">
+        <div class="bg_list_item_top">
+          <div class="bg_list_item_top_left">
+            <div class="bg_list_item_top_left_x"></div>
+            <span>浜у嚭鏄庣粏</span>
+          </div>
+        </div>
+        <!-- <template v-if="produceData && produceData.length > 0"> -->
+        <!-- v-for="(item, index) in produceData" :key="index" -->
+        <van-swipe-cell>
+          <div class="bg_list_item_h">
+            <div class="bg_list_item_num">
+              <div class="bg_list_item_num_item">
+                <span>鑹搧鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
+                <div class="bg_list_item_num_item_sr">
+                  <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+                  <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+                  <input type="number" v-model="produceFrom.qualified"
+                    @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)" placeholder="璇疯緭鍏�" />
+                  <span v-if="info.umodel">{{ info.umodel.name }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </van-swipe-cell>
+        <van-swipe-cell>
+          <div class="bg_list_item_h">
+            <div class="bg_list_item_num">
+              <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+              <div class="bg_list_item_num_item">
+                <span>涓嶈壇鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
+                <div class="bg_list_item_num_item_sr">
+                  <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+                  <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+                  <input type="number" v-model="produceFrom.undesirable"
+                    @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)" placeholder="璇疯緭鍏�" />
+                  <span v-if="info.umodel">{{ info.umodel.name }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </van-swipe-cell>
+        <van-swipe-cell v-if="produceFrom.undesirable > 0">
+          <div class="bg_list_item_h">
+            <div class="bg_list_item_num">
+              <div class="bg_list_item_num_item" @click="show = true">
+                <span>涓嶈壇椤�</span>
+                <div class="bg_list_item_num_item_sr">
+                  <span class="wulll" :style="{ color: from.defectiveName ? '#305ED5' : '' }">{{ from.defectiveName ?
+                    from.defectiveName : '璁剧疆' }}</span>
+                  <img src="@/assets/icon/ic_ar@2x.png" alt="" />
+                </div>
+              </div>
+            </div>
+          </div>
+        </van-swipe-cell>
+        <!-- </template>
                     <template v-else>
                         <div class="kong">
                             <span>鏆傛棤鏁版嵁</span>
                         </div>
                     </template> -->
-                </div>
-                <div class="bg_plan" @click="TimeShow = true">
-                    <div class="bg_plan_label">
-                        <span>鎶ュ伐鏃堕暱</span>
-                    </div>
-                    <div class="bg_plan_label_val">
-                        <span :style="{color: from.durationName ? '#333' : ''}">{{from.durationName ? from.durationName : '璇烽�夋嫨'}}</span>
-                        <img src="@/assets/icon/ic_ar@2x.png" alt="" />
-                    </div>
-                </div>
-                <div class="bg_list_item" v-if="arrType && arrType.length > 0">
-                    <div class="bg_list_item_top">
-                        <div class="bg_list_item_top_left">
-                            <div class="bg_list_item_top_left_x"></div>
-                            <span>宸ヨ祫缁╂晥</span>
-                        </div>
-                    </div>
-                    <div class="bg_list_item_h">
-                        <div class="bg_list_item_num">
-                            <div class="bg_list_item_num_item">
-                                <span>璁′欢鏂瑰紡</span>
-                                <div class="bg_list_item_num_item_list">
-                                    <div :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'" v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</div>
-                                    <!-- <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">璁′欢</div>
+      </div>
+      <div class="bg_plan" @click="TimeShow = true">
+        <div class="bg_plan_label">
+          <span>鎶ュ伐鏃堕暱</span>
+        </div>
+        <div class="bg_plan_label_val">
+          <span :style="{ color: from.durationName ? '#333' : '' }">{{ from.durationName ? from.durationName : '璇烽�夋嫨' }}</span>
+          <img src="@/assets/icon/ic_ar@2x.png" alt="" />
+        </div>
+      </div>
+      <div class="bg_list_item" v-if="arrType && arrType.length > 0">
+        <div class="bg_list_item_top">
+          <div class="bg_list_item_top_left">
+            <div class="bg_list_item_top_left_x"></div>
+            <span>宸ヨ祫缁╂晥</span>
+          </div>
+        </div>
+        <div class="bg_list_item_h">
+          <div class="bg_list_item_num">
+            <div class="bg_list_item_num_item">
+              <span>璁′欢鏂瑰紡</span>
+              <div class="bg_list_item_num_item_list">
+                <div :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'"
+                  v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</div>
+                <!-- <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">璁′欢</div>
                                     <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 1">璁℃椂</div> -->
-                                </div>
-                            </div>
-                        </div>
-                        <div class="bg_list_item_num">
-                            <div class="bg_list_item_num_item">
-                                <span>宸ヨ祫鍗曚环</span>
-                                <div class="bg_list_item_num_item_sr">
-                                    <span class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}鍏�/{{arrType[from.index].type == 0 ? '浠�' : '鏃�'}}</span>
-                                    <!-- <span class="color1">{{infoBox.salary / 100}}鍏�/{{infoBox.type == 0 ? '浠�' : '鏃�'}}</span> -->
-                                </div>
-                            </div>
-                        </div>
-                        <div class="bg_list_item_num">
-                            <div class="bg_list_item_num_item">
-                                <span>棰勮宸ヨ祫</span>
-                                <div class="bg_list_item_num_item_sr">
-                                    <span class="color1">{{expectedSalary}}鍏�</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="bg_list_item_num">
-                            <div class="bg_list_item_num_item">
-                                <span>杈炬爣鐜�</span>
-                                <div class="bg_list_item_num_item_sr">
-                                    <span class="color1">{{complianceRate}}%</span>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            <!-- <div class="bg_list_item">
+              </div>
+            </div>
+          </div>
+          <div class="bg_list_item_num">
+            <div class="bg_list_item_num_item">
+              <span>宸ヨ祫鍗曚环</span>
+              <div class="bg_list_item_num_item_sr">
+                <span class="color1">{{ (arrType[from.index].salary / 10 / 10).toFixed(2) }}鍏�/{{ arrType[from.index].type ==
+                  0 ? '浠�' : '鏃�' }}</span>
+                <!-- <span class="color1">{{infoBox.salary / 100}}鍏�/{{infoBox.type == 0 ? '浠�' : '鏃�'}}</span> -->
+              </div>
+            </div>
+          </div>
+          <div class="bg_list_item_num">
+            <div class="bg_list_item_num_item">
+              <span>棰勮宸ヨ祫</span>
+              <div class="bg_list_item_num_item_sr">
+                <span class="color1">{{ expectedSalary }}鍏�</span>
+              </div>
+            </div>
+          </div>
+          <div class="bg_list_item_num">
+            <div class="bg_list_item_num_item">
+              <span>杈炬爣鐜�</span>
+              <div class="bg_list_item_num_item_sr">
+                <span class="color1">{{ complianceRate }}%</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- <div class="bg_list_item">
                 <div class="bg_list_item_top">
                     <div class="bg_list_item_top_left">
                         <div class="bg_list_item_top_left_x"></div>
@@ -276,9 +285,9 @@
                     </div>
                 </template>
             </div> -->
-        </div>
-        <div class="details_dj" v-if="typeView === 1">
-            <!-- <div class="details_dj_title">
+    </div>
+    <div class="details_dj" v-if="typeView === 1">
+      <!-- <div class="details_dj_title">
                 <div class="details_dj_title_left">
                     <div class="details_x"></div>
                     <span>鐢熶骇鐐规</span>
@@ -288,1712 +297,1805 @@
                     <span>鎵嬪姩褰曞叆</span>
                 </div>
             </div> -->
-            <div class="details_dj_list">
-                <van-list
-                    v-model:loading="loading"
-                    :finished="finished"
-                    finished-text="娌℃湁鏇村浜唦"
-                    @load="pageDJs">
-                    <van-swipe-cell v-for="(item, index) in djData" :key="index">
-                        <div class="details_dj_list_item">
-                            <span>{{item.attrName}}锛歿{item.val}}</span>
-                            <span>{{item.userName}} {{item.createTime}}</span>
-                        </div>
-                        <template #right>
-                            <van-button square type="danger" style="height: 100%;" @click="dele(item.id)" text="鍒犻櫎" />
-                        </template>
-                    </van-swipe-cell>
-                </van-list>
+      <div class="details_dj_list">
+        <van-list v-model:loading="loading" :finished="finished" finished-text="娌℃湁鏇村浜唦" @load="pageDJs">
+          <van-swipe-cell v-for="(item, index) in djData" :key="index">
+            <div class="details_dj_list_item">
+              <span>{{ item.attrName }}锛歿{ item.val }}</span>
+              <span>{{ item.userName }} {{ item.createTime }}</span>
             </div>
-        </div>
-        <!--  鎶ュ伐鎸夐挳  v-if="info.status === 2 || info.procedureNeedcheck === 1"  -->
-        <template>
-            <div class="bh_zw"></div>
-            <div class="bg_footer">
-                <div class="bg_footer_submit" v-if="typeView == 0 && (info.status === 2 || info.procedureNeedcheck === 1)" @click="submit">纭鎶ュ伐</div>
-                <!-- proxy.$auth('h5:workorder:processRecord') &&  -->
-                <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
-                    <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
-                    <span>鏂板鐐规</span>
-                </div>
-            </div>
-        </template>
-        <!--  鎵爜缁勪欢  -->
-        <v-ScanCode
-            :openCode="openCode"
-            :infos="['璇锋壂鎻忓伐瑁呯爜']"
-            @closePopup="closePopup"
-            @onDecode="onDecode" />
-        <!--  鎶ュ伐缁熻鏁版嵁  -->
-        <van-popup v-model:show="statistics" round :closeable="true" position="bottom">
-            <div class="tg">
-                <div class="tg_header">璇风‘璁ゆ姤宸ヤ俊鎭�</div>
-                <div class="tg_table">
-                    <div class="tg_table_header">
-                        <div class="tg_table_header_item">绫诲瀷</div>
-                        <div class="tg_table_header_item">鐗╂枡鍚嶇О</div>
-                        <!-- <div class="tg_table_header_item">宸ヨ鏁伴噺</div> -->
-                        <div class="tg_table_header_item">鐗╂枡鏁伴噺</div>
-                    </div>
-                    <div class="nr" v-if="statisticsData.length > 0">
-                        <div class="tg_table_nr" v-for="(item, index) in statisticsData" :key="index">
-                            <div class="tg_table_nr_item">{{item.name}}</div>
-                            <div class="tg_table_nr_item">{{item.materialName}}</div>
-                            <!-- <div class="tg_table_nr_item">{{item.gznum}}</div> -->
-                            <div class="tg_table_nr_item" :style="item.name === '宸ュ崟鏈姇鏂�' ? 'color: #DE5243' : ''">{{item.num}}</div>
-                        </div>
-                    </div>
-                    <div class="nr" v-else>
-                        <div class="tg_table_nr">
-                            <div class="tg_table_nr_item1">鏆傛棤鏁版嵁</div>
-                        </div>
-                    </div>
-                </div>
-                <div class="tg_footer">
-                    <button class="tg_footer_qr" @click="submitBG" v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">纭鎶ュ伐</button>
-                    <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">杩斿洖淇敼</div>
-                </div>
-            </div>
-        </van-popup>
-        <!-- 鏃堕棿 -->
-        <van-popup v-model:show="TimeShow" round position="bottom" :style="{ height: '50%' }">
-            <van-datetime-picker
-                v-model="from.time"
-                type="time"
-                title="閫夋嫨鏃堕棿"
-                @confirm="onConfirm2"
-                @cancel="onCancel2"
-            />
-        </van-popup>
-        <!-- 閫夋嫨涓嶈壇椤� -->
-        <van-popup v-model:show="show" round position="bottom">
-            <div class="bl">
-                <div class="bl_head">
-                    <img src="@/assets/icon/ic_close@2x.png" style="opacity: 0;" alt="" />
-                    <span>涓嶈壇椤�</span>
-                    <!-- <span>纭</span> -->
-                    <img src="@/assets/icon/ic_close@2x.png" @click="show = false" alt="" />
-                </div>
-                <div class="bl_list">
-                    <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
-                        <div class="bl_list_item_left">
-                            <input type="checkbox" :checked="item.active" />
-                            <span>{{ item.name }}</span>
-                        </div>
-                        <div class="bl_list_item_right">
-                            <input type="number" @click.stop v-model="item.num" placeholder="0" />
-                        </div>
-                    </div>
-                </div>
-                <div class="bl_footer" @click="onConfirm3">纭</div>
-            </div>
-        </van-popup>
+            <template #right>
+              <van-button square type="danger" style="height: 100%;" @click="dele(item.id)" text="鍒犻櫎" />
+            </template>
+          </van-swipe-cell>
+        </van-list>
+      </div>
     </div>
+    <!--  鎶ュ伐鎸夐挳  -->
+    <template v-if="info.status === 2 || info.procedureNeedcheck === 1">
+      <div class="bh_zw"></div>
+      <div class="bg_footer">
+        <div class="bg_footer_submit" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div>
+        <!-- proxy.$auth('h5:workorder:processRecord') &&  -->
+        <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
+          <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
+          <span>鏂板鐐规</span>
+        </div>
+      </div>
+    </template>
+    <!--  鎵爜缁勪欢  -->
+    <v-ScanCode :openCode="openCode" :infos="['璇锋壂鎻忓伐瑁呯爜']" @closePopup="closePopup" @onDecode="onDecode" />
+    <!--  鎶ュ伐缁熻鏁版嵁  -->
+    <van-popup v-model:show="statistics" round :closeable="true" position="bottom">
+      <div class="tg">
+        <div class="tg_header">璇风‘璁ゆ姤宸ヤ俊鎭�</div>
+        <div class="tg_table">
+          <div class="tg_table_header">
+            <div class="tg_table_header_item">绫诲瀷</div>
+            <div class="tg_table_header_item">鐗╂枡鍚嶇О</div>
+            <!-- <div class="tg_table_header_item">宸ヨ鏁伴噺</div> -->
+            <div class="tg_table_header_item">鐗╂枡鏁伴噺</div>
+          </div>
+          <div class="nr" v-if="statisticsData.length > 0">
+            <div class="tg_table_nr" v-for="(item, index) in statisticsData" :key="index">
+              <div class="tg_table_nr_item">{{ item.name }}</div>
+              <div class="tg_table_nr_item">{{ item.materialName }}</div>
+              <!-- <div class="tg_table_nr_item">{{item.gznum}}</div> -->
+              <div class="tg_table_nr_item" :style="item.name === '宸ュ崟鏈姇鏂�' ? 'color: #DE5243' : ''">{{ item.num }}</div>
+            </div>
+          </div>
+          <div class="nr" v-else>
+            <div class="tg_table_nr">
+              <div class="tg_table_nr_item1">鏆傛棤鏁版嵁</div>
+            </div>
+          </div>
+        </div>
+        <div class="tg_footer">
+          <button class="tg_footer_qr" @click="submitBG"
+            v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">纭鎶ュ伐</button>
+          <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">杩斿洖淇敼</div>
+        </div>
+      </div>
+    </van-popup>
+    <!-- 鏃堕棿 -->
+    <van-popup v-model:show="TimeShow" round position="bottom" :style="{ height: '50%' }">
+      <van-datetime-picker v-model="from.time" type="time" title="閫夋嫨鏃堕棿" @confirm="onConfirm2" @cancel="onCancel2" />
+    </van-popup>
+    <!-- 閫夋嫨涓嶈壇椤� -->
+    <van-popup v-model:show="show" round position="bottom">
+      <div class="bl">
+        <div class="bl_head">
+          <img src="@/assets/icon/ic_close@2x.png" style="opacity: 0;" alt="" />
+          <span>涓嶈壇椤�</span>
+          <!-- <span>纭</span> -->
+          <img src="@/assets/icon/ic_close@2x.png" @click="show = false" alt="" />
+        </div>
+        <div class="bl_list">
+          <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
+            <div class="bl_list_item_left">
+              <input type="checkbox" :checked="item.active" />
+              <span>{{ item.name }}</span>
+            </div>
+            <div class="bl_list_item_right">
+              <input type="number" @click.stop v-model="item.num" placeholder="0" />
+            </div>
+          </div>
+        </div>
+        <div class="bl_footer" @click="onConfirm3">纭</div>
+      </div>
+    </van-popup>
+  </div>
 </template>
 
 <script setup lang="ts">
-    import { getCurrentInstance, nextTick, onMounted, ref, reactive, computed, onActivated } from 'vue'
-    import { useRouter, useRoute } from "vue-router"
-    import { Dialog, Toast } from 'vant'
-    import { REGULAR } from '@/utils/utils'
-    import { categoryExtList, queryOne, queryList } from '@/apis/PlanningAPI'
-    import {
-        getBarcodeContent,
-        queryById,
-        getOrocessRecord,
-        deleteCT,
-        updateById,
-        comfirmDone,
-        comfirmDoneStandard,
-        getListByCondition,
-        allForStandard,
-        pageDJ,
-        deletedj,
-        dealWorkorderRecordStandard,
-        getWorkorderRecordListStandard
-    } from '@/apis/WorkOrderAPI'
-    import { QRCodeType } from '@/enum'
-    const { proxy }: any = getCurrentInstance()
-    const { $Bus }  = getCurrentInstance().appContext.config.globalProperties
-    import VWorkOrderInfo from '@/components/common/WorkOrderInfo.vue'
+import { getCurrentInstance, nextTick, onMounted, ref, reactive, computed, onActivated } from 'vue'
+import { useRouter, useRoute } from "vue-router"
+import { Dialog, Toast } from 'vant'
+import { REGULAR } from '@/utils/utils'
+import { categoryExtList, queryOne, queryList } from '@/apis/PlanningAPI'
+import {
+  getBarcodeContent,
+  queryById,
+  getOrocessRecord,
+  deleteCT,
+  updateById,
+  comfirmDone,
+  comfirmDoneStandard,
+  getListByCondition,
+  allForStandard,
+  pageDJ,
+  deletedj,
+  dealWorkorderRecordStandard,
+  getWorkorderRecordListStandard
+} from '@/apis/WorkOrderAPI'
+import { QRCodeType } from '@/enum'
+const { proxy }: any = getCurrentInstance()
+const { $Bus } = getCurrentInstance().appContext.config.globalProperties
+import VWorkOrderInfo from '@/components/common/WorkOrderInfo.vue'
 
-    const router = useRouter()
-    const route = useRoute()
+const router = useRouter()
+const route = useRoute()
 
-    let TimeShow = ref(false)
+let TimeShow = ref(false)
 
-    let from: any = reactive({
-        time: '',
-        defective: [],
-        defectiveName: '',
-        durationName: '0灏忔椂0鍒嗛挓',
-        duration: 0,
-        index: 0
-    })
+let from: any = reactive({
+  time: '',
+  defective: [],
+  defectiveName: '',
+  durationName: '0灏忔椂0鍒嗛挓',
+  duration: 0,
+  index: 0
+})
 
-    let cate = ref([{ name: '鐢熶骇' }, { name: '鐐规' }])
-    let typeView = ref(0)
+let cate = ref([{ name: '鐢熶骇' }, { name: '鐐规' }])
+let typeView = ref(0)
 
-    const clickIten = (i: number) => {
-        typeView.value = i
-        if (i === 1) {
-            finished.value = false
-            page.capacity = 1
-            pageDJs()
-        }
+const clickIten = (i: number) => {
+  typeView.value = i
+  if (i === 1) {
+    finished.value = false
+    page.capacity = 1
+    pageDJs()
+  }
+}
+
+// 棰勮宸ヨ祫
+const expectedSalary = computed(() => {
+  if (arrType.value.length === 0) return 0;
+  // 鎸変欢璁$畻
+  if (arrType.value[from.index].type == 0) {
+    if (!produceFrom.qualified) return 0
+    if (arrType.value[from.index].unqualified == 1) {   // 鏄惁璁″叆涓嶈壇鍝�
+      let total = Number(produceFrom.qualified) + Number(produceFrom.undesirable)
+      return (total * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
+    } else {
+      return (Number(produceFrom.qualified) * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
     }
+  } else {
+    if (!from.duration) return 0;
+    let h = (from.duration / 60 / 60).toFixed(2)
+    return (Number(h) * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) || 0
+  }
+})
 
-    // 棰勮宸ヨ祫
-    const expectedSalary = computed(() => {
-        if (arrType.value.length === 0) return 0;
-        // 鎸変欢璁$畻
-        if (arrType.value[from.index].type == 0) {
-            if (!produceFrom.qualified) return 0
-            if (arrType.value[from.index].unqualified == 1) {   // 鏄惁璁″叆涓嶈壇鍝�
-                let total = Number(produceFrom.qualified) + Number(produceFrom.undesirable)
-                return (total * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
-            } else {
-                return (Number(produceFrom.qualified) * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
-            }
-        } else {
-            if (!from.duration) return 0;
-            let h = (from.duration / 60 / 60).toFixed(2)
-            return (Number(h) * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) || 0
-        }
+// 杈炬爣鐜�
+const complianceRate = computed(() => {
+  if (arrType.value.length === 0) return 0;
+  if (!produceFrom.qualified && !produceFrom.undesirable) return 0;
+  if (!from.duration) return 0;
+  if (!arrType.value[from.index].num) return 0;
+  // 鎸変欢璁$畻
+  // if (infoBox.value.type == 0) {
+  if (arrType.value[from.index].unqualified == 1) {   // 鏄惁璁″叆涓嶈壇鍝�
+    let a = ((Number(produceFrom.qualified) + Number(produceFrom.undesirable)) / (from.duration / 3600)).toFixed(2)
+    let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
+    console.log(a)
+    console.log(b)
+    return ((Number(a) / Number(b)) * 100).toFixed(2)
+    // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
+    // return total * infoBox.value.salary;
+  } else {
+    let a = (produceFrom.qualified / (from.duration / 3600)).toFixed(2)
+    let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
+    console.log(a)
+    console.log(b)
+    return ((Number(a) / Number(b)) * 100).toFixed(2)
+    // return Number(from.qualified) * infoBox.value.salary;
+  }
+  // } else {
+  //     console.log('鎸夋椂闀�')
+  // }
+})
+
+const loading = ref(false);
+const finished = ref(false);
+let show = ref(false)
+// 鐐规鏁版嵁
+let djData: any = ref([])
+// 鍒嗛〉鏌ヨ鏁版嵁
+let page = reactive({
+  capacity: 10,
+  page: 0
+})
+
+let infoBox: any = ref(null)     // 宸ヨ祫缁╂晥
+
+// 浜у嚭鍚堟牸/涓嶈壇
+let produceFrom: any = reactive({
+  qualifiedId: '',
+  qualified: '',  // 鍚堟牸
+  undesirableId: '',
+  undesirable: '' // 涓嶈壇
+})
+
+let cateList: any = ref([])  // 涓嶈壇椤�
+
+// 璇︽儏鏁版嵁
+const info: any = ref({})
+
+// 鍒ゆ柇鏄惁鑳芥彁浜�
+let isSubmit: any = ref<boolean>(false)
+
+// 涓嶈壇鏄庣粏
+let undesirable: any = ref([])
+
+// 鎶ュ簾鏄庣粏
+let scrap: any = ref([])
+
+// 鎵爜绫诲瀷
+let type: any = ref('')
+
+let arrType: any = ref([])
+
+// 缁熻鏁版嵁
+let statisticsData: any = ref([
+  // {
+  //     name: '宸ュ崟鎶曟枡',
+  //     materialName: '榛勬矙',
+  //     num: 0
+  // },
+  // {
+  //     name: '宸ュ崟鍚堟牸浜у嚭',
+  //     materialName: '榛勬矙',
+  //     num: 0
+  // },
+  // {
+  //     name: '宸ュ崟涓嶈壇浜у嚭',
+  //     materialName: '榛勬矙',
+  //     num: 0
+  // },
+  // {
+  //     name: '宸ュ崟鏈姇鏂�',
+  //     materialName: '榛勬矙',
+  //     num: 0
+  // }
+])
+
+// 鎶曟枡鏁版嵁
+const feedingData: any = ref([])
+
+// 浜у嚭鏁版嵁
+const produceData: any = ref([])
+
+// 鎺у埗鎵爜鏄剧ず闅愯棌
+const openCode = ref<boolean>(false)
+
+// 鎺у埗鎶ュ伐缁熻
+const statistics = ref<boolean>(false)
+
+const changeChecked = (i: number) => {
+  cateList.value[i].active = !cateList.value[i].active
+}
+
+const getData = () => {
+  categoryExtList({
+    cateType: "3"
+  }).then(res => {
+    if (res.code === 200) {
+      res.data.forEach((item: any) => {
+        item.active = false
+        item.num = ''
+      })
+      cateList.value = res.data
+    }
+  })
+}
+
+const onConfirm2 = (e: string) => {
+  let h = Number(e.substring(0, 2))
+  let m = Number(e.substring(3, 5))
+  let s = 0
+  if (h > 0) {
+    s += h * 60 * 60
+  }
+  if (m > 0) {
+    s += m * 60
+  }
+  from.duration = s
+  from.durationName = `${h}灏忔椂${m}鍒嗛挓`
+  TimeShow.value = false
+}
+
+const onCancel2 = () => {
+  TimeShow.value = false
+}
+
+const onConfirm3 = () => {
+  let isOpen = false
+  cateList.value.forEach((item: any, index: number) => {
+    if (item.active) {
+      isOpen = true
+    }
+  })
+  if (!isOpen) return Toast('璇烽�夋嫨涓嶈壇椤�')
+  let arr: any = []
+  let total: any = 0
+  let name: any = ''
+  cateList.value.forEach((item: any, index: number) => {
+    if (item.active) {
+      if (item.num <= 0) {
+        return Toast('涓嶈壇鏁伴噺蹇呴』澶т簬0')
+      }
+      total = total += item.num
+      arr.push(item)
+      name += item.name + item.num + '锛�'
+    }
+  })
+  if (total !== produceFrom.undesirable) return Toast('涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟')
+  from.defective = arr
+  from.defectiveName = name
+  show.value = false
+}
+
+// 鎶曟枡缁熻
+const tlTotal = (): string => {
+  if (feedingData.value.length > 0) {
+    let total: number = 0
+    feedingData.value.forEach((element: any) => {
+      total = total + element.num
     })
+    return `${total}`
+  }
+  return ''
+}
 
-    // 杈炬爣鐜�
-    const complianceRate = computed(() => {
-        if (arrType.value.length === 0) return 0;
-        if (!produceFrom.qualified && !produceFrom.undesirable) return 0;
-        if (!from.duration) return 0;
-        if (!arrType.value[from.index].num) return 0;
-        // 鎸変欢璁$畻
-        // if (infoBox.value.type == 0) {
-            if (arrType.value[from.index].unqualified == 1) {   // 鏄惁璁″叆涓嶈壇鍝�
-                let a = ((Number(produceFrom.qualified) + Number(produceFrom.undesirable)) / (from.duration / 3600)).toFixed(2)
-                let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
-                console.log(a)
-                console.log(b)
-                return ((Number(a) / Number(b)) * 100).toFixed(2)
-                // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
-                // return total * infoBox.value.salary;
-            } else {
-                let a = (produceFrom.qualified / (from.duration / 3600)).toFixed(2)
-                let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
-                console.log(a)
-                console.log(b)
-                return ((Number(a) / Number(b)) * 100).toFixed(2)
-                // return Number(from.qualified) * infoBox.value.salary;
-            }
-        // } else {
-        //     console.log('鎸夋椂闀�')
+// 淇敼浜у嚭
+const changeCC = (downType: string, num: number, recordId: string) => {
+  if (!num) return
+  if ((produceFrom.qualified + produceFrom.undesirable) > info.value.planNum) {
+    return Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺', duration: 2000 })
+  }
+  if (num >= 0) {
+    from.defective = []
+    from.defectiveName = ''
+    // dealWorkorderRecordStandard({
+    //     downType, num, recordId, workorderId: route.query.id
+    // }).then(res => {
+    //     if (res.code === 200) {
+    //         getOrocessRecordCC()
+    //     }
+    // })
+  } else {
+    if (downType == 0) {
+      produceFrom.qualified = 0
+    } else {
+      produceFrom.undesirable = 0
+    }
+    Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘灏忎簬0', duration: 2000 })
+  }
+}
+
+// 璺宠浆鐐规
+const jumpdj = () => {
+  router.push({ name: 'spotCheck', query: { id: route.query.id } })
+}
+
+// 鍒犻櫎鐐规
+const dele = (id: string | number): void => {
+  deletedj(id)
+    .then(res => {
+      if (res.code === 200) {
+        djData.value = []
+        finished.value = false
+        page.page = 1
+        djData.value = []
+        pageDJs()
+      }
+    })
+}
+
+// 鐐规鏁版嵁
+const pageDJs = () => {
+  if (!finished.value) {
+    page.page = page.page + 1
+    loading.value = true
+    pageDJ({
+      capacity: page.capacity,
+      page: page.page,
+      model: {
+        workorderId: route.query.id
+      }
+    }).then(res => {
+      if (res.code === 200 && res.data && res.data.records.length !== 0) {
+        djData.value.push(...res.data.records)
+      } else {
+        finished.value = true
+      }
+      loading.value = false
+    }).catch(err => {
+      loading.value = false
+      finished.value = true
+    })
+  }
+}
+
+// 缁熻
+const ccTotal = (): string => {
+  if (produceData.value.length > 0) {
+    let total: number = 0
+    produceData.value.forEach((element: any) => {
+      total = total + element.num
+    })
+    return `${total}${produceData.value[0].company}`
+  }
+  return ''
+}
+
+// 缁熻
+const blTotal = (): string => {
+  if (undesirable.value.length > 0) {
+    let total: number = 0
+    undesirable.value.forEach((element: any) => {
+      total = total + element.num
+    })
+    return `${total}${undesirable.value[0].company}`
+  }
+  return ''
+}
+
+// 缁熻
+const bfTotal = (): string => {
+  if (scrap.value.length > 0) {
+    let total: number = 0
+    scrap.value.forEach((element: any) => {
+      total = total + element.num
+    })
+    return `${total}${scrap.value[0].company}`
+  }
+  return ''
+}
+
+// 鍒囨崲缁╂晥绫诲瀷
+const clickPerformanceType = (i: number) => {
+  from.index = i
+  arrType.value.forEach((item: any, index: number) => {
+    if (i === index) {
+      from.type = item.id
+    }
+    item.active = index === i
+  })
+}
+
+// 鍒犻櫎浜у嚭/鎶曟枡
+const deleItem = (id: any, type: string) => {
+  Dialog.confirm({
+    title: '鎻愮ず',
+    message: '纭畾鍒犻櫎姝ゆ潯璁板綍鍚楋紵',
+  }).then(() => {
+    deleteCT(id)
+      .then(res => {
+        if (res.code === 200 && type === 'C') {
+          getOrocessRecordCC()
+        } else if (res.code === 200 && type === 'T') {
+          getOrocessRecords()
+        }
+      })
+  }).catch(() => {
+    // on cancel
+  })
+}
+
+// 璺宠浆鎵嬪姩浜у嚭
+const jumpCC = () => {
+  router.push({ name: 'manualOutput', query: { id: route.query.id, num: produceData.value.length > 0 ? produceData.value[0].num : '' } })
+}
+
+// 璺宠浆鎵嬪姩鎶曟枡
+const jumpTL = () => {
+  router.push({ name: 'manualFeeding', query: { id: route.query.id } })
+}
+
+// 鍏抽棴鎵爜缁勪欢
+const closePopup = (): void => {
+  openCode.value = false
+}
+
+// 鑾峰彇鎵爜鍊�
+const onDecode = (data: string[]): void => {
+  getBarcodeContent({
+    barcode: data[0]
+  }).then(res => {
+    if (res.code === 200) {
+      if (res.data.barcodeType === QRCodeType.GZ) {
+        if (type.value === 'tl') {    // 鎶曟枡鎿嶄綔
+          getListByCondition({ id: res.data.id })
+            .then(gz => {
+              if (gz.code === 200) {
+                if (gz.data[0].status !== 1) {
+                  router.push({ name: 'codeScanningFeeding', query: { id: route.query.id, gzId: res.data.id } })
+                } else {
+                  Toast.fail({ message: '鎵弿鐨勫伐瑁呯姸鎬佷笉鑳戒负绌�', duration: 2000 })
+                }
+              }
+            })
+        }
+        if (type.value === 'cc') {    // 浜у嚭鎿嶄綔
+          router.push({ name: 'codeScanningOutput', query: { id: route.query.id, gzId: res.data.id } })
+        }
+      } else {
+        Toast({ message: '璇锋壂鎻忔纭殑绡瓙鐮�', duration: 2000 })
+      }
+    }
+  })
+  nextTick(() => {
+    openCode.value = false
+  })
+}
+
+// 璺宠浆鎵嬪姩鎶曟枡
+const jump = () => {
+  router.push({ name: 'manualFeeding', query: { id: route.query.id } })
+}
+
+// 璺宠浆鎵爜鎶曟枡
+const jump1 = (types: string) => {
+  type.value = types
+  openCode.value = true
+}
+
+// 鏌ヨ宸ュ崟璇︽儏
+const queryByIds = () => {
+  queryById(route.query.id).then(res => {
+    if (res.code === 200) {
+      info.value = res.data
+      // 鑾峰彇宸ヨ祫缁╂晥鏁版嵁
+      queryList({
+        deleted: 0,
+        departId: res.data.factoryId,
+        materialId: res.data.materialId,
+        procedureId: res.data.procedureId
+      }).then((result: any) => {
+        if (result.code === 200) {
+          if (result.data && result.data.length > 0) {
+            result.data.forEach((item: any, index: number) => {
+              item.name = item.type == 0 ? '璁′欢' : '璁℃椂'
+              item.id = item.type
+              item.active = index == 0
+            })
+            arrType.value = result.data
+          } else {
+            arrType.value = []
+          }
+          // infoBox.value = result.data
+        }
+        // if (result.code === 200) {
+        //     infoBox.value = result.data
         // }
-    })
-
-    const loading = ref(false);
-    const finished = ref(false);
-    let show = ref(false)
-    // 鐐规鏁版嵁
-    let djData: any = ref([])
-    // 鍒嗛〉鏌ヨ鏁版嵁
-    let page = reactive({
-        capacity: 10,
-        page: 0
-    })
-
-    let infoBox: any = ref(null)     // 宸ヨ祫缁╂晥
-
-    // 浜у嚭鍚堟牸/涓嶈壇
-    let produceFrom: any = reactive({
-        qualifiedId: '',
-        qualified: '',  // 鍚堟牸
-        undesirableId: '',
-        undesirable: '' // 涓嶈壇
-    })
-
-    let cateList:any = ref([])  // 涓嶈壇椤�
-
-    // 璇︽儏鏁版嵁
-    const info: any = ref({})
-
-    // 鍒ゆ柇鏄惁鑳芥彁浜�
-    let isSubmit: any = ref<boolean>(false)
-
-    // 涓嶈壇鏄庣粏
-    let undesirable: any = ref([])
-
-    // 鎶ュ簾鏄庣粏
-    let scrap: any = ref([])
-
-    // 鎵爜绫诲瀷
-    let type: any = ref('')
-
-    let arrType: any = ref([])
-
-    // 缁熻鏁版嵁
-    let statisticsData: any = ref([
-        // {
-        //     name: '宸ュ崟鎶曟枡',
-        //     materialName: '榛勬矙',
-        //     num: 0
-        // },
-        // {
-        //     name: '宸ュ崟鍚堟牸浜у嚭',
-        //     materialName: '榛勬矙',
-        //     num: 0
-        // },
-        // {
-        //     name: '宸ュ崟涓嶈壇浜у嚭',
-        //     materialName: '榛勬矙',
-        //     num: 0
-        // },
-        // {
-        //     name: '宸ュ崟鏈姇鏂�',
-        //     materialName: '榛勬矙',
-        //     num: 0
-        // }
-    ])
-
-    // 鎶曟枡鏁版嵁
-    const feedingData: any = ref([])
-
-    // 浜у嚭鏁版嵁
-    const produceData: any = ref([])
-
-    // 鎺у埗鎵爜鏄剧ず闅愯棌
-    const openCode = ref<boolean>(false)
-
-    // 鎺у埗鎶ュ伐缁熻
-    const statistics = ref<boolean>(false)
-
-    const changeChecked = (i: number) => {
-        cateList.value[i].active = !cateList.value[i].active
+      })
     }
+  })
+}
 
-    const getData = () => {
-        categoryExtList({
-            cateType: "3"
-        }).then(res => {
-            if (res.code === 200) {
-                res.data.forEach((item: any) => {
-                    item.active = false
-                    item.num = ''
-                })
-                cateList.value = res.data
-            }
+// 鏌ヨ宸ュ崟鐢熶骇璁板綍---鎶曟枡
+const getOrocessRecords = () => {
+  feedingData.value = []
+  allForStandard({
+    workorderId: route.query.id,
+    type: 0
+  }).then(res => {
+    if (res.code === 200) {
+      feedingData.value = res.data
+      // res.data.forEach((item: any) => {
+      //     feedingData.value.push({ id: item.id, company: item.umodel.name, gz: item.amodel.code, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
+      // })
+    }
+  })
+}
+
+// 鏌ヨ宸ュ崟鐢熶骇璁板綍---浜у嚭
+const getOrocessRecordCC = () => {
+  produceData.value = []
+  undesirable.value = []
+  scrap.value = []
+  getWorkorderRecordListStandard({
+    workorderId: route.query.id
+  }).then(res => {
+    if (res.code === 200) {
+      if (res.data.length > 0) {
+        res.data.forEach((item: any) => {
+          if (item.doneType === 1) {
+            produceFrom.undesirable = item.num
+            produceFrom.undesirableId = item.id
+          } else {
+            produceFrom.qualified = item.num
+            produceFrom.qualifiedId = item.id
+          }
         })
-    }
+      }
+      // res.data.forEach((item: any) => {
+      //     if (item.doneType === 0 || !item.doneType) { // 鍚堟牸 | 娣峰悎
 
-    const onConfirm2 = (e: string) => {
-        let h = Number(e.substring(0, 2))
-        let m = Number(e.substring(3, 5))
-        let s = 0
-        if (h > 0) {
-            s += h * 60 * 60
-        }
-        if (m > 0) {
-            s += m * 60
-        }
-        from.duration = s
-        from.durationName = `${h}灏忔椂${m}鍒嗛挓`
-        TimeShow.value = false
+      //         produceData.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
+      //     } else if (item.doneType === 1) { // 涓嶈壇
+      //         undesirable.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
+      //     } else if (item.doneType === 2) { // 鎶ュ簾
+      //         scrap.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
+      //     }
+      // })
     }
+  })
+}
 
-    const onCancel2 = () => {
-        TimeShow.value = false
+// 缂栬緫鎶曟枡/浜у嚭
+const change = (id: any, num: any, type: any, maxNum: number, item: object, unitAttribute: number): void => {
+  let obj: any = item
+  if (type === 'T') {
+    if (unitAttribute == 0 && num != '') {
+      if (!REGULAR.positiveInteger.test(num)) {
+        obj.num = obj.ynum
+        Toast({ message: '鍙兘杈撳叆姝f暣鏁�' })
+        return
+      }
     }
+    if (unitAttribute == 1 && num != '') {
+      if (!REGULAR.number.test(num)) {
+        Toast({ message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級' })
+        obj.num = obj.ynum
+        return
+      }
+    }
+    if (num > maxNum) {
+      obj.num = obj.ynum
+      Toast.fail({ message: '瓒呭嚭宸ヨ鎬绘暟' })
+      return
+    }
+  } else if (type === 'C' && num > info.value.planNum) {
+    obj.num = obj.ynum
+    Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺' })
+    return
+  }
+  updateById({ id: id, num: num }).then(res => {
+    if (res.code === 200 && type === 'T') {
+      getOrocessRecords()
+    } else if (res.code === 200 && type === 'C') {
+      // getOrocessRecordCC()
+    }
+  })
+}
 
-    const onConfirm3 = () => {
-        let isOpen = false
-        cateList.value.forEach((item: any, index: number) => {
-            if (item.active) {
-                isOpen = true
-            }
+// 纭鎶ュ伐
+const submit = () => {
+  if (info.value.bomType === 1) {  // 鎷夊紡
+    console.log('鎷夊紡')
+    statisticsData.value = []
+    if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) {
+      Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
+      return
+    }
+    if (info.value.hasBom === 0) {
+      console.log('鏃燽om')
+      // let data: any = [
+      //     { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 },
+      //     { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 },
+      //     { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 },
+      //     { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }
+      // ]
+      // if (undesirable.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
+      //     data[2].wlmc = undesirable.value[0].name
+      //     data[2].gznum = data[2].gznum + undesirable.value.length
+      // }
+      // if (scrap.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
+      //     data[2].wlmc = scrap.value[0].name
+      //     data[2].gznum = data[2].gznum + scrap.value.length
+      // }
+      // let tl: number = 0
+      // let cc: number = 0
+      // let bl: number = 0
+      // undesirable.value.forEach((item: any) => {  // 涓嶈壇
+      //     bl = bl + item.num
+      // })
+      // scrap.value.forEach((item: any) => {  // 鎶ュ簾
+      //     bl = bl + item.num
+      // })
+      // if (produceData.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑�
+      //     produceData.value.forEach((item: any) => {  // 浜у嚭
+      //         cc = cc + item.num
+      //     })
+      // }
+      // feedingData.value.forEach((item: any) => {  // 鎶曟枡
+      //     tl = tl + item.num
+      // })
+      // data[0].wlnum = tl.toString() + info.value.umodel.name
+      // if (produceData.value.length > 0) {
+      //     data[1].wlnum = cc.toString() + info.value.umodel.name
+      // }
+      // data[2].wlnum = bl.toString() + info.value.umodel.name
+      // let total: number = info.value.planNum - (Number(cc) + Number(bl))
+      // data[data.length - 1].wlnum = (info.value.planNum - Number(cc) - Number(bl)).toString() + info.value.umodel.name
+      // if (total === 0) {
+      //     isSubmit.value = true
+      // } else {
+      //     isSubmit.value = false
+      // }
+
+      let arr: any = []
+      let tl = 0
+      let res = getGroupNum(feedingData.value)
+      for (let i in res) {
+        let num = 0
+        res[i].forEach((item: any) => {
+          num += item.num
         })
-        if (!isOpen) return Toast('璇烽�夋嫨涓嶈壇椤�')
-        let arr: any = []
-        let total: any = 0
-        let name: any = ''
-        cateList.value.forEach((item: any, index: number) => {
-            if (item.active) {
-                if (item.num <= 0) {
-                    return Toast('涓嶈壇鏁伴噺蹇呴』澶т簬0')
-                }
-                total = total += item.num
-                arr.push(item)
-                name += item.name + item.num + '锛�'
-            }
+        arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + res[i][0].procedureName, num: num })
+      }
+      feedingData.value.forEach((item: any) => {
+        tl += item.num
+      })
+      statisticsData.value = [...statisticsData.value, ...arr]
+      statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
+      statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
+      statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: info.value.planNum - Number(produceFrom.qualified) - Number(produceFrom.undesirable) })
+      let total: number = info.value.planNum - (Number(produceFrom.qualified) + Number(produceFrom.undesirable))
+      if (total === 0) {
+        isSubmit.value = true
+      } else {
+        isSubmit.value = false
+      }
+      // if (Number(tl) <= info.value.planNum) {
+      //   let total: number = Number(tl) - Number(cc) - Number(bl)  // 鏄惁鏈変綑
+      //   data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name
+      //   if (total === 0) {
+      //     isSubmit.value = true
+      //   } else {
+      //     isSubmit.value = false
+      //   }
+      // } else {
+      //   isSubmit.value = false
+      // }
+      // statisticsData.value = data
+    } else if (info.value.hasBom === 1) {  // 鏈塨om鎯呭喌
+      console.log('鏈塨om')
+      // let cc: number = 0
+      // let bl: number = 0
+      // let newData: any = {}
+      // if (feedingData.value.length > 0) {  // 鎶曟枡
+      //     feedingData.value.forEach((e: any) => {
+      //         if (Object.keys(newData).indexOf('' + e.name) === -1) {
+      //             newData[e.name] = []
+      //         }
+      //         newData[e.name].push(e)
+      //     })
+      //     for (let key in newData) {
+      //         let obj = { name: '宸ュ崟鎶曟枡', gznum: newData[key].length, wlmc: key, wlnum: 0, num: 0 }
+      //         newData[key].forEach((item: any) => {
+      //             obj.wlnum = obj.wlnum + item.num
+      //             obj.num = item.num
+      //         })
+      //         obj.wlnum = obj.wlnum.toString() + newData[key][0].company as never
+      //         statisticsData.value.push(obj)
+      //     }
+      // }
+      // if (produceData.value.length > 0) {  // 浜у嚭
+      //     produceData.value.forEach((item: any) => {
+      //         cc = cc + item.num
+      //     })
+      //     statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: info.value.mmodel.name, wlnum: cc + info.value.umodel.name, num: cc })
+      // }
+      // if (undesirable.value.length > 0 || scrap.value.length > 0) {  // 涓嶈壇/鎶ュ簾
+      //     undesirable.value.forEach((item: any) => {
+      //         bl = bl + item.num
+      //     })
+      //     scrap.value.forEach((item: any) => {
+      //         bl = bl + item.num
+      //     })
+      //     statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', gznum: undesirable.value.length + scrap.value.length, wlmc: info.value.mmodel.name, wlnum: bl + info.value.umodel.name, num: bl })
+      // }
+      // let totaltl: number = 0
+      // let totalcc: number = 0
+      // let totalbl: number = 0
+      // statisticsData.value.forEach((item: any) => {
+      //     if (item.name === '宸ュ崟鎶曟枡') {
+      //         totaltl = totaltl + item.num
+      //     } else if (item.name === '宸ュ崟鍚堟牸浜у嚭') {
+      //         totalcc = totalcc + item.num
+      //     } else if (item.name === '宸ュ崟涓嶈壇浜у嚭') {
+      //         totalbl = totalbl + item.num
+      //     }
+      // })
+      // isSubmit.value = totalcc + totalbl <= info.value.planNum;
+      let arr: any = []
+      let tl = 0
+      let res = getGroupNum(feedingData.value)
+      for (let i in res) {
+        let num = 0
+        res[i].forEach((item: any) => {
+          num += item.num
         })
-        if (total !== produceFrom.undesirable) return Toast('涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟')
-        from.defective = arr
-        from.defectiveName = name
-        show.value = false
+        arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num })
+      }
+      feedingData.value.forEach((item: any) => {
+        tl += item.num
+      })
+      statisticsData.value = [...statisticsData.value, ...arr]
+      statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
+      statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
+      isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum;
     }
-
-    // 鎶曟枡缁熻
-    const tlTotal = (): string => {
-        if (feedingData.value.length > 0) {
-            let total: number = 0
-            feedingData.value.forEach((element: any) => {
-                total = total + element.num
-            })
-            return `${total}`
-        }
-        return ''
+  } else {
+    console.log('鎺ㄥ紡')
+    if (feedingData.value.length === 0) {
+      Toast.fail({ message: '鎶曟枡鏄庣粏涓嶈兘涓虹┖' })
+      return
     }
-
-    // 淇敼浜у嚭
-    const changeCC = (downType: string, num: number, recordId: string) => {
-        if (!num) return
-        if ((produceFrom.qualified + produceFrom.undesirable) > info.value.planNum) {
-            return Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺', duration: 2000 })
-        }
-        if (num >= 0) {
-            from.defective = []
-            from.defectiveName = ''
-            // dealWorkorderRecordStandard({
-            //     downType, num, recordId, workorderId: route.query.id
-            // }).then(res => {
-            //     if (res.code === 200) {
-            //         getOrocessRecordCC()
-            //     }
-            // })
+    if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) {
+      Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
+      return
+    }
+    statisticsData.value = []
+    if (info.value.hasBom === 0) {
+      console.log('鏃燽om')
+      // let data: any = [
+      //     { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 },
+      //     { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 },
+      //     { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 },
+      //     { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }
+      // ]
+      // if (undesirable.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
+      //     data[2].wlmc = undesirable.value[0].name
+      //     data[2].gznum = data[2].gznum + undesirable.value.length
+      // }
+      // if (scrap.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
+      //     data[2].wlmc = scrap.value[0].name
+      //     data[2].gznum = data[2].gznum + scrap.value.length
+      // }
+      // let tl = 0
+      // let cc = 0
+      // let bl = 0
+      // undesirable.value.forEach((item: any) => {  // 涓嶈壇
+      //     bl = bl + item.num
+      // })
+      // scrap.value.forEach((item: any) => {  // 鎶ュ簾
+      //     bl = bl + item.num
+      // })
+      // if (produceData.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑�
+      //     produceData.value.forEach((item: any) => {  // 浜у嚭
+      //         cc = cc + item.num
+      //     })
+      // }
+      // feedingData.value.forEach((item: any) => {  // 鎶曟枡
+      //     tl = tl + item.num
+      // })
+      // data[0].wlnum = tl.toString() + info.value.umodel.name
+      // if (produceData.value.length > 0) {
+      //     data[1].wlnum = cc.toString() + info.value.umodel.name
+      // }
+      // data[2].wlnum = bl.toString() + info.value.umodel.name
+      // if (Number(tl) <= info.value.planNum) {
+      //     let total: number = Number(tl) - Number(cc) - Number(bl)  // 鏄惁鏈変綑
+      //     data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name
+      //     if (total === 0) {
+      //         isSubmit.value = true
+      //     } else {
+      //         isSubmit.value = false
+      //     }
+      // } else {
+      //     isSubmit.value = false
+      // }
+      // statisticsData.value = data
+      let arr: any = []
+      let tl = 0
+      let res = getGroupNum(feedingData.value)
+      for (let i in res) {
+        let num = 0
+        res[i].forEach((item: any) => {
+          num += item.num
+        })
+        arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + '-' + res[i][0].procedureName, num: num })
+      }
+      feedingData.value.forEach((item: any) => {
+        tl += item.num
+      })
+      statisticsData.value = [...statisticsData.value, ...arr]
+      statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
+      statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
+      if (Number(tl) <= info.value.planNum) {
+        let total: number = Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)  // 鏄惁鏈変綑
+        statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: (Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)).toFixed(2) })
+        if (total === 0) {
+          isSubmit.value = true
         } else {
-            if (downType == 0) {
-                produceFrom.qualified = 0
-            } else {
-                produceFrom.undesirable = 0
-            }
-            Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘灏忎簬0', duration: 2000 })
+          isSubmit.value = false
         }
-    }
-
-    // 璺宠浆鐐规
-    const jumpdj = () => {
-        router.push({ name: 'spotCheck', query: { id: route.query.id } })
-    }
-
-    // 鍒犻櫎鐐规
-    const dele = (id: string | number): void => {
-        deletedj(id)
-            .then(res => {
-                if (res.code === 200) {
-                    djData.value = []
-                    finished.value = false
-                    page.page = 1
-                    djData.value = []
-                    pageDJs()
-                }
-            })
-    }
-
-    // 鐐规鏁版嵁
-    const pageDJs = () => {
-        if (!finished.value) {
-            page.page = page.page + 1
-            loading.value = true
-            pageDJ({
-                capacity: page.capacity,
-                page: page.page,
-                model: {
-                    workorderId: route.query.id
-                }
-            }).then(res => {
-                if (res.code === 200 && res.data && res.data.records.length !== 0) {
-                    djData.value.push(...res.data.records)
-                } else {
-                    finished.value = true
-                }
-                loading.value = false
-            }).catch(err => {
-                loading.value = false
-                finished.value = true
-            })
-        }
-    }
-
-    // 缁熻
-    const ccTotal = (): string => {
-        if (produceData.value.length > 0) {
-            let total: number = 0
-            produceData.value.forEach((element: any) => {
-                total = total + element.num
-            })
-            return `${total}${produceData.value[0].company}`
-        }
-        return ''
-    }
-
-    // 缁熻
-    const blTotal = (): string => {
-        if (undesirable.value.length > 0) {
-            let total: number = 0
-            undesirable.value.forEach((element: any) => {
-                total = total + element.num
-            })
-            return `${total}${undesirable.value[0].company}`
-        }
-        return ''
-    }
-
-    // 缁熻
-    const bfTotal = (): string => {
-        if (scrap.value.length > 0) {
-            let total: number = 0
-            scrap.value.forEach((element: any) => {
-                total = total + element.num
-            })
-            return `${total}${scrap.value[0].company}`
-        }
-        return ''
-    }
-
-    // 鍒囨崲缁╂晥绫诲瀷
-    const clickPerformanceType = (i: number) => {
-        from.index = i
-        arrType.value.forEach((item: any, index: number) => {
-            if (i === index) {
-                from.type = item.id
-            }
-            item.active = index === i
+      } else {
+        isSubmit.value = false
+      }
+    } else if (info.value.hasBom === 1) {  // 鏈塨om鎯呭喌
+      console.log('鏈塨om')
+      let arr: any = []
+      let tl = 0
+      let res = getGroupNum(feedingData.value)
+      for (let i in res) {
+        let num = 0
+        res[i].forEach((item: any) => {
+          num += item.num
         })
+        arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num })
+      }
+      feedingData.value.forEach((item: any) => {
+        tl += item.num
+      })
+      statisticsData.value = [...statisticsData.value, ...arr]
+      statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
+      statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
+      // isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum;
+      isSubmit.value = true
     }
+  }
+  statistics.value = true
+}
 
-    // 鍒犻櫎浜у嚭/鎶曟枡
-    const deleItem = (id: any, type: string) => {
-        Dialog.confirm({
-            title: '鎻愮ず',
-            message: '纭畾鍒犻櫎姝ゆ潯璁板綍鍚楋紵',
-        }).then(() => {
-            deleteCT(id)
-                .then(res => {
-                    if (res.code === 200 && type === 'C') {
-                        getOrocessRecordCC()
-                    } else if (res.code === 200 && type === 'T') {
-                        getOrocessRecords()
-                    }
-                })
-        }).catch(() => {
-            // on cancel
-        })
+// 鏍规嵁鏌愪釜瀛楁杩涜鍒嗙粍
+const getGroupNum = (arr: any) => {
+  let newArry: any = {};
+  for (let i = 0; i < arr.length; i++) {
+    if (newArry[arr[i].materialName]) {
+      newArry[arr[i].materialName].push(arr[i])
+    } else {
+      newArry[arr[i].materialName] = [arr[i]]
     }
+  }
+  return newArry;
+}
 
-    // 璺宠浆鎵嬪姩浜у嚭
-    const jumpCC = () => {
-        router.push({ name: 'manualOutput', query: { id: route.query.id, num: produceData.value.length > 0 ? produceData.value[0].num : '' } })
+// 杩斿洖淇敼
+const gofh = () => {
+  statistics.value = false
+}
+
+// 纭鎶ュ伐
+const submitBG = () => {
+  // if (!from.duration || from.duration <= 0) {
+  //     return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖')
+  // }
+  let createUnqualifiedDTOList = from.defective.map((item: any) => {
+    return {
+      categoryId: item.id,
+      unQualifiedNum: item.num
     }
-
-    // 璺宠浆鎵嬪姩鎶曟枡
-    const jumpTL = () => {
-        router.push({ name: 'manualFeeding', query: { id: route.query.id } })
+  })
+  let createWorkorderRecordDTO = {
+    workorderId: route.query.id,
+    duration: from.duration ? from.duration : 0,
+    qualifiedNum: produceFrom.qualified ? produceFrom.qualified : 0,
+    unQualifiedNum: produceFrom.undesirable ? produceFrom.undesirable : 0
+  }
+  // id: route.query.id
+  comfirmDoneStandard({
+    createUnqualifiedDTOList,
+    createWorkorderRecordDTO
+  }).then(res => {
+    if (res.code === 200) {
+      Toast.success({ message: '鎶ュ伐鎴愬姛', forbidClick: true, duration: 2000 })
+      setTimeout(() => {
+        router.go(-2)
+      }, 2000)
     }
+  })
+}
 
-    // 鍏抽棴鎵爜缁勪欢
-    const closePopup = (): void => {
-        openCode.value = false
-    }
+onActivated(() => {
+  // $Bus.on('callback1', (res: any)=>{
+  //     console.log(res)
+  //     if (res == 1) {
+  //         djData.value = []
+  //         finished.value = false
+  //         page.page = 1
+  //         djData.value = []
+  //         pageDJs()
+  //     }
+  // })
+  // queryByIds()
+  // getOrocessRecords()
+  // getData()
+})
 
-    // 鑾峰彇鎵爜鍊�
-    const onDecode = (data: string[]): void => {
-        getBarcodeContent({
-            barcode: data[0]
-        }).then(res => {
-            if (res.code === 200) {
-                if (res.data.barcodeType === QRCodeType.GZ) {
-                    if (type.value === 'tl') {    // 鎶曟枡鎿嶄綔
-                        getListByCondition({ id: res.data.id })
-                            .then(gz => {
-                                if (gz.code === 200) {
-                                    if (gz.data[0].status !== 1) {
-                                        router.push({ name: 'codeScanningFeeding', query: { id: route.query.id, gzId: res.data.id } })
-                                    } else {
-                                        Toast.fail({ message: '鎵弿鐨勫伐瑁呯姸鎬佷笉鑳戒负绌�', duration: 2000 })
-                                    }
-                                }
-                            })
-                    }
-                    if (type.value === 'cc') {    // 浜у嚭鎿嶄綔
-                        router.push({ name: 'codeScanningOutput', query: { id: route.query.id, gzId: res.data.id } })
-                    }
-                } else {
-                    Toast({ message: '璇锋壂鎻忔纭殑绡瓙鐮�', duration: 2000 })
-                }
-            }
-        })
-        nextTick(() => {
-            openCode.value = false
-        })
-    }
+onMounted(() => {
+  // $Bus.on('callback1', (res: any)=>{
+  //     if (res == 1) {
+  //         djData.value = []
+  //         finished.value = false
+  //         page.page = 1
+  //         djData.value = []
+  //         pageDJs()
+  //     }
+  // })
+  // pageDJs()
 
-    // 璺宠浆鎵嬪姩鎶曟枡
-    const jump = () => {
-        router.push({ name: 'manualFeeding', query: { id: route.query.id } })
-    }
+  queryByIds()
+  getOrocessRecords()
+  getData()
 
-    // 璺宠浆鎵爜鎶曟枡
-    const jump1 = (types: string) => {
-        type.value = types
-        openCode.value = true
-    }
-
-    // 鏌ヨ宸ュ崟璇︽儏
-    const queryByIds = () => {
-        queryById(route.query.id).then(res => {
-            if (res.code === 200) {
-                info.value = res.data
-                // 鑾峰彇宸ヨ祫缁╂晥鏁版嵁
-                queryList({
-                    deleted: 0,
-                    departId: res.data.factoryId,
-                    materialId: res.data.materialId,
-                    procedureId: res.data.procedureId
-                }).then((result: any) => {
-                    if (result.code === 200) {
-                        if (result.data && result.data.length > 0) {
-                            result.data.forEach((item: any, index: number) => {
-                                item.name = item.type == 0 ? '璁′欢' : '璁℃椂'
-                                item.id = item.type
-                                item.active = index == 0
-                            })
-                            arrType.value = result.data
-                        } else {
-                            arrType.value = []
-                        }
-                        // infoBox.value = result.data
-                    }
-                    // if (result.code === 200) {
-                    //     infoBox.value = result.data
-                    // }
-                })
-            }
-        })
-    }
-
-    // 鏌ヨ宸ュ崟鐢熶骇璁板綍---鎶曟枡
-    const getOrocessRecords = () => {
-        feedingData.value = []
-        allForStandard({
-            workorderId: route.query.id,
-            type: 0
-        }).then(res => {
-            if (res.code === 200) {
-                feedingData.value = res.data
-                // res.data.forEach((item: any) => {
-                //     feedingData.value.push({ id: item.id, company: item.umodel.name, gz: item.amodel.code, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
-                // })
-            }
-        })
-    }
-
-    // 鏌ヨ宸ュ崟鐢熶骇璁板綍---浜у嚭
-    const getOrocessRecordCC = () => {
-        produceData.value = []
-        undesirable.value = []
-        scrap.value = []
-        getWorkorderRecordListStandard({
-            workorderId: route.query.id
-        }).then(res => {
-            if (res.code === 200) {
-                if (res.data.length > 0) {
-                    res.data.forEach((item: any) => {
-                        if (item.doneType === 1) {
-                            produceFrom.undesirable = item.num
-                            produceFrom.undesirableId = item.id
-                        } else {
-                            produceFrom.qualified = item.num
-                            produceFrom.qualifiedId = item.id
-                        }
-                    })
-                }
-                // res.data.forEach((item: any) => {
-                //     if (item.doneType === 0 || !item.doneType) { // 鍚堟牸 | 娣峰悎
-
-                //         produceData.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
-                //     } else if (item.doneType === 1) { // 涓嶈壇
-                //         undesirable.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
-                //     } else if (item.doneType === 2) { // 鎶ュ簾
-                //         scrap.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num })
-                //     }
-                // })
-            }
-        })
-    }
-
-    // 缂栬緫鎶曟枡/浜у嚭
-    const change = (id: any, num: any, type: any, maxNum: number, item: object, unitAttribute: number): void => {
-        let obj: any = item
-        if (type === 'T') {
-            if (unitAttribute == 0 && num != '') {
-                if(!REGULAR.positiveInteger.test(num)){
-                    obj.num = obj.ynum
-                    Toast({ message: '鍙兘杈撳叆姝f暣鏁�' })
-                    return
-                }
-            }
-            if (unitAttribute == 1 && num != '') {
-                if(!REGULAR.number.test(num)){
-                    Toast({ message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級' })
-                    obj.num = obj.ynum
-                    return
-                }
-            }
-            if (num > maxNum) {
-                obj.num = obj.ynum
-                Toast.fail({ message: '瓒呭嚭宸ヨ鎬绘暟' })
-                return
-            }
-        } else if (type === 'C' && num > info.value.planNum) {
-            obj.num = obj.ynum
-            Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺' })
-            return
-        }
-        updateById({ id: id, num: num }).then(res => {
-            if (res.code === 200 && type === 'T') {
-                getOrocessRecords()
-            } else if (res.code === 200 && type === 'C') {
-                // getOrocessRecordCC()
-            }
-        })
-    }
-
-    // 纭鎶ュ伐
-    const submit = () => {
-        if (info.value.bomType === 1) {  // 鎷夊紡
-            console.log('鎷夊紡')
-            statisticsData.value = []
-            if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) {
-                Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
-                return
-            }
-            if (info.value.hasBom === 0) {
-                console.log('鏃燽om')
-                // let data: any = [
-                //     { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 },
-                //     { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 },
-                //     { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 },
-                //     { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }
-                // ]
-                // if (undesirable.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
-                //     data[2].wlmc = undesirable.value[0].name
-                //     data[2].gznum = data[2].gznum + undesirable.value.length
-                // }
-                // if (scrap.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
-                //     data[2].wlmc = scrap.value[0].name
-                //     data[2].gznum = data[2].gznum + scrap.value.length
-                // }
-                // let tl: number = 0
-                // let cc: number = 0
-                // let bl: number = 0
-                // undesirable.value.forEach((item: any) => {  // 涓嶈壇
-                //     bl = bl + item.num
-                // })
-                // scrap.value.forEach((item: any) => {  // 鎶ュ簾
-                //     bl = bl + item.num
-                // })
-                // if (produceData.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑�
-                //     produceData.value.forEach((item: any) => {  // 浜у嚭
-                //         cc = cc + item.num
-                //     })
-                // }
-                // feedingData.value.forEach((item: any) => {  // 鎶曟枡
-                //     tl = tl + item.num
-                // })
-                // data[0].wlnum = tl.toString() + info.value.umodel.name
-                // if (produceData.value.length > 0) {
-                //     data[1].wlnum = cc.toString() + info.value.umodel.name
-                // }
-                // data[2].wlnum = bl.toString() + info.value.umodel.name
-                // let total: number = info.value.planNum - (Number(cc) + Number(bl))
-                // data[data.length - 1].wlnum = (info.value.planNum - Number(cc) - Number(bl)).toString() + info.value.umodel.name
-                // if (total === 0) {
-                //     isSubmit.value = true
-                // } else {
-                //     isSubmit.value = false
-                // }
-
-                let arr: any = []
-                let tl = 0
-                let res = getGroupNum(feedingData.value)
-                for (let i in res) {
-                    let num = 0
-                    res[i].forEach((item: any) => {
-                        num += item.num
-                    })
-                    arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + res[i][0].procedureName, num: num })
-                }
-                feedingData.value.forEach((item: any) => {
-                    tl += item.num
-                })
-                statisticsData.value = [...statisticsData.value, ...arr]
-                statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName:  info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
-                statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName:  info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
-                statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: info.value.planNum - Number(produceFrom.qualified) - Number(produceFrom.undesirable) })
-                let total: number = info.value.planNum - (Number(produceFrom.qualified) + Number(produceFrom.undesirable))
-                if (total === 0) {
-                    isSubmit.value = true
-                } else {
-                    isSubmit.value = false
-                }
-                // if (Number(tl) <= info.value.planNum) {
-                //   let total: number = Number(tl) - Number(cc) - Number(bl)  // 鏄惁鏈変綑
-                //   data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name
-                //   if (total === 0) {
-                //     isSubmit.value = true
-                //   } else {
-                //     isSubmit.value = false
-                //   }
-                // } else {
-                //   isSubmit.value = false
-                // }
-                // statisticsData.value = data
-            } else if (info.value.hasBom === 1) {  // 鏈塨om鎯呭喌
-                console.log('鏈塨om')
-                // let cc: number = 0
-                // let bl: number = 0
-                // let newData: any = {}
-                // if (feedingData.value.length > 0) {  // 鎶曟枡
-                //     feedingData.value.forEach((e: any) => {
-                //         if (Object.keys(newData).indexOf('' + e.name) === -1) {
-                //             newData[e.name] = []
-                //         }
-                //         newData[e.name].push(e)
-                //     })
-                //     for (let key in newData) {
-                //         let obj = { name: '宸ュ崟鎶曟枡', gznum: newData[key].length, wlmc: key, wlnum: 0, num: 0 }
-                //         newData[key].forEach((item: any) => {
-                //             obj.wlnum = obj.wlnum + item.num
-                //             obj.num = item.num
-                //         })
-                //         obj.wlnum = obj.wlnum.toString() + newData[key][0].company as never
-                //         statisticsData.value.push(obj)
-                //     }
-                // }
-                // if (produceData.value.length > 0) {  // 浜у嚭
-                //     produceData.value.forEach((item: any) => {
-                //         cc = cc + item.num
-                //     })
-                //     statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: info.value.mmodel.name, wlnum: cc + info.value.umodel.name, num: cc })
-                // }
-                // if (undesirable.value.length > 0 || scrap.value.length > 0) {  // 涓嶈壇/鎶ュ簾
-                //     undesirable.value.forEach((item: any) => {
-                //         bl = bl + item.num
-                //     })
-                //     scrap.value.forEach((item: any) => {
-                //         bl = bl + item.num
-                //     })
-                //     statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', gznum: undesirable.value.length + scrap.value.length, wlmc: info.value.mmodel.name, wlnum: bl + info.value.umodel.name, num: bl })
-                // }
-                // let totaltl: number = 0
-                // let totalcc: number = 0
-                // let totalbl: number = 0
-                // statisticsData.value.forEach((item: any) => {
-                //     if (item.name === '宸ュ崟鎶曟枡') {
-                //         totaltl = totaltl + item.num
-                //     } else if (item.name === '宸ュ崟鍚堟牸浜у嚭') {
-                //         totalcc = totalcc + item.num
-                //     } else if (item.name === '宸ュ崟涓嶈壇浜у嚭') {
-                //         totalbl = totalbl + item.num
-                //     }
-                // })
-                // isSubmit.value = totalcc + totalbl <= info.value.planNum;
-                let arr: any = []
-                let tl = 0
-                let res = getGroupNum(feedingData.value)
-                for (let i in res) {
-                    let num = 0
-                    res[i].forEach((item: any) => {
-                        num += item.num
-                    })
-                    arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num })
-                }
-                feedingData.value.forEach((item:any) => {
-                    tl += item.num
-                })
-                statisticsData.value = [...statisticsData.value, ...arr]
-                statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName:  info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
-                statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName:  info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
-                isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum;
-            }
-        } else {
-            console.log('鎺ㄥ紡')
-            if (feedingData.value.length === 0) {
-                Toast.fail({ message: '鎶曟枡鏄庣粏涓嶈兘涓虹┖' })
-                return
-            }
-            if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) {
-                Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
-                return
-            }
-            statisticsData.value = []
-            if (info.value.hasBom === 0) {
-                console.log('鏃燽om')
-                // let data: any = [
-                //     { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 },
-                //     { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 },
-                //     { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 },
-                //     { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }
-                // ]
-                // if (undesirable.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
-                //     data[2].wlmc = undesirable.value[0].name
-                //     data[2].gznum = data[2].gznum + undesirable.value.length
-                // }
-                // if (scrap.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈変笉鑹�
-                //     data[2].wlmc = scrap.value[0].name
-                //     data[2].gznum = data[2].gznum + scrap.value.length
-                // }
-                // let tl = 0
-                // let cc = 0
-                // let bl = 0
-                // undesirable.value.forEach((item: any) => {  // 涓嶈壇
-                //     bl = bl + item.num
-                // })
-                // scrap.value.forEach((item: any) => {  // 鎶ュ簾
-                //     bl = bl + item.num
-                // })
-                // if (produceData.value.length > 0) {   // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑�
-                //     produceData.value.forEach((item: any) => {  // 浜у嚭
-                //         cc = cc + item.num
-                //     })
-                // }
-                // feedingData.value.forEach((item: any) => {  // 鎶曟枡
-                //     tl = tl + item.num
-                // })
-                // data[0].wlnum = tl.toString() + info.value.umodel.name
-                // if (produceData.value.length > 0) {
-                //     data[1].wlnum = cc.toString() + info.value.umodel.name
-                // }
-                // data[2].wlnum = bl.toString() + info.value.umodel.name
-                // if (Number(tl) <= info.value.planNum) {
-                //     let total: number = Number(tl) - Number(cc) - Number(bl)  // 鏄惁鏈変綑
-                //     data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name
-                //     if (total === 0) {
-                //         isSubmit.value = true
-                //     } else {
-                //         isSubmit.value = false
-                //     }
-                // } else {
-                //     isSubmit.value = false
-                // }
-                // statisticsData.value = data
-                let arr: any = []
-                let tl = 0
-                let res = getGroupNum(feedingData.value)
-                for (let i in res) {
-                    let num = 0
-                    res[i].forEach((item: any) => {
-                        num += item.num
-                    })
-                    arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + '-' + res[i][0].procedureName, num: num })
-                }
-                feedingData.value.forEach((item:any) => {
-                    tl += item.num
-                })
-                statisticsData.value = [...statisticsData.value, ...arr]
-                statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
-                statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
-                if (Number(tl) <= info.value.planNum) {
-                    let total: number = Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)  // 鏄惁鏈変綑
-                    statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: (Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)).toFixed(2) })
-                    if (total === 0) {
-                        isSubmit.value = true
-                    } else {
-                        isSubmit.value = false
-                    }
-                } else {
-                    isSubmit.value = false
-                }
-            } else if (info.value.hasBom === 1) {  // 鏈塨om鎯呭喌
-                console.log('鏈塨om')
-                let arr: any = []
-                let tl = 0
-                let res = getGroupNum(feedingData.value)
-                for (let i in res) {
-                    let num = 0
-                    res[i].forEach((item: any) => {
-                        num += item.num
-                    })
-                    arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num })
-                }
-                feedingData.value.forEach((item:any) => {
-                    tl += item.num
-                })
-                statisticsData.value = [...statisticsData.value, ...arr]
-                statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified })
-                statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable })
-                // isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum;
-                isSubmit.value = true
-            }
-        }
-        statistics.value = true
-    }
-
-    // 鏍规嵁鏌愪釜瀛楁杩涜鍒嗙粍
-    const getGroupNum = (arr: any) => {
-        let newArry: any = {};
-        for (let i = 0; i < arr.length; i++) {
-            if (newArry[arr[i].materialName]) {
-                newArry[arr[i].materialName].push(arr[i])
-            } else {
-                newArry[arr[i].materialName] = [arr[i]]
-            }
-        }
-        return newArry;
-    }
-
-    // 杩斿洖淇敼
-    const gofh = () => {
-        statistics.value = false
-    }
-
-    // 纭鎶ュ伐
-    const submitBG = () => {
-        // if (!from.duration || from.duration <= 0) {
-        //     return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖')
-        // }
-        let createUnqualifiedDTOList = from.defective.map((item: any) => {
-            return {
-                categoryId: item.id,
-                unQualifiedNum: item.num
-            }
-        })
-        let createWorkorderRecordDTO = {
-            workorderId: route.query.id,
-            duration: from.duration ? from.duration : 0,
-            qualifiedNum: produceFrom.qualified ? produceFrom.qualified : 0,
-            unQualifiedNum: produceFrom.undesirable ? produceFrom.undesirable : 0
-        }
-        // id: route.query.id
-        comfirmDoneStandard({
-            createUnqualifiedDTOList,
-            createWorkorderRecordDTO
-        }).then(res => {
-            if (res.code === 200) {
-                Toast.success({ message: '鎶ュ伐鎴愬姛', forbidClick: true, duration: 2000 })
-                setTimeout(() => {
-                    router.go(-2)
-                }, 2000)
-            }
-        })
-    }
-
-    onActivated(() => {
-        // $Bus.on('callback1', (res: any)=>{
-        //     console.log(res)
-        //     if (res == 1) {
-        //         djData.value = []
-        //         finished.value = false
-        //         page.page = 1
-        //         djData.value = []
-        //         pageDJs()
-        //     }
-        // })
-        // queryByIds()
-        // getOrocessRecords()
-        // getData()
-    })
-
-    onMounted(() => {
-        // $Bus.on('callback1', (res: any)=>{
-        //     if (res == 1) {
-        //         djData.value = []
-        //         finished.value = false
-        //         page.page = 1
-        //         djData.value = []
-        //         pageDJs()
-        //     }
-        // })
-        // pageDJs()
-
-        queryByIds()
-        getOrocessRecords()
-        getData()
-
-        // getOrocessRecordCC()
-    })
+  // getOrocessRecordCC()
+})
 </script>
 
 <style lang="scss" scoped>
-    .bg {
-        width: 100%;
-        /*height: 100%;*/
-        position: absolute;
-        background: #F7F7F7;
-        .bg_plan {
-            width: 100%;
-            // height: 98px;
-            padding: 30px;
-            box-sizing: border-box;
-            background: #FFFFFF;
-            margin-bottom: 40px;
-            display: flex;
-            align-items: center;
-            justify-content: space-between;
-            span {
-                font-size: 30px;
-                font-family: PingFangSC-Regular, PingFang SC;
-                font-weight: 400;
-                color: #222222;
-                b {
-                    color: red;
-                }
-            }
-            .bg_plan_nr {
-                display: flex;
-                flex-direction: column;
-                span {
-                    font-size: 24px;
-                    font-family: PingFangSC-Regular, PingFang SC;
-                    font-weight: 400;
-                    color: #666666;
-                    margin-top: 20px;
-                    &:first-child {
-                        font-size: 32px;
-                        font-family: PingFangSC-Medium, PingFang SC;
-                        font-weight: 500;
-                        color: #333333;
-                        margin-top: 0 !important;
-                    }
-                }
-            }
-            .bg_plan_label_val {
-                display: flex;
-                align-items: center;
-                span {
-                    font-size: 28px;
-                    font-family: PingFangSC-Regular, PingFang SC;
-                    font-weight: 400;
-                    color: #999999;
-                }
-                img {
-                    width: 12px;
-                    height: 24px;
-                    margin-left: 20px;
-                }
-            }
-        }
-        .details_cz {
-            width: 100%;
-            padding: 30px;
-            box-sizing: border-box;
-            display: flex;
-            align-items: center;
-            justify-content: space-between;
-            .details_cz_sdtl {
-                width: 330px;
-                height: 76px;
-                background: #FFFFFF;
-                border-radius: 36px;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                img {
-                    width: 28px;
-                    height: 28px;
-                    margin-right: 14px;
-                }
-                span {
-                    font-size: 26px;
-                    font-weight: 400;
-                    color: #222222;
-                }
-            }
-            .details_cz_smtl {
-                /*width: 330px;*/
-                flex: 1;
-                height: 76px;
-                background: $nav-color;
-                border-radius: 36px;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                img {
-                    width: 28px;
-                    height: 28px;
-                    margin-right: 14px;
-                }
-                span {
-                    font-size: 26px;
-                    font-weight: 400;
-                    color: #ffffff;
-                }
-            }
-        }
-        .bg_cate {
-            width: 100%;
-            height: 88px;
-            background: #FFFFFF;
-            margin-top: 20px;
-            display: flex;
-            align-items: center;
-            .active {
-                box-sizing: border-box;
-                color: #305ED5 !important;
-                border-bottom: 2PX solid #305ED5;
-            }
-            .bg_cate_item {
-                flex: 1;
-                height: 100%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                font-size: 30px;
-                font-family: PingFangSC-Regular, PingFang SC;
-                font-weight: 400;
-                color: #555555;
-            }
-        }
-        .bg_list {
-            width: 100%;
-            display: flex;
-            flex-direction: column;
-            margin-top: 30px;
-            .bg_list_item {
-                display: flex;
-                flex-direction: column;
-                margin-bottom: 40px;
-                .kong {
-                    text-align: center;
-                    padding: 30px 0;
-                    background: #ffffff;
-                    font-size: 25px;
-                    span {
-                        color: #474747;
-                    }
-                }
-                .bg_list_item_top {
-                    display: flex;
-                    align-items: center;
-                    justify-content: space-between;
-                    padding-left: 30px;
-                    padding-right: 30px;
-                    margin-bottom: 30px;
-                    .bg_list_item_top_left {
-                        display: flex;
-                        align-items: center;
-                        .left {
-                            margin-left: 12px;
-                            font-size: 28px;
-                        }
-                        .warning {
-                            width: 8px;
-                            height: 30px;
-                            border-radius: 2px;
-                            margin-right: 12px;
-                            background: $nav-stateColor5 !important;
-                        }
-                        .error {
-                            width: 8px;
-                            height: 30px;
-                            border-radius: 2px;
-                            margin-right: 12px;
-                            background: $nav-stateColor4 !important;
-                        }
-                        .bg_list_item_top_left_x {
-                            width: 8px;
-                            height: 30px;
-                            background: $nav-color;
-                            border-radius: 2px;
-                            margin-right: 12px;
-                        }
-                        span {
-                            font-size: 32px;
-                            font-weight: 500;
-                            color: #222222;
-                            display: flex;
-                            align-items: center;
-                        }
-                    }
-                    .bg_list_item_top_right {
-                        display: flex;
-                        align-items: center;
-                        img {
-                            width: 28px;
-                            height: 28px;
-                            margin-right: 12px;
-                        }
-                        span {
-                            font-size: 28px;
-                            font-weight: 400;
-                            color: $nav-color;
-                        }
-                    }
-                }
-                .bg_list_item_h {
-                    width: 100%;
-                    padding: 0 30px;
-                    box-sizing: border-box;
-                    background: white;
-                    .bg_list_item_num {
-                        width: 100%;
-                        min-height: 98px;
-                        background: white;
-                        display: flex;
-                        justify-content: center;
-                        align-items: center;
-                        border-bottom: 1PX solid #E5E5E5;
-                        &:last-child {
-                            border: none !important;
-                        }
-                        .kong {
-                            text-align: center;
-                            font-size: 25px;
-                            padding: 30px 0;
-                            background: #ffffff;
-                        }
-                        .bg_list_item_num_item {
-                            width: 100%;
-                            height: 100%;
-                            display: flex;
-                            align-items: center;
-                            // height: 118px;
-                            padding: 15px 0;
-                            box-sizing: border-box;
-                            justify-content: space-between;
-                            border-bottom: 1px solid #E5E5E5;
-                            &:last-child {
-                                border: none;
-                            }
-                            .bg_list_item_num_item_list {
-                                display: flex;
-                                align-items: center;
-                                .active {
-                                    background: #305ED5 !important;
-                                    color: #FFFFFF !important;
-                                }
-                                .bg_list_item_num_item_list_item {
-                                    width: 116px;
-                                    height: 62px;
-                                    line-height: 62px;
-                                    text-align: center;
-                                    background: #F2F2F2;
-                                    border-radius: 8px;
-                                    font-size: 26px;
-                                    font-family: PingFangSC-Regular, PingFang SC;
-                                    font-weight: 400;
-                                    color: #333333;
-                                    margin-right: 20px;
-                                    &:last-child {
-                                        margin: 0 !important;
-                                    }
-                                }
-                            }
-                            .bg_list_item_num_item_wl {
-                                flex-shrink: 0;
-                                display: flex;
-                                flex-direction: column;
-                                span {
-                                    font-size: 34px;
-                                    color: #222222;
-                                }
-                                .bg_list_item_num_item_wl_lx {
-                                    margin-top: 10px;
-                                    span {
-                                        color: #222222;
-                                        font-size: 28px;
-                                    }
-                                }
-                            }
-                            .warning {
-                                color: $nav-stateColor5 !important;
-                            }
-                            .err {
-                                color: $nav-stateColor4 !important;
-                            }
-                            img {
-                                width: 12px;
-                                height: 24px;
-                                margin-left: 20px;
-                            }
-                            span {
-                                flex-shrink: 0;
-                                overflow: hidden;
-                                text-overflow: ellipsis;
-                                white-space: nowrap;
-                                b {
-                                    font-size: 30px;
-                                    color: red;
-                                    margin-right: 5px;
-                                }
-                                .warning {
-                                    color: $nav-stateColor5 !important;
-                                    margin-right: 5px;
-                                }
-                                .err {
-                                    color: $nav-stateColor4 !important;
-                                    margin-right: 5px;
-                                }
-                                &:nth-child(1) {
-                                    font-size: 30px;
-                                    font-weight: 400;
-                                    color: #222222;
-                                }
-                                &:nth-child(2) {
-                                    font-size: 28px;
-                                    font-weight: 400;
-                                    color: #333333;
-                                    flex-shrink: 0;
-                                }
-                            }
-                            .bg_list_item_num_item_sr {
-                                flex: 1;
-                                display: flex;
-                                align-items: center;
-                                justify-content: flex-end;
-                                .color1 {
-                                    font-size: 28px;
-                                    font-family: PingFangSC-Regular, PingFang SC;
-                                    font-weight: 400;
-                                    color: #333333;
-                                }
-                                input::-webkit-input-placeholder {
-                                    font-size: 28px;
-                                }
-                                input {
-                                    text-align: right;
-                                    width: 180px;
-                                    height: 60px;
-                                    border-radius: 8px;
-                                    border: 1PX solid #E5E5E5;
-                                    margin-right: 20px;
-                                    font-size: 28px;
-                                    font-weight: 400;
-                                    color: #333333;
-                                    padding: 0 30px
-                                }
-                                .wulll {
-                                    width: 400px;
-                                    text-align: right;
-                                    overflow: hidden;
-                                    white-space: nowrap;
-                                    text-overflow: ellipsis;
-                                }
-                                span {
-                                    font-size: 28px;
-                                    font-family: PingFangSC-Regular, PingFang SC;
-                                    font-weight: 400;
-                                    color: #999999;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        .details_dj {
-            display: flex;
-            flex-direction: column;
-            .details_dj_title {
-                width: 100%;
-                display: flex;
-                align-items: center;
-                justify-content: space-between;
-                padding: 0 30px 30px 30px;
-                box-sizing: border-box;
-                .details_dj_title_left {
-                    display: flex;
-                    align-items: center;
-                    .details_x {
-                        width: 8px;
-                        height: 30px;
-                        background: $nav-color;
-                        border-radius: 2px;
-                        margin-right: 12px;
-                    }
-                    span {
-                        font-size: 32px;
-                        font-weight: 500;
-                        color: #222222;
-                    }
-                }
-                .details_dj_title_right {
-                    display: flex;
-                    align-items: center;
-                    img {
-                        width: 28px;
-                        height: 28px;
-                        margin-right: 12px;
-                    }
-                    span {
-                        font-size: 28px;
-                        font-weight: 400;
-                        color: $nav-color;
-                    }
-                }
-            }
-            .details_dj_list {
-                width: 100%;
-                /*padding: 30px;*/
-                box-sizing: border-box;
-                background: #ffffff;
-                display: flex;
-                flex-direction: column;
-                .details_dj_list_item {
-                    display: flex;
-                    flex-direction: column;
-                    border-bottom: 1px solid #E5E5E5;
-                    padding: 30px;
-                    /*margin: 30px;*/
-                    /*padding-bottom: 30px;*/
-                    /*margin-bottom: 30px !important;*/
-                    span {
-                        &:nth-child(1) {
-                            font-size: 28px;
-                            font-weight: 400;
-                            color: #222222;
-                        }
-                        &:nth-child(2) {
-                            font-size: 24px;
-                            font-weight: 400;
-                            color: #999999;
-                            margin-top: 24px;
-                        }
-                    }
-                }
-            }
-        }
-        .bh_zw {
-            height: 160px;
-        }
-        .bg_footer {
-            position: fixed;
-            bottom: 0;
-            left: 0;
-            width: 100%;
-            padding: 0 30px 60px 30px;
-            box-sizing: border-box;
-            .bg_footer_submit1 {
-                width: 690px;
-                height: 76px;
-                background: #FFFFFF;
-                border-radius: 36px;
-                border: 1px solid #E5E5E5;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                img {
-                    width: 28px;
-                    height: 28px;
-                    margin-right: 12px;
-                }
-                span {
-                    font-size: 26px;
-                    font-family: PingFangSC-Regular, PingFang SC;
-                    font-weight: 400;
-                    color: #305ED5;
-                }
-            }
-            .bg_footer_submit {
-                width: 690px;
-                height: 88px;
-                background: $nav-color;
-                box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08);
-                border-radius: 8px;
-                font-size: 30px;
-                font-weight: 500;
-                color: #FFFFFF;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
-        }
-        .tg {
-            width: 100%;
-            height: 800px;
-            padding: 30px;
-            box-sizing: border-box;
-            .tg_header {
-                width: 100%;
-                height: 45px;
-                text-align: center;
-                line-height: 45px;
-                font-size: 30px;
-                font-weight: 500;
-                color: #222222;
-            }
-            .tg_table {
-                width: 100%;
-                margin-top: 40px;
-                .tg_table_header {
-                    width: 100%;
-                    height: 72px;
-                    background: #EFF2FC;
-                    display: flex;
-                    align-items: center;
-                    .tg_table_header_item {
-                        flex: 1;
-                        font-size: 26px;
-                        font-weight: 500;
-                        color: #333333;
-                        display: flex;
-                        align-items: center;
-                        justify-content: center;
-                    }
-                }
-            }
-            .nr {
-                width: 100%;
-                max-height: calc(100% - 133px);
-                overflow-x: scroll;
-                .tg_table_nr {
-                    width: 100%;
-                    padding: 24px 10px;
-                    box-sizing: border-box;
-                    display: flex;
-                    align-items: center;
-                    background: white;
-                    box-shadow: inset 0px -2px 0px 0px #E5E5E5;
-                    .tg_table_nr_item {
-                        flex: 1;
-                        font-size: 26px;
-                        font-weight: 500;
-                        color: #333333;
-                        display: flex;
-                        align-items: center;
-                        justify-content: center;
-                    }
-                    .tg_table_nr_item1 {
-                        flex: 1;
-                        font-size: 26px;
-                        font-weight: 500;
-                        color: #333333;
-                        display: flex;
-                        align-items: center;
-                        justify-content: center;
-                    }
-                }
-            }
-        }
-        .tg_footer {
-            width: calc(100% - 60px);
-            position: fixed;
-            bottom: 0;
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            box-sizing: border-box;
-            padding-bottom: 40px;
-            .tg_footer_fh {
-                width: 100%;
-                height: 88px;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                background: rgba(66, 117, 252, 0.05);
-                border-radius: 8px;
-                border: 1PX solid #4275FC;
-                font-size: 32px;
-                font-weight: 500;
-                color: $nav-color;
-            }
-            .tg_footer_qr {
-                width: 100%;
-                height: 88px;
-                border: none;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                background: $nav-color;
-                border-radius: 8px;
-                font-size: 32px;
-                font-weight: 500;
-                color: #FFFFFF;
-            }
-        }
-        .bl {
-            width: 100%;
-            height: 800px;
-            padding: 30px;
-            box-sizing: border-box;
-            display: flex;
-            flex-direction: column;
-            .bl_head {
-                width: 100%;
-                height: 50px;
-                display: flex;
-                align-items: center;
-                justify-content: space-between;
-                span {
-                    font-size: 28px;
-                    color: #222222;
-                    &:nth-child(2) {
-                        font-size: 32px !important;
-                    }
-                }
-                img {
-                    width: 28px;
-                    height: 28px;
-                }
-            }
-            .bl_footer {
-                width: 100%;
-                height: 88px;
-                line-height: 88px;
-                text-align: center;
-                background: #305ED5;
-                border-radius: 8px;
-                font-size: 32px;
-                font-family: PingFangSC-Medium, PingFang SC;
-                font-weight: 500;
-                color: #FFFFFF;
-                margin-top: 30px;
-            }
-            .bl_list {
-                width: 100%;
-                height: calc(100% - 168px);
-                overflow-y: scroll;
-                margin-top: 30px;
-                .bl_list_item {
-                    width: 100%;
-                    height: 96px;
-                    display: flex;
-                    align-items: center;
-                    justify-content: space-between;
-                    border-bottom: 1PX solid #E5E5E5;
-                    &:last-child {
-                        border: none !important;
-                    }
-                    .bl_list_item_left {
-                        flex: 1;
-                        display: flex;
-                        align-items: center;
-                        input {
-                            width: 30px;
-                            height: 30px;
-                            border: 1PX solid #CCCCCC;
-                            margin: 0 !important;
-                        }
-                        span {
-                            font-size: 30px;
-                            color: #222222;
-                            margin-left: 10px;
-                        }
-                    }
-                    .bl_list_item_right {
-                        flex: 1;
-                        height: 50px;
-                        text-align: right;
-                        input {
-                            padding-left: 5px;
-                            width: 160px;
-                            height: 100%;
-                            padding: 0 30px;
-                            box-sizing: border-box;
-                            text-align: right;
-                            font-size: 28px;
-                            color: #333333;
-                            border-radius: 10px;
-                            border: 1PX solid #CCCCCC;
-                            &::-webkit-input-placeholder {
-                                font-size: 28px;
-                                font-family: PingFangSC-Regular, PingFang SC;
-                                font-weight: 400;
-                                color: #999999;
-                            }
-                        }
-                    }
-                }
-            }
-        }
+.bg {
+  width: 100%;
+  /*height: 100%;*/
+  position: absolute;
+  background: #F7F7F7;
+
+  .bg_plan {
+    width: 100%;
+    // height: 98px;
+    padding: 30px;
+    box-sizing: border-box;
+    background: #FFFFFF;
+    margin-bottom: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+    span {
+      font-size: 30px;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-weight: 400;
+      color: #222222;
+
+      b {
+        color: red;
+      }
     }
-</style>
+
+    .bg_plan_nr {
+      display: flex;
+      flex-direction: column;
+
+      span {
+        font-size: 24px;
+        font-family: PingFangSC-Regular, PingFang SC;
+        font-weight: 400;
+        color: #666666;
+        margin-top: 20px;
+
+        &:first-child {
+          font-size: 32px;
+          font-family: PingFangSC-Medium, PingFang SC;
+          font-weight: 500;
+          color: #333333;
+          margin-top: 0 !important;
+        }
+      }
+    }
+
+    .bg_plan_label_val {
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 28px;
+        font-family: PingFangSC-Regular, PingFang SC;
+        font-weight: 400;
+        color: #999999;
+      }
+
+      img {
+        width: 12px;
+        height: 24px;
+        margin-left: 20px;
+      }
+    }
+  }
+
+  .details_cz {
+    width: 100%;
+    padding: 30px;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+    .details_cz_sdtl {
+      width: 330px;
+      height: 76px;
+      background: #FFFFFF;
+      border-radius: 36px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+
+      img {
+        width: 28px;
+        height: 28px;
+        margin-right: 14px;
+      }
+
+      span {
+        font-size: 26px;
+        font-weight: 400;
+        color: #222222;
+      }
+    }
+
+    .details_cz_smtl {
+      /*width: 330px;*/
+      flex: 1;
+      height: 76px;
+      background: $nav-color;
+      border-radius: 36px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+
+      img {
+        width: 28px;
+        height: 28px;
+        margin-right: 14px;
+      }
+
+      span {
+        font-size: 26px;
+        font-weight: 400;
+        color: #ffffff;
+      }
+    }
+  }
+
+  .bg_cate {
+    width: 100%;
+    height: 88px;
+    background: #FFFFFF;
+    margin-top: 20px;
+    display: flex;
+    align-items: center;
+
+    .active {
+      box-sizing: border-box;
+      color: #305ED5 !important;
+      border-bottom: 2PX solid #305ED5;
+    }
+
+    .bg_cate_item {
+      flex: 1;
+      height: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-size: 30px;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-weight: 400;
+      color: #555555;
+    }
+  }
+
+  .bg_list {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    margin-top: 30px;
+
+    .bg_list_item {
+      display: flex;
+      flex-direction: column;
+      margin-bottom: 40px;
+
+      .kong {
+        text-align: center;
+        padding: 30px 0;
+        background: #ffffff;
+        font-size: 25px;
+
+        span {
+          color: #474747;
+        }
+      }
+
+      .bg_list_item_top {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        padding-left: 30px;
+        padding-right: 30px;
+        margin-bottom: 30px;
+
+        .bg_list_item_top_left {
+          display: flex;
+          align-items: center;
+
+          .left {
+            margin-left: 12px;
+            font-size: 28px;
+          }
+
+          .warning {
+            width: 8px;
+            height: 30px;
+            border-radius: 2px;
+            margin-right: 12px;
+            background: $nav-stateColor5 !important;
+          }
+
+          .error {
+            width: 8px;
+            height: 30px;
+            border-radius: 2px;
+            margin-right: 12px;
+            background: $nav-stateColor4 !important;
+          }
+
+          .bg_list_item_top_left_x {
+            width: 8px;
+            height: 30px;
+            background: $nav-color;
+            border-radius: 2px;
+            margin-right: 12px;
+          }
+
+          span {
+            font-size: 32px;
+            font-weight: 500;
+            color: #222222;
+            display: flex;
+            align-items: center;
+          }
+        }
+
+        .bg_list_item_top_right {
+          display: flex;
+          align-items: center;
+
+          img {
+            width: 28px;
+            height: 28px;
+            margin-right: 12px;
+          }
+
+          span {
+            font-size: 28px;
+            font-weight: 400;
+            color: $nav-color;
+          }
+        }
+      }
+
+      .bg_list_item_h {
+        width: 100%;
+        padding: 0 30px;
+        box-sizing: border-box;
+        background: white;
+
+        .bg_list_item_num {
+          width: 100%;
+          min-height: 98px;
+          background: white;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          border-bottom: 1PX solid #E5E5E5;
+
+          &:last-child {
+            border: none !important;
+          }
+
+          .kong {
+            text-align: center;
+            font-size: 25px;
+            padding: 30px 0;
+            background: #ffffff;
+          }
+
+          .bg_list_item_num_item {
+            width: 100%;
+            height: 100%;
+            display: flex;
+            align-items: center;
+            // height: 118px;
+            padding: 15px 0;
+            box-sizing: border-box;
+            justify-content: space-between;
+            border-bottom: 1px solid #E5E5E5;
+
+            &:last-child {
+              border: none;
+            }
+
+            .bg_list_item_num_item_list {
+              display: flex;
+              align-items: center;
+
+              .active {
+                background: #305ED5 !important;
+                color: #FFFFFF !important;
+              }
+
+              .bg_list_item_num_item_list_item {
+                width: 116px;
+                height: 62px;
+                line-height: 62px;
+                text-align: center;
+                background: #F2F2F2;
+                border-radius: 8px;
+                font-size: 26px;
+                font-family: PingFangSC-Regular, PingFang SC;
+                font-weight: 400;
+                color: #333333;
+                margin-right: 20px;
+
+                &:last-child {
+                  margin: 0 !important;
+                }
+              }
+            }
+
+            .bg_list_item_num_item_wl {
+              flex-shrink: 0;
+              display: flex;
+              flex-direction: column;
+
+              span {
+                font-size: 34px;
+                color: #222222;
+              }
+
+              .bg_list_item_num_item_wl_lx {
+                margin-top: 10px;
+
+                span {
+                  color: #222222;
+                  font-size: 28px;
+                }
+              }
+            }
+
+            .warning {
+              color: $nav-stateColor5 !important;
+            }
+
+            .err {
+              color: $nav-stateColor4 !important;
+            }
+
+            img {
+              width: 12px;
+              height: 24px;
+              margin-left: 20px;
+            }
+
+            span {
+              flex-shrink: 0;
+              overflow: hidden;
+              text-overflow: ellipsis;
+              white-space: nowrap;
+
+              b {
+                font-size: 30px;
+                color: red;
+                margin-right: 5px;
+              }
+
+              .warning {
+                color: $nav-stateColor5 !important;
+                margin-right: 5px;
+              }
+
+              .err {
+                color: $nav-stateColor4 !important;
+                margin-right: 5px;
+              }
+
+              &:nth-child(1) {
+                font-size: 30px;
+                font-weight: 400;
+                color: #222222;
+              }
+
+              &:nth-child(2) {
+                font-size: 28px;
+                font-weight: 400;
+                color: #333333;
+                flex-shrink: 0;
+              }
+            }
+
+            .bg_list_item_num_item_sr {
+              flex: 1;
+              display: flex;
+              align-items: center;
+              justify-content: flex-end;
+
+              .color1 {
+                font-size: 28px;
+                font-family: PingFangSC-Regular, PingFang SC;
+                font-weight: 400;
+                color: #333333;
+              }
+
+              input::-webkit-input-placeholder {
+                font-size: 28px;
+              }
+
+              input {
+                text-align: right;
+                width: 180px;
+                height: 60px;
+                border-radius: 8px;
+                border: 1PX solid #E5E5E5;
+                margin-right: 20px;
+                font-size: 28px;
+                font-weight: 400;
+                color: #333333;
+                padding: 0 30px
+              }
+
+              .wulll {
+                width: 400px;
+                text-align: right;
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+              }
+
+              span {
+                font-size: 28px;
+                font-family: PingFangSC-Regular, PingFang SC;
+                font-weight: 400;
+                color: #999999;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  .details_dj {
+    display: flex;
+    flex-direction: column;
+
+    .details_dj_title {
+      width: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0 30px 30px 30px;
+      box-sizing: border-box;
+
+      .details_dj_title_left {
+        display: flex;
+        align-items: center;
+
+        .details_x {
+          width: 8px;
+          height: 30px;
+          background: $nav-color;
+          border-radius: 2px;
+          margin-right: 12px;
+        }
+
+        span {
+          font-size: 32px;
+          font-weight: 500;
+          color: #222222;
+        }
+      }
+
+      .details_dj_title_right {
+        display: flex;
+        align-items: center;
+
+        img {
+          width: 28px;
+          height: 28px;
+          margin-right: 12px;
+        }
+
+        span {
+          font-size: 28px;
+          font-weight: 400;
+          color: $nav-color;
+        }
+      }
+    }
+
+    .details_dj_list {
+      width: 100%;
+      /*padding: 30px;*/
+      box-sizing: border-box;
+      background: #ffffff;
+      display: flex;
+      flex-direction: column;
+
+      .details_dj_list_item {
+        display: flex;
+        flex-direction: column;
+        border-bottom: 1px solid #E5E5E5;
+        padding: 30px;
+
+        /*margin: 30px;*/
+        /*padding-bottom: 30px;*/
+        /*margin-bottom: 30px !important;*/
+        span {
+          &:nth-child(1) {
+            font-size: 28px;
+            font-weight: 400;
+            color: #222222;
+          }
+
+          &:nth-child(2) {
+            font-size: 24px;
+            font-weight: 400;
+            color: #999999;
+            margin-top: 24px;
+          }
+        }
+      }
+    }
+  }
+
+  .bh_zw {
+    height: 160px;
+  }
+
+  .bg_footer {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    padding: 0 30px 60px 30px;
+    box-sizing: border-box;
+
+    .bg_footer_submit1 {
+      width: 690px;
+      height: 76px;
+      background: #FFFFFF;
+      border-radius: 36px;
+      border: 1px solid #E5E5E5;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+
+      img {
+        width: 28px;
+        height: 28px;
+        margin-right: 12px;
+      }
+
+      span {
+        font-size: 26px;
+        font-family: PingFangSC-Regular, PingFang SC;
+        font-weight: 400;
+        color: #305ED5;
+      }
+    }
+
+    .bg_footer_submit {
+      width: 690px;
+      height: 88px;
+      background: $nav-color;
+      box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08);
+      border-radius: 8px;
+      font-size: 30px;
+      font-weight: 500;
+      color: #FFFFFF;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+  }
+
+  .tg {
+    width: 100%;
+    height: 800px;
+    padding: 30px;
+    box-sizing: border-box;
+
+    .tg_header {
+      width: 100%;
+      height: 45px;
+      text-align: center;
+      line-height: 45px;
+      font-size: 30px;
+      font-weight: 500;
+      color: #222222;
+    }
+
+    .tg_table {
+      width: 100%;
+      margin-top: 40px;
+
+      .tg_table_header {
+        width: 100%;
+        height: 72px;
+        background: #EFF2FC;
+        display: flex;
+        align-items: center;
+
+        .tg_table_header_item {
+          flex: 1;
+          font-size: 26px;
+          font-weight: 500;
+          color: #333333;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
+    }
+
+    .nr {
+      width: 100%;
+      max-height: calc(100% - 133px);
+      overflow-x: scroll;
+
+      .tg_table_nr {
+        width: 100%;
+        padding: 24px 10px;
+        box-sizing: border-box;
+        display: flex;
+        align-items: center;
+        background: white;
+        box-shadow: inset 0px -2px 0px 0px #E5E5E5;
+
+        .tg_table_nr_item {
+          flex: 1;
+          font-size: 26px;
+          font-weight: 500;
+          color: #333333;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+
+        .tg_table_nr_item1 {
+          flex: 1;
+          font-size: 26px;
+          font-weight: 500;
+          color: #333333;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
+    }
+  }
+
+  .tg_footer {
+    width: calc(100% - 60px);
+    position: fixed;
+    bottom: 0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    box-sizing: border-box;
+    padding-bottom: 40px;
+
+    .tg_footer_fh {
+      width: 100%;
+      height: 88px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      background: rgba(66, 117, 252, 0.05);
+      border-radius: 8px;
+      border: 1PX solid #4275FC;
+      font-size: 32px;
+      font-weight: 500;
+      color: $nav-color;
+    }
+
+    .tg_footer_qr {
+      width: 100%;
+      height: 88px;
+      border: none;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      background: $nav-color;
+      border-radius: 8px;
+      font-size: 32px;
+      font-weight: 500;
+      color: #FFFFFF;
+    }
+  }
+
+  .bl {
+    width: 100%;
+    height: 800px;
+    padding: 30px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+
+    .bl_head {
+      width: 100%;
+      height: 50px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+
+      span {
+        font-size: 28px;
+        color: #222222;
+
+        &:nth-child(2) {
+          font-size: 32px !important;
+        }
+      }
+
+      img {
+        width: 28px;
+        height: 28px;
+      }
+    }
+
+    .bl_footer {
+      width: 100%;
+      height: 88px;
+      line-height: 88px;
+      text-align: center;
+      background: #305ED5;
+      border-radius: 8px;
+      font-size: 32px;
+      font-family: PingFangSC-Medium, PingFang SC;
+      font-weight: 500;
+      color: #FFFFFF;
+      margin-top: 30px;
+    }
+
+    .bl_list {
+      width: 100%;
+      height: calc(100% - 168px);
+      overflow-y: scroll;
+      margin-top: 30px;
+
+      .bl_list_item {
+        width: 100%;
+        height: 96px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        border-bottom: 1PX solid #E5E5E5;
+
+        &:last-child {
+          border: none !important;
+        }
+
+        .bl_list_item_left {
+          flex: 1;
+          display: flex;
+          align-items: center;
+
+          input {
+            width: 30px;
+            height: 30px;
+            border: 1PX solid #CCCCCC;
+            margin: 0 !important;
+          }
+
+          span {
+            font-size: 30px;
+            color: #222222;
+            margin-left: 10px;
+          }
+        }
+
+        .bl_list_item_right {
+          flex: 1;
+          height: 50px;
+          text-align: right;
+
+          input {
+            padding-left: 5px;
+            width: 160px;
+            height: 100%;
+            padding: 0 30px;
+            box-sizing: border-box;
+            text-align: right;
+            font-size: 28px;
+            color: #333333;
+            border-radius: 10px;
+            border: 1PX solid #CCCCCC;
+
+            &::-webkit-input-placeholder {
+              font-size: 28px;
+              font-family: PingFangSC-Regular, PingFang SC;
+              font-weight: 400;
+              color: #999999;
+            }
+          }
+        }
+      }
+    }
+  }
+}</style>
diff --git a/minipro_standard/App.vue b/minipro_standard/App.vue
index d52fd35..def0339 100644
--- a/minipro_standard/App.vue
+++ b/minipro_standard/App.vue
@@ -15,6 +15,7 @@
 	/*姣忎釜椤甸潰鍏叡css */
 	@import "@/uni_modules/uview-ui/index.scss";
 	@import "common/css/lib.css";
+	@import "common/css/common.css";
 	// page {
 	// 	background-color: #F3F6F9 !important;
 	// }
diff --git a/minipro_standard/common/config.js b/minipro_standard/common/config.js
index 15d4a4d..1ee7ea5 100644
--- a/minipro_standard/common/config.js
+++ b/minipro_standard/common/config.js
@@ -1,5 +1,11 @@
 module.exports = {
     // baseUrl: 'http://106.14.20.42/test_hfznzz/',
     // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
-    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api/'
+    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api/',
+		phoneRegular: /^1[3456789]\d{9}$/,
+		mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
+		positiveInteger: /^[0-9]*[1-9][0-9]*$/,
+		decimal: /^0$|^[1-9]\d{0,15}$|^[1-9]\d{0,15}\.{1}\d{1,4}$|^0\.{1}\d{1,4}$/g,
+		positiveIntegerDecimal: /^([1-9][0-9]*|0)(\.[0-9]?[1-9][1-9][1-9])?$/,
+		number: /^\d+(?:\.\d{1,4})?$/
 }
diff --git a/minipro_standard/common/css/common.css b/minipro_standard/common/css/common.css
new file mode 100644
index 0000000..b9945ec
--- /dev/null
+++ b/minipro_standard/common/css/common.css
@@ -0,0 +1,8 @@
+.tips-label {
+	background: rgba(220,26,26,0.06);
+	padding: 18rpx 30rpx;
+	font-size: 26rpx;
+	font-weight: 400;
+	color: #DC1A1A;
+	line-height: 36rpx;
+}
\ No newline at end of file
diff --git a/minipro_standard/common/css/lib.css b/minipro_standard/common/css/lib.css
index 9997612..6e1fac3 100644
--- a/minipro_standard/common/css/lib.css
+++ b/minipro_standard/common/css/lib.css
@@ -13,7 +13,7 @@
 .wp{ width: 94%; margin: 0 auto;}
 .w30{ width: 30%;}.w40{ width: 40%;}.w47{ width: 47%;}.w48{ width: 48%;}.w49{ width: 49%;}.w50{ width: 50%;}.w60{ width: 60%;}.w80{ width: 80%;}.w90{ width: 90%;}
 
-.bg_m{background-color: #F3F6F9;}.bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}
+.bg_m{background-color: #305ED5;}.bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}
 
 .rd4{border-radius: 4rpx;}.rd5{border-radius: 5rpx;}.rd6{border-radius: 6rpx;}.rd8{border-radius: 8rpx;}.rd10{border-radius: 10rpx;}.rd15{border-radius: 15rpx;}.rd20{border-radius: 20rpx;}.rd30{border-radius: 30rpx;}.rd40{border-radius: 40rpx;}.rd50{border-radius: 50rpx;}.rd60{border-radius: 60rpx;}.rd70{border-radius: 70rpx;}.rd80{border-radius: 80rpx;}.rd90{border-radius: 90rpx;}.rd100{border-radius: 100rpx;}.rd120{border-radius: 120rpx;}.rdhalf{  border-radius:50%}
 
@@ -44,7 +44,8 @@
 .img16{ width: 16rpx; height: 16rpx;}
 .img20{ width: 20rpx; height: 20rpx;}
 .img24{ width: 24rpx; height: 24rpx;}
-.img26{ width: 26rpx; height: 26rpx;}
+.img26{ width: 26rpx; height: 26rpx;}
+.img28{ width: 28rpx; height: 28rpx;}
 .img30{ width: 30rpx; height: 30rpx;}
 .img32{ width: 32rpx; height: 32rpx;}
 .img36{ width: 36rpx; height: 36rpx;}
@@ -71,7 +72,8 @@
 .bcover{  background-size: cover; background-position: center center; background-repeat:  no-repeat;}
 .bfull{ background-size: 100% 100%; background-position: center center; background-repeat:  no-repeat;}
 
-.b{ font-weight: bold;}
+.b{ font-weight: bold;}
+.n{ font-weight: 400;}
 .ibm{ display: inline-block; vertical-align: middle;}
 .bbox{ box-sizing: border-box;}
 .rauto{ margin-left:auto; margin-right:auto}
@@ -116,15 +118,16 @@
 .rp { position: relative; }
 .ap { position: absolute; }
 
-.orange{ color: #EA531B;}
-.green{ color: #65C35D;}
-.blue{ color: #3C77DA;}
-.red{ color: #f00;}
-.white{ color: #fff;}
+.orange{ color: #EA531B !important;}
+.green{ color: #65C35D !important;}
+.blue{ color: #3C77DA !important;}
+.red{ color: #f00 !important;}
+.white{ color: #fff !important;}
 
-.mc{color:#216EEE}
-.wc{color:#F98107}
+.mc{color:#216EEE !important;}
+.wc{color:#F98107 !important;}
 
+.cm {color: #305ED5}
 .c1{color: #111}.c2{color: #222}.c3{ color: #333;}.c6{ color: #666;}.cc{ color: #ccc;}.cf{ color: #fff;}
 /* /deep/ .uicon-close .u-icon--right{ position: absolute; right: 30rpx; top: 30rpx; z-index: 999;} */
 .popCloseBtn{ position: absolute; width:50rpx; height:50rpx; right: 20rpx; top: 20rpx;}
diff --git a/minipro_standard/components/selectMaterial.vue b/minipro_standard/components/selectMaterial.vue
new file mode 100644
index 0000000..18d3d35
--- /dev/null
+++ b/minipro_standard/components/selectMaterial.vue
@@ -0,0 +1,61 @@
+<template>
+	<u-popup :show="show" :round="10" closeable @close="show=false">
+		<view class="material-content">
+			<u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
+				<u-list-item v-for="(item, index) in list" :key="index">
+					<view class="" style="height: 20px;">{{item}}</view>
+				</u-list-item>
+			</u-list>
+		</view>
+	</u-popup>
+</template>
+
+<script>
+	export default {
+		name: "selectMaterial",
+		data() {
+			return {
+				show: false,
+				pages: {
+					size: 10,
+					index: 1,
+					total: 0
+				},
+				list: [
+					1,2,3,4,5,6,7,8
+				]
+			};
+		},
+		methods: {
+			open(target) {
+				this.show = true
+				this.workorderId = target.workorderId
+				this.deviceId = target.deviceId
+				this.list = []
+				this.pages = {
+					size: 10,
+					index: 1,
+					total: 0
+				}
+				this.loadData()
+			},
+			loadData() {
+				this.list = [1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6]
+			},
+			scrolltoupper() {
+				console.log('scrolltoupper');
+				this.loadData()
+			},
+			scrolltolower() {
+				console.log('scrolltolower');
+				this.loadData()
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.material-content {
+		height: 800rpx;
+	}
+</style>
diff --git a/minipro_standard/components/workOrderInfo.vue b/minipro_standard/components/workOrderInfo.vue
new file mode 100644
index 0000000..67548d6
--- /dev/null
+++ b/minipro_standard/components/workOrderInfo.vue
@@ -0,0 +1,82 @@
+<template>
+	<view class="p30 bg_w order-info">
+		<view class="bX">
+			<view class="cY">
+				<view class="mr10 b">澧欎綋鐮栵綔鐮佸灈</view>
+				<u-tag size="mini" bgColor="#03AF76" text="姝e父"></u-tag>
+			</view>
+			<view class="status" :class="orederMessage.status==0?'wc':orederMessage.status==1?'green':orederMessage.status==3?'blue':orederMessage.status==7?'green':'c6'">{{ stausToStr(1) }}</view>
+		</view>
+		<view class="f24 c6 mt20">宸ュ崟缂栧彿锛歿{ orederMessage.code || 'GD202111240001' }}</view>
+		<view class="mt20 bg_f7 ptb20 plr30 n">
+			<view class="c2 mb20">
+				<span class="c6">鐗╂枡缂栫爜锛�</span>
+				{{ orederMessage.mmodel ? orederMessage.mmodel.code : '03K-0K-0-1' }}
+			</view>
+			<view class="c2 mb20">
+				<span class="c6">璁″垝寮�宸ワ細</span>
+				{{ orederMessage.planDate || '2022/01/11' }}
+			</view>
+			<view class="c2 mb20">
+				<span class="c6">鐢熶骇鎵规锛�</span>
+				{{ orederMessage.batch || 'PH20221023001' }}
+			</view>
+			<view class="c2 mb20">
+				<span class="c6">璁″垝鏁伴噺锛�</span>
+				{{ orederMessage.planNum || '1000' }}{{ orederMessage.umodel ? orederMessage.umodel.name : 'A1' }}
+			</view>
+			<view class="c2 mb20">
+				<span class="c6">鐢熶骇璁惧锛�</span>
+				{{ orederMessage.pgmodel ? `${orederMessage.pgmodel.code} - ${orederMessage.pgmodel.name}` : 'A1' }}
+			</view>
+			<view class="c2 flex">
+				<view class="c6" style="flex-shrink: 0;">鐢熶骇浜哄憳锛�</view>
+				<view class="flex1">
+					{{ orederMessage.proUserList ? orederMessage.proUserList.map(item => item.proUserDepartName).join(' / ') : '渚辰鎱�-鍜屽幙椋為獜鏂板瀷寤烘潗' }}
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "workOrderInfo",
+		props: {
+			orederMessage: {}
+		},
+		data() {
+			return {
+				status: [
+					{ status: 0, label: '宸插垱寤�' },
+					{ status: 1, label: '宸插鏂�' },
+					{ status: 2, label: '宸插畬宸ユ' },
+					{ status: 3, label: '宸叉楠�' },
+					{ status: 4, label: '宸叉姤宸�' },
+					{ status: 5, label: '宸插叆搴�' },
+					{ status: 6, label: '宸插彇娑�' },
+					{ status: 7, label: '杩涜涓�' }
+				]
+			};
+		},
+		methods: {
+			stausToStr(status) {
+				let temp = this.status.find(item => item.status == status)
+				return temp ? temp.label : '-'
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+.status {
+	height: 26rpx;
+	font-size: 26rpx;
+	font-weight: 400;
+	color: #666666;
+	line-height: 26rpx;
+}
+.order-info {
+	border-bottom: 20rpx #f7f7f7 solid;
+}
+</style>
diff --git a/minipro_standard/pages.json b/minipro_standard/pages.json
index 7ee4eb5..e26d84c 100644
--- a/minipro_standard/pages.json
+++ b/minipro_standard/pages.json
@@ -101,6 +101,27 @@
 						"navigationBarTitleText": "鏂板鍏ュ簱",
 						"enablePullDownRefresh": false
 					}
+				},
+				{
+					"path": "pages/manualFeed/manualFeed",
+					"style": {
+						"navigationBarTitleText": "鎵嬪姩鎶曟枡",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "pages/OrderDetail/OrderDetail",
+					"style": {
+						"navigationBarTitleText": "宸ュ崟璇︽儏",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "pages/workOrderReporting/workOrderReporting",
+					"style": {
+						"navigationBarTitleText": "宸ュ崟鎶ュ伐",
+						"enablePullDownRefresh": false
+					}
 				}
 			]
 		}
diff --git a/minipro_standard/pages/index/index.vue b/minipro_standard/pages/index/index.vue
index 1a9e5b1..3640c53 100644
--- a/minipro_standard/pages/index/index.vue
+++ b/minipro_standard/pages/index/index.vue
@@ -164,9 +164,6 @@
 			});
 		},
 		methods: {
-			onMessage(e) {
-				console.log('12345654321')
-			},
 			scrolltolower() {},
 			scrolltoupper() {},
 			selectType(status) {
diff --git a/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue b/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
new file mode 100644
index 0000000..dae9d43
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -0,0 +1,1002 @@
+<template>
+	<view>
+		<workOrderInfo :orederMessage="{proUserList:[]}" />
+		<view class="bg_cate">
+			<view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
+				v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
+		</view>
+		<div class="bg_list" v-if="typeView === 0">
+			<div class="bg_list_item">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>鎶曟枡鏄庣粏</span>
+					</div>
+					<div class="bg_list_item_top_right" @click="jumpTL">
+						<!-- v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)" -->
+						<!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
+						<!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> -->
+						<image src="../../static/gongdan_ic_shoudong@2x.png" class="img28" mode=""></image>
+						<span class="cm">鏂板鎶曟枡</span>
+					</div>
+				</div>
+
+				<template v-if="feedingData && feedingData.length > 0">
+					<u-swipe-action>
+						<u-swipe-action-item v-for="(item, index) in feedingData" :key="index" :options="options"
+							@click="deleItem(item.id, 'T')">
+							<div class="bg_list_item_h">
+								<div class="bg_list_item_num">
+									<div class="bg_list_item_num_item">
+										<!-- <span>{{item.code}}</span> -->
+										<div class="bg_list_item_num_item_wl">
+											<span> {{ item.materialName || '澧欎綋鐮�' }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
+							            }}</span>
+											<div class="bg_list_item_num_item_wl_lx">
+												<span class="green" v-if="item.qualityType == 0">鍚堟牸&nbsp;/&nbsp;</span>
+												<span class="orange" v-if="item.qualityType == 1">涓嶈壇&nbsp;/&nbsp;</span>
+												<span class="red" v-if="item.qualityType == 2">鎶ュ簾&nbsp;/&nbsp;</span>
+												<span>{{ item.locationName }}</span>
+												<span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
+											</div>
+										</div>
+										<div class="bg_list_item_num_item_sr">
+											<!-- :disabled="!proxy.$auth('h5:workorderinput:update')" -->
+											<!-- <view class="cY">
+												<span>{{item.num}}{{ item.unitName }}</span>
+												<image src="../../../static/ic_edit@2x.png" class="img48" mode=""></image>
+												<span class="red">鍒犻櫎</span>
+											</view> -->
+											<view class="cY">
+												<input v-model="item.num"
+													@blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)"
+													type="number" />
+												<span class="cm">淇濆瓨</span>
+											</view>
+											
+										</div>
+									</div>
+								</div>
+							</div>
+						</u-swipe-action-item>
+					</u-swipe-action>
+
+				</template>
+				<template v-else>
+					<div class="kong">
+						<span>鏆傛棤鏁版嵁</span>
+					</div>
+				</template>
+			</div>
+			<div class="bg_list_item">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>浜у嚭鏄庣粏</span>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>鑹搧鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
+							<div class="bg_list_item_num_item_sr">
+								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+								<input type="number" v-model="produceFrom.qualified"
+									@blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)"
+									placeholder="璇疯緭鍏�" />
+								<span v-if="info.umodel">{{ info.umodel.name }}</span>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+						<div class="bg_list_item_num_item">
+							<span>涓嶈壇鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
+							<div class="bg_list_item_num_item_sr">
+								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+								<input type="number" v-model="produceFrom.undesirable"
+									@blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)"
+									placeholder="璇疯緭鍏�" />
+								<span v-if="info.umodel">{{ info.umodel.name }}</span>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="bg_list_item_h" v-if="produceFrom.undesirable > 0">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item" @click="badShow = true">
+							<span>涓嶈壇椤�</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="wulll" :style="{ color: form.defectiveName ? '#305ED5' : '' }">{{ form.defectiveName ?
+				              form.defectiveName : '璁剧疆' }}</span>
+								<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="bg_plan" @click="TimeShow = true">
+				<div class="bg_plan_label">
+					<span>鎶ュ伐鏃堕暱</span>
+				</div>
+				<div class="bg_plan_label_val">
+					<span
+						:style="{ color: form.durationName ? '#333' : '' }">{{ form.durationName ? form.durationName : '璇烽�夋嫨' }}</span>
+					<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
+				</div>
+			</div>
+			<div class="bg_list_item" v-if="arrType && arrType.length > 0">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>宸ヨ祫缁╂晥</span>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>璁′欢鏂瑰紡</span>
+							<div class="bg_list_item_num_item_list">
+								<div :class="form.index == index ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'"
+									v-for="(item, index) in arrType" :key="index"
+									@click="clickPerformanceType(item, index)">
+									{{ item.name }}
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>宸ヨ祫鍗曚环</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ (arrType[form.index].salary / 10 / 10).toFixed(2) }}鍏�/{{ arrType[form.index].type ==
+		                  0 ? '浠�' : '鏃�' }}</span>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>棰勮宸ヨ祫</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ expectedSalary }}鍏�</span>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>杈炬爣鐜�</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ complianceRate }}%</span>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+
+		</div>
+		<div class="details_dj" v-if="typeView === 1">
+
+			<div class="details_dj_list">
+				<u-swipe-action>
+					<u-swipe-action-item v-for="(item, index) in djData" :key="index" :options="options"
+						@click="dele(item.id)">
+						<div class="details_dj_list_item">
+							<span>{{ item.attrName }}锛歿{ item.val }}</span>
+							<span>{{ item.userName }} {{ item.createTime }}</span>
+						</div>
+					</u-swipe-action-item>
+				</u-swipe-action>
+			</div>
+		</div>
+		<!-- v-if="info.status === 2 || info.procedureNeedcheck === 1" -->
+		<template>
+			<div class="bh_zw"></div>
+			<div class="bg_footer bg_f7">
+				<div class="bg_footer_submit bg_m" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div>
+				<!-- proxy.$auth('h5:workorder:processRecord') &&  -->
+				<div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
+					<image src="../../../static/gongdan_ic_shoudong@2x.png" class="fornt-img" mode=""></image>
+					<span>鏂板鐐规</span>
+				</div>
+			</div>
+		</template>
+		<u-datetime-picker :show="TimeShow" @cancel="TimeShow=false" @confirm="timeConfirm" v-model="form.time"
+			mode="time"></u-datetime-picker>
+		<u-popup :show="badShow" @close="badShow=false" :round="8" closeable zIndex="20000">
+			<view class="rp p40 contanir">
+				<view class="c2 b tc">涓嶈壇椤�</view>
+				<view class="content bl_list">
+					<div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
+						<div class="bl_list_item_left">
+							<u-checkbox-group>
+								<u-checkbox  :key="index" :checked="item.active" :label="item.name"
+									:name="item.name">
+								</u-checkbox>
+							</u-checkbox-group>
+						</div>
+						<div class="bl_list_item_right">
+							<input type="number" @click.stop v-model="item.num" placeholder="0" />
+						</div>
+					</div>
+				</view>
+				<view class="flex ap tc bottom-view">
+					<view class="fx1 ml20 ptb20 sbtn_green" @click="confirm">纭畾</view>
+				</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import workOrderInfo from '@/components/workOrderInfo.vue'
+	export default {
+		components: {
+			workOrderInfo
+		},
+		data() {
+			return {
+				cate: [{
+						name: '鐢熶骇'
+					},
+					{
+						name: '鐐规'
+					}
+				],
+				form: {
+					time: '',
+					efective: [],
+					defectiveName: '',
+					durationName: '0灏忔椂0鍒嗛挓',
+					duration: 0,
+					type: 0,
+					index: 0
+				},
+				TimeShow: false,
+				badShow: false,
+				typeView: 0,
+				feedingData: [{
+					id: 0,
+					materialName: '澧欎綋鐮�',
+					procedureName: '鍘嬪埗',
+					qualityType: 1,
+					locationName: 'CP-01',
+					batch: '20230713',
+					num: 2,
+					maxNum: 10,
+					unitAttribute: 1,
+					unitName: '鍧�'
+				}],
+				options: [{
+					text: '鍒犻櫎',
+					style: {
+						backgroundColor: 'red',
+					}
+				}],
+				arrType: [{
+						name: '璁℃椂',
+						type: 1,
+						salary: 1000,
+					},
+					{
+						name: '璁′欢',
+						type: 0,
+						salary: 100
+					},
+				],
+				// 浜у嚭鍚堟牸/涓嶈壇
+				produceFrom: {
+					qualifiedId: '',
+					qualified: '', // 鍚堟牸
+					undesirableId: '',
+					undesirable: 5 // 涓嶈壇
+				},
+				djData: [{
+					attrName: '鍑烘按鏃堕棿',
+					val: '2022-05-28 16:3',
+					userName: '寮犱笁 ',
+					createTime: '2022-05-28 16:32:'
+				}],
+				cateList: [{
+					active: false,
+					name: '姣涘埡',
+					num: 0
+				}]
+			};
+		},
+		computed: {
+			expectedSalary() {
+				if (this.arrType.length === 0) return 0;
+				// 鎸変欢璁$畻
+				if (this.arrType[this.form.index].type == 0) {
+					if (!this.produceFrom.qualified) return 0
+					if (this.arrType[this.form.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+						let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)
+						return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0
+					} else {
+						return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed(
+							2) || 0
+					}
+				} else {
+					if (!this.form.duration) return 0;
+					let h = (this.form.duration / 60 / 60).toFixed(2)
+					return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
+				}
+			},
+			complianceRate() {
+				if (this.arrType.length === 0) return 0;
+				if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
+				if (!this.form.duration) return 0;
+				if (!this.arrType[this.form.index].num) return 0;
+				// 鎸変欢璁$畻
+				// if (infoBox.value.type == 0) {
+				if (this.arrType[this.form.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+					let a = ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) / (this.form
+						.duration / 3600)).toFixed(2)
+					let b = (this.arrType[this.form.index].num / (this.arrType[form.index].times / 3600)).toFixed(2)
+					return ((Number(a) / Number(b)) * 100).toFixed(2)
+					// let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
+					// return total * infoBox.value.salary;
+				} else {
+					let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
+					let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
+					return ((Number(a) / Number(b)) * 100).toFixed(2)
+					// return Number(from.qualified) * infoBox.value.salary;
+				}
+			}
+		},
+		methods: {
+			click() {
+
+			},
+			clickIten(index) {
+				this.typeView = index
+			},
+			timeConfirm({
+				value
+			}) {
+				console.log(value)
+				let h = Number(value.substring(0, 2))
+				let m = Number(value.substring(3, 5))
+				let s = 0
+				if (h > 0) {
+					s += h * 60 * 60
+				}
+				if (m > 0) {
+					s += m * 60
+				}
+				this.form.duration = s
+				this.form.durationName = `${h}灏忔椂${m}鍒嗛挓`
+				this.TimeShow = false
+			},
+			// 缂栬緫鎶曟枡/浜у嚭
+			change(id, num, type, maxNum, item, unitAttribute) {
+				let obj = item
+				if (type === 'T') {
+					if (unitAttribute == 0 && num != '') {
+						if (!REGULAR.positiveInteger.test(num)) {
+							obj.num = obj.ynum
+							Toast({
+								message: '鍙兘杈撳叆姝f暣鏁�'
+							})
+							return
+						}
+					}
+					if (unitAttribute == 1 && num != '') {
+						if (!REGULAR.number.test(num)) {
+							Toast({
+								message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級'
+							})
+							obj.num = obj.ynum
+							return
+						}
+					}
+					if (num > maxNum) {
+						obj.num = obj.ynum
+						Toast.fail({
+							message: '瓒呭嚭宸ヨ鎬绘暟'
+						})
+						return
+					}
+				} else if (type === 'C' && num > info.value.planNum) {
+					obj.num = obj.ynum
+					Toast.fail({
+						message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺'
+					})
+					return
+				}
+				// updateById({ id, num }).then(res => {
+				//   if (res.code === 200 && type === 'T') {
+				//     getOrocessRecords()
+				//   } else if (res.code === 200 && type === 'C') {
+				//     // getOrocessRecordCC()
+				//   }
+				// })
+			},
+			clickPerformanceType(item, index) {
+				this.form.index = index
+				this.form.type = item.type
+			},
+			submit() {},
+			jumpdj() {},
+			pageDJs() {},
+			dele(id) {
+				// deletedj(id)
+				//     .then(res => {
+				//       if (res.code === 200) {
+				//         djData.value = []
+				//         finished.value = false
+				//         page.page = 1
+				//         djData.value = []
+				//         pageDJs()
+				//       }
+				//     })
+			},
+			confirm() {
+				// console.log('confirm');
+				this.badShow = false
+			},
+			changeChecked(i) {
+				this.cateList[i].active = !this.cateList[i].active
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.bg_cate {
+		width: 100%;
+		height: 88rpx;
+		background: #FFFFFF;
+		display: flex;
+		align-items: center;
+
+		.active {
+			box-sizing: border-box;
+			color: #305ED5 !important;
+			font-weight: 500;
+			border-bottom: 3rpx solid #305ED5;
+		}
+
+		.bg_cate_item {
+			flex: 1;
+			height: 100%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: 30rpx;
+			font-weight: 400;
+			color: #555555;
+		}
+	}
+
+	.bg_list {
+		width: 100%;
+		display: flex;
+		flex-direction: column;
+		margin-top: 30rpx;
+
+		.bg_list_item {
+			display: flex;
+			flex-direction: column;
+			// margin-bottom: 40rpx;
+			border-bottom: 40rpx #f7f7f7 solid;
+
+			.kong {
+				text-align: center;
+				padding: 30rpx 0;
+				background: #ffffff;
+				font-size: 25rpx;
+
+				span {
+					color: #474747;
+				}
+			}
+
+			.bg_list_item_top {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding-left: 30rpx;
+				padding-right: 30rpx;
+				margin-bottom: 30rpx;
+
+				.bg_list_item_top_left {
+					display: flex;
+					align-items: center;
+
+					.left {
+						margin-left: 12rpx;
+						font-size: 28rpx;
+					}
+
+					.warning {
+						width: 8rpx;
+						height: 30rpx;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+						// background: $nav-stateColor5 !important;
+					}
+
+					.error {
+						width: 8rpx;
+						height: 30rpx;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+						// background: $nav-stateColor4 !important;
+					}
+
+					.bg_list_item_top_left_x {
+						width: 8rpx;
+						height: 30rpx;
+						// background: $nav-color;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+					}
+
+					span {
+						font-size: 32rpx;
+						font-weight: 500;
+						color: #222222;
+						display: flex;
+						align-items: center;
+					}
+				}
+
+				.bg_list_item_top_right {
+					display: flex;
+					align-items: center;
+
+					image {
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 12rpx;
+					}
+
+					span {
+						font-size: 28rpx;
+						font-weight: 400;
+					}
+				}
+			}
+
+			.bg_list_item_h {
+				width: 100%;
+				padding: 0 30rpx;
+				box-sizing: border-box;
+				background: white;
+
+				.bg_list_item_num {
+					width: 100%;
+					min-height: 98rpx;
+					background: white;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					border-bottom: 1rpx solid #E5E5E5;
+
+					&:last-child {
+						border: none !important;
+					}
+
+					.kong {
+						text-align: center;
+						font-size: 25rpx;
+						padding: 30rpx 0;
+						background: #ffffff;
+					}
+
+					.bg_list_item_num_item {
+						width: 100%;
+						height: 100%;
+						display: flex;
+						align-items: center;
+						// height: 118rpx;
+						padding: 15rpx 0;
+						box-sizing: border-box;
+						justify-content: space-between;
+						border-bottom: 1rpx solid #E5E5E5;
+
+						&:last-child {
+							border: none;
+						}
+
+						.bg_list_item_num_item_list {
+							display: flex;
+							align-items: center;
+
+							.active {
+								background: #305ED5 !important;
+								color: #FFFFFF !important;
+							}
+
+							.bg_list_item_num_item_list_item {
+								width: 116rpx;
+								height: 62rpx;
+								line-height: 62rpx;
+								text-align: center;
+								background: #F2F2F2;
+								border-radius: 8rpx;
+								font-size: 26rpx;
+								font-family: PingFangSC-Regular, PingFang SC;
+								font-weight: 400;
+								color: #333333;
+								margin-right: 20rpx;
+
+								&:last-child {
+									margin: 0 !important;
+								}
+							}
+						}
+
+						.bg_list_item_num_item_wl {
+							flex-shrink: 0;
+							display: flex;
+							flex-direction: column;
+							font-size: 34rpx;
+							color: #222222;
+
+							.bg_list_item_num_item_wl_lx {
+								margin-top: 10rpx;
+								color: #222222;
+								font-size: 28rpx;
+							}
+						}
+
+						// .warning {
+						// 	color: $nav-stateColor5 !important;
+						// }
+
+						// .err {
+						// 	color: $nav-stateColor4 !important;
+						// }
+
+						img {
+							width: 12rpx;
+							height: 24rpx;
+							margin-left: 20rpx;
+						}
+
+						span {
+							flex-shrink: 0;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+
+							b {
+								font-size: 30rpx;
+								color: red;
+								margin-right: 5rpx;
+							}
+
+							// .warning {
+							// 	color: $nav-stateColor5 !important;
+							// 	margin-right: 5rpx;
+							// }
+
+							// .err {
+							// 	color: $nav-stateColor4 !important;
+							// 	margin-right: 5rpx;
+							// }
+
+							&:nth-child(1) {
+								font-size: 30rpx;
+								font-weight: 400;
+								color: #222222;
+							}
+
+							&:nth-child(2) {
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #333333;
+								flex-shrink: 0;
+							}
+						}
+
+						.bg_list_item_num_item_sr {
+							flex: 1;
+							display: flex;
+							align-items: center;
+							justify-content: flex-end;
+
+							.color1 {
+								font-size: 28rpx;
+								font-family: PingFangSC-Regular, PingFang SC;
+								font-weight: 400;
+								color: #333333;
+							}
+
+							input::-webkit-input-placeholder {
+								font-size: 28rpx;
+							}
+
+							input {
+								text-align: right;
+								width: 180rpx;
+								height: 60rpx;
+								border-radius: 8rpx;
+								border: 1rpx solid #E5E5E5;
+								margin-right: 20rpx;
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #333333;
+								padding: 0 30rpx
+							}
+
+							.wulll {
+								width: 400rpx;
+								text-align: right;
+								overflow: hidden;
+								white-space: nowrap;
+								text-overflow: ellipsis;
+							}
+
+							span {
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	.bg_plan {
+		width: 100%;
+		// height: 98px;
+		padding: 30rpx;
+		box-sizing: border-box;
+		background: #FFFFFF;
+		margin-bottom: 40rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		span {
+			font-size: 30rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #222222;
+
+			b {
+				color: red;
+			}
+		}
+
+		.bg_plan_nr {
+			display: flex;
+			flex-direction: column;
+
+			span {
+				font-size: 24rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				margin-top: 20rpx;
+
+				&:first-child {
+					font-size: 32rpx;
+					font-family: PingFangSC-Medium, PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					margin-top: 0 !important;
+				}
+			}
+		}
+
+		.bg_plan_label_val {
+			display: flex;
+			align-items: center;
+
+			span {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #999999;
+			}
+
+
+		}
+	}
+
+	.img_ar {
+		width: 12rpx;
+		height: 24rpx;
+		margin-left: 20rpx;
+	}
+
+	.bh_zw {
+		height: 160rpx;
+	}
+
+	.bg_footer {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		padding: 30rpx 30rpx 60rpx 30rpx;
+		box-sizing: border-box;
+
+		.bg_footer_submit1 {
+			width: 690rpx;
+			height: 76rpx;
+			background: #FFFFFF;
+			border-radius: 36rpx;
+			border: 1rpx solid #E5E5E5;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.fornt-img {
+				width: 28rpx;
+				height: 28rpx;
+				margin-right: 12rpx;
+			}
+
+			span {
+				font-size: 26rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #305ED5;
+			}
+		}
+
+		.bg_footer_submit {
+			width: 690rpx;
+			height: 88rpx;
+			box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+			border-radius: 8rpx;
+			font-size: 30rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+	}
+
+	.details_dj {
+		display: flex;
+		flex-direction: column;
+
+		.details_dj_list {
+			width: 100%;
+			box-sizing: border-box;
+			background: #ffffff;
+			display: flex;
+			flex-direction: column;
+
+			.details_dj_list_item {
+				display: flex;
+				flex-direction: column;
+				border-bottom: 1rpx solid #E5E5E5;
+				padding: 30rpx;
+				line-height: 42rpx;
+
+				span {
+					&:nth-child(1) {
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #222222;
+					}
+
+					&:nth-child(2) {
+						font-size: 24rpx;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+			}
+		}
+
+		.details_dj_title {
+			width: 100%;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 0 30rpx 30rpx;
+			box-sizing: border-box;
+
+			.details_dj_title_left {
+				display: flex;
+				align-items: center;
+
+				span {
+					font-size: 32rpx;
+					font-weight: 500;
+					color: #222222;
+				}
+			}
+
+		}
+	}
+
+	.contanir {
+		height: calc(env(safe-area-inset-bottom) + 720rpx);
+
+		.content {
+			margin-top: 20rpx;
+
+			.type-style {
+				width: 325rpx;
+				margin-bottom: 20rpx;
+			}
+		}
+	}
+
+	.bottom-view {
+		left: 40rpx;
+		right: 40rpx;
+		bottom: 0
+	}
+
+	.bl_list {
+		width: 100%;
+		height: calc(100% - 168rpx);
+		overflow-y: scroll;
+		margin-top: 30rpx;
+
+		.bl_list_item {
+			width: 100%;
+			height: 96rpx;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			border-bottom: 1rPX solid #E5E5E5;
+
+			&:last-child {
+				border: none !important;
+			}
+
+			.bl_list_item_left {
+				flex: 1;
+				display: flex;
+				align-items: center;
+
+				input {
+					width: 30rpx;
+					height: 30rpx;
+					border: 1rpX solid #CCCCCC;
+					margin: 0 !important;
+				}
+
+				span {
+					font-size: 30rpx;
+					color: #222222;
+					margin-left: 10rpx;
+				}
+			}
+
+			.bl_list_item_right {
+				flex: 1;
+				height: 50rpx;
+				text-align: right;
+
+				input {
+					padding-left: 5rpx;
+					width: 160rpx;
+					height: 100%;
+					padding: 0 30rpx;
+					box-sizing: border-box;
+					text-align: right;
+					font-size: 28rpx;
+					color: #333333;
+					border-radius: 10rpx;
+					border: 1rPX solid #CCCCCC;
+
+					&::-webkit-input-placeholder {
+						font-size: 28rpx;
+						font-family: PingFangSC-Regular, PingFang SC;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+			}
+		}
+	}
+</style>
diff --git a/minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue b/minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue
new file mode 100644
index 0000000..82a4bb2
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue
@@ -0,0 +1,317 @@
+<template>
+	<view class="tl">
+		<workOrderInfo :orederMessage="{proUserList:[]}" />
+		<div class="tl_title">
+			<div class="tl_title_left">
+				<div class="tl_title_left_x"></div>
+				<span>鎶曟枡淇℃伅</span>
+				<!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
+				<!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
+			</div>
+			<div class="tl_title_right" @click="add">
+				<image src="../../static/gongdan_ic_shoudong@2x.png" class="add-img" mode=""></image>
+				<span>澧炲姞鎶曟枡</span>
+			</div>
+		</div>
+		<u-swipe-action>
+			<u-swipe-action-item v-for="(item, index) in materialList" :key="index" :options="options"
+				@click="deleItem(index)">
+				<div class="tl_list">
+					<div class="tl_list_item" @click="open1(index)">
+						<div class="tl_list_item_label">閫夋嫨鐗╂枡</div>
+						<div class="tl_list_item_go" v-if="!item.materialName">
+							<span>鐐瑰嚮璺宠浆鍒扮墿鏂欏垪琛�</span>
+							<u-icon name="arrow-right"></u-icon>
+						</div>
+						<div class="tl_list_item_wl" v-else>
+							<div class="tl_list_item_wl_top">
+								<span>{{ item.materialName }}</span>
+								<span>&nbsp;|&nbsp;{{ item.materialCode }}</span>
+							</div>
+							<div class="tl_list_item_wl_bottom">
+								<span class="green" v-if="item.qualityType == 0">鍚堟牸</span>
+								<span class="yellow" v-else-if="item.qualityType == 1">涓嶈壇</span>
+								<span class="red" v-else-if="item.qualityType == 2">鎶ュ簾</span>
+								<span>{{ item.procedureName ? `&nbsp;/&nbsp;${item.procedureName}` : '&nbsp;/&nbsp;-' }}</span>
+								<span>{{ item.locationName ? `&nbsp;/&nbsp;${item.locationName}` : '&nbsp;/&nbsp;-' }}</span>
+								<span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '&nbsp;/&nbsp;-' }}</span>
+							</div>
+						</div>
+					</div>
+					<div class="tl_list_item">
+						<div class="tl_list_item_label">鎶曟枡鏁伴噺{{ item.unitAttribute }}</div>
+						<div class="tl_list_item_go">
+							<input type="text" @blur="changeNumber(item.num, index, item.unitAttribute)"
+								v-model="item.num" />
+						</div>
+					</div>
+				</div>
+			</u-swipe-action-item>
+		</u-swipe-action>
+		<SelectMaterial ref="selectMaterial" />
+	</view>
+</template>
+
+<script>
+	import workOrderInfo from '@/components/workOrderInfo.vue'
+	import SelectMaterial from '@/components/selectMaterial.vue'
+	
+	import {
+		positiveInteger,
+		number
+	} from '@/common/config'
+	export default {
+		components: {
+			workOrderInfo,
+			SelectMaterial
+		},
+		data() {
+			return {
+				// formList: [{
+				// 	id: Date.now(),
+				// 	toolingTypeId: '', // 宸ヨ绫诲瀷
+				// 	toolingTypeName: '', // 宸ヨ绫诲瀷鍚嶇О
+				// 	workClothesId: '', // 宸ヨ
+				// 	workClothesName: '', // 宸ヨ鍚嶇О
+				// 	num: '', // 鏁伴噺
+				// 	attribute: '', // 宸ヨ灞炴��
+				// 	attributeType: '', // 宸ヨ灞炴�х被鍨�
+				// 	dw: '', // 鐗╂枡鍗曚綅
+				// 	unitAttribute: ''
+				// }],
+				materialList: [{
+					id: '',
+					materialName: '',
+					materialCode: '',
+					qualityType: '',
+					procedureName: '',
+					locationName: '',
+					batch: '',
+					num: '',
+					unitAttribute: ''
+				}],
+				options: [{
+					text: '鍒犻櫎',
+					style: {
+						backgroundColor: 'red',
+					}
+				}],
+			};
+		},
+		methods: {
+			open1(index) {
+				this.$refs.selectMaterial.open({})
+			},
+			deleItem(index) {
+				if (this.materialList.length === 1) {
+					uni.$u.toast('鑷冲皯淇濈暀涓�鏉℃姇鏂欎俊鎭�')
+					return
+				}
+				this.materialList.splice(index, 1)
+			},
+			add() {
+				this.total += 1
+				this.materialList.unshift({
+					id: '',
+					materialName: '',
+					materialCode: '',
+					qualityType: '',
+					procedureName: '',
+					locationName: '',
+					batch: '',
+					num: '',
+					unitAttribute: ''
+				})
+			},
+			changeNumber(num, index, unitAttribute) {
+				if (unitAttribute === 0 && num !== '') {
+					if (!positiveInteger.test(num)) {
+						uni.$u.toast({
+							message: '鍙兘杈撳叆姝f暣鏁�'
+						})
+						this.materialList[index].num = ''
+					}
+				} else if (unitAttribute === 1 && num !== '') {
+					if (!number.test(num)) {
+						uni.$u.toast({
+							message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級'
+						})
+						this.materialList[index].num = ''
+					}
+				}
+				if (num <= 0) {
+					uni.$u.toast({
+						message: '鎶曟枡鏁伴噺涓嶈兘灏忎簬绛変簬0'
+					})
+					this.materialList[index].num = ''
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.tl {
+		width: 100%;
+		height: 100%;
+		position: absolute;
+		background: #F7F7F7;
+
+		.tl_title {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 30rpx;
+
+			.tl_title_left {
+				display: flex;
+				align-items: center;
+
+				.tl_title_left_x {
+					width: 8rpx;
+					height: 30rpx;
+					background: $nav-color;
+					border-radius: 2rpx;
+					margin-right: 12rpx;
+				}
+
+				span {
+					font-size: 32rpx;
+					font-weight: 500;
+					color: #222222;
+
+					&:nth-child(3) {
+						font-size: 28rpx;
+						font-weight: 500;
+						color: $nav-color;
+						margin-left: 10rpx;
+					}
+				}
+			}
+
+			.tl_title_right {
+				display: flex;
+				align-items: center;
+
+				.add-img {
+					width: 28rpx;
+					height: 28rpx;
+					margin-right: 12rpx;
+				}
+
+				span {
+					font-size: 28rpx;
+					font-weight: 400;
+					// color: $nav-color;
+				}
+			}
+		}
+
+		.tl_list {
+			display: flex;
+			flex-direction: column;
+			background: white;
+			padding: 0 30rpx;
+			margin-bottom: 20rpx;
+
+			.tl_list_item {
+				min-height: 98rpx;
+				// padding: 20rpx 0;
+				box-sizing: border-box;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				border-bottom: 1rpx solid #E5E5E5;
+
+				&:last-child {
+					border: none !important;
+				}
+
+				.tl_list_item_label {
+					font-size: 30rpx;
+					font-weight: 400;
+					color: #222222;
+				}
+
+				.tl_list_item_wl {
+					display: flex;
+					flex-direction: column;
+					align-items: end;
+
+					.tl_list_item_wl_top {
+						display: flex;
+						align-items: center;
+
+						span {
+							font-size: 28rpx;
+							color: #222222;
+						}
+					}
+
+					.tl_list_item_wl_bottom {
+						display: flex;
+						align-items: center;
+
+						span {
+							font-size: 28rpx;
+							color: #222222;
+						}
+					}
+				}
+
+				.tl_list_item_go {
+					display: flex;
+					align-items: center;
+
+					input {
+						text-align: right;
+						width: 180rpx;
+						height: 60rpx;
+						border-radius: 8rpx;
+						border: 1rpx solid #E5E5E5;
+						padding: 0 30rpx;
+						box-sizing: border-box;
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #333333;
+					}
+
+					span {
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #999999;
+						margin-right: 10rpx;
+					}
+				}
+			}
+		}
+
+		.tl_zw {
+			height: 160rpx;
+		}
+
+		.tl_footer {
+			width: 100%;
+			position: fixed;
+			bottom: 0;
+			left: 0;
+			padding: 0 30rpx 68rpx 30rpx;
+			box-sizing: border-box;
+
+			.tl_footer_submit {
+				width: 690rpx;
+				height: 88rpx;
+				border: none;
+				background: #4275FC;
+				box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+				border-radius: 8rpx;
+				font-size: 30rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
+	}
+</style>
diff --git a/minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue b/minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
new file mode 100644
index 0000000..85ca4fc
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
@@ -0,0 +1,996 @@
+<template>
+	<view>
+		<view class="tips-label">褰撳墠浠诲姟闇�瑕佽川妫�锛涗骇鍑哄悗锛岃鑰愬績绛夊緟璐ㄦ鍛樻楠岋紝骞舵牴鎹楠岀粨鏋滆皟鏁翠骇鍑烘暟鎹悗鍐嶆姤宸ャ��</view>
+		<workOrderInfo :orederMessage="{proUserList:[]}" />
+		<!-- <u-tabs :list="tab" lineColor="#305ED5" :activeStyle="{color:'#305ED5'}" lineWidth="50%" :itemStyle="{width: '50%', boxSizing: 'border-box', height: '88rpx'}" @click="click"></u-tabs> -->
+		<view class="bg_cate">
+			<view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
+				v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
+		</view>
+		<div class="bg_list" v-if="typeView === 0">
+			<div class="bg_list_item">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>鎶曟枡鏄庣粏</span>
+					</div>
+					<div class="bg_list_item_top_right" @click="jumpTL">
+						<!-- v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)" -->
+						<!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
+						<!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> -->
+						<image src="../../static/gongdan_ic_shoudong@2x.png" class="img28" mode=""></image>
+						<span class="cm">鎵嬪姩褰曞叆</span>
+					</div>
+				</div>
+
+				<template v-if="feedingData && feedingData.length > 0">
+					<u-swipe-action>
+						<u-swipe-action-item v-for="(item, index) in feedingData" :key="index" :options="options"
+							@click="deleItem(item.id, 'T')">
+							<div class="bg_list_item_h">
+								<div class="bg_list_item_num">
+									<div class="bg_list_item_num_item">
+										<!-- <span>{{item.code}}</span> -->
+										<div class="bg_list_item_num_item_wl">
+											<span> {{ item.materialName || '澧欎綋鐮�' }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
+							            }}</span>
+											<div class="bg_list_item_num_item_wl_lx">
+												<span class="green" v-if="item.qualityType == 0">鍚堟牸&nbsp;/&nbsp;</span>
+												<span class="orange" v-if="item.qualityType == 1">涓嶈壇&nbsp;/&nbsp;</span>
+												<span class="red" v-if="item.qualityType == 2">鎶ュ簾&nbsp;/&nbsp;</span>
+												<span>{{ item.locationName }}</span>
+												<span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
+											</div>
+										</div>
+										<div class="bg_list_item_num_item_sr">
+											<!-- :disabled="!proxy.$auth('h5:workorderinput:update')" -->
+											<input v-model="item.num"
+												@blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)"
+												type="number" />
+											<span>{{ item.unitName }}</span>
+										</div>
+									</div>
+								</div>
+							</div>
+						</u-swipe-action-item>
+					</u-swipe-action>
+
+				</template>
+				<template v-else>
+					<div class="kong">
+						<span>鏆傛棤鏁版嵁</span>
+					</div>
+				</template>
+			</div>
+			<div class="bg_list_item">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>浜у嚭鏄庣粏</span>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>鑹搧鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
+							<div class="bg_list_item_num_item_sr">
+								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+								<input type="number" v-model="produceFrom.qualified"
+									@blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)"
+									placeholder="璇疯緭鍏�" />
+								<span v-if="info.umodel">{{ info.umodel.name }}</span>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+						<div class="bg_list_item_num_item">
+							<span>涓嶈壇鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
+							<div class="bg_list_item_num_item_sr">
+								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+								<input type="number" v-model="produceFrom.undesirable"
+									@blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)"
+									placeholder="璇疯緭鍏�" />
+								<span v-if="info.umodel">{{ info.umodel.name }}</span>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="bg_list_item_h" v-if="produceFrom.undesirable > 0">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item" @click="badShow = true">
+							<span>涓嶈壇椤�</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="wulll" :style="{ color: form.defectiveName ? '#305ED5' : '' }">{{ form.defectiveName ?
+				              form.defectiveName : '璁剧疆' }}</span>
+								<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="bg_plan" @click="TimeShow = true">
+				<div class="bg_plan_label">
+					<span>鎶ュ伐鏃堕暱</span>
+				</div>
+				<div class="bg_plan_label_val">
+					<span
+						:style="{ color: form.durationName ? '#333' : '' }">{{ form.durationName ? form.durationName : '璇烽�夋嫨' }}</span>
+					<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
+				</div>
+			</div>
+			<div class="bg_list_item" v-if="arrType && arrType.length > 0">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>宸ヨ祫缁╂晥</span>
+					</div>
+				</div>
+				<div class="bg_list_item_h">
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>璁′欢鏂瑰紡</span>
+							<div class="bg_list_item_num_item_list">
+								<div :class="form.index == index ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'"
+									v-for="(item, index) in arrType" :key="index"
+									@click="clickPerformanceType(item, index)">
+									{{ item.name }}
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>宸ヨ祫鍗曚环</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ (arrType[form.index].salary / 10 / 10).toFixed(2) }}鍏�/{{ arrType[form.index].type ==
+		                  0 ? '浠�' : '鏃�' }}</span>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>棰勮宸ヨ祫</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ expectedSalary }}鍏�</span>
+							</div>
+						</div>
+					</div>
+					<div class="bg_list_item_num">
+						<div class="bg_list_item_num_item">
+							<span>杈炬爣鐜�</span>
+							<div class="bg_list_item_num_item_sr">
+								<span class="color1">{{ complianceRate }}%</span>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+
+		</div>
+		<div class="details_dj" v-if="typeView === 1">
+
+			<div class="details_dj_list">
+				<u-swipe-action>
+					<u-swipe-action-item v-for="(item, index) in djData" :key="index" :options="options"
+						@click="dele(item.id)">
+						<div class="details_dj_list_item">
+							<span>{{ item.attrName }}锛歿{ item.val }}</span>
+							<span>{{ item.userName }} {{ item.createTime }}</span>
+						</div>
+					</u-swipe-action-item>
+				</u-swipe-action>
+			</div>
+		</div>
+		<!-- v-if="info.status === 2 || info.procedureNeedcheck === 1" -->
+		<template>
+			<div class="bh_zw"></div>
+			<div class="bg_footer bg_f7">
+				<div class="bg_footer_submit bg_m" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div>
+				<!-- proxy.$auth('h5:workorder:processRecord') &&  -->
+				<div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
+					<image src="../../../static/gongdan_ic_shoudong@2x.png" class="fornt-img" mode=""></image>
+					<span>鏂板鐐规</span>
+				</div>
+			</div>
+		</template>
+		<u-datetime-picker :show="TimeShow" @cancel="TimeShow=false" @confirm="timeConfirm" v-model="form.time"
+			mode="time"></u-datetime-picker>
+		<u-popup :show="badShow" @close="badShow=false" :round="8" closeable zIndex="20000">
+			<view class="rp p40 contanir">
+				<view class="c2 b tc">涓嶈壇椤�</view>
+				<view class="content bl_list">
+					<div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
+						<div class="bl_list_item_left">
+							<u-checkbox-group>
+								<u-checkbox  :key="index" :checked="item.active" :label="item.name"
+									:name="item.name">
+								</u-checkbox>
+							</u-checkbox-group>
+						</div>
+						<div class="bl_list_item_right">
+							<input type="number" @click.stop v-model="item.num" placeholder="0" />
+						</div>
+					</div>
+				</view>
+				<view class="flex ap tc bottom-view">
+					<view class="fx1 ml20 ptb20 sbtn_green" @click="confirm">纭畾</view>
+				</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import workOrderInfo from '@/components/workOrderInfo.vue'
+	export default {
+		components: {
+			workOrderInfo
+		},
+		data() {
+			return {
+				cate: [{
+						name: '鐢熶骇'
+					},
+					{
+						name: '鐐规'
+					}
+				],
+				form: {
+					time: '',
+					efective: [],
+					defectiveName: '',
+					durationName: '0灏忔椂0鍒嗛挓',
+					duration: 0,
+					type: 0,
+					index: 0
+				},
+				TimeShow: false,
+				badShow: false,
+				typeView: 0,
+				feedingData: [{
+					id: 0,
+					materialName: '澧欎綋鐮�',
+					procedureName: '鍘嬪埗',
+					qualityType: 1,
+					locationName: 'CP-01',
+					batch: '20230713',
+					num: 2,
+					maxNum: 10,
+					unitAttribute: 1,
+					unitName: '鍧�'
+				}],
+				options: [{
+					text: '鍒犻櫎',
+					style: {
+						backgroundColor: 'red',
+					}
+				}],
+				arrType: [{
+						name: '璁℃椂',
+						type: 1,
+						salary: 1000,
+					},
+					{
+						name: '璁′欢',
+						type: 0,
+						salary: 100
+					},
+				],
+				// 浜у嚭鍚堟牸/涓嶈壇
+				produceFrom: {
+					qualifiedId: '',
+					qualified: '', // 鍚堟牸
+					undesirableId: '',
+					undesirable: 5 // 涓嶈壇
+				},
+				djData: [{
+					attrName: '鍑烘按鏃堕棿',
+					val: '2022-05-28 16:3',
+					userName: '寮犱笁 ',
+					createTime: '2022-05-28 16:32:'
+				}],
+				cateList: [{
+					active: false,
+					name: '姣涘埡',
+					num: 0
+				}]
+			};
+		},
+		computed: {
+			expectedSalary() {
+				if (this.arrType.length === 0) return 0;
+				// 鎸変欢璁$畻
+				if (this.arrType[this.form.index].type == 0) {
+					if (!this.produceFrom.qualified) return 0
+					if (this.arrType[this.form.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+						let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)
+						return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0
+					} else {
+						return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed(
+							2) || 0
+					}
+				} else {
+					if (!this.form.duration) return 0;
+					let h = (this.form.duration / 60 / 60).toFixed(2)
+					return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
+				}
+			},
+			complianceRate() {
+				if (this.arrType.length === 0) return 0;
+				if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
+				if (!this.form.duration) return 0;
+				if (!this.arrType[this.form.index].num) return 0;
+				// 鎸変欢璁$畻
+				// if (infoBox.value.type == 0) {
+				if (this.arrType[this.form.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+					let a = ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) / (this.form
+						.duration / 3600)).toFixed(2)
+					let b = (this.arrType[this.form.index].num / (this.arrType[form.index].times / 3600)).toFixed(2)
+					return ((Number(a) / Number(b)) * 100).toFixed(2)
+					// let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
+					// return total * infoBox.value.salary;
+				} else {
+					let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
+					let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
+					return ((Number(a) / Number(b)) * 100).toFixed(2)
+					// return Number(from.qualified) * infoBox.value.salary;
+				}
+			}
+		},
+		methods: {
+			click() {
+
+			},
+			clickIten(index) {
+				this.typeView = index
+			},
+			timeConfirm({
+				value
+			}) {
+				console.log(value)
+				let h = Number(value.substring(0, 2))
+				let m = Number(value.substring(3, 5))
+				let s = 0
+				if (h > 0) {
+					s += h * 60 * 60
+				}
+				if (m > 0) {
+					s += m * 60
+				}
+				this.form.duration = s
+				this.form.durationName = `${h}灏忔椂${m}鍒嗛挓`
+				this.TimeShow = false
+			},
+			// 缂栬緫鎶曟枡/浜у嚭
+			change(id, num, type, maxNum, item, unitAttribute) {
+				let obj = item
+				if (type === 'T') {
+					if (unitAttribute == 0 && num != '') {
+						if (!REGULAR.positiveInteger.test(num)) {
+							obj.num = obj.ynum
+							Toast({
+								message: '鍙兘杈撳叆姝f暣鏁�'
+							})
+							return
+						}
+					}
+					if (unitAttribute == 1 && num != '') {
+						if (!REGULAR.number.test(num)) {
+							Toast({
+								message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級'
+							})
+							obj.num = obj.ynum
+							return
+						}
+					}
+					if (num > maxNum) {
+						obj.num = obj.ynum
+						Toast.fail({
+							message: '瓒呭嚭宸ヨ鎬绘暟'
+						})
+						return
+					}
+				} else if (type === 'C' && num > info.value.planNum) {
+					obj.num = obj.ynum
+					Toast.fail({
+						message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺'
+					})
+					return
+				}
+				// updateById({ id, num }).then(res => {
+				//   if (res.code === 200 && type === 'T') {
+				//     getOrocessRecords()
+				//   } else if (res.code === 200 && type === 'C') {
+				//     // getOrocessRecordCC()
+				//   }
+				// })
+			},
+			clickPerformanceType(item, index) {
+				this.form.index = index
+				this.form.type = item.type
+			},
+			submit() {},
+			jumpdj() {},
+			pageDJs() {},
+			dele(id) {
+				// deletedj(id)
+				//     .then(res => {
+				//       if (res.code === 200) {
+				//         djData.value = []
+				//         finished.value = false
+				//         page.page = 1
+				//         djData.value = []
+				//         pageDJs()
+				//       }
+				//     })
+			},
+			confirm() {
+				// console.log('confirm');
+				this.badShow = false
+			},
+			changeChecked(i) {
+				this.cateList[i].active = !this.cateList[i].active
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.bg_cate {
+		width: 100%;
+		height: 88rpx;
+		background: #FFFFFF;
+		display: flex;
+		align-items: center;
+
+		.active {
+			box-sizing: border-box;
+			color: #305ED5 !important;
+			font-weight: 500;
+			border-bottom: 3rpx solid #305ED5;
+		}
+
+		.bg_cate_item {
+			flex: 1;
+			height: 100%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: 30rpx;
+			font-weight: 400;
+			color: #555555;
+		}
+	}
+
+	.bg_list {
+		width: 100%;
+		display: flex;
+		flex-direction: column;
+		margin-top: 30rpx;
+
+		.bg_list_item {
+			display: flex;
+			flex-direction: column;
+			// margin-bottom: 40rpx;
+			border-bottom: 40rpx #f7f7f7 solid;
+
+			.kong {
+				text-align: center;
+				padding: 30rpx 0;
+				background: #ffffff;
+				font-size: 25rpx;
+
+				span {
+					color: #474747;
+				}
+			}
+
+			.bg_list_item_top {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding-left: 30rpx;
+				padding-right: 30rpx;
+				margin-bottom: 30rpx;
+
+				.bg_list_item_top_left {
+					display: flex;
+					align-items: center;
+
+					.left {
+						margin-left: 12rpx;
+						font-size: 28rpx;
+					}
+
+					.warning {
+						width: 8rpx;
+						height: 30rpx;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+						// background: $nav-stateColor5 !important;
+					}
+
+					.error {
+						width: 8rpx;
+						height: 30rpx;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+						// background: $nav-stateColor4 !important;
+					}
+
+					.bg_list_item_top_left_x {
+						width: 8rpx;
+						height: 30rpx;
+						// background: $nav-color;
+						border-radius: 2rpx;
+						margin-right: 12rpx;
+					}
+
+					span {
+						font-size: 32rpx;
+						font-weight: 500;
+						color: #222222;
+						display: flex;
+						align-items: center;
+					}
+				}
+
+				.bg_list_item_top_right {
+					display: flex;
+					align-items: center;
+
+					image {
+						width: 28rpx;
+						height: 28rpx;
+						margin-right: 12rpx;
+					}
+
+					span {
+						font-size: 28rpx;
+						font-weight: 400;
+					}
+				}
+			}
+
+			.bg_list_item_h {
+				width: 100%;
+				padding: 0 30rpx;
+				box-sizing: border-box;
+				background: white;
+
+				.bg_list_item_num {
+					width: 100%;
+					min-height: 98rpx;
+					background: white;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					border-bottom: 1rpx solid #E5E5E5;
+
+					&:last-child {
+						border: none !important;
+					}
+
+					.kong {
+						text-align: center;
+						font-size: 25rpx;
+						padding: 30rpx 0;
+						background: #ffffff;
+					}
+
+					.bg_list_item_num_item {
+						width: 100%;
+						height: 100%;
+						display: flex;
+						align-items: center;
+						// height: 118rpx;
+						padding: 15rpx 0;
+						box-sizing: border-box;
+						justify-content: space-between;
+						border-bottom: 1rpx solid #E5E5E5;
+
+						&:last-child {
+							border: none;
+						}
+
+						.bg_list_item_num_item_list {
+							display: flex;
+							align-items: center;
+
+							.active {
+								background: #305ED5 !important;
+								color: #FFFFFF !important;
+							}
+
+							.bg_list_item_num_item_list_item {
+								width: 116rpx;
+								height: 62rpx;
+								line-height: 62rpx;
+								text-align: center;
+								background: #F2F2F2;
+								border-radius: 8rpx;
+								font-size: 26rpx;
+								font-family: PingFangSC-Regular, PingFang SC;
+								font-weight: 400;
+								color: #333333;
+								margin-right: 20rpx;
+
+								&:last-child {
+									margin: 0 !important;
+								}
+							}
+						}
+
+						.bg_list_item_num_item_wl {
+							flex-shrink: 0;
+							display: flex;
+							flex-direction: column;
+							font-size: 34rpx;
+							color: #222222;
+
+							.bg_list_item_num_item_wl_lx {
+								margin-top: 10rpx;
+								color: #222222;
+								font-size: 28rpx;
+							}
+						}
+
+						// .warning {
+						// 	color: $nav-stateColor5 !important;
+						// }
+
+						// .err {
+						// 	color: $nav-stateColor4 !important;
+						// }
+
+						img {
+							width: 12rpx;
+							height: 24rpx;
+							margin-left: 20rpx;
+						}
+
+						span {
+							flex-shrink: 0;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+
+							b {
+								font-size: 30rpx;
+								color: red;
+								margin-right: 5rpx;
+							}
+
+							// .warning {
+							// 	color: $nav-stateColor5 !important;
+							// 	margin-right: 5rpx;
+							// }
+
+							// .err {
+							// 	color: $nav-stateColor4 !important;
+							// 	margin-right: 5rpx;
+							// }
+
+							&:nth-child(1) {
+								font-size: 30rpx;
+								font-weight: 400;
+								color: #222222;
+							}
+
+							&:nth-child(2) {
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #333333;
+								flex-shrink: 0;
+							}
+						}
+
+						.bg_list_item_num_item_sr {
+							flex: 1;
+							display: flex;
+							align-items: center;
+							justify-content: flex-end;
+
+							.color1 {
+								font-size: 28rpx;
+								font-family: PingFangSC-Regular, PingFang SC;
+								font-weight: 400;
+								color: #333333;
+							}
+
+							input::-webkit-input-placeholder {
+								font-size: 28rpx;
+							}
+
+							input {
+								text-align: right;
+								width: 180rpx;
+								height: 60rpx;
+								border-radius: 8rpx;
+								border: 1rpx solid #E5E5E5;
+								margin-right: 20rpx;
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #333333;
+								padding: 0 30rpx
+							}
+
+							.wulll {
+								width: 400rpx;
+								text-align: right;
+								overflow: hidden;
+								white-space: nowrap;
+								text-overflow: ellipsis;
+							}
+
+							span {
+								font-size: 28rpx;
+								font-weight: 400;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	.bg_plan {
+		width: 100%;
+		// height: 98px;
+		padding: 30rpx;
+		box-sizing: border-box;
+		background: #FFFFFF;
+		margin-bottom: 40rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		span {
+			font-size: 30rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #222222;
+
+			b {
+				color: red;
+			}
+		}
+
+		.bg_plan_nr {
+			display: flex;
+			flex-direction: column;
+
+			span {
+				font-size: 24rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				margin-top: 20rpx;
+
+				&:first-child {
+					font-size: 32rpx;
+					font-family: PingFangSC-Medium, PingFang SC;
+					font-weight: 500;
+					color: #333333;
+					margin-top: 0 !important;
+				}
+			}
+		}
+
+		.bg_plan_label_val {
+			display: flex;
+			align-items: center;
+
+			span {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #999999;
+			}
+
+
+		}
+	}
+
+	.img_ar {
+		width: 12rpx;
+		height: 24rpx;
+		margin-left: 20rpx;
+	}
+
+	.bh_zw {
+		height: 160rpx;
+	}
+
+	.bg_footer {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		padding: 30rpx 30rpx 60rpx 30rpx;
+		box-sizing: border-box;
+
+		.bg_footer_submit1 {
+			width: 690rpx;
+			height: 76rpx;
+			background: #FFFFFF;
+			border-radius: 36rpx;
+			border: 1rpx solid #E5E5E5;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.fornt-img {
+				width: 28rpx;
+				height: 28rpx;
+				margin-right: 12rpx;
+			}
+
+			span {
+				font-size: 26rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #305ED5;
+			}
+		}
+
+		.bg_footer_submit {
+			width: 690rpx;
+			height: 88rpx;
+			box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+			border-radius: 8rpx;
+			font-size: 30rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+	}
+
+	.details_dj {
+		display: flex;
+		flex-direction: column;
+
+		.details_dj_list {
+			width: 100%;
+			box-sizing: border-box;
+			background: #ffffff;
+			display: flex;
+			flex-direction: column;
+
+			.details_dj_list_item {
+				display: flex;
+				flex-direction: column;
+				border-bottom: 1rpx solid #E5E5E5;
+				padding: 30rpx;
+				line-height: 42rpx;
+
+				span {
+					&:nth-child(1) {
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #222222;
+					}
+
+					&:nth-child(2) {
+						font-size: 24rpx;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+			}
+		}
+
+		.details_dj_title {
+			width: 100%;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 0 30rpx 30rpx;
+			box-sizing: border-box;
+
+			.details_dj_title_left {
+				display: flex;
+				align-items: center;
+
+				span {
+					font-size: 32rpx;
+					font-weight: 500;
+					color: #222222;
+				}
+			}
+
+		}
+	}
+
+	.contanir {
+		height: calc(env(safe-area-inset-bottom) + 720rpx);
+
+		.content {
+			margin-top: 20rpx;
+
+			.type-style {
+				width: 325rpx;
+				margin-bottom: 20rpx;
+			}
+		}
+	}
+
+	.bottom-view {
+		left: 40rpx;
+		right: 40rpx;
+		bottom: 0
+	}
+
+	.bl_list {
+		width: 100%;
+		height: calc(100% - 168rpx);
+		overflow-y: scroll;
+		margin-top: 30rpx;
+
+		.bl_list_item {
+			width: 100%;
+			height: 96rpx;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			border-bottom: 1rPX solid #E5E5E5;
+
+			&:last-child {
+				border: none !important;
+			}
+
+			.bl_list_item_left {
+				flex: 1;
+				display: flex;
+				align-items: center;
+
+				input {
+					width: 30rpx;
+					height: 30rpx;
+					border: 1rpX solid #CCCCCC;
+					margin: 0 !important;
+				}
+
+				span {
+					font-size: 30rpx;
+					color: #222222;
+					margin-left: 10rpx;
+				}
+			}
+
+			.bl_list_item_right {
+				flex: 1;
+				height: 50rpx;
+				text-align: right;
+
+				input {
+					padding-left: 5rpx;
+					width: 160rpx;
+					height: 100%;
+					padding: 0 30rpx;
+					box-sizing: border-box;
+					text-align: right;
+					font-size: 28rpx;
+					color: #333333;
+					border-radius: 10rpx;
+					border: 1rPX solid #CCCCCC;
+
+					&::-webkit-input-placeholder {
+						font-size: 28rpx;
+						font-family: PingFangSC-Regular, PingFang SC;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+			}
+		}
+	}
+</style>
diff --git a/minipro_standard/static/ic_edit@2x.png b/minipro_standard/static/ic_edit@2x.png
new file mode 100644
index 0000000..d7048cf
--- /dev/null
+++ b/minipro_standard/static/ic_edit@2x.png
Binary files differ
diff --git a/minipro_standard/util/request/index.js b/minipro_standard/util/request/index.js
index 8cc78b7..eb2f57a 100644
--- a/minipro_standard/util/request/index.js
+++ b/minipro_standard/util/request/index.js
@@ -1,13 +1,13 @@
 // 寮曞叆閰嶇疆
-import config from '@/common/config'
+import { baseUrl } from '@/common/config'
 // 鍒濆鍖栬姹傞厤缃�
 uni.$u.http.setConfig((defaultConfig) => {
     /* defaultConfig 涓洪粯璁ゅ叏灞�閰嶇疆 */
-    defaultConfig.baseURL = config.baseUrl /* 鏍瑰煙鍚� */
-		config.header = {
+    defaultConfig.baseURL = baseUrl /* 鏍瑰煙鍚� */
+		defaultConfig.header = {
 			'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
 		}
-		config.dataType = 'json'
+		defaultConfig.dataType = 'json'
     return defaultConfig
 })
 

--
Gitblit v1.9.3