5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
1
2
3
4
|
/*
* @Author: wangqiang@feewee.cn
* @Date: 2022-11-19 10:58:19
* @LastEditors: wangqiang@feewee.cn
|
a59d9c74
王强
优化 学习项目设置,选择题库对接适...
|
5
|
* @LastEditTime: 2023-02-10 14:50:19
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
6
|
*/
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
7
8
|
import useInitial from "@/hooks/useInitail";
import usePagination from "@/hooks/usePagination";
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
9
10
|
import {
AbilitDraftType,
|
a59d9c74
王强
优化 学习项目设置,选择题库对接适...
|
11
|
getQuestionBankSelectListApi,
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
12
13
14
15
16
|
getUserAbilityTypeListApi,
} from "@/pages/ehr/ProgramOfStudy/api";
import { useEffect, useMemo, useRef, useState } from "react";
import { getStudyListApi, checkStudyCanEditApi } from "./api";
import { getAbilityDraftListApi } from "../api";
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
17
|
import { Form, message } from "antd";
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
18
|
|
10af77fc
王强
优化 学习项目设置,部分交互逻辑;
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// 使用角色类型 1全部角色 2部分角色
export enum RoleRangeType {
"全部角色" = 1,
"部分角色",
}
// 适配类型 1品牌 2车系 3门店 4通用
export enum AdapterType {
"品牌" = 1,
"车系",
"部分门店",
"全部门店",
}
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
33
|
// 考核方式类型 1考试 2实操 3考试+实操
|
10af77fc
王强
优化 学习项目设置,部分交互逻辑;
|
34
|
export enum AbilityType {
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
35
|
"考试" = 1,
|
10af77fc
王强
优化 学习项目设置,部分交互逻辑;
|
36
|
"实操",
|
10af77fc
王强
优化 学习项目设置,部分交互逻辑;
|
37
38
39
|
"考试+实操",
}
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
40
41
|
export default function useStore() {
const [listType, setListType] = useState<"列表" | "草稿">("列表");
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
42
43
44
45
46
|
const abilityTypeInitial = useInitial(
getUserAbilityTypeListApi,
[],
undefined
);
|
45ae10c3
王强
修改 学习项目设置,默认查询生效中...
|
47
|
const listPagination = usePagination(getStudyListApi, { status: 1 });
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
48
49
50
|
const draftPagination = usePagination(getAbilityDraftListApi, {
type: AbilitDraftType.学习项目,
});
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
51
52
53
54
55
56
57
|
const pagination = useMemo(() => {
if (listType === "列表") {
return listPagination;
} else {
return draftPagination;
}
}, [listType, listPagination, draftPagination]);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
58
|
const questionBankInitial = useInitial(getQuestionBankSelectListApi, [], {});
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
59
60
61
|
const [current, setCureent] = useState<EHrProgramOfStudySettings.ListVO>();
const [visible, setVisible] = useState(false);
const [isView, setIsView] = useState(false);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
62
|
const [form] = Form.useForm();
|
1550b11e
王强
完善 学习项目设置,所有主要逻辑与...
|
63
64
65
66
|
const [modalInfo, setModalInfo] = useState<{
visible: boolean;
title?: "查看适用角色" | "查看适用范围";
item?: EHrProgramOfStudySettings.ListVO;
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
67
68
|
isList?: boolean; // 是否列表进入查看
isInit?: boolean; // 如果查接口,是否返回结果了
|
1550b11e
王强
完善 学习项目设置,所有主要逻辑与...
|
69
70
71
|
}>({ visible: false });
const [approvalProgressModalInfo, setApprovalProgressModalInfo] =
useState<PublicNotice.ApprovalProgressModalInfo>({ visible: false });
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
72
|
const [checkLoading, setCheckLoading] = useState(false);
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
73
74
|
useEffect(() => {
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
75
76
|
if (listType) {
if (listType === "列表") {
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
77
|
listPagination.setLoading(true);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
78
|
} else {
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
79
|
draftPagination.setLoading(true);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
80
|
}
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
81
82
83
|
}
}, [listType]);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
84
85
|
useEffect(() => {
if (questionBankInitial.data.length && visible && !isView) {
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
86
|
const examList = (form.getFieldValue("examList") ||
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
87
88
89
|
[]) as EHrProgramOfStudySettings.QuestionBank[];
const listIds = questionBankInitial.data.map((item) => item.id);
form.setFieldValue(
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
90
91
|
"examList",
examList.filter((exam) => listIds.includes(exam.factoryId))
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
92
93
94
95
|
);
}
}, [questionBankInitial.data, visible, isView]);
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
// 草稿状态 1未发布 2发布待审批 3审批拒绝 4审批通过 5撤销审批 列表状态 1生效中 2禁用 3过期
enum Status {
"生效中" = 1,
"禁用",
"过期",
}
enum StatusColor {
"#4189FD" = 1,
"#FF921C",
"#F4333C",
}
enum DraftStatus {
"未发布" = 1,
"审批中",
"审批拒绝",
"审批通过",
"撤销审批",
}
enum DraftStatusColor {
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
118
|
"#999" = 1,
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
119
120
121
122
123
124
|
"#4189FD",
"#F4333C",
"#20C688",
"#FF921C",
}
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
const checkStudyCanEdit = async (item: EHrProgramOfStudySettings.ListVO) => {
const hide = message.loading("检查中,请稍后...", 0);
try {
setCheckLoading(true);
const { data } = await checkStudyCanEditApi(item.id || -1);
if (data) {
setCureent(item);
setVisible(true);
} else {
message.warning("当前学习项目已有存在的草稿,请到草稿列表继续编辑!");
setListType("草稿");
}
} catch (error: any) {
message.error(error.message);
} finally {
hide();
setCheckLoading(false);
}
};
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
145
146
147
148
|
return {
listType,
setListType,
abilityTypeInitial,
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
149
150
|
listPagination,
draftPagination,
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
151
|
pagination,
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
152
|
questionBankInitial,
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
153
154
155
156
157
158
|
current,
setCureent,
visible,
setVisible,
isView,
setIsView,
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
159
|
form,
|
1550b11e
王强
完善 学习项目设置,所有主要逻辑与...
|
160
161
162
163
164
|
approvalProgressModalInfo,
setApprovalProgressModalInfo,
RoleRangeType,
AdapterType,
AbilityType,
|
2a3006c5
王强
修改 学习项目设置,提交表单交互逻辑;
|
165
166
167
168
|
Status,
StatusColor,
DraftStatus,
DraftStatusColor,
|
1550b11e
王强
完善 学习项目设置,所有主要逻辑与...
|
169
170
|
modalInfo,
setModalInfo,
|
11cbe8bc
王强
修改 学习项目配置,对接所有接口,...
|
171
172
173
|
checkLoading,
setCheckLoading,
checkStudyCanEdit,
|
5a8c1220
王强
添加 学习项目设置,完成大部分交互...
|
174
175
|
};
}
|