index.ts 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. import { ref, shallowRef } from 'vue'
  2. import { v4 } from 'uuid'
  3. import { ClientType, OrderSrc } from '@/constants/client'
  4. import { useLoginStore } from '@/stores'
  5. import { spotPresaleDestingOrder,
  6. spotPresaleTransferCancel,
  7. spotPresaleTransferDesting,
  8. spotPresaleTransferListing,
  9. spotPresalePlayment,
  10. wrListingCancelOrder,
  11. spotPresaleDeliveryConfirm,
  12. spotPresaleBreachOfContractApply } from '@/services/api/trade'
  13. import { formatDate } from "@/filters";
  14. import Long from 'long'
  15. // 采购摘牌
  16. export function usePurchaseOrderDesting() {
  17. const { getUserId, getFirstAccountId } = useLoginStore()
  18. const loading = shallowRef(false)
  19. const formData = ref<Partial<Proto.SpotPresaleDestingOrderReq>>({
  20. UserID: getUserId(), // 用户ID,必填
  21. AccountID: getFirstAccountId(), // 资金账号,必填
  22. ClientType: ClientType.Web // 终端类型
  23. })
  24. const formSubmit = () => {
  25. loading.value = true
  26. return spotPresaleDestingOrder({
  27. data: {
  28. ...formData.value,
  29. Qty: Number(formData.value.Qty),
  30. ClientSerialNo: v4() // 客户端流水号
  31. },
  32. complete: () => {
  33. loading.value = false
  34. }
  35. })
  36. }
  37. return {
  38. loading,
  39. formData,
  40. formSubmit,
  41. }
  42. }
  43. // 铁合金现货预售交收确认
  44. export function useSpotPresaleDeliveryConfirm() {
  45. const { getUserId } = useLoginStore()
  46. const loading = shallowRef(false)
  47. const confirmSubmit = (id: number) => {
  48. loading.value = true
  49. return spotPresaleDeliveryConfirm({
  50. data: {
  51. UserID: getUserId(),
  52. Remark: '',
  53. WRTradeDetailID: Long.fromNumber(id),
  54. ClientSerialNo: v4(), // 客户端流水号
  55. ClientType: ClientType.Web // 终端类型
  56. },
  57. complete: () => {
  58. loading.value = false
  59. }
  60. })
  61. }
  62. return {
  63. loading,
  64. confirmSubmit
  65. }
  66. }
  67. // 铁合金现货预售违约申请
  68. export function useSpotPresaleBreachOfContractApply() {
  69. const loading = shallowRef(false)
  70. const { getUserId } = useLoginStore()
  71. const applySubmit = (id: number) => {
  72. loading.value = true
  73. return spotPresaleBreachOfContractApply({
  74. data: {
  75. UserID: getUserId(),
  76. WRTradeDetailID: Long.fromNumber(id),
  77. ClientSerialNo: v4(), // 客户端流水号
  78. ClientType: ClientType.Web // 终端类型
  79. },
  80. complete: () => {
  81. loading.value = false
  82. }
  83. })
  84. }
  85. return {
  86. loading,
  87. applySubmit,
  88. }
  89. }
  90. // 铁合金现货预售付款处理接口
  91. export function useSpotPresalePlayment() {
  92. const loading = shallowRef(false)
  93. const { getUserId } = useLoginStore()
  94. const formData = ref<Partial<Proto.SpotPresalePlaymentReq>>({
  95. UserID: getUserId(), // 用户ID,必填
  96. ClientType: ClientType.Web, // 终端类型
  97. ClientSerialNo: v4(), // 客户端流水号
  98. })
  99. const playmentSubmit = (id: number) => {
  100. loading.value = true
  101. return spotPresalePlayment({
  102. data: {
  103. ...formData,
  104. WRTradeDetailID: Long.fromNumber(id),
  105. },
  106. complete: () => {
  107. loading.value = false
  108. }
  109. })
  110. }
  111. return {
  112. loading,
  113. playmentSubmit
  114. }
  115. }
  116. // 铁合金现货预售转让挂牌接口
  117. export function useSpotPresaleTransferListing() {
  118. const loading = shallowRef(false)
  119. const { getUserId } = useLoginStore()
  120. const formData = ref<Partial<Proto.SpotPresaleTransferListingReq>>({
  121. UserID: getUserId(), // 用户ID,必填
  122. ClientType: ClientType.Web, // 终端类型
  123. ClientSerialNo: v4(), // 客户端流水号
  124. })
  125. const listingSubmit = (id: number) => {
  126. /// 转让价格不能为0
  127. if (!formData.value.TransferPrice) {
  128. return Promise.reject('转让价格不能为0')
  129. }
  130. loading.value = true
  131. return spotPresaleTransferListing({
  132. data: {
  133. ...formData,
  134. WRTradeDetailID: Long.fromNumber(id),
  135. },
  136. complete: () => {
  137. loading.value = false
  138. }
  139. })
  140. }
  141. return {
  142. loading,
  143. formData,
  144. listingSubmit
  145. }
  146. }
  147. // 铁合金现货预售转让撤销接口请求
  148. export function useSpotPresaleTransferCancel() {
  149. const loading = shallowRef(false)
  150. const { getUserId } = useLoginStore()
  151. const transferCancelSubmit = (id: number) => {
  152. loading.value = true
  153. return spotPresaleTransferCancel({
  154. data: {
  155. UserID: getUserId(),
  156. WRTradeDetailID: Long.fromNumber(id),
  157. ClientSerialNo: v4(), // 客户端流水号
  158. ClientType: ClientType.Web // 终端类型
  159. },
  160. complete: () => {
  161. loading.value = false
  162. }
  163. })
  164. }
  165. return {
  166. loading,
  167. transferCancelSubmit
  168. }
  169. }
  170. // 铁合金现货预售转让摘牌接口请求
  171. export function useSpotPresaleTransferDesting() {
  172. const loading = shallowRef(false)
  173. const { getUserId , getFirstAccountId} = useLoginStore()
  174. const destingSubmit = (id: number) => {
  175. loading.value = true
  176. return spotPresaleTransferDesting({
  177. data: {
  178. UserID: getUserId(),
  179. AccountID: getFirstAccountId(),
  180. TransferID: Long.fromNumber(id),
  181. ClientSerialNo: v4(), // 客户端流水号
  182. ClientType: ClientType.Web // 终端类型
  183. },
  184. complete: () => {
  185. loading.value = false
  186. }
  187. })
  188. }
  189. return {
  190. loading,
  191. destingSubmit
  192. }
  193. }
  194. // 挂牌撤单请求接口
  195. export function useWrListingCancelOrder() {
  196. const loading = shallowRef(false)
  197. const { getUserId, getFirstAccountId, getLoginId } = useLoginStore()
  198. const cancelSubmit = (id: string, buyorsell: number) => {
  199. loading.value = true
  200. return wrListingCancelOrder({
  201. data: {
  202. UserID: getUserId(),
  203. AccountID: getFirstAccountId(),
  204. OperatorID: getLoginId(),
  205. OrderSrc: OrderSrc.ORDERSRC_CLIENT,
  206. OldWRTradeOrderID: Long.fromString(id),
  207. ClientOrderTime: formatDate(new Date().toString(), 'YYYY-MM-DD HH:mm:ss'),
  208. ClientSerialNo: v4(), // 客户端流水号
  209. ClientType: ClientType.Web, // 终端类型
  210. BuyOrSell: buyorsell,
  211. },
  212. complete: () => {
  213. loading.value = false
  214. }
  215. })
  216. }
  217. return {
  218. loading,
  219. cancelSubmit
  220. }
  221. }