columnSetting.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import {
  2. saveColumn,
  3. getColumn,
  4. delColumn
  5. } from "@/api/saveColumn";
  6. import {validatenull} from './validate'
  7. export const arraySort = (list = [], prop, callback) => {
  8. return list.filter(ele => !validatenull(ele[prop])).sort((a, b) => callback(a, b)).concat(list.filter(ele => validatenull(ele[prop])));
  9. }
  10. export async function getColumnData(columnKey, mainOption) {
  11. mainOption.column.forEach((item,index)=>{
  12. item.index=index+1
  13. })
  14. let option
  15. const localData = JSON.parse(localStorage.getItem(columnKey));
  16. if (localData != null) {
  17. option = localData;
  18. } else {
  19. let res = await getColumn({
  20. fileName: columnKey
  21. })
  22. option = res.data.data ? JSON.parse(res.data.data.jsonMessage)?JSON.parse(res.data.data.jsonMessage):mainOption: mainOption;
  23. localStorage.setItem(columnKey, JSON.stringify(option));
  24. }
  25. option.column=arraySort(option.column, 'index', (a, b) => a.index - b.index)
  26. return option
  27. }
  28. export async function saveColumnData(columnKey, option) {
  29. option.column=arraySort(option.column, 'index', (a, b) => a.index - b.index)
  30. let res = await saveColumn({
  31. fileName: columnKey,
  32. jsonMessage: JSON.stringify(option)
  33. })
  34. if (res.data.code == 200) {
  35. localStorage.setItem(columnKey, JSON.stringify(option));
  36. return true
  37. } else {
  38. return false
  39. }
  40. }
  41. export async function delColumnData(columnKey, option) {
  42. option.column.forEach((item,index)=>{
  43. item.index=index+1
  44. })
  45. let res = await delColumn({
  46. fileName: columnKey
  47. })
  48. if (res.data.code == 200) {
  49. localStorage.setItem(columnKey, JSON.stringify(option));
  50. return true
  51. } else {
  52. return false
  53. }
  54. }