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