diff --git a/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css b/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css new file mode 100644 index 0000000000000000000000000000000000000000..736e49a9c17659d48e4e5229e98bb558b79c0702 --- /dev/null +++ b/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css @@ -0,0 +1,2 @@ +#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px} +/*# sourceMappingURL=app.d23ad4f968f75bc1fdc1e08ce69223ca.css.map */ \ No newline at end of file diff --git a/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css.map b/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css.map new file mode 100644 index 0000000000000000000000000000000000000000..76f37e49caf3e5268a1bd105acc056896b71cdc6 --- /dev/null +++ b/backend/public/static/css/app.d23ad4f968f75bc1fdc1e08ce69223ca.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.d23ad4f968f75bc1fdc1e08ce69223ca.css"],"names":[],"mappings":"AACA,KACE,6CAAmD,CACnD,kCAAmC,CACnC,iCAAkC,CAClC,iBAAkB,CAClB,aAAc,CACd,eACF","file":"app.d23ad4f968f75bc1fdc1e08ce69223ca.css","sourcesContent":["\n#app {\r\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n text-align: center;\r\n color: #2c3e50;\r\n margin-top: 60px;\n}\r\n"]} \ No newline at end of file diff --git a/backend/public/static/img/book-open-flat.a6d64f7.png b/backend/public/static/img/book-open-flat.a6d64f7.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d171572ab0e861396c16f1ed4bd63ebe158e90 Binary files /dev/null and b/backend/public/static/img/book-open-flat.a6d64f7.png differ diff --git a/backend/public/static/js/app.1c070e861afe7dc1467b.js b/backend/public/static/js/app.1c070e861afe7dc1467b.js new file mode 100644 index 0000000000000000000000000000000000000000..6b2234ae920725f42374003426d804d914385377 --- /dev/null +++ b/backend/public/static/js/app.1c070e861afe7dc1467b.js @@ -0,0 +1,2 @@ +webpackJsonp([1],{NHnr:function(t,o,n){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var e=n("7+uW"),s={render:function(){var t=this.$createElement,o=this._self._c||t;return o("div",{attrs:{id:"app"}},[o("img",{attrs:{src:n("R0yh")}}),this._v(" "),o("router-view")],1)},staticRenderFns:[]};var r=n("VU/8")({name:"App"},s,!1,function(t){n("i+00")},null,null).exports,i=n("/ocq"),a={created:function(){var t=this;this.$http.get("/api/books").then(function(o){t.books=o.data})},data:function(){return{books:[]}},methods:{increaseSellCount:function(){this.book.sellcount+=1,this.$http.post("/api/books",this.book).then(function(t){console.log("Increase Buy count success")}).catch(function(t){console.log("Increase Buy count fail")})}}},c={render:function(){var t=this,o=t.$createElement,n=t._self._c||o;return n("div",{staticClass:"books"},[n("h1",[t._v("서적 목록")]),t._v(" "),t._l(t.books,function(o){return n("div",{key:o.id,staticClass:"book"},[n("img",{staticClass:"cover",attrs:{src:o.cover}}),t._v(" "),n("div",[n("strong",[t._v("제목: "+t._s(o.name))]),t._v(" "),n("br"),t._v(" "),n("i",[t._v("작가: "+t._s(o.author))]),t._v(" "),n("br"),t._v("\n 출판사: "+t._s(o.publisher)+"\n "),n("router-link",{attrs:{to:{name:"bookdetail",params:{id:o.id}}}},[t._v("더보기")]),t._v(" "),n("div",[n("button",{on:{click:function(t){o.buycount++}}},[t._v("구매")]),t._v(" 구매현황: "+t._s(o.buycount)+"\n "),n("button",{on:{click:function(t){o.sellcount++}}},[t._v("판매")]),t._v(" 판매현황: "+t._s(o.sellcount)+"\n ")]),t._v(" "),n("hr")],1)])})],2)},staticRenderFns:[]},u=n("VU/8")(a,c,!1,null,null,null).exports,l={render:function(){var t=this,o=t.$createElement,n=t._self._c||o;return n("div",[n("h1",[t._v("상세 내용")]),t._v(" "),n("img",{staticClass:"cover",attrs:{src:t.book.cover}}),t._v(" "),n("div",[n("strong",[t._v("제목: "+t._s(t.book.name))]),t._v(" "),n("br"),t._v(" "),n("i",[t._v("작가: "+t._s(t.book.author))]),t._v(" "),n("br"),t._v("\n 출판사: "+t._s(t.book.publisher)+"\n "),n("p",[t._v(" 도서 소개: "+t._s(t.book.description)+" ")]),t._v(" "),n("router-link",{attrs:{to:{name:"bookindex"}}},[t._v("돌아가기")])],1)])},staticRenderFns:[]},v=n("VU/8")({created:function(){var t=this,o=this.$route.params.id;this.$http.get("/api/books/"+o).then(function(o){t.book=o.data[0]})},data:function(){return{book:{}}}},l,!1,null,null,null).exports;e.a.use(i.a);var _=new i.a({mode:"history",routes:[{path:"/",name:"bookindex",component:u},{path:"/:id",name:"bookdetail",component:v}]}),p=n("mtWM"),d=n.n(p);e.a.prototype.$http=d.a,e.a.config.productionTip=!1,new e.a({el:"#app",router:_,components:{App:r},template:"<App/>"})},R0yh:function(t,o,n){t.exports=n.p+"static/img/book-open-flat.a6d64f7.png"},"i+00":function(t,o){}},["NHnr"]); +//# sourceMappingURL=app.1c070e861afe7dc1467b.js.map \ No newline at end of file diff --git a/backend/public/static/js/app.1c070e861afe7dc1467b.js.map b/backend/public/static/js/app.1c070e861afe7dc1467b.js.map new file mode 100644 index 0000000000000000000000000000000000000000..af72ce080e7c99723e4a417495af7b4566d4d35a --- /dev/null +++ b/backend/public/static/js/app.1c070e861afe7dc1467b.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/App.vue?68f6","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///src/components/BookIndexPage.vue","webpack:///./src/components/BookIndexPage.vue?8278","webpack:///./src/components/BookIndexPage.vue","webpack:///./src/components/BookShowPage.vue?3f57","webpack:///./src/components/BookShowPage.vue","webpack:///src/components/BookShowPage.vue","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/assets/book-open-flat.png"],"names":["selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","src","__webpack_require__","_v","staticRenderFns","src_App","normalizeComponent","name","ssrContext","BookIndexPage","created","_this","$http","get","then","response","books","data","methods","increaseSellCount","book","sellcount","post","res","console","log","catch","err","components_BookIndexPage","_vm","staticClass","_l","key","cover","_s","author","publisher","to","params","on","click","$event","buycount","src_components_BookIndexPage","BookIndexPage_normalizeComponent","components_BookShowPage","description","src_components_BookShowPage","BookShowPage_normalizeComponent","$route","Vue","use","Router","router","mode","routes","path","component","BookShowPage","prototype","axios","config","productionTip","el","components","App","template","module","exports","p"],"mappings":"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","file":"static/js/app.1c070e861afe7dc1467b.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('img',{attrs:{\"src\":require(\"./assets/book-open-flat.png\")}}),_vm._v(\" \"),_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2556a522\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2556a522\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2556a522\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","<template>\r\n <div id=\"app\">\r\n <img src=\"./assets/book-open-flat.png\">\r\n <router-view/>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'App'\r\n}\r\n</script>\r\n\r\n<style>\r\n#app {\r\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n text-align: center;\r\n color: #2c3e50;\r\n margin-top: 60px;\r\n}\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","<template>\r\n <div class=\"books\">\r\n <h1>서적 목록</h1>\r\n <div v-for=\"book in books\" class=\"book\" v-bind:key=\"book.id\">\r\n <img v-bind:src=\"book.cover\" class=\"cover\">\r\n <div>\r\n <strong>제목: {{book.name}}</strong> <br />\r\n <i>작가: {{book.author}}</i> <br />\r\n 출판사: {{book.publisher}}\r\n <router-link :to=\"{ name: 'bookdetail', params: { id: book.id }}\">더보기</router-link>\r\n \r\n <div>\r\n <button v-on:click=\"book.buycount++\">구매</button> 구매현황: {{book.buycount}}\r\n <button v-on:click=\"book.sellcount++\">판매</button> 판매현황: {{book.sellcount}}\r\n </div>\r\n \r\n <hr />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n created() {\r\n this.$http.get('/api/books').then((response) => {\r\n this.books = response.data;\r\n });\r\n },\r\n data() {\r\n return {\r\n books: [],\r\n };\r\n },\r\n methods: {\r\n increaseSellCount() {\r\n this.book.sellcount += 1;\r\n this.$http.post(\"/api/books\", this.book)\r\n .then(res => {\r\n console.log('Increase Buy count success'); \r\n })\r\n .catch(err => {\r\n console.log('Increase Buy count fail');\r\n });\r\n // this.$router.push({ name: 'bookdetail' });\r\n }\r\n }\r\n};\r\n</script>\n\n\n// WEBPACK FOOTER //\n// src/components/BookIndexPage.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"books\"},[_c('h1',[_vm._v(\"서적 목록\")]),_vm._v(\" \"),_vm._l((_vm.books),function(book){return _c('div',{key:book.id,staticClass:\"book\"},[_c('img',{staticClass:\"cover\",attrs:{\"src\":book.cover}}),_vm._v(\" \"),_c('div',[_c('strong',[_vm._v(\"제목: \"+_vm._s(book.name))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('i',[_vm._v(\"작가: \"+_vm._s(book.author))]),_vm._v(\" \"),_c('br'),_vm._v(\"\\n 출판사: \"+_vm._s(book.publisher)+\"\\n \"),_c('router-link',{attrs:{\"to\":{ name: 'bookdetail', params: { id: book.id }}}},[_vm._v(\"더보기\")]),_vm._v(\" \"),_c('div',[_c('button',{on:{\"click\":function($event){book.buycount++}}},[_vm._v(\"구매\")]),_vm._v(\" 구매현황: \"+_vm._s(book.buycount)+\"\\n \"),_c('button',{on:{\"click\":function($event){book.sellcount++}}},[_vm._v(\"판매\")]),_vm._v(\" 판매현황: \"+_vm._s(book.sellcount)+\"\\n \")]),_vm._v(\" \"),_c('hr')],1)])})],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-405635e5\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/BookIndexPage.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./BookIndexPage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./BookIndexPage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-405635e5\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./BookIndexPage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/BookIndexPage.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',[_vm._v(\"상세 내용\")]),_vm._v(\" \"),_c('img',{staticClass:\"cover\",attrs:{\"src\":_vm.book.cover}}),_vm._v(\" \"),_c('div',[_c('strong',[_vm._v(\"제목: \"+_vm._s(_vm.book.name))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('i',[_vm._v(\"작가: \"+_vm._s(_vm.book.author))]),_vm._v(\" \"),_c('br'),_vm._v(\"\\n 출판사: \"+_vm._s(_vm.book.publisher)+\"\\n \"),_c('p',[_vm._v(\" 도서 소개: \"+_vm._s(_vm.book.description)+\" \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'bookindex' }}},[_vm._v(\"돌아가기\")])],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3a40b3bd\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/BookShowPage.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./BookShowPage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./BookShowPage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3a40b3bd\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./BookShowPage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/BookShowPage.vue\n// module id = null\n// module chunks = ","<template>\r\n <div>\r\n <h1>상세 내용</h1>\r\n <img v-bind:src=\"book.cover\" class=\"cover\">\r\n <div>\r\n <strong>제목: {{book.name}}</strong> <br />\r\n <i>작가: {{book.author}}</i> <br />\r\n 출판사: {{book.publisher}}\r\n <p> 도서 소개: {{book.description}} </p>\r\n <router-link :to=\"{ name: 'bookindex' }\">돌아가기</router-link>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n created: function() {\r\n var id = this.$route.params.id;\r\n this.$http.get(`/api/books/${id}`).then((response) => {\r\n this.book = response.data[0];\r\n });\r\n },\r\n data: function() {\r\n return {\r\n book: {}\r\n };\r\n }\r\n};\r\n</script>\n\n\n// WEBPACK FOOTER //\n// src/components/BookShowPage.vue","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\n\r\n\r\nVue.use(Router)\r\n\r\n//import IndexPage from '@/components/IndexPage'\r\nimport BookIndexPage from '@/components/BookIndexPage'\r\nimport BookShowPage from '@/components/BookShowPage'\r\n\r\nexport default new Router({\r\n mode: 'history',\r\n routes: [\r\n // {\r\n // path: '/',\r\n // name: 'IndexPage',\r\n // component: IndexPage\r\n // },\r\n\r\n {\r\n path: '/',\r\n name: 'bookindex',\r\n component: BookIndexPage\r\n },\r\n {\r\n path: '/:id',\r\n name: 'bookdetail',\r\n component: BookShowPage\r\n }\r\n ]\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\nimport Vue from 'vue'\r\nimport App from './App'\r\nimport router from './router'\r\nimport axios from 'axios'\r\n\r\nVue.prototype.$http = axios\r\nVue.config.productionTip = false\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: '#app',\r\n router,\r\n components: { App },\r\n template: '<App/>'\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","module.exports = __webpack_public_path__ + \"static/img/book-open-flat.a6d64f7.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/book-open-flat.png\n// module id = R0yh\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map b/backend/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map index 6c8d3bc1182c9cd108322a0181ff4ce65ba898b3..a6fdb1fadaedaade73a7f2accab8880b24ab2116 100644 --- a/backend/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map +++ b/backend/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map @@ -1,5 +1,59 @@ -<<<<<<< HEAD -{"version":3,"sources":["webpack:///webpack/bootstrap d4402d785da50a39ba85"],"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 d4402d785da50a39ba85"],"sourceRoot":""} -======= -{"version":3,"sources":["webpack:///webpack/bootstrap 9a1e0d9f46f089fcbcf1"],"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 9a1e0d9f46f089fcbcf1"],"sourceRoot":""} ->>>>>>> master +{ + "version": 3, + "sources": [ + "webpack:///webpack/bootstrap 9a1e0d9f46f089fcbcf1" + ], + "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 9a1e0d9f46f089fcbcf1" + ], + "sourceRoot": "" +} diff --git a/frontend/config/index.js b/frontend/config/index.js index 977a98c77ed889ddbb94bae01bd19294e0fab53f..c5eded7f81ab3b7f3c6fb54e0c86bcf7adeab944 100644 --- a/frontend/config/index.js +++ b/frontend/config/index.js @@ -10,15 +10,7 @@ module.exports = { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', - proxyTable: { - '/api': { - target: 'http://localhost:3000/api', - changeOrigin: true, - pathRewrite: { - '^/api': '' - } - } - }, + proxyTable: {}, // Various Dev Server settings host: 'localhost', // can be overwritten by process.env.HOST @@ -46,12 +38,10 @@ module.exports = { build: { // Template for index.html - //index: path.resolve(__dirname, '../dist/index.html'), - index: path.resolve(__dirname, '../../backend/public/index.html'), + index: path.resolve(__dirname, '../dist/index.html'), // Paths - //assetsRoot: path.resolve(__dirname, '../dist'), - assetsRoot: path.resolve(__dirname, '../../backend/public'), + assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', diff --git a/frontend/index.html b/frontend/index.html index b896c1392e0531f0ad2da3298942da618547ca3d..12bce148a2353277a3f72773ce8178b473ba69de 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> - <title>majorbook</title> + <title>frontend</title> </head> <body> <div id="app"></div> diff --git a/frontend/package.json b/frontend/package.json index f877548d34833afc32e3228de81b6d94ff6f2dc0..88330ca0e4583e4da39f7ee2c81b16c9a1233efb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,7 +2,7 @@ "name": "frontend", "version": "1.0.0", "description": "A Vue.js project", - "author": "YongJae <sdc689@gmail.com>", + "author": "HyeonJu <hj950000@ajou.ac.kr>", "private": true, "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", @@ -42,6 +42,7 @@ "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "postcss-url": "^7.2.1", + "prettier": "^1.19.1", "rimraf": "^2.6.0", "sass-loader": "^7.3.1", "semver": "^5.3.0", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 490185ecff5d09220147d543b1ece5f03e5bef7a..7579ff4ef55978f42126c99364c76e47955276f2 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,12 +1,97 @@ <template> - <div id="app"> + <div id="app" class="page-container"> + <md-app md-mode="fixed-last"> + <md-app-toolbar class="md-large md-dense md-primary"> + <div class="md-toolbar-row"> + <span class="md-title">MajorBook </span> + </div> + + <div style="flex:1"> + <template v-if="logged_io"> + ID : + <input v-model="id" placeholder="ID" type="text" required /> + PASSWORD : + <input + v-model="pwd" + placeholder="password" + type="password" + required + /> + <button v-on:click="login" class="btn">Login</button> + <md-button :href="signup" class="btn">Sign up</md-button> + </template> + <template v-else> + <button class="btn">거래현황</button> + <button v-on:click="logout" class="btn">Logout</button> + </template> + </div> + + <div class="md-toolbar-row"> + <md-tabs class="md-primary" style="margin: auto; height: 30px"> + <md-tab id="tab-home" md-label="Home" to="/"> </md-tab> + <md-tab + id="tab-dashBoard" + md-label="Dashboard" + to="/dashBoard" + ></md-tab> + <md-tab id="tab-profile" md-label="Profile" to="/profile"></md-tab> + <md-tab + id="tab-list" + md-label="전공서적보기" + to="/BookSearchPage" + ></md-tab> + </md-tabs> + </div> + </md-app-toolbar> + </md-app> <router-view /> </div> </template> <script> +import Vue from "vue"; +import VueMaterial from "vue-material"; +import "vue-material/dist/vue-material.min.css"; + +Vue.use(VueMaterial); + export default { - name: "App" + name: "App", + data() { + return { + id: "", + pwd: "", + flag: false, + url: { + bookIndex: "/api/books" + } + }; + }, + computed: { + changeID() { + this.id = `${this.id}`; + }, + changePWD() { + this.pwd = `${this.pwd}`; + }, + logged_io() { + if (!this.flag) return true; + else return false; + } + }, + methods: { + login: function() { + if (this.id != "" && this.pwd != "") { + alert(this.id + " login!!"); + this.flag = !this.flag; + this.id = ""; + this.pwd = ""; + } else alert("ID/PASSWORD를 입력하세요"); + }, + logout: function() { + this.flag = !this.flag; + } + } }; </script> @@ -17,6 +102,24 @@ export default { -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; - margin-top: 60px; + height: 100%; +} + +.btn { + color: #00b7ff; + background-color: #a6a6a6; + border-radius: 15%; +} + +h1 { + text-align: left; + font-size: 35px; + color: #00b7ff; + text-decoration: none; +} + +img { + height: 100%; + width: 100%; } </style> diff --git a/frontend/src/components/BookIndexPage.vue b/frontend/src/components/BookIndexPage.vue new file mode 100644 index 0000000000000000000000000000000000000000..17753634013d1c4c1923d53e64fe213f9c5664a2 --- /dev/null +++ b/frontend/src/components/BookIndexPage.vue @@ -0,0 +1,49 @@ +<template> + <div class="books"> + <h1>서적 목록</h1> + <div v-for="book in books" class="book" v-bind:key="book.id"> + <img v-bind:src="book.cover" class="cover"> + <div> + <strong>제목: {{book.name}}</strong> <br /> + <i>작가: {{book.author}}</i> <br /> + 출판사: {{book.publisher}} + <router-link :to="{ name: 'bookdetail', params: { id: book.id }}">더보기</router-link> + + <div> + <button v-on:click="book.buycount++">구매</button> 구매현황: {{book.buycount}} + <button v-on:click="book.sellcount++">판매</button> 판매현황: {{book.sellcount}} + </div> + + <hr /> + </div> + </div> + </div> +</template> + +<script> +export default { + created() { + this.$http.get('/api/books').then((response) => { + this.books = response.data; + }); + }, + data() { + return { + books: [], + }; + }, + methods: { + increaseSellCount() { + this.book.sellcount += 1; + this.$http.post("/api/books", this.book) + .then(res => { + console.log('Increase Buy count success'); + }) + .catch(err => { + console.log('Increase Buy count fail'); + }); + // this.$router.push({ name: 'bookdetail' }); + } + } +}; +</script> \ No newline at end of file diff --git a/frontend/src/components/buy.vue b/frontend/src/components/buy.vue deleted file mode 100644 index de8bac6ac6219c468d61f20f17350221e242c0e2..0000000000000000000000000000000000000000 --- a/frontend/src/components/buy.vue +++ /dev/null @@ -1,24 +0,0 @@ -<template> - <h1> buy</h1> -</template> - -<script> -export default{ - data() { - return{ - name : '', - univ : '', - email : '' - } - }, - computed:{ - }, - methods:{ - } - } -</script> - -<style lang='css'> - - -</style> diff --git a/frontend/src/components/dashBoard.vue b/frontend/src/components/dashBoard.vue new file mode 100644 index 0000000000000000000000000000000000000000..78b235bda6b595ef1b8d34a800627cc37e8bfdfd --- /dev/null +++ b/frontend/src/components/dashBoard.vue @@ -0,0 +1,14 @@ +<template> + <!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Majorbook</title> + </head> + <body> + <h1>my page 1</h1> + <button>수정하기</button> + </body> + </html> +</template> diff --git a/frontend/src/components/home.vue b/frontend/src/components/home.vue index 26e3dcfd3d4caa29766125c683d977cf5f4028e0..a400cf5fe708fe686c46ef1e33f431b4bc2c7dd8 100644 --- a/frontend/src/components/home.vue +++ b/frontend/src/components/home.vue @@ -1,30 +1,15 @@ <template> - <!DOCTYPE html> - <html lang="en"> - <head> - <title>Majorbook</title> - </head> - - <body> - <header class="header"> - <h1>Majorbook</h1> - <div align="right"> - <Login /> - </div> - </header> - <nav class="nav"> - <button v-on:click="gotoMyPage()">My Page</button> - <button v-on:click="gotoBuyPage()">buy</button> - <button v-on:click="gotoSellPage()">sell</button> - <router-link to="/BookSearchPage">전공서적보기</router-link> - </nav> - <section class="section"> - <img src="../../static/img/img1.jpg" /> - </section> - <aside class="aside">이용방법</aside> - <footer class="footer">Implemented by 202-WebSysDesign</footer> - </body> - </html> + <div> + <div class="md-layout" style="display: block; color:#F6F6F6"> + <div class="md-layout-item"><img src="../../static/img/img2.jpg" /></div> + <div class="md-layout-item" style="backgroundColor:#F2CB61; height:30px;"> + 이용방법 + </div> + <div class="md-layout-item" style="backgroundColor:#353535;"> + Implemented by 202-WebSysDesign + </div> + </div> + </div> </template> <script> diff --git a/frontend/src/components/login/SignUp.vue b/frontend/src/components/login/SignUp.vue index 499aef0fa7e819d3ae6584c59457db6d44a38d03..5d132f5fad97bca567810198a63a7146406d7762 100644 --- a/frontend/src/components/login/SignUp.vue +++ b/frontend/src/components/login/SignUp.vue @@ -1,58 +1,59 @@ <template> <div> - <md-card class="md-layout-item md-size-50 md-small-size-100"> - <md-card-header> - <div class="md-title"> Sign Up</div> - </md-card-header> + <md-card class="md-layout-item md-size-50 md-small-size-100"> + <md-card-header> + <div class="md-title">Sign Up</div> + </md-card-header> - <md-card-content> - <md-field> - <label for="name">Name</label> - <md-input name="name" v-model="user.name" /> - </md-field> + <md-card-content> + <md-field> + <label for="name">Name</label> + <md-input name="name" v-model="user.name" /> + </md-field> - <md-field> - <label for="id">ID</label> - <md-input name="id" v-model="user.id" /> - </md-field> + <md-field> + <label for="id">ID</label> + <md-input name="id" v-model="user.id" /> + </md-field> - <md-field :md-toggle-password="true"> - <label for="password">Password</label> - <md-input name="password" v-model="user.password" type="password"/> - </md-field> + <md-field :md-toggle-password="true"> + <label for="password">Password</label> + <md-input name="password" v-model="user.password" type="password" /> + </md-field> - <md-field> - <label for="email">Email</label> - <md-input name="email" v-model="user.email" /> - </md-field> - </md-card-content> + <md-field> + <label for="email">Email</label> + <md-input name="email" v-model="user.email" /> + </md-field> + </md-card-content> - <md-card-actions> - <md-button class="md-raised md-primary" v-on:click="signUp">Sign Up</md-button> - </md-card-actions> - </md-card> + <md-card-actions> + <md-button class="md-raised md-primary" v-on:click="signUp" + >Sign Up</md-button + > + </md-card-actions> + </md-card> </div> </template> <style> - .md-card { margin: auto; } .md-primary { background-color: blue; - color:white; + color: white; } </style> <script> -import Vue from 'vue' +import Vue from "vue"; -import VueMaterial from 'vue-material' -import 'vue-material/dist/vue-material.min.css' -import 'vue-material/dist/theme/default.css' -Vue.use(VueMaterial) +import VueMaterial from "vue-material"; +import "vue-material/dist/vue-material.min.css"; +import "vue-material/dist/theme/default.css"; +Vue.use(VueMaterial); // import {MdField, MdButton, MdCard, MdInput} from 'vue-material/dist/components' // import 'vue-material/dist/vue-material.min.css' @@ -64,36 +65,38 @@ Vue.use(VueMaterial) // Vue.use(MdInput) export default { - data: function () { + data: function() { return { user: { - id: '', - password: '', - name: '', - email: '', + id: "", + password: "", + name: "", + email: "", isLoggedIn: false }, sending: false - } + }; }, methods: { - signUp: function (event) { - this.$http.post('/api/login/signUp', { //axios 사용 - user: this.user - }) - .then((response) => { - if (response.data.result === 0) { - alert('Error, please, try again') - } - if (response.data.result === 1) { - alert('Success') - this.$router.push('/') // Home 페이지로 보내줌 - } - }) - .catch(function (error) { - alert('error') - }) + signUp: function(event) { + this.$http + .post("/api/login/signUp", { + //axios 사용 + user: this.user + }) + .then(response => { + if (response.data.result === 0) { + alert("Error, please, try again"); + } + if (response.data.result === 1) { + alert("Success"); + this.$router.push("/"); // Home 페이지로 보내줌 + } + }) + .catch(function(error) { + alert("error"); + }); } } -} -</script> \ No newline at end of file +}; +</script> diff --git a/frontend/src/components/myPage.vue b/frontend/src/components/myPage.vue deleted file mode 100644 index e8b04fe191cfcf6a2fa23afc6dfbcbf4d432fcbc..0000000000000000000000000000000000000000 --- a/frontend/src/components/myPage.vue +++ /dev/null @@ -1,15 +0,0 @@ -<template> - <!DOCTYPE html> - <html lang="en"> - <head> - <meta charset="UTF-8"> - <meta name='viewport' content='width=device-width, initial-scale=1.0'> - <title>Majorbook-My Page</title> - </head> - <body> - <h1>My Page</h1> - - <button>수정하기</button> - </body> - </html> -</template> \ No newline at end of file diff --git a/frontend/src/components/profile.vue b/frontend/src/components/profile.vue new file mode 100644 index 0000000000000000000000000000000000000000..5b6170dbfbd53d42dcf6dff693a36f20f88a2f25 --- /dev/null +++ b/frontend/src/components/profile.vue @@ -0,0 +1,15 @@ +<template> + <!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Majorbook</title> + </head> + <body> + <h1>My Page-2</h1> + dfsd + <button>수정하기</button> + </body> + </html> +</template> diff --git a/frontend/src/components/sell.vue b/frontend/src/components/sell.vue deleted file mode 100644 index 0bca32e74b919713d2d71a5fea7d06774dc8dfe0..0000000000000000000000000000000000000000 --- a/frontend/src/components/sell.vue +++ /dev/null @@ -1,24 +0,0 @@ -<template> - <h1> sell </h1> -</template> - -<script> -export default{ - data() { - return{ - name : '', - univ : '', - email : '' - } - }, - computed:{ - }, - methods:{ - } - } -</script> - -<style lang='css'> - - -</style> diff --git a/frontend/src/main.js b/frontend/src/main.js index 3d590b97ad7d50b5b06b5c04f0d75388b850de2e..83ffc885b0018d863edc5e93a7776a0cb2baf7eb 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -3,6 +3,7 @@ import Vue from 'vue' import App from './App' import router from './router' + import axios from 'axios' import Vuetify from 'vuetify' import 'vuetify/dist/vuetify.min.css' diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 347eb30caeea80150c75f55684037b8249610565..fdd998c2313700aec5b9b939d9e9c2a3d1f6e441 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -1,51 +1,62 @@ -import Vue from 'vue' -import Router from 'vue-router'; -Vue.use(Router) -import home from '@/components/home' -import myPage from '@/components/myPage' -import buy from '@/components/buy' -import sell from '@/components/sell' -import Login from '@/components/login/Login' -import SignUp from '@/components/login/SignUp' -import BookSearchPage from '@/components/BookSearchPage' +import Vue from "vue"; +import Router from "vue-router"; +Vue.use(Router); +import home from "@/components/home"; +import dashBoard from "@/components/dashBoard"; +import profile from "@/components/profile"; +import signup from "@/components/signup"; +import BookSearchPage from "@/components/BookSearchPage"; +import BookIndexPage from "@/components/BookIndexPage"; +import BookShowPage from "@/components/BookShowPage"; +import Login from "@/components/login/Login"; +import SignUp from "@/components/login/SignUp"; export default new Router({ - mode: 'history', routes: [ { - path: '/', - name: 'home', + path: "/", + name: "home", component: home }, { - path: '/myPage', - name : 'myPage', - component: myPage + path: "/dashBoard", + name: "dashBoard", + component: dashBoard }, { - path: '/buy', - name: 'buy', - component: buy + path: "/profile", + name: "profile", + component: profile }, { - path: '/sell', - name: 'sell', - component: sell + path: "/signup", + name: "signup", + component: signup }, { - path: '/BookSearchPage', - name: 'bookindex', + path: "/BookIndexPage", + name: "bookindex", + component: BookIndexPage + }, + { + path: "/BookIndexPage:id", + name: "bookdetail", + component: BookShowPage + }, + { + path: "/BookSearchPage", + name: "bookindex", component: BookSearchPage }, { - path: '/login', - name: 'Login', + path: "/login", + name: "Login", component: Login }, { - path: '/login/signUp', - name: 'SignUp', + path: "/login/signUp", + name: "SignUp", component: SignUp } ] -}) \ No newline at end of file +}); diff --git a/frontend/static/img/img1.jpg b/frontend/static/img/img1.jpg deleted file mode 100644 index d3e6c67ea7e5cbde850ba2736b5732946b7afe23..0000000000000000000000000000000000000000 Binary files a/frontend/static/img/img1.jpg and /dev/null differ diff --git a/frontend/static/img/img2.jpg b/frontend/static/img/img2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12c90818ae52c1554d38b1fb8333677fff9e63c8 Binary files /dev/null and b/frontend/static/img/img2.jpg differ