7 天以前 63afcf7bd6eff23e4feee8b6d12053bd8e78abb8
src/views/customerService/expiryAfterSales/components/formDia.vue
@@ -20,7 +20,7 @@
                        v-model="form.productName"
                        placeholder="请输入产品名称"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('productName')"
                     />
                  </el-form-item>
               </el-col>
@@ -30,7 +30,7 @@
                        v-model="form.batchNumber"
                        placeholder="请输入产品批号"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('batchNumber')"
                     />
                  </el-form-item>
               </el-col>
@@ -46,7 +46,7 @@
                        type="date"
                        placeholder="请选择临期日期"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('expiryDate')"
                     />
                  </el-form-item>
               </el-col>
@@ -57,7 +57,7 @@
                        :min="0"
                        placeholder="请输入库存数量"
                        style="width: 100%"
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('stockQuantity')"
                     />
                  </el-form-item>
               </el-col>
@@ -69,7 +69,7 @@
                        v-model="form.customerName"
                        placeholder="请输入客户名称"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('customerName')"
                     />
                  </el-form-item>
               </el-col>
@@ -79,7 +79,7 @@
                        v-model="form.contactPhone"
                        placeholder="请输入联系电话"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('contactPhone')"
                     />
                  </el-form-item>
               </el-col>
@@ -91,7 +91,7 @@
                        v-model="form.problemDesc"
                        placeholder="请输入问题描述"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('problemDesc')"
                        type="textarea"
                        :rows="3"
                     />
@@ -105,7 +105,7 @@
                        v-model="form.handlerId"
                        placeholder="请选择处理人"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('handlerId')"
                        style="width: 100%"
                     >
                        <el-option
@@ -127,7 +127,7 @@
                        type="date"
                        placeholder="请选择处理日期"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('handleDate')"
                     />
                  </el-form-item>
               </el-col>
@@ -139,7 +139,7 @@
                        v-model="form.handleResult"
                        placeholder="请输入处理结果"
                        clearable
                        :disabled="operationType === 'view'"
                        :disabled="isFieldDisabled('handleResult')"
                        type="textarea"
                        :rows="3"
                     />
@@ -175,6 +175,8 @@
         return '新增临期售后';
      case 'edit':
         return '编辑临期售后';
      case 'handle':
         return '处理临期售后';
      case 'view':
         return '查看临期售后';
      default:
@@ -212,6 +214,13 @@
})
const { form, rules } = toRefs(data);
const userList = ref([])
const handleEditableFields = ["handlerId", "handleDate", "handleResult"];
const isFieldDisabled = (field) => {
   if (operationType.value === "view") return true;
   if (operationType.value === "handle") return !handleEditableFields.includes(field);
   return false;
};
// 打开弹框
const openDialog = (type, row) => {
@@ -242,7 +251,7 @@
   } else {
      // 编辑或查看时填充数据
      form.value = { ...row };
      if (type === 'edit' && !form.value.handlerId) {
      if (type === 'handle' && !form.value.handlerId) {
         form.value.handlerId = userStore.id;
         form.value.handleDate = getCurrentDate();
      }
@@ -250,36 +259,49 @@
}
const submitForm = () => {
   if (operationType.value === "handle") {
      if (!form.value.handlerId || !form.value.handleDate || !form.value.handleResult) {
         proxy.$modal.msgWarning("请填写处理人、处理日期和处理结果");
         return;
      }
      handleSubmit();
      return;
   }
   proxy.$refs["formRef"].validate(valid => {
      if (valid) {
         const submitData = {
            id: form.value.id,
            productName: form.value.productName,
            batchNumber: form.value.batchNumber,
            expireDate: form.value.expiryDate,
            stockQuantity: form.value.stockQuantity,
            customerName: form.value.customerName,
            contactPhone: form.value.contactPhone,
            disRes: form.value.problemDesc,
            status: form.value.status,
            disposeUserId: form.value.handlerId,
            disposeNickName: userList.value.find(item => item.userId === form.value.handlerId)?.nickName,
            disposeResult: form.value.handleResult,
            disDate: form.value.handleDate
         };
         const apiCall = operationType.value === 'add' ? expiryAfterSalesAdd : expiryAfterSalesUpdate;
         apiCall(submitData).then(() => {
            proxy.$modal.msgSuccess(operationType.value === 'add' ? "新增成功" : "更新成功");
            closeDia();
         }).catch(error => {
            console.error('提交数据失败:', error);
            proxy.$modal.msgError('提交数据失败,请稍后重试');
         });
         handleSubmit();
      }
   });
}
const handleSubmit = () => {
   const submitData = {
      id: form.value.id,
      productName: form.value.productName,
      batchNumber: form.value.batchNumber,
      expireDate: form.value.expiryDate,
      stockQuantity: form.value.stockQuantity,
      customerName: form.value.customerName,
      contactPhone: form.value.contactPhone,
      disRes: form.value.problemDesc,
      status: operationType.value === "handle" ? 2 : form.value.status,
      disposeUserId: form.value.handlerId,
      disposeNickName: userList.value.find(item => item.userId === form.value.handlerId)?.nickName,
      disposeResult: form.value.handleResult,
      disDate: form.value.handleDate
   };
   const apiCall = operationType.value === 'add' ? expiryAfterSalesAdd : expiryAfterSalesUpdate;
   apiCall(submitData).then(() => {
      const successText = operationType.value === "add" ? "新增成功" : operationType.value === "handle" ? "处理成功" : "更新成功";
      proxy.$modal.msgSuccess(successText);
      closeDia();
   }).catch(error => {
      console.error('提交数据失败:', error);
      proxy.$modal.msgError('提交数据失败,请稍后重试');
   });
}
// 关闭弹框
const closeDia = () => {
   proxy.resetForm("formRef");