From ea9d117374e44d9eac0309ea2687b439f89b07b4 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 17:45:16 +0800
Subject: [PATCH] feat(mes): 生产排产新增任务报工人下拉源调整为工作站人力配置

---
 src/views/erp/purchase/order/modules/audit-modal.vue |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/src/views/erp/purchase/order/modules/audit-modal.vue b/src/views/erp/purchase/order/modules/audit-modal.vue
new file mode 100644
index 0000000..4227b61
--- /dev/null
+++ b/src/views/erp/purchase/order/modules/audit-modal.vue
@@ -0,0 +1,99 @@
+<script lang="ts" setup>
+  import type { VbenFormSchema } from '#/adapter/form';
+  import type { ErpPurchaseOrderApi } from '#/api/erp/purchase/order';
+
+  import { computed, ref } from 'vue';
+
+  import { useVbenModal } from '@vben/common-ui';
+
+  import { message } from 'ant-design-vue';
+
+  import { useVbenForm } from '#/adapter/form';
+  import { auditPurchaseOrder } from '#/api/erp/purchase/order';
+
+  const emit = defineEmits(['success']);
+
+  const pass = ref(true); // true=瀹℃牳閫氳繃 / false=瀹℃牳涓嶉�氳繃
+  const rowData = ref<ErpPurchaseOrderApi.PurchaseOrder>();
+  const getTitle = computed(() => (pass.value ? '瀹℃牳閫氳繃' : '瀹℃牳涓嶉�氳繃'));
+
+  const [Form, formApi] = useVbenForm({
+    commonConfig: {
+      componentProps: {
+        class: 'w-full',
+      },
+      formItemClass: 'col-span-1',
+      labelWidth: 130,
+    },
+    wrapperClass: 'grid-cols-1',
+    layout: 'horizontal',
+    schema: [],
+    showDefaultActions: false,
+  });
+
+  /** 瀹℃牳琛ㄥ崟瀛楁锛氫笉閫氳繃鏃跺繀椤诲~鍐欏師鍥� */
+  function useAuditSchema(): VbenFormSchema[] {
+    return [
+      {
+        fieldName: 'reviewRemark',
+        label: '瀹℃牳鎰忚',
+        component: 'Textarea',
+        formItemClass: 'col-span-1',
+        componentProps: {
+          rows: 3,
+          placeholder: pass.value
+            ? '璇疯緭鍏ュ鏍告剰瑙侊紙鍙�夛級'
+            : '璇疯緭鍏ヤ笉閫氳繃鍘熷洜锛堝繀濉級',
+        },
+        rules: pass.value ? '' : 'required',
+      },
+    ];
+  }
+
+  const [Modal, modalApi] = useVbenModal({
+    async onConfirm() {
+      const { valid } = await formApi.validate();
+      if (!valid) {
+        return;
+      }
+      modalApi.lock();
+      const values = await formApi.getValues();
+      try {
+        await auditPurchaseOrder(
+          rowData.value!.id!,
+          pass.value,
+          values.reviewRemark,
+        );
+        await modalApi.close();
+        emit('success');
+        message.success(pass.value ? '瀹℃牳閫氳繃' : '宸查��鍥烇紝鍙慨鏀瑰悗閲嶆柊鎻愪氦');
+      } finally {
+        modalApi.unlock();
+      }
+    },
+    async onOpenChange(isOpen: boolean) {
+      if (!isOpen) {
+        rowData.value = undefined;
+        return;
+      }
+      const data = modalApi.getData<{
+        pass: boolean;
+        row: ErpPurchaseOrderApi.PurchaseOrder;
+      }>();
+      rowData.value = data.row;
+      pass.value = data.pass;
+      formApi.setState({ schema: useAuditSchema() });
+      formApi.resetForm();
+    },
+  });
+</script>
+
+<template>
+  <Modal :title="getTitle" class="w-2/5">
+    <div v-if="rowData" class="mx-4 mb-4 text-sm text-gray-600">
+      <div>璁㈠崟鍗曞彿锛歿{ rowData.no }}</div>
+      <div>渚涘簲鍟嗭細{{ rowData.supplierName || '-' }}</div>
+    </div>
+    <Form class="mx-4" />
+  </Modal>
+</template>

--
Gitblit v1.9.3