Compare commits

..

5 Commits

Author SHA1 Message Date
unknown
895385c4d7 线上课-学员第一次学习时间显示优化 2023-11-15 10:13:51 +08:00
unknown
46e9949ce0 首页学习时间不显示天 2023-11-15 10:01:46 +08:00
unknown
57e216fc07 首页文档跳转地址优化 2023-11-15 09:43:18 +08:00
unknown
1cf8b33a81 系统配置默认图片回显优化 2023-11-15 09:33:55 +08:00
unknown
0666d9a769 系统配置默认图片回显优化 2023-11-15 09:28:39 +08:00
4 changed files with 38 additions and 20 deletions

View File

@ -60,6 +60,22 @@ type HourCountModel = {
[key: number]: string; [key: number]: string;
}; };
type PerCourseRecordsModel = {
[key: number]: {
course_id: number;
created_at: string;
finished_at: string;
finished_duration: number;
hour_id: number;
id: number;
is_finished: number;
real_duration: number;
total_duration: number;
updated_at: string;
user_id: number;
};
};
const CourseUserPage = () => { const CourseUserPage = () => {
const params = useParams(); const params = useParams();
const result = new URLSearchParams(useLocation().search); const result = new URLSearchParams(useLocation().search);
@ -69,6 +85,7 @@ const CourseUserPage = () => {
const [hourCount, setHourCount] = useState<HourCountModel>({}); const [hourCount, setHourCount] = useState<HourCountModel>({});
const [userDepIds, setUserDepIds] = useState<DepIdsModel>({}); const [userDepIds, setUserDepIds] = useState<DepIdsModel>({});
const [departments, setDepartments] = useState<DepartmentsModel>({}); const [departments, setDepartments] = useState<DepartmentsModel>({});
const [perRecords, setPerRecords] = useState<PerCourseRecordsModel>({});
const [refresh, setRefresh] = useState(false); const [refresh, setRefresh] = useState(false);
const [page, setPage] = useState(1); const [page, setPage] = useState(1);
const [size, setSize] = useState(10); const [size, setSize] = useState(10);
@ -135,8 +152,8 @@ const CourseUserPage = () => {
dataIndex: "created_at", dataIndex: "created_at",
render: (_, record: any) => ( render: (_, record: any) => (
<> <>
{records[record.id] ? ( {perRecords[record.id] ? (
<span>{dateFormat(records[record.id].created_at)}</span> <span>{dateFormat(perRecords[record.id].created_at)}</span>
) : hourCount[record.id] ? ( ) : hourCount[record.id] ? (
<span>{dateFormat(hourCount[record.id])}</span> <span>{dateFormat(hourCount[record.id])}</span>
) : ( ) : (
@ -213,6 +230,7 @@ const CourseUserPage = () => {
setList(res.data.data); setList(res.data.data);
setHourCount(res.data.user_course_hour_user_first_at); setHourCount(res.data.user_course_hour_user_first_at);
setRecords(res.data.user_course_records); setRecords(res.data.user_course_records);
setPerRecords(res.data.per_user_earliest_records);
setCourse(res.data.course); setCourse(res.data.course);
setDepartments(res.data.departments); setDepartments(res.data.departments);
setUserDepIds(res.data.user_dep_ids); setUserDepIds(res.data.user_dep_ids);

View File

@ -558,7 +558,7 @@ const DashboardPage = () => {
<div className={styles["usage-guide"]}> <div className={styles["usage-guide"]}>
<img className={styles["banner"]} src={banner} alt="" /> <img className={styles["banner"]} src={banner} alt="" />
<Link <Link
to="https://www.playedu.xyz/docs/docs/guide/" to="https://www.playedu.xyz/book/opensource-handbook/article/wFymJ4SXcX"
target="blank" target="blank"
className={styles["link"]} className={styles["link"]}
> >

View File

@ -14,13 +14,14 @@ import {
} from "antd"; } from "antd";
import { appConfig, system } from "../../../api/index"; import { appConfig, system } from "../../../api/index";
import { UploadImageButton } from "../../../compenents"; import { UploadImageButton } from "../../../compenents";
import { useDispatch } from "react-redux"; import { useSelector, useDispatch } from "react-redux";
import type { TabsProps } from "antd"; import type { TabsProps } from "antd";
import type { CheckboxChangeEvent } from "antd/es/checkbox"; import type { CheckboxChangeEvent } from "antd/es/checkbox";
import { import {
SystemConfigStoreInterface, SystemConfigStoreInterface,
saveConfigAction, saveConfigAction,
} from "../../../store/system/systemConfigSlice"; } from "../../../store/system/systemConfigSlice";
import logoIcon from "../../../assets/logo.png";
const SystemConfigPage = () => { const SystemConfigPage = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -33,6 +34,9 @@ const SystemConfigPage = () => {
const [nameChecked, setNameChecked] = useState(false); const [nameChecked, setNameChecked] = useState(false);
const [emailChecked, setEmailChecked] = useState(false); const [emailChecked, setEmailChecked] = useState(false);
const [idCardchecked, setIdCardChecked] = useState(false); const [idCardchecked, setIdCardChecked] = useState(false);
const memberDefaultAvatar = useSelector(
(state: any) => state.systemConfig.value.memberDefaultAvatar
);
useEffect(() => { useEffect(() => {
getDetail(); getDetail();
@ -52,6 +56,8 @@ const SystemConfigPage = () => {
}); });
if (configData[i].key_value !== "") { if (configData[i].key_value !== "") {
setLogo(configData[i].key_value); setLogo(configData[i].key_value);
} else {
setLogo(logoIcon);
} }
} else if (configData[i].key_name === "system.api_url") { } else if (configData[i].key_name === "system.api_url") {
form.setFieldsValue({ form.setFieldsValue({
@ -122,7 +128,11 @@ const SystemConfigPage = () => {
"system.pc_index_footer_msg": configData[i].key_value, "system.pc_index_footer_msg": configData[i].key_value,
}); });
} else if (configData[i].key_name === "member.default_avatar") { } else if (configData[i].key_name === "member.default_avatar") {
setAvatar(configData[i].key_value); if (configData[i].key_value !== "") {
setAvatar(configData[i].key_value);
} else {
setAvatar(memberDefaultAvatar);
}
form.setFieldsValue({ form.setFieldsValue({
"member.default_avatar": configData[i].key_value, "member.default_avatar": configData[i].key_value,
}); });

View File

@ -24,22 +24,12 @@ export function timeFormat(dateStr: number) {
return "-"; return "-";
} }
var d = moment.duration(dateStr, "seconds"); var d = moment.duration(dateStr, "seconds");
let value = let value = d.hours() + "时" + d.minutes() + "分" + d.seconds() + "秒";
Math.floor(d.asDays()) +
"天" +
d.hours() +
"时" +
d.minutes() +
"分" +
d.seconds() +
"秒";
if (Math.floor(d.asDays()) === 0) { if (d.hours() === 0) {
if (d.hours() === 0) { value = d.minutes() + "分" + d.seconds() + "秒";
value = d.minutes() + "分" + d.seconds() + "秒"; } else {
} else { value = d.hours() + "时" + d.minutes() + "分" + d.seconds() + "秒";
value = d.hours() + "时" + d.minutes() + "分" + d.seconds() + "秒";
}
} }
return value; return value;