快乐的昕的电脑
2025-10-22 270a7479cdb5cc70395c0703e46b28108e008923
components/machine.vue
@@ -9,7 +9,7 @@
      <!-- 中间状态部分,上下结构,包含调机流程的三个步骤 -->
      <view class="middle-section">
         <view class="item" style="height: 100px;">
            <h4>说明:点击调机开始后,再点击保存并生效</h4>
            <h4>说明:调机开始时间需要手动确认</h4>
         </view>
         <view class="item">
            <!-- 调机开始按钮,maStartTime有值时禁用 -->
@@ -32,14 +32,14 @@
            <input class="txt-inp" v-model="maShoutTime" placeholder="点击按钮带出时间" disabled="true" />
         </view>
         <!--<view class="item">-->
            <!-- 调机完成按钮,maEndTime有值时禁用 -->
            <!--<button :class="maEndTime ? 'btn-disabled' : 'btn-blue'"
                  :disabled="!!maEndTime"
                  @click="handleMaEndTime">
               调机完成(=检验通过)
            </button>-->
            <!-- 显示调机完成时间 -->
            <!--<input class="txt-inp" v-model="maEndTime" placeholder="首次首检确认通过写入" disabled="true" />
         <!-- 调机完成按钮,maEndTime有值时禁用 -->
         <!--<button :class="maEndTime ? 'btn-disabled' : 'btn-blue'"
               :disabled="!!maEndTime"
               @click="handleMaEndTime">
            调机完成(=检验通过)
         </button>-->
         <!-- 显示调机完成时间 -->
         <!--<input class="txt-inp" v-model="maEndTime" placeholder="首次首检确认通过写入" disabled="true" />
         </view>-->
         <view class="item">
            <button class="btn-disabled" disabled>
@@ -86,12 +86,12 @@
      },
      methods: {
         // 处理调机开始按钮点击
            handleMaStartTime() {
                if (!this.maStartTime) {
                    this.setMaStartTime();
                    this.flag = -1; // 调机开始按钮按下时回传的flag=-1
                }
            },
         handleMaStartTime() {
            if (!this.maStartTime) {
               this.setMaStartTime();
               this.flag = -1; // 调机开始按钮按下时回传的flag=-1
            }
         },
         // 处理送检呼叫按钮点击
         handleMaShoutTime() {
            if (!this.maShoutTime) {
@@ -114,32 +114,27 @@
            this.maEndTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
         },
         // 刷新工单数据
            refresh() {
                this.findByOrderId();
            },
            findByOrderId() {
                this.$post({
                    url: "/MesOrderSta/FindByOrderNo",
                    data: {
                        orderId: this.orderId,
                        orderNo: this.orderNo
                    }
                }).then(res => {
                    this.statusForm = res.data.tbBillList;
                    this.maShoutTime = res.data.tbBillList.maShoutTime;
                    this.maStartTime = res.data.tbBillList.maStartTime;
                    this.maEndTime = res.data.tbBillList.maEndTime;
                });
            },
         refresh() {
            this.findByOrderId();
         },
         // 全界面刷新:清空本地状态后重新拉取(不删除任何原有注释)
         fullReload() {
            // 清空当前显示数据,避免旧数据短暂闪烁
            this.maShoutTime = '';
            this.maStartTime = '';
            this.maEndTime = '';
            this.statusForm = {};
            this.flag = -1;
            // 下一帧重新获取
            this.$nextTick(() => {
               this.findByOrderId();
            });
         },
         // 保存并生效,将时间等信息提交到后端
         save() {
            if (!this.statusForm.id) {
               this.$showMessage("id为空,不允许推送");
               return;
            }
                // 只要送检呼叫有值,flag强制为-1
                if (this.maShoutTime) {
                    this.flag = -1;
            }
            this.$post({
               url: "/MesOrderSta/ChangeMachineTime",
@@ -155,8 +150,8 @@
            }).then(res => {
               if (res.data.tbBillList) {
                  this.$showMessage("呼叫成功");
                        this.$forceUpdate(); // 强制刷新当前组件
                        this.refresh(); // 保存后刷新
                  // 呼叫成功后刷新整个界面
                  this.fullReload();
               } else {
                  this.$showMessage("呼叫失败");
                  this.cancel();
@@ -170,18 +165,16 @@
            this.maEndTime = this.statusForm.maEndTime;
         },
         // 送检呼叫,item=1时设置送检呼叫时间
         stateCheck(item) {
            switch (item) {
               case 0:
                  break;
               case 1:
                  this.maShoutTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
                  this.flag = -1; // 送检呼叫有值后,flag始终为-1
                  break;
               case 2:
                  break;
            }
         },
            stateCheck(item) {
                switch (item) {
                    case 1:
                        this.maShoutTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
                        // 若不希望触发自动首检,保持 -1
                        this.flag = -1;
                        break;
                }
                // 不再写 this.flag = item;
            },
         // 根据工单号/ID获取工单状态数据
         findByOrderId() {
            this.$post({