diff --git a/src/api/purchase/purchasingAccept.ts b/src/api/purchase/purchasingAccept.ts index ee54321..6ca9182 100644 --- a/src/api/purchase/purchasingAccept.ts +++ b/src/api/purchase/purchasingAccept.ts @@ -67,6 +67,73 @@ export function putObj(obj?: Object) { }) } +// ========== 履约验收流程接口 ========== + +/** + * 第一步:保存履约验收公共配置,按分期次数自动生成批次 + */ +export function saveCommonConfig(data: any) { + return request({ + url: '/purchase/purchasingAccept/saveCommonConfig', + method: 'post', + data + }) +} + +/** + * 获取履约验收公共配置及批次列表 + */ +export function getCommonConfigWithBatches(purchaseId: string) { + return request({ + url: '/purchase/purchasingAccept/commonConfigWithBatches', + method: 'get', + params: { purchaseId } + }) +} + +/** + * 第二步:更新单个批次 + */ +export function updateBatch(data: any) { + return request({ + url: '/purchase/purchasingAccept/updateBatch', + method: 'put', + data + }) +} + +/** + * 获取验收详情(含验收内容、验收小组) + */ +export function getDetail(purchaseId: string, batch?: number) { + return request({ + url: '/purchase/purchasingAccept/detail', + method: 'get', + params: { purchaseId, batch } + }) +} + +/** + * 是否允许填报方式(金额<30万) + */ +export function canFillForm(purchaseId: string) { + return request({ + url: '/purchase/purchasingAccept/canFillForm', + method: 'get', + params: { purchaseId } + }) +} + +/** + * 根据品目类型获取验收项配置 + */ +export function getAcceptanceItems(acceptanceType: string) { + return request({ + url: `/purchase/acceptanceItemConfig/listByType/${acceptanceType}`, + method: 'get' + }) +} + // ========== 工具函数 ========== /** diff --git a/src/views/finance/purchasingrequisition/accept/AcceptBatchForm.vue b/src/views/finance/purchasingrequisition/accept/AcceptBatchForm.vue new file mode 100644 index 0000000..eeb0b9f --- /dev/null +++ b/src/views/finance/purchasingrequisition/accept/AcceptBatchForm.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue b/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue new file mode 100644 index 0000000..696ac1a --- /dev/null +++ b/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/finance/purchasingrequisition/accept/PurchasingAcceptModal.vue b/src/views/finance/purchasingrequisition/accept/PurchasingAcceptModal.vue new file mode 100644 index 0000000..af263a2 --- /dev/null +++ b/src/views/finance/purchasingrequisition/accept/PurchasingAcceptModal.vue @@ -0,0 +1,405 @@ + + + + + diff --git a/src/views/finance/purchasingrequisition/index.vue b/src/views/finance/purchasingrequisition/index.vue index d67529e..850585b 100644 --- a/src/views/finance/purchasingrequisition/index.vue +++ b/src/views/finance/purchasingrequisition/index.vue @@ -191,7 +191,7 @@ - - + @@ -257,6 +264,9 @@ ref="formDialogRef" :dict-data="dictData" @refresh="getDataList" /> + + + @@ -268,10 +278,11 @@ import { getPage, delObj } from "/@/api/finance/purchasingrequisition"; import { useMessage, useMessageBox } from "/@/hooks/message"; import { getDicts } from '/@/api/admin/dict'; import { getTree } from '/@/api/finance/purchasingcategory'; -import { List, Document, DocumentCopy, Search, Collection, Money, CircleCheck, InfoFilled, Calendar, OfficeBuilding, Warning } from '@element-plus/icons-vue' +import { List, Document, DocumentCopy, Search, Collection, Money, CircleCheck, InfoFilled, Calendar, OfficeBuilding, Warning, DocumentChecked } from '@element-plus/icons-vue' // 引入组件 const FormDialog = defineAsyncComponent(() => import('./form.vue')); +const PurchasingAcceptModal = defineAsyncComponent(() => import('./accept/PurchasingAcceptModal.vue')); // 字典数据和品目树数据 const dictData = ref({ @@ -288,6 +299,7 @@ const dictData = ref({ const router = useRouter() const tableRef = ref() const formDialogRef = ref() +const acceptModalRef = ref() const searchFormRef = ref() const showSearch = ref(true) const showAddIframe = ref(false) @@ -361,6 +373,13 @@ const handleIframeMessage = (event: MessageEvent) => { } }; +/** + * 履约验收 + */ +const handleAccept = (row: any) => { + acceptModalRef.value?.open(row); +}; + /** * 删除当前行 * @param row - 当前行数据