From 27c8277d717b34b55f3ea967027b53b067f77df3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 20 八月 2026 16:58:49 +0800
Subject: [PATCH] feat 功能变更

---
 src/views/erp/purchase/request/data.ts |  167 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 135 insertions(+), 32 deletions(-)

diff --git a/src/views/erp/purchase/request/data.ts b/src/views/erp/purchase/request/data.ts
index 34682d6..cc4745b 100644
--- a/src/views/erp/purchase/request/data.ts
+++ b/src/views/erp/purchase/request/data.ts
@@ -1,11 +1,10 @@
 import type { VbenFormSchema } from '#/adapter/form';
 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
 
-import { DICT_TYPE } from '../../../../packages/constants/src';
-import { getDictOptions } from '../../../../packages/effects/hooks/src';
-import { erpPriceInputFormatter } from '../../../../packages/utils/src';
+import { DICT_TYPE } from '@vben/constants';
+import { getDictOptions } from '@vben/hooks';
 
-import { getSupplierSimpleList } from '#/api/erp/purchase/supplier';
+import { getSupplierSimpleList } from '#/api/srm/supplier';
 import { getSimpleUserList } from '#/api/system/user';
 import { getRangePickerDefaultProps } from '#/utils';
 
@@ -14,10 +13,11 @@
 
 /** 鐘舵�佸父閲� */
 export const PURCHASE_REQUEST_STATUS = {
-  PENDING: 0, // 寰呭鎵�
-  APPROVED: 1, // 宸插鎵�
-  REJECTED: 2, // 宸叉嫆缁�
-  CONVERTED: 3, // 宸茶浆璁㈠崟
+  DRAFT: 0, // 鏈彁浜わ紙鑽夌锛�
+  PROCESSING: 10, // 瀹℃壒涓�
+  APPROVED: 20, // 瀹℃牳閫氳繃
+  REJECTED: 30, // 瀹℃牳涓嶉�氳繃
+  CANCELLED: 40, // 宸插彇娑�
 };
 
 /** 琛ㄥ崟鐨勯厤缃」 */
@@ -48,7 +48,7 @@
         placeholder: '閫夋嫨鐢宠鏃堕棿',
         showTime: true,
         format: 'YYYY-MM-DD HH:mm:ss',
-        valueFormat: 'x',
+        valueFormat: 'YYYY-MM-DD HH:mm:ss',
         disabled: formType === 'detail',
       },
       rules: 'required',
@@ -66,14 +66,50 @@
         valueField: 'id',
         disabled: formType === 'detail',
       },
+      rules: 'required',
     },
     {
-      fieldName: 'reason',
+      fieldName: 'discountPercent',
+      label: '浼樻儬鐜�(%)',
+      component: 'InputNumber',
+      componentProps: {
+        placeholder: '璇疯緭鍏ヤ紭鎯犵巼',
+        min: 0,
+        max: 100,
+        precision: 2,
+        disabled: formType === 'detail',
+      },
+    },
+    {
+      fieldName: 'depositPrice',
+      label: '瀹氶噾',
+      component: 'InputNumber',
+      componentProps: {
+        placeholder: '璇疯緭鍏ュ畾閲�',
+        min: 0,
+        precision: 2,
+        disabled: formType === 'detail',
+      },
+    },
+    {
+      fieldName: 'requestReason',
       label: '鐢宠鐞嗙敱',
       component: 'Textarea',
       componentProps: {
         placeholder: '璇疯緭鍏ョ敵璇风悊鐢�',
         autoSize: { minRows: 1, maxRows: 1 },
+        disabled: formType === 'detail',
+      },
+      formItemClass: 'col-span-2',
+    },
+    {
+      fieldName: 'blobIds',
+      label: '闄勪欢',
+      component: 'FileUpload',
+      componentProps: {
+        valueKey: 'id',
+        maxNumber: 10,
+        multiple: true,
         disabled: formType === 'detail',
       },
       formItemClass: 'col-span-2',
@@ -111,28 +147,30 @@
       slots: { default: 'productId' },
     },
     {
-      field: 'productBarCode',
-      title: '鏉$爜',
-      minWidth: 120,
-    },
-    {
       field: 'productUnitName',
       title: '鍗曚綅',
       minWidth: 80,
     },
     {
-      field: 'requestCount',
-      title: '鐢宠鏁伴噺',
+      field: 'count',
+      title: '鏁伴噺',
       minWidth: 120,
       fixed: 'right',
-      slots: { default: 'requestCount' },
+      slots: { default: 'count' },
     },
     {
-      field: 'estimatedPrice',
-      title: '棰勪及鍗曚环',
+      field: 'inCount',
+      title: '鍏ュ簱鏁伴噺',
+      minWidth: 100,
+      fixed: 'right',
+      formatter: 'formatAmount3',
+    },
+    {
+      field: 'productPrice',
+      title: '鍗曚环锛堝弬鑰冧环锛�',
       minWidth: 120,
       fixed: 'right',
-      slots: { default: 'estimatedPrice' },
+      slots: { default: 'productPrice' },
     },
     {
       field: 'totalPrice',
@@ -142,17 +180,31 @@
       formatter: 'formatAmount2',
     },
     {
-      field: 'requiredDate',
+      field: 'taxPercent',
+      title: '绋庣巼(%)',
+      minWidth: 100,
+      fixed: 'right',
+      slots: { default: 'taxPercent' },
+    },
+    {
+      field: 'demandTime',
       title: '闇�姹傛棩鏈�',
       minWidth: 140,
       fixed: 'right',
-      slots: { default: 'requiredDate' },
+      slots: { default: 'demandTime' },
     },
     {
       field: 'remark',
       title: '澶囨敞',
       minWidth: 150,
       slots: { default: 'remark' },
+    },
+    {
+      field: 'qcCheckFlag',
+      title: '鏄惁璐ㄦ',
+      minWidth: 80,
+      fixed: 'right',
+      slots: { default: 'qcCheckFlag' },
     },
     {
       title: '鎿嶄綔',
@@ -199,7 +251,7 @@
       },
     },
     {
-      fieldName: 'requesterId',
+      fieldName: 'requestUserId',
       label: '鐢宠浜�',
       component: 'ApiSelect',
       componentProps: {
@@ -217,12 +269,27 @@
       component: 'Select',
       componentProps: {
         options: [
-          { label: '寰呭鎵�', value: 0 },
-          { label: '宸插鎵�', value: 1 },
-          { label: '宸叉嫆缁�', value: 2 },
-          { label: '宸茶浆璁㈠崟', value: 3 },
+          { label: '鏈彁浜�', value: 0 },
+          { label: '瀹℃壒涓�', value: 10 },
+          { label: '瀹℃牳閫氳繃', value: 20 },
+          { label: '瀹℃牳涓嶉�氳繃', value: 30 },
+          { label: '宸插彇娑�', value: 40 },
         ],
         placeholder: '璇烽�夋嫨鐘舵��',
+        allowClear: true,
+      },
+    },
+    {
+      fieldName: 'inStatus',
+      label: '鍏ュ簱鐘舵��',
+      component: 'Select',
+      componentProps: {
+        options: [
+          { label: '鏈叆搴�', value: 0 },
+          { label: '閮ㄥ垎鍏ュ簱', value: 1 },
+          { label: '鍏ㄩ儴鍏ュ簱', value: 2 },
+        ],
+        placeholder: '璇烽�夋嫨鍏ュ簱鐘舵��',
         allowClear: true,
       },
     },
@@ -255,24 +322,60 @@
       formatter: 'formatDate',
     },
     {
-      field: 'requesterName',
+      field: 'requestUserName',
       title: '鐢宠浜�',
       minWidth: 120,
     },
     {
-      field: 'estimatedAmount',
+      field: 'requestDeptName',
+      title: '鐢宠閮ㄩ棬',
+      minWidth: 120,
+    },
+    {
+      field: 'totalCount',
+      title: '鐢宠鏁伴噺',
+      minWidth: 120,
+      formatter: 'formatAmount3',
+    },
+    {
+      field: 'totalPrice',
       title: '棰勪及閲戦',
       formatter: 'formatAmount2',
       minWidth: 120,
     },
     {
+      field: 'depositPrice',
+      title: '瀹氶噾',
+      formatter: 'formatAmount2',
+      minWidth: 120,
+    },
+    {
+      field: 'productNames',
+      title: '鐢宠浜у搧',
+      minWidth: 150,
+      showOverflow: 'tooltip',
+    },
+    {
+      field: 'orderNo',
+      title: '閲囪喘璁㈠崟',
+      minWidth: 180,
+    },
+    {
       field: 'status',
       title: '鐘舵��',
       minWidth: 120,
+      fixed: 'right',
       slots: { default: 'status' },
     },
     {
-      field: 'reason',
+      field: 'inStatus',
+      title: '鍏ュ簱鐘舵��',
+      minWidth: 100,
+      fixed: 'right',
+      slots: { default: 'inStatus' },
+    },
+    {
+      field: 'requestReason',
       title: '鐢宠鐞嗙敱',
       minWidth: 150,
       showOverflow: 'tooltip',
@@ -285,7 +388,7 @@
     },
     {
       title: '鎿嶄綔',
-      width: 200,
+      width: 240,
       fixed: 'right',
       slots: { default: 'actions' },
     },

--
Gitblit v1.9.3