| | |
| | | purchaseContractNumber: row.purchaseContractNumber || "", |
| | | quotationNo: row.quotationNo || "", |
| | | shippingNo: row.shippingNo || "", |
| | | warehouse: row.warehouse || "", |
| | | }; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** 组装审批提交 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 || "", |
| | | }; |
| | | } |
| | | |
| | |
| | | export function initTemplateAttachmentsFromSnapshot(templateSnapshot) { |
| | | const list = templateSnapshot?.storageBlobDTOs; |
| | | return list?.length ? JSON.parse(JSON.stringify(list)) : []; |
| | | } |
| | | } |
| | |
| | | <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" |
| | |
| | | <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"; |
| | |
| | | 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(); |
| | | |
| | |
| | | onMounted(() => { |
| | | loadFlowUsers(); |
| | | loadSearchBusinessTypeOptions(); |
| | | loadWarehouseOptions(); |
| | | handleQuery(); |
| | | }); |
| | | </script> |
| | |
| | | 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); |
| | | |
| | |
| | | } |
| | | approveDialog.row = { ...row }; |
| | | approveOpinion.value = ""; |
| | | approveDialog.warehouse = row?.warehouse || ''; |
| | | const bizType = Number(row.businessType); |
| | | // 报价审批:用审批事由字段承载的"报价单号"去查报价列表 |
| | | if (bizType === 6) { |
| | |
| | | approveSubmitting.value = true; |
| | | try { |
| | | await approveApprovalInstance( |
| | | buildApproveInstanceDto(row, result, approveOpinion.value) |
| | | buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse) |
| | | ); |
| | | reimburseDialog.visible = false; |
| | | await fetchApprovalList(); |
| | |
| | | approveSubmitting.value = true; |
| | | try { |
| | | await approveApprovalInstance( |
| | | buildApproveInstanceDto(row, result, approveOpinion.value) |
| | | buildApproveInstanceDto(row, result, approveOpinion.value, approveDialog.warehouse) |
| | | ); |
| | | approveDialog.visible = false; |
| | | await fetchApprovalList(); |