utils.ts 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. export const initheaders = [
  2. { label : "序号", width: '160px', prop:'invNo' },
  3. { label : "发票代码", width: '120px', prop: 'inv_code' },
  4. { label : "发票号码", width: '120px', prop:'inv_number' },
  5. { label : "数电票号码", width: '160px', prop: 'inv_number_electionic' },
  6. { label : "销方识别号", width: '160px', prop: 'seller_id' },
  7. { label : "销方名称", width: '120px', prop: 'seller_title' },
  8. { label : "购方识别号", width: '140px', prop: 'buyer_id' },
  9. { label : "购买方名称", width: '140px', prop: 'buyer_title' },
  10. { label : "开票日期", width: '140px', prop: 'open_date' },
  11. { label : "货物或应税劳务名称", width: '140px', prop: 'XMMC' },
  12. { label : "规格型号", width: '140px', prop: 'GGXH' },
  13. { label : "单位", width: '140px', prop: 'DW' },
  14. { label : "数量", width: '140px', prop: 'SPSL' },
  15. { label : "单价", width: '140px', prop: 'DJ' },
  16. { label : "金额", width: '140px', prop: 'JE' },
  17. { label : "税率", width: '140px', prop: 'SL' },
  18. { label : "税额", width: '140px', prop: 'SE' },
  19. { label : "价税合计", width: '140px', prop: 'JSHJ' },
  20. { label : "发票来源", width: '140px', prop: 'source' },
  21. { label : "发票票种", width: '140px', prop: 'inv_type' },
  22. { label : "发票状态", width: '140px', prop: 'status' },
  23. { label : "是否正数发票", width: '140px', prop: 'type' },
  24. { label : "发票风险等级", width: '140px', prop: 'warning' },
  25. { label : "开票人", width: '140px', prop: 'person' },
  26. { label : "备注", width: '140px', prop: 'remark' },
  27. ];
  28. export const mapLabel2Field = initheaders.reduce((previous, current) => ({
  29. ...previous,
  30. [current.label]: current.prop
  31. }), {})
  32. console.log(mapLabel2Field)
  33. export const columns = [
  34. { type: "index", width: "50", fixed: "left", label: "序号" },
  35. ...initheaders
  36. ]
  37. // 校验数据是否为空
  38. export const isEmpty = (results:any[]) => results.length === 0
  39. // 校验导入模板表头是否一致
  40. export function isHeaderSame(importHeader: any[]){
  41. if(importHeader.length !== initheaders.length){
  42. return false
  43. }
  44. for(const index in importHeader){
  45. if(initheaders[index] !== importHeader[index]){ return false }
  46. }
  47. return true
  48. }
  49. // 生成导入数据
  50. export function generateTableData(results: any[]){
  51. const tableData = []
  52. for (const item of results) {
  53. const tableItem = {}
  54. const labels = Object.keys(item)
  55. for(const label of labels){
  56. const field = mapLabel2Field[label]
  57. tableItem[field] = item[label]
  58. }
  59. tableData.push(tableItem)
  60. }
  61. console.log(tableData)
  62. return tableData
  63. }