Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_45598856
white-jotter
提交
24418de8
W
white-jotter
项目概览
qq_45598856
/
white-jotter
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
white-jotter
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
24418de8
编写于
4月 06, 2019
作者:
E
Evan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: 修改 README.md 并优化部分代码
上级
510be01d
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
45 addition
and
22 deletion
+45
-22
README.md
README.md
+35
-12
wj-vue/src/components/home/UpdateCard.vue
wj-vue/src/components/home/UpdateCard.vue
+6
-6
wj-vue/src/components/library/LibraryIndex.vue
wj-vue/src/components/library/LibraryIndex.vue
+1
-1
wj-vue/src/components/library/SearchBar.vue
wj-vue/src/components/library/SearchBar.vue
+1
-1
wj/src/main/resources/static/index.html
wj/src/main/resources/static/index.html
+1
-1
wj/src/main/resources/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
...ces/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
+1
-1
未找到文件。
README.md
浏览文件 @
24418de8
白卷是一个前后端分离的图书管理系统,项目采用 SpringBoot+Vue 开发。
项目地址:
[
https://github.com/Antabot/White-Jotter
](
https://github.com/Antabot/White-Jotter
)
# 前言
...
...
@@ -21,9 +20,37 @@
作为核心功能页面之一,提供图书信息展示、图书信息管理两大功能
![
图书馆
](
https://img-blog.csdnimg.cn/20190402222036301.png
)
![
图书馆
](
https://img-blog.csdnimg.cn/20190406195541462.png
)
功能实现情况
### 1.图书展示
功能描述 | 实现情况
---|---
基本信息 | 完成
扩充信息 | 未完成
### 2.图书管理
功能描述 | 实现情况
---|---
图书分类 | 未完成
图书上传 | 基本完成
图书维护 | 基本完成
### 3.信息查询
图书详情页面包括对图书信息的修改和编辑等。
功能描述 | 实现情况
---|---
图书检索 | 基本完成
图书排序 | 未完成
### 4.其它功能
功能描述 | 实现情况
---|---
阅读标注 | 未完成
## 3.笔记本
...
...
@@ -40,7 +67,7 @@
## 2.后端技术栈
1.
SpringBoot
2.
SpringSecurity
2.
Java Persistence API
3.
MySQL
在开发过程中还会不断用到一些细碎的技术,有必要的我会增添上去
...
...
@@ -51,9 +78,9 @@
2.
数据库脚本放在
`wj`
项目的根目录下,在MySQL中执行数据库脚本
3.
数据库配置在
`wj`
项目的
`src\main\resources`
目录下的
`application.properties`
文件中
3.
数据库配置在
`wj`
项目的
`src\main\resources`
目录下的
`application.properties`
文件中
,mysql 版本为 5.7.21
4.
在IntelliJ IDEA中运行
`wj`
项目
4.
在IntelliJ IDEA中运行
`wj`
项目
,为了保证项目成功运行,可以右键点击
`pom.xml`
选择 maven -> reimport
至此,服务端就启动成功了,此时在地址栏输入
`http://localhost:8443`
即可访问项目登录页面,默认账号为
`admin`
,密码为
`123`
...
...
@@ -79,7 +106,6 @@ npm run build
该命令执行成功之后,
`wj-vue`
目录下生成一个
`dist`
文件夹,将该文件夹中的两个文件
`static`
和
`index.html`
拷贝到 SpringBoot 项目中
`resources/static/`
目录下,然后就可以像第 4 步那样直接访问了。
# 教程
我在 CSDN 上分享了开发这个项目的教程,有兴趣的小伙伴可以点击下面的链接查看。
...
...
@@ -90,14 +116,11 @@ npm run build
(持续更新中)
# 近期更新
04-06 完成图书查询功能
04-05 完成图书修改功能
04-04 完成图书删除功能
04-03 完成图书新增功能
# 其他资料
\ No newline at end of file
wj-vue/src/components/home/UpdateCard.vue
浏览文件 @
24418de8
...
...
@@ -6,6 +6,12 @@
</div>
<div
class=
"block"
>
<el-timeline>
<el-timeline-item
timestamp=
"2019/4/6"
placement=
"top"
>
<el-card>
<h4>
实现搜索框模糊查询
</h4>
<p>
Evan 提交于 2019/4/6 19:51
</p>
</el-card>
</el-timeline-item>
<el-timeline-item
timestamp=
"2019/4/5"
placement=
"top"
>
<el-card>
<h4>
实现图书修改功能
</h4>
...
...
@@ -30,12 +36,6 @@
<p>
Evan 提交于 2019/4/2 22:12
</p>
</el-card>
</el-timeline-item>
<el-timeline-item
timestamp=
"2019/4/2"
placement=
"top"
>
<el-card>
<h4>
重构部分代码
</h4>
<p>
Evan 提交于 2019/4/1 09:19
</p>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-card>
...
...
wj-vue/src/components/library/LibraryIndex.vue
浏览文件 @
24418de8
...
...
@@ -5,7 +5,7 @@
</el-aside>
<el-main>
<el-row>
<
el-col
:span=
"24"
style=
"width: 100%;text-align: left;line-height: 100%;height: 40px"
><Tag></Tag></el-col
>
<
!--
<el-col
:span=
"24"
style=
"width: 100%;text-align: left;line-height: 100%;height: 40px"
><Tag></Tag></el-col>
--
>
</el-row>
<el-row>
<books></books>
...
...
wj-vue/src/components/library/SearchBar.vue
浏览文件 @
24418de8
<
template
>
<div
style=
"margin-bottom:
1
0px;display: flex;justify-content: center;align-items: center"
>
<div
style=
"margin-bottom:
3
0px;display: flex;justify-content: center;align-items: center"
>
<el-input
@
keyup.enter.native=
"searchClick"
placeholder=
"通过书名或作者搜索..."
...
...
wj/src/main/resources/static/index.html
浏览文件 @
24418de8
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><title>
白卷 - White Jotter
</title><link
href=
/static/css/app.68abdb5a43f1b9c7b3f5c37e1448dcdd.css
rel=
stylesheet
></head><body
style=
"background: #f6f6f6"
><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.2ae2e69a05c33dfc65f8.js
></script><script
type=
text/javascript
src=
/static/js/vendor.578a67f45ff71504b68d.js
></script><script
type=
text/javascript
src=
/static/js/app.82dc2acfe0ea0348caed.js
></script></body></html>
\ No newline at end of file
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><title>
白卷 - White Jotter
</title><link
href=
/static/css/app.ebdab9a75b89479ca8e9ce9f525042e7.css
rel=
stylesheet
></head><body
style=
"background: #f6f6f6"
><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.2ae2e69a05c33dfc65f8.js
></script><script
type=
text/javascript
src=
/static/js/vendor.578a67f45ff71504b68d.js
></script><script
type=
text/javascript
src=
/static/js/app.f8228746bf3406c52bb0.js
></script></body></html>
\ No newline at end of file
wj/src/main/resources/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
浏览文件 @
24418de8
{"version":3,"sources":["webpack:///webpack/bootstrap f0e734e7c8fd8b93008d"],"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 f0e734e7c8fd8b93008d"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap a046bd422c15b1e2a70f"],"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 a046bd422c15b1e2a70f"],"sourceRoot":""}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录