Index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <div id="app-base-db">
  3. <div class="one-block-1">
  4. <span>
  5. 1. LowDB本地数据库
  6. </span>
  7. </div>
  8. <div class="one-block-2">
  9. <a-row>
  10. <a-col :span="8">
  11. • 小数据量: 0~100M(单库)
  12. </a-col>
  13. <a-col :span="8">
  14. • json数据库
  15. </a-col>
  16. <a-col :span="8">
  17. • 兼容lodash语法
  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 { ipcApiRoute } 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. this.$ipc.invoke(ipcApiRoute.dbOperation, params).then(res => {
  159. console.log('res:', res);
  160. if (res.all_list.length == 0) {
  161. return false;
  162. }
  163. self.all_list = res.all_list;
  164. })
  165. },
  166. dbOperation (ac) {
  167. const self = this;
  168. const params = {
  169. action: ac,
  170. info: {
  171. name: this.name,
  172. age: parseInt(this.age)
  173. },
  174. search_age: parseInt(this.search_age),
  175. update_name: this.update_name,
  176. update_age: parseInt(this.update_age),
  177. delete_name: this.delete_name,
  178. }
  179. if (ac == 'add' && this.name.length == 0) {
  180. self.$message.error(`请填写数据`);
  181. }
  182. this.$ipc.invoke(ipcApiRoute.dbOperation, params).then(res => {
  183. console.log('res:', res);
  184. if (ac == 'get') {
  185. if (res.result.length == 0) {
  186. self.$message.error(`没有数据`);
  187. return;
  188. }
  189. self.userList = res.result;
  190. }
  191. if (res.all_list.length == 0) {
  192. self.all_list = ['空'];
  193. return;
  194. }
  195. self.all_list = res.all_list;
  196. self.$message.success(`success`);
  197. })
  198. },
  199. }
  200. };
  201. </script>
  202. <style lang="less" scoped>
  203. #app-base-db {
  204. padding: 0px 10px;
  205. text-align: left;
  206. width: 100%;
  207. .one-block-1 {
  208. font-size: 16px;
  209. padding-top: 10px;
  210. }
  211. .one-block-2 {
  212. padding-top: 10px;
  213. }
  214. }
  215. </style>