import tkinter as tk
from tkinter import messagebox
import json
import os

class SimpleTodo:
    def __init__(self, root):
        self.root = root
        self.root.title("简易计划表 (无插件版)")
        self.root.geometry("400x500")
        
        self.data_file = "tasks_simple.json"
        self.tasks = self.load_data()

        # 日期输入区域
        tk.Label(root, text="输入日期 (如: 2023-10-27):").pack(pady=5)
        self.date_entry = tk.Entry(root)
        self.date_entry.insert(0, "2023-10-27") # 默认值
        self.date_entry.pack()

        # 任务显示区域
        tk.Label(root, text="当日计划:").pack(pady=10)
        self.task_listbox = tk.Listbox(root, width=40, height=10)
        self.task_listbox.pack(pady=5)

        # 任务输入区域
        tk.Label(root, text="输入新任务:").pack()
        self.task_entry = tk.Entry(root, width=30)
        self.task_entry.pack(pady=5)

        # 按钮
        btn_frame = tk.Frame(root)
        btn_frame.pack(pady=10)
        
        tk.Button(btn_frame, text="查看该日计划", command=self.refresh_list).pack(side=tk.LEFT, padx=5)
        tk.Button(btn_frame, text="添加任务", command=self.add_task, bg="lightgreen").pack(side=tk.LEFT, padx=5)
        tk.Button(btn_frame, text="删除选中", command=self.delete_task, bg="pink").pack(side=tk.LEFT, padx=5)

    def load_data(self):
        if os.path.exists(self.data_file):
            with open(self.data_file, "r", encoding="utf-8") as f:
                return json.load(f)
        return {}

    def save_data(self):
        with open(self.data_file, "w", encoding="utf-8") as f:
            json.dump(self.tasks, f, ensure_ascii=False, indent=4)

    def refresh_list(self):
        date = self.date_entry.get()
        self.task_listbox.delete(0, tk.END)
        if date in self.tasks:
            for task in self.tasks[date]:
                self.task_listbox.insert(tk.END, task)

    def add_task(self):
        date = self.date_entry.get()
        task = self.task_entry.get().strip()
        if date and task:
            if date not in self.tasks:
                self.tasks[date] = []
            self.tasks[date].append(task)
            self.save_data()
            self.task_entry.delete(0, tk.END)
            self.refresh_list()
        else:
            messagebox.showwarning("错误", "日期和任务不能为空")

    def delete_task(self):
        date = self.date_entry.get()
        try:
            index = self.task_listbox.curselection()[0]
            task_text = self.task_listbox.get(index)
            self.tasks[date].remove(task_text)
            self.save_data()
            self.refresh_list()
        except:
            messagebox.showwarning("提示", "请选择要删除的任务")

if __name__ == "__main__":
    root = tk.Tk()
    app = SimpleTodo(root)
    root.mainloop()