From 35722562e9e13f0504acc15b740d042ecb810199 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 09:06:11 +0800
Subject: [PATCH] feat(mes): 添加质检指标条目类型支持并实现报告生成功能
---
src/views/mes/qc/indicator/data.ts | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/src/views/mes/qc/indicator/data.ts b/src/views/mes/qc/indicator/data.ts
index a20cc84..947d209 100644
--- a/src/views/mes/qc/indicator/data.ts
+++ b/src/views/mes/qc/indicator/data.ts
@@ -7,13 +7,16 @@
import {
DICT_TYPE,
MesAutoCodeRuleCode,
+ MesQcIndicatorItemType,
MesQcResultValueType,
} from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { Button } from 'ant-design-vue';
+import { z } from '#/adapter/form';
import { generateAutoCode } from '#/api/mes/md/autocode/record';
+import { getIndicatorGroupList } from '#/api/mes/qc/indicator';
import { QcIndicatorResultSpecificationInput } from './components';
@@ -63,6 +66,61 @@
rules: 'required',
},
{
+ fieldName: 'itemType',
+ label: '鏉$洰绫诲瀷',
+ component: 'RadioGroup',
+ componentProps: {
+ buttonStyle: 'solid',
+ optionType: 'button',
+ options: [
+ { label: '褰曞叆椤�', value: MesQcIndicatorItemType.ENTRY },
+ { label: '鍒嗙粍椤�', value: MesQcIndicatorItemType.GROUP },
+ ],
+ },
+ dependencies: {
+ triggerFields: ['itemType'],
+ // 鍒囨垚鍒嗙粍椤规椂娓呮帀鍙睘浜庡綍鍏ラ」鐨勫瓧娈碉紱鍒嗙粍椤瑰繀椤婚《绾э紝娈嬬暀鐨� parentId 浼氳鍚庣灞傜骇鏍¢獙椤跺洖鏉�
+ trigger: (values) => {
+ if (values.itemType === MesQcIndicatorItemType.GROUP) {
+ formApi?.setFieldValue('parentId', 0);
+ formApi?.setFieldValue('resultType', undefined);
+ formApi?.setFieldValue('resultSpecification', undefined);
+ }
+ },
+ },
+ rules: z.number().default(MesQcIndicatorItemType.ENTRY),
+ },
+ {
+ fieldName: 'parentId',
+ label: '鎵�灞炲垎缁�',
+ component: 'ApiTreeSelect',
+ componentProps: {
+ allowClear: true,
+ // 鐖剁骇鍊欓�夊彧鏈夊垎缁勯」锛氬垎缁勯」鍙兘鏄《绾э紝鎵�浠ヨ繖閲屾槸涓�灞傚钩閾猴紝涓嶉渶瑕� handleTree
+ api: async () => {
+ const data = await getIndicatorGroupList();
+ return [
+ {
+ id: 0,
+ name: '椤剁骇鎸囨爣',
+ children: data,
+ },
+ ];
+ },
+ childrenField: 'children',
+ labelField: 'name',
+ placeholder: '璇烽�夋嫨鎵�灞炲垎缁勶紝涓嶉�夊垯涓洪《绾ф寚鏍�',
+ treeDefaultExpandAll: true,
+ treeNodeFilterProp: 'name',
+ valueField: 'id',
+ },
+ dependencies: {
+ triggerFields: ['itemType'],
+ if: (values) => values.itemType !== MesQcIndicatorItemType.GROUP,
+ },
+ defaultValue: 0,
+ },
+ {
fieldName: 'type',
label: '妫�娴嬮」绫诲瀷',
component: 'Select',
@@ -83,6 +141,30 @@
},
},
{
+ fieldName: 'formulaText',
+ label: '鍏紡',
+ component: 'Textarea',
+ componentProps: {
+ maxlength: 500,
+ placeholder: '璇疯緭鍏ュ叕寮忥紝鎶ュ憡閲屼綔涓鸿鍒嗙粍鐨勬娴嬭姹傚睍绀�',
+ rows: 2,
+ },
+ dependencies: {
+ triggerFields: ['itemType'],
+ if: (values) => values.itemType === MesQcIndicatorItemType.GROUP,
+ },
+ rules: 'required',
+ },
+ {
+ fieldName: 'sortOrder',
+ label: '鎺掑簭鍙�',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ placeholder: '鐣欑┖鑷姩鎺掑埌鍚岀骇鏈熬',
+ },
+ },
+ {
fieldName: 'resultType',
label: '缁撴灉鍊肩被鍨�',
component: 'Select',
@@ -93,6 +175,11 @@
formApi?.setFieldValue('resultSpecification', undefined),
options: getDictOptions(DICT_TYPE.MES_QC_RESULT_TYPE, 'number'),
placeholder: '璇烽�夋嫨缁撴灉鍊肩被鍨�',
+ },
+ // 鍒嗙粍椤规病鏈夌粨鏋滃�硷紝涓嶅睍绀轰篃涓嶆牎楠岋紙钀藉簱鏃跺悗绔悓鏍蜂細娓呯┖锛�
+ dependencies: {
+ triggerFields: ['itemType'],
+ if: (values) => values.itemType !== MesQcIndicatorItemType.GROUP,
},
rules: 'required',
},
@@ -147,6 +234,19 @@
},
},
{
+ fieldName: 'itemType',
+ label: '鏉$洰绫诲瀷',
+ component: 'Select',
+ componentProps: {
+ allowClear: true,
+ options: [
+ { label: '褰曞叆椤�', value: MesQcIndicatorItemType.ENTRY },
+ { label: '鍒嗙粍椤�', value: MesQcIndicatorItemType.GROUP },
+ ],
+ placeholder: '璇烽�夋嫨鏉$洰绫诲瀷',
+ },
+ },
+ {
fieldName: 'type',
label: '妫�娴嬮」绫诲瀷',
component: 'Select',
@@ -183,6 +283,18 @@
minWidth: 160,
},
{
+ field: 'itemType',
+ title: '鏉$洰绫诲瀷',
+ width: 100,
+ slots: { default: 'itemType' },
+ },
+ {
+ field: 'parentName',
+ title: '鎵�灞炲垎缁�',
+ width: 140,
+ slots: { default: 'parentName' },
+ },
+ {
field: 'type',
title: '妫�娴嬮」绫诲瀷',
width: 120,
--
Gitblit v1.9.3