diff --git a/front/package-lock.json b/front/package-lock.json index 672a8e85e3470a8a8a16eb2badd33f80ef75bad6..13413d6b6a68e93cc42bfe60a4dff54407e0d639 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -9,10 +9,10 @@ "version": "0.0.0", "dependencies": { "axios": "^1.5.0", -<<<<<<< HEAD + "element-plus": "^2.3.12", -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "vue": "^3.3.4", "vue-router": "^4.2.4", "vuex": "^4.1.0" @@ -34,7 +34,7 @@ "node": ">=6.0.0" } }, -<<<<<<< HEAD + "node_modules/@ctrl/tinycolor": { "version": "3.6.1", "resolved": "https://r.cnpmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", @@ -51,8 +51,8 @@ "vue": "^3.2.0" } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://r.cnpmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -405,7 +405,7 @@ "node": ">=12" } }, -<<<<<<< HEAD + "node_modules/@floating-ui/core": { "version": "1.4.1", "resolved": "https://r.cnpmjs.org/@floating-ui/core/-/core-1.4.1.tgz", @@ -428,14 +428,14 @@ "resolved": "https://r.cnpmjs.org/@floating-ui/utils/-/utils-0.1.2.tgz", "integrity": "sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://r.cnpmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, -<<<<<<< HEAD + "node_modules/@popperjs/core": { "name": "@sxzz/popperjs-es", "version": "2.11.7", @@ -460,8 +460,8 @@ "resolved": "https://r.cnpmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/@vitejs/plugin-vue": { "version": "4.3.4", "resolved": "https://r.cnpmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", @@ -582,7 +582,7 @@ "resolved": "https://r.cnpmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, -<<<<<<< HEAD + "node_modules/@vueuse/core": { "version": "9.13.0", "resolved": "https://r.cnpmjs.org/@vueuse/core/-/core-9.13.0.tgz", @@ -651,8 +651,8 @@ } } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://r.cnpmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -666,14 +666,14 @@ "node": ">= 8" } }, -<<<<<<< HEAD + "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://r.cnpmjs.org/async-validator/-/async-validator-4.2.5.tgz", "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://r2.cnpmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -747,14 +747,14 @@ "resolved": "https://r.cnpmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, -<<<<<<< HEAD + "node_modules/dayjs": { "version": "1.11.9", "resolved": "https://r.cnpmjs.org/dayjs/-/dayjs-1.11.9.tgz", "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -763,7 +763,7 @@ "node": ">=0.4.0" } }, -<<<<<<< HEAD + "node_modules/element-plus": { "version": "2.3.12", "resolved": "https://r.cnpmjs.org/element-plus/-/element-plus-2.3.12.tgz", @@ -789,8 +789,8 @@ "vue": "^3.2.0" } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://r.cnpmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -828,14 +828,14 @@ "@esbuild/win32-x64": "0.18.20" } }, -<<<<<<< HEAD + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://r2.cnpmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://r2.cnpmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -953,7 +953,7 @@ "node": ">=0.12.0" } }, -<<<<<<< HEAD + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://r2.cnpmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -974,8 +974,8 @@ "lodash-es": "*" } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/magic-string": { "version": "0.30.3", "resolved": "https://r.cnpmjs.org/magic-string/-/magic-string-0.30.3.tgz", @@ -987,14 +987,14 @@ "node": ">=12" } }, -<<<<<<< HEAD + "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://r2.cnpmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://r.cnpmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1034,14 +1034,14 @@ "node": ">=0.10.0" } }, -<<<<<<< HEAD + "node_modules/normalize-wheel-es": { "version": "1.2.0", "resolved": "https://r.cnpmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -1232,7 +1232,7 @@ "resolved": "https://r.cnpmjs.org/@babel/parser/-/parser-7.22.15.tgz", "integrity": "sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==" }, -<<<<<<< HEAD + "@ctrl/tinycolor": { "version": "3.6.1", "resolved": "https://r.cnpmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", @@ -1244,8 +1244,8 @@ "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", "requires": {} }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://r.cnpmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -1400,7 +1400,7 @@ "dev": true, "optional": true }, -<<<<<<< HEAD + "@floating-ui/core": { "version": "1.4.1", "resolved": "https://r.cnpmjs.org/@floating-ui/core/-/core-1.4.1.tgz", @@ -1423,14 +1423,14 @@ "resolved": "https://r.cnpmjs.org/@floating-ui/utils/-/utils-0.1.2.tgz", "integrity": "sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://r.cnpmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, -<<<<<<< HEAD + "@popperjs/core": { "version": "npm:@sxzz/popperjs-es@2.11.7", "resolved": "https://r.cnpmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", @@ -1454,8 +1454,8 @@ "resolved": "https://r.cnpmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "@vitejs/plugin-vue": { "version": "4.3.4", "resolved": "https://r.cnpmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", @@ -1567,7 +1567,7 @@ "resolved": "https://r.cnpmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, -<<<<<<< HEAD + "@vueuse/core": { "version": "9.13.0", "resolved": "https://r.cnpmjs.org/@vueuse/core/-/core-9.13.0.tgz", @@ -1608,8 +1608,8 @@ } } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "anymatch": { "version": "3.1.3", "resolved": "https://r.cnpmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1620,14 +1620,14 @@ "picomatch": "^2.0.4" } }, -<<<<<<< HEAD + "async-validator": { "version": "4.2.5", "resolved": "https://r.cnpmjs.org/async-validator/-/async-validator-4.2.5.tgz", "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "asynckit": { "version": "0.4.0", "resolved": "https://r2.cnpmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1687,20 +1687,20 @@ "resolved": "https://r.cnpmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, -<<<<<<< HEAD + "dayjs": { "version": "1.11.9", "resolved": "https://r.cnpmjs.org/dayjs/-/dayjs-1.11.9.tgz", "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "delayed-stream": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, -<<<<<<< HEAD + "element-plus": { "version": "2.3.12", "resolved": "https://r.cnpmjs.org/element-plus/-/element-plus-2.3.12.tgz", @@ -1723,8 +1723,8 @@ "normalize-wheel-es": "^1.2.0" } }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "esbuild": { "version": "0.18.20", "resolved": "https://r.cnpmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -1755,14 +1755,14 @@ "@esbuild/win32-x64": "0.18.20" } }, -<<<<<<< HEAD + "escape-html": { "version": "1.0.3", "resolved": "https://r2.cnpmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "estree-walker": { "version": "2.0.2", "resolved": "https://r2.cnpmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1844,7 +1844,7 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, -<<<<<<< HEAD + "lodash": { "version": "4.17.21", "resolved": "https://r2.cnpmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1861,8 +1861,8 @@ "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", "requires": {} }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "magic-string": { "version": "0.30.3", "resolved": "https://r.cnpmjs.org/magic-string/-/magic-string-0.30.3.tgz", @@ -1871,14 +1871,14 @@ "@jridgewell/sourcemap-codec": "^1.4.15" } }, -<<<<<<< HEAD + "memoize-one": { "version": "6.0.0", "resolved": "https://r2.cnpmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "mime-db": { "version": "1.52.0", "resolved": "https://r.cnpmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1903,14 +1903,14 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, -<<<<<<< HEAD + "normalize-wheel-es": { "version": "1.2.0", "resolved": "https://r.cnpmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + "picocolors": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/picocolors/-/picocolors-1.0.0.tgz", diff --git a/front/package.json b/front/package.json index 8b8876f60fa79c7a4e94a3364f4a4dbf55d4fe8d..63a88e4b11d643433ecf020ae59fbbda74c8dca9 100644 --- a/front/package.json +++ b/front/package.json @@ -10,10 +10,7 @@ }, "dependencies": { "axios": "^1.5.0", -<<<<<<< HEAD "element-plus": "^2.3.12", -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 "vue": "^3.3.4", "vue-router": "^4.2.4", "vuex": "^4.1.0" diff --git a/front/src/App.vue b/front/src/App.vue index 7c1a9b80888e9a97bcf70eead4a7f535eb918bdd..ea963e94fc162d638aba44626db6c966bf88964f 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -17,8 +17,38 @@ export default { diff --git a/front/src/components/Home.vue b/front/src/components/Home.vue index c9a603b4011649e047131600f35277ab8845f1e6..a771bd9174d062dc50de0791292f7c816754900e 100644 --- a/front/src/components/Home.vue +++ b/front/src/components/Home.vue @@ -53,12 +53,19 @@ $bgColor: #ECFBFB; .tit { padding-top: 50px; color: $aColor; + animation: leftIn .5s ease-in forwards; font: { size: 50px; weight: bold; } } + .des{ + opacity: 0; + animation: downIn .5s ease-in forwards; + animation-delay: .6s; + } + div { padding-top: 30px; } @@ -77,20 +84,13 @@ $bgColor: #ECFBFB; .middle { transition: all .4s ease; - transform: scale(1.2); + animation: upMove .5s linear forwards; + &:hover{ + transform: scale(1.1); + } } } - .image:hover .middle { - transform: scale(1); - } - - .image:hover .right { - transform: scale(1.1); - } - .image:hover .left { - transform: scale(1.1); - } } diff --git a/front/src/components/nav/nav.vue b/front/src/components/nav/nav.vue index 4f7222f97817ccf5e9931d264aa9f3661c171353..daecc5fbced7ee733772ff942bed18b3635cf968 100644 --- a/front/src/components/nav/nav.vue +++ b/front/src/components/nav/nav.vue @@ -14,11 +14,7 @@ export default { }, { id: 2, -<<<<<<< HEAD name: "热门必读", -======= - name: "书目", ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 href: "/bookList" }, { @@ -29,23 +25,9 @@ export default { { id: 4, name: "查询和申报", -<<<<<<< HEAD + href: "/table" }, - // { - // id: 5, - // name: "书籍购买", - // href: "/buyBook" - // }, -======= - href: "#" - }, - { - id: 5, - name: "书籍购买", - href: "#" - }, ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 ] } }, @@ -212,14 +194,5 @@ $bgColor: #ECFBFB; } } -@keyframes leftIn { - 0% { - transform: translateX(-100%); - opacity: 0; - } - 100% { - transform: translateX(0); - opacity: 1; - } -} + \ No newline at end of file diff --git a/front/src/components/secondary/bookList.vue b/front/src/components/secondary/bookList.vue index a767dcd3a4da9eb2156d42cf09ed540152c52ae4..12c5b8c109e3b5bf5c3f159c8ebdfd3294ec6403 100644 --- a/front/src/components/secondary/bookList.vue +++ b/front/src/components/secondary/bookList.vue @@ -45,32 +45,38 @@ export default { console.log("数据请求失败" + err) }) }, - fixPage(type){ - // console.log(type) - // console.log(this.page) - if(type === 'up'){ - if(this.page === 1){ + fixPage(type) { + console.log(type) + console.log(this.page) + if (type === 'up') { + if (this.page === 1) { return false - }else { - this.page = this.page -1 + } else { + this.page = this.page - 1 } - }else if(type === 'down'){ -<<<<<<< HEAD - if(this.page === this.pagination_info.total_pages){ -======= - if(this.page === 3){ ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 - return false - }else { - this.page = this.page + 1 + } else if (type === 'down') { + + if (this.page === this.pagination_info.total_pages) { + + if (this.page === 3) { + return false + } else { + this.page = this.page + 1 + } } - }else{ + } else { this.page = type } + + }, + open(item){ + // console.log(item) + let isbn = item.fields.isbn + this.$router.push(`/details/?isbn=${isbn}`) } }, - watch:{ - page(newValue){ + watch: { + page(newValue) { this.getBooks() } }, @@ -80,6 +86,7 @@ export default { mounted() { this.getBooks() } + } @@ -87,7 +94,7 @@ export default {
-
+
{{ item.fields.bookname }}
@@ -130,14 +137,14 @@ $bgColor: #ECFBFB; .line { display: flex; margin-bottom: 40px; -<<<<<<< HEAD + animation: leftIn .5s linear forwards; //overflow: hidden; //box-sizing: border-box; box-shadow: 1px 1px 12px transparent; -======= + overflow: hidden; box-sizing: border-box; ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + transition: all .3s ease; img { @@ -169,10 +176,10 @@ $bgColor: #ECFBFB; .line:hover { box-shadow: 1px 1px 12px $aColor; -<<<<<<< HEAD + transform: scale(1.1); -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + border-radius: 10px; padding: 5px; } diff --git a/front/src/components/secondary/borrowing.vue b/front/src/components/secondary/borrowing.vue index 7ab9d3d62d17074b47cf97f5cccb7c93262f873a..a1658184e5361eccae274ba274732520c17b9fce 100644 --- a/front/src/components/secondary/borrowing.vue +++ b/front/src/components/secondary/borrowing.vue @@ -1,4 +1,3 @@ -<<<<<<< HEAD \ No newline at end of file diff --git a/front/src/components/secondary/details.vue b/front/src/components/secondary/details.vue new file mode 100644 index 0000000000000000000000000000000000000000..9ca847a5a336b6548cfbf479ce717b1cbed84200 --- /dev/null +++ b/front/src/components/secondary/details.vue @@ -0,0 +1,199 @@ + + + + + \ No newline at end of file diff --git a/front/src/components/secondary/login.vue b/front/src/components/secondary/login.vue index 8bb7c7628f52fd28b17b862249fd46f679e690ad..874c7d7acf0a3ec2a651acde81cad0fca78a799b 100644 --- a/front/src/components/secondary/login.vue +++ b/front/src/components/secondary/login.vue @@ -2,11 +2,10 @@ // import Vue from 'vue' import {mapState} from "vuex"; -<<<<<<< HEAD + import axios from "axios"; -======= -import axios, {formToJSON, toFormData} from "axios"; ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + + export default { computed: { @@ -30,15 +29,9 @@ export default { }, methods: { clear() { -<<<<<<< HEAD this.uname = ''; this.password = ''; this.password2 = '' -======= - // this.uname = ''; - // this.password = ''; - // this.password2 = '' ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 }, Jump() { this.login = !this.login; @@ -89,13 +82,13 @@ export default { axiosLogin(url, formData) { axios // .post(url, formData, {withCredentials: true}) - .post(url,formData) + .post(url, formData) .then(res => { -<<<<<<< HEAD + // console.log(res.data) -======= + console.log(res.data) ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + if (res.data.code === 200) { localStorage.setItem('token', res.data.token); localStorage.setItem('pic', res.data.pic) @@ -111,33 +104,33 @@ export default { }) }, axiosRegister(url, formData) { -<<<<<<< HEAD + // console.log(url,formData) axios .post(url, formData) - .then(res => { + .then((res) => { // console.log(res) - if (res.data.code === 201) - { -======= - axios - .post(url, formData) - .then(res => { if (res.data.code === 201) { ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 - if (confirm(res.data.msg + ",是否直接登录")) { - this.submitForm('login') - } else { - this.clear(); - this.login = false; - } - } else { - alert(res.data.msg) + axios + .post(url, formData) + .then(res => { + if (res.data.code === 201) { + + if (confirm(res.data.msg + ",是否直接登录")) { + this.submitForm('login') + } else { + this.clear(); + this.login = false; + } + } else { + alert(res.data.msg) + } + }) + .catch(err => { + console.log("数据提交失败" + err) + }) } }) - .catch(err => { - console.log("数据提交失败" + err) - }) } }, watch: { @@ -191,11 +184,9 @@ export default {

用户登录

注册新用户

-<<<<<<< HEAD +
>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + @submit.prevent="check('login')">
-<<<<<<< HEAD +
>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + @submit.prevent="check('register')">
diff --git a/front/src/main.js b/front/src/main.js index 9d146ffb6911217ba1a34c6e10003b2cf5d8b4f9..f4b14072d483eb2f54f40f9df4bee3f5866edbed 100644 --- a/front/src/main.js +++ b/front/src/main.js @@ -3,21 +3,35 @@ import './style.css' import App from './App.vue' import router from "./router/router.js"; import store from "./store/store.js"; -<<<<<<< HEAD import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import axios from "axios"; +// axios.interceptors.request.use( +// (config) => { +// const token = localStorage.getItem('token'); +// if (token) { +// config.headers.Authorization = `Token ${token}`; +// } else { +// // 如果没有令牌,您可以选择在此处执行适当的处理,例如重定向到登录页面或抛出错误 +// // 这里是一个示例,您可以根据您的需求进行更改 +// throw new Error('No token found. Please log in.'); +// } +// return config; +// }, +// (error) => { +// return Promise.reject(error); +// } +// ); + +// 在请求中包含 token ,如果没有token 同样也会正常发送, +// 需要登录的页面将会在当前页面进行拦截 axios.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = `Token ${token}`; - } else { - // 如果没有令牌,您可以选择在此处执行适当的处理,例如重定向到登录页面或抛出错误 - // 这里是一个示例,您可以根据您的需求进行更改 - throw new Error('No token found. Please log in.'); } return config; }, @@ -30,13 +44,6 @@ const app = createApp(App) app.use(store) app.use(router) app.use(ElementPlus) -======= - - -const app = createApp(App) -app.use(store) -app.use(router) ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 app.mount('#app') diff --git a/front/src/router/router.js b/front/src/router/router.js index 5b360fd4eee46ecf8d9af4bb937e21e0b2a63f35..1297cba195c0a9ad57a29d7c75b20557efa178f9 100644 --- a/front/src/router/router.js +++ b/front/src/router/router.js @@ -3,11 +3,8 @@ import Home from "../components/Home.vue"; import Login from "../components/secondary/login.vue"; import BookList from "../components/secondary/bookList.vue"; import Borrowing from "../components/secondary/borrowing.vue"; -<<<<<<< HEAD import Table from "../components/secondary/table.vue" - -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 +import Details from "../components/secondary/details.vue"; const router = createRouter({ @@ -16,13 +13,24 @@ const router = createRouter({ {path: '/', component: Home}, {path: '/login', component: Login}, {path: '/bookList', component: BookList}, - {path: '/borrowing', component: Borrowing}, -<<<<<<< HEAD - {path: '/table', component: Table}, - -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + {path: '/borrowing', component: Borrowing,meta: {requiresAuth: true}}, + {path: '/table', component: Table, meta: {requiresAuth: true}}, + // meta: {requiresAuth: true} 需要身份认证的路由 + {path:'/details',component:Details,meta:{requiresAuth: true}} ], }) +// 创建导航守卫 +router.beforeEach((to, from, next) => { + const token = localStorage.getItem('token'); + + // 如果路由需要身份验证,但没有令牌,则重定向到登录页面 + if (to.meta.requiresAuth && !token) { + alert("请先进行登录...") + next('/login'); // 这里的'/login'应该是您的登录页面路由 + } else { + next(); // 继续导航 + } +}); + export default router; \ No newline at end of file diff --git a/front/src/store/store.js b/front/src/store/store.js index 91c05f8336ec3ba542e4c993c607f5ca02fe2f51..30e5f0ba77c456a52f1b1edc1f5cb41d8a53d4d2 100644 --- a/front/src/store/store.js +++ b/front/src/store/store.js @@ -4,16 +4,12 @@ import {createStore} from 'vuex' const store = createStore({ state() { return { - // baseUrl: "http://127.0.0.1:8000" - baseUrl: "http://localhost:8000", + baseUrl: "http://127.0.0.1:8000", + // baseUrl: "http://localhost:8000", name:"", -<<<<<<< HEAD picUrl:"", borrowStatus:true, buyStatus:true, -======= - picUrl:"" ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 } }, mutations: { @@ -22,15 +18,12 @@ const store = createStore({ }, setPicUrl(state,value){ state.picUrl = value -<<<<<<< HEAD }, setBorrStatus(state,value){ state.borrowStatus = value }, setBuyStatus(state,value){ state.buyStatus = value -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 } } }) diff --git a/last/.idea/modules.xml b/last/.idea/modules.xml deleted file mode 100644 index d27540da5932cc98ec92ae3b0ff87359ec77de56..0000000000000000000000000000000000000000 --- a/last/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/last/end/books/__pycache__/urls.cpython-310.pyc b/last/end/books/__pycache__/urls.cpython-310.pyc index 041424edb8bd3540a38e62eb05ba49707be8cf9e..63a1969804a3d5420edb5c7a7a777aeaba4374c6 100644 Binary files a/last/end/books/__pycache__/urls.cpython-310.pyc and b/last/end/books/__pycache__/urls.cpython-310.pyc differ diff --git a/last/end/books/__pycache__/views.cpython-310.pyc b/last/end/books/__pycache__/views.cpython-310.pyc index 2c3f4ce4406081de4571b70819e0fd03393aafa3..62be69ee3e1f3c1e6ec759af9fe42a7c2f50fd44 100644 Binary files a/last/end/books/__pycache__/views.cpython-310.pyc and b/last/end/books/__pycache__/views.cpython-310.pyc differ diff --git a/last/end/books/migrations/0001_initial.py b/last/end/books/migrations/0001_initial.py index 310df28b5e702d0de959e3df00fd55fec41bd256..e2ad6b838fc7e56906c312e5914bfe06c5092d63 100644 --- a/last/end/books/migrations/0001_initial.py +++ b/last/end/books/migrations/0001_initial.py @@ -1,8 +1,4 @@ -<<<<<<< HEAD -# Generated by Django 4.2.5 on 2023-09-15 06:11 -======= -# Generated by Django 4.2.5 on 2023-09-10 11:05 ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 +# Generated by Django 4.2.5 on 2023-09-17 14:29 from django.db import migrations, models @@ -22,22 +18,14 @@ class Migration(migrations.Migration): ('bookname', models.CharField(max_length=64, verbose_name='书名')), ('author', models.CharField(max_length=64, verbose_name='作者')), ('isbn', models.CharField(max_length=20, unique=True, verbose_name='ISBN')), -<<<<<<< HEAD ('Listing_time', models.DateTimeField(verbose_name='出版时间')), ('updated_time', models.DateTimeField(auto_now_add=True, verbose_name='添加时间')), -======= - ('Listing_time', models.DateTimeField(auto_now_add=True, verbose_name='出版时间')), - ('updated_time', models.DateTimeField(auto_now=True, verbose_name='添加时间')), ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 ('type', models.CharField(max_length=32, verbose_name='类型')), ('lang', models.CharField(max_length=32, verbose_name='语言')), ('publisher', models.CharField(max_length=32, verbose_name='出版社')), ('price', models.DecimalField(decimal_places=2, max_digits=8, verbose_name='定价')), ('intro', models.CharField(default='', max_length=512, verbose_name='描述')), -<<<<<<< HEAD ('pic', models.CharField(default='', max_length=64, verbose_name='封面')), -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 ], ), ] diff --git a/last/end/books/migrations/0002_alter_book_listing_time_alter_book_updated_time.py b/last/end/books/migrations/0002_alter_book_listing_time_alter_book_updated_time.py deleted file mode 100644 index 225b0dd7f63f691e41f081c650d9c3eb0c9f16d4..0000000000000000000000000000000000000000 --- a/last/end/books/migrations/0002_alter_book_listing_time_alter_book_updated_time.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-10 11:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('books', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='book', - name='Listing_time', - field=models.DateTimeField(verbose_name='出版时间'), - ), - migrations.AlterField( - model_name='book', - name='updated_time', - field=models.DateTimeField(auto_now_add=True, verbose_name='添加时间'), - ), - ] diff --git a/last/end/books/migrations/0003_book_pic.py b/last/end/books/migrations/0003_book_pic.py deleted file mode 100644 index 43e45655d5131773b1784e12fa073762be00fae8..0000000000000000000000000000000000000000 --- a/last/end/books/migrations/0003_book_pic.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-10 12:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('books', '0002_alter_book_listing_time_alter_book_updated_time'), - ] - - operations = [ - migrations.AddField( - model_name='book', - name='pic', - field=models.CharField(default='', max_length=64, verbose_name='封面'), - ), - ] diff --git a/last/end/books/migrations/__pycache__/0001_initial.cpython-310.pyc b/last/end/books/migrations/__pycache__/0001_initial.cpython-310.pyc index 63ec4b8cc3acb93c0849aeb282b2d01a0f7c354f..23ef66566bbe3ff51af19b6f63118daadbe397f4 100644 Binary files a/last/end/books/migrations/__pycache__/0001_initial.cpython-310.pyc and b/last/end/books/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/last/end/books/migrations/__pycache__/0002_alter_book_listing_time_alter_book_updated_time.cpython-310.pyc b/last/end/books/migrations/__pycache__/0002_alter_book_listing_time_alter_book_updated_time.cpython-310.pyc deleted file mode 100644 index bc0f5346e89448ce0b212290eacb2b698c8f56c5..0000000000000000000000000000000000000000 Binary files a/last/end/books/migrations/__pycache__/0002_alter_book_listing_time_alter_book_updated_time.cpython-310.pyc and /dev/null differ diff --git a/last/end/books/migrations/__pycache__/0003_book_pic.cpython-310.pyc b/last/end/books/migrations/__pycache__/0003_book_pic.cpython-310.pyc deleted file mode 100644 index 4c9101fa70d8abe9f76cd645e74aca530654a975..0000000000000000000000000000000000000000 Binary files a/last/end/books/migrations/__pycache__/0003_book_pic.cpython-310.pyc and /dev/null differ diff --git a/last/end/books/urls.py b/last/end/books/urls.py index b9d15581298ee034228d3875770d90ec976bd07b..74aa34a21e7140bbb84f8f09fea97bf1eb7d7644 100644 --- a/last/end/books/urls.py +++ b/last/end/books/urls.py @@ -2,10 +2,6 @@ from django.urls import path from . import views urlpatterns = [ -<<<<<<< HEAD path('all/', views.all_view), - path('query/',views.query_view) -======= - path('all/', views.all_view) ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + path('query/',views.query_view), ] diff --git a/last/end/books/views.py b/last/end/books/views.py index 6bb606b46b8ddad7a3b5d315dfaa8ecd99b1ff06..b62c0457541778b0880ecea035fb31682bc5ec6e 100644 --- a/last/end/books/views.py +++ b/last/end/books/views.py @@ -1,26 +1,12 @@ from books.models import Book from django.core import serializers from django.core.paginator import Paginator -<<<<<<< HEAD -from django.http import JsonResponse, HttpResponse -======= + from django.http import JsonResponse ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + import json -# def all_view(request): -# """ -# :param request: None -# :return: books[] -# """ -# if request.method == 'GET': -# books = list(Book.objects.all().values()) -# data = { -# 'code': 200, -# 'books': books -# } -# return JsonResponse(data, safe=False, json_dumps_params={'ensure_ascii': False}) def all_view(request): books = Book.objects.all() paginator = Paginator(books, 4) @@ -43,13 +29,19 @@ def all_view(request): } return JsonResponse({"data": data, "pagination_info": pagination_info}, safe=False) -<<<<<<< HEAD def query_view(request): + + # 书籍查询, + # 参数: + # name + # 书籍的某个信息 + # way + # 书籍信息参数 name = request.POST.get('name') way = request.POST.get('way') - print(name,way) + # print(name, way) if way == 'bookname': books = Book.objects.filter(bookname=name) @@ -66,8 +58,5 @@ def query_view(request): book_data = serializers.serialize('json', books) book_data = json.loads(book_data) - # 使用JsonResponse返回数据 return JsonResponse({'books': book_data}, safe=False) -======= ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 diff --git a/last/end/end/__pycache__/settings.cpython-310.pyc b/last/end/end/__pycache__/settings.cpython-310.pyc index b18b25b54dc10436d74f7a30442a09cc6b042515..e117df581f361318cb709216b4f82c64f27e20fa 100644 Binary files a/last/end/end/__pycache__/settings.cpython-310.pyc and b/last/end/end/__pycache__/settings.cpython-310.pyc differ diff --git a/last/end/end/__pycache__/urls.cpython-310.pyc b/last/end/end/__pycache__/urls.cpython-310.pyc index b77d3e4071cdbb7733135db37a4f7efe00747234..d95e046228ebb8fb7c352deb35dfd32080b12c4a 100644 Binary files a/last/end/end/__pycache__/urls.cpython-310.pyc and b/last/end/end/__pycache__/urls.cpython-310.pyc differ diff --git a/last/end/end/settings.py b/last/end/end/settings.py index 90fccafa9013af23174781b2962a41ed64d09fdc..fad7daf1b4c268438c98019c75432b7e9a5f4676 100644 --- a/last/end/end/settings.py +++ b/last/end/end/settings.py @@ -40,12 +40,8 @@ INSTALLED_APPS = [ 'rest_framework', 'rest_framework.authtoken', 'user', -<<<<<<< HEAD 'books', 'record' -======= - 'books' ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 ] MIDDLEWARE = [ diff --git a/last/end/end/urls.py b/last/end/end/urls.py index eb06e865b4674b5026e04b9f61e39617b5b01973..5a85e6dd319ca7e823141ca8746fbe37b91855fa 100644 --- a/last/end/end/urls.py +++ b/last/end/end/urls.py @@ -1,15 +1,10 @@ - from django.contrib import admin from django.urls import path, include -# from . import views + urlpatterns = [ path('admin/', admin.site.urls), path('user/', include('user.urls')), -<<<<<<< HEAD path('books/', include('books.urls')), - path('record/',include('record.urls')) -======= - path('books/', include('books.urls')) ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + path('record/', include('record.urls')), ] diff --git a/last/end/record/__pycache__/models.cpython-310.pyc b/last/end/record/__pycache__/models.cpython-310.pyc index f35da33bc2a9e996c8d30d01509ce7ac0734a8ca..0bb13d99e2aae86ab13d3f9f5e62eb4a191ebcb2 100644 Binary files a/last/end/record/__pycache__/models.cpython-310.pyc and b/last/end/record/__pycache__/models.cpython-310.pyc differ diff --git a/last/end/record/__pycache__/views.cpython-310.pyc b/last/end/record/__pycache__/views.cpython-310.pyc index fd7bef7b1631d0a329ba2433bb45ed21dde75dce..e175cfde79b51aa48238795f6a81a1641b0336fd 100644 Binary files a/last/end/record/__pycache__/views.cpython-310.pyc and b/last/end/record/__pycache__/views.cpython-310.pyc differ diff --git a/last/end/record/migrations/0001_initial.py b/last/end/record/migrations/0001_initial.py index a1e727e6ce4c8461f3d47ed83dd6d764e5304c5f..d34425ffd6c03454559b874e0e2b57dfe5a6d8fc 100644 --- a/last/end/record/migrations/0001_initial.py +++ b/last/end/record/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.5 on 2023-09-15 06:11 +# Generated by Django 4.2.5 on 2023-09-17 14:29 from django.db import migrations, models import django.db.models.deletion diff --git a/last/end/record/migrations/0002_initial.py b/last/end/record/migrations/0002_initial.py index f561d892f97cc6c2b7d3bdd6160db6c0e68b3773..ac0b2c987580f7314a9e19e80181e9c7d821978e 100644 --- a/last/end/record/migrations/0002_initial.py +++ b/last/end/record/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.5 on 2023-09-15 06:11 +# Generated by Django 4.2.5 on 2023-09-17 14:29 from django.conf import settings from django.db import migrations, models @@ -10,8 +10,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('record', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ diff --git a/last/end/record/migrations/0003_alter_record_book.py b/last/end/record/migrations/0003_alter_record_book.py deleted file mode 100644 index 7e3c8353fbcc888be95c9526db868c4663cc5b0d..0000000000000000000000000000000000000000 --- a/last/end/record/migrations/0003_alter_record_book.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-15 06:57 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('books', '0001_initial'), - ('record', '0002_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='record', - name='book', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.book', unique=True), - ), - ] diff --git a/last/end/record/migrations/__pycache__/0001_initial.cpython-310.pyc b/last/end/record/migrations/__pycache__/0001_initial.cpython-310.pyc index 2a0bbadc2567e40d952cca7f39d52772a1b7d18b..e3977038607ad627090f19cdce7847882c09c09b 100644 Binary files a/last/end/record/migrations/__pycache__/0001_initial.cpython-310.pyc and b/last/end/record/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/last/end/record/migrations/__pycache__/0002_initial.cpython-310.pyc b/last/end/record/migrations/__pycache__/0002_initial.cpython-310.pyc index c4c9e7d8e55d631b9e61168426435014987e56c8..bad95a0f49863a3eab8c2d6bd49bf1d88fc033d3 100644 Binary files a/last/end/record/migrations/__pycache__/0002_initial.cpython-310.pyc and b/last/end/record/migrations/__pycache__/0002_initial.cpython-310.pyc differ diff --git a/last/end/record/migrations/__pycache__/0003_alter_record_book.cpython-310.pyc b/last/end/record/migrations/__pycache__/0003_alter_record_book.cpython-310.pyc deleted file mode 100644 index 9b0d81c2743c344b40c1de6214ed81ef2cdbf5e2..0000000000000000000000000000000000000000 Binary files a/last/end/record/migrations/__pycache__/0003_alter_record_book.cpython-310.pyc and /dev/null differ diff --git a/last/end/record/models.py b/last/end/record/models.py index dea7ec61221a5039f01a47a17108663f3b7044ba..bd2685532fd221de5f983e16f39ab7295d1058c8 100644 --- a/last/end/record/models.py +++ b/last/end/record/models.py @@ -5,6 +5,6 @@ class Record(models.Model): user = models.ForeignKey('user.UserInfo', on_delete=models.CASCADE) # 使用ForeignKey关联User模型中的id字段 type = models.CharField("记录类型", max_length=12) - book = models.ForeignKey('books.Book', on_delete=models.CASCADE, unique=True) + book = models.ForeignKey('books.Book', on_delete=models.CASCADE) status = models.BooleanField("状态", default=True) addTime = models.DateTimeField("添加时间", auto_now_add=True) diff --git a/last/end/record/views.py b/last/end/record/views.py index c22457c2b76ffa476f8f26dd183f8555ab486428..6323c65016d49a9617973d9c60890019ac4064c1 100644 --- a/last/end/record/views.py +++ b/last/end/record/views.py @@ -30,6 +30,7 @@ def borrow_view(request): isbn = request.data.get('isbn') type = request.data.get('type') user_id = request.user.id # 从令牌中解析出user_id + print(isbn,type,user_id) # 在Book模型中查找具有匹配ISBN的书籍记录 try: diff --git a/last/end/user/__pycache__/models.cpython-310.pyc b/last/end/user/__pycache__/models.cpython-310.pyc index 725ab844781187d4ed6da6af33402b81baafac36..2d2a0cb1356688b655dbf6f408342aea0b4a5153 100644 Binary files a/last/end/user/__pycache__/models.cpython-310.pyc and b/last/end/user/__pycache__/models.cpython-310.pyc differ diff --git a/last/end/user/__pycache__/views.cpython-310.pyc b/last/end/user/__pycache__/views.cpython-310.pyc index 81b7a5350ee10c13b66c1c1bc5bcc94e8cffa7e1..fe5054dcd4cd01d7da191a9fa505941052dc0db4 100644 Binary files a/last/end/user/__pycache__/views.cpython-310.pyc and b/last/end/user/__pycache__/views.cpython-310.pyc differ diff --git a/last/end/user/migrations/0001_initial.py b/last/end/user/migrations/0001_initial.py index c47d0b464c67fff2830fe5349f9d750880f2c565..712f1cd3b9ef8c4e01fb74a0cd7b84317189afe0 100644 --- a/last/end/user/migrations/0001_initial.py +++ b/last/end/user/migrations/0001_initial.py @@ -1,8 +1,4 @@ -<<<<<<< HEAD -# Generated by Django 4.2.5 on 2023-09-15 06:11 -======= -# Generated by Django 4.2.5 on 2023-09-10 06:33 ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 +# Generated by Django 4.2.5 on 2023-09-17 14:29 import django.contrib.auth.models import django.contrib.auth.validators @@ -33,12 +29,8 @@ class Migration(migrations.Migration): ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), -<<<<<<< HEAD ('career', models.CharField(default='', max_length=24, verbose_name='职业')), - ('pic', models.CharField(default='', max_length=64, verbose_name='头像')), -======= - ('career', models.CharField(default='', max_length=24)), ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 + ('picHead', models.CharField(default='', max_length=64, verbose_name='头像')), ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), ], diff --git a/last/end/user/migrations/0002_userinfo_pic_alter_userinfo_career.py b/last/end/user/migrations/0002_userinfo_pic_alter_userinfo_career.py deleted file mode 100644 index ea644b47db8256ec3f2f3922a3272c89d8e691c5..0000000000000000000000000000000000000000 --- a/last/end/user/migrations/0002_userinfo_pic_alter_userinfo_career.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.2.5 on 2023-09-11 02:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('user', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='userinfo', - name='pic', - field=models.CharField(default='', max_length=64, verbose_name='头像'), - ), - migrations.AlterField( - model_name='userinfo', - name='career', - field=models.CharField(default='', max_length=24, verbose_name='职业'), - ), - ] diff --git a/last/end/user/migrations/__pycache__/0001_initial.cpython-310.pyc b/last/end/user/migrations/__pycache__/0001_initial.cpython-310.pyc index 9bdb05ad5dcf9d7006743ef2b0b0736d5086a16c..27df4044f88173cdd4b419cc1ce50a32de20d902 100644 Binary files a/last/end/user/migrations/__pycache__/0001_initial.cpython-310.pyc and b/last/end/user/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/last/end/user/migrations/__pycache__/0002_userinfo_pic_alter_userinfo_career.cpython-310.pyc b/last/end/user/migrations/__pycache__/0002_userinfo_pic_alter_userinfo_career.cpython-310.pyc deleted file mode 100644 index 3ab6aa1794d9ece253718c7cb1cb836c255e865d..0000000000000000000000000000000000000000 Binary files a/last/end/user/migrations/__pycache__/0002_userinfo_pic_alter_userinfo_career.cpython-310.pyc and /dev/null differ diff --git a/last/end/user/models.py b/last/end/user/models.py index 43b4594e392c7be58d45a51c266fd3f7337c17e7..a452ba0c219b0a4a328a37f333405376904a282e 100644 --- a/last/end/user/models.py +++ b/last/end/user/models.py @@ -4,4 +4,4 @@ from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): career = models.CharField("职业", max_length=24, default="") - pic = models.CharField("头像", max_length=64, default="") + picHead = models.CharField("头像", max_length=64, default="") diff --git a/last/end/user/views.py b/last/end/user/views.py index b6f9977cf80f9db6e7e859826c36798335e8bd22..416809565566224b05b370ebd5894ec2c02f0140 100644 --- a/last/end/user/views.py +++ b/last/end/user/views.py @@ -4,13 +4,8 @@ from django.contrib.auth import authenticate, login from django.http import JsonResponse from rest_framework.authtoken.models import Token -<<<<<<< HEAD + from rest_framework.decorators import api_view -======= -from rest_framework.decorators import api_view, permission_classes ->>>>>>> 326b59aa53e211a6e29b8a033e45707b234981e4 -from rest_framework.response import Response -from rest_framework.permissions import IsAuthenticated @api_view(['POST'])