contract.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. import request from '@/config/axios'
  2. import { Contract, ContractId, ContractSub } from '@/interface/contract'
  3. import { ProjectId } from '@/interface/project'
  4. import { listToTree } from '@/utils/tree'
  5. /**
  6. * 合同详情(无分包数据)
  7. * @param contractId
  8. */
  9. export const getContractsById = async (contractId: ContractId): Promise<Contract> => {
  10. return await request.get(
  11. {
  12. url: '/contract',
  13. params: { contractId }
  14. },
  15. '/business'
  16. )
  17. }
  18. /**
  19. * 判断项目是否签订合同
  20. * @param projectId
  21. */
  22. export const isProjectContractExist = async (projectId: ProjectId): Promise<Contract[]> => {
  23. const data = await request.get(
  24. {
  25. url: '/project/contract/exist',
  26. params: { projectId }
  27. },
  28. '/business'
  29. )
  30. return data
  31. }
  32. /**
  33. * 合同详情与分包合同列表
  34. * @param projectId
  35. */
  36. export const getContractsByProject = async (projectId: ProjectId): Promise<Contract[]> => {
  37. const data = await request.get(
  38. {
  39. url: '/contract-with-children',
  40. params: { projectId }
  41. },
  42. '/business'
  43. )
  44. return data
  45. }
  46. /**
  47. * 编辑保存合同信息
  48. * @param contract
  49. */
  50. export const putContract = async (contract: Contract) => {
  51. return await request.put(
  52. {
  53. url: '/contract',
  54. data: contract
  55. },
  56. '/business'
  57. )
  58. }
  59. /**
  60. * 编辑保存分包外包合同信息
  61. * @param contract
  62. */
  63. export const putContractSub = async (contract: ContractSub) => {
  64. return await request.put(
  65. {
  66. url: '/contractSub',
  67. data: contract
  68. },
  69. '/business'
  70. )
  71. }
  72. /**
  73. * 合同里程碑
  74. * @param contractId
  75. */
  76. export const getContractMilestoneList = async (contractId: ContractId) => {
  77. return await request.get(
  78. {
  79. url: '/contract-milestone/list',
  80. params: { contractId }
  81. },
  82. '/business'
  83. )
  84. }
  85. /**
  86. * 合同回款
  87. * @param contractId
  88. */
  89. export const getContractReturnedMoneyList = async (contractId: ContractId) => {
  90. return await request.get(
  91. {
  92. url: '/contract-return-money/list',
  93. params: { contractId }
  94. },
  95. '/business'
  96. )
  97. }
  98. /**
  99. * 合同付款
  100. * @param contractId
  101. */
  102. export const getContractPaymentList = async (contractId: ContractId) => {
  103. return await request.get(
  104. {
  105. url: '/contract-payment/list',
  106. params: { contractId }
  107. },
  108. '/business'
  109. )
  110. }
  111. /**
  112. * 合同付款汇总
  113. * @param contractId
  114. */
  115. export const getContractPaymentCalc = async (contractId: ContractId) => {
  116. return await request.get(
  117. {
  118. url: '/contract-payment/calc',
  119. params: { contractId }
  120. },
  121. '/business'
  122. )
  123. }
  124. /**
  125. * 合同查分包金额承担信息
  126. * @param contractId
  127. */
  128. export const getContractSharingList = async (contractId: ContractId) => {
  129. return await request.get(
  130. {
  131. url: '/subtract-sharing/list',
  132. params: { contractId }
  133. },
  134. '/business'
  135. )
  136. }
  137. /**
  138. * 发起分包合同申请
  139. * @param contractId
  140. */
  141. export const startSubcontractApply = async (projectId: string) => {
  142. return await request.get(
  143. {
  144. url: '/contract-apply/sub/process',
  145. params: { projectId }
  146. },
  147. '/business'
  148. )
  149. }
  150. /**
  151. * 发起外包合同申请
  152. * @param contractId
  153. */
  154. export const startOutsourcingApply = async (projectId: string) => {
  155. return await request.get(
  156. {
  157. url: '/contract-apply/out/process',
  158. params: { projectId }
  159. },
  160. '/business'
  161. )
  162. }
  163. /**
  164. * 发起分包合同签订
  165. * @param contractId
  166. */
  167. export const startSubcontract = async (applyId: string) => {
  168. return await request.get(
  169. {
  170. url: '/subcontract/process',
  171. params: { applyId }
  172. },
  173. '/business'
  174. )
  175. }
  176. /**
  177. * 发起外包合同签订
  178. * @param contractId
  179. */
  180. export const startOutsourcing = async (applyId: string) => {
  181. return await request.get(
  182. {
  183. url: '/outsourcing/process',
  184. params: { applyId }
  185. },
  186. '/business'
  187. )
  188. }
  189. /**
  190. * 发起合同签订
  191. * @param projectId
  192. */
  193. export const startContractSign = async (projectId: ProjectId) => {
  194. return await request.get(
  195. {
  196. url: '/contract/process',
  197. params: { projectId }
  198. },
  199. '/business'
  200. )
  201. }
  202. /**
  203. * 委托方Tree数据
  204. * @param contractId
  205. */
  206. export const queryCustomerTree = async () => {
  207. const contractList = await request.get(
  208. {
  209. url: '/customer-tree'
  210. },
  211. '/business'
  212. )
  213. return listToTree(contractList)
  214. }
  215. /**
  216. * 受托方Tree数据
  217. * @param contractId
  218. */
  219. export const queryCompanyTree = async () => {
  220. const contractList = await request.get(
  221. {
  222. url: '/common/company-tree'
  223. },
  224. '/business'
  225. )
  226. return listToTree(contractList)
  227. }
  228. /**
  229. * 发起开票申请流程
  230. * @param contractId
  231. */
  232. export const startContractInvoice = async (contractId?: string) => {
  233. return await request.get(
  234. {
  235. url: '/contractInvoice/process',
  236. params: { contractId }
  237. },
  238. '/business'
  239. )
  240. }
  241. /**
  242. * 发起用款申请流程
  243. * @param contractId
  244. */
  245. export const startUseMoney = async (payload: {
  246. projectId?: string
  247. contractId?: string
  248. supplierId?: string
  249. }) => {
  250. return await request.get(
  251. {
  252. url: '/UseMoney/contractProcess',
  253. params: { projectId: payload.projectId, supplierId: payload.supplierId }
  254. },
  255. '/business'
  256. )
  257. }
  258. /***
  259. * 软件产品列表
  260. */
  261. export const productSoftpatent = async () => {
  262. return await request.get(
  263. {
  264. url: '/productSoftpatent/list'
  265. },
  266. '/business'
  267. )
  268. }