rule.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import request from "@/utils/request";
  2. const API_PATH = "/payment/rule";
  3. const RuleAPI = {
  4. listRule(query?: RulePageQuery) {
  5. return request<ApiResponse<RulePageResp>>({
  6. url: `${API_PATH}`,
  7. method: "get",
  8. params: query,
  9. });
  10. },
  11. detailRule(ruleId: string) {
  12. return request<ApiResponse<RuleDetail>>({
  13. url: `${API_PATH}/${ruleId}`,
  14. method: "get",
  15. });
  16. },
  17. createRule(body: RuleForm) {
  18. return request<ApiResponse<RuleOperation>>({
  19. url: `${API_PATH}`,
  20. method: "post",
  21. data: body,
  22. });
  23. },
  24. updateRule(ruleId: string, body: RuleForm) {
  25. return request<ApiResponse>({
  26. url: `${API_PATH}/${ruleId}`,
  27. method: "put",
  28. data: body,
  29. });
  30. },
  31. deleteRule(ruleId: string) {
  32. return request<ApiResponse>({
  33. url: `${API_PATH}/${ruleId}`,
  34. method: "delete",
  35. });
  36. },
  37. };
  38. export default RuleAPI;
  39. export interface RulePageQuery {
  40. page_no?: number;
  41. page_size?: number;
  42. institution_id?: string;
  43. enterprise_id?: string;
  44. name?: string;
  45. }
  46. export interface RulePageResp {
  47. total: number;
  48. list: RuleTable[];
  49. }
  50. export interface RuleTable {
  51. id: number;
  52. rule_id?: string;
  53. institution_id?: string;
  54. name?: string;
  55. max_amount?: number;
  56. max_day_amount?: number;
  57. max_month_amount?: number;
  58. status: string;
  59. created_time: string;
  60. }
  61. export interface RuleDetail {
  62. id: number;
  63. rule_id?: string;
  64. institution_id?: string;
  65. enterprise_id?: string;
  66. out_biz_no?: string;
  67. name?: string;
  68. description?: string;
  69. max_amount?: number;
  70. max_day_amount?: number;
  71. max_month_amount?: number;
  72. min_amount?: number;
  73. valid_from?: string;
  74. valid_to?: string;
  75. merchant_pid?: string;
  76. week_days?: number[];
  77. time_ranges?: TimeRange[];
  78. status: string;
  79. created_time: string;
  80. updated_time: string;
  81. }
  82. export interface TimeRange {
  83. start_time?: string;
  84. end_time?: string;
  85. }
  86. export interface RuleForm {
  87. institution_id: string;
  88. name: string;
  89. description?: string;
  90. max_amount?: number;
  91. max_day_amount?: number;
  92. max_month_amount?: number;
  93. min_amount?: number;
  94. valid_from?: string;
  95. valid_to?: string;
  96. merchant_pid?: string;
  97. week_days?: number[];
  98. time_ranges?: TimeRange[];
  99. }
  100. export interface RuleOperation {
  101. out_biz_no?: string;
  102. rule_id?: string;
  103. result?: boolean;
  104. }
  105. export const WEEK_DAY_OPTIONS = [
  106. { label: "周一", value: 1 },
  107. { label: "周二", value: 2 },
  108. { label: "周三", value: 3 },
  109. { label: "周四", value: 4 },
  110. { label: "周五", value: 5 },
  111. { label: "周六", value: 6 },
  112. { label: "周日", value: 7 },
  113. ];
  114. export const WEEK_DAY_LABEL: Record<number, string> = {
  115. 1: "周一",
  116. 2: "周二",
  117. 3: "周三",
  118. 4: "周四",
  119. 5: "周五",
  120. 6: "周六",
  121. 7: "周日",
  122. };