如洲 陈
2 天以前 900e4776223c2a42d8859fc8cd635c13ffcfb3b5
pages/QC/THJ/Add.vue
@@ -14,10 +14,10 @@
               <label class="form-label">创建时间:</label>
               <input class="form-input" disabled="true" type="text" v-model="formData.createDate" />
            </view>
            <!-- <view class="form-group">
        <label class="form-label">客户名称:</label>
        <input class="form-input" disabled="true" type="text" v-model="formData.customerName"/>
      </view> -->
            <view class="form-group">
               <label class="form-label">客户名称:</label>
               <input class="form-input" disabled="true" type="text" v-model="formData.customerName"/>
            </view>
            <view class="form-group">
               <label class="form-label">退货单号:</label>
               <input class="form-input" disabled="true" type="text" v-model="formData.returnOrderNo" />
@@ -209,7 +209,8 @@
               returnNo: "", // 退货编号(用于参数传递)
               createBy: "",
               createDate: "",
               customerName: "",
               customerNo: "", // 客户编号(兼容保留)
               customerName: "", // 客户名称
               returnOrderNo: "", // 退货单号
               returnQty: "", // 退货数量
               returnReason: "", // 退货原因
@@ -299,7 +300,7 @@
         init() {
            this.$post({
            return this.$post({
               url: "/THJ/getPage",
               data: {
                  id: this.formData.id,
@@ -383,6 +384,7 @@
               }
            }).catch(err => {
               this.$showMessage("获取数据失败");
               throw err; // 重新抛出错误,确保Promise链正确处理
            });
         },
         toDetail(item) {
@@ -407,22 +409,20 @@
         },
         editRemarks() {
            if (this.remarks) {
               //saveRemarksGid
               this.$post({
                  url: "/THJ/saveRemarksGid",
                  data: {
                     gid: this.formData.id,
                     remarks: this.remarks
                  }
               }).then(res => {
                  if (res.data.tbBillList > 0) {
                     this.formData.remarks = this.remarks;
                     this.remarksPopup = !this.remarksPopup;
                     this.$showMessage("保存成功");
                  }
               })
            }
            // 允许清空不合格描述:后端接收空字符串
            this.$post({
               url: "/THJ/saveRemarksGid",
               data: {
                  gid: this.formData.id,
                  remarks: this.remarks || ""
               }
            }).then(res => {
               if (res.data.tbBillList > 0) {
                  this.formData.remarks = this.remarks || "";
                  this.remarksPopup = !this.remarksPopup;
                  this.$showMessage("保存成功");
               }
            })
         },
         toImage() {
            uni.navigateTo({
@@ -437,14 +437,23 @@
                  updateBy: this.$loginInfo.account
               }
            }).then(res => {
               // 存储过程执行成功,刷新页面数据
               this.init();
               this.$showMessage("检验项目已更新");
               this.init().then(() => {
                  this.$showMessage("检验项目已更新");
               }).catch(error => {
                  this.$showMessage("检验项目已更新,但刷新数据失败");
               }).finally(() => {
                  // 确保状态正确重置
                  this.isSubmitting = false;
                  this.$forceUpdate();
               });
            }).catch(error => {
               // 存储过程执行失败,显示错误信息
               this.$showMessage(error.message || "获取检验项目失败");
               // 不改变 isShowTable 状态,保持按钮可见
               this.tableData = [];
               // 确保状态正确重置
               this.isSubmitting = false;
               this.$forceUpdate();
            });
         },
@@ -522,9 +531,9 @@
            }).then(res => {
               let data = res.data.tbBillList[0];
               if (!data) {
                     if (!data) {
                  this.formData.customerName = "";
                        this.formData.customerName = "";
                  // 保持退货明细中的信息,不从后端覆盖
                  // this.formData.returnOrderNo = "";
                  // this.formData.returnQty = "";
@@ -533,8 +542,8 @@
                  this.tableData = [];
                  return;
               }
               //不为空时赋值
               this.formData.customerName = data.customerName;
                     //不为空时赋值
                     this.formData.customerName = data.customerName || this.formData.customerName;
               // 如果后端返回了更完整的信息,则使用后端的
               if (data.returnOrderNo) this.formData.returnOrderNo = data.returnOrderNo;
               if (data.returnQty) this.formData.returnQty = data.returnQty;
@@ -598,6 +607,11 @@
            // 获取当前用户,如果获取不到则使用默认值
            const currentUser = this.$loginInfo?.account || this.formData.createBy || "系统用户";
            
            // 直接使用API调用,不使用Promise.race
            const resetTimer = setTimeout(() => {
               this.isSubmitting = false;
               this.$forceUpdate();
            }, 1000);
            this.$post({
               url: "/THJ/submitTHJResultByProcedure",
               data: {
@@ -605,22 +619,61 @@
                  userNo: currentUser
               }
            }).then(res => {
               if (res.status === 0) {
               // 检查多种可能的响应格式
               let status = res.status;
               let message = res.message;
               // 如果外层没有status,检查data中的status
               if (status === undefined && res.data) {
                  status = res.data.status;
                  message = res.data.message || res.message;
               }
               if (status === 0) {
                  this.$showMessage("提交成功");
                  // 提交成功后刷新页面数据
                  this.init();
                  // 成功立即复位
                  this.isSubmitting = false;
                  this.$forceUpdate();
               } else {
                  this.$showMessage("提交失败:" + res.message);
                  this.$showMessage("提交失败:" + (message || "未知错误"));
                  // 失败即时复位提交状态,避免按钮一直显示提交中
                  this.isSubmitting = false;
                  this.$forceUpdate();
               }
            }).catch(error => {
               this.$showMessage("提交失败:" + (error.message || "未知错误"));
            }).finally(() => {
               let errorMessage = "未知错误";
               if (error.message) {
                  errorMessage = error.message;
               } else if (typeof error === 'string') {
                  errorMessage = error;
               } else if (error.response) {
                  errorMessage = `服务器错误: ${error.response.status}`;
               }
               this.$showMessage("提交失败:" + errorMessage);
               // 异常时也立即复位
               this.isSubmitting = false;
               this.$forceUpdate();
               // 即使出现异常也刷新页面数据
               this.init().catch(error => {
               });
            }).finally(() => {
               clearTimeout(resetTimer);
               this.isSubmitting = false;
               // 强制更新视图
               this.$forceUpdate();
            });
         }
         },
      },
      onShow() {
         //每次进入页面都会执行的方法
         // 重置提交状态,防止状态卡住
         this.isSubmitting = false;
         // 如果formData.id为空,尝试从URL参数中获取
         if (!this.formData.id) {
            // 尝试从当前页面URL中获取id参数