base-methods.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { cloneDeep, get } from 'lodash-es'
  2. const InitBaseMethods = (store) => {
  3. const $checkRes = inject('$checkRes')
  4. let limit = inject('limit')
  5. const data = ref([])
  6. const total = ref(0)
  7. const searchForm = ref({})
  8. const form = ref({})
  9. const b_search = async (query) => {
  10. const info = { skip: query.skip, limit: query.limit, ...searchForm.value, is_del: '0' }
  11. const res = await store.query(info)
  12. if (res.errcode == '0') {
  13. data.value = res.data
  14. total.value = res.total
  15. }
  16. }
  17. const b_delete = async (data) => {
  18. const res = await store.del(data._id)
  19. if ($checkRes(res, true)) {
  20. b_search({ skip: 0, limit })
  21. }
  22. }
  23. const b_save = async () => {
  24. const data = cloneDeep(form.value)
  25. let res
  26. if (get(data, '_id')) res = await store.update(data)
  27. else res = await store.create(data)
  28. if ($checkRes(res, true)) {
  29. b_search({ skip: 0, limit })
  30. }
  31. }
  32. return {
  33. $checkRes,
  34. limit,
  35. data,
  36. total,
  37. searchForm,
  38. form,
  39. b_search,
  40. b_delete,
  41. b_save
  42. }
  43. }
  44. export default InitBaseMethods