快乐的昕的电脑
2025-10-16 e0a000c52a2cb9a9b560f923bfe6a89640255278
components/WorkOrder.vue
@@ -6,6 +6,7 @@
               flex-wrap: nowrap;
               align-content: flex-start;
               justify-content: flex-start;">
         <!--主界面-->
         <!-- 上部:工单选择和机台信息 -->
         <view class="top-order" style=" display:inline-block;">
            <view class="form-row4">
@@ -19,16 +20,16 @@
                     <input class="inp" type="text" v-model="order.daa001" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>刀具名称:</label><!--刀具名称???-->
                     <input class="inp" type="text" v-model="order.moldId" disabled="true" />
                     <label>刀具名称:</label>
                     <input class="inp" type="text" v-model="order.cutterName" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>工单数量:</label>
                     <input class="inp" type="text" v-model="order.daa008" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>开工数采:</label><!--开工数采:开工时的累计生产数???-->
                     <input class="inp" type="text" v-model="order.daa004" disabled="true" />
                     <label>开工数采:</label><!--开工数采:开工时的累计生产数??? 保留原注释 -->
                     <input class="inp" type="text" v-model="order.startCjNum" disabled="true" /><!-- 修改为 startCjNum -->
                  </view>
               </view>
               <view class="form-row3">
@@ -40,25 +41,25 @@
                  </view>
                  <view class="form-item">
                     <label>刀具编号:</label><!--刀具编号???-->
                     <input class="inp" type="text" v-model="order.moldId" disabled="true" />
                     <input class="inp" type="text" v-model="order.cutterId" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>刀具规格:</label><!--刀具规格???-->
                     <input class="inp" type="text" v-model="order.moldId" disabled="true" />
                     <input class="inp" type="text" v-model="order.cutterModel" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>当前数采:</label><!--当前数采:当前时间的累计生产数???-->
                     <input class="inp" type="text" v-model="order.daa004" disabled="true" />
                     <label>当前数采:</label><!--当前数采:当前时间的累计生产数??? 保留原注释 -->
                     <input class="inp" type="text" v-model="order.currentCjNum" disabled="true" /><!-- 修改为 currentCjNum -->
                  </view>
               </view>
               <view class="form-row3">
                  <view class="form-item">
                     <label>产品编码:</label><!--产品编码???-->
                     <input class="inp" type="text" v-model="order.daa004" disabled="true" />
                     <label>产品编码:</label>
                     <input class="inp" type="text" v-model="order.daa002" disabled="true" />
                  </view>
                  <view class="form-item">
                     <label>产品规格:</label><!--开工数采:开工时的累计生产数???-->
                     <input class="inp" type="text" v-model="order.daa004" disabled="true" />
                     <label>产品规格:</label>
                     <input class="inp" type="text" v-model="order.daa004" disabled="true" /><!-- 保留原绑定与注释,未改 -->
                  </view>
                  <view class="form-item">
                     <label>报工数量:</label>
@@ -81,7 +82,7 @@
         </view>
      </view>
      <!-- 中部:品质检验 -->
      <!-- 中部:运行状态 -->
      <view class="section card">
         <view class="form-row">
            <view class="form-item">
@@ -99,11 +100,11 @@
         </view>
         <view class="form-row">
            <view class="form-item">
               <label>生产时间开始:</label>
               <label>生产开始时间:</label>
               <input class="inp" type="text" v-model="startTime" disabled="true" />
            </view>
            <view class="form-item">
               <label>生产时间结束:</label>
               <label>生产结束时间:</label>
               <input class="inp" type="text" v-model="endTime" disabled="true" />
            </view>
            <view class="form-item">
@@ -113,7 +114,7 @@
         </view>
      </view>
      <!-- 下部:运行状态 -->
      <!-- 下部:品质检验 -->
      <view class="section card">
         <view class="form-row">
            <view class="form-item">
@@ -180,13 +181,9 @@
         };
      },
      created() {
         this.fetchData(true);
         this.sumbit();
         this.init();
      },
      mounted() {
         this.fetchData(false); // Initial fetch
@@ -196,7 +193,6 @@
         clearInterval(this.timer); // Clear the timer on component destruction
      },
      methods: {
         init() {
            this.$post({
               url: "/MesOrderSta/init",
@@ -236,25 +232,18 @@
            });
         },
         onDaa003Change(event) {
            let orde = this.lineList[this.DAA003List.indexOf(event)];
            this.orderId = orde.id;
            this.orderNo = orde.daa001;
            //切换为新的id
            uni.setStorageSync('machine', this.machineNo);
            uni.setStorageSync('orderId', this.orderId);
            uni.setStorageSync('orderNo', this.orderNo);
            this.fetchData(false);
            this.sumbit();
         },
         sumbit() {
            this.$post({
               url: "/MesOrderSta/FindByOrderNo",
               data: {
@@ -263,26 +252,19 @@
               }
            }).then(res => {
               let statusForm = res.data.tbBillList;
               this.startTime = res.data.tbBillList.startTime;
               this.endTime = res.data.tbBillList.endTime;
               this.productionDuration = "0m";
               if (this.startTime) {
                  let date1 = new Date(this.startTime);
                  let date2 = new Date();
                  if (this.endTime) {
                     date2 = new Date(this.endTime);
                  }
                  // 计算两个日期之间的差异(以毫秒为单位)
                  let differenceInMilliseconds = date2 - date1;
                  this.productionDuration = (differenceInMilliseconds / 60000).toFixed(2);
               }
               // this.$post({
               //    url: "/MesOrderSta/Binding",
@@ -326,15 +308,12 @@
            //    }
            // }
            if (!this.orderId && !this.orderNo) {
               return;
            }
            this.getOrderById();
            this.getSJByOrder();
            this.getXJByOrder();
            if (flag) {
               this.$post({
                  url: "/Womdaa/GetWomdaasByShow",
@@ -361,50 +340,54 @@
                  orderNo: this.orderNo
               }
            }).then(res => {
               if (res.data.tbBillList == null) {
                  this.$showMessage("工单不存在或者未开工,请检查");
           // 保证order为对象,避免模板报错
            this.order = {
                daa001: '',
                moldId: '',
                daa008: '',
                daa004: '',
                daa003: '',
                daa011: '',
                daa018: '',
                machineNo: '',
                engineeringNo: '',
                todayOutput: 0,
                todayRunTime: '',
                todayFaultNum: 0,
                jdl: '',
            };
                  // 保证order为对象,避免模板报错
                  this.order = {
                     daa001: '',
                     moldId: '',
                     daa008: '',
                     daa004: '',
                     daa003: '',
                     daa002: '',
                     daa005: '',
                     daa011: '',
                     daa018: '',
                     machineNo: '',
                     engineeringNo: '',
                     todayOutput: 0,
                     todayRunTime: '',
                     todayFaultNum: 0,
                     cutterId,    //刀具代码
                     cutterName,  //刀具名称
                     cutterModel, //刀具规格
                     jdl: '',
                     startCjNum: 0, // 新增兜底字段 保留其它注释
                     currentCjNum: 0 // 新增兜底字段
                  };
                  return;
               }
               this.order = res.data.tbBillList;
               // 兼容后端大小写(如果后端返回 StartCjNum/CurrentCjNum)
               this.order.startCjNum = this.order.startCjNum ?? this.order.StartCjNum ?? 0; // 不删除原有注释行
               this.order.currentCjNum = this.order.currentCjNum ?? this.order.CurrentCjNum ?? 0; // 不删除原有注释行
               uni.setStorageSync('engineeringNo', this.order.engineeringNo);
               this.orderStatus = this.order.daa018;
               this.collectedAmount = this.order.todayOutput;
               if (!this.order.todayOutput) {
                  this.collectedAmount = 0;
               }
               this.todayRunTime = this.order.todayRunTime;
               if (!this.order.todayRunTime) {
                  this.todayRunTime = "0";
               }
               //this.productionDuration = (this.order.todayOnlineTime / 3600).toFixed(2) + "h";
               this.todayFaultNum = this.order.todayFaultNum;
               this.utilizationRate = this.order.jdl + '%';
               // this.startTime = this.order.workStartDate;
               // this.endTime = this.order.workEndDate;
               let title = this.machineNo + '号机台 工单号' + this.order.daa001 + ',已采集' + this.collectedAmount;
               let title = this.machineNo + '号机台 工单号' + this.order.daa001 + ',当前数采' + this.order.currentCjNum; // 标题中使用 currentCjNum
               this.setTitle(title);
            })
         },
@@ -467,9 +450,9 @@
      margin-bottom: 20px;
   }
   .refresh-btn:hover {
      background-color: #00A2E9;
   }
      .refresh-btn:hover {
         background-color: #00A2E9;
      }
   .form-row {
      display: flex;
@@ -561,7 +544,6 @@
      margin-top: -13px;
      line-height: 48px;
      align-content: flex-start;
   }
   .form-row3 {