invoice.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { shallowRef, reactive } from 'vue'
  2. import { useDataTable } from '@/hooks/datatable'
  3. import { queryWrUserReceiptInfo, userReceiptInfo, delUserReceiptInfo } from '@/services/api/user'
  4. import { useLoginStore } from '@/stores'
  5. import { getCertificateTypeList } from '@/constants/certificate'
  6. export function useInvoice() {
  7. const { getUserId } = useLoginStore()
  8. const { dataList, total, pageIndex, pageSize } = useDataTable<Model.WrUserReceiptInfoRsp>()
  9. const loading = shallowRef(false)
  10. const columns = shallowRef([])
  11. const getUserInvoiceList = () => {
  12. loading.value = true
  13. return queryWrUserReceiptInfo({
  14. data: {
  15. userid: getUserId(),
  16. },
  17. success: (res) => {
  18. total.value = res.total
  19. dataList.value = res.data
  20. },
  21. complete: () => {
  22. loading.value = false
  23. }
  24. })
  25. }
  26. return {
  27. loading,
  28. dataList,
  29. columns,
  30. total,
  31. pageIndex,
  32. pageSize,
  33. getUserInvoiceList,
  34. }
  35. }
  36. export function useInvoiceForm(selectedRow?: Model.WrUserReceiptInfoRsp) {
  37. const { getUserId } = useLoginStore()
  38. const loading = shallowRef(false)
  39. const certificateTypeList = getCertificateTypeList()
  40. const formData = reactive<Proto.UserReceiptInfoReq>({
  41. UserID: getUserId(), // 用户ID
  42. UserName: '', // 发票抬头姓名
  43. ReceiptType: 1, // 发票类型
  44. TaxpayerID: '', // 纳税人识别号
  45. ContactInfo: '', // 联系方式
  46. ReceiptInfoId: 0, // 修改时填用户发票信息id
  47. ReceiptBank: '', // 发票开户行[发票类型:企业]
  48. ReceiptAccount: '', // 发票帐号[发票类型:企业]
  49. Address: '', // 地址[发票类型:企业]
  50. })
  51. if (selectedRow?.autoid) {
  52. ({
  53. autoid: formData.ReceiptInfoId,
  54. userid: formData.UserID,
  55. username: formData.UserName,
  56. receipttype: formData.ReceiptType,
  57. taxpayerid: formData.TaxpayerID,
  58. contactinfo: formData.ContactInfo,
  59. receiptbank: formData.ReceiptBank,
  60. receiptaccount: formData.ReceiptAccount,
  61. address: formData.Address,
  62. idnum: formData.IDNum,
  63. email: formData.Email,
  64. } = selectedRow)
  65. }
  66. const addOrUpdate = () => {
  67. loading.value = true
  68. return userReceiptInfo({
  69. data: formData,
  70. complete: () => {
  71. loading.value = false
  72. }
  73. })
  74. }
  75. const deleteInvoice = () => {
  76. loading.value = true
  77. return delUserReceiptInfo({
  78. data: {
  79. ReceiptInfoId: formData.ReceiptInfoId
  80. },
  81. complete: () => {
  82. loading.value = false
  83. }
  84. })
  85. }
  86. return {
  87. loading,
  88. certificateTypeList,
  89. formData,
  90. addOrUpdate,
  91. deleteInvoice,
  92. }
  93. }