ict.xunfei/Assets/Scripts/UIManager/Panel/CourseTaskPanel.cs

116 lines
3.0 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using System;
using static InterfaceManager;
/// <summary>
/// 课程任务面板
/// </summary>
public class CourseTaskPanel : PanelBasic
{
/// <summary>
/// 实例root
/// </summary>
Transform course_task_item_content;
/// <summary>
/// 案例预制体
/// </summary>
CourseTaskItem course_task_item_prefab;
/// <summary>
/// 案例中心返回按钮
/// </summary>
Button course_task_back_button;
/// <summary>
/// 课程uiitem
/// </summary>
public List<CourseTaskItem> course_task_items = new List<CourseTaskItem>();
//public List<CourseTaskItem.CourseTaskItemData> _courseData = new List<CourseTaskItem.CourseTaskItemData>();
private void Start()
{
course_task_back_button.onClick.AddListener(OnCaseCenterBack);
if (course_task_item_prefab == null) course_task_item_prefab = Resources.Load<CourseTaskItem>("Prefabs/UIItem/CourseTaskItem");
}
protected override void OnEnable()
{
base.OnEnable();
GetCourseList();
}
/// <summary>
/// 获取课程列表
/// </summary>
public void GetCourseList()
{
//清除ui item
course_task_items.ForEach(item =>
{
Destroy(item.gameObject);
});
course_task_items.Clear();
//获取线上课程
GetCourse(2, a =>
{
if(a)
{
GetCourse(4,null);
}
});
}
private void GetCourse(int type, Action<bool> callback)
{
string url = IdAddress + ":8080/personal/center/course/list?pageNum=1&pageSize=99&courseModeType="+type + "&appId=" + CallForTest.instance.Appid + "&userId=" + CallForTest.instance.user.userId+ "&courseStatus=1";
StartCoroutine(Get(url, (flag, _data) =>
{
if (flag)
{
var _jobject = JObject.Parse(_data);
var _courseData = JsonConvert.DeserializeObject<List<CourseTaskItem.CourseTaskItemData>>(_jobject["rows"].ToString());
Debug.Log("课程" + type +" "+ _courseData.Count);
//生成item
for (int i = 0; i < _courseData.Count; i++)
{
CourseTaskItem _case_item = Instantiate(course_task_item_prefab, course_task_item_content);
_case_item.Init(_courseData[i]);
course_task_items.Add(_case_item);
}
if(callback!=null)
callback(true);
}
else
{
Debug.LogError(_data);
if(callback!=null)
callback(false);
}
}));
}
/// <summary>
/// 案例中心返回
/// </summary>
public void OnCaseCenterBack()
{
OnNagetive(true);
}
}