index.ts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. import { FunCode } from "../../../constants/enum/funcode"
  2. import { EOrderSrc } from "../../../constants/enum/index"
  3. import services from "../../../services/index"
  4. import { sendMsgToMQ } from "../../../services/api/common/index"
  5. import { getGoods, queryPermancePlanTmp } from "../../../services/api/orders/index"
  6. import { accountid, clientType, getErrorMsg, isEncrypted, loginid, protoHeader, timetample, userid, loginQuery, isMyFavorite, marketID, removeMyFavorite, addMyFavotite } from "../../../services/utils"
  7. import { hideLoading, showLoading, showModel, showToast } from "../../../utils/message/index"
  8. import { encryptBody } from "../../../utils/websocket/crypto"
  9. import { formatDateString, isnullstr } from "../../../utils/util"
  10. Page({
  11. /**
  12. * 页面的初始数据
  13. */
  14. data: {
  15. /// 底部安全区域
  16. safeBottom: getApp().globalData.safeBottom,
  17. /// 商品信息
  18. goods: <GuangZuan.GetGoods>({}),
  19. /// 商品编号
  20. goodsno: '',
  21. /// 选中履约模板
  22. tmp: <GuangZuan.PermancePlanTmp>({}),
  23. /// 卖单信息
  24. order: <GuangZuan.SellOrder>({}),
  25. /// 颜色
  26. colors: ['rebeccapurple', 'green', 'hotpink', 'orange', 'darkgoldenrod', 'firebrick', 'forestgreen', 'darksalmon', 'goldenrod', 'khaki', 'rosybrown', 'sandybrown', 'hotpink', 'orange', 'darkgoldenrod'],
  27. /// 操作
  28. operator: 1,
  29. /// 委托时间
  30. ordertime: '',
  31. /// 汇率
  32. exchangerate: loginQuery().exchangeRateConfigs[0].exchangerate,
  33. /// 显示价格
  34. price: '0.0',
  35. /// 克拉单价
  36. priceper: '0.0',
  37. /// 显示单位
  38. unit: '',
  39. /// 资金账号信息
  40. accountid: accountid(),
  41. /// 是否显示交易
  42. showTrade: Number(1)
  43. },
  44. /**
  45. * 返回上层视图
  46. */
  47. backToParent() {
  48. /// 返回上层视图
  49. wx.navigateBack()
  50. },
  51. /**
  52. * 获取商品数据信息
  53. */
  54. getGoods() {
  55. showLoading(() => {
  56. /// 发送请求
  57. getGoods({
  58. data: {
  59. goodsno: this.data.goodsno
  60. },
  61. success: (res) => {
  62. hideLoading( ()=> {
  63. /// 数据处理
  64. var obj = res.data
  65. obj.imagepath = (services.config.openApiUrl+obj.imagepath).replace('./uploadFile', '/uploadFile')
  66. obj.mobile = isnullstr(res.data.mobile)
  67. obj.zscuttype1display = isnullstr(res.data.zscuttype1display)
  68. this.setData({
  69. goods: obj,
  70. /// 显示单位
  71. unit: obj.zscurrencytypedisplayunit,
  72. /// 克拉单价
  73. priceper: Number(obj.priceper).toFixed(2),
  74. /// 显示价格
  75. price: (obj.zscurrencytype === 1 ? obj.price : obj.price*this.data.exchangerate).toFixed(2),
  76. operator: isMyFavorite(obj.wrtradeorderid) ? 1 : 2
  77. })
  78. /// 查询履约模板信息
  79. this.queryPermancePlanTmp(obj.performancetemplateid)
  80. })
  81. },
  82. fail: (emsg) => {
  83. hideLoading( ()=> {}, emsg)
  84. }
  85. })
  86. })
  87. },
  88. /// 获取履约模板信息
  89. queryPermancePlanTmp(performancetemplateid: number) {
  90. /// showLoading
  91. showLoading(() => {
  92. queryPermancePlanTmp({
  93. success: (res) => {
  94. /// 获取数据
  95. this.setData({
  96. tmps: res.data,
  97. tmp: res.data.filter(obj => { return obj.autoid === performancetemplateid })[0]
  98. })
  99. },
  100. complete: () => {
  101. /// hideLoading
  102. hideLoading()
  103. }
  104. })
  105. })
  106. },
  107. /// 钻石买摘牌接口
  108. doZSBuyOrderDesting() {
  109. /// showModel
  110. showModel(() => {
  111. /// showLoding....
  112. showLoading(() => {
  113. /// 构建参数信息
  114. const info = JSON.stringify({
  115. Header: protoHeader(FunCode.ZSBuyOrderDestingReq, marketID(67)),
  116. UserID: userid(),
  117. AccountID: accountid(),
  118. RelatedWRTradeOrderID: this.data.order.wrtradeorderid ? this.data.order.wrtradeorderid : this.data.goods.wrtradeorderid,
  119. OrderQty: this.data.order.remainqty ? this.data.order.remainqty: this.data.goods.remainqty,
  120. OrderSrc: EOrderSrc.ORDERSRC_CLIENT,
  121. ClientSerialNo: timetample().toString(),
  122. ClientType: clientType(),
  123. OperatorID: loginid(),
  124. MarketID: marketID(67),
  125. ClientOrderTime: formatDateString(new Date().toString())
  126. })
  127. /// 发送请求
  128. sendMsgToMQ({
  129. data: {
  130. data: encryptBody(info),
  131. funCodeReq: FunCode.ZSBuyOrderDestingReq,
  132. funCodeRsp: FunCode.ZSBuyOrderDestingRsp,
  133. isEncrypted: isEncrypted(),
  134. },
  135. success: (res) => {
  136. /// 请求失败
  137. if (res.code ! = 0) {
  138. hideLoading(() => {}, res.msg)
  139. return
  140. }
  141. /// 解析对象
  142. const data = JSON.parse(res.data.data)
  143. if (data.RetCode != 0) {
  144. hideLoading(() => {}, getErrorMsg(data.RetCode))
  145. return
  146. }
  147. /// 请求成功
  148. hideLoading(() => {
  149. wx.navigateBack()
  150. }, '购买请求成功')
  151. },
  152. fail: (emsg) => {
  153. hideLoading(() => {
  154. showToast('购买操作请求失败,原因:'+emsg)
  155. })
  156. }
  157. })
  158. }, '请求中......')
  159. }, '提示', '确定要购买吗?', true)
  160. },
  161. /**
  162. * 添加收藏
  163. */
  164. onFavoriteOperator() {
  165. /// loding.....
  166. showLoading(()=>{
  167. /// 委托单号
  168. const wrtradeorderid = this.data.goods.wrtradeorderid
  169. /// 参数信息
  170. const info = JSON.stringify({
  171. UserID: userid(),
  172. OperateType: this.data.operator === 1 ? 2 : 1,
  173. ClientType: clientType(),
  174. MarketID: marketID(67),
  175. ClientSerialNo: timetample().toString(),
  176. WRTradeOrderID: wrtradeorderid,
  177. Header: protoHeader(FunCode.GoodsFavoriteOperateReq, marketID(67))
  178. })
  179. /// 发送请求
  180. sendMsgToMQ({
  181. data: {
  182. data: encryptBody(info),
  183. funCodeReq: FunCode.GoodsFavoriteOperateReq,
  184. funCodeRsp: FunCode.GoodsFavoriteOperateRsp,
  185. isEncrypted: isEncrypted()
  186. },
  187. success: (res) => {
  188. /// 解析对象
  189. const data = JSON.parse(res.data.data)
  190. if (data.RetCode != 0) {
  191. hideLoading(() => {}, getErrorMsg(data.RetCode))
  192. return
  193. }
  194. hideLoading(()=>{
  195. /// 是否收藏
  196. this.setData({ operator: this.data.operator === 1 ? 2 : 1 })
  197. this.data.operator === 1 ? addMyFavotite(wrtradeorderid) : removeMyFavorite(wrtradeorderid)
  198. })
  199. /// 操作成功
  200. showToast('操作请求成功', 'success', 1000)
  201. },
  202. fail: (emsg) => {
  203. /// 操作失败
  204. hideLoading(()=>{}, emsg)
  205. }
  206. })
  207. })
  208. },
  209. /**
  210. * 生命周期函数--监听页面加载
  211. */
  212. onLoad(options: any) {
  213. /// 商品编号
  214. this.setData({ goodsno: options.goodsno, ordertime: options.ordertime })
  215. /// 是否显示交易
  216. if (options.showTrade) { this.setData({ showTrade: Number(options.showTrade)}) }
  217. /// 获取商品数据
  218. this.getGoods()
  219. /// 单据信息
  220. if (options.item) {
  221. const item = JSON.parse(options.item)
  222. if (item) { this.setData({ order: item }) }
  223. }
  224. },
  225. /// 查看大图
  226. previewImage() {
  227. /// 查看大图
  228. wx.previewImage({
  229. urls: [this.data.goods.imagepath],
  230. current: ''
  231. })
  232. },
  233. /**
  234. * 生命周期函数--监听页面初次渲染完成
  235. */
  236. onReady() {},
  237. /**
  238. * 生命周期函数--监听页面显示
  239. */
  240. onShow() {},
  241. /**
  242. * 生命周期函数--监听页面隐藏
  243. */
  244. onHide() {},
  245. /**
  246. * 生命周期函数--监听页面卸载
  247. */
  248. onUnload() {},
  249. /**
  250. * 页面相关事件处理函数--监听用户下拉动作
  251. */
  252. onPullDownRefresh() {
  253. },
  254. /**
  255. * 页面上拉触底事件的处理函数
  256. */
  257. onReachBottom() {
  258. },
  259. /**
  260. * 用户点击右上角分享
  261. */
  262. onShareAppMessage() {
  263. }
  264. })