token.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { reactive } from 'vue'
  2. import { list, remove } from '@/api/user_token'
  3. import { ElMessage, ElMessageBox } from 'element-plus'
  4. import { useRoute } from 'vue-router'
  5. import { T } from '@/utils/i18n'
  6. export function useRepositories () {
  7. const route = useRoute()
  8. const user_id = route.query?.user_id
  9. const listRes = reactive({
  10. list: [], total: 0, loading: false,
  11. })
  12. const listQuery = reactive({
  13. page: 1,
  14. page_size: 10,
  15. is_my: 0,
  16. user_id: user_id ? parseInt(user_id) : null,
  17. })
  18. const getList = async () => {
  19. listRes.loading = true
  20. const res = await list(listQuery).catch(_ => false)
  21. listRes.loading = false
  22. if (res) {
  23. listRes.list = res.data.list
  24. listRes.total = res.data.total
  25. }
  26. }
  27. const handlerQuery = () => {
  28. if (listQuery.page === 1) {
  29. getList()
  30. } else {
  31. listQuery.page = 1
  32. }
  33. }
  34. const del = async (row) => {
  35. const cf = await ElMessageBox.confirm(T('Confirm?', {param: T('Logout')}), {
  36. confirmButtonText: T('Confirm'),
  37. cancelButtonText: T('Cancel'),
  38. type: 'warning',
  39. }).catch(_ => false)
  40. if (!cf) {
  41. return false
  42. }
  43. const res = await remove({ id: row.id }).catch(_ => false)
  44. if (res) {
  45. ElMessage.success(T('OperationSuccess'))
  46. getList()
  47. }
  48. }
  49. return {
  50. listRes,
  51. listQuery,
  52. getList,
  53. handlerQuery,
  54. del,
  55. }
  56. }