{"id":26100,"student_id":10,"content":"{\"html\":\"\u003c!DOCTYPE html\u003e\\n\u003chtml\u003e\\n\\n\u003chead\u003e\\n\\t\u003ctitle\u003eDocument\u003c/title\u003e\\n\\t\u003clink rel=\\\"stylesheet\\\" href=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css\\\" integrity=\\\"sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm\\\"\\n\\t crossorigin=\\\"anonymous\\\"\u003e\\n\\t\u003cscript src=\\\"https://code.jquery.com/jquery-3.2.1.slim.min.js\\\" integrity=\\\"sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN\\\"\\n\\t crossorigin=\\\"anonymous\\\"\u003e\u003c/script\u003e\\n\\t\u003cscript src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js\\\" integrity=\\\"sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q\\\"\\n\\t crossorigin=\\\"anonymous\\\"\u003e\u003c/script\u003e\\n\\t\u003cscript src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js\\\" integrity=\\\"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl\\\"\\n\\t crossorigin=\\\"anonymous\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\\n\u003cbody class=\\\"bg-secondary text-white\\\"\u003e\\n\\t\u003cdiv class=\\\"container py-5\\\"\u003e\\n\\n\\n\\n\\t\\t\u003cdiv class=\\\"row\\\"\u003e\\n\\t\\t\\t\u003cdiv class=\\\"col-md-12\\\"\u003e\\n\\t\\t\\t\\t\u003cdiv class=\\\"card bg-dark mb-5\\\"\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-header\\\"\u003e\\n\\t\\t\\t\\t\\t\\tSUM\\n \u003ch1 class=\\\"js-sum\\\"\u003e\u003c/h1\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-body\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003cbutton class=\\\"btn btn-primary\\\" data-toggle=\\\"modal\\\" data-target=\\\"#exampleModal\\\"\u003e新增\u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\u003cbutton class=\\\"btn btn-danger\\\" data-toggle=\\\"modal\\\" data-target=\\\"#exampleModal\\\"\u003e30 天\u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\u003cbutton class=\\\"btn btn-danger\\\" data-toggle=\\\"modal\\\" data-target=\\\"#exampleModal\\\"\u003e60 天\u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\u003cbutton class=\\\"btn btn-danger\\\" data-toggle=\\\"modal\\\" data-target=\\\"#exampleModal\\\"\u003e90 天\u003c/button\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003c/div\u003e\\n\\t\\t\u003c/div\u003e\\n\\t\\t\u003cdiv class=\\\"row\\\"\u003e\\n\\t\\t\\t\u003cdiv class=\\\"col-md-4\\\"\u003e\\n\\t\\t\\t\\t\u003cdiv class=\\\"card bg-dark\\\"\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-header\\\"\u003e\\n\\t\\t\\t\\t\\t\\tTOP 10\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-body\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003col class=\\\"js-top-ten\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003c/ol\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003cdiv class=\\\"col-md-4\\\"\u003e\\n\\t\\t\\t\\t\u003cdiv class=\\\"card bg-dark\\\"\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-header\\\"\u003e\\n\\t\\t\\t\\t\\t\\tRates\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"js-rates p-3\\\"\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003cdiv class=\\\"col-md-4\\\"\u003e\\n\\t\\t\\t\\t\u003cdiv class=\\\"card bg-dark\\\"\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-header\\\"\u003e\\n\\t\\t\\t\\t\\t\\t30 days log\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"card-body\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003cul class=\\\"js-30day-log\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003c/ul\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003c/div\u003e\\n\\n\\t\\t\\t\u003ctable class=\\\"table table-dark\\\"\u003e\\n\\t\\t\\t\\t\u003cthead\u003e\\n\\t\\t\\t\\t\\t\u003ctr\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e#\u003c/th\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e種類\u003c/th\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e日期\u003c/th\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e價格\u003c/th\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e名稱\u003c/th\u003e\\n\\t\\t\\t\\t\\t\\t\u003cth scope=\\\"col\\\"\u003e描述\u003c/th\u003e\\n\\t\\t\\t\\t\\t\u003c/tr\u003e\\n\\t\\t\\t\\t\u003c/thead\u003e\\n\\t\\t\\t\\t\u003ctbody\u003e\\n\\t\\t\\t\\t\u003c/tbody\u003e\\n\\t\\t\\t\u003c/table\u003e\\n\\n\\n\\t\\t\\t\u003cdiv class=\\\"modal fade\\\" id=\\\"exampleModal\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-labelledby=\\\"exampleModalLabel\\\" aria-hidden=\\\"true\\\"\u003e\\n\\t\\t\\t\\t\u003cdiv class=\\\"modal-dialog\\\" role=\\\"document\\\"\u003e\\n\\t\\t\\t\\t\\t\u003cdiv class=\\\"modal-content\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"modal-header\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003ch5 class=\\\"modal-title\\\" id=\\\"exampleModalLabel\\\"\u003eNew message\u003c/h5\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003cbutton type=\\\"button\\\" class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\"\u003e\\n \u003cspan aria-hidden=\\\"true\\\"\u003e\u0026times;\u003c/span\u003e\\n \u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"modal-body\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003cform class=\\\"text-dark\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"form-group\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003clabel for=\\\"category\\\"\u003eExample select\u003c/label\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003cselect class=\\\"form-control\\\" id=\\\"category\\\"\u003e\\n \u003coption value=\\\"交通\\\"\u003e交通\u003c/option\u003e\\n \u003coption value=\\\"購物\\\"\u003e購物\u003c/option\u003e\\n \u003coption value=\\\"飲食\\\"\u003e飲食\u003c/option\u003e\\n \u003coption value=\\\"娛樂\\\"\u003e娛樂\u003c/option\u003e\\n \u003coption value=\\\"生活\\\"\u003e生活\u003c/option\u003e\\n \u003coption value=\\\"學習\\\"\u003e學習\u003c/option\u003e\\n \u003coption value=\\\"其他\\\"\u003e其他\u003c/option\u003e\\n \u003c/select\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"form-group\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003clabel for=\\\"recipient-name\\\" class=\\\"col-form-label\\\"\u003e日期:\u003c/label\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003cinput type=\\\"date\\\" class=\\\"form-control\\\" id=\\\"date\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"form-group\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003clabel for=\\\"recipient-name\\\" class=\\\"col-form-label\\\"\u003e金額:\u003c/label\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003cinput type=\\\"number\\\" class=\\\"form-control\\\" id=\\\"price\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"form-group\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003clabel for=\\\"recipient-name\\\" class=\\\"col-form-label\\\"\u003e名稱:\u003c/label\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003cinput type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"name\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"form-group\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003clabel for=\\\"message-text\\\" class=\\\"col-form-label\\\"\u003e描述:\u003c/label\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003ctextarea class=\\\"form-control\\\" id=\\\"description\\\"\u003e\u003c/textarea\u003e\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003c/form\u003e\\n\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\\t\u003cdiv class=\\\"modal-footer\\\"\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003cbutton type=\\\"button\\\" class=\\\"btn btn-secondary\\\" data-dismiss=\\\"modal\\\"\u003eClose\u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\\t\u003cbutton type=\\\"button\\\" class=\\\"btn btn-primary js-submit\\\"\u003eSend message\u003c/button\u003e\\n\\t\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\\t\u003c/div\u003e\\n\\t\\t\\t\u003c/div\u003e\\n\\t\\t\u003c/div\u003e\\n\\t\u003c/div\u003e\\n\u003c/body\u003e\\n\\n\u003c/html\u003e\",\"css\":\"/* body {\\n background: #1f253d;\\n}\\n\\n.card {\\n background: #394264;\\n color: #ffffff;\\n border-width: 0;\\n} */\",\"js\":\"var account = DB.table('account');\\n\\n$('.js-submit').on('click', function () {\\n var category = $('#category').val();\\n var date = $('#date').val();\\n var price = $('#price').val();\\n var name = $('#name').val();\\n var description = $('#description').val();\\n var time = new Date(date);\\n\\n account.insert({\\n category: category,\\n date: time,\\n timestamp: time.getTime(),\\n price: price,\\n name: name,\\n description: description\\n });\\n\\n update();\\n $('#exampleModal').modal('hide');\\n});\\n\\nupdate();\\n\\nfunction update() {\\n account.find({\\n timestamp: {\\n \\\"$gt\\\": Date.now() - 1000*60*60*24*30,\\n \\\"$lt\\\": Date.now()\\n }\\n }, function (data) {\\n updateTable(data);\\n updateTopTen(data);\\n updateRateProgress(data);\\n updateTrend(data);\\n });\\n}\\n\\nfunction updateTable (data) {\\n $('tbody').html('');\\n data.sort((a, b) =\u003e b.timestamp - a.timestamp);\\n for (var i = 0; i \u003c data.length; i++) {\\n var date = new Date(data[i].date);\\n $('tbody').append(`\u003ctr\u003e\\n \u003ctd\u003e${i + 1}\u003c/td\u003e\\n \u003ctd\u003e${data[i].category}\u003c/td\u003e\\n \u003ctd\u003e${date.toLocaleDateString()}\u003c/td\u003e\\n \u003ctd\u003e${data[i].price}\u003c/td\u003e\\n \u003ctd\u003e${data[i].name}\u003c/td\u003e\\n \u003ctd\u003e${data[i].description}\u003c/td\u003e\\n \u003c/tr\u003e`)\\n }\\n}\\n\\nfunction updateTopTen(data) {\\n $('.js-top-ten').html('');\\n data.sort((a, b) =\u003e b.price - a.price);\\n for (var i = 0; i \u003c 10 \u0026\u0026 i \u003c data.length; i++) {\\n console.log(data[i].name)\\n $('.js-top-ten').append(`\u003cli\u003e${data[i].name}:${data[i].price}\u003c/li\u003e`);\\n }\\n}\\n\\nfunction updateRateProgress(data) {\\n $('.js-rates').html('');\\n var rates = {};\\n var sum = 0;\\n for (var i = 0; i \u003c data.length; i++) {\\n var d = data[i];\\n if (rates[d.category] == undefined) {\\n rates[d.category] = 0;\\n }\\n rates[d.category] += Number(d.price);\\n sum += Number(d.price);\\n }\\n for (var key in rates) {\\n var rate = Math.floor(100 * rates[key] / sum);\\n $('.js-rates').append(`\\n \u003ch4\u003e${key}\u003c/h4\u003e\\n \u003cdiv class=\\\"progress\\\"\u003e\\n \u003cdiv class=\\\"progress-bar\\\" role=\\\"progressbar\\\" style=\\\"width: ${rate}% \\\" aria-valuenow=\\\"0\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"100\\\"\u003e${rate}%\u003c/div\u003e\\n \u003c/div\u003e`)\\n }\\n\\n $('.js-sum').text('總額:' + sum);\\n}\\n\\nfunction updateTrend(data) {\\n var day = 60*60*24*1000;\\n var history = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\\n\\n for (var i=0; i\u003cdata.length; i++) {\\n var timestamp = data[i].timestamp;\\n var offset = Math.floor((Date.now() - timestamp)/day);\\n if (offset \u003c 30) {\\n history[offset] += Number(data[i].price);\\n }\\n }\\n\\n $('.js-30day-log').html('');\\n for (var i=0; i\u003c30; i++) {\\n $('.js-30day-log').append(`\u003cli\u003e${history[i]}\u003c/li\u003e`);\\n }\\n}\"}","created_at":"2018-04-11T17:53:15.966+08:00","updated_at":"2019-10-21T14:00:41.233+08:00","name":"記帳","language":"web","screenshot":{"url":"https://cdn7.koding.school/uploads/project/screenshot/26100/4d6f431c5756cf49d64e77cd5a171e35.jpg"},"parent_id":null,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":293,"hashid":"jzmsk592","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
前往網站頁面
1:1:1
1:1
full
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦