修复ts警告,增加供应商评价模板管理一级指标二级指标的禁用逻辑
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { Card, Table, Button, Input, Row, Col, message, Space, Form, DatePicker, Select, Tag } from 'antd';
|
||||
import { Table, Button, Input, message, Space, Form, DatePicker, Select } from 'antd';
|
||||
import { history } from 'umi';
|
||||
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
|
||||
import { getAnnualResultTaskList } from '@/servers/api/supplierAnnual';
|
||||
|
@ -15,10 +15,6 @@ import {
|
||||
import { ArrowLeftOutlined } from '@ant-design/icons';
|
||||
import { getAnnualResultReviewDetail } from '@/servers/api/supplierAnnual';
|
||||
import {
|
||||
AnnualReviewStatus,
|
||||
AnnualReviewStatusText,
|
||||
AnnualReviewStatusColor,
|
||||
ExamineResult,
|
||||
ExamineResultText,
|
||||
ExamineResultColor,
|
||||
} from '@/dicts/supplierAnnualReviewDict';
|
||||
@ -32,11 +28,9 @@ const SupplierAnnualResultDetail: React.FC = () => {
|
||||
const [scoreResults, setScoreResults] = useState<supplierAnnualResult.TaskIndicatorVo[]>([]);
|
||||
|
||||
// 从路由获取ID和其他参数
|
||||
const { id, supplierId, supplierName, taskId, annualTheme } = history.location.state as {
|
||||
const { id, supplierName, annualTheme } = history.location.state as {
|
||||
id: string;
|
||||
supplierId: string;
|
||||
supplierName: string;
|
||||
taskId: string;
|
||||
annualTheme: string;
|
||||
};
|
||||
|
||||
|
@ -5,14 +5,11 @@ import {
|
||||
Card,
|
||||
Table,
|
||||
Input,
|
||||
Row,
|
||||
Col,
|
||||
message,
|
||||
Space,
|
||||
Form,
|
||||
Select,
|
||||
Typography,
|
||||
Tag,
|
||||
DatePicker
|
||||
} from 'antd';
|
||||
import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons';
|
||||
|
@ -5,8 +5,6 @@ import {
|
||||
Card,
|
||||
Table,
|
||||
Input,
|
||||
Row,
|
||||
Col,
|
||||
message,
|
||||
Space,
|
||||
Form,
|
||||
@ -19,7 +17,6 @@ import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/i
|
||||
import { getAnnualResultReviewList } from '@/servers/api/supplierAnnual';
|
||||
import styles from './supplierAnnualResult.less';
|
||||
import {
|
||||
AnnualReviewStatus,
|
||||
AnnualReviewStatusText,
|
||||
AnnualReviewStatusColor
|
||||
} from '@/dicts/supplierAnnualReviewDict';
|
||||
|
@ -57,11 +57,6 @@ const BasicInfoStepComponent = (props: BasicInfoStepProps) => {
|
||||
// 获取评价模板和初始化表单数据
|
||||
useEffect(() => {
|
||||
fetchTemplates();
|
||||
|
||||
// 初始化表单数据
|
||||
if (taskFormData) {
|
||||
form.setFieldsValue(taskFormData);
|
||||
}
|
||||
}, []);
|
||||
|
||||
// 当taskFormData变化时更新表单值
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect, forwardRef, useImperativeHandle, useRef } from 'react';
|
||||
import { Card, Button, Space, Form } from 'antd';
|
||||
import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';
|
||||
import { Card, Button, Space } from 'antd';
|
||||
import styles from '../supplierAnnualTaskManageAdd.less';
|
||||
import {
|
||||
SupplierTable,
|
||||
@ -60,8 +60,6 @@ const EvaluatorSelectStepComponent = (props: EvaluatorSelectStepProps) => {
|
||||
// 模态框模式:SELECT(选择模式) 或 VIEW(查看模式)
|
||||
const [modalMode, setModalMode] = useState<ModalMode>(ModalMode.SELECT);
|
||||
|
||||
// 表单实例,用于权重设置
|
||||
const [form] = Form.useForm();
|
||||
const [filterUserIds, setFilterUserIds] = useState<string[]>([]);
|
||||
useEffect(() => {
|
||||
if (mode === 'division' && taskFormData.userList && taskFormData.userList.length > 0) {
|
||||
|
@ -1,11 +1,8 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import {
|
||||
Card,
|
||||
Table,
|
||||
Button,
|
||||
Input,
|
||||
Row,
|
||||
Col,
|
||||
message,
|
||||
Space,
|
||||
Form,
|
||||
@ -13,15 +10,12 @@ import {
|
||||
Select,
|
||||
Tag,
|
||||
Tooltip,
|
||||
Modal,
|
||||
} from 'antd';
|
||||
import { history } from 'umi';
|
||||
import {
|
||||
SearchOutlined,
|
||||
DeleteOutlined,
|
||||
PlusOutlined,
|
||||
EditOutlined,
|
||||
EyeOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import { getAnnualTaskList } from '@/servers/api/supplierAnnual';
|
||||
import {
|
||||
@ -30,8 +24,6 @@ import {
|
||||
AnnualTaskStatusColor,
|
||||
AnnualTaskStatusOptions,
|
||||
} from '@/dicts/supplierAnnualTaskManageDict';
|
||||
import moment from 'moment';
|
||||
import styles from './supplierAnnualTaskManage.less';
|
||||
|
||||
const { RangePicker } = DatePicker;
|
||||
const { Option } = Select;
|
||||
@ -86,6 +78,7 @@ const SupplierAnnualTaskManage: React.FC = () => {
|
||||
// 首次加载获取数据
|
||||
useEffect(() => {
|
||||
fetchList({ current: 1, pageSize: 10 });
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
// 表格变化处理
|
||||
|
@ -25,7 +25,6 @@ import {
|
||||
CategoryLimitationTypeText,
|
||||
TemplateStatus,
|
||||
TemplateStatusText,
|
||||
StarLevel,
|
||||
IndicatorAddOption
|
||||
} from '@/dicts/supplierTemplateDict';
|
||||
import {
|
||||
@ -71,6 +70,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
|
||||
const [indicatorStMore, setIndicatorStMore] = useState<string>(IndicatorAddOption.CAN_ADD);
|
||||
const [indicatorNdMore, setIndicatorNdMore] = useState<string>(IndicatorAddOption.CAN_ADD);
|
||||
|
||||
|
||||
// 获取路由传递的数据
|
||||
const location = useLocation<LocationState>();
|
||||
|
||||
@ -122,12 +122,10 @@ const SupplierTemplateManageAdd: React.FC = () => {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
// 初始化编辑数据
|
||||
useEffect(() => {
|
||||
// 获取所有模板列表
|
||||
fetchTemplateList();
|
||||
|
||||
// 如果是编辑模式,加载编辑数据
|
||||
if (location.state?.isEdit && location.state?.editData) {
|
||||
setIsEdit(true);
|
||||
@ -242,19 +240,30 @@ const SupplierTemplateManageAdd: React.FC = () => {
|
||||
// 处理模板选择
|
||||
const handleTemplateSelect = async (templateId: string) => {
|
||||
// 如果是新建模式,并且选择了模板,获取模板详情作为基础数据
|
||||
// 要求,如果选择模板时,需读取模板中的 indicatorStMore(一级指标是否可编辑) 和 indicatorNdMore(二级指标是否可编辑) 的值
|
||||
// 来动态设置 EvaluateTemplateTable 组件的value(templateData) 中的disable属性
|
||||
// 注意 当一级指标禁用时,需要判断指标类型是通用类型的才禁用,其他类型的指标不进行禁用
|
||||
if (!isEdit && templateId) {
|
||||
try {
|
||||
setLoading(true);
|
||||
const res = await getTemplateDetail(templateId);
|
||||
if (res.success && res.data) {
|
||||
// 一级指标是否可编辑
|
||||
const indicatorStMoreStatus = res.data.indicatorStMore === IndicatorAddOption.CANNOT_ADD;
|
||||
// 二级指标是否可编辑
|
||||
const indicatorNdMoreStatus = res.data.indicatorNdMore === IndicatorAddOption.CANNOT_ADD;
|
||||
|
||||
// 只复制指标数据,不复制基础信息
|
||||
if (res.data.indicatorStList && res.data.indicatorStList.length > 0) {
|
||||
// 复制模板数据,但清除ID以创建新记录
|
||||
const copiedIndicatorStList = JSON.parse(JSON.stringify(res.data.indicatorStList)).map((stItem: SupplierTemplateManage.IndicatorSt) => {
|
||||
// 通用类型指标禁用,其他类型指标不禁用 (如果当前是true 表示已禁用, 需要同时满足当前指标类型是通用类型)
|
||||
stItem.disabled = indicatorStMoreStatus && stItem.indicatorType === "generalType";
|
||||
// 删除ID而不是设为undefined
|
||||
delete stItem.id;
|
||||
// delete stItem.id;
|
||||
stItem.indicatorNdList = stItem.indicatorNdList.map((ndItem: SupplierTemplateManage.IndicatorNd) => {
|
||||
delete ndItem.id;
|
||||
ndItem.disabled = indicatorNdMoreStatus
|
||||
// delete ndItem.id;
|
||||
return ndItem;
|
||||
});
|
||||
return stItem;
|
||||
@ -372,7 +381,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
|
||||
<Form.Item
|
||||
label={intl.formatMessage({ id: 'supplierTemplateManage.form.status' })}
|
||||
name="status"
|
||||
rules={[{ required: true, message: intl.formatMessage({ id: 'supplierTemplateManage.rule.status' }, { defaultMessage: '请选择是否启用' }) }]}
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Radio.Group>
|
||||
<Radio value={TemplateStatus.DRAFT}>{TemplateStatusText[TemplateStatus.DRAFT]}</Radio>
|
||||
|
Reference in New Issue
Block a user