From 173855b299e89930b5ea2ff9a9295fde9d0f55b5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:51:43 +0800
Subject: [PATCH] feat: 同步质检、生产、销售、财务与人事前端功能

---
 src/views/mes/process-design/process/data.ts |  198 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 198 insertions(+), 0 deletions(-)

diff --git a/src/views/mes/process-design/process/data.ts b/src/views/mes/process-design/process/data.ts
index bb21dc5..4956cac 100644
--- a/src/views/mes/process-design/process/data.ts
+++ b/src/views/mes/process-design/process/data.ts
@@ -20,6 +20,38 @@
 /** 琛ㄥ崟绫诲瀷 */
 export type FormType = 'create' | 'detail' | 'update';
 
+/** 璁¤垂绫诲瀷锛�1-璁℃椂 2-璁′欢 */
+export const PROCESS_BILLING_TYPE_OPTIONS = [
+  { label: '璁℃椂锛堝厓/灏忔椂锛�', value: 1 },
+  { label: '璁′欢锛堝厓/浠讹級', value: 2 },
+];
+
+/** 璁¤垂绫诲瀷鍚嶇О */
+export function getBillingTypeLabel(billingType?: number) {
+  return (
+    PROCESS_BILLING_TYPE_OPTIONS.find((item) => item.value === billingType)
+      ?.label ?? '-'
+  );
+}
+
+/** 宸ヨ祫瀹氶鍗曚綅 */
+export function getWageRateUnit(billingType?: number) {
+  return billingType === 1 ? '鍏�/灏忔椂' : '鍏�/浠�';
+}
+
+/** 鏍囧噯宸ユ椂璁$畻鏂瑰紡 */
+export const STD_TIME_MODE_OPTIONS = [
+  { label: '鏈惎鐢�', value: 0 },
+  { label: '杞�� 脳 鑺傝窛', value: 1 },
+  { label: '绾块�熷害鐩村彇', value: 2 },
+  { label: '婊¢�熺櫨鍒嗘瘮 脳 鑺傝窛', value: 3 },
+];
+
+/** 鏍囧噯宸ユ椂璁$畻鏂瑰紡鍚嶇О */
+export function getStdTimeModeLabel(mode?: number) {
+  return STD_TIME_MODE_OPTIONS.find((item) => item.value === mode)?.label ?? '-';
+}
+
 /** 鏂板/淇敼鐢熶骇宸ュ簭鐨勮〃鍗� */
 export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
   return [
@@ -75,6 +107,146 @@
         options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'),
       },
       rules: z.number().default(CommonStatusEnum.ENABLE),
+    },
+    {
+      fieldName: 'billingType',
+      label: '璁¤垂绫诲瀷',
+      component: 'Select',
+      componentProps: {
+        options: PROCESS_BILLING_TYPE_OPTIONS,
+        placeholder: '璇烽�夋嫨璁¤垂绫诲瀷',
+      },
+      rules: z.number().default(2),
+    },
+    {
+      fieldName: 'wageRate',
+      label: '宸ヨ祫瀹氶',
+      component: 'InputNumber',
+      dependencies: {
+        triggerFields: ['billingType'],
+        componentProps: (values: Record<string, unknown>) => ({
+          addonAfter: getWageRateUnit(values.billingType as number),
+          placeholder:
+            values.billingType === 1
+              ? '璇疯緭鍏ュ皬鏃跺伐璧勫畾棰�'
+              : '璇疯緭鍏ヨ浠跺崟浠�',
+        }),
+      },
+      componentProps: {
+        class: 'w-full',
+        min: 0,
+        precision: 2,
+      },
+      rules: z.number().min(0, '宸ヨ祫瀹氶涓嶈兘灏忎簬 0'),
+    },
+    {
+      fieldName: 'auxHourlyRate',
+      label: '杈呭姪灏忔椂宸ヨ祫',
+      component: 'InputNumber',
+      componentProps: {
+        addonAfter: '鍏�/灏忔椂',
+        class: 'w-full',
+        min: 0,
+        precision: 4,
+        placeholder: '杈呭姪宸ユ椂鎸夊伐搴忚钖椂鐨勫崟浠凤紝濡傛崲绾�',
+      },
+      rules: z.number().min(0, '杈呭姪灏忔椂宸ヨ祫涓嶈兘灏忎簬 0').default(0),
+    },
+    {
+      fieldName: 'stdTimeMode',
+      label: '宸ユ椂璁$畻鏂瑰紡',
+      component: 'Select',
+      componentProps: {
+        options: STD_TIME_MODE_OPTIONS,
+        placeholder: '璇烽�夋嫨鏍囧噯宸ユ椂璁$畻鏂瑰紡',
+      },
+      rules: z.number().default(0),
+    },
+    {
+      fieldName: 'stdTimeFactor',
+      label: '鎶樼畻绯绘暟',
+      component: 'InputNumber',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) =>
+          values.stdTimeMode === 1 || values.stdTimeMode === 3,
+      },
+      componentProps: {
+        min: 0,
+        precision: 4,
+        placeholder: '鏉熶笣濉� 1.8锛屽叾浣欏~ 1',
+      },
+      rules: z.number().min(0).default(1),
+    },
+    {
+      fieldName: 'maxRpm',
+      label: '鏈哄彴婊¤浆閫�',
+      component: 'InputNumber',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) => values.stdTimeMode === 3,
+      },
+      componentProps: {
+        addonAfter: 'r/min',
+        min: 0,
+        precision: 0,
+        placeholder: '璇疯緭鍏ユ満鍙版弧杞��',
+      },
+      rules: z.number().min(0).optional().default(0),
+    },
+    {
+      fieldName: 'stdRpmParamCode',
+      label: '杞�熷弬鏁扮紪鐮�',
+      component: 'Input',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) =>
+          values.stdTimeMode === 1 || values.stdTimeMode === 3,
+      },
+      componentProps: {
+        maxLength: 64,
+        placeholder: '濉啓鈥滃伐搴忓弬鏁扮鐞嗏�濋噷缁戝畾鐨勫弬鏁扮紪鐮侊紝濡� RPM',
+      },
+    },
+    {
+      fieldName: 'stdPitchParamCode',
+      label: '鑺傝窛鍙傛暟缂栫爜',
+      component: 'Input',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) =>
+          values.stdTimeMode === 1 || values.stdTimeMode === 3,
+      },
+      componentProps: {
+        maxLength: 64,
+        placeholder: '濉啓鍙傛暟缂栫爜锛屽 PITCH',
+      },
+    },
+    {
+      fieldName: 'stdSpeedParamCode',
+      label: '绾块�熷害鍙傛暟缂栫爜',
+      component: 'Input',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) => values.stdTimeMode === 2,
+      },
+      componentProps: {
+        maxLength: 64,
+        placeholder: '濉啓鍙傛暟缂栫爜锛堢背/鍒嗭級锛屽 SPEED',
+      },
+    },
+    {
+      fieldName: 'stdPercentParamCode',
+      label: '杞�熺櫨鍒嗘瘮缂栫爜',
+      component: 'Input',
+      dependencies: {
+        triggerFields: ['stdTimeMode'],
+        show: (values: Record<string, unknown>) => values.stdTimeMode === 3,
+      },
+      componentProps: {
+        maxLength: 64,
+        placeholder: '濉啓鍙傛暟缂栫爜锛�%锛夛紝濡� RPM_PERCENT',
+      },
     },
     {
       fieldName: 'attention',
@@ -148,6 +320,32 @@
     },
     { field: 'name', title: '宸ュ簭鍚嶇О', minWidth: 180 },
     {
+      field: 'billingType',
+      title: '璁¤垂绫诲瀷',
+      width: 120,
+      formatter: ({ cellValue }) => getBillingTypeLabel(cellValue),
+    },
+    {
+      field: 'wageRate',
+      title: '宸ヨ祫瀹氶',
+      width: 120,
+      formatter: ({ cellValue, row }) =>
+        cellValue == null ? '-' : `${cellValue} ${getWageRateUnit(row.billingType)}`,
+    },
+    {
+      field: 'auxHourlyRate',
+      title: '杈呭姪灏忔椂宸ヨ祫',
+      width: 130,
+      formatter: ({ cellValue }) =>
+        cellValue == null ? '-' : `${cellValue} 鍏�/灏忔椂`,
+    },
+    {
+      field: 'stdTimeMode',
+      title: '宸ユ椂璁$畻鏂瑰紡',
+      width: 150,
+      formatter: ({ cellValue }) => getStdTimeModeLabel(cellValue),
+    },
+    {
       field: 'status',
       title: '鐘舵��',
       width: 100,

--
Gitblit v1.9.3