이태화

sorting added

1 -<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>frontend-builder</title><link href=/static/css/app.cc5e57333bb9f326857db371c51764e8.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.7c229c2b77c6a7c173c8.js></script><script type=text/javascript src=/static/js/app.f1152f72778f01704bba.js></script></body></html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>frontend-builder</title><link href=/static/css/app.380b12be52766c1b4a982fc8a78e3375.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.7c229c2b77c6a7c173c8.js></script><script type=text/javascript src=/static/js/app.9583077158b1da0155e8.js></script></body></html>
...\ No newline at end of file ...\ No newline at end of file
......
1 +@font-face{font-family:JejuGothic;src:url(/static/fonts/JejuGothic.67e5ae8.ttf)}body{font-family:sans-serif;margin:0;background:#f2f3f5}a{text-decoration:none;color:inherit}li{list-style:none}button,input{border:none}ul{padding:0}.body{margin-top:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}header{height:150px;background-color:grey}.login-menu{position:absolute;right:150px;top:200px;width:400px;height:500px;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 15px 30px 0 rgba(0,0,0,.08);box-shadow:0 15px 30px 0 rgba(0,0,0,.08)}.login-menu .input-box{height:400px;margin:50px 25px;width:350px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.login-input-list input{width:300px;padding-left:40px}.login-input-list button,.login-input-list input{font-size:20px;height:50px;border-radius:5px;margin-top:20px;-webkit-box-shadow:0 10px 10px 0 rgba(0,0,0,.08);box-shadow:0 10px 10px 0 rgba(0,0,0,.08)}.login-input-list button{width:345px}.login-input-list button:hover{cursor:pointer}.imfoList{width:800px;background:grey}ul{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 auto 10px}li{margin-bottom:2px}.item{background:#fff;height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;padding:6px 15px 18px;width:700px;border-radius:5px}.title{font-size:15px}a{color:#34495e}a:visited{color:grey}.noticeInfo{position:absolute;bottom:12px;font-size:12px}.date{color:grey}.site{color:#fff;font-size:10px;padding:2px 10px}.khu{background-color:#c0392b}.sw{background-color:#3498db}.janghak{background-color:#632300}setting{margin-bottom:10px}.site{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.unSelected{color:#000}
2 +/*# sourceMappingURL=app.380b12be52766c1b4a982fc8a78e3375.css.map */
...\ No newline at end of file ...\ No newline at end of file
1 +{"version":3,"sources":["app.380b12be52766c1b4a982fc8a78e3375.css"],"names":[],"mappings":"AACA,WACE,sBAAyB,CACzB,6CACF,CACA,KACI,sBAAuB,CACvB,QAAS,CACT,kBACJ,CACA,EACI,oBAAqB,CACrB,aACJ,CACA,GACI,eACJ,CAIA,aACI,WACJ,CACA,GACI,SACJ,CACA,MACE,eAAe,CACf,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,2BAA4B,CAC5B,4BAA6B,CACzB,yBAA0B,CACtB,qBAAsB,CAC9B,wBAAyB,CACrB,qBAAsB,CAClB,kBACV,CAEA,OACE,YAAa,CACb,qBACF,CAEA,YACE,iBAAkB,CAClB,WAAY,CACZ,SAAU,CACV,WAAY,CACZ,YAAa,CACb,qBAAuB,CACvB,iBAAkB,CAClB,gDAAqD,CAC7C,wCACV,CACA,uBACE,YAAa,CACb,gBAA2B,CAC3B,WAAY,CACZ,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,uBAAwB,CACpB,oBAAqB,CACjB,sBACV,CACA,wBAEE,WAAY,CAGZ,iBAIF,CACA,iDATE,cAAe,CAEf,WAAY,CACZ,iBAAkB,CAElB,eAAgB,CAChB,gDAAqD,CAC7C,wCAUV,CARA,yBAEE,WAMF,CACA,+BACE,cACF,CAEA,UACE,WAAY,CACZ,eACF,CACA,GACE,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,2BAA4B,CAC5B,4BAA6B,CACzB,yBAA0B,CACtB,qBAAsB,CAC9B,kBACF,CACA,GACE,iBACF,CACA,MACE,eAAiB,CACjB,WAAY,CACZ,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,iBAAkB,CAClB,qBAAsB,CACtB,WAAY,CACZ,iBACF,CACA,OACE,cACF,CACA,EACE,aACF,CACA,UACE,UACF,CACA,YACE,iBAAkB,CAClB,WAAW,CACX,cACF,CACA,MACE,UACF,CACA,MACE,UAAY,CACZ,cAAc,CACd,gBACF,CACA,KACE,wBACF,CACA,IACE,wBACF,CACA,SACE,wBACF,CAEA,QACE,kBACF,CACA,MACE,cAAe,CACf,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,YACE,UACF","file":"app.380b12be52766c1b4a982fc8a78e3375.css","sourcesContent":["\n@font-face{\n font-family: 'JejuGothic';\n src: url(/static/fonts/JejuGothic.67e5ae8.ttf);\n}\nbody{\n font-family: sans-serif;\n margin: 0;\n background: #f2f3f5;\n}\na{\n text-decoration: none;\n color: inherit;\n}\nli{\n list-style: none;\n}\ninput{\n border: none;\n}\nbutton{\n border:none;\n}\nul{\n padding:0;\n}\n.body{\n margin-top:10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\nheader{\n height: 150px;\n background-color: grey;\n}\n\n.login-menu {\n position: absolute;\n right: 150px;\n top: 200px;\n width: 400px;\n height: 500px;\n background-color: white;\n border-radius: 4px;\n -webkit-box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.08);\n}\n.login-menu .input-box {\n height: 400px;\n margin: 50px 25px 50px 25px;\n width: 350px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.login-input-list input {\n font-size: 20px;\n width: 300px;\n height: 50px;\n border-radius: 5px;\n padding-left: 40px;\n margin-top: 20px;\n -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n}\n.login-input-list button {\n font-size: 20px;\n width: 345px;\n height: 50px;\n border-radius: 5px;\n margin-top: 20px;\n -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n}\n.login-input-list button:hover {\n cursor: pointer;\n}\n\n.imfoList{\n width: 800px;\n background: grey;\n}\nul{\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0 auto 10px auto;\n}\nli{\n margin-bottom:2px;\n}\n.item{\n background: white;\n height: 32px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n padding: 6px 15px 18px;\n width: 700px;\n border-radius:5px;\n}\n.title{\n font-size:15px;\n}\na{\n color: #34495e;\n}\na:visited{\n color: grey;\n}\n.noticeInfo{\n position: absolute;\n bottom:12px;\n font-size:12px;\n}\n.date{\n color: grey;\n}\n.site{\n color: white;\n font-size:10px;\n padding: 2px 10px;\n}\n.khu{\n background-color: #C0392B;\n}\n.sw{\n background-color: #3498DB;\n}\n.janghak{\n background-color: #632300;\n}\n\nsetting{\r\n margin-bottom:10px;\n}\n.site{\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\n}\n.unSelected{\r\n color:black;\n}\r\n"]}
...\ No newline at end of file ...\ No newline at end of file
1 -@font-face{font-family:JejuGothic;src:url(/static/fonts/JejuGothic.67e5ae8.ttf)}body{font-family:sans-serif;margin:0;background:#f2f3f5}a{text-decoration:none;color:inherit}li{list-style:none}button,input{border:none}ul{padding:0}.body{margin-top:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}header{height:150px;background-color:grey}.login-menu{position:absolute;right:150px;top:200px;width:400px;height:500px;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 15px 30px 0 rgba(0,0,0,.08);box-shadow:0 15px 30px 0 rgba(0,0,0,.08)}.login-menu .input-box{height:400px;margin:50px 25px;width:350px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.login-input-list input{width:300px;padding-left:40px}.login-input-list button,.login-input-list input{font-size:20px;height:50px;border-radius:5px;margin-top:20px;-webkit-box-shadow:0 10px 10px 0 rgba(0,0,0,.08);box-shadow:0 10px 10px 0 rgba(0,0,0,.08)}.login-input-list button{width:345px}.login-input-list button:hover{cursor:pointer}.imfoList{width:800px;background:grey}ul{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 auto 10px}li{margin-bottom:2px}.item{background:#fff;height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;padding:6px 15px 18px;width:700px;border-radius:5px}.title{font-size:15px}a{color:#34495e}a:visited{color:grey}.noticeInfo{position:absolute;bottom:12px;font-size:12px}.date{color:grey}.site{color:#fff;font-size:10px;padding:2px 10px}.khu{background-color:#c0392b}.sw{background-color:#3498db}.janghak{background-color:#632300}
2 -/*# sourceMappingURL=app.cc5e57333bb9f326857db371c51764e8.css.map */
...\ No newline at end of file ...\ No newline at end of file
1 -{"version":3,"sources":["app.cc5e57333bb9f326857db371c51764e8.css"],"names":[],"mappings":"AACA,WACE,sBAAyB,CACzB,6CACF,CACA,KACI,sBAAuB,CACvB,QAAS,CACT,kBACJ,CACA,EACI,oBAAqB,CACrB,aACJ,CACA,GACI,eACJ,CAIA,aACI,WACJ,CACA,GACI,SACJ,CACA,MACE,eAAe,CACf,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,uBAAwB,CACpB,oBAAqB,CACjB,sBACV,CAEA,OACE,YAAa,CACb,qBACF,CAEA,YACE,iBAAkB,CAClB,WAAY,CACZ,SAAU,CACV,WAAY,CACZ,YAAa,CACb,qBAAuB,CACvB,iBAAkB,CAClB,gDAAqD,CAC7C,wCACV,CACA,uBACE,YAAa,CACb,gBAA2B,CAC3B,WAAY,CACZ,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,uBAAwB,CACpB,oBAAqB,CACjB,sBACV,CACA,wBAEE,WAAY,CAGZ,iBAIF,CACA,iDATE,cAAe,CAEf,WAAY,CACZ,iBAAkB,CAElB,eAAgB,CAChB,gDAAqD,CAC7C,wCAUV,CARA,yBAEE,WAMF,CACA,+BACE,cACF,CAEA,UACE,WAAY,CACZ,eACF,CACA,GACE,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,2BAA4B,CAC5B,4BAA6B,CACzB,yBAA0B,CACtB,qBAAsB,CAC9B,kBACF,CACA,GACE,iBACF,CACA,MACE,eAAiB,CACjB,WAAY,CACZ,mBAAoB,CACpB,mBAAoB,CACpB,YAAa,CACb,iBAAkB,CAClB,qBAAsB,CACtB,WAAY,CACZ,iBACF,CACA,OACE,cACF,CACA,EACE,aACF,CACA,UACE,UACF,CACA,YACE,iBAAkB,CAClB,WAAW,CACX,cACF,CACA,MACE,UACF,CACA,MACE,UAAY,CACZ,cAAc,CACd,gBACF,CACA,KACE,wBACF,CACA,IACE,wBACF,CACA,SACE,wBACF","file":"app.cc5e57333bb9f326857db371c51764e8.css","sourcesContent":["\n@font-face{\n font-family: 'JejuGothic';\n src: url(/static/fonts/JejuGothic.67e5ae8.ttf);\n}\nbody{\n font-family: sans-serif;\n margin: 0;\n background: #f2f3f5;\n}\na{\n text-decoration: none;\n color: inherit;\n}\nli{\n list-style: none;\n}\ninput{\n border: none;\n}\nbutton{\n border:none;\n}\nul{\n padding:0;\n}\n.body{\n margin-top:10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\nheader{\n height: 150px;\n background-color: grey;\n}\n\n.login-menu {\n position: absolute;\n right: 150px;\n top: 200px;\n width: 400px;\n height: 500px;\n background-color: white;\n border-radius: 4px;\n -webkit-box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.08);\n}\n.login-menu .input-box {\n height: 400px;\n margin: 50px 25px 50px 25px;\n width: 350px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.login-input-list input {\n font-size: 20px;\n width: 300px;\n height: 50px;\n border-radius: 5px;\n padding-left: 40px;\n margin-top: 20px;\n -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n}\n.login-input-list button {\n font-size: 20px;\n width: 345px;\n height: 50px;\n border-radius: 5px;\n margin-top: 20px;\n -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.08);\n}\n.login-input-list button:hover {\n cursor: pointer;\n}\n\n.imfoList{\n width: 800px;\n background: grey;\n}\nul{\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n margin: 0 auto 10px auto;\n}\nli{\n margin-bottom:2px;\n}\n.item{\n background: white;\n height: 32px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n padding: 6px 15px 18px;\n width: 700px;\n border-radius:5px;\n}\n.title{\n font-size:15px;\n}\na{\n color: #34495e;\n}\na:visited{\n color: grey;\n}\n.noticeInfo{\n position: absolute;\n bottom:12px;\n font-size:12px;\n}\n.date{\n color: grey;\n}\n.site{\n color: white;\n font-size:10px;\n padding: 2px 10px;\n}\n.khu{\n background-color: #C0392B;\n}\n.sw{\n background-color: #3498DB;\n}\n.janghak{\n background-color: #632300;\n}\n"]}
...\ No newline at end of file ...\ No newline at end of file
1 +webpackJsonp([1],{AKAA:function(t,e){},NHnr:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=s("7+uW"),i={render:function(){var t=this.$createElement,e=this._self._c||t;return e("header",[e("center",[this._v("로고 들어갈 자리")]),this._v(" "),e("br"),this._v(" "),e("center",[this._v("디자이너 구합니다.")])],1)},staticRenderFns:[]};var a=s("VU/8")({name:"header",data:function(){return{}}},i,!1,function(t){s("NOVN")},null,null).exports,o=s("mtWM"),r=s.n(o),c={data:function(){return{username:"",password:""}},methods:{login:function(){r.a.post("/api/login",{username:this.username,password:this.password}).then(function(t){"isExist"===t.data&&alert("isExist"),"success"===t.data&&(window.location.href="/")})}}},l={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"login-menu"},[s("div",{staticClass:"input-box"},[s("form",{on:{submit:function(e){return e.preventDefault(),t.login(e)}}},[s("ul",{staticClass:"login-input-list"},[s("li",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.username,expression:"username"}],attrs:{type:"text",placeholder:"USERNAME"},domProps:{value:t.username},on:{input:function(e){e.target.composing||(t.username=e.target.value)}}})]),t._v(" "),s("li",[s("input",{directives:[{name:"model",rawName:"v-model",value:t.password,expression:"password"}],attrs:{type:"password",placeholder:"PASSWORD"},domProps:{value:t.password},on:{input:function(e){e.target.composing||(t.password=e.target.value)}}})]),t._v(" "),t._m(0)])])])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("button",{attrs:{type:"submit"}},[this._v("login")])])}]};var u=s("VU/8")(c,l,!1,function(t){s("AKAA")},null,null).exports,d={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("setting",t._l(t.setting,function(e){return s("span",{key:e.name,staticClass:"site",class:[e.seen?e.code:"unSelected"],on:{click:function(s){return t.toggle(e.code)}}},[t._v("\r\n "+t._s(e.name)+"\r\n ")])}),0)},staticRenderFns:[]};var f={el:".noticeList",components:{setting:s("VU/8")({el:"setting",data:function(){return{setting:[{name:"SW융합",seen:!0,code:"sw",official:"소프트웨어 융합대학 공지사항"},{name:"경희대",seen:!0,code:"khu",official:"경희대학교 공지사항"},{name:"장학센터",seen:!0,code:"janghak",official:"경희대학교 장학센터"}]}},methods:{toggle:function(t){this.setting.some(function(e){e.code===t&&(e.seen=!e.seen)}),this.$emit("settingchanged",this.setting)}}},d,!1,function(t){s("b8jG")},null,null).exports},data:function(){return{noticeList:[],sql:'select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList order by date desc',basic:'select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList'}},created:function(){this.fetchNoticeList()},methods:{fetchNoticeList:function(){var t=this;r.a.post("/api/fetchNoticeList",{sql:this.sql}).then(function(e){t.noticeList=e.data})},reload:function(t){var e=this.basic;e+=" where 0",t.forEach(function(t){!0===t.seen&&(e+=" or site = '"+t.official+"'")}),this.sql=e+" order by date desc",this.fetchNoticeList()}}},p={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"noticeList"},[s("setting",{on:{settingchanged:t.reload}}),t._v(" "),s("ul",[t._m(0),t._v(" "),t._l(t.noticeList,function(e){return s("li",{key:e,staticClass:"item"},[s("a",{attrs:{href:e.link,target:"_blank"}},[s("div",{staticClass:"title"},[t._v(t._s(e.title))])]),t._v(" "),s("div",{staticClass:"noticeInfo"},["경희대학교 공지사항"==e.site?s("span",{staticClass:"site khu"},[t._v("경희대")]):"소프트웨어 융합대학 공지사항"==e.site?s("span",{staticClass:"site sw"},[t._v("SW융합")]):"경희대학교 장학센터"==e.site?s("span",{staticClass:"site janghak"},[t._v("장학센터")]):t._e(),t._v(" "),s("span",{staticClass:"date"},[t._v(t._s(e.date))])])])})],2)],1)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("li",{staticClass:"item"},[e("a",[e("div",{staticClass:"title"},[this._v("아무 제목이나 써보았습니다.")])]),this._v(" "),e("div",{staticClass:"noticeInfo"},[e("span",{staticClass:"site sw"},[this._v("SW융합")]),this._v(" "),e("span",{staticClass:"date"},[this._v("2020-20-03")])])])}]};var v={name:"App",components:{siteHeader:a,loginMenu:u,noticeList:s("VU/8")(f,p,!1,function(t){s("xMyl")},null,null).exports}},m={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("siteHeader"),this._v(" "),e("div",{staticClass:"body"},[e("setting"),this._v(" "),e("noticeList")],1)],1)},staticRenderFns:[]};var h=s("VU/8")(v,m,!1,function(t){s("yjDJ")},null,null).exports,_=s("/ocq");n.a.use(_.a);var g=new _.a({routes:[{path:"/",name:"App",component:h}]});n.a.config.productionTip=!1,new n.a({el:"#app",router:g,axios:r.a,components:{App:h},template:"<App/>"})},NOVN:function(t,e){},b8jG:function(t,e){},xMyl:function(t,e){},yjDJ:function(t,e){}},["NHnr"]);
2 +//# sourceMappingURL=app.9583077158b1da0155e8.js.map
...\ No newline at end of file ...\ No newline at end of file
This diff is collapsed. Click to expand it.
1 -webpackJsonp([1],{"7uGk":function(t,e){},AKAA:function(t,e){},NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=n("7+uW"),i={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("header",[this._v("\n 로고 들어갈 자리\n "),e("br"),this._v("\n 디자이너 구합니다.\n")])}]};var a=n("VU/8")({name:"header",data:function(){return{}}},i,!1,function(t){n("zkZM")},null,null).exports,r=n("mtWM"),o=n.n(r),c={data:function(){return{username:"",password:""}},methods:{login:function(){o.a.post("/api/login",{username:this.username,password:this.password}).then(function(t){"isExist"===t.data&&alert("isExist"),"success"===t.data&&(window.location.href="/")})}}},u={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"login-menu"},[n("div",{staticClass:"input-box"},[n("form",{on:{submit:function(e){return e.preventDefault(),t.login(e)}}},[n("ul",{staticClass:"login-input-list"},[n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.username,expression:"username"}],attrs:{type:"text",placeholder:"USERNAME"},domProps:{value:t.username},on:{input:function(e){e.target.composing||(t.username=e.target.value)}}})]),t._v(" "),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.password,expression:"password"}],attrs:{type:"password",placeholder:"PASSWORD"},domProps:{value:t.password},on:{input:function(e){e.target.composing||(t.password=e.target.value)}}})]),t._v(" "),t._m(0)])])])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("button",{attrs:{type:"submit"}},[this._v("login")])])}]};var l={el:".noticeList",data:function(){return{noticeList:[]}},components:{},created:function(){this.fetchNoticeList()},methods:{fetchNoticeList:function(){var t=this;o.a.post("/api/fetchNoticeList",{}).then(function(e){console.log(e.data),t.noticeList=e.data})}}},p={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"noticeList"},[n("ul",t._l(t.noticeList,function(e){return n("li",{key:e.date,staticClass:"item"},[n("a",{attrs:{href:e.link,target:"_blank"}},[n("div",{staticClass:"title"},[t._v(t._s(e.title))])]),t._v(" "),n("div",{staticClass:"noticeInfo"},["경희대학교 공지사항"==e.site?n("span",{staticClass:"site khu"},[t._v("경희대")]):"소프트웨어 융합대학 공지사항"==e.site?n("span",{staticClass:"site sw"},[t._v("SW융합")]):"경희대학교 장학센터"==e.site?n("span",{staticClass:"site janghak"},[t._v("장학센터")]):t._e(),t._v(" "),n("span",{staticClass:"date"},[t._v(t._s(e.date))])])])}),0)])},staticRenderFns:[]};var d={name:"App",components:{siteHeader:a,loginMenu:n("VU/8")(c,u,!1,function(t){n("AKAA")},null,null).exports,noticeList:n("VU/8")(l,p,!1,function(t){n("7uGk")},null,null).exports}},v={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("siteHeader"),this._v(" "),e("div",{staticClass:"body"},[e("noticeList")],1)],1)},staticRenderFns:[]};var f=n("VU/8")(d,v,!1,function(t){n("OOxK")},null,null).exports,m=n("/ocq");s.a.use(m.a);var h=new m.a({routes:[{path:"/",name:"App",component:f}]});s.a.config.productionTip=!1,new s.a({el:"#app",router:h,axios:o.a,components:{App:f},template:"<App/>"})},OOxK:function(t,e){},zkZM:function(t,e){}},["NHnr"]);
2 -//# sourceMappingURL=app.f1152f72778f01704bba.js.map
...\ No newline at end of file ...\ No newline at end of file
This diff is collapsed. Click to expand it.
1 -{"version":3,"sources":["webpack:///webpack/bootstrap 2d2a60184a04a2e4bc9f"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 2d2a60184a04a2e4bc9f"],"sourceRoot":""}
...\ No newline at end of file ...\ No newline at end of file
1 +{"version":3,"sources":["webpack:///webpack/bootstrap 653bec68c77b17ec296b"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 653bec68c77b17ec296b"],"sourceRoot":""}
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -2,8 +2,6 @@ const mysql = require("mysql"); ...@@ -2,8 +2,6 @@ const mysql = require("mysql");
2 2
3 3
4 var noticeList = async function(req,res){ 4 var noticeList = async function(req,res){
5 - var result = [];
6 -
7 var connection = mysql.createConnection({ 5 var connection = mysql.createConnection({
8 host: "34.64.183.182", 6 host: "34.64.183.182",
9 user: 'root', 7 user: 'root',
...@@ -12,7 +10,7 @@ var noticeList = async function(req,res){ ...@@ -12,7 +10,7 @@ var noticeList = async function(req,res){
12 }); 10 });
13 connection.connect(); 11 connection.connect();
14 12
15 - connection.query('select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList order by date desc',function(err,rows){ 13 + connection.query(req.body.sql,function(err,rows){
16 if(err){ 14 if(err){
17 console.log(err); 15 console.log(err);
18 } 16 }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
2 <div id="app"> 2 <div id="app">
3 <siteHeader></siteHeader> 3 <siteHeader></siteHeader>
4 <div class = "body"> 4 <div class = "body">
5 + <setting></setting>
5 <noticeList></noticeList> 6 <noticeList></noticeList>
6 </div> 7 </div>
7 </div> 8 </div>
...@@ -51,6 +52,7 @@ ul{ ...@@ -51,6 +52,7 @@ ul{
51 .body{ 52 .body{
52 margin-top:10px; 53 margin-top:10px;
53 display: flex; 54 display: flex;
54 - justify-content: center; 55 + flex-direction: column;
56 + align-items: center;
55 } 57 }
56 </style> 58 </style>
......
1 <template> 1 <template>
2 <header> 2 <header>
3 - 로고 들어갈 자리 3 + <center>로고 들어갈 자리</center>
4 <br> 4 <br>
5 - 디자이너 구합니다. 5 + <center>디자이너 구합니다.</center>
6 </header> 6 </header>
7 </template> 7 </template>
8 8
......
1 <template> 1 <template>
2 <div class = "noticeList"> 2 <div class = "noticeList">
3 + <setting v-on:settingchanged="reload"></setting>
3 <ul> 4 <ul>
4 - <li class = "item" v-for="notice in noticeList" :key="notice.date"> 5 + <li class = "item">
6 + <a><div class = "title">아무 제목이나 써보았습니다.</div></a>
7 + <div class = "noticeInfo">
8 + <span class = "site sw" >SW융합</span>
9 + <span class = "date">2020-20-03</span>
10 + </div>
11 + </li>
12 + <li class = "item" v-for="notice in noticeList" :key="notice">
5 <a v-bind:href="notice.link" target="_blank"><div class = "title">{{notice.title}}</div></a> 13 <a v-bind:href="notice.link" target="_blank"><div class = "title">{{notice.title}}</div></a>
6 <div class = "noticeInfo"> 14 <div class = "noticeInfo">
7 <span class = "site khu" v-if="notice.site == '경희대학교 공지사항'">경희대</span> 15 <span class = "site khu" v-if="notice.site == '경희대학교 공지사항'">경희대</span>
...@@ -16,27 +24,43 @@ ...@@ -16,27 +24,43 @@
16 24
17 <script> 25 <script>
18 import axios from 'axios' 26 import axios from 'axios'
27 +import setting from './setting'
19 28
20 export default { 29 export default {
21 el: '.noticeList', 30 el: '.noticeList',
31 + components: {
32 + 'setting': setting
33 + },
22 data () { 34 data () {
23 return { 35 return {
24 - noticeList: [] 36 + noticeList: [],
37 + sql: 'select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList order by date desc',
38 + basic: 'select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList'
25 } 39 }
26 }, 40 },
27 - components: {
28 - },
29 created () { 41 created () {
30 this.fetchNoticeList() 42 this.fetchNoticeList()
31 }, 43 },
32 methods: { 44 methods: {
33 fetchNoticeList () { 45 fetchNoticeList () {
34 axios 46 axios
35 - .post('/api/fetchNoticeList', {}) 47 + .post('/api/fetchNoticeList', {
48 + sql: this.sql
49 + })
36 .then((noticeList) => { 50 .then((noticeList) => {
37 - console.log(noticeList.data)
38 this.noticeList = noticeList.data 51 this.noticeList = noticeList.data
39 }) 52 })
53 + },
54 + reload (setting) {
55 + var sql = this.basic
56 + sql += ' where 0'
57 + setting.forEach(function (item) {
58 + if (item.seen === true) {
59 + sql += ' or site = ' + '\'' + item.official + '\''
60 + }
61 + })
62 + this.sql = sql + ' order by date desc'
63 + this.fetchNoticeList()
40 } 64 }
41 } 65 }
42 } 66 }
......
1 +<template>
2 +<setting>
3 + <span class = "site"
4 + v-for="item in setting"
5 + v-bind:key="item.name" :class="[item.seen ? item.code: 'unSelected']"
6 + v-on:click="toggle(item.code)">
7 + {{item.name}}
8 + </span>
9 +</setting>
10 +</template>
11 +
12 +<script>
13 +export default {
14 + el: 'setting',
15 + data () {
16 + return {
17 + setting: [
18 + {name: 'SW융합', seen: true, code: 'sw', official: '소프트웨어 융합대학 공지사항'},
19 + {name: '경희대', seen: true, code: 'khu', official: '경희대학교 공지사항'},
20 + {name: '장학센터', seen: true, code: 'janghak', official: '경희대학교 장학센터'}
21 + ]
22 + }
23 + },
24 + methods: {
25 + toggle (siteClass) {
26 + this.setting.some(function (data) {
27 + if (data.code === siteClass) {
28 + data.seen = !data.seen
29 + }
30 + })
31 + this.$emit('settingchanged', this.setting)
32 + }
33 + }
34 +}
35 +</script>
36 +
37 +<style>
38 +setting{
39 + margin-bottom:10px;
40 +}
41 +.site{
42 + cursor: pointer;
43 + user-select: none;
44 +}
45 +.unSelected{
46 + color:black;
47 +}
48 +</style>