index.ts 7.2 KB

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