Index.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div id="app-demo-db">
  3. <div class="one-block-1">
  4. <span>
  5. 1. 本地数据库
  6. </span>
  7. </div>
  8. <div class="one-block-2">
  9. <a-row>
  10. <a-col :span="8">
  11. • LowDB本地JSON数据库
  12. </a-col>
  13. <a-col :span="8">
  14. • 可使用lodash语法
  15. </a-col>
  16. <a-col :span="8">
  17. • 数据文件db.json在日志同级目录
  18. </a-col>
  19. </a-row>
  20. </div>
  21. <div class="one-block-1">
  22. <span>
  23. 2. 测试数据
  24. </span>
  25. </div>
  26. <div class="one-block-2">
  27. <a-row>
  28. <a-col :span="24">
  29. {{ all_list }}
  30. </a-col>
  31. </a-row>
  32. </div>
  33. <div class="one-block-1">
  34. <span>
  35. 3. 添加数据
  36. </span>
  37. </div>
  38. <div class="one-block-2">
  39. <a-row>
  40. <a-col :span="6">
  41. <a-input v-model="name" :value="name" addon-before="姓名" />
  42. </a-col>
  43. <a-col :span="3">
  44. </a-col>
  45. <a-col :span="6">
  46. <a-input v-model="age" :value="age" addon-before="年龄" />
  47. </a-col>
  48. <a-col :span="3">
  49. </a-col>
  50. <a-col :span="6">
  51. <a-button @click="dbOperation('add')">
  52. 添加
  53. </a-button>
  54. </a-col>
  55. </a-row>
  56. </div>
  57. <div class="one-block-1">
  58. <span>
  59. 4. 获取数据
  60. </span>
  61. </div>
  62. <div class="one-block-2">
  63. <a-row>
  64. <a-col :span="6">
  65. <a-input v-model="search_age" :value="search_age" addon-before="年龄" />
  66. </a-col>
  67. <a-col :span="3">
  68. </a-col>
  69. <a-col :span="6">
  70. </a-col>
  71. <a-col :span="3">
  72. </a-col>
  73. <a-col :span="6">
  74. <a-button @click="dbOperation('get')">
  75. 查找
  76. </a-button>
  77. </a-col>
  78. </a-row>
  79. <a-row>
  80. <a-col :span="24">
  81. {{ userList }}
  82. </a-col>
  83. </a-row>
  84. </div>
  85. <div class="one-block-1">
  86. <span>
  87. 5. 修改数据
  88. </span>
  89. </div>
  90. <div class="one-block-2">
  91. <a-row>
  92. <a-col :span="6">
  93. <a-input v-model="update_name" :value="update_name" addon-before="姓名" />
  94. </a-col>
  95. <a-col :span="3">
  96. </a-col>
  97. <a-col :span="6">
  98. <a-input v-model="update_age" :value="update_age" addon-before="年龄" />
  99. </a-col>
  100. <a-col :span="3">
  101. </a-col>
  102. <a-col :span="6">
  103. <a-button @click="dbOperation('update')">
  104. 更新
  105. </a-button>
  106. </a-col>
  107. </a-row>
  108. </div>
  109. <div class="one-block-1">
  110. <span>
  111. 6. 删除数据
  112. </span>
  113. </div>
  114. <div class="one-block-2">
  115. <a-row>
  116. <a-col :span="6">
  117. <a-input v-model="delete_name" :value="delete_name" addon-before="姓名" />
  118. </a-col>
  119. <a-col :span="3">
  120. </a-col>
  121. <a-col :span="6">
  122. </a-col>
  123. <a-col :span="3">
  124. </a-col>
  125. <a-col :span="6">
  126. <a-button @click="dbOperation('del')">
  127. 删除
  128. </a-button>
  129. </a-col>
  130. </a-row>
  131. </div>
  132. </div>
  133. </template>
  134. <script>
  135. import { localApi } from '@/api/main'
  136. export default {
  137. data() {
  138. return {
  139. name: '张三',
  140. age: 10,
  141. userList: ['空'],
  142. search_age: 10,
  143. update_name: '张三',
  144. update_age: 21,
  145. delete_name: '张三',
  146. all_list: ['空']
  147. };
  148. },
  149. mounted () {
  150. this.getAllTestData();
  151. },
  152. methods: {
  153. getAllTestData () {
  154. const self = this;
  155. const params = {
  156. action: 'all',
  157. }
  158. localApi('dbOperation', params).then(res => {
  159. if (res.code !== 0) {
  160. return false
  161. }
  162. if (res.data.all_list.length == 0) {
  163. return false;
  164. }
  165. self.all_list = res.data.all_list;
  166. }).catch(err => {
  167. console.log('err:', err)
  168. })
  169. },
  170. dbOperation (ac) {
  171. const self = this;
  172. const params = {
  173. action: ac,
  174. info: {
  175. name: this.name,
  176. age: parseInt(this.age)
  177. },
  178. search_age: parseInt(this.search_age),
  179. update_name: this.update_name,
  180. update_age: parseInt(this.update_age),
  181. delete_name: this.delete_name,
  182. }
  183. if (ac == 'add' && this.name.length == 0) {
  184. self.$message.error(`请填写数据`);
  185. }
  186. localApi('dbOperation', params).then(res => {
  187. if (res.code !== 0) {
  188. return false
  189. }
  190. if (ac == 'get') {
  191. if (res.data.result.length == 0) {
  192. self.$message.error(`没有数据`);
  193. return;
  194. }
  195. self.userList = res.data.result;
  196. }
  197. if (res.data.all_list.length == 0) {
  198. return;
  199. }
  200. self.all_list = res.data.all_list;
  201. self.$message.success(`success`);
  202. }).catch(err => {
  203. console.log('err:', err)
  204. })
  205. },
  206. }
  207. };
  208. </script>
  209. <style lang="less" scoped>
  210. #app-demo-db {
  211. padding: 0px 10px;
  212. text-align: left;
  213. width: 100%;
  214. .one-block-1 {
  215. font-size: 16px;
  216. padding-top: 10px;
  217. }
  218. .one-block-2 {
  219. padding-top: 10px;
  220. }
  221. }
  222. </style>