ict.shenzhi/Assets/Scripts/UIManager/Items/CourseTaskItem/CourseTaskItem.cs

261 lines
6.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using static InterfaceManager;
using static LoginSceneUIManager;
/// <summary>
/// 课程任务Item
/// </summary>
public class CourseTaskItem : MonoBehaviour
{
/// <summary>
/// 课程任务图片
/// </summary>
public Image target_image;
/// <summary>
/// 课程任务选择按钮
/// </summary>
public Button course_task_item_button;
/// <summary>
/// 课程任务名称
/// </summary>
public TextMeshProUGUI course_task_name_text;
///// <summary>
///// 课程数据
///// </summary>
//public class CourseTaskItemData
//{
// /// <summary>
// /// 课程id
// /// </summary>
// public string course_task_id;
// /// <summary>
// /// 课程名称
// /// </summary>
// public string course_task_name;
// /// <summary>
// /// 课程图标
// /// </summary>
// public string task_image_url;
// /// <summary>
// /// 课程背景
// /// </summary>
// public string task_back_ground_story;
// /// <summary>
// /// 课程地图
// /// </summary>
// public string task_map_url;
// /// <summary>
// /// 课程关卡
// /// </summary>
// public TaskLevelData[] task_levels;
//}
/// <summary>
/// 课程数据,任务数据二合一 (非任务详情数据)
/// </summary>
public class CourseTaskItemData
{
public string id;
/// <summary>
/// 课程id
/// </summary>
public string courseId;
/// <summary>
/// 课程名称
/// </summary>
public string courseName;
/// <summary>
/// 课程背景图url
/// </summary>
public string courseBgpicture;
/// <summary>
/// 任务名称
/// </summary>
public string taskName;
/// <summary>
/// 任务图标url
/// </summary>
public string coverUrl;
/// <summary>
/// 老师名称
/// </summary>
public string teacherName;
/// <summary>
/// 信息
/// </summary>
public string information;
/// <summary>
/// 任务详情id
/// </summary>
public string detailId;
/// <summary>
/// 内容id
/// </summary>
public string contentId;
/// <summary>
/// 用户id
/// </summary>
public string appId;
/// <summary>
/// 任务id
/// </summary>
public string taskId;
/// <summary>
/// 学校名称
/// </summary>
public string university;
/// <summary>
/// 课程图标
/// </summary>
public string taskImageUrl;
/// <summary>
/// 课程背景
/// </summary>
public string taskBackGroundStory;
/// <summary>
/// 课程地图
/// </summary>
public string taskMapUrl;
/// <summary>
/// 课程场景
/// </summary>
public string task_scence;
/// <summary>
/// 课程关卡
/// </summary>
//public string taskLevels;
public TaskLevelData[] task_levels;
/// <summary>
/// 编程语言
/// </summary>
public string programLanguage;
/// <summary>
/// 组件类型
/// </summary>
public string appType;
/// <summary>
/// 场景名称
/// </summary>
public string sceneName;
/// <summary>
/// 考察点
/// </summary>
public List<string> investigatePointList;
/// <summary>
/// 课程简介
/// </summary>
public string courseTextIntroduction;
/// <summary>
/// 组件名字(编程教学_xxx)
/// </summary>
public string contentName;
}
/// <summary>
/// 课程关卡数据
/// </summary>
public class TaskLevelData
{
/// <summary>
/// 关卡顺序
/// </summary>
public int level_index;
/// <summary>
/// 关卡名称
/// </summary>
public string level_name;
/// <summary>
/// 关卡类型
/// </summary>
public string level_type;
/// <summary>
/// 关卡描述
/// </summary>
public string level_description;
/// <summary>
/// 关卡知识点
/// </summary>
public string[] level_title;
/// <summary>
/// 是否可以跳过关卡
/// </summary>
public string level_skip_able;
/// <summary>
/// 关卡位置
/// </summary>
public string level_location;
}
/// <summary>
/// 案例数据
/// </summary>
public CourseTaskItemData course_task_item_data { get; set; }
public List<CourseTaskItemData> _courseData;
private void Start()
{
course_task_item_button.onClick.AddListener(() =>
{
course_task_detail_panel.OnActive(course_task_panel); //自身属于course_task_panel
course_task_detail_panel.Init(_courseData, course_task_item_data.courseTextIntroduction);
});
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="_course_task_item_data"></param>
public void Init(CourseTaskItemData _course_task_item_data = null)
{
if (_course_task_item_data != null)
course_task_item_data = _course_task_item_data;
if (course_task_item_data != null)
{
course_task_name_text.text = course_task_item_data.courseName;
if (!string.IsNullOrEmpty(course_task_item_data.courseBgpicture))
StartCoroutine(GetSprite(course_task_item_data.courseBgpicture, (_sprite) =>
{
target_image.sprite = _sprite;
}));
GetCoursePracticalList(course_task_item_data.courseId);
}
}
/// <summary>
/// 获取课程下实训列表
/// </summary>
private void GetCoursePracticalList(string id)
{
//删除实训UI item
string url = IdAddress + ":8080/personal/center/course/training/list?pageNum=1&pageSize=99&courseId=" + id + "&appId=" + CallForTest.instance.Appid+"&userId=" + CallForTest.instance.user.userId;
StartCoroutine(Get(url, (flag, _data) =>
{
if (flag)
{
Debug.Log(url);
var _jobject = JObject.Parse(_data);
_courseData = JsonConvert.DeserializeObject<List<CourseTaskItemData>>(_jobject["rows"].ToString());
_courseData.ForEach(a =>
{
a.courseId = id;
});
}
}));
}
}