이태화

sorting added

<!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
<!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
......
@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}
/*# sourceMappingURL=app.380b12be52766c1b4a982fc8a78e3375.css.map */
\ No newline at end of file
{"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
@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}
/*# sourceMappingURL=app.cc5e57333bb9f326857db371c51764e8.css.map */
\ No newline at end of file
{"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
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"]);
//# sourceMappingURL=app.9583077158b1da0155e8.js.map
\ No newline at end of file
This diff is collapsed. Click to expand it.
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"]);
//# sourceMappingURL=app.f1152f72778f01704bba.js.map
\ No newline at end of file
This diff is collapsed. Click to expand it.
{"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
{"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
......
......@@ -2,8 +2,6 @@ const mysql = require("mysql");
var noticeList = async function(req,res){
var result = [];
var connection = mysql.createConnection({
host: "34.64.183.182",
user: 'root',
......@@ -12,7 +10,7 @@ var noticeList = async function(req,res){
});
connection.connect();
connection.query('select title,link,date_format(date,"%Y-%m-%d") as date,site from noticeList order by date desc',function(err,rows){
connection.query(req.body.sql,function(err,rows){
if(err){
console.log(err);
}
......
......@@ -2,6 +2,7 @@
<div id="app">
<siteHeader></siteHeader>
<div class = "body">
<setting></setting>
<noticeList></noticeList>
</div>
</div>
......@@ -51,6 +52,7 @@ ul{
.body{
margin-top:10px;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
</style>
......
<template>
<header>
로고 들어갈 자리
<center>로고 들어갈 자리</center>
<br>
디자이너 구합니다.
<center>디자이너 구합니다.</center>
</header>
</template>
......
<template>
<div class = "noticeList">
<setting v-on:settingchanged="reload"></setting>
<ul>
<li class = "item" v-for="notice in noticeList" :key="notice.date">
<li class = "item">
<a><div class = "title">아무 제목이나 써보았습니다.</div></a>
<div class = "noticeInfo">
<span class = "site sw" >SW융합</span>
<span class = "date">2020-20-03</span>
</div>
</li>
<li class = "item" v-for="notice in noticeList" :key="notice">
<a v-bind:href="notice.link" target="_blank"><div class = "title">{{notice.title}}</div></a>
<div class = "noticeInfo">
<span class = "site khu" v-if="notice.site == '경희대학교 공지사항'">경희대</span>
......@@ -16,27 +24,43 @@
<script>
import axios from 'axios'
import setting from './setting'
export default {
el: '.noticeList',
components: {
'setting': setting
},
data () {
return {
noticeList: []
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'
}
},
components: {
},
created () {
this.fetchNoticeList()
},
methods: {
fetchNoticeList () {
axios
.post('/api/fetchNoticeList', {})
.post('/api/fetchNoticeList', {
sql: this.sql
})
.then((noticeList) => {
console.log(noticeList.data)
this.noticeList = noticeList.data
})
},
reload (setting) {
var sql = this.basic
sql += ' where 0'
setting.forEach(function (item) {
if (item.seen === true) {
sql += ' or site = ' + '\'' + item.official + '\''
}
})
this.sql = sql + ' order by date desc'
this.fetchNoticeList()
}
}
}
......
<template>
<setting>
<span class = "site"
v-for="item in setting"
v-bind:key="item.name" :class="[item.seen ? item.code: 'unSelected']"
v-on:click="toggle(item.code)">
{{item.name}}
</span>
</setting>
</template>
<script>
export default {
el: 'setting',
data () {
return {
setting: [
{name: 'SW융합', seen: true, code: 'sw', official: '소프트웨어 융합대학 공지사항'},
{name: '경희대', seen: true, code: 'khu', official: '경희대학교 공지사항'},
{name: '장학센터', seen: true, code: 'janghak', official: '경희대학교 장학센터'}
]
}
},
methods: {
toggle (siteClass) {
this.setting.some(function (data) {
if (data.code === siteClass) {
data.seen = !data.seen
}
})
this.$emit('settingchanged', this.setting)
}
}
}
</script>
<style>
setting{
margin-bottom:10px;
}
.site{
cursor: pointer;
user-select: none;
}
.unSelected{
color:black;
}
</style>