5 小时以前 e6c042f8d26c1d8cb6e510c392679166e5caebee
feat(workorder): 添加工单表单保存功能

- 实现 handleSave 方法支持仅保存不改变状态
- 添加表单验证逻辑确保数据完整性
- 集成工单流程批量保存功能
- 更新界面按钮显示逻辑支持保存操作
- 添加操作成功提示消息
- 优化表单数据同步和快照管理
已修改1个文件
30 ■■■■■ 文件已修改
src/views/mes/pro/workorder/modules/form.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/pro/workorder/modules/form.vue
@@ -110,8 +110,32 @@
          ? '完成'
          : isCreateMode.value
            ? '新增'
            : undefined,
            : '保存',
    });
  }
  /** 仅保存(不改变状态) */
  async function handleSave() {
    const { valid } = await formApi.validate();
    if (!valid || !formData.value?.id) return;
    modalApi.lock();
    try {
      const data = (await formApi.getValues()) as MesProWorkOrderApi.WorkOrder;
      await updateWorkOrder({ ...formData.value, ...data });
      if (tempProcessList.value.length > 0) {
        const processList = tempProcessList.value.map(item => ({
          ...item,
          workOrderId: formData.value!.id,
        }));
        await batchSaveWorkOrderProcess(processList);
      }
      formData.value = { ...formData.value, ...data };
      originalSnapshot.value = JSON.stringify(await formApi.getValues());
      emit('success');
      message.success($t('ui.actionMessage.operationSuccess'));
    } finally {
      modalApi.unlock();
    }
  }
  /** 查看订单条码 */
@@ -329,6 +353,10 @@
      </Tabs>
    </template>
    <template #prepend-footer>
      <Button v-if="canConfirm"
              @click="handleSave">
        保存
      </Button>
      <Button v-if="formType === 'detail' && formData?.id"
              @click="handleBarcode">
        查看条码