huminmin
2026-06-01 a97e6a39327a857ff2a5f48856941e651cbdd050
采购审批增加仓库
已修改3个文件
50 ■■■■ 文件已修改
src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
@@ -460,6 +460,7 @@
    purchaseContractNumber: row.purchaseContractNumber || "",
    quotationNo: row.quotationNo || "",
    shippingNo: row.shippingNo || "",
    warehouse: row.warehouse || "",
  };
}
@@ -473,12 +474,13 @@
}
/** 组装审批提交 DTO */
export function buildApproveInstanceDto(row, uiResult, comment) {
export function buildApproveInstanceDto(row, uiResult, comment, warehouse) {
  const opinion = (comment || "").trim();
  return {
    id: row?.id,
    approveAction: mapApproveActionToApi(uiResult),
    approveComment: opinion || (uiResult === "approved" ? "同意" : ""),
    warehouse: warehouse || row?.warehouse || "",
  };
}
@@ -609,4 +611,4 @@
export function initTemplateAttachmentsFromSnapshot(templateSnapshot) {
  const list = templateSnapshot?.storageBlobDTOs;
  return list?.length ? JSON.parse(JSON.stringify(list)) : [];
}
}
src/views/officeProcessAutomation/ApproveManage/approve-list/index.vue
@@ -298,6 +298,20 @@
        <InstanceFlowDisplay :tasks="approveDialog.row?.tasks" :nodes="approveDialog.row?.flowNodes" />
      </div>
      <el-form label-width="100px" class="mt16">
        <el-form-item label="仓库" v-if="isPurchaseApproval">
          <el-select
            v-model="approveDialog.warehouse"
            placeholder="请选择仓库"
            clearable
          >
            <el-option
              v-for="item in warehouseOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="审批意见" required>
          <el-input
            v-model="approveOpinion"
@@ -335,7 +349,8 @@
<script setup>
import { Plus, RefreshRight } from "@element-plus/icons-vue";
import { ElMessage } from "element-plus";
import { computed, onMounted, ref } from "vue";
import { computed, onMounted, ref, reactive } from "vue";
import { getDicts } from "@/api/system/dict/data";
import { APPROVAL_MODULE_KEYS } from "../approve-shared/approvalModuleRegistry.js";
import FinReimburseApprovePanel from "../../ReimburseManage/shared/components/FinReimburseApprovePanel.vue";
import ApprovalTemplateFormSection from "../approve-shared/components/ApprovalTemplateFormSection.vue";
@@ -400,6 +415,25 @@
  openDetail,
  openApprove,
} = al;
// 仓库选项
const warehouseOptions = ref([]);
// 获取仓库字典数据
const loadWarehouseOptions = async () => {
  const res = await getDicts("warehouse");
  if (res.code === 200) {
    warehouseOptions.value = res.data.map((item) => ({
      label: item.dictLabel,
      value: item.dictValue,
    }));
  }
};
// 是否为采购审批
const isPurchaseApproval = computed(() => {
  return Number(approveDialog.row?.businessType) === 5;
});
const { flowUserOptions, loadFlowUsers } = useFlowUserOptions();
@@ -473,6 +507,7 @@
onMounted(() => {
  loadFlowUsers();
  loadSearchBusinessTypeOptions();
  loadWarehouseOptions();
  handleQuery();
});
</script>
src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
@@ -82,7 +82,7 @@
  const detailRow = ref({});
  const detailData = ref({});
  const approveDialog = reactive({ visible: false, row: null });
  const approveDialog = reactive({ visible: false, row: null, warehouse: ''});
  const approveOpinion = ref("");
  const approveSubmitting = ref(false);
@@ -366,6 +366,7 @@
    }
    approveDialog.row = { ...row };
    approveOpinion.value = "";
    approveDialog.warehouse = row?.warehouse || '';
    const bizType = Number(row.businessType);
    // 报价审批:用审批事由字段承载的"报价单号"去查报价列表
    if (bizType === 6) {
@@ -642,7 +643,7 @@
    approveSubmitting.value = true;
    try {
      await approveApprovalInstance(
        buildApproveInstanceDto(row, result, approveOpinion.value)
        buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse)
      );
      reimburseDialog.visible = false;
      await fetchApprovalList();
@@ -665,7 +666,7 @@
    approveSubmitting.value = true;
    try {
      await approveApprovalInstance(
        buildApproveInstanceDto(row, result, approveOpinion.value)
        buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse)
      );
      approveDialog.visible = false;
      await fetchApprovalList();