|  | 
| <!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <title>Document</title>
 <style>
 * {
 margin: 0;
 box-sizing: border-box;
 }
 
 a {
 text-decoration: none;
 }
 
 
 body {
 zoom: 56%;
 margin-top: 20px;
 height: 1000px;
 background-repeat: no-repeat;
 }
 
 
 .entire {
 margin: auto;
 width:600px;
 height: 1060px;
 }
 
 
 
 
 .button {
 border-radius: 6px;
 color: #505050;
 }
 
 
 /*    心平气和   */
 .title {
 margin: auto;
 width: 180px;
 
 height: 44px;
 
 font-size: 39px;
 border-radius: 20px;
 text-align: center;
 margin-top: 9px;
 color: #FD6600;
 box-shadow: 5px 5px 15px rgb(201, 188, 198) inset, -5px -5px 10px  #999999 inset;
 }
 
 
 
 
 .header input {
 margin: auto;
 text-align: center;
 margin-top: 60px;
 font-size: 30px;
 width: 600px;
 
 height: 69px;
 
 border-radius: 30px;
 border: none;
 outline: none;
 
 color: #505050;
 box-shadow: 5px 5px 15px rgb(219, 218, 218) inset, -5px -5px 10px #999999 inset;
 }
 
 input::placeholder {
 color: #505050;
 font-size: 29px;
 }
 
 .tabs {
 margin: auto;
 margin-top: 33px;
 display: flex;
 text-align: center;
 border-bottom: 2px solid #e7b3b3;
 }
 
 .tabs div {
 margin-left: 30px;
 background-color: #546171;
 border: 2px solid #e7b3b3;
 border-top-left-radius: 18px;
 border-top-right-radius: 18px;
 border-bottom: none;
 font-size: 39px;
 cursor: pointer;
 color: #000000;
 box-shadow: 5px 5px 15px rgb(250, 241, 241) inset, -5px -5px 10px #fff inset;
 }
 
 .tabs .active {
 background-color: #FD9900;
 }
 
 .content {
 padding-top: 0px;
 }
 
 .note {
 padding-top: 20px;
 margin: auto;
 width:600px;
 border-radius: 40px;
 }
 
 /* 设置各个tab面背景样式 和文字颜色 包括条目背景色*/
 .note:nth-child(1) {
 background-color: #fffefe;
 }
 
 .note:nth-child(2) {
 background-color: #fffefe;
 }
 
 .note:nth-child(2) .center-item {
 color: #ffffff;
 }
 
 .note:nth-child(3) {
 background-color: #fffefe;
 }
 
 .note:nth-child(3) .center-item {
 color: #ffffff;
 }
 
 .note:nth-child(4) {
 background-color: #fffefe;
 }
 
 .note:nth-child(4) .center-item {
 color: #ffffff;}
 
 .note:nth-child(5) {
 background-color: #fffefe;
 }
 
 .note:nth-child(5) .center-item {
 color: #ffffff;;
 }
 
 
 
 
 
 /* 设置完成和未完成的框的大小和样式 */
 .work-unfinished,
 .work-finished,
 .life-unfinished,
 .life-finished,
 .study-unfinished,
 .study-finished,
 .health-unfinished,
 .health-finished,
 .day-unfinished,
 .day-finished {
 margin: auto;
 width: 600px;
 border-radius: 15px;
 border: #ffffff solid 3px;
 }
 
 /* 设置完成和未完成之间的间隔为20px */
 .work-unfinished,
 .life-unfinished,
 .study-unfinished,
 .health-unfinished,
 .day-unfinished{
 margin-bottom: 100px;
 }
 
 /* 设置完成和未完成的字体样式 */
 .note-text {
 margin-bottom: 15px;
 width: 190px;
 
 height: 100px;
 
 color: #FD9900;
 text-align: left;
 font-size: 50px;
 text-align: left;
 font-weight:bold;
 
 }
 
 
 /* 完成 未完成设置位置 */
 .work-unfinished .note-text,
 .life-unfinished .note-text,
 .study-unfinished .note-text,
 .health-unfinished .note-text,
 .day-unfinished .note-text {
 margin-left: 0px;
 text-align: left;
 
 font-size: 50px;
 
 }
 
 
 /* 完成 已完成设置位置 */
 .work-finished .note-text,
 .life-finished .note-text,
 .study-finished .note-text,
 .health-finished .note-text,
 .day-finished .note-text {
 margin-left: 0px;
 color: #505050;
 text-align: left;
 
 font-size: 50px;
 
 }
 
 /*条目宽度*/
 .uul-unfinished,
 .uul-finished {
 
 display: block;
 width: 600px;
 
 overflow-y: hidden;
 overflow-x: hidden;
 }
 
 
 /* 隐藏滚动条  */
 .uul-unfinished::-webkit-scrollbar,
 .uul-finished::-webkit-scrollbar {
 width: 0;
 }
 
 /* 设置页面内各个条目的  重要  */
 .uul-unfinished li {
 margin-top: 6px;
 margin-left: -39px;
 border-top-left-radius: 5px;
 border-bottom-left-radius: 5px;
 border-top-right-radius: 7px;
 border-bottom-right-radius: 7px;
 display: flex;
 height: 51px;
 width: 590px;
 text-align: center;
 font-size: 35px;
 border-left: 23px solid #7BB01A;
 }
 
 
 .uul-finished li {
 margin-top: 6px;
 margin-left: -39px;
 
 border-top-left-radius: 5px;
 border-bottom-left-radius: 5px;
 border-top-right-radius: 7px;
 border-bottom-right-radius: 7px;
 display: flex;
 
 height: 60px;
 
 width: 590px;
 text-align: center;
 
 font-size: 38px;
 
 border-left: 23px solid #7BB01A;
 }
 
 
 
 
 /* 设置页面内各个条目的外框  重要  */
 .work-unfinished .uul-unfinished li,
 .work-finished .uul-finished li {
 box-shadow: 1px 1px 2px rgb(0, 0, 0) inset, -1px -1px 1px #000000 inset;
 background-color: #505050;
 
 }
 
 .life-unfinished .uul-unfinished li,
 .life-finished .uul-finished li {
 box-shadow: 1px 1px 2px rgb(0, 0, 0) inset, -1px -1px 1px #000000 inset;
 background-color: #505050;
 
 }
 
 .study-unfinished .uul-unfinished li,
 .study-finished .uul-finished li {
 box-shadow: 1px 1px 2px rgb(0, 0, 0) inset, -1px -1px 1px #000000 inset;
 background-color: #505050;
 
 }
 
 .health-unfinished .uul-unfinished li,
 .health-finished .uul-finished li {
 box-shadow: 1px 1px 2px rgb(0, 0, 0) inset, -1px -1px 1px #000000 inset;
 background-color: #505050;
 
 }
 
 .day-unfinished .uul-unfinished li,
 .day-finished .uul-finished li {
 box-shadow: 1px 1px 2px rgb(0, 0, 0) inset, -1px -1px 1px #000000 inset;
 background-color: #505050;
 
 }
 
 
 .center-item {
 width: 570px;
 height: 39px;
 text-align: left;
 margin-left: 10px;
 overflow-y: hidden;
 overflow-x: hidden;
 color: #ffffff;
 }
 
 /* 设置已完成文字样式*/
 .uul-finished .center-item {
 text-decoration: line-through;
 color:#AC7F79;
 }
 
 .life-finished .uul-finished   .center-item {
 text-decoration: line-through;
 color:#AC7F79;
 }
 
 .study-finished .uul-finished   .center-item {
 text-decoration: line-through;
 color: #AC7F79;
 }
 
 .health-finished .uul-finished   .center-item {
 text-decoration: line-through;
 color: #AC7F79;
 }
 
 .day-finished .uul-finished   .center-item {
 text-decoration: line-through;
 color: #AC7F79;
 }
 
 
 /* 设置各个条目图标后面删除图标*/
 .task-iconsan {
 
 border-right: 23px solid #FD0164;
 width:15px;
 border-top-right-radius: 5px;
 
 border-bottom-right-radius: 5px;
 
 }
 
 
 /* 设置变签内容不可看 */
 .note {
 display: none;
 }
 
 /* 设置变迁内容可看 */
 .content .active {
 display: block;
 }
 
 /* 设置完成文字图片在一排 */
 .text {
 display: flex;
 }
 
 /* 每天重新开始 */
 .deleteAll {
 cursor: pointer;
 width: 100px;
 height: 50px;
 margin-top: 9px;
 margin-right: 10px;
 }
 
 .text img {
 width: 0px;
 height: 0px;
 border-radius: 0px;
 margin-right: 10px;
 margin-left: 10px;
 margin-top: 4px;
 }
 
 /*全部删除这几个字*/
 .text span {
 width: 120px;
 height: 40px;
 text-align: center;
 vertical-align: middle;
 color: #000000;
 font-size: 20px;
 padding: 4px;
 border-radius: 15px;
 border: 1px solid rgb(255, 217, 142);
 }
 </style>
 
 <script type="text/javascript" src="./jquery.min.js"></script>
 <!--使用高版本jquery请调用jquery-migrate-1.2.1.min.js,低版本可不用-->
 
 </head>
 
 
 <body>
 <!-- 设置便签整体 -->
 <div class="entire">
 <!-- 设置便签头部 -->
 <div class="header">
 <!--  <div class="title">心平气和 </div>-->
 <input id="task" type="text"     placeholder="   在此输入   ">
 <!--        <input value="导入(txt/json)" type="file" class="btn-small action-import" id="importtt">   -->
 <!-- <input type="file" id="im.port-file" accept=".txt,.json" style="display:none"> -->
 </div>
 
 <!-- 设置中部 -->
 <div class="middle">
 <!-- 设置中间tab栏部分 -->
 <div class="tabs">
 <!-- 设置4个内容便签tab -->
 <div class="work active" data-id="1">紧急</div>
 <div class="life" data-id="2">重要</div>
 <div class="study" data-id="3">兴趣</div>
 <div class="health" data-id="4">长期</div>
 <div class="day" data-id="5">随记</div>
 
 </div>
 
 <!-- 设置中间内容部分 -->
 <div class="content">
 
 <!-- 设置第一个便签内容 -->
 <div class="note active">
 <div class="work-unfinished">
 <div class="note-text" >未完成</div>
 
 <ul class="uul-unfinished">
 
 </ul>
 </div>
 <div class="work-finished">
 <div class="text">
 <div class="note-text">已完成</div>
 <span class="deleteAll"  style="margin-right: 79px;text-align: center;">每天重❤来</span>
 
 </div>
 
 <ul class="uul-finished">
 
 </ul>
 </div>
 </div>
 
 <!-- 设置第二个便签内容 -->
 <div class="note">
 <div class="life-unfinished">
 <div class="note-text" >未完成</div>
 
 <ul class="uul-unfinished">
 
 </ul>
 </div>
 <div class="life-finished">
 <div class="text">
 <div class="note-text">已完成</div>
 <span class="deleteAll"  style="margin-right: 79px;text-align: center;">每天重❤来</span>
 
 </div>
 
 <ul class="uul-finished">
 
 </ul>
 </div>
 </div>
 
 <!-- 设置第三个便签内容 -->
 <div class="note">
 <div class="study-unfinished">
 <div class="note-text" >未完成</div>
 
 <ul class="uul-unfinished">
 
 </ul>
 </div>
 <div class="study-finished">
 <div class="text">
 <div class="note-text">已完成</div>
 <span class="deleteAll"  style="margin-right: 79px;text-align: center;">每天重❤来</span>
 
 </div>
 
 <ul class="uul-finished">
 
 </ul>
 </div>
 </div>
 
 <!-- 设置第四个便签内容 -->
 <div class="note">
 <div class="health-unfinished">
 <div class="note-text">未完成</div>
 
 <ul class="uul-unfinished">
 
 </ul>
 </div>
 <div class="health-finished">
 <div class="text">
 <div class="note-text">已完成</div>
 <span class="deleteAll"  style="margin-right: 79px;text-align: center;">每天重❤来</span>
 
 </div>
 
 <ul class="uul-finished">
 
 </ul>
 </div>
 </div>
 
 
 <!-- 设置第五个便签内容 -->
 <div class="note">
 <div class="day-unfinished">
 <div class="note-text" >未完成</div>
 
 <ul class="uul-unfinished">
 
 </ul>
 </div>
 <div class="day-finished">
 <div class="text">
 <div class="note-text">已完成</div>
 <span class="deleteAll"  style="margin-right: 79px;text-align: center;">每天重❤来</span>
 
 </div>
 
 <ul class="uul-finished">
 
 </ul>
 </div>
 </div>
 
 </div>
 </div>
 
 </div>
 
 
 
 <script>
 
 window.addEventListener('load', function () {
 // 判断到第几个note
 let dataId = 1
 //定义数组
 if (!this.localStorage.getItem('arr')) {
 localStorage.setItem('arr', "[[], [], [], [],[]]")
 
 } else if (!this.localStorage.getItem('arr1')) {
 localStorage.setItem('arr1', "[[], [], [], [],[]]")
 }
 const arrList1 = JSON.parse(localStorage.getItem('arr'))
 const arrList2 = JSON.parse(localStorage.getItem('arr1'))
 
 
 renderUnfinished()
 renderFinished()
 bindEventListeners()
 
 // 如果按下了回车事件
 let inputTask = document.querySelector('#task')
 inputTask.addEventListener('keydown', function (e) {
 if (e.key === 'Enter') {
 let newTaskText = inputTask.value.trim()
 if (newTaskText !== '') {
 arrList1[dataId - 1].push(newTaskText)
 localStorage.setItem('arr', JSON.stringify(arrList1))
 //更新未完成事件界面
 renderUnfinished()
 //将input设为空
 inputTask.value = ''
 }
 }
 })
 
 
 
 
 
 // 点击tabs
 let tabs = document.querySelector('.tabs')
 
 var fntab = function (e){
 if (e.target.tagName === 'DIV' && e.target.hasAttribute('data-id')) {
 document.querySelector('.tabs .active').classList.remove('active')
 e.target.classList.add('active')
 dataId = e.target.dataset.id
 
 document.querySelector('.content .active').classList.remove('active')
 document.querySelector(`.content .note:nth-child(${dataId})`).classList.add('active')
 // 更新两个界面
 renderFinished()
 renderUnfinished()
 bindEventListeners()
 //   alert("标签页码==="+(dataId - 1));
 //  e.stopPropagation()
 event.stopPropagation()
 //   tabs.removeEventListener('click',fntab);
 //  tabs.addEventListener('click',fntab);
 }};
 
 //  tabs.removeEventListener('click',fntab);
 //    tabs.addEventListener('click',fntab);
 
 $(".tabs").unbind("click").bind("click",fntab);
 
 ///////////////////////自己定义函数////////////////////////////////////
 
 
 //下面是全部重新开始
 function exportLocalStorageAsJsonguili(e) {
 
 const arrList1 = JSON.parse(localStorage.getItem('arr'))
 const arrList2 = JSON.parse(localStorage.getItem('arr1'))
 const arr=arrList1.map((row,index) =>  [...row, ...arrList2[index]]);
 //          arrList2 = [];
 localStorage.setItem('arr1', "[[], [], [], [],[]]")
 //    localStorage.setItem('arr1', JSON.stringify(arrList2));
 localStorage.setItem('arr' ,  JSON.stringify(arr));
 renderFinished();
 renderUnfinished();
 $(`.note:nth-child(${dataId}) .uul-unfinished`).unbind("click").bind("click",fnw);
 $(`.note:nth-child(${dataId}) .uul-finished`).unbind("click").bind("click",fnni);
 }
 
 $(".guilin").unbind("click").bind("click",exportLocalStorageAsJsonguili);
 
 
 
 
 
 
 
 ///////////////////////////////////////////////////////////
 // 绑定事件监听器
 function bindEventListeners() {
 let un_ul = document.querySelector(`.note:nth-child(${dataId}) .uul-unfinished`)
 let ul = document.querySelector(`.note:nth-child(${dataId}) .uul-finished`)
 let cxin = document.querySelector(`.note:nth-child(${dataId}) .deleteAll`)
 // 删除未完成
 var fn = function (e){
 if (e.target.classList.contains('delete')){
 let index = parseInt(e.target.dataset.id)
 //          alert("行号===="+(index));
 arrList1[dataId - 1].splice(index, 1)
 //          alert("标签页码==="+(dataId - 1));
 //    console.log(dataId - 1);
 localStorage.setItem('arr', JSON.stringify(arrList1))
 renderUnfinished()
 event.stopPropagation()
 }};
 
 
 $(`.note:nth-child(${dataId}) .uul-unfinished`).unbind("click").bind("click",fn);
 
 
 
 // 删除已完成
 var fnyi = function (e){
 if (e.target.classList.contains('delete22')) {
 let index = parseInt(e.target.dataset.id)
 //                        alert("行号yi===="+(index));
 // console.log(dataID)
 arrList2[dataId - 1].splice(index, 1)
 //        alert("标签页码yi==="+(dataId - 1));
 localStorage.setItem('arr1', JSON.stringify(arrList2))
 renderFinished()
 event.stopPropagation()
 }};
 
 $(`.note:nth-child(${dataId}) .uul-finished`).unbind("click").bind("click",fnyi);
 
 
 
 //  nxnx 每天重新开始   就是把完成数组加入到未完成数组
 cxin.addEventListener('click', function (e) {
 if (e.target.tagName === 'SPAN') {
 arrList1[dataId - 1] .push(...arrList2[dataId - 1]);
 arrList2[dataId - 1] = [];
 localStorage.setItem('arr1', JSON.stringify(arrList2));
 localStorage.setItem('arr' ,  JSON.stringify(arrList1));
 renderFinished();
 renderUnfinished();
 }
 })
 
 
 
 // 点击未完成按钮任务变成完成
 var fnw = function (e){
 if (e.target.classList.contains('center-item')) {
 let dataName = parseInt(e.target.dataset.name);
 arrList2[dataId - 1].push(arrList1[dataId - 1][dataName]);
 arrList1[dataId - 1].splice(dataName, 1);
 
 localStorage.setItem('arr1', JSON.stringify(arrList2));
 localStorage.setItem('arr', JSON.stringify(arrList1));
 renderFinished();
 renderUnfinished();
 
 }};
 
 $(`.note:nth-child(${dataId}) .uul-unfinished`).unbind("click").bind("click",fnw);
 $(`.note:nth-child(${dataId}) .uul-unfinished`).bind("click",fn);
 
 
 
 //nxnx   点击yiyiyi完成按钮任务变成完成
 var fnni = function (e){
 if (e.target.classList.contains('center-item')) {
 let dataName = parseInt(e.target.dataset.name);
 arrList1[dataId - 1].push(arrList2[dataId - 1][dataName]);
 arrList2[dataId - 1].splice(dataName, 1);
 localStorage.setItem('arr1', JSON.stringify(arrList2));
 localStorage.setItem('arr', JSON.stringify(arrList1));
 renderFinished();
 renderUnfinished();
 
 }};
 
 $(`.note:nth-child(${dataId}) .uul-finished`).unbind("click").bind("click",fnni);
 $(`.note:nth-child(${dataId}) .uul-finished`).bind("click",fnyi);
 
 }
 
 
 
 // 更新未完成
 function renderUnfinished() {
 let un_ul = document.querySelector(`.note:nth-child(${dataId}) .uul-unfinished`);
 const listItems = JSON.parse(localStorage.getItem('arr'))[dataId - 1].map((taskText, index) => {
 return `
 <li>
 <div class="center-item"    data-name="${index}" >${taskText}</div>
 <div class="delete task-iconsan"  data-id="${index}"  > </div>
 </li>
 `
 }).join('')
 un_ul.innerHTML = listItems
 }
 
 
 // 更新已完成
 function renderFinished() {
 let ul = document.querySelector(`.note:nth-child(${dataId}) .uul-finished`);
 const listItems = JSON.parse(localStorage.getItem('arr1'))[dataId - 1].map((taskText, index) => {
 return `
 <li>
 <div class="center-item"    data-name="${index}"  >${taskText}</div>
 <div class="delete22 task-iconsan"  data-id="${index}" > </div>
 </li>
 `
 }).join('')
 ul.innerHTML = listItems
 }
 
 
 })
 </script>
 </body>
 </html>
 
 | 
 |